aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVincent Lorenzo2014-07-21 12:33:29 -0400
committerVincent Lorenzo2014-07-21 12:33:29 -0400
commit7afbb8822952bcbf955fed6e138a64470cc930a7 (patch)
tree0a20aa4a9e57ed8fff456f9f47368925d2ed22b8
parent8e8c6186b987720b8b071267606abcaa912140ea (diff)
downloadorg.eclipse.papyrus-7afbb8822952bcbf955fed6e138a64470cc930a7.zip
org.eclipse.papyrus-7afbb8822952bcbf955fed6e138a64470cc930a7.tar.gz
org.eclipse.papyrus-7afbb8822952bcbf955fed6e138a64470cc930a7.tar.xz
424099: [Diagram] Papyrus must provide a way to draw common connections points (big bendpoints)
-rw-r--r--features/papyrus-tests-features/org.eclipse.papyrus.tests.uml.diagram.feature/feature.xml6
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/figure/edge/PapyrusEdgeFigure.java396
-rwxr-xr-x[-rw-r--r--]plugins/infra/widget/org.eclipse.papyrus.infra.widgets/.settings/org.eclipse.jdt.core.prefs0
-rw-r--r--tests/junit/plugins/core/org.eclipse.papyrus.tests/META-INF/MANIFEST.MF1
-rw-r--r--tests/junit/plugins/core/org.eclipse.papyrus.tests/test/org/eclipse/papyrus/tests/AllTests.java1
-rw-r--r--tests/junit/plugins/uml/diagram/org.eclipse.papyrus.diagram.tests/META-INF/MANIFEST.MF3
-rw-r--r--tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common.tests/.classpath7
-rw-r--r--tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common.tests/.project28
-rw-r--r--tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common.tests/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common.tests/META-INF/MANIFEST.MF23
-rw-r--r--tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common.tests/about.html28
-rw-r--r--tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common.tests/build.properties9
-rw-r--r--tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common.tests/org.eclipse.papyrus.uml.diagram.common.tests.launch41
-rw-r--r--tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common.tests/plugin.properties3
-rw-r--r--tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common.tests/resources/model.di17
-rw-r--r--tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common.tests/resources/model.notation1348
-rw-r--r--tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common.tests/resources/model.uml302
-rw-r--r--tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common.tests/src/org/eclipse/papyrus/uml/diagram/common/tests/Activator.java67
-rw-r--r--tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common.tests/src/org/eclipse/papyrus/uml/diagram/common/tests/tests/AllTests.java25
-rw-r--r--tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common.tests/src/org/eclipse/papyrus/uml/diagram/common/tests/tests/CommonBendpointsTest.java333
20 files changed, 2491 insertions, 154 deletions
diff --git a/features/papyrus-tests-features/org.eclipse.papyrus.tests.uml.diagram.feature/feature.xml b/features/papyrus-tests-features/org.eclipse.papyrus.tests.uml.diagram.feature/feature.xml
index d94f0da..33e865f 100644
--- a/features/papyrus-tests-features/org.eclipse.papyrus.tests.uml.diagram.feature/feature.xml
+++ b/features/papyrus-tests-features/org.eclipse.papyrus.tests.uml.diagram.feature/feature.xml
@@ -140,4 +140,10 @@ Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in t
version="0.0.0"
unpack="false"/>
+ <plugin
+ id="org.eclipse.papyrus.uml.diagram.common.tests"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"/>
+
</feature>
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/figure/edge/PapyrusEdgeFigure.java b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/figure/edge/PapyrusEdgeFigure.java
index fe26298..e46e7a8 100644
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/figure/edge/PapyrusEdgeFigure.java
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/figure/edge/PapyrusEdgeFigure.java
@@ -13,12 +13,14 @@
*****************************************************************************/
package org.eclipse.papyrus.infra.gmfdiag.common.figure.edge;
+import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import java.util.Map.Entry;
import java.util.Set;
import org.eclipse.draw2d.Connection;
@@ -36,6 +38,7 @@ import org.eclipse.gmf.runtime.common.ui.services.editor.EditorService;
import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
import org.eclipse.gmf.runtime.diagram.ui.parts.IDiagramWorkbenchPart;
import org.eclipse.gmf.runtime.draw2d.ui.figures.PolylineConnectionEx;
+import org.eclipse.gmf.runtime.draw2d.ui.geometry.LineSeg;
import org.eclipse.papyrus.infra.core.editor.CoreMultiDiagramEditor;
import org.eclipse.papyrus.infra.tools.util.EditorHelper;
import org.eclipse.ui.IEditorPart;
@@ -52,7 +55,7 @@ import org.eclipse.ui.PlatformUI;
public abstract class PapyrusEdgeFigure extends PolylineConnectionEx {
/**
- * Diameter to use for the bendpoints
+ * Diameter to use for the bendpoitns
*/
private int bendpointDiameter;
@@ -73,9 +76,10 @@ public abstract class PapyrusEdgeFigure extends PolylineConnectionEx {
*
* @param g
*/
+ @Override
protected void outlineShape(Graphics g) {
super.outlineShape(g);
- drawConnectionPoint(g);
+ drawCommonbendpoints(g);
}
/**
@@ -84,116 +88,255 @@ public abstract class PapyrusEdgeFigure extends PolylineConnectionEx {
public void resetStyle() {
}
-
/**
*
- * @param g
- *
+ * @return
+ * the common bendpoints to draw (see bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=424099)
*/
@SuppressWarnings("unchecked")
- protected void drawConnectionPoint(final Graphics g) {
+ public Collection<Point> getCommonBendpointsToDraw() {
+ final Collection<Point> commonBendpointsToDraw = new HashSet<Point>();
final PointList bendPoints = getPoints();
- if(getDrawBendpointPreferenceValue() && bendPoints.size() > 2 && getBendPointDiameter() > 1) {
- final Map<?, ?> visualPartMap = getVisualPartMap(this);
- if(visualPartMap != null) {
- final EditPart currentEditPart = (EditPart)visualPartMap.get(this);
- EClass eClass = null;
- if(currentEditPart instanceof IGraphicalEditPart) {
- final EObject el = ((IGraphicalEditPart)currentEditPart).resolveSemanticElement();
- if(el != null) {
- eClass = el.eClass();
- }
+
+ final Map<?, ?> visualPartMap = getVisualPartMap(this);
+ if(visualPartMap != null) {
+ final EditPart currentEditPart = (EditPart)visualPartMap.get(this);
+ //1. find the uml eClass of the current link
+ EClass eClass = null;
+ if(currentEditPart instanceof IGraphicalEditPart) {
+ final EObject el = ((IGraphicalEditPart)currentEditPart).resolveSemanticElement();
+ if(el != null) {
+ eClass = el.eClass();
}
- if(currentEditPart instanceof ConnectionEditPart && eClass != null) {
- final EditPart sourceEP = ((ConnectionEditPart)currentEditPart).getSource();
- final EditPart targetEP = ((ConnectionEditPart)currentEditPart).getTarget();
- final Set<Object> allConnectionsEP = new HashSet<Object>();
- //1. get all potential editpart connections
- if(sourceEP instanceof AbstractGraphicalEditPart && targetEP instanceof AbstractGraphicalEditPart) {
- allConnectionsEP.addAll(((AbstractGraphicalEditPart)sourceEP).getSourceConnections());
- allConnectionsEP.addAll(((AbstractGraphicalEditPart)targetEP).getSourceConnections());
- allConnectionsEP.addAll(((AbstractGraphicalEditPart)sourceEP).getTargetConnections());
- allConnectionsEP.addAll(((AbstractGraphicalEditPart)targetEP).getTargetConnections());
- allConnectionsEP.remove(currentEditPart);
+ }
+
+ //2. find all connections editpart with same source AND/OR same target than the current one
+ if(currentEditPart instanceof ConnectionEditPart && eClass != null) {
+ final EditPart sourceEP = ((ConnectionEditPart)currentEditPart).getSource();
+ final EditPart targetEP = ((ConnectionEditPart)currentEditPart).getTarget();
+ final Set<Object> allConnectionsEP = new HashSet<Object>();
+ //2.1. get all potential editpart connections
+ if(sourceEP instanceof AbstractGraphicalEditPart && targetEP instanceof AbstractGraphicalEditPart) {
+ allConnectionsEP.addAll(((AbstractGraphicalEditPart)sourceEP).getSourceConnections());
+ allConnectionsEP.addAll(((AbstractGraphicalEditPart)targetEP).getSourceConnections());
+ allConnectionsEP.addAll(((AbstractGraphicalEditPart)sourceEP).getTargetConnections());
+ allConnectionsEP.addAll(((AbstractGraphicalEditPart)targetEP).getTargetConnections());
+ allConnectionsEP.remove(currentEditPart);
+ }
+
+ //2.2 get the figure for these connections and keep only figure when its editpart has the same kind than the current one
+ final Set<Connection> allConnections = new HashSet<Connection>();
+ if(allConnectionsEP.size() > 0) {
+ for(final Object current : allConnectionsEP) {
+ //the editpart be instance of the same class
+ if(current.getClass().isInstance(currentEditPart) && currentEditPart.getClass().isInstance(current) && current instanceof IGraphicalEditPart) {
+ final EObject resolvedElement = ((IGraphicalEditPart)current).resolveSemanticElement();
+ if(resolvedElement != null && eClass != null && resolvedElement.eClass() != eClass) {
+ continue;//we draw ben point only for elements which have the same eClass, when this eClass is not null
+ }
+ final IFigure currentFig = ((IGraphicalEditPart)current).getFigure();
+ if(currentFig instanceof Connection) {
+ allConnections.add((Connection)currentFig);
+ }
+ }
}
+ }
- //2. get the figure for these connections
- final Set<Connection> allConnections = new HashSet<Connection>();
- if(allConnectionsEP.size() > 0) {
- for(final Object current : allConnectionsEP) {
- //the editpart be instance of the same class
- if(current.getClass().isInstance(currentEditPart) && currentEditPart.getClass().isInstance(current) && current instanceof IGraphicalEditPart) {
- final EObject resolvedElement = ((IGraphicalEditPart)current).resolveSemanticElement();
- if(resolvedElement != null && eClass != null && resolvedElement.eClass() != eClass) {
- continue;//we draw ben point only for elements which have the same eClass, when this eClass is not null
- }
- final IFigure currentFig = ((IGraphicalEditPart)current).getFigure();
- if(currentFig instanceof Connection) {
- allConnections.add((Connection)currentFig);
+ //3. Create the list of the LineSeg of the current figure
+ final List<LineSeg> refs = new ArrayList<LineSeg>();
+ for(int i = 0; i < bendPoints.size() - 1; i++) {
+ LineSeg seg = new LineSeg(bendPoints.getPoint(i), bendPoints.getPoint(i + 1));
+ refs.add(seg);
+ }
+
+
+ //4. find common segments between the current figure and each others link
+ //we need to associate each common segment to the concerned link
+ final Map<Connection, Map<LineSeg, List<LineSeg>>> segs = new HashMap<Connection, Map<LineSeg, List<LineSeg>>>();
+ for(Connection currentConn : allConnections) {
+ final PointList currentPoints = currentConn.getPoints();
+ final Map<LineSeg, List<LineSeg>> mapSegs = new HashMap<LineSeg, List<LineSeg>>();
+ segs.put(currentConn, mapSegs);
+ for(LineSeg refSeg : refs) {
+ final List<LineSeg> commonSubSegs = new ArrayList<LineSeg>();
+ mapSegs.put(refSeg, commonSubSegs);
+ for(int i = 0; i < currentPoints.size() - 1; i++) {
+ LineSeg tmp = new LineSeg(currentPoints.getPoint(i), currentPoints.getPoint(i + 1));
+ PointList intersection = getCommonSegment(refSeg, tmp);
+ if(intersection.size() == 2) {
+ if(!intersection.getFirstPoint().equals(intersection.getLastPoint())) {
+ double distanceFromFirst = refSeg.getOrigin().getDistance(intersection.getFirstPoint());
+ double distanceFromSecond = refSeg.getOrigin().getDistance(intersection.getLastPoint());
+ final LineSeg commonSeg;
+ //we arrange the 2 points in order to have the first point nearest of the start of the current segment
+ if(distanceFromFirst < distanceFromSecond) {
+ commonSeg = new LineSeg(intersection.getFirstPoint(), intersection.getLastPoint());
+ } else {
+ commonSeg = new LineSeg(intersection.getLastPoint(), intersection.getFirstPoint());
+ }
+ commonSubSegs.add(commonSeg);
}
}
}
}
+ }
+
+ //5. we look for the bendpoints crossing existing link on the model, then crossing their common segment with the current figure, to find bendpoints to draw
+ for(Entry<Connection, Map<LineSeg, List<LineSeg>>> entry : segs.entrySet()) {
+ final Map<LineSeg, List<LineSeg>> commonSegMap = entry.getValue();
+ for(int i = 0; i < refs.size(); i++) { //we iterate on the segments of the current figure
+
- //3. find and draw big bendpoints
- if(allConnections.size() > 0) {
- final Map<Point, Boolean> visibility = new HashMap<Point, Boolean>();
- visibility.put(bendPoints.getFirstPoint(), Boolean.FALSE);
- visibility.put(bendPoints.getLastPoint(), Boolean.FALSE);
- for(int i = 1; i < bendPoints.size() - 1; i++) {
- final Point currentPt = bendPoints.getPoint(i);
- visibility.put(currentPt, isACommonBendpoint(this, i, allConnections));
+ //5.1 find required values to find bendpoints to draw
+ final LineSeg currentFigureSeg = refs.get(i);
+ //final List<LineSeg> currentCommonSegs = segs.get(currentFigureSeg);
+ final List<LineSeg> currentCommonSegs = commonSegMap.get(currentFigureSeg);
+
+ final LineSeg previousSeg;
+ final List<LineSeg> previousCommonSegs;
+
+ final LineSeg nextSeg;
+ final List<LineSeg> nextCommonSegs;
+
+ //obtain previous segs of the current figure
+ if(i != 0) {
+ previousSeg = refs.get(i - 1);
+ previousCommonSegs = commonSegMap.get(previousSeg);
+ } else {
+ previousSeg = null;
+ previousCommonSegs = null;
+ }
+
+ //obtain next segs of the current figure
+ if(i != refs.size() - 1) {
+ nextSeg = refs.get(i + 1);
+ nextCommonSegs = commonSegMap.get(nextSeg);
+ } else {
+ nextSeg = null;
+ nextCommonSegs = null;
}
- //clear the map : remove all unnecessary true value
- //01110 -> 01010
- int indexFirstOne = -1;
- for(int i = 0; i < bendPoints.size(); i++) {
- boolean first = visibility.get(bendPoints.getPoint(i));
- if(first && indexFirstOne < 0) {
- indexFirstOne = i;
+
+ LineSeg previousCommonSeg = null;
+ LineSeg nextCommonSeg = null;
+
+ //we iterate on the common subsegment shared with others link with the current figure
+ for(int a = 0; a < currentCommonSegs.size(); a++) {
+ final LineSeg curr = currentCommonSegs.get(a);
+ final Point first = curr.getOrigin();
+ final Point second = curr.getTerminus();
+ //obtain previous common seg
+ if(a == 0) {
+ if(previousCommonSegs != null && previousCommonSegs.size() > 0) {
+ previousCommonSeg = previousCommonSegs.get(previousCommonSegs.size() - 1);
+ } else {
+ previousCommonSeg = null;
+ }
+ } else {
+ previousCommonSeg = currentCommonSegs.get(a - 1);
}
- if((!first) && indexFirstOne >= 0) {
- for(int j = (indexFirstOne + 1); j < i - 1; j++) {
- visibility.put(bendPoints.getPoint(j), false);
+
+ //obtain next common seg
+ if(a == currentCommonSegs.size() - 1) {
+ if(nextCommonSegs != null && nextCommonSegs.size() > 0) {
+ nextCommonSeg = nextCommonSegs.get(0);
+ } else {
+ nextCommonSeg = null;
}
- indexFirstOne = -1;
+ } else {
+ nextCommonSeg = currentCommonSegs.get(a + 1);
}
- }
+ //5.2 calculates bendpoints visibility
- //initialize the graphics
- if(getBackgroundColor() != null) {
- g.setForegroundColor(getBackgroundColor());
- }
- if(getForegroundColor() != null) {
- g.setBackgroundColor(getForegroundColor());
- }
+ //determining if we draw first point :
+ if(previousCommonSeg == null) {
+ if(i == 0) {//first segment of the figure
+ if(!bendPoints.getFirstPoint().equals(first)) {
+ //we draw the point when it is not the first anchor of the figure
+ commonBendpointsToDraw.add(first);
+ }
+ } else {
+ commonBendpointsToDraw.add(first);
+ }
+ } else if(!previousCommonSeg.getTerminus().equals(first)) {
+ //the previous common seg doesn't share this point with the current segment
+ //we draw the first point
+ commonBendpointsToDraw.add(first);
+ }
- //paint the connection points
- //we don't allow to draw connection point on the start AND on the end of the figure (even if this case is possible in case of 2 full lines fully superimposed
- final int diameter = getBendPointDiameter();
- for(int i = 1; i < bendPoints.size() - 1; i++) {
- final Point currentPt = bendPoints.getPoint(i);
- if(visibility.get(currentPt)) {
- g.fillOval(currentPt.x - ((diameter - 1) / 2), currentPt.y - ((diameter - 1) / 2), diameter, diameter);
+ //determining if we draw the second point
+ if(nextCommonSeg == null) {
+ if(i == refs.size() - 1) {
+ if(!bendPoints.getLastPoint().equals(second)) {
+ //we draw the point when it is not the first anchor of the figure
+ commonBendpointsToDraw.add(second);
+ }
+ } else {
+ commonBendpointsToDraw.add(second);
+ }
+ } else if(!nextCommonSeg.getOrigin().equals(second)) {
+ //the next common seg doesn't share this point with the current segment
+ //we draw the second point
+ commonBendpointsToDraw.add(second);
}
}
- //reset the graphics
- if(getBackgroundColor() != null) {
- g.setBackgroundColor(getBackgroundColor());
- }
- if(getForegroundColor() != null) {
- g.setForegroundColor(getForegroundColor());
- }
}
}
+ }
+ }
+ return commonBendpointsToDraw;
+ }
+
+ /**
+ *
+ * @param g
+ * graphics
+ * @param pointsToDraw
+ * the list of the points to draw
+ */
+ public void drawCommonBendpoints(final Graphics g, final Collection<Point> bendPoints) {
+ final int diameter = getBendPointDiameter();
+ if(getDrawBendpointPreferenceValue() && bendPoints.size() > 0 && diameter > 1) {
+ //initialize the graphics
+ if(getBackgroundColor() != null) {
+ g.setForegroundColor(getBackgroundColor());
+ }
+ if(getForegroundColor() != null) {
+ g.setBackgroundColor(getForegroundColor());
+ }
+
+ for(final Point point : bendPoints) {
+ g.fillOval(point.x - (diameter - 1) / 2, point.y - (diameter - 1) / 2, diameter, diameter);
+ }
+
+ //reset the graphics
+ if(getBackgroundColor() != null) {
+ g.setBackgroundColor(getBackgroundColor());
+ }
+ if(getForegroundColor() != null) {
+ g.setForegroundColor(getForegroundColor());
}
}
+ }
+
+
+ /**
+ *
+ * @param g
+ *
+ */
+ protected void drawCommonbendpoints(final Graphics g) {
+ if(getPoints().size() > 2 && getDrawBendpointPreferenceValue()) {
+ final Collection<Point> commonPoints = getCommonBendpointsToDraw();
+ drawCommonBendpoints(g, commonPoints);
+ }
}
+
+
/**
*
* @return
@@ -249,88 +392,35 @@ public abstract class PapyrusEdgeFigure extends PolylineConnectionEx {
/**
*
- * @param figure
- * the figure owning this point
- * @param indexOfTheTestedPoint
- * @param connections
- * the collection of others connections which could share the bendpoint
+ * @param seg1
+ * the first segment
+ * @param seg2
+ * the secong segment
* @return
- * true if the tested point is common with others connections
*/
- public boolean isACommonBendpoint(final Connection figure, final int indexOfTheTestedPoint, final Collection<Connection> connections) {
- final PointList list = ((Connection)figure).getPoints();
- final Point thePoint = list.getPoint(indexOfTheTestedPoint);
- //we need to verify if this point is a common bendpoint with another one
-
- for(final Connection current : connections) {
- //to be a common bendpoints, the point AND (the point Before it OR the point After it) MUST be on the same segment
- final PointList localList = ((Connection)current).getPoints();
- for(int i = 0; i < localList.size() - 1; i++) {
- final Point tmp1 = localList.getPoint(i);
- final Point tmp2 = localList.getPoint(i + 1);
-
- boolean isOnSegment = isOnSegment(thePoint, tmp1, tmp2);
- if(isOnSegment) {
- boolean isOnSegment2 = isOnSegment(list.getPoint(indexOfTheTestedPoint + 1), tmp1, tmp2);
- if(isOnSegment2) {
- return true;
- }
+ public static final PointList getCommonSegment(final LineSeg seg1, final LineSeg seg2) {
+ final List<Point> list = new ArrayList<Point>();
+ list.add(seg1.getOrigin());
+ list.add(seg2.getOrigin());
+ list.add(seg1.getTerminus());
+ list.add(seg2.getTerminus());
- isOnSegment2 = isOnSegment(list.getPoint(indexOfTheTestedPoint - 1), tmp1, tmp2);
- if(isOnSegment2) {
- return true;
- }
+ List<Point> commonPoints = new ArrayList<Point>();
+ for(Point point : list) {
+ if(!commonPoints.contains(point)) {
+ if(seg1.containsPoint(point, 0) && seg2.containsPoint(point, 0)) {
+ commonPoints.add(point);
}
}
}
- return false;
- }
-
-
- /**
- *
- * @param pt
- * a point to test
- * @param pt1
- * the first point of a segment
- * @param pt2
- * the second point of a segment
- * @return
- * true if the point pt is on the segment [pt1, pt2]
- */
- public static final boolean isOnSegment(final Point pt, final Point pt1, final Point pt2) {
- final Point first;
- final Point second;
- if(pt1.x < pt2.x) {
- first = pt1;
- second = pt2;
- } else {
- first = pt2;
- second = pt1;
- }
- if(pt.x >= first.x && pt.x <= second.x) {
- if((pt.y <= first.y && pt.y >= second.y) || (pt.y >= first.y && pt.y <= second.y)) {
- //y = ax+b;
- //we determine a;
- double firstX = first.preciseX();
- double secondX = second.preciseX();
- double firstY = first.preciseY();
- double secondY = second.preciseY();
- if(secondX == firstX) {
- return pt.preciseX() == secondX;
- }
- double a = (secondY - firstY) / (secondX - firstX);
-
- //we determine b;
- double b = firstY - a * firstX;
- return pt.preciseY() == a * pt.preciseX() + b;
- }
+ final PointList result = new PointList();
+ for(final Point point : commonPoints) {
+ result.addPoint(point);
}
- return false;
+ return result;
}
-
/**
* Calculate the best diameter and set the diameter value
*
diff --git a/plugins/infra/widget/org.eclipse.papyrus.infra.widgets/.settings/org.eclipse.jdt.core.prefs b/plugins/infra/widget/org.eclipse.papyrus.infra.widgets/.settings/org.eclipse.jdt.core.prefs
index f287d53..f287d53 100644..100755
--- a/plugins/infra/widget/org.eclipse.papyrus.infra.widgets/.settings/org.eclipse.jdt.core.prefs
+++ b/plugins/infra/widget/org.eclipse.papyrus.infra.widgets/.settings/org.eclipse.jdt.core.prefs
diff --git a/tests/junit/plugins/core/org.eclipse.papyrus.tests/META-INF/MANIFEST.MF b/tests/junit/plugins/core/org.eclipse.papyrus.tests/META-INF/MANIFEST.MF
index 10fb3bc..a37bb1c 100644
--- a/tests/junit/plugins/core/org.eclipse.papyrus.tests/META-INF/MANIFEST.MF
+++ b/tests/junit/plugins/core/org.eclipse.papyrus.tests/META-INF/MANIFEST.MF
@@ -2,6 +2,7 @@ Manifest-Version: 1.0
Require-Bundle: org.eclipse.ui,
org.eclipse.core.runtime,
org.eclipse.papyrus.uml.diagram.common;bundle-version="1.0.0",
+ org.eclipse.papyrus.uml.diagram.common.tests;bundle-version="1.0.0",
org.eclipse.papyrus.infra.services.resourceloading;bundle-version="1.0.0",
org.eclipse.papyrus.uml.service.types;bundle-version="1.0.0",
org.eclipse.papyrus.sysml.service.types;bundle-version="1.0.0",
diff --git a/tests/junit/plugins/core/org.eclipse.papyrus.tests/test/org/eclipse/papyrus/tests/AllTests.java b/tests/junit/plugins/core/org.eclipse.papyrus.tests/test/org/eclipse/papyrus/tests/AllTests.java
index 26f9f3b..dade9fd 100644
--- a/tests/junit/plugins/core/org.eclipse.papyrus.tests/test/org/eclipse/papyrus/tests/AllTests.java
+++ b/tests/junit/plugins/core/org.eclipse.papyrus.tests/test/org/eclipse/papyrus/tests/AllTests.java
@@ -118,6 +118,7 @@ public class AllTests {
suiteClasses.add(new PluginTestSuiteClass(org.eclipse.papyrus.diagram.profile.tests.AllTests.class));
suiteClasses.add(new PluginTestSuiteClass(org.eclipse.papyrus.uml.diagram.sequence.tests.AllTests.class));
suiteClasses.add(new PluginTestSuiteClass(org.eclipse.papyrus.uml.diagram.interactionoverview.tests.AllTests.class));
+ suiteClasses.add(new PluginTestSuiteClass(org.eclipse.papyrus.uml.diagram.common.tests.tests.AllTests.class));
//
//nattable tests
diff --git a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.diagram.tests/META-INF/MANIFEST.MF b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.diagram.tests/META-INF/MANIFEST.MF
index 67bd7d6..2026d29 100644
--- a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.diagram.tests/META-INF/MANIFEST.MF
+++ b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.diagram.tests/META-INF/MANIFEST.MF
@@ -20,7 +20,8 @@ Require-Bundle: org.eclipse.ui,
org.eclipse.papyrus.junit.utils;bundle-version="1.0.0",
org.eclipse.papyrus.uml.diagram.profile;bundle-version="1.0.0",
org.eclipse.gmf.tooling.runtime,
- org.eclipse.papyrus.infra.emf.appearance;bundle-version="1.0.0"
+ org.eclipse.papyrus.infra.emf.appearance;bundle-version="1.0.0",
+ org.eclipse.papyrus.uml.diagram.common.tests;bundle-version="1.0.0"
Export-Package: org.eclipse.papyrus.diagram.tests.appearance,
org.eclipse.papyrus.diagram.tests.canonical,
org.eclipse.papyrus.diagram.tests.createFromPalette,
diff --git a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common.tests/.classpath b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common.tests/.classpath
new file mode 100644
index 0000000..8a8f166
--- /dev/null
+++ b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common.tests/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common.tests/.project b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common.tests/.project
new file mode 100644
index 0000000..c4f9f1a
--- /dev/null
+++ b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common.tests/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.uml.diagram.common.tests</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common.tests/.settings/org.eclipse.jdt.core.prefs b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common.tests/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..f287d53
--- /dev/null
+++ b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common.tests/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6
diff --git a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common.tests/META-INF/MANIFEST.MF b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common.tests/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..0614797
--- /dev/null
+++ b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common.tests/META-INF/MANIFEST.MF
@@ -0,0 +1,23 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: org.eclipse.papyrus.uml.diagram.common.tests
+Bundle-Version: 1.0.0.qualifier
+Bundle-Activator: org.eclipse.papyrus.uml.diagram.common.tests.Activator
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.junit,
+ org.eclipse.emf.transaction,
+ org.eclipse.ui.ide,
+ org.eclipse.papyrus.junit.utils;bundle-version="1.0.0",
+ org.eclipse.papyrus.infra.core;bundle-version="1.0.0",
+ org.eclipse.papyrus.uml.tools;bundle-version="1.0.0",
+ org.eclipse.papyrus.infra.gmfdiag.common;bundle-version="1.0.0",
+ org.eclipse.gmf.runtime.notation.edit,
+ org.eclipse.papyrus.infra.widgets;bundle-version="1.0.0"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Bundle-ActivationPolicy: lazy
+Bundle-Vendor: %Bundle-Vendor
+Bundle-Name: %Bundle-Name
+Bundle-Localization: plugin
+Bundle-Description: This plugin provides tests for the papyrus plugin UML Diagram Common
+Export-Package: org.eclipse.papyrus.uml.diagram.common.tests.tests
diff --git a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common.tests/about.html b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common.tests/about.html
new file mode 100644
index 0000000..2091030
--- /dev/null
+++ b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common.tests/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>November 14, 2008</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
+
+</body>
+</html> \ No newline at end of file
diff --git a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common.tests/build.properties b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common.tests/build.properties
new file mode 100644
index 0000000..828346c
--- /dev/null
+++ b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common.tests/build.properties
@@ -0,0 +1,9 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ resources/,\
+ org.eclipse.papyrus.uml.diagram.common.tests.launch,\
+ about.html,\
+ plugin.properties
+src.includes = about.html
diff --git a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common.tests/org.eclipse.papyrus.uml.diagram.common.tests.launch b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common.tests/org.eclipse.papyrus.uml.diagram.common.tests.launch
new file mode 100644
index 0000000..3f0570a
--- /dev/null
+++ b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common.tests/org.eclipse.papyrus.uml.diagram.common.tests.launch
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
+<booleanAttribute key="append.args" value="true"/>
+<booleanAttribute key="askclear" value="false"/>
+<booleanAttribute key="automaticAdd" value="true"/>
+<booleanAttribute key="automaticValidate" value="false"/>
+<stringAttribute key="bootstrap" value=""/>
+<stringAttribute key="checked" value="[NONE]"/>
+<booleanAttribute key="clearConfig" value="true"/>
+<booleanAttribute key="clearws" value="true"/>
+<booleanAttribute key="clearwslog" value="false"/>
+<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/>
+<booleanAttribute key="default" value="true"/>
+<booleanAttribute key="includeOptional" value="true"/>
+<stringAttribute key="location" value="${workspace_loc}/../junit-workspace"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.papyrus.uml.diagram.common.tests/src/org/eclipse/papyrus/uml/diagram/common/tests/tests/AllTests.java"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="1"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
+<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
+<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
+<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit4"/>
+<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jdk1.6.0_35"/>
+<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.eclipse.papyrus.uml.diagram.common.tests.tests.AllTests"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.papyrus.uml.diagram.common.tests"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Dosgi.requiredJavaVersion=1.5 -Xms1024m -Xmx4086m -XX:MaxPermSize=512M"/>
+<stringAttribute key="pde.version" value="3.3"/>
+<stringAttribute key="product" value="org.eclipse.platform.ide"/>
+<booleanAttribute key="run_in_ui_thread" value="true"/>
+<booleanAttribute key="show_selected_only" value="false"/>
+<booleanAttribute key="tracing" value="false"/>
+<booleanAttribute key="useCustomFeatures" value="false"/>
+<booleanAttribute key="useDefaultConfig" value="true"/>
+<booleanAttribute key="useDefaultConfigArea" value="false"/>
+<booleanAttribute key="useProduct" value="true"/>
+</launchConfiguration>
diff --git a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common.tests/plugin.properties b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common.tests/plugin.properties
new file mode 100644
index 0000000..9f13bb6
--- /dev/null
+++ b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common.tests/plugin.properties
@@ -0,0 +1,3 @@
+#Properties file for org.eclipse.papyrus.uml.diagram.common.tests
+Bundle-Vendor = Eclipse Modeling Project
+Bundle-Name = Papyrus UML Diagram Common Tests (Incubation) \ No newline at end of file
diff --git a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common.tests/resources/model.di b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common.tests/resources/model.di
new file mode 100644
index 0000000..bb3ccc7
--- /dev/null
+++ b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common.tests/resources/model.di
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<di:SashWindowsMngr xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.eclipse.org/papyrus/0.7.0/sashdi">
+ <pageList>
+ <availablePage>
+ <emfPageIdentifier href="model.notation#_JJpbcAZ6EeSBoZZVjT_gSA"/>
+ </availablePage>
+ </pageList>
+ <sashModel currentSelection="//@sashModel/@windows.0/@children.0">
+ <windows>
+ <children xsi:type="di:TabFolder">
+ <children>
+ <emfPageIdentifier href="model.notation#_JJpbcAZ6EeSBoZZVjT_gSA"/>
+ </children>
+ </children>
+ </windows>
+ </sashModel>
+</di:SashWindowsMngr>
diff --git a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common.tests/resources/model.notation b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common.tests/resources/model.notation
new file mode 100644
index 0000000..f2c7c19
--- /dev/null
+++ b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common.tests/resources/model.notation
@@ -0,0 +1,1348 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:uml="http://www.eclipse.org/uml2/4.0.0/UML" xmi:id="_JJpbcAZ6EeSBoZZVjT_gSA" type="PapyrusUMLClassDiagram" name="NewDiagram" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_kpq_8AaQEeSBoZZVjT_gSA" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_kpq_8gaQEeSBoZZVjT_gSA" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kpq_8waQEeSBoZZVjT_gSA" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kpq_9AaQEeSBoZZVjT_gSA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kpq_9QaQEeSBoZZVjT_gSA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kpq_9gaQEeSBoZZVjT_gSA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kpq_9waQEeSBoZZVjT_gSA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kprnAAaQEeSBoZZVjT_gSA" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kprnAQaQEeSBoZZVjT_gSA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kprnAgaQEeSBoZZVjT_gSA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kprnAwaQEeSBoZZVjT_gSA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kprnBAaQEeSBoZZVjT_gSA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_kprnBQaQEeSBoZZVjT_gSA" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_kprnBgaQEeSBoZZVjT_gSA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_kprnBwaQEeSBoZZVjT_gSA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_kprnCAaQEeSBoZZVjT_gSA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kprnCQaQEeSBoZZVjT_gSA"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_kpL3wAaQEeSBoZZVjT_gSA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kpq_8QaQEeSBoZZVjT_gSA" x="80" y="100" width="101" height="101"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_lQVXUAaQEeSBoZZVjT_gSA" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_lQVXUgaQEeSBoZZVjT_gSA" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lQVXUwaQEeSBoZZVjT_gSA" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lQVXVAaQEeSBoZZVjT_gSA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_lQVXVQaQEeSBoZZVjT_gSA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_lQVXVgaQEeSBoZZVjT_gSA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lQVXVwaQEeSBoZZVjT_gSA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lQVXWAaQEeSBoZZVjT_gSA" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lQVXWQaQEeSBoZZVjT_gSA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_lQVXWgaQEeSBoZZVjT_gSA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_lQVXWwaQEeSBoZZVjT_gSA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lQVXXAaQEeSBoZZVjT_gSA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lQVXXQaQEeSBoZZVjT_gSA" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lQVXXgaQEeSBoZZVjT_gSA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_lQVXXwaQEeSBoZZVjT_gSA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_lQVXYAaQEeSBoZZVjT_gSA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lQVXYQaQEeSBoZZVjT_gSA"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_lQUJMAaQEeSBoZZVjT_gSA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lQVXUQaQEeSBoZZVjT_gSA" x="400" y="100" width="101" height="101"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_l0ragAaQEeSBoZZVjT_gSA" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_l0raggaQEeSBoZZVjT_gSA" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_l0ragwaQEeSBoZZVjT_gSA" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_l0rahAaQEeSBoZZVjT_gSA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_l0rahQaQEeSBoZZVjT_gSA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_l0rahgaQEeSBoZZVjT_gSA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l0rahwaQEeSBoZZVjT_gSA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_l0raiAaQEeSBoZZVjT_gSA" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_l0raiQaQEeSBoZZVjT_gSA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_l0raigaQEeSBoZZVjT_gSA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_l0raiwaQEeSBoZZVjT_gSA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l0rajAaQEeSBoZZVjT_gSA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_l0rajQaQEeSBoZZVjT_gSA" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_l0rajgaQEeSBoZZVjT_gSA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_l0rajwaQEeSBoZZVjT_gSA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_l0rakAaQEeSBoZZVjT_gSA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l0rakQaQEeSBoZZVjT_gSA"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_l0qMYAaQEeSBoZZVjT_gSA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l0ragQaQEeSBoZZVjT_gSA" x="400" y="280" width="101" height="101"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_nLNSIAacEeSBoZZVjT_gSA" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_nLNSIgacEeSBoZZVjT_gSA" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_nLNSIwacEeSBoZZVjT_gSA" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_nLNSJAacEeSBoZZVjT_gSA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_nLNSJQacEeSBoZZVjT_gSA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_nLNSJgacEeSBoZZVjT_gSA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nLNSJwacEeSBoZZVjT_gSA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_nLNSKAacEeSBoZZVjT_gSA" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_nLNSKQacEeSBoZZVjT_gSA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_nLNSKgacEeSBoZZVjT_gSA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_nLNSKwacEeSBoZZVjT_gSA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nLNSLAacEeSBoZZVjT_gSA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_nLNSLQacEeSBoZZVjT_gSA" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_nLNSLgacEeSBoZZVjT_gSA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_nLNSLwacEeSBoZZVjT_gSA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_nLNSMAacEeSBoZZVjT_gSA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nLNSMQacEeSBoZZVjT_gSA"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_nLMEAAacEeSBoZZVjT_gSA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nLNSIQacEeSBoZZVjT_gSA" x="80" y="440" width="101" height="101"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_oCLWYAacEeSBoZZVjT_gSA" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_oCL9cAacEeSBoZZVjT_gSA" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_oCL9cQacEeSBoZZVjT_gSA" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_oCL9cgacEeSBoZZVjT_gSA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_oCL9cwacEeSBoZZVjT_gSA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_oCL9dAacEeSBoZZVjT_gSA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_oCL9dQacEeSBoZZVjT_gSA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_oCL9dgacEeSBoZZVjT_gSA" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_oCL9dwacEeSBoZZVjT_gSA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_oCL9eAacEeSBoZZVjT_gSA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_oCL9eQacEeSBoZZVjT_gSA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_oCL9egacEeSBoZZVjT_gSA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_oCL9ewacEeSBoZZVjT_gSA" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_oCL9fAacEeSBoZZVjT_gSA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_oCL9fQacEeSBoZZVjT_gSA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_oCL9fgacEeSBoZZVjT_gSA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_oCL9fwacEeSBoZZVjT_gSA"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_oCKvUAacEeSBoZZVjT_gSA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_oCLWYQacEeSBoZZVjT_gSA" x="400" y="440" width="101" height="101"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_tjr3IAacEeSBoZZVjT_gSA" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_tjr3IgacEeSBoZZVjT_gSA" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_tjr3IwacEeSBoZZVjT_gSA" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_tjr3JAacEeSBoZZVjT_gSA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_tjr3JQacEeSBoZZVjT_gSA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_tjr3JgacEeSBoZZVjT_gSA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tjr3JwacEeSBoZZVjT_gSA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_tjr3KAacEeSBoZZVjT_gSA" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_tjr3KQacEeSBoZZVjT_gSA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_tjr3KgacEeSBoZZVjT_gSA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_tjr3KwacEeSBoZZVjT_gSA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tjr3LAacEeSBoZZVjT_gSA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_tjr3LQacEeSBoZZVjT_gSA" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_tjr3LgacEeSBoZZVjT_gSA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_tjr3LwacEeSBoZZVjT_gSA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_tjr3MAacEeSBoZZVjT_gSA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tjr3MQacEeSBoZZVjT_gSA"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_tjqpAAacEeSBoZZVjT_gSA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tjr3IQacEeSBoZZVjT_gSA" x="220" y="440" width="81" height="101"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_uGDkYAacEeSBoZZVjT_gSA" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_uGDkYgacEeSBoZZVjT_gSA" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_uGDkYwacEeSBoZZVjT_gSA" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_uGDkZAacEeSBoZZVjT_gSA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_uGDkZQacEeSBoZZVjT_gSA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_uGDkZgacEeSBoZZVjT_gSA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uGDkZwacEeSBoZZVjT_gSA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_uGDkaAacEeSBoZZVjT_gSA" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_uGDkaQacEeSBoZZVjT_gSA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_uGDkagacEeSBoZZVjT_gSA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_uGDkawacEeSBoZZVjT_gSA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uGDkbAacEeSBoZZVjT_gSA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_uGDkbQacEeSBoZZVjT_gSA" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_uGDkbgacEeSBoZZVjT_gSA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_uGDkbwacEeSBoZZVjT_gSA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_uGDkcAacEeSBoZZVjT_gSA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uGDkcQacEeSBoZZVjT_gSA"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_uGCWQAacEeSBoZZVjT_gSA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uGDkYQacEeSBoZZVjT_gSA" x="360" y="640" width="101" height="81"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_F4NVgAaeEeSBoZZVjT_gSA" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_F4NVggaeEeSBoZZVjT_gSA" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_F4NVgwaeEeSBoZZVjT_gSA" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_F4NVhAaeEeSBoZZVjT_gSA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_F4NVhQaeEeSBoZZVjT_gSA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_F4NVhgaeEeSBoZZVjT_gSA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_F4NVhwaeEeSBoZZVjT_gSA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_F4NViAaeEeSBoZZVjT_gSA" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_F4NViQaeEeSBoZZVjT_gSA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_F4NVigaeEeSBoZZVjT_gSA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_F4NViwaeEeSBoZZVjT_gSA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_F4NVjAaeEeSBoZZVjT_gSA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_F4NVjQaeEeSBoZZVjT_gSA" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_F4NVjgaeEeSBoZZVjT_gSA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_F4NVjwaeEeSBoZZVjT_gSA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_F4NVkAaeEeSBoZZVjT_gSA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_F4NVkQaeEeSBoZZVjT_gSA"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_F4MucAaeEeSBoZZVjT_gSA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_F4NVgQaeEeSBoZZVjT_gSA" x="600" y="120" width="81" height="81"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_8oW98AahEeSBoZZVjT_gSA" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_8oW98gahEeSBoZZVjT_gSA" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8oW98wahEeSBoZZVjT_gSA" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8oW99AahEeSBoZZVjT_gSA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8oW99QahEeSBoZZVjT_gSA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8oW99gahEeSBoZZVjT_gSA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8oW99wahEeSBoZZVjT_gSA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8oW9-AahEeSBoZZVjT_gSA" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8oW9-QahEeSBoZZVjT_gSA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8oW9-gahEeSBoZZVjT_gSA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8oW9-wahEeSBoZZVjT_gSA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8oW9_AahEeSBoZZVjT_gSA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_8oW9_QahEeSBoZZVjT_gSA" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_8oW9_gahEeSBoZZVjT_gSA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_8oW9_wahEeSBoZZVjT_gSA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_8oW-AAahEeSBoZZVjT_gSA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8oW-AQahEeSBoZZVjT_gSA"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_8oVv0AahEeSBoZZVjT_gSA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8oW98QahEeSBoZZVjT_gSA" x="700" y="420"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_Mpk-0AaiEeSBoZZVjT_gSA" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Mpll4AaiEeSBoZZVjT_gSA" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Mpll4QaiEeSBoZZVjT_gSA" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Mpll4gaiEeSBoZZVjT_gSA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Mpll4waiEeSBoZZVjT_gSA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Mpll5AaiEeSBoZZVjT_gSA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Mpll5QaiEeSBoZZVjT_gSA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Mpll5gaiEeSBoZZVjT_gSA" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Mpll5waiEeSBoZZVjT_gSA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Mpll6AaiEeSBoZZVjT_gSA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Mpll6QaiEeSBoZZVjT_gSA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Mpll6gaiEeSBoZZVjT_gSA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_Mpll6waiEeSBoZZVjT_gSA" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_Mpll7AaiEeSBoZZVjT_gSA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Mpll7QaiEeSBoZZVjT_gSA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Mpll7gaiEeSBoZZVjT_gSA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Mpll7waiEeSBoZZVjT_gSA"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_MpjwsAaiEeSBoZZVjT_gSA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Mpk-0QaiEeSBoZZVjT_gSA" x="60" y="760"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_NDsH8AaiEeSBoZZVjT_gSA" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_NDsH8gaiEeSBoZZVjT_gSA" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_NDsH8waiEeSBoZZVjT_gSA" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_NDsH9AaiEeSBoZZVjT_gSA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_NDsH9QaiEeSBoZZVjT_gSA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_NDsH9gaiEeSBoZZVjT_gSA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NDsH9waiEeSBoZZVjT_gSA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_NDsH-AaiEeSBoZZVjT_gSA" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_NDsH-QaiEeSBoZZVjT_gSA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_NDsH-gaiEeSBoZZVjT_gSA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_NDsH-waiEeSBoZZVjT_gSA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NDsH_AaiEeSBoZZVjT_gSA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_NDsH_QaiEeSBoZZVjT_gSA" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_NDsH_gaiEeSBoZZVjT_gSA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_NDsH_waiEeSBoZZVjT_gSA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_NDsIAAaiEeSBoZZVjT_gSA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NDsIAQaiEeSBoZZVjT_gSA"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_NDq50AaiEeSBoZZVjT_gSA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NDsH8QaiEeSBoZZVjT_gSA" x="420" y="778"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_PvGlUAaiEeSBoZZVjT_gSA" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_PvGlUgaiEeSBoZZVjT_gSA" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_PvHMYAaiEeSBoZZVjT_gSA" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_PvHMYQaiEeSBoZZVjT_gSA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_PvHMYgaiEeSBoZZVjT_gSA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_PvHMYwaiEeSBoZZVjT_gSA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PvHMZAaiEeSBoZZVjT_gSA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_PvHMZQaiEeSBoZZVjT_gSA" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_PvHMZgaiEeSBoZZVjT_gSA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_PvHMZwaiEeSBoZZVjT_gSA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_PvHMaAaiEeSBoZZVjT_gSA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PvHMaQaiEeSBoZZVjT_gSA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_PvHMagaiEeSBoZZVjT_gSA" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_PvHMawaiEeSBoZZVjT_gSA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_PvHMbAaiEeSBoZZVjT_gSA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_PvHMbQaiEeSBoZZVjT_gSA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PvHMbgaiEeSBoZZVjT_gSA"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_PvF-QAaiEeSBoZZVjT_gSA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PvGlUQaiEeSBoZZVjT_gSA" x="240" y="960"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_uptDAAanEeSjBLKX2Tfccg" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_uptDAganEeSjBLKX2Tfccg" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_uptDAwanEeSjBLKX2Tfccg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_uptDBAanEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_uptDBQanEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_uptDBganEeSjBLKX2Tfccg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uptDBwanEeSjBLKX2Tfccg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_uptDCAanEeSjBLKX2Tfccg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_uptDCQanEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_uptDCganEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_uptDCwanEeSjBLKX2Tfccg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uptDDAanEeSjBLKX2Tfccg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_uptDDQanEeSjBLKX2Tfccg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_uptDDganEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_uptDDwanEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_uptDEAanEeSjBLKX2Tfccg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uptDEQanEeSjBLKX2Tfccg"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_upr04AanEeSjBLKX2Tfccg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uptDAQanEeSjBLKX2Tfccg" x="660" y="700" width="101" height="101"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_v1kZMAanEeSjBLKX2Tfccg" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_v1kZMganEeSjBLKX2Tfccg" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_v1kZMwanEeSjBLKX2Tfccg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_v1kZNAanEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_v1kZNQanEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_v1kZNganEeSjBLKX2Tfccg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_v1kZNwanEeSjBLKX2Tfccg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_v1lAQAanEeSjBLKX2Tfccg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_v1lAQQanEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_v1lAQganEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_v1lAQwanEeSjBLKX2Tfccg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_v1lARAanEeSjBLKX2Tfccg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_v1lARQanEeSjBLKX2Tfccg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_v1lARganEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_v1lARwanEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_v1lASAanEeSjBLKX2Tfccg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_v1lASQanEeSjBLKX2Tfccg"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_v1jLEAanEeSjBLKX2Tfccg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_v1kZMQanEeSjBLKX2Tfccg" x="1100" y="880" width="101" height="101"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_xDsZMAanEeSjBLKX2Tfccg" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_xDsZMganEeSjBLKX2Tfccg" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_xDsZMwanEeSjBLKX2Tfccg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_xDsZNAanEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_xDsZNQanEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_xDsZNganEeSjBLKX2Tfccg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xDsZNwanEeSjBLKX2Tfccg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_xDsZOAanEeSjBLKX2Tfccg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_xDsZOQanEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_xDsZOganEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_xDsZOwanEeSjBLKX2Tfccg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xDsZPAanEeSjBLKX2Tfccg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_xDsZPQanEeSjBLKX2Tfccg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_xDsZPganEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_xDsZPwanEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_xDsZQAanEeSjBLKX2Tfccg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xDsZQQanEeSjBLKX2Tfccg"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_xDrLEAanEeSjBLKX2Tfccg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xDsZMQanEeSjBLKX2Tfccg" x="1100" y="1020" width="101" height="81"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_9FzgMAanEeSjBLKX2Tfccg" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_9FzgMganEeSjBLKX2Tfccg" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_9FzgMwanEeSjBLKX2Tfccg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_9FzgNAanEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_9FzgNQanEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_9FzgNganEeSjBLKX2Tfccg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9FzgNwanEeSjBLKX2Tfccg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_9FzgOAanEeSjBLKX2Tfccg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_9FzgOQanEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_9FzgOganEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_9FzgOwanEeSjBLKX2Tfccg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9FzgPAanEeSjBLKX2Tfccg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_9FzgPQanEeSjBLKX2Tfccg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_9FzgPganEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_9FzgPwanEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_9FzgQAanEeSjBLKX2Tfccg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9FzgQQanEeSjBLKX2Tfccg"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_9FySEAanEeSjBLKX2Tfccg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9FzgMQanEeSjBLKX2Tfccg" x="60" y="1180" width="81" height="101"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_-Kug4AanEeSjBLKX2Tfccg" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_-KvH8AanEeSjBLKX2Tfccg" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_-KvH8QanEeSjBLKX2Tfccg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_-KvH8ganEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_-KvH8wanEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_-KvH9AanEeSjBLKX2Tfccg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-KvH9QanEeSjBLKX2Tfccg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_-KvH9ganEeSjBLKX2Tfccg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_-KvH9wanEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_-KvH-AanEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_-KvH-QanEeSjBLKX2Tfccg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-KvH-ganEeSjBLKX2Tfccg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_-KvH-wanEeSjBLKX2Tfccg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_-KvH_AanEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_-KvH_QanEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_-KvH_ganEeSjBLKX2Tfccg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-KvH_wanEeSjBLKX2Tfccg"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_-KtSwAanEeSjBLKX2Tfccg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-Kug4QanEeSjBLKX2Tfccg" x="480" y="1140" width="81" height="81"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_-wZZwAanEeSjBLKX2Tfccg" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_-waA0AanEeSjBLKX2Tfccg" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_-waA0QanEeSjBLKX2Tfccg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_-waA0ganEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_-waA0wanEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_-waA1AanEeSjBLKX2Tfccg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-waA1QanEeSjBLKX2Tfccg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_-waA1ganEeSjBLKX2Tfccg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_-waA1wanEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_-waA2AanEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_-waA2QanEeSjBLKX2Tfccg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-waA2ganEeSjBLKX2Tfccg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_-waA2wanEeSjBLKX2Tfccg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_-waA3AanEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_-waA3QanEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_-waA3ganEeSjBLKX2Tfccg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-waA3wanEeSjBLKX2Tfccg"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_-wYLoAanEeSjBLKX2Tfccg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-wZZwQanEeSjBLKX2Tfccg" x="380" y="1340" width="101" height="101"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_k1EDsAaoEeSjBLKX2Tfccg" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_k1EDsgaoEeSjBLKX2Tfccg" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_k1EDswaoEeSjBLKX2Tfccg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_k1EDtAaoEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_k1EDtQaoEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_k1EDtgaoEeSjBLKX2Tfccg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_k1EDtwaoEeSjBLKX2Tfccg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_k1EDuAaoEeSjBLKX2Tfccg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_k1EDuQaoEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_k1EDugaoEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_k1EDuwaoEeSjBLKX2Tfccg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_k1EDvAaoEeSjBLKX2Tfccg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_k1EDvQaoEeSjBLKX2Tfccg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_k1EDvgaoEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_k1EDvwaoEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_k1EDwAaoEeSjBLKX2Tfccg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_k1EDwQaoEeSjBLKX2Tfccg"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_k1C1kAaoEeSjBLKX2Tfccg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_k1EDsQaoEeSjBLKX2Tfccg" x="660" y="1100" width="81" height="101"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_lWeusAaoEeSjBLKX2Tfccg" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_lWfVwAaoEeSjBLKX2Tfccg" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lWfVwQaoEeSjBLKX2Tfccg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lWfVwgaoEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_lWfVwwaoEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_lWfVxAaoEeSjBLKX2Tfccg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lWfVxQaoEeSjBLKX2Tfccg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lWfVxgaoEeSjBLKX2Tfccg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lWfVxwaoEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_lWfVyAaoEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_lWfVyQaoEeSjBLKX2Tfccg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lWfVygaoEeSjBLKX2Tfccg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_lWfVywaoEeSjBLKX2Tfccg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_lWfVzAaoEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_lWfVzQaoEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_lWfVzgaoEeSjBLKX2Tfccg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lWfVzwaoEeSjBLKX2Tfccg"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_lWeHoAaoEeSjBLKX2Tfccg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lWeusQaoEeSjBLKX2Tfccg" x="1100" y="1240" width="81" height="101"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_mCSEwAaoEeSjBLKX2Tfccg" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_mCSEwgaoEeSjBLKX2Tfccg" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mCSEwwaoEeSjBLKX2Tfccg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mCSExAaoEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_mCSExQaoEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_mCSExgaoEeSjBLKX2Tfccg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mCSExwaoEeSjBLKX2Tfccg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mCSr0AaoEeSjBLKX2Tfccg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mCSr0QaoEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_mCSr0gaoEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_mCSr0waoEeSjBLKX2Tfccg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mCSr1AaoEeSjBLKX2Tfccg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_mCSr1QaoEeSjBLKX2Tfccg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_mCSr1gaoEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_mCSr1waoEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_mCSr2AaoEeSjBLKX2Tfccg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mCSr2QaoEeSjBLKX2Tfccg"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_mCQ2oAaoEeSjBLKX2Tfccg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mCSEwQaoEeSjBLKX2Tfccg" x="880" y="1280" width="101" height="121"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0yoToAaoEeSjBLKX2Tfccg" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_0yoTogaoEeSjBLKX2Tfccg" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0yoTowaoEeSjBLKX2Tfccg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_0yoTpAaoEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0yoTpQaoEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0yoTpgaoEeSjBLKX2Tfccg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0yoTpwaoEeSjBLKX2Tfccg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0yoTqAaoEeSjBLKX2Tfccg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_0yoTqQaoEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0yoTqgaoEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0yoTqwaoEeSjBLKX2Tfccg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0yoTrAaoEeSjBLKX2Tfccg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0yoTrQaoEeSjBLKX2Tfccg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_0yoTrgaoEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0yoTrwaoEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0yoTsAaoEeSjBLKX2Tfccg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0yoTsQaoEeSjBLKX2Tfccg"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_0ynFgAaoEeSjBLKX2Tfccg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0yoToQaoEeSjBLKX2Tfccg" x="60" y="1460" width="121" height="261"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_3_recAaoEeSjBLKX2Tfccg" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_3_recgaoEeSjBLKX2Tfccg" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3_recwaoEeSjBLKX2Tfccg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_3_redAaoEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3_redQaoEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3_redgaoEeSjBLKX2Tfccg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3_redwaoEeSjBLKX2Tfccg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3_reeAaoEeSjBLKX2Tfccg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_3_sFgAaoEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3_sFgQaoEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3_sFggaoEeSjBLKX2Tfccg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3_sFgwaoEeSjBLKX2Tfccg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_3_sFhAaoEeSjBLKX2Tfccg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_3_sFhQaoEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_3_sFhgaoEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_3_sFhwaoEeSjBLKX2Tfccg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3_sFiAaoEeSjBLKX2Tfccg"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_3_qQUAaoEeSjBLKX2Tfccg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3_recQaoEeSjBLKX2Tfccg" x="400" y="1480" width="121" height="301"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_OSVcoAazEeSjBLKX2Tfccg" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_OSWqwAazEeSjBLKX2Tfccg" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_OSWqwQazEeSjBLKX2Tfccg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_OSWqwgazEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_OSWqwwazEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_OSWqxAazEeSjBLKX2Tfccg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OSWqxQazEeSjBLKX2Tfccg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_OSWqxgazEeSjBLKX2Tfccg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_OSWqxwazEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_OSWqyAazEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_OSWqyQazEeSjBLKX2Tfccg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OSWqygazEeSjBLKX2Tfccg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_OSWqywazEeSjBLKX2Tfccg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_OSWqzAazEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_OSWqzQazEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_OSWqzgazEeSjBLKX2Tfccg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OSWqzwazEeSjBLKX2Tfccg"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_OSTncAazEeSjBLKX2Tfccg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OSVcoQazEeSjBLKX2Tfccg" x="560" y="1480" width="101" height="301"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_PaXbsAazEeSjBLKX2Tfccg" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_PaXbsgazEeSjBLKX2Tfccg" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_PaXbswazEeSjBLKX2Tfccg" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_PaXbtAazEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_PaXbtQazEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_PaXbtgazEeSjBLKX2Tfccg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PaXbtwazEeSjBLKX2Tfccg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_PaXbuAazEeSjBLKX2Tfccg" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_PaXbuQazEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_PaXbugazEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_PaXbuwazEeSjBLKX2Tfccg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PaXbvAazEeSjBLKX2Tfccg"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_PaXbvQazEeSjBLKX2Tfccg" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_PaXbvgazEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_PaXbvwazEeSjBLKX2Tfccg"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_PaXbwAazEeSjBLKX2Tfccg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PaXbwQazEeSjBLKX2Tfccg"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_PaWNkAazEeSjBLKX2Tfccg"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PaXbsQazEeSjBLKX2Tfccg" x="980" y="1480" width="81" height="261"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_-7OJkAgvEeSOb7xxF0D0Yw" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_-7OJkggvEeSOb7xxF0D0Yw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_-7OJkwgvEeSOb7xxF0D0Yw" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_-7OJlAgvEeSOb7xxF0D0Yw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_-7OJlQgvEeSOb7xxF0D0Yw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_-7OJlggvEeSOb7xxF0D0Yw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-7OJlwgvEeSOb7xxF0D0Yw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_-7OJmAgvEeSOb7xxF0D0Yw" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_-7OJmQgvEeSOb7xxF0D0Yw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_-7OJmggvEeSOb7xxF0D0Yw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_-7OJmwgvEeSOb7xxF0D0Yw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-7OJnAgvEeSOb7xxF0D0Yw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_-7OJnQgvEeSOb7xxF0D0Yw" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_-7OJnggvEeSOb7xxF0D0Yw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_-7OJnwgvEeSOb7xxF0D0Yw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_-7OJoAgvEeSOb7xxF0D0Yw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-7OJoQgvEeSOb7xxF0D0Yw"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_-62WIAgvEeSOb7xxF0D0Yw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-7OJkQgvEeSOb7xxF0D0Yw" x="80" y="1780"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="__mWxQAgvEeSOb7xxF0D0Yw" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="__mWxQggvEeSOb7xxF0D0Yw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__mXYUAgvEeSOb7xxF0D0Yw" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="__mXYUQgvEeSOb7xxF0D0Yw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__mXYUggvEeSOb7xxF0D0Yw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__mXYUwgvEeSOb7xxF0D0Yw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__mXYVAgvEeSOb7xxF0D0Yw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__mXYVQgvEeSOb7xxF0D0Yw" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="__mXYVggvEeSOb7xxF0D0Yw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__mXYVwgvEeSOb7xxF0D0Yw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__mXYWAgvEeSOb7xxF0D0Yw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__mXYWQgvEeSOb7xxF0D0Yw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="__mXYWggvEeSOb7xxF0D0Yw" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="__mXYWwgvEeSOb7xxF0D0Yw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__mXYXAgvEeSOb7xxF0D0Yw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__mXYXQgvEeSOb7xxF0D0Yw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__mXYXggvEeSOb7xxF0D0Yw"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#__mVjIAgvEeSOb7xxF0D0Yw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__mWxQQgvEeSOb7xxF0D0Yw" x="400" y="1820"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ADYrgAgwEeSOb7xxF0D0Yw" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ADZSkAgwEeSOb7xxF0D0Yw" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ADZSkQgwEeSOb7xxF0D0Yw" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ADZSkggwEeSOb7xxF0D0Yw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ADZSkwgwEeSOb7xxF0D0Yw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ADZSlAgwEeSOb7xxF0D0Yw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ADZSlQgwEeSOb7xxF0D0Yw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ADZSlggwEeSOb7xxF0D0Yw" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ADZSlwgwEeSOb7xxF0D0Yw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ADZSmAgwEeSOb7xxF0D0Yw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ADZSmQgwEeSOb7xxF0D0Yw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ADZSmggwEeSOb7xxF0D0Yw"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_ADZSmwgwEeSOb7xxF0D0Yw" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_ADZSnAgwEeSOb7xxF0D0Yw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_ADZSnQgwEeSOb7xxF0D0Yw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_ADZSnggwEeSOb7xxF0D0Yw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ADZSnwgwEeSOb7xxF0D0Yw"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_ADXdYAgwEeSOb7xxF0D0Yw"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ADYrgQgwEeSOb7xxF0D0Yw" x="220" y="2160"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_wb7BMBCwEeSJbdueZ0I1wQ" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_wb7BMhCwEeSJbdueZ0I1wQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_wb7oQBCwEeSJbdueZ0I1wQ" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_wb7oQRCwEeSJbdueZ0I1wQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_wb7oQhCwEeSJbdueZ0I1wQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_wb7oQxCwEeSJbdueZ0I1wQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wb7oRBCwEeSJbdueZ0I1wQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_wb7oRRCwEeSJbdueZ0I1wQ" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_wb7oRhCwEeSJbdueZ0I1wQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_wb7oRxCwEeSJbdueZ0I1wQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_wb7oSBCwEeSJbdueZ0I1wQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wb7oSRCwEeSJbdueZ0I1wQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_wb7oShCwEeSJbdueZ0I1wQ" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_wb7oSxCwEeSJbdueZ0I1wQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_wb7oTBCwEeSJbdueZ0I1wQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_wb7oTRCwEeSJbdueZ0I1wQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wb7oThCwEeSJbdueZ0I1wQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_wZrlgBCwEeSJbdueZ0I1wQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wb7BMRCwEeSJbdueZ0I1wQ" x="540" y="1960" width="101" height="101"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_xLHpgBCwEeSJbdueZ0I1wQ" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_xLHpghCwEeSJbdueZ0I1wQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_xLHpgxCwEeSJbdueZ0I1wQ" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_xLHphBCwEeSJbdueZ0I1wQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_xLHphRCwEeSJbdueZ0I1wQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_xLHphhCwEeSJbdueZ0I1wQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xLHphxCwEeSJbdueZ0I1wQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_xLHpiBCwEeSJbdueZ0I1wQ" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_xLHpiRCwEeSJbdueZ0I1wQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_xLHpihCwEeSJbdueZ0I1wQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_xLHpixCwEeSJbdueZ0I1wQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xLHpjBCwEeSJbdueZ0I1wQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_xLHpjRCwEeSJbdueZ0I1wQ" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_xLHpjhCwEeSJbdueZ0I1wQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_xLHpjxCwEeSJbdueZ0I1wQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_xLHpkBCwEeSJbdueZ0I1wQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xLHpkRCwEeSJbdueZ0I1wQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_xLFNQBCwEeSJbdueZ0I1wQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xLHpgRCwEeSJbdueZ0I1wQ" x="880" y="1960" width="121" height="121"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_yA9FUBCwEeSJbdueZ0I1wQ" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_yA9FUhCwEeSJbdueZ0I1wQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_yA9FUxCwEeSJbdueZ0I1wQ" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_yA9FVBCwEeSJbdueZ0I1wQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_yA9FVRCwEeSJbdueZ0I1wQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_yA9FVhCwEeSJbdueZ0I1wQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yA9FVxCwEeSJbdueZ0I1wQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_yA9FWBCwEeSJbdueZ0I1wQ" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_yA9FWRCwEeSJbdueZ0I1wQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_yA9FWhCwEeSJbdueZ0I1wQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_yA9FWxCwEeSJbdueZ0I1wQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yA9FXBCwEeSJbdueZ0I1wQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_yA9FXRCwEeSJbdueZ0I1wQ" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_yA9FXhCwEeSJbdueZ0I1wQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_yA9FXxCwEeSJbdueZ0I1wQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_yA9FYBCwEeSJbdueZ0I1wQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yA9FYRCwEeSJbdueZ0I1wQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_yA6CABCwEeSJbdueZ0I1wQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yA9FURCwEeSJbdueZ0I1wQ" x="880" y="2160" width="101" height="81"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_0uhe0BCwEeSJbdueZ0I1wQ" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_0uhe0hCwEeSJbdueZ0I1wQ" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0uhe0xCwEeSJbdueZ0I1wQ" type="7017">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_0uhe1BCwEeSJbdueZ0I1wQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0uhe1RCwEeSJbdueZ0I1wQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0uhe1hCwEeSJbdueZ0I1wQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0uhe1xCwEeSJbdueZ0I1wQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0uhe2BCwEeSJbdueZ0I1wQ" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_0uhe2RCwEeSJbdueZ0I1wQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0uhe2hCwEeSJbdueZ0I1wQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0uhe2xCwEeSJbdueZ0I1wQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0uhe3BCwEeSJbdueZ0I1wQ"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_0uhe3RCwEeSJbdueZ0I1wQ" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_0uhe3hCwEeSJbdueZ0I1wQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_0uhe3xCwEeSJbdueZ0I1wQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_0uhe4BCwEeSJbdueZ0I1wQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0uhe4RCwEeSJbdueZ0I1wQ"/>
+ </children>
+ <element xmi:type="uml:Class" href="model.uml#_0uebgBCwEeSJbdueZ0I1wQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0uhe0RCwEeSJbdueZ0I1wQ" x="860" y="1820" width="101" height="101"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_wfQMkBCxEeSJbdueZ0I1wQ" type="2012">
+ <children xmi:type="notation:DecorationNode" xmi:id="_wfQMkhCxEeSJbdueZ0I1wQ" type="5038"/>
+ <element xmi:type="uml:Comment" href="model.uml#_we-fwBCxEeSJbdueZ0I1wQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wfQMkRCxEeSJbdueZ0I1wQ" x="60" y="220" width="141" height="81"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_hNHp0BCyEeSJbdueZ0I1wQ" type="2012">
+ <children xmi:type="notation:DecorationNode" xmi:id="_hNHp0hCyEeSJbdueZ0I1wQ" type="5038"/>
+ <element xmi:type="uml:Comment" href="model.uml#_hNGbsBCyEeSJbdueZ0I1wQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hNHp0RCyEeSJbdueZ0I1wQ" x="80" y="600"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_lne8UBCyEeSJbdueZ0I1wQ" type="2012">
+ <children xmi:type="notation:DecorationNode" xmi:id="_lne8UhCyEeSJbdueZ0I1wQ" type="5038"/>
+ <element xmi:type="uml:Comment" href="model.uml#_lndHIBCyEeSJbdueZ0I1wQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lne8URCyEeSJbdueZ0I1wQ" x="180" y="720"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_-N3cMBCyEeSJbdueZ0I1wQ" type="2012">
+ <children xmi:type="notation:DecorationNode" xmi:id="_-N3cMhCyEeSJbdueZ0I1wQ" type="5038"/>
+ <element xmi:type="uml:Comment" href="model.uml#_-N0Y4BCyEeSJbdueZ0I1wQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-N3cMRCyEeSJbdueZ0I1wQ" x="800" y="300"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_C8MMgBCzEeSJbdueZ0I1wQ" type="2012">
+ <children xmi:type="notation:DecorationNode" xmi:id="_C8MMghCzEeSJbdueZ0I1wQ" type="5038"/>
+ <element xmi:type="uml:Comment" href="model.uml#_C8KXUBCzEeSJbdueZ0I1wQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_C8MMgRCzEeSJbdueZ0I1wQ" x="800" y="700"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_JolMABCzEeSJbdueZ0I1wQ" type="2012">
+ <children xmi:type="notation:DecorationNode" xmi:id="_JolMAhCzEeSJbdueZ0I1wQ" type="5038"/>
+ <element xmi:type="uml:Comment" href="model.uml#_JojW0BCzEeSJbdueZ0I1wQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JolMARCzEeSJbdueZ0I1wQ" x="140" y="1140"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_WOeVgBCzEeSJbdueZ0I1wQ" type="2012">
+ <children xmi:type="notation:DecorationNode" xmi:id="_WOeVghCzEeSJbdueZ0I1wQ" type="5038"/>
+ <element xmi:type="uml:Comment" href="model.uml#_WOcgUBCzEeSJbdueZ0I1wQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WOeVgRCzEeSJbdueZ0I1wQ" x="740" y="1300"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_eSNicBCzEeSJbdueZ0I1wQ" type="2012">
+ <children xmi:type="notation:DecorationNode" xmi:id="_eSNichCzEeSJbdueZ0I1wQ" type="5038"/>
+ <element xmi:type="uml:Comment" href="model.uml#_eSMUUBCzEeSJbdueZ0I1wQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eSNicRCzEeSJbdueZ0I1wQ" x="220" y="1480"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_ic8dgBCzEeSJbdueZ0I1wQ" type="2012">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ic8dghCzEeSJbdueZ0I1wQ" type="5038"/>
+ <element xmi:type="uml:Comment" href="model.uml#_ic7PYBCzEeSJbdueZ0I1wQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ic8dgRCzEeSJbdueZ0I1wQ" x="720" y="1500"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_pnfYoBCzEeSJbdueZ0I1wQ" type="2012">
+ <children xmi:type="notation:DecorationNode" xmi:id="_pnf_sBCzEeSJbdueZ0I1wQ" type="5038"/>
+ <element xmi:type="uml:Comment" href="model.uml#_pndjcBCzEeSJbdueZ0I1wQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pnfYoRCzEeSJbdueZ0I1wQ" x="20" y="1880"/>
+ </children>
+ <children xmi:type="notation:Shape" xmi:id="_14_mgBCzEeSJbdueZ0I1wQ" type="2012">
+ <children xmi:type="notation:DecorationNode" xmi:id="_14_mghCzEeSJbdueZ0I1wQ" type="5038"/>
+ <element xmi:type="uml:Comment" href="model.uml#_149xUBCzEeSJbdueZ0I1wQ"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_14_mgRCzEeSJbdueZ0I1wQ" x="600" y="2160"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_JJpbcQZ6EeSBoZZVjT_gSA"/>
+ <element xmi:type="uml:Model" href="model.uml#_JJC-gAZ6EeSBoZZVjT_gSA"/>
+ <edges xmi:type="notation:Connector" xmi:id="_ngWSIAaQEeSBoZZVjT_gSA" type="4001" source="_kpq_8AaQEeSBoZZVjT_gSA" target="_lQVXUAaQEeSBoZZVjT_gSA" routing="Rectilinear">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ngW5MAaQEeSBoZZVjT_gSA" visible="false" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ngW5MQaQEeSBoZZVjT_gSA" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ngW5MgaQEeSBoZZVjT_gSA" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ngW5MwaQEeSBoZZVjT_gSA" x="-78" y="-53"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ngW5NAaQEeSBoZZVjT_gSA" visible="false" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ngW5NQaQEeSBoZZVjT_gSA" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ngW5NgaQEeSBoZZVjT_gSA" visible="false" type="6005">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ngW5NwaQEeSBoZZVjT_gSA" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ngW5OAaQEeSBoZZVjT_gSA" visible="false" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ngW5OQaQEeSBoZZVjT_gSA" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ngW5OgaQEeSBoZZVjT_gSA" visible="false" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ngW5OwaQEeSBoZZVjT_gSA" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_ngWSIQaQEeSBoZZVjT_gSA"/>
+ <element xmi:type="uml:Association" href="model.uml#_ngTO0AaQEeSBoZZVjT_gSA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ngWSIgaQEeSBoZZVjT_gSA" points="[5, -4, -209, -2]$[204, -4, -10, -2]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ngifYAaQEeSBoZZVjT_gSA" id="(1.0,0.39603960396039606)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ngifYQaQEeSBoZZVjT_gSA" id="(0.0,0.39603960396039606)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_oOoUcAaQEeSBoZZVjT_gSA" type="4001" source="_kpq_8AaQEeSBoZZVjT_gSA" target="_l0ragAaQEeSBoZZVjT_gSA" routing="Rectilinear">
+ <children xmi:type="notation:DecorationNode" xmi:id="_oOoUcwaQEeSBoZZVjT_gSA" visible="false" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oOoUdAaQEeSBoZZVjT_gSA" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_oOoUdQaQEeSBoZZVjT_gSA" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oOoUdgaQEeSBoZZVjT_gSA" x="38" y="-61"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_oOoUdwaQEeSBoZZVjT_gSA" visible="false" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oOoUeAaQEeSBoZZVjT_gSA" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_oOoUeQaQEeSBoZZVjT_gSA" visible="false" type="6005">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oOoUegaQEeSBoZZVjT_gSA" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_oOo7gAaQEeSBoZZVjT_gSA" visible="false" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oOo7gQaQEeSBoZZVjT_gSA" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_oOo7ggaQEeSBoZZVjT_gSA" visible="false" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oOo7gwaQEeSBoZZVjT_gSA" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_oOoUcQaQEeSBoZZVjT_gSA"/>
+ <element xmi:type="uml:Association" href="model.uml#_oOntYAaQEeSBoZZVjT_gSA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_oOoUcgaQEeSBoZZVjT_gSA" points="[0, 0, -219, -180]$[119, 0, -100, -180]$[119, 160, -100, -20]$[219, 160, 0, -20]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_oOysgAaQEeSBoZZVjT_gSA" id="(1.0,0.39603960396039606)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_oOysgQaQEeSBoZZVjT_gSA" id="(0.0,0.39603960396039606)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_qC7tMAacEeSBoZZVjT_gSA" type="4001" source="_nLNSIAacEeSBoZZVjT_gSA" target="_oCLWYAacEeSBoZZVjT_gSA" routing="Rectilinear">
+ <children xmi:type="notation:DecorationNode" xmi:id="_qC7tMwacEeSBoZZVjT_gSA" visible="false" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qC8UQAacEeSBoZZVjT_gSA" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qC8UQQacEeSBoZZVjT_gSA" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qC8UQgacEeSBoZZVjT_gSA" x="-137" y="-13"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qC8UQwacEeSBoZZVjT_gSA" visible="false" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qC8URAacEeSBoZZVjT_gSA" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qC8URQacEeSBoZZVjT_gSA" visible="false" type="6005">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qC8URgacEeSBoZZVjT_gSA" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qC8URwacEeSBoZZVjT_gSA" visible="false" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qC8USAacEeSBoZZVjT_gSA" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_qC8USQacEeSBoZZVjT_gSA" visible="false" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qC8USgacEeSBoZZVjT_gSA" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_qC7tMQacEeSBoZZVjT_gSA"/>
+ <element xmi:type="uml:Association" href="model.uml#_qC6fEwacEeSBoZZVjT_gSA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_qC7tMgacEeSBoZZVjT_gSA" points="[-19, 0, -359, 0]$[-19, 39, -359, 39]$[352, 39, 12, 39]$[352, 0, 12, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_qDJvoAacEeSBoZZVjT_gSA" id="(0.39603960396039606,1.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_qDJvoQacEeSBoZZVjT_gSA" id="(0.594059405940594,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_uiMt0AacEeSBoZZVjT_gSA" type="4001" source="_tjr3IAacEeSBoZZVjT_gSA" target="_uGDkYAacEeSBoZZVjT_gSA" routing="Rectilinear">
+ <children xmi:type="notation:DecorationNode" xmi:id="_uiMt0wacEeSBoZZVjT_gSA" visible="false" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_uiMt1AacEeSBoZZVjT_gSA" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_uiMt1QacEeSBoZZVjT_gSA" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_uiMt1gacEeSBoZZVjT_gSA" x="16" y="-54"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_uiMt1wacEeSBoZZVjT_gSA" visible="false" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_uiMt2AacEeSBoZZVjT_gSA" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_uiNU4AacEeSBoZZVjT_gSA" visible="false" type="6005">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_uiNU4QacEeSBoZZVjT_gSA" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_uiNU4gacEeSBoZZVjT_gSA" visible="false" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_uiNU4wacEeSBoZZVjT_gSA" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_uiNU5AacEeSBoZZVjT_gSA" visible="false" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_uiNU5QacEeSBoZZVjT_gSA" x="-39" y="1"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_uiMt0QacEeSBoZZVjT_gSA"/>
+ <element xmi:type="uml:Association" href="model.uml#_uiLfsgacEeSBoZZVjT_gSA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_uiMt0gacEeSBoZZVjT_gSA" points="[-22, 34, -150, -139]$[-22, 73, -150, -100]$[38, 73, -90, -100]$[38, 153, -90, -20]$[78, 153, -50, -20]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_uiXF4AacEeSBoZZVjT_gSA" id="(0.7654320987654321,0.6633663366336634)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_9zHg4AahEeSBoZZVjT_gSA" type="4001" source="_F4NVgAaeEeSBoZZVjT_gSA" target="_8oW98AahEeSBoZZVjT_gSA" routing="Rectilinear">
+ <children xmi:type="notation:DecorationNode" xmi:id="_9zHg4wahEeSBoZZVjT_gSA" visible="false" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9zHg5AahEeSBoZZVjT_gSA" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9zHg5QahEeSBoZZVjT_gSA" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9zHg5gahEeSBoZZVjT_gSA" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9zHg5wahEeSBoZZVjT_gSA" visible="false" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9zHg6AahEeSBoZZVjT_gSA" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9zHg6QahEeSBoZZVjT_gSA" visible="false" type="6005">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9zHg6gahEeSBoZZVjT_gSA" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9zHg6wahEeSBoZZVjT_gSA" visible="false" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9zHg7AahEeSBoZZVjT_gSA" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_9zHg7QahEeSBoZZVjT_gSA" visible="false" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9zHg7gahEeSBoZZVjT_gSA" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_9zHg4QahEeSBoZZVjT_gSA"/>
+ <element xmi:type="uml:Association" href="model.uml#_9zFrsAahEeSBoZZVjT_gSA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9zHg4gahEeSBoZZVjT_gSA" points="[-19, 0, -76, -219]$[-19, 99, -76, -120]$[101, 99, 44, -120]$[101, 219, 44, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9zla8AahEeSBoZZVjT_gSA" id="(0.9753086419753086,1.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_DYUO0gaiEeSBoZZVjT_gSA" id="(0.36,0.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_-WPcEAahEeSBoZZVjT_gSA" type="4008" source="_F4NVgAaeEeSBoZZVjT_gSA" target="_8oW98AahEeSBoZZVjT_gSA" routing="Rectilinear">
+ <children xmi:type="notation:DecorationNode" xmi:id="_-WPcEwahEeSBoZZVjT_gSA" type="6026">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-WPcFAahEeSBoZZVjT_gSA" y="40"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_-WPcFQahEeSBoZZVjT_gSA" visible="false" type="6027">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-WPcFgahEeSBoZZVjT_gSA" y="60"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_-WPcEQahEeSBoZZVjT_gSA"/>
+ <element xmi:type="uml:Dependency" href="model.uml#_-WDO0AahEeSBoZZVjT_gSA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_-WPcEgahEeSBoZZVjT_gSA" points="[6, 0, -72, -219]$[6, 99, -72, -120]$[78, 219, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_DYUO0AaiEeSBoZZVjT_gSA" id="(0.6666666666666666,1.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_DYUO0QaiEeSBoZZVjT_gSA" id="(0.32,0.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_QpAo0AaiEeSBoZZVjT_gSA" type="4001" source="_Mpk-0AaiEeSBoZZVjT_gSA" target="_NDsH8AaiEeSBoZZVjT_gSA" routing="Rectilinear">
+ <children xmi:type="notation:DecorationNode" xmi:id="_QpBP4AaiEeSBoZZVjT_gSA" visible="false" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QpBP4QaiEeSBoZZVjT_gSA" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_QpBP4gaiEeSBoZZVjT_gSA" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QpBP4waiEeSBoZZVjT_gSA" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_QpBP5AaiEeSBoZZVjT_gSA" visible="false" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QpBP5QaiEeSBoZZVjT_gSA" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_QpBP5gaiEeSBoZZVjT_gSA" visible="false" type="6005">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QpBP5waiEeSBoZZVjT_gSA" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_QpBP6AaiEeSBoZZVjT_gSA" visible="false" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QpBP6QaiEeSBoZZVjT_gSA" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_QpBP6gaiEeSBoZZVjT_gSA" visible="false" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QpBP6waiEeSBoZZVjT_gSA" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_QpAo0QaiEeSBoZZVjT_gSA"/>
+ <element xmi:type="uml:Association" href="model.uml#_Qo-zowaiEeSBoZZVjT_gSA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QpAo0gaiEeSBoZZVjT_gSA" points="[17, -17, -310, -48]$[137, -17, -190, -48]$[137, 123, -190, 92]$[327, 123, 0, 92]$[327, 81, 0, 50]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QpMPAAaiEeSBoZZVjT_gSA" id="(0.83,0.37)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_R5Z5sAaiEeSBoZZVjT_gSA" type="4001" source="_Mpk-0AaiEeSBoZZVjT_gSA" target="_PvGlUAaiEeSBoZZVjT_gSA" routing="Rectilinear">
+ <children xmi:type="notation:DecorationNode" xmi:id="_R5agwAaiEeSBoZZVjT_gSA" visible="false" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_R5agwQaiEeSBoZZVjT_gSA" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_R5agwgaiEeSBoZZVjT_gSA" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_R5agwwaiEeSBoZZVjT_gSA" x="-50" y="-34"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_R5agxAaiEeSBoZZVjT_gSA" visible="false" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_R5agxQaiEeSBoZZVjT_gSA" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_R5agxgaiEeSBoZZVjT_gSA" visible="false" type="6005">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_R5agxwaiEeSBoZZVjT_gSA" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_R5agyAaiEeSBoZZVjT_gSA" visible="false" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_R5agyQaiEeSBoZZVjT_gSA" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_R5agygaiEeSBoZZVjT_gSA" visible="false" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_R5agywaiEeSBoZZVjT_gSA" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_R5Z5sQaiEeSBoZZVjT_gSA"/>
+ <element xmi:type="uml:Association" href="model.uml#_R5YrkwaiEeSBoZZVjT_gSA"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_R5Z5sgaiEeSBoZZVjT_gSA" points="[17, 24, -139, -135]$[137, 24, -19, -135]$[137, 144, -19, -15]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_R5mG8AaiEeSBoZZVjT_gSA" id="(0.83,0.56)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_R5mG8QaiEeSBoZZVjT_gSA" id="(0.59,0.15)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_x1LggAanEeSjBLKX2Tfccg" type="4001" source="_uptDAAanEeSjBLKX2Tfccg" target="_v1kZMAanEeSjBLKX2Tfccg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_x1LggwanEeSjBLKX2Tfccg" visible="false" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_x1LghAanEeSjBLKX2Tfccg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_x1LghQanEeSjBLKX2Tfccg" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_x1LghganEeSjBLKX2Tfccg" x="71"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_x1LghwanEeSjBLKX2Tfccg" visible="false" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_x1LgiAanEeSjBLKX2Tfccg" x="-23" y="-44"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_x1LgiQanEeSjBLKX2Tfccg" visible="false" type="6005">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_x1LgiganEeSjBLKX2Tfccg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_x1MHkAanEeSjBLKX2Tfccg" visible="false" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_x1MHkQanEeSjBLKX2Tfccg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_x1MHkganEeSjBLKX2Tfccg" visible="false" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_x1MHkwanEeSjBLKX2Tfccg" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_x1LggQanEeSjBLKX2Tfccg"/>
+ <element xmi:type="uml:Association" href="model.uml#_x1JrUwanEeSjBLKX2Tfccg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_x1LggganEeSjBLKX2Tfccg" points="[1, 1, -389, -169]$[100, 160, -290, -10]$[180, 80, -210, -90]$[240, 180, -150, 10]$[340, 180, -50, 10]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_x1aKAAanEeSjBLKX2Tfccg" id="(0.9900990099009901,0.594059405940594)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_z3MbkAanEeSjBLKX2Tfccg" type="4001" source="_uptDAAanEeSjBLKX2Tfccg" target="_xDsZMAanEeSjBLKX2Tfccg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_z3MbkwanEeSjBLKX2Tfccg" visible="false" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_z3MblAanEeSjBLKX2Tfccg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_z3MblQanEeSjBLKX2Tfccg" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_z3MblganEeSjBLKX2Tfccg" x="109" y="98"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_z3MblwanEeSjBLKX2Tfccg" visible="false" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_z3MbmAanEeSjBLKX2Tfccg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_z3MbmQanEeSjBLKX2Tfccg" visible="false" type="6005">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_z3MbmganEeSjBLKX2Tfccg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_z3MbmwanEeSjBLKX2Tfccg" visible="false" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_z3MbnAanEeSjBLKX2Tfccg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_z3MbnQanEeSjBLKX2Tfccg" visible="false" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_z3MbnganEeSjBLKX2Tfccg" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_z3MbkQanEeSjBLKX2Tfccg"/>
+ <element xmi:type="uml:Association" href="model.uml#_z3J_UwanEeSjBLKX2Tfccg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_z3MbkganEeSjBLKX2Tfccg" points="[1, 1, -382, -326]$[100, 160, -283, -167]$[180, 80, -203, -247]$[240, 180, -143, -147]$[340, 282, -43, -45]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_1Kjg4AanEeSjBLKX2Tfccg" id="(0.9900990099009901,0.594059405940594)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_z3nSUAanEeSjBLKX2Tfccg" id="(0.42574257425742573,0.8271604938271605)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="__xsesAanEeSjBLKX2Tfccg" type="4001" source="_9FzgMAanEeSjBLKX2Tfccg" target="_-Kug4AanEeSjBLKX2Tfccg">
+ <children xmi:type="notation:DecorationNode" xmi:id="__xseswanEeSjBLKX2Tfccg" visible="false" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__xsetAanEeSjBLKX2Tfccg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="__xsetQanEeSjBLKX2Tfccg" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__xsetganEeSjBLKX2Tfccg" x="-103" y="-31"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="__xsetwanEeSjBLKX2Tfccg" visible="false" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__xseuAanEeSjBLKX2Tfccg" x="137" y="-8"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="__xseuQanEeSjBLKX2Tfccg" visible="false" type="6005">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__xseuganEeSjBLKX2Tfccg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="__xtFwAanEeSjBLKX2Tfccg" visible="false" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__xtFwQanEeSjBLKX2Tfccg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="__xtFwganEeSjBLKX2Tfccg" visible="false" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__xtFwwanEeSjBLKX2Tfccg" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="__xsesQanEeSjBLKX2Tfccg"/>
+ <element xmi:type="uml:Association" href="model.uml#__xqpgwanEeSjBLKX2Tfccg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="__xsesganEeSjBLKX2Tfccg" points="[1, 0, -339, 60]$[80, 0, -260, 60]$[40, 80, -300, 140]$[100, 80, -240, 140]$[120, -20, -220, 40]$[180, -20, -160, 40]$[180, 0, -160, 60]$[220, 60, -120, 120]$[260, -60, -80, 0]$[320, 40, -20, 100]$[340, -60, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AVCcUAaoEeSjBLKX2Tfccg" id="(0.9876543209876543,0.39603960396039606)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AmpJsAaoEeSjBLKX2Tfccg" id="(0.0,0.24691358024691357)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_DQ5JcAaoEeSjBLKX2Tfccg" type="4001" source="_9FzgMAanEeSjBLKX2Tfccg" target="_-wZZwAanEeSjBLKX2Tfccg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_DQ5JcwaoEeSjBLKX2Tfccg" visible="false" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_DQ5JdAaoEeSjBLKX2Tfccg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_DQ5JdQaoEeSjBLKX2Tfccg" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_DQ5JdgaoEeSjBLKX2Tfccg" x="109" y="15"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_DQ5JdwaoEeSjBLKX2Tfccg" visible="false" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_DQ5JeAaoEeSjBLKX2Tfccg" x="145" y="78"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_DQ5JeQaoEeSjBLKX2Tfccg" visible="false" type="6005">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_DQ5JegaoEeSjBLKX2Tfccg" x="-120" y="49"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_DQ5JewaoEeSjBLKX2Tfccg" visible="false" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_DQ5JfAaoEeSjBLKX2Tfccg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_DQ5wgAaoEeSjBLKX2Tfccg" visible="false" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_DQ5wgQaoEeSjBLKX2Tfccg" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_DQ5JcQaoEeSjBLKX2Tfccg"/>
+ <element xmi:type="uml:Association" href="model.uml#_DQ3UQwaoEeSjBLKX2Tfccg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_DQ5JcgaoEeSjBLKX2Tfccg" points="[1, 0, -304, -197]$[80, 0, -225, -197]$[40, 80, -265, -117]$[100, 80, -205, -117]$[120, -20, -185, -217]$[120, 120, -185, -77]$[220, 60, -85, -137]$[240, 0, -65, -197]$[279, 120, -26, -77]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_DRUnQAaoEeSjBLKX2Tfccg" id="(0.9876543209876543,0.39603960396039606)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_DRUnQQaoEeSjBLKX2Tfccg" id="(0.6435643564356436,0.7623762376237624)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_oIuz4AaoEeSjBLKX2Tfccg" type="4001" source="_k1EDsAaoEeSjBLKX2Tfccg" target="_lWeusAaoEeSjBLKX2Tfccg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_oIuz4waoEeSjBLKX2Tfccg" visible="false" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oIuz5AaoEeSjBLKX2Tfccg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_oIuz5QaoEeSjBLKX2Tfccg" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oIuz5gaoEeSjBLKX2Tfccg" x="101" y="-53"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_oIuz5waoEeSjBLKX2Tfccg" visible="false" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oIuz6AaoEeSjBLKX2Tfccg" x="-61" y="-46"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_oIuz6QaoEeSjBLKX2Tfccg" visible="false" type="6005">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oIuz6gaoEeSjBLKX2Tfccg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_oIva8AaoEeSjBLKX2Tfccg" visible="false" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oIva8QaoEeSjBLKX2Tfccg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_oIva8gaoEeSjBLKX2Tfccg" visible="false" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_oIva8waoEeSjBLKX2Tfccg" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_oIuz4QaoEeSjBLKX2Tfccg"/>
+ <element xmi:type="uml:Association" href="model.uml#_oIs-swaoEeSjBLKX2Tfccg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_oIuz4gaoEeSjBLKX2Tfccg" points="[1, 0, -359, -123]$[40, 0, -320, -123]$[40, 40, -320, -83]$[120, 40, -240, -83]$[360, 123, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_oI6aEAaoEeSjBLKX2Tfccg" id="(1.0,0.19801980198019803)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_oI6aEQaoEeSjBLKX2Tfccg" id="(0.0,0.0297029702970297)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_ow6OMAaoEeSjBLKX2Tfccg" type="4001" source="_k1EDsAaoEeSjBLKX2Tfccg" target="_mCSEwAaoEeSjBLKX2Tfccg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ow61QAaoEeSjBLKX2Tfccg" visible="false" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ow61QQaoEeSjBLKX2Tfccg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ow61QgaoEeSjBLKX2Tfccg" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ow61QwaoEeSjBLKX2Tfccg" x="-39" y="110"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ow61RAaoEeSjBLKX2Tfccg" visible="false" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ow61RQaoEeSjBLKX2Tfccg" x="-25" y="-93"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ow61RgaoEeSjBLKX2Tfccg" visible="false" type="6005">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ow61RwaoEeSjBLKX2Tfccg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ow61SAaoEeSjBLKX2Tfccg" visible="false" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ow61SQaoEeSjBLKX2Tfccg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ow61SgaoEeSjBLKX2Tfccg" visible="false" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ow61SwaoEeSjBLKX2Tfccg" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_ow6OMQaoEeSjBLKX2Tfccg"/>
+ <element xmi:type="uml:Association" href="model.uml#_ow4ZAwaoEeSjBLKX2Tfccg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ow6OMgaoEeSjBLKX2Tfccg" points="[1, 0, -139, -136]$[40, 0, -100, -136]$[140, 136, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_oxGbcAaoEeSjBLKX2Tfccg" id="(1.0,0.594059405940594)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_pOp6IAaoEeSjBLKX2Tfccg" id="(0.0,0.1322314049586777)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_4kyWoAaoEeSjBLKX2Tfccg" type="4001" source="_0yoToAaoEeSjBLKX2Tfccg" target="_3_recAaoEeSjBLKX2Tfccg" routing="Rectilinear">
+ <children xmi:type="notation:DecorationNode" xmi:id="_4kyWowaoEeSjBLKX2Tfccg" visible="false" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4kyWpAaoEeSjBLKX2Tfccg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_4kyWpQaoEeSjBLKX2Tfccg" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4kyWpgaoEeSjBLKX2Tfccg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_4kyWpwaoEeSjBLKX2Tfccg" visible="false" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4kyWqAaoEeSjBLKX2Tfccg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_4kyWqQaoEeSjBLKX2Tfccg" visible="false" type="6005">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4kyWqgaoEeSjBLKX2Tfccg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_4kyWqwaoEeSjBLKX2Tfccg" visible="false" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4kyWrAaoEeSjBLKX2Tfccg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_4kyWrQaoEeSjBLKX2Tfccg" visible="false" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4ky9sAaoEeSjBLKX2Tfccg" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_4kyWoQaoEeSjBLKX2Tfccg"/>
+ <element xmi:type="uml:Association" href="model.uml#_4kwhcAaoEeSjBLKX2Tfccg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_4kyWogaoEeSjBLKX2Tfccg" points="[13, 7, -279, -90]$[112, 7, -180, -90]$[112, 67, -180, -30]$[232, 67, -60, -30]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_4k9VwAaoEeSjBLKX2Tfccg" id="(0.8925619834710744,0.2809917355371901)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_6TyPEAaoEeSjBLKX2Tfccg" type="4001" source="_0yoToAaoEeSjBLKX2Tfccg" target="_3_recAaoEeSjBLKX2Tfccg" routing="Rectilinear">
+ <children xmi:type="notation:DecorationNode" xmi:id="_6Ty2IAaoEeSjBLKX2Tfccg" visible="false" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_6Ty2IQaoEeSjBLKX2Tfccg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_6Ty2IgaoEeSjBLKX2Tfccg" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_6Ty2IwaoEeSjBLKX2Tfccg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_6Ty2JAaoEeSjBLKX2Tfccg" visible="false" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_6Ty2JQaoEeSjBLKX2Tfccg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_6Ty2JgaoEeSjBLKX2Tfccg" visible="false" type="6005">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_6Ty2JwaoEeSjBLKX2Tfccg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_6Ty2KAaoEeSjBLKX2Tfccg" visible="false" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_6Ty2KQaoEeSjBLKX2Tfccg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_6TzdMAaoEeSjBLKX2Tfccg" visible="false" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_6TzdMQaoEeSjBLKX2Tfccg" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_6TyPEQaoEeSjBLKX2Tfccg"/>
+ <element xmi:type="uml:Association" href="model.uml#_6Tvy0AaoEeSjBLKX2Tfccg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_6TyPEgaoEeSjBLKX2Tfccg" points="[61, 10, -267, -115]$[160, 10, -168, -115]$[160, 110, -168, -15]$[280, 110, -48, -15]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_6UD74AaoEeSjBLKX2Tfccg" id="(0.39669421487603307,0.7821782178217822)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_QL60cAazEeSjBLKX2Tfccg" type="4001" source="_OSVcoAazEeSjBLKX2Tfccg" target="_PaXbsAazEeSjBLKX2Tfccg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_QL7bgAazEeSjBLKX2Tfccg" visible="false" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QL7bgQazEeSjBLKX2Tfccg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_QL7bggazEeSjBLKX2Tfccg" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QL7bgwazEeSjBLKX2Tfccg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_QL7bhAazEeSjBLKX2Tfccg" visible="false" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QL7bhQazEeSjBLKX2Tfccg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_QL7bhgazEeSjBLKX2Tfccg" visible="false" type="6005">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QL7bhwazEeSjBLKX2Tfccg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_QL7biAazEeSjBLKX2Tfccg" visible="false" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QL7biQazEeSjBLKX2Tfccg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_QL7bigazEeSjBLKX2Tfccg" visible="false" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QL7biwazEeSjBLKX2Tfccg" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_QL60cQazEeSjBLKX2Tfccg"/>
+ <element xmi:type="uml:Association" href="model.uml#_QL4_QAazEeSjBLKX2Tfccg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QL60cgazEeSjBLKX2Tfccg" points="[1, 1, -339, -19]$[80, 120, -260, 100]$[140, 180, -200, 160]$[200, 120, -140, 100]$[320, 34, -20, 14]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QMJd8AazEeSjBLKX2Tfccg" id="(0.9900990099009901,0.132890365448505)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QMJd8QazEeSjBLKX2Tfccg" id="(0.24691358024691357,0.22988505747126436)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_T8sXYAazEeSjBLKX2Tfccg" type="4001" source="_OSVcoAazEeSjBLKX2Tfccg" target="_PaXbsAazEeSjBLKX2Tfccg">
+ <children xmi:type="notation:DecorationNode" xmi:id="_T8sXYwazEeSjBLKX2Tfccg" visible="false" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_T8sXZAazEeSjBLKX2Tfccg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_T8sXZQazEeSjBLKX2Tfccg" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_T8sXZgazEeSjBLKX2Tfccg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_T8sXZwazEeSjBLKX2Tfccg" visible="false" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_T8sXaAazEeSjBLKX2Tfccg" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_T8sXaQazEeSjBLKX2Tfccg" visible="false" type="6005">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_T8sXagazEeSjBLKX2Tfccg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_T8sXawazEeSjBLKX2Tfccg" visible="false" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_T8sXbAazEeSjBLKX2Tfccg" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_T8sXbQazEeSjBLKX2Tfccg" visible="false" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_T8sXbgazEeSjBLKX2Tfccg" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_T8sXYQazEeSjBLKX2Tfccg"/>
+ <element xmi:type="uml:Association" href="model.uml#_T8qiMAazEeSjBLKX2Tfccg"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_T8sXYgazEeSjBLKX2Tfccg" points="[9, -11, -334, 204]$[88, -98, -255, 117]$[148, -158, -195, 57]$[208, -98, -135, 117]$[328, -18, -15, 197]$[328, -18, -15, 197]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_T82vcAazEeSjBLKX2Tfccg" id="(0.9108910891089109,0.8571428571428571)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_T82vcQazEeSjBLKX2Tfccg" id="(0.18518518518518517,0.16475095785440613)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_Biu-YAgwEeSOb7xxF0D0Yw" type="4001" source="_-7OJkAgvEeSOb7xxF0D0Yw" target="_ADYrgAgwEeSOb7xxF0D0Yw" routing="Rectilinear">
+ <children xmi:type="notation:DecorationNode" xmi:id="_Biu-YwgwEeSOb7xxF0D0Yw" visible="false" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Biu-ZAgwEeSOb7xxF0D0Yw" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Biu-ZQgwEeSOb7xxF0D0Yw" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Biu-ZggwEeSOb7xxF0D0Yw" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Biu-ZwgwEeSOb7xxF0D0Yw" visible="false" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Biu-aAgwEeSOb7xxF0D0Yw" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Biu-aQgwEeSOb7xxF0D0Yw" visible="false" type="6005">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Biu-aggwEeSOb7xxF0D0Yw" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_Biu-awgwEeSOb7xxF0D0Yw" visible="false" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_BivlcAgwEeSOb7xxF0D0Yw" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_BivlcQgwEeSOb7xxF0D0Yw" visible="false" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_BivlcggwEeSOb7xxF0D0Yw" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Biu-YQgwEeSOb7xxF0D0Yw"/>
+ <element xmi:type="uml:Association" href="model.uml#_Bir7EwgwEeSOb7xxF0D0Yw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Biu-YggwEeSOb7xxF0D0Yw" points="[50, 10, -90, -370]$[150, 10, 10, -370]$[150, 210, 10, -170]$[105, 210, -35, -170]$[105, 330, -35, -50]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_CLVPcAgwEeSOb7xxF0D0Yw" type="4001" source="__mWxQAgvEeSOb7xxF0D0Yw" target="_ADYrgAgwEeSOb7xxF0D0Yw" routing="Rectilinear">
+ <children xmi:type="notation:DecorationNode" xmi:id="_CLVPcwgwEeSOb7xxF0D0Yw" visible="false" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CLVPdAgwEeSOb7xxF0D0Yw" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_CLVPdQgwEeSOb7xxF0D0Yw" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CLVPdggwEeSOb7xxF0D0Yw" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_CLVPdwgwEeSOb7xxF0D0Yw" visible="false" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CLVPeAgwEeSOb7xxF0D0Yw" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_CLVPeQgwEeSOb7xxF0D0Yw" visible="false" type="6005">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CLVPeggwEeSOb7xxF0D0Yw" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_CLVPewgwEeSOb7xxF0D0Yw" visible="false" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CLVPfAgwEeSOb7xxF0D0Yw" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_CLVPfQgwEeSOb7xxF0D0Yw" visible="false" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_CLVPfggwEeSOb7xxF0D0Yw" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_CLVPcQgwEeSOb7xxF0D0Yw"/>
+ <element xmi:type="uml:Association" href="model.uml#_CLSMIwgwEeSOb7xxF0D0Yw"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_CLVPcggwEeSOb7xxF0D0Yw" points="[-50, 0, 130, -340]$[-230, 0, -50, -340]$[-230, 30, -50, -310]$[-170, 30, 10, -310]$[-170, 70, 10, -270]$[-310, 70, -130, -270]$[-310, 90, -130, -250]$[-110, 90, 70, -250]$[-110, 130, 70, -210]$[-170, 130, 10, -210]$[-170, 290, 10, -50]"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_y-u8MBCwEeSJbdueZ0I1wQ" type="4001" source="_wb7BMBCwEeSJbdueZ0I1wQ" target="_xLHpgBCwEeSJbdueZ0I1wQ" routing="Rectilinear">
+ <children xmi:type="notation:DecorationNode" xmi:id="_y-u8MxCwEeSJbdueZ0I1wQ" visible="false" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_y-u8NBCwEeSJbdueZ0I1wQ" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_y-u8NRCwEeSJbdueZ0I1wQ" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_y-u8NhCwEeSJbdueZ0I1wQ" x="-94" y="143"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_y-u8NxCwEeSJbdueZ0I1wQ" visible="false" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_y-u8OBCwEeSJbdueZ0I1wQ" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_y-vjQBCwEeSJbdueZ0I1wQ" visible="false" type="6005">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_y-vjQRCwEeSJbdueZ0I1wQ" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_y-vjQhCwEeSJbdueZ0I1wQ" visible="false" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_y-vjQxCwEeSJbdueZ0I1wQ" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_y-vjRBCwEeSJbdueZ0I1wQ" visible="false" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_y-vjRRCwEeSJbdueZ0I1wQ" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_y-u8MRCwEeSJbdueZ0I1wQ"/>
+ <element xmi:type="uml:Association" href="model.uml#_y-mZUBCwEeSJbdueZ0I1wQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_y-u8MhCwEeSJbdueZ0I1wQ" points="[19, -31, -279, -80]$[158, -31, -140, -80]$[158, 49, -140, 0]$[258, 49, -40, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_y_E6cBCwEeSJbdueZ0I1wQ" id="(0.8118811881188119,0.504950495049505)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5L_vsBCwEeSJbdueZ0I1wQ" id="(0.3305785123966942,0.8264462809917356)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_ztxMcBCwEeSJbdueZ0I1wQ" type="4001" source="_wb7BMBCwEeSJbdueZ0I1wQ" target="_yA9FUBCwEeSJbdueZ0I1wQ" routing="Rectilinear">
+ <children xmi:type="notation:DecorationNode" xmi:id="_ztxMcxCwEeSJbdueZ0I1wQ" visible="false" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ztxMdBCwEeSJbdueZ0I1wQ" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ztxMdRCwEeSJbdueZ0I1wQ" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ztxMdhCwEeSJbdueZ0I1wQ" x="6" y="55"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ztxMdxCwEeSJbdueZ0I1wQ" visible="false" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ztxMeBCwEeSJbdueZ0I1wQ" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ztxMeRCwEeSJbdueZ0I1wQ" visible="false" type="6005">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ztxMehCwEeSJbdueZ0I1wQ" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ztxMexCwEeSJbdueZ0I1wQ" visible="false" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ztxMfBCwEeSJbdueZ0I1wQ" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_ztxMfRCwEeSJbdueZ0I1wQ" visible="false" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ztxMfhCwEeSJbdueZ0I1wQ" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_ztxMcRCwEeSJbdueZ0I1wQ"/>
+ <element xmi:type="uml:Association" href="model.uml#_ztuJIxCwEeSJbdueZ0I1wQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ztxMchCwEeSJbdueZ0I1wQ" points="[0, -13, -279, -140]$[139, -13, -140, -140]$[139, 147, -140, 20]$[239, 147, -40, 20]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0MGuQBCwEeSJbdueZ0I1wQ" id="(1.0,0.7227722772277227)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_zuEucBCwEeSJbdueZ0I1wQ" id="(0.39603960396039606,0.0)"/>
+ </edges>
+ <edges xmi:type="notation:Connector" xmi:id="_1Qh_sBCwEeSJbdueZ0I1wQ" type="4001" source="_wb7BMBCwEeSJbdueZ0I1wQ" target="_0uhe0BCwEeSJbdueZ0I1wQ" routing="Rectilinear">
+ <children xmi:type="notation:DecorationNode" xmi:id="_1QimwBCwEeSJbdueZ0I1wQ" visible="false" type="6001">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1QimwRCwEeSJbdueZ0I1wQ" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1QimwhCwEeSJbdueZ0I1wQ" type="6002">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1QimwxCwEeSJbdueZ0I1wQ" x="92" y="-63"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1QimxBCwEeSJbdueZ0I1wQ" visible="false" type="6003">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1QimxRCwEeSJbdueZ0I1wQ" y="-20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1QimxhCwEeSJbdueZ0I1wQ" visible="false" type="6005">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1QimxxCwEeSJbdueZ0I1wQ" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1QimyBCwEeSJbdueZ0I1wQ" visible="false" type="6033">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1QimyRCwEeSJbdueZ0I1wQ" y="20"/>
+ </children>
+ <children xmi:type="notation:DecorationNode" xmi:id="_1QjN0BCwEeSJbdueZ0I1wQ" visible="false" type="6034">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1QjN0RCwEeSJbdueZ0I1wQ" y="-20"/>
+ </children>
+ <styles xmi:type="notation:FontStyle" xmi:id="_1Qh_sRCwEeSJbdueZ0I1wQ"/>
+ <element xmi:type="uml:Association" href="model.uml#_1QduQxCwEeSJbdueZ0I1wQ"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_1Qh_shCwEeSJbdueZ0I1wQ" points="[51, -30, -269, 110]$[150, -30, -170, 110]$[150, -130, -170, 10]$[270, -130, -50, 10]"/>
+ </edges>
+</notation:Diagram>
diff --git a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common.tests/resources/model.uml b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common.tests/resources/model.uml
new file mode 100644
index 0000000..2406a58
--- /dev/null
+++ b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common.tests/resources/model.uml
@@ -0,0 +1,302 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Model xmi:version="20110701" xmlns:xmi="http://www.omg.org/spec/XMI/20110701" xmlns:uml="http://www.eclipse.org/uml2/4.0.0/UML" xmi:id="_JJC-gAZ6EeSBoZZVjT_gSA" name="model">
+ <ownedComment xmi:type="uml:Comment" xmi:id="_we-fwBCxEeSJbdueZ0I1wQ">
+ <body>Test1</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_hNGbsBCyEeSJbdueZ0I1wQ">
+ <body>Test2</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_lndHIBCyEeSJbdueZ0I1wQ">
+ <body>Test3</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_-N0Y4BCyEeSJbdueZ0I1wQ">
+ <body>Test4</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_C8KXUBCzEeSJbdueZ0I1wQ">
+ <body>Test5</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_JojW0BCzEeSJbdueZ0I1wQ">
+ <body>Test6</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_WOcgUBCzEeSJbdueZ0I1wQ">
+ <body>Test7</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_eSMUUBCzEeSJbdueZ0I1wQ">
+ <body>Test8</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_ic7PYBCzEeSJbdueZ0I1wQ">
+ <body>Test9</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_pndjcBCzEeSJbdueZ0I1wQ">
+ <body>Test10</body>
+ </ownedComment>
+ <ownedComment xmi:type="uml:Comment" xmi:id="_149xUBCzEeSJbdueZ0I1wQ">
+ <body>Test11</body>
+ </ownedComment>
+ <packagedElement xmi:type="uml:Class" xmi:id="_kpL3wAaQEeSBoZZVjT_gSA" name="Class1">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_ngSnwAaQEeSBoZZVjT_gSA" name="class2" type="_lQUJMAaQEeSBoZZVjT_gSA" association="_ngTO0AaQEeSBoZZVjT_gSA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ngSnwQaQEeSBoZZVjT_gSA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ngSnwgaQEeSBoZZVjT_gSA" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_oOnGUAaQEeSBoZZVjT_gSA" name="class3" type="_l0qMYAaQEeSBoZZVjT_gSA" association="_oOntYAaQEeSBoZZVjT_gSA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_oOnGUQaQEeSBoZZVjT_gSA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_oOnGUgaQEeSBoZZVjT_gSA" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_lQUJMAaQEeSBoZZVjT_gSA" name="Class2"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_l0qMYAaQEeSBoZZVjT_gSA" name="Class3"/>
+ <packagedElement xmi:type="uml:Association" xmi:id="_ngTO0AaQEeSBoZZVjT_gSA" name="Association1" memberEnd="_ngTO0QaQEeSBoZZVjT_gSA _ngSnwAaQEeSBoZZVjT_gSA">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_ngTO0QaQEeSBoZZVjT_gSA" name="class1" type="_kpL3wAaQEeSBoZZVjT_gSA" association="_ngTO0AaQEeSBoZZVjT_gSA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ngTO0gaQEeSBoZZVjT_gSA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ngTO0waQEeSBoZZVjT_gSA" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_oOntYAaQEeSBoZZVjT_gSA" name="Association2" memberEnd="_oOntYQaQEeSBoZZVjT_gSA _oOnGUAaQEeSBoZZVjT_gSA">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_oOntYQaQEeSBoZZVjT_gSA" name="class1" type="_kpL3wAaQEeSBoZZVjT_gSA" association="_oOntYAaQEeSBoZZVjT_gSA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_oOntYgaQEeSBoZZVjT_gSA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_oOntYwaQEeSBoZZVjT_gSA" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_nLMEAAacEeSBoZZVjT_gSA" name="Class4">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_qC6fEAacEeSBoZZVjT_gSA" name="class5" type="_oCKvUAacEeSBoZZVjT_gSA" association="_qC6fEwacEeSBoZZVjT_gSA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_qC6fEQacEeSBoZZVjT_gSA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_qC6fEgacEeSBoZZVjT_gSA" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_oCKvUAacEeSBoZZVjT_gSA" name="Class5"/>
+ <packagedElement xmi:type="uml:Association" xmi:id="_qC6fEwacEeSBoZZVjT_gSA" name="Association3" memberEnd="_qC6fFAacEeSBoZZVjT_gSA _qC6fEAacEeSBoZZVjT_gSA">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_qC6fFAacEeSBoZZVjT_gSA" name="class4" type="_nLMEAAacEeSBoZZVjT_gSA" association="_qC6fEwacEeSBoZZVjT_gSA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_qC6fFQacEeSBoZZVjT_gSA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_qC6fFgacEeSBoZZVjT_gSA" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_tjqpAAacEeSBoZZVjT_gSA" name="Class6">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_uiK4oAacEeSBoZZVjT_gSA" name="class7" type="_uGCWQAacEeSBoZZVjT_gSA" association="_uiLfsgacEeSBoZZVjT_gSA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_uiLfsAacEeSBoZZVjT_gSA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_uiLfsQacEeSBoZZVjT_gSA" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_uGCWQAacEeSBoZZVjT_gSA" name="Class7"/>
+ <packagedElement xmi:type="uml:Association" xmi:id="_uiLfsgacEeSBoZZVjT_gSA" name="Association4" memberEnd="_uiLfswacEeSBoZZVjT_gSA _uiK4oAacEeSBoZZVjT_gSA">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_uiLfswacEeSBoZZVjT_gSA" name="class6" type="_tjqpAAacEeSBoZZVjT_gSA" association="_uiLfsgacEeSBoZZVjT_gSA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_uiLftAacEeSBoZZVjT_gSA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_uiLftQacEeSBoZZVjT_gSA" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_F4MucAaeEeSBoZZVjT_gSA" clientDependency="_-WDO0AahEeSBoZZVjT_gSA" name="Class8">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_9zFEoAahEeSBoZZVjT_gSA" name="class9" type="_8oVv0AahEeSBoZZVjT_gSA" association="_9zFrsAahEeSBoZZVjT_gSA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_9zFEoQahEeSBoZZVjT_gSA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_9zFEogahEeSBoZZVjT_gSA" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_8oVv0AahEeSBoZZVjT_gSA" name="Class9"/>
+ <packagedElement xmi:type="uml:Association" xmi:id="_9zFrsAahEeSBoZZVjT_gSA" name="Association5" memberEnd="_9zFrsQahEeSBoZZVjT_gSA _9zFEoAahEeSBoZZVjT_gSA">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_9zFrsQahEeSBoZZVjT_gSA" name="class8" type="_F4MucAaeEeSBoZZVjT_gSA" association="_9zFrsAahEeSBoZZVjT_gSA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_9zFrsgahEeSBoZZVjT_gSA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_9zFrswahEeSBoZZVjT_gSA" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Dependency" xmi:id="_-WDO0AahEeSBoZZVjT_gSA" name="Dependency1" client="_F4MucAaeEeSBoZZVjT_gSA" supplier="_8oVv0AahEeSBoZZVjT_gSA"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_MpjwsAaiEeSBoZZVjT_gSA" name="Class10">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_Qo-zoAaiEeSBoZZVjT_gSA" name="class11" type="_NDq50AaiEeSBoZZVjT_gSA" association="_Qo-zowaiEeSBoZZVjT_gSA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Qo-zoQaiEeSBoZZVjT_gSA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Qo-zogaiEeSBoZZVjT_gSA" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_R5YrkAaiEeSBoZZVjT_gSA" name="class12" type="_PvF-QAaiEeSBoZZVjT_gSA" association="_R5YrkwaiEeSBoZZVjT_gSA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_R5YrkQaiEeSBoZZVjT_gSA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_R5YrkgaiEeSBoZZVjT_gSA" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_NDq50AaiEeSBoZZVjT_gSA" name="Class11"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_PvF-QAaiEeSBoZZVjT_gSA" name="Class12"/>
+ <packagedElement xmi:type="uml:Association" xmi:id="_Qo-zowaiEeSBoZZVjT_gSA" name="Association6" memberEnd="_Qo-zpAaiEeSBoZZVjT_gSA _Qo-zoAaiEeSBoZZVjT_gSA">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_Qo-zpAaiEeSBoZZVjT_gSA" name="class10" type="_MpjwsAaiEeSBoZZVjT_gSA" association="_Qo-zowaiEeSBoZZVjT_gSA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Qo-zpQaiEeSBoZZVjT_gSA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Qo-zpgaiEeSBoZZVjT_gSA" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_R5YrkwaiEeSBoZZVjT_gSA" name="Association7" memberEnd="_R5YrlAaiEeSBoZZVjT_gSA _R5YrkAaiEeSBoZZVjT_gSA">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_R5YrlAaiEeSBoZZVjT_gSA" name="class10" type="_MpjwsAaiEeSBoZZVjT_gSA" association="_R5YrkwaiEeSBoZZVjT_gSA">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_R5YrlQaiEeSBoZZVjT_gSA" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_R5YrlgaiEeSBoZZVjT_gSA" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_upr04AanEeSjBLKX2Tfccg" name="Class13">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_x1JrUAanEeSjBLKX2Tfccg" name="class14" type="_v1jLEAanEeSjBLKX2Tfccg" association="_x1JrUwanEeSjBLKX2Tfccg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_x1JrUQanEeSjBLKX2Tfccg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_x1JrUganEeSjBLKX2Tfccg" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_z3J_UAanEeSjBLKX2Tfccg" name="class15" type="_xDrLEAanEeSjBLKX2Tfccg" association="_z3J_UwanEeSjBLKX2Tfccg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_z3J_UQanEeSjBLKX2Tfccg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_z3J_UganEeSjBLKX2Tfccg" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_v1jLEAanEeSjBLKX2Tfccg" name="Class14"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xDrLEAanEeSjBLKX2Tfccg" name="Class15"/>
+ <packagedElement xmi:type="uml:Association" xmi:id="_x1JrUwanEeSjBLKX2Tfccg" name="Association8" memberEnd="_x1JrVAanEeSjBLKX2Tfccg _x1JrUAanEeSjBLKX2Tfccg">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_x1JrVAanEeSjBLKX2Tfccg" name="class13" type="_upr04AanEeSjBLKX2Tfccg" association="_x1JrUwanEeSjBLKX2Tfccg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_x1JrVQanEeSjBLKX2Tfccg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_x1JrVganEeSjBLKX2Tfccg" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_z3J_UwanEeSjBLKX2Tfccg" name="Association9" memberEnd="_z3J_VAanEeSjBLKX2Tfccg _z3J_UAanEeSjBLKX2Tfccg">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_z3J_VAanEeSjBLKX2Tfccg" name="class13" type="_upr04AanEeSjBLKX2Tfccg" association="_z3J_UwanEeSjBLKX2Tfccg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_z3J_VQanEeSjBLKX2Tfccg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_z3J_VganEeSjBLKX2Tfccg" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_9FySEAanEeSjBLKX2Tfccg" name="Class16">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="__xqpgAanEeSjBLKX2Tfccg" name="class17" type="_-KtSwAanEeSjBLKX2Tfccg" association="__xqpgwanEeSjBLKX2Tfccg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__xqpgQanEeSjBLKX2Tfccg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__xqpgganEeSjBLKX2Tfccg" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_DQ3UQAaoEeSjBLKX2Tfccg" name="class18" type="_-wYLoAanEeSjBLKX2Tfccg" association="_DQ3UQwaoEeSjBLKX2Tfccg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_DQ3UQQaoEeSjBLKX2Tfccg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_DQ3UQgaoEeSjBLKX2Tfccg" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_-KtSwAanEeSjBLKX2Tfccg" name="Class17"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_-wYLoAanEeSjBLKX2Tfccg" name="Class18"/>
+ <packagedElement xmi:type="uml:Association" xmi:id="__xqpgwanEeSjBLKX2Tfccg" name="Association11" memberEnd="__xqphAanEeSjBLKX2Tfccg __xqpgAanEeSjBLKX2Tfccg">
+ <ownedEnd xmi:type="uml:Property" xmi:id="__xqphAanEeSjBLKX2Tfccg" name="class16" type="_9FySEAanEeSjBLKX2Tfccg" association="__xqpgwanEeSjBLKX2Tfccg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="__xqphQanEeSjBLKX2Tfccg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="__xqphganEeSjBLKX2Tfccg" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_DQ3UQwaoEeSjBLKX2Tfccg" name="Association10" memberEnd="_DQ3URAaoEeSjBLKX2Tfccg _DQ3UQAaoEeSjBLKX2Tfccg">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_DQ3URAaoEeSjBLKX2Tfccg" name="class16" type="_9FySEAanEeSjBLKX2Tfccg" association="_DQ3UQwaoEeSjBLKX2Tfccg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_DQ3URQaoEeSjBLKX2Tfccg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_DQ3URgaoEeSjBLKX2Tfccg" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_k1C1kAaoEeSjBLKX2Tfccg" name="Class19">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_oIs-sAaoEeSjBLKX2Tfccg" name="class20" type="_lWeHoAaoEeSjBLKX2Tfccg" association="_oIs-swaoEeSjBLKX2Tfccg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_oIs-sQaoEeSjBLKX2Tfccg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_oIs-sgaoEeSjBLKX2Tfccg" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_ow4ZAAaoEeSjBLKX2Tfccg" name="class21" type="_mCQ2oAaoEeSjBLKX2Tfccg" association="_ow4ZAwaoEeSjBLKX2Tfccg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ow4ZAQaoEeSjBLKX2Tfccg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ow4ZAgaoEeSjBLKX2Tfccg" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_lWeHoAaoEeSjBLKX2Tfccg" name="Class20"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_mCQ2oAaoEeSjBLKX2Tfccg" name="Class21"/>
+ <packagedElement xmi:type="uml:Association" xmi:id="_oIs-swaoEeSjBLKX2Tfccg" name="Association12" memberEnd="_oIs-tAaoEeSjBLKX2Tfccg _oIs-sAaoEeSjBLKX2Tfccg">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_oIs-tAaoEeSjBLKX2Tfccg" name="class19" type="_k1C1kAaoEeSjBLKX2Tfccg" association="_oIs-swaoEeSjBLKX2Tfccg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_oIs-tQaoEeSjBLKX2Tfccg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_oIs-tgaoEeSjBLKX2Tfccg" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_ow4ZAwaoEeSjBLKX2Tfccg" name="Association13" memberEnd="_ow4ZBAaoEeSjBLKX2Tfccg _ow4ZAAaoEeSjBLKX2Tfccg">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_ow4ZBAaoEeSjBLKX2Tfccg" name="class19" type="_k1C1kAaoEeSjBLKX2Tfccg" association="_ow4ZAwaoEeSjBLKX2Tfccg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ow4ZBQaoEeSjBLKX2Tfccg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ow4ZBgaoEeSjBLKX2Tfccg" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_0ynFgAaoEeSjBLKX2Tfccg" name="Class22">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_4kv6YAaoEeSjBLKX2Tfccg" name="class23" type="_3_qQUAaoEeSjBLKX2Tfccg" association="_4kwhcAaoEeSjBLKX2Tfccg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_4kv6YQaoEeSjBLKX2Tfccg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_4kv6YgaoEeSjBLKX2Tfccg" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_6TvLwAaoEeSjBLKX2Tfccg" name="class23" type="_3_qQUAaoEeSjBLKX2Tfccg" association="_6Tvy0AaoEeSjBLKX2Tfccg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_6TvLwQaoEeSjBLKX2Tfccg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_6TvLwgaoEeSjBLKX2Tfccg" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_3_qQUAaoEeSjBLKX2Tfccg" name="Class23"/>
+ <packagedElement xmi:type="uml:Association" xmi:id="_4kwhcAaoEeSjBLKX2Tfccg" name="Association14" memberEnd="_4kwhcQaoEeSjBLKX2Tfccg _4kv6YAaoEeSjBLKX2Tfccg">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_4kwhcQaoEeSjBLKX2Tfccg" name="class22" type="_0ynFgAaoEeSjBLKX2Tfccg" association="_4kwhcAaoEeSjBLKX2Tfccg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_4kwhcgaoEeSjBLKX2Tfccg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_4kwhcwaoEeSjBLKX2Tfccg" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_6Tvy0AaoEeSjBLKX2Tfccg" name="Association15" memberEnd="_6Tvy0QaoEeSjBLKX2Tfccg _6TvLwAaoEeSjBLKX2Tfccg">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_6Tvy0QaoEeSjBLKX2Tfccg" name="class22" type="_0ynFgAaoEeSjBLKX2Tfccg" association="_6Tvy0AaoEeSjBLKX2Tfccg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_6Tvy0gaoEeSjBLKX2Tfccg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_6Tvy0waoEeSjBLKX2Tfccg" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_OSTncAazEeSjBLKX2Tfccg" name="Class24">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_QL4YMAazEeSjBLKX2Tfccg" name="class25" type="_PaWNkAazEeSjBLKX2Tfccg" association="_QL4_QAazEeSjBLKX2Tfccg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_QL4YMQazEeSjBLKX2Tfccg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_QL4YMgazEeSjBLKX2Tfccg" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_T8p7IAazEeSjBLKX2Tfccg" name="class25" type="_PaWNkAazEeSjBLKX2Tfccg" association="_T8qiMAazEeSjBLKX2Tfccg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_T8p7IQazEeSjBLKX2Tfccg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_T8p7IgazEeSjBLKX2Tfccg" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_PaWNkAazEeSjBLKX2Tfccg" name="Class25"/>
+ <packagedElement xmi:type="uml:Association" xmi:id="_QL4_QAazEeSjBLKX2Tfccg" name="Association23" memberEnd="_QL4_QQazEeSjBLKX2Tfccg _QL4YMAazEeSjBLKX2Tfccg">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_QL4_QQazEeSjBLKX2Tfccg" name="class24" type="_OSTncAazEeSjBLKX2Tfccg" association="_QL4_QAazEeSjBLKX2Tfccg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_QL4_QgazEeSjBLKX2Tfccg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_QL4_QwazEeSjBLKX2Tfccg" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_T8qiMAazEeSjBLKX2Tfccg" name="Association22" memberEnd="_T8qiMQazEeSjBLKX2Tfccg _T8p7IAazEeSjBLKX2Tfccg">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_T8qiMQazEeSjBLKX2Tfccg" name="class24" type="_OSTncAazEeSjBLKX2Tfccg" association="_T8qiMAazEeSjBLKX2Tfccg">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_T8qiMgazEeSjBLKX2Tfccg" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_T8qiMwazEeSjBLKX2Tfccg" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_-62WIAgvEeSOb7xxF0D0Yw" name="Class26">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_Bir7EAgwEeSOb7xxF0D0Yw" name="class28" type="_ADXdYAgwEeSOb7xxF0D0Yw" association="_Bir7EwgwEeSOb7xxF0D0Yw">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Bir7EQgwEeSOb7xxF0D0Yw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Bir7EggwEeSOb7xxF0D0Yw" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="__mVjIAgvEeSOb7xxF0D0Yw" name="Class27">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_CLSMIAgwEeSOb7xxF0D0Yw" name="class28" type="_ADXdYAgwEeSOb7xxF0D0Yw" association="_CLSMIwgwEeSOb7xxF0D0Yw">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_CLSMIQgwEeSOb7xxF0D0Yw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_CLSMIggwEeSOb7xxF0D0Yw" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_ADXdYAgwEeSOb7xxF0D0Yw" name="Class28"/>
+ <packagedElement xmi:type="uml:Association" xmi:id="_Bir7EwgwEeSOb7xxF0D0Yw" name="Association17" memberEnd="_Bir7FAgwEeSOb7xxF0D0Yw _Bir7EAgwEeSOb7xxF0D0Yw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_Bir7FAgwEeSOb7xxF0D0Yw" name="class26" type="_-62WIAgvEeSOb7xxF0D0Yw" association="_Bir7EwgwEeSOb7xxF0D0Yw">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Bir7FQgwEeSOb7xxF0D0Yw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Bir7FggwEeSOb7xxF0D0Yw" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_CLSMIwgwEeSOb7xxF0D0Yw" name="Association16" memberEnd="_CLSMJAgwEeSOb7xxF0D0Yw _CLSMIAgwEeSOb7xxF0D0Yw">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_CLSMJAgwEeSOb7xxF0D0Yw" name="class27" type="__mVjIAgvEeSOb7xxF0D0Yw" association="_CLSMIwgwEeSOb7xxF0D0Yw">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_CLSMJQgwEeSOb7xxF0D0Yw" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_CLSMJggwEeSOb7xxF0D0Yw" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_wZrlgBCwEeSJbdueZ0I1wQ" name="Class29">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_y-lyQBCwEeSJbdueZ0I1wQ" name="class30" type="_xLFNQBCwEeSJbdueZ0I1wQ" association="_y-mZUBCwEeSJbdueZ0I1wQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_y-lyQRCwEeSJbdueZ0I1wQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_y-lyQhCwEeSJbdueZ0I1wQ" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_ztuJIBCwEeSJbdueZ0I1wQ" name="class31" type="_yA6CABCwEeSJbdueZ0I1wQ" association="_ztuJIxCwEeSJbdueZ0I1wQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ztuJIRCwEeSJbdueZ0I1wQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ztuJIhCwEeSJbdueZ0I1wQ" value="1"/>
+ </ownedAttribute>
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_1QduQBCwEeSJbdueZ0I1wQ" name="class32" type="_0uebgBCwEeSJbdueZ0I1wQ" association="_1QduQxCwEeSJbdueZ0I1wQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_1QduQRCwEeSJbdueZ0I1wQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_1QduQhCwEeSJbdueZ0I1wQ" value="1"/>
+ </ownedAttribute>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_xLFNQBCwEeSJbdueZ0I1wQ" name="Class30"/>
+ <packagedElement xmi:type="uml:Class" xmi:id="_yA6CABCwEeSJbdueZ0I1wQ" name="Class31"/>
+ <packagedElement xmi:type="uml:Association" xmi:id="_y-mZUBCwEeSJbdueZ0I1wQ" name="Association20" memberEnd="_y-mZURCwEeSJbdueZ0I1wQ _y-lyQBCwEeSJbdueZ0I1wQ">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_y-mZURCwEeSJbdueZ0I1wQ" name="class29" type="_wZrlgBCwEeSJbdueZ0I1wQ" association="_y-mZUBCwEeSJbdueZ0I1wQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_y-nAYBCwEeSJbdueZ0I1wQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_y-nAYRCwEeSJbdueZ0I1wQ" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Association" xmi:id="_ztuJIxCwEeSJbdueZ0I1wQ" name="Association21" memberEnd="_ztuJJBCwEeSJbdueZ0I1wQ _ztuJIBCwEeSJbdueZ0I1wQ">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_ztuJJBCwEeSJbdueZ0I1wQ" name="class29" type="_wZrlgBCwEeSJbdueZ0I1wQ" association="_ztuJIxCwEeSJbdueZ0I1wQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ztuJJRCwEeSJbdueZ0I1wQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ztuJJhCwEeSJbdueZ0I1wQ" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+ <packagedElement xmi:type="uml:Class" xmi:id="_0uebgBCwEeSJbdueZ0I1wQ" name="Class32"/>
+ <packagedElement xmi:type="uml:Association" xmi:id="_1QduQxCwEeSJbdueZ0I1wQ" name="Association19" memberEnd="_1QduRBCwEeSJbdueZ0I1wQ _1QduQBCwEeSJbdueZ0I1wQ">
+ <ownedEnd xmi:type="uml:Property" xmi:id="_1QduRBCwEeSJbdueZ0I1wQ" name="class29" type="_wZrlgBCwEeSJbdueZ0I1wQ" association="_1QduQxCwEeSJbdueZ0I1wQ">
+ <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_1QduRRCwEeSJbdueZ0I1wQ" value="1"/>
+ <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_1QduRhCwEeSJbdueZ0I1wQ" value="1"/>
+ </ownedEnd>
+ </packagedElement>
+</uml:Model>
diff --git a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common.tests/src/org/eclipse/papyrus/uml/diagram/common/tests/Activator.java b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common.tests/src/org/eclipse/papyrus/uml/diagram/common/tests/Activator.java
new file mode 100644
index 0000000..b66ddcd
--- /dev/null
+++ b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common.tests/src/org/eclipse/papyrus/uml/diagram/common/tests/Activator.java
@@ -0,0 +1,67 @@
+/*****************************************************************************
+ * Copyright (c) 2014 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.uml.diagram.common.tests;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.papyrus.uml.diagram.common.tests"; //$NON-NLS-1$
+
+ // The shared instance
+ private static Activator plugin;
+
+ /**
+ * The constructor
+ */
+ public Activator() {
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ @Override
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ @Override
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static Activator getDefault() {
+ return plugin;
+ }
+
+}
diff --git a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common.tests/src/org/eclipse/papyrus/uml/diagram/common/tests/tests/AllTests.java b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common.tests/src/org/eclipse/papyrus/uml/diagram/common/tests/tests/AllTests.java
new file mode 100644
index 0000000..f210032
--- /dev/null
+++ b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common.tests/src/org/eclipse/papyrus/uml/diagram/common/tests/tests/AllTests.java
@@ -0,0 +1,25 @@
+/*****************************************************************************
+ * Copyright (c) 2014 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.uml.diagram.common.tests.tests;
+
+
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+import org.junit.runners.Suite.SuiteClasses;
+
+@RunWith(Suite.class)
+@SuiteClasses({ CommonBendpointsTest.class })
+public class AllTests {
+ // JUnit 4 test suite
+}
diff --git a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common.tests/src/org/eclipse/papyrus/uml/diagram/common/tests/tests/CommonBendpointsTest.java b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common.tests/src/org/eclipse/papyrus/uml/diagram/common/tests/tests/CommonBendpointsTest.java
new file mode 100644
index 0000000..37c8f1c
--- /dev/null
+++ b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.common.tests/src/org/eclipse/papyrus/uml/diagram/common/tests/tests/CommonBendpointsTest.java
@@ -0,0 +1,333 @@
+/*****************************************************************************
+ * Copyright (c) 2014 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.uml.diagram.common.tests.tests;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.geometry.Point;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
+import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.papyrus.infra.core.services.ServiceException;
+import org.eclipse.papyrus.infra.gmfdiag.common.figure.edge.PapyrusEdgeFigure;
+import org.eclipse.papyrus.infra.widgets.util.IRevealSemanticElement;
+import org.eclipse.papyrus.junit.utils.tests.AbstractEditorTest;
+import org.eclipse.papyrus.uml.diagram.common.tests.Activator;
+import org.eclipse.ui.ISelectionService;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.uml2.uml.Model;
+import org.eclipse.uml2.uml.NamedElement;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.osgi.framework.Bundle;
+
+/**
+ *
+ * @author VL222926
+ *
+ */
+public class CommonBendpointsTest extends AbstractEditorTest {
+
+ protected Resource di;
+
+ protected Resource notation;
+
+ protected Resource uml;
+
+ protected Diagram diag;
+
+ protected Model root;
+
+ /**
+ *
+ * Constructor.
+ * This plugin test the ModelExplorerView
+ */
+ public CommonBendpointsTest() {
+ super();
+ }
+
+
+ @Before
+ public void initTests() throws CoreException, IOException {
+ try {
+ initModel("testBendpoints", "model", getBundle()); //$NON-NLS-1$ //$NON-NLS-2$
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ ResourceSet set = null;
+ try {
+ set = getModelSet();
+ } catch (ServiceException e) {
+ e.printStackTrace();
+ }
+ // IEditorInput input = this.editor.getEditorInput();
+ List<Resource> resources = set.getResources();
+ for(Resource current : resources) {
+ // current.load(null);
+ if(current.getURI().lastSegment().equals("model.uml")) { //$NON-NLS-1$
+ this.uml = current;
+ } else if(current.getURI().lastSegment().equals("model.notation")) { //$NON-NLS-1$
+ this.notation = current;
+ } else if(current.getURI().lastSegment().equals("model.di")) { //$NON-NLS-1$
+ this.di = current;
+ }
+
+
+ }
+ this.diag = (Diagram)this.notation.getAllContents().next();
+ this.root = (Model)this.uml.getContents().get(0);
+ }
+
+ protected void verifyCommonBendpoints(final List<Point> wantedPoints, final Collection<Point> pointsFound1) {
+ List<Point> pointsFound = new ArrayList<Point>(pointsFound1);
+ Assert.assertEquals(wantedPoints.size(), pointsFound.size());
+ for(Point current : pointsFound) {
+ Assert.assertTrue(wantedPoints.contains(current));
+ }
+
+ }
+
+ /**
+ *
+ * @param name
+ * the name of a uml element
+ * @return
+ * the link figure for the element
+ */
+ protected PapyrusEdgeFigure getLinkFigureFor(final String name) {
+ final NamedElement element = this.root.getMember(name);
+ Assert.assertTrue(this.editor.getActiveEditor() instanceof IRevealSemanticElement);
+ ((IRevealSemanticElement)this.editor.getActiveEditor()).revealSemanticElement(Collections.singletonList(element));
+ final ISelection selection = getSelectionService().getSelection();
+ Assert.assertTrue(selection instanceof IStructuredSelection);
+ Object current = ((IStructuredSelection)selection).getFirstElement();
+ Assert.assertTrue(current instanceof IGraphicalEditPart);
+ final IFigure fig = ((IGraphicalEditPart)current).getFigure();
+ Assert.assertTrue(fig instanceof PapyrusEdgeFigure);
+ return (PapyrusEdgeFigure)fig;
+ }
+
+ @Test
+ public void commonBendpoints_Test1() {
+ List<Point> wantedResult = new ArrayList<Point>();
+ wantedResult.add(new Point(300, 140));
+
+ PapyrusEdgeFigure fig = getLinkFigureFor("Association1"); //$NON-NLS-1$
+ Collection<Point> res = fig.getCommonBendpointsToDraw();
+ verifyCommonBendpoints(wantedResult, res);
+
+
+ fig = getLinkFigureFor("Association2"); //$NON-NLS-1$
+ res = fig.getCommonBendpointsToDraw();
+ verifyCommonBendpoints(wantedResult, res);
+
+
+ }
+
+ //no common bendpoints when the link do not share their source or their target
+ @Test
+ public void commonBendpoints_Test2() {
+ List<Point> wantedResult = new ArrayList<Point>();
+
+ PapyrusEdgeFigure fig = getLinkFigureFor("Association3"); //$NON-NLS-1$
+ Collection<Point> res = fig.getCommonBendpointsToDraw();
+ verifyCommonBendpoints(wantedResult, res);
+
+
+ fig = getLinkFigureFor("Association4"); //$NON-NLS-1$
+ res = fig.getCommonBendpointsToDraw();
+ verifyCommonBendpoints(wantedResult, res);
+ }
+
+ @Test
+ public void commonBendpoints_Test3() {
+ List<Point> wantedResult = new ArrayList<Point>();
+ wantedResult.add(new Point(280, 840));
+ wantedResult.add(new Point(280, 920));
+
+ PapyrusEdgeFigure fig = getLinkFigureFor("Association6"); //$NON-NLS-1$
+ Collection<Point> res = fig.getCommonBendpointsToDraw();
+ verifyCommonBendpoints(wantedResult, res);
+
+
+ fig = getLinkFigureFor("Association7"); //$NON-NLS-1$
+ res = fig.getCommonBendpointsToDraw();
+ verifyCommonBendpoints(wantedResult, res);
+ }
+
+ //no common bendpoints between 2 kind of uml link
+ @Test
+ public void testCommonbendpoints_Test4() {
+ List<Point> wantedResult = new ArrayList<Point>();
+
+ PapyrusEdgeFigure fig = getLinkFigureFor("Association5"); //$NON-NLS-1$
+ Collection<Point> res = fig.getCommonBendpointsToDraw();
+ verifyCommonBendpoints(wantedResult, res);
+
+
+ fig = getLinkFigureFor("Dependency1"); //$NON-NLS-1$
+ res = fig.getCommonBendpointsToDraw();
+ verifyCommonBendpoints(wantedResult, res);
+ }
+
+ @Test
+ public void commonBendpoints_Test5() {
+ List<Point> wantedResult = new ArrayList<Point>();
+ wantedResult.add(new Point(1000, 940));
+ PapyrusEdgeFigure fig = getLinkFigureFor("Association8"); //$NON-NLS-1$
+ Collection<Point> res = fig.getCommonBendpointsToDraw();
+ verifyCommonBendpoints(wantedResult, res);
+
+
+ fig = getLinkFigureFor("Association9"); //$NON-NLS-1$
+ res = fig.getCommonBendpointsToDraw();
+ verifyCommonBendpoints(wantedResult, res);
+ }
+
+ @Test
+ public void commonBendpoints_Test6() {
+ List<Point> wantedResult = new ArrayList<Point>();
+ wantedResult.add(new Point(260, 1200));
+ wantedResult.add(new Point(360, 1280));
+ wantedResult.add(new Point(380, 1220));
+ PapyrusEdgeFigure fig = getLinkFigureFor("Association10"); //$NON-NLS-1$
+ Collection<Point> res = fig.getCommonBendpointsToDraw();
+ verifyCommonBendpoints(wantedResult, res);
+
+
+ fig = getLinkFigureFor("Association1&"); //$NON-NLS-1$
+ res = fig.getCommonBendpointsToDraw();
+ verifyCommonBendpoints(wantedResult, res);
+ }
+
+ @Test
+ public void testCommonbendpoints_Test7() {
+ List<Point> wantedResult = new ArrayList<Point>();
+
+ PapyrusEdgeFigure fig = getLinkFigureFor("Association12"); //$NON-NLS-1$
+ Collection<Point> res = fig.getCommonBendpointsToDraw();
+ verifyCommonBendpoints(wantedResult, res);
+
+
+ fig = getLinkFigureFor("Association13"); //$NON-NLS-1$
+ res = fig.getCommonBendpointsToDraw();
+ verifyCommonBendpoints(wantedResult, res);
+ }
+
+ @Test
+ public void testCommonbendpoints_Test8() {
+ List<Point> wantedResult = new ArrayList<Point>();
+
+ PapyrusEdgeFigure fig = getLinkFigureFor("Association14"); //$NON-NLS-1$
+ Collection<Point> res = fig.getCommonBendpointsToDraw();
+ verifyCommonBendpoints(wantedResult, res);
+
+
+ fig = getLinkFigureFor("Association15"); //$NON-NLS-1$
+ res = fig.getCommonBendpointsToDraw();
+ verifyCommonBendpoints(wantedResult, res);
+ }
+
+ @Test
+ public void testCommonbendpoints_Test9() {
+ List<Point> wantedResult = new ArrayList<Point>();
+
+ PapyrusEdgeFigure fig = getLinkFigureFor("Association22"); //$NON-NLS-1$
+ Collection<Point> res = fig.getCommonBendpointsToDraw();
+ verifyCommonBendpoints(wantedResult, res);
+
+
+ fig = getLinkFigureFor("Association23"); //$NON-NLS-1$
+ res = fig.getCommonBendpointsToDraw();
+ verifyCommonBendpoints(wantedResult, res);
+ }
+
+ @Test
+ public void testCommonbendpoints_Test10() {
+ List<Point> wantedResult = new ArrayList<Point>();
+ wantedResult.add(new Point(280, 1900));
+ wantedResult.add(new Point(280, 1940));
+ wantedResult.add(new Point(280, 2000));
+ wantedResult.add(new Point(280, 2040));
+
+ PapyrusEdgeFigure fig = getLinkFigureFor("Association16"); //$NON-NLS-1$
+ Collection<Point> res = fig.getCommonBendpointsToDraw();
+ verifyCommonBendpoints(wantedResult, res);
+
+
+ fig = getLinkFigureFor("Association17"); //$NON-NLS-1$
+ res = fig.getCommonBendpointsToDraw();
+ verifyCommonBendpoints(wantedResult, res);
+ }
+
+ @Test
+ public void testCommonbendpoints_Test11() {
+
+ PapyrusEdgeFigure fig = getLinkFigureFor("Association19"); //$NON-NLS-1$
+ Collection<Point> res = fig.getCommonBendpointsToDraw();
+ List<Point> wantedResult = new ArrayList<Point>();
+ wantedResult.add(new Point(740, 1980));
+ verifyCommonBendpoints(wantedResult, res);
+
+
+ fig = getLinkFigureFor("Association20"); //$NON-NLS-1$
+ res = fig.getCommonBendpointsToDraw();
+ wantedResult = new ArrayList<Point>();
+ wantedResult.add(new Point(740, 1980));
+ wantedResult.add(new Point(780, 2020));
+ wantedResult.add(new Point(780, 2060));
+ verifyCommonBendpoints(wantedResult, res);
+
+
+ fig = getLinkFigureFor("Association21"); //$NON-NLS-1$
+ res = fig.getCommonBendpointsToDraw();
+ wantedResult = new ArrayList<Point>();
+ wantedResult.add(new Point(780, 2020));
+ wantedResult.add(new Point(780, 2060));
+ verifyCommonBendpoints(wantedResult, res);
+ }
+
+ protected ISelectionService getSelectionService() {
+ return PlatformUI.getWorkbench().getActiveWorkbenchWindow().getSelectionService();
+ }
+
+ protected IStructuredSelection getCurrentSelection() {
+ ISelectionService serv = getSelectionService();
+ ISelection selection = serv.getSelection();
+ return (IStructuredSelection)selection;
+ }
+
+
+ @Override
+ protected Bundle getBundle() {
+ return Activator.getDefault().getBundle();
+ }
+
+ @Override
+ protected String getSourcePath() {
+ return "resources/"; //$NON-NLS-1$
+ }
+}