Bug 541206 - [MOKA][FMI] Provide SSP support in FMI feature


Commited code mostly coming from krisztian.mocsai@incquerylabs.com
developped in the context of OpenCPS ITEA3 project.
Change-Id: Iee903816b925ed407e90993e2e376f2d4638f446
Signed-off-by: Sebastien Revol <sebastien.revol@cea.fr>
diff --git a/bundles/core/tools/org.eclipse.papyrus.moka.externalcontrol/doc/doc.di b/bundles/core/tools/org.eclipse.papyrus.moka.externalcontrol/doc/doc.di
new file mode 100644
index 0000000..8c549ee
--- /dev/null
+++ b/bundles/core/tools/org.eclipse.papyrus.moka.externalcontrol/doc/doc.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<architecture:ArchitectureDescription xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:architecture="http://www.eclipse.org/papyrus/infra/core/architecture" contextId="org.eclipse.papyrus.infra.services.edit.TypeContext"/>
diff --git a/bundles/core/tools/org.eclipse.papyrus.moka.externalcontrol/doc/doc.notation b/bundles/core/tools/org.eclipse.papyrus.moka.externalcontrol/doc/doc.notation
new file mode 100644
index 0000000..5436ea2
--- /dev/null
+++ b/bundles/core/tools/org.eclipse.papyrus.moka.externalcontrol/doc/doc.notation
@@ -0,0 +1,924 @@
+<?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:style="http://www.eclipse.org/papyrus/infra/gmfdiag/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_hzxSAFhSEeiSk_egVxEj3Q" type="PapyrusUMLActivityDiagram" name="Activity Diagram" measurementUnit="Pixel">
+  <children xmi:type="notation:Shape" xmi:id="_hzxSAVhSEeiSk_egVxEj3Q" type="Activity_Shape">
+    <children xmi:type="notation:DecorationNode" xmi:id="_hzxSAlhSEeiSk_egVxEj3Q" type="Activity_NameLabel"/>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_hzxSBFhSEeiSk_egVxEj3Q" type="Activity_ParameterCompartment">
+      <styles xmi:type="notation:SortingStyle" xmi:id="_hzxSBVhSEeiSk_egVxEj3Q"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_hzxSBlhSEeiSk_egVxEj3Q"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hzxSB1hSEeiSk_egVxEj3Q"/>
+    </children>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_hzxSCFhSEeiSk_egVxEj3Q" type="Activity_PreconditionCompartment">
+      <styles xmi:type="notation:SortingStyle" xmi:id="_hzxSCVhSEeiSk_egVxEj3Q"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_hzxSClhSEeiSk_egVxEj3Q"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hzxSC1hSEeiSk_egVxEj3Q"/>
+    </children>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_hzxSDFhSEeiSk_egVxEj3Q" type="Activity_PostconditionCompartment">
+      <styles xmi:type="notation:SortingStyle" xmi:id="_hzxSDVhSEeiSk_egVxEj3Q"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_hzxSDlhSEeiSk_egVxEj3Q"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hzxSD1hSEeiSk_egVxEj3Q"/>
+    </children>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_hzxSEFhSEeiSk_egVxEj3Q" type="Activity_ActivityNodeCompartment">
+      <children xmi:type="notation:Shape" xmi:id="_joYqQFhSEeiSk_egVxEj3Q" type="InitialNode_Shape">
+        <children xmi:type="notation:DecorationNode" xmi:id="_joZRUFhSEeiSk_egVxEj3Q" visible="false" type="InitialNode_FloatingNameLabel">
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_joZRUVhSEeiSk_egVxEj3Q" y="15"/>
+        </children>
+        <children xmi:type="notation:DecorationNode" xmi:id="_joZRUlhSEeiSk_egVxEj3Q" type="InitialNode_StereotypeLabel">
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_joZRU1hSEeiSk_egVxEj3Q" y="15"/>
+        </children>
+        <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_joYqQVhSEeiSk_egVxEj3Q"/>
+        <element xmi:type="uml:InitialNode" href="doc.uml#_joAPwFhSEeiSk_egVxEj3Q"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_joYqQlhSEeiSk_egVxEj3Q" x="376" y="38"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_l_iu4FhSEeiSk_egVxEj3Q" type="OpaqueAction_Shape">
+        <children xmi:type="notation:DecorationNode" xmi:id="_l_jV8FhSEeiSk_egVxEj3Q" type="OpaqueAction_NameLabel"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_l_jV8VhSEeiSk_egVxEj3Q" type="OpaqueAction_FloatingNameLabel">
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_l_jV8lhSEeiSk_egVxEj3Q" y="15"/>
+        </children>
+        <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_l_iu4VhSEeiSk_egVxEj3Q"/>
+        <element xmi:type="uml:OpaqueAction" href="doc.uml#_l_UFYFhSEeiSk_egVxEj3Q"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_l_oOcFhSEeiSk_egVxEj3Q" x="289" y="100" width="197" height="41"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_xEV5EFhSEeiSk_egVxEj3Q" type="OpaqueAction_Shape">
+        <children xmi:type="notation:DecorationNode" xmi:id="_xEV5E1hSEeiSk_egVxEj3Q" type="OpaqueAction_NameLabel"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_xEV5FFhSEeiSk_egVxEj3Q" type="OpaqueAction_FloatingNameLabel">
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_xEV5FVhSEeiSk_egVxEj3Q" y="15"/>
+        </children>
+        <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_xEV5EVhSEeiSk_egVxEj3Q"/>
+        <element xmi:type="uml:OpaqueAction" href="doc.uml#_xELhAFhSEeiSk_egVxEj3Q"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xEV5FlhSEeiSk_egVxEj3Q" x="303" y="296" width="161" height="41"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_i0OXgFhUEeiSk_egVxEj3Q" type="DecisionNode_Shape">
+        <children xmi:type="notation:DecorationNode" xmi:id="_i0O-kFhUEeiSk_egVxEj3Q" type="DecisionNode_FloatingNameLabel">
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_i0O-kVhUEeiSk_egVxEj3Q" x="-169" y="-31"/>
+        </children>
+        <children xmi:type="notation:DecorationNode" xmi:id="_i0O-klhUEeiSk_egVxEj3Q" type="DecisionNode_DecisionInputLabel">
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_i0O-k1hUEeiSk_egVxEj3Q" y="15"/>
+        </children>
+        <children xmi:type="notation:DecorationNode" xmi:id="_i0O-lFhUEeiSk_egVxEj3Q" type="DecisionNode_StereotypeLabel">
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_i0O-lVhUEeiSk_egVxEj3Q" y="15"/>
+        </children>
+        <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_i0OXgVhUEeiSk_egVxEj3Q"/>
+        <element xmi:type="uml:DecisionNode" href="doc.uml#_iz940FhUEeiSk_egVxEj3Q"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_i0OXglhUEeiSk_egVxEj3Q" x="375" y="226"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_6wPrwFhUEeiSk_egVxEj3Q" type="DecisionNode_Shape">
+        <children xmi:type="notation:DecorationNode" xmi:id="_6wPrw1hUEeiSk_egVxEj3Q" type="DecisionNode_FloatingNameLabel">
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_6wQS0FhUEeiSk_egVxEj3Q" x="22" y="-12"/>
+        </children>
+        <children xmi:type="notation:DecorationNode" xmi:id="_6wQS0VhUEeiSk_egVxEj3Q" type="DecisionNode_DecisionInputLabel">
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_6wQS0lhUEeiSk_egVxEj3Q" y="15"/>
+        </children>
+        <children xmi:type="notation:DecorationNode" xmi:id="_6wQS01hUEeiSk_egVxEj3Q" type="DecisionNode_StereotypeLabel">
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_6wQS1FhUEeiSk_egVxEj3Q" y="15"/>
+        </children>
+        <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_6wPrwVhUEeiSk_egVxEj3Q"/>
+        <element xmi:type="uml:DecisionNode" href="doc.uml#_6v2qMFhUEeiSk_egVxEj3Q"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6wPrwlhUEeiSk_egVxEj3Q" x="529" y="467"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_LtaXgFhVEeiSk_egVxEj3Q" type="OpaqueAction_Shape">
+        <children xmi:type="notation:DecorationNode" xmi:id="_Lta-kFhVEeiSk_egVxEj3Q" type="OpaqueAction_NameLabel"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_Lta-kVhVEeiSk_egVxEj3Q" type="OpaqueAction_FloatingNameLabel">
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_Lta-klhVEeiSk_egVxEj3Q" y="15"/>
+        </children>
+        <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_LtaXgVhVEeiSk_egVxEj3Q"/>
+        <element xmi:type="uml:OpaqueAction" href="doc.uml#_LtLG8FhVEeiSk_egVxEj3Q"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Lta-k1hVEeiSk_egVxEj3Q" x="460" y="519" width="200" height="41"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_Se8VsFhVEeiSk_egVxEj3Q" type="OpaqueAction_Shape">
+        <children xmi:type="notation:DecorationNode" xmi:id="_Se88wFhVEeiSk_egVxEj3Q" type="OpaqueAction_NameLabel"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_Se88wVhVEeiSk_egVxEj3Q" type="OpaqueAction_FloatingNameLabel">
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_Se88wlhVEeiSk_egVxEj3Q" y="15"/>
+        </children>
+        <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_Se8VsVhVEeiSk_egVxEj3Q"/>
+        <element xmi:type="uml:OpaqueAction" href="doc.uml#_SeqB0FhVEeiSk_egVxEj3Q"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Se88w1hVEeiSk_egVxEj3Q" x="504" y="298"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_X7p2AFhVEeiSk_egVxEj3Q" type="DecisionNode_Shape">
+        <children xmi:type="notation:DecorationNode" xmi:id="_X7p2A1hVEeiSk_egVxEj3Q" type="DecisionNode_FloatingNameLabel">
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_X7p2BFhVEeiSk_egVxEj3Q" x="-67" y="-17"/>
+        </children>
+        <children xmi:type="notation:DecorationNode" xmi:id="_X7p2BVhVEeiSk_egVxEj3Q" type="DecisionNode_DecisionInputLabel">
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_X7p2BlhVEeiSk_egVxEj3Q" y="15"/>
+        </children>
+        <children xmi:type="notation:DecorationNode" xmi:id="_X7p2B1hVEeiSk_egVxEj3Q" type="DecisionNode_StereotypeLabel">
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_X7p2CFhVEeiSk_egVxEj3Q" y="15"/>
+        </children>
+        <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_X7p2AVhVEeiSk_egVxEj3Q"/>
+        <element xmi:type="uml:DecisionNode" href="doc.uml#_X7SCkFhVEeiSk_egVxEj3Q"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_X7p2AlhVEeiSk_egVxEj3Q" x="616" y="221"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_IVaEcFhWEeiSk_egVxEj3Q" type="OpaqueAction_Shape">
+        <children xmi:type="notation:DecorationNode" xmi:id="_IVaEc1hWEeiSk_egVxEj3Q" type="OpaqueAction_NameLabel"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_IVaEdFhWEeiSk_egVxEj3Q" type="OpaqueAction_FloatingNameLabel">
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_IVaEdVhWEeiSk_egVxEj3Q" y="15"/>
+        </children>
+        <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_IVaEcVhWEeiSk_egVxEj3Q"/>
+        <element xmi:type="uml:OpaqueAction" href="doc.uml#_IVEGMFhWEeiSk_egVxEj3Q"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IVaEdlhWEeiSk_egVxEj3Q" x="571" y="754"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_aHvdoFhWEeiSk_egVxEj3Q" type="DecisionNode_Shape">
+        <children xmi:type="notation:DecorationNode" xmi:id="_aHwEsFhWEeiSk_egVxEj3Q" type="DecisionNode_FloatingNameLabel">
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_aHwEsVhWEeiSk_egVxEj3Q" x="-25" y="35"/>
+        </children>
+        <children xmi:type="notation:DecorationNode" xmi:id="_aHwEslhWEeiSk_egVxEj3Q" type="DecisionNode_DecisionInputLabel">
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_aHwEs1hWEeiSk_egVxEj3Q" y="15"/>
+        </children>
+        <children xmi:type="notation:DecorationNode" xmi:id="_aHwEtFhWEeiSk_egVxEj3Q" type="DecisionNode_StereotypeLabel">
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_aHwEtVhWEeiSk_egVxEj3Q" y="15"/>
+        </children>
+        <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_aHvdoVhWEeiSk_egVxEj3Q"/>
+        <element xmi:type="uml:DecisionNode" href="doc.uml#_aHNSIFhWEeiSk_egVxEj3Q"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aHvdolhWEeiSk_egVxEj3Q" x="371" y="378" width="20"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_fvLnQFhWEeiSk_egVxEj3Q" type="OpaqueAction_Shape">
+        <children xmi:type="notation:DecorationNode" xmi:id="_fvLnQ1hWEeiSk_egVxEj3Q" type="OpaqueAction_NameLabel"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_fvMOUFhWEeiSk_egVxEj3Q" type="OpaqueAction_FloatingNameLabel">
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_fvMOUVhWEeiSk_egVxEj3Q" y="15"/>
+        </children>
+        <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_fvLnQVhWEeiSk_egVxEj3Q"/>
+        <element xmi:type="uml:OpaqueAction" href="doc.uml#_fukjQFhWEeiSk_egVxEj3Q"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fvMOUlhWEeiSk_egVxEj3Q" x="99" y="585"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_va88kFhWEeiSk_egVxEj3Q" type="DecisionNode_Shape">
+        <children xmi:type="notation:DecorationNode" xmi:id="_va88k1hWEeiSk_egVxEj3Q" type="DecisionNode_FloatingNameLabel">
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_va88lFhWEeiSk_egVxEj3Q" x="-61" y="8"/>
+        </children>
+        <children xmi:type="notation:DecorationNode" xmi:id="_va88lVhWEeiSk_egVxEj3Q" type="DecisionNode_DecisionInputLabel">
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_va88llhWEeiSk_egVxEj3Q" y="15"/>
+        </children>
+        <children xmi:type="notation:DecorationNode" xmi:id="_va88l1hWEeiSk_egVxEj3Q" type="DecisionNode_StereotypeLabel">
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_va9joFhWEeiSk_egVxEj3Q" y="15"/>
+        </children>
+        <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_va88kVhWEeiSk_egVxEj3Q"/>
+        <element xmi:type="uml:DecisionNode" href="doc.uml#_vag3sFhWEeiSk_egVxEj3Q"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_va88klhWEeiSk_egVxEj3Q" x="229" y="459"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_yZxosFhXEeiSk_egVxEj3Q" type="DecisionNode_Shape">
+        <children xmi:type="notation:DecorationNode" xmi:id="_yZxos1hXEeiSk_egVxEj3Q" type="DecisionNode_FloatingNameLabel">
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_yZxotFhXEeiSk_egVxEj3Q" y="15"/>
+        </children>
+        <children xmi:type="notation:DecorationNode" xmi:id="_yZxotVhXEeiSk_egVxEj3Q" type="DecisionNode_DecisionInputLabel">
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_yZxotlhXEeiSk_egVxEj3Q" y="15"/>
+        </children>
+        <children xmi:type="notation:DecorationNode" xmi:id="_yZxot1hXEeiSk_egVxEj3Q" type="DecisionNode_StereotypeLabel">
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_yZxouFhXEeiSk_egVxEj3Q" y="15"/>
+        </children>
+        <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_yZxosVhXEeiSk_egVxEj3Q"/>
+        <element xmi:type="uml:DecisionNode" href="doc.uml#_yZUVsFhXEeiSk_egVxEj3Q"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yZxoslhXEeiSk_egVxEj3Q" x="550" y="714"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_-l0u0FhXEeiSk_egVxEj3Q" type="OpaqueAction_Shape">
+        <children xmi:type="notation:DecorationNode" xmi:id="_-l1V4FhXEeiSk_egVxEj3Q" type="OpaqueAction_NameLabel"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_-l1V4VhXEeiSk_egVxEj3Q" type="OpaqueAction_FloatingNameLabel">
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_-l1V4lhXEeiSk_egVxEj3Q" y="15"/>
+        </children>
+        <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_-l0u0VhXEeiSk_egVxEj3Q"/>
+        <element xmi:type="uml:OpaqueAction" href="doc.uml#_-lUYgFhXEeiSk_egVxEj3Q"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-l1V41hXEeiSk_egVxEj3Q" x="281" y="586"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_k3bBgFhYEeiSk_egVxEj3Q" type="MergeNode_Shape">
+        <children xmi:type="notation:DecorationNode" xmi:id="_k3bBg1hYEeiSk_egVxEj3Q" visible="false" type="MergeNode_FloatingNameLabel">
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_k3bBhFhYEeiSk_egVxEj3Q" y="15"/>
+        </children>
+        <children xmi:type="notation:DecorationNode" xmi:id="_k3bBhVhYEeiSk_egVxEj3Q" type="MergeNode_StereotypeLabel">
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_k3bBhlhYEeiSk_egVxEj3Q" y="15"/>
+        </children>
+        <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_k3bBgVhYEeiSk_egVxEj3Q"/>
+        <element xmi:type="uml:MergeNode" href="doc.uml#_k20kkFhYEeiSk_egVxEj3Q"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_k3bBglhYEeiSk_egVxEj3Q" x="362" y="793" width="83" height="50"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="__M6HgFhYEeiSk_egVxEj3Q" type="DecisionNode_Shape">
+        <children xmi:type="notation:DecorationNode" xmi:id="__M6Hg1hYEeiSk_egVxEj3Q" type="DecisionNode_FloatingNameLabel">
+          <layoutConstraint xmi:type="notation:Location" xmi:id="__M6HhFhYEeiSk_egVxEj3Q" x="-12" y="-20"/>
+        </children>
+        <children xmi:type="notation:DecorationNode" xmi:id="__M6HhVhYEeiSk_egVxEj3Q" type="DecisionNode_DecisionInputLabel">
+          <layoutConstraint xmi:type="notation:Location" xmi:id="__M6HhlhYEeiSk_egVxEj3Q" y="15"/>
+        </children>
+        <children xmi:type="notation:DecorationNode" xmi:id="__M6Hh1hYEeiSk_egVxEj3Q" type="DecisionNode_StereotypeLabel">
+          <layoutConstraint xmi:type="notation:Location" xmi:id="__M6HiFhYEeiSk_egVxEj3Q" y="15"/>
+        </children>
+        <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="__M6HgVhYEeiSk_egVxEj3Q"/>
+        <element xmi:type="uml:DecisionNode" href="doc.uml#__MR1YFhYEeiSk_egVxEj3Q"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="__M6HglhYEeiSk_egVxEj3Q" x="913" y="218"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_DwEJoFhZEeiSk_egVxEj3Q" type="ActivityFinalNode_Shape">
+        <children xmi:type="notation:DecorationNode" xmi:id="_DwEJo1hZEeiSk_egVxEj3Q" type="ActivityFinalNode_FloatingNameLabel">
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_DwEJpFhZEeiSk_egVxEj3Q" x="-7" y="-19"/>
+        </children>
+        <children xmi:type="notation:DecorationNode" xmi:id="_DwEJpVhZEeiSk_egVxEj3Q" type="ActivityFinalNode_StereotypeLabel">
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_DwEJplhZEeiSk_egVxEj3Q" y="15"/>
+        </children>
+        <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_DwEJoVhZEeiSk_egVxEj3Q"/>
+        <element xmi:type="uml:ActivityFinalNode" href="doc.uml#_DvgwAFhZEeiSk_egVxEj3Q"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DwEJolhZEeiSk_egVxEj3Q" x="1185" y="224"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_aAMj0FhZEeiSk_egVxEj3Q" type="OpaqueAction_Shape">
+        <children xmi:type="notation:DecorationNode" xmi:id="_aAMj01hZEeiSk_egVxEj3Q" type="OpaqueAction_NameLabel"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_aAMj1FhZEeiSk_egVxEj3Q" type="OpaqueAction_FloatingNameLabel">
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_aAMj1VhZEeiSk_egVxEj3Q" y="15"/>
+        </children>
+        <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_aAMj0VhZEeiSk_egVxEj3Q"/>
+        <element xmi:type="uml:OpaqueAction" href="doc.uml#_Z_jDkFhZEeiSk_egVxEj3Q"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aANK4FhZEeiSk_egVxEj3Q" x="826" y="290" width="201" height="44"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_dae5YFhZEeiSk_egVxEj3Q" type="OpaqueAction_Shape">
+        <children xmi:type="notation:DecorationNode" xmi:id="_dae5Y1hZEeiSk_egVxEj3Q" type="OpaqueAction_NameLabel"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_dae5ZFhZEeiSk_egVxEj3Q" type="OpaqueAction_FloatingNameLabel">
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_dae5ZVhZEeiSk_egVxEj3Q" y="15"/>
+        </children>
+        <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_dae5YVhZEeiSk_egVxEj3Q"/>
+        <element xmi:type="uml:OpaqueAction" href="doc.uml#_dZyV0FhZEeiSk_egVxEj3Q"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dafgcFhZEeiSk_egVxEj3Q" x="845" y="368" width="176"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_sjpQ4FhZEeiSk_egVxEj3Q" type="Comment_Shape">
+        <children xmi:type="notation:DecorationNode" xmi:id="_sjpQ4lhZEeiSk_egVxEj3Q" type="Comment_BodyLabel"/>
+        <element xmi:type="uml:Comment" href="doc.uml#_sixuMFhZEeiSk_egVxEj3Q"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sjpQ4VhZEeiSk_egVxEj3Q" x="1056" y="288" width="186" height="162"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_L0pWsFmvEeiSk_egVxEj3Q" type="OpaqueAction_Shape">
+        <children xmi:type="notation:DecorationNode" xmi:id="_L0pWs1mvEeiSk_egVxEj3Q" type="OpaqueAction_NameLabel"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_L0pWtFmvEeiSk_egVxEj3Q" type="OpaqueAction_FloatingNameLabel">
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_L0pWtVmvEeiSk_egVxEj3Q" y="15"/>
+        </children>
+        <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_L0pWsVmvEeiSk_egVxEj3Q"/>
+        <element xmi:type="uml:OpaqueAction" href="doc.uml#_Lz5v0FmvEeiSk_egVxEj3Q"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_L0pWtlmvEeiSk_egVxEj3Q" x="489" y="641" width="134" height="52"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_UA7mMFmwEeiSk_egVxEj3Q" type="OpaqueAction_Shape">
+        <children xmi:type="notation:DecorationNode" xmi:id="_UA7mM1mwEeiSk_egVxEj3Q" type="OpaqueAction_NameLabel"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_UA7mNFmwEeiSk_egVxEj3Q" type="OpaqueAction_FloatingNameLabel">
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_UA7mNVmwEeiSk_egVxEj3Q" y="15"/>
+        </children>
+        <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_UA7mMVmwEeiSk_egVxEj3Q"/>
+        <element xmi:type="uml:OpaqueAction" href="doc.uml#_UAe6QFmwEeiSk_egVxEj3Q"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UA7mNlmwEeiSk_egVxEj3Q" x="680" y="633"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_94XXIFmwEeiSk_egVxEj3Q" type="Comment_Shape">
+        <children xmi:type="notation:DecorationNode" xmi:id="_94XXIlmwEeiSk_egVxEj3Q" type="Comment_BodyLabel"/>
+        <element xmi:type="uml:Comment" href="doc.uml#_93nwQFmwEeiSk_egVxEj3Q"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_94XXIVmwEeiSk_egVxEj3Q" x="750" y="689" width="233" height="90"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_7iWQEFmyEeiSk_egVxEj3Q" type="OpaqueAction_Shape">
+        <children xmi:type="notation:DecorationNode" xmi:id="_7iWQE1myEeiSk_egVxEj3Q" type="OpaqueAction_NameLabel"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_7iWQFFmyEeiSk_egVxEj3Q" type="OpaqueAction_FloatingNameLabel">
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_7iWQFVmyEeiSk_egVxEj3Q" y="15"/>
+        </children>
+        <styles xmi:type="notation:HintedDiagramLinkStyle" xmi:id="_7iWQEVmyEeiSk_egVxEj3Q"/>
+        <element xmi:type="uml:OpaqueAction" href="doc.uml#_7hcRIFmyEeiSk_egVxEj3Q"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7iWQFlmyEeiSk_egVxEj3Q" x="489" y="586"/>
+      </children>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hzxSEVhSEeiSk_egVxEj3Q"/>
+    </children>
+    <element xmi:type="uml:Activity" href="doc.uml#_hyKvgFhSEeiSk_egVxEj3Q"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hzxSElhSEeiSk_egVxEj3Q" width="1291" height="841"/>
+  </children>
+  <styles xmi:type="notation:StringValueStyle" xmi:id="_hzxSE1hSEeiSk_egVxEj3Q" name="diagram_compatibility_version" stringValue="1.3.0"/>
+  <styles xmi:type="notation:DiagramStyle" xmi:id="_hzxSFFhSEeiSk_egVxEj3Q"/>
+  <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_hzxSFVhSEeiSk_egVxEj3Q" diagramKindId="org.eclipse.papyrus.uml.diagram.activity">
+    <owner xmi:type="uml:Model" href="doc.uml#_hvtRYFhSEeiSk_egVxEj3Q"/>
+  </styles>
+  <styles xmi:type="notation:BooleanValueStyle" xmi:id="_wjrxIFhUEeiSk_egVxEj3Q" name="rulergrid.snaptogrid"/>
+  <styles xmi:type="notation:BooleanValueStyle" xmi:id="_wq7BkFhUEeiSk_egVxEj3Q" name="rulergrid.viewgrid"/>
+  <styles xmi:type="notation:StringValueStyle" xmi:id="__w9F4FmvEeiSk_egVxEj3Q" name="layout:org.eclipse.elk.algorithm" stringValue="org.eclipse.elk.conn.gmf.layouter.Draw2D"/>
+  <element xmi:type="uml:Activity" href="doc.uml#_hyKvgFhSEeiSk_egVxEj3Q"/>
+  <edges xmi:type="notation:Connector" xmi:id="_rm3R0FhUEeiSk_egVxEj3Q" type="ControlFlow_Edge" source="_i0OXgFhUEeiSk_egVxEj3Q" target="_xEV5EFhSEeiSk_egVxEj3Q">
+    <children xmi:type="notation:DecorationNode" xmi:id="_rm6VIFhUEeiSk_egVxEj3Q" type="ControlFlow_NameLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_tCN1gFhUEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_rm6VIVhUEeiSk_egVxEj3Q" x="-28" y="19"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_rm6VIlhUEeiSk_egVxEj3Q" type="ControlFlow_WeightLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_tCbQ4FhUEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_rm6VI1hUEeiSk_egVxEj3Q" y="20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_rm6VJFhUEeiSk_egVxEj3Q" type="ControlFlow_GuardLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_tCosQFhUEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_rm6VJVhUEeiSk_egVxEj3Q" x="8" y="20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_rm6VJlhUEeiSk_egVxEj3Q" type="ControlFlow_StereotypeLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_tC5K8FhUEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_rm6VJ1hUEeiSk_egVxEj3Q" y="-20"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_rm3R0VhUEeiSk_egVxEj3Q"/>
+    <element xmi:type="uml:ControlFlow" href="doc.uml#_rmWUcFhUEeiSk_egVxEj3Q"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_rm3R0lhUEeiSk_egVxEj3Q" points="[390, 288, -643984, -643984]$[390, 304, -643984, -643984]$[409, 304, -643984, -643984]$[409, 321, -643984, -643984]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rozLgFhUEeiSk_egVxEj3Q" id="(0.5,1.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rozykFhUEeiSk_egVxEj3Q" id="(0.5590062111801242,0.0)"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_RxlrAFhWEeiSk_egVxEj3Q" type="ControlFlow_Edge" source="_xEV5EFhSEeiSk_egVxEj3Q" target="_aHvdoFhWEeiSk_egVxEj3Q">
+    <children xmi:type="notation:DecorationNode" xmi:id="_RxlrA1hWEeiSk_egVxEj3Q" type="ControlFlow_NameLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_TQeq4FhWEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_RxlrBFhWEeiSk_egVxEj3Q" x="-6" y="20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_RxlrBVhWEeiSk_egVxEj3Q" type="ControlFlow_WeightLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_TQ7W0FhWEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_RxlrBlhWEeiSk_egVxEj3Q" y="20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_RxlrB1hWEeiSk_egVxEj3Q" type="ControlFlow_GuardLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_TRO40FhWEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_RxlrCFhWEeiSk_egVxEj3Q" x="6" y="20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_RxmSEFhWEeiSk_egVxEj3Q" type="ControlFlow_StereotypeLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_TRia0FhWEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_RxmSEVhWEeiSk_egVxEj3Q" y="-20"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_RxlrAVhWEeiSk_egVxEj3Q"/>
+    <element xmi:type="uml:ControlFlow" href="doc.uml#_RxF7wFhWEeiSk_egVxEj3Q"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_RxlrAlhWEeiSk_egVxEj3Q" points="[388, 369, -643984, -643984]$[388, 413, -643984, -643984]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_RyV48FhWEeiSk_egVxEj3Q" id="(0.4968944099378882,1.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_RyV48VhWEeiSk_egVxEj3Q" id="(0.6,0.1)"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_SXd_QFhWEeiSk_egVxEj3Q" type="ControlFlow_Edge" source="_6wPrwFhUEeiSk_egVxEj3Q" target="_LtaXgFhVEeiSk_egVxEj3Q">
+    <children xmi:type="notation:DecorationNode" xmi:id="_SXemUFhWEeiSk_egVxEj3Q" type="ControlFlow_NameLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_TmO4cFhWEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_SXemUVhWEeiSk_egVxEj3Q" x="-23" y="13"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_SXemUlhWEeiSk_egVxEj3Q" type="ControlFlow_WeightLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_Tmq9UFhWEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_SXemU1hWEeiSk_egVxEj3Q" y="20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_SXemVFhWEeiSk_egVxEj3Q" type="ControlFlow_GuardLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_TnMhwFhWEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_SXemVVhWEeiSk_egVxEj3Q" x="5" y="20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_SXemVlhWEeiSk_egVxEj3Q" type="ControlFlow_StereotypeLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_TnpNsFhWEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_SXemV1hWEeiSk_egVxEj3Q" y="-20"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_SXd_QVhWEeiSk_egVxEj3Q"/>
+    <element xmi:type="uml:ControlFlow" href="doc.uml#_SW-3EFhWEeiSk_egVxEj3Q"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_SXd_QlhWEeiSk_egVxEj3Q" points="[544, 529, -643984, -643984]$[544, 551, -643984, -643984]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_SYZMUFhWEeiSk_egVxEj3Q" id="(0.5,1.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_SYZMUVhWEeiSk_egVxEj3Q" id="(0.395,0.0)"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_uXIIEFhWEeiSk_egVxEj3Q" type="ControlFlow_Edge" source="_aHvdoFhWEeiSk_egVxEj3Q" target="_va88kFhWEeiSk_egVxEj3Q">
+    <children xmi:type="notation:DecorationNode" xmi:id="_uXIvIFhWEeiSk_egVxEj3Q" type="ControlFlow_NameLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_wW_HAFhWEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_uXIvIVhWEeiSk_egVxEj3Q" x="-29" y="-28"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_uXIvIlhWEeiSk_egVxEj3Q" type="ControlFlow_WeightLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_wXVsUFhWEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_uXIvI1hWEeiSk_egVxEj3Q" y="20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_uXIvJFhWEeiSk_egVxEj3Q" type="ControlFlow_GuardLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_wXpOUFhWEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_uXIvJVhWEeiSk_egVxEj3Q" x="21" y="20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_uXIvJlhWEeiSk_egVxEj3Q" type="ControlFlow_StereotypeLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_wX9XYFhWEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_uXIvJ1hWEeiSk_egVxEj3Q" y="-20"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_uXIIEVhWEeiSk_egVxEj3Q"/>
+    <element xmi:type="uml:ControlFlow" href="doc.uml#_uWqOAFhWEeiSk_egVxEj3Q"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_uXIIElhWEeiSk_egVxEj3Q" points="[376, 426, -643984, -643984]$[353, 426, -643984, -643984]$[353, 489, -643984, -643984]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_uYNtMFhWEeiSk_egVxEj3Q" id="(0.05517241379310463,0.5551724137931047)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_uYNtMVhWEeiSk_egVxEj3Q" id="(0.3,0.2)"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_0agm0FhWEeiSk_egVxEj3Q" type="ControlFlow_Edge" source="_aHvdoFhWEeiSk_egVxEj3Q" target="_6wPrwFhUEeiSk_egVxEj3Q">
+    <children xmi:type="notation:DecorationNode" xmi:id="_0agm01hWEeiSk_egVxEj3Q" type="ControlFlow_NameLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_1AFZEFhWEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_0agm1FhWEeiSk_egVxEj3Q" x="-28" y="37"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_0agm1VhWEeiSk_egVxEj3Q" type="ControlFlow_WeightLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_1AawQFhWEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_0agm1lhWEeiSk_egVxEj3Q" y="20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_0agm11hWEeiSk_egVxEj3Q" type="ControlFlow_GuardLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_1A0Y4FhWEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_0ahN4FhWEeiSk_egVxEj3Q" x="28" y="20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_0ahN4VhWEeiSk_egVxEj3Q" type="ControlFlow_StereotypeLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_1BIh8FhWEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_0ahN4lhWEeiSk_egVxEj3Q" y="-20"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_0agm0VhWEeiSk_egVxEj3Q"/>
+    <element xmi:type="uml:ControlFlow" href="doc.uml#_0aCswFhWEeiSk_egVxEj3Q"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_0agm0lhWEeiSk_egVxEj3Q" points="[393, 429, -643984, -643984]$[525, 429, -643984, -643984]$[525, 485, -643984, -643984]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0bpPQFhWEeiSk_egVxEj3Q" id="(0.85,0.6333333333333333)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0bpPQVhWEeiSk_egVxEj3Q" id="(0.5,0.0)"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_G5pboFhXEeiSk_egVxEj3Q" type="ControlFlow_Edge" source="_l_iu4FhSEeiSk_egVxEj3Q" target="_i0OXgFhUEeiSk_egVxEj3Q">
+    <children xmi:type="notation:DecorationNode" xmi:id="_G5qCsFhXEeiSk_egVxEj3Q" type="ControlFlow_NameLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_z2ykgFmwEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_G5qCsVhXEeiSk_egVxEj3Q" x="-16" y="20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_G5qCslhXEeiSk_egVxEj3Q" type="ControlFlow_WeightLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_z30fQFmwEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_G5qCs1hXEeiSk_egVxEj3Q" y="20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_G5qCtFhXEeiSk_egVxEj3Q" type="ControlFlow_GuardLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_z43BEFmwEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_G5qCtVhXEeiSk_egVxEj3Q" x="16" y="20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_G5qCtlhXEeiSk_egVxEj3Q" type="ControlFlow_StereotypeLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_z55i4FmwEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_G5qCt1hXEeiSk_egVxEj3Q" y="-20"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_G5pboVhXEeiSk_egVxEj3Q"/>
+    <element xmi:type="uml:ControlFlow" href="doc.uml#_G5QaEFhXEeiSk_egVxEj3Q"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_G5pbolhXEeiSk_egVxEj3Q" points="[394, 173, -643984, -643984]$[394, 264, -643984, -643984]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_G6gXQFhXEeiSk_egVxEj3Q" id="(0.5076142131979695,1.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_G6gXQVhXEeiSk_egVxEj3Q" id="(0.7,0.2)"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_Jl0G8FhXEeiSk_egVxEj3Q" type="ControlFlow_Edge" source="_i0OXgFhUEeiSk_egVxEj3Q" target="_X7p2AFhVEeiSk_egVxEj3Q">
+    <children xmi:type="notation:DecorationNode" xmi:id="_Jl0G81hXEeiSk_egVxEj3Q" type="ControlFlow_NameLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_Mks58FhXEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_Jl0G9FhXEeiSk_egVxEj3Q" x="-204" y="10"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_Jl0G9VhXEeiSk_egVxEj3Q" type="ControlFlow_WeightLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_MlVMEFhXEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_Jl0G9lhXEeiSk_egVxEj3Q" y="20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_Jl0uAFhXEeiSk_egVxEj3Q" type="ControlFlow_GuardLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_MlyfEFhXEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_Jl0uAVhXEeiSk_egVxEj3Q" x="67" y="20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_Jl0uAlhXEeiSk_egVxEj3Q" type="ControlFlow_StereotypeLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_MmPyEFhXEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_Jl0uA1hXEeiSk_egVxEj3Q" y="-20"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_Jl0G8VhXEeiSk_egVxEj3Q"/>
+    <element xmi:type="uml:ControlFlow" href="doc.uml#_JlMb4FhXEeiSk_egVxEj3Q"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Jl0G8lhXEeiSk_egVxEj3Q" points="[396, 267, -643984, -643984]$[505, 267, -643984, -643984]$[505, 265, -643984, -643984]$[614, 265, -643984, -643984]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Jm324FhXEeiSk_egVxEj3Q" id="(0.8,0.3)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Jm324VhXEeiSk_egVxEj3Q" id="(0.0,0.4666666666666667)"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_VBPBYFhXEeiSk_egVxEj3Q" type="ControlFlow_Edge" source="_X7p2AFhVEeiSk_egVxEj3Q" target="_Se8VsFhVEeiSk_egVxEj3Q">
+    <children xmi:type="notation:DecorationNode" xmi:id="_VBPBY1hXEeiSk_egVxEj3Q" type="ControlFlow_NameLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_k0W74FhXEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_VBPBZFhXEeiSk_egVxEj3Q" x="-23" y="19"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_VBPBZVhXEeiSk_egVxEj3Q" type="ControlFlow_WeightLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_k0_OAFhXEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_VBPBZlhXEeiSk_egVxEj3Q" y="20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_VBPBZ1hXEeiSk_egVxEj3Q" type="ControlFlow_GuardLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_k1chAFhXEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_VBPBaFhXEeiSk_egVxEj3Q" x="8" y="20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_VBPBaVhXEeiSk_egVxEj3Q" type="ControlFlow_StereotypeLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_k17pMFhXEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_VBPBalhXEeiSk_egVxEj3Q" y="-20"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_VBPBYVhXEeiSk_egVxEj3Q"/>
+    <element xmi:type="uml:ControlFlow" href="doc.uml#_VA0xsFhXEeiSk_egVxEj3Q"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_VBPBYlhXEeiSk_egVxEj3Q" points="[630, 281, -643984, -643984]$[630, 327, -643984, -643984]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_VCVNkFhXEeiSk_egVxEj3Q" id="(0.4,0.9)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_VCVNkVhXEeiSk_egVxEj3Q" id="(0.4,0.0)"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_Zn64oFhXEeiSk_egVxEj3Q" type="ControlFlow_Edge" source="_va88kFhWEeiSk_egVxEj3Q" target="_fvLnQFhWEeiSk_egVxEj3Q">
+    <children xmi:type="notation:DecorationNode" xmi:id="_Zn7fsFhXEeiSk_egVxEj3Q" type="ControlFlow_NameLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_abEM0FhXEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_Zn7fsVhXEeiSk_egVxEj3Q" x="-68" y="-35"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_Zn7fslhXEeiSk_egVxEj3Q" type="ControlFlow_WeightLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_abcAQFhXEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_Zn7fs1hXEeiSk_egVxEj3Q" y="20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_Zn7ftFhXEeiSk_egVxEj3Q" type="ControlFlow_GuardLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_abzzsFhXEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_Zn7ftVhXEeiSk_egVxEj3Q" x="6" y="20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_Zn7ftlhXEeiSk_egVxEj3Q" type="ControlFlow_StereotypeLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_acLnIFhXEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_Zn7ft1hXEeiSk_egVxEj3Q" y="-20"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_Zn64oVhXEeiSk_egVxEj3Q"/>
+    <element xmi:type="uml:ControlFlow" href="doc.uml#_Znh3EFhXEeiSk_egVxEj3Q"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Zn64olhXEeiSk_egVxEj3Q" points="[242, 518, -643984, -643984]$[242, 534, -643984, -643984]$[186, 534, -643984, -643984]$[186, 615, -643984, -643984]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ZouJ4FhXEeiSk_egVxEj3Q" id="(0.4,0.9)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ZouJ4VhXEeiSk_egVxEj3Q" id="(0.5434782608695652,0.0)"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_d72L8FhXEeiSk_egVxEj3Q" type="ControlFlow_Edge" source="_Se8VsFhVEeiSk_egVxEj3Q" target="_aHvdoFhWEeiSk_egVxEj3Q">
+    <children xmi:type="notation:DecorationNode" xmi:id="_d72L81hXEeiSk_egVxEj3Q" type="ControlFlow_NameLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_epTu4FhXEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_d72L9FhXEeiSk_egVxEj3Q" x="-39" y="50"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_d72L9VhXEeiSk_egVxEj3Q" type="ControlFlow_WeightLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_epriUFhXEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_d72L9lhXEeiSk_egVxEj3Q" y="20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_d72L91hXEeiSk_egVxEj3Q" type="ControlFlow_GuardLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_eqDVwFhXEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_d72L-FhXEeiSk_egVxEj3Q" x="47" y="-2"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_d72L-VhXEeiSk_egVxEj3Q" type="ControlFlow_StereotypeLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_eqbJMFhXEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_d72L-lhXEeiSk_egVxEj3Q" y="-20"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_d72L8VhXEeiSk_egVxEj3Q"/>
+    <element xmi:type="uml:ControlFlow" href="doc.uml#_d7N50FhXEeiSk_egVxEj3Q"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_d72L8lhXEeiSk_egVxEj3Q" points="[824, 358, -643984, -643984]$[824, 380, -643984, -643984]$[426, 380, -643984, -643984]$[426, 418, -643984, -643984]$[391, 418, -643984, -643984]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_d8vj0FhXEeiSk_egVxEj3Q" id="(0.29285714285714287,1.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_d8vj0VhXEeiSk_egVxEj3Q" id="(0.75,0.26666666666666666)"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_6C9AkFhXEeiSk_egVxEj3Q" type="ControlFlow_Edge" source="_joYqQFhSEeiSk_egVxEj3Q" target="_l_iu4FhSEeiSk_egVxEj3Q">
+    <children xmi:type="notation:DecorationNode" xmi:id="_6C9noFhXEeiSk_egVxEj3Q" type="ControlFlow_NameLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_z68EsFmwEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_6C9noVhXEeiSk_egVxEj3Q" x="-6" y="20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_6C9nolhXEeiSk_egVxEj3Q" type="ControlFlow_WeightLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_z71ckFmwEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_6C9no1hXEeiSk_egVxEj3Q" y="20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_6C9npFhXEeiSk_egVxEj3Q" type="ControlFlow_GuardLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_z84lcFmwEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_6C9npVhXEeiSk_egVxEj3Q" x="6" y="20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_6C9nplhXEeiSk_egVxEj3Q" type="ControlFlow_StereotypeLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_z988cFmwEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_6C9np1hXEeiSk_egVxEj3Q" y="-20"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_6C9AkVhXEeiSk_egVxEj3Q"/>
+    <element xmi:type="uml:ControlFlow" href="doc.uml#_6CiJ0FhXEeiSk_egVxEj3Q"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_6C9AklhXEeiSk_egVxEj3Q" points="[392, 88, -643984, -643984]$[392, 132, -643984, -643984]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_6D1xYFhXEeiSk_egVxEj3Q" id="(0.55,0.9)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_6D1xYVhXEeiSk_egVxEj3Q" id="(0.49746192893401014,0.0)"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_HwJwYFhYEeiSk_egVxEj3Q" type="ControlFlow_Edge" source="_va88kFhWEeiSk_egVxEj3Q" target="_-l0u0FhXEeiSk_egVxEj3Q">
+    <children xmi:type="notation:DecorationNode" xmi:id="_HwJwY1hYEeiSk_egVxEj3Q" type="ControlFlow_NameLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_S9KbYFhYEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_HwJwZFhYEeiSk_egVxEj3Q" x="-72" y="43"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_HwJwZVhYEeiSk_egVxEj3Q" type="ControlFlow_WeightLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_S9ucEFhYEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_HwJwZlhYEeiSk_egVxEj3Q" y="20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_HwKXcFhYEeiSk_egVxEj3Q" type="ControlFlow_GuardLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_S-U5AFhYEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_HwKXcVhYEeiSk_egVxEj3Q" x="21" y="20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_HwKXclhYEeiSk_egVxEj3Q" type="ControlFlow_StereotypeLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_S-0BMFhYEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_HwKXc1hYEeiSk_egVxEj3Q" y="-20"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_HwJwYVhYEeiSk_egVxEj3Q"/>
+    <element xmi:type="uml:ControlFlow" href="doc.uml#_HvsdYFhYEeiSk_egVxEj3Q"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_HwJwYlhYEeiSk_egVxEj3Q" points="[244, 521, -643984, -643984]$[244, 533, -643984, -643984]$[323, 533, -643984, -643984]$[323, 616, -643984, -643984]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HxKdAFhYEeiSk_egVxEj3Q" id="(0.5,1.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HxKdAVhYEeiSk_egVxEj3Q" id="(0.4857142857142857,0.0)"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_KKRCYFhYEeiSk_egVxEj3Q" type="ControlFlow_Edge" source="_6wPrwFhUEeiSk_egVxEj3Q" target="_UA7mMFmwEeiSk_egVxEj3Q">
+    <children xmi:type="notation:DecorationNode" xmi:id="_KKRCY1hYEeiSk_egVxEj3Q" type="ControlFlow_NameLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_S_TJYFhYEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_KKRCZFhYEeiSk_egVxEj3Q" x="-136" y="138"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_KKRCZVhYEeiSk_egVxEj3Q" type="ControlFlow_WeightLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_S_yRkFhYEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_KKRCZlhYEeiSk_egVxEj3Q" y="20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_KKRCZ1hYEeiSk_egVxEj3Q" type="ControlFlow_GuardLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_TAUdEFhYEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_KKRCaFhYEeiSk_egVxEj3Q" x="22" y="20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_KKRCaVhYEeiSk_egVxEj3Q" type="ControlFlow_StereotypeLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_TAy-MFhYEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_KKRCalhYEeiSk_egVxEj3Q" y="-20"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_KKRCYVhYEeiSk_egVxEj3Q"/>
+    <element xmi:type="uml:ControlFlow" href="doc.uml#_KJtowFhYEeiSk_egVxEj3Q"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_KKRCYlhYEeiSk_egVxEj3Q" points="[552, 517, -643984, -643984]$[770, 517, -643984, -643984]$[770, 655, -643984, -643984]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_KLS9IFhYEeiSk_egVxEj3Q" id="(0.9,0.6)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_KLS9IVhYEeiSk_egVxEj3Q" id="(0.19285714285714287,0.0)"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_L-2lcFhYEeiSk_egVxEj3Q" type="ControlFlow_Edge" source="_LtaXgFhVEeiSk_egVxEj3Q" target="_7iWQEFmyEeiSk_egVxEj3Q">
+    <children xmi:type="notation:DecorationNode" xmi:id="_L-2lc1hYEeiSk_egVxEj3Q" type="ControlFlow_NameLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_W_zKYFhYEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_L-2ldFhYEeiSk_egVxEj3Q" x="-2" y="20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_L-2ldVhYEeiSk_egVxEj3Q" type="ControlFlow_WeightLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_XAYZMFhYEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_L-2ldlhYEeiSk_egVxEj3Q" y="20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_L-2ld1hYEeiSk_egVxEj3Q" type="ControlFlow_GuardLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_XA5WkFhYEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_L-2leFhYEeiSk_egVxEj3Q" x="2" y="20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_L-2leVhYEeiSk_egVxEj3Q" type="ControlFlow_StereotypeLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_XBYewFhYEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_L-2lelhYEeiSk_egVxEj3Q" y="-20"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_L-2lcVhYEeiSk_egVxEj3Q"/>
+    <element xmi:type="uml:ControlFlow" href="doc.uml#_L-KB4FhYEeiSk_egVxEj3Q"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_L-2lclhYEeiSk_egVxEj3Q" points="[555, 592, -643984, -643984]$[555, 618, -643984, -643984]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_L_0OwFhYEeiSk_egVxEj3Q" id="(0.45,1.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_L_0OwVhYEeiSk_egVxEj3Q" id="(0.45185185185185184,0.0)"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_MraJcFhYEeiSk_egVxEj3Q" type="ControlFlow_Edge" source="_yZxosFhXEeiSk_egVxEj3Q" target="_IVaEcFhWEeiSk_egVxEj3Q">
+    <children xmi:type="notation:DecorationNode" xmi:id="_MraJc1hYEeiSk_egVxEj3Q" type="ControlFlow_NameLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_fCxiUFhYEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_MraJdFhYEeiSk_egVxEj3Q" x="-18" y="33"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_MrawgFhYEeiSk_egVxEj3Q" type="ControlFlow_WeightLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_fDabgFhYEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_MrawgVhYEeiSk_egVxEj3Q" y="20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_MrawglhYEeiSk_egVxEj3Q" type="ControlFlow_GuardLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_fED7wFhYEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_Mrawg1hYEeiSk_egVxEj3Q" x="9" y="20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_MrawhFhYEeiSk_egVxEj3Q" type="ControlFlow_StereotypeLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_fEy7kFhYEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_MrawhVhYEeiSk_egVxEj3Q" y="-20"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_MraJcVhYEeiSk_egVxEj3Q"/>
+    <element xmi:type="uml:ControlFlow" href="doc.uml#_Mq4lAFhYEeiSk_egVxEj3Q"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_MraJclhYEeiSk_egVxEj3Q" points="[558, 738, -643984, -643984]$[619, 738, -643984, -643984]$[619, 786, -643984, -643984]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_MscEMFhYEeiSk_egVxEj3Q" id="(0.95,0.5333333333333333)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_MscEMVhYEeiSk_egVxEj3Q" id="(0.33858267716535434,0.0)"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_mmRwAFhYEeiSk_egVxEj3Q" type="ControlFlow_Edge" source="_yZxosFhXEeiSk_egVxEj3Q" target="_va88kFhWEeiSk_egVxEj3Q">
+    <children xmi:type="notation:DecorationNode" xmi:id="_mmRwA1hYEeiSk_egVxEj3Q" type="ControlFlow_NameLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_qP7-UFhYEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_mmRwBFhYEeiSk_egVxEj3Q" x="-269" y="-248"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_mmRwBVhYEeiSk_egVxEj3Q" type="ControlFlow_WeightLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_qQhNIFhYEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_mmRwBlhYEeiSk_egVxEj3Q" y="20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_mmSXEFhYEeiSk_egVxEj3Q" type="ControlFlow_GuardLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_qRMikFhYEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_mmSXEVhYEeiSk_egVxEj3Q" x="61" y="20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_mmSXElhYEeiSk_egVxEj3Q" type="ControlFlow_StereotypeLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_qRxKUFhYEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_mmSXE1hYEeiSk_egVxEj3Q" y="-20"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_mmRwAVhYEeiSk_egVxEj3Q"/>
+    <element xmi:type="uml:ControlFlow" href="doc.uml#_mlqE8FhYEeiSk_egVxEj3Q"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_mmRwAlhYEeiSk_egVxEj3Q" points="[553, 737, -643984, -643984]$[436, 737, -643984, -643984]$[436, 501, -643984, -643984]$[250, 501, -643984, -643984]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_mnbmkFhYEeiSk_egVxEj3Q" id="(0.0,0.4666666666666667)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_mnbmkVhYEeiSk_egVxEj3Q" id="(0.8,0.3333333333333333)"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_nTs2sFhYEeiSk_egVxEj3Q" type="ControlFlow_Edge" source="_-l0u0FhXEeiSk_egVxEj3Q" target="_k3bBgFhYEeiSk_egVxEj3Q">
+    <children xmi:type="notation:DecorationNode" xmi:id="_nTtdwFhYEeiSk_egVxEj3Q" type="ControlFlow_NameLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_qST84FhYEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_nTtdwVhYEeiSk_egVxEj3Q" x="-37" y="20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_nTtdwlhYEeiSk_egVxEj3Q" type="ControlFlow_WeightLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_qS2IYFhYEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_nTtdw1hYEeiSk_egVxEj3Q" y="20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_nTtdxFhYEeiSk_egVxEj3Q" type="ControlFlow_GuardLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_qTXs0FhYEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_nTtdxVhYEeiSk_egVxEj3Q" x="37" y="20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_nTtdxlhYEeiSk_egVxEj3Q" type="ControlFlow_StereotypeLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_qT7GcFhYEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_nTtdx1hYEeiSk_egVxEj3Q" y="-20"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_nTs2sVhYEeiSk_egVxEj3Q"/>
+    <element xmi:type="uml:ControlFlow" href="doc.uml#_nS_sEFhYEeiSk_egVxEj3Q"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_nTs2slhYEeiSk_egVxEj3Q" points="[289, 681, -643984, -643984]$[289, 755, -643984, -643984]$[391, 755, -643984, -643984]$[391, 803, -643984, -643984]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_nVdKMFhYEeiSk_egVxEj3Q" id="(0.4857142857142857,1.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_nVdKMVhYEeiSk_egVxEj3Q" id="(0.2891566265060241,0.2)"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_oCCjYFhYEeiSk_egVxEj3Q" type="ControlFlow_Edge" source="_fvLnQFhWEeiSk_egVxEj3Q" target="_k3bBgFhYEeiSk_egVxEj3Q">
+    <children xmi:type="notation:DecorationNode" xmi:id="_oCDKcFhYEeiSk_egVxEj3Q" type="ControlFlow_NameLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_qUnqAFhYEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_oCDKcVhYEeiSk_egVxEj3Q" x="-26" y="20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_oCDKclhYEeiSk_egVxEj3Q" type="ControlFlow_WeightLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_qVRKQFhYEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_oCDKc1hYEeiSk_egVxEj3Q" y="20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_oCDKdFhYEeiSk_egVxEj3Q" type="ControlFlow_GuardLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_qV6DcFhYEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_oCDKdVhYEeiSk_egVxEj3Q" x="26" y="20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_oCDKdlhYEeiSk_egVxEj3Q" type="ControlFlow_StereotypeLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_qWZysFhYEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_oCDKd1hYEeiSk_egVxEj3Q" y="-20"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_oCCjYVhYEeiSk_egVxEj3Q"/>
+    <element xmi:type="uml:ControlFlow" href="doc.uml#_oBUKoFhYEeiSk_egVxEj3Q"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_oCCjYlhYEeiSk_egVxEj3Q" points="[191, 657, -643984, -643984]$[191, 839, -643984, -643984]$[385, 839, -643984, -643984]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_oDdfsFhYEeiSk_egVxEj3Q" id="(0.5,1.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_oDdfsVhYEeiSk_egVxEj3Q" id="(0.21686746987951808,0.28)"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_pNxWsFhYEeiSk_egVxEj3Q" type="ControlFlow_Edge" source="_IVaEcFhWEeiSk_egVxEj3Q" target="_k3bBgFhYEeiSk_egVxEj3Q">
+    <children xmi:type="notation:DecorationNode" xmi:id="_pNxWs1hYEeiSk_egVxEj3Q" type="ControlFlow_NameLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_qXD6AFhYEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_pNxWtFhYEeiSk_egVxEj3Q" x="-55" y="20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_pNx9wFhYEeiSk_egVxEj3Q" type="ControlFlow_WeightLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_qXjpQFhYEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_pNx9wVhYEeiSk_egVxEj3Q" y="20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_pNx9wlhYEeiSk_egVxEj3Q" type="ControlFlow_GuardLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_qYHC4FhYEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_pNx9w1hYEeiSk_egVxEj3Q" x="55" y="20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_pNx9xFhYEeiSk_egVxEj3Q" type="ControlFlow_StereotypeLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_qYmyIFhYEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_pNx9xVhYEeiSk_egVxEj3Q" y="-20"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_pNxWsVhYEeiSk_egVxEj3Q"/>
+    <element xmi:type="uml:ControlFlow" href="doc.uml#_pNBv0FhYEeiSk_egVxEj3Q"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_pNxWslhYEeiSk_egVxEj3Q" points="[576, 816, -643984, -643984]$[511, 816, -643984, -643984]$[511, 835, -643984, -643984]$[446, 835, -643984, -643984]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_pPM6EFhYEeiSk_egVxEj3Q" id="(0.0,0.75)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_pPNhIFhYEeiSk_egVxEj3Q" id="(0.9518072289156626,0.46)"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_0ANlkFhYEeiSk_egVxEj3Q" type="ControlFlow_Edge" source="_k3bBgFhYEeiSk_egVxEj3Q" target="_i0OXgFhUEeiSk_egVxEj3Q">
+    <children xmi:type="notation:DecorationNode" xmi:id="_0AOMoFhYEeiSk_egVxEj3Q" type="ControlFlow_NameLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_00h-cFhYEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_0AOMoVhYEeiSk_egVxEj3Q" x="-150" y="20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_0AOMolhYEeiSk_egVxEj3Q" type="ControlFlow_WeightLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_01qm4FhYEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_0AOMo1hYEeiSk_egVxEj3Q" y="20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_0AOMpFhYEeiSk_egVxEj3Q" type="ControlFlow_GuardLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_02nCEFhYEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_0AOMpVhYEeiSk_egVxEj3Q" x="150" y="20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_0AOMplhYEeiSk_egVxEj3Q" type="ControlFlow_StereotypeLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_03dWoFhYEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_0AOMp1hYEeiSk_egVxEj3Q" y="-20"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_0ANlkVhYEeiSk_egVxEj3Q"/>
+    <element xmi:type="uml:ControlFlow" href="doc.uml#_z_WC4FhYEeiSk_egVxEj3Q"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_0ANlklhYEeiSk_egVxEj3Q" points="[389, 832, -643984, -643984]$[98, 832, -643984, -643984]$[98, 274, -643984, -643984]$[380, 274, -643984, -643984]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0Bq-IFhYEeiSk_egVxEj3Q" id="(0.26506024096385544,0.78)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0Bq-IVhYEeiSk_egVxEj3Q" id="(0.0,0.5333333333333333)"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_GY5NEFhZEeiSk_egVxEj3Q" type="ControlFlow_Edge" source="__M6HgFhYEeiSk_egVxEj3Q" target="_DwEJoFhZEeiSk_egVxEj3Q">
+    <children xmi:type="notation:DecorationNode" xmi:id="_GY5NE1hZEeiSk_egVxEj3Q" type="ControlFlow_NameLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_G-0koFhZEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_GY5NFFhZEeiSk_egVxEj3Q" x="-196" y="13"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_GY5NFVhZEeiSk_egVxEj3Q" type="ControlFlow_WeightLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_G_iWUFhZEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_GY5NFlhZEeiSk_egVxEj3Q" y="20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_GY5NF1hZEeiSk_egVxEj3Q" type="ControlFlow_GuardLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_HAIzQFhZEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_GY5NGFhZEeiSk_egVxEj3Q" x="38" y="20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_GY5NGVhZEeiSk_egVxEj3Q" type="ControlFlow_StereotypeLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_HAweUFhZEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_GY5NGlhZEeiSk_egVxEj3Q" y="-20"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_GY5NEVhZEeiSk_egVxEj3Q"/>
+    <element xmi:type="uml:ControlFlow" href="doc.uml#_GYMpgFhZEeiSk_egVxEj3Q"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GY5NElhZEeiSk_egVxEj3Q" points="[936, 268, -643984, -643984]$[1191, 268, -643984, -643984]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GaFf4FhZEeiSk_egVxEj3Q" id="(0.9,0.6)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GaFf4VhZEeiSk_egVxEj3Q" id="(0.05,0.6)"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_HjuBcFhZEeiSk_egVxEj3Q" type="ControlFlow_Edge" source="_X7p2AFhVEeiSk_egVxEj3Q" target="__M6HgFhYEeiSk_egVxEj3Q">
+    <children xmi:type="notation:DecorationNode" xmi:id="_HjuBc1hZEeiSk_egVxEj3Q" type="ControlFlow_NameLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_37ZCYFmwEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_HjuBdFhZEeiSk_egVxEj3Q" x="-241" y="-8"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_HjuBdVhZEeiSk_egVxEj3Q" type="ControlFlow_WeightLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_38RzMFmwEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_HjuogFhZEeiSk_egVxEj3Q" y="20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_HjuogVhZEeiSk_egVxEj3Q" type="ControlFlow_GuardLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_39LLEFmwEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_HjuoglhZEeiSk_egVxEj3Q" x="42" y="20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_Hjuog1hZEeiSk_egVxEj3Q" type="ControlFlow_StereotypeLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_3-OT8FmwEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_HjuohFhZEeiSk_egVxEj3Q" y="-20"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_HjuBcVhZEeiSk_egVxEj3Q"/>
+    <element xmi:type="uml:ControlFlow" href="doc.uml#_HjMdAFhZEeiSk_egVxEj3Q"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_HjuBclhZEeiSk_egVxEj3Q" points="[640, 267, -643984, -643984]$[919, 267, -643984, -643984]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Hk2p4FhZEeiSk_egVxEj3Q" id="(0.95,0.4666666666666667)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Hk2p4VhZEeiSk_egVxEj3Q" id="(0.05,0.5666666666666667)"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_iI3UEFhZEeiSk_egVxEj3Q" type="ControlFlow_Edge" source="__M6HgFhYEeiSk_egVxEj3Q" target="_aAMj0FhZEeiSk_egVxEj3Q">
+    <children xmi:type="notation:DecorationNode" xmi:id="_iI3UE1hZEeiSk_egVxEj3Q" type="ControlFlow_NameLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_CuvbwFmnEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_iI3UFFhZEeiSk_egVxEj3Q" x="-30" y="-12"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_iI3UFVhZEeiSk_egVxEj3Q" type="ControlFlow_WeightLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_Cvx9kFmnEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_iI3UFlhZEeiSk_egVxEj3Q" y="20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_iI3UF1hZEeiSk_egVxEj3Q" type="ControlFlow_GuardLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_CwYagFmnEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_iI3UGFhZEeiSk_egVxEj3Q" x="8" y="20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_iI3UGVhZEeiSk_egVxEj3Q" type="ControlFlow_StereotypeLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_CxRyYFmnEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_iI3UGlhZEeiSk_egVxEj3Q" y="-20"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_iI3UEVhZEeiSk_egVxEj3Q"/>
+    <element xmi:type="uml:ControlFlow" href="doc.uml#_iIF4AFhZEeiSk_egVxEj3Q"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_iI3UElhZEeiSk_egVxEj3Q" points="[926, 277, -643984, -643984]$[926, 299, -643984, -643984]$[916, 299, -643984, -643984]$[916, 321, -643984, -643984]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_iKK7oFhZEeiSk_egVxEj3Q" id="(0.4,0.9)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_iKK7oVhZEeiSk_egVxEj3Q" id="(0.4659090909090909,0.3181818181818182)"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_jFO1sFhZEeiSk_egVxEj3Q" type="ControlFlow_Edge" source="_aAMj0FhZEeiSk_egVxEj3Q" target="_dae5YFhZEeiSk_egVxEj3Q">
+    <children xmi:type="notation:DecorationNode" xmi:id="_jFO1s1hZEeiSk_egVxEj3Q" type="ControlFlow_NameLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_CpyDQFmnEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_jFO1tFhZEeiSk_egVxEj3Q" x="-6" y="20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_jFO1tVhZEeiSk_egVxEj3Q" type="ControlFlow_WeightLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_CrHgAFmnEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_jFO1tlhZEeiSk_egVxEj3Q" y="20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_jFO1t1hZEeiSk_egVxEj3Q" type="ControlFlow_GuardLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_CsgAEFmnEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_jFO1uFhZEeiSk_egVxEj3Q" x="6" y="20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_jFO1uVhZEeiSk_egVxEj3Q" type="ControlFlow_StereotypeLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_CtsS4FmnEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_jFO1ulhZEeiSk_egVxEj3Q" y="-20"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_jFO1sVhZEeiSk_egVxEj3Q"/>
+    <element xmi:type="uml:ControlFlow" href="doc.uml#_jEgc8FhZEeiSk_egVxEj3Q"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_jFO1slhZEeiSk_egVxEj3Q" points="[934, 366, -643984, -643984]$[934, 382, -643984, -643984]$[930, 382, -643984, -643984]$[930, 400, -643984, -643984]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_jGk5gFhZEeiSk_egVxEj3Q" id="(0.4925373134328358,1.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_jGk5gVhZEeiSk_egVxEj3Q" id="(0.45454545454545453,0.0)"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_kgLwwFhZEeiSk_egVxEj3Q" type="ControlFlow_Edge" source="_dae5YFhZEeiSk_egVxEj3Q" target="_X7p2AFhVEeiSk_egVxEj3Q">
+    <children xmi:type="notation:DecorationNode" xmi:id="_kgLww1hZEeiSk_egVxEj3Q" type="ControlFlow_NameLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_KRRZEFmnEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_kgLwxFhZEeiSk_egVxEj3Q" x="-54" y="20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_kgLwxVhZEeiSk_egVxEj3Q" type="ControlFlow_WeightLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_KR32AFmnEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_kgLwxlhZEeiSk_egVxEj3Q" y="20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_kgLwx1hZEeiSk_egVxEj3Q" type="ControlFlow_GuardLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_KSxN4FmnEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_kgLwyFhZEeiSk_egVxEj3Q" x="54" y="20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_kgLwyVhZEeiSk_egVxEj3Q" type="ControlFlow_StereotypeLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_KTp-sFmnEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_kgLwylhZEeiSk_egVxEj3Q" y="-20"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_kgLwwVhZEeiSk_egVxEj3Q"/>
+    <element xmi:type="uml:ControlFlow" href="doc.uml#_kfRx0FhZEeiSk_egVxEj3Q"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_kgLwwlhZEeiSk_egVxEj3Q" points="[850, 420, -643984, -643984]$[726, 420, -643984, -643984]$[726, 277, -643984, -643984]$[635, 277, -643984, -643984]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_kiEAEFhZEeiSk_egVxEj3Q" id="(0.0,0.5)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Jjr6UFmnEeiSk_egVxEj3Q" id="(0.65,0.8333333333333334)"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_pC1IIFmvEeiSk_egVxEj3Q" type="ControlFlow_Edge" source="_L0pWsFmvEeiSk_egVxEj3Q" target="_yZxosFhXEeiSk_egVxEj3Q">
+    <children xmi:type="notation:DecorationNode" xmi:id="_pC1II1mvEeiSk_egVxEj3Q" type="ControlFlow_NameLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_jeBmUFmwEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_pC1IJFmvEeiSk_egVxEj3Q" x="-8" y="20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_pC1IJVmvEeiSk_egVxEj3Q" type="ControlFlow_WeightLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_jexNMFmwEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_pC1IJlmvEeiSk_egVxEj3Q" y="20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_pC1IJ1mvEeiSk_egVxEj3Q" type="ControlFlow_GuardLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_jfp-AFmwEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_pC1IKFmvEeiSk_egVxEj3Q" x="8" y="20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_pC1IKVmvEeiSk_egVxEj3Q" type="ControlFlow_StereotypeLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_jgZk4FmwEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_pC1IKlmvEeiSk_egVxEj3Q" y="-20"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_pC1IIVmvEeiSk_egVxEj3Q"/>
+    <element xmi:type="uml:ControlFlow" href="doc.uml#_pB7wQFmvEeiSk_egVxEj3Q"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_pC1IIlmvEeiSk_egVxEj3Q" points="[566, 705, -643984, -643984]$[566, 747, -643984, -643984]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_pEn34FmvEeiSk_egVxEj3Q" id="(0.5223880597014925,1.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_pEn34VmvEeiSk_egVxEj3Q" id="(0.55,0.03333333333333333)"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_tSxd4FmwEeiSk_egVxEj3Q" type="ControlFlow_Edge" source="_UA7mMFmwEeiSk_egVxEj3Q" target="_k3bBgFhYEeiSk_egVxEj3Q">
+    <children xmi:type="notation:DecorationNode" xmi:id="_tSxd41mwEeiSk_egVxEj3Q" type="ControlFlow_NameLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_uPT-oFmwEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_tSxd5FmwEeiSk_egVxEj3Q" x="-64" y="20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_tSxd5VmwEeiSk_egVxEj3Q" type="ControlFlow_WeightLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_uQDlgFmwEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_tSxd5lmwEeiSk_egVxEj3Q" y="20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_tSxd51mwEeiSk_egVxEj3Q" type="ControlFlow_GuardLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_uQ8WUFmwEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_tSxd6FmwEeiSk_egVxEj3Q" x="64" y="20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_tSxd6VmwEeiSk_egVxEj3Q" type="ControlFlow_StereotypeLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_uRskQFmwEeiSk_egVxEj3Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_tSxd6lmwEeiSk_egVxEj3Q" y="-20"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_tSxd4VmwEeiSk_egVxEj3Q"/>
+    <element xmi:type="uml:ControlFlow" href="doc.uml#_tR4GAFmwEeiSk_egVxEj3Q"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_tSxd4lmwEeiSk_egVxEj3Q" points="[720, 705, -643984, -643984]$[720, 834, -643984, -643984]$[423, 834, -643984, -643984]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_tUacoFmwEeiSk_egVxEj3Q" id="(0.25,1.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_tUacoVmwEeiSk_egVxEj3Q" id="(0.6746987951807228,0.82)"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_BO-bsFmzEeiSk_egVxEj3Q" type="ControlFlow_Edge" source="_7iWQEFmyEeiSk_egVxEj3Q" target="_L0pWsFmvEeiSk_egVxEj3Q">
+    <children xmi:type="notation:DecorationNode" xmi:id="_BO-bs1mzEeiSk_egVxEj3Q" type="ControlFlow_NameLabel">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_BO-btFmzEeiSk_egVxEj3Q" y="20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_BO-btVmzEeiSk_egVxEj3Q" type="ControlFlow_WeightLabel">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_BO-btlmzEeiSk_egVxEj3Q" y="20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_BO-bt1mzEeiSk_egVxEj3Q" type="ControlFlow_GuardLabel">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_BO-buFmzEeiSk_egVxEj3Q" y="20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_BO-buVmzEeiSk_egVxEj3Q" type="ControlFlow_StereotypeLabel">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_BO-bulmzEeiSk_egVxEj3Q" y="-20"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_BO-bsVmzEeiSk_egVxEj3Q"/>
+    <element xmi:type="uml:ControlFlow" href="doc.uml#_BN754FmzEeiSk_egVxEj3Q"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_BO-bslmzEeiSk_egVxEj3Q" points="[0, 13, -1, -43]$[-57, 79, -58, 23]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_BQxLcFmzEeiSk_egVxEj3Q" id="(0.45185185185185184,0.675)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_BQxLcVmzEeiSk_egVxEj3Q" id="(0.4626865671641791,0.5384615384615384)"/>
+  </edges>
+</notation:Diagram>
diff --git a/bundles/core/tools/org.eclipse.papyrus.moka.externalcontrol/doc/doc.uml b/bundles/core/tools/org.eclipse.papyrus.moka.externalcontrol/doc/doc.uml
new file mode 100644
index 0000000..4ca30a2
--- /dev/null
+++ b/bundles/core/tools/org.eclipse.papyrus.moka.externalcontrol/doc/doc.uml
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Model xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_hvtRYFhSEeiSk_egVxEj3Q" name="doc">
+  <packageImport xmi:type="uml:PackageImport" xmi:id="_h-PcoFhSEeiSk_egVxEj3Q">
+    <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
+  </packageImport>
+  <packagedElement xmi:type="uml:Activity" xmi:id="_hyKvgFhSEeiSk_egVxEj3Q" name="ActivityExecution" node="_joAPwFhSEeiSk_egVxEj3Q _l_UFYFhSEeiSk_egVxEj3Q _xELhAFhSEeiSk_egVxEj3Q _iz940FhUEeiSk_egVxEj3Q _6v2qMFhUEeiSk_egVxEj3Q _LtLG8FhVEeiSk_egVxEj3Q _SeqB0FhVEeiSk_egVxEj3Q _X7SCkFhVEeiSk_egVxEj3Q _IVEGMFhWEeiSk_egVxEj3Q _aHNSIFhWEeiSk_egVxEj3Q _fukjQFhWEeiSk_egVxEj3Q _vag3sFhWEeiSk_egVxEj3Q _yZUVsFhXEeiSk_egVxEj3Q _-lUYgFhXEeiSk_egVxEj3Q _k20kkFhYEeiSk_egVxEj3Q __MR1YFhYEeiSk_egVxEj3Q _DvgwAFhZEeiSk_egVxEj3Q _Z_jDkFhZEeiSk_egVxEj3Q _dZyV0FhZEeiSk_egVxEj3Q _Lz5v0FmvEeiSk_egVxEj3Q _UAe6QFmwEeiSk_egVxEj3Q _7hcRIFmyEeiSk_egVxEj3Q">
+    <ownedComment xmi:type="uml:Comment" xmi:id="_sixuMFhZEeiSk_egVxEj3Q">
+      <body>Simulation terminates when :&#xD;
+&#xD;
+-all the nodes have been executed&#xD;
+-or suspended nodes can't be executed and no more no time event pending</body>
+    </ownedComment>
+    <ownedComment xmi:type="uml:Comment" xmi:id="_93nwQFmwEeiSk_egVxEj3Q">
+      <body>Suspending a visitor for time pushes an Event with specific &quot;Visitor Wake-Up action&quot; in the DEScheduler. This action will be executed by the DEScheduler when the date is reached, and is equivalent to &quot;suspend visitor for control&quot;.&#xD;
+Advices can also define their own actions and use the DEScheduler to execute things in the future.</body>
+    </ownedComment>
+    <edge xmi:type="uml:ControlFlow" xmi:id="_rmWUcFhUEeiSk_egVxEj3Q" name="yes" target="_xELhAFhSEeiSk_egVxEj3Q" source="_iz940FhUEeiSk_egVxEj3Q"/>
+    <edge xmi:type="uml:ControlFlow" xmi:id="_RxF7wFhWEeiSk_egVxEj3Q" target="_aHNSIFhWEeiSk_egVxEj3Q" source="_xELhAFhSEeiSk_egVxEj3Q"/>
+    <edge xmi:type="uml:ControlFlow" xmi:id="_SW-3EFhWEeiSk_egVxEj3Q" name="yes" target="_LtLG8FhVEeiSk_egVxEj3Q" source="_6v2qMFhUEeiSk_egVxEj3Q"/>
+    <edge xmi:type="uml:ControlFlow" xmi:id="_uWqOAFhWEeiSk_egVxEj3Q" name="finishing" target="_vag3sFhWEeiSk_egVxEj3Q" source="_aHNSIFhWEeiSk_egVxEj3Q"/>
+    <edge xmi:type="uml:ControlFlow" xmi:id="_0aCswFhWEeiSk_egVxEj3Q" name="starting" target="_6v2qMFhUEeiSk_egVxEj3Q" source="_aHNSIFhWEeiSk_egVxEj3Q"/>
+    <edge xmi:type="uml:ControlFlow" xmi:id="_G5QaEFhXEeiSk_egVxEj3Q" target="_iz940FhUEeiSk_egVxEj3Q" source="_l_UFYFhSEeiSk_egVxEj3Q"/>
+    <edge xmi:type="uml:ControlFlow" xmi:id="_JlMb4FhXEeiSk_egVxEj3Q" name="no" target="_X7SCkFhVEeiSk_egVxEj3Q" source="_iz940FhUEeiSk_egVxEj3Q"/>
+    <edge xmi:type="uml:ControlFlow" xmi:id="_VA0xsFhXEeiSk_egVxEj3Q" name="yes" target="_SeqB0FhVEeiSk_egVxEj3Q" source="_X7SCkFhVEeiSk_egVxEj3Q"/>
+    <edge xmi:type="uml:ControlFlow" xmi:id="_Znh3EFhXEeiSk_egVxEj3Q" name="yes" target="_fukjQFhWEeiSk_egVxEj3Q" source="_vag3sFhWEeiSk_egVxEj3Q"/>
+    <edge xmi:type="uml:ControlFlow" xmi:id="_d7N50FhXEeiSk_egVxEj3Q" target="_aHNSIFhWEeiSk_egVxEj3Q" source="_SeqB0FhVEeiSk_egVxEj3Q"/>
+    <edge xmi:type="uml:ControlFlow" xmi:id="_6CiJ0FhXEeiSk_egVxEj3Q" target="_l_UFYFhSEeiSk_egVxEj3Q" source="_joAPwFhSEeiSk_egVxEj3Q"/>
+    <edge xmi:type="uml:ControlFlow" xmi:id="_HvsdYFhYEeiSk_egVxEj3Q" name="no" target="_-lUYgFhXEeiSk_egVxEj3Q" source="_vag3sFhWEeiSk_egVxEj3Q"/>
+    <edge xmi:type="uml:ControlFlow" xmi:id="_KJtowFhYEeiSk_egVxEj3Q" name="no" target="_UAe6QFmwEeiSk_egVxEj3Q" source="_6v2qMFhUEeiSk_egVxEj3Q"/>
+    <edge xmi:type="uml:ControlFlow" xmi:id="_L-KB4FhYEeiSk_egVxEj3Q" target="_7hcRIFmyEeiSk_egVxEj3Q" source="_LtLG8FhVEeiSk_egVxEj3Q"/>
+    <edge xmi:type="uml:ControlFlow" xmi:id="_Mq4lAFhYEeiSk_egVxEj3Q" name="yes" target="_IVEGMFhWEeiSk_egVxEj3Q" source="_yZUVsFhXEeiSk_egVxEj3Q"/>
+    <edge xmi:type="uml:ControlFlow" xmi:id="_mlqE8FhYEeiSk_egVxEj3Q" name="no" target="_vag3sFhWEeiSk_egVxEj3Q" source="_yZUVsFhXEeiSk_egVxEj3Q"/>
+    <edge xmi:type="uml:ControlFlow" xmi:id="_nS_sEFhYEeiSk_egVxEj3Q" target="_k20kkFhYEeiSk_egVxEj3Q" source="_-lUYgFhXEeiSk_egVxEj3Q"/>
+    <edge xmi:type="uml:ControlFlow" xmi:id="_oBUKoFhYEeiSk_egVxEj3Q" target="_k20kkFhYEeiSk_egVxEj3Q" source="_fukjQFhWEeiSk_egVxEj3Q"/>
+    <edge xmi:type="uml:ControlFlow" xmi:id="_pNBv0FhYEeiSk_egVxEj3Q" target="_k20kkFhYEeiSk_egVxEj3Q" source="_IVEGMFhWEeiSk_egVxEj3Q"/>
+    <edge xmi:type="uml:ControlFlow" xmi:id="_z_WC4FhYEeiSk_egVxEj3Q" target="_iz940FhUEeiSk_egVxEj3Q" source="_k20kkFhYEeiSk_egVxEj3Q"/>
+    <edge xmi:type="uml:ControlFlow" xmi:id="_GYMpgFhZEeiSk_egVxEj3Q" name="no" target="_DvgwAFhZEeiSk_egVxEj3Q" source="__MR1YFhYEeiSk_egVxEj3Q"/>
+    <edge xmi:type="uml:ControlFlow" xmi:id="_HjMdAFhZEeiSk_egVxEj3Q" name="no" target="__MR1YFhYEeiSk_egVxEj3Q" source="_X7SCkFhVEeiSk_egVxEj3Q"/>
+    <edge xmi:type="uml:ControlFlow" xmi:id="_iIF4AFhZEeiSk_egVxEj3Q" name="yes" target="_Z_jDkFhZEeiSk_egVxEj3Q" source="__MR1YFhYEeiSk_egVxEj3Q"/>
+    <edge xmi:type="uml:ControlFlow" xmi:id="_jEgc8FhZEeiSk_egVxEj3Q" target="_dZyV0FhZEeiSk_egVxEj3Q" source="_Z_jDkFhZEeiSk_egVxEj3Q"/>
+    <edge xmi:type="uml:ControlFlow" xmi:id="_kfRx0FhZEeiSk_egVxEj3Q" target="_X7SCkFhVEeiSk_egVxEj3Q" source="_dZyV0FhZEeiSk_egVxEj3Q"/>
+    <edge xmi:type="uml:ControlFlow" xmi:id="_pB7wQFmvEeiSk_egVxEj3Q" target="_yZUVsFhXEeiSk_egVxEj3Q" source="_Lz5v0FmvEeiSk_egVxEj3Q"/>
+    <edge xmi:type="uml:ControlFlow" xmi:id="_tR4GAFmwEeiSk_egVxEj3Q" target="_k20kkFhYEeiSk_egVxEj3Q" source="_UAe6QFmwEeiSk_egVxEj3Q"/>
+    <edge xmi:type="uml:ControlFlow" xmi:id="_BN754FmzEeiSk_egVxEj3Q" target="_Lz5v0FmvEeiSk_egVxEj3Q" source="_7hcRIFmyEeiSk_egVxEj3Q"/>
+    <node xmi:type="uml:InitialNode" xmi:id="_joAPwFhSEeiSk_egVxEj3Q" name="InitialNode1" outgoing="_6CiJ0FhXEeiSk_egVxEj3Q"/>
+    <node xmi:type="uml:OpaqueAction" xmi:id="_l_UFYFhSEeiSk_egVxEj3Q" name="Visitors and Advices initialization" incoming="_6CiJ0FhXEeiSk_egVxEj3Q" outgoing="_G5QaEFhXEeiSk_egVxEj3Q"/>
+    <node xmi:type="uml:OpaqueAction" xmi:id="_xELhAFhSEeiSk_egVxEj3Q" name="get next Visitor " incoming="_rmWUcFhUEeiSk_egVxEj3Q" outgoing="_RxF7wFhWEeiSk_egVxEj3Q"/>
+    <node xmi:type="uml:DecisionNode" xmi:id="_iz940FhUEeiSk_egVxEj3Q" name="has next Visitable vistor? (from fUML graph point of view)" incoming="_G5QaEFhXEeiSk_egVxEj3Q _z_WC4FhYEeiSk_egVxEj3Q" outgoing="_rmWUcFhUEeiSk_egVxEj3Q _JlMb4FhXEeiSk_egVxEj3Q"/>
+    <node xmi:type="uml:DecisionNode" xmi:id="_6v2qMFhUEeiSk_egVxEj3Q" name="can start? (called to all advice)" incoming="_0aCswFhWEeiSk_egVxEj3Q" outgoing="_SW-3EFhWEeiSk_egVxEj3Q _KJtowFhYEeiSk_egVxEj3Q"/>
+    <node xmi:type="uml:OpaqueAction" xmi:id="_LtLG8FhVEeiSk_egVxEj3Q" name="do start actions (for all advices)" incoming="_SW-3EFhWEeiSk_egVxEj3Q" outgoing="_L-KB4FhYEeiSk_egVxEj3Q"/>
+    <node xmi:type="uml:OpaqueAction" xmi:id="_SeqB0FhVEeiSk_egVxEj3Q" name="get next suspended visitor" incoming="_VA0xsFhXEeiSk_egVxEj3Q" outgoing="_d7N50FhXEeiSk_egVxEj3Q"/>
+    <node xmi:type="uml:DecisionNode" xmi:id="_X7SCkFhVEeiSk_egVxEj3Q" name="has visitors suspended for control which can start or finish ?" incoming="_JlMb4FhXEeiSk_egVxEj3Q _kfRx0FhZEeiSk_egVxEj3Q" outgoing="_VA0xsFhXEeiSk_egVxEj3Q _HjMdAFhZEeiSk_egVxEj3Q"/>
+    <node xmi:type="uml:OpaqueAction" xmi:id="_IVEGMFhWEeiSk_egVxEj3Q" name="suspend visitor for time" incoming="_Mq4lAFhYEeiSk_egVxEj3Q" outgoing="_pNBv0FhYEeiSk_egVxEj3Q"/>
+    <node xmi:type="uml:DecisionNode" xmi:id="_aHNSIFhWEeiSk_egVxEj3Q" name="check state" incoming="_RxF7wFhWEeiSk_egVxEj3Q _d7N50FhXEeiSk_egVxEj3Q" outgoing="_uWqOAFhWEeiSk_egVxEj3Q _0aCswFhWEeiSk_egVxEj3Q"/>
+    <node xmi:type="uml:OpaqueAction" xmi:id="_fukjQFhWEeiSk_egVxEj3Q" name="do Finish actions (for all advices)" incoming="_Znh3EFhXEeiSk_egVxEj3Q" outgoing="_oBUKoFhYEeiSk_egVxEj3Q"/>
+    <node xmi:type="uml:DecisionNode" xmi:id="_vag3sFhWEeiSk_egVxEj3Q" name="can finish?" incoming="_uWqOAFhWEeiSk_egVxEj3Q _mlqE8FhYEeiSk_egVxEj3Q" outgoing="_Znh3EFhXEeiSk_egVxEj3Q _HvsdYFhYEeiSk_egVxEj3Q"/>
+    <node xmi:type="uml:DecisionNode" xmi:id="_yZUVsFhXEeiSk_egVxEj3Q" name="has duration?" incoming="_pB7wQFmvEeiSk_egVxEj3Q" outgoing="_Mq4lAFhYEeiSk_egVxEj3Q _mlqE8FhYEeiSk_egVxEj3Q"/>
+    <node xmi:type="uml:OpaqueAction" xmi:id="_-lUYgFhXEeiSk_egVxEj3Q" name="suspend visitor for control" incoming="_HvsdYFhYEeiSk_egVxEj3Q" outgoing="_nS_sEFhYEeiSk_egVxEj3Q"/>
+    <node xmi:type="uml:MergeNode" xmi:id="_k20kkFhYEeiSk_egVxEj3Q" name="MergeNode1" incoming="_nS_sEFhYEeiSk_egVxEj3Q _oBUKoFhYEeiSk_egVxEj3Q _pNBv0FhYEeiSk_egVxEj3Q _tR4GAFmwEeiSk_egVxEj3Q" outgoing="_z_WC4FhYEeiSk_egVxEj3Q"/>
+    <node xmi:type="uml:DecisionNode" xmi:id="__MR1YFhYEeiSk_egVxEj3Q" name="has pending time events?" incoming="_HjMdAFhZEeiSk_egVxEj3Q" outgoing="_GYMpgFhZEeiSk_egVxEj3Q _iIF4AFhZEeiSk_egVxEj3Q"/>
+    <node xmi:type="uml:ActivityFinalNode" xmi:id="_DvgwAFhZEeiSk_egVxEj3Q" name="finish simulation" incoming="_GYMpgFhZEeiSk_egVxEj3Q"/>
+    <node xmi:type="uml:OpaqueAction" xmi:id="_Z_jDkFhZEeiSk_egVxEj3Q" name="jump to next DEShdeduler event date" incoming="_iIF4AFhZEeiSk_egVxEj3Q" outgoing="_jEgc8FhZEeiSk_egVxEj3Q"/>
+    <node xmi:type="uml:OpaqueAction" xmi:id="_dZyV0FhZEeiSk_egVxEj3Q" name="execute event action" incoming="_jEgc8FhZEeiSk_egVxEj3Q" outgoing="_kfRx0FhZEeiSk_egVxEj3Q"/>
+    <node xmi:type="uml:OpaqueAction" xmi:id="_Lz5v0FmvEeiSk_egVxEj3Q" name="change state to finishing" incoming="_BN754FmzEeiSk_egVxEj3Q" outgoing="_pB7wQFmvEeiSk_egVxEj3Q"/>
+    <node xmi:type="uml:OpaqueAction" xmi:id="_UAe6QFmwEeiSk_egVxEj3Q" name="suspend visitor for control" incoming="_KJtowFhYEeiSk_egVxEj3Q" outgoing="_tR4GAFmwEeiSk_egVxEj3Q"/>
+    <node xmi:type="uml:OpaqueAction" xmi:id="_7hcRIFmyEeiSk_egVxEj3Q" name="do fUML semantic action" incoming="_L-KB4FhYEeiSk_egVxEj3Q" outgoing="_BN754FmzEeiSk_egVxEj3Q"/>
+  </packagedElement>
+</uml:Model>
diff --git a/bundles/core/tools/org.eclipse.papyrus.moka.fuml.libraries.tools.annotations/xtend-gen/org/eclipse/papyrus/moka/fuml/libraries/tools/annotations/xtend/.gitignore b/bundles/core/tools/org.eclipse.papyrus.moka.fuml.libraries.tools.annotations/xtend-gen/org/eclipse/papyrus/moka/fuml/libraries/tools/annotations/xtend/.gitignore
new file mode 100644
index 0000000..a2ea0f3
--- /dev/null
+++ b/bundles/core/tools/org.eclipse.papyrus.moka.fuml.libraries.tools.annotations/xtend-gen/org/eclipse/papyrus/moka/fuml/libraries/tools/annotations/xtend/.gitignore
@@ -0,0 +1,4 @@
+/.BehaviorRegistryGenerator.java._trace
+/.OpaqueBehaviorExecutionGenerator.java._trace
+/BehaviorRegistryGenerator.java
+/OpaqueBehaviorExecutionGenerator.java
diff --git a/bundles/fmi/engines/org.eclipse.papyrus.moka.fmi.master/src/org/eclipse/papyrus/moka/fmi/master/masterlibrary/CoSimEnvironment.java b/bundles/fmi/engines/org.eclipse.papyrus.moka.fmi.master/src/org/eclipse/papyrus/moka/fmi/master/masterlibrary/CoSimEnvironment.java
index e0c6daa..23c2bbb 100644
--- a/bundles/fmi/engines/org.eclipse.papyrus.moka.fmi.master/src/org/eclipse/papyrus/moka/fmi/master/masterlibrary/CoSimEnvironment.java
+++ b/bundles/fmi/engines/org.eclipse.papyrus.moka.fmi.master/src/org/eclipse/papyrus/moka/fmi/master/masterlibrary/CoSimEnvironment.java
@@ -18,7 +18,6 @@
 import org.eclipse.emf.common.util.EList;
 import org.eclipse.papyrus.moka.composites.Semantics.impl.CompositeStructures.StructuredClasses.CS_Object;
 import org.eclipse.papyrus.moka.composites.interfaces.Semantics.CompositeStructures.StructuredClasses.ICS_Object;
-import org.eclipse.papyrus.moka.fmi.fmiprofile.FlowDirection;
 import org.eclipse.papyrus.moka.fmi.master.fmilibrary.Fmi2Parameters;
 import org.eclipse.papyrus.moka.fmi.master.fmilibrary.Fmi2Port;
 import org.eclipse.papyrus.moka.fmi.master.fmilibrary.Fmi2ScalarVariable;
@@ -26,6 +25,7 @@
 import org.eclipse.papyrus.moka.fmi.profile.util.FMIProfileUtil;
 import org.eclipse.papyrus.moka.fuml.Semantics.Classes.Kernel.IExtensionalValue;
 import org.eclipse.papyrus.moka.fuml.Semantics.Classes.Kernel.IFeatureValue;
+import org.eclipse.papyrus.sysml14.portsandflows.FlowDirection;
 import org.eclipse.uml2.uml.Class;
 import org.eclipse.uml2.uml.Classifier;
 import org.eclipse.uml2.uml.Connector;
diff --git a/bundles/fmi/engines/org.eclipse.papyrus.moka.fmu.engine/src/org/eclipse/papyrus/moka/fmu/engine/semantics/FMUObject.java b/bundles/fmi/engines/org.eclipse.papyrus.moka.fmu.engine/src/org/eclipse/papyrus/moka/fmu/engine/semantics/FMUObject.java
index 9fd51c0..34ab1ac 100644
--- a/bundles/fmi/engines/org.eclipse.papyrus.moka.fmu.engine/src/org/eclipse/papyrus/moka/fmu/engine/semantics/FMUObject.java
+++ b/bundles/fmi/engines/org.eclipse.papyrus.moka.fmu.engine/src/org/eclipse/papyrus/moka/fmu/engine/semantics/FMUObject.java
@@ -105,7 +105,7 @@
 			this.UMLPropertyNameToIndexMap = new HashMap<String, Integer>() ;
 			for (Property p : this.types.get(0).allAttributes()) {
 				if (FMIProfileUtil.isFMUPort(p)) {
-					int index = FMIProfileUtil.getValueReference(p) ;
+					int index = (int) FMIProfileUtil.getValueReference(p) ;
 					if (index != -1) {
 						this.indexToUMLPropertyMap.put(index, p) ;
 						this.UMLPropertyToIndexMap.put(p, index) ;
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/.classpath b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/.classpath
index 4ff52d4..502f456 100644
--- a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/.classpath
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/.classpath
@@ -2,7 +2,7 @@
 <classpath>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="src" path="src-gen"/>
+	<classpathentry kind="src" path="src/"/>
+	<classpathentry kind="src" path="src-gen/"/>
 	<classpathentry kind="output" path="target/classes"/>
 </classpath>
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/.gitignore b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/.gitignore
index 81325b3..c0a0d46 100644
--- a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/.gitignore
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/.gitignore
@@ -1,2 +1,3 @@
 /bin/
+/target/
 
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/META-INF/MANIFEST.MF b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/META-INF/MANIFEST.MF
index 45f94af..bff0e1e 100644
--- a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/META-INF/MANIFEST.MF
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/META-INF/MANIFEST.MF
@@ -1,20 +1,24 @@
 Manifest-Version: 1.0
-Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.14.0,4.0.0)",
- org.eclipse.uml2.uml.resources;bundle-version="[5.4.0,6.0.0)",
- org.eclipse.uml2.uml.profile.standard;bundle-version="[1.4.0,2.0.0)",
- org.eclipse.uml2.uml;bundle-version="[5.4.0,6.0.0)",
- org.eclipse.papyrus.moka.fmi;bundle-version="4.0.0"
+Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.13.0,4.0.0)",
+ org.eclipse.emf.ecore;visibility:=reexport,
+ org.eclipse.uml2.uml.resources;bundle-version="[5.3.0,6.0.0)",
+ org.eclipse.uml2.uml.profile.standard;bundle-version="[1.0.100,2.0.0)";visibility:=reexport,
+ org.eclipse.uml2.uml;bundle-version="[5.3.0,6.0.0)";visibility:=reexport,
+ org.eclipse.papyrus.moka.fmi;bundle-version="2.0.100";visibility:=reexport,
+ org.eclipse.uml2.types;visibility:=reexport,
+ org.eclipse.papyrus.sysml14;bundle-version="1.2.0";visibility:=reexport
 Bundle-ActivationPolicy: lazy
 Bundle-Version: 4.0.0.qualifier
 Bundle-ClassPath: .
-Bundle-Name: FMI 2.0 UML Profile
+Bundle-Name: %pluginName
 Bundle-ManifestVersion: 2
 Bundle-SymbolicName: org.eclipse.papyrus.moka.fmi.profile;singleton:=true
+Automatic-Module-Name: org.eclipse.papyrus.moka.fmi.profile
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Export-Package: org.eclipse.papyrus.moka.fmi.fmiprofile,
  org.eclipse.papyrus.moka.fmi.fmiprofile.impl,
  org.eclipse.papyrus.moka.fmi.fmiprofile.util,
  org.eclipse.papyrus.moka.fmi.profile.custom,
  org.eclipse.papyrus.moka.fmi.profile.util
-Bundle-Vendor: Eclipse Modeling Project
-Automatic-Module-Name: org.eclipse.papyrus.moka.fmi.profile
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/build.properties b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/build.properties
index e16b6fe..20522e2 100644
--- a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/build.properties
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/build.properties
@@ -1,10 +1,9 @@
 source.. = src/,\
            src-gen/
-output.. = target/classes/
 bin.includes = META-INF/,\
                .,\
                plugin.xml,\
                model/,\
                about.html,\
-               pom.xml
+               plugin.properties
 src.includes = about.html
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/model/FMI.profile.di b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/model/FMI.profile.di
index bf9abab..247ed5e 100644
--- a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/model/FMI.profile.di
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/model/FMI.profile.di
@@ -1,2 +1,2 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
+<architecture:ArchitectureDescription xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:architecture="http://www.eclipse.org/papyrus/infra/core/architecture" contextId="org.eclipse.papyrus.uml.architecture.Profile"/>
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/model/FMI.profile.genmodel b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/model/FMI.profile.genmodel
index e86cbaa..f2a6ba6 100644
--- a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/model/FMI.profile.genmodel
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/model/FMI.profile.genmodel
@@ -1,11 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:genmodel="http://www.eclipse.org/uml2/2.2.0/GenModel"
-    copyrightText="Copyright (c) 2016 CEA LIST.&#xD;&#xA;&#xD;&#xA; All rights reserved. This program and the accompanying materials&#xD;&#xA; are made available under the terms of the Eclipse Public License v1.0&#xD;&#xA; which accompanies this distribution, and is available at&#xD;&#xA; http://www.eclipse.org/legal/epl-v10.html&#xD;&#xA;&#xD;&#xA; Contributors:&#xD;&#xA;  CEA LIST - Initial API and implementation"
+    copyrightText="Copyright (c) 2016 CEA LIST.&#xA;&#xA; All rights reserved. This program and the accompanying materials&#xA; are made available under the terms of the Eclipse Public License v1.0&#xA; which accompanies this distribution, and is available at&#xA; http://www.eclipse.org/legal/epl-v10.html&#xA;&#xA; Contributors:&#xA;  CEA LIST - Initial API and implementation"
     modelDirectory="/org.eclipse.papyrus.moka.fmi.profile/src-gen" modelPluginID="org.eclipse.papyrus.moka.fmi.profile"
     modelName="FMI" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
     importerID="org.eclipse.uml2.uml.ecore.importer" complianceLevel="8.0" copyrightFields="false"
-    usedGenPackages="../../org.eclipse.emf.ecore/model/Ecore.genmodel#//ecore ../../org.eclipse.papyrus.moka.fmi/model/Fmi2ModelDescription.genmodel#//modeldescription ../../org.eclipse.papyrus.moka.fmi/model/fmumetamodel.genmodel#//fmumetamodel ../../org.eclipse.uml2.types/model/Types.genmodel#//types ../../org.eclipse.uml2.uml/model/UML.genmodel#//uml"
+    usedGenPackages="../../org.eclipse.emf.ecore/model/Ecore.genmodel#//ecore ../../org.eclipse.papyrus.moka.fmi/model/Fmi2ModelDescription.genmodel#//modeldescription ../../org.eclipse.papyrus.moka.fmi/model/fmumetamodel.genmodel#//fmumetamodel ../../org.eclipse.uml2.uml.profile.standard/model/Standard.genmodel#//standard ../../org.eclipse.papyrus.sysml14/resources/profile/SysML.profile.genmodel#//sysml14 ../../org.eclipse.uml2.types/model/Types.genmodel#//types ../../org.eclipse.uml2.uml/model/UML.genmodel#//uml"
     operationReflection="true" importOrganizing="true">
   <genAnnotations source="http://www.eclipse.org/emf/2002/GenModel/importer/org.eclipse.uml2.uml.ecore.importer">
     <details key="OPPOSITE_ROLE_NAMES" value="IGNORE"/>
@@ -46,18 +46,6 @@
       <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="fmiprofile.ecore#//InitialKind/approx"/>
       <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="fmiprofile.ecore#//InitialKind/calculated"/>
     </genEnums>
-    <genEnums xsi:type="genmodel:GenEnum" typeSafeEnumCompatible="false" ecoreEnum="fmiprofile.ecore#//FlowDirection">
-      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="fmiprofile.ecore#//FlowDirection/in"/>
-      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="fmiprofile.ecore#//FlowDirection/out"/>
-      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="fmiprofile.ecore#//FlowDirection/inout"/>
-    </genEnums>
-    <genEnums xsi:type="genmodel:GenEnum" typeSafeEnumCompatible="false" ecoreEnum="fmiprofile.ecore#//DependenciesKind">
-      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="fmiprofile.ecore#//DependenciesKind/dependent"/>
-      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="fmiprofile.ecore#//DependenciesKind/constant"/>
-      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="fmiprofile.ecore#//DependenciesKind/fixed"/>
-      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="fmiprofile.ecore#//DependenciesKind/tunable"/>
-      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="fmiprofile.ecore#//DependenciesKind/discrete"/>
-    </genEnums>
     <genEnums xsi:type="genmodel:GenEnum" typeSafeEnumCompatible="false" ecoreEnum="fmiprofile.ecore#//CausalityKind">
       <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="fmiprofile.ecore#//CausalityKind/parameter"/>
       <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="fmiprofile.ecore#//CausalityKind/calculatedParameter"/>
@@ -66,6 +54,13 @@
       <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="fmiprofile.ecore#//CausalityKind/local"/>
       <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="fmiprofile.ecore#//CausalityKind/independent"/>
     </genEnums>
+    <genEnums xsi:type="genmodel:GenEnum" typeSafeEnumCompatible="false" ecoreEnum="fmiprofile.ecore#//DependenciesKind">
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="fmiprofile.ecore#//DependenciesKind/dependent"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="fmiprofile.ecore#//DependenciesKind/constant"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="fmiprofile.ecore#//DependenciesKind/fixed"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="fmiprofile.ecore#//DependenciesKind/tunable"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="fmiprofile.ecore#//DependenciesKind/discrete"/>
+    </genEnums>
     <genEnums xsi:type="genmodel:GenEnum" typeSafeEnumCompatible="false" ecoreEnum="fmiprofile.ecore#//VariabilityNamingConvention">
       <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="fmiprofile.ecore#//VariabilityNamingConvention/flat"/>
       <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="fmiprofile.ecore#//VariabilityNamingConvention/structured"/>
@@ -111,15 +106,18 @@
           propertySortChoices="true" ecoreFeature="ecore:EReference fmiprofile.ecore#//FMU/fmuBundle"/>
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="fmiprofile.ecore#//Parameter"/>
-    <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="fmiprofile.ecore#//ScalarVariable">
+    <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="fmiprofile.ecore#//AbstractVariable">
       <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
-          propertySortChoices="true" ecoreFeature="ecore:EReference fmiprofile.ecore#//ScalarVariable/base_Property"/>
+          propertySortChoices="true" ecoreFeature="ecore:EReference fmiprofile.ecore#//AbstractVariable/base_Property"/>
+    </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="fmiprofile.ecore#//ScalarVariable">
       <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute fmiprofile.ecore#//ScalarVariable/description"/>
       <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute fmiprofile.ecore#//ScalarVariable/variability"/>
       <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute fmiprofile.ecore#//ScalarVariable/initial"/>
       <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute fmiprofile.ecore#//ScalarVariable/valueReference"/>
       <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
           propertySortChoices="true" ecoreFeature="ecore:EReference fmiprofile.ecore#//ScalarVariable/fmiVariable"/>
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute fmiprofile.ecore#//ScalarVariable/causalityKind"/>
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="fmiprofile.ecore#//Local"/>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="fmiprofile.ecore#//CS_FMU">
@@ -135,11 +133,7 @@
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="fmiprofile.ecore#//ME_FMU">
       <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute fmiprofile.ecore#//ME_FMU/completedIntegratorStepNotNeeded"/>
     </genClasses>
-    <genClasses xsi:type="genmodel:GenClass" ecoreClass="fmiprofile.ecore#//Port">
-      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
-          propertySortChoices="true" ecoreFeature="ecore:EReference fmiprofile.ecore#//Port/base_Port"/>
-      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute fmiprofile.ecore#//Port/direction"/>
-    </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="fmiprofile.ecore#//FMIPort"/>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="fmiprofile.ecore#//Independent"/>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="fmiprofile.ecore#//Unknown">
       <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
@@ -175,5 +169,6 @@
           propertySortChoices="true" ecoreFeature="ecore:EReference fmiprofile.ecore#//InitialUnknownDependency/base_Dependency"/>
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="fmiprofile.ecore#//CalculatedParameter"/>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="fmiprofile.ecore#//Port"/>
   </genPackages>
 </genmodel:GenModel>
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/model/FMI.profile.notation b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/model/FMI.profile.notation
index 5a90cb6..3db1c83 100644
--- a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/model/FMI.profile.notation
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/model/FMI.profile.notation
@@ -1,21 +1,13 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:css="http://www.eclipse.org/papyrus/infra/gmfdiag/css" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/viewpoints/policy/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:css="http://www.eclipse.org/papyrus/infra/gmfdiag/css" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/gmfdiag/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
   <notation:Diagram xmi:id="__Li9MKvFEeSXqKqlHzx1gA" type="PapyrusUMLProfileDiagram" name="fmiMLProfile" measurementUnit="Pixel">
-    <children xmi:type="notation:Shape" xmi:id="_wv_AoKvHEeSXqKqlHzx1gA" type="Class_MetaclassShape">
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CaTfMsPjEeSibcUjNRyRzw" source="PapyrusCSSForceValue">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CadQMMPjEeSibcUjNRyRzw" key="fillColor" value="true"/>
-      </eAnnotations>
-      <children xmi:type="notation:DecorationNode" xmi:id="_wv_AoqvHEeSXqKqlHzx1gA" type="Class_MetaclassNameLabel"/>
-      <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Port"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wv_nsKvHEeSXqKqlHzx1gA" x="1331" y="65"/>
-    </children>
     <children xmi:type="notation:Shape" xmi:id="_wwA10KvHEeSXqKqlHzx1gA" type="Class_MetaclassShape">
       <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CaTfMMPjEeSibcUjNRyRzw" source="PapyrusCSSForceValue">
         <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_CaTfMcPjEeSibcUjNRyRzw" key="fillColor" value="true"/>
       </eAnnotations>
       <children xmi:type="notation:DecorationNode" xmi:id="_wwA10qvHEeSXqKqlHzx1gA" type="Class_MetaclassNameLabel"/>
       <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wwA106vHEeSXqKqlHzx1gA" x="1093" y="-211"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wwA106vHEeSXqKqlHzx1gA" x="820" y="160"/>
     </children>
     <children xmi:type="notation:Shape" xmi:id="_6Z8tkK0REeSXqKqlHzx1gA" type="Stereotype_Shape">
       <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9VQ4AMPiEeSibcUjNRyRzw" source="PapyrusCSSForceValue">
@@ -143,7 +135,7 @@
         <layoutConstraint xmi:type="notation:Bounds" xmi:id="_oBGY8ux3EeanaLDm_8nQ_A"/>
       </children>
       <element xmi:type="uml:Stereotype" href="FMI.profile.uml#_njvM0K0iEeSXqKqlHzx1gA"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_njwa8a0iEeSXqKqlHzx1gA" x="961" y="311" width="135" height="87"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_njwa8a0iEeSXqKqlHzx1gA" x="920" y="400" width="135" height="87"/>
     </children>
     <children xmi:type="notation:Shape" xmi:id="_xhXTkK0iEeSXqKqlHzx1gA" type="Stereotype_Shape">
       <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_CadQM8PjEeSibcUjNRyRzw" source="PapyrusCSSForceValue">
@@ -167,7 +159,7 @@
         <layoutConstraint xmi:type="notation:Bounds" xmi:id="_oBJcQux3EeanaLDm_8nQ_A"/>
       </children>
       <element xmi:type="uml:Stereotype" href="FMI.profile.uml#_xhWFcK0iEeSXqKqlHzx1gA"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xhXTka0iEeSXqKqlHzx1gA" x="1037" y="212" width="163" height="86"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xhXTka0iEeSXqKqlHzx1gA" x="1120" y="400" width="163" height="86"/>
     </children>
     <children xmi:type="notation:Shape" xmi:id="_zAbOkK1OEeSXqKqlHzx1gA" type="Stereotype_Shape">
       <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D5HmkMPjEeSibcUjNRyRzw" source="PapyrusCSSForceValue">
@@ -272,10 +264,6 @@
       </eAnnotations>
       <children xmi:type="notation:DecorationNode" xmi:id="_0AdvEOyjEeSEBKJWDCrAIQ" type="Stereotype_NameLabel"/>
       <children xmi:type="notation:BasicCompartment" xmi:id="_0AdvEeyjEeSEBKJWDCrAIQ" type="Stereotype_AttributeCompartment">
-        <children xmi:type="notation:Shape" xmi:id="_bi6loOykEeSEBKJWDCrAIQ" type="Property_ClassAttributeLabel">
-          <element xmi:type="uml:Property" href="FMI.profile.uml#_bir8IOykEeSEBKJWDCrAIQ"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_bi6loeykEeSEBKJWDCrAIQ"/>
-        </children>
         <styles xmi:type="notation:TitleStyle" xmi:id="_0AdvEuyjEeSEBKJWDCrAIQ"/>
         <styles xmi:type="notation:SortingStyle" xmi:id="_0AdvE-yjEeSEBKJWDCrAIQ"/>
         <styles xmi:type="notation:FilteringStyle" xmi:id="_0AdvFOyjEeSEBKJWDCrAIQ"/>
@@ -292,7 +280,7 @@
         <layoutConstraint xmi:type="notation:Bounds" xmi:id="_oBgooux3EeanaLDm_8nQ_A"/>
       </children>
       <element xmi:type="uml:Stereotype" href="FMI.profile.uml#_0Ab54OyjEeSEBKJWDCrAIQ"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0AdIAeyjEeSEBKJWDCrAIQ" x="1212" y="216" width="244" height="84"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0AdIAeyjEeSEBKJWDCrAIQ" x="1180" y="140" width="244" height="84"/>
     </children>
     <children xmi:type="notation:Shape" xmi:id="_NRweEOytEeSEBKJWDCrAIQ" type="Stereotype_Shape" gradient="16777215, -1, 0">
       <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_P3QgsOytEeSEBKJWDCrAIQ" source="PapyrusCSSForceValue">
@@ -317,6 +305,10 @@
           <element xmi:type="uml:Property" href="FMI.profile.uml#_gyZUUJdgEeWXHe1Lt_6eNw"/>
           <layoutConstraint xmi:type="notation:Location" xmi:id="_g1DmwZdgEeWXHe1Lt_6eNw"/>
         </children>
+        <children xmi:type="notation:Shape" xmi:id="_gBoHULUKEeiSGMgJYpbk4Q" type="Property_ClassAttributeLabel">
+          <element xmi:type="uml:Property" href="FMI.profile.uml#_gBBDULUKEeiSGMgJYpbk4Q"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_gBoHUbUKEeiSGMgJYpbk4Q"/>
+        </children>
         <styles xmi:type="notation:TitleStyle" xmi:id="_NRweFOytEeSEBKJWDCrAIQ"/>
         <styles xmi:type="notation:SortingStyle" xmi:id="_NRweFeytEeSEBKJWDCrAIQ"/>
         <styles xmi:type="notation:FilteringStyle" xmi:id="_NRweFuytEeSEBKJWDCrAIQ"/>
@@ -354,15 +346,7 @@
         <layoutConstraint xmi:type="notation:Bounds" xmi:id="_oBrAsux3EeanaLDm_8nQ_A"/>
       </children>
       <element xmi:type="uml:Stereotype" href="FMI.profile.uml#_dWNCEO5uEeS9FOvuH52nyQ"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dWZPUe5uEeS9FOvuH52nyQ" x="1103" y="313" width="173" height="85"/>
-    </children>
-    <children xmi:type="notation:Shape" xmi:id="_L942AAOkEeWTZ-coMJ-ChQ" type="StereotypeComment">
-      <styles xmi:type="notation:TitleStyle" xmi:id="_L942AQOkEeWTZ-coMJ-ChQ" showTitle="true"/>
-      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_L96EIAOkEeWTZ-coMJ-ChQ" name="BASE_ELEMENT">
-        <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Port"/>
-      </styles>
-      <element xsi:nil="true"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_L942AgOkEeWTZ-coMJ-ChQ" x="1607" y="119"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dWZPUe5uEeS9FOvuH52nyQ" x="780" y="280" width="173" height="85"/>
     </children>
     <children xmi:type="notation:Shape" xmi:id="_L-U64AOkEeWTZ-coMJ-ChQ" type="StereotypeComment">
       <styles xmi:type="notation:TitleStyle" xmi:id="_L-U64QOkEeWTZ-coMJ-ChQ" showTitle="true"/>
@@ -799,7 +783,7 @@
         <layoutConstraint xmi:type="notation:Bounds" xmi:id="_oCjxgux3EeanaLDm_8nQ_A"/>
       </children>
       <element xmi:type="uml:Stereotype" href="FMI.profile.uml#_JeJKsJdgEeWXHe1Lt_6eNw"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JhBfkJdgEeWXHe1Lt_6eNw" x="811" y="210" width="214" height="81"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JhBfkJdgEeWXHe1Lt_6eNw" x="1000" y="280" width="214" height="81"/>
     </children>
     <children xmi:type="notation:Shape" xmi:id="_MTNd4JdhEeWXHe1Lt_6eNw" type="Enumeration_Shape">
       <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wc5B0JdhEeWXHe1Lt_6eNw" source="PapyrusCSSForceValue">
@@ -929,32 +913,6 @@
       <element xmi:type="uml:Enumeration" href="FMI.profile.uml#_PieAYAYIEea37IpNp9toNQ"/>
       <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QH2lYQYIEea37IpNp9toNQ" x="70" y="1099"/>
     </children>
-    <children xmi:type="notation:Shape" xmi:id="_CJg-EAYPEea37IpNp9toNQ" type="Enumeration_Shape">
-      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_J_A6sAYPEea37IpNp9toNQ" source="PapyrusCSSForceValue">
-        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_J_A6sQYPEea37IpNp9toNQ" key="fillColor" value="true"/>
-      </eAnnotations>
-      <children xmi:type="notation:DecorationNode" xmi:id="_CJg-EgYPEea37IpNp9toNQ" type="Enumeration_NameLabel"/>
-      <children xmi:type="notation:BasicCompartment" xmi:id="_CJg-EwYPEea37IpNp9toNQ" type="Enumeration_LiteralCompartment">
-        <children xmi:type="notation:Shape" xmi:id="_EL8I0AYPEea37IpNp9toNQ" type="EnumerationLiteral_LiteralLabel">
-          <element xmi:type="uml:EnumerationLiteral" href="FMI.profile.uml#_ELmKkAYPEea37IpNp9toNQ"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_EL8I0QYPEea37IpNp9toNQ"/>
-        </children>
-        <children xmi:type="notation:Shape" xmi:id="_E6iUMAYPEea37IpNp9toNQ" type="EnumerationLiteral_LiteralLabel">
-          <element xmi:type="uml:EnumerationLiteral" href="FMI.profile.uml#_E6PZQAYPEea37IpNp9toNQ"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_E6iUMQYPEea37IpNp9toNQ"/>
-        </children>
-        <children xmi:type="notation:Shape" xmi:id="_FxACIAYPEea37IpNp9toNQ" type="EnumerationLiteral_LiteralLabel">
-          <element xmi:type="uml:EnumerationLiteral" href="FMI.profile.uml#_FwtuQAYPEea37IpNp9toNQ"/>
-          <layoutConstraint xmi:type="notation:Location" xmi:id="_FxACIQYPEea37IpNp9toNQ"/>
-        </children>
-        <styles xmi:type="notation:TitleStyle" xmi:id="_CJg-FAYPEea37IpNp9toNQ"/>
-        <styles xmi:type="notation:SortingStyle" xmi:id="_CJg-FQYPEea37IpNp9toNQ"/>
-        <styles xmi:type="notation:FilteringStyle" xmi:id="_CJg-FgYPEea37IpNp9toNQ"/>
-        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CJg-FwYPEea37IpNp9toNQ"/>
-      </children>
-      <element xmi:type="uml:Enumeration" href="FMI.profile.uml#_CJbegAYPEea37IpNp9toNQ"/>
-      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CJg-EQYPEea37IpNp9toNQ" x="1136" y="1186" width="221" height="125"/>
-    </children>
     <children xmi:type="notation:Shape" xmi:id="_hVwZMCihEeaEPIADLpYHKQ" type="Class_Shape">
       <children xmi:type="notation:DecorationNode" xmi:id="_hVxAQCihEeaEPIADLpYHKQ" type="Class_NameLabel"/>
       <children xmi:type="notation:BasicCompartment" xmi:id="_hVxAQSihEeaEPIADLpYHKQ" visible="false" type="Class_OperationCompartment">
@@ -1093,9 +1051,69 @@
       <element xsi:nil="true"/>
       <layoutConstraint xmi:type="notation:Bounds" xmi:id="_d-DoJSiiEeaEPIADLpYHKQ" x="200"/>
     </children>
-    <styles xmi:type="notation:StringValueStyle" xmi:id="__Li9MavFEeSXqKqlHzx1gA" name="diagram_compatibility_version" stringValue="1.2.0"/>
+    <children xmi:type="notation:Shape" xmi:id="_QTTpYIjNEeilvIR_3Qiscw" type="Stereotype_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_QTTpYojNEeilvIR_3Qiscw" type="Stereotype_NameLabel"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_QTTpY4jNEeilvIR_3Qiscw" type="Stereotype_AttributeCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_QTTpZIjNEeilvIR_3Qiscw"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_QTTpZYjNEeilvIR_3Qiscw"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_QTTpZojNEeilvIR_3Qiscw"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QTTpZ4jNEeilvIR_3Qiscw"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_QTTpaIjNEeilvIR_3Qiscw" type="Stereotype_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_QTTpaYjNEeilvIR_3Qiscw"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_QTTpaojNEeilvIR_3Qiscw"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_QTTpa4jNEeilvIR_3Qiscw"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QTTpbIjNEeilvIR_3Qiscw"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="pathmap://SysML14_PROFILES/SysML.profile.uml#SysML.package_packagedElement_DeprecatedElements.stereotype_packagedElement_FlowPort"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QTTpYYjNEeilvIR_3Qiscw" x="1300" y="-40"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_-lTb4ImjEeiP2ZwYABBzMw" type="Stereotype_Shape">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Lk6s8ImkEeiP2ZwYABBzMw" source="PapyrusCSSForceValue">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Lk6s8YmkEeiP2ZwYABBzMw" key="gradient" value="true"/>
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L5PXIImkEeiP2ZwYABBzMw" key="fillColor" value="true"/>
+      </eAnnotations>
+      <children xmi:type="notation:DecorationNode" xmi:id="_-lVREImjEeiP2ZwYABBzMw" type="Stereotype_NameLabel"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_-lVREYmjEeiP2ZwYABBzMw" type="Stereotype_AttributeCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_-lVREomjEeiP2ZwYABBzMw"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_-lVRE4mjEeiP2ZwYABBzMw"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_-lVRFImjEeiP2ZwYABBzMw"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-lVRFYmjEeiP2ZwYABBzMw"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_-lVRFomjEeiP2ZwYABBzMw" type="Stereotype_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_-lVRF4mjEeiP2ZwYABBzMw"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_-lVRGImjEeiP2ZwYABBzMw"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_-lVRGYmjEeiP2ZwYABBzMw"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-lVRGomjEeiP2ZwYABBzMw"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="FMI.profile.uml#_-lJq4ImjEeiP2ZwYABBzMw"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-lTb4YmjEeiP2ZwYABBzMw" x="1020" y="120"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_YdkLkOc0EeiqD6Bjo7FTPw" type="Stereotype_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_YdqSMOc0EeiqD6Bjo7FTPw" type="Stereotype_NameLabel"/>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_Ydq5QOc0EeiqD6Bjo7FTPw" type="Stereotype_AttributeCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_Ydq5Qec0EeiqD6Bjo7FTPw"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_Ydq5Quc0EeiqD6Bjo7FTPw"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_Ydq5Q-c0EeiqD6Bjo7FTPw"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ydq5ROc0EeiqD6Bjo7FTPw"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_Ydq5Rec0EeiqD6Bjo7FTPw" type="Stereotype_OperationCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_Ydq5Ruc0EeiqD6Bjo7FTPw"/>
+        <styles xmi:type="notation:SortingStyle" xmi:id="_Ydq5R-c0EeiqD6Bjo7FTPw"/>
+        <styles xmi:type="notation:FilteringStyle" xmi:id="_Ydq5SOc0EeiqD6Bjo7FTPw"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ydq5Sec0EeiqD6Bjo7FTPw"/>
+      </children>
+      <element xmi:type="uml:Stereotype" href="FMI.profile.uml#_YdHfoOc0EeiqD6Bjo7FTPw"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YdkLkec0EeiqD6Bjo7FTPw" x="1280" y="260" width="201" height="121"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_7FpAwOdeEeiqD6Bjo7FTPw" type="Comment_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_7Fpn0OdeEeiqD6Bjo7FTPw" type="Comment_BodyLabel"/>
+      <element xmi:type="uml:Comment" href="FMI.profile.uml#_7FkIQOdeEeiqD6Bjo7FTPw"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7FpAwedeEeiqD6Bjo7FTPw" x="1360" y="440" width="161" height="101"/>
+    </children>
+    <styles xmi:type="notation:StringValueStyle" xmi:id="__Li9MavFEeSXqKqlHzx1gA" name="diagram_compatibility_version" stringValue="1.4.0"/>
     <styles xmi:type="notation:DiagramStyle" xmi:id="__Li9MqvFEeSXqKqlHzx1gA"/>
-    <styles xmi:type="style:PapyrusViewStyle" xmi:id="__Li9M6vFEeSXqKqlHzx1gA">
+    <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_Zf-cAIjHEeilvIR_3Qiscw" diagramKindId="org.eclipse.papyrus.uml.diagram.profile">
       <owner xmi:type="uml:Profile" href="FMI.profile.uml#__Ki3oKvFEeSXqKqlHzx1gA"/>
     </styles>
     <element xmi:type="uml:Profile" href="FMI.profile.uml#__Ki3oKvFEeSXqKqlHzx1gA"/>
@@ -1121,28 +1139,6 @@
       <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XRHLcMPiEeSibcUjNRyRzw" id="(0.12852664576802508,0.0)"/>
       <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XRHLccPiEeSibcUjNRyRzw" id="(1.0,0.5955555555555555)"/>
     </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_d8jvwcPiEeSibcUjNRyRzw" type="Generalization_Edge" source="_xhXTkK0iEeSXqKqlHzx1gA" target="_NRweEOytEeSEBKJWDCrAIQ">
-      <children xmi:type="notation:DecorationNode" xmi:id="_d8jvxMPiEeSibcUjNRyRzw" visible="false" type="Generalization_StereotypeLabel">
-        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_OV4mkAYKEea37IpNp9toNQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
-        <layoutConstraint xmi:type="notation:Location" xmi:id="_d8jvxcPiEeSibcUjNRyRzw" x="1" y="60"/>
-      </children>
-      <styles xmi:type="notation:FontStyle" xmi:id="_d8jvwsPiEeSibcUjNRyRzw"/>
-      <element xmi:type="uml:Generalization" href="FMI.profile.uml#_d8jvwMPiEeSibcUjNRyRzw"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_d8jvw8PiEeSibcUjNRyRzw" points="[1148, 205, -643984, -643984]$[1081, 159, -643984, -643984]"/>
-      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_d83RwMPiEeSibcUjNRyRzw" id="(0.6257668711656442,0.0)"/>
-      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_d83RwcPiEeSibcUjNRyRzw" id="(0.5042016806722689,1.0)"/>
-    </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_egqiYMPiEeSibcUjNRyRzw" type="Generalization_Edge" source="_njwa8K0iEeSXqKqlHzx1gA" target="_NRweEOytEeSEBKJWDCrAIQ">
-      <children xmi:type="notation:DecorationNode" xmi:id="_egqiY8PiEeSibcUjNRyRzw" visible="false" type="Generalization_StereotypeLabel">
-        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_OWXHsAYKEea37IpNp9toNQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
-        <layoutConstraint xmi:type="notation:Location" xmi:id="_egqiZMPiEeSibcUjNRyRzw" x="-1" y="60"/>
-      </children>
-      <styles xmi:type="notation:FontStyle" xmi:id="_egqiYcPiEeSibcUjNRyRzw"/>
-      <element xmi:type="uml:Generalization" href="FMI.profile.uml#_eghYcMPiEeSibcUjNRyRzw"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_egqiYsPiEeSibcUjNRyRzw" points="[1015, 311, -643984, -643984]$[1080, 128, -643984, -643984]"/>
-      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_eg0TYMPiEeSibcUjNRyRzw" id="(0.5037037037037037,0.0)"/>
-      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_eg0TYcPiEeSibcUjNRyRzw" id="(0.04201680672268908,1.0)"/>
-    </edges>
     <edges xmi:type="notation:Connector" xmi:id="_19FJ8MXZEeSibcUjNRyRzw" type="Extension_Edge" source="_6Z8tkK0REeSXqKqlHzx1gA" target="_U_Al8MPiEeSibcUjNRyRzw">
       <styles xmi:type="notation:FontStyle" xmi:id="_19FJ8cXZEeSibcUjNRyRzw"/>
       <element xmi:type="uml:Extension" href="FMI.profile.uml#_19CtsMXZEeSibcUjNRyRzw"/>
@@ -1150,13 +1146,6 @@
       <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_19JbYMXZEeSibcUjNRyRzw" id="(0.791907514450867,0.0)"/>
       <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XJdVoMXiEeSJSvhykNQdDA" id="(0.8181818181818182,1.0)"/>
     </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_Nmj_gOykEeSEBKJWDCrAIQ" type="Extension_Edge" source="_0AdIAOyjEeSEBKJWDCrAIQ" target="_wv_AoKvHEeSXqKqlHzx1gA">
-      <styles xmi:type="notation:FontStyle" xmi:id="_Nmj_geykEeSEBKJWDCrAIQ"/>
-      <element xmi:type="uml:Extension" href="FMI.profile.uml#_NmIhsOykEeSEBKJWDCrAIQ"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Nmj_guykEeSEBKJWDCrAIQ" points="[1374, 201, -643984, -643984]$[1381, 158, -643984, -643984]"/>
-      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NnEV0OykEeSEBKJWDCrAIQ" id="(0.6516393442622951,0.0)"/>
-      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_TSXrwOykEeSEBKJWDCrAIQ" id="(0.4,1.0)"/>
-    </edges>
     <edges xmi:type="notation:Connector" xmi:id="_ObXgkOykEeSEBKJWDCrAIQ" type="Generalization_Edge" source="_0AdIAOyjEeSEBKJWDCrAIQ" target="_NRweEOytEeSEBKJWDCrAIQ">
       <children xmi:type="notation:DecorationNode" xmi:id="_ObXgk-ykEeSEBKJWDCrAIQ" visible="false" type="Generalization_StereotypeLabel">
         <styles xmi:type="notation:BooleanValueStyle" xmi:id="_OWo0gAYKEea37IpNp9toNQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
@@ -1165,36 +1154,15 @@
       <styles xmi:type="notation:FontStyle" xmi:id="_ObXgkeykEeSEBKJWDCrAIQ"/>
       <element xmi:type="uml:Generalization" href="FMI.profile.uml#_Oa938OykEeSEBKJWDCrAIQ"/>
       <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ObXgkuykEeSEBKJWDCrAIQ" points="[1233, 200, -643984, -643984]$[1239, 160, -643984, -643984]"/>
-      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Ob66MOykEeSEBKJWDCrAIQ" id="(0.11475409836065574,0.0)"/>
-      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Ob66MeykEeSEBKJWDCrAIQ" id="(0.9201680672268907,1.0)"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Ob66MOykEeSEBKJWDCrAIQ" id="(0.16393442622950818,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Ob66MeykEeSEBKJWDCrAIQ" id="(0.9178082191780822,1.0)"/>
     </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_XSY1gOytEeSEBKJWDCrAIQ" type="Extension_Edge" source="_NRweEOytEeSEBKJWDCrAIQ" target="_wwA10KvHEeSXqKqlHzx1gA">
+    <edges xmi:type="notation:Connector" xmi:id="_XSY1gOytEeSEBKJWDCrAIQ" type="Extension_Edge" source="_-lTb4ImjEeiP2ZwYABBzMw" target="_wwA10KvHEeSXqKqlHzx1gA">
       <styles xmi:type="notation:FontStyle" xmi:id="_XSZckOytEeSEBKJWDCrAIQ"/>
       <element xmi:type="uml:Extension" href="FMI.profile.uml#_XSAbAOytEeSEBKJWDCrAIQ"/>
       <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_XSZckeytEeSEBKJWDCrAIQ" points="[1171, -66, -643984, -643984]$[1147, -80, -643984, -643984]"/>
-      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XS2vkOytEeSEBKJWDCrAIQ" id="(0.5546218487394958,0.0)"/>
-      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_me404OytEeSEBKJWDCrAIQ" id="(0.57,1.0)"/>
-    </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_fdWUwO5uEeS9FOvuH52nyQ" type="Generalization_Edge" source="_dWZPUO5uEeS9FOvuH52nyQ" target="_NRweEOytEeSEBKJWDCrAIQ">
-      <children xmi:type="notation:DecorationNode" xmi:id="_fdWUw-5uEeS9FOvuH52nyQ" type="Generalization_StereotypeLabel">
-        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_OW6hUAYKEea37IpNp9toNQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
-        <layoutConstraint xmi:type="notation:Location" xmi:id="_fdWUxO5uEeS9FOvuH52nyQ" x="1" y="59"/>
-      </children>
-      <styles xmi:type="notation:FontStyle" xmi:id="_fdWUwe5uEeS9FOvuH52nyQ"/>
-      <element xmi:type="uml:Generalization" href="FMI.profile.uml#_fc_IYO5uEeS9FOvuH52nyQ"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_fdWUwu5uEeS9FOvuH52nyQ" points="[1186, 302, -643984, -643984]$[1152, 149, -643984, -643984]"/>
-      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_fd35MO5uEeS9FOvuH52nyQ" id="(0.5895953757225434,0.0)"/>
-      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_fd4gQO5uEeS9FOvuH52nyQ" id="(0.7773109243697479,1.0)"/>
-    </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_L96EIQOkEeWTZ-coMJ-ChQ" type="StereotypeCommentLink" source="_wv_AoKvHEeSXqKqlHzx1gA" target="_L942AAOkEeWTZ-coMJ-ChQ">
-      <styles xmi:type="notation:FontStyle" xmi:id="_L96EIgOkEeWTZ-coMJ-ChQ"/>
-      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_L96rMgOkEeWTZ-coMJ-ChQ" name="BASE_ELEMENT">
-        <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Port"/>
-      </styles>
-      <element xsi:nil="true"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_L96EIwOkEeWTZ-coMJ-ChQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
-      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_L96rMAOkEeWTZ-coMJ-ChQ"/>
-      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_L96rMQOkEeWTZ-coMJ-ChQ"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_XS2vkOytEeSEBKJWDCrAIQ" id="(0.0,0.6)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_me404OytEeSEBKJWDCrAIQ" id="(1.0,0.4)"/>
     </edges>
     <edges xmi:type="notation:Connector" xmi:id="_L-Vh8QOkEeWTZ-coMJ-ChQ" type="StereotypeCommentLink" source="_wwA10KvHEeSXqKqlHzx1gA" target="_L-U64AOkEeWTZ-coMJ-ChQ">
       <styles xmi:type="notation:FontStyle" xmi:id="_L-Vh8gOkEeWTZ-coMJ-ChQ"/>
@@ -1294,17 +1262,6 @@
       <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Cr36EJOZEeWNJOjtFNxhjA" id="(0.0,0.7604166666666666)"/>
       <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Cr36EZOZEeWNJOjtFNxhjA" id="(1.0,0.5803571428571429)"/>
     </edges>
-    <edges xmi:type="notation:Connector" xmi:id="_KZQvIJdgEeWXHe1Lt_6eNw" type="Generalization_Edge" source="_JhA4gJdgEeWXHe1Lt_6eNw" target="_NRweEOytEeSEBKJWDCrAIQ">
-      <children xmi:type="notation:DecorationNode" xmi:id="_KZR9QJdgEeWXHe1Lt_6eNw" type="Generalization_StereotypeLabel">
-        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_OXMOIAYKEea37IpNp9toNQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
-        <layoutConstraint xmi:type="notation:Location" xmi:id="_KZR9QZdgEeWXHe1Lt_6eNw" x="1" y="58"/>
-      </children>
-      <styles xmi:type="notation:FontStyle" xmi:id="_KZQvIZdgEeWXHe1Lt_6eNw"/>
-      <element xmi:type="uml:Generalization" href="FMI.profile.uml#_KVg3kJdgEeWXHe1Lt_6eNw"/>
-      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_KZQvIpdgEeWXHe1Lt_6eNw" points="[1049, 203, -643984, -643984]$[992, 183, -643984, -643984]"/>
-      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_KhXiQJdgEeWXHe1Lt_6eNw" id="(0.9672897196261683,0.0)"/>
-      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_KhXiQZdgEeWXHe1Lt_6eNw" id="(0.0,1.0)"/>
-    </edges>
     <edges xmi:type="notation:Connector" xmi:id="_wC3BkJ5OEeW4hpViu084wQ" type="Extension_Edge" source="_kj_E4CTIEeWWg83RXu3e8w" target="_U_Al8MPiEeSibcUjNRyRzw">
       <styles xmi:type="notation:FontStyle" xmi:id="_wC3BkZ5OEeW4hpViu084wQ"/>
       <element xmi:type="uml:Extension" href="FMI.profile.uml#_v8AysJ5OEeW4hpViu084wQ"/>
@@ -1343,7 +1300,7 @@
       </children>
       <children xmi:type="notation:DecorationNode" xmi:id="_jcgDRyihEeaEPIADLpYHKQ" type="Association_TargetRoleLabel">
         <styles xmi:type="notation:BooleanValueStyle" xmi:id="_EyZIIOx6EeanaLDm_8nQ_A" name="IS_UPDATED_POSITION" booleanValue="true"/>
-        <layoutConstraint xmi:type="notation:Location" xmi:id="_jcgDSCihEeaEPIADLpYHKQ" x="-138" y="-26"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_jcgDSCihEeaEPIADLpYHKQ" x="7" y="45"/>
       </children>
       <children xmi:type="notation:DecorationNode" xmi:id="_jcgqUCihEeaEPIADLpYHKQ" visible="false" type="Association_SourceRoleLabel">
         <styles xmi:type="notation:BooleanValueStyle" xmi:id="_EzCBUOx6EeanaLDm_8nQ_A" name="IS_UPDATED_POSITION" booleanValue="true"/>
@@ -1435,6 +1392,99 @@
       <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gQSJcCiiEeaEPIADLpYHKQ" id="(1.0,0.3688888888888889)"/>
       <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gQSJcSiiEeaEPIADLpYHKQ" id="(0.0,0.32098765432098764)"/>
     </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_q_RgQIjOEeilvIR_3Qiscw" type="Generalization_Edge" source="_0AdIAOyjEeSEBKJWDCrAIQ" target="_QTTpYIjNEeilvIR_3Qiscw">
+      <children xmi:type="notation:DecorationNode" xmi:id="_q_RgQ4jOEeilvIR_3Qiscw" type="Generalization_StereotypeLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_GkwJQImlEeil3Yu5qF19Ew" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_q_RgRIjOEeilvIR_3Qiscw" y="60"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_q_RgQYjOEeilvIR_3Qiscw"/>
+      <element xmi:type="uml:Generalization" href="FMI.profile.uml#_q-xxAIjOEeilvIR_3Qiscw"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_q_RgQojOEeilvIR_3Qiscw" points="[1380, 216, -643984, -643984]$[1560, 260, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rAUpIIjOEeilvIR_3Qiscw" id="(0.7377049180327869,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_rAUpIYjOEeilvIR_3Qiscw" id="(0.6,1.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_oxxMMImlEeil3Yu5qF19Ew" type="Generalization_Edge" source="_njwa8K0iEeSXqKqlHzx1gA" target="_-lTb4ImjEeiP2ZwYABBzMw" routing="Tree">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vFPVYYmlEeil3Yu5qF19Ew" source="PapyrusCSSForceValue">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vFPVYomlEeil3Yu5qF19Ew" key="closestDistance" value="true"/>
+      </eAnnotations>
+      <children xmi:type="notation:DecorationNode" xmi:id="_oxyaUImlEeil3Yu5qF19Ew" type="Generalization_StereotypeLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_y3zBAImlEeil3Yu5qF19Ew" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_oxyaUYmlEeil3Yu5qF19Ew" y="60"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_oxxMMYmlEeil3Yu5qF19Ew"/>
+      <element xmi:type="uml:Generalization" href="FMI.profile.uml#_oxNykImlEeil3Yu5qF19Ew"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_oxxMMomlEeil3Yu5qF19Ew" points="[980, 400, -643984, -643984]$[980, 260, -643984, -643984]$[1060, 260, -643984, -643984]$[1060, 220, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_oyyf4ImlEeil3Yu5qF19Ew" id="(0.4444444444444444,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_oyzG8ImlEeil3Yu5qF19Ew" id="(0.4,1.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_pQo5gImlEeil3Yu5qF19Ew" type="Generalization_Edge" source="_xhXTkK0iEeSXqKqlHzx1gA" target="_-lTb4ImjEeiP2ZwYABBzMw" routing="Tree">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vFOuUImlEeil3Yu5qF19Ew" source="PapyrusCSSForceValue">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vFPVYImlEeil3Yu5qF19Ew" key="closestDistance" value="true"/>
+      </eAnnotations>
+      <children xmi:type="notation:DecorationNode" xmi:id="_pQo5g4mlEeil3Yu5qF19Ew" type="Generalization_StereotypeLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_xPC6gImlEeil3Yu5qF19Ew" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_pQo5hImlEeil3Yu5qF19Ew" y="60"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_pQo5gYmlEeil3Yu5qF19Ew"/>
+      <element xmi:type="uml:Generalization" href="FMI.profile.uml#_pQJKQImlEeil3Yu5qF19Ew"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_pQo5gomlEeil3Yu5qF19Ew" points="[1240, 400, -643984, -643984]$[1240, 260, -643984, -643984]$[1110, 260, -643984, -643984]$[1110, 220, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_pRnJ4ImlEeil3Yu5qF19Ew" id="(0.7361963190184049,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_pRnw8ImlEeil3Yu5qF19Ew" id="(0.8737864077669902,1.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_prhesImlEeil3Yu5qF19Ew" type="Generalization_Edge" source="_JhA4gJdgEeWXHe1Lt_6eNw" target="_-lTb4ImjEeiP2ZwYABBzMw" routing="Tree">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vFPVY4mlEeil3Yu5qF19Ew" source="PapyrusCSSForceValue">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vFPVZImlEeil3Yu5qF19Ew" key="closestDistance" value="true"/>
+      </eAnnotations>
+      <children xmi:type="notation:DecorationNode" xmi:id="_prhes4mlEeil3Yu5qF19Ew" type="Generalization_StereotypeLabel">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_prhetImlEeil3Yu5qF19Ew" y="60"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_prhesYmlEeil3Yu5qF19Ew"/>
+      <element xmi:type="uml:Generalization" href="FMI.profile.uml#_prAhUImlEeil3Yu5qF19Ew"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_prhesomlEeil3Yu5qF19Ew" points="[1060, 361, -643984, -643984]$[1060, 220, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_pseg8ImlEeil3Yu5qF19Ew" id="(0.2803738317757009,1.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_pseg8YmlEeil3Yu5qF19Ew" id="(0.4,1.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_qIbdIImlEeil3Yu5qF19Ew" type="Generalization_Edge" source="_dWZPUO5uEeS9FOvuH52nyQ" target="_-lTb4ImjEeiP2ZwYABBzMw" routing="Tree">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vFP8cImlEeil3Yu5qF19Ew" source="PapyrusCSSForceValue">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vFP8cYmlEeil3Yu5qF19Ew" key="closestDistance" value="true"/>
+      </eAnnotations>
+      <children xmi:type="notation:DecorationNode" xmi:id="_qIbdI4mlEeil3Yu5qF19Ew" type="Generalization_StereotypeLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_t61-0ImlEeil3Yu5qF19Ew" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_qIbdJImlEeil3Yu5qF19Ew" y="60"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_qIbdIYmlEeil3Yu5qF19Ew"/>
+      <element xmi:type="uml:Generalization" href="FMI.profile.uml#_qH88AImlEeil3Yu5qF19Ew"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_qIbdIomlEeil3Yu5qF19Ew" points="[920, 280, -643984, -643984]$[920, 250, -643984, -643984]$[1090, 250, -643984, -643984]$[1090, 220, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_qJd-8ImlEeil3Yu5qF19Ew" id="(0.8092485549132948,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_qJemAImlEeil3Yu5qF19Ew" id="(0.7,1.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_3d5pcImlEeil3Yu5qF19Ew" type="Generalization_Edge" source="_-lTb4ImjEeiP2ZwYABBzMw" target="_NRweEOytEeSEBKJWDCrAIQ">
+      <children xmi:type="notation:DecorationNode" xmi:id="_3d5pc4mlEeil3Yu5qF19Ew" type="Generalization_StereotypeLabel">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_3d5pdImlEeil3Yu5qF19Ew" y="60"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_3d5pcYmlEeil3Yu5qF19Ew"/>
+      <element xmi:type="uml:Generalization" href="FMI.profile.uml#_3dahQImlEeil3Yu5qF19Ew"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3d5pcomlEeil3Yu5qF19Ew" points="[1060, 120, -643984, -643984]$[1060, 82, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3e69IImlEeil3Yu5qF19Ew" id="(0.4,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3e69IYmlEeil3Yu5qF19Ew" id="(0.1872146118721461,1.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_9SFGIOc9EeiqD6Bjo7FTPw" type="Generalization_Edge" source="_YdkLkOc0EeiqD6Bjo7FTPw" target="_0AdIAOyjEeSEBKJWDCrAIQ">
+      <children xmi:type="notation:DecorationNode" xmi:id="_9SFtMOc9EeiqD6Bjo7FTPw" type="Generalization_StereotypeLabel">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_9SFtMec9EeiqD6Bjo7FTPw" y="60"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_9SFGIec9EeiqD6Bjo7FTPw"/>
+      <element xmi:type="uml:Generalization" href="FMI.profile.uml#_9QKakOc9EeiqD6Bjo7FTPw"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9SFGIuc9EeiqD6Bjo7FTPw" points="[1360, 260, -643984, -643984]$[1360, 224, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9VCTgOc9EeiqD6Bjo7FTPw" id="(0.39800995024875624,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9VCTgec9EeiqD6Bjo7FTPw" id="(0.7377049180327869,1.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_BEEHAOdfEeiqD6Bjo7FTPw" type="Comment_AnnotatedElementEdge" source="_7FpAwOdeEeiqD6Bjo7FTPw" target="_YdkLkOc0EeiqD6Bjo7FTPw">
+      <styles xmi:type="notation:FontStyle" xmi:id="_BEEHAedfEeiqD6Bjo7FTPw"/>
+      <element xsi:nil="true"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_BEEHAudfEeiqD6Bjo7FTPw" points="[1480, 440, -643984, -643984]$[1420, 381, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_BGK_0OdfEeiqD6Bjo7FTPw" id="(0.7453416149068323,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_BGK_0edfEeiqD6Bjo7FTPw" id="(0.6965174129353234,1.0)"/>
+    </edges>
   </notation:Diagram>
   <css:ModelStyleSheets xmi:id="_0TSJIK1EEeSXqKqlHzx1gA"/>
   <notation:Diagram xmi:id="_-HOwQAfCEeabPfm64ybCZg" type="PapyrusUMLClassDiagram" name="ClassDiagram" measurementUnit="Pixel">
@@ -1443,9 +1493,9 @@
       <element xmi:type="uml:Comment" href="FMI.profile.uml#_NeAF8AfDEeabPfm64ybCZg"/>
       <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NeDJQQfDEeabPfm64ybCZg" x="794" y="116" width="333" height="160"/>
     </children>
-    <styles xmi:type="notation:StringValueStyle" xmi:id="_-HOwQQfCEeabPfm64ybCZg" name="diagram_compatibility_version" stringValue="1.2.0"/>
+    <styles xmi:type="notation:StringValueStyle" xmi:id="_-HOwQQfCEeabPfm64ybCZg" name="diagram_compatibility_version" stringValue="1.4.0"/>
     <styles xmi:type="notation:DiagramStyle" xmi:id="_-HOwQgfCEeabPfm64ybCZg"/>
-    <styles xmi:type="style:PapyrusViewStyle" xmi:id="_-HOwQwfCEeabPfm64ybCZg">
+    <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_IrhAUIjHEeilvIR_3Qiscw" diagramKindId="org.eclipse.papyrus.uml.diagram.class">
       <owner xmi:type="uml:Profile" href="FMI.profile.uml#__Ki3oKvFEeSXqKqlHzx1gA"/>
     </styles>
     <element xmi:type="uml:Profile" href="FMI.profile.uml#__Ki3oKvFEeSXqKqlHzx1gA"/>
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/model/FMI.profile.uml b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/model/FMI.profile.uml
index 15208d3..298b6ff 100644
--- a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/model/FMI.profile.uml
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/model/FMI.profile.uml
@@ -6,6 +6,10 @@
       <body>This Package is only present to create an UML description of FMI Modeldescription metamodel, in order to be able to import it from this FMIProfile and to reference the FmiModelDescription from the FMU stereotype&#xD;
 </body>
     </ownedComment>
+    <ownedComment xmi:type="uml:Comment" xmi:id="_7FkIQOdeEeiqD6Bjo7FTPw" annotatedElement="_YdHfoOc0EeiqD6Bjo7FTPw">
+      <body>This Stereotype is deprecated and should not be use anymore (let for legacy compatibility).&#xD;
+</body>
+    </ownedComment>
     <elementImport xmi:type="uml:ElementImport" xmi:id="_laYPwKvGEeSXqKqlHzx1gA" alias="Class">
       <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
     </elementImport>
@@ -33,6 +37,9 @@
     <packageImport xmi:type="uml:PackageImport" xmi:id="_bg_v0CiiEeaEPIADLpYHKQ">
       <importedPackage xmi:type="uml:Model" href="pathmap://PAPYRUS_FMI_METAMODEL/fmumetamodel.uml#_qqrUcCiREeaEPIADLpYHKQ"/>
     </packageImport>
+    <packageImport xmi:type="uml:PackageImport" xmi:id="_vDZH4IjMEeilvIR_3Qiscw">
+      <importedPackage xmi:type="uml:Profile" href="pathmap://SysML14_PROFILES/SysML.profile.uml#SysML.package_packagedElement_DeprecatedElements"/>
+    </packageImport>
     <packagedElement xmi:type="uml:Stereotype" xmi:id="_6Z7fcK0REeSXqKqlHzx1gA" name="FMU">
       <ownedAttribute xmi:type="uml:Property" xmi:id="_1n8aUK0VEeSXqKqlHzx1gA" name="fmiVersion">
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
@@ -105,10 +112,10 @@
       </ownedAttribute>
     </packagedElement>
     <packagedElement xmi:type="uml:Stereotype" xmi:id="_njvM0K0iEeSXqKqlHzx1gA" name="Parameter">
-      <generalization xmi:type="uml:Generalization" xmi:id="_eghYcMPiEeSibcUjNRyRzw" general="_NRvP8OytEeSEBKJWDCrAIQ"/>
+      <generalization xmi:type="uml:Generalization" xmi:id="_oxNykImlEeil3Yu5qF19Ew" general="_-lJq4ImjEeiP2ZwYABBzMw"/>
     </packagedElement>
     <packagedElement xmi:type="uml:Stereotype" xmi:id="_xhWFcK0iEeSXqKqlHzx1gA" name="Local">
-      <generalization xmi:type="uml:Generalization" xmi:id="_d8jvwMPiEeSibcUjNRyRzw" general="_NRvP8OytEeSEBKJWDCrAIQ"/>
+      <generalization xmi:type="uml:Generalization" xmi:id="_pQJKQImlEeil3Yu5qF19Ew" general="_-lJq4ImjEeiP2ZwYABBzMw"/>
     </packagedElement>
     <packagedElement xmi:type="uml:Stereotype" xmi:id="_zAZZYK1OEeSXqKqlHzx1gA" name="CS_FMU">
       <generalization xmi:type="uml:Generalization" xmi:id="_W7zp0MPiEeSibcUjNRyRzw" general="_6Z7fcK0REeSXqKqlHzx1gA"/>
@@ -149,38 +156,38 @@
     <packagedElement xmi:type="uml:Extension" xmi:id="_19CtsMXZEeSibcUjNRyRzw" name="E_FMU_Class1" memberEnd="_19CtscXZEeSibcUjNRyRzw _19CGoMXZEeSibcUjNRyRzw">
       <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_19CtscXZEeSibcUjNRyRzw" name="extension_FMU" type="_6Z7fcK0REeSXqKqlHzx1gA" aggregation="composite" association="_19CtsMXZEeSibcUjNRyRzw"/>
     </packagedElement>
-    <packagedElement xmi:type="uml:Stereotype" xmi:id="_0Ab54OyjEeSEBKJWDCrAIQ" name="Port">
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_0Ab54OyjEeSEBKJWDCrAIQ" name="FMIPort">
       <generalization xmi:type="uml:Generalization" xmi:id="_Oa938OykEeSEBKJWDCrAIQ" general="_NRvP8OytEeSEBKJWDCrAIQ"/>
+      <generalization xmi:type="uml:Generalization" xmi:id="_q-xxAIjOEeilvIR_3Qiscw">
+        <general xmi:type="uml:Stereotype" href="pathmap://SysML14_PROFILES/SysML.profile.uml#SysML.package_packagedElement_DeprecatedElements.stereotype_packagedElement_FlowPort"/>
+      </generalization>
       <ownedAttribute xmi:type="uml:Property" xmi:id="_NmHTkOykEeSEBKJWDCrAIQ" name="base_Port" association="_NmIhsOykEeSEBKJWDCrAIQ">
         <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Port"/>
       </ownedAttribute>
-      <ownedAttribute xmi:type="uml:Property" xmi:id="_bir8IOykEeSEBKJWDCrAIQ" name="direction" type="_CJbegAYPEea37IpNp9toNQ"/>
     </packagedElement>
     <packagedElement xmi:type="uml:Extension" xmi:id="_NmIhsOykEeSEBKJWDCrAIQ" name="E_Port_Port1" memberEnd="_NmIhseykEeSEBKJWDCrAIQ _NmHTkOykEeSEBKJWDCrAIQ">
       <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_NmIhseykEeSEBKJWDCrAIQ" name="extension_Port" type="_0Ab54OyjEeSEBKJWDCrAIQ" aggregation="composite" association="_NmIhsOykEeSEBKJWDCrAIQ"/>
     </packagedElement>
     <packagedElement xmi:type="uml:Stereotype" xmi:id="_NRvP8OytEeSEBKJWDCrAIQ" name="ScalarVariable" isAbstract="true">
-      <ownedAttribute xmi:type="uml:Property" xmi:id="_XR_M4OytEeSEBKJWDCrAIQ" name="base_Property" association="_XSAbAOytEeSEBKJWDCrAIQ">
-        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
-      </ownedAttribute>
       <ownedAttribute xmi:type="uml:Property" xmi:id="_hQ1boOytEeSEBKJWDCrAIQ" name="description">
         <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
       </ownedAttribute>
       <ownedAttribute xmi:type="uml:Property" xmi:id="_QwldkJdgEeWXHe1Lt_6eNw" name="variability" type="_m6Ae0CCbEeWt4Mi1ebEMdw"/>
       <ownedAttribute xmi:type="uml:Property" xmi:id="_c98LQJdgEeWXHe1Lt_6eNw" name="initial" type="_EJc0gCCcEeWt4Mi1ebEMdw"/>
       <ownedAttribute xmi:type="uml:Property" xmi:id="_gyZUUJdgEeWXHe1Lt_6eNw" name="valueReference">
-        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EInt"/>
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#ELong"/>
         <defaultValue xmi:type="uml:LiteralInteger" xmi:id="_0rpegC5BEea0_OLDat2kQQ" value="-1"/>
       </ownedAttribute>
       <ownedAttribute xmi:type="uml:Property" xmi:id="_reC30CihEeaEPIADLpYHKQ" name="fmiVariable" association="_reBCoCihEeaEPIADLpYHKQ">
         <type xmi:type="uml:Class" href="pathmap://PAPYRUS_FMI_METAMODEL/ModelDescriptionProxy.uml#_oZMi1CgJEeaEPIADLpYHKQ"/>
       </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_gBBDULUKEeiSGMgJYpbk4Q" name="causalityKind" type="_MTGwMJdhEeWXHe1Lt_6eNw"/>
     </packagedElement>
-    <packagedElement xmi:type="uml:Extension" xmi:id="_XSAbAOytEeSEBKJWDCrAIQ" name="E_ScalarVariable_Property1" memberEnd="_XSAbAeytEeSEBKJWDCrAIQ _XR_M4OytEeSEBKJWDCrAIQ">
-      <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_XSAbAeytEeSEBKJWDCrAIQ" name="extension_ScalarVariable" type="_NRvP8OytEeSEBKJWDCrAIQ" aggregation="composite" association="_XSAbAOytEeSEBKJWDCrAIQ"/>
+    <packagedElement xmi:type="uml:Extension" xmi:id="_XSAbAOytEeSEBKJWDCrAIQ" name="E_AbstractVariable_Property1" memberEnd="_XSAbAeytEeSEBKJWDCrAIQ _8SO7IImlEeil3Yu5qF19Ew">
+      <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_XSAbAeytEeSEBKJWDCrAIQ" name="extension_AbstractVariable" type="_-lJq4ImjEeiP2ZwYABBzMw" aggregation="composite" association="_XSAbAOytEeSEBKJWDCrAIQ"/>
     </packagedElement>
     <packagedElement xmi:type="uml:Stereotype" xmi:id="_dWNCEO5uEeS9FOvuH52nyQ" name="Independent">
-      <generalization xmi:type="uml:Generalization" xmi:id="_fc_IYO5uEeS9FOvuH52nyQ" general="_NRvP8OytEeSEBKJWDCrAIQ"/>
+      <generalization xmi:type="uml:Generalization" xmi:id="_qH88AImlEeil3Yu5qF19Ew" general="_-lJq4ImjEeiP2ZwYABBzMw"/>
     </packagedElement>
     <packagedElement xmi:type="uml:Enumeration" xmi:id="_m6Ae0CCbEeWt4Mi1ebEMdw" name="VariabilityKind">
       <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_ocXpcCCbEeWt4Mi1ebEMdw" name="constant"/>
@@ -287,7 +294,7 @@
       <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_CgX0sJOZEeWNJOjtFNxhjA" name="extension_OutputDependency" type="_3it0UJOYEeWNJOjtFNxhjA" aggregation="composite" association="_CgWmkJOZEeWNJOjtFNxhjA"/>
     </packagedElement>
     <packagedElement xmi:type="uml:Stereotype" xmi:id="_JeJKsJdgEeWXHe1Lt_6eNw" name="CalculatedParameter">
-      <generalization xmi:type="uml:Generalization" xmi:id="_KVg3kJdgEeWXHe1Lt_6eNw" general="_NRvP8OytEeSEBKJWDCrAIQ"/>
+      <generalization xmi:type="uml:Generalization" xmi:id="_prAhUImlEeil3Yu5qF19Ew" general="_-lJq4ImjEeiP2ZwYABBzMw"/>
     </packagedElement>
     <packagedElement xmi:type="uml:Enumeration" xmi:id="_MTGwMJdhEeWXHe1Lt_6eNw" name="CausalityKind">
       <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_M9HWgJdhEeWXHe1Lt_6eNw" name="parameter"/>
@@ -316,11 +323,6 @@
       <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_PieAaQYIEea37IpNp9toNQ" name="rad"/>
       <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_PieAagYIEea37IpNp9toNQ" name="s"/>
     </packagedElement>
-    <packagedElement xmi:type="uml:Enumeration" xmi:id="_CJbegAYPEea37IpNp9toNQ" name="FlowDirection">
-      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_ELmKkAYPEea37IpNp9toNQ" name="in"/>
-      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_E6PZQAYPEea37IpNp9toNQ" name="out"/>
-      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_FwtuQAYPEea37IpNp9toNQ" name="inout"/>
-    </packagedElement>
     <packagedElement xmi:type="uml:Association" xmi:id="_jb8poCihEeaEPIADLpYHKQ" memberEnd="_jb-e0CihEeaEPIADLpYHKQ _jb-e0SihEeaEPIADLpYHKQ">
       <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jb93wCihEeaEPIADLpYHKQ" source="org.eclipse.papyrus">
         <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jb93wSihEeaEPIADLpYHKQ" key="nature" value="UML_Nature"/>
@@ -339,12 +341,27 @@
       </eAnnotations>
       <ownedEnd xmi:type="uml:Property" xmi:id="_fuzNAyiiEeaEPIADLpYHKQ" name="fmu" type="_6Z7fcK0REeSXqKqlHzx1gA" association="_fuyl8CiiEeaEPIADLpYHKQ"/>
     </packagedElement>
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_-lJq4ImjEeiP2ZwYABBzMw" name="AbstractVariable" isAbstract="true">
+      <generalization xmi:type="uml:Generalization" xmi:id="_3dahQImlEeil3Yu5qF19Ew" general="_NRvP8OytEeSEBKJWDCrAIQ"/>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_8SO7IImlEeil3Yu5qF19Ew" name="base_Property" association="_XSAbAOytEeSEBKJWDCrAIQ">
+        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
+      </ownedAttribute>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_YdHfoOc0EeiqD6Bjo7FTPw" name="Port">
+      <generalization xmi:type="uml:Generalization" xmi:id="_9QKakOc9EeiqD6Bjo7FTPw" general="_0Ab54OyjEeSEBKJWDCrAIQ"/>
+    </packagedElement>
     <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_kEtdUBwUEeWFRLyBnqa0ow">
       <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_kExuwBwUEeWFRLyBnqa0ow" source="http://www.eclipse.org/uml2/2.0.0/UML">
         <references xmi:type="ecore:EPackage" href="pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA"/>
       </eAnnotations>
       <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_PROFILES/Ecore.profile.uml#_0"/>
     </profileApplication>
+    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_lkn10LUKEeiSGMgJYpbk4Q">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_lkprALUKEeiSGMgJYpbk4Q" source="http://www.eclipse.org/uml2/2.0.0/UML">
+        <references xmi:type="ecore:EPackage" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ"/>
+      </eAnnotations>
+      <appliedProfile xmi:type="uml:Profile" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#ActionLanguage"/>
+    </profileApplication>
   </uml:Profile>
   <Ecore:EPackage xmi:id="_eNs-YAYLEea37IpNp9toNQ" base_Package="__Ki3oKvFEeSXqKqlHzx1gA" packageName="fmiprofile" nsPrefix="fmiprofile" nsURI="http://www.eclipse.org/papyrus/FMIProfile/1.0.0" basePackage="org.eclipse.papyrus.moka.fmi" prefix="FMIProfile"/>
 </xmi:XMI>
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/model/fmiprofile.ecore b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/model/fmiprofile.ecore
index 9037576..d7210b7 100644
--- a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/model/fmiprofile.ecore
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/model/fmiprofile.ecore
@@ -54,10 +54,12 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="fmuBundle" ordered="false"
         lowerBound="1" eType="ecore:EClass ../../org.eclipse.papyrus.moka.fmi/model/fmumetamodel.ecore#//FMUBundle"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Parameter" eSuperTypes="#//ScalarVariable"/>
-  <eClassifiers xsi:type="ecore:EClass" name="ScalarVariable" abstract="true">
+  <eClassifiers xsi:type="ecore:EClass" name="Parameter" eSuperTypes="#//AbstractVariable"/>
+  <eClassifiers xsi:type="ecore:EClass" name="AbstractVariable" abstract="true" eSuperTypes="#//ScalarVariable">
     <eStructuralFeatures xsi:type="ecore:EReference" name="base_Property" ordered="false"
         lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="ScalarVariable" abstract="true">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" ordered="false"
         lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="variability" ordered="false"
@@ -65,10 +67,12 @@
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="initial" ordered="false"
         lowerBound="1" eType="#//InitialKind"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="valueReference" ordered="false"
-        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//ELong"
         defaultValueLiteral="-1"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="fmiVariable" ordered="false"
         lowerBound="1" eType="ecore:EClass ../../org.eclipse.papyrus.moka.fmi/model/Fmi2ModelDescription.ecore#//Fmi2ScalarVariable"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="causalityKind" ordered="false"
+        lowerBound="1" eType="#//CausalityKind"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EEnum" name="VariabilityKind">
     <eLiterals name="constant"/>
@@ -82,7 +86,15 @@
     <eLiterals name="approx" value="1"/>
     <eLiterals name="calculated" value="2"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Local" eSuperTypes="#//ScalarVariable"/>
+  <eClassifiers xsi:type="ecore:EEnum" name="CausalityKind">
+    <eLiterals name="parameter"/>
+    <eLiterals name="calculatedParameter" value="1"/>
+    <eLiterals name="input" value="2"/>
+    <eLiterals name="output" value="3"/>
+    <eLiterals name="local" value="4"/>
+    <eLiterals name="independent" value="5"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Local" eSuperTypes="#//AbstractVariable"/>
   <eClassifiers xsi:type="ecore:EClass" name="CS_FMU" eSuperTypes="#//FMU">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="canHandleVariableCommunicationStepSize"
         ordered="false" lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Boolean"/>
@@ -105,18 +117,8 @@
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="completedIntegratorStepNotNeeded"
         ordered="false" lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Boolean"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Port" eSuperTypes="#//ScalarVariable">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="base_Port" ordered="false"
-        lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Port"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="direction" ordered="false"
-        lowerBound="1" eType="#//FlowDirection"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EEnum" name="FlowDirection">
-    <eLiterals name="in"/>
-    <eLiterals name="out" value="1"/>
-    <eLiterals name="inout" value="2"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Independent" eSuperTypes="#//ScalarVariable"/>
+  <eClassifiers xsi:type="ecore:EClass" name="FMIPort" eSuperTypes="#//ScalarVariable ../../org.eclipse.papyrus.sysml14/resources/profile/sysml.ecore#//deprecatedelements/FlowPort"/>
+  <eClassifiers xsi:type="ecore:EClass" name="Independent" eSuperTypes="#//AbstractVariable"/>
   <eClassifiers xsi:type="ecore:EEnum" name="DependenciesKind">
     <eLiterals name="dependent"/>
     <eLiterals name="constant" value="1"/>
@@ -174,15 +176,7 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="base_Dependency" ordered="false"
         lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Dependency"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="CalculatedParameter" eSuperTypes="#//ScalarVariable"/>
-  <eClassifiers xsi:type="ecore:EEnum" name="CausalityKind">
-    <eLiterals name="parameter"/>
-    <eLiterals name="calculatedParameter" value="1"/>
-    <eLiterals name="input" value="2"/>
-    <eLiterals name="output" value="3"/>
-    <eLiterals name="local" value="4"/>
-    <eLiterals name="independent" value="5"/>
-  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="CalculatedParameter" eSuperTypes="#//AbstractVariable"/>
   <eClassifiers xsi:type="ecore:EEnum" name="VariabilityNamingConvention">
     <eLiterals name="flat"/>
     <eLiterals name="structured" value="1"/>
@@ -199,4 +193,5 @@
     <eLiterals name="rad" value="8"/>
     <eLiterals name="s" value="9"/>
   </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Port" eSuperTypes="#//FMIPort"/>
 </ecore:EPackage>
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/AbstractVariable.java b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/AbstractVariable.java
new file mode 100644
index 0000000..a15b591
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/AbstractVariable.java
@@ -0,0 +1,59 @@
+/**
+ * Copyright (c) 2016 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:
+ *   CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.moka.fmi.fmiprofile;
+
+import org.eclipse.uml2.uml.Property;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Abstract Variable</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.moka.fmi.fmiprofile.AbstractVariable#getBase_Property <em>Base Property</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.moka.fmi.fmiprofile.FMIProfilePackage#getAbstractVariable()
+ * @model abstract="true"
+ * @generated
+ */
+public interface AbstractVariable extends ScalarVariable {
+	/**
+	 * Returns the value of the '<em><b>Base Property</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Base Property</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Base Property</em>' reference.
+	 * @see #setBase_Property(Property)
+	 * @see org.eclipse.papyrus.moka.fmi.fmiprofile.FMIProfilePackage#getAbstractVariable_Base_Property()
+	 * @model required="true" ordered="false"
+	 * @generated
+	 */
+	Property getBase_Property();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.moka.fmi.fmiprofile.AbstractVariable#getBase_Property <em>Base Property</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Base Property</em>' reference.
+	 * @see #getBase_Property()
+	 * @generated
+	 */
+	void setBase_Property(Property value);
+
+} // AbstractVariable
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/CalculatedParameter.java b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/CalculatedParameter.java
index 8dccdca..bf7d8f2 100644
--- a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/CalculatedParameter.java
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/CalculatedParameter.java
@@ -22,6 +22,5 @@
  * @model
  * @generated
  */
-public interface CalculatedParameter extends ScalarVariable {
-
+public interface CalculatedParameter extends AbstractVariable {
 } // CalculatedParameter
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/FMIPort.java b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/FMIPort.java
new file mode 100644
index 0000000..0929d46
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/FMIPort.java
@@ -0,0 +1,27 @@
+/**
+ * Copyright (c) 2016 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:
+ *   CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.moka.fmi.fmiprofile;
+
+import org.eclipse.papyrus.sysml14.deprecatedelements.FlowPort;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>FMI Port</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.moka.fmi.fmiprofile.FMIProfilePackage#getFMIPort()
+ * @model
+ * @generated
+ */
+public interface FMIPort extends ScalarVariable, FlowPort {
+} // FMIPort
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/FMIProfileFactory.java b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/FMIProfileFactory.java
index ba86c55..84ee4c2 100644
--- a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/FMIProfileFactory.java
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/FMIProfileFactory.java
@@ -76,13 +76,13 @@
 	ME_FMU createME_FMU();
 
 	/**
-	 * Returns a new object of class '<em>Port</em>'.
+	 * Returns a new object of class '<em>FMI Port</em>'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Port</em>'.
+	 * @return a new object of class '<em>FMI Port</em>'.
 	 * @generated
 	 */
-	Port createPort();
+	FMIPort createFMIPort();
 
 	/**
 	 * Returns a new object of class '<em>Independent</em>'.
@@ -175,6 +175,15 @@
 	CalculatedParameter createCalculatedParameter();
 
 	/**
+	 * Returns a new object of class '<em>Port</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Port</em>'.
+	 * @generated
+	 */
+	Port createPort();
+
+	/**
 	 * Returns the package supported by this factory.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/FMIProfilePackage.java b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/FMIProfilePackage.java
index f12cab5..ec3d20a 100644
--- a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/FMIProfilePackage.java
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/FMIProfilePackage.java
@@ -310,16 +310,7 @@
 	 * @see org.eclipse.papyrus.moka.fmi.fmiprofile.impl.FMIProfilePackageImpl#getScalarVariable()
 	 * @generated
 	 */
-	int SCALAR_VARIABLE = 2;
-
-	/**
-	 * The feature id for the '<em><b>Base Property</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SCALAR_VARIABLE__BASE_PROPERTY = 0;
+	int SCALAR_VARIABLE = 3;
 
 	/**
 	 * The feature id for the '<em><b>Description</b></em>' attribute.
@@ -328,7 +319,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int SCALAR_VARIABLE__DESCRIPTION = 1;
+	int SCALAR_VARIABLE__DESCRIPTION = 0;
 
 	/**
 	 * The feature id for the '<em><b>Variability</b></em>' attribute.
@@ -337,7 +328,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int SCALAR_VARIABLE__VARIABILITY = 2;
+	int SCALAR_VARIABLE__VARIABILITY = 1;
 
 	/**
 	 * The feature id for the '<em><b>Initial</b></em>' attribute.
@@ -346,7 +337,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int SCALAR_VARIABLE__INITIAL = 3;
+	int SCALAR_VARIABLE__INITIAL = 2;
 
 	/**
 	 * The feature id for the '<em><b>Value Reference</b></em>' attribute.
@@ -355,7 +346,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int SCALAR_VARIABLE__VALUE_REFERENCE = 4;
+	int SCALAR_VARIABLE__VALUE_REFERENCE = 3;
 
 	/**
 	 * The feature id for the '<em><b>Fmi Variable</b></em>' reference.
@@ -364,7 +355,16 @@
 	 * @generated
 	 * @ordered
 	 */
-	int SCALAR_VARIABLE__FMI_VARIABLE = 5;
+	int SCALAR_VARIABLE__FMI_VARIABLE = 4;
+
+	/**
+	 * The feature id for the '<em><b>Causality Kind</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SCALAR_VARIABLE__CAUSALITY_KIND = 5;
 
 	/**
 	 * The number of structural features of the '<em>Scalar Variable</em>' class.
@@ -385,6 +385,97 @@
 	int SCALAR_VARIABLE_OPERATION_COUNT = 0;
 
 	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.moka.fmi.fmiprofile.impl.AbstractVariableImpl <em>Abstract Variable</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.papyrus.moka.fmi.fmiprofile.impl.AbstractVariableImpl
+	 * @see org.eclipse.papyrus.moka.fmi.fmiprofile.impl.FMIProfilePackageImpl#getAbstractVariable()
+	 * @generated
+	 */
+	int ABSTRACT_VARIABLE = 2;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ABSTRACT_VARIABLE__DESCRIPTION = SCALAR_VARIABLE__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Variability</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ABSTRACT_VARIABLE__VARIABILITY = SCALAR_VARIABLE__VARIABILITY;
+
+	/**
+	 * The feature id for the '<em><b>Initial</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ABSTRACT_VARIABLE__INITIAL = SCALAR_VARIABLE__INITIAL;
+
+	/**
+	 * The feature id for the '<em><b>Value Reference</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ABSTRACT_VARIABLE__VALUE_REFERENCE = SCALAR_VARIABLE__VALUE_REFERENCE;
+
+	/**
+	 * The feature id for the '<em><b>Fmi Variable</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ABSTRACT_VARIABLE__FMI_VARIABLE = SCALAR_VARIABLE__FMI_VARIABLE;
+
+	/**
+	 * The feature id for the '<em><b>Causality Kind</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ABSTRACT_VARIABLE__CAUSALITY_KIND = SCALAR_VARIABLE__CAUSALITY_KIND;
+
+	/**
+	 * The feature id for the '<em><b>Base Property</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ABSTRACT_VARIABLE__BASE_PROPERTY = SCALAR_VARIABLE_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Abstract Variable</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ABSTRACT_VARIABLE_FEATURE_COUNT = SCALAR_VARIABLE_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of operations of the '<em>Abstract Variable</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ABSTRACT_VARIABLE_OPERATION_COUNT = SCALAR_VARIABLE_OPERATION_COUNT + 0;
+
+	/**
 	 * The meta object id for the '{@link org.eclipse.papyrus.moka.fmi.fmiprofile.impl.ParameterImpl <em>Parameter</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -395,22 +486,13 @@
 	int PARAMETER = 1;
 
 	/**
-	 * The feature id for the '<em><b>Base Property</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PARAMETER__BASE_PROPERTY = SCALAR_VARIABLE__BASE_PROPERTY;
-
-	/**
 	 * The feature id for the '<em><b>Description</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int PARAMETER__DESCRIPTION = SCALAR_VARIABLE__DESCRIPTION;
+	int PARAMETER__DESCRIPTION = ABSTRACT_VARIABLE__DESCRIPTION;
 
 	/**
 	 * The feature id for the '<em><b>Variability</b></em>' attribute.
@@ -419,7 +501,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PARAMETER__VARIABILITY = SCALAR_VARIABLE__VARIABILITY;
+	int PARAMETER__VARIABILITY = ABSTRACT_VARIABLE__VARIABILITY;
 
 	/**
 	 * The feature id for the '<em><b>Initial</b></em>' attribute.
@@ -428,7 +510,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PARAMETER__INITIAL = SCALAR_VARIABLE__INITIAL;
+	int PARAMETER__INITIAL = ABSTRACT_VARIABLE__INITIAL;
 
 	/**
 	 * The feature id for the '<em><b>Value Reference</b></em>' attribute.
@@ -437,7 +519,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PARAMETER__VALUE_REFERENCE = SCALAR_VARIABLE__VALUE_REFERENCE;
+	int PARAMETER__VALUE_REFERENCE = ABSTRACT_VARIABLE__VALUE_REFERENCE;
 
 	/**
 	 * The feature id for the '<em><b>Fmi Variable</b></em>' reference.
@@ -446,7 +528,25 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PARAMETER__FMI_VARIABLE = SCALAR_VARIABLE__FMI_VARIABLE;
+	int PARAMETER__FMI_VARIABLE = ABSTRACT_VARIABLE__FMI_VARIABLE;
+
+	/**
+	 * The feature id for the '<em><b>Causality Kind</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER__CAUSALITY_KIND = ABSTRACT_VARIABLE__CAUSALITY_KIND;
+
+	/**
+	 * The feature id for the '<em><b>Base Property</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PARAMETER__BASE_PROPERTY = ABSTRACT_VARIABLE__BASE_PROPERTY;
 
 	/**
 	 * The number of structural features of the '<em>Parameter</em>' class.
@@ -455,7 +555,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PARAMETER_FEATURE_COUNT = SCALAR_VARIABLE_FEATURE_COUNT + 0;
+	int PARAMETER_FEATURE_COUNT = ABSTRACT_VARIABLE_FEATURE_COUNT + 0;
 
 	/**
 	 * The number of operations of the '<em>Parameter</em>' class.
@@ -464,7 +564,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PARAMETER_OPERATION_COUNT = SCALAR_VARIABLE_OPERATION_COUNT + 0;
+	int PARAMETER_OPERATION_COUNT = ABSTRACT_VARIABLE_OPERATION_COUNT + 0;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.papyrus.moka.fmi.fmiprofile.impl.LocalImpl <em>Local</em>}' class.
@@ -474,16 +574,7 @@
 	 * @see org.eclipse.papyrus.moka.fmi.fmiprofile.impl.FMIProfilePackageImpl#getLocal()
 	 * @generated
 	 */
-	int LOCAL = 3;
-
-	/**
-	 * The feature id for the '<em><b>Base Property</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int LOCAL__BASE_PROPERTY = SCALAR_VARIABLE__BASE_PROPERTY;
+	int LOCAL = 4;
 
 	/**
 	 * The feature id for the '<em><b>Description</b></em>' attribute.
@@ -492,7 +583,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int LOCAL__DESCRIPTION = SCALAR_VARIABLE__DESCRIPTION;
+	int LOCAL__DESCRIPTION = ABSTRACT_VARIABLE__DESCRIPTION;
 
 	/**
 	 * The feature id for the '<em><b>Variability</b></em>' attribute.
@@ -501,7 +592,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int LOCAL__VARIABILITY = SCALAR_VARIABLE__VARIABILITY;
+	int LOCAL__VARIABILITY = ABSTRACT_VARIABLE__VARIABILITY;
 
 	/**
 	 * The feature id for the '<em><b>Initial</b></em>' attribute.
@@ -510,7 +601,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int LOCAL__INITIAL = SCALAR_VARIABLE__INITIAL;
+	int LOCAL__INITIAL = ABSTRACT_VARIABLE__INITIAL;
 
 	/**
 	 * The feature id for the '<em><b>Value Reference</b></em>' attribute.
@@ -519,7 +610,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int LOCAL__VALUE_REFERENCE = SCALAR_VARIABLE__VALUE_REFERENCE;
+	int LOCAL__VALUE_REFERENCE = ABSTRACT_VARIABLE__VALUE_REFERENCE;
 
 	/**
 	 * The feature id for the '<em><b>Fmi Variable</b></em>' reference.
@@ -528,7 +619,25 @@
 	 * @generated
 	 * @ordered
 	 */
-	int LOCAL__FMI_VARIABLE = SCALAR_VARIABLE__FMI_VARIABLE;
+	int LOCAL__FMI_VARIABLE = ABSTRACT_VARIABLE__FMI_VARIABLE;
+
+	/**
+	 * The feature id for the '<em><b>Causality Kind</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LOCAL__CAUSALITY_KIND = ABSTRACT_VARIABLE__CAUSALITY_KIND;
+
+	/**
+	 * The feature id for the '<em><b>Base Property</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LOCAL__BASE_PROPERTY = ABSTRACT_VARIABLE__BASE_PROPERTY;
 
 	/**
 	 * The number of structural features of the '<em>Local</em>' class.
@@ -537,7 +646,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int LOCAL_FEATURE_COUNT = SCALAR_VARIABLE_FEATURE_COUNT + 0;
+	int LOCAL_FEATURE_COUNT = ABSTRACT_VARIABLE_FEATURE_COUNT + 0;
 
 	/**
 	 * The number of operations of the '<em>Local</em>' class.
@@ -546,7 +655,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int LOCAL_OPERATION_COUNT = SCALAR_VARIABLE_OPERATION_COUNT + 0;
+	int LOCAL_OPERATION_COUNT = ABSTRACT_VARIABLE_OPERATION_COUNT + 0;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.papyrus.moka.fmi.fmiprofile.impl.CS_FMUImpl <em>CS FMU</em>}' class.
@@ -556,7 +665,7 @@
 	 * @see org.eclipse.papyrus.moka.fmi.fmiprofile.impl.FMIProfilePackageImpl#getCS_FMU()
 	 * @generated
 	 */
-	int CS_FMU = 4;
+	int CS_FMU = 5;
 
 	/**
 	 * The feature id for the '<em><b>Fmi Version</b></em>' attribute.
@@ -863,7 +972,7 @@
 	 * @see org.eclipse.papyrus.moka.fmi.fmiprofile.impl.FMIProfilePackageImpl#getME_FMU()
 	 * @generated
 	 */
-	int ME_FMU = 5;
+	int ME_FMU = 6;
 
 	/**
 	 * The feature id for the '<em><b>Fmi Version</b></em>' attribute.
@@ -1100,23 +1209,14 @@
 	int ME_FMU_OPERATION_COUNT = FMU_OPERATION_COUNT + 0;
 
 	/**
-	 * The meta object id for the '{@link org.eclipse.papyrus.moka.fmi.fmiprofile.impl.PortImpl <em>Port</em>}' class.
+	 * The meta object id for the '{@link org.eclipse.papyrus.moka.fmi.fmiprofile.impl.FMIPortImpl <em>FMI Port</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see org.eclipse.papyrus.moka.fmi.fmiprofile.impl.PortImpl
-	 * @see org.eclipse.papyrus.moka.fmi.fmiprofile.impl.FMIProfilePackageImpl#getPort()
+	 * @see org.eclipse.papyrus.moka.fmi.fmiprofile.impl.FMIPortImpl
+	 * @see org.eclipse.papyrus.moka.fmi.fmiprofile.impl.FMIProfilePackageImpl#getFMIPort()
 	 * @generated
 	 */
-	int PORT = 6;
-
-	/**
-	 * The feature id for the '<em><b>Base Property</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PORT__BASE_PROPERTY = SCALAR_VARIABLE__BASE_PROPERTY;
+	int FMI_PORT = 7;
 
 	/**
 	 * The feature id for the '<em><b>Description</b></em>' attribute.
@@ -1125,7 +1225,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PORT__DESCRIPTION = SCALAR_VARIABLE__DESCRIPTION;
+	int FMI_PORT__DESCRIPTION = SCALAR_VARIABLE__DESCRIPTION;
 
 	/**
 	 * The feature id for the '<em><b>Variability</b></em>' attribute.
@@ -1134,7 +1234,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PORT__VARIABILITY = SCALAR_VARIABLE__VARIABILITY;
+	int FMI_PORT__VARIABILITY = SCALAR_VARIABLE__VARIABILITY;
 
 	/**
 	 * The feature id for the '<em><b>Initial</b></em>' attribute.
@@ -1143,7 +1243,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PORT__INITIAL = SCALAR_VARIABLE__INITIAL;
+	int FMI_PORT__INITIAL = SCALAR_VARIABLE__INITIAL;
 
 	/**
 	 * The feature id for the '<em><b>Value Reference</b></em>' attribute.
@@ -1152,7 +1252,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PORT__VALUE_REFERENCE = SCALAR_VARIABLE__VALUE_REFERENCE;
+	int FMI_PORT__VALUE_REFERENCE = SCALAR_VARIABLE__VALUE_REFERENCE;
 
 	/**
 	 * The feature id for the '<em><b>Fmi Variable</b></em>' reference.
@@ -1161,7 +1261,16 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PORT__FMI_VARIABLE = SCALAR_VARIABLE__FMI_VARIABLE;
+	int FMI_PORT__FMI_VARIABLE = SCALAR_VARIABLE__FMI_VARIABLE;
+
+	/**
+	 * The feature id for the '<em><b>Causality Kind</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FMI_PORT__CAUSALITY_KIND = SCALAR_VARIABLE__CAUSALITY_KIND;
 
 	/**
 	 * The feature id for the '<em><b>Base Port</b></em>' reference.
@@ -1170,7 +1279,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PORT__BASE_PORT = SCALAR_VARIABLE_FEATURE_COUNT + 0;
+	int FMI_PORT__BASE_PORT = SCALAR_VARIABLE_FEATURE_COUNT + 0;
 
 	/**
 	 * The feature id for the '<em><b>Direction</b></em>' attribute.
@@ -1179,25 +1288,43 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PORT__DIRECTION = SCALAR_VARIABLE_FEATURE_COUNT + 1;
+	int FMI_PORT__DIRECTION = SCALAR_VARIABLE_FEATURE_COUNT + 1;
 
 	/**
-	 * The number of structural features of the '<em>Port</em>' class.
+	 * The feature id for the '<em><b>Is Atomic</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int PORT_FEATURE_COUNT = SCALAR_VARIABLE_FEATURE_COUNT + 2;
+	int FMI_PORT__IS_ATOMIC = SCALAR_VARIABLE_FEATURE_COUNT + 2;
 
 	/**
-	 * The number of operations of the '<em>Port</em>' class.
+	 * The number of structural features of the '<em>FMI Port</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int PORT_OPERATION_COUNT = SCALAR_VARIABLE_OPERATION_COUNT + 0;
+	int FMI_PORT_FEATURE_COUNT = SCALAR_VARIABLE_FEATURE_COUNT + 3;
+
+	/**
+	 * The operation id for the '<em>Get Icon</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FMI_PORT___GET_ICON = SCALAR_VARIABLE_OPERATION_COUNT + 0;
+
+	/**
+	 * The number of operations of the '<em>FMI Port</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FMI_PORT_OPERATION_COUNT = SCALAR_VARIABLE_OPERATION_COUNT + 1;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.papyrus.moka.fmi.fmiprofile.impl.IndependentImpl <em>Independent</em>}' class.
@@ -1207,16 +1334,7 @@
 	 * @see org.eclipse.papyrus.moka.fmi.fmiprofile.impl.FMIProfilePackageImpl#getIndependent()
 	 * @generated
 	 */
-	int INDEPENDENT = 7;
-
-	/**
-	 * The feature id for the '<em><b>Base Property</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INDEPENDENT__BASE_PROPERTY = SCALAR_VARIABLE__BASE_PROPERTY;
+	int INDEPENDENT = 8;
 
 	/**
 	 * The feature id for the '<em><b>Description</b></em>' attribute.
@@ -1225,7 +1343,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INDEPENDENT__DESCRIPTION = SCALAR_VARIABLE__DESCRIPTION;
+	int INDEPENDENT__DESCRIPTION = ABSTRACT_VARIABLE__DESCRIPTION;
 
 	/**
 	 * The feature id for the '<em><b>Variability</b></em>' attribute.
@@ -1234,7 +1352,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INDEPENDENT__VARIABILITY = SCALAR_VARIABLE__VARIABILITY;
+	int INDEPENDENT__VARIABILITY = ABSTRACT_VARIABLE__VARIABILITY;
 
 	/**
 	 * The feature id for the '<em><b>Initial</b></em>' attribute.
@@ -1243,7 +1361,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INDEPENDENT__INITIAL = SCALAR_VARIABLE__INITIAL;
+	int INDEPENDENT__INITIAL = ABSTRACT_VARIABLE__INITIAL;
 
 	/**
 	 * The feature id for the '<em><b>Value Reference</b></em>' attribute.
@@ -1252,7 +1370,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INDEPENDENT__VALUE_REFERENCE = SCALAR_VARIABLE__VALUE_REFERENCE;
+	int INDEPENDENT__VALUE_REFERENCE = ABSTRACT_VARIABLE__VALUE_REFERENCE;
 
 	/**
 	 * The feature id for the '<em><b>Fmi Variable</b></em>' reference.
@@ -1261,7 +1379,25 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INDEPENDENT__FMI_VARIABLE = SCALAR_VARIABLE__FMI_VARIABLE;
+	int INDEPENDENT__FMI_VARIABLE = ABSTRACT_VARIABLE__FMI_VARIABLE;
+
+	/**
+	 * The feature id for the '<em><b>Causality Kind</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INDEPENDENT__CAUSALITY_KIND = ABSTRACT_VARIABLE__CAUSALITY_KIND;
+
+	/**
+	 * The feature id for the '<em><b>Base Property</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INDEPENDENT__BASE_PROPERTY = ABSTRACT_VARIABLE__BASE_PROPERTY;
 
 	/**
 	 * The number of structural features of the '<em>Independent</em>' class.
@@ -1270,7 +1406,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INDEPENDENT_FEATURE_COUNT = SCALAR_VARIABLE_FEATURE_COUNT + 0;
+	int INDEPENDENT_FEATURE_COUNT = ABSTRACT_VARIABLE_FEATURE_COUNT + 0;
 
 	/**
 	 * The number of operations of the '<em>Independent</em>' class.
@@ -1279,7 +1415,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INDEPENDENT_OPERATION_COUNT = SCALAR_VARIABLE_OPERATION_COUNT + 0;
+	int INDEPENDENT_OPERATION_COUNT = ABSTRACT_VARIABLE_OPERATION_COUNT + 0;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.papyrus.moka.fmi.fmiprofile.impl.UnknownImpl <em>Unknown</em>}' class.
@@ -1289,7 +1425,7 @@
 	 * @see org.eclipse.papyrus.moka.fmi.fmiprofile.impl.FMIProfilePackageImpl#getUnknown()
 	 * @generated
 	 */
-	int UNKNOWN = 8;
+	int UNKNOWN = 9;
 
 	/**
 	 * The feature id for the '<em><b>Base Property</b></em>' reference.
@@ -1344,7 +1480,7 @@
 	 * @see org.eclipse.papyrus.moka.fmi.fmiprofile.impl.FMIProfilePackageImpl#getOutputUnknown()
 	 * @generated
 	 */
-	int OUTPUT_UNKNOWN = 9;
+	int OUTPUT_UNKNOWN = 10;
 
 	/**
 	 * The feature id for the '<em><b>Base Property</b></em>' reference.
@@ -1399,7 +1535,7 @@
 	 * @see org.eclipse.papyrus.moka.fmi.fmiprofile.impl.FMIProfilePackageImpl#getInitialUnknown()
 	 * @generated
 	 */
-	int INITIAL_UNKNOWN = 10;
+	int INITIAL_UNKNOWN = 11;
 
 	/**
 	 * The feature id for the '<em><b>Base Property</b></em>' reference.
@@ -1454,7 +1590,7 @@
 	 * @see org.eclipse.papyrus.moka.fmi.fmiprofile.impl.FMIProfilePackageImpl#getDerivativeUnknown()
 	 * @generated
 	 */
-	int DERIVATIVE_UNKNOWN = 11;
+	int DERIVATIVE_UNKNOWN = 12;
 
 	/**
 	 * The feature id for the '<em><b>Base Property</b></em>' reference.
@@ -1509,7 +1645,7 @@
 	 * @see org.eclipse.papyrus.moka.fmi.fmiprofile.impl.FMIProfilePackageImpl#getCS_Graph()
 	 * @generated
 	 */
-	int CS_GRAPH = 12;
+	int CS_GRAPH = 13;
 
 	/**
 	 * The feature id for the '<em><b>Start Time</b></em>' attribute.
@@ -1609,7 +1745,7 @@
 	 * @see org.eclipse.papyrus.moka.fmi.fmiprofile.impl.FMIProfilePackageImpl#getDerivativeDependency()
 	 * @generated
 	 */
-	int DERIVATIVE_DEPENDENCY = 13;
+	int DERIVATIVE_DEPENDENCY = 14;
 
 	/**
 	 * The feature id for the '<em><b>Base Dependency</b></em>' reference.
@@ -1655,7 +1791,7 @@
 	 * @see org.eclipse.papyrus.moka.fmi.fmiprofile.impl.FMIProfilePackageImpl#getOutputDependency()
 	 * @generated
 	 */
-	int OUTPUT_DEPENDENCY = 14;
+	int OUTPUT_DEPENDENCY = 15;
 
 	/**
 	 * The feature id for the '<em><b>Base Dependency</b></em>' reference.
@@ -1692,7 +1828,7 @@
 	 * @see org.eclipse.papyrus.moka.fmi.fmiprofile.impl.FMIProfilePackageImpl#getInitialUnknownDependency()
 	 * @generated
 	 */
-	int INITIAL_UNKNOWN_DEPENDENCY = 15;
+	int INITIAL_UNKNOWN_DEPENDENCY = 16;
 
 	/**
 	 * The feature id for the '<em><b>Base Dependency</b></em>' reference.
@@ -1729,16 +1865,7 @@
 	 * @see org.eclipse.papyrus.moka.fmi.fmiprofile.impl.FMIProfilePackageImpl#getCalculatedParameter()
 	 * @generated
 	 */
-	int CALCULATED_PARAMETER = 16;
-
-	/**
-	 * The feature id for the '<em><b>Base Property</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CALCULATED_PARAMETER__BASE_PROPERTY = SCALAR_VARIABLE__BASE_PROPERTY;
+	int CALCULATED_PARAMETER = 17;
 
 	/**
 	 * The feature id for the '<em><b>Description</b></em>' attribute.
@@ -1747,7 +1874,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int CALCULATED_PARAMETER__DESCRIPTION = SCALAR_VARIABLE__DESCRIPTION;
+	int CALCULATED_PARAMETER__DESCRIPTION = ABSTRACT_VARIABLE__DESCRIPTION;
 
 	/**
 	 * The feature id for the '<em><b>Variability</b></em>' attribute.
@@ -1756,7 +1883,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int CALCULATED_PARAMETER__VARIABILITY = SCALAR_VARIABLE__VARIABILITY;
+	int CALCULATED_PARAMETER__VARIABILITY = ABSTRACT_VARIABLE__VARIABILITY;
 
 	/**
 	 * The feature id for the '<em><b>Initial</b></em>' attribute.
@@ -1765,7 +1892,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int CALCULATED_PARAMETER__INITIAL = SCALAR_VARIABLE__INITIAL;
+	int CALCULATED_PARAMETER__INITIAL = ABSTRACT_VARIABLE__INITIAL;
 
 	/**
 	 * The feature id for the '<em><b>Value Reference</b></em>' attribute.
@@ -1774,7 +1901,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int CALCULATED_PARAMETER__VALUE_REFERENCE = SCALAR_VARIABLE__VALUE_REFERENCE;
+	int CALCULATED_PARAMETER__VALUE_REFERENCE = ABSTRACT_VARIABLE__VALUE_REFERENCE;
 
 	/**
 	 * The feature id for the '<em><b>Fmi Variable</b></em>' reference.
@@ -1783,7 +1910,25 @@
 	 * @generated
 	 * @ordered
 	 */
-	int CALCULATED_PARAMETER__FMI_VARIABLE = SCALAR_VARIABLE__FMI_VARIABLE;
+	int CALCULATED_PARAMETER__FMI_VARIABLE = ABSTRACT_VARIABLE__FMI_VARIABLE;
+
+	/**
+	 * The feature id for the '<em><b>Causality Kind</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CALCULATED_PARAMETER__CAUSALITY_KIND = ABSTRACT_VARIABLE__CAUSALITY_KIND;
+
+	/**
+	 * The feature id for the '<em><b>Base Property</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CALCULATED_PARAMETER__BASE_PROPERTY = ABSTRACT_VARIABLE__BASE_PROPERTY;
 
 	/**
 	 * The number of structural features of the '<em>Calculated Parameter</em>' class.
@@ -1792,7 +1937,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int CALCULATED_PARAMETER_FEATURE_COUNT = SCALAR_VARIABLE_FEATURE_COUNT + 0;
+	int CALCULATED_PARAMETER_FEATURE_COUNT = ABSTRACT_VARIABLE_FEATURE_COUNT + 0;
 
 	/**
 	 * The number of operations of the '<em>Calculated Parameter</em>' class.
@@ -1801,7 +1946,125 @@
 	 * @generated
 	 * @ordered
 	 */
-	int CALCULATED_PARAMETER_OPERATION_COUNT = SCALAR_VARIABLE_OPERATION_COUNT + 0;
+	int CALCULATED_PARAMETER_OPERATION_COUNT = ABSTRACT_VARIABLE_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.moka.fmi.fmiprofile.impl.PortImpl <em>Port</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.papyrus.moka.fmi.fmiprofile.impl.PortImpl
+	 * @see org.eclipse.papyrus.moka.fmi.fmiprofile.impl.FMIProfilePackageImpl#getPort()
+	 * @generated
+	 */
+	int PORT = 18;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PORT__DESCRIPTION = FMI_PORT__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Variability</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PORT__VARIABILITY = FMI_PORT__VARIABILITY;
+
+	/**
+	 * The feature id for the '<em><b>Initial</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PORT__INITIAL = FMI_PORT__INITIAL;
+
+	/**
+	 * The feature id for the '<em><b>Value Reference</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PORT__VALUE_REFERENCE = FMI_PORT__VALUE_REFERENCE;
+
+	/**
+	 * The feature id for the '<em><b>Fmi Variable</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PORT__FMI_VARIABLE = FMI_PORT__FMI_VARIABLE;
+
+	/**
+	 * The feature id for the '<em><b>Causality Kind</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PORT__CAUSALITY_KIND = FMI_PORT__CAUSALITY_KIND;
+
+	/**
+	 * The feature id for the '<em><b>Base Port</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PORT__BASE_PORT = FMI_PORT__BASE_PORT;
+
+	/**
+	 * The feature id for the '<em><b>Direction</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PORT__DIRECTION = FMI_PORT__DIRECTION;
+
+	/**
+	 * The feature id for the '<em><b>Is Atomic</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PORT__IS_ATOMIC = FMI_PORT__IS_ATOMIC;
+
+	/**
+	 * The number of structural features of the '<em>Port</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PORT_FEATURE_COUNT = FMI_PORT_FEATURE_COUNT + 0;
+
+	/**
+	 * The operation id for the '<em>Get Icon</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PORT___GET_ICON = FMI_PORT___GET_ICON;
+
+	/**
+	 * The number of operations of the '<em>Port</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PORT_OPERATION_COUNT = FMI_PORT_OPERATION_COUNT + 0;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.papyrus.moka.fmi.fmiprofile.VariabilityKind <em>Variability Kind</em>}' enum.
@@ -1811,7 +2074,7 @@
 	 * @see org.eclipse.papyrus.moka.fmi.fmiprofile.impl.FMIProfilePackageImpl#getVariabilityKind()
 	 * @generated
 	 */
-	int VARIABILITY_KIND = 17;
+	int VARIABILITY_KIND = 19;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.papyrus.moka.fmi.fmiprofile.InitialKind <em>Initial Kind</em>}' enum.
@@ -1821,7 +2084,7 @@
 	 * @see org.eclipse.papyrus.moka.fmi.fmiprofile.impl.FMIProfilePackageImpl#getInitialKind()
 	 * @generated
 	 */
-	int INITIAL_KIND = 18;
+	int INITIAL_KIND = 20;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.papyrus.moka.fmi.fmiprofile.CausalityKind <em>Causality Kind</em>}' enum.
@@ -1834,16 +2097,6 @@
 	int CAUSALITY_KIND = 21;
 
 	/**
-	 * The meta object id for the '{@link org.eclipse.papyrus.moka.fmi.fmiprofile.FlowDirection <em>Flow Direction</em>}' enum.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.papyrus.moka.fmi.fmiprofile.FlowDirection
-	 * @see org.eclipse.papyrus.moka.fmi.fmiprofile.impl.FMIProfilePackageImpl#getFlowDirection()
-	 * @generated
-	 */
-	int FLOW_DIRECTION = 19;
-
-	/**
 	 * The meta object id for the '{@link org.eclipse.papyrus.moka.fmi.fmiprofile.DependenciesKind <em>Dependencies Kind</em>}' enum.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -1851,7 +2104,7 @@
 	 * @see org.eclipse.papyrus.moka.fmi.fmiprofile.impl.FMIProfilePackageImpl#getDependenciesKind()
 	 * @generated
 	 */
-	int DEPENDENCIES_KIND = 20;
+	int DEPENDENCIES_KIND = 22;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.papyrus.moka.fmi.fmiprofile.VariabilityNamingConvention <em>Variability Naming Convention</em>}' enum.
@@ -1861,7 +2114,7 @@
 	 * @see org.eclipse.papyrus.moka.fmi.fmiprofile.impl.FMIProfilePackageImpl#getVariabilityNamingConvention()
 	 * @generated
 	 */
-	int VARIABILITY_NAMING_CONVENTION = 22;
+	int VARIABILITY_NAMING_CONVENTION = 23;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.papyrus.moka.fmi.fmiprofile.BaseUnit <em>Base Unit</em>}' enum.
@@ -1871,7 +2124,7 @@
 	 * @see org.eclipse.papyrus.moka.fmi.fmiprofile.impl.FMIProfilePackageImpl#getBaseUnit()
 	 * @generated
 	 */
-	int BASE_UNIT = 23;
+	int BASE_UNIT = 24;
 
 
 	/**
@@ -2148,6 +2401,27 @@
 	EClass getParameter();
 
 	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.moka.fmi.fmiprofile.AbstractVariable <em>Abstract Variable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Abstract Variable</em>'.
+	 * @see org.eclipse.papyrus.moka.fmi.fmiprofile.AbstractVariable
+	 * @generated
+	 */
+	EClass getAbstractVariable();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.moka.fmi.fmiprofile.AbstractVariable#getBase_Property <em>Base Property</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Base Property</em>'.
+	 * @see org.eclipse.papyrus.moka.fmi.fmiprofile.AbstractVariable#getBase_Property()
+	 * @see #getAbstractVariable()
+	 * @generated
+	 */
+	EReference getAbstractVariable_Base_Property();
+
+	/**
 	 * Returns the meta object for class '{@link org.eclipse.papyrus.moka.fmi.fmiprofile.ScalarVariable <em>Scalar Variable</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -2158,17 +2432,6 @@
 	EClass getScalarVariable();
 
 	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.moka.fmi.fmiprofile.ScalarVariable#getBase_Property <em>Base Property</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Base Property</em>'.
-	 * @see org.eclipse.papyrus.moka.fmi.fmiprofile.ScalarVariable#getBase_Property()
-	 * @see #getScalarVariable()
-	 * @generated
-	 */
-	EReference getScalarVariable_Base_Property();
-
-	/**
 	 * Returns the meta object for the attribute '{@link org.eclipse.papyrus.moka.fmi.fmiprofile.ScalarVariable#getDescription <em>Description</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -2224,6 +2487,17 @@
 	EReference getScalarVariable_FmiVariable();
 
 	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.papyrus.moka.fmi.fmiprofile.ScalarVariable#getCausalityKind <em>Causality Kind</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Causality Kind</em>'.
+	 * @see org.eclipse.papyrus.moka.fmi.fmiprofile.ScalarVariable#getCausalityKind()
+	 * @see #getScalarVariable()
+	 * @generated
+	 */
+	EAttribute getScalarVariable_CausalityKind();
+
+	/**
 	 * Returns the meta object for class '{@link org.eclipse.papyrus.moka.fmi.fmiprofile.Local <em>Local</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -2353,36 +2627,14 @@
 	EAttribute getME_FMU_CompletedIntegratorStepNotNeeded();
 
 	/**
-	 * Returns the meta object for class '{@link org.eclipse.papyrus.moka.fmi.fmiprofile.Port <em>Port</em>}'.
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.moka.fmi.fmiprofile.FMIPort <em>FMI Port</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Port</em>'.
-	 * @see org.eclipse.papyrus.moka.fmi.fmiprofile.Port
+	 * @return the meta object for class '<em>FMI Port</em>'.
+	 * @see org.eclipse.papyrus.moka.fmi.fmiprofile.FMIPort
 	 * @generated
 	 */
-	EClass getPort();
-
-	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.moka.fmi.fmiprofile.Port#getBase_Port <em>Base Port</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Base Port</em>'.
-	 * @see org.eclipse.papyrus.moka.fmi.fmiprofile.Port#getBase_Port()
-	 * @see #getPort()
-	 * @generated
-	 */
-	EReference getPort_Base_Port();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.papyrus.moka.fmi.fmiprofile.Port#getDirection <em>Direction</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Direction</em>'.
-	 * @see org.eclipse.papyrus.moka.fmi.fmiprofile.Port#getDirection()
-	 * @see #getPort()
-	 * @generated
-	 */
-	EAttribute getPort_Direction();
+	EClass getFMIPort();
 
 	/**
 	 * Returns the meta object for class '{@link org.eclipse.papyrus.moka.fmi.fmiprofile.Independent <em>Independent</em>}'.
@@ -2650,6 +2902,16 @@
 	EClass getCalculatedParameter();
 
 	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.moka.fmi.fmiprofile.Port <em>Port</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Port</em>'.
+	 * @see org.eclipse.papyrus.moka.fmi.fmiprofile.Port
+	 * @generated
+	 */
+	EClass getPort();
+
+	/**
 	 * Returns the meta object for enum '{@link org.eclipse.papyrus.moka.fmi.fmiprofile.VariabilityKind <em>Variability Kind</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -2680,16 +2942,6 @@
 	EEnum getCausalityKind();
 
 	/**
-	 * Returns the meta object for enum '{@link org.eclipse.papyrus.moka.fmi.fmiprofile.FlowDirection <em>Flow Direction</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for enum '<em>Flow Direction</em>'.
-	 * @see org.eclipse.papyrus.moka.fmi.fmiprofile.FlowDirection
-	 * @generated
-	 */
-	EEnum getFlowDirection();
-
-	/**
 	 * Returns the meta object for enum '{@link org.eclipse.papyrus.moka.fmi.fmiprofile.DependenciesKind <em>Dependencies Kind</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -2947,6 +3199,24 @@
 		EClass PARAMETER = eINSTANCE.getParameter();
 
 		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.moka.fmi.fmiprofile.impl.AbstractVariableImpl <em>Abstract Variable</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.papyrus.moka.fmi.fmiprofile.impl.AbstractVariableImpl
+		 * @see org.eclipse.papyrus.moka.fmi.fmiprofile.impl.FMIProfilePackageImpl#getAbstractVariable()
+		 * @generated
+		 */
+		EClass ABSTRACT_VARIABLE = eINSTANCE.getAbstractVariable();
+
+		/**
+		 * The meta object literal for the '<em><b>Base Property</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference ABSTRACT_VARIABLE__BASE_PROPERTY = eINSTANCE.getAbstractVariable_Base_Property();
+
+		/**
 		 * The meta object literal for the '{@link org.eclipse.papyrus.moka.fmi.fmiprofile.impl.ScalarVariableImpl <em>Scalar Variable</em>}' class.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
@@ -2957,14 +3227,6 @@
 		EClass SCALAR_VARIABLE = eINSTANCE.getScalarVariable();
 
 		/**
-		 * The meta object literal for the '<em><b>Base Property</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference SCALAR_VARIABLE__BASE_PROPERTY = eINSTANCE.getScalarVariable_Base_Property();
-
-		/**
 		 * The meta object literal for the '<em><b>Description</b></em>' attribute feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
@@ -3005,6 +3267,14 @@
 		EReference SCALAR_VARIABLE__FMI_VARIABLE = eINSTANCE.getScalarVariable_FmiVariable();
 
 		/**
+		 * The meta object literal for the '<em><b>Causality Kind</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute SCALAR_VARIABLE__CAUSALITY_KIND = eINSTANCE.getScalarVariable_CausalityKind();
+
+		/**
 		 * The meta object literal for the '{@link org.eclipse.papyrus.moka.fmi.fmiprofile.impl.LocalImpl <em>Local</em>}' class.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
@@ -3107,30 +3377,14 @@
 		EAttribute ME_FMU__COMPLETED_INTEGRATOR_STEP_NOT_NEEDED = eINSTANCE.getME_FMU_CompletedIntegratorStepNotNeeded();
 
 		/**
-		 * The meta object literal for the '{@link org.eclipse.papyrus.moka.fmi.fmiprofile.impl.PortImpl <em>Port</em>}' class.
+		 * The meta object literal for the '{@link org.eclipse.papyrus.moka.fmi.fmiprofile.impl.FMIPortImpl <em>FMI Port</em>}' class.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
-		 * @see org.eclipse.papyrus.moka.fmi.fmiprofile.impl.PortImpl
-		 * @see org.eclipse.papyrus.moka.fmi.fmiprofile.impl.FMIProfilePackageImpl#getPort()
+		 * @see org.eclipse.papyrus.moka.fmi.fmiprofile.impl.FMIPortImpl
+		 * @see org.eclipse.papyrus.moka.fmi.fmiprofile.impl.FMIProfilePackageImpl#getFMIPort()
 		 * @generated
 		 */
-		EClass PORT = eINSTANCE.getPort();
-
-		/**
-		 * The meta object literal for the '<em><b>Base Port</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference PORT__BASE_PORT = eINSTANCE.getPort_Base_Port();
-
-		/**
-		 * The meta object literal for the '<em><b>Direction</b></em>' attribute feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EAttribute PORT__DIRECTION = eINSTANCE.getPort_Direction();
+		EClass FMI_PORT = eINSTANCE.getFMIPort();
 
 		/**
 		 * The meta object literal for the '{@link org.eclipse.papyrus.moka.fmi.fmiprofile.impl.IndependentImpl <em>Independent</em>}' class.
@@ -3353,6 +3607,16 @@
 		EClass CALCULATED_PARAMETER = eINSTANCE.getCalculatedParameter();
 
 		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.moka.fmi.fmiprofile.impl.PortImpl <em>Port</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.papyrus.moka.fmi.fmiprofile.impl.PortImpl
+		 * @see org.eclipse.papyrus.moka.fmi.fmiprofile.impl.FMIProfilePackageImpl#getPort()
+		 * @generated
+		 */
+		EClass PORT = eINSTANCE.getPort();
+
+		/**
 		 * The meta object literal for the '{@link org.eclipse.papyrus.moka.fmi.fmiprofile.VariabilityKind <em>Variability Kind</em>}' enum.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
@@ -3383,16 +3647,6 @@
 		EEnum CAUSALITY_KIND = eINSTANCE.getCausalityKind();
 
 		/**
-		 * The meta object literal for the '{@link org.eclipse.papyrus.moka.fmi.fmiprofile.FlowDirection <em>Flow Direction</em>}' enum.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.papyrus.moka.fmi.fmiprofile.FlowDirection
-		 * @see org.eclipse.papyrus.moka.fmi.fmiprofile.impl.FMIProfilePackageImpl#getFlowDirection()
-		 * @generated
-		 */
-		EEnum FLOW_DIRECTION = eINSTANCE.getFlowDirection();
-
-		/**
 		 * The meta object literal for the '{@link org.eclipse.papyrus.moka.fmi.fmiprofile.DependenciesKind <em>Dependencies Kind</em>}' enum.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/FMU.java b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/FMU.java
index c85e771..ae3fdba 100644
--- a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/FMU.java
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/FMU.java
@@ -12,7 +12,9 @@
 package org.eclipse.papyrus.moka.fmi.fmiprofile;
 
 import org.eclipse.emf.ecore.EObject;
+
 import org.eclipse.papyrus.moka.fmi.fmumetamodel.FMUBundle;
+
 import org.eclipse.papyrus.moka.fmi.modeldescription.FmiModelDescriptionType;
 
 /**
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/Independent.java b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/Independent.java
index ebe6228..901660a 100644
--- a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/Independent.java
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/Independent.java
@@ -22,6 +22,5 @@
  * @model
  * @generated
  */
-public interface Independent extends ScalarVariable {
-
+public interface Independent extends AbstractVariable {
 } // Independent
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/Local.java b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/Local.java
index 935f3aa..402fcd0 100644
--- a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/Local.java
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/Local.java
@@ -22,6 +22,5 @@
  * @model
  * @generated
  */
-public interface Local extends ScalarVariable {
-
+public interface Local extends AbstractVariable {
 } // Local
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/Parameter.java b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/Parameter.java
index 29eb50b..b80457f 100644
--- a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/Parameter.java
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/Parameter.java
@@ -22,6 +22,5 @@
  * @model
  * @generated
  */
-public interface Parameter extends ScalarVariable {
-
+public interface Parameter extends AbstractVariable {
 } // Parameter
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/Port.java b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/Port.java
index c2a5ab8..7d4d680 100644
--- a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/Port.java
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/Port.java
@@ -17,72 +17,11 @@
  * A representation of the model object '<em><b>Port</b></em>'.
  * <!-- end-user-doc -->
  *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.papyrus.moka.fmi.fmiprofile.Port#getBase_Port <em>Base Port</em>}</li>
- *   <li>{@link org.eclipse.papyrus.moka.fmi.fmiprofile.Port#getDirection <em>Direction</em>}</li>
- * </ul>
  *
  * @see org.eclipse.papyrus.moka.fmi.fmiprofile.FMIProfilePackage#getPort()
  * @model
  * @generated
  */
-public interface Port extends ScalarVariable {
-	/**
-	 * Returns the value of the '<em><b>Base Port</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Base Port</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Base Port</em>' reference.
-	 * @see #setBase_Port(org.eclipse.uml2.uml.Port)
-	 * @see org.eclipse.papyrus.moka.fmi.fmiprofile.FMIProfilePackage#getPort_Base_Port()
-	 * @model required="true" ordered="false"
-	 * @generated
-	 */
-	org.eclipse.uml2.uml.Port getBase_Port();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.papyrus.moka.fmi.fmiprofile.Port#getBase_Port <em>Base Port</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Base Port</em>' reference.
-	 * @see #getBase_Port()
-	 * @generated
-	 */
-	void setBase_Port(org.eclipse.uml2.uml.Port value);
-
-	/**
-	 * Returns the value of the '<em><b>Direction</b></em>' attribute.
-	 * The literals are from the enumeration {@link org.eclipse.papyrus.moka.fmi.fmiprofile.FlowDirection}.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Direction</em>' attribute isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Direction</em>' attribute.
-	 * @see org.eclipse.papyrus.moka.fmi.fmiprofile.FlowDirection
-	 * @see #setDirection(FlowDirection)
-	 * @see org.eclipse.papyrus.moka.fmi.fmiprofile.FMIProfilePackage#getPort_Direction()
-	 * @model required="true" ordered="false"
-	 * @generated
-	 */
-	FlowDirection getDirection();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.papyrus.moka.fmi.fmiprofile.Port#getDirection <em>Direction</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Direction</em>' attribute.
-	 * @see org.eclipse.papyrus.moka.fmi.fmiprofile.FlowDirection
-	 * @see #getDirection()
-	 * @generated
-	 */
-	void setDirection(FlowDirection value);
+public interface Port extends FMIPort {
 
 } // Port
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/ScalarVariable.java b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/ScalarVariable.java
index 9f27f49..1c1aa4a 100644
--- a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/ScalarVariable.java
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/ScalarVariable.java
@@ -14,7 +14,6 @@
 import org.eclipse.emf.ecore.EObject;
 
 import org.eclipse.papyrus.moka.fmi.modeldescription.Fmi2ScalarVariable;
-import org.eclipse.uml2.uml.Property;
 
 /**
  * <!-- begin-user-doc -->
@@ -25,12 +24,12 @@
  * The following features are supported:
  * </p>
  * <ul>
- *   <li>{@link org.eclipse.papyrus.moka.fmi.fmiprofile.ScalarVariable#getBase_Property <em>Base Property</em>}</li>
  *   <li>{@link org.eclipse.papyrus.moka.fmi.fmiprofile.ScalarVariable#getDescription <em>Description</em>}</li>
  *   <li>{@link org.eclipse.papyrus.moka.fmi.fmiprofile.ScalarVariable#getVariability <em>Variability</em>}</li>
  *   <li>{@link org.eclipse.papyrus.moka.fmi.fmiprofile.ScalarVariable#getInitial <em>Initial</em>}</li>
  *   <li>{@link org.eclipse.papyrus.moka.fmi.fmiprofile.ScalarVariable#getValueReference <em>Value Reference</em>}</li>
  *   <li>{@link org.eclipse.papyrus.moka.fmi.fmiprofile.ScalarVariable#getFmiVariable <em>Fmi Variable</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.moka.fmi.fmiprofile.ScalarVariable#getCausalityKind <em>Causality Kind</em>}</li>
  * </ul>
  *
  * @see org.eclipse.papyrus.moka.fmi.fmiprofile.FMIProfilePackage#getScalarVariable()
@@ -39,32 +38,6 @@
  */
 public interface ScalarVariable extends EObject {
 	/**
-	 * Returns the value of the '<em><b>Base Property</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Base Property</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Base Property</em>' reference.
-	 * @see #setBase_Property(Property)
-	 * @see org.eclipse.papyrus.moka.fmi.fmiprofile.FMIProfilePackage#getScalarVariable_Base_Property()
-	 * @model required="true" ordered="false"
-	 * @generated
-	 */
-	Property getBase_Property();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.papyrus.moka.fmi.fmiprofile.ScalarVariable#getBase_Property <em>Base Property</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Base Property</em>' reference.
-	 * @see #getBase_Property()
-	 * @generated
-	 */
-	void setBase_Property(Property value);
-
-	/**
 	 * Returns the value of the '<em><b>Description</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <p>
@@ -150,6 +123,7 @@
 
 	/**
 	 * Returns the value of the '<em><b>Value Reference</b></em>' attribute.
+	 * The default value is <code>"-1"</code>.
 	 * <!-- begin-user-doc -->
 	 * <p>
 	 * If the meaning of the '<em>Value Reference</em>' attribute isn't clear,
@@ -157,12 +131,12 @@
 	 * </p>
 	 * <!-- end-user-doc -->
 	 * @return the value of the '<em>Value Reference</em>' attribute.
-	 * @see #setValueReference(int)
+	 * @see #setValueReference(long)
 	 * @see org.eclipse.papyrus.moka.fmi.fmiprofile.FMIProfilePackage#getScalarVariable_ValueReference()
-	 * @model required="true" ordered="false"
+	 * @model default="-1" required="true" ordered="false"
 	 * @generated
 	 */
-	int getValueReference();
+	long getValueReference();
 
 	/**
 	 * Sets the value of the '{@link org.eclipse.papyrus.moka.fmi.fmiprofile.ScalarVariable#getValueReference <em>Value Reference</em>}' attribute.
@@ -172,7 +146,7 @@
 	 * @see #getValueReference()
 	 * @generated
 	 */
-	void setValueReference(int value);
+	void setValueReference(long value);
 
 	/**
 	 * Returns the value of the '<em><b>Fmi Variable</b></em>' reference.
@@ -200,4 +174,33 @@
 	 */
 	void setFmiVariable(Fmi2ScalarVariable value);
 
+	/**
+	 * Returns the value of the '<em><b>Causality Kind</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.papyrus.moka.fmi.fmiprofile.CausalityKind}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Causality Kind</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Causality Kind</em>' attribute.
+	 * @see org.eclipse.papyrus.moka.fmi.fmiprofile.CausalityKind
+	 * @see #setCausalityKind(CausalityKind)
+	 * @see org.eclipse.papyrus.moka.fmi.fmiprofile.FMIProfilePackage#getScalarVariable_CausalityKind()
+	 * @model required="true" ordered="false"
+	 * @generated
+	 */
+	CausalityKind getCausalityKind();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.moka.fmi.fmiprofile.ScalarVariable#getCausalityKind <em>Causality Kind</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Causality Kind</em>' attribute.
+	 * @see org.eclipse.papyrus.moka.fmi.fmiprofile.CausalityKind
+	 * @see #getCausalityKind()
+	 * @generated
+	 */
+	void setCausalityKind(CausalityKind value);
+
 } // ScalarVariable
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/impl/AbstractVariableImpl.java b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/impl/AbstractVariableImpl.java
new file mode 100644
index 0000000..0e86a44
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/impl/AbstractVariableImpl.java
@@ -0,0 +1,166 @@
+/**
+ * Copyright (c) 2016 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:
+ *   CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.moka.fmi.fmiprofile.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.moka.fmi.fmiprofile.AbstractVariable;
+import org.eclipse.papyrus.moka.fmi.fmiprofile.FMIProfilePackage;
+
+import org.eclipse.uml2.uml.Property;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Abstract Variable</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.moka.fmi.fmiprofile.impl.AbstractVariableImpl#getBase_Property <em>Base Property</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class AbstractVariableImpl extends ScalarVariableImpl implements AbstractVariable {
+	/**
+	 * The cached value of the '{@link #getBase_Property() <em>Base Property</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBase_Property()
+	 * @generated
+	 * @ordered
+	 */
+	protected Property base_Property;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected AbstractVariableImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return FMIProfilePackage.Literals.ABSTRACT_VARIABLE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Property getBase_Property() {
+		if (base_Property != null && base_Property.eIsProxy()) {
+			InternalEObject oldBase_Property = (InternalEObject)base_Property;
+			base_Property = (Property)eResolveProxy(oldBase_Property);
+			if (base_Property != oldBase_Property) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, FMIProfilePackage.ABSTRACT_VARIABLE__BASE_PROPERTY, oldBase_Property, base_Property));
+			}
+		}
+		return base_Property;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Property basicGetBase_Property() {
+		return base_Property;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setBase_Property(Property newBase_Property) {
+		Property oldBase_Property = base_Property;
+		base_Property = newBase_Property;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, FMIProfilePackage.ABSTRACT_VARIABLE__BASE_PROPERTY, oldBase_Property, base_Property));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case FMIProfilePackage.ABSTRACT_VARIABLE__BASE_PROPERTY:
+				if (resolve) return getBase_Property();
+				return basicGetBase_Property();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case FMIProfilePackage.ABSTRACT_VARIABLE__BASE_PROPERTY:
+				setBase_Property((Property)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case FMIProfilePackage.ABSTRACT_VARIABLE__BASE_PROPERTY:
+				setBase_Property((Property)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case FMIProfilePackage.ABSTRACT_VARIABLE__BASE_PROPERTY:
+				return base_Property != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //AbstractVariableImpl
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/impl/CS_FMUImpl.java b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/impl/CS_FMUImpl.java
index 5feb147..49cc745 100644
--- a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/impl/CS_FMUImpl.java
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/impl/CS_FMUImpl.java
@@ -525,7 +525,7 @@
 	public String toString() {
 		if (eIsProxy()) return super.toString();
 
-		StringBuffer result = new StringBuffer(super.toString());
+		StringBuilder result = new StringBuilder(super.toString());
 		result.append(" (canHandleVariableCommunicationStepSize: ");
 		result.append(canHandleVariableCommunicationStepSize);
 		result.append(", canInterpolateInputs: ");
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/impl/CS_GraphImpl.java b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/impl/CS_GraphImpl.java
index 6791ec2..d3837f6 100644
--- a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/impl/CS_GraphImpl.java
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/impl/CS_GraphImpl.java
@@ -535,7 +535,7 @@
 	public String toString() {
 		if (eIsProxy()) return super.toString();
 
-		StringBuffer result = new StringBuffer(super.toString());
+		StringBuilder result = new StringBuilder(super.toString());
 		result.append(" (startTime: ");
 		result.append(startTime);
 		result.append(", stopTime: ");
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/impl/CalculatedParameterImpl.java b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/impl/CalculatedParameterImpl.java
index 880f2a0..a0a616b 100644
--- a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/impl/CalculatedParameterImpl.java
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/impl/CalculatedParameterImpl.java
@@ -12,6 +12,7 @@
 package org.eclipse.papyrus.moka.fmi.fmiprofile.impl;
 
 import org.eclipse.emf.ecore.EClass;
+
 import org.eclipse.papyrus.moka.fmi.fmiprofile.CalculatedParameter;
 import org.eclipse.papyrus.moka.fmi.fmiprofile.FMIProfilePackage;
 
@@ -22,7 +23,7 @@
  *
  * @generated
  */
-public class CalculatedParameterImpl extends ScalarVariableImpl implements CalculatedParameter {
+public class CalculatedParameterImpl extends AbstractVariableImpl implements CalculatedParameter {
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/impl/DerivativeDependencyImpl.java b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/impl/DerivativeDependencyImpl.java
index c43de1d..15b04bc 100644
--- a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/impl/DerivativeDependencyImpl.java
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/impl/DerivativeDependencyImpl.java
@@ -226,7 +226,7 @@
 	public String toString() {
 		if (eIsProxy()) return super.toString();
 
-		StringBuffer result = new StringBuffer(super.toString());
+		StringBuilder result = new StringBuilder(super.toString());
 		result.append(" (dependencyKind: ");
 		result.append(dependencyKind);
 		result.append(')');
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/impl/FMIPortImpl.java b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/impl/FMIPortImpl.java
new file mode 100644
index 0000000..f17c87e
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/impl/FMIPortImpl.java
@@ -0,0 +1,347 @@
+/**
+ * Copyright (c) 2016 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:
+ *   CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.moka.fmi.fmiprofile.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.moka.fmi.fmiprofile.FMIPort;
+import org.eclipse.papyrus.moka.fmi.fmiprofile.FMIProfilePackage;
+
+import org.eclipse.papyrus.sysml14.deprecatedelements.DeprecatedelementsPackage;
+import org.eclipse.papyrus.sysml14.deprecatedelements.FlowPort;
+
+import org.eclipse.papyrus.sysml14.portsandflows.FlowDirection;
+
+import org.eclipse.uml2.uml.Image;
+import org.eclipse.uml2.uml.Port;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>FMI Port</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.moka.fmi.fmiprofile.impl.FMIPortImpl#getBase_Port <em>Base Port</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.moka.fmi.fmiprofile.impl.FMIPortImpl#getDirection <em>Direction</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.moka.fmi.fmiprofile.impl.FMIPortImpl#isAtomic <em>Is Atomic</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class FMIPortImpl extends ScalarVariableImpl implements FMIPort {
+	/**
+	 * The cached value of the '{@link #getBase_Port() <em>Base Port</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBase_Port()
+	 * @generated
+	 * @ordered
+	 */
+	protected Port base_Port;
+
+	/**
+	 * The default value of the '{@link #getDirection() <em>Direction</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDirection()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final FlowDirection DIRECTION_EDEFAULT = FlowDirection.INOUT;
+
+	/**
+	 * The cached value of the '{@link #getDirection() <em>Direction</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDirection()
+	 * @generated
+	 * @ordered
+	 */
+	protected FlowDirection direction = DIRECTION_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #isAtomic() <em>Is Atomic</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isAtomic()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final boolean IS_ATOMIC_EDEFAULT = false;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected FMIPortImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return FMIProfilePackage.Literals.FMI_PORT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Port getBase_Port() {
+		if (base_Port != null && base_Port.eIsProxy()) {
+			InternalEObject oldBase_Port = (InternalEObject)base_Port;
+			base_Port = (Port)eResolveProxy(oldBase_Port);
+			if (base_Port != oldBase_Port) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, FMIProfilePackage.FMI_PORT__BASE_PORT, oldBase_Port, base_Port));
+			}
+		}
+		return base_Port;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Port basicGetBase_Port() {
+		return base_Port;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setBase_Port(Port newBase_Port) {
+		Port oldBase_Port = base_Port;
+		base_Port = newBase_Port;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, FMIProfilePackage.FMI_PORT__BASE_PORT, oldBase_Port, base_Port));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public FlowDirection getDirection() {
+		return direction;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDirection(FlowDirection newDirection) {
+		FlowDirection oldDirection = direction;
+		direction = newDirection == null ? DIRECTION_EDEFAULT : newDirection;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, FMIProfilePackage.FMI_PORT__DIRECTION, oldDirection, direction));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean isAtomic() {
+		// TODO: implement this method to return the 'Is Atomic' attribute
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Image getIcon() {
+		// TODO: implement this method
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case FMIProfilePackage.FMI_PORT__BASE_PORT:
+				if (resolve) return getBase_Port();
+				return basicGetBase_Port();
+			case FMIProfilePackage.FMI_PORT__DIRECTION:
+				return getDirection();
+			case FMIProfilePackage.FMI_PORT__IS_ATOMIC:
+				return isAtomic();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case FMIProfilePackage.FMI_PORT__BASE_PORT:
+				setBase_Port((Port)newValue);
+				return;
+			case FMIProfilePackage.FMI_PORT__DIRECTION:
+				setDirection((FlowDirection)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case FMIProfilePackage.FMI_PORT__BASE_PORT:
+				setBase_Port((Port)null);
+				return;
+			case FMIProfilePackage.FMI_PORT__DIRECTION:
+				setDirection(DIRECTION_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case FMIProfilePackage.FMI_PORT__BASE_PORT:
+				return base_Port != null;
+			case FMIProfilePackage.FMI_PORT__DIRECTION:
+				return direction != DIRECTION_EDEFAULT;
+			case FMIProfilePackage.FMI_PORT__IS_ATOMIC:
+				return isAtomic() != IS_ATOMIC_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == FlowPort.class) {
+			switch (derivedFeatureID) {
+				case FMIProfilePackage.FMI_PORT__BASE_PORT: return DeprecatedelementsPackage.FLOW_PORT__BASE_PORT;
+				case FMIProfilePackage.FMI_PORT__DIRECTION: return DeprecatedelementsPackage.FLOW_PORT__DIRECTION;
+				case FMIProfilePackage.FMI_PORT__IS_ATOMIC: return DeprecatedelementsPackage.FLOW_PORT__IS_ATOMIC;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == FlowPort.class) {
+			switch (baseFeatureID) {
+				case DeprecatedelementsPackage.FLOW_PORT__BASE_PORT: return FMIProfilePackage.FMI_PORT__BASE_PORT;
+				case DeprecatedelementsPackage.FLOW_PORT__DIRECTION: return FMIProfilePackage.FMI_PORT__DIRECTION;
+				case DeprecatedelementsPackage.FLOW_PORT__IS_ATOMIC: return FMIProfilePackage.FMI_PORT__IS_ATOMIC;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eDerivedOperationID(int baseOperationID, Class<?> baseClass) {
+		if (baseClass == FlowPort.class) {
+			switch (baseOperationID) {
+				case DeprecatedelementsPackage.FLOW_PORT___GET_ICON: return FMIProfilePackage.FMI_PORT___GET_ICON;
+				default: return -1;
+			}
+		}
+		return super.eDerivedOperationID(baseOperationID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+		switch (operationID) {
+			case FMIProfilePackage.FMI_PORT___GET_ICON:
+				return getIcon();
+		}
+		return super.eInvoke(operationID, arguments);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuilder result = new StringBuilder(super.toString());
+		result.append(" (direction: ");
+		result.append(direction);
+		result.append(')');
+		return result.toString();
+	}
+
+} //FMIPortImpl
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/impl/FMIProfileFactoryImpl.java b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/impl/FMIProfileFactoryImpl.java
index 63d2b24..c9fa241 100644
--- a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/impl/FMIProfileFactoryImpl.java
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/impl/FMIProfileFactoryImpl.java
@@ -71,7 +71,7 @@
 			case FMIProfilePackage.LOCAL: return createLocal();
 			case FMIProfilePackage.CS_FMU: return createCS_FMU();
 			case FMIProfilePackage.ME_FMU: return createME_FMU();
-			case FMIProfilePackage.PORT: return createPort();
+			case FMIProfilePackage.FMI_PORT: return createFMIPort();
 			case FMIProfilePackage.INDEPENDENT: return createIndependent();
 			case FMIProfilePackage.UNKNOWN: return createUnknown();
 			case FMIProfilePackage.OUTPUT_UNKNOWN: return createOutputUnknown();
@@ -82,6 +82,7 @@
 			case FMIProfilePackage.OUTPUT_DEPENDENCY: return createOutputDependency();
 			case FMIProfilePackage.INITIAL_UNKNOWN_DEPENDENCY: return createInitialUnknownDependency();
 			case FMIProfilePackage.CALCULATED_PARAMETER: return createCalculatedParameter();
+			case FMIProfilePackage.PORT: return createPort();
 			default:
 				throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
 		}
@@ -99,12 +100,10 @@
 				return createVariabilityKindFromString(eDataType, initialValue);
 			case FMIProfilePackage.INITIAL_KIND:
 				return createInitialKindFromString(eDataType, initialValue);
-			case FMIProfilePackage.FLOW_DIRECTION:
-				return createFlowDirectionFromString(eDataType, initialValue);
-			case FMIProfilePackage.DEPENDENCIES_KIND:
-				return createDependenciesKindFromString(eDataType, initialValue);
 			case FMIProfilePackage.CAUSALITY_KIND:
 				return createCausalityKindFromString(eDataType, initialValue);
+			case FMIProfilePackage.DEPENDENCIES_KIND:
+				return createDependenciesKindFromString(eDataType, initialValue);
 			case FMIProfilePackage.VARIABILITY_NAMING_CONVENTION:
 				return createVariabilityNamingConventionFromString(eDataType, initialValue);
 			case FMIProfilePackage.BASE_UNIT:
@@ -126,12 +125,10 @@
 				return convertVariabilityKindToString(eDataType, instanceValue);
 			case FMIProfilePackage.INITIAL_KIND:
 				return convertInitialKindToString(eDataType, instanceValue);
-			case FMIProfilePackage.FLOW_DIRECTION:
-				return convertFlowDirectionToString(eDataType, instanceValue);
-			case FMIProfilePackage.DEPENDENCIES_KIND:
-				return convertDependenciesKindToString(eDataType, instanceValue);
 			case FMIProfilePackage.CAUSALITY_KIND:
 				return convertCausalityKindToString(eDataType, instanceValue);
+			case FMIProfilePackage.DEPENDENCIES_KIND:
+				return convertDependenciesKindToString(eDataType, instanceValue);
 			case FMIProfilePackage.VARIABILITY_NAMING_CONVENTION:
 				return convertVariabilityNamingConventionToString(eDataType, instanceValue);
 			case FMIProfilePackage.BASE_UNIT:
@@ -196,9 +193,9 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public Port createPort() {
-		PortImpl port = new PortImpl();
-		return port;
+	public FMIPort createFMIPort() {
+		FMIPortImpl fmiPort = new FMIPortImpl();
+		return fmiPort;
 	}
 
 	/**
@@ -306,6 +303,16 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public Port createPort() {
+		PortImpl port = new PortImpl();
+		return port;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public VariabilityKind createVariabilityKindFromString(EDataType eDataType, String initialValue) {
 		VariabilityKind result = VariabilityKind.get(initialValue);
 		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
@@ -366,26 +373,6 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public FlowDirection createFlowDirectionFromString(EDataType eDataType, String initialValue) {
-		FlowDirection result = FlowDirection.get(initialValue);
-		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
-		return result;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String convertFlowDirectionToString(EDataType eDataType, Object instanceValue) {
-		return instanceValue == null ? null : instanceValue.toString();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
 	public DependenciesKind createDependenciesKindFromString(EDataType eDataType, String initialValue) {
 		DependenciesKind result = DependenciesKind.get(initialValue);
 		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/impl/FMIProfilePackageImpl.java b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/impl/FMIProfilePackageImpl.java
index 5fc0d5d..bb99553 100644
--- a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/impl/FMIProfilePackageImpl.java
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/impl/FMIProfilePackageImpl.java
@@ -16,9 +16,11 @@
 import org.eclipse.emf.ecore.EEnum;
 import org.eclipse.emf.ecore.EPackage;
 import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EcorePackage;
 
 import org.eclipse.emf.ecore.impl.EPackageImpl;
 
+import org.eclipse.papyrus.moka.fmi.fmiprofile.AbstractVariable;
 import org.eclipse.papyrus.moka.fmi.fmiprofile.BaseUnit;
 import org.eclipse.papyrus.moka.fmi.fmiprofile.CS_Graph;
 import org.eclipse.papyrus.moka.fmi.fmiprofile.CalculatedParameter;
@@ -26,9 +28,9 @@
 import org.eclipse.papyrus.moka.fmi.fmiprofile.DependenciesKind;
 import org.eclipse.papyrus.moka.fmi.fmiprofile.DerivativeDependency;
 import org.eclipse.papyrus.moka.fmi.fmiprofile.DerivativeUnknown;
+import org.eclipse.papyrus.moka.fmi.fmiprofile.FMIPort;
 import org.eclipse.papyrus.moka.fmi.fmiprofile.FMIProfileFactory;
 import org.eclipse.papyrus.moka.fmi.fmiprofile.FMIProfilePackage;
-import org.eclipse.papyrus.moka.fmi.fmiprofile.FlowDirection;
 import org.eclipse.papyrus.moka.fmi.fmiprofile.Independent;
 import org.eclipse.papyrus.moka.fmi.fmiprofile.InitialKind;
 import org.eclipse.papyrus.moka.fmi.fmiprofile.InitialUnknown;
@@ -44,11 +46,19 @@
 import org.eclipse.papyrus.moka.fmi.fmiprofile.VariabilityNamingConvention;
 
 import org.eclipse.papyrus.moka.fmi.fmumetamodel.FmumetamodelPackage;
+
 import org.eclipse.papyrus.moka.fmi.modeldescription.FmiPackage;
+
+import org.eclipse.papyrus.sysml14.deprecatedelements.DeprecatedelementsPackage;
+
+import org.eclipse.papyrus.sysml14.sysmlPackage;
+
 import org.eclipse.uml2.types.TypesPackage;
 
 import org.eclipse.uml2.uml.UMLPackage;
 
+import org.eclipse.uml2.uml.profile.standard.StandardPackage;
+
 /**
  * <!-- begin-user-doc -->
  * An implementation of the model <b>Package</b>.
@@ -75,6 +85,13 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	private EClass abstractVariableEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	private EClass scalarVariableEClass = null;
 
 	/**
@@ -103,7 +120,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	private EClass portEClass = null;
+	private EClass fmiPortEClass = null;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -180,6 +197,13 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	private EClass portEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	private EEnum variabilityKindEEnum = null;
 
 	/**
@@ -201,13 +225,6 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	private EEnum flowDirectionEEnum = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
 	private EEnum dependenciesKindEEnum = null;
 
 	/**
@@ -252,7 +269,7 @@
 
 	/**
 	 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
-	 * 
+	 *
 	 * <p>This method is used to initialize {@link FMIProfilePackage#eINSTANCE} when that field is accessed.
 	 * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
 	 * <!-- begin-user-doc -->
@@ -266,12 +283,18 @@
 		if (isInited) return (FMIProfilePackage)EPackage.Registry.INSTANCE.getEPackage(FMIProfilePackage.eNS_URI);
 
 		// Obtain or create and register package
-		FMIProfilePackageImpl theFMIProfilePackage = (FMIProfilePackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof FMIProfilePackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new FMIProfilePackageImpl());
+		Object registeredFMIProfilePackage = EPackage.Registry.INSTANCE.get(eNS_URI);
+		FMIProfilePackageImpl theFMIProfilePackage = registeredFMIProfilePackage instanceof FMIProfilePackageImpl ? (FMIProfilePackageImpl)registeredFMIProfilePackage : new FMIProfilePackageImpl();
 
 		isInited = true;
 
 		// Initialize simple dependencies
+		EcorePackage.eINSTANCE.eClass();
+		FmiPackage.eINSTANCE.eClass();
 		FmumetamodelPackage.eINSTANCE.eClass();
+		StandardPackage.eINSTANCE.eClass();
+		sysmlPackage.eINSTANCE.eClass();
+		TypesPackage.eINSTANCE.eClass();
 		UMLPackage.eINSTANCE.eClass();
 
 		// Create package meta-data objects
@@ -283,7 +306,6 @@
 		// Mark meta-data to indicate it can't be changed
 		theFMIProfilePackage.freeze();
 
-  
 		// Update the registry and return the package
 		EPackage.Registry.INSTANCE.put(FMIProfilePackage.eNS_URI, theFMIProfilePackage);
 		return theFMIProfilePackage;
@@ -519,6 +541,24 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public EClass getAbstractVariable() {
+		return abstractVariableEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getAbstractVariable_Base_Property() {
+		return (EReference)abstractVariableEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public EClass getScalarVariable() {
 		return scalarVariableEClass;
 	}
@@ -528,17 +568,8 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EReference getScalarVariable_Base_Property() {
-		return (EReference)scalarVariableEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
 	public EAttribute getScalarVariable_Description() {
-		return (EAttribute)scalarVariableEClass.getEStructuralFeatures().get(1);
+		return (EAttribute)scalarVariableEClass.getEStructuralFeatures().get(0);
 	}
 
 	/**
@@ -547,7 +578,7 @@
 	 * @generated
 	 */
 	public EAttribute getScalarVariable_Variability() {
-		return (EAttribute)scalarVariableEClass.getEStructuralFeatures().get(2);
+		return (EAttribute)scalarVariableEClass.getEStructuralFeatures().get(1);
 	}
 
 	/**
@@ -556,7 +587,7 @@
 	 * @generated
 	 */
 	public EAttribute getScalarVariable_Initial() {
-		return (EAttribute)scalarVariableEClass.getEStructuralFeatures().get(3);
+		return (EAttribute)scalarVariableEClass.getEStructuralFeatures().get(2);
 	}
 
 	/**
@@ -565,7 +596,7 @@
 	 * @generated
 	 */
 	public EAttribute getScalarVariable_ValueReference() {
-		return (EAttribute)scalarVariableEClass.getEStructuralFeatures().get(4);
+		return (EAttribute)scalarVariableEClass.getEStructuralFeatures().get(3);
 	}
 
 	/**
@@ -574,7 +605,16 @@
 	 * @generated
 	 */
 	public EReference getScalarVariable_FmiVariable() {
-		return (EReference)scalarVariableEClass.getEStructuralFeatures().get(5);
+		return (EReference)scalarVariableEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getScalarVariable_CausalityKind() {
+		return (EAttribute)scalarVariableEClass.getEStructuralFeatures().get(5);
 	}
 
 	/**
@@ -690,26 +730,8 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EClass getPort() {
-		return portEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EReference getPort_Base_Port() {
-		return (EReference)portEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public EAttribute getPort_Direction() {
-		return (EAttribute)portEClass.getEStructuralFeatures().get(1);
+	public EClass getFMIPort() {
+		return fmiPortEClass;
 	}
 
 	/**
@@ -942,6 +964,15 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public EClass getPort() {
+		return portEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public EEnum getVariabilityKind() {
 		return variabilityKindEEnum;
 	}
@@ -969,15 +1000,6 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EEnum getFlowDirection() {
-		return flowDirectionEEnum;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
 	public EEnum getDependenciesKind() {
 		return dependenciesKindEEnum;
 	}
@@ -1055,13 +1077,16 @@
 
 		parameterEClass = createEClass(PARAMETER);
 
+		abstractVariableEClass = createEClass(ABSTRACT_VARIABLE);
+		createEReference(abstractVariableEClass, ABSTRACT_VARIABLE__BASE_PROPERTY);
+
 		scalarVariableEClass = createEClass(SCALAR_VARIABLE);
-		createEReference(scalarVariableEClass, SCALAR_VARIABLE__BASE_PROPERTY);
 		createEAttribute(scalarVariableEClass, SCALAR_VARIABLE__DESCRIPTION);
 		createEAttribute(scalarVariableEClass, SCALAR_VARIABLE__VARIABILITY);
 		createEAttribute(scalarVariableEClass, SCALAR_VARIABLE__INITIAL);
 		createEAttribute(scalarVariableEClass, SCALAR_VARIABLE__VALUE_REFERENCE);
 		createEReference(scalarVariableEClass, SCALAR_VARIABLE__FMI_VARIABLE);
+		createEAttribute(scalarVariableEClass, SCALAR_VARIABLE__CAUSALITY_KIND);
 
 		localEClass = createEClass(LOCAL);
 
@@ -1078,9 +1103,7 @@
 		mE_FMUEClass = createEClass(ME_FMU);
 		createEAttribute(mE_FMUEClass, ME_FMU__COMPLETED_INTEGRATOR_STEP_NOT_NEEDED);
 
-		portEClass = createEClass(PORT);
-		createEReference(portEClass, PORT__BASE_PORT);
-		createEAttribute(portEClass, PORT__DIRECTION);
+		fmiPortEClass = createEClass(FMI_PORT);
 
 		independentEClass = createEClass(INDEPENDENT);
 
@@ -1117,12 +1140,13 @@
 
 		calculatedParameterEClass = createEClass(CALCULATED_PARAMETER);
 
+		portEClass = createEClass(PORT);
+
 		// Create enums
 		variabilityKindEEnum = createEEnum(VARIABILITY_KIND);
 		initialKindEEnum = createEEnum(INITIAL_KIND);
-		flowDirectionEEnum = createEEnum(FLOW_DIRECTION);
-		dependenciesKindEEnum = createEEnum(DEPENDENCIES_KIND);
 		causalityKindEEnum = createEEnum(CAUSALITY_KIND);
+		dependenciesKindEEnum = createEEnum(DEPENDENCIES_KIND);
 		variabilityNamingConventionEEnum = createEEnum(VARIABILITY_NAMING_CONVENTION);
 		baseUnitEEnum = createEEnum(BASE_UNIT);
 	}
@@ -1155,22 +1179,26 @@
 		UMLPackage theUMLPackage = (UMLPackage)EPackage.Registry.INSTANCE.getEPackage(UMLPackage.eNS_URI);
 		FmiPackage theFmiPackage = (FmiPackage)EPackage.Registry.INSTANCE.getEPackage(FmiPackage.eNS_URI);
 		FmumetamodelPackage theFmumetamodelPackage = (FmumetamodelPackage)EPackage.Registry.INSTANCE.getEPackage(FmumetamodelPackage.eNS_URI);
+		DeprecatedelementsPackage theDeprecatedelementsPackage = (DeprecatedelementsPackage)EPackage.Registry.INSTANCE.getEPackage(DeprecatedelementsPackage.eNS_URI);
 
 		// Create type parameters
 
 		// Set bounds for type parameters
 
 		// Add supertypes to classes
-		parameterEClass.getESuperTypes().add(this.getScalarVariable());
-		localEClass.getESuperTypes().add(this.getScalarVariable());
+		parameterEClass.getESuperTypes().add(this.getAbstractVariable());
+		abstractVariableEClass.getESuperTypes().add(this.getScalarVariable());
+		localEClass.getESuperTypes().add(this.getAbstractVariable());
 		cS_FMUEClass.getESuperTypes().add(this.getFMU());
 		mE_FMUEClass.getESuperTypes().add(this.getFMU());
-		portEClass.getESuperTypes().add(this.getScalarVariable());
-		independentEClass.getESuperTypes().add(this.getScalarVariable());
+		fmiPortEClass.getESuperTypes().add(this.getScalarVariable());
+		fmiPortEClass.getESuperTypes().add(theDeprecatedelementsPackage.getFlowPort());
+		independentEClass.getESuperTypes().add(this.getAbstractVariable());
 		outputUnknownEClass.getESuperTypes().add(this.getUnknown());
 		initialUnknownEClass.getESuperTypes().add(this.getUnknown());
 		derivativeUnknownEClass.getESuperTypes().add(this.getUnknown());
-		calculatedParameterEClass.getESuperTypes().add(this.getScalarVariable());
+		calculatedParameterEClass.getESuperTypes().add(this.getAbstractVariable());
+		portEClass.getESuperTypes().add(this.getFMIPort());
 
 		// Initialize classes, features, and operations; add parameters
 		initEClass(fmuEClass, org.eclipse.papyrus.moka.fmi.fmiprofile.FMU.class, "FMU", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
@@ -1200,13 +1228,16 @@
 
 		initEClass(parameterEClass, Parameter.class, "Parameter", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 
+		initEClass(abstractVariableEClass, AbstractVariable.class, "AbstractVariable", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getAbstractVariable_Base_Property(), theUMLPackage.getProperty(), null, "base_Property", null, 1, 1, AbstractVariable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
 		initEClass(scalarVariableEClass, ScalarVariable.class, "ScalarVariable", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getScalarVariable_Base_Property(), theUMLPackage.getProperty(), null, "base_Property", null, 1, 1, ScalarVariable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
 		initEAttribute(getScalarVariable_Description(), theTypesPackage.getString(), "description", null, 1, 1, ScalarVariable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
 		initEAttribute(getScalarVariable_Variability(), this.getVariabilityKind(), "variability", null, 1, 1, ScalarVariable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
 		initEAttribute(getScalarVariable_Initial(), this.getInitialKind(), "initial", null, 1, 1, ScalarVariable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
-		initEAttribute(getScalarVariable_ValueReference(), ecorePackage.getEInt(), "valueReference", null, 1, 1, ScalarVariable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEAttribute(getScalarVariable_ValueReference(), ecorePackage.getELong(), "valueReference", "-1", 1, 1, ScalarVariable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
 		initEReference(getScalarVariable_FmiVariable(), theFmiPackage.getFmi2ScalarVariable(), null, "fmiVariable", null, 1, 1, ScalarVariable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEAttribute(getScalarVariable_CausalityKind(), this.getCausalityKind(), "causalityKind", null, 1, 1, ScalarVariable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
 
 		initEClass(localEClass, Local.class, "Local", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 
@@ -1223,9 +1254,7 @@
 		initEClass(mE_FMUEClass, org.eclipse.papyrus.moka.fmi.fmiprofile.ME_FMU.class, "ME_FMU", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEAttribute(getME_FMU_CompletedIntegratorStepNotNeeded(), theTypesPackage.getBoolean(), "completedIntegratorStepNotNeeded", null, 1, 1, org.eclipse.papyrus.moka.fmi.fmiprofile.ME_FMU.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
 
-		initEClass(portEClass, Port.class, "Port", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getPort_Base_Port(), theUMLPackage.getPort(), null, "base_Port", null, 1, 1, Port.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
-		initEAttribute(getPort_Direction(), this.getFlowDirection(), "direction", null, 1, 1, Port.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEClass(fmiPortEClass, FMIPort.class, "FMIPort", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 
 		initEClass(independentEClass, Independent.class, "Independent", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 
@@ -1262,6 +1291,8 @@
 
 		initEClass(calculatedParameterEClass, CalculatedParameter.class, "CalculatedParameter", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 
+		initEClass(portEClass, Port.class, "Port", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
 		// Initialize enums and add enum literals
 		initEEnum(variabilityKindEEnum, VariabilityKind.class, "VariabilityKind");
 		addEEnumLiteral(variabilityKindEEnum, VariabilityKind.CONSTANT);
@@ -1275,18 +1306,6 @@
 		addEEnumLiteral(initialKindEEnum, InitialKind.APPROX);
 		addEEnumLiteral(initialKindEEnum, InitialKind.CALCULATED);
 
-		initEEnum(flowDirectionEEnum, FlowDirection.class, "FlowDirection");
-		addEEnumLiteral(flowDirectionEEnum, FlowDirection.IN);
-		addEEnumLiteral(flowDirectionEEnum, FlowDirection.OUT);
-		addEEnumLiteral(flowDirectionEEnum, FlowDirection.INOUT);
-
-		initEEnum(dependenciesKindEEnum, DependenciesKind.class, "DependenciesKind");
-		addEEnumLiteral(dependenciesKindEEnum, DependenciesKind.DEPENDENT);
-		addEEnumLiteral(dependenciesKindEEnum, DependenciesKind.CONSTANT);
-		addEEnumLiteral(dependenciesKindEEnum, DependenciesKind.FIXED);
-		addEEnumLiteral(dependenciesKindEEnum, DependenciesKind.TUNABLE);
-		addEEnumLiteral(dependenciesKindEEnum, DependenciesKind.DISCRETE);
-
 		initEEnum(causalityKindEEnum, CausalityKind.class, "CausalityKind");
 		addEEnumLiteral(causalityKindEEnum, CausalityKind.PARAMETER);
 		addEEnumLiteral(causalityKindEEnum, CausalityKind.CALCULATED_PARAMETER);
@@ -1295,6 +1314,13 @@
 		addEEnumLiteral(causalityKindEEnum, CausalityKind.LOCAL);
 		addEEnumLiteral(causalityKindEEnum, CausalityKind.INDEPENDENT);
 
+		initEEnum(dependenciesKindEEnum, DependenciesKind.class, "DependenciesKind");
+		addEEnumLiteral(dependenciesKindEEnum, DependenciesKind.DEPENDENT);
+		addEEnumLiteral(dependenciesKindEEnum, DependenciesKind.CONSTANT);
+		addEEnumLiteral(dependenciesKindEEnum, DependenciesKind.FIXED);
+		addEEnumLiteral(dependenciesKindEEnum, DependenciesKind.TUNABLE);
+		addEEnumLiteral(dependenciesKindEEnum, DependenciesKind.DISCRETE);
+
 		initEEnum(variabilityNamingConventionEEnum, VariabilityNamingConvention.class, "VariabilityNamingConvention");
 		addEEnumLiteral(variabilityNamingConventionEEnum, VariabilityNamingConvention.FLAT);
 		addEEnumLiteral(variabilityNamingConventionEEnum, VariabilityNamingConvention.STRUCTURED);
@@ -1326,12 +1352,12 @@
 	 * @generated
 	 */
 	protected void createUMLAnnotations() {
-		String source = "http://www.eclipse.org/uml2/2.0.0/UML";	
+		String source = "http://www.eclipse.org/uml2/2.0.0/UML";
 		addAnnotation
-		  (this, 
-		   source, 
+		  (this,
+		   source,
 		   new String[] {
-			 "originalName", "FMIProfile"
+			   "originalName", "FMIProfile"
 		   });
 	}
 
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/impl/FMUImpl.java b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/impl/FMUImpl.java
index 058946c..2f5f3b7 100644
--- a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/impl/FMUImpl.java
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/impl/FMUImpl.java
@@ -21,7 +21,9 @@
 
 import org.eclipse.papyrus.moka.fmi.fmiprofile.FMIProfilePackage;
 import org.eclipse.papyrus.moka.fmi.fmiprofile.FMU;
+
 import org.eclipse.papyrus.moka.fmi.fmumetamodel.FMUBundle;
+
 import org.eclipse.papyrus.moka.fmi.modeldescription.FmiModelDescriptionType;
 
 /**
@@ -1301,7 +1303,7 @@
 	public String toString() {
 		if (eIsProxy()) return super.toString();
 
-		StringBuffer result = new StringBuffer(super.toString());
+		StringBuilder result = new StringBuilder(super.toString());
 		result.append(" (fmiVersion: ");
 		result.append(fmiVersion);
 		result.append(", modelName: ");
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/impl/IndependentImpl.java b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/impl/IndependentImpl.java
index 6d1ffc1..53f0289 100644
--- a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/impl/IndependentImpl.java
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/impl/IndependentImpl.java
@@ -12,6 +12,7 @@
 package org.eclipse.papyrus.moka.fmi.fmiprofile.impl;
 
 import org.eclipse.emf.ecore.EClass;
+
 import org.eclipse.papyrus.moka.fmi.fmiprofile.FMIProfilePackage;
 import org.eclipse.papyrus.moka.fmi.fmiprofile.Independent;
 
@@ -22,7 +23,7 @@
  *
  * @generated
  */
-public class IndependentImpl extends ScalarVariableImpl implements Independent {
+public class IndependentImpl extends AbstractVariableImpl implements Independent {
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/impl/LocalImpl.java b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/impl/LocalImpl.java
index 45eef08..8252801 100644
--- a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/impl/LocalImpl.java
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/impl/LocalImpl.java
@@ -12,6 +12,7 @@
 package org.eclipse.papyrus.moka.fmi.fmiprofile.impl;
 
 import org.eclipse.emf.ecore.EClass;
+
 import org.eclipse.papyrus.moka.fmi.fmiprofile.FMIProfilePackage;
 import org.eclipse.papyrus.moka.fmi.fmiprofile.Local;
 
@@ -22,7 +23,7 @@
  *
  * @generated
  */
-public class LocalImpl extends ScalarVariableImpl implements Local {
+public class LocalImpl extends AbstractVariableImpl implements Local {
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/impl/ME_FMUImpl.java b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/impl/ME_FMUImpl.java
index b0687d3..461c65a 100644
--- a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/impl/ME_FMUImpl.java
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/impl/ME_FMUImpl.java
@@ -161,7 +161,7 @@
 	public String toString() {
 		if (eIsProxy()) return super.toString();
 
-		StringBuffer result = new StringBuffer(super.toString());
+		StringBuilder result = new StringBuilder(super.toString());
 		result.append(" (completedIntegratorStepNotNeeded: ");
 		result.append(completedIntegratorStepNotNeeded);
 		result.append(')');
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/impl/ParameterImpl.java b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/impl/ParameterImpl.java
index 14a3db8..f332bca 100644
--- a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/impl/ParameterImpl.java
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/impl/ParameterImpl.java
@@ -12,6 +12,7 @@
 package org.eclipse.papyrus.moka.fmi.fmiprofile.impl;
 
 import org.eclipse.emf.ecore.EClass;
+
 import org.eclipse.papyrus.moka.fmi.fmiprofile.FMIProfilePackage;
 import org.eclipse.papyrus.moka.fmi.fmiprofile.Parameter;
 
@@ -22,7 +23,7 @@
  *
  * @generated
  */
-public class ParameterImpl extends ScalarVariableImpl implements Parameter {
+public class ParameterImpl extends AbstractVariableImpl implements Parameter {
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/impl/PortImpl.java b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/impl/PortImpl.java
index 5e4c422..3634f18 100644
--- a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/impl/PortImpl.java
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/impl/PortImpl.java
@@ -11,62 +11,18 @@
  */
 package org.eclipse.papyrus.moka.fmi.fmiprofile.impl;
 
-import org.eclipse.emf.common.notify.Notification;
-
 import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-
 import org.eclipse.papyrus.moka.fmi.fmiprofile.FMIProfilePackage;
-import org.eclipse.papyrus.moka.fmi.fmiprofile.FlowDirection;
 import org.eclipse.papyrus.moka.fmi.fmiprofile.Port;
 
 /**
  * <!-- begin-user-doc -->
  * An implementation of the model object '<em><b>Port</b></em>'.
  * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.papyrus.moka.fmi.fmiprofile.impl.PortImpl#getBase_Port <em>Base Port</em>}</li>
- *   <li>{@link org.eclipse.papyrus.moka.fmi.fmiprofile.impl.PortImpl#getDirection <em>Direction</em>}</li>
- * </ul>
  *
  * @generated
  */
-public class PortImpl extends ScalarVariableImpl implements Port {
-	/**
-	 * The cached value of the '{@link #getBase_Port() <em>Base Port</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getBase_Port()
-	 * @generated
-	 * @ordered
-	 */
-	protected org.eclipse.uml2.uml.Port base_Port;
-
-	/**
-	 * The default value of the '{@link #getDirection() <em>Direction</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getDirection()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final FlowDirection DIRECTION_EDEFAULT = FlowDirection.IN;
-
-	/**
-	 * The cached value of the '{@link #getDirection() <em>Direction</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getDirection()
-	 * @generated
-	 * @ordered
-	 */
-	protected FlowDirection direction = DIRECTION_EDEFAULT;
-
+public class PortImpl extends FMIPortImpl implements Port {
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -86,148 +42,4 @@
 		return FMIProfilePackage.Literals.PORT;
 	}
 
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public org.eclipse.uml2.uml.Port getBase_Port() {
-		if (base_Port != null && base_Port.eIsProxy()) {
-			InternalEObject oldBase_Port = (InternalEObject)base_Port;
-			base_Port = (org.eclipse.uml2.uml.Port)eResolveProxy(oldBase_Port);
-			if (base_Port != oldBase_Port) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, FMIProfilePackage.PORT__BASE_PORT, oldBase_Port, base_Port));
-			}
-		}
-		return base_Port;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public org.eclipse.uml2.uml.Port basicGetBase_Port() {
-		return base_Port;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setBase_Port(org.eclipse.uml2.uml.Port newBase_Port) {
-		org.eclipse.uml2.uml.Port oldBase_Port = base_Port;
-		base_Port = newBase_Port;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, FMIProfilePackage.PORT__BASE_PORT, oldBase_Port, base_Port));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public FlowDirection getDirection() {
-		return direction;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setDirection(FlowDirection newDirection) {
-		FlowDirection oldDirection = direction;
-		direction = newDirection == null ? DIRECTION_EDEFAULT : newDirection;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, FMIProfilePackage.PORT__DIRECTION, oldDirection, direction));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case FMIProfilePackage.PORT__BASE_PORT:
-				if (resolve) return getBase_Port();
-				return basicGetBase_Port();
-			case FMIProfilePackage.PORT__DIRECTION:
-				return getDirection();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case FMIProfilePackage.PORT__BASE_PORT:
-				setBase_Port((org.eclipse.uml2.uml.Port)newValue);
-				return;
-			case FMIProfilePackage.PORT__DIRECTION:
-				setDirection((FlowDirection)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case FMIProfilePackage.PORT__BASE_PORT:
-				setBase_Port((org.eclipse.uml2.uml.Port)null);
-				return;
-			case FMIProfilePackage.PORT__DIRECTION:
-				setDirection(DIRECTION_EDEFAULT);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case FMIProfilePackage.PORT__BASE_PORT:
-				return base_Port != null;
-			case FMIProfilePackage.PORT__DIRECTION:
-				return direction != DIRECTION_EDEFAULT;
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString() {
-		if (eIsProxy()) return super.toString();
-
-		StringBuffer result = new StringBuffer(super.toString());
-		result.append(" (direction: ");
-		result.append(direction);
-		result.append(')');
-		return result.toString();
-	}
-
 } //PortImpl
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/impl/ScalarVariableImpl.java b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/impl/ScalarVariableImpl.java
index 0b1ddc9..e705a3c 100644
--- a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/impl/ScalarVariableImpl.java
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/impl/ScalarVariableImpl.java
@@ -19,13 +19,13 @@
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
 import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
 
+import org.eclipse.papyrus.moka.fmi.fmiprofile.CausalityKind;
 import org.eclipse.papyrus.moka.fmi.fmiprofile.FMIProfilePackage;
 import org.eclipse.papyrus.moka.fmi.fmiprofile.InitialKind;
 import org.eclipse.papyrus.moka.fmi.fmiprofile.ScalarVariable;
 import org.eclipse.papyrus.moka.fmi.fmiprofile.VariabilityKind;
 
 import org.eclipse.papyrus.moka.fmi.modeldescription.Fmi2ScalarVariable;
-import org.eclipse.uml2.uml.Property;
 
 /**
  * <!-- begin-user-doc -->
@@ -35,28 +35,18 @@
  * The following features are implemented:
  * </p>
  * <ul>
- *   <li>{@link org.eclipse.papyrus.moka.fmi.fmiprofile.impl.ScalarVariableImpl#getBase_Property <em>Base Property</em>}</li>
  *   <li>{@link org.eclipse.papyrus.moka.fmi.fmiprofile.impl.ScalarVariableImpl#getDescription <em>Description</em>}</li>
  *   <li>{@link org.eclipse.papyrus.moka.fmi.fmiprofile.impl.ScalarVariableImpl#getVariability <em>Variability</em>}</li>
  *   <li>{@link org.eclipse.papyrus.moka.fmi.fmiprofile.impl.ScalarVariableImpl#getInitial <em>Initial</em>}</li>
  *   <li>{@link org.eclipse.papyrus.moka.fmi.fmiprofile.impl.ScalarVariableImpl#getValueReference <em>Value Reference</em>}</li>
  *   <li>{@link org.eclipse.papyrus.moka.fmi.fmiprofile.impl.ScalarVariableImpl#getFmiVariable <em>Fmi Variable</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.moka.fmi.fmiprofile.impl.ScalarVariableImpl#getCausalityKind <em>Causality Kind</em>}</li>
  * </ul>
  *
  * @generated
  */
 public abstract class ScalarVariableImpl extends MinimalEObjectImpl.Container implements ScalarVariable {
 	/**
-	 * The cached value of the '{@link #getBase_Property() <em>Base Property</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getBase_Property()
-	 * @generated
-	 * @ordered
-	 */
-	protected Property base_Property;
-
-	/**
 	 * The default value of the '{@link #getDescription() <em>Description</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -124,7 +114,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected static final int VALUE_REFERENCE_EDEFAULT = 0;
+	protected static final long VALUE_REFERENCE_EDEFAULT = -1L;
 
 	/**
 	 * The cached value of the '{@link #getValueReference() <em>Value Reference</em>}' attribute.
@@ -134,7 +124,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected int valueReference = VALUE_REFERENCE_EDEFAULT;
+	protected long valueReference = VALUE_REFERENCE_EDEFAULT;
 
 	/**
 	 * The cached value of the '{@link #getFmiVariable() <em>Fmi Variable</em>}' reference.
@@ -147,6 +137,26 @@
 	protected Fmi2ScalarVariable fmiVariable;
 
 	/**
+	 * The default value of the '{@link #getCausalityKind() <em>Causality Kind</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCausalityKind()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final CausalityKind CAUSALITY_KIND_EDEFAULT = CausalityKind.PARAMETER;
+
+	/**
+	 * The cached value of the '{@link #getCausalityKind() <em>Causality Kind</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getCausalityKind()
+	 * @generated
+	 * @ordered
+	 */
+	protected CausalityKind causalityKind = CAUSALITY_KIND_EDEFAULT;
+
+	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -170,44 +180,6 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public Property getBase_Property() {
-		if (base_Property != null && base_Property.eIsProxy()) {
-			InternalEObject oldBase_Property = (InternalEObject)base_Property;
-			base_Property = (Property)eResolveProxy(oldBase_Property);
-			if (base_Property != oldBase_Property) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, FMIProfilePackage.SCALAR_VARIABLE__BASE_PROPERTY, oldBase_Property, base_Property));
-			}
-		}
-		return base_Property;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Property basicGetBase_Property() {
-		return base_Property;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public void setBase_Property(Property newBase_Property) {
-		Property oldBase_Property = base_Property;
-		base_Property = newBase_Property;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, FMIProfilePackage.SCALAR_VARIABLE__BASE_PROPERTY, oldBase_Property, base_Property));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
 	public String getDescription() {
 		return description;
 	}
@@ -271,7 +243,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public int getValueReference() {
+	public long getValueReference() {
 		return valueReference;
 	}
 
@@ -280,8 +252,8 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void setValueReference(int newValueReference) {
-		int oldValueReference = valueReference;
+	public void setValueReference(long newValueReference) {
+		long oldValueReference = valueReference;
 		valueReference = newValueReference;
 		if (eNotificationRequired())
 			eNotify(new ENotificationImpl(this, Notification.SET, FMIProfilePackage.SCALAR_VARIABLE__VALUE_REFERENCE, oldValueReference, valueReference));
@@ -330,12 +302,30 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public CausalityKind getCausalityKind() {
+		return causalityKind;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setCausalityKind(CausalityKind newCausalityKind) {
+		CausalityKind oldCausalityKind = causalityKind;
+		causalityKind = newCausalityKind == null ? CAUSALITY_KIND_EDEFAULT : newCausalityKind;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, FMIProfilePackage.SCALAR_VARIABLE__CAUSALITY_KIND, oldCausalityKind, causalityKind));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
-			case FMIProfilePackage.SCALAR_VARIABLE__BASE_PROPERTY:
-				if (resolve) return getBase_Property();
-				return basicGetBase_Property();
 			case FMIProfilePackage.SCALAR_VARIABLE__DESCRIPTION:
 				return getDescription();
 			case FMIProfilePackage.SCALAR_VARIABLE__VARIABILITY:
@@ -347,6 +337,8 @@
 			case FMIProfilePackage.SCALAR_VARIABLE__FMI_VARIABLE:
 				if (resolve) return getFmiVariable();
 				return basicGetFmiVariable();
+			case FMIProfilePackage.SCALAR_VARIABLE__CAUSALITY_KIND:
+				return getCausalityKind();
 		}
 		return super.eGet(featureID, resolve, coreType);
 	}
@@ -359,9 +351,6 @@
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
-			case FMIProfilePackage.SCALAR_VARIABLE__BASE_PROPERTY:
-				setBase_Property((Property)newValue);
-				return;
 			case FMIProfilePackage.SCALAR_VARIABLE__DESCRIPTION:
 				setDescription((String)newValue);
 				return;
@@ -372,11 +361,14 @@
 				setInitial((InitialKind)newValue);
 				return;
 			case FMIProfilePackage.SCALAR_VARIABLE__VALUE_REFERENCE:
-				setValueReference((Integer)newValue);
+				setValueReference((Long)newValue);
 				return;
 			case FMIProfilePackage.SCALAR_VARIABLE__FMI_VARIABLE:
 				setFmiVariable((Fmi2ScalarVariable)newValue);
 				return;
+			case FMIProfilePackage.SCALAR_VARIABLE__CAUSALITY_KIND:
+				setCausalityKind((CausalityKind)newValue);
+				return;
 		}
 		super.eSet(featureID, newValue);
 	}
@@ -389,9 +381,6 @@
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
-			case FMIProfilePackage.SCALAR_VARIABLE__BASE_PROPERTY:
-				setBase_Property((Property)null);
-				return;
 			case FMIProfilePackage.SCALAR_VARIABLE__DESCRIPTION:
 				setDescription(DESCRIPTION_EDEFAULT);
 				return;
@@ -407,6 +396,9 @@
 			case FMIProfilePackage.SCALAR_VARIABLE__FMI_VARIABLE:
 				setFmiVariable((Fmi2ScalarVariable)null);
 				return;
+			case FMIProfilePackage.SCALAR_VARIABLE__CAUSALITY_KIND:
+				setCausalityKind(CAUSALITY_KIND_EDEFAULT);
+				return;
 		}
 		super.eUnset(featureID);
 	}
@@ -419,8 +411,6 @@
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
-			case FMIProfilePackage.SCALAR_VARIABLE__BASE_PROPERTY:
-				return base_Property != null;
 			case FMIProfilePackage.SCALAR_VARIABLE__DESCRIPTION:
 				return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
 			case FMIProfilePackage.SCALAR_VARIABLE__VARIABILITY:
@@ -431,6 +421,8 @@
 				return valueReference != VALUE_REFERENCE_EDEFAULT;
 			case FMIProfilePackage.SCALAR_VARIABLE__FMI_VARIABLE:
 				return fmiVariable != null;
+			case FMIProfilePackage.SCALAR_VARIABLE__CAUSALITY_KIND:
+				return causalityKind != CAUSALITY_KIND_EDEFAULT;
 		}
 		return super.eIsSet(featureID);
 	}
@@ -444,7 +436,7 @@
 	public String toString() {
 		if (eIsProxy()) return super.toString();
 
-		StringBuffer result = new StringBuffer(super.toString());
+		StringBuilder result = new StringBuilder(super.toString());
 		result.append(" (description: ");
 		result.append(description);
 		result.append(", variability: ");
@@ -453,6 +445,8 @@
 		result.append(initial);
 		result.append(", valueReference: ");
 		result.append(valueReference);
+		result.append(", causalityKind: ");
+		result.append(causalityKind);
 		result.append(')');
 		return result.toString();
 	}
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/impl/UnknownImpl.java b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/impl/UnknownImpl.java
index 0730f79..249f2b6 100644
--- a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/impl/UnknownImpl.java
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/impl/UnknownImpl.java
@@ -277,7 +277,7 @@
 	public String toString() {
 		if (eIsProxy()) return super.toString();
 
-		StringBuffer result = new StringBuffer(super.toString());
+		StringBuilder result = new StringBuilder(super.toString());
 		result.append(" (dependencies: ");
 		result.append(dependencies);
 		result.append(", dependenciesKind: ");
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/util/FMIProfileAdapterFactory.java b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/util/FMIProfileAdapterFactory.java
index 47b9232..965cae1 100644
--- a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/util/FMIProfileAdapterFactory.java
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/util/FMIProfileAdapterFactory.java
@@ -20,6 +20,8 @@
 
 import org.eclipse.papyrus.moka.fmi.fmiprofile.*;
 
+import org.eclipse.papyrus.sysml14.deprecatedelements.FlowPort;
+
 /**
  * <!-- begin-user-doc -->
  * The <b>Adapter Factory</b> for the model.
@@ -85,6 +87,10 @@
 				return createParameterAdapter();
 			}
 			@Override
+			public Adapter caseAbstractVariable(AbstractVariable object) {
+				return createAbstractVariableAdapter();
+			}
+			@Override
 			public Adapter caseScalarVariable(ScalarVariable object) {
 				return createScalarVariableAdapter();
 			}
@@ -101,8 +107,8 @@
 				return createME_FMUAdapter();
 			}
 			@Override
-			public Adapter casePort(Port object) {
-				return createPortAdapter();
+			public Adapter caseFMIPort(FMIPort object) {
+				return createFMIPortAdapter();
 			}
 			@Override
 			public Adapter caseIndependent(Independent object) {
@@ -145,6 +151,14 @@
 				return createCalculatedParameterAdapter();
 			}
 			@Override
+			public Adapter casePort(Port object) {
+				return createPortAdapter();
+			}
+			@Override
+			public Adapter caseFlowPort(FlowPort object) {
+				return createFlowPortAdapter();
+			}
+			@Override
 			public Adapter defaultCase(EObject object) {
 				return createEObjectAdapter();
 			}
@@ -193,6 +207,20 @@
 	}
 
 	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.moka.fmi.fmiprofile.AbstractVariable <em>Abstract Variable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.moka.fmi.fmiprofile.AbstractVariable
+	 * @generated
+	 */
+	public Adapter createAbstractVariableAdapter() {
+		return null;
+	}
+
+	/**
 	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.moka.fmi.fmiprofile.ScalarVariable <em>Scalar Variable</em>}'.
 	 * <!-- begin-user-doc -->
 	 * This default implementation returns null so that we can easily ignore cases;
@@ -249,16 +277,16 @@
 	}
 
 	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.moka.fmi.fmiprofile.Port <em>Port</em>}'.
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.moka.fmi.fmiprofile.FMIPort <em>FMI Port</em>}'.
 	 * <!-- begin-user-doc -->
 	 * This default implementation returns null so that we can easily ignore cases;
 	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
 	 * <!-- end-user-doc -->
 	 * @return the new adapter.
-	 * @see org.eclipse.papyrus.moka.fmi.fmiprofile.Port
+	 * @see org.eclipse.papyrus.moka.fmi.fmiprofile.FMIPort
 	 * @generated
 	 */
-	public Adapter createPortAdapter() {
+	public Adapter createFMIPortAdapter() {
 		return null;
 	}
 
@@ -403,6 +431,34 @@
 	}
 
 	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.moka.fmi.fmiprofile.Port <em>Port</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.moka.fmi.fmiprofile.Port
+	 * @generated
+	 */
+	public Adapter createPortAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.sysml14.deprecatedelements.FlowPort <em>Flow Port</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.sysml14.deprecatedelements.FlowPort
+	 * @generated
+	 */
+	public Adapter createFlowPortAdapter() {
+		return null;
+	}
+
+	/**
 	 * Creates a new adapter for the default case.
 	 * <!-- begin-user-doc -->
 	 * This default implementation returns null.
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/util/FMIProfileSwitch.java b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/util/FMIProfileSwitch.java
index f7a80c4..6f05d6f 100644
--- a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/util/FMIProfileSwitch.java
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src-gen/org/eclipse/papyrus/moka/fmi/fmiprofile/util/FMIProfileSwitch.java
@@ -18,6 +18,8 @@
 
 import org.eclipse.papyrus.moka.fmi.fmiprofile.*;
 
+import org.eclipse.papyrus.sysml14.deprecatedelements.FlowPort;
+
 /**
  * <!-- begin-user-doc -->
  * The <b>Switch</b> for the model's inheritance hierarchy.
@@ -84,10 +86,18 @@
 			case FMIProfilePackage.PARAMETER: {
 				Parameter parameter = (Parameter)theEObject;
 				T result = caseParameter(parameter);
+				if (result == null) result = caseAbstractVariable(parameter);
 				if (result == null) result = caseScalarVariable(parameter);
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
+			case FMIProfilePackage.ABSTRACT_VARIABLE: {
+				AbstractVariable abstractVariable = (AbstractVariable)theEObject;
+				T result = caseAbstractVariable(abstractVariable);
+				if (result == null) result = caseScalarVariable(abstractVariable);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
 			case FMIProfilePackage.SCALAR_VARIABLE: {
 				ScalarVariable scalarVariable = (ScalarVariable)theEObject;
 				T result = caseScalarVariable(scalarVariable);
@@ -97,6 +107,7 @@
 			case FMIProfilePackage.LOCAL: {
 				Local local = (Local)theEObject;
 				T result = caseLocal(local);
+				if (result == null) result = caseAbstractVariable(local);
 				if (result == null) result = caseScalarVariable(local);
 				if (result == null) result = defaultCase(theEObject);
 				return result;
@@ -115,16 +126,18 @@
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
-			case FMIProfilePackage.PORT: {
-				Port port = (Port)theEObject;
-				T result = casePort(port);
-				if (result == null) result = caseScalarVariable(port);
+			case FMIProfilePackage.FMI_PORT: {
+				FMIPort fmiPort = (FMIPort)theEObject;
+				T result = caseFMIPort(fmiPort);
+				if (result == null) result = caseScalarVariable(fmiPort);
+				if (result == null) result = caseFlowPort(fmiPort);
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
 			case FMIProfilePackage.INDEPENDENT: {
 				Independent independent = (Independent)theEObject;
 				T result = caseIndependent(independent);
+				if (result == null) result = caseAbstractVariable(independent);
 				if (result == null) result = caseScalarVariable(independent);
 				if (result == null) result = defaultCase(theEObject);
 				return result;
@@ -183,10 +196,20 @@
 			case FMIProfilePackage.CALCULATED_PARAMETER: {
 				CalculatedParameter calculatedParameter = (CalculatedParameter)theEObject;
 				T result = caseCalculatedParameter(calculatedParameter);
+				if (result == null) result = caseAbstractVariable(calculatedParameter);
 				if (result == null) result = caseScalarVariable(calculatedParameter);
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
+			case FMIProfilePackage.PORT: {
+				Port port = (Port)theEObject;
+				T result = casePort(port);
+				if (result == null) result = caseFMIPort(port);
+				if (result == null) result = caseScalarVariable(port);
+				if (result == null) result = caseFlowPort(port);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
 			default: return defaultCase(theEObject);
 		}
 	}
@@ -222,6 +245,21 @@
 	}
 
 	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Abstract Variable</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Abstract Variable</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseAbstractVariable(AbstractVariable object) {
+		return null;
+	}
+
+	/**
 	 * Returns the result of interpreting the object as an instance of '<em>Scalar Variable</em>'.
 	 * <!-- begin-user-doc -->
 	 * This implementation returns null;
@@ -282,17 +320,17 @@
 	}
 
 	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Port</em>'.
+	 * Returns the result of interpreting the object as an instance of '<em>FMI Port</em>'.
 	 * <!-- begin-user-doc -->
 	 * This implementation returns null;
 	 * returning a non-null result will terminate the switch.
 	 * <!-- end-user-doc -->
 	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Port</em>'.
+	 * @return the result of interpreting the object as an instance of '<em>FMI Port</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
 	 */
-	public T casePort(Port object) {
+	public T caseFMIPort(FMIPort object) {
 		return null;
 	}
 
@@ -447,6 +485,36 @@
 	}
 
 	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Port</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Port</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T casePort(Port object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Flow Port</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Flow Port</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseFlowPort(FlowPort object) {
+		return null;
+	}
+
+	/**
 	 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
 	 * <!-- begin-user-doc -->
 	 * This implementation returns null;
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src/org/eclipse/papyrus/moka/fmi/profile/custom/CustomCalculatedParameter.java b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src/org/eclipse/papyrus/moka/fmi/profile/custom/CustomCalculatedParameter.java
index 3a982ae..6ee4ed9 100644
--- a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src/org/eclipse/papyrus/moka/fmi/profile/custom/CustomCalculatedParameter.java
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src/org/eclipse/papyrus/moka/fmi/profile/custom/CustomCalculatedParameter.java
@@ -1,6 +1,6 @@
 /*****************************************************************************
  * 
- * Copyright (c) 2016 CEA LIST.
+ * Copyright (c) 2016,2019 CEA LIST.
  * 
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
@@ -57,9 +57,9 @@
 	}
 
 	@Override
-	public int getValueReference() {
+	public long getValueReference() {
 		if (getFmiVariable() != null){
-			return (int)getFmiVariable().getValueReference();
+			return (long)getFmiVariable().getValueReference();
 		}
 		return super.getValueReference();
 	}
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src/org/eclipse/papyrus/moka/fmi/profile/custom/CustomFMIPort.java b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src/org/eclipse/papyrus/moka/fmi/profile/custom/CustomFMIPort.java
new file mode 100644
index 0000000..e34f008
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src/org/eclipse/papyrus/moka/fmi/profile/custom/CustomFMIPort.java
@@ -0,0 +1,146 @@
+/*****************************************************************************
+ * 
+ * Copyright (c) 2016,2019 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:
+ *  CEA LIST Initial API and implementation
+ * 
+ *****************************************************************************/
+package org.eclipse.papyrus.moka.fmi.profile.custom;
+
+import java.util.Map;
+
+import org.eclipse.papyrus.moka.fmi.fmiprofile.FMIProfileFactory;
+import org.eclipse.papyrus.moka.fmi.fmiprofile.FMIProfilePackage;
+import org.eclipse.papyrus.moka.fmi.fmiprofile.InitialKind;
+import org.eclipse.papyrus.moka.fmi.fmiprofile.VariabilityKind;
+import org.eclipse.papyrus.moka.fmi.fmiprofile.impl.FMIPortImpl;
+import org.eclipse.papyrus.moka.fmi.modeldescription.Fmi2ScalarVariable;
+import org.eclipse.papyrus.moka.fmi.profile.util.FMIProfileUtil;
+import org.eclipse.papyrus.sysml14.deprecatedelements.FlowPort;
+import org.eclipse.papyrus.sysml14.deprecatedelements.FlowSpecification;
+import org.eclipse.papyrus.sysml14.internal.util.IconUtil;
+import org.eclipse.papyrus.sysml14.portsandflows.FlowDirection;
+import org.eclipse.uml2.uml.Image;
+import org.eclipse.uml2.uml.Interface;
+import org.eclipse.uml2.uml.Stereotype;
+import org.eclipse.uml2.uml.Type;
+import org.eclipse.uml2.uml.util.UMLUtil;
+
+public class CustomFMIPort extends FMIPortImpl {
+
+	private static Map<String, Image> icons;
+
+	@Override
+	public Fmi2ScalarVariable getFmiVariable() {
+		if (fmiVariable == null) {
+			fmiVariable = FMIProfileUtil.getFMIVariable(base_Port);
+		}
+		return fmiVariable;
+	}
+
+	@Override
+	public String getDescription() {
+		if (getFmiVariable() != null) {
+			return getFmiVariable().getDescription();
+		}
+		return super.getDescription();
+	}
+
+	@Override
+	public VariabilityKind getVariability() {
+		if (getFmiVariable() != null) {
+			return (VariabilityKind) FMIProfileFactory.eINSTANCE.createFromString(
+					FMIProfilePackage.eINSTANCE.getVariabilityKind(), getFmiVariable().getVariability().getLiteral());
+		}
+		return super.getVariability();
+	}
+
+	@Override
+	public InitialKind getInitial() {
+		if (getFmiVariable() != null) {
+			return (InitialKind) FMIProfileFactory.eINSTANCE.createFromString(
+					FMIProfilePackage.eINSTANCE.getInitialKind(), getFmiVariable().getInitial().getLiteral());
+		}
+		return super.getInitial();
+	}
+
+	@Override
+	public long getValueReference() {
+		if (getFmiVariable() != null) {
+			return (int) getFmiVariable().getValueReference();
+		}
+		return super.getValueReference();
+	}
+
+	@Override
+	public boolean isAtomic() {
+		boolean isAtomic = true;
+		if (getBase_Port() != null) {
+			// Find FlowPort type
+			Type type = getBase_Port().getType();
+			if ((type != null) && (type instanceof Interface)) {
+				FlowSpecification flowSpec = UMLUtil.getStereotypeApplication(type, FlowSpecification.class);
+				if (flowSpec != null) {
+					isAtomic = false;
+				}
+			}
+		}
+		return isAtomic;
+	}
+
+	public static Map<String, Image> getIcons(FlowPort flowPort) {
+		if (icons == null) {// for PERFORMANCE we call UMLUtil.getStereotype only once
+			Stereotype stereotype = UMLUtil.getStereotype(flowPort);
+			icons = IconUtil.getImages(stereotype);
+		}
+		return icons;
+	}
+
+	@Override
+	public Image getIcon() {
+		Image image = null;
+		if (getBase_Port() != null) {
+			Map<String, Image> iconList = getIcons(this);
+			switch (getDirection()) {
+			case IN:
+				image = iconList.get(getImageKey(FlowDirection.IN));
+				break;
+			case OUT:
+				image = iconList.get(getImageKey(FlowDirection.OUT));
+				break;
+			case INOUT:
+				image = iconList.get(getImageKey(FlowDirection.INOUT));
+				break;
+			default:
+				image = iconList.get(getImageKey(FlowDirection.INOUT));
+				break;
+			}
+		}
+		return image;
+	}
+
+	private String getImageKey(FlowDirection flowDirection) {
+		return FlowPort.class.getSimpleName() + "_" + flowDirection.getName().toUpperCase();//$NON-NLS-1$
+	}
+	
+	@Override
+	public FlowDirection getDirection() {
+		if (getFmiVariable() != null){
+			switch( getFmiVariable().getCausality()){
+			case INPUT:
+				return FlowDirection.IN;
+			case OUTPUT:
+				return FlowDirection.OUT;
+			default:
+				return null;			
+			}
+	}
+		return super.getDirection();
+	}
+}
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src/org/eclipse/papyrus/moka/fmi/profile/custom/CustomFMIProfileFactory.java b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src/org/eclipse/papyrus/moka/fmi/profile/custom/CustomFMIProfileFactory.java
index 78d8115..91cab68 100644
--- a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src/org/eclipse/papyrus/moka/fmi/profile/custom/CustomFMIProfileFactory.java
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src/org/eclipse/papyrus/moka/fmi/profile/custom/CustomFMIProfileFactory.java
@@ -15,6 +15,7 @@
 
 import org.eclipse.papyrus.moka.fmi.fmiprofile.CS_FMU;
 import org.eclipse.papyrus.moka.fmi.fmiprofile.CalculatedParameter;
+import org.eclipse.papyrus.moka.fmi.fmiprofile.FMIPort;
 import org.eclipse.papyrus.moka.fmi.fmiprofile.Independent;
 import org.eclipse.papyrus.moka.fmi.fmiprofile.Local;
 import org.eclipse.papyrus.moka.fmi.fmiprofile.ME_FMU;
@@ -49,6 +50,11 @@
 	}
 	
 	@Override
+	public FMIPort createFMIPort() {
+		return new CustomFMIPort();
+	}
+	
+	@Override
 	public Port createPort() {
 		return new CustomPort();
 	}
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src/org/eclipse/papyrus/moka/fmi/profile/custom/CustomIndependant.java b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src/org/eclipse/papyrus/moka/fmi/profile/custom/CustomIndependant.java
index 4cb1f9b..6eb9340 100644
--- a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src/org/eclipse/papyrus/moka/fmi/profile/custom/CustomIndependant.java
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src/org/eclipse/papyrus/moka/fmi/profile/custom/CustomIndependant.java
@@ -56,9 +56,9 @@
 	}
 
 	@Override
-	public int getValueReference() {
+	public long getValueReference() {
 		if (getFmiVariable() != null){
-			return (int)getFmiVariable().getValueReference();
+			return getFmiVariable().getValueReference();
 		}
 		return super.getValueReference();
 	}
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src/org/eclipse/papyrus/moka/fmi/profile/custom/CustomLocal.java b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src/org/eclipse/papyrus/moka/fmi/profile/custom/CustomLocal.java
index 7300851..3ec8d33 100644
--- a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src/org/eclipse/papyrus/moka/fmi/profile/custom/CustomLocal.java
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src/org/eclipse/papyrus/moka/fmi/profile/custom/CustomLocal.java
@@ -56,9 +56,9 @@
 	}
 
 	@Override
-	public int getValueReference() {
+	public long getValueReference() {
 		if (getFmiVariable() != null){
-			return (int)getFmiVariable().getValueReference();
+			return getFmiVariable().getValueReference();
 		}
 		return super.getValueReference();
 	}
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src/org/eclipse/papyrus/moka/fmi/profile/custom/CustomParameter.java b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src/org/eclipse/papyrus/moka/fmi/profile/custom/CustomParameter.java
index 2f6c57a..5829256 100644
--- a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src/org/eclipse/papyrus/moka/fmi/profile/custom/CustomParameter.java
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src/org/eclipse/papyrus/moka/fmi/profile/custom/CustomParameter.java
@@ -56,9 +56,9 @@
 	}
 
 	@Override
-	public int getValueReference() {
+	public long getValueReference() {
 		if (getFmiVariable() != null){
-			return (int)getFmiVariable().getValueReference();
+			return getFmiVariable().getValueReference();
 		}
 		return super.getValueReference();
 	}
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src/org/eclipse/papyrus/moka/fmi/profile/custom/CustomPort.java b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src/org/eclipse/papyrus/moka/fmi/profile/custom/CustomPort.java
index 0074384..fab8520 100644
--- a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src/org/eclipse/papyrus/moka/fmi/profile/custom/CustomPort.java
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src/org/eclipse/papyrus/moka/fmi/profile/custom/CustomPort.java
@@ -13,29 +13,41 @@
  *****************************************************************************/
 package org.eclipse.papyrus.moka.fmi.profile.custom;
 
+import java.util.Map;
+
 import org.eclipse.papyrus.moka.fmi.fmiprofile.FMIProfileFactory;
 import org.eclipse.papyrus.moka.fmi.fmiprofile.FMIProfilePackage;
-import org.eclipse.papyrus.moka.fmi.fmiprofile.FlowDirection;
 import org.eclipse.papyrus.moka.fmi.fmiprofile.InitialKind;
 import org.eclipse.papyrus.moka.fmi.fmiprofile.VariabilityKind;
+import org.eclipse.papyrus.moka.fmi.fmiprofile.impl.FMIPortImpl;
 import org.eclipse.papyrus.moka.fmi.fmiprofile.impl.PortImpl;
 import org.eclipse.papyrus.moka.fmi.modeldescription.Fmi2ScalarVariable;
 import org.eclipse.papyrus.moka.fmi.profile.util.FMIProfileUtil;
+import org.eclipse.papyrus.sysml14.deprecatedelements.FlowPort;
+import org.eclipse.papyrus.sysml14.deprecatedelements.FlowSpecification;
+import org.eclipse.papyrus.sysml14.internal.util.IconUtil;
+import org.eclipse.papyrus.sysml14.portsandflows.FlowDirection;
+import org.eclipse.uml2.uml.Image;
+import org.eclipse.uml2.uml.Interface;
+import org.eclipse.uml2.uml.Stereotype;
+import org.eclipse.uml2.uml.Type;
+import org.eclipse.uml2.uml.util.UMLUtil;
 
-public class CustomPort extends PortImpl{
+public class CustomPort extends PortImpl {
 
+	private static Map<String, Image> icons;
 
 	@Override
 	public Fmi2ScalarVariable getFmiVariable() {
-		if (fmiVariable != null){
-			return fmiVariable;
-		}else {
-			return FMIProfileUtil.getFMIVariable(base_Property);
+		if (fmiVariable == null) {
+			fmiVariable = FMIProfileUtil.getFMIVariable(base_Port);
 		}
+		return fmiVariable;
 	}
+
 	@Override
 	public String getDescription() {
-		if (getFmiVariable() != null){
+		if (getFmiVariable() != null) {
 			return getFmiVariable().getDescription();
 		}
 		return super.getDescription();
@@ -43,29 +55,83 @@
 
 	@Override
 	public VariabilityKind getVariability() {
-		if (getFmiVariable() != null){
-			return (VariabilityKind) FMIProfileFactory.eINSTANCE.createFromString(FMIProfilePackage.eINSTANCE.getVariabilityKind(), getFmiVariable().getVariability().getLiteral());
+		if (getFmiVariable() != null) {
+			return (VariabilityKind) FMIProfileFactory.eINSTANCE.createFromString(
+					FMIProfilePackage.eINSTANCE.getVariabilityKind(), getFmiVariable().getVariability().getLiteral());
 		}
 		return super.getVariability();
 	}
 
 	@Override
 	public InitialKind getInitial() {
-		if (getFmiVariable() != null){
-			return (InitialKind) FMIProfileFactory.eINSTANCE.createFromString(FMIProfilePackage.eINSTANCE.getInitialKind(), getFmiVariable().getInitial().getLiteral());
+		if (getFmiVariable() != null) {
+			return (InitialKind) FMIProfileFactory.eINSTANCE.createFromString(
+					FMIProfilePackage.eINSTANCE.getInitialKind(), getFmiVariable().getInitial().getLiteral());
 		}
 		return super.getInitial();
 	}
 
 	@Override
-	public int getValueReference() {
-		if (getFmiVariable() != null){
-			return (int)getFmiVariable().getValueReference();
+	public long getValueReference() {
+		if (getFmiVariable() != null) {
+			return  getFmiVariable().getValueReference();
 		}
 		return super.getValueReference();
 	}
 
 	@Override
+	public boolean isAtomic() {
+		boolean isAtomic = true;
+		if (getBase_Port() != null) {
+			// Find FlowPort type
+			Type type = getBase_Port().getType();
+			if ((type != null) && (type instanceof Interface)) {
+				FlowSpecification flowSpec = UMLUtil.getStereotypeApplication(type, FlowSpecification.class);
+				if (flowSpec != null) {
+					isAtomic = false;
+				}
+			}
+		}
+		return isAtomic;
+	}
+
+	public static Map<String, Image> getIcons(FlowPort flowPort) {
+		if (icons == null) {// for PERFORMANCE we call UMLUtil.getStereotype only once
+			Stereotype stereotype = UMLUtil.getStereotype(flowPort);
+			icons = IconUtil.getImages(stereotype);
+		}
+		return icons;
+	}
+
+	@Override
+	public Image getIcon() {
+		Image image = null;
+		if (getBase_Port() != null) {
+			Map<String, Image> iconList = getIcons(this);
+			switch (getDirection()) {
+			case IN:
+				image = iconList.get(getImageKey(FlowDirection.IN));
+				break;
+			case OUT:
+				image = iconList.get(getImageKey(FlowDirection.OUT));
+				break;
+			case INOUT:
+				image = iconList.get(getImageKey(FlowDirection.INOUT));
+				break;
+			default:
+				image = iconList.get(getImageKey(FlowDirection.INOUT));
+				break;
+			}
+		}
+		return image;
+	}
+
+	private String getImageKey(FlowDirection flowDirection) {
+		return FlowPort.class.getSimpleName() + "_" + flowDirection.getName().toUpperCase();//$NON-NLS-1$
+	}
+	
+	
+	@Override
 	public FlowDirection getDirection() {
 		if (getFmiVariable() != null){
 			switch( getFmiVariable().getCausality()){
@@ -79,5 +145,4 @@
 	}
 		return super.getDirection();
 	}
-	
 }
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src/org/eclipse/papyrus/moka/fmi/profile/util/FMIProfileUtil.java b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src/org/eclipse/papyrus/moka/fmi/profile/util/FMIProfileUtil.java
index 3938b91..b0e6db3 100644
--- a/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src/org/eclipse/papyrus/moka/fmi/profile/util/FMIProfileUtil.java
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.fmi.profile/src/org/eclipse/papyrus/moka/fmi/profile/util/FMIProfileUtil.java
@@ -19,18 +19,19 @@
 import java.util.List;
 
 import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
 import org.eclipse.papyrus.moka.fmi.fmiprofile.CS_FMU;
+import org.eclipse.papyrus.moka.fmi.fmiprofile.FMIPort;
 import org.eclipse.papyrus.moka.fmi.fmiprofile.FMIProfilePackage;
 import org.eclipse.papyrus.moka.fmi.fmiprofile.FMU;
-import org.eclipse.papyrus.moka.fmi.fmiprofile.FlowDirection;
 import org.eclipse.papyrus.moka.fmi.fmiprofile.ME_FMU;
-import org.eclipse.papyrus.moka.fmi.fmiprofile.Port;
 import org.eclipse.papyrus.moka.fmi.fmiprofile.ScalarVariable;
 import org.eclipse.papyrus.moka.fmi.modeldescription.Fmi2ScalarVariable;
 import org.eclipse.papyrus.moka.fmi.modeldescription.FmiModelDescriptionType;
+import org.eclipse.papyrus.sysml14.portsandflows.FlowDirection;
 import org.eclipse.uml2.uml.Class;
-import org.eclipse.uml2.uml.Element;
 import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.Port;
 import org.eclipse.uml2.uml.Profile;
 import org.eclipse.uml2.uml.Property;
 import org.eclipse.uml2.uml.Stereotype;
@@ -48,7 +49,7 @@
 	public static final String PARAMETER_STEREO_NAME = FMIProfilePackage.eINSTANCE.getParameter().getName();
 	public static final String LOCAL_STEREO_NAME = FMIProfilePackage.eINSTANCE.getLocal().getName();
 	public static final String INDEPENDENT_STEREO_NAME = FMIProfilePackage.eINSTANCE.getIndependent().getName();
-	public static final String PORT_STEREO_NAME = FMIProfilePackage.eINSTANCE.getPort().getName();
+	public static final String PORT_STEREO_NAME = FMIProfilePackage.eINSTANCE.getFMIPort().getName();
 	public static final String OUTPUT_DEPENDENCY_STEREO_NAME = FMIProfilePackage.eINSTANCE.getOutputDependency()
 			.getName();
 	public static final String DERIVATIVE_DEPENDENCY_STEREO_NAME = FMIProfilePackage.eINSTANCE.getDerivativeDependency()
@@ -72,32 +73,32 @@
 	public static final String INITIAL_UNKNWOWN_STEREO_QUALIFIED_NAME = FMI_PROFILE_NAME + "::"
 			+ INITIAL_UNKNWOWN_STEREO_NAME;
 
-	public static void applyFMIProfileIfNeeded(Package owningPackage) {
-		Profile fmiProfile = getFMIProfile(owningPackage);
+	public static void applyProfileIfNeeded(Package owningPackage, EPackage ePackage) {
+		Profile profile = getProfile(owningPackage, ePackage);
 
 		Iterator<Profile> profileIter = owningPackage.getAllAppliedProfiles().iterator();
 		Profile appliedProfile = null;
-		while (profileIter.hasNext() && (appliedProfile != fmiProfile)) {
+		while (profileIter.hasNext() && (appliedProfile != profile)) {
 			appliedProfile = profileIter.next();
 		}
-		if (appliedProfile != fmiProfile) {
+		if (appliedProfile != profile) {
 			Package rootPackage = owningPackage.getModel();
 			if (rootPackage != null && rootPackage.eResource() == owningPackage.eResource()) {
-				rootPackage.applyProfile(fmiProfile);
+				rootPackage.applyProfile(profile);
 			} else {
-				owningPackage.applyProfile(fmiProfile);
+				owningPackage.applyProfile(profile);
 			}
 		}
 	}
 
-	public static Profile getFMIProfile(EObject context) {
-		return UMLUtil.getProfile(FMIProfilePackage.eINSTANCE, context);
+	public static Profile getProfile(EObject context, EPackage ePackage) {
+		return UMLUtil.getProfile(ePackage, context);
 	}
 
-	public static Stereotype getStereotype(EObject context, String shortName) {
-		Profile fmiProfile = getFMIProfile(context);
-		if (fmiProfile != null) {
-			return fmiProfile.getOwnedStereotype(shortName);
+	public static Stereotype getStereotype(EObject context, String shortName, EPackage ePackage) {
+		Profile profile = getProfile(context, ePackage);
+		if (profile != null) {
+			return profile.getOwnedStereotype(shortName);
 		}
 		return null;
 	}
@@ -143,10 +144,8 @@
 
 	}
 
-	public static int getValueReference(Property fmuPort) { // FIXME should
-															// return a long
-
-		Port fmiPortObj = FastUMLUtil.fastGetStereotypeApplication(fmuPort, Port.class);
+	public static long getValueReference(Property fmuPort) {
+		FMIPort fmiPortObj = FastUMLUtil.fastGetStereotypeApplication(fmuPort, FMIPort.class);
 		if (fmiPortObj != null) {
 			return fmiPortObj.getValueReference();
 		}
@@ -166,16 +165,16 @@
 	}
 
 	public static FlowDirection getDirection(org.eclipse.uml2.uml.Port port) {
-		Port fmiPortObj = FastUMLUtil.fastGetStereotypeApplication(port, Port.class);
+		FMIPort fmiPortObj = FastUMLUtil.fastGetStereotypeApplication(port, FMIPort.class);
 		if (fmiPortObj != null) {
 			return fmiPortObj.getDirection();
 		}
 		return null;
 	}
 
-	public static int computeNewValueReference(Property prop) {
+	public static long computeNewValueReference(Property prop) {
 		Class owningClass = prop.getClass_();
-		List<Integer> valueReferences = new ArrayList<Integer>();
+		List<Long> valueReferences = new ArrayList<Long>();
 		for (Property attr : owningClass.getAllAttributes()) {
 			if (attr != prop) {
 				valueReferences.add(getValueReference(attr));
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/.classpath b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/.classpath
new file mode 100644
index 0000000..e7a4ca0
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src-gen"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/.project b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/.project
new file mode 100644
index 0000000..8174ac7
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.papyrus.moka.ssp.profile</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.python.pydev.PyDevBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<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>
+		<nature>org.python.pydev.pythonNature</nature>
+	</natures>
+</projectDescription>
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/.pydevproject b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/.pydevproject
new file mode 100644
index 0000000..71b285f
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/.pydevproject
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?eclipse-pydev version="1.0"?><pydev_project>
+<pydev_property name="org.python.pydev.PYTHON_PROJECT_VERSION">python interpreter</pydev_property>
+<pydev_property name="org.python.pydev.PYTHON_PROJECT_INTERPRETER">Default</pydev_property>
+</pydev_project>
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/META-INF/MANIFEST.MF b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..e2c3e5e
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/META-INF/MANIFEST.MF
@@ -0,0 +1,31 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.papyrus.moka.ssp.profile;singleton:=true
+Automatic-Module-Name: org.eclipse.papyrus.moka.ssp.profile
+Bundle-Version: 4.0.0.qualifier
+Bundle-ClassPath: .
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Export-Package: org.eclipse.papyrus.moka.ssp.omsimulatorprofile,
+ org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl,
+ org.eclipse.papyrus.moka.ssp.omsimulatorprofile.operations,
+ org.eclipse.papyrus.moka.ssp.omsimulatorprofile.util,
+ org.eclipse.papyrus.moka.ssp.profile,
+ org.eclipse.papyrus.moka.ssp.profile.custom,
+ org.eclipse.papyrus.moka.ssp.profile.custom.imp,
+ org.eclipse.papyrus.moka.ssp.profile.impl,
+ org.eclipse.papyrus.moka.ssp.profile.util
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.emf.ecore;visibility:=reexport,
+ org.eclipse.papyrus.moka.fmi.profile;visibility:=reexport,
+ org.eclipse.uml2.uml.profile.standard;visibility:=reexport,
+ org.eclipse.papyrus.sysml14;visibility:=reexport,
+ org.eclipse.uml2.types;visibility:=reexport,
+ org.eclipse.uml2.uml;visibility:=reexport,
+ org.eclipse.papyrus.moka.fmi;visibility:=reexport,
+ org.eclipse.papyrus.uml.extensionpoints,
+ org.eclipse.papyrus.infra.gmfdiag.common
+Eclipse-LazyStart: true
+Bundle-ActivationPolicy: lazy
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/about.html b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/about.html
new file mode 100644
index 0000000..d35d5ae
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/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>June 5, 2007</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>
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/build.properties b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/build.properties
new file mode 100644
index 0000000..f7cd8a9
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/build.properties
@@ -0,0 +1,11 @@
+#
+
+bin.includes = .,\
+               model/,\
+               META-INF/,\
+               plugin.xml,\
+               plugin.properties
+jars.compile.order = .
+source.. = src/,\
+           src-gen/
+output.. = bin/
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/model/OMSimulator.profile.di b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/model/OMSimulator.profile.di
new file mode 100644
index 0000000..247ed5e
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/model/OMSimulator.profile.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<architecture:ArchitectureDescription xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:architecture="http://www.eclipse.org/papyrus/infra/core/architecture" contextId="org.eclipse.papyrus.uml.architecture.Profile"/>
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/model/OMSimulator.profile.genmodel b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/model/OMSimulator.profile.genmodel
new file mode 100644
index 0000000..ed9c0f3
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/model/OMSimulator.profile.genmodel
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:genmodel="http://www.eclipse.org/uml2/2.2.0/GenModel"
+    copyrightText="Copyright (c) 2018 CEA LIST.&#xA;&#xA; All rights reserved. This program and the accompanying materials&#xA; are made available under the terms of the Eclipse Public License v1.0&#xA; which accompanies this distribution, and is available at&#xA; http://www.eclipse.org/legal/epl-v10.html&#xA;&#xA; Contributors:&#xA;  CEA LIST - Initial API and implementation"
+    modelDirectory="/org.eclipse.papyrus.moka.ssp.profile/src-gen" modelPluginID="org.eclipse.papyrus.moka.ssp.profile"
+    modelName="OMSimulator" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
+    importerID="org.eclipse.uml2.uml.ecore.importer" complianceLevel="8.0" usedGenPackages="../../org.eclipse.emf.ecore/model/Ecore.genmodel#//ecore ../../org.eclipse.uml2.types/model/Types.genmodel#//types ../../org.eclipse.uml2.uml/model/UML.genmodel#//uml"
+    operationReflection="true" importOrganizing="true" eclipsePlatformVersion="Oxygen"
+    operationsFolder="src">
+  <genAnnotations source="http://www.eclipse.org/emf/2002/GenModel/importer/org.eclipse.uml2.uml.ecore.importer">
+    <details key="OPPOSITE_ROLE_NAMES" value="IGNORE"/>
+    <details key="DUPLICATE_FEATURES" value="DISCARD"/>
+    <details key="ANNOTATION_DETAILS" value="PROCESS"/>
+    <details key="PROPERTY_DEFAULT_EXPRESSIONS" value="IGNORE"/>
+    <details key="DUPLICATE_FEATURE_INHERITANCE" value="DISCARD"/>
+    <details key="COMMENTS" value="PROCESS"/>
+    <details key="DERIVED_FEATURES" value="PROCESS"/>
+    <details key="SUPER_CLASS_ORDER" value="PROCESS"/>
+    <details key="DUPLICATE_OPERATION_INHERITANCE" value="DISCARD"/>
+    <details key="REDEFINING_OPERATIONS" value="REPORT"/>
+    <details key="INVARIANT_CONSTRAINTS" value="PROCESS"/>
+    <details key="UNION_PROPERTIES" value="REPORT"/>
+    <details key="DUPLICATE_OPERATIONS" value="DISCARD"/>
+    <details key="NON_API_INVARIANTS" value="IGNORE"/>
+    <details key="CAMEL_CASE_NAMES" value="IGNORE"/>
+    <details key="SUBSETTING_PROPERTIES" value="REPORT"/>
+    <details key="OPERATION_BODIES" value="IGNORE"/>
+    <details key="ECORE_TAGGED_VALUES" value="PROCESS"/>
+    <details key="UNTYPED_PROPERTIES" value="REPORT"/>
+    <details key="REDEFINING_PROPERTIES" value="REPORT"/>
+    <details key="INVOCATION_DELEGATES" value="IGNORE"/>
+    <details key="VALIDATION_DELEGATES" value="IGNORE"/>
+  </genAnnotations>
+  <foreignModel>OMSimulator.profile.uml</foreignModel>
+  <genPackages xsi:type="genmodel:GenPackage" prefix="OMSimulator" basePackage="org.eclipse.papyrus.moka.ssp"
+      disposableProviderFactory="true" ecorePackage="OMSimulatorProfile.ecore#/" operationsPackage="org.eclipse.papyrus.moka.ssp.omsimulatorprofile.operations">
+    <genEnums xsi:type="genmodel:GenEnum" typeSafeEnumCompatible="false" ecoreEnum="OMSimulatorProfile.ecore#//Interpolation">
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="OMSimulatorProfile.ecore#//Interpolation/none"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="OMSimulatorProfile.ecore#//Interpolation/coarsegrained"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="OMSimulatorProfile.ecore#//Interpolation/finegrained"/>
+    </genEnums>
+    <genEnums xsi:type="genmodel:GenEnum" typeSafeEnumCompatible="false" ecoreEnum="OMSimulatorProfile.ecore#//TLMDomain">
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="OMSimulatorProfile.ecore#//TLMDomain/Hydraulic"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="OMSimulatorProfile.ecore#//TLMDomain/Mechanical"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="OMSimulatorProfile.ecore#//TLMDomain/Rotational"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="OMSimulatorProfile.ecore#//TLMDomain/Electric"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="OMSimulatorProfile.ecore#//TLMDomain/input"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="OMSimulatorProfile.ecore#//TLMDomain/output"/>
+    </genEnums>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="OMSimulatorProfile.ecore#//TLMInterfaceDefinition">
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute OMSimulatorProfile.ecore#//TLMInterfaceDefinition/interpolation"/>
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference OMSimulatorProfile.ecore#//TLMInterfaceDefinition/base_Interface"/>
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference OMSimulatorProfile.ecore#//TLMInterfaceDefinition/base_Class"/>
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference OMSimulatorProfile.ecore#//TLMInterfaceDefinition/signalDefinitions"/>
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute OMSimulatorProfile.ecore#//TLMInterfaceDefinition/dimensions"/>
+      <genOperations xsi:type="genmodel:GenOperation" ecoreOperation="OMSimulatorProfile.ecore#//TLMInterfaceDefinition/getSignalDefinitions"/>
+    </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="OMSimulatorProfile.ecore#//TLMSignalDefinition">
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference OMSimulatorProfile.ecore#//TLMSignalDefinition/base_Port"/>
+    </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="OMSimulatorProfile.ecore#//TLMSignal">
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference OMSimulatorProfile.ecore#//TLMSignal/base_Port"/>
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference OMSimulatorProfile.ecore#//TLMSignal/definition"/>
+    </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="OMSimulatorProfile.ecore#//OMSimulatorBus">
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference OMSimulatorProfile.ecore#//OMSimulatorBus/base_Port"/>
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference OMSimulatorProfile.ecore#//OMSimulatorBus/signals"/>
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute OMSimulatorProfile.ecore#//OMSimulatorBus/domain"/>
+    </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="OMSimulatorProfile.ecore#//BusConnectionEnd">
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference OMSimulatorProfile.ecore#//BusConnectionEnd/base_ConnectorEnd"/>
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference OMSimulatorProfile.ecore#//BusConnectionEnd/referencedSignal"/>
+    </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="OMSimulatorProfile.ecore#//TLMConnection">
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute OMSimulatorProfile.ecore#//TLMConnection/timedelay"/>
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute OMSimulatorProfile.ecore#//TLMConnection/impedance"/>
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute OMSimulatorProfile.ecore#//TLMConnection/rotationalimpedance"/>
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute OMSimulatorProfile.ecore#//TLMConnection/alpha"/>
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference OMSimulatorProfile.ecore#//TLMConnection/base_Connector"/>
+    </genClasses>
+  </genPackages>
+</genmodel:GenModel>
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/model/OMSimulator.profile.notation b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/model/OMSimulator.profile.notation
new file mode 100644
index 0000000..7378509
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/model/OMSimulator.profile.notation
@@ -0,0 +1,462 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/gmfdiag/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_zJLsILgtEeizUOX0GlzCzg" type="PapyrusUMLProfileDiagram" name="Profile Diagram" measurementUnit="Pixel">
+  <children xmi:type="notation:Shape" xmi:id="_8BDrwLgtEeizUOX0GlzCzg" type="Stereotype_Shape">
+    <children xmi:type="notation:DecorationNode" xmi:id="_8BNcwLgtEeizUOX0GlzCzg" type="Stereotype_NameLabel"/>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_8BNcwbgtEeizUOX0GlzCzg" type="Stereotype_AttributeCompartment">
+      <children xmi:type="notation:Shape" xmi:id="_99b44LgtEeizUOX0GlzCzg" type="Property_ClassAttributeLabel">
+        <element xmi:type="uml:Property" href="OMSimulator.profile.uml#_99Su8LgtEeizUOX0GlzCzg"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_99b44bgtEeizUOX0GlzCzg"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_QEhaELguEeizUOX0GlzCzg" type="Property_ClassAttributeLabel">
+        <element xmi:type="uml:Property" href="OMSimulator.profile.uml#_QEchkLguEeizUOX0GlzCzg"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_QEhaEbguEeizUOX0GlzCzg"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_TL6BwLguEeizUOX0GlzCzg" type="Property_ClassAttributeLabel">
+        <element xmi:type="uml:Property" href="OMSimulator.profile.uml#_TLzUELguEeizUOX0GlzCzg"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_TL6BwbguEeizUOX0GlzCzg"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_XPhoMLguEeizUOX0GlzCzg" type="Property_ClassAttributeLabel">
+        <element xmi:type="uml:Property" href="OMSimulator.profile.uml#_XPcIoLguEeizUOX0GlzCzg"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_XPhoMbguEeizUOX0GlzCzg"/>
+      </children>
+      <styles xmi:type="notation:TitleStyle" xmi:id="_8BNcwrgtEeizUOX0GlzCzg"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_8BNcw7gtEeizUOX0GlzCzg"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_8BNcxLgtEeizUOX0GlzCzg"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8BNcxbgtEeizUOX0GlzCzg"/>
+    </children>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_8BNcxrgtEeizUOX0GlzCzg" type="Stereotype_OperationCompartment">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_8BNcx7gtEeizUOX0GlzCzg"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_8BNcyLgtEeizUOX0GlzCzg"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_8BNcybgtEeizUOX0GlzCzg"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8BNcyrgtEeizUOX0GlzCzg"/>
+    </children>
+    <element xmi:type="uml:Stereotype" href="OMSimulator.profile.uml#_8A6h0LgtEeizUOX0GlzCzg"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8BDrwbgtEeizUOX0GlzCzg" x="440" y="440" width="241" height="161"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_A48AsbguEeizUOX0GlzCzg" type="Stereotype_Shape">
+    <children xmi:type="notation:DecorationNode" xmi:id="_A48As7guEeizUOX0GlzCzg" type="Stereotype_NameLabel"/>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_A48AtLguEeizUOX0GlzCzg" type="Stereotype_AttributeCompartment">
+      <children xmi:type="notation:Shape" xmi:id="_wKpzkLgvEeizUOX0GlzCzg" type="Property_ClassAttributeLabel">
+        <element xmi:type="uml:Property" href="OMSimulator.profile.uml#_wKVDcLgvEeizUOX0GlzCzg"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_wKpzkbgvEeizUOX0GlzCzg"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_aTrDgOmjEeiRcfn1Mejhlg" type="Property_ClassAttributeLabel">
+        <element xmi:type="uml:Property" href="OMSimulator.profile.uml#_aSibEOmjEeiRcfn1Mejhlg"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_aTrDgemjEeiRcfn1Mejhlg"/>
+      </children>
+      <styles xmi:type="notation:TitleStyle" xmi:id="_A48AtbguEeizUOX0GlzCzg"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_A48AtrguEeizUOX0GlzCzg"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_A48At7guEeizUOX0GlzCzg"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_A48AuLguEeizUOX0GlzCzg"/>
+    </children>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_A48AubguEeizUOX0GlzCzg" type="Stereotype_OperationCompartment">
+      <children xmi:type="notation:Shape" xmi:id="_4LqjwOmfEeiRcfn1Mejhlg" type="Operation_ClassOperationLabel">
+        <element xmi:type="uml:Operation" href="OMSimulator.profile.uml#_4LCRoOmfEeiRcfn1Mejhlg"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_4LqjwemfEeiRcfn1Mejhlg"/>
+      </children>
+      <styles xmi:type="notation:TitleStyle" xmi:id="_A48AurguEeizUOX0GlzCzg"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_A48Au7guEeizUOX0GlzCzg"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_A48AvLguEeizUOX0GlzCzg"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_A48AvbguEeizUOX0GlzCzg"/>
+    </children>
+    <element xmi:type="uml:Stereotype" href="OMSimulator.profile.uml#_A48AsLguEeizUOX0GlzCzg"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_A48AsrguEeizUOX0GlzCzg" x="1443" y="200" width="261" height="161"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_bOfYILguEeizUOX0GlzCzg" type="Enumeration_Shape">
+    <children xmi:type="notation:DecorationNode" xmi:id="_bOfYIrguEeizUOX0GlzCzg" type="Enumeration_NameLabel"/>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_bOf_MLguEeizUOX0GlzCzg" type="Enumeration_LiteralCompartment">
+      <children xmi:type="notation:Shape" xmi:id="_fQi4ULguEeizUOX0GlzCzg" type="EnumerationLiteral_LiteralLabel">
+        <element xmi:type="uml:EnumerationLiteral" href="OMSimulator.profile.uml#_fCzXQLguEeizUOX0GlzCzg"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_fQi4UbguEeizUOX0GlzCzg"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_iZoJILguEeizUOX0GlzCzg" type="EnumerationLiteral_LiteralLabel">
+        <element xmi:type="uml:EnumerationLiteral" href="OMSimulator.profile.uml#_iZeYILguEeizUOX0GlzCzg"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_iZoJIbguEeizUOX0GlzCzg"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_jwue8LguEeizUOX0GlzCzg" type="EnumerationLiteral_LiteralLabel">
+        <element xmi:type="uml:EnumerationLiteral" href="OMSimulator.profile.uml#_jwhDkLguEeizUOX0GlzCzg"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_jwue8bguEeizUOX0GlzCzg"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_m64GwLguEeizUOX0GlzCzg" type="EnumerationLiteral_LiteralLabel">
+        <element xmi:type="uml:EnumerationLiteral" href="OMSimulator.profile.uml#_m6xZELguEeizUOX0GlzCzg"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_m64GwbguEeizUOX0GlzCzg"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ukKlYOmcEeiRcfn1Mejhlg" type="EnumerationLiteral_LiteralLabel">
+        <element xmi:type="uml:EnumerationLiteral" href="OMSimulator.profile.uml#_ujWGAOmcEeiRcfn1Mejhlg"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_ukKlYemcEeiRcfn1Mejhlg"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_vdL4EOmcEeiRcfn1Mejhlg" type="EnumerationLiteral_LiteralLabel">
+        <element xmi:type="uml:EnumerationLiteral" href="OMSimulator.profile.uml#_vcmCMOmcEeiRcfn1Mejhlg"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_vdL4EemcEeiRcfn1Mejhlg"/>
+      </children>
+      <styles xmi:type="notation:TitleStyle" xmi:id="_bOf_MbguEeizUOX0GlzCzg"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_bOf_MrguEeizUOX0GlzCzg"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_bOf_M7guEeizUOX0GlzCzg"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bOf_NLguEeizUOX0GlzCzg"/>
+    </children>
+    <element xmi:type="uml:Enumeration" href="OMSimulator.profile.uml#_bObtwLguEeizUOX0GlzCzg"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bOfYIbguEeizUOX0GlzCzg" x="1180" y="400" width="301" height="161"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_WphisLgvEeizUOX0GlzCzg" type="Enumeration_Shape">
+    <children xmi:type="notation:DecorationNode" xmi:id="_WphisrgvEeizUOX0GlzCzg" type="Enumeration_NameLabel"/>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_WpiJwLgvEeizUOX0GlzCzg" type="Enumeration_LiteralCompartment">
+      <children xmi:type="notation:Shape" xmi:id="_Z0cmkLgvEeizUOX0GlzCzg" type="EnumerationLiteral_LiteralLabel">
+        <element xmi:type="uml:EnumerationLiteral" href="OMSimulator.profile.uml#_Z0VR0LgvEeizUOX0GlzCzg"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_Z0cmkbgvEeizUOX0GlzCzg"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_f5AxELgvEeizUOX0GlzCzg" type="EnumerationLiteral_LiteralLabel">
+        <element xmi:type="uml:EnumerationLiteral" href="OMSimulator.profile.uml#_f4qy0LgvEeizUOX0GlzCzg"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_f5AxEbgvEeizUOX0GlzCzg"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_tdUqoLgvEeizUOX0GlzCzg" type="EnumerationLiteral_LiteralLabel">
+        <element xmi:type="uml:EnumerationLiteral" href="OMSimulator.profile.uml#_YN3DQLgvEeizUOX0GlzCzg"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_tdUqobgvEeizUOX0GlzCzg"/>
+      </children>
+      <styles xmi:type="notation:TitleStyle" xmi:id="_WpiJwbgvEeizUOX0GlzCzg"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_WpiJwrgvEeizUOX0GlzCzg"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_WpiJw7gvEeizUOX0GlzCzg"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WpiJxLgvEeizUOX0GlzCzg"/>
+    </children>
+    <element xmi:type="uml:Enumeration" href="OMSimulator.profile.uml#_Wpg7oLgvEeizUOX0GlzCzg"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WphisbgvEeizUOX0GlzCzg" x="1540" y="400" width="201" height="101"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_07wyJbgvEeizUOX0GlzCzg" type="Class_MetaclassShape">
+    <children xmi:type="notation:DecorationNode" xmi:id="_07wyJ7gvEeizUOX0GlzCzg" type="Class_MetaclassNameLabel"/>
+    <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Connector"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_07wyKLgvEeizUOX0GlzCzg" x="500" y="320"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_08XPE7gvEeizUOX0GlzCzg" type="StereotypeComment">
+    <styles xmi:type="notation:TitleStyle" xmi:id="_08XPFLgvEeizUOX0GlzCzg"/>
+    <styles xmi:type="notation:EObjectValueStyle" xmi:id="_08XPFrgvEeizUOX0GlzCzg" name="BASE_ELEMENT">
+      <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Connector"/>
+    </styles>
+    <element xsi:nil="true"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_08XPFbgvEeizUOX0GlzCzg" x="720" y="200"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="__qWlcMVZEeiLVbFVoMGQrQ" type="Class_MetaclassShape">
+    <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__qYaoMVZEeiLVbFVoMGQrQ" source="Stereotype_Annotation">
+      <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__qZBsMVZEeiLVbFVoMGQrQ" key="StereotypeWithQualifiedNameList" value=""/>
+      <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__qZBscVZEeiLVbFVoMGQrQ" key="StereotypeList" value="StandardProfile::Metaclass"/>
+      <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__qZBssVZEeiLVbFVoMGQrQ" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+      <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__qZBs8VZEeiLVbFVoMGQrQ" key="PropStereoDisplay" value=""/>
+      <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__qZBtMVZEeiLVbFVoMGQrQ" key="StereotypePropertyLocation" value="Compartment"/>
+    </eAnnotations>
+    <children xmi:type="notation:DecorationNode" xmi:id="__qXzkMVZEeiLVbFVoMGQrQ" type="Class_MetaclassNameLabel"/>
+    <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Port"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="__qXzkcVZEeiLVbFVoMGQrQ" x="820" y="60"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="__qyDQMVZEeiLVbFVoMGQrQ" type="StereotypeComment">
+    <styles xmi:type="notation:TitleStyle" xmi:id="__qyDQcVZEeiLVbFVoMGQrQ"/>
+    <styles xmi:type="notation:EObjectValueStyle" xmi:id="__qyqUMVZEeiLVbFVoMGQrQ" name="BASE_ELEMENT">
+      <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Port"/>
+    </styles>
+    <element xsi:nil="true"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="__qyDQsVZEeiLVbFVoMGQrQ" x="1320" y="160"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_DwWKcMVaEeiLVbFVoMGQrQ" type="Stereotype_Shape">
+    <children xmi:type="notation:DecorationNode" xmi:id="_DwWKcsVaEeiLVbFVoMGQrQ" type="Stereotype_NameLabel"/>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_DwWKc8VaEeiLVbFVoMGQrQ" type="Stereotype_AttributeCompartment">
+      <children xmi:type="notation:Shape" xmi:id="_pNzN8MVbEeiLVbFVoMGQrQ" type="Property_ClassAttributeLabel">
+        <element xmi:type="uml:Property" href="OMSimulator.profile.uml#_pNXJEMVbEeiLVbFVoMGQrQ"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_pNzN8cVbEeiLVbFVoMGQrQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_n01NkLguEeizUOX0GlzCzg" type="Property_ClassAttributeLabel">
+        <element xmi:type="uml:Property" href="OMSimulator.profile.uml#_n0uf4LguEeizUOX0GlzCzg"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_n01NkbguEeizUOX0GlzCzg"/>
+      </children>
+      <styles xmi:type="notation:TitleStyle" xmi:id="_DwWKdMVaEeiLVbFVoMGQrQ"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_DwWKdcVaEeiLVbFVoMGQrQ"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_DwWKdsVaEeiLVbFVoMGQrQ"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DwWKd8VaEeiLVbFVoMGQrQ"/>
+    </children>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_DwWKeMVaEeiLVbFVoMGQrQ" type="Stereotype_OperationCompartment">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_DwWKecVaEeiLVbFVoMGQrQ"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_DwWKesVaEeiLVbFVoMGQrQ"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_DwWKe8VaEeiLVbFVoMGQrQ"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DwWKfMVaEeiLVbFVoMGQrQ"/>
+    </children>
+    <element xmi:type="uml:Stereotype" href="OMSimulator.profile.uml#_DwNAgMVaEeiLVbFVoMGQrQ"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DwWKccVaEeiLVbFVoMGQrQ" x="660" y="180" width="221" height="101"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_xI4DkcVaEeiLVbFVoMGQrQ" type="Stereotype_Shape">
+    <children xmi:type="notation:DecorationNode" xmi:id="_xI4Dk8VaEeiLVbFVoMGQrQ" type="Stereotype_NameLabel"/>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_xI4DlMVaEeiLVbFVoMGQrQ" type="Stereotype_AttributeCompartment">
+      <children xmi:type="notation:Shape" xmi:id="_KA7iQMVbEeiLVbFVoMGQrQ" type="Property_ClassAttributeLabel">
+        <element xmi:type="uml:Property" href="OMSimulator.profile.uml#_KAonUMVbEeiLVbFVoMGQrQ"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_KA7iQcVbEeiLVbFVoMGQrQ"/>
+      </children>
+      <styles xmi:type="notation:TitleStyle" xmi:id="_xI4DlcVaEeiLVbFVoMGQrQ"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_xI4DlsVaEeiLVbFVoMGQrQ"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_xI4Dl8VaEeiLVbFVoMGQrQ"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xI4DmMVaEeiLVbFVoMGQrQ"/>
+    </children>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_xI4DmcVaEeiLVbFVoMGQrQ" type="Stereotype_OperationCompartment">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_xI4DmsVaEeiLVbFVoMGQrQ"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_xI4Dm8VaEeiLVbFVoMGQrQ"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_xI4DnMVaEeiLVbFVoMGQrQ"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xI4DncVaEeiLVbFVoMGQrQ"/>
+    </children>
+    <element xmi:type="uml:Stereotype" href="OMSimulator.profile.uml#_xI4DkMVaEeiLVbFVoMGQrQ"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xI4DksVaEeiLVbFVoMGQrQ" x="780" y="500" width="181" height="141"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="__3fNEMVaEeiLVbFVoMGQrQ" type="Class_MetaclassShape">
+    <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="__3fNFMVaEeiLVbFVoMGQrQ" source="Stereotype_Annotation">
+      <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__3fNFcVaEeiLVbFVoMGQrQ" key="StereotypeWithQualifiedNameList" value=""/>
+      <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__3fNFsVaEeiLVbFVoMGQrQ" key="StereotypeList" value="StandardProfile::Metaclass"/>
+      <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__3fNF8VaEeiLVbFVoMGQrQ" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+      <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__3fNGMVaEeiLVbFVoMGQrQ" key="PropStereoDisplay" value=""/>
+      <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="__3fNGcVaEeiLVbFVoMGQrQ" key="StereotypePropertyLocation" value="Compartment"/>
+    </eAnnotations>
+    <children xmi:type="notation:DecorationNode" xmi:id="__3fNEsVaEeiLVbFVoMGQrQ" type="Class_MetaclassNameLabel"/>
+    <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#ConnectorEnd"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="__3fNE8VaEeiLVbFVoMGQrQ" x="820" y="380"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="__3oXCsVaEeiLVbFVoMGQrQ" type="StereotypeComment">
+    <styles xmi:type="notation:TitleStyle" xmi:id="__3oXC8VaEeiLVbFVoMGQrQ"/>
+    <styles xmi:type="notation:EObjectValueStyle" xmi:id="__3oXDcVaEeiLVbFVoMGQrQ" name="BASE_ELEMENT">
+      <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#ConnectorEnd"/>
+    </styles>
+    <element xsi:nil="true"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="__3oXDMVaEeiLVbFVoMGQrQ" x="760" y="40"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_4T2nEcVbEeiLVbFVoMGQrQ" type="Stereotype_Shape">
+    <children xmi:type="notation:DecorationNode" xmi:id="_4T_xAMVbEeiLVbFVoMGQrQ" type="Stereotype_NameLabel"/>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_4T_xAcVbEeiLVbFVoMGQrQ" type="Stereotype_AttributeCompartment">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_4T_xAsVbEeiLVbFVoMGQrQ"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_4T_xA8VbEeiLVbFVoMGQrQ"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_4T_xBMVbEeiLVbFVoMGQrQ"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4T_xBcVbEeiLVbFVoMGQrQ"/>
+    </children>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_4T_xBsVbEeiLVbFVoMGQrQ" type="Stereotype_OperationCompartment">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_4T_xB8VbEeiLVbFVoMGQrQ"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_4T_xCMVbEeiLVbFVoMGQrQ"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_4T_xCcVbEeiLVbFVoMGQrQ"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4T_xCsVbEeiLVbFVoMGQrQ"/>
+    </children>
+    <element xmi:type="uml:Stereotype" href="OMSimulator.profile.uml#_4T2nEMVbEeiLVbFVoMGQrQ"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4T2nEsVbEeiLVbFVoMGQrQ" x="900" y="180" width="161" height="101"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_I9FqMMVcEeiLVbFVoMGQrQ" type="Comment_Shape">
+    <children xmi:type="notation:DecorationNode" xmi:id="_I9FqMsVcEeiLVbFVoMGQrQ" type="Comment_BodyLabel"/>
+    <element xmi:type="uml:Comment" href="OMSimulator.profile.uml#_I8yvQMVcEeiLVbFVoMGQrQ"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_I9FqMcVcEeiLVbFVoMGQrQ" x="1620" y="60" width="341"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_gmGi4cVcEeiLVbFVoMGQrQ" type="Comment_Shape">
+    <children xmi:type="notation:DecorationNode" xmi:id="_gmGi48VcEeiLVbFVoMGQrQ" type="Comment_BodyLabel"/>
+    <element xmi:type="uml:Comment" href="OMSimulator.profile.uml#_gmGi4MVcEeiLVbFVoMGQrQ"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gmGi4sVcEeiLVbFVoMGQrQ" x="1000" y="-20" width="181" height="81"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_6OzbYcVcEeiLVbFVoMGQrQ" type="Comment_Shape">
+    <children xmi:type="notation:DecorationNode" xmi:id="_6OzbY8VcEeiLVbFVoMGQrQ" type="Comment_BodyLabel"/>
+    <element xmi:type="uml:Comment" href="OMSimulator.profile.uml#_6OzbYMVcEeiLVbFVoMGQrQ"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6OzbYsVcEeiLVbFVoMGQrQ" x="640" y="20" width="141" height="101"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_a4XHgcVdEeiLVbFVoMGQrQ" type="Comment_Shape">
+    <children xmi:type="notation:DecorationNode" xmi:id="_a4XHg8VdEeiLVbFVoMGQrQ" type="Comment_BodyLabel"/>
+    <element xmi:type="uml:Comment" href="OMSimulator.profile.uml#_a4XHgMVdEeiLVbFVoMGQrQ"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_a4XHgsVdEeiLVbFVoMGQrQ" x="980" y="300" width="181" height="81"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_6JxJ0OmMEeiRcfn1Mejhlg" type="Class_MetaclassShape">
+    <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6J2pYOmMEeiRcfn1Mejhlg" source="Stereotype_Annotation">
+      <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6J2pYemMEeiRcfn1Mejhlg" key="StereotypeWithQualifiedNameList" value=""/>
+      <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6J2pYumMEeiRcfn1Mejhlg" key="StereotypeList" value="StandardProfile::Metaclass"/>
+      <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6J2pY-mMEeiRcfn1Mejhlg" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+      <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6J2pZOmMEeiRcfn1Mejhlg" key="PropStereoDisplay" value=""/>
+      <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_6J2pZemMEeiRcfn1Mejhlg" key="StereotypePropertyLocation" value="Compartment"/>
+    </eAnnotations>
+    <children xmi:type="notation:DecorationNode" xmi:id="_6J1bQOmMEeiRcfn1Mejhlg" type="Class_MetaclassNameLabel"/>
+    <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6J1bQemMEeiRcfn1Mejhlg" x="1500" y="80"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_6KQ5EOmMEeiRcfn1Mejhlg" type="StereotypeComment">
+    <styles xmi:type="notation:TitleStyle" xmi:id="_6KQ5EemMEeiRcfn1Mejhlg"/>
+    <styles xmi:type="notation:EObjectValueStyle" xmi:id="_6KRgIOmMEeiRcfn1Mejhlg" name="BASE_ELEMENT">
+      <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+    </styles>
+    <element xsi:nil="true"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6KQ5EumMEeiRcfn1Mejhlg" x="1500" y="60"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_AsWA0OmfEeiRcfn1Mejhlg" type="Stereotype_Shape">
+    <children xmi:type="notation:DecorationNode" xmi:id="_AsWn4OmfEeiRcfn1Mejhlg" type="Stereotype_NameLabel"/>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_AsXO8OmfEeiRcfn1Mejhlg" type="Stereotype_AttributeCompartment">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_AsXO8emfEeiRcfn1Mejhlg"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_AsXO8umfEeiRcfn1Mejhlg"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_AsXO8-mfEeiRcfn1Mejhlg"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AsXO9OmfEeiRcfn1Mejhlg"/>
+    </children>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_AsXO9emfEeiRcfn1Mejhlg" type="Stereotype_OperationCompartment">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_AsXO9umfEeiRcfn1Mejhlg"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_AsXO9-mfEeiRcfn1Mejhlg"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_AsXO-OmfEeiRcfn1Mejhlg"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AsXO-emfEeiRcfn1Mejhlg"/>
+    </children>
+    <element xmi:type="uml:Stereotype" href="OMSimulator.profile.uml#_AsULoOmfEeiRcfn1Mejhlg"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AsWA0emfEeiRcfn1Mejhlg" x="1140" y="180" width="181" height="101"/>
+  </children>
+  <styles xmi:type="notation:StringValueStyle" xmi:id="_zJLsIbgtEeizUOX0GlzCzg" name="diagram_compatibility_version" stringValue="1.4.0"/>
+  <styles xmi:type="notation:DiagramStyle" xmi:id="_zJLsIrgtEeizUOX0GlzCzg"/>
+  <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_zJLsI7gtEeizUOX0GlzCzg" diagramKindId="org.eclipse.papyrus.uml.diagram.profile">
+    <owner xmi:type="uml:Profile" href="OMSimulator.profile.uml#_zIAAYLgtEeizUOX0GlzCzg"/>
+  </styles>
+  <element xmi:type="uml:Profile" href="OMSimulator.profile.uml#_zIAAYLgtEeizUOX0GlzCzg"/>
+  <edges xmi:type="notation:Connector" xmi:id="_08XPF7gvEeizUOX0GlzCzg" type="StereotypeCommentLink" source="_07wyJbgvEeizUOX0GlzCzg" target="_08XPE7gvEeizUOX0GlzCzg">
+    <styles xmi:type="notation:FontStyle" xmi:id="_08XPGLgvEeizUOX0GlzCzg"/>
+    <styles xmi:type="notation:EObjectValueStyle" xmi:id="_08XPHLgvEeizUOX0GlzCzg" name="BASE_ELEMENT">
+      <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Connector"/>
+    </styles>
+    <element xsi:nil="true"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_08XPGbgvEeizUOX0GlzCzg" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_08XPGrgvEeizUOX0GlzCzg"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_08XPG7gvEeizUOX0GlzCzg"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_2AOf0LgvEeizUOX0GlzCzg" type="Extension_Edge" source="_8BDrwLgtEeizUOX0GlzCzg" target="_07wyJbgvEeizUOX0GlzCzg">
+    <styles xmi:type="notation:FontStyle" xmi:id="_2AOf0bgvEeizUOX0GlzCzg"/>
+    <element xmi:type="uml:Extension" href="OMSimulator.profile.uml#_1_pRALgvEeizUOX0GlzCzg"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_2AOf0rgvEeizUOX0GlzCzg" points="[840, 480, -643984, -643984]$[860, 410, -643984, -643984]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2A3ZALgvEeizUOX0GlzCzg" id="(0.4149377593360996,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2A3ZAbgvEeizUOX0GlzCzg" id="(0.4,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="__qzRYMVZEeiLVbFVoMGQrQ" type="StereotypeCommentLink" source="__qWlcMVZEeiLVbFVoMGQrQ" target="__qyDQMVZEeiLVbFVoMGQrQ">
+    <styles xmi:type="notation:FontStyle" xmi:id="__qzRYcVZEeiLVbFVoMGQrQ"/>
+    <styles xmi:type="notation:EObjectValueStyle" xmi:id="__qzRZcVZEeiLVbFVoMGQrQ" name="BASE_ELEMENT">
+      <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Port"/>
+    </styles>
+    <element xsi:nil="true"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="__qzRYsVZEeiLVbFVoMGQrQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="__qzRY8VZEeiLVbFVoMGQrQ"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="__qzRZMVZEeiLVbFVoMGQrQ"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_lvJLMMVaEeiLVbFVoMGQrQ" type="Extension_Edge" source="_DwWKcMVaEeiLVbFVoMGQrQ" target="__qWlcMVZEeiLVbFVoMGQrQ">
+    <styles xmi:type="notation:FontStyle" xmi:id="_lvJLMcVaEeiLVbFVoMGQrQ"/>
+    <element xmi:type="uml:Extension" href="OMSimulator.profile.uml#_lusfQMVaEeiLVbFVoMGQrQ"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_lvJLMsVaEeiLVbFVoMGQrQ" points="[1140, 220, -643984, -643984]$[1160, 130, -643984, -643984]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_lvcGIMVaEeiLVbFVoMGQrQ" id="(0.6334841628959276,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_lvcGIcVaEeiLVbFVoMGQrQ" id="(0.4,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="__3oXDsVaEeiLVbFVoMGQrQ" type="StereotypeCommentLink" source="__3fNEMVaEeiLVbFVoMGQrQ" target="__3oXCsVaEeiLVbFVoMGQrQ">
+    <styles xmi:type="notation:FontStyle" xmi:id="__3oXD8VaEeiLVbFVoMGQrQ"/>
+    <styles xmi:type="notation:EObjectValueStyle" xmi:id="__3oXE8VaEeiLVbFVoMGQrQ" name="BASE_ELEMENT">
+      <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#ConnectorEnd"/>
+    </styles>
+    <element xsi:nil="true"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="__3oXEMVaEeiLVbFVoMGQrQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="__3oXEcVaEeiLVbFVoMGQrQ"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="__3oXEsVaEeiLVbFVoMGQrQ"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_A5mxYMVbEeiLVbFVoMGQrQ" type="Extension_Edge" source="_xI4DkcVaEeiLVbFVoMGQrQ" target="__3fNEMVaEeiLVbFVoMGQrQ">
+    <styles xmi:type="notation:FontStyle" xmi:id="_A5mxYcVbEeiLVbFVoMGQrQ"/>
+    <element xmi:type="uml:Extension" href="OMSimulator.profile.uml#_A5KsgMVbEeiLVbFVoMGQrQ"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_A5mxYsVbEeiLVbFVoMGQrQ" points="[880, 500, -643984, -643984]$[880, 430, -643984, -643984]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_A6WYQMVbEeiLVbFVoMGQrQ" id="(0.5524861878453039,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_A6WYQcVbEeiLVbFVoMGQrQ" id="(0.6,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_6bdz0MVbEeiLVbFVoMGQrQ" type="Extension_Edge" source="_4T2nEcVbEeiLVbFVoMGQrQ" target="__qWlcMVZEeiLVbFVoMGQrQ">
+    <styles xmi:type="notation:FontStyle" xmi:id="_6bdz0cVbEeiLVbFVoMGQrQ"/>
+    <element xmi:type="uml:Extension" href="OMSimulator.profile.uml#_6auM8MVbEeiLVbFVoMGQrQ"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_6bdz0sVbEeiLVbFVoMGQrQ" points="[1040, 180, -643984, -643984]$[900, 110, -643984, -643984]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_6dP8gMVbEeiLVbFVoMGQrQ" id="(0.2484472049689441,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_6dP8gcVbEeiLVbFVoMGQrQ" id="(0.8,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_cX8gYMVcEeiLVbFVoMGQrQ" type="Comment_AnnotatedElementEdge" source="_I9FqMMVcEeiLVbFVoMGQrQ" target="_A48AsbguEeizUOX0GlzCzg">
+    <styles xmi:type="notation:FontStyle" xmi:id="_cX8gYcVcEeiLVbFVoMGQrQ"/>
+    <element xsi:nil="true"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_cX8gYsVcEeiLVbFVoMGQrQ" points="[1460, 162, -643984, -643984]$[1420, 200, -643984, -643984]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cYiWQMVcEeiLVbFVoMGQrQ" id="(0.11730205278592376,1.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cYiWQcVcEeiLVbFVoMGQrQ" id="(0.8314176245210728,0.0)"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_zaOwQMVcEeiLVbFVoMGQrQ" type="Comment_AnnotatedElementEdge" source="_gmGi4cVcEeiLVbFVoMGQrQ" target="_4T2nEcVbEeiLVbFVoMGQrQ">
+    <styles xmi:type="notation:FontStyle" xmi:id="_zaOwQcVcEeiLVbFVoMGQrQ"/>
+    <element xsi:nil="true"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_zaOwQsVcEeiLVbFVoMGQrQ" points="[1080, 157, -643984, -643984]$[1080, 180, -643984, -643984]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_za1NMMVcEeiLVbFVoMGQrQ" id="(0.4419889502762431,1.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_za1NMcVcEeiLVbFVoMGQrQ" id="(0.7453416149068323,0.0)"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_QZps8MVdEeiLVbFVoMGQrQ" type="Comment_AnnotatedElementEdge" source="_6OzbYcVcEeiLVbFVoMGQrQ" target="_DwWKcMVaEeiLVbFVoMGQrQ">
+    <styles xmi:type="notation:FontStyle" xmi:id="_QZps8cVdEeiLVbFVoMGQrQ"/>
+    <element xsi:nil="true"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QZps8sVdEeiLVbFVoMGQrQ" points="[720, 152, -643984, -643984]$[760, 180, -643984, -643984]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QaZT0MVdEeiLVbFVoMGQrQ" id="(0.5673758865248227,1.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QaZT0cVdEeiLVbFVoMGQrQ" id="(0.5429864253393665,0.0)"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_4Lo0UMVdEeiLVbFVoMGQrQ" type="Comment_AnnotatedElementEdge" source="_a4XHgcVdEeiLVbFVoMGQrQ" target="_xI4DkcVaEeiLVbFVoMGQrQ">
+    <styles xmi:type="notation:FontStyle" xmi:id="_4Lo0UcVdEeiLVbFVoMGQrQ"/>
+    <element xsi:nil="true"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_4Lo0UsVdEeiLVbFVoMGQrQ" points="[1000, 477, -643984, -643984]$[920, 500, -643984, -643984]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_4M1HIMVdEeiLVbFVoMGQrQ" id="(0.11049723756906077,1.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_4M1HIcVdEeiLVbFVoMGQrQ" id="(0.7734806629834254,0.0)"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_6KSHMOmMEeiRcfn1Mejhlg" type="StereotypeCommentLink" source="_6JxJ0OmMEeiRcfn1Mejhlg" target="_6KQ5EOmMEeiRcfn1Mejhlg">
+    <styles xmi:type="notation:FontStyle" xmi:id="_6KSHMemMEeiRcfn1Mejhlg"/>
+    <styles xmi:type="notation:EObjectValueStyle" xmi:id="_6KTVUOmMEeiRcfn1Mejhlg" name="BASE_ELEMENT">
+      <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+    </styles>
+    <element xsi:nil="true"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_6KSHMumMEeiRcfn1Mejhlg" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_6KSuQOmMEeiRcfn1Mejhlg"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_6KSuQemMEeiRcfn1Mejhlg"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_7STfMOmMEeiRcfn1Mejhlg" type="Extension_Edge" source="_A48AsbguEeizUOX0GlzCzg" target="_6JxJ0OmMEeiRcfn1Mejhlg">
+    <styles xmi:type="notation:FontStyle" xmi:id="_7STfMemMEeiRcfn1Mejhlg"/>
+    <element xmi:type="uml:Extension" href="OMSimulator.profile.uml#_7QC1YOmMEeiRcfn1Mejhlg"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_7STfMumMEeiRcfn1Mejhlg" points="[1320, 200, -643984, -643984]$[1320, 110, -643984, -643984]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7UAIUOmMEeiRcfn1Mejhlg" id="(0.4482758620689655,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7UAIUemMEeiRcfn1Mejhlg" id="(0.6,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_DUP3MOmfEeiRcfn1Mejhlg" type="Extension_Edge" source="_AsWA0OmfEeiRcfn1Mejhlg" target="__qWlcMVZEeiLVbFVoMGQrQ">
+    <styles xmi:type="notation:FontStyle" xmi:id="_DUP3MemfEeiRcfn1Mejhlg"/>
+    <element xmi:type="uml:Extension" href="OMSimulator.profile.uml#_DT21oOmfEeiRcfn1Mejhlg"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_DUP3MumfEeiRcfn1Mejhlg" points="[1260, 180, -643984, -643984]$[920, 80, -643984, -643984]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_DVBTQOmfEeiRcfn1Mejhlg" id="(0.6629834254143646,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_DVBTQemfEeiRcfn1Mejhlg" id="(1.0,0.4)"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_dM4pIOmfEeiRcfn1Mejhlg" type="Association_Edge" source="_4T2nEcVbEeiLVbFVoMGQrQ" target="_AsWA0OmfEeiRcfn1Mejhlg">
+    <children xmi:type="notation:DecorationNode" xmi:id="_dM4pI-mfEeiRcfn1Mejhlg" type="Association_StereotypeLabel">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_dM4pJOmfEeiRcfn1Mejhlg" y="60"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_dM5QMOmfEeiRcfn1Mejhlg" type="Association_NameLabel">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_dM5QMemfEeiRcfn1Mejhlg" y="20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_dM5QMumfEeiRcfn1Mejhlg" type="Association_TargetRoleLabel">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_dM5QM-mfEeiRcfn1Mejhlg" x="-16" y="27"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_dM5QNOmfEeiRcfn1Mejhlg" visible="false" type="Association_SourceRoleLabel">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_dM5QNemfEeiRcfn1Mejhlg" y="-20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_dM5QNumfEeiRcfn1Mejhlg" visible="false" type="Association_SourceMultiplicityLabel">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_dM5QN-mfEeiRcfn1Mejhlg" y="20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_dM5QOOmfEeiRcfn1Mejhlg" type="Association_TargetMultiplicityLabel">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_dM5QOemfEeiRcfn1Mejhlg" y="-20"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_dM4pIemfEeiRcfn1Mejhlg"/>
+    <element xmi:type="uml:Association" href="OMSimulator.profile.uml#_dMK3cOmfEeiRcfn1Mejhlg"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_dM4pIumfEeiRcfn1Mejhlg" points="[1061, 220, -643984, -643984]$[1140, 220, -643984, -643984]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dN2ScOmfEeiRcfn1Mejhlg" id="(1.0,0.39603960396039606)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dN25gOmfEeiRcfn1Mejhlg" id="(0.0,0.39603960396039606)"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_i0TkoOmfEeiRcfn1Mejhlg" type="Association_Edge" source="_A48AsbguEeizUOX0GlzCzg" target="_AsWA0OmfEeiRcfn1Mejhlg">
+    <children xmi:type="notation:DecorationNode" xmi:id="_i0Tko-mfEeiRcfn1Mejhlg" type="Association_StereotypeLabel">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_i0TkpOmfEeiRcfn1Mejhlg" y="60"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_i0TkpemfEeiRcfn1Mejhlg" type="Association_NameLabel">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_i0ULsOmfEeiRcfn1Mejhlg" y="20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_i0ULsemfEeiRcfn1Mejhlg" type="Association_TargetRoleLabel">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_i0ULsumfEeiRcfn1Mejhlg" x="-15" y="13"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_i0ULs-mfEeiRcfn1Mejhlg" visible="false" type="Association_SourceRoleLabel">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_i0ULtOmfEeiRcfn1Mejhlg" x="-19" y="-47"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_i0ULtemfEeiRcfn1Mejhlg" visible="false" type="Association_SourceMultiplicityLabel">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_i0ULtumfEeiRcfn1Mejhlg" y="20"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_i0ULt-mfEeiRcfn1Mejhlg" type="Association_TargetMultiplicityLabel">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_i0ULuOmfEeiRcfn1Mejhlg" y="-20"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_i0TkoemfEeiRcfn1Mejhlg"/>
+    <element xmi:type="uml:Association" href="OMSimulator.profile.uml#_iztuwOmfEeiRcfn1Mejhlg"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_i0TkoumfEeiRcfn1Mejhlg" points="[1443, 220, -643984, -643984]$[1321, 220, -643984, -643984]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_i3k7EOmfEeiRcfn1Mejhlg" id="(0.0,0.12422360248447205)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_i3k7EemfEeiRcfn1Mejhlg" id="(1.0,0.39603960396039606)"/>
+  </edges>
+</notation:Diagram>
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/model/OMSimulator.profile.uml b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/model/OMSimulator.profile.uml
new file mode 100644
index 0000000..31fce04
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/model/OMSimulator.profile.uml
@@ -0,0 +1,184 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:Ecore="http://www.eclipse.org/uml2/schemas/Ecore/5" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/uml2/schemas/Ecore/5 pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA">
+  <uml:Profile xmi:id="_zIAAYLgtEeizUOX0GlzCzg" name="OMSimulatorProfile" metaclassReference="_07maELgvEeizUOX0GlzCzg _07tu0LgvEeizUOX0GlzCzg __qTiIMVZEeiLVbFVoMGQrQ __3VcEMVaEeiLVbFVoMGQrQ _6JuGgOmMEeiRcfn1Mejhlg">
+    <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6PFF4bgvEeizUOX0GlzCzg" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
+    <ownedComment xmi:type="uml:Comment" xmi:id="_I8yvQMVcEeiLVbFVoMGQrQ" annotatedElement="_A48AsLguEeizUOX0GlzCzg">
+      <body>TLMInterface will be used to defined all the predefined TLM physical types supported by OMSimulator.&#xD;
+More particularly, each TLM interface will have to list all the corresponding signals an FMU must own.&#xD;
+Each signal will be defined with a SysML flowport.&#xD;
+</body>
+    </ownedComment>
+    <ownedComment xmi:type="uml:Comment" xmi:id="_gmGi4MVcEeiLVbFVoMGQrQ" annotatedElement="_4T2nEMVbEeiLVbFVoMGQrQ">
+      <body>A TLMSignal will be an additional annotation put on each FMU ports implementing TLM predefined signal, which will be referenced with its &quot;definition&quot; attribute.</body>
+    </ownedComment>
+    <ownedComment xmi:type="uml:Comment" xmi:id="_6OzbYMVcEeiLVbFVoMGQrQ" annotatedElement="_DwNAgMVaEeiLVbFVoMGQrQ">
+      <body>OMSimulatorBus is a new kind of Port which can be added to FMU Blocks. Those ports can reference other Flowports belonging to the owning FMU.</body>
+    </ownedComment>
+    <ownedComment xmi:type="uml:Comment" xmi:id="_a4XHgMVdEeiLVbFVoMGQrQ" annotatedElement="_xI4DkMVaEeiLVbFVoMGQrQ">
+      <body>BusConnectionEnd is a stereotype that has to be applied on the corresponding connectorEnd of an UML connector, when connected to an OMSimulatorBus port.&#xD;
+The &quot;referencedSignals&quot; attribute shoud be a subset of the OMSimulatorBus::signals attribute.&#xD;
+</body>
+    </ownedComment>
+    <elementImport xmi:type="uml:ElementImport" xmi:id="_07maELgvEeizUOX0GlzCzg" alias="Interface">
+      <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Interface"/>
+    </elementImport>
+    <elementImport xmi:type="uml:ElementImport" xmi:id="_07tu0LgvEeizUOX0GlzCzg" alias="Connector">
+      <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Connector"/>
+    </elementImport>
+    <elementImport xmi:type="uml:ElementImport" xmi:id="__qTiIMVZEeiLVbFVoMGQrQ" alias="Port">
+      <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Port"/>
+    </elementImport>
+    <elementImport xmi:type="uml:ElementImport" xmi:id="__3VcEMVaEeiLVbFVoMGQrQ" alias="ConnectorEnd">
+      <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#ConnectorEnd"/>
+    </elementImport>
+    <elementImport xmi:type="uml:ElementImport" xmi:id="_6JuGgOmMEeiRcfn1Mejhlg" alias="Class">
+      <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+    </elementImport>
+    <packageImport xmi:type="uml:PackageImport" xmi:id="_zSjDgLgtEeizUOX0GlzCzg">
+      <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
+    </packageImport>
+    <packageImport xmi:type="uml:PackageImport" xmi:id="_zSjqkLgtEeizUOX0GlzCzg">
+      <importedPackage xmi:type="uml:Model" href="pathmap://UML_METAMODELS/UML.metamodel.uml#_0"/>
+    </packageImport>
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_8A6h0LgtEeizUOX0GlzCzg" name="TLMConnection">
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_99Su8LgtEeizUOX0GlzCzg" name="time delay">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_QEchkLguEeizUOX0GlzCzg" name="impedance">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_RlT3YLguEeizUOX0GlzCzg"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Rlk9ILguEeizUOX0GlzCzg" value="1"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_TLzUELguEeizUOX0GlzCzg" name="rotational impedance">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_WG6aULguEeizUOX0GlzCzg"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_WHN8ULguEeizUOX0GlzCzg" value="1"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_XPcIoLguEeizUOX0GlzCzg" name="alpha">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Yl-dwLguEeizUOX0GlzCzg"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_YmXfULguEeizUOX0GlzCzg" value="1"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_1_ya8LgvEeizUOX0GlzCzg" name="base_Connector" association="_1_pRALgvEeizUOX0GlzCzg">
+        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Connector"/>
+      </ownedAttribute>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_A48AsLguEeizUOX0GlzCzg" name="TLMInterfaceDefinition">
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_wKVDcLgvEeizUOX0GlzCzg" name="interpolation" type="_Wpg7oLgvEeizUOX0GlzCzg"/>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_2ZNAgLgvEeizUOX0GlzCzg" name="base_Interface" association="_2ZMZcLgvEeizUOX0GlzCzg">
+        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Interface"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_7QHG0OmMEeiRcfn1Mejhlg" name="base_Class" association="_7QC1YOmMEeiRcfn1Mejhlg">
+        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_izuV0umfEeiRcfn1Mejhlg" name="signalDefinitions" type="_AsULoOmfEeiRcfn1Mejhlg" isDerived="true" association="_iztuwOmfEeiRcfn1Mejhlg">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_lfpwkOmfEeiRcfn1Mejhlg" value="1"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_lgNxQOmfEeiRcfn1Mejhlg" value="*"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_aSibEOmjEeiRcfn1Mejhlg" name="dimensions" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+      </ownedAttribute>
+      <ownedOperation xmi:type="uml:Operation" xmi:id="_4LCRoOmfEeiRcfn1Mejhlg" name="getSignalDefinitions">
+        <ownedParameter xmi:type="uml:Parameter" xmi:id="_Y33ewOmhEeiRcfn1Mejhlg" name="result" type="_AsULoOmfEeiRcfn1Mejhlg" direction="return">
+          <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_msrScOmhEeiRcfn1Mejhlg"/>
+          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_mtVZwOmhEeiRcfn1Mejhlg" value="*"/>
+        </ownedParameter>
+      </ownedOperation>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Enumeration" xmi:id="_bObtwLguEeizUOX0GlzCzg" name="TLMDomain">
+      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_fCzXQLguEeizUOX0GlzCzg" name="Hydraulic"/>
+      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_iZeYILguEeizUOX0GlzCzg" name="Mechanical"/>
+      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_jwhDkLguEeizUOX0GlzCzg" name="Rotational"/>
+      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_m6xZELguEeizUOX0GlzCzg" name="Electric"/>
+      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_ujWGAOmcEeiRcfn1Mejhlg" name="input"/>
+      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_vcmCMOmcEeiRcfn1Mejhlg" name="output"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Enumeration" xmi:id="_Wpg7oLgvEeizUOX0GlzCzg" name="Interpolation">
+      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_Z0VR0LgvEeizUOX0GlzCzg" name="none"/>
+      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_f4qy0LgvEeizUOX0GlzCzg" name="coarsegrained"/>
+      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_YN3DQLgvEeizUOX0GlzCzg" name="finegrained"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Extension" xmi:id="_1_pRALgvEeizUOX0GlzCzg" name="E_TLMConnection_Connector10" memberEnd="_1_xz4LgvEeizUOX0GlzCzg _1_ya8LgvEeizUOX0GlzCzg">
+      <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_1_xz4LgvEeizUOX0GlzCzg" name="extension_TLMConnection" type="_8A6h0LgtEeizUOX0GlzCzg" aggregation="composite" association="_1_pRALgvEeizUOX0GlzCzg"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Extension" xmi:id="_2ZMZcLgvEeizUOX0GlzCzg" name="E_TLMInterface_Interface11" memberEnd="_2ZMZcbgvEeizUOX0GlzCzg _2ZNAgLgvEeizUOX0GlzCzg">
+      <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_2ZMZcbgvEeizUOX0GlzCzg" name="extension_TLMInterface" type="_A48AsLguEeizUOX0GlzCzg" aggregation="composite" association="_2ZMZcLgvEeizUOX0GlzCzg"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_DwNAgMVaEeiLVbFVoMGQrQ" name="OMSimulatorBus">
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_lu1pMcVaEeiLVbFVoMGQrQ" name="base_Port" association="_lusfQMVaEeiLVbFVoMGQrQ">
+        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Port"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_pNXJEMVbEeiLVbFVoMGQrQ" name="signals">
+        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Port"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_t9OKcMVbEeiLVbFVoMGQrQ"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_t90AUMVbEeiLVbFVoMGQrQ" value="*"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_n0uf4LguEeizUOX0GlzCzg" name="domain" type="_bObtwLguEeizUOX0GlzCzg">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_9EUmsOmdEeiRcfn1Mejhlg"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_9E2yMOmdEeiRcfn1Mejhlg" value="*"/>
+      </ownedAttribute>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Extension" xmi:id="_lusfQMVaEeiLVbFVoMGQrQ" name="E_OMSimulatorBus_Port15" memberEnd="_lu1pMMVaEeiLVbFVoMGQrQ _lu1pMcVaEeiLVbFVoMGQrQ">
+      <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_lu1pMMVaEeiLVbFVoMGQrQ" name="extension_OMSimulatorBus" type="_DwNAgMVaEeiLVbFVoMGQrQ" aggregation="composite" association="_lusfQMVaEeiLVbFVoMGQrQ"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_xI4DkMVaEeiLVbFVoMGQrQ" name="BusConnectionEnd">
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_A5T2ccVbEeiLVbFVoMGQrQ" name="base_ConnectorEnd" association="_A5KsgMVbEeiLVbFVoMGQrQ">
+        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#ConnectorEnd"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_KAonUMVbEeiLVbFVoMGQrQ" name="referencedSignal">
+        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Port"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Y8eCkMVdEeiLVbFVoMGQrQ"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Y8w9gMVdEeiLVbFVoMGQrQ" value="*"/>
+      </ownedAttribute>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Extension" xmi:id="_A5KsgMVbEeiLVbFVoMGQrQ" name="E_BusConnectionEnd_ConnectorEnd18" memberEnd="_A5T2cMVbEeiLVbFVoMGQrQ _A5T2ccVbEeiLVbFVoMGQrQ">
+      <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_A5T2cMVbEeiLVbFVoMGQrQ" name="extension_BusConnectionEnd" type="_xI4DkMVaEeiLVbFVoMGQrQ" aggregation="composite" association="_A5KsgMVbEeiLVbFVoMGQrQ"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_4T2nEMVbEeiLVbFVoMGQrQ" name="TLMSignal">
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_6auM8sVbEeiLVbFVoMGQrQ" name="base_Port" association="_6auM8MVbEeiLVbFVoMGQrQ">
+        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Port"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_dMTaUOmfEeiRcfn1Mejhlg" name="definition" type="_AsULoOmfEeiRcfn1Mejhlg" association="_dMK3cOmfEeiRcfn1Mejhlg"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Extension" xmi:id="_6auM8MVbEeiLVbFVoMGQrQ" name="E_TLMSignal_Port20" memberEnd="_6auM8cVbEeiLVbFVoMGQrQ _6auM8sVbEeiLVbFVoMGQrQ">
+      <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_6auM8cVbEeiLVbFVoMGQrQ" name="extension_TLMSignal" type="_4T2nEMVbEeiLVbFVoMGQrQ" aggregation="composite" association="_6auM8MVbEeiLVbFVoMGQrQ"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Extension" xmi:id="_7QC1YOmMEeiRcfn1Mejhlg" name="E_TLMInterfaceDefinition_Class1" memberEnd="_7QGfwOmMEeiRcfn1Mejhlg _7QHG0OmMEeiRcfn1Mejhlg">
+      <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_7QGfwOmMEeiRcfn1Mejhlg" name="extension_TLMInterfaceDefinition" type="_A48AsLguEeizUOX0GlzCzg" aggregation="composite" association="_7QC1YOmMEeiRcfn1Mejhlg"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_AsULoOmfEeiRcfn1Mejhlg" name="TLMSignalDefinition">
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_DT3csemfEeiRcfn1Mejhlg" name="base_Port" association="_DT21oOmfEeiRcfn1Mejhlg">
+        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Port"/>
+      </ownedAttribute>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Extension" xmi:id="_DT21oOmfEeiRcfn1Mejhlg" name="E_TLMSignalDefinition_Port29" memberEnd="_DT3csOmfEeiRcfn1Mejhlg _DT3csemfEeiRcfn1Mejhlg">
+      <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_DT3csOmfEeiRcfn1Mejhlg" name="extension_TLMSignalDefinition" type="_AsULoOmfEeiRcfn1Mejhlg" aggregation="composite" association="_DT21oOmfEeiRcfn1Mejhlg"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Association" xmi:id="_dMK3cOmfEeiRcfn1Mejhlg" memberEnd="_dMTaUOmfEeiRcfn1Mejhlg _dMUocOmfEeiRcfn1Mejhlg">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dMQ-EOmfEeiRcfn1Mejhlg" source="org.eclipse.papyrus">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_dMRlIOmfEeiRcfn1Mejhlg" key="nature" value="UML_Nature"/>
+      </eAnnotations>
+      <ownedEnd xmi:type="uml:Property" xmi:id="_dMUocOmfEeiRcfn1Mejhlg" name="tlmsignal" type="_4T2nEMVbEeiLVbFVoMGQrQ" association="_dMK3cOmfEeiRcfn1Mejhlg"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Association" xmi:id="_iztuwOmfEeiRcfn1Mejhlg" memberEnd="_izuV0umfEeiRcfn1Mejhlg _izu84OmfEeiRcfn1Mejhlg">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_izuV0OmfEeiRcfn1Mejhlg" source="org.eclipse.papyrus">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_izuV0emfEeiRcfn1Mejhlg" key="nature" value="UML_Nature"/>
+      </eAnnotations>
+      <ownedEnd xmi:type="uml:Property" xmi:id="_izu84OmfEeiRcfn1Mejhlg" name="tlminterfacedefinition" type="_A48AsLguEeizUOX0GlzCzg" association="_iztuwOmfEeiRcfn1Mejhlg"/>
+    </packagedElement>
+    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_TifVwLguEeizUOX0GlzCzg">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_TijAILguEeizUOX0GlzCzg" source="http://www.eclipse.org/uml2/2.0.0/UML">
+        <references xmi:type="ecore:EPackage" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ"/>
+      </eAnnotations>
+      <appliedProfile xmi:type="uml:Profile" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#ActionLanguage"/>
+    </profileApplication>
+    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_PtjQ0OmMEeiRcfn1Mejhlg">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Ptp-gOmMEeiRcfn1Mejhlg" source="http://www.eclipse.org/uml2/2.0.0/UML">
+        <references xmi:type="ecore:EPackage" href="pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA"/>
+      </eAnnotations>
+      <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_PROFILES/Ecore.profile.uml#_0"/>
+    </profileApplication>
+  </uml:Profile>
+  <Ecore:EPackage xmi:id="_VEhgEOmNEeiRcfn1Mejhlg" base_Package="_zIAAYLgtEeizUOX0GlzCzg" packageName="omsimulatorprofile" nsPrefix="omsim" nsURI="http://www.eclipse.org/papyrus/OMSimulatorProfile/1.0.0" basePackage="org.eclipse.papyrus.moka.ssp" prefix="OMSimulator"/>
+  <Ecore:EOperation xmi:id="_70azIOmfEeiRcfn1Mejhlg" base_Operation="_4LCRoOmfEeiRcfn1Mejhlg" visibility="None"/>
+</xmi:XMI>
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/model/OMSimulatorProfile.ecore b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/model/OMSimulatorProfile.ecore
new file mode 100644
index 0000000..b3d5693
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/model/OMSimulatorProfile.ecore
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="omsimulatorprofile" nsURI="http://www.eclipse.org/papyrus/OMSimulatorProfile/1.0.0"
+    nsPrefix="omsim">
+  <eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
+    <details key="originalName" value="OMSimulatorProfile"/>
+  </eAnnotations>
+  <eClassifiers xsi:type="ecore:EClass" name="TLMInterfaceDefinition">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="TLMInterface will be used to defined all the predefined TLM physical types supported by OMSimulator.&#xD;&#xA;More particularly, each TLM interface will have to list all the corresponding signals an FMU must own.&#xD;&#xA;Each signal will be defined with a SysML flowport.&#xD;&#xA;"/>
+    </eAnnotations>
+    <eOperations name="getSignalDefinitions" ordered="false" upperBound="-1" eType="#//TLMSignalDefinition">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="suppressedVisibility" value="true"/>
+      </eAnnotations>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="interpolation" ordered="false"
+        lowerBound="1" eType="#//Interpolation"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="base_Interface" ordered="false"
+        lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Interface"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="base_Class" ordered="false"
+        lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="signalDefinitions" ordered="false"
+        lowerBound="1" upperBound="-1" eType="#//TLMSignalDefinition" volatile="true"
+        transient="true" derived="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="dimensions" ordered="false"
+        lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Integer"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EEnum" name="Interpolation">
+    <eLiterals name="none"/>
+    <eLiterals name="coarsegrained" value="1"/>
+    <eLiterals name="finegrained" value="2"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="TLMSignalDefinition">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="base_Port" ordered="false"
+        lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Port"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="TLMSignal">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="A TLMSignal will be an additional annotation put on each FMU ports implementing TLM predefined signal, which will be referenced with its &quot;definition&quot; attribute."/>
+    </eAnnotations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="base_Port" ordered="false"
+        lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Port"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="definition" ordered="false"
+        lowerBound="1" eType="#//TLMSignalDefinition"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="OMSimulatorBus">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="OMSimulatorBus is a new kind of Port which can be added to FMU Blocks. Those ports can reference other Flowports belonging to the owning FMU."/>
+    </eAnnotations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="base_Port" ordered="false"
+        lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Port"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="signals" ordered="false"
+        upperBound="-1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Port"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="domain" ordered="false"
+        upperBound="-1" eType="#//TLMDomain"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EEnum" name="TLMDomain">
+    <eLiterals name="Hydraulic"/>
+    <eLiterals name="Mechanical" value="1"/>
+    <eLiterals name="Rotational" value="2"/>
+    <eLiterals name="Electric" value="3"/>
+    <eLiterals name="input" value="4"/>
+    <eLiterals name="output" value="5"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="BusConnectionEnd">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="documentation" value="BusConnectionEnd is a stereotype that has to be applied on the corresponding connectorEnd of an UML connector, when connected to an OMSimulatorBus port.&#xD;&#xA;The &quot;referencedSignals&quot; attribute shoud be a subset of the OMSimulatorBus::signals attribute.&#xD;&#xA;"/>
+    </eAnnotations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="base_ConnectorEnd" ordered="false"
+        lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//ConnectorEnd"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="referencedSignal" ordered="false"
+        upperBound="-1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Port"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="TLMConnection">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="timedelay" ordered="false"
+        lowerBound="1" eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Real">
+      <eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
+        <details key="originalName" value="time delay"/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="impedance" ordered="false"
+        eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Real"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="rotationalimpedance" ordered="false"
+        eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Real">
+      <eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
+        <details key="originalName" value="rotational impedance"/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="alpha" ordered="false"
+        eType="ecore:EDataType ../../org.eclipse.uml2.types/model/Types.ecore#//Real"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="base_Connector" ordered="false"
+        lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Connector"/>
+  </eClassifiers>
+</ecore:EPackage>
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/model/TLMLibrary.di b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/model/TLMLibrary.di
new file mode 100644
index 0000000..f784d67
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/model/TLMLibrary.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<architecture:ArchitectureDescription xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:architecture="http://www.eclipse.org/papyrus/infra/core/architecture" contextId="org.eclipse.papyrus.sysml.architecture.SysML14"/>
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/model/TLMLibrary.notation b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/model/TLMLibrary.notation
new file mode 100644
index 0000000..aee61ab
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/model/TLMLibrary.notation
@@ -0,0 +1,2595 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/gmfdiag/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_bM5pYINMEeiqldnwmu4azQ" type="PapyrusUMLClassDiagram" name="Library Structure" measurementUnit="Pixel">
+  <children xmi:type="notation:Shape" xmi:id="_UVyWgOmoEeiCH-LqDzrXtQ" type="Class_Shape">
+    <children xmi:type="notation:DecorationNode" xmi:id="_UV98sOmoEeiCH-LqDzrXtQ" type="Class_NameLabel"/>
+    <children xmi:type="notation:DecorationNode" xmi:id="_UV-jwOmoEeiCH-LqDzrXtQ" type="Class_FloatingNameLabel">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_UV-jwemoEeiCH-LqDzrXtQ" y="5"/>
+    </children>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_UV_K0OmoEeiCH-LqDzrXtQ" type="Class_AttributeCompartment">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_UV_K0emoEeiCH-LqDzrXtQ"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_UV_K0umoEeiCH-LqDzrXtQ"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_UV_K0-moEeiCH-LqDzrXtQ"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UV_K1OmoEeiCH-LqDzrXtQ"/>
+    </children>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_UV_K1emoEeiCH-LqDzrXtQ" visible="false" type="Class_OperationCompartment">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_UV_K1umoEeiCH-LqDzrXtQ"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_UV_K1-moEeiCH-LqDzrXtQ"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_UV_K2OmoEeiCH-LqDzrXtQ"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UV_K2emoEeiCH-LqDzrXtQ"/>
+    </children>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_UV_K2umoEeiCH-LqDzrXtQ" type="Class_NestedClassifierCompartment">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_UV_K2-moEeiCH-LqDzrXtQ"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_UV_K3OmoEeiCH-LqDzrXtQ"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_UV_K3emoEeiCH-LqDzrXtQ"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UV_K3umoEeiCH-LqDzrXtQ"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_UZ4zYOmoEeiCH-LqDzrXtQ" type="StereotypeLabel">
+      <styles xmi:type="notation:StringValueStyle" xmi:id="_UZ4zYemoEeiCH-LqDzrXtQ" name="stereotype" stringValue="SysML::PortsAndFlows::InterfaceBlock"/>
+      <element xmi:type="uml:Stereotype" href="pathmap://SysML14_PROFILES/SysML.profile.uml#SysML.package_packagedElement_Ports_u0026Flows.stereotype_packagedElement_InterfaceBlock"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UZ4zYumoEeiCH-LqDzrXtQ"/>
+    </children>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_UZ5acOmoEeiCH-LqDzrXtQ" type="StereotypeBrace">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_UZ5acemoEeiCH-LqDzrXtQ"/>
+      <styles xmi:type="notation:StringValueStyle" xmi:id="_UZ5acumoEeiCH-LqDzrXtQ" name="stereotype" stringValue="SysML::PortsAndFlows::InterfaceBlock"/>
+      <element xmi:type="uml:Stereotype" href="pathmap://SysML14_PROFILES/SysML.profile.uml#SysML.package_packagedElement_Ports_u0026Flows.stereotype_packagedElement_InterfaceBlock"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UZ5ac-moEeiCH-LqDzrXtQ"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_UZ7PoumoEeiCH-LqDzrXtQ" type="StereotypeLabel">
+      <styles xmi:type="notation:StringValueStyle" xmi:id="_UZ7Po-moEeiCH-LqDzrXtQ" name="stereotype" stringValue="OMSimulatorProfile::TLMInterfaceDefinition"/>
+      <element xmi:type="uml:Stereotype" href="pathmap://PAPYRUS_SSP_PROFILE/OMSimulator.profile.uml#_A48AsLguEeizUOX0GlzCzg"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UZ7PpOmoEeiCH-LqDzrXtQ"/>
+    </children>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_UZ7PpemoEeiCH-LqDzrXtQ" type="StereotypeBrace">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_UZ7PpumoEeiCH-LqDzrXtQ"/>
+      <styles xmi:type="notation:StringValueStyle" xmi:id="_UZ7Pp-moEeiCH-LqDzrXtQ" name="stereotype" stringValue="OMSimulatorProfile::TLMInterfaceDefinition"/>
+      <element xmi:type="uml:Stereotype" href="pathmap://PAPYRUS_SSP_PROFILE/OMSimulator.profile.uml#_A48AsLguEeizUOX0GlzCzg"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UZ7PqOmoEeiCH-LqDzrXtQ"/>
+    </children>
+    <children xmi:type="notation:Compartment" xmi:id="_UaGOwOmoEeiCH-LqDzrXtQ" type="Flow Ports">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Y4UGgOmoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Y4VUoOmoEeiCH-LqDzrXtQ" key="visible" value="true"/>
+      </eAnnotations>
+      <children xmi:type="notation:Shape" xmi:id="_Zq2WsOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Zq3k0OmoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zq3k0emoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zq3k0umoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zq3k0-moEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zq3k1OmoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zq3k1emoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zq4L4OmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IL2wQOmoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Zq2WsemoEeiCH-LqDzrXtQ"/>
+      </children>
+    </children>
+    <children xmi:type="notation:Compartment" xmi:id="_UaHc4OmoEeiCH-LqDzrXtQ" type="constraints"/>
+    <children xmi:type="notation:Compartment" xmi:id="_UaHc4emoEeiCH-LqDzrXtQ" type="Parts"/>
+    <children xmi:type="notation:Compartment" xmi:id="_UaID8OmoEeiCH-LqDzrXtQ" type="Proxy Ports"/>
+    <children xmi:type="notation:Compartment" xmi:id="_UaID8emoEeiCH-LqDzrXtQ" type="Full Ports"/>
+    <children xmi:type="notation:Compartment" xmi:id="_UaID8umoEeiCH-LqDzrXtQ" type="References"/>
+    <children xmi:type="notation:Compartment" xmi:id="_UaIrAOmoEeiCH-LqDzrXtQ" type="Flow Properties"/>
+    <children xmi:type="notation:Compartment" xmi:id="_UaIrAemoEeiCH-LqDzrXtQ" type="Parameters"/>
+    <element xmi:type="uml:Class" href="TLMLibrary.uml#_IIBZIOmoEeiCH-LqDzrXtQ"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UVyWgemoEeiCH-LqDzrXtQ" x="40" y="40"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_UaM8cOmoEeiCH-LqDzrXtQ" type="StereotypeComment">
+    <styles xmi:type="notation:TitleStyle" xmi:id="_UaM8cemoEeiCH-LqDzrXtQ"/>
+    <styles xmi:type="notation:EObjectValueStyle" xmi:id="_UaNjgOmoEeiCH-LqDzrXtQ" name="BASE_ELEMENT">
+      <eObjectValue xmi:type="uml:Class" href="TLMLibrary.uml#_IIBZIOmoEeiCH-LqDzrXtQ"/>
+    </styles>
+    <element xsi:nil="true"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UaM8cumoEeiCH-LqDzrXtQ" x="200"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_Ubk1cOmoEeiCH-LqDzrXtQ" type="Class_Shape">
+    <children xmi:type="notation:DecorationNode" xmi:id="_UblcgOmoEeiCH-LqDzrXtQ" type="Class_NameLabel"/>
+    <children xmi:type="notation:DecorationNode" xmi:id="_UblcgemoEeiCH-LqDzrXtQ" type="Class_FloatingNameLabel">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_UblcgumoEeiCH-LqDzrXtQ" y="5"/>
+    </children>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_Ublcg-moEeiCH-LqDzrXtQ" type="Class_AttributeCompartment">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_UblchOmoEeiCH-LqDzrXtQ"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_UblchemoEeiCH-LqDzrXtQ"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_UblchumoEeiCH-LqDzrXtQ"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ublch-moEeiCH-LqDzrXtQ"/>
+    </children>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_UblciOmoEeiCH-LqDzrXtQ" visible="false" type="Class_OperationCompartment">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_UblciemoEeiCH-LqDzrXtQ"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_UblciumoEeiCH-LqDzrXtQ"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_Ublci-moEeiCH-LqDzrXtQ"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UblcjOmoEeiCH-LqDzrXtQ"/>
+    </children>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_UblcjemoEeiCH-LqDzrXtQ" type="Class_NestedClassifierCompartment">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_UblcjumoEeiCH-LqDzrXtQ"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_Ublcj-moEeiCH-LqDzrXtQ"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_UblckOmoEeiCH-LqDzrXtQ"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UblckemoEeiCH-LqDzrXtQ"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_Ubv0kOmoEeiCH-LqDzrXtQ" type="StereotypeLabel">
+      <styles xmi:type="notation:StringValueStyle" xmi:id="_Ubv0kemoEeiCH-LqDzrXtQ" name="stereotype" stringValue="SysML::PortsAndFlows::InterfaceBlock"/>
+      <element xmi:type="uml:Stereotype" href="pathmap://SysML14_PROFILES/SysML.profile.uml#SysML.package_packagedElement_Ports_u0026Flows.stereotype_packagedElement_InterfaceBlock"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ubv0kumoEeiCH-LqDzrXtQ"/>
+    </children>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_Ubv0k-moEeiCH-LqDzrXtQ" type="StereotypeBrace">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_Ubv0lOmoEeiCH-LqDzrXtQ"/>
+      <styles xmi:type="notation:StringValueStyle" xmi:id="_Ubv0lemoEeiCH-LqDzrXtQ" name="stereotype" stringValue="SysML::PortsAndFlows::InterfaceBlock"/>
+      <element xmi:type="uml:Stereotype" href="pathmap://SysML14_PROFILES/SysML.profile.uml#SysML.package_packagedElement_Ports_u0026Flows.stereotype_packagedElement_InterfaceBlock"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ubv0lumoEeiCH-LqDzrXtQ"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_UbwboOmoEeiCH-LqDzrXtQ" type="StereotypeLabel">
+      <styles xmi:type="notation:StringValueStyle" xmi:id="_UbwboemoEeiCH-LqDzrXtQ" name="stereotype" stringValue="OMSimulatorProfile::TLMInterfaceDefinition"/>
+      <element xmi:type="uml:Stereotype" href="pathmap://PAPYRUS_SSP_PROFILE/OMSimulator.profile.uml#_A48AsLguEeizUOX0GlzCzg"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UbwboumoEeiCH-LqDzrXtQ"/>
+    </children>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_Ubwbo-moEeiCH-LqDzrXtQ" type="StereotypeBrace">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_UbwbpOmoEeiCH-LqDzrXtQ"/>
+      <styles xmi:type="notation:StringValueStyle" xmi:id="_UbwbpemoEeiCH-LqDzrXtQ" name="stereotype" stringValue="OMSimulatorProfile::TLMInterfaceDefinition"/>
+      <element xmi:type="uml:Stereotype" href="pathmap://PAPYRUS_SSP_PROFILE/OMSimulator.profile.uml#_A48AsLguEeizUOX0GlzCzg"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UbwbpumoEeiCH-LqDzrXtQ"/>
+    </children>
+    <children xmi:type="notation:Compartment" xmi:id="_UbxCsOmoEeiCH-LqDzrXtQ" type="Flow Ports">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Y4V7sOmoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Y4V7semoEeiCH-LqDzrXtQ" key="visible" value="true"/>
+      </eAnnotations>
+      <children xmi:type="notation:Shape" xmi:id="_Zq4L4emoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Zq4y8OmoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zq4y8emoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zq4y8umoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zq4y8-moEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zq4y9OmoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zq4y9emoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zq4y9umoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IMUqUOmoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Zq4L4umoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_Zq5aAOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Zq5aAumoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zq6BEOmoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zq6BEemoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zq6BEumoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zq6BE-moEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zq6BFOmoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zq6BFemoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IMWfgemoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Zq5aAemoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_Zq6oIOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Zq7PMOmoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zq72QOmoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zq8dUOmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zq8dUemoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zq8dUumoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zq8dU-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zq8dVOmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IMXtoemoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Zq6oIemoEeiCH-LqDzrXtQ"/>
+      </children>
+    </children>
+    <children xmi:type="notation:Compartment" xmi:id="_UbxCsemoEeiCH-LqDzrXtQ" type="constraints"/>
+    <children xmi:type="notation:Compartment" xmi:id="_UbxpwOmoEeiCH-LqDzrXtQ" type="Parts"/>
+    <children xmi:type="notation:Compartment" xmi:id="_UbxpwemoEeiCH-LqDzrXtQ" type="Proxy Ports"/>
+    <children xmi:type="notation:Compartment" xmi:id="_UbxpwumoEeiCH-LqDzrXtQ" type="Full Ports"/>
+    <children xmi:type="notation:Compartment" xmi:id="_UbyQ0OmoEeiCH-LqDzrXtQ" type="References"/>
+    <children xmi:type="notation:Compartment" xmi:id="_UbyQ0emoEeiCH-LqDzrXtQ" type="Flow Properties"/>
+    <children xmi:type="notation:Compartment" xmi:id="_Ubze8OmoEeiCH-LqDzrXtQ" type="Parameters"/>
+    <element xmi:type="uml:Class" href="TLMLibrary.uml#_IMQY4OmoEeiCH-LqDzrXtQ"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ubk1cemoEeiCH-LqDzrXtQ" x="400" y="40"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_Ub0GA-moEeiCH-LqDzrXtQ" type="StereotypeComment">
+    <styles xmi:type="notation:TitleStyle" xmi:id="_Ub0GBOmoEeiCH-LqDzrXtQ"/>
+    <styles xmi:type="notation:EObjectValueStyle" xmi:id="_Ub0GBumoEeiCH-LqDzrXtQ" name="BASE_ELEMENT">
+      <eObjectValue xmi:type="uml:Class" href="TLMLibrary.uml#_IMQY4OmoEeiCH-LqDzrXtQ"/>
+    </styles>
+    <element xsi:nil="true"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ub0GBemoEeiCH-LqDzrXtQ" x="200"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_Uctd4OmoEeiCH-LqDzrXtQ" type="Class_Shape">
+    <children xmi:type="notation:DecorationNode" xmi:id="_UcuE8OmoEeiCH-LqDzrXtQ" type="Class_NameLabel"/>
+    <children xmi:type="notation:DecorationNode" xmi:id="_UcuE8emoEeiCH-LqDzrXtQ" type="Class_FloatingNameLabel">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_UcuE8umoEeiCH-LqDzrXtQ" y="5"/>
+    </children>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_UcuE8-moEeiCH-LqDzrXtQ" type="Class_AttributeCompartment">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_UcuE9OmoEeiCH-LqDzrXtQ"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_UcuE9emoEeiCH-LqDzrXtQ"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_UcuE9umoEeiCH-LqDzrXtQ"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UcuE9-moEeiCH-LqDzrXtQ"/>
+    </children>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_UcuE-OmoEeiCH-LqDzrXtQ" visible="false" type="Class_OperationCompartment">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_UcuE-emoEeiCH-LqDzrXtQ"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_UcuE-umoEeiCH-LqDzrXtQ"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_UcuE--moEeiCH-LqDzrXtQ"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UcuE_OmoEeiCH-LqDzrXtQ"/>
+    </children>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_UcuE_emoEeiCH-LqDzrXtQ" type="Class_NestedClassifierCompartment">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_UcuE_umoEeiCH-LqDzrXtQ"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_UcuE_-moEeiCH-LqDzrXtQ"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_UcuFAOmoEeiCH-LqDzrXtQ"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UcuFAemoEeiCH-LqDzrXtQ"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_Uc5EEOmoEeiCH-LqDzrXtQ" type="StereotypeLabel">
+      <styles xmi:type="notation:StringValueStyle" xmi:id="_Uc5EEemoEeiCH-LqDzrXtQ" name="stereotype" stringValue="SysML::PortsAndFlows::InterfaceBlock"/>
+      <element xmi:type="uml:Stereotype" href="pathmap://SysML14_PROFILES/SysML.profile.uml#SysML.package_packagedElement_Ports_u0026Flows.stereotype_packagedElement_InterfaceBlock"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Uc5EEumoEeiCH-LqDzrXtQ"/>
+    </children>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_Uc5rIOmoEeiCH-LqDzrXtQ" type="StereotypeBrace">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_Uc5rIemoEeiCH-LqDzrXtQ"/>
+      <styles xmi:type="notation:StringValueStyle" xmi:id="_Uc5rIumoEeiCH-LqDzrXtQ" name="stereotype" stringValue="SysML::PortsAndFlows::InterfaceBlock"/>
+      <element xmi:type="uml:Stereotype" href="pathmap://SysML14_PROFILES/SysML.profile.uml#SysML.package_packagedElement_Ports_u0026Flows.stereotype_packagedElement_InterfaceBlock"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Uc5rI-moEeiCH-LqDzrXtQ"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_Uc6SMOmoEeiCH-LqDzrXtQ" type="StereotypeLabel">
+      <styles xmi:type="notation:StringValueStyle" xmi:id="_Uc6SMemoEeiCH-LqDzrXtQ" name="stereotype" stringValue="OMSimulatorProfile::TLMInterfaceDefinition"/>
+      <element xmi:type="uml:Stereotype" href="pathmap://PAPYRUS_SSP_PROFILE/OMSimulator.profile.uml#_A48AsLguEeizUOX0GlzCzg"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Uc6SMumoEeiCH-LqDzrXtQ"/>
+    </children>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_Uc6SM-moEeiCH-LqDzrXtQ" type="StereotypeBrace">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_Uc6SNOmoEeiCH-LqDzrXtQ"/>
+      <styles xmi:type="notation:StringValueStyle" xmi:id="_Uc6SNemoEeiCH-LqDzrXtQ" name="stereotype" stringValue="OMSimulatorProfile::TLMInterfaceDefinition"/>
+      <element xmi:type="uml:Stereotype" href="pathmap://PAPYRUS_SSP_PROFILE/OMSimulator.profile.uml#_A48AsLguEeizUOX0GlzCzg"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Uc6SNumoEeiCH-LqDzrXtQ"/>
+    </children>
+    <children xmi:type="notation:Compartment" xmi:id="_Uc7gUOmoEeiCH-LqDzrXtQ" type="Flow Ports">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Y4WiwOmoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Y4WiwemoEeiCH-LqDzrXtQ" key="visible" value="true"/>
+      </eAnnotations>
+      <children xmi:type="notation:Shape" xmi:id="_Zq9EYOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Zq9EYumoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zq9EY-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zq9EZOmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zq9EZemoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zq9EZumoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zq9EZ-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zq9EaOmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IMdNMOmoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Zq9EYemoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_Zq9rcOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Zq9rcumoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zq9rc-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zq-SgOmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zq-SgemoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zq-SgumoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zq-Sg-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zq-ShOmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IMheoemoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Zq9rcemoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_Zq-ShemoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Zq-5kOmoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zq-5kemoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zq-5kumoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zq-5k-moEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zq-5lOmoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zq-5lemoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zq-5lumoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IMj64OmoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Zq-ShumoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_Zq_goOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Zq_goumoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zq_go-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zq_gpOmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zq_gpemoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zq_gpumoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zq_gp-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zq_gqOmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IMlJAemoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Zq_goemoEeiCH-LqDzrXtQ"/>
+      </children>
+    </children>
+    <children xmi:type="notation:Compartment" xmi:id="_Uc7gUemoEeiCH-LqDzrXtQ" type="constraints"/>
+    <children xmi:type="notation:Compartment" xmi:id="_Uc8HYOmoEeiCH-LqDzrXtQ" type="Parts"/>
+    <children xmi:type="notation:Compartment" xmi:id="_Uc8HYemoEeiCH-LqDzrXtQ" type="Proxy Ports"/>
+    <children xmi:type="notation:Compartment" xmi:id="_Uc8HYumoEeiCH-LqDzrXtQ" type="Full Ports"/>
+    <children xmi:type="notation:Compartment" xmi:id="_Uc8ucOmoEeiCH-LqDzrXtQ" type="References"/>
+    <children xmi:type="notation:Compartment" xmi:id="_Uc8ucemoEeiCH-LqDzrXtQ" type="Flow Properties"/>
+    <children xmi:type="notation:Compartment" xmi:id="_Uc8ucumoEeiCH-LqDzrXtQ" type="Parameters"/>
+    <element xmi:type="uml:Class" href="TLMLibrary.uml#_IMZi0emoEeiCH-LqDzrXtQ"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Uctd4emoEeiCH-LqDzrXtQ" x="740" y="40"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_Uc9Vg-moEeiCH-LqDzrXtQ" type="StereotypeComment">
+    <styles xmi:type="notation:TitleStyle" xmi:id="_Uc9VhOmoEeiCH-LqDzrXtQ"/>
+    <styles xmi:type="notation:EObjectValueStyle" xmi:id="_Uc9VhumoEeiCH-LqDzrXtQ" name="BASE_ELEMENT">
+      <eObjectValue xmi:type="uml:Class" href="TLMLibrary.uml#_IMZi0emoEeiCH-LqDzrXtQ"/>
+    </styles>
+    <element xsi:nil="true"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Uc9VhemoEeiCH-LqDzrXtQ" x="200"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_UdzqEOmoEeiCH-LqDzrXtQ" type="Class_Shape">
+    <children xmi:type="notation:DecorationNode" xmi:id="_Ud0RIOmoEeiCH-LqDzrXtQ" type="Class_NameLabel"/>
+    <children xmi:type="notation:DecorationNode" xmi:id="_Ud0RIemoEeiCH-LqDzrXtQ" type="Class_FloatingNameLabel">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_Ud0RIumoEeiCH-LqDzrXtQ" y="5"/>
+    </children>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_Ud0RI-moEeiCH-LqDzrXtQ" type="Class_AttributeCompartment">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_Ud0RJOmoEeiCH-LqDzrXtQ"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_Ud0RJemoEeiCH-LqDzrXtQ"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_Ud0RJumoEeiCH-LqDzrXtQ"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ud0RJ-moEeiCH-LqDzrXtQ"/>
+    </children>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_Ud0RKOmoEeiCH-LqDzrXtQ" visible="false" type="Class_OperationCompartment">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_Ud0RKemoEeiCH-LqDzrXtQ"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_Ud0RKumoEeiCH-LqDzrXtQ"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_Ud0RK-moEeiCH-LqDzrXtQ"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ud0RLOmoEeiCH-LqDzrXtQ"/>
+    </children>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_Ud0RLemoEeiCH-LqDzrXtQ" type="Class_NestedClassifierCompartment">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_Ud0RLumoEeiCH-LqDzrXtQ"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_Ud0RL-moEeiCH-LqDzrXtQ"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_Ud0RMOmoEeiCH-LqDzrXtQ"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ud0RMemoEeiCH-LqDzrXtQ"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_Ud_QQOmoEeiCH-LqDzrXtQ" type="StereotypeLabel">
+      <styles xmi:type="notation:StringValueStyle" xmi:id="_Ud_QQemoEeiCH-LqDzrXtQ" name="stereotype" stringValue="SysML::PortsAndFlows::InterfaceBlock"/>
+      <element xmi:type="uml:Stereotype" href="pathmap://SysML14_PROFILES/SysML.profile.uml#SysML.package_packagedElement_Ports_u0026Flows.stereotype_packagedElement_InterfaceBlock"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ud_QQumoEeiCH-LqDzrXtQ"/>
+    </children>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_Ud_3UOmoEeiCH-LqDzrXtQ" type="StereotypeBrace">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_Ud_3UemoEeiCH-LqDzrXtQ"/>
+      <styles xmi:type="notation:StringValueStyle" xmi:id="_Ud_3UumoEeiCH-LqDzrXtQ" name="stereotype" stringValue="SysML::PortsAndFlows::InterfaceBlock"/>
+      <element xmi:type="uml:Stereotype" href="pathmap://SysML14_PROFILES/SysML.profile.uml#SysML.package_packagedElement_Ports_u0026Flows.stereotype_packagedElement_InterfaceBlock"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ud_3U-moEeiCH-LqDzrXtQ"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_Ud_3VumoEeiCH-LqDzrXtQ" type="StereotypeLabel">
+      <styles xmi:type="notation:StringValueStyle" xmi:id="_Ud_3V-moEeiCH-LqDzrXtQ" name="stereotype" stringValue="OMSimulatorProfile::TLMInterfaceDefinition"/>
+      <element xmi:type="uml:Stereotype" href="pathmap://PAPYRUS_SSP_PROFILE/OMSimulator.profile.uml#_A48AsLguEeizUOX0GlzCzg"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ud_3WOmoEeiCH-LqDzrXtQ"/>
+    </children>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_Ud_3WemoEeiCH-LqDzrXtQ" type="StereotypeBrace">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_Ud_3WumoEeiCH-LqDzrXtQ"/>
+      <styles xmi:type="notation:StringValueStyle" xmi:id="_Ud_3W-moEeiCH-LqDzrXtQ" name="stereotype" stringValue="OMSimulatorProfile::TLMInterfaceDefinition"/>
+      <element xmi:type="uml:Stereotype" href="pathmap://PAPYRUS_SSP_PROFILE/OMSimulator.profile.uml#_A48AsLguEeizUOX0GlzCzg"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ud_3XOmoEeiCH-LqDzrXtQ"/>
+    </children>
+    <children xmi:type="notation:Compartment" xmi:id="_UeBFcOmoEeiCH-LqDzrXtQ" type="Flow Ports">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Y4WiwumoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Y4Wiw-moEeiCH-LqDzrXtQ" key="visible" value="true"/>
+      </eAnnotations>
+      <children xmi:type="notation:Shape" xmi:id="_ZrAHsOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZrAHsumoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrAHs-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrAHtOmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrAHtemoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrAHtumoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrAHt-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrAuwOmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IMqBgOmoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZrAHsemoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZrAuwemoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZrAuw-moEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrAuxOmoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrBV0OmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrBV0emoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrBV0umoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrBV0-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrBV1OmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IMtE0emoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZrAuwumoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZrB84OmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZrB84umoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrB84-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrCj8OmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrCj8emoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrCj8umoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrCj8-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrCj9OmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IMu6AemoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZrB84emoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZrCj9emoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZrDLAOmoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrDLAemoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrDLAumoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrDLA-moEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrDLBOmoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrDLBemoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrDLBumoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IMxWQOmoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZrCj9umoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZrDyEOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZrDyEumoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrDyE-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrDyFOmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrEZIOmoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrEZIemoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrEZIumoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrEZI-moEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IM0ZkOmoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZrDyEemoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZrEZJOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZrFAMOmoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrFAMemoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrFAMumoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrFAM-moEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrFANOmoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrFANemoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrFANumoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IM1AoemoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZrEZJemoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZrFAN-moEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZrFnQOmoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrFnQemoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrFnQumoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrFnQ-moEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrFnROmoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrFnRemoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrFnRumoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IM2OwemoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZrFAOOmoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZrGOUOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZrG1YOmoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrG1YemoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrG1YumoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrG1Y-moEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrG1ZOmoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrG1ZemoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrG1ZumoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IM55IOmoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZrGOUemoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZrHccOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZrHccumoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrHcc-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrHcdOmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrIDgOmoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrIDgemoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrIDgumoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrIDg-moEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IM-KkOmoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZrHccemoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZrIDhOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZrIDhumoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrIqkOmoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrIqkemoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrIqkumoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrIqk-moEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrIqlOmoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrIqlemoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_INB08OmoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZrIDhemoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZrIqlumoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZrJRoOmoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrJRoemoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrJ4sOmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrJ4semoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrJ4sumoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrJ4s-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrJ4tOmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_INDDEemoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZrIql-moEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZrKfwOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZrKfwumoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrKfw-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrKfxOmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrKfxemoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrKfxumoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrKfx-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrLG0OmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_INFfUOmoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZrKfwemoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZrLG0emoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZrLG0-moEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrLG1OmoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrLG1emoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrLt4OmoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrLt4emoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrLt4umoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrLt4-moEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_INH7kOmoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZrLG0umoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZrLt5OmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZrMU8OmoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrMU8emoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrMU8umoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrMU8-moEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrMU9OmoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrMU9emoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrMU9umoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_INIioumoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZrLt5emoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZrMU9-moEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZrM8AOmoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrM8AemoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrM8AumoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrM8A-moEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrM8BOmoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrM8BemoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrM8BumoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_INJJsumoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZrMU-OmoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZrNjEOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZrNjEumoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrNjE-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrNjFOmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrNjFemoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrOKIOmoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrOKIemoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrOKIumoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_INLl8OmoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZrNjEemoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZrOKI-moEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZrOxMOmoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrOxMemoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrOxMumoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrOxM-moEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrOxNOmoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrOxNemoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrOxNumoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_INMNAumoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZrOKJOmoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZrOxN-moEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZrPYQOmoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrPYQemoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrPYQumoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrPYQ-moEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrPYROmoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrPYRemoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrPYRumoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_INNbIOmoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZrOxOOmoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZrPYR-moEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZrPYSemoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrPYSumoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrP_UOmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrP_UemoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrP_UumoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrP_U-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrP_VOmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_INOCMOmoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZrPYSOmoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZrP_VemoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZrP_V-moEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrP_WOmoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrP_WemoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrP_WumoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrP_W-moEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrP_XOmoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrP_XemoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_INOpQemoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZrP_VumoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZrQmYOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZrQmYumoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrQmY-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrQmZOmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrQmZemoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrRNcOmoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrRNcemoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrRNcumoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_INPQUemoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZrQmYemoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZrRNc-moEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZrRNdemoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrRNdumoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrRNd-moEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrR0gOmoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrR0gemoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrR0gumoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrR0g-moEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_INQecOmoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZrRNdOmoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZrR0hOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZrR0humoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrR0h-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrSbkOmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrSbkemoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrSbkumoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrSbk-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrSblOmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_INRFgemoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZrR0hemoEeiCH-LqDzrXtQ"/>
+      </children>
+    </children>
+    <children xmi:type="notation:Compartment" xmi:id="_UeBFcemoEeiCH-LqDzrXtQ" type="constraints"/>
+    <children xmi:type="notation:Compartment" xmi:id="_UeBsgOmoEeiCH-LqDzrXtQ" type="Parts"/>
+    <children xmi:type="notation:Compartment" xmi:id="_UeBsgemoEeiCH-LqDzrXtQ" type="Proxy Ports"/>
+    <children xmi:type="notation:Compartment" xmi:id="_UeBsgumoEeiCH-LqDzrXtQ" type="Full Ports"/>
+    <children xmi:type="notation:Compartment" xmi:id="_UeBsg-moEeiCH-LqDzrXtQ" type="References"/>
+    <children xmi:type="notation:Compartment" xmi:id="_UeCTkOmoEeiCH-LqDzrXtQ" type="Flow Properties"/>
+    <children xmi:type="notation:Compartment" xmi:id="_UeCTkemoEeiCH-LqDzrXtQ" type="Parameters"/>
+    <element xmi:type="uml:Class" href="TLMLibrary.uml#_IMlwEumoEeiCH-LqDzrXtQ"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UdzqEemoEeiCH-LqDzrXtQ" x="1120" y="40"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_UeC6o-moEeiCH-LqDzrXtQ" type="StereotypeComment">
+    <styles xmi:type="notation:TitleStyle" xmi:id="_UeC6pOmoEeiCH-LqDzrXtQ"/>
+    <styles xmi:type="notation:EObjectValueStyle" xmi:id="_UeC6pumoEeiCH-LqDzrXtQ" name="BASE_ELEMENT">
+      <eObjectValue xmi:type="uml:Class" href="TLMLibrary.uml#_IMlwEumoEeiCH-LqDzrXtQ"/>
+    </styles>
+    <element xsi:nil="true"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UeC6pemoEeiCH-LqDzrXtQ" x="200"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_Ufco0OmoEeiCH-LqDzrXtQ" type="Class_Shape">
+    <children xmi:type="notation:DecorationNode" xmi:id="_UfdP4emoEeiCH-LqDzrXtQ" type="Class_NameLabel"/>
+    <children xmi:type="notation:DecorationNode" xmi:id="_UfdP4umoEeiCH-LqDzrXtQ" type="Class_FloatingNameLabel">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_UfdP4-moEeiCH-LqDzrXtQ" y="5"/>
+    </children>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_UfdP5OmoEeiCH-LqDzrXtQ" type="Class_AttributeCompartment">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_UfdP5emoEeiCH-LqDzrXtQ"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_UfdP5umoEeiCH-LqDzrXtQ"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_UfdP5-moEeiCH-LqDzrXtQ"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UfdP6OmoEeiCH-LqDzrXtQ"/>
+    </children>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_UfdP6emoEeiCH-LqDzrXtQ" visible="false" type="Class_OperationCompartment">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_UfdP6umoEeiCH-LqDzrXtQ"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_UfdP6-moEeiCH-LqDzrXtQ"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_UfdP7OmoEeiCH-LqDzrXtQ"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UfdP7emoEeiCH-LqDzrXtQ"/>
+    </children>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_Ufd28OmoEeiCH-LqDzrXtQ" type="Class_NestedClassifierCompartment">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_Ufd28emoEeiCH-LqDzrXtQ"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_Ufd28umoEeiCH-LqDzrXtQ"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_Ufd28-moEeiCH-LqDzrXtQ"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ufd29OmoEeiCH-LqDzrXtQ"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_Ufr5YOmoEeiCH-LqDzrXtQ" type="StereotypeLabel">
+      <styles xmi:type="notation:StringValueStyle" xmi:id="_Ufr5YemoEeiCH-LqDzrXtQ" name="stereotype" stringValue="SysML::PortsAndFlows::InterfaceBlock"/>
+      <element xmi:type="uml:Stereotype" href="pathmap://SysML14_PROFILES/SysML.profile.uml#SysML.package_packagedElement_Ports_u0026Flows.stereotype_packagedElement_InterfaceBlock"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ufr5YumoEeiCH-LqDzrXtQ"/>
+    </children>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_Ufr5Y-moEeiCH-LqDzrXtQ" type="StereotypeBrace">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_Ufr5ZOmoEeiCH-LqDzrXtQ"/>
+      <styles xmi:type="notation:StringValueStyle" xmi:id="_Ufr5ZemoEeiCH-LqDzrXtQ" name="stereotype" stringValue="SysML::PortsAndFlows::InterfaceBlock"/>
+      <element xmi:type="uml:Stereotype" href="pathmap://SysML14_PROFILES/SysML.profile.uml#SysML.package_packagedElement_Ports_u0026Flows.stereotype_packagedElement_InterfaceBlock"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ufr5ZumoEeiCH-LqDzrXtQ"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_Ufr5aemoEeiCH-LqDzrXtQ" type="StereotypeLabel">
+      <styles xmi:type="notation:StringValueStyle" xmi:id="_Ufr5aumoEeiCH-LqDzrXtQ" name="stereotype" stringValue="OMSimulatorProfile::TLMInterfaceDefinition"/>
+      <element xmi:type="uml:Stereotype" href="pathmap://PAPYRUS_SSP_PROFILE/OMSimulator.profile.uml#_A48AsLguEeizUOX0GlzCzg"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ufr5a-moEeiCH-LqDzrXtQ"/>
+    </children>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_UfsgcOmoEeiCH-LqDzrXtQ" type="StereotypeBrace">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_UfsgcemoEeiCH-LqDzrXtQ"/>
+      <styles xmi:type="notation:StringValueStyle" xmi:id="_UfsgcumoEeiCH-LqDzrXtQ" name="stereotype" stringValue="OMSimulatorProfile::TLMInterfaceDefinition"/>
+      <element xmi:type="uml:Stereotype" href="pathmap://PAPYRUS_SSP_PROFILE/OMSimulator.profile.uml#_A48AsLguEeizUOX0GlzCzg"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ufsgc-moEeiCH-LqDzrXtQ"/>
+    </children>
+    <children xmi:type="notation:Compartment" xmi:id="_UfwK0OmoEeiCH-LqDzrXtQ" type="Flow Ports">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Y4WixOmoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Y4XJ0OmoEeiCH-LqDzrXtQ" key="visible" value="true"/>
+      </eAnnotations>
+      <children xmi:type="notation:Shape" xmi:id="_ZrSblemoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZrSbl-moEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrTCoOmoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrTCoemoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrTCoumoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrTCo-moEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrTCpOmoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrTCpemoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_INUI0OmoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZrSblumoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZrTCpumoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZrTpsOmoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrTpsemoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrTpsumoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrTps-moEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrTptOmoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrTptemoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrTptumoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_INVW8emoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZrTCp-moEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZrTpt-moEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZrUQwOmoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrUQwemoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrUQwumoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrUQw-moEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrUQxOmoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrUQxemoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrUQxumoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_INXMIOmoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZrTpuOmoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZrUQx-moEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZrU30OmoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrU30emoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrU30umoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrU30-moEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrU31OmoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrU31emoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrU31umoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_INZBUemoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZrUQyOmoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZrU31-moEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZrVe4OmoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrVe4emoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrVe4umoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrVe4-moEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrVe5OmoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrVe5emoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrVe5umoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_INaPcOmoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZrU32OmoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZrVe5-moEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZrWF8OmoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrWF8emoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrWF8umoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrWF8-moEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrWF9OmoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrWF9emoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrWF9umoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_INdSwOmoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZrVe6OmoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZrWF9-moEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZrWF-emoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrWF-umoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrWF--moEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrWF_OmoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrWF_emoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrWF_umoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrWF_-moEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_INd50umoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZrWF-OmoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZrWtAOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZrWtAumoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrWtA-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrWtBOmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrWtBemoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrWtBumoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrWtB-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrWtCOmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_INfH8OmoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZrWtAemoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZrXUEOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZrXUEumoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrXUE-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrXUFOmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrXUFemoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrXUFumoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrXUF-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrXUGOmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_INjZYOmoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZrXUEemoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZrX7IOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZrX7IumoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrX7I-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrX7JOmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrX7JemoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrX7JumoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrX7J-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrX7KOmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_INlOkOmoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZrX7IemoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZrYiMOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZrYiMumoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrYiM-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrYiNOmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrYiNemoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrYiNumoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrYiN-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrYiOOmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_INnDwemoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZrYiMemoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZrZJQOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZrZJQumoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrZJQ-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrZJROmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrZJRemoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrZJRumoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrZJR-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrZJSOmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_INnq0umoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZrZJQemoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZrZwUOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZrZwUumoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrZwU-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrZwVOmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrZwVemoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrZwVumoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrZwV-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZraXYOmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_INo48OmoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZrZwUemoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZraXYemoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZraXY-moEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZraXZOmoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zra-cOmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zra-cemoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zra-cumoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zra-c-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zra-dOmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_INtKYOmoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZraXYumoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_Zra-demoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZrblgOmoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrblgemoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrblgumoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zrblg-moEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrblhOmoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrblhemoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrblhumoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_INuYgOmoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Zra-dumoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZrcMkOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZrcMkumoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrcMk-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrcMlOmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrcMlemoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrcMlumoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrcMl-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrcMmOmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_INwNsOmoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZrcMkemoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZrczoOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZrczoumoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zrczo-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrczpOmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrczpemoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrczpumoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zrczp-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrczqOmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_INzRAOmoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZrczoemoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZrdasOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZrdasumoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zrdas-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrdatOmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrdatemoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrdatumoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zrdat-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrdauOmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IN1GMOmoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZrdasemoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZreBwOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZreBwumoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZreBw-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zreo0OmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zreo0emoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zreo0umoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zreo0-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zreo1OmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IN1tQOmoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZreBwemoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_Zreo1emoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZrfP4OmoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrfP4emoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrfP4umoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrfP4-moEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrfP5OmoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrfP5emoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrfP5umoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IN1tQ-moEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Zreo1umoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_Zrf28OmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Zrf28umoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zrf28-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zrf29OmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zrf29emoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zrf29umoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zrf29-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zrf2-OmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IN3icOmoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Zrf28emoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZrgeAOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZrgeAumoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrgeA-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrgeBOmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrgeBemoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrgeBumoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrgeB-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrgeCOmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IN5XoemoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZrgeAemoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZrhFEOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZrhFEumoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrhFE-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrhFFOmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrhFFemoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrhFFumoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrhsIOmoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrhsIemoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IN7M0emoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZrhFEemoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZrhsIumoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZrhsJOmoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrhsJemoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZriTMOmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZriTMemoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZriTMumoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZriTM-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZriTNOmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IN7z4emoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZrhsI-moEeiCH-LqDzrXtQ"/>
+      </children>
+    </children>
+    <children xmi:type="notation:Compartment" xmi:id="_Ufwx4OmoEeiCH-LqDzrXtQ" type="constraints"/>
+    <children xmi:type="notation:Compartment" xmi:id="_Ufwx4emoEeiCH-LqDzrXtQ" type="Parts"/>
+    <children xmi:type="notation:Compartment" xmi:id="_Ufwx4umoEeiCH-LqDzrXtQ" type="Proxy Ports"/>
+    <children xmi:type="notation:Compartment" xmi:id="_UfxY8OmoEeiCH-LqDzrXtQ" type="Full Ports"/>
+    <children xmi:type="notation:Compartment" xmi:id="_UfxY8emoEeiCH-LqDzrXtQ" type="References"/>
+    <children xmi:type="notation:Compartment" xmi:id="_UfxY8umoEeiCH-LqDzrXtQ" type="Flow Properties"/>
+    <children xmi:type="notation:Compartment" xmi:id="_UfxY8-moEeiCH-LqDzrXtQ" type="Parameters"/>
+    <element xmi:type="uml:Class" href="TLMLibrary.uml#_INRskemoEeiCH-LqDzrXtQ"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UfdP4OmoEeiCH-LqDzrXtQ" x="1520" y="40"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_UfyAA-moEeiCH-LqDzrXtQ" type="StereotypeComment">
+    <styles xmi:type="notation:TitleStyle" xmi:id="_UfyABOmoEeiCH-LqDzrXtQ"/>
+    <styles xmi:type="notation:EObjectValueStyle" xmi:id="_UfyABumoEeiCH-LqDzrXtQ" name="BASE_ELEMENT">
+      <eObjectValue xmi:type="uml:Class" href="TLMLibrary.uml#_INRskemoEeiCH-LqDzrXtQ"/>
+    </styles>
+    <element xsi:nil="true"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UfyABemoEeiCH-LqDzrXtQ" x="200"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_Ugr-8OmoEeiCH-LqDzrXtQ" type="Class_Shape">
+    <children xmi:type="notation:DecorationNode" xmi:id="_Ugr-8umoEeiCH-LqDzrXtQ" type="Class_NameLabel"/>
+    <children xmi:type="notation:DecorationNode" xmi:id="_UgsmAOmoEeiCH-LqDzrXtQ" type="Class_FloatingNameLabel">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_UgsmAemoEeiCH-LqDzrXtQ" y="5"/>
+    </children>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_UgsmAumoEeiCH-LqDzrXtQ" type="Class_AttributeCompartment">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_UgsmA-moEeiCH-LqDzrXtQ"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_UgsmBOmoEeiCH-LqDzrXtQ"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_UgsmBemoEeiCH-LqDzrXtQ"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UgsmBumoEeiCH-LqDzrXtQ"/>
+    </children>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_UgsmB-moEeiCH-LqDzrXtQ" visible="false" type="Class_OperationCompartment">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_UgsmCOmoEeiCH-LqDzrXtQ"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_UgsmCemoEeiCH-LqDzrXtQ"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_UgsmCumoEeiCH-LqDzrXtQ"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UgsmC-moEeiCH-LqDzrXtQ"/>
+    </children>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_UgsmDOmoEeiCH-LqDzrXtQ" type="Class_NestedClassifierCompartment">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_UgsmDemoEeiCH-LqDzrXtQ"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_UgsmDumoEeiCH-LqDzrXtQ"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_UgsmD-moEeiCH-LqDzrXtQ"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UgsmEOmoEeiCH-LqDzrXtQ"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_Ug3lIOmoEeiCH-LqDzrXtQ" type="StereotypeLabel">
+      <styles xmi:type="notation:StringValueStyle" xmi:id="_Ug3lIemoEeiCH-LqDzrXtQ" name="stereotype" stringValue="SysML::PortsAndFlows::InterfaceBlock"/>
+      <element xmi:type="uml:Stereotype" href="pathmap://SysML14_PROFILES/SysML.profile.uml#SysML.package_packagedElement_Ports_u0026Flows.stereotype_packagedElement_InterfaceBlock"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ug3lIumoEeiCH-LqDzrXtQ"/>
+    </children>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_Ug3lI-moEeiCH-LqDzrXtQ" type="StereotypeBrace">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_Ug3lJOmoEeiCH-LqDzrXtQ"/>
+      <styles xmi:type="notation:StringValueStyle" xmi:id="_Ug3lJemoEeiCH-LqDzrXtQ" name="stereotype" stringValue="SysML::PortsAndFlows::InterfaceBlock"/>
+      <element xmi:type="uml:Stereotype" href="pathmap://SysML14_PROFILES/SysML.profile.uml#SysML.package_packagedElement_Ports_u0026Flows.stereotype_packagedElement_InterfaceBlock"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ug3lJumoEeiCH-LqDzrXtQ"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_Ug4MMumoEeiCH-LqDzrXtQ" type="StereotypeLabel">
+      <styles xmi:type="notation:StringValueStyle" xmi:id="_Ug4MM-moEeiCH-LqDzrXtQ" name="stereotype" stringValue="OMSimulatorProfile::TLMInterfaceDefinition"/>
+      <element xmi:type="uml:Stereotype" href="pathmap://PAPYRUS_SSP_PROFILE/OMSimulator.profile.uml#_A48AsLguEeizUOX0GlzCzg"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ug4MNOmoEeiCH-LqDzrXtQ"/>
+    </children>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_Ug4MNemoEeiCH-LqDzrXtQ" type="StereotypeBrace">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_Ug4MNumoEeiCH-LqDzrXtQ"/>
+      <styles xmi:type="notation:StringValueStyle" xmi:id="_Ug4MN-moEeiCH-LqDzrXtQ" name="stereotype" stringValue="OMSimulatorProfile::TLMInterfaceDefinition"/>
+      <element xmi:type="uml:Stereotype" href="pathmap://PAPYRUS_SSP_PROFILE/OMSimulator.profile.uml#_A48AsLguEeizUOX0GlzCzg"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ug4MOOmoEeiCH-LqDzrXtQ"/>
+    </children>
+    <children xmi:type="notation:Compartment" xmi:id="_Ug5aUOmoEeiCH-LqDzrXtQ" type="Flow Ports">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Y4XJ0emoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Y4XJ0umoEeiCH-LqDzrXtQ" key="visible" value="true"/>
+      </eAnnotations>
+      <children xmi:type="notation:Shape" xmi:id="_ZriTNemoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Zri6QOmoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zri6QemoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrjhUOmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrjhUemoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrjhUumoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrjhU-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrjhVOmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IN-3MemoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZriTNumoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZrkIYOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZrkIYumoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrkIY-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrkIZOmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrkIZemoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrkIZumoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrkIZ-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrkvcOmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IOAFUOmoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZrkIYemoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZrlWgOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Zrl9kOmoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zrl9kemoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zrl9kumoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zrl9k-moEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zrl9lOmoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zrl9lemoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zrl9lumoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IOAsYemoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZrlWgemoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZrmkoOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZrmkoumoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zrmko-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrmkpOmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrmkpemoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrmkpumoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zrmkp-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrmkqOmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IOChkOmoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZrmkoemoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZrnLsOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZrnLsumoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrnLs-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrnLtOmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrnLtemoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrnLtumoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrnLt-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrnLuOmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IOGL8OmoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZrnLsemoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZrnywOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZrnywumoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zrnyw-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrnyxOmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrnyxemoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrnyxumoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zrnyx-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrnyyOmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IOJPQemoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZrnywemoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZroZ0OmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZroZ0umoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZroZ0-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZroZ1OmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZroZ1emoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZroZ1umoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZroZ1-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZroZ2OmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IOJ2UumoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZroZ0emoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZrpA4OmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZrpA4umoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrpA4-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrpA5OmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrpA5emoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrpA5umoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrpA5-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrpA6OmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IOKdYumoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZrpA4emoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_Zrpn8OmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Zrpn8umoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zrpn8-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zrpn9OmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zrpn9emoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zrpn9umoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zrpn9-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zrpn-OmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IOLrgOmoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Zrpn8emoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZrqPAOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZrqPAumoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrqPA-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrqPBOmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrqPBemoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrqPBumoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrqPB-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrqPCOmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IOM5oOmoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZrqPAemoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_Zrq2EOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Zrq2EumoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zrq2E-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zrq2FOmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zrq2FemoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zrq2FumoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zrq2F-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zrq2GOmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IONgsOmoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Zrq2EemoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_Zrq2GemoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Zrq2G-moEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zrq2HOmoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrrdIOmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrrdIemoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrrdIumoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrrdI-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrrdJOmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IOOHwemoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Zrq2GumoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZrrdJemoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZrrdJ-moEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrrdKOmoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrrdKemoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrrdKumoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrrdK-moEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrsEMOmoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrsEMemoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IOOu0emoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZrrdJumoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZrsEMumoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZrsENOmoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrsENemoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrsENumoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrsEN-moEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrsEOOmoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrsrQOmoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrsrQemoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IOPV4emoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZrsEM-moEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZrtSUOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZrtSUumoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrtSU-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrtSVOmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrtSVemoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zrt5YOmoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zrt5YemoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zrt5YumoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IORLEOmoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZrtSUemoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_Zrt5Y-moEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZrugcOmoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrugcemoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrugcumoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zrugc-moEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrugdOmoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrugdemoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrugdumoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IOTnUOmoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Zrt5ZOmoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZrvHgOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZrvHgumoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrvHg-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrvHhOmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrvHhemoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrvHhumoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrvHh-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrvukOmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IOWqoOmoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZrvHgemoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZrvukemoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Zrvuk-moEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrwVoOmoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrwVoemoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrwVoumoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrwVo-moEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrwVpOmoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrwVpemoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IOXRsumoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZrvukumoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_Zrw8sOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Zrw8sumoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zrw8s-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zrw8tOmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zrw8temoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zrw8tumoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zrw8t-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zrw8uOmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IOX4wumoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Zrw8semoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZrxjwOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZrxjwumoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zrxjw-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrxjxOmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrxjxemoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrxjxumoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zrxjx-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrxjyOmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IOZt8OmoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZrxjwemoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZryK0OmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZryK0umoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZryK0-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZryK1OmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZryK1emoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZryK1umoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZryK1-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZryK2OmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IOemcOmoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZryK0emoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_Zryx4OmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Zryx4umoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zryx4-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zryx5OmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zryx5emoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zryx5umoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zryx5-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zryx6OmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IOfNgemoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Zryx4emoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZrzY8OmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZrzY8umoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrzY8-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZrzY9OmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr0AAOmoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr0AAemoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr0AAumoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr0AA-moEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IOf0kemoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZrzY8emoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_Zr0ABOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Zr0ABumoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr0nEOmoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr0nEemoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr0nEumoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr0nE-moEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr0nFOmoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr0nFemoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IOgboemoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Zr0ABemoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_Zr0nFumoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Zr1OIOmoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr1OIemoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr1OIumoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr1OI-moEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr1OJOmoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr1OJemoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr1OJumoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IOhCsemoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Zr0nF-moEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_Zr1OJ-moEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Zr11MOmoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr11MemoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr11MumoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr11M-moEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr11NOmoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr11NemoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr11NumoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IOhpwOmoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Zr1OKOmoEeiCH-LqDzrXtQ"/>
+      </children>
+    </children>
+    <children xmi:type="notation:Compartment" xmi:id="_Ug5aUemoEeiCH-LqDzrXtQ" type="constraints"/>
+    <children xmi:type="notation:Compartment" xmi:id="_Ug5aUumoEeiCH-LqDzrXtQ" type="Parts"/>
+    <children xmi:type="notation:Compartment" xmi:id="_Ug6BYOmoEeiCH-LqDzrXtQ" type="Proxy Ports"/>
+    <children xmi:type="notation:Compartment" xmi:id="_Ug6BYemoEeiCH-LqDzrXtQ" type="Full Ports"/>
+    <children xmi:type="notation:Compartment" xmi:id="_Ug6BYumoEeiCH-LqDzrXtQ" type="References"/>
+    <children xmi:type="notation:Compartment" xmi:id="_Ug6ocOmoEeiCH-LqDzrXtQ" type="Flow Properties"/>
+    <children xmi:type="notation:Compartment" xmi:id="_Ug6ocemoEeiCH-LqDzrXtQ" type="Parameters"/>
+    <element xmi:type="uml:Class" href="TLMLibrary.uml#_IN8a8emoEeiCH-LqDzrXtQ"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ugr-8emoEeiCH-LqDzrXtQ" x="1880" y="40"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_Ug6odemoEeiCH-LqDzrXtQ" type="StereotypeComment">
+    <styles xmi:type="notation:TitleStyle" xmi:id="_Ug6odumoEeiCH-LqDzrXtQ"/>
+    <styles xmi:type="notation:EObjectValueStyle" xmi:id="_Ug7PgOmoEeiCH-LqDzrXtQ" name="BASE_ELEMENT">
+      <eObjectValue xmi:type="uml:Class" href="TLMLibrary.uml#_IN8a8emoEeiCH-LqDzrXtQ"/>
+    </styles>
+    <element xsi:nil="true"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ug6od-moEeiCH-LqDzrXtQ" x="200"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_Uh11gOmoEeiCH-LqDzrXtQ" type="Class_Shape">
+    <children xmi:type="notation:DecorationNode" xmi:id="_Uh11gumoEeiCH-LqDzrXtQ" type="Class_NameLabel"/>
+    <children xmi:type="notation:DecorationNode" xmi:id="_Uh2ckOmoEeiCH-LqDzrXtQ" type="Class_FloatingNameLabel">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_Uh2ckemoEeiCH-LqDzrXtQ" y="5"/>
+    </children>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_Uh2ckumoEeiCH-LqDzrXtQ" type="Class_AttributeCompartment">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_Uh2ck-moEeiCH-LqDzrXtQ"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_Uh2clOmoEeiCH-LqDzrXtQ"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_Uh2clemoEeiCH-LqDzrXtQ"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Uh2clumoEeiCH-LqDzrXtQ"/>
+    </children>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_Uh2cl-moEeiCH-LqDzrXtQ" visible="false" type="Class_OperationCompartment">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_Uh2cmOmoEeiCH-LqDzrXtQ"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_Uh2cmemoEeiCH-LqDzrXtQ"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_Uh2cmumoEeiCH-LqDzrXtQ"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Uh2cm-moEeiCH-LqDzrXtQ"/>
+    </children>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_Uh2cnOmoEeiCH-LqDzrXtQ" type="Class_NestedClassifierCompartment">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_Uh2cnemoEeiCH-LqDzrXtQ"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_Uh2cnumoEeiCH-LqDzrXtQ"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_Uh2cn-moEeiCH-LqDzrXtQ"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Uh2coOmoEeiCH-LqDzrXtQ"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_UiANkOmoEeiCH-LqDzrXtQ" type="StereotypeLabel">
+      <styles xmi:type="notation:StringValueStyle" xmi:id="_UiANkemoEeiCH-LqDzrXtQ" name="stereotype" stringValue="SysML::PortsAndFlows::InterfaceBlock"/>
+      <element xmi:type="uml:Stereotype" href="pathmap://SysML14_PROFILES/SysML.profile.uml#SysML.package_packagedElement_Ports_u0026Flows.stereotype_packagedElement_InterfaceBlock"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UiANkumoEeiCH-LqDzrXtQ"/>
+    </children>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_UiANk-moEeiCH-LqDzrXtQ" type="StereotypeBrace">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_UiANlOmoEeiCH-LqDzrXtQ"/>
+      <styles xmi:type="notation:StringValueStyle" xmi:id="_UiANlemoEeiCH-LqDzrXtQ" name="stereotype" stringValue="SysML::PortsAndFlows::InterfaceBlock"/>
+      <element xmi:type="uml:Stereotype" href="pathmap://SysML14_PROFILES/SysML.profile.uml#SysML.package_packagedElement_Ports_u0026Flows.stereotype_packagedElement_InterfaceBlock"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UiANlumoEeiCH-LqDzrXtQ"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_UiA0oumoEeiCH-LqDzrXtQ" type="StereotypeLabel">
+      <styles xmi:type="notation:StringValueStyle" xmi:id="_UiA0o-moEeiCH-LqDzrXtQ" name="stereotype" stringValue="OMSimulatorProfile::TLMInterfaceDefinition"/>
+      <element xmi:type="uml:Stereotype" href="pathmap://PAPYRUS_SSP_PROFILE/OMSimulator.profile.uml#_A48AsLguEeizUOX0GlzCzg"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UiA0pOmoEeiCH-LqDzrXtQ"/>
+    </children>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_UiA0pemoEeiCH-LqDzrXtQ" type="StereotypeBrace">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_UiA0pumoEeiCH-LqDzrXtQ"/>
+      <styles xmi:type="notation:StringValueStyle" xmi:id="_UiA0p-moEeiCH-LqDzrXtQ" name="stereotype" stringValue="OMSimulatorProfile::TLMInterfaceDefinition"/>
+      <element xmi:type="uml:Stereotype" href="pathmap://PAPYRUS_SSP_PROFILE/OMSimulator.profile.uml#_A48AsLguEeizUOX0GlzCzg"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UiA0qOmoEeiCH-LqDzrXtQ"/>
+    </children>
+    <children xmi:type="notation:Compartment" xmi:id="_UiBbsOmoEeiCH-LqDzrXtQ" type="Flow Ports">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Y4XJ0-moEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Y4XJ1OmoEeiCH-LqDzrXtQ" key="visible" value="true"/>
+      </eAnnotations>
+      <children xmi:type="notation:Shape" xmi:id="_Zr2cQOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Zr2cQumoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr2cQ-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr2cROmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr2cRemoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr2cRumoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr2cR-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr2cSOmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IOkGAemoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Zr2cQemoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_Zr3DUOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Zr3DUumoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr3DU-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr3qYOmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr3qYemoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr3qYumoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr3qY-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr3qZOmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IOlUIOmoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Zr3DUemoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_Zr3qZemoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Zr4RcOmoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr4RcemoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr4RcumoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr4Rc-moEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr4RdOmoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr4RdemoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr4RdumoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IOl7MumoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Zr3qZumoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_Zr44gOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Zr44gumoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr44g-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr44hOmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr44hemoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr44humoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr44h-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr44iOmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IOmiQumoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Zr44gemoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_Zr5fkOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Zr5fkumoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr5fk-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr5flOmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr5flemoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr5flumoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr5fl-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr5fmOmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IOnJUumoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Zr5fkemoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_Zr6GoOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Zr6GoumoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr6Go-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr6GpOmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr6GpemoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr6GpumoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr6Gp-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr6GqOmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IOnwYumoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Zr6GoemoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_Zr6tsOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Zr6tsumoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr6ts-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr6ttOmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr6ttemoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr6ttumoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr6tt-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr6tuOmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IOoXcemoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Zr6tsemoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_Zr7UwOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Zr7UwumoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr7Uw-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr7UxOmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr7UxemoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr7UxumoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr7Ux-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr7UyOmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IOo-gOmoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Zr7UwemoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_Zr7UyemoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Zr770OmoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr770emoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr770umoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr770-moEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr771OmoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr771emoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr771umoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IOo-g-moEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Zr7UyumoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_Zr771-moEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Zr8i4OmoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr8i4emoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr8i4umoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr8i4-moEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr8i5OmoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr8i5emoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr8i5umoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IOplkumoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Zr772OmoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_Zr8i5-moEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Zr9J8OmoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr9J8emoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr9J8umoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr9J8-moEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr9J9OmoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr9J9emoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr9J9umoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IOqMoumoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Zr8i6OmoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_Zr9xAOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Zr9xAumoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr9xA-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr9xBOmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr9xBemoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr9xBumoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr9xB-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr9xCOmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IOqzsumoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Zr9xAemoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_Zr-YEOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Zr-YEumoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr-YE-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr-YFOmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr-YFemoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr-YFumoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr-_IOmoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr-_IemoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IOrawemoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Zr-YEemoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_Zr-_IumoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Zr-_JOmoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr-_JemoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr_mMOmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr_mMemoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr_mMumoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr_mM-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zr_mNOmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IOsB0emoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Zr-_I-moEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZsANQOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZsANQumoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsANQ-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsANROmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsANRemoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsANRumoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsANR-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsANSOmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IOso4emoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZsANQemoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZsA0UOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZsA0UumoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsBbYOmoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsBbYemoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsBbYumoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsBbY-moEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsBbZOmoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsBbZemoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IOtP8emoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZsA0UemoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZsBbZumoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZsCCcOmoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsCCcemoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsCCcumoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsCCc-moEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsCCdOmoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsCCdemoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsCCdumoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IOt3AemoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZsBbZ-moEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZsCpgOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZsCpgumoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsCpg-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsCphOmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsCphemoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsCphumoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsCph-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsCpiOmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IOueEemoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZsCpgemoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZsDQkOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZsDQkumoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsDQk-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsD3oOmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsD3oemoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsD3oumoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsD3o-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsD3pOmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IOvFIumoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZsDQkemoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZsD3pemoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZsEesOmoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsEesemoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsEesumoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsEes-moEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsEetOmoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsEetemoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsEetumoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IOxhYumoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZsD3pumoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZsEet-moEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZsFFwOmoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsFFwemoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsFFwumoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsFFw-moEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsFFxOmoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsFFxemoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsFFxumoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IOyIcumoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZsEeuOmoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZsFFx-moEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZsFs0OmoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsFs0emoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsFs0umoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsFs0-moEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsFs1OmoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsFs1emoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsFs1umoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IOyvgumoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZsFFyOmoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZsGT4OmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZsGT4umoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsGT4-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsGT5OmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsGT5emoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsGT5umoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsGT5-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsGT6OmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IOz9oOmoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZsGT4emoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZsG68OmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZsG68umoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsG68-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsG69OmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsG69emoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsG69umoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsG69-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsG6-OmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IO0ksOmoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZsG68emoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZsHiAOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZsHiAumoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsHiA-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsHiBOmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsIJEOmoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsIJEemoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsIJEumoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsIJE-moEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IO1LwOmoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZsHiAemoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZsIJFOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZsIJFumoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsIJF-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsIwIOmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsIwIemoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsIwIumoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsIwI-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsIwJOmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IO1Lw-moEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZsIJFemoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZsIwJemoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZsJXMOmoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsJXMemoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsJXMumoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsJXM-moEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsJXNOmoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsJXNemoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsJXNumoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IO2Z4emoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZsIwJumoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZsJXN-moEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZsJXOemoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsJXOumoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsJXO-moEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsJXPOmoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsJXPemoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsJXPumoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsJXP-moEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IO3oAOmoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZsJXOOmoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZsJ-QOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZsJ-QumoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsJ-Q-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsJ-ROmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsJ-RemoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsJ-RumoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsJ-R-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsJ-SOmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IO4PEOmoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZsJ-QemoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZsJ-SemoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZsKlUOmoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsKlUemoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsKlUumoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsKlU-moEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsKlVOmoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsKlVemoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsKlVumoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IO42IemoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZsJ-SumoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZsKlV-moEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZsKlWemoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsKlWumoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsKlW-moEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsKlXOmoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsKlXemoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsKlXumoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsLMYOmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IO7SYOmoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZsKlWOmoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZsLMYemoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZsLMY-moEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsLMZOmoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsLMZemoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsLMZumoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsLMZ-moEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsLMaOmoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsLMaemoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IO-VsOmoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZsLMYumoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZsLzcOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZsLzcumoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsLzc-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsLzdOmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsLzdemoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsLzdumoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsLzd-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsLzeOmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IPBZAemoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZsLzcemoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZsMagOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZsMagumoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsMag-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsMahOmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsMahemoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsMahumoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsMah-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsMaiOmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IPFqcemoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZsMagemoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZsNBkOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZsNBkumoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsNBk-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsNBlOmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsNBlemoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsNBlumoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsNBl-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsNBmOmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IPGRgumoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZsNBkemoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZsNooOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZsNooumoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsNoo-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsNopOmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsNopemoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsNopumoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsNop-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsNoqOmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IPHfoemoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZsNooemoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZsNoqemoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZsOPsOmoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsOPsemoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsOPsumoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsOPs-moEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsOPtOmoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsOPtemoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsOPtumoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IPIGsemoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZsNoqumoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZsOPt-moEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZsOPuemoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsOPuumoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsOPu-moEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsOPvOmoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsOPvemoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsOPvumoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsOPv-moEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IPItwemoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZsOPuOmoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZsO2wOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZsO2wumoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsO2w-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsO2xOmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsO2xemoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsO2xumoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsO2x-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsO2yOmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IPJU0emoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZsO2wemoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZsO2yemoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZsO2y-moEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsO2zOmoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsO2zemoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsO2zumoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsO2z-moEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsO20OmoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsO20emoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IPJ74emoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZsO2yumoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZsPd0OmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZsPd0umoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsPd0-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsPd1OmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsPd1emoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsPd1umoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsPd1-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsPd2OmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IPKi8emoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZsPd0emoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZsPd2emoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZsPd2-moEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsPd3OmoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsQE4OmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsQE4emoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsQE4umoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsQE4-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsQE5OmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IPLKAemoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZsPd2umoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZsQE5emoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZsQE5-moEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsQE6OmoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsQE6emoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsQE6umoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsQE6-moEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsQE7OmoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsQE7emoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IPLxEemoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZsQE5umoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZsQE7umoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZsQr8OmoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsQr8emoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsQr8umoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsQr8-moEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsQr9OmoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsQr9emoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsQr9umoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IPMYIemoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZsQE7-moEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZsQr9-moEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZsQr-emoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsQr-umoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsRTAOmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsRTAemoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsRTAumoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsRTA-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsRTBOmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IPM_MemoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZsQr-OmoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZsRTBemoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZsRTB-moEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsRTCOmoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsRTCemoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsRTCumoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsRTC-moEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsRTDOmoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsRTDemoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IPNmQemoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZsRTBumoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZsRTDumoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZsR6EOmoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsR6EemoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsR6EumoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsR6E-moEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsR6FOmoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsR6FemoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsR6FumoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IPONUemoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZsRTD-moEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZsR6F-moEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZsShIOmoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsShIemoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsShIumoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsShI-moEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsShJOmoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsShJemoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsShJumoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IPO0YemoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZsR6GOmoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZsTIMOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZsTIMumoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsTIM-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsTINOmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsTINemoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsTINumoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsTIN-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsTIOOmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IPPbcemoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZsTIMemoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZsTvQOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZsTvQumoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsTvQ-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsTvROmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsTvRemoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsTvRumoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsTvR-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsTvSOmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IPQCgemoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZsTvQemoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZsUWUOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZsUWUumoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsUWU-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsUWVOmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsU9YOmoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsU9YemoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsU9YumoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsU9Y-moEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IPQpkemoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZsUWUemoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZsU9ZOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZsU9ZumoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsVkcOmoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsVkcemoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsVkcumoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsVkc-moEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsVkdOmoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsVkdemoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IPRQoOmoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZsU9ZemoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZsVkdumoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZsWLgOmoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsWLgemoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsWLgumoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsWLg-moEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsWLhOmoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsWLhemoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsWLhumoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IPR3sOmoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZsVkd-moEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZsWLh-moEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZsWykOmoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsWykemoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsWykumoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsWyk-moEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsWylOmoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsWylemoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsWylumoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IPSewemoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZsWLiOmoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZsXZoOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZsXZoumoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsXZo-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsXZpOmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsXZpemoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsXZpumoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsYAsOmoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsYAsemoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IPTF0emoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZsXZoemoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZsYAsumoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZsYnwOmoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsYnwemoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsYnwumoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsYnw-moEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsYnxOmoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsYnxemoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsYnxumoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IPTs4emoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZsYAs-moEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZsYnx-moEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZsZO0OmoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsZO0emoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsZO0umoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsZO0-moEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsZO1OmoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsZO1emoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsZO1umoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IPUT8umoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZsYnyOmoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZsZ14OmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZsZ14umoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsZ14-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsZ15OmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsZ15emoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsZ15umoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsZ15-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zsac8OmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IPU7AumoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZsZ14emoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_Zsac8emoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Zsac8-moEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zsac9OmoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zsac9emoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zsac9umoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zsac9-moEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zsac-OmoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zsac-emoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IPViEumoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Zsac8umoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZsbEAOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZsbEAumoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsbEA-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsbEBOmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsbEBemoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsbEBumoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsbEB-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsbECOmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IPXXQOmoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZsbEAemoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZsbrEOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZsbrEumoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsbrE-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsbrFOmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsbrFemoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsbrFumoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsbrF-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsbrGOmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IPZzgOmoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZsbrEemoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZscSIOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZscSIumoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZscSI-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZscSJOmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZscSJemoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZscSJumoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZscSJ-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZscSKOmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IPbBoemoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZscSIemoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_Zsc5MOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Zsc5MumoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zsc5M-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zsc5NOmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zsc5NemoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zsc5NumoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zsc5N-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zsc5OOmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IPdd4emoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Zsc5MemoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZsdgQOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZsdgQumoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsdgQ-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsdgROmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsdgRemoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsdgRumoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsdgR-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsdgSOmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IPesAOmoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZsdgQemoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZsdgSemoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZseHUOmoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZseHUemoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZseHUumoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZseHU-moEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZseHVOmoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZseHVemoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZseHVumoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IPfTEOmoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZsdgSumoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZseHV-moEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZseHWemoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZseHWumoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZseuYOmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZseuYemoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZseuYumoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZseuY-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZseuZOmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IPf6IemoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZseHWOmoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZseuZemoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZseuZ-moEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZseuaOmoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsfVcOmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsfVcemoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsfVcumoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsfVc-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsfVdOmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IPghMemoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZseuZumoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZsfVdemoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Zsf8gOmoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zsf8gemoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zsf8gumoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zsf8g-moEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zsf8hOmoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zsf8hemoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zsf8humoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IPhIQemoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZsfVdumoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_Zsf8h-moEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZsgjkOmoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsgjkemoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsgjkumoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zsgjk-moEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsgjlOmoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsgjlemoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsgjlumoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IPkyoOmoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Zsf8iOmoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_Zsgjl-moEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZshKoOmoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZshKoemoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZshKoumoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZshKo-moEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZshKpOmoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZshKpemoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZshKpumoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IPmn0OmoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZsgjmOmoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZshKp-moEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZshxsOmoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZshxsemoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZshxsumoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zshxs-moEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZshxtOmoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZshxtemoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZshxtumoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IPn18emoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZshKqOmoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_Zshxt-moEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZsiYwOmoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsiYwemoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsiYwumoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsiYw-moEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsiYxOmoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsiYxemoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsiYxumoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IPodAemoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZshxuOmoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZsiYx-moEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Zsi_0OmoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zsi_0emoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zsi_0umoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zsi_0-moEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zsi_1OmoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zsi_1emoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zsi_1umoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IPpEEemoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZsiYyOmoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_Zsi_1-moEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Zsi_2emoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zsjm4OmoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zsjm4emoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zsjm4umoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zsjm4-moEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zsjm5OmoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zsjm5emoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IPprIemoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Zsi_2OmoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_Zsjm5umoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Zsjm6OmoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zsjm6emoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZskN8OmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZskN8emoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZskN8umoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZskN8-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZskN9OmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IPqSMemoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Zsjm5-moEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZskN9emoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZskN9-moEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZskN-OmoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZskN-emoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZskN-umoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZskN--moEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZskN_OmoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zsk1AOmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IPq5QemoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZskN9umoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_Zsk1AemoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Zsk1A-moEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zsk1BOmoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zsk1BemoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZslcEOmoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZslcEemoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZslcEumoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZslcE-moEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IPrgUOmoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Zsk1AumoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZslcFOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZsmDIOmoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsmDIemoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsmDIumoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsmDI-moEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsmDJOmoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsmDJemoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsmDJumoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IPrgU-moEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZslcFemoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZsmqMOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZsmqMumoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsmqM-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsmqNOmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsmqNemoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsmqNumoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsmqN-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsmqOOmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IPsHYumoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZsmqMemoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZsmqOemoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZsnRQOmoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsnRQemoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsnRQumoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsnRQ-moEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsnRROmoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsnRRemoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsnRRumoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IPsucumoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZsmqOumoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZsnRR-moEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZsnRSemoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsnRSumoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsnRS-moEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsnRTOmoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zsn4UOmoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zsn4UemoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zsn4UumoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IPtVgumoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZsnRSOmoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_Zsn4U-moEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Zsn4VemoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zsn4VumoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsofYOmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsofYemoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsofYumoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsofY-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsofZOmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IPt8kumoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Zsn4VOmoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZsofZemoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZspGcOmoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZspGcemoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZspGcumoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZspGc-moEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZspGdOmoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZspGdemoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZspGdumoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IPujoumoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZsofZumoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZspGd-moEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZsptgOmoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsptgemoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsptgumoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zsptg-moEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZspthOmoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZspthemoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZspthumoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IPvKsumoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZspGeOmoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZsqUkOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZsqUkumoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsqUk-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsqUlOmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsqUlemoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsqUlumoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsqUl-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsqUmOmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IPwY0OmoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZsqUkemoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_Zsq7oOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Zsq7oumoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zsq7o-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zsq7pOmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zsq7pemoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zsq7pumoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zsq7p-moEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zsq7qOmoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IPw_4emoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Zsq7oemoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZsrisOmoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZsrisumoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zsris-moEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsritOmoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsritemoEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZsritumoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZssJwOmoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZssJwemoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IPxm8emoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZsrisemoEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_ZssJwumoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_ZssJxOmoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZssJxemoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZssJxumoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZssJx-moEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_ZssJyOmoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zssw0OmoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zssw0emoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IPyOAemoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ZssJw-moEeiCH-LqDzrXtQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_Zssw0umoEeiCH-LqDzrXtQ" type="FlowPort_Label" fontName="Segoe UI">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Zssw1OmoEeiCH-LqDzrXtQ" source="PapyrusCSSForceValue">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zssw1emoEeiCH-LqDzrXtQ" key="lineColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zssw1umoEeiCH-LqDzrXtQ" key="fontHeight" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zssw1-moEeiCH-LqDzrXtQ" key="bold" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zssw2OmoEeiCH-LqDzrXtQ" key="italic" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zssw2emoEeiCH-LqDzrXtQ" key="fontColor" value="true"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Zssw2umoEeiCH-LqDzrXtQ" key="fillColor" value="true"/>
+        </eAnnotations>
+        <element xmi:type="uml:Port" href="TLMLibrary.uml#_IPy1EemoEeiCH-LqDzrXtQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Zssw0-moEeiCH-LqDzrXtQ"/>
+      </children>
+    </children>
+    <children xmi:type="notation:Compartment" xmi:id="_UiCCwOmoEeiCH-LqDzrXtQ" type="constraints"/>
+    <children xmi:type="notation:Compartment" xmi:id="_UiCCwemoEeiCH-LqDzrXtQ" type="Parts"/>
+    <children xmi:type="notation:Compartment" xmi:id="_UiCCwumoEeiCH-LqDzrXtQ" type="Proxy Ports"/>
+    <children xmi:type="notation:Compartment" xmi:id="_UiCCw-moEeiCH-LqDzrXtQ" type="Full Ports"/>
+    <children xmi:type="notation:Compartment" xmi:id="_UiCp0OmoEeiCH-LqDzrXtQ" type="References"/>
+    <children xmi:type="notation:Compartment" xmi:id="_UiCp0emoEeiCH-LqDzrXtQ" type="Flow Properties"/>
+    <children xmi:type="notation:Compartment" xmi:id="_UiCp0umoEeiCH-LqDzrXtQ" type="Parameters"/>
+    <element xmi:type="uml:Class" href="TLMLibrary.uml#_IOiQ0OmoEeiCH-LqDzrXtQ"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Uh11gemoEeiCH-LqDzrXtQ" x="2260" y="40"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_UiDQ4OmoEeiCH-LqDzrXtQ" type="StereotypeComment">
+    <styles xmi:type="notation:TitleStyle" xmi:id="_UiDQ4emoEeiCH-LqDzrXtQ"/>
+    <styles xmi:type="notation:EObjectValueStyle" xmi:id="_UiDQ4-moEeiCH-LqDzrXtQ" name="BASE_ELEMENT">
+      <eObjectValue xmi:type="uml:Class" href="TLMLibrary.uml#_IOiQ0OmoEeiCH-LqDzrXtQ"/>
+    </styles>
+    <element xsi:nil="true"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UiDQ4umoEeiCH-LqDzrXtQ" x="200"/>
+  </children>
+  <styles xmi:type="notation:StringValueStyle" xmi:id="_bM5pYYNMEeiqldnwmu4azQ" name="diagram_compatibility_version" stringValue="1.4.0"/>
+  <styles xmi:type="notation:DiagramStyle" xmi:id="_bM5pYoNMEeiqldnwmu4azQ"/>
+  <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_bM5pY4NMEeiqldnwmu4azQ" diagramKindId="org.eclipse.papyrus.sysml14.diagram.blockdefinition">
+    <owner xmi:type="uml:Model" href="TLMLibrary.uml#_dgJ64INLEeiqldnwmu4azQ"/>
+  </styles>
+  <element xmi:type="uml:Model" href="TLMLibrary.uml#_dgJ64INLEeiqldnwmu4azQ"/>
+  <edges xmi:type="notation:Connector" xmi:id="_UaOKkOmoEeiCH-LqDzrXtQ" type="StereotypeCommentLink" source="_UVyWgOmoEeiCH-LqDzrXtQ" target="_UaM8cOmoEeiCH-LqDzrXtQ">
+    <styles xmi:type="notation:FontStyle" xmi:id="_UaOKkemoEeiCH-LqDzrXtQ"/>
+    <styles xmi:type="notation:EObjectValueStyle" xmi:id="_UaOxoOmoEeiCH-LqDzrXtQ" name="BASE_ELEMENT">
+      <eObjectValue xmi:type="uml:Class" href="TLMLibrary.uml#_IIBZIOmoEeiCH-LqDzrXtQ"/>
+    </styles>
+    <element xsi:nil="true"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_UaOKkumoEeiCH-LqDzrXtQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_UaOKk-moEeiCH-LqDzrXtQ"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_UaOKlOmoEeiCH-LqDzrXtQ"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_Ub0GB-moEeiCH-LqDzrXtQ" type="StereotypeCommentLink" source="_Ubk1cOmoEeiCH-LqDzrXtQ" target="_Ub0GA-moEeiCH-LqDzrXtQ">
+    <styles xmi:type="notation:FontStyle" xmi:id="_Ub0GCOmoEeiCH-LqDzrXtQ"/>
+    <styles xmi:type="notation:EObjectValueStyle" xmi:id="_Ub0tEemoEeiCH-LqDzrXtQ" name="BASE_ELEMENT">
+      <eObjectValue xmi:type="uml:Class" href="TLMLibrary.uml#_IMQY4OmoEeiCH-LqDzrXtQ"/>
+    </styles>
+    <element xsi:nil="true"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Ub0GCemoEeiCH-LqDzrXtQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Ub0GCumoEeiCH-LqDzrXtQ"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Ub0tEOmoEeiCH-LqDzrXtQ"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_Uc9Vh-moEeiCH-LqDzrXtQ" type="StereotypeCommentLink" source="_Uctd4OmoEeiCH-LqDzrXtQ" target="_Uc9Vg-moEeiCH-LqDzrXtQ">
+    <styles xmi:type="notation:FontStyle" xmi:id="_Uc9ViOmoEeiCH-LqDzrXtQ"/>
+    <styles xmi:type="notation:EObjectValueStyle" xmi:id="_Uc9VjOmoEeiCH-LqDzrXtQ" name="BASE_ELEMENT">
+      <eObjectValue xmi:type="uml:Class" href="TLMLibrary.uml#_IMZi0emoEeiCH-LqDzrXtQ"/>
+    </styles>
+    <element xsi:nil="true"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Uc9ViemoEeiCH-LqDzrXtQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Uc9ViumoEeiCH-LqDzrXtQ"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Uc9Vi-moEeiCH-LqDzrXtQ"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_UeC6p-moEeiCH-LqDzrXtQ" type="StereotypeCommentLink" source="_UdzqEOmoEeiCH-LqDzrXtQ" target="_UeC6o-moEeiCH-LqDzrXtQ">
+    <styles xmi:type="notation:FontStyle" xmi:id="_UeC6qOmoEeiCH-LqDzrXtQ"/>
+    <styles xmi:type="notation:EObjectValueStyle" xmi:id="_UeC6rOmoEeiCH-LqDzrXtQ" name="BASE_ELEMENT">
+      <eObjectValue xmi:type="uml:Class" href="TLMLibrary.uml#_IMlwEumoEeiCH-LqDzrXtQ"/>
+    </styles>
+    <element xsi:nil="true"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_UeC6qemoEeiCH-LqDzrXtQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_UeC6qumoEeiCH-LqDzrXtQ"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_UeC6q-moEeiCH-LqDzrXtQ"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_UfyAB-moEeiCH-LqDzrXtQ" type="StereotypeCommentLink" source="_Ufco0OmoEeiCH-LqDzrXtQ" target="_UfyAA-moEeiCH-LqDzrXtQ">
+    <styles xmi:type="notation:FontStyle" xmi:id="_UfyACOmoEeiCH-LqDzrXtQ"/>
+    <styles xmi:type="notation:EObjectValueStyle" xmi:id="_UfynE-moEeiCH-LqDzrXtQ" name="BASE_ELEMENT">
+      <eObjectValue xmi:type="uml:Class" href="TLMLibrary.uml#_INRskemoEeiCH-LqDzrXtQ"/>
+    </styles>
+    <element xsi:nil="true"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_UfynEOmoEeiCH-LqDzrXtQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_UfynEemoEeiCH-LqDzrXtQ"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_UfynEumoEeiCH-LqDzrXtQ"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_Ug7PgemoEeiCH-LqDzrXtQ" type="StereotypeCommentLink" source="_Ugr-8OmoEeiCH-LqDzrXtQ" target="_Ug6odemoEeiCH-LqDzrXtQ">
+    <styles xmi:type="notation:FontStyle" xmi:id="_Ug7PgumoEeiCH-LqDzrXtQ"/>
+    <styles xmi:type="notation:EObjectValueStyle" xmi:id="_Ug7PhumoEeiCH-LqDzrXtQ" name="BASE_ELEMENT">
+      <eObjectValue xmi:type="uml:Class" href="TLMLibrary.uml#_IN8a8emoEeiCH-LqDzrXtQ"/>
+    </styles>
+    <element xsi:nil="true"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Ug7Pg-moEeiCH-LqDzrXtQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Ug7PhOmoEeiCH-LqDzrXtQ"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Ug7PhemoEeiCH-LqDzrXtQ"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_UiDQ5OmoEeiCH-LqDzrXtQ" type="StereotypeCommentLink" source="_Uh11gOmoEeiCH-LqDzrXtQ" target="_UiDQ4OmoEeiCH-LqDzrXtQ">
+    <styles xmi:type="notation:FontStyle" xmi:id="_UiDQ5emoEeiCH-LqDzrXtQ"/>
+    <styles xmi:type="notation:EObjectValueStyle" xmi:id="_UiDQ6emoEeiCH-LqDzrXtQ" name="BASE_ELEMENT">
+      <eObjectValue xmi:type="uml:Class" href="TLMLibrary.uml#_IOiQ0OmoEeiCH-LqDzrXtQ"/>
+    </styles>
+    <element xsi:nil="true"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_UiDQ5umoEeiCH-LqDzrXtQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_UiDQ5-moEeiCH-LqDzrXtQ"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_UiDQ6OmoEeiCH-LqDzrXtQ"/>
+  </edges>
+</notation:Diagram>
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/model/TLMLibrary.uml b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/model/TLMLibrary.uml
new file mode 100644
index 0000000..12feebf
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/model/TLMLibrary.uml
@@ -0,0 +1,967 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:DeprecatedElements="http://www.eclipse.org/papyrus/sysml/1.4/SysML/DeprecatedElements" xmlns:PortsAndFlows="http://www.eclipse.org/papyrus/sysml/1.4/SysML/PortsAndFlows" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:omsim="http://www.eclipse.org/papyrus/OMSimulatorProfile/1.0.0" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/papyrus/sysml/1.4/SysML/DeprecatedElements http://www.eclipse.org/papyrus/sysml/1.4/SysML#//deprecatedelements http://www.eclipse.org/papyrus/sysml/1.4/SysML/PortsAndFlows http://www.eclipse.org/papyrus/sysml/1.4/SysML#//portsandflows">
+  <uml:Model xmi:id="_dgJ64INLEeiqldnwmu4azQ" name="TLMLibrary">
+    <packageImport xmi:type="uml:PackageImport" xmi:id="_dlUHwoNLEeiqldnwmu4azQ">
+      <importedPackage xmi:type="uml:Model" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#_0"/>
+    </packageImport>
+    <packageImport xmi:type="uml:PackageImport" xmi:id="_dlmbkINLEeiqldnwmu4azQ">
+      <importedPackage xmi:type="uml:Package" href="pathmap://SysML14_LIBRARIES/SysML-Standard-Library.uml#SysML.package_packagedElement_Libraries"/>
+    </packageImport>
+    <packagedElement xmi:type="uml:Class" xmi:id="_IIBZIOmoEeiCH-LqDzrXtQ" name="Delayed Signal">
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IL2wQOmoEeiCH-LqDzrXtQ" name="value" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Class" xmi:id="_IMQY4OmoEeiCH-LqDzrXtQ" name="1D physical">
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IMUqUOmoEeiCH-LqDzrXtQ" name="state" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IMWfgemoEeiCH-LqDzrXtQ" name="flow" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IMXtoemoEeiCH-LqDzrXtQ" name="effort" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Class" xmi:id="_IMZi0emoEeiCH-LqDzrXtQ" name="1D physical coarse-grained">
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IMdNMOmoEeiCH-LqDzrXtQ" name="state" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IMheoemoEeiCH-LqDzrXtQ" name="flow" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IMj64OmoEeiCH-LqDzrXtQ" name="wave" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IMlJAemoEeiCH-LqDzrXtQ" name="impedance" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Class" xmi:id="_IMlwEumoEeiCH-LqDzrXtQ" name="1D physical fine-grained">
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IMqBgOmoEeiCH-LqDzrXtQ" name="state" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IMtE0emoEeiCH-LqDzrXtQ" name="flow" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IMu6AemoEeiCH-LqDzrXtQ" name="wave1" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IMxWQOmoEeiCH-LqDzrXtQ" name="wave2" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IM0ZkOmoEeiCH-LqDzrXtQ" name="wave3" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IM1AoemoEeiCH-LqDzrXtQ" name="wave4" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IM2OwemoEeiCH-LqDzrXtQ" name="wave5" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IM55IOmoEeiCH-LqDzrXtQ" name="wave6" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IM-KkOmoEeiCH-LqDzrXtQ" name="wave7" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_INB08OmoEeiCH-LqDzrXtQ" name="wave8" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_INDDEemoEeiCH-LqDzrXtQ" name="wave9" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_INFfUOmoEeiCH-LqDzrXtQ" name="wave10" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_INH7kOmoEeiCH-LqDzrXtQ" name="time1" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_INIioumoEeiCH-LqDzrXtQ" name="time2" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_INJJsumoEeiCH-LqDzrXtQ" name="time3" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_INLl8OmoEeiCH-LqDzrXtQ" name="time4" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_INMNAumoEeiCH-LqDzrXtQ" name="time5" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_INNbIOmoEeiCH-LqDzrXtQ" name="time6" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_INOCMOmoEeiCH-LqDzrXtQ" name="time7" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_INOpQemoEeiCH-LqDzrXtQ" name="time8" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_INPQUemoEeiCH-LqDzrXtQ" name="time9" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_INQecOmoEeiCH-LqDzrXtQ" name="time10" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_INRFgemoEeiCH-LqDzrXtQ" name="impedance" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Class" xmi:id="_INRskemoEeiCH-LqDzrXtQ" name="3D physical">
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_INUI0OmoEeiCH-LqDzrXtQ" name="state1" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_INVW8emoEeiCH-LqDzrXtQ" name="state2" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_INXMIOmoEeiCH-LqDzrXtQ" name="state3" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_INZBUemoEeiCH-LqDzrXtQ" name="A11" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_INaPcOmoEeiCH-LqDzrXtQ" name="A12" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_INdSwOmoEeiCH-LqDzrXtQ" name="A13" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_INd50umoEeiCH-LqDzrXtQ" name="A21" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_INfH8OmoEeiCH-LqDzrXtQ" name="A22" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_INjZYOmoEeiCH-LqDzrXtQ" name="A23" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_INlOkOmoEeiCH-LqDzrXtQ" name="A31" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_INnDwemoEeiCH-LqDzrXtQ" name="A32" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_INnq0umoEeiCH-LqDzrXtQ" name="A33" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_INo48OmoEeiCH-LqDzrXtQ" name="flow1" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_INtKYOmoEeiCH-LqDzrXtQ" name="flow2" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_INuYgOmoEeiCH-LqDzrXtQ" name="flow3" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_INwNsOmoEeiCH-LqDzrXtQ" name="flow4" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_INzRAOmoEeiCH-LqDzrXtQ" name="flow5" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IN1GMOmoEeiCH-LqDzrXtQ" name="flow6" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IN1tQOmoEeiCH-LqDzrXtQ" name="effort1" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IN1tQ-moEeiCH-LqDzrXtQ" name="effort2" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IN3icOmoEeiCH-LqDzrXtQ" name="effort3" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IN5XoemoEeiCH-LqDzrXtQ" name="effort4" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IN7M0emoEeiCH-LqDzrXtQ" name="effort5" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IN7z4emoEeiCH-LqDzrXtQ" name="effort6" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Class" xmi:id="_IN8a8emoEeiCH-LqDzrXtQ" name="3D physical coarse-grained">
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IN-3MemoEeiCH-LqDzrXtQ" name="state1" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IOAFUOmoEeiCH-LqDzrXtQ" name="state2" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IOAsYemoEeiCH-LqDzrXtQ" name="state3" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IOChkOmoEeiCH-LqDzrXtQ" name="A1_1" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IOGL8OmoEeiCH-LqDzrXtQ" name="A1_2" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IOJPQemoEeiCH-LqDzrXtQ" name="A1_3" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IOJ2UumoEeiCH-LqDzrXtQ" name="A2_1" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IOKdYumoEeiCH-LqDzrXtQ" name="A2_2" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IOLrgOmoEeiCH-LqDzrXtQ" name="A2_3" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IOM5oOmoEeiCH-LqDzrXtQ" name="A3_1" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IONgsOmoEeiCH-LqDzrXtQ" name="A3_2" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IOOHwemoEeiCH-LqDzrXtQ" name="A3_3" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IOOu0emoEeiCH-LqDzrXtQ" name="flow1" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IOPV4emoEeiCH-LqDzrXtQ" name="flow2" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IORLEOmoEeiCH-LqDzrXtQ" name="flow3" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IOTnUOmoEeiCH-LqDzrXtQ" name="flow4" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IOWqoOmoEeiCH-LqDzrXtQ" name="flow5" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IOXRsumoEeiCH-LqDzrXtQ" name="flow6" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IOX4wumoEeiCH-LqDzrXtQ" name="wave1" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IOZt8OmoEeiCH-LqDzrXtQ" name="wave2" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IOemcOmoEeiCH-LqDzrXtQ" name="wave3" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IOfNgemoEeiCH-LqDzrXtQ" name="wave4" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IOf0kemoEeiCH-LqDzrXtQ" name="wave3" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IOgboemoEeiCH-LqDzrXtQ" name="wave4" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IOhCsemoEeiCH-LqDzrXtQ" name="impedance_t" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IOhpwOmoEeiCH-LqDzrXtQ" name="impedance_r" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Class" xmi:id="_IOiQ0OmoEeiCH-LqDzrXtQ" name="3D physical fine-grained">
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IOkGAemoEeiCH-LqDzrXtQ" name="state1" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IOlUIOmoEeiCH-LqDzrXtQ" name="state2" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IOl7MumoEeiCH-LqDzrXtQ" name="state3A1_1" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IOmiQumoEeiCH-LqDzrXtQ" name="A1_2" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IOnJUumoEeiCH-LqDzrXtQ" name="A1_3" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IOnwYumoEeiCH-LqDzrXtQ" name="A2_1" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IOoXcemoEeiCH-LqDzrXtQ" name="A2_2" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IOo-gOmoEeiCH-LqDzrXtQ" name="A2_3" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IOo-g-moEeiCH-LqDzrXtQ" name="A3_1" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IOplkumoEeiCH-LqDzrXtQ" name="A3_2" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IOqMoumoEeiCH-LqDzrXtQ" name="A3_3" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IOqzsumoEeiCH-LqDzrXtQ" name="flow1" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IOrawemoEeiCH-LqDzrXtQ" name="flow2" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IOsB0emoEeiCH-LqDzrXtQ" name="flow3" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IOso4emoEeiCH-LqDzrXtQ" name="flow4" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IOtP8emoEeiCH-LqDzrXtQ" name="flow5" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IOt3AemoEeiCH-LqDzrXtQ" name="flow6" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IOueEemoEeiCH-LqDzrXtQ" name="wave1_1" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IOvFIumoEeiCH-LqDzrXtQ" name="wave2_1" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IOxhYumoEeiCH-LqDzrXtQ" name="wave3_1" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IOyIcumoEeiCH-LqDzrXtQ" name="wave4_1" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IOyvgumoEeiCH-LqDzrXtQ" name="wave5_1" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IOz9oOmoEeiCH-LqDzrXtQ" name="wave6_1" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IO0ksOmoEeiCH-LqDzrXtQ" name="wave1_2" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IO1LwOmoEeiCH-LqDzrXtQ" name="wave2_2" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IO1Lw-moEeiCH-LqDzrXtQ" name="wave3_2" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IO2Z4emoEeiCH-LqDzrXtQ" name="wave4_2" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IO3oAOmoEeiCH-LqDzrXtQ" name="wave5_2" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IO4PEOmoEeiCH-LqDzrXtQ" name="wave6_2" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IO42IemoEeiCH-LqDzrXtQ" name="wave1_3" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IO7SYOmoEeiCH-LqDzrXtQ" name="wave2_3" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IO-VsOmoEeiCH-LqDzrXtQ" name="wave3_3" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IPBZAemoEeiCH-LqDzrXtQ" name="wave4_3" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IPFqcemoEeiCH-LqDzrXtQ" name="wave5_3" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IPGRgumoEeiCH-LqDzrXtQ" name="wave6_3" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IPHfoemoEeiCH-LqDzrXtQ" name="wave1_4" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IPIGsemoEeiCH-LqDzrXtQ" name="wave2_4" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IPItwemoEeiCH-LqDzrXtQ" name="wave3_4" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IPJU0emoEeiCH-LqDzrXtQ" name="wave4_4" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IPJ74emoEeiCH-LqDzrXtQ" name="wave5_4" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IPKi8emoEeiCH-LqDzrXtQ" name="wave6_4" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IPLKAemoEeiCH-LqDzrXtQ" name="wave1_5" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IPLxEemoEeiCH-LqDzrXtQ" name="wave2_5" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IPMYIemoEeiCH-LqDzrXtQ" name="wave3_5" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IPM_MemoEeiCH-LqDzrXtQ" name="wave4_5" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IPNmQemoEeiCH-LqDzrXtQ" name="wave5_5" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IPONUemoEeiCH-LqDzrXtQ" name="wave6_5" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IPO0YemoEeiCH-LqDzrXtQ" name="wave1_6" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IPPbcemoEeiCH-LqDzrXtQ" name="wave2_6" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IPQCgemoEeiCH-LqDzrXtQ" name="wave3_6" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IPQpkemoEeiCH-LqDzrXtQ" name="wave4_6" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IPRQoOmoEeiCH-LqDzrXtQ" name="wave5_6" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IPR3sOmoEeiCH-LqDzrXtQ" name="wave6_6" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IPSewemoEeiCH-LqDzrXtQ" name="wave1_7" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IPTF0emoEeiCH-LqDzrXtQ" name="wave2_7" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IPTs4emoEeiCH-LqDzrXtQ" name="wave3_7" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IPUT8umoEeiCH-LqDzrXtQ" name="wave4_7" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IPU7AumoEeiCH-LqDzrXtQ" name="wave5_7" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IPViEumoEeiCH-LqDzrXtQ" name="wave6_7" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IPXXQOmoEeiCH-LqDzrXtQ" name="wave1_8" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IPZzgOmoEeiCH-LqDzrXtQ" name="wave2_8" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IPbBoemoEeiCH-LqDzrXtQ" name="wave3_8" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IPdd4emoEeiCH-LqDzrXtQ" name="wave4_8" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IPesAOmoEeiCH-LqDzrXtQ" name="wave5_8" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IPfTEOmoEeiCH-LqDzrXtQ" name="wave6_8" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IPf6IemoEeiCH-LqDzrXtQ" name="wave1_9" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IPghMemoEeiCH-LqDzrXtQ" name="wave2_9" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IPhIQemoEeiCH-LqDzrXtQ" name="wave3_9" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IPkyoOmoEeiCH-LqDzrXtQ" name="wave4_9" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IPmn0OmoEeiCH-LqDzrXtQ" name="wave5_9" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IPn18emoEeiCH-LqDzrXtQ" name="wave6_9" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IPodAemoEeiCH-LqDzrXtQ" name="wave1_10" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IPpEEemoEeiCH-LqDzrXtQ" name="wave2_10" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IPprIemoEeiCH-LqDzrXtQ" name="wave3_10" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IPqSMemoEeiCH-LqDzrXtQ" name="wave4_10" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IPq5QemoEeiCH-LqDzrXtQ" name="wave5_10" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IPrgUOmoEeiCH-LqDzrXtQ" name="wave6_10" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IPrgU-moEeiCH-LqDzrXtQ" name="time1" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IPsHYumoEeiCH-LqDzrXtQ" name="time2" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IPsucumoEeiCH-LqDzrXtQ" name="time3" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IPtVgumoEeiCH-LqDzrXtQ" name="time4" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IPt8kumoEeiCH-LqDzrXtQ" name="time5" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IPujoumoEeiCH-LqDzrXtQ" name="time6" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IPvKsumoEeiCH-LqDzrXtQ" name="time7" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IPwY0OmoEeiCH-LqDzrXtQ" name="time8" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IPw_4emoEeiCH-LqDzrXtQ" name="time9" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IPxm8emoEeiCH-LqDzrXtQ" name="time10" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IPyOAemoEeiCH-LqDzrXtQ" name="impedance_t" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_IPy1EemoEeiCH-LqDzrXtQ" name="impedance_r" aggregation="composite">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+    </packagedElement>
+    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_dlOBEINLEeiqldnwmu4azQ">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dlOBEYNLEeiqldnwmu4azQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
+        <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/sysml/1.4/SysML#/"/>
+      </eAnnotations>
+      <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML14_PROFILES/SysML.profile.uml#SysML"/>
+    </profileApplication>
+    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_dlUHsINLEeiqldnwmu4azQ">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dlUHsYNLEeiqldnwmu4azQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
+        <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/sysml/1.4/SysML#//activities"/>
+      </eAnnotations>
+      <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML14_PROFILES/SysML.profile.uml#SysML.package_packagedElement_Activities"/>
+    </profileApplication>
+    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_dlUHsoNLEeiqldnwmu4azQ">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dlUHs4NLEeiqldnwmu4azQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
+        <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/sysml/1.4/SysML#//allocations"/>
+      </eAnnotations>
+      <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML14_PROFILES/SysML.profile.uml#SysML.package_packagedElement_Allocations"/>
+    </profileApplication>
+    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_dlUHtINLEeiqldnwmu4azQ">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dlUHtYNLEeiqldnwmu4azQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
+        <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/sysml/1.4/SysML#//blocks"/>
+      </eAnnotations>
+      <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML14_PROFILES/SysML.profile.uml#SysML.package_packagedElement_Blocks"/>
+    </profileApplication>
+    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_dlUHtoNLEeiqldnwmu4azQ">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dlUHt4NLEeiqldnwmu4azQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
+        <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/sysml/1.4/SysML#//constraintblocks"/>
+      </eAnnotations>
+      <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML14_PROFILES/SysML.profile.uml#SysML.package_packagedElement_ConstraintBlocks"/>
+    </profileApplication>
+    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_dlUHuINLEeiqldnwmu4azQ">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dlUHuYNLEeiqldnwmu4azQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
+        <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/sysml/1.4/SysML#//deprecatedelements"/>
+      </eAnnotations>
+      <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML14_PROFILES/SysML.profile.uml#SysML.package_packagedElement_DeprecatedElements"/>
+    </profileApplication>
+    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_dlUHuoNLEeiqldnwmu4azQ">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dlUHu4NLEeiqldnwmu4azQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
+        <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/sysml/1.4/SysML#//modelelements"/>
+      </eAnnotations>
+      <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML14_PROFILES/SysML.profile.uml#SysML.package_packagedElement_ModelElements"/>
+    </profileApplication>
+    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_dlUHvINLEeiqldnwmu4azQ">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dlUHvYNLEeiqldnwmu4azQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
+        <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/sysml/1.4/SysML#//portsandflows"/>
+      </eAnnotations>
+      <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML14_PROFILES/SysML.profile.uml#SysML.package_packagedElement_Ports_u0026Flows"/>
+    </profileApplication>
+    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_dlUHvoNLEeiqldnwmu4azQ">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dlUHv4NLEeiqldnwmu4azQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
+        <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/sysml/1.4/SysML#//requirements"/>
+      </eAnnotations>
+      <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML14_PROFILES/SysML.profile.uml#SysML.package_packagedElement_Requirements"/>
+    </profileApplication>
+    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_dlUHwINLEeiqldnwmu4azQ">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_dlUHwYNLEeiqldnwmu4azQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
+        <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/uml2/5.0.0/UML/Profile/Standard#/"/>
+      </eAnnotations>
+      <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
+    </profileApplication>
+    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_D4l4wYN1Eeiqldnwmu4azQ">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_D4l4woN1Eeiqldnwmu4azQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
+        <references xmi:type="ecore:EPackage" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ"/>
+      </eAnnotations>
+      <appliedProfile xmi:type="uml:Profile" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#ActionLanguage"/>
+    </profileApplication>
+    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_XoNR4OmaEein2Yvq9c5tZw">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XoPHEOmaEein2Yvq9c5tZw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+        <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/OMSimulatorProfile/1.0.0#/"/>
+      </eAnnotations>
+      <appliedProfile xmi:type="uml:Profile" href="pathmap://PAPYRUS_SSP_PROFILE/OMSimulator.profile.uml#_zIAAYLgtEeizUOX0GlzCzg"/>
+    </profileApplication>
+    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_Lt9f4Om6EeiE1uElBmqxmQ">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_LuENkOm6EeiE1uElBmqxmQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
+        <references xmi:type="ecore:EPackage" href="http://org.eclipse.papyrus.moka.ssp.profile/SSPProfile#/"/>
+      </eAnnotations>
+      <appliedProfile xmi:type="uml:Profile" href="platform:/plugin/org.eclipse.papyrus.moka.ssp.profile/model/model.profile.uml#_T9IHYB-HEeegP6aMHpCV8A"/>
+    </profileApplication>
+  </uml:Model>
+  <PortsAndFlows:InterfaceBlock xmi:id="_ILm4oOmoEeiCH-LqDzrXtQ" base_Class="_IIBZIOmoEeiCH-LqDzrXtQ"/>
+  <omsim:TLMInterfaceDefinition xmi:id="_ILvbgOmoEeiCH-LqDzrXtQ" base_Class="_IIBZIOmoEeiCH-LqDzrXtQ" dimensions="1"/>
+  <DeprecatedElements:FlowPort xmi:id="_IMJEIOmoEeiCH-LqDzrXtQ" base_Port="_IL2wQOmoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IMOjsOmoEeiCH-LqDzrXtQ" base_Port="_IL2wQOmoEeiCH-LqDzrXtQ"/>
+  <PortsAndFlows:InterfaceBlock xmi:id="_IMRnAOmoEeiCH-LqDzrXtQ" base_Class="_IMQY4OmoEeiCH-LqDzrXtQ"/>
+  <omsim:TLMInterfaceDefinition xmi:id="_IMUDQOmoEeiCH-LqDzrXtQ" base_Class="_IMQY4OmoEeiCH-LqDzrXtQ" dimensions="1"/>
+  <DeprecatedElements:FlowPort xmi:id="_IMV4cOmoEeiCH-LqDzrXtQ" base_Port="_IMUqUOmoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IMWfgOmoEeiCH-LqDzrXtQ" base_Port="_IMUqUOmoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IMXGkOmoEeiCH-LqDzrXtQ" base_Port="_IMWfgemoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IMXtoOmoEeiCH-LqDzrXtQ" base_Port="_IMWfgemoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IMY7wOmoEeiCH-LqDzrXtQ" base_Port="_IMXtoemoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IMZi0OmoEeiCH-LqDzrXtQ" base_Port="_IMXtoemoEeiCH-LqDzrXtQ"/>
+  <PortsAndFlows:InterfaceBlock xmi:id="_IMaw8OmoEeiCH-LqDzrXtQ" base_Class="_IMZi0emoEeiCH-LqDzrXtQ"/>
+  <omsim:TLMInterfaceDefinition xmi:id="_IMb_EOmoEeiCH-LqDzrXtQ" base_Class="_IMZi0emoEeiCH-LqDzrXtQ" dimensions="1"/>
+  <DeprecatedElements:FlowPort xmi:id="_IMfpcOmoEeiCH-LqDzrXtQ" base_Port="_IMdNMOmoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IMheoOmoEeiCH-LqDzrXtQ" base_Port="_IMdNMOmoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IMiswOmoEeiCH-LqDzrXtQ" base_Port="_IMheoemoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IMjT0OmoEeiCH-LqDzrXtQ" base_Port="_IMheoemoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IMkh8OmoEeiCH-LqDzrXtQ" base_Port="_IMj64OmoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IMlJAOmoEeiCH-LqDzrXtQ" base_Port="_IMj64OmoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IMlwEOmoEeiCH-LqDzrXtQ" base_Port="_IMlJAemoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IMlwEemoEeiCH-LqDzrXtQ" base_Port="_IMlJAemoEeiCH-LqDzrXtQ"/>
+  <PortsAndFlows:InterfaceBlock xmi:id="_IMm-MOmoEeiCH-LqDzrXtQ" base_Class="_IMlwEumoEeiCH-LqDzrXtQ"/>
+  <omsim:TLMInterfaceDefinition xmi:id="_IMozYOmoEeiCH-LqDzrXtQ" base_Class="_IMlwEumoEeiCH-LqDzrXtQ" dimensions="1"/>
+  <DeprecatedElements:FlowPort xmi:id="_IMr2sOmoEeiCH-LqDzrXtQ" base_Port="_IMqBgOmoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IMtE0OmoEeiCH-LqDzrXtQ" base_Port="_IMqBgOmoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IMuS8OmoEeiCH-LqDzrXtQ" base_Port="_IMtE0emoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IMu6AOmoEeiCH-LqDzrXtQ" base_Port="_IMtE0emoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IMvhEOmoEeiCH-LqDzrXtQ" base_Port="_IMu6AemoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IMwvMOmoEeiCH-LqDzrXtQ" base_Port="_IMu6AemoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IMzLcOmoEeiCH-LqDzrXtQ" base_Port="_IMxWQOmoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IMzygOmoEeiCH-LqDzrXtQ" base_Port="_IMxWQOmoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IM0ZkemoEeiCH-LqDzrXtQ" base_Port="_IM0ZkOmoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IM1AoOmoEeiCH-LqDzrXtQ" base_Port="_IM0ZkOmoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IM1nsOmoEeiCH-LqDzrXtQ" base_Port="_IM1AoemoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IM2OwOmoEeiCH-LqDzrXtQ" base_Port="_IM1AoemoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IM3c4OmoEeiCH-LqDzrXtQ" base_Port="_IM2OwemoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IM5SEOmoEeiCH-LqDzrXtQ" base_Port="_IM2OwemoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IM7uUOmoEeiCH-LqDzrXtQ" base_Port="_IM55IOmoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IM88cOmoEeiCH-LqDzrXtQ" base_Port="_IM55IOmoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IM_YsOmoEeiCH-LqDzrXtQ" base_Port="_IM-KkOmoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_INBN4OmoEeiCH-LqDzrXtQ" base_Port="_IM-KkOmoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_INCcAOmoEeiCH-LqDzrXtQ" base_Port="_INB08OmoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_INDDEOmoEeiCH-LqDzrXtQ" base_Port="_INB08OmoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_INDqIOmoEeiCH-LqDzrXtQ" base_Port="_INDDEemoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_INE4QOmoEeiCH-LqDzrXtQ" base_Port="_INDDEemoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_INGGYOmoEeiCH-LqDzrXtQ" base_Port="_INFfUOmoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_INHUgOmoEeiCH-LqDzrXtQ" base_Port="_INFfUOmoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_INIioOmoEeiCH-LqDzrXtQ" base_Port="_INH7kOmoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_INIioemoEeiCH-LqDzrXtQ" base_Port="_INH7kOmoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_INJJsOmoEeiCH-LqDzrXtQ" base_Port="_INIioumoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_INJJsemoEeiCH-LqDzrXtQ" base_Port="_INIioumoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_INJwwOmoEeiCH-LqDzrXtQ" base_Port="_INJJsumoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_INJwwemoEeiCH-LqDzrXtQ" base_Port="_INJJsumoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_INMNAOmoEeiCH-LqDzrXtQ" base_Port="_INLl8OmoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_INMNAemoEeiCH-LqDzrXtQ" base_Port="_INLl8OmoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_INM0EOmoEeiCH-LqDzrXtQ" base_Port="_INMNAumoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_INM0EemoEeiCH-LqDzrXtQ" base_Port="_INMNAumoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_INNbIemoEeiCH-LqDzrXtQ" base_Port="_INNbIOmoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_INNbIumoEeiCH-LqDzrXtQ" base_Port="_INNbIOmoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_INOCMemoEeiCH-LqDzrXtQ" base_Port="_INOCMOmoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_INOpQOmoEeiCH-LqDzrXtQ" base_Port="_INOCMOmoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_INOpQumoEeiCH-LqDzrXtQ" base_Port="_INOpQemoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_INPQUOmoEeiCH-LqDzrXtQ" base_Port="_INOpQemoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_INP3YOmoEeiCH-LqDzrXtQ" base_Port="_INPQUemoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_INP3YemoEeiCH-LqDzrXtQ" base_Port="_INPQUemoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_INQecemoEeiCH-LqDzrXtQ" base_Port="_INQecOmoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_INRFgOmoEeiCH-LqDzrXtQ" base_Port="_INQecOmoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_INRFgumoEeiCH-LqDzrXtQ" base_Port="_INRFgemoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_INRskOmoEeiCH-LqDzrXtQ" base_Port="_INRFgemoEeiCH-LqDzrXtQ"/>
+  <PortsAndFlows:InterfaceBlock xmi:id="_INSToOmoEeiCH-LqDzrXtQ" base_Class="_INRskemoEeiCH-LqDzrXtQ"/>
+  <omsim:TLMInterfaceDefinition xmi:id="_INThwOmoEeiCH-LqDzrXtQ" base_Class="_INRskemoEeiCH-LqDzrXtQ" dimensions="3"/>
+  <DeprecatedElements:FlowPort xmi:id="_INUv4OmoEeiCH-LqDzrXtQ" base_Port="_INUI0OmoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_INVW8OmoEeiCH-LqDzrXtQ" base_Port="_INUI0OmoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_INV-AOmoEeiCH-LqDzrXtQ" base_Port="_INVW8emoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_INWlEOmoEeiCH-LqDzrXtQ" base_Port="_INVW8emoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_INXzMOmoEeiCH-LqDzrXtQ" base_Port="_INXMIOmoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_INZBUOmoEeiCH-LqDzrXtQ" base_Port="_INXMIOmoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_INZoYOmoEeiCH-LqDzrXtQ" base_Port="_INZBUemoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_INZoYemoEeiCH-LqDzrXtQ" base_Port="_INZBUemoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_INbdkOmoEeiCH-LqDzrXtQ" base_Port="_INaPcOmoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_INcrsOmoEeiCH-LqDzrXtQ" base_Port="_INaPcOmoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_INd50OmoEeiCH-LqDzrXtQ" base_Port="_INdSwOmoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_INd50emoEeiCH-LqDzrXtQ" base_Port="_INdSwOmoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_INeg4OmoEeiCH-LqDzrXtQ" base_Port="_INd50umoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_INeg4emoEeiCH-LqDzrXtQ" base_Port="_INd50umoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_INg9IOmoEeiCH-LqDzrXtQ" base_Port="_INfH8OmoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_INiyUOmoEeiCH-LqDzrXtQ" base_Port="_INfH8OmoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_INjZYemoEeiCH-LqDzrXtQ" base_Port="_INjZYOmoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_INkAcOmoEeiCH-LqDzrXtQ" base_Port="_INjZYOmoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_INmcsOmoEeiCH-LqDzrXtQ" base_Port="_INlOkOmoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_INnDwOmoEeiCH-LqDzrXtQ" base_Port="_INlOkOmoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_INnq0OmoEeiCH-LqDzrXtQ" base_Port="_INnDwemoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_INnq0emoEeiCH-LqDzrXtQ" base_Port="_INnDwemoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_INoR4OmoEeiCH-LqDzrXtQ" base_Port="_INnq0umoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_INoR4emoEeiCH-LqDzrXtQ" base_Port="_INnq0umoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_INquIOmoEeiCH-LqDzrXtQ" base_Port="_INo48OmoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_INsjUOmoEeiCH-LqDzrXtQ" base_Port="_INo48OmoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_INtxcOmoEeiCH-LqDzrXtQ" base_Port="_INtKYOmoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_INtxcemoEeiCH-LqDzrXtQ" base_Port="_INtKYOmoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_INuYgemoEeiCH-LqDzrXtQ" base_Port="_INuYgOmoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_INvmoOmoEeiCH-LqDzrXtQ" base_Port="_INuYgOmoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_INxb0OmoEeiCH-LqDzrXtQ" base_Port="_INwNsOmoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_INyp8OmoEeiCH-LqDzrXtQ" base_Port="_INwNsOmoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IN0fIOmoEeiCH-LqDzrXtQ" base_Port="_INzRAOmoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IN0fIemoEeiCH-LqDzrXtQ" base_Port="_INzRAOmoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IN1GMemoEeiCH-LqDzrXtQ" base_Port="_IN1GMOmoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IN1GMumoEeiCH-LqDzrXtQ" base_Port="_IN1GMOmoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IN1tQemoEeiCH-LqDzrXtQ" base_Port="_IN1tQOmoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IN1tQumoEeiCH-LqDzrXtQ" base_Port="_IN1tQOmoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IN2UUOmoEeiCH-LqDzrXtQ" base_Port="_IN1tQ-moEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IN2UUemoEeiCH-LqDzrXtQ" base_Port="_IN1tQ-moEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IN4JgOmoEeiCH-LqDzrXtQ" base_Port="_IN3icOmoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IN5XoOmoEeiCH-LqDzrXtQ" base_Port="_IN3icOmoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IN6lwOmoEeiCH-LqDzrXtQ" base_Port="_IN5XoemoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IN7M0OmoEeiCH-LqDzrXtQ" base_Port="_IN5XoemoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IN7M0umoEeiCH-LqDzrXtQ" base_Port="_IN7M0emoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IN7z4OmoEeiCH-LqDzrXtQ" base_Port="_IN7M0emoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IN7z4umoEeiCH-LqDzrXtQ" base_Port="_IN7z4emoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IN8a8OmoEeiCH-LqDzrXtQ" base_Port="_IN7z4emoEeiCH-LqDzrXtQ"/>
+  <PortsAndFlows:InterfaceBlock xmi:id="_IN9pEOmoEeiCH-LqDzrXtQ" base_Class="_IN8a8emoEeiCH-LqDzrXtQ"/>
+  <omsim:TLMInterfaceDefinition xmi:id="_IN-3MOmoEeiCH-LqDzrXtQ" base_Class="_IN8a8emoEeiCH-LqDzrXtQ" dimensions="3"/>
+  <DeprecatedElements:FlowPort xmi:id="_IN_eQOmoEeiCH-LqDzrXtQ" base_Port="_IN-3MemoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IN_eQemoEeiCH-LqDzrXtQ" base_Port="_IN-3MemoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IOAFUemoEeiCH-LqDzrXtQ" base_Port="_IOAFUOmoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IOAsYOmoEeiCH-LqDzrXtQ" base_Port="_IOAFUOmoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IOAsYumoEeiCH-LqDzrXtQ" base_Port="_IOAsYemoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IOB6gOmoEeiCH-LqDzrXtQ" base_Port="_IOAsYemoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IODvsOmoEeiCH-LqDzrXtQ" base_Port="_IOChkOmoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IOFk4OmoEeiCH-LqDzrXtQ" base_Port="_IOChkOmoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IOIoMOmoEeiCH-LqDzrXtQ" base_Port="_IOGL8OmoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IOJPQOmoEeiCH-LqDzrXtQ" base_Port="_IOGL8OmoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IOJ2UOmoEeiCH-LqDzrXtQ" base_Port="_IOJPQemoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IOJ2UemoEeiCH-LqDzrXtQ" base_Port="_IOJPQemoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IOKdYOmoEeiCH-LqDzrXtQ" base_Port="_IOJ2UumoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IOKdYemoEeiCH-LqDzrXtQ" base_Port="_IOJ2UumoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IOLEcOmoEeiCH-LqDzrXtQ" base_Port="_IOKdYumoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IOLEcemoEeiCH-LqDzrXtQ" base_Port="_IOKdYumoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IOMSkOmoEeiCH-LqDzrXtQ" base_Port="_IOLrgOmoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IOMSkemoEeiCH-LqDzrXtQ" base_Port="_IOLrgOmoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IOM5oemoEeiCH-LqDzrXtQ" base_Port="_IOM5oOmoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IOM5oumoEeiCH-LqDzrXtQ" base_Port="_IOM5oOmoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IONgsemoEeiCH-LqDzrXtQ" base_Port="_IONgsOmoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IOOHwOmoEeiCH-LqDzrXtQ" base_Port="_IONgsOmoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IOOHwumoEeiCH-LqDzrXtQ" base_Port="_IOOHwemoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IOOu0OmoEeiCH-LqDzrXtQ" base_Port="_IOOHwemoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IOOu0umoEeiCH-LqDzrXtQ" base_Port="_IOOu0emoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IOPV4OmoEeiCH-LqDzrXtQ" base_Port="_IOOu0emoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IOPV4umoEeiCH-LqDzrXtQ" base_Port="_IOPV4emoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IOP88OmoEeiCH-LqDzrXtQ" base_Port="_IOPV4emoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IOSZMOmoEeiCH-LqDzrXtQ" base_Port="_IORLEOmoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IOSZMemoEeiCH-LqDzrXtQ" base_Port="_IORLEOmoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IOVcgOmoEeiCH-LqDzrXtQ" base_Port="_IOTnUOmoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IOWDkOmoEeiCH-LqDzrXtQ" base_Port="_IOTnUOmoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IOXRsOmoEeiCH-LqDzrXtQ" base_Port="_IOWqoOmoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IOXRsemoEeiCH-LqDzrXtQ" base_Port="_IOWqoOmoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IOX4wOmoEeiCH-LqDzrXtQ" base_Port="_IOXRsumoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IOX4wemoEeiCH-LqDzrXtQ" base_Port="_IOXRsumoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IOYf0OmoEeiCH-LqDzrXtQ" base_Port="_IOX4wumoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IOYf0emoEeiCH-LqDzrXtQ" base_Port="_IOX4wumoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IOaVAOmoEeiCH-LqDzrXtQ" base_Port="_IOZt8OmoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IOd_YOmoEeiCH-LqDzrXtQ" base_Port="_IOZt8OmoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IOemcemoEeiCH-LqDzrXtQ" base_Port="_IOemcOmoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IOfNgOmoEeiCH-LqDzrXtQ" base_Port="_IOemcOmoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IOfNgumoEeiCH-LqDzrXtQ" base_Port="_IOfNgemoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IOf0kOmoEeiCH-LqDzrXtQ" base_Port="_IOfNgemoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IOf0kumoEeiCH-LqDzrXtQ" base_Port="_IOf0kemoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IOgboOmoEeiCH-LqDzrXtQ" base_Port="_IOf0kemoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IOgboumoEeiCH-LqDzrXtQ" base_Port="_IOgboemoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IOhCsOmoEeiCH-LqDzrXtQ" base_Port="_IOgboemoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IOhCsumoEeiCH-LqDzrXtQ" base_Port="_IOhCsemoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IOhCs-moEeiCH-LqDzrXtQ" base_Port="_IOhCsemoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IOhpwemoEeiCH-LqDzrXtQ" base_Port="_IOhpwOmoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IOhpwumoEeiCH-LqDzrXtQ" base_Port="_IOhpwOmoEeiCH-LqDzrXtQ"/>
+  <PortsAndFlows:InterfaceBlock xmi:id="_IOi34OmoEeiCH-LqDzrXtQ" base_Class="_IOiQ0OmoEeiCH-LqDzrXtQ"/>
+  <omsim:TLMInterfaceDefinition xmi:id="_IOkGAOmoEeiCH-LqDzrXtQ" base_Class="_IOiQ0OmoEeiCH-LqDzrXtQ" dimensions="3"/>
+  <DeprecatedElements:FlowPort xmi:id="_IOktEOmoEeiCH-LqDzrXtQ" base_Port="_IOkGAemoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IOktEemoEeiCH-LqDzrXtQ" base_Port="_IOkGAemoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IOl7MOmoEeiCH-LqDzrXtQ" base_Port="_IOlUIOmoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IOl7MemoEeiCH-LqDzrXtQ" base_Port="_IOlUIOmoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IOmiQOmoEeiCH-LqDzrXtQ" base_Port="_IOl7MumoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IOmiQemoEeiCH-LqDzrXtQ" base_Port="_IOl7MumoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IOnJUOmoEeiCH-LqDzrXtQ" base_Port="_IOmiQumoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IOnJUemoEeiCH-LqDzrXtQ" base_Port="_IOmiQumoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IOnwYOmoEeiCH-LqDzrXtQ" base_Port="_IOnJUumoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IOnwYemoEeiCH-LqDzrXtQ" base_Port="_IOnJUumoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IOnwY-moEeiCH-LqDzrXtQ" base_Port="_IOnwYumoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IOoXcOmoEeiCH-LqDzrXtQ" base_Port="_IOnwYumoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IOoXcumoEeiCH-LqDzrXtQ" base_Port="_IOoXcemoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IOoXc-moEeiCH-LqDzrXtQ" base_Port="_IOoXcemoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IOo-gemoEeiCH-LqDzrXtQ" base_Port="_IOo-gOmoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IOo-gumoEeiCH-LqDzrXtQ" base_Port="_IOo-gOmoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IOplkOmoEeiCH-LqDzrXtQ" base_Port="_IOo-g-moEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IOplkemoEeiCH-LqDzrXtQ" base_Port="_IOo-g-moEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IOqMoOmoEeiCH-LqDzrXtQ" base_Port="_IOplkumoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IOqMoemoEeiCH-LqDzrXtQ" base_Port="_IOplkumoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IOqzsOmoEeiCH-LqDzrXtQ" base_Port="_IOqMoumoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IOqzsemoEeiCH-LqDzrXtQ" base_Port="_IOqMoumoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IOqzs-moEeiCH-LqDzrXtQ" base_Port="_IOqzsumoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IOrawOmoEeiCH-LqDzrXtQ" base_Port="_IOqzsumoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IOrawumoEeiCH-LqDzrXtQ" base_Port="_IOrawemoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IOsB0OmoEeiCH-LqDzrXtQ" base_Port="_IOrawemoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IOsB0umoEeiCH-LqDzrXtQ" base_Port="_IOsB0emoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IOso4OmoEeiCH-LqDzrXtQ" base_Port="_IOsB0emoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IOso4umoEeiCH-LqDzrXtQ" base_Port="_IOso4emoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IOtP8OmoEeiCH-LqDzrXtQ" base_Port="_IOso4emoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IOtP8umoEeiCH-LqDzrXtQ" base_Port="_IOtP8emoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IOt3AOmoEeiCH-LqDzrXtQ" base_Port="_IOtP8emoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IOt3AumoEeiCH-LqDzrXtQ" base_Port="_IOt3AemoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IOueEOmoEeiCH-LqDzrXtQ" base_Port="_IOt3AemoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IOvFIOmoEeiCH-LqDzrXtQ" base_Port="_IOueEemoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IOvFIemoEeiCH-LqDzrXtQ" base_Port="_IOueEemoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IOxhYOmoEeiCH-LqDzrXtQ" base_Port="_IOvFIumoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IOxhYemoEeiCH-LqDzrXtQ" base_Port="_IOvFIumoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IOyIcOmoEeiCH-LqDzrXtQ" base_Port="_IOxhYumoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IOyIcemoEeiCH-LqDzrXtQ" base_Port="_IOxhYumoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IOyvgOmoEeiCH-LqDzrXtQ" base_Port="_IOyIcumoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IOyvgemoEeiCH-LqDzrXtQ" base_Port="_IOyIcumoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IOzWkOmoEeiCH-LqDzrXtQ" base_Port="_IOyvgumoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IOzWkemoEeiCH-LqDzrXtQ" base_Port="_IOyvgumoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IOz9oemoEeiCH-LqDzrXtQ" base_Port="_IOz9oOmoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IOz9oumoEeiCH-LqDzrXtQ" base_Port="_IOz9oOmoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IO0ksemoEeiCH-LqDzrXtQ" base_Port="_IO0ksOmoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IO0ksumoEeiCH-LqDzrXtQ" base_Port="_IO0ksOmoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IO1LwemoEeiCH-LqDzrXtQ" base_Port="_IO1LwOmoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IO1LwumoEeiCH-LqDzrXtQ" base_Port="_IO1LwOmoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IO1y0OmoEeiCH-LqDzrXtQ" base_Port="_IO1Lw-moEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IO2Z4OmoEeiCH-LqDzrXtQ" base_Port="_IO1Lw-moEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IO3A8OmoEeiCH-LqDzrXtQ" base_Port="_IO2Z4emoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IO3A8emoEeiCH-LqDzrXtQ" base_Port="_IO2Z4emoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IO3oAemoEeiCH-LqDzrXtQ" base_Port="_IO3oAOmoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IO3oAumoEeiCH-LqDzrXtQ" base_Port="_IO3oAOmoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IO4PEemoEeiCH-LqDzrXtQ" base_Port="_IO4PEOmoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IO42IOmoEeiCH-LqDzrXtQ" base_Port="_IO4PEOmoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IO42IumoEeiCH-LqDzrXtQ" base_Port="_IO42IemoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IO6rUOmoEeiCH-LqDzrXtQ" base_Port="_IO42IemoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IO75cOmoEeiCH-LqDzrXtQ" base_Port="_IO7SYOmoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IO9HkOmoEeiCH-LqDzrXtQ" base_Port="_IO7SYOmoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IO_j0OmoEeiCH-LqDzrXtQ" base_Port="_IO-VsOmoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IPBZAOmoEeiCH-LqDzrXtQ" base_Port="_IO-VsOmoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IPFDYOmoEeiCH-LqDzrXtQ" base_Port="_IPBZAemoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IPFqcOmoEeiCH-LqDzrXtQ" base_Port="_IPBZAemoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IPGRgOmoEeiCH-LqDzrXtQ" base_Port="_IPFqcemoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IPGRgemoEeiCH-LqDzrXtQ" base_Port="_IPFqcemoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IPG4kOmoEeiCH-LqDzrXtQ" base_Port="_IPGRgumoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IPHfoOmoEeiCH-LqDzrXtQ" base_Port="_IPGRgumoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IPHfoumoEeiCH-LqDzrXtQ" base_Port="_IPHfoemoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IPIGsOmoEeiCH-LqDzrXtQ" base_Port="_IPHfoemoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IPIGsumoEeiCH-LqDzrXtQ" base_Port="_IPIGsemoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IPItwOmoEeiCH-LqDzrXtQ" base_Port="_IPIGsemoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IPItwumoEeiCH-LqDzrXtQ" base_Port="_IPItwemoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IPJU0OmoEeiCH-LqDzrXtQ" base_Port="_IPItwemoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IPJU0umoEeiCH-LqDzrXtQ" base_Port="_IPJU0emoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IPJ74OmoEeiCH-LqDzrXtQ" base_Port="_IPJU0emoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IPJ74umoEeiCH-LqDzrXtQ" base_Port="_IPJ74emoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IPKi8OmoEeiCH-LqDzrXtQ" base_Port="_IPJ74emoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IPKi8umoEeiCH-LqDzrXtQ" base_Port="_IPKi8emoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IPLKAOmoEeiCH-LqDzrXtQ" base_Port="_IPKi8emoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IPLKAumoEeiCH-LqDzrXtQ" base_Port="_IPLKAemoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IPLxEOmoEeiCH-LqDzrXtQ" base_Port="_IPLKAemoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IPLxEumoEeiCH-LqDzrXtQ" base_Port="_IPLxEemoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IPMYIOmoEeiCH-LqDzrXtQ" base_Port="_IPLxEemoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IPMYIumoEeiCH-LqDzrXtQ" base_Port="_IPMYIemoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IPM_MOmoEeiCH-LqDzrXtQ" base_Port="_IPMYIemoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IPM_MumoEeiCH-LqDzrXtQ" base_Port="_IPM_MemoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IPNmQOmoEeiCH-LqDzrXtQ" base_Port="_IPM_MemoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IPNmQumoEeiCH-LqDzrXtQ" base_Port="_IPNmQemoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IPONUOmoEeiCH-LqDzrXtQ" base_Port="_IPNmQemoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IPONUumoEeiCH-LqDzrXtQ" base_Port="_IPONUemoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IPO0YOmoEeiCH-LqDzrXtQ" base_Port="_IPONUemoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IPO0YumoEeiCH-LqDzrXtQ" base_Port="_IPO0YemoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IPPbcOmoEeiCH-LqDzrXtQ" base_Port="_IPO0YemoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IPPbcumoEeiCH-LqDzrXtQ" base_Port="_IPPbcemoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IPQCgOmoEeiCH-LqDzrXtQ" base_Port="_IPPbcemoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IPQCgumoEeiCH-LqDzrXtQ" base_Port="_IPQCgemoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IPQpkOmoEeiCH-LqDzrXtQ" base_Port="_IPQCgemoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IPQpkumoEeiCH-LqDzrXtQ" base_Port="_IPQpkemoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IPQpk-moEeiCH-LqDzrXtQ" base_Port="_IPQpkemoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IPRQoemoEeiCH-LqDzrXtQ" base_Port="_IPRQoOmoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IPRQoumoEeiCH-LqDzrXtQ" base_Port="_IPRQoOmoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IPR3semoEeiCH-LqDzrXtQ" base_Port="_IPR3sOmoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IPSewOmoEeiCH-LqDzrXtQ" base_Port="_IPR3sOmoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IPSewumoEeiCH-LqDzrXtQ" base_Port="_IPSewemoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IPTF0OmoEeiCH-LqDzrXtQ" base_Port="_IPSewemoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IPTF0umoEeiCH-LqDzrXtQ" base_Port="_IPTF0emoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IPTs4OmoEeiCH-LqDzrXtQ" base_Port="_IPTF0emoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IPUT8OmoEeiCH-LqDzrXtQ" base_Port="_IPTs4emoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IPUT8emoEeiCH-LqDzrXtQ" base_Port="_IPTs4emoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IPU7AOmoEeiCH-LqDzrXtQ" base_Port="_IPUT8umoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IPU7AemoEeiCH-LqDzrXtQ" base_Port="_IPUT8umoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IPViEOmoEeiCH-LqDzrXtQ" base_Port="_IPU7AumoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IPViEemoEeiCH-LqDzrXtQ" base_Port="_IPU7AumoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IPWJIOmoEeiCH-LqDzrXtQ" base_Port="_IPViEumoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IPWJIemoEeiCH-LqDzrXtQ" base_Port="_IPViEumoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IPYlYOmoEeiCH-LqDzrXtQ" base_Port="_IPXXQOmoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IPZMcOmoEeiCH-LqDzrXtQ" base_Port="_IPXXQOmoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IPaakOmoEeiCH-LqDzrXtQ" base_Port="_IPZzgOmoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IPbBoOmoEeiCH-LqDzrXtQ" base_Port="_IPZzgOmoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IPc20OmoEeiCH-LqDzrXtQ" base_Port="_IPbBoemoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IPdd4OmoEeiCH-LqDzrXtQ" base_Port="_IPbBoemoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IPeE8OmoEeiCH-LqDzrXtQ" base_Port="_IPdd4emoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IPeE8emoEeiCH-LqDzrXtQ" base_Port="_IPdd4emoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IPesAemoEeiCH-LqDzrXtQ" base_Port="_IPesAOmoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IPesAumoEeiCH-LqDzrXtQ" base_Port="_IPesAOmoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IPfTEemoEeiCH-LqDzrXtQ" base_Port="_IPfTEOmoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IPf6IOmoEeiCH-LqDzrXtQ" base_Port="_IPfTEOmoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IPf6IumoEeiCH-LqDzrXtQ" base_Port="_IPf6IemoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IPghMOmoEeiCH-LqDzrXtQ" base_Port="_IPf6IemoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IPghMumoEeiCH-LqDzrXtQ" base_Port="_IPghMemoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IPhIQOmoEeiCH-LqDzrXtQ" base_Port="_IPghMemoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IPi9cOmoEeiCH-LqDzrXtQ" base_Port="_IPhIQemoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IPkLkOmoEeiCH-LqDzrXtQ" base_Port="_IPhIQemoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IPlZsOmoEeiCH-LqDzrXtQ" base_Port="_IPkyoOmoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IPmAwOmoEeiCH-LqDzrXtQ" base_Port="_IPkyoOmoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IPnO4OmoEeiCH-LqDzrXtQ" base_Port="_IPmn0OmoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IPn18OmoEeiCH-LqDzrXtQ" base_Port="_IPmn0OmoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IPn18umoEeiCH-LqDzrXtQ" base_Port="_IPn18emoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IPodAOmoEeiCH-LqDzrXtQ" base_Port="_IPn18emoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IPodAumoEeiCH-LqDzrXtQ" base_Port="_IPodAemoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IPpEEOmoEeiCH-LqDzrXtQ" base_Port="_IPodAemoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IPpEEumoEeiCH-LqDzrXtQ" base_Port="_IPpEEemoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IPprIOmoEeiCH-LqDzrXtQ" base_Port="_IPpEEemoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IPprIumoEeiCH-LqDzrXtQ" base_Port="_IPprIemoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IPqSMOmoEeiCH-LqDzrXtQ" base_Port="_IPprIemoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IPqSMumoEeiCH-LqDzrXtQ" base_Port="_IPqSMemoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IPq5QOmoEeiCH-LqDzrXtQ" base_Port="_IPqSMemoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IPq5QumoEeiCH-LqDzrXtQ" base_Port="_IPq5QemoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IPq5Q-moEeiCH-LqDzrXtQ" base_Port="_IPq5QemoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IPrgUemoEeiCH-LqDzrXtQ" base_Port="_IPrgUOmoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IPrgUumoEeiCH-LqDzrXtQ" base_Port="_IPrgUOmoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IPsHYOmoEeiCH-LqDzrXtQ" base_Port="_IPrgU-moEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IPsHYemoEeiCH-LqDzrXtQ" base_Port="_IPrgU-moEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IPsucOmoEeiCH-LqDzrXtQ" base_Port="_IPsHYumoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IPsucemoEeiCH-LqDzrXtQ" base_Port="_IPsHYumoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IPtVgOmoEeiCH-LqDzrXtQ" base_Port="_IPsucumoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IPtVgemoEeiCH-LqDzrXtQ" base_Port="_IPsucumoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IPt8kOmoEeiCH-LqDzrXtQ" base_Port="_IPtVgumoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IPt8kemoEeiCH-LqDzrXtQ" base_Port="_IPtVgumoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IPujoOmoEeiCH-LqDzrXtQ" base_Port="_IPt8kumoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IPujoemoEeiCH-LqDzrXtQ" base_Port="_IPt8kumoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IPvKsOmoEeiCH-LqDzrXtQ" base_Port="_IPujoumoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IPvKsemoEeiCH-LqDzrXtQ" base_Port="_IPujoumoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IPvxwOmoEeiCH-LqDzrXtQ" base_Port="_IPvKsumoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IPvxwemoEeiCH-LqDzrXtQ" base_Port="_IPvKsumoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IPwY0emoEeiCH-LqDzrXtQ" base_Port="_IPwY0OmoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IPw_4OmoEeiCH-LqDzrXtQ" base_Port="_IPwY0OmoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IPw_4umoEeiCH-LqDzrXtQ" base_Port="_IPw_4emoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IPxm8OmoEeiCH-LqDzrXtQ" base_Port="_IPw_4emoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IPxm8umoEeiCH-LqDzrXtQ" base_Port="_IPxm8emoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IPyOAOmoEeiCH-LqDzrXtQ" base_Port="_IPxm8emoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IPyOAumoEeiCH-LqDzrXtQ" base_Port="_IPyOAemoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IPy1EOmoEeiCH-LqDzrXtQ" base_Port="_IPyOAemoEeiCH-LqDzrXtQ"/>
+  <DeprecatedElements:FlowPort xmi:id="_IPy1EumoEeiCH-LqDzrXtQ" base_Port="_IPy1EemoEeiCH-LqDzrXtQ" direction="in"/>
+  <omsim:TLMSignalDefinition xmi:id="_IPzcIOmoEeiCH-LqDzrXtQ" base_Port="_IPy1EemoEeiCH-LqDzrXtQ"/>
+</xmi:XMI>
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/model/model.profile.di b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/model/model.profile.di
new file mode 100644
index 0000000..247ed5e
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/model/model.profile.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<architecture:ArchitectureDescription xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:architecture="http://www.eclipse.org/papyrus/infra/core/architecture" contextId="org.eclipse.papyrus.uml.architecture.Profile"/>
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/model/model.profile.genmodel b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/model/model.profile.genmodel
new file mode 100644
index 0000000..99f408b
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/model/model.profile.genmodel
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:genmodel="http://www.eclipse.org/uml2/2.2.0/GenModel"
+    copyrightText=" Copyright (c) 2018,  IncQuery Labs Ltd and CEA List.&#xA; All rights reserved. This program and the accompanying materials&#xA;are made available under the terms of the Eclipse Public License v1.0&#xA;which accompanies this distribution, and is available at&#xA;http://www.eclipse.org/legal/epl-v10.html&#xA; &#xA;Contributors:&#xA; IncQuery Labs Ltd - initial API and implementation&#xA; CEA List "
+    modelDirectory="/org.eclipse.papyrus.moka.ssp.profile/src-gen" modelPluginID="org.eclipse.papyrus.moka.ssp.profile"
+    modelName="Model" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
+    testsDirectory="" importerID="org.eclipse.uml2.uml.ecore.importer" usedGenPackages="../../org.eclipse.emf.ecore/model/Ecore.genmodel#//ecore ../../org.eclipse.papyrus.moka.fmi.profile/model/FMI.profile.genmodel#//fmiprofile ../../org.eclipse.uml2.uml.profile.standard/model/Standard.genmodel#//standard ../../org.eclipse.papyrus.sysml14/resources/profile/SysML.profile.genmodel#//sysml14 ../../org.eclipse.uml2.types/model/Types.genmodel#//types ../../org.eclipse.uml2.uml/model/UML.genmodel#//uml ../../org.eclipse.papyrus.moka.fmi/model/Fmi2ModelDescription.genmodel#//modeldescription ../../org.eclipse.papyrus.moka.fmi/model/fmumetamodel.genmodel#//fmumetamodel"
+    importOrganizing="true">
+  <genAnnotations source="http://www.eclipse.org/emf/2002/GenModel/importer/org.eclipse.uml2.uml.ecore.importer">
+    <details key="OPPOSITE_ROLE_NAMES" value="IGNORE"/>
+    <details key="DUPLICATE_FEATURES" value="DISCARD"/>
+    <details key="ANNOTATION_DETAILS" value="PROCESS"/>
+    <details key="PROPERTY_DEFAULT_EXPRESSIONS" value="IGNORE"/>
+    <details key="DUPLICATE_FEATURE_INHERITANCE" value="PROCESS"/>
+    <details key="COMMENTS" value="PROCESS"/>
+    <details key="DERIVED_FEATURES" value="PROCESS"/>
+    <details key="SUPER_CLASS_ORDER" value="PROCESS"/>
+    <details key="DUPLICATE_OPERATION_INHERITANCE" value="DISCARD"/>
+    <details key="REDEFINING_OPERATIONS" value="PROCESS"/>
+    <details key="INVARIANT_CONSTRAINTS" value="PROCESS"/>
+    <details key="UNION_PROPERTIES" value="REPORT"/>
+    <details key="DUPLICATE_OPERATIONS" value="DISCARD"/>
+    <details key="NON_API_INVARIANTS" value="IGNORE"/>
+    <details key="CAMEL_CASE_NAMES" value="IGNORE"/>
+    <details key="SUBSETTING_PROPERTIES" value="REPORT"/>
+    <details key="OPERATION_BODIES" value="IGNORE"/>
+    <details key="ECORE_TAGGED_VALUES" value="PROCESS"/>
+    <details key="UNTYPED_PROPERTIES" value="REPORT"/>
+    <details key="REDEFINING_PROPERTIES" value="REPORT"/>
+    <details key="INVOCATION_DELEGATES" value="IGNORE"/>
+    <details key="VALIDATION_DELEGATES" value="IGNORE"/>
+  </genAnnotations>
+  <foreignModel>model.profile.uml</foreignModel>
+  <genPackages xsi:type="genmodel:GenPackage" prefix="SSPProfile" basePackage="org.eclipse.papyrus.moka.ssp"
+      disposableProviderFactory="true" ecorePackage="profile.ecore#/">
+    <genEnums xsi:type="genmodel:GenEnum" typeSafeEnumCompatible="false" ecoreEnum="profile.ecore#//TypeKind">
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="profile.ecore#//TypeKind/input"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="profile.ecore#//TypeKind/output"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="profile.ecore#//TypeKind/parameter"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="profile.ecore#//TypeKind/calculatedParameter"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="profile.ecore#//TypeKind/inout"/>
+    </genEnums>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="profile.ecore#//SsdConnection">
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference profile.ecore#//SsdConnection/base_Connector"/>
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference profile.ecore#//SsdConnection/start"/>
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference profile.ecore#//SsdConnection/end"/>
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference profile.ecore#//SsdConnection/startSsdProperty"/>
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference profile.ecore#//SsdConnection/endSsdProperty"/>
+    </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="profile.ecore#//SsdConnector">
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute profile.ecore#//SsdConnector/SSDDescription"/>
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute profile.ecore#//SsdConnector/typeKind"/>
+    </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="profile.ecore#//SsdElement">
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute profile.ecore#//SsdElement/ID"/>
+    </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="profile.ecore#//SsdSystem">
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference profile.ecore#//SsdSystem/base_Class"/>
+    </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="profile.ecore#//SsdSignalDictionaryReference">
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference profile.ecore#//SsdSignalDictionaryReference/base_Class"/>
+    </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="profile.ecore#//SsdComponent">
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute profile.ecore#//SsdComponent/source"/>
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute profile.ecore#//SsdComponent/type"/>
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference profile.ecore#//SsdComponent/fmu"/>
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference profile.ecore#//SsdComponent/base_Property"/>
+    </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="profile.ecore#//Ssd">
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference profile.ecore#//Ssd/base_Package"/>
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute profile.ecore#//Ssd/name"/>
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute profile.ecore#//Ssd/version"/>
+      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
+          propertySortChoices="true" ecoreFeature="ecore:EReference profile.ecore#//Ssd/mainSystem"/>
+    </genClasses>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="profile.ecore#//SsdConnectorAndFmiPort"/>
+  </genPackages>
+</genmodel:GenModel>
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/model/model.profile.notation b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/model/model.profile.notation
new file mode 100644
index 0000000..b7fbd73
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/model/model.profile.notation
@@ -0,0 +1,634 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/gmfdiag/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_T90D4B-HEeegP6aMHpCV8A" type="PapyrusUMLProfileDiagram" name="Profile Diagram" measurementUnit="Pixel">
+  <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jGo7kO-5EeelhbYPWVvDqQ" source="PapyrusCSSForceValue">
+    <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jGo7ke-5EeelhbYPWVvDqQ" key="canonical" value="true"/>
+  </eAnnotations>
+  <children xmi:type="notation:Shape" xmi:id="_VHTB8FD_EeenPsCrM3OyTw" type="Stereotype_Shape">
+    <children xmi:type="notation:DecorationNode" xmi:id="_VHVeMFD_EeenPsCrM3OyTw" type="Stereotype_NameLabel"/>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_VHVeMVD_EeenPsCrM3OyTw" type="Stereotype_AttributeCompartment">
+      <children xmi:type="notation:Shape" xmi:id="_D-xQEKrDEei4a_iYJwUIrw" type="Property_ClassAttributeLabel">
+        <element xmi:type="uml:Property" href="model.profile.uml#_FU810onHEeixnsCmB1SW-Q"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_D-xQEarDEei4a_iYJwUIrw"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_E5ek0KrDEei4a_iYJwUIrw" type="Property_ClassAttributeLabel">
+        <element xmi:type="uml:Property" href="model.profile.uml#_DS50oIm-EeixnsCmB1SW-Q"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_E5ek0arDEei4a_iYJwUIrw"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_Fckq0KrDEei4a_iYJwUIrw" type="Property_ClassAttributeLabel">
+        <element xmi:type="uml:Property" href="model.profile.uml#_sDL1Q3hwEeihra2GkjZNtQ"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_Fckq0arDEei4a_iYJwUIrw"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_FzAN0KrDEei4a_iYJwUIrw" type="Property_ClassAttributeLabel">
+        <element xmi:type="uml:Property" href="model.profile.uml#_zUMPonhuEeihra2GkjZNtQ"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_FzAN0arDEei4a_iYJwUIrw"/>
+      </children>
+      <styles xmi:type="notation:TitleStyle" xmi:id="_VHVeMlD_EeenPsCrM3OyTw"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_VHVeM1D_EeenPsCrM3OyTw"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_VHVeNFD_EeenPsCrM3OyTw"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VHVeNVD_EeenPsCrM3OyTw"/>
+    </children>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_VHVeNlD_EeenPsCrM3OyTw" type="Stereotype_OperationCompartment">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_VHVeN1D_EeenPsCrM3OyTw"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_VHVeOFD_EeenPsCrM3OyTw"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_VHVeOVD_EeenPsCrM3OyTw"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VHVeOlD_EeenPsCrM3OyTw"/>
+    </children>
+    <element xmi:type="uml:Stereotype" href="model.profile.uml#_VHB8MFD_EeenPsCrM3OyTw"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_VHTB8VD_EeenPsCrM3OyTw" x="300" y="420" width="205" height="188"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_imc5QVEAEeenPsCrM3OyTw" type="Class_MetaclassShape">
+    <children xmi:type="notation:DecorationNode" xmi:id="_imc5Q1EAEeenPsCrM3OyTw" type="Class_MetaclassNameLabel"/>
+    <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Connector"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_imc5RFEAEeenPsCrM3OyTw" x="320" y="640" width="100" height="50"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_imwbSlEAEeenPsCrM3OyTw" type="StereotypeComment">
+    <styles xmi:type="notation:TitleStyle" xmi:id="_imwbS1EAEeenPsCrM3OyTw"/>
+    <styles xmi:type="notation:EObjectValueStyle" xmi:id="_imwbTVEAEeenPsCrM3OyTw" name="BASE_ELEMENT">
+      <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Connector"/>
+    </styles>
+    <element xsi:nil="true"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_imwbTFEAEeenPsCrM3OyTw" x="650" y="138"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_E951IFECEeenPsCrM3OyTw" type="Stereotype_Shape">
+    <children xmi:type="notation:DecorationNode" xmi:id="_E951IlECEeenPsCrM3OyTw" type="Stereotype_NameLabel"/>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_E951I1ECEeenPsCrM3OyTw" type="Stereotype_AttributeCompartment">
+      <children xmi:type="notation:Shape" xmi:id="_6ayx4JAHEeiEPYPudKFLsA" type="Property_ClassAttributeLabel">
+        <element xmi:type="uml:Property" href="model.profile.uml#_6Za44JAHEeiEPYPudKFLsA"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_6ayx4ZAHEeiEPYPudKFLsA"/>
+      </children>
+      <styles xmi:type="notation:TitleStyle" xmi:id="_E951JFECEeenPsCrM3OyTw"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_E951JVECEeenPsCrM3OyTw"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_E951JlECEeenPsCrM3OyTw"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_E951J1ECEeenPsCrM3OyTw"/>
+    </children>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_E951KFECEeenPsCrM3OyTw" type="Stereotype_OperationCompartment">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_E951KVECEeenPsCrM3OyTw"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_E951KlECEeenPsCrM3OyTw"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_E951K1ECEeenPsCrM3OyTw"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_E951LFECEeenPsCrM3OyTw"/>
+    </children>
+    <element xmi:type="uml:Stereotype" href="model.profile.uml#_E9wrMFECEeenPsCrM3OyTw"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_E951IVECEeenPsCrM3OyTw" x="800" y="20" width="152" height="177"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_FZyf4VECEeenPsCrM3OyTw" type="Stereotype_Shape">
+    <children xmi:type="notation:DecorationNode" xmi:id="_FZyf41ECEeenPsCrM3OyTw" type="Stereotype_NameLabel"/>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_FZyf5FECEeenPsCrM3OyTw" type="Stereotype_AttributeCompartment">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_FZyf5VECEeenPsCrM3OyTw"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_FZyf5lECEeenPsCrM3OyTw"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_FZyf51ECEeenPsCrM3OyTw"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FZyf6FECEeenPsCrM3OyTw"/>
+    </children>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_FZyf6VECEeenPsCrM3OyTw" type="Stereotype_OperationCompartment">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_FZyf6lECEeenPsCrM3OyTw"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_FZyf61ECEeenPsCrM3OyTw"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_FZyf7FECEeenPsCrM3OyTw"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FZyf7VECEeenPsCrM3OyTw"/>
+    </children>
+    <element xmi:type="uml:Stereotype" href="model.profile.uml#_FZyf4FECEeenPsCrM3OyTw"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FZyf4lECEeenPsCrM3OyTw" x="1020" y="280" width="100" height="112"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_5Ep80NtGEee8fLUc1N33uA" type="Stereotype_Shape">
+    <children xmi:type="notation:DecorationNode" xmi:id="_5EtnMNtGEee8fLUc1N33uA" type="Stereotype_NameLabel"/>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_5EtnMdtGEee8fLUc1N33uA" type="Stereotype_AttributeCompartment">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_5EtnMttGEee8fLUc1N33uA"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_5EtnM9tGEee8fLUc1N33uA"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_5EtnNNtGEee8fLUc1N33uA"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5EtnNdtGEee8fLUc1N33uA"/>
+    </children>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_5EtnNttGEee8fLUc1N33uA" type="Stereotype_OperationCompartment">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_5EtnN9tGEee8fLUc1N33uA"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_5EtnONtGEee8fLUc1N33uA"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_5EtnOdtGEee8fLUc1N33uA"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5EtnOttGEee8fLUc1N33uA"/>
+    </children>
+    <element xmi:type="uml:Stereotype" href="model.profile.uml#_5EN38NtGEee8fLUc1N33uA"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5Ep80dtGEee8fLUc1N33uA" x="780" y="280" width="192" height="116"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_j-CsgHlUEeifUcBX7iBp6g" type="Stereotype_Shape">
+    <children xmi:type="notation:DecorationNode" xmi:id="_j-D6oHlUEeifUcBX7iBp6g" type="Stereotype_NameLabel"/>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_j-D6oXlUEeifUcBX7iBp6g" type="Stereotype_AttributeCompartment">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_j-D6onlUEeifUcBX7iBp6g"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_j-D6o3lUEeifUcBX7iBp6g"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_j-D6pHlUEeifUcBX7iBp6g"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_j-D6pXlUEeifUcBX7iBp6g"/>
+    </children>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_j-D6pnlUEeifUcBX7iBp6g" type="Stereotype_OperationCompartment">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_j-D6p3lUEeifUcBX7iBp6g"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_j-D6qHlUEeifUcBX7iBp6g"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_j-D6qXlUEeifUcBX7iBp6g"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_j-D6qnlUEeifUcBX7iBp6g"/>
+    </children>
+    <element xmi:type="uml:Stereotype" href="platform:/resource/org.eclipse.papyrus.moka.fmi.profile/model/FMI.profile.uml#_0Ab54OyjEeSEBKJWDCrAIQ"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_j-CsgXlUEeifUcBX7iBp6g" x="-227" y="420" width="172" height="187"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_7sy-4Im9EeixnsCmB1SW-Q" type="Class_MetaclassShape">
+    <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7s00EIm9EeixnsCmB1SW-Q" source="Stereotype_Annotation">
+      <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7s00EYm9EeixnsCmB1SW-Q" key="StereotypeWithQualifiedNameList" value=""/>
+      <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7s00Eom9EeixnsCmB1SW-Q" key="StereotypeList" value="StandardProfile::Metaclass"/>
+      <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7s00E4m9EeixnsCmB1SW-Q" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+      <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7s00FIm9EeixnsCmB1SW-Q" key="PropStereoDisplay" value=""/>
+      <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_7s00FYm9EeixnsCmB1SW-Q" key="StereotypePropertyLocation" value="Compartment"/>
+    </eAnnotations>
+    <children xmi:type="notation:DecorationNode" xmi:id="_7szl8Im9EeixnsCmB1SW-Q" type="Class_MetaclassNameLabel"/>
+    <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7szl8Ym9EeixnsCmB1SW-Q" x="661" y="435" width="121" height="161"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_7tLZYIm9EeixnsCmB1SW-Q" type="StereotypeComment">
+    <styles xmi:type="notation:TitleStyle" xmi:id="_7tLZYYm9EeixnsCmB1SW-Q"/>
+    <styles xmi:type="notation:EObjectValueStyle" xmi:id="_7tMAcIm9EeixnsCmB1SW-Q" name="BASE_ELEMENT">
+      <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
+    </styles>
+    <element xsi:nil="true"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7tLZYom9EeixnsCmB1SW-Q" x="760" y="360"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_MdxJIItoEeiWf9BPHXi2qg" type="Stereotype_Shape">
+    <children xmi:type="notation:DecorationNode" xmi:id="_Mdy-UItoEeiWf9BPHXi2qg" type="Stereotype_NameLabel"/>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_MdzlYItoEeiWf9BPHXi2qg" type="Stereotype_AttributeCompartment">
+      <children xmi:type="notation:Shape" xmi:id="_xd9bwNtHEee8fLUc1N33uA" type="Property_ClassAttributeLabel">
+        <element xmi:type="uml:Property" href="model.profile.uml#_xdycoNtHEee8fLUc1N33uA"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_xd9bwdtHEee8fLUc1N33uA" x="6" y="37"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_xFu3ENtJEee8fLUc1N33uA" type="Property_ClassAttributeLabel">
+        <element xmi:type="uml:Property" href="model.profile.uml#_xFltINtJEee8fLUc1N33uA"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_xFu3EdtJEee8fLUc1N33uA" x="6" y="53"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_yAPmQI_tEeisd_fYEaLh1w" type="Property_ClassAttributeLabel">
+        <element xmi:type="uml:Property" href="model.profile.uml#_x__uoI_tEeisd_fYEaLh1w"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_yAPmQY_tEeisd_fYEaLh1w"/>
+      </children>
+      <styles xmi:type="notation:TitleStyle" xmi:id="_MdzlYYtoEeiWf9BPHXi2qg"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_MdzlYotoEeiWf9BPHXi2qg"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_MdzlY4toEeiWf9BPHXi2qg"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MdzlZItoEeiWf9BPHXi2qg"/>
+    </children>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_MdzlZYtoEeiWf9BPHXi2qg" type="Stereotype_OperationCompartment">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_MdzlZotoEeiWf9BPHXi2qg"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_MdzlZ4toEeiWf9BPHXi2qg"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_MdzlaItoEeiWf9BPHXi2qg"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MdzlaYtoEeiWf9BPHXi2qg"/>
+    </children>
+    <element xmi:type="uml:Stereotype" href="model.profile.uml#_MdifoItoEeiWf9BPHXi2qg"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MdxJIYtoEeiWf9BPHXi2qg" x="540" y="280" width="187" height="115"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_NGtZQJAaEeibTpPP74HsGA" type="Class_MetaclassShape">
+    <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NGvOcJAaEeibTpPP74HsGA" source="Stereotype_Annotation">
+      <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_NGv1gJAaEeibTpPP74HsGA" key="StereotypeWithQualifiedNameList" value=""/>
+      <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_NGv1gZAaEeibTpPP74HsGA" key="StereotypeList" value="StandardProfile::Metaclass"/>
+      <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_NGv1gpAaEeibTpPP74HsGA" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+      <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_NGv1g5AaEeibTpPP74HsGA" key="PropStereoDisplay" value=""/>
+      <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_NGv1hJAaEeibTpPP74HsGA" key="StereotypePropertyLocation" value="Compartment"/>
+    </eAnnotations>
+    <children xmi:type="notation:DecorationNode" xmi:id="_NGuAUJAaEeibTpPP74HsGA" type="Class_MetaclassNameLabel"/>
+    <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NGunYJAaEeibTpPP74HsGA" x="920" y="460"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_NHyXUJAaEeibTpPP74HsGA" type="StereotypeComment">
+    <styles xmi:type="notation:TitleStyle" xmi:id="_NHyXUZAaEeibTpPP74HsGA"/>
+    <styles xmi:type="notation:EObjectValueStyle" xmi:id="_NHy-YJAaEeibTpPP74HsGA" name="BASE_ELEMENT">
+      <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+    </styles>
+    <element xsi:nil="true"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NHyXUpAaEeibTpPP74HsGA" x="1040" y="520"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_fsIvgJrfEeiosLc1kU8j4g" type="Class_MetaclassShape">
+    <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_fsJ9oJrfEeiosLc1kU8j4g" source="Stereotype_Annotation">
+      <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fsJ9oZrfEeiosLc1kU8j4g" key="StereotypeWithQualifiedNameList" value=""/>
+      <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fsJ9oprfEeiosLc1kU8j4g" key="StereotypeList" value="StandardProfile::Metaclass"/>
+      <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fsJ9o5rfEeiosLc1kU8j4g" key="Stereotype_Presentation_Kind" value="HorizontalStereo"/>
+      <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fsJ9pJrfEeiosLc1kU8j4g" key="PropStereoDisplay" value=""/>
+      <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_fsJ9pZrfEeiosLc1kU8j4g" key="StereotypePropertyLocation" value="Compartment"/>
+    </eAnnotations>
+    <children xmi:type="notation:DecorationNode" xmi:id="_fsIvgprfEeiosLc1kU8j4g" type="Class_MetaclassNameLabel"/>
+    <element xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fsJWkJrfEeiosLc1kU8j4g" x="340" y="140"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_fsetwJrfEeiosLc1kU8j4g" type="StereotypeComment">
+    <styles xmi:type="notation:TitleStyle" xmi:id="_fsetwZrfEeiosLc1kU8j4g"/>
+    <styles xmi:type="notation:EObjectValueStyle" xmi:id="_fsetw5rfEeiosLc1kU8j4g" name="BASE_ELEMENT">
+      <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
+    </styles>
+    <element xsi:nil="true"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fsetwprfEeiosLc1kU8j4g" x="1576" y="228"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_hKeVwJrfEeiosLc1kU8j4g" type="Stereotype_Shape">
+    <children xmi:type="notation:DecorationNode" xmi:id="_hKe80JrfEeiosLc1kU8j4g" type="Stereotype_NameLabel"/>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_hKe80ZrfEeiosLc1kU8j4g" type="Stereotype_AttributeCompartment">
+      <children xmi:type="notation:Shape" xmi:id="_2Im8kJrfEeiosLc1kU8j4g" type="Property_ClassAttributeLabel">
+        <element xmi:type="uml:Property" href="model.profile.uml#_2IV20JrfEeiosLc1kU8j4g"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_2Im8kZrfEeiosLc1kU8j4g"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_LBtSYJrgEeiosLc1kU8j4g" type="Property_ClassAttributeLabel">
+        <element xmi:type="uml:Property" href="model.profile.uml#_LBdawJrgEeiosLc1kU8j4g"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_LBtSYZrgEeiosLc1kU8j4g"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_zPqZoLHBEeib6JR9yOlNVg" type="Property_ClassAttributeLabel">
+        <element xmi:type="uml:Property" href="model.profile.uml#_zPIOILHBEeib6JR9yOlNVg"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_zPqZobHBEeib6JR9yOlNVg"/>
+      </children>
+      <styles xmi:type="notation:TitleStyle" xmi:id="_hKe80prfEeiosLc1kU8j4g"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_hKe805rfEeiosLc1kU8j4g"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_hKe81JrfEeiosLc1kU8j4g"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hKe81ZrfEeiosLc1kU8j4g"/>
+    </children>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_hKe81prfEeiosLc1kU8j4g" type="Stereotype_OperationCompartment">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_hKe815rfEeiosLc1kU8j4g"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_hKe82JrfEeiosLc1kU8j4g"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_hKe82ZrfEeiosLc1kU8j4g"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hKe82prfEeiosLc1kU8j4g"/>
+    </children>
+    <element xmi:type="uml:Stereotype" href="model.profile.uml#_hKcgkJrfEeiosLc1kU8j4g"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hKeVwZrfEeiosLc1kU8j4g" x="300" y="260" width="201" height="121"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_HJhAcJyvEeissNvJNlX0qA" type="Stereotype_Shape">
+    <children xmi:type="notation:DecorationNode" xmi:id="_HJkDwJyvEeissNvJNlX0qA" type="Stereotype_NameLabel"/>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_HJkDwZyvEeissNvJNlX0qA" type="Stereotype_AttributeCompartment">
+      <children xmi:type="notation:Shape" xmi:id="_FUMIAJ-YEeiGp_7CKidkRA" type="Property_ClassAttributeLabel">
+        <element xmi:type="uml:Property" href="model.profile.uml#_FQfTwJ-YEeiGp_7CKidkRA"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_FUMIAZ-YEeiGp_7CKidkRA"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_C4z64LUGEeiSGMgJYpbk4Q" type="Property_ClassAttributeLabel">
+        <element xmi:type="uml:Property" href="model.profile.uml#_C4cHcLUGEeiSGMgJYpbk4Q"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_C4z64bUGEeiSGMgJYpbk4Q"/>
+      </children>
+      <styles xmi:type="notation:TitleStyle" xmi:id="_HJkDwpyvEeissNvJNlX0qA"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_HJkDw5yvEeissNvJNlX0qA"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_HJkDxJyvEeissNvJNlX0qA"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HJkDxZyvEeissNvJNlX0qA"/>
+    </children>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_HJkDxpyvEeissNvJNlX0qA" type="Stereotype_OperationCompartment">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_HJkDx5yvEeissNvJNlX0qA"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_HJkDyJyvEeissNvJNlX0qA"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_HJkDyZyvEeissNvJNlX0qA"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HJkDypyvEeissNvJNlX0qA"/>
+    </children>
+    <element xmi:type="uml:Stereotype" href="model.profile.uml#_HJSW8JyvEeissNvJNlX0qA"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HJhAcZyvEeissNvJNlX0qA" x="20" y="420" width="201" height="181"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_jPFZQJ76EeiFcKmG9KkfrA" type="Stereotype_Shape">
+    <children xmi:type="notation:DecorationNode" xmi:id="_jPH1gJ76EeiFcKmG9KkfrA" type="Stereotype_NameLabel"/>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_jPH1gZ76EeiFcKmG9KkfrA" type="Stereotype_AttributeCompartment">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_jPH1gp76EeiFcKmG9KkfrA"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_jPH1g576EeiFcKmG9KkfrA"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_jPH1hJ76EeiFcKmG9KkfrA"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jPH1hZ76EeiFcKmG9KkfrA"/>
+    </children>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_jPIckJ76EeiFcKmG9KkfrA" type="Stereotype_OperationCompartment">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_jPIckZ76EeiFcKmG9KkfrA"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_jPIckp76EeiFcKmG9KkfrA"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_jPIck576EeiFcKmG9KkfrA"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jPIclJ76EeiFcKmG9KkfrA"/>
+    </children>
+    <element xmi:type="uml:Stereotype" href="pathmap://SysML14_PROFILES/SysML.profile.uml#SysML.package_packagedElement_DeprecatedElements.stereotype_packagedElement_FlowPort"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jPFZQZ76EeiFcKmG9KkfrA" x="40" y="280"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_yVeUIJ77EeiFcKmG9KkfrA" type="Stereotype_Shape">
+    <children xmi:type="notation:DecorationNode" xmi:id="_yVe7MJ77EeiFcKmG9KkfrA" type="Stereotype_NameLabel"/>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_yVe7MZ77EeiFcKmG9KkfrA" type="Stereotype_AttributeCompartment">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_yVe7Mp77EeiFcKmG9KkfrA"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_yVe7M577EeiFcKmG9KkfrA"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_yVe7NJ77EeiFcKmG9KkfrA"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yVe7NZ77EeiFcKmG9KkfrA"/>
+    </children>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_yVe7Np77EeiFcKmG9KkfrA" type="Stereotype_OperationCompartment">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_yVe7N577EeiFcKmG9KkfrA"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_yVe7OJ77EeiFcKmG9KkfrA"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_yVe7OZ77EeiFcKmG9KkfrA"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yVe7Op77EeiFcKmG9KkfrA"/>
+    </children>
+    <element xmi:type="uml:Stereotype" href="model.profile.uml#_yVY0kJ77EeiFcKmG9KkfrA"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yVeUIZ77EeiFcKmG9KkfrA" x="-80" y="720"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_ehFT4LUFEeiSGMgJYpbk4Q" type="Enumeration_Shape">
+    <children xmi:type="notation:DecorationNode" xmi:id="_ehHwILUFEeiSGMgJYpbk4Q" type="Enumeration_NameLabel"/>
+    <children xmi:type="notation:BasicCompartment" xmi:id="_ehIXMLUFEeiSGMgJYpbk4Q" type="Enumeration_LiteralCompartment">
+      <children xmi:type="notation:Shape" xmi:id="_3FrrELUFEeiSGMgJYpbk4Q" type="EnumerationLiteral_LiteralLabel">
+        <element xmi:type="uml:EnumerationLiteral" href="model.profile.uml#_3FO_ILUFEeiSGMgJYpbk4Q"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_3FrrEbUFEeiSGMgJYpbk4Q"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_3MkWMLUFEeiSGMgJYpbk4Q" type="EnumerationLiteral_LiteralLabel">
+        <element xmi:type="uml:EnumerationLiteral" href="model.profile.uml#_3MNw4LUFEeiSGMgJYpbk4Q"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_3MkWMbUFEeiSGMgJYpbk4Q"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_3T4fILUFEeiSGMgJYpbk4Q" type="EnumerationLiteral_LiteralLabel">
+        <element xmi:type="uml:EnumerationLiteral" href="model.profile.uml#_3Te2gLUFEeiSGMgJYpbk4Q"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_3T4fIbUFEeiSGMgJYpbk4Q"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_3clIILUFEeiSGMgJYpbk4Q" type="EnumerationLiteral_LiteralLabel">
+        <element xmi:type="uml:EnumerationLiteral" href="model.profile.uml#_3cLfgLUFEeiSGMgJYpbk4Q"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_3clIIbUFEeiSGMgJYpbk4Q"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_AbgK8LUGEeiSGMgJYpbk4Q" type="EnumerationLiteral_LiteralLabel">
+        <element xmi:type="uml:EnumerationLiteral" href="model.profile.uml#_AayZQLUGEeiSGMgJYpbk4Q"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_AbgK8bUGEeiSGMgJYpbk4Q"/>
+      </children>
+      <styles xmi:type="notation:TitleStyle" xmi:id="_ehIXMbUFEeiSGMgJYpbk4Q"/>
+      <styles xmi:type="notation:SortingStyle" xmi:id="_ehIXMrUFEeiSGMgJYpbk4Q"/>
+      <styles xmi:type="notation:FilteringStyle" xmi:id="_ehIXM7UFEeiSGMgJYpbk4Q"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ehIXNLUFEeiSGMgJYpbk4Q"/>
+    </children>
+    <element xmi:type="uml:Enumeration" href="model.profile.uml#_eg2qYLUFEeiSGMgJYpbk4Q"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ehFT4bUFEeiSGMgJYpbk4Q" x="320" y="760" width="161" height="121"/>
+  </children>
+  <styles xmi:type="notation:StringValueStyle" xmi:id="_T90D4R-HEeegP6aMHpCV8A" name="diagram_compatibility_version" stringValue="1.4.0"/>
+  <styles xmi:type="notation:DiagramStyle" xmi:id="_T90D4h-HEeegP6aMHpCV8A"/>
+  <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_gXIYQMrhEee_Pr-QbAAyWw" diagramKindId="org.eclipse.papyrus.uml.diagram.profile">
+    <owner xmi:type="uml:Profile" href="model.profile.uml#_T9IHYB-HEeegP6aMHpCV8A"/>
+  </styles>
+  <styles xmi:type="notation:CanonicalStyle" xmi:id="_jGmfUO-5EeelhbYPWVvDqQ" canonical="false"/>
+  <element xmi:type="uml:Profile" href="model.profile.uml#_T9IHYB-HEeegP6aMHpCV8A"/>
+  <edges xmi:type="notation:Connector" xmi:id="_imwbTlEAEeenPsCrM3OyTw" type="StereotypeCommentLink" source="_imc5QVEAEeenPsCrM3OyTw" target="_imwbSlEAEeenPsCrM3OyTw">
+    <styles xmi:type="notation:FontStyle" xmi:id="_imwbT1EAEeenPsCrM3OyTw"/>
+    <styles xmi:type="notation:EObjectValueStyle" xmi:id="_imwbU1EAEeenPsCrM3OyTw" name="BASE_ELEMENT">
+      <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Connector"/>
+    </styles>
+    <element xsi:nil="true"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_imwbUFEAEeenPsCrM3OyTw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_imwbUVEAEeenPsCrM3OyTw"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_imwbUlEAEeenPsCrM3OyTw"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_js8nQFEAEeenPsCrM3OyTw" type="Extension_Edge" source="_VHTB8FD_EeenPsCrM3OyTw" target="_imc5QVEAEeenPsCrM3OyTw">
+    <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yBHbAFEBEeenPsCrM3OyTw" source="PapyrusCSSForceValue">
+      <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_yBHbAVEBEeenPsCrM3OyTw" key="routing" value="true"/>
+      <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_csBJUESvEeiigdUUYpBWmg" key="smoothness" value="true"/>
+    </eAnnotations>
+    <styles xmi:type="notation:FontStyle" xmi:id="_js8nQVEAEeenPsCrM3OyTw"/>
+    <styles xmi:type="notation:StringValueStyle" xmi:id="_cr_7MESvEeiigdUUYpBWmg" name="junctionPoints" stringValue="()"/>
+    <element xmi:type="uml:Extension" href="model.profile.uml#_jspsUFEAEeenPsCrM3OyTw"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_js8nQlEAEeenPsCrM3OyTw" points="[360, 128, -643984, -643984]$[300, 180, -643984, -643984]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_jtGYQFEAEeenPsCrM3OyTw" id="(0.3902439024390244,1.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_jtGYQVEAEeenPsCrM3OyTw" id="(0.6,0.0)"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_zUVZkHhuEeihra2GkjZNtQ" type="Association_Edge" source="_HJhAcJyvEeissNvJNlX0qA" target="_VHTB8FD_EeenPsCrM3OyTw">
+    <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0hF1sHhwEeihra2GkjZNtQ" source="PapyrusCSSForceValue">
+      <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0hF1sXhwEeihra2GkjZNtQ" key="routing" value="true"/>
+      <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0hF1snhwEeihra2GkjZNtQ" key="smoothness" value="true"/>
+    </eAnnotations>
+    <children xmi:type="notation:DecorationNode" xmi:id="_zUVZk3huEeihra2GkjZNtQ" type="Association_StereotypeLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_Q4b7MHhwEeihra2GkjZNtQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_zUVZlHhuEeihra2GkjZNtQ" x="11" y="159"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_zUVZlXhuEeihra2GkjZNtQ" type="Association_NameLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_Q4j3AHhwEeihra2GkjZNtQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_zUVZlnhuEeihra2GkjZNtQ" x="13" y="118"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_zUVZl3huEeihra2GkjZNtQ" type="Association_TargetRoleLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_Q4rLwHhwEeihra2GkjZNtQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_zUVZmHhuEeihra2GkjZNtQ" x="-11" y="-33"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_zUVZmXhuEeihra2GkjZNtQ" type="Association_SourceRoleLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_Q4zHkHhwEeihra2GkjZNtQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_zUVZmnhuEeihra2GkjZNtQ" x="33" y="7"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_zUVZm3huEeihra2GkjZNtQ" type="Association_SourceMultiplicityLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_Q46cUHhwEeihra2GkjZNtQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_zUVZnHhuEeihra2GkjZNtQ" x="14" y="27"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_zUVZnXhuEeihra2GkjZNtQ" type="Association_TargetMultiplicityLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_Q5CYIHhwEeihra2GkjZNtQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_zUVZnnhuEeihra2GkjZNtQ" x="-14" y="-13"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_zUVZkXhuEeihra2GkjZNtQ"/>
+    <styles xmi:type="notation:StringValueStyle" xmi:id="_0hFOoHhwEeihra2GkjZNtQ" name="junctionPoints" stringValue="()"/>
+    <element xmi:type="uml:Association" href="model.profile.uml#_zULokHhuEeihra2GkjZNtQ"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_zUVZknhuEeihra2GkjZNtQ" points="[172, 540, -643984, -643984]$[260, 540, -643984, -643984]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_zUr-4HhuEeihra2GkjZNtQ" id="(1.0,0.7734806629834254)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_zUr-4XhuEeihra2GkjZNtQ" id="(0.0,0.7446808510638298)"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_sDVmQHhwEeihra2GkjZNtQ" type="Association_Edge" source="_HJhAcJyvEeissNvJNlX0qA" target="_VHTB8FD_EeenPsCrM3OyTw">
+    <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_0hF1tHhwEeihra2GkjZNtQ" source="PapyrusCSSForceValue">
+      <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0hGcwHhwEeihra2GkjZNtQ" key="routing" value="true"/>
+      <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_0hGcwXhwEeihra2GkjZNtQ" key="smoothness" value="true"/>
+    </eAnnotations>
+    <children xmi:type="notation:DecorationNode" xmi:id="_sDWNUHhwEeihra2GkjZNtQ" type="Association_StereotypeLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_-bisoHhwEeihra2GkjZNtQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_sDWNUXhwEeihra2GkjZNtQ" x="14" y="161"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_sDWNUnhwEeihra2GkjZNtQ" type="Association_NameLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_-bsdoHhwEeihra2GkjZNtQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_sDWNU3hwEeihra2GkjZNtQ" x="14" y="120"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_sDWNVHhwEeihra2GkjZNtQ" type="Association_TargetRoleLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_-b1AgHhwEeihra2GkjZNtQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_sDWNVXhwEeihra2GkjZNtQ" x="-15" y="-30"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_sDWNVnhwEeihra2GkjZNtQ" type="Association_SourceRoleLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_-b-KcHhwEeihra2GkjZNtQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_sDWNV3hwEeihra2GkjZNtQ" x="30" y="7"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_sDWNWHhwEeihra2GkjZNtQ" type="Association_SourceMultiplicityLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_-cH7cHhwEeihra2GkjZNtQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_sDWNWXhwEeihra2GkjZNtQ" x="34" y="27"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_sDWNWnhwEeihra2GkjZNtQ" type="Association_TargetMultiplicityLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_-cV94HhwEeihra2GkjZNtQ" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_sDWNW3hwEeihra2GkjZNtQ" x="-15" y="-10"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_sDVmQXhwEeihra2GkjZNtQ"/>
+    <styles xmi:type="notation:StringValueStyle" xmi:id="_0hF1s3hwEeihra2GkjZNtQ" name="junctionPoints" stringValue="()"/>
+    <element xmi:type="uml:Association" href="model.profile.uml#_sDLOMHhwEeihra2GkjZNtQ"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_sDVmQnhwEeihra2GkjZNtQ" points="[221, 480, -643984, -643984]$[300, 480, -643984, -643984]$[300, 480, -643984, -643984]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_sDpvUHhwEeihra2GkjZNtQ" id="(1.0,0.3314917127071823)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_sDpvUXhwEeihra2GkjZNtQ" id="(0.0,0.3191489361702128)"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_7tMngIm9EeixnsCmB1SW-Q" type="StereotypeCommentLink" source="_7sy-4Im9EeixnsCmB1SW-Q" target="_7tLZYIm9EeixnsCmB1SW-Q">
+    <styles xmi:type="notation:FontStyle" xmi:id="_7tMngYm9EeixnsCmB1SW-Q"/>
+    <styles xmi:type="notation:EObjectValueStyle" xmi:id="_7tNOkom9EeixnsCmB1SW-Q" name="BASE_ELEMENT">
+      <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
+    </styles>
+    <element xsi:nil="true"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_7tMngom9EeixnsCmB1SW-Q" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7tNOkIm9EeixnsCmB1SW-Q"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7tNOkYm9EeixnsCmB1SW-Q"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_-39TUIm9EeixnsCmB1SW-Q" type="Extension_Edge" source="_MdxJIItoEeiWf9BPHXi2qg" target="_7sy-4Im9EeixnsCmB1SW-Q">
+    <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XUs5gYqDEei-TZYfwt78ow" source="PapyrusCSSForceValue">
+      <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XUs5goqDEei-TZYfwt78ow" key="routing" value="true"/>
+      <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XUs5g4qDEei-TZYfwt78ow" key="smoothness" value="true"/>
+    </eAnnotations>
+    <styles xmi:type="notation:FontStyle" xmi:id="_-39TUYm9EeixnsCmB1SW-Q"/>
+    <styles xmi:type="notation:StringValueStyle" xmi:id="_XUs5gIqDEei-TZYfwt78ow" name="junctionPoints" stringValue="()"/>
+    <element xmi:type="uml:Extension" href="model.profile.uml#_-3k40Im9EeixnsCmB1SW-Q"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_-39TUom9EeixnsCmB1SW-Q" points="[620, 280, -643984, -643984]$[700, 596, -643984, -643984]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-4Z_QIm9EeixnsCmB1SW-Q" id="(0.7486631016042781,1.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-4Z_QYm9EeixnsCmB1SW-Q" id="(0.15702479338842976,0.0)"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_DTHQAIm-EeixnsCmB1SW-Q" type="Association_Edge" source="_VHTB8FD_EeenPsCrM3OyTw" target="_7sy-4Im9EeixnsCmB1SW-Q">
+    <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XUrrYIqDEei-TZYfwt78ow" source="PapyrusCSSForceValue">
+      <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XUsScIqDEei-TZYfwt78ow" key="routing" value="true"/>
+      <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XUsScYqDEei-TZYfwt78ow" key="smoothness" value="true"/>
+    </eAnnotations>
+    <children xmi:type="notation:DecorationNode" xmi:id="_DTH3EIm-EeixnsCmB1SW-Q" type="Association_StereotypeLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_EEYU4Im-EeixnsCmB1SW-Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_DTH3EYm-EeixnsCmB1SW-Q" x="-1" y="58"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_DTH3Eom-EeixnsCmB1SW-Q" type="Association_NameLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_EEj7EIm-EeixnsCmB1SW-Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_DTH3E4m-EeixnsCmB1SW-Q" x="-1" y="18"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_DTH3FIm-EeixnsCmB1SW-Q" type="Association_TargetRoleLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_EEtsEIm-EeixnsCmB1SW-Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_DTH3FYm-EeixnsCmB1SW-Q" x="-85" y="7"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_DTH3Fom-EeixnsCmB1SW-Q" type="Association_SourceRoleLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_EE5SQIm-EeixnsCmB1SW-Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_DTH3F4m-EeixnsCmB1SW-Q" x="-18" y="10"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_DTH3GIm-EeixnsCmB1SW-Q" type="Association_SourceMultiplicityLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_EFE4cIm-EeixnsCmB1SW-Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_DTH3GYm-EeixnsCmB1SW-Q" x="-21" y="25"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_DTH3Gom-EeixnsCmB1SW-Q" type="Association_TargetMultiplicityLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_EFP3kIm-EeixnsCmB1SW-Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_DTH3G4m-EeixnsCmB1SW-Q" x="-22" y="-13"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_DTHQAYm-EeixnsCmB1SW-Q"/>
+    <styles xmi:type="notation:StringValueStyle" xmi:id="_XUrEUIqDEei-TZYfwt78ow" name="junctionPoints" stringValue="()"/>
+    <element xmi:type="uml:Association" href="model.profile.uml#_DS3YYIm-EeixnsCmB1SW-Q"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_DTHQAom-EeixnsCmB1SW-Q" points="[480, 608, -643984, -643984]$[660, 480, -643984, -643984]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_DTpbgIm-EeixnsCmB1SW-Q" id="(1.0,0.3191489361702128)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_DTpbgYm-EeixnsCmB1SW-Q" id="(0.0,0.2795031055900621)"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_FVJDEInHEeixnsCmB1SW-Q" type="Association_Edge" source="_VHTB8FD_EeenPsCrM3OyTw" target="_7sy-4Im9EeixnsCmB1SW-Q">
+    <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_XUsSc4qDEei-TZYfwt78ow" source="PapyrusCSSForceValue">
+      <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XUsSdIqDEei-TZYfwt78ow" key="routing" value="true"/>
+      <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_XUsSdYqDEei-TZYfwt78ow" key="smoothness" value="true"/>
+    </eAnnotations>
+    <children xmi:type="notation:DecorationNode" xmi:id="_FVJDE4nHEeixnsCmB1SW-Q" type="Association_StereotypeLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_Ik_qQInHEeixnsCmB1SW-Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_FVJDFInHEeixnsCmB1SW-Q" x="-1" y="59"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_FVJDFYnHEeixnsCmB1SW-Q" type="Association_NameLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_IlKCUInHEeixnsCmB1SW-Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_FVJDFonHEeixnsCmB1SW-Q" y="19"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_FVJqIInHEeixnsCmB1SW-Q" type="Association_TargetRoleLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_IlTzUInHEeixnsCmB1SW-Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_FVJqIYnHEeixnsCmB1SW-Q" x="-88" y="7"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_FVJqIonHEeixnsCmB1SW-Q" type="Association_SourceRoleLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_IldkUInHEeixnsCmB1SW-Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_FVJqI4nHEeixnsCmB1SW-Q" x="-17" y="10"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_FVJqJInHEeixnsCmB1SW-Q" type="Association_SourceMultiplicityLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_IlnVUInHEeixnsCmB1SW-Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_FVJqJYnHEeixnsCmB1SW-Q" x="-20" y="25"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_FVJqJonHEeixnsCmB1SW-Q" type="Association_TargetMultiplicityLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_IlxGUInHEeixnsCmB1SW-Q" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_FVJqJ4nHEeixnsCmB1SW-Q" x="-22" y="-13"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_FVJDEYnHEeixnsCmB1SW-Q"/>
+    <styles xmi:type="notation:StringValueStyle" xmi:id="_XUsScoqDEei-TZYfwt78ow" name="junctionPoints" stringValue="()"/>
+    <element xmi:type="uml:Association" href="model.profile.uml#_FU7nsInHEeixnsCmB1SW-Q"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_FVJDEonHEeixnsCmB1SW-Q" points="[565, 480, -643984, -643984]$[778, 480, -643984, -643984]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FVkg4InHEeixnsCmB1SW-Q" id="(1.0,0.7446808510638298)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FVkg4YnHEeixnsCmB1SW-Q" id="(0.0,0.7763975155279503)"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_UR_6cItoEeiWf9BPHXi2qg" type="Generalization_Edge" source="_MdxJIItoEeiWf9BPHXi2qg" target="_E951IFECEeenPsCrM3OyTw" routing="Tree">
+    <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_onArwItoEeiWf9BPHXi2qg" source="PapyrusCSSForceValue">
+      <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_onArwYtoEeiWf9BPHXi2qg" key="routing" value="true"/>
+    </eAnnotations>
+    <children xmi:type="notation:DecorationNode" xmi:id="_USAhgItoEeiWf9BPHXi2qg" type="Generalization_StereotypeLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_aRn6kItoEeiWf9BPHXi2qg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_USAhgYtoEeiWf9BPHXi2qg" y="60"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_UR_6cYtoEeiWf9BPHXi2qg"/>
+    <element xmi:type="uml:Generalization" href="model.profile.uml#_URwC0ItoEeiWf9BPHXi2qg"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_UR_6cotoEeiWf9BPHXi2qg" points="[700, 280, -643984, -643984]$[700, 260, -643984, -643984]$[880, 260, -643984, -643984]$[880, 217, -643984, -643984]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_USfpsItoEeiWf9BPHXi2qg" id="(0.8556149732620321,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_USfpsYtoEeiWf9BPHXi2qg" id="(0.5263157894736842,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_UlSp4ItoEeiWf9BPHXi2qg" type="Generalization_Edge" source="_5Ep80NtGEee8fLUc1N33uA" target="_E951IFECEeenPsCrM3OyTw" routing="Tree">
+    <children xmi:type="notation:DecorationNode" xmi:id="_UlTQ8ItoEeiWf9BPHXi2qg" type="Generalization_StereotypeLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_aup00ItoEeiWf9BPHXi2qg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_UlTQ8YtoEeiWf9BPHXi2qg" y="60"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_UlSp4YtoEeiWf9BPHXi2qg"/>
+    <element xmi:type="uml:Generalization" href="model.profile.uml#_UlFOgItoEeiWf9BPHXi2qg"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_UlSp4otoEeiWf9BPHXi2qg" points="[880, 280, -643984, -643984]$[880, 270, -643984, -643984]$[880, 270, -643984, -643984]$[880, 177, -643984, -643984]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_UlvV0ItoEeiWf9BPHXi2qg" id="(0.5208333333333334,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_UlvV0YtoEeiWf9BPHXi2qg" id="(0.5263157894736842,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_U4TsgItoEeiWf9BPHXi2qg" type="Generalization_Edge" source="_FZyf4VECEeenPsCrM3OyTw" target="_E951IFECEeenPsCrM3OyTw" routing="Tree">
+    <children xmi:type="notation:DecorationNode" xmi:id="_U4Tsg4toEeiWf9BPHXi2qg" type="Generalization_StereotypeLabel">
+      <styles xmi:type="notation:BooleanValueStyle" xmi:id="_lJQygItoEeiWf9BPHXi2qg" name="IS_UPDATED_POSITION" booleanValue="true"/>
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_U4TshItoEeiWf9BPHXi2qg" y="60"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_U4TsgYtoEeiWf9BPHXi2qg"/>
+    <element xmi:type="uml:Generalization" href="model.profile.uml#_U4FDAItoEeiWf9BPHXi2qg"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_U4TsgotoEeiWf9BPHXi2qg" points="[1040, 280, -643984, -643984]$[1040, 240, -643984, -643984]$[880, 240, -643984, -643984]$[880, 177, -643984, -643984]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_U4vKUItoEeiWf9BPHXi2qg" id="(0.2,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_U4vKUYtoEeiWf9BPHXi2qg" id="(0.5263157894736842,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_NHzlcJAaEeibTpPP74HsGA" type="StereotypeCommentLink" source="_NGtZQJAaEeibTpPP74HsGA" target="_NHyXUJAaEeibTpPP74HsGA">
+    <styles xmi:type="notation:FontStyle" xmi:id="_NHzlcZAaEeibTpPP74HsGA"/>
+    <styles xmi:type="notation:EObjectValueStyle" xmi:id="_NH0zkZAaEeibTpPP74HsGA" name="BASE_ELEMENT">
+      <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+    </styles>
+    <element xsi:nil="true"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NHzlcpAaEeibTpPP74HsGA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NHzlc5AaEeibTpPP74HsGA"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NH0zkJAaEeibTpPP74HsGA"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_NuWBAJAaEeibTpPP74HsGA" type="Extension_Edge" source="_FZyf4VECEeenPsCrM3OyTw" target="_NGtZQJAaEeibTpPP74HsGA">
+    <styles xmi:type="notation:FontStyle" xmi:id="_NuWBAZAaEeibTpPP74HsGA"/>
+    <element xmi:type="uml:Extension" href="model.profile.uml#_Nt1DoJAaEeibTpPP74HsGA"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NuWBApAaEeibTpPP74HsGA" points="[1040, 332, -643984, -643984]$[1000, 460, -643984, -643984]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Nu_hQJAaEeibTpPP74HsGA" id="(0.4,1.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Nu_hQZAaEeibTpPP74HsGA" id="(0.6,0.0)"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_OH6XkJAaEeibTpPP74HsGA" type="Extension_Edge" source="_5Ep80NtGEee8fLUc1N33uA" target="_NGtZQJAaEeibTpPP74HsGA">
+    <styles xmi:type="notation:FontStyle" xmi:id="_OH6XkZAaEeibTpPP74HsGA"/>
+    <element xmi:type="uml:Extension" href="model.profile.uml#_OHhWAJAaEeibTpPP74HsGA"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_OH6XkpAaEeibTpPP74HsGA" points="[860, 336, -643984, -643984]$[1000, 460, -643984, -643984]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_OIiCoJAaEeibTpPP74HsGA" id="(0.4166666666666667,1.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_OIiCoZAaEeibTpPP74HsGA" id="(0.6,0.0)"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_fsfU0JrfEeiosLc1kU8j4g" type="StereotypeCommentLink" source="_fsIvgJrfEeiosLc1kU8j4g" target="_fsetwJrfEeiosLc1kU8j4g">
+    <styles xmi:type="notation:FontStyle" xmi:id="_fsfU0ZrfEeiosLc1kU8j4g"/>
+    <styles xmi:type="notation:EObjectValueStyle" xmi:id="_fsf74prfEeiosLc1kU8j4g" name="BASE_ELEMENT">
+      <eObjectValue xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
+    </styles>
+    <element xsi:nil="true"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_fsfU0prfEeiosLc1kU8j4g" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_fsf74JrfEeiosLc1kU8j4g"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_fsf74ZrfEeiosLc1kU8j4g"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_nqa0sJrfEeiosLc1kU8j4g" type="Extension_Edge" source="_hKeVwJrfEeiosLc1kU8j4g" target="_fsIvgJrfEeiosLc1kU8j4g">
+    <styles xmi:type="notation:FontStyle" xmi:id="_nqa0sZrfEeiosLc1kU8j4g"/>
+    <element xmi:type="uml:Extension" href="model.profile.uml#_np_W4JrfEeiosLc1kU8j4g"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_nqa0sprfEeiosLc1kU8j4g" points="[380, 381, -643984, -643984]$[380, 140, -643984, -643984]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_nrADgJrfEeiosLc1kU8j4g" id="(0.39800995024875624,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_nrAqkJrfEeiosLc1kU8j4g" id="(0.4,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_km4SoJ76EeiFcKmG9KkfrA" type="Generalization_Edge" source="_HJhAcJyvEeissNvJNlX0qA" target="_jPFZQJ76EeiFcKmG9KkfrA">
+    <children xmi:type="notation:DecorationNode" xmi:id="_km4So576EeiFcKmG9KkfrA" type="Generalization_StereotypeLabel">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_km4SpJ76EeiFcKmG9KkfrA" y="60"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_km4SoZ76EeiFcKmG9KkfrA"/>
+    <element xmi:type="uml:Generalization" href="model.profile.uml#_kmkJkJ76EeiFcKmG9KkfrA"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_km4Sop76EeiFcKmG9KkfrA" points="[120, 420, -643984, -643984]$[80, 380, -643984, -643984]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_knjoEJ76EeiFcKmG9KkfrA" id="(0.39800995024875624,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_knjoEZ76EeiFcKmG9KkfrA" id="(0.4,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_NxwfUJ-aEeiGp_7CKidkRA" type="Generalization_Edge" source="_yVeUIJ77EeiFcKmG9KkfrA" target="_HJhAcJyvEeissNvJNlX0qA">
+    <children xmi:type="notation:DecorationNode" xmi:id="_NxwfU5-aEeiGp_7CKidkRA" type="Generalization_StereotypeLabel">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_NxwfVJ-aEeiGp_7CKidkRA" y="60"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_NxwfUZ-aEeiGp_7CKidkRA"/>
+    <element xmi:type="uml:Generalization" href="model.profile.uml#_NxeygJ-aEeiGp_7CKidkRA"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NxwfUp-aEeiGp_7CKidkRA" points="[0, 720, -643984, -643984]$[100, 601, -643984, -643984]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NyYKYJ-aEeiGp_7CKidkRA" id="(0.5128205128205128,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NyYKYZ-aEeiGp_7CKidkRA" id="(0.39800995024875624,1.0)"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_OWI-wJ-aEeiGp_7CKidkRA" type="Generalization_Edge" source="_yVeUIJ77EeiFcKmG9KkfrA" target="_j-CsgHlUEeifUcBX7iBp6g">
+    <children xmi:type="notation:DecorationNode" xmi:id="_OWI-w5-aEeiGp_7CKidkRA" type="Generalization_StereotypeLabel">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_OWI-xJ-aEeiGp_7CKidkRA" y="60"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_OWI-wZ-aEeiGp_7CKidkRA"/>
+    <element xmi:type="uml:Generalization" href="model.profile.uml#_OV2D0J-aEeiGp_7CKidkRA"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_OWI-wp-aEeiGp_7CKidkRA" points="[0, 720, -643984, -643984]$[-160, 607, -643984, -643984]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_OWwp0J-aEeiGp_7CKidkRA" id="(0.5128205128205128,0.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_OWwp0Z-aEeiGp_7CKidkRA" id="(0.38953488372093026,1.0)"/>
+  </edges>
+</notation:Diagram>
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/model/model.profile.uml b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/model/model.profile.uml
new file mode 100644
index 0000000..db77fca
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/model/model.profile.uml
@@ -0,0 +1,459 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:Ecore="http://www.eclipse.org/uml2/schemas/Ecore/5" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/uml2/schemas/Ecore/5 pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA">
+  <uml:Profile xmi:id="_T9IHYB-HEeegP6aMHpCV8A" name="SSPProfile" URI="" metaclassReference="_UDR9QB-IEeegP6aMHpCV8A _imc5QFEAEeenPsCrM3OyTw _qiu94FEBEeenPsCrM3OyTw _Int0cFECEeenPsCrM3OyTw _Go0rsDKXEeiU5oVU_O76aA _fsHhYJrfEeiosLc1kU8j4g">
+    <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_HMgpsB-JEeegP6aMHpCV8A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+      <contents xmi:type="ecore:EPackage" xmi:id="_8m0PQKq7EeiaROE_eJkS6A" name="profile" nsURI="http://org.eclipse.papyrus.moka.ssp.profile/SSPProfile" nsPrefix="SSPProfile">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8m0PQaq7EeiaROE_eJkS6A" source="http://www.eclipse.org/uml2/4.1.0/UML">
+          <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/sysml/1.4/SysML#//deprecatedelements"/>
+          <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/FMIProfile/1.0.0#/"/>
+        </eAnnotations>
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8m0PQqq7EeiaROE_eJkS6A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_8m0PQ6q7EeiaROE_eJkS6A" key="originalName" value="SSPProfile"/>
+        </eAnnotations>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_8m0PRKq7EeiaROE_eJkS6A" name="SsdConnection">
+          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8m0PRaq7EeiaROE_eJkS6A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_VHB8MFD_EeenPsCrM3OyTw"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_8m0PRqq7EeiaROE_eJkS6A" name="base_Connector" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_8m0PSKq7EeiaROE_eJkS6A" name="start" ordered="false" lowerBound="1" eType="_8m0PUKq7EeiaROE_eJkS6A" derived="true"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_8m0PSqq7EeiaROE_eJkS6A" name="end" ordered="false" lowerBound="1" eType="_8m0PUKq7EeiaROE_eJkS6A" derived="true"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_8m0PTKq7EeiaROE_eJkS6A" name="startSsdProperty" ordered="false" derived="true">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_8m0PTqq7EeiaROE_eJkS6A" name="endSsdProperty" ordered="false" derived="true">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_8m0PUKq7EeiaROE_eJkS6A" name="SsdConnector">
+          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8m0PUaq7EeiaROE_eJkS6A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_HJSW8JyvEeissNvJNlX0qA"/>
+          <eSuperTypes xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/sysml/1.4/SysML#//deprecatedelements/FlowPort"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_8m0PUqq7EeiaROE_eJkS6A" name="SSDDescription" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_8m0PVKq7EeiaROE_eJkS6A" name="icon" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Image"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_8m0PV6q7EeiaROE_eJkS6A" name="SsdElement" abstract="true">
+          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8m0PWKq7EeiaROE_eJkS6A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_E9wrMFECEeenPsCrM3OyTw"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_8m0PWaq7EeiaROE_eJkS6A" name="ID" ordered="false">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_8m0PW6q7EeiaROE_eJkS6A" name="SsdSystem" eSuperTypes="_8m0PV6q7EeiaROE_eJkS6A">
+          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8m0PXKq7EeiaROE_eJkS6A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_FZyf4FECEeenPsCrM3OyTw"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_8m0PXaq7EeiaROE_eJkS6A" name="base_Class" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_8m0PYKq7EeiaROE_eJkS6A" name="SsdSignalDictionaryReference" eSuperTypes="_8m0PV6q7EeiaROE_eJkS6A">
+          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8m0PYaq7EeiaROE_eJkS6A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_5EN38NtGEee8fLUc1N33uA"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_8m0PYqq7EeiaROE_eJkS6A" name="base_Class" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_8m0PZaq7EeiaROE_eJkS6A" name="SsdComponent" eSuperTypes="_8m0PV6q7EeiaROE_eJkS6A">
+          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8m0PZqq7EeiaROE_eJkS6A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_MdifoItoEeiWf9BPHXi2qg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_8m0PZ6q7EeiaROE_eJkS6A" name="source" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_8m0Paaq7EeiaROE_eJkS6A" name="type" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_8m0Pa6q7EeiaROE_eJkS6A" name="fmu" ordered="false">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/FMIProfile/1.0.0#//FMU"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_8m0Pbaq7EeiaROE_eJkS6A" name="base_Property" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_8m0PcKq7EeiaROE_eJkS6A" name="Ssd">
+          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8m0Pcaq7EeiaROE_eJkS6A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_hKcgkJrfEeiosLc1kU8j4g"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_8m0Pcqq7EeiaROE_eJkS6A" name="base_Package" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_8m0PdKq7EeiaROE_eJkS6A" name="name" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_8m0Pdqq7EeiaROE_eJkS6A" name="version" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_8m0PeKq7EeiaROE_eJkS6A" name="SsdConnectorAndFmiPort">
+          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8m0Peaq7EeiaROE_eJkS6A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_yVY0kJ77EeiFcKmG9KkfrA"/>
+          <eSuperTypes xmi:type="ecore:EClass" href="#_8m0PUKq7EeiaROE_eJkS6A"/>
+          <eSuperTypes xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/FMIProfile/1.0.0#//FMIPort"/>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_8m0PfKq7EeiaROE_eJkS6A" name="Class29">
+          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8m0Pfaq7EeiaROE_eJkS6A" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
+          <eSuperTypes xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_8m0Pf6q7EeiaROE_eJkS6A" name="DataType30">
+          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8m0PgKq7EeiaROE_eJkS6A" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EDataType" xmi:id="_8m0Pgaq7EeiaROE_eJkS6A" name="PrimitiveType31" instanceClassName="java.lang.String">
+          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_8m0Pgqq7EeiaROE_eJkS6A" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
+        </eClassifiers>
+      </contents>
+      <contents xmi:type="ecore:EPackage" xmi:id="_WJrQYKq6EeiaROE_eJkS6A" name="profile" nsURI="http://org.eclipse.papyrus.moka.ssp.profile/SSPProfile" nsPrefix="SSPProfile">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WJrQYaq6EeiaROE_eJkS6A" source="http://www.eclipse.org/uml2/4.1.0/UML">
+          <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/sysml/1.4/SysML#//deprecatedelements"/>
+          <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/FMIProfile/1.0.0#/"/>
+        </eAnnotations>
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WJrQYqq6EeiaROE_eJkS6A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_WJrQY6q6EeiaROE_eJkS6A" key="originalName" value="SSPProfile"/>
+        </eAnnotations>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_WJrQZKq6EeiaROE_eJkS6A" name="SsdConnection">
+          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WJrQZaq6EeiaROE_eJkS6A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_VHB8MFD_EeenPsCrM3OyTw"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_WJrQZqq6EeiaROE_eJkS6A" name="base_Connector" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_WJrQaKq6EeiaROE_eJkS6A" name="start" ordered="false" lowerBound="1" eType="_WJrQcKq6EeiaROE_eJkS6A" derived="true"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_WJrQaqq6EeiaROE_eJkS6A" name="end" ordered="false" lowerBound="1" eType="_WJrQcKq6EeiaROE_eJkS6A" derived="true"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_WJrQbKq6EeiaROE_eJkS6A" name="startSsdProperty" ordered="false" derived="true">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_WJrQbqq6EeiaROE_eJkS6A" name="endSsdProperty" ordered="false" derived="true">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_WJrQcKq6EeiaROE_eJkS6A" name="SsdConnector">
+          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WJrQcaq6EeiaROE_eJkS6A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_HJSW8JyvEeissNvJNlX0qA"/>
+          <eSuperTypes xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/sysml/1.4/SysML#//deprecatedelements/FlowPort"/>
+          <eOperations xmi:type="ecore:EOperation" xmi:id="_WJrQcqq6EeiaROE_eJkS6A" name="getIcon" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Image"/>
+          </eOperations>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_WJrQdKq6EeiaROE_eJkS6A" name="SSDDescription" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_WJrQd6q6EeiaROE_eJkS6A" name="SsdElement" abstract="true">
+          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WJrQeKq6EeiaROE_eJkS6A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_E9wrMFECEeenPsCrM3OyTw"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_WJrQeaq6EeiaROE_eJkS6A" name="ID" ordered="false">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_WJrQe6q6EeiaROE_eJkS6A" name="SsdSystem" eSuperTypes="_WJrQd6q6EeiaROE_eJkS6A">
+          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WJrQfKq6EeiaROE_eJkS6A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_FZyf4FECEeenPsCrM3OyTw"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_WJrQfaq6EeiaROE_eJkS6A" name="base_Class" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_WJrQgKq6EeiaROE_eJkS6A" name="SsdSignalDictionaryReference" eSuperTypes="_WJrQd6q6EeiaROE_eJkS6A">
+          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WJrQgaq6EeiaROE_eJkS6A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_5EN38NtGEee8fLUc1N33uA"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_WJrQgqq6EeiaROE_eJkS6A" name="base_Class" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Class"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_WJrQhaq6EeiaROE_eJkS6A" name="SsdComponent" eSuperTypes="_WJrQd6q6EeiaROE_eJkS6A">
+          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WJrQhqq6EeiaROE_eJkS6A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_MdifoItoEeiWf9BPHXi2qg"/>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_WJrQh6q6EeiaROE_eJkS6A" name="source" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_WJrQiaq6EeiaROE_eJkS6A" name="type" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_WJrQi6q6EeiaROE_eJkS6A" name="fmu" ordered="false">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/FMIProfile/1.0.0#//FMU"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_WJrQjaq6EeiaROE_eJkS6A" name="base_Property" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Property"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_WJrQkKq6EeiaROE_eJkS6A" name="Ssd">
+          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WJrQkaq6EeiaROE_eJkS6A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_hKcgkJrfEeiosLc1kU8j4g"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_WJrQkqq6EeiaROE_eJkS6A" name="base_Package" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Package"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_WJrQlKq6EeiaROE_eJkS6A" name="name" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EAttribute" xmi:id="_WJrQlqq6EeiaROE_eJkS6A" name="version" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_WJrQmKq6EeiaROE_eJkS6A" name="SsdConnectorAndFmiPort">
+          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WJrQmaq6EeiaROE_eJkS6A" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_yVY0kJ77EeiFcKmG9KkfrA"/>
+          <eSuperTypes xmi:type="ecore:EClass" href="#_WJrQcKq6EeiaROE_eJkS6A"/>
+          <eSuperTypes xmi:type="ecore:EClass" href="http://www.eclipse.org/papyrus/FMIProfile/1.0.0#//FMIPort"/>
+          <eOperations xmi:type="ecore:EOperation" xmi:id="_WJrQmqq6EeiaROE_eJkS6A" name="getIcon" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Image"/>
+          </eOperations>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_WJrQnqq6EeiaROE_eJkS6A" name="Class29">
+          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WJrQn6q6EeiaROE_eJkS6A" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
+          <eSuperTypes xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_WJrQoaq6EeiaROE_eJkS6A" name="DataType30">
+          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WJrQoqq6EeiaROE_eJkS6A" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EDataType" xmi:id="_WJrQo6q6EeiaROE_eJkS6A" name="PrimitiveType31" instanceClassName="java.lang.String">
+          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_WJrQpKq6EeiaROE_eJkS6A" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
+        </eClassifiers>
+      </contents>
+      <contents xmi:type="ecore:EPackage" xmi:id="_9_Cx8FWpEee0075sTOpvdA" name="profile" nsURI="http://org.eclipse.papyrus.moka.ssp.profile/SSPProfile" nsPrefix="SSPProfile">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9_Cx8VWpEee0075sTOpvdA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_9_Cx8lWpEee0075sTOpvdA" key="originalName" value="SSPProfile"/>
+        </eAnnotations>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_9_Cx81WpEee0075sTOpvdA" name="SsdConnection">
+          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9_Cx9FWpEee0075sTOpvdA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_VHB8MFD_EeenPsCrM3OyTw"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_9_Cx9VWpEee0075sTOpvdA" name="base_Connector" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Connector"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_9_Cx91WpEee0075sTOpvdA" name="start" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ConnectorEnd"/>
+          </eStructuralFeatures>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_9_Cx-VWpEee0075sTOpvdA" name="end" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//ConnectorEnd"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_9_Cx-1WpEee0075sTOpvdA" name="SsdConnectorType">
+          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9_Cx_FWpEee0075sTOpvdA" source="http://www.eclipse.org/uml2/2.0.0/UML"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_9_Cx_VWpEee0075sTOpvdA" name="base_Port" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Port"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_9_Cx_1WpEee0075sTOpvdA" name="SsdTComponent">
+          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9_CyAFWpEee0075sTOpvdA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_E9wrMFECEeenPsCrM3OyTw"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_9_CyAVWpEee0075sTOpvdA" name="base_Component" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Component"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+        <eClassifiers xmi:type="ecore:EClass" xmi:id="_9_CyA1WpEee0075sTOpvdA" name="SsdTSystem">
+          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_9_CyBFWpEee0075sTOpvdA" source="http://www.eclipse.org/uml2/2.0.0/UML" references="_FZyf4FECEeenPsCrM3OyTw"/>
+          <eStructuralFeatures xmi:type="ecore:EReference" xmi:id="_9_CyBVWpEee0075sTOpvdA" name="base_Component" ordered="false" lowerBound="1">
+            <eType xmi:type="ecore:EClass" href="http://www.eclipse.org/uml2/5.0.0/UML#//Component"/>
+          </eStructuralFeatures>
+        </eClassifiers>
+      </contents>
+    </eAnnotations>
+    <elementImport xmi:type="uml:ElementImport" xmi:id="_UDR9QB-IEeegP6aMHpCV8A" alias="Class">
+      <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+    </elementImport>
+    <elementImport xmi:type="uml:ElementImport" xmi:id="_imc5QFEAEeenPsCrM3OyTw" alias="Connector">
+      <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Connector"/>
+    </elementImport>
+    <elementImport xmi:type="uml:ElementImport" xmi:id="_qiu94FEBEeenPsCrM3OyTw" alias="Port">
+      <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Port"/>
+    </elementImport>
+    <elementImport xmi:type="uml:ElementImport" xmi:id="_Int0cFECEeenPsCrM3OyTw" alias="Component">
+      <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Component"/>
+    </elementImport>
+    <elementImport xmi:type="uml:ElementImport" xmi:id="_Go0rsDKXEeiU5oVU_O76aA" alias="Property">
+      <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
+    </elementImport>
+    <elementImport xmi:type="uml:ElementImport" xmi:id="_fsHhYJrfEeiosLc1kU8j4g" alias="Package">
+      <importedElement xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
+    </elementImport>
+    <packageImport xmi:type="uml:PackageImport" xmi:id="_OedssDdBEei4iPaKNPfTlQ">
+      <importedPackage xmi:type="uml:Profile" href="pathmap://SysML14_PROFILES/SysML.profile.uml#SysML.package_packagedElement_Blocks"/>
+    </packageImport>
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_VHB8MFD_EeenPsCrM3OyTw" name="SsdConnection">
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_jsy2QFEAEeenPsCrM3OyTw" name="base_Connector" association="_jspsUFEAEeenPsCrM3OyTw">
+        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Connector"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_zUMPonhuEeihra2GkjZNtQ" name="start" type="_HJSW8JyvEeissNvJNlX0qA" isReadOnly="true" isDerived="true" association="_zULokHhuEeihra2GkjZNtQ"/>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_sDL1Q3hwEeihra2GkjZNtQ" name="end" type="_HJSW8JyvEeissNvJNlX0qA" isReadOnly="true" isDerived="true" association="_sDLOMHhwEeihra2GkjZNtQ"/>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_DS50oIm-EeixnsCmB1SW-Q" name="startSsdProperty" isReadOnly="true" isDerived="true" association="_DS3YYIm-EeixnsCmB1SW-Q">
+        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_HhAz0Im-EeixnsCmB1SW-Q"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_FU810onHEeixnsCmB1SW-Q" name="endSsdProperty" isReadOnly="true" isDerived="true" association="_FU7nsInHEeixnsCmB1SW-Q">
+        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_SqG5EInHEeixnsCmB1SW-Q"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_SqJ8YInHEeixnsCmB1SW-Q" value="1"/>
+      </ownedAttribute>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Extension" xmi:id="_jspsUFEAEeenPsCrM3OyTw" name="E_SsdConnection_Connector1" memberEnd="_jspsUVEAEeenPsCrM3OyTw _jsy2QFEAEeenPsCrM3OyTw">
+      <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_jspsUVEAEeenPsCrM3OyTw" name="extension_SsdConnection" type="_VHB8MFD_EeenPsCrM3OyTw" aggregation="composite" association="_jspsUFEAEeenPsCrM3OyTw"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_E9wrMFECEeenPsCrM3OyTw" name="SsdElement" isAbstract="true">
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_6Za44JAHEeiEPYPudKFLsA" name="ID">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_EBzIYJAIEeiEPYPudKFLsA"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_EB7EMJAIEeiEPYPudKFLsA" value="1"/>
+      </ownedAttribute>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_FZyf4FECEeenPsCrM3OyTw" name="SsdSystem">
+      <generalization xmi:type="uml:Generalization" xmi:id="_U4FDAItoEeiWf9BPHXi2qg" general="_E9wrMFECEeenPsCrM3OyTw"/>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_Nt4G8ZAaEeibTpPP74HsGA" name="base_Class" association="_Nt1DoJAaEeibTpPP74HsGA">
+        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+      </ownedAttribute>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_5EN38NtGEee8fLUc1N33uA" name="SsdSignalDictionaryReference">
+      <generalization xmi:type="uml:Generalization" xmi:id="_UlFOgItoEeiWf9BPHXi2qg" general="_E9wrMFECEeenPsCrM3OyTw"/>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_OHikIJAaEeibTpPP74HsGA" name="base_Class" association="_OHhWAJAaEeibTpPP74HsGA">
+        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Class"/>
+      </ownedAttribute>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Association" xmi:id="_zULokHhuEeihra2GkjZNtQ" isDerived="true" memberEnd="_zUMPoXhuEeihra2GkjZNtQ _zUMPonhuEeihra2GkjZNtQ">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_zULokXhuEeihra2GkjZNtQ" source="org.eclipse.papyrus">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_zUMPoHhuEeihra2GkjZNtQ" key="nature" value="UML_Nature"/>
+      </eAnnotations>
+      <ownedEnd xmi:type="uml:Property" xmi:id="_zUMPoXhuEeihra2GkjZNtQ" type="_VHB8MFD_EeenPsCrM3OyTw" association="_zULokHhuEeihra2GkjZNtQ"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Association" xmi:id="_sDLOMHhwEeihra2GkjZNtQ" isDerived="true" memberEnd="_sDL1QnhwEeihra2GkjZNtQ _sDL1Q3hwEeihra2GkjZNtQ">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_sDL1QHhwEeihra2GkjZNtQ" source="org.eclipse.papyrus">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_sDL1QXhwEeihra2GkjZNtQ" key="nature" value="UML_Nature"/>
+      </eAnnotations>
+      <ownedEnd xmi:type="uml:Property" xmi:id="_sDL1QnhwEeihra2GkjZNtQ" type="_VHB8MFD_EeenPsCrM3OyTw" association="_sDLOMHhwEeihra2GkjZNtQ"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Extension" xmi:id="_-3k40Im9EeixnsCmB1SW-Q" name="E_SsdComponent_Property20" memberEnd="_-3muAIm9EeixnsCmB1SW-Q _MlGz8JANEeiEPYPudKFLsA">
+      <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_-3muAIm9EeixnsCmB1SW-Q" name="extension_SsdComponent" type="_MdifoItoEeiWf9BPHXi2qg" aggregation="composite" association="_-3k40Im9EeixnsCmB1SW-Q"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Association" xmi:id="_DS3YYIm-EeixnsCmB1SW-Q" visibility="public" isLeaf="true" isFinalSpecialization="true" isDerived="true" memberEnd="_DS50oIm-EeixnsCmB1SW-Q _DS6bsIm-EeixnsCmB1SW-Q">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_DS4mgIm-EeixnsCmB1SW-Q" source="org.eclipse.papyrus">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_DS5NkIm-EeixnsCmB1SW-Q" key="nature" value="UML_Nature"/>
+      </eAnnotations>
+      <ownedEnd xmi:type="uml:Property" xmi:id="_DS6bsIm-EeixnsCmB1SW-Q" visibility="private" type="_VHB8MFD_EeenPsCrM3OyTw" isReadOnly="true" association="_DS3YYIm-EeixnsCmB1SW-Q">
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_M9x-gIm-EeixnsCmB1SW-Q" value="1"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_M97IcIm-EeixnsCmB1SW-Q" value="1"/>
+      </ownedEnd>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Association" xmi:id="_FU7nsInHEeixnsCmB1SW-Q" isDerived="true" memberEnd="_FU810onHEeixnsCmB1SW-Q _FU9c4InHEeixnsCmB1SW-Q">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_FU810InHEeixnsCmB1SW-Q" source="org.eclipse.papyrus">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_FU810YnHEeixnsCmB1SW-Q" key="nature" value="UML_Nature"/>
+      </eAnnotations>
+      <ownedEnd xmi:type="uml:Property" xmi:id="_FU9c4InHEeixnsCmB1SW-Q" type="_VHB8MFD_EeenPsCrM3OyTw" association="_FU7nsInHEeixnsCmB1SW-Q"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_MdifoItoEeiWf9BPHXi2qg" name="SsdComponent">
+      <generalization xmi:type="uml:Generalization" xmi:id="_URwC0ItoEeiWf9BPHXi2qg" general="_E9wrMFECEeenPsCrM3OyTw"/>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_xdycoNtHEee8fLUc1N33uA" name="source">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_xFltINtJEee8fLUc1N33uA" name="type">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_x__uoI_tEeisd_fYEaLh1w" name="fmu">
+        <type xmi:type="uml:Stereotype" href="../../org.eclipse.papyrus.moka.fmi.profile/model/FMI.profile.uml#_6Z7fcK0REeSXqKqlHzx1gA"/>
+        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_x__uoY_tEeisd_fYEaLh1w"/>
+        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_x__uoo_tEeisd_fYEaLh1w" value="1"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_MlGz8JANEeiEPYPudKFLsA" name="base_Property" association="_-3k40Im9EeixnsCmB1SW-Q">
+        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Property"/>
+      </ownedAttribute>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Extension" xmi:id="_Nt1DoJAaEeibTpPP74HsGA" name="E_SsdSystem_Class21" memberEnd="_Nt4G8JAaEeibTpPP74HsGA _Nt4G8ZAaEeibTpPP74HsGA">
+      <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_Nt4G8JAaEeibTpPP74HsGA" name="extension_SsdSystem" type="_FZyf4FECEeenPsCrM3OyTw" aggregation="composite" association="_Nt1DoJAaEeibTpPP74HsGA"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Extension" xmi:id="_OHhWAJAaEeibTpPP74HsGA" name="E_SsdSignalDictionaryReference_Class22" memberEnd="_OHh9EJAaEeibTpPP74HsGA _OHikIJAaEeibTpPP74HsGA">
+      <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_OHh9EJAaEeibTpPP74HsGA" name="extension_SsdSignalDictionaryReference" type="_5EN38NtGEee8fLUc1N33uA" aggregation="composite" association="_OHhWAJAaEeibTpPP74HsGA"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_hKcgkJrfEeiosLc1kU8j4g" name="Ssd">
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_nqCaMJrfEeiosLc1kU8j4g" name="base_Package" association="_np_W4JrfEeiosLc1kU8j4g">
+        <type xmi:type="uml:Class" href="pathmap://UML_METAMODELS/UML.metamodel.uml#Package"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_2IV20JrfEeiosLc1kU8j4g" name="name">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_LBdawJrgEeiosLc1kU8j4g" name="version">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_zPIOILHBEeib6JR9yOlNVg" name="mainSystem" type="_FZyf4FECEeenPsCrM3OyTw"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Extension" xmi:id="_np_W4JrfEeiosLc1kU8j4g" name="E_Ssd_Package25" memberEnd="_nqBzIJrfEeiosLc1kU8j4g _nqCaMJrfEeiosLc1kU8j4g">
+      <ownedEnd xmi:type="uml:ExtensionEnd" xmi:id="_nqBzIJrfEeiosLc1kU8j4g" name="extension_Ssd" type="_hKcgkJrfEeiosLc1kU8j4g" aggregation="composite" association="_np_W4JrfEeiosLc1kU8j4g"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_HJSW8JyvEeissNvJNlX0qA" name="SsdConnector">
+      <generalization xmi:type="uml:Generalization" xmi:id="_kmkJkJ76EeiFcKmG9KkfrA">
+        <general xmi:type="uml:Stereotype" href="pathmap://SysML14_PROFILES/SysML.profile.uml#SysML.package_packagedElement_DeprecatedElements.stereotype_packagedElement_FlowPort"/>
+      </generalization>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_FQfTwJ-YEeiGp_7CKidkRA" name="SSDDescription">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/EcorePrimitiveTypes.library.uml#EString"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_C4cHcLUGEeiSGMgJYpbk4Q" name="typeKind" type="_eg2qYLUFEeiSGMgJYpbk4Q"/>
+      <icon xmi:type="uml:Image" xmi:id="_L6_OoKqVEeiaROE_eJkS6A" format="GIF" location="platform:/plugin/org.eclipse.papyrus.sysml14.edit/icons/full/obj16/FlowPort_IN.gif">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L6_OoaqVEeiaROE_eJkS6A" source="image_papyrus">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L6_OoqqVEeiaROE_eJkS6A" key="image_kind_key" value="icon"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L6_Oo6qVEeiaROE_eJkS6A" key="image_name_key" value="FlowPort_IN"/>
+        </eAnnotations>
+      </icon>
+      <icon xmi:type="uml:Image" xmi:id="_L7Bq4KqVEeiaROE_eJkS6A" format="GIF" location="platform:/plugin/org.eclipse.papyrus.sysml14.edit/icons/full/obj16/FlowPort_OUT.gif">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L7Bq4aqVEeiaROE_eJkS6A" source="image_papyrus">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L7Bq4qqVEeiaROE_eJkS6A" key="image_kind_key" value="icon"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L7Bq46qVEeiaROE_eJkS6A" key="image_name_key" value="FlowPort_OUT"/>
+        </eAnnotations>
+      </icon>
+      <icon xmi:type="uml:Image" xmi:id="_L7CR8KqVEeiaROE_eJkS6A" format="GIF" location="platform:/plugin/org.eclipse.papyrus.sysml14.edit/icons/full/obj16/FlowPort_INOUT.gif">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L7CR8aqVEeiaROE_eJkS6A" source="image_papyrus">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L7CR8qqVEeiaROE_eJkS6A" key="image_kind_key" value="icon"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L7CR86qVEeiaROE_eJkS6A" key="image_name_key" value="FlowPort_INOUT"/>
+        </eAnnotations>
+      </icon>
+      <icon xmi:type="uml:Image" xmi:id="_L7C5AKqVEeiaROE_eJkS6A" format="GIF" location="platform:/plugin/org.eclipse.papyrus.sysml14.edit/icons/full/obj16/FlowPort_NA.gif">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L7C5AaqVEeiaROE_eJkS6A" source="image_papyrus">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L7C5AqqVEeiaROE_eJkS6A" key="image_kind_key" value="icon"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L7C5A6qVEeiaROE_eJkS6A" key="image_name_key" value="FlowPort_NA"/>
+        </eAnnotations>
+      </icon>
+      <icon xmi:type="uml:Image" xmi:id="_L7DgEKqVEeiaROE_eJkS6A" format="GIF" location="platform:/plugin/org.eclipse.papyrus.sysml14.edit/icons/full/obj16/FlowPort.gif">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_L7DgEaqVEeiaROE_eJkS6A" source="image_papyrus">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L7DgEqqVEeiaROE_eJkS6A" key="image_kind_key" value="icon"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_L7DgE6qVEeiaROE_eJkS6A" key="image_name_key" value="FlowPort"/>
+        </eAnnotations>
+      </icon>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Stereotype" xmi:id="_yVY0kJ77EeiFcKmG9KkfrA" name="SsdConnectorAndFmiPort">
+      <generalization xmi:type="uml:Generalization" xmi:id="_NxeygJ-aEeiGp_7CKidkRA" general="_HJSW8JyvEeissNvJNlX0qA" isSubstitutable="false"/>
+      <generalization xmi:type="uml:Generalization" xmi:id="_OV2D0J-aEeiGp_7CKidkRA" isSubstitutable="false">
+        <general xmi:type="uml:Stereotype" href="../../org.eclipse.papyrus.moka.fmi.profile/model/FMI.profile.uml#_0Ab54OyjEeSEBKJWDCrAIQ"/>
+      </generalization>
+      <icon xmi:type="uml:Image" xmi:id="_Os4ugKqVEeiaROE_eJkS6A" format="GIF" location="platform:/plugin/org.eclipse.papyrus.sysml14.edit/icons/full/obj16/FlowPort_IN.gif">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Os4ugaqVEeiaROE_eJkS6A" source="image_papyrus">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Os4ugqqVEeiaROE_eJkS6A" key="image_kind_key" value="icon"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Os4ug6qVEeiaROE_eJkS6A" key="image_name_key" value="FlowPort_IN"/>
+        </eAnnotations>
+      </icon>
+      <icon xmi:type="uml:Image" xmi:id="_Os5VkKqVEeiaROE_eJkS6A" format="GIF" location="platform:/plugin/org.eclipse.papyrus.sysml14.edit/icons/full/obj16/FlowPort_OUT.gif">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Os5VkaqVEeiaROE_eJkS6A" source="image_papyrus">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Os5VkqqVEeiaROE_eJkS6A" key="image_kind_key" value="icon"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Os5Vk6qVEeiaROE_eJkS6A" key="image_name_key" value="FlowPort_OUT"/>
+        </eAnnotations>
+      </icon>
+      <icon xmi:type="uml:Image" xmi:id="_Os58oKqVEeiaROE_eJkS6A" format="GIF" location="platform:/plugin/org.eclipse.papyrus.sysml14.edit/icons/full/obj16/FlowPort_INOUT.gif">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Os58oaqVEeiaROE_eJkS6A" source="image_papyrus">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Os58oqqVEeiaROE_eJkS6A" key="image_kind_key" value="icon"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Os58o6qVEeiaROE_eJkS6A" key="image_name_key" value="FlowPort_INOUT"/>
+        </eAnnotations>
+      </icon>
+      <icon xmi:type="uml:Image" xmi:id="_Os6jsKqVEeiaROE_eJkS6A" format="GIF" location="platform:/plugin/org.eclipse.papyrus.sysml14.edit/icons/full/obj16/FlowPort_NA.gif">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Os6jsaqVEeiaROE_eJkS6A" source="image_papyrus">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Os6jsqqVEeiaROE_eJkS6A" key="image_kind_key" value="icon"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Os6js6qVEeiaROE_eJkS6A" key="image_name_key" value="FlowPort_NA"/>
+        </eAnnotations>
+      </icon>
+      <icon xmi:type="uml:Image" xmi:id="_Os7KwKqVEeiaROE_eJkS6A" format="GIF" location="platform:/plugin/org.eclipse.papyrus.sysml14.edit/icons/full/obj16/FlowPort.gif">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Os7KwaqVEeiaROE_eJkS6A" source="image_papyrus">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Os7KwqqVEeiaROE_eJkS6A" key="image_kind_key" value="icon"/>
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Os7Kw6qVEeiaROE_eJkS6A" key="image_name_key" value="FlowPort"/>
+        </eAnnotations>
+      </icon>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Enumeration" xmi:id="_eg2qYLUFEeiSGMgJYpbk4Q" name="TypeKind">
+      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_3FO_ILUFEeiSGMgJYpbk4Q" name="input"/>
+      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_3MNw4LUFEeiSGMgJYpbk4Q" name="output"/>
+      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_3Te2gLUFEeiSGMgJYpbk4Q" name="parameter"/>
+      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_3cLfgLUFEeiSGMgJYpbk4Q" name="calculatedParameter"/>
+      <ownedLiteral xmi:type="uml:EnumerationLiteral" xmi:id="_AayZQLUGEeiSGMgJYpbk4Q" name="inout"/>
+    </packagedElement>
+    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_sHxGcB-HEeegP6aMHpCV8A">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_sHzisB-HEeegP6aMHpCV8A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+        <references xmi:type="ecore:EPackage" href="pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA"/>
+      </eAnnotations>
+      <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_PROFILES/Ecore.profile.uml#_0"/>
+    </profileApplication>
+    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_yCnQwPVNEeeWg-ColR3VLQ">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_yCpF8PVNEeeWg-ColR3VLQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
+        <references xmi:type="ecore:EPackage" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#_Kv8EIKFXEeS_KNX0nfvIVQ"/>
+      </eAnnotations>
+      <appliedProfile xmi:type="uml:Profile" href="pathmap://PAPYRUS_ACTIONLANGUAGE_PROFILE/ActionLanguage-Profile.profile.uml#ActionLanguage"/>
+    </profileApplication>
+    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_7uimcKqaEeiaROE_eJkS6A">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_7ulCsKqaEeiaROE_eJkS6A" source="http://www.eclipse.org/uml2/2.0.0/UML">
+        <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/sysml/1.4/SysML#//deprecatedelements"/>
+      </eAnnotations>
+      <appliedProfile xmi:type="uml:Profile" href="pathmap://SysML14_PROFILES/SysML.profile.uml#SysML.package_packagedElement_DeprecatedElements"/>
+    </profileApplication>
+  </uml:Profile>
+  <Ecore:EPackage xmi:id="_y6Fu0B-HEeegP6aMHpCV8A" base_Package="_T9IHYB-HEeegP6aMHpCV8A" packageName="profile" nsPrefix="SSPProfile" nsURI="http://org.eclipse.papyrus.moka.ssp.profile/SSPProfile" basePackage="org.eclipse.papyrus.moka.ssp" prefix="SSPProfile"/>
+</xmi:XMI>
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/model/profile.ecore b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/model/profile.ecore
new file mode 100644
index 0000000..d7a6fc3
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/model/profile.ecore
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="profile" nsURI="http://org.eclipse.papyrus.moka.ssp.profile/SSPProfile"
+    nsPrefix="SSPProfile">
+  <eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
+    <details key="originalName" value="SSPProfile"/>
+  </eAnnotations>
+  <eClassifiers xsi:type="ecore:EClass" name="SsdConnection">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="base_Connector" ordered="false"
+        lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Connector"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="start" ordered="false"
+        lowerBound="1" eType="#//SsdConnector" changeable="false" volatile="true"
+        transient="true" derived="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="end" ordered="false" lowerBound="1"
+        eType="#//SsdConnector" changeable="false" volatile="true" transient="true"
+        derived="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="startSsdProperty" ordered="false"
+        eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Property"
+        changeable="false" volatile="true" transient="true" derived="true"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="endSsdProperty" ordered="false"
+        eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Property"
+        changeable="false" volatile="true" transient="true" derived="true"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="SsdConnector" eSuperTypes="../../org.eclipse.papyrus.sysml14/resources/profile/sysml.ecore#//deprecatedelements/FlowPort">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="SSDDescription" ordered="false"
+        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="typeKind" ordered="false"
+        lowerBound="1" eType="#//TypeKind"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EEnum" name="TypeKind">
+    <eLiterals name="input"/>
+    <eLiterals name="output" value="1"/>
+    <eLiterals name="parameter" value="2"/>
+    <eLiterals name="calculatedParameter" value="3"/>
+    <eLiterals name="inout" value="4"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="SsdElement" abstract="true">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="ID" ordered="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="SsdSystem" eSuperTypes="#//SsdElement">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="base_Class" ordered="false"
+        lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="SsdSignalDictionaryReference" eSuperTypes="#//SsdElement">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="base_Class" ordered="false"
+        lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="SsdComponent" eSuperTypes="#//SsdElement">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="source" ordered="false"
+        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" ordered="false" lowerBound="1"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="fmu" ordered="false" eType="ecore:EClass ../../org.eclipse.papyrus.moka.fmi.profile/model/fmiprofile.ecore#//FMU"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="base_Property" ordered="false"
+        lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Ssd">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="base_Package" ordered="false"
+        lowerBound="1" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Package"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" ordered="false" lowerBound="1"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="version" ordered="false"
+        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="mainSystem" ordered="false"
+        lowerBound="1" eType="#//SsdSystem"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="SsdConnectorAndFmiPort" eSuperTypes="../../org.eclipse.papyrus.moka.fmi.profile/model/fmiprofile.ecore#//FMIPort #//SsdConnector"/>
+</ecore:EPackage>
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/model/scripts/create_tlm_interfaces.py b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/model/scripts/create_tlm_interfaces.py
new file mode 100644
index 0000000..db402be
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/model/scripts/create_tlm_interfaces.py
@@ -0,0 +1,115 @@
+#
+# Copyright (c) 2019 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:
+#    CEA LIST - Initial API and implementation
+# 
+
+#name: Create TLM interfaces
+#papypopup :enableFor(org.eclipse.uml2.uml.Package)
+#script-engine : org.eclipse.ease.python.jython
+from numba.dummyarray import Dim
+
+
+
+
+
+loadModule("/Modeling/UML")
+loadModule("/Modeling/UMLUtils")
+include("platform:/plugin/org.eclipse.papyrus.moka.fmi.ease/script/fmi_util.py")
+
+
+from org.eclipse.uml2.uml import AggregationKind
+from org.eclipse.papyrus.sysml14.portsandflows import FlowDirection
+from org.eclipse.papyrus.moka.ssp.omsimulatorprofile import Interpolation
+
+package = getSelection()
+interfaceBlockStereo = getPapyrusNamedElement(package, "SysML::PortsAndFlows::InterfaceBlock")
+flowPortStereo = getPapyrusNamedElement(package, "SysML::DeprecatedElements::FlowPort")
+realType = getPapyrusNamedElement(package, "PrimitiveTypes::Real")
+
+tlmInterfaceDefinitionStereo = getPapyrusNamedElement(package, "OMSimulatorProfile::TLMInterfaceDefinition")
+tlmSignalDefinition = getPapyrusNamedElement(package, "OMSimulatorProfile::TLMSignalDefinition")
+
+
+initEPackage("http://www.eclipse.org/uml2/5.0.0/UML")
+factory = getFactory()
+
+def createInterfaceBlock(name, package, dim, interpolation):
+        result = factory.createClass()
+        result.setName(name)
+        package.getPackagedElements().add(result)
+        result.applyStereotype(interfaceBlockStereo)
+        definition = result.applyStereotype(tlmInterfaceDefinitionStereo)
+        definition.setDimensions(dim)
+        
+        return result
+    
+
+
+def createSignals(interface, signals):
+    for signal in signals :
+        port = interface.createOwnedPort(signal, realType)
+        port.setAggregation(AggregationKind.COMPOSITE_LITERAL)
+        flowPort = port.applyStereotype(flowPortStereo)
+        flowPort.setDirection(FlowDirection.IN)
+        signalDef = port.applyStereotype(tlmSignalDefinition)
+        
+        
+def script():
+    
+    interface = createInterfaceBlock("Delayed Signal", package,1, Interpolation.NONE)
+    createSignals(interface, ["value"])
+    
+    interface = createInterfaceBlock("1D physical", package,1, Interpolation.NONE)
+    createSignals(interface, ["state", "flow", "effort"])
+    
+    interface = createInterfaceBlock("1D physical coarse-grained", package, 1, Interpolation.COARSEGRAINED)
+    createSignals(interface, ["state", "flow", "wave", "impedance"])
+    
+    interface = createInterfaceBlock("1D physical fine-grained", package,1, Interpolation.FINEGRAINED)
+    createSignals(interface, ["state", "flow", 
+"wave1", "wave2", "wave3", "wave4", "wave5", "wave6", "wave7", "wave8", "wave9", "wave10", 
+"time1", "time2", "time3", "time4", "time5", "time6", "time7", "time8", "time9", "time10", 
+"impedance"
+])
+    
+    interface = createInterfaceBlock("3D physical", package,3, Interpolation.NONE)
+    createSignals(interface, ["state1", "state2", "state3", 
+"A11", "A12", "A13", "A21", "A22", "A23", "A31", "A32", "A33", 
+"flow1",  "flow2",  "flow3", "flow4",  "flow5", "flow6", 
+"effort1", "effort2", "effort3", "effort4", "effort5", "effort6"
+])
+    
+    interface = createInterfaceBlock("3D physical coarse-grained", package,3, Interpolation.COARSEGRAINED)
+    createSignals(interface, ["state1", "state2", "state3", 
+"A1_1",   "A1_2",   "A1_3", "A2_1",   "A2_2",   "A2_3", "A3_1",   "A3_2",   "A3_3", 
+"flow1",  "flow2",  "flow3", "flow4",  "flow5",  "flow6", 
+"wave1",  "wave2",  "wave3", "wave4",  "wave3",  "wave4", 
+"impedance_t","impedance_r"])
+    
+    interface = createInterfaceBlock("3D physical fine-grained", package,3, Interpolation.FINEGRAINED)
+    createSignals(interface, ["state1",   "state2",   "state3" 
+"A1_1", "A1_2", "A1_3", "A2_1", "A2_2", "A2_3", "A3_1", "A3_2", "A3_3", 
+"flow1", "flow2", "flow3", "flow4", "flow5", "flow6", 
+"wave1_1", "wave2_1", "wave3_1", "wave4_1", "wave5_1", "wave6_1", 
+"wave1_2", "wave2_2", "wave3_2", "wave4_2", "wave5_2", "wave6_2", 
+"wave1_3", "wave2_3", "wave3_3", "wave4_3", "wave5_3", "wave6_3", 
+"wave1_4", "wave2_4", "wave3_4", "wave4_4", "wave5_4", "wave6_4", 
+"wave1_5", "wave2_5", "wave3_5", "wave4_5", "wave5_5", "wave6_5", 
+"wave1_6", "wave2_6", "wave3_6", "wave4_6", "wave5_6", "wave6_6", 
+"wave1_7", "wave2_7", "wave3_7", "wave4_7", "wave5_7", "wave6_7", 
+"wave1_8", "wave2_8", "wave3_8", "wave4_8", "wave5_8", "wave6_8", 
+"wave1_9", "wave2_9", "wave3_9", "wave4_9", "wave5_9", "wave6_9", 
+"wave1_10", "wave2_10", "wave3_10", "wave4_10", "wave5_10", "wave6_10", 
+"time1", "time2", "time3", "time4", "time5", "time6", "time7", "time8", "time9", "time10", 
+"impedance_t","impedance_r"])
+    
+    
+
+papyRun(script)
\ No newline at end of file
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/model/ssd_component_diagram_palette.paletteconfiguration b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/model/ssd_component_diagram_palette.paletteconfiguration
new file mode 100644
index 0000000..6a5fc5f
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/model/ssd_component_diagram_palette.paletteconfiguration
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="ASCII"?>
+<paletteconfiguration:PaletteConfiguration xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:elementtypesconfigurations="http://www.eclipse.org/papyrus/infra/elementtypesconfigurations/1.2" xmlns:paletteconfiguration="http://www.eclipse.org/papyrus/diagram/paletteconfiguration/0.8" id="ssd_component_diagram_palette" label="SSD">
+  <drawerConfigurations id="ssd_component_palette" label="SSD">
+    <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="component.tool.component_tsystem" label="SSD TSystem" description="">
+      <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="/icons/full/obj16/Component.gif"/>
+      <elementDescriptors>
+        <elementType xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" href="ssd_component_diagram_palette_UI.elementtypesconfigurations#//@elementTypeConfigurations.3"/>
+      </elementDescriptors>
+      <elementDescriptors>
+        <elementType xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" href="ssd_component_diagram_palette_UI.elementtypesconfigurations#//@elementTypeConfigurations.4"/>
+      </elementDescriptors>
+      <elementDescriptors>
+        <elementType xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" href="ssd_component_diagram_palette_UI.elementtypesconfigurations#//@elementTypeConfigurations.5"/>
+      </elementDescriptors>
+    </ownedConfigurations>
+    <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="component.tool.component_tcomponent" label="SSD TComponent" description="">
+      <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="/icons/full/obj16/Component.gif"/>
+      <elementDescriptors>
+        <elementType xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" href="ssd_component_diagram_palette_UI.elementtypesconfigurations#//@elementTypeConfigurations.0"/>
+      </elementDescriptors>
+      <elementDescriptors>
+        <elementType xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" href="ssd_component_diagram_palette_UI.elementtypesconfigurations#//@elementTypeConfigurations.1"/>
+      </elementDescriptors>
+      <elementDescriptors>
+        <elementType xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" href="ssd_component_diagram_palette_UI.elementtypesconfigurations#//@elementTypeConfigurations.2"/>
+      </elementDescriptors>
+    </ownedConfigurations>
+    <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="component.tool.port_connectortype" label="SSD Connector Type" description="">
+      <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="/icons/full/obj16/Port.gif"/>
+      <elementDescriptors>
+        <elementType xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" href="ssd_component_diagram_palette_UI.elementtypesconfigurations#//@elementTypeConfigurations.6"/>
+      </elementDescriptors>
+    </ownedConfigurations>
+    <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="component.tool.connector_connection" label="SSD Connection" description="" kind="ConnectionTool">
+      <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="/icons/full/obj16/Connector.gif"/>
+      <elementDescriptors>
+        <elementType xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" href="ssd_component_diagram_palette_UI.elementtypesconfigurations#_kz2dRm1BEee3upeKZ8H99g"/>
+      </elementDescriptors>
+    </ownedConfigurations>
+  </drawerConfigurations>
+  <requiredProfiles>SSDProfile</requiredProfiles>
+</paletteconfiguration:PaletteConfiguration>
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/model/ssd_component_diagram_palette_Semantic.elementtypesconfigurations b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/model/ssd_component_diagram_palette_Semantic.elementtypesconfigurations
new file mode 100644
index 0000000..ccfa4df
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/model/ssd_component_diagram_palette_Semantic.elementtypesconfigurations
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="ASCII"?>
+<elementtypesconfigurations:ElementTypeSetConfiguration xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:applystereotypeadvice="http://www.eclipse.org/papyrus/uml/types/applystereotypeadvice/1.1" xmlns:elementtypesconfigurations="http://www.eclipse.org/papyrus/infra/elementtypesconfigurations/1.2" xmi:id="_lMMEwG1BEee3upeKZ8H99g" identifier="SSPProfile_Semantic" name="SSP Profile - Semantic Element Types" metamodelNsURI="http://org.eclipse.papyrus.moka.ssp.profile/SSPProfile">
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_lMMEwW1BEee3upeKZ8H99g" identifier="ssd_component_diagram_palette.component.tool.component_1500551161128" name="SsdTComponent (Component)">
+    <specializedTypes xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" href="../../../plugin/org.eclipse.papyrus.uml.service.types/model/umldi.elementtypesconfigurations#org.eclipse.papyrus.umldi.Component_PackagedElementShape"/>
+  </elementTypeConfigurations>
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_lMMEwm1BEee3upeKZ8H99g" identifier="ssd_component_diagram_palette.component.tool.component_1500551165380" name="SsdTSystem (Component)">
+    <specializedTypes xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" href="../../../plugin/org.eclipse.papyrus.uml.service.types/model/umldi.elementtypesconfigurations#org.eclipse.papyrus.umldi.Component_PackagedElementShape"/>
+  </elementTypeConfigurations>
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_lMMEw21BEee3upeKZ8H99g" identifier="ssd_component_diagram_palette.component.tool.port_1500551170303" name="SsdConnectorType (Port)">
+    <specializedTypes xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" href="../../../plugin/org.eclipse.papyrus.uml.service.types/model/umldi.elementtypesconfigurations#org.eclipse.papyrus.umldi.Port_Shape"/>
+  </elementTypeConfigurations>
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_lMMr0G1BEee3upeKZ8H99g" identifier="ssd_component_diagram_palette.component.tool.connector_1500551173976" name="SsdConnection (Connector)">
+    <specializedTypes xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" href="../../../plugin/org.eclipse.papyrus.uml.service.types/model/umldi.elementtypesconfigurations#org.eclipse.papyrus.umldi.Connector_Edge"/>
+  </elementTypeConfigurations>
+  <adviceBindingsConfigurations xsi:type="applystereotypeadvice:ApplyStereotypeAdviceConfiguration" xmi:id="_lMMr0W1BEee3upeKZ8H99g" identifier="ssd_component_diagram_palette.component.tool.component_1500551161128_ASAC" target="_lMMEwW1BEee3upeKZ8H99g">
+    <stereotypesToApply xmi:id="_lMMr0m1BEee3upeKZ8H99g" stereotypeQualifiedName="SSPProfile::SsdTComponent" updateName="true">
+      <requiredProfiles>SSPProfile</requiredProfiles>
+    </stereotypesToApply>
+  </adviceBindingsConfigurations>
+  <adviceBindingsConfigurations xsi:type="applystereotypeadvice:ApplyStereotypeAdviceConfiguration" xmi:id="_lMMr021BEee3upeKZ8H99g" identifier="ssd_component_diagram_palette.component.tool.component_1500551165380_ASAC" target="_lMMEwm1BEee3upeKZ8H99g">
+    <stereotypesToApply xmi:id="_lMMr1G1BEee3upeKZ8H99g" stereotypeQualifiedName="SSPProfile::SsdTSystem" updateName="true">
+      <requiredProfiles>SSPProfile</requiredProfiles>
+    </stereotypesToApply>
+  </adviceBindingsConfigurations>
+  <adviceBindingsConfigurations xsi:type="applystereotypeadvice:ApplyStereotypeAdviceConfiguration" xmi:id="_lMMr1W1BEee3upeKZ8H99g" identifier="ssd_component_diagram_palette.component.tool.port_1500551170303_ASAC">
+    <target xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" href="ssd_component_diagram_palette_UI.elementtypesconfigurations#_kz2dRW1BEee3upeKZ8H99g"/>
+    <stereotypesToApply xmi:id="_lMMr1m1BEee3upeKZ8H99g" stereotypeQualifiedName="SSPProfile::SsdConnectorType" updateName="true">
+      <requiredProfiles>SSPProfile</requiredProfiles>
+    </stereotypesToApply>
+  </adviceBindingsConfigurations>
+  <adviceBindingsConfigurations xsi:type="applystereotypeadvice:ApplyStereotypeAdviceConfiguration" xmi:id="_lMMr121BEee3upeKZ8H99g" identifier="ssd_component_diagram_palette.component.tool.connector_1500551173976_ASAC" target="_lMMr0G1BEee3upeKZ8H99g">
+    <stereotypesToApply xmi:id="_lMMr2G1BEee3upeKZ8H99g" stereotypeQualifiedName="SSPProfile::SsdConnection" updateName="true">
+      <requiredProfiles>SSPProfile</requiredProfiles>
+    </stereotypesToApply>
+  </adviceBindingsConfigurations>
+</elementtypesconfigurations:ElementTypeSetConfiguration>
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/model/ssd_component_diagram_palette_UI.elementtypesconfigurations b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/model/ssd_component_diagram_palette_UI.elementtypesconfigurations
new file mode 100644
index 0000000..b921455
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/model/ssd_component_diagram_palette_UI.elementtypesconfigurations
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="ASCII"?>
+<elementtypesconfigurations:ElementTypeSetConfiguration xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:elementtypesconfigurations="http://www.eclipse.org/papyrus/infra/elementtypesconfigurations/1.2" xmi:id="_kz12MG1BEee3upeKZ8H99g" identifier="SSPProfile_UI" name="SSP Profile - UI Element Types" metamodelNsURI="http://org.eclipse.papyrus.moka.ssp.profile/SSPProfile">
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_kz12MW1BEee3upeKZ8H99g" identifier="ssd_component_diagram_palette.component.tool.component_1500551161128_Component_PackagedElementShape" name="SsdTComponent (Component)" hint="Component_PackagedElementShape">
+    <specializedTypes xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" href="ssd_component_diagram_palette_Semantic.elementtypesconfigurations#_lMMEwW1BEee3upeKZ8H99g"/>
+    <specializedTypes xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" href="../../../plugin/org.eclipse.papyrus.uml.service.types/model/umldi.elementtypesconfigurations#org.eclipse.papyrus.umldi.Component_PackagedElementShape"/>
+  </elementTypeConfigurations>
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_kz2dQG1BEee3upeKZ8H99g" identifier="ssd_component_diagram_palette.component.tool.component_1500551161128_Component_PackagedElementShape_CCN" name="SsdTComponent (Component)" hint="Component_PackagedElementShape_CCN">
+    <specializedTypes xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" href="ssd_component_diagram_palette_Semantic.elementtypesconfigurations#_lMMEwW1BEee3upeKZ8H99g"/>
+    <specializedTypes xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" href="../../../plugin/org.eclipse.papyrus.uml.service.types/model/umldi.elementtypesconfigurations#org.eclipse.papyrus.umldi.Component_PackagedElementShape_CCN"/>
+  </elementTypeConfigurations>
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_kz2dQW1BEee3upeKZ8H99g" identifier="ssd_component_diagram_palette.component.tool.component_1500551161128_Component_PackagedElementShape_CN" name="SsdTComponent (Component)" hint="Component_PackagedElementShape_CN">
+    <specializedTypes xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" href="ssd_component_diagram_palette_Semantic.elementtypesconfigurations#_lMMEwW1BEee3upeKZ8H99g"/>
+    <specializedTypes xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" href="../../../plugin/org.eclipse.papyrus.uml.service.types/model/umldi.elementtypesconfigurations#org.eclipse.papyrus.umldi.Component_PackagedElementShape_CN"/>
+  </elementTypeConfigurations>
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_kz2dQm1BEee3upeKZ8H99g" identifier="ssd_component_diagram_palette.component.tool.component_1500551165380_Component_PackagedElementShape" name="SsdTSystem (Component)" hint="Component_PackagedElementShape">
+    <specializedTypes xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" href="ssd_component_diagram_palette_Semantic.elementtypesconfigurations#_lMMEwm1BEee3upeKZ8H99g"/>
+    <specializedTypes xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" href="../../../plugin/org.eclipse.papyrus.uml.service.types/model/umldi.elementtypesconfigurations#org.eclipse.papyrus.umldi.Component_PackagedElementShape"/>
+  </elementTypeConfigurations>
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_kz2dQ21BEee3upeKZ8H99g" identifier="ssd_component_diagram_palette.component.tool.component_1500551165380_Component_PackagedElementShape_CCN" name="SsdTSystem (Component)" hint="Component_PackagedElementShape_CCN">
+    <specializedTypes xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" href="ssd_component_diagram_palette_Semantic.elementtypesconfigurations#_lMMEwm1BEee3upeKZ8H99g"/>
+    <specializedTypes xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" href="../../../plugin/org.eclipse.papyrus.uml.service.types/model/umldi.elementtypesconfigurations#org.eclipse.papyrus.umldi.Component_PackagedElementShape_CCN"/>
+  </elementTypeConfigurations>
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_kz2dRG1BEee3upeKZ8H99g" identifier="ssd_component_diagram_palette.component.tool.component_1500551165380_Component_PackagedElementShape_CN" name="SsdTSystem (Component)" hint="Component_PackagedElementShape_CN">
+    <specializedTypes xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" href="ssd_component_diagram_palette_Semantic.elementtypesconfigurations#_lMMEwm1BEee3upeKZ8H99g"/>
+    <specializedTypes xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" href="../../../plugin/org.eclipse.papyrus.uml.service.types/model/umldi.elementtypesconfigurations#org.eclipse.papyrus.umldi.Component_PackagedElementShape_CN"/>
+  </elementTypeConfigurations>
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_kz2dRW1BEee3upeKZ8H99g" identifier="ssd_component_diagram_palette.component.tool.port_1500551170303_Port_Shape" name="SsdConnectorType (Port)" hint="Port_Shape">
+    <specializedTypes xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" href="ssd_component_diagram_palette_Semantic.elementtypesconfigurations#_lMMEw21BEee3upeKZ8H99g"/>
+    <specializedTypes xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" href="../../../plugin/org.eclipse.papyrus.uml.service.types/model/umldi.elementtypesconfigurations#org.eclipse.papyrus.umldi.Port_Shape"/>
+  </elementTypeConfigurations>
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_kz2dRm1BEee3upeKZ8H99g" identifier="ssd_component_diagram_palette.component.tool.connector_1500551173976_Connector_Edge" name="SsdConnection (Connector)" hint="Connector_Edge">
+    <specializedTypes xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" href="ssd_component_diagram_palette_Semantic.elementtypesconfigurations#_lMMr0G1BEee3upeKZ8H99g"/>
+    <specializedTypes xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" href="../../../plugin/org.eclipse.papyrus.uml.service.types/model/umldi.elementtypesconfigurations#org.eclipse.papyrus.umldi.Connector_Edge"/>
+  </elementTypeConfigurations>
+</elementtypesconfigurations:ElementTypeSetConfiguration>
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/plugin.properties b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/plugin.properties
new file mode 100644
index 0000000..24680b9
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/plugin.properties
@@ -0,0 +1,4 @@
+#
+
+pluginName = Model Model
+providerName = www.example.org
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/plugin.xml b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/plugin.xml
new file mode 100644
index 0000000..7c9a75a
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/plugin.xml
@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+-->
+
+<plugin>
+
+   <extension point="org.eclipse.emf.ecore.generated_package">
+      <!-- @generated model.profile -->
+      <package
+            uri="http://org.eclipse.papyrus.moka.ssp.profile/SSPProfile"
+            class="org.eclipse.papyrus.moka.ssp.profile.SSPProfilePackage"
+            genModel="model/model.profile.genmodel"/>
+   </extension>
+   <extension
+         point="org.eclipse.uml2.uml.generated_package">
+      <profile
+            location="platform:/plugin/org.eclipse.papyrus.moka.ssp.profile/model/model.profile.uml#_T9IHYB-HEeegP6aMHpCV8A"
+            uri="http://org.eclipse.papyrus.moka.ssp.profile/SSPProfile">
+      </profile>
+   </extension>
+   <extension
+         point="org.eclipse.papyrus.uml.extensionpoints.UMLProfile">
+      <profile
+            name="SSPProfile"
+            path="platform:/plugin/org.eclipse.papyrus.moka.ssp.profile/model/model.profile.uml">
+      </profile>
+      <profile
+            description="Profile complementary to SSP profile allowing to deal with OpenModelica OMSimulator extensions"
+            name="OMSimulatorProfile"
+            path="pathmap://PAPYRUS_SSP_PROFILE/OMSimulator.profile.uml">
+      </profile>
+   </extension>
+   <extension
+         point="org.eclipse.papyrus.infra.gmfdiag.common.paletteDefinition">
+      <paletteDefinition
+            ID="org.eclipse.papyrus.moka.ssp.profile.SSDPalette"
+            class="org.eclipse.papyrus.infra.gmfdiag.common.service.palette.ExtendedPluginPaletteProvider"
+            name="SSD Palette"
+            path="model/ssd_component_diagram_palette.paletteconfiguration">
+         <Priority
+               name="Medium">
+         </Priority>
+         <editor
+               class="org.eclipse.papyrus.uml.diagram.component.UmlComponentDiagramForMultiEditor(org.eclipse.papyrus.uml.diagram.component)">
+         </editor>
+      </paletteDefinition>
+   </extension>
+   <extension
+         point="org.eclipse.papyrus.infra.types.core.elementTypeSetConfiguration">
+      <elementTypeSet
+            clientContextID="org.eclipse.papyrus.infra.services.edit.TypeContext"
+            path="model/ssd_component_diagram_palette_UI.elementtypesconfigurations">
+      </elementTypeSet>
+   </extension>
+   <extension
+         point="org.eclipse.papyrus.infra.types.core.elementTypeSetConfiguration">
+      <elementTypeSet
+            clientContextID="org.eclipse.papyrus.infra.services.edit.TypeContext"
+            path="model/ssd_component_diagram_palette_Semantic.elementtypesconfigurations">
+      </elementTypeSet>
+   </extension>
+   <extension point="org.eclipse.emf.ecore.factory_override">
+      <factory
+         class="org.eclipse.papyrus.moka.ssp.profile.custom.imp.CustomSSPProfileFactoryImpl"
+         uri="http://org.eclipse.papyrus.moka.ssp.profile/SSPProfile">
+      </factory>
+   </extension>
+   
+   <extension point="org.eclipse.emf.ecore.generated_package">
+      <!-- @generated OMSimulator.profile -->
+      <package
+            uri="http://www.eclipse.org/papyrus/OMSimulatorProfile/1.0.0"
+            class="org.eclipse.papyrus.moka.ssp.omsimulatorprofile.OMSimulatorPackage"
+            genModel="model/OMSimulator.profile.genmodel"/>
+   </extension>
+   <extension
+         point="org.eclipse.uml2.uml.generated_package">
+      <profile
+            location="pathmap://PAPYRUS_SSP_PROFILE/OMSimulator.profile.uml#_zIAAYLgtEeizUOX0GlzCzg"
+            uri="http://www.eclipse.org/papyrus/OMSimulatorProfile/1.0.0">
+      </profile>
+   </extension>
+   
+ <extension
+         point="org.eclipse.emf.ecore.uri_mapping">
+      <mapping
+            source="pathmap://PAPYRUS_SSP_PROFILE/"
+            target="platform:/plugin/org.eclipse.papyrus.moka.ssp.profile/model/">
+      </mapping>
+   </extension>
+ <extension
+       point="org.eclipse.papyrus.uml.extensionpoints.UMLLibrary">
+    <library
+          description="OpenModelica OMSimulator TLM Library"
+          name="TLM Library"
+          path="pathmap://PAPYRUS_SSP_PROFILE/TLMLibrary.uml">
+    </library>
+ </extension>
+</plugin>
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/pom.xml b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/pom.xml
new file mode 100644
index 0000000..63aa57b
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/pom.xml
@@ -0,0 +1,18 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+
+	<!-- Parent POM (i.e., Language) -->
+	<parent>
+		<groupId>org.eclipse.papyrus.moka</groupId>
+		<artifactId>org.eclipse.papyrus.moka.bundles.fmi.language</artifactId>
+		<version>4.0.0-SNAPSHOT</version>
+	</parent>
+
+	<!-- POM Description -->
+	<artifactId>org.eclipse.papyrus.moka.ssp.profile</artifactId>
+	<packaging>eclipse-plugin</packaging>
+	<name>org.eclipse.papyrus.moka.ssp.profile</name>
+	<description>UML Profile for SSP standard support</description>
+
+</project>
\ No newline at end of file
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/BusConnectionEnd.java b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/BusConnectionEnd.java
new file mode 100644
index 0000000..9117413
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/BusConnectionEnd.java
@@ -0,0 +1,120 @@
+/**
+ * Copyright (c) 2018 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:
+ *   CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.moka.ssp.omsimulatorprofile;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.uml2.uml.ConnectorEnd;
+import org.eclipse.uml2.uml.Port;
+import org.eclipse.uml2.uml.Type;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Bus Connection End</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * BusConnectionEnd is a stereotype that has to be applied on the corresponding connectorEnd of an UML connector, when connected to an OMSimulatorBus port.
+ * The "referencedSignals" attribute shoud be a subset of the OMSimulatorBus::signals attribute.
+ * 
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.BusConnectionEnd#getBase_ConnectorEnd <em>Base Connector End</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.BusConnectionEnd#getReferencedSignal <em>Referenced Signal</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.OMSimulatorPackage#getBusConnectionEnd()
+ * @model
+ * @generated
+ */
+public interface BusConnectionEnd extends EObject {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String copyright = "Copyright (c) 2018 CEA LIST.\n\n All rights reserved. This program and the accompanying materials\n are made available under the terms of the Eclipse Public License v1.0\n which accompanies this distribution, and is available at\n http://www.eclipse.org/legal/epl-v10.html\n\n Contributors:\n  CEA LIST - Initial API and implementation";
+
+	/**
+	 * Returns the value of the '<em><b>Base Connector End</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Base Connector End</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Base Connector End</em>' reference.
+	 * @see #setBase_ConnectorEnd(ConnectorEnd)
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.OMSimulatorPackage#getBusConnectionEnd_Base_ConnectorEnd()
+	 * @model required="true" ordered="false"
+	 * @generated
+	 */
+	ConnectorEnd getBase_ConnectorEnd();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.BusConnectionEnd#getBase_ConnectorEnd <em>Base Connector End</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Base Connector End</em>' reference.
+	 * @see #getBase_ConnectorEnd()
+	 * @generated
+	 */
+	void setBase_ConnectorEnd(ConnectorEnd value);
+
+	/**
+	 * Returns the value of the '<em><b>Referenced Signal</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.uml2.uml.Port}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Referenced Signal</em>' reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Referenced Signal</em>' reference list.
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.OMSimulatorPackage#getBusConnectionEnd_ReferencedSignal()
+	 * @model ordered="false"
+	 * @generated
+	 */
+	EList<Port> getReferencedSignal();
+
+	/**
+	 * Retrieves the first {@link org.eclipse.uml2.uml.Port} with the specified '<em><b>Name</b></em>', and '<em><b>Type</b></em>' from the '<em><b>Referenced Signal</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param name The '<em><b>Name</b></em>' of the {@link org.eclipse.uml2.uml.Port} to retrieve, or <code>null</code>.
+	 * @param type The '<em><b>Type</b></em>' of the {@link org.eclipse.uml2.uml.Port} to retrieve, or <code>null</code>.
+	 * @return The first {@link org.eclipse.uml2.uml.Port} with the specified '<em><b>Name</b></em>', and '<em><b>Type</b></em>', or <code>null</code>.
+	 * @see #getReferencedSignal()
+	 * @generated
+	 */
+	Port getReferencedSignal(String name, Type type);
+
+	/**
+	 * Retrieves the first {@link org.eclipse.uml2.uml.Port} with the specified '<em><b>Name</b></em>', and '<em><b>Type</b></em>' from the '<em><b>Referenced Signal</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param name The '<em><b>Name</b></em>' of the {@link org.eclipse.uml2.uml.Port} to retrieve, or <code>null</code>.
+	 * @param type The '<em><b>Type</b></em>' of the {@link org.eclipse.uml2.uml.Port} to retrieve, or <code>null</code>.
+	 * @param ignoreCase Whether to ignore case in {@link java.lang.String} comparisons.
+	 * @return The first {@link org.eclipse.uml2.uml.Port} with the specified '<em><b>Name</b></em>', and '<em><b>Type</b></em>', or <code>null</code>.
+	 * @see #getReferencedSignal()
+	 * @generated
+	 */
+	Port getReferencedSignal(String name, Type type, boolean ignoreCase);
+
+} // BusConnectionEnd
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/Interpolation.java b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/Interpolation.java
new file mode 100644
index 0000000..afa3260
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/Interpolation.java
@@ -0,0 +1,257 @@
+/**
+ * Copyright (c) 2018 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:
+ *   CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.moka.ssp.omsimulatorprofile;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Interpolation</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.OMSimulatorPackage#getInterpolation()
+ * @model
+ * @generated
+ */
+public enum Interpolation implements Enumerator {
+	/**
+	 * The '<em><b>None</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #NONE_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	NONE(0, "none", "none"),
+
+	/**
+	 * The '<em><b>Coarsegrained</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #COARSEGRAINED_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	COARSEGRAINED(1, "coarsegrained", "coarsegrained"),
+
+	/**
+	 * The '<em><b>Finegrained</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #FINEGRAINED_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	FINEGRAINED(2, "finegrained", "finegrained");
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final String copyright = "Copyright (c) 2018 CEA LIST.\n\n All rights reserved. This program and the accompanying materials\n are made available under the terms of the Eclipse Public License v1.0\n which accompanies this distribution, and is available at\n http://www.eclipse.org/legal/epl-v10.html\n\n Contributors:\n  CEA LIST - Initial API and implementation";
+
+	/**
+	 * The '<em><b>None</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>None</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #NONE
+	 * @model name="none"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int NONE_VALUE = 0;
+
+	/**
+	 * The '<em><b>Coarsegrained</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>Coarsegrained</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #COARSEGRAINED
+	 * @model name="coarsegrained"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int COARSEGRAINED_VALUE = 1;
+
+	/**
+	 * The '<em><b>Finegrained</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>Finegrained</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #FINEGRAINED
+	 * @model name="finegrained"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int FINEGRAINED_VALUE = 2;
+
+	/**
+	 * An array of all the '<em><b>Interpolation</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final Interpolation[] VALUES_ARRAY =
+		new Interpolation[] {
+			NONE,
+			COARSEGRAINED,
+			FINEGRAINED,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Interpolation</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<Interpolation> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Interpolation</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param literal the literal.
+	 * @return the matching enumerator or <code>null</code>.
+	 * @generated
+	 */
+	public static Interpolation get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			Interpolation result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Interpolation</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param name the name.
+	 * @return the matching enumerator or <code>null</code>.
+	 * @generated
+	 */
+	public static Interpolation getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			Interpolation result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Interpolation</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the integer value.
+	 * @return the matching enumerator or <code>null</code>.
+	 * @generated
+	 */
+	public static Interpolation get(int value) {
+		switch (value) {
+			case NONE_VALUE: return NONE;
+			case COARSEGRAINED_VALUE: return COARSEGRAINED;
+			case FINEGRAINED_VALUE: return FINEGRAINED;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final int value;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String name;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String literal;
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private Interpolation(int value, String name, String literal) {
+		this.value = value;
+		this.name = name;
+		this.literal = literal;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getValue() {
+	  return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+	  return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLiteral() {
+	  return literal;
+	}
+
+	/**
+	 * Returns the literal value of the enumerator, which is its string representation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		return literal;
+	}
+	
+} //Interpolation
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/OMSimulatorBus.java b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/OMSimulatorBus.java
new file mode 100644
index 0000000..1758072
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/OMSimulatorBus.java
@@ -0,0 +1,136 @@
+/**
+ * Copyright (c) 2018 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:
+ *   CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.moka.ssp.omsimulatorprofile;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.uml2.uml.Port;
+import org.eclipse.uml2.uml.Type;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Bus</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * OMSimulatorBus is a new kind of Port which can be added to FMU Blocks. Those ports can reference other Flowports belonging to the owning FMU.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.OMSimulatorBus#getBase_Port <em>Base Port</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.OMSimulatorBus#getSignals <em>Signals</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.OMSimulatorBus#getDomain <em>Domain</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.OMSimulatorPackage#getOMSimulatorBus()
+ * @model
+ * @generated
+ */
+public interface OMSimulatorBus extends EObject {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String copyright = "Copyright (c) 2018 CEA LIST.\n\n All rights reserved. This program and the accompanying materials\n are made available under the terms of the Eclipse Public License v1.0\n which accompanies this distribution, and is available at\n http://www.eclipse.org/legal/epl-v10.html\n\n Contributors:\n  CEA LIST - Initial API and implementation";
+
+	/**
+	 * Returns the value of the '<em><b>Base Port</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Base Port</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Base Port</em>' reference.
+	 * @see #setBase_Port(Port)
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.OMSimulatorPackage#getOMSimulatorBus_Base_Port()
+	 * @model required="true" ordered="false"
+	 * @generated
+	 */
+	Port getBase_Port();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.OMSimulatorBus#getBase_Port <em>Base Port</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Base Port</em>' reference.
+	 * @see #getBase_Port()
+	 * @generated
+	 */
+	void setBase_Port(Port value);
+
+	/**
+	 * Returns the value of the '<em><b>Signals</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.uml2.uml.Port}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Signals</em>' reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Signals</em>' reference list.
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.OMSimulatorPackage#getOMSimulatorBus_Signals()
+	 * @model ordered="false"
+	 * @generated
+	 */
+	EList<Port> getSignals();
+
+	/**
+	 * Retrieves the first {@link org.eclipse.uml2.uml.Port} with the specified '<em><b>Name</b></em>', and '<em><b>Type</b></em>' from the '<em><b>Signals</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param name The '<em><b>Name</b></em>' of the {@link org.eclipse.uml2.uml.Port} to retrieve, or <code>null</code>.
+	 * @param type The '<em><b>Type</b></em>' of the {@link org.eclipse.uml2.uml.Port} to retrieve, or <code>null</code>.
+	 * @return The first {@link org.eclipse.uml2.uml.Port} with the specified '<em><b>Name</b></em>', and '<em><b>Type</b></em>', or <code>null</code>.
+	 * @see #getSignals()
+	 * @generated
+	 */
+	Port getSignals(String name, Type type);
+
+	/**
+	 * Retrieves the first {@link org.eclipse.uml2.uml.Port} with the specified '<em><b>Name</b></em>', and '<em><b>Type</b></em>' from the '<em><b>Signals</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param name The '<em><b>Name</b></em>' of the {@link org.eclipse.uml2.uml.Port} to retrieve, or <code>null</code>.
+	 * @param type The '<em><b>Type</b></em>' of the {@link org.eclipse.uml2.uml.Port} to retrieve, or <code>null</code>.
+	 * @param ignoreCase Whether to ignore case in {@link java.lang.String} comparisons.
+	 * @return The first {@link org.eclipse.uml2.uml.Port} with the specified '<em><b>Name</b></em>', and '<em><b>Type</b></em>', or <code>null</code>.
+	 * @see #getSignals()
+	 * @generated
+	 */
+	Port getSignals(String name, Type type, boolean ignoreCase);
+
+	/**
+	 * Returns the value of the '<em><b>Domain</b></em>' attribute list.
+	 * The list contents are of type {@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMDomain}.
+	 * The literals are from the enumeration {@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMDomain}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Domain</em>' attribute list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Domain</em>' attribute list.
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMDomain
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.OMSimulatorPackage#getOMSimulatorBus_Domain()
+	 * @model ordered="false"
+	 * @generated
+	 */
+	EList<TLMDomain> getDomain();
+
+} // OMSimulatorBus
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/OMSimulatorFactory.java b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/OMSimulatorFactory.java
new file mode 100644
index 0000000..0f33910
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/OMSimulatorFactory.java
@@ -0,0 +1,103 @@
+/**
+ * Copyright (c) 2018 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:
+ *   CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.moka.ssp.omsimulatorprofile;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.OMSimulatorPackage
+ * @generated
+ */
+public interface OMSimulatorFactory extends EFactory {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String copyright = "Copyright (c) 2018 CEA LIST.\n\n All rights reserved. This program and the accompanying materials\n are made available under the terms of the Eclipse Public License v1.0\n which accompanies this distribution, and is available at\n http://www.eclipse.org/legal/epl-v10.html\n\n Contributors:\n  CEA LIST - Initial API and implementation";
+
+	/**
+	 * The singleton instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	OMSimulatorFactory eINSTANCE = org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.OMSimulatorFactoryImpl.init();
+
+	/**
+	 * Returns a new object of class '<em>TLM Interface Definition</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>TLM Interface Definition</em>'.
+	 * @generated
+	 */
+	TLMInterfaceDefinition createTLMInterfaceDefinition();
+
+	/**
+	 * Returns a new object of class '<em>TLM Signal Definition</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>TLM Signal Definition</em>'.
+	 * @generated
+	 */
+	TLMSignalDefinition createTLMSignalDefinition();
+
+	/**
+	 * Returns a new object of class '<em>TLM Signal</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>TLM Signal</em>'.
+	 * @generated
+	 */
+	TLMSignal createTLMSignal();
+
+	/**
+	 * Returns a new object of class '<em>Bus</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Bus</em>'.
+	 * @generated
+	 */
+	OMSimulatorBus createOMSimulatorBus();
+
+	/**
+	 * Returns a new object of class '<em>Bus Connection End</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Bus Connection End</em>'.
+	 * @generated
+	 */
+	BusConnectionEnd createBusConnectionEnd();
+
+	/**
+	 * Returns a new object of class '<em>TLM Connection</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>TLM Connection</em>'.
+	 * @generated
+	 */
+	TLMConnection createTLMConnection();
+
+	/**
+	 * Returns the package supported by this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the package supported by this factory.
+	 * @generated
+	 */
+	OMSimulatorPackage getOMSimulatorPackage();
+
+} //OMSimulatorFactory
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/OMSimulatorPackage.java b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/OMSimulatorPackage.java
new file mode 100644
index 0000000..9a071a7
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/OMSimulatorPackage.java
@@ -0,0 +1,983 @@
+/**
+ * Copyright (c) 2018 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:
+ *   CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.moka.ssp.omsimulatorprofile;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EOperation;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ *   <li>each class,</li>
+ *   <li>each feature of each class,</li>
+ *   <li>each operation of each class,</li>
+ *   <li>each enum,</li>
+ *   <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.OMSimulatorFactory
+ * @model kind="package"
+ *        annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='OMSimulatorProfile'"
+ * @generated
+ */
+public interface OMSimulatorPackage extends EPackage {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String copyright = "Copyright (c) 2018 CEA LIST.\n\n All rights reserved. This program and the accompanying materials\n are made available under the terms of the Eclipse Public License v1.0\n which accompanies this distribution, and is available at\n http://www.eclipse.org/legal/epl-v10.html\n\n Contributors:\n  CEA LIST - Initial API and implementation";
+
+	/**
+	 * The package name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNAME = "omsimulatorprofile";
+
+	/**
+	 * The package namespace URI.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_URI = "http://www.eclipse.org/papyrus/OMSimulatorProfile/1.0.0";
+
+	/**
+	 * The package namespace name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_PREFIX = "omsim";
+
+	/**
+	 * The singleton instance of the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	OMSimulatorPackage eINSTANCE = org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.OMSimulatorPackageImpl.init();
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.TLMInterfaceDefinitionImpl <em>TLM Interface Definition</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.TLMInterfaceDefinitionImpl
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.OMSimulatorPackageImpl#getTLMInterfaceDefinition()
+	 * @generated
+	 */
+	int TLM_INTERFACE_DEFINITION = 0;
+
+	/**
+	 * The feature id for the '<em><b>Interpolation</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TLM_INTERFACE_DEFINITION__INTERPOLATION = 0;
+
+	/**
+	 * The feature id for the '<em><b>Base Interface</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TLM_INTERFACE_DEFINITION__BASE_INTERFACE = 1;
+
+	/**
+	 * The feature id for the '<em><b>Base Class</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TLM_INTERFACE_DEFINITION__BASE_CLASS = 2;
+
+	/**
+	 * The feature id for the '<em><b>Signal Definitions</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TLM_INTERFACE_DEFINITION__SIGNAL_DEFINITIONS = 3;
+
+	/**
+	 * The feature id for the '<em><b>Dimensions</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TLM_INTERFACE_DEFINITION__DIMENSIONS = 4;
+
+	/**
+	 * The number of structural features of the '<em>TLM Interface Definition</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TLM_INTERFACE_DEFINITION_FEATURE_COUNT = 5;
+
+	/**
+	 * The operation id for the '<em>Get Signal Definitions</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TLM_INTERFACE_DEFINITION___GET_SIGNAL_DEFINITIONS = 0;
+
+	/**
+	 * The number of operations of the '<em>TLM Interface Definition</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TLM_INTERFACE_DEFINITION_OPERATION_COUNT = 1;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.TLMSignalDefinitionImpl <em>TLM Signal Definition</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.TLMSignalDefinitionImpl
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.OMSimulatorPackageImpl#getTLMSignalDefinition()
+	 * @generated
+	 */
+	int TLM_SIGNAL_DEFINITION = 1;
+
+	/**
+	 * The feature id for the '<em><b>Base Port</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TLM_SIGNAL_DEFINITION__BASE_PORT = 0;
+
+	/**
+	 * The number of structural features of the '<em>TLM Signal Definition</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TLM_SIGNAL_DEFINITION_FEATURE_COUNT = 1;
+
+	/**
+	 * The number of operations of the '<em>TLM Signal Definition</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TLM_SIGNAL_DEFINITION_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.TLMSignalImpl <em>TLM Signal</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.TLMSignalImpl
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.OMSimulatorPackageImpl#getTLMSignal()
+	 * @generated
+	 */
+	int TLM_SIGNAL = 2;
+
+	/**
+	 * The feature id for the '<em><b>Base Port</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TLM_SIGNAL__BASE_PORT = 0;
+
+	/**
+	 * The feature id for the '<em><b>Definition</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TLM_SIGNAL__DEFINITION = 1;
+
+	/**
+	 * The number of structural features of the '<em>TLM Signal</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TLM_SIGNAL_FEATURE_COUNT = 2;
+
+	/**
+	 * The number of operations of the '<em>TLM Signal</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TLM_SIGNAL_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.OMSimulatorBusImpl <em>Bus</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.OMSimulatorBusImpl
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.OMSimulatorPackageImpl#getOMSimulatorBus()
+	 * @generated
+	 */
+	int OM_SIMULATOR_BUS = 3;
+
+	/**
+	 * The feature id for the '<em><b>Base Port</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OM_SIMULATOR_BUS__BASE_PORT = 0;
+
+	/**
+	 * The feature id for the '<em><b>Signals</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OM_SIMULATOR_BUS__SIGNALS = 1;
+
+	/**
+	 * The feature id for the '<em><b>Domain</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OM_SIMULATOR_BUS__DOMAIN = 2;
+
+	/**
+	 * The number of structural features of the '<em>Bus</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OM_SIMULATOR_BUS_FEATURE_COUNT = 3;
+
+	/**
+	 * The number of operations of the '<em>Bus</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OM_SIMULATOR_BUS_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.BusConnectionEndImpl <em>Bus Connection End</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.BusConnectionEndImpl
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.OMSimulatorPackageImpl#getBusConnectionEnd()
+	 * @generated
+	 */
+	int BUS_CONNECTION_END = 4;
+
+	/**
+	 * The feature id for the '<em><b>Base Connector End</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BUS_CONNECTION_END__BASE_CONNECTOR_END = 0;
+
+	/**
+	 * The feature id for the '<em><b>Referenced Signal</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BUS_CONNECTION_END__REFERENCED_SIGNAL = 1;
+
+	/**
+	 * The number of structural features of the '<em>Bus Connection End</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BUS_CONNECTION_END_FEATURE_COUNT = 2;
+
+	/**
+	 * The number of operations of the '<em>Bus Connection End</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BUS_CONNECTION_END_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.TLMConnectionImpl <em>TLM Connection</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.TLMConnectionImpl
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.OMSimulatorPackageImpl#getTLMConnection()
+	 * @generated
+	 */
+	int TLM_CONNECTION = 5;
+
+	/**
+	 * The feature id for the '<em><b>Timedelay</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TLM_CONNECTION__TIMEDELAY = 0;
+
+	/**
+	 * The feature id for the '<em><b>Impedance</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TLM_CONNECTION__IMPEDANCE = 1;
+
+	/**
+	 * The feature id for the '<em><b>Rotationalimpedance</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TLM_CONNECTION__ROTATIONALIMPEDANCE = 2;
+
+	/**
+	 * The feature id for the '<em><b>Alpha</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TLM_CONNECTION__ALPHA = 3;
+
+	/**
+	 * The feature id for the '<em><b>Base Connector</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TLM_CONNECTION__BASE_CONNECTOR = 4;
+
+	/**
+	 * The number of structural features of the '<em>TLM Connection</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TLM_CONNECTION_FEATURE_COUNT = 5;
+
+	/**
+	 * The number of operations of the '<em>TLM Connection</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TLM_CONNECTION_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.Interpolation <em>Interpolation</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.Interpolation
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.OMSimulatorPackageImpl#getInterpolation()
+	 * @generated
+	 */
+	int INTERPOLATION = 6;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMDomain <em>TLM Domain</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMDomain
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.OMSimulatorPackageImpl#getTLMDomain()
+	 * @generated
+	 */
+	int TLM_DOMAIN = 7;
+
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMInterfaceDefinition <em>TLM Interface Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>TLM Interface Definition</em>'.
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMInterfaceDefinition
+	 * @generated
+	 */
+	EClass getTLMInterfaceDefinition();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMInterfaceDefinition#getInterpolation <em>Interpolation</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Interpolation</em>'.
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMInterfaceDefinition#getInterpolation()
+	 * @see #getTLMInterfaceDefinition()
+	 * @generated
+	 */
+	EAttribute getTLMInterfaceDefinition_Interpolation();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMInterfaceDefinition#getBase_Interface <em>Base Interface</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Base Interface</em>'.
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMInterfaceDefinition#getBase_Interface()
+	 * @see #getTLMInterfaceDefinition()
+	 * @generated
+	 */
+	EReference getTLMInterfaceDefinition_Base_Interface();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMInterfaceDefinition#getBase_Class <em>Base Class</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Base Class</em>'.
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMInterfaceDefinition#getBase_Class()
+	 * @see #getTLMInterfaceDefinition()
+	 * @generated
+	 */
+	EReference getTLMInterfaceDefinition_Base_Class();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMInterfaceDefinition#getSignalDefinitions <em>Signal Definitions</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Signal Definitions</em>'.
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMInterfaceDefinition#getSignalDefinitions()
+	 * @see #getTLMInterfaceDefinition()
+	 * @generated
+	 */
+	EReference getTLMInterfaceDefinition_SignalDefinitions();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMInterfaceDefinition#getDimensions <em>Dimensions</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Dimensions</em>'.
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMInterfaceDefinition#getDimensions()
+	 * @see #getTLMInterfaceDefinition()
+	 * @generated
+	 */
+	EAttribute getTLMInterfaceDefinition_Dimensions();
+
+	/**
+	 * Returns the meta object for the '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMInterfaceDefinition#getSignalDefinitions() <em>Get Signal Definitions</em>}' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the '<em>Get Signal Definitions</em>' operation.
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMInterfaceDefinition#getSignalDefinitions()
+	 * @generated
+	 */
+	EOperation getTLMInterfaceDefinition__GetSignalDefinitions();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMSignalDefinition <em>TLM Signal Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>TLM Signal Definition</em>'.
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMSignalDefinition
+	 * @generated
+	 */
+	EClass getTLMSignalDefinition();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMSignalDefinition#getBase_Port <em>Base Port</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Base Port</em>'.
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMSignalDefinition#getBase_Port()
+	 * @see #getTLMSignalDefinition()
+	 * @generated
+	 */
+	EReference getTLMSignalDefinition_Base_Port();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMSignal <em>TLM Signal</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>TLM Signal</em>'.
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMSignal
+	 * @generated
+	 */
+	EClass getTLMSignal();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMSignal#getBase_Port <em>Base Port</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Base Port</em>'.
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMSignal#getBase_Port()
+	 * @see #getTLMSignal()
+	 * @generated
+	 */
+	EReference getTLMSignal_Base_Port();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMSignal#getDefinition <em>Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Definition</em>'.
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMSignal#getDefinition()
+	 * @see #getTLMSignal()
+	 * @generated
+	 */
+	EReference getTLMSignal_Definition();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.OMSimulatorBus <em>Bus</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Bus</em>'.
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.OMSimulatorBus
+	 * @generated
+	 */
+	EClass getOMSimulatorBus();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.OMSimulatorBus#getBase_Port <em>Base Port</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Base Port</em>'.
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.OMSimulatorBus#getBase_Port()
+	 * @see #getOMSimulatorBus()
+	 * @generated
+	 */
+	EReference getOMSimulatorBus_Base_Port();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.OMSimulatorBus#getSignals <em>Signals</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Signals</em>'.
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.OMSimulatorBus#getSignals()
+	 * @see #getOMSimulatorBus()
+	 * @generated
+	 */
+	EReference getOMSimulatorBus_Signals();
+
+	/**
+	 * Returns the meta object for the attribute list '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.OMSimulatorBus#getDomain <em>Domain</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute list '<em>Domain</em>'.
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.OMSimulatorBus#getDomain()
+	 * @see #getOMSimulatorBus()
+	 * @generated
+	 */
+	EAttribute getOMSimulatorBus_Domain();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.BusConnectionEnd <em>Bus Connection End</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Bus Connection End</em>'.
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.BusConnectionEnd
+	 * @generated
+	 */
+	EClass getBusConnectionEnd();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.BusConnectionEnd#getBase_ConnectorEnd <em>Base Connector End</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Base Connector End</em>'.
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.BusConnectionEnd#getBase_ConnectorEnd()
+	 * @see #getBusConnectionEnd()
+	 * @generated
+	 */
+	EReference getBusConnectionEnd_Base_ConnectorEnd();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.BusConnectionEnd#getReferencedSignal <em>Referenced Signal</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Referenced Signal</em>'.
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.BusConnectionEnd#getReferencedSignal()
+	 * @see #getBusConnectionEnd()
+	 * @generated
+	 */
+	EReference getBusConnectionEnd_ReferencedSignal();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMConnection <em>TLM Connection</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>TLM Connection</em>'.
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMConnection
+	 * @generated
+	 */
+	EClass getTLMConnection();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMConnection#getTimedelay <em>Timedelay</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Timedelay</em>'.
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMConnection#getTimedelay()
+	 * @see #getTLMConnection()
+	 * @generated
+	 */
+	EAttribute getTLMConnection_Timedelay();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMConnection#getImpedance <em>Impedance</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Impedance</em>'.
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMConnection#getImpedance()
+	 * @see #getTLMConnection()
+	 * @generated
+	 */
+	EAttribute getTLMConnection_Impedance();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMConnection#getRotationalimpedance <em>Rotationalimpedance</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Rotationalimpedance</em>'.
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMConnection#getRotationalimpedance()
+	 * @see #getTLMConnection()
+	 * @generated
+	 */
+	EAttribute getTLMConnection_Rotationalimpedance();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMConnection#getAlpha <em>Alpha</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Alpha</em>'.
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMConnection#getAlpha()
+	 * @see #getTLMConnection()
+	 * @generated
+	 */
+	EAttribute getTLMConnection_Alpha();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMConnection#getBase_Connector <em>Base Connector</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Base Connector</em>'.
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMConnection#getBase_Connector()
+	 * @see #getTLMConnection()
+	 * @generated
+	 */
+	EReference getTLMConnection_Base_Connector();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.Interpolation <em>Interpolation</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>Interpolation</em>'.
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.Interpolation
+	 * @generated
+	 */
+	EEnum getInterpolation();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMDomain <em>TLM Domain</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>TLM Domain</em>'.
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMDomain
+	 * @generated
+	 */
+	EEnum getTLMDomain();
+
+	/**
+	 * Returns the factory that creates the instances of the model.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the factory that creates the instances of the model.
+	 * @generated
+	 */
+	OMSimulatorFactory getOMSimulatorFactory();
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * Defines literals for the meta objects that represent
+	 * <ul>
+	 *   <li>each class,</li>
+	 *   <li>each feature of each class,</li>
+	 *   <li>each operation of each class,</li>
+	 *   <li>each enum,</li>
+	 *   <li>and each data type</li>
+	 * </ul>
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	interface Literals {
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.TLMInterfaceDefinitionImpl <em>TLM Interface Definition</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.TLMInterfaceDefinitionImpl
+		 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.OMSimulatorPackageImpl#getTLMInterfaceDefinition()
+		 * @generated
+		 */
+		EClass TLM_INTERFACE_DEFINITION = eINSTANCE.getTLMInterfaceDefinition();
+
+		/**
+		 * The meta object literal for the '<em><b>Interpolation</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TLM_INTERFACE_DEFINITION__INTERPOLATION = eINSTANCE.getTLMInterfaceDefinition_Interpolation();
+
+		/**
+		 * The meta object literal for the '<em><b>Base Interface</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference TLM_INTERFACE_DEFINITION__BASE_INTERFACE = eINSTANCE.getTLMInterfaceDefinition_Base_Interface();
+
+		/**
+		 * The meta object literal for the '<em><b>Base Class</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference TLM_INTERFACE_DEFINITION__BASE_CLASS = eINSTANCE.getTLMInterfaceDefinition_Base_Class();
+
+		/**
+		 * The meta object literal for the '<em><b>Signal Definitions</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference TLM_INTERFACE_DEFINITION__SIGNAL_DEFINITIONS = eINSTANCE.getTLMInterfaceDefinition_SignalDefinitions();
+
+		/**
+		 * The meta object literal for the '<em><b>Dimensions</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TLM_INTERFACE_DEFINITION__DIMENSIONS = eINSTANCE.getTLMInterfaceDefinition_Dimensions();
+
+		/**
+		 * The meta object literal for the '<em><b>Get Signal Definitions</b></em>' operation.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EOperation TLM_INTERFACE_DEFINITION___GET_SIGNAL_DEFINITIONS = eINSTANCE.getTLMInterfaceDefinition__GetSignalDefinitions();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.TLMSignalDefinitionImpl <em>TLM Signal Definition</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.TLMSignalDefinitionImpl
+		 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.OMSimulatorPackageImpl#getTLMSignalDefinition()
+		 * @generated
+		 */
+		EClass TLM_SIGNAL_DEFINITION = eINSTANCE.getTLMSignalDefinition();
+
+		/**
+		 * The meta object literal for the '<em><b>Base Port</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference TLM_SIGNAL_DEFINITION__BASE_PORT = eINSTANCE.getTLMSignalDefinition_Base_Port();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.TLMSignalImpl <em>TLM Signal</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.TLMSignalImpl
+		 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.OMSimulatorPackageImpl#getTLMSignal()
+		 * @generated
+		 */
+		EClass TLM_SIGNAL = eINSTANCE.getTLMSignal();
+
+		/**
+		 * The meta object literal for the '<em><b>Base Port</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference TLM_SIGNAL__BASE_PORT = eINSTANCE.getTLMSignal_Base_Port();
+
+		/**
+		 * The meta object literal for the '<em><b>Definition</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference TLM_SIGNAL__DEFINITION = eINSTANCE.getTLMSignal_Definition();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.OMSimulatorBusImpl <em>Bus</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.OMSimulatorBusImpl
+		 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.OMSimulatorPackageImpl#getOMSimulatorBus()
+		 * @generated
+		 */
+		EClass OM_SIMULATOR_BUS = eINSTANCE.getOMSimulatorBus();
+
+		/**
+		 * The meta object literal for the '<em><b>Base Port</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference OM_SIMULATOR_BUS__BASE_PORT = eINSTANCE.getOMSimulatorBus_Base_Port();
+
+		/**
+		 * The meta object literal for the '<em><b>Signals</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference OM_SIMULATOR_BUS__SIGNALS = eINSTANCE.getOMSimulatorBus_Signals();
+
+		/**
+		 * The meta object literal for the '<em><b>Domain</b></em>' attribute list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute OM_SIMULATOR_BUS__DOMAIN = eINSTANCE.getOMSimulatorBus_Domain();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.BusConnectionEndImpl <em>Bus Connection End</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.BusConnectionEndImpl
+		 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.OMSimulatorPackageImpl#getBusConnectionEnd()
+		 * @generated
+		 */
+		EClass BUS_CONNECTION_END = eINSTANCE.getBusConnectionEnd();
+
+		/**
+		 * The meta object literal for the '<em><b>Base Connector End</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference BUS_CONNECTION_END__BASE_CONNECTOR_END = eINSTANCE.getBusConnectionEnd_Base_ConnectorEnd();
+
+		/**
+		 * The meta object literal for the '<em><b>Referenced Signal</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference BUS_CONNECTION_END__REFERENCED_SIGNAL = eINSTANCE.getBusConnectionEnd_ReferencedSignal();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.TLMConnectionImpl <em>TLM Connection</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.TLMConnectionImpl
+		 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.OMSimulatorPackageImpl#getTLMConnection()
+		 * @generated
+		 */
+		EClass TLM_CONNECTION = eINSTANCE.getTLMConnection();
+
+		/**
+		 * The meta object literal for the '<em><b>Timedelay</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TLM_CONNECTION__TIMEDELAY = eINSTANCE.getTLMConnection_Timedelay();
+
+		/**
+		 * The meta object literal for the '<em><b>Impedance</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TLM_CONNECTION__IMPEDANCE = eINSTANCE.getTLMConnection_Impedance();
+
+		/**
+		 * The meta object literal for the '<em><b>Rotationalimpedance</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TLM_CONNECTION__ROTATIONALIMPEDANCE = eINSTANCE.getTLMConnection_Rotationalimpedance();
+
+		/**
+		 * The meta object literal for the '<em><b>Alpha</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute TLM_CONNECTION__ALPHA = eINSTANCE.getTLMConnection_Alpha();
+
+		/**
+		 * The meta object literal for the '<em><b>Base Connector</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference TLM_CONNECTION__BASE_CONNECTOR = eINSTANCE.getTLMConnection_Base_Connector();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.Interpolation <em>Interpolation</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.Interpolation
+		 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.OMSimulatorPackageImpl#getInterpolation()
+		 * @generated
+		 */
+		EEnum INTERPOLATION = eINSTANCE.getInterpolation();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMDomain <em>TLM Domain</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMDomain
+		 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.OMSimulatorPackageImpl#getTLMDomain()
+		 * @generated
+		 */
+		EEnum TLM_DOMAIN = eINSTANCE.getTLMDomain();
+
+	}
+
+} //OMSimulatorPackage
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/TLMConnection.java b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/TLMConnection.java
new file mode 100644
index 0000000..c901af7
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/TLMConnection.java
@@ -0,0 +1,178 @@
+/**
+ * Copyright (c) 2018 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:
+ *   CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.moka.ssp.omsimulatorprofile;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.uml2.uml.Connector;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>TLM Connection</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMConnection#getTimedelay <em>Timedelay</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMConnection#getImpedance <em>Impedance</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMConnection#getRotationalimpedance <em>Rotationalimpedance</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMConnection#getAlpha <em>Alpha</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMConnection#getBase_Connector <em>Base Connector</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.OMSimulatorPackage#getTLMConnection()
+ * @model
+ * @generated
+ */
+public interface TLMConnection extends EObject {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String copyright = "Copyright (c) 2018 CEA LIST.\n\n All rights reserved. This program and the accompanying materials\n are made available under the terms of the Eclipse Public License v1.0\n which accompanies this distribution, and is available at\n http://www.eclipse.org/legal/epl-v10.html\n\n Contributors:\n  CEA LIST - Initial API and implementation";
+
+	/**
+	 * Returns the value of the '<em><b>Timedelay</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Timedelay</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Timedelay</em>' attribute.
+	 * @see #setTimedelay(double)
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.OMSimulatorPackage#getTLMConnection_Timedelay()
+	 * @model dataType="org.eclipse.uml2.types.Real" required="true" ordered="false"
+	 *        annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='time delay'"
+	 * @generated
+	 */
+	double getTimedelay();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMConnection#getTimedelay <em>Timedelay</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Timedelay</em>' attribute.
+	 * @see #getTimedelay()
+	 * @generated
+	 */
+	void setTimedelay(double value);
+
+	/**
+	 * Returns the value of the '<em><b>Impedance</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Impedance</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Impedance</em>' attribute.
+	 * @see #setImpedance(double)
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.OMSimulatorPackage#getTLMConnection_Impedance()
+	 * @model dataType="org.eclipse.uml2.types.Real" ordered="false"
+	 * @generated
+	 */
+	double getImpedance();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMConnection#getImpedance <em>Impedance</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Impedance</em>' attribute.
+	 * @see #getImpedance()
+	 * @generated
+	 */
+	void setImpedance(double value);
+
+	/**
+	 * Returns the value of the '<em><b>Rotationalimpedance</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Rotationalimpedance</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Rotationalimpedance</em>' attribute.
+	 * @see #setRotationalimpedance(double)
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.OMSimulatorPackage#getTLMConnection_Rotationalimpedance()
+	 * @model dataType="org.eclipse.uml2.types.Real" ordered="false"
+	 *        annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='rotational impedance'"
+	 * @generated
+	 */
+	double getRotationalimpedance();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMConnection#getRotationalimpedance <em>Rotationalimpedance</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Rotationalimpedance</em>' attribute.
+	 * @see #getRotationalimpedance()
+	 * @generated
+	 */
+	void setRotationalimpedance(double value);
+
+	/**
+	 * Returns the value of the '<em><b>Alpha</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Alpha</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Alpha</em>' attribute.
+	 * @see #setAlpha(double)
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.OMSimulatorPackage#getTLMConnection_Alpha()
+	 * @model dataType="org.eclipse.uml2.types.Real" ordered="false"
+	 * @generated
+	 */
+	double getAlpha();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMConnection#getAlpha <em>Alpha</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Alpha</em>' attribute.
+	 * @see #getAlpha()
+	 * @generated
+	 */
+	void setAlpha(double value);
+
+	/**
+	 * Returns the value of the '<em><b>Base Connector</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Base Connector</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Base Connector</em>' reference.
+	 * @see #setBase_Connector(Connector)
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.OMSimulatorPackage#getTLMConnection_Base_Connector()
+	 * @model required="true" ordered="false"
+	 * @generated
+	 */
+	Connector getBase_Connector();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMConnection#getBase_Connector <em>Base Connector</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Base Connector</em>' reference.
+	 * @see #getBase_Connector()
+	 * @generated
+	 */
+	void setBase_Connector(Connector value);
+
+} // TLMConnection
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/TLMDomain.java b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/TLMDomain.java
new file mode 100644
index 0000000..dbc0c4e
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/TLMDomain.java
@@ -0,0 +1,338 @@
+/**
+ * Copyright (c) 2018 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:
+ *   CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.moka.ssp.omsimulatorprofile;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>TLM Domain</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.OMSimulatorPackage#getTLMDomain()
+ * @model
+ * @generated
+ */
+public enum TLMDomain implements Enumerator {
+	/**
+	 * The '<em><b>Hydraulic</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #HYDRAULIC_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	HYDRAULIC(0, "Hydraulic", "Hydraulic"),
+
+	/**
+	 * The '<em><b>Mechanical</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #MECHANICAL_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	MECHANICAL(1, "Mechanical", "Mechanical"),
+
+	/**
+	 * The '<em><b>Rotational</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #ROTATIONAL_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	ROTATIONAL(2, "Rotational", "Rotational"),
+
+	/**
+	 * The '<em><b>Electric</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #ELECTRIC_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	ELECTRIC(3, "Electric", "Electric"),
+
+	/**
+	 * The '<em><b>Input</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #INPUT_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	INPUT(4, "input", "input"),
+
+	/**
+	 * The '<em><b>Output</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #OUTPUT_VALUE
+	 * @generated
+	 * @ordered
+	 */
+	OUTPUT(5, "output", "output");
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final String copyright = "Copyright (c) 2018 CEA LIST.\n\n All rights reserved. This program and the accompanying materials\n are made available under the terms of the Eclipse Public License v1.0\n which accompanies this distribution, and is available at\n http://www.eclipse.org/legal/epl-v10.html\n\n Contributors:\n  CEA LIST - Initial API and implementation";
+
+	/**
+	 * The '<em><b>Hydraulic</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>Hydraulic</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #HYDRAULIC
+	 * @model name="Hydraulic"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int HYDRAULIC_VALUE = 0;
+
+	/**
+	 * The '<em><b>Mechanical</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>Mechanical</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #MECHANICAL
+	 * @model name="Mechanical"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int MECHANICAL_VALUE = 1;
+
+	/**
+	 * The '<em><b>Rotational</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>Rotational</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #ROTATIONAL
+	 * @model name="Rotational"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int ROTATIONAL_VALUE = 2;
+
+	/**
+	 * The '<em><b>Electric</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>Electric</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #ELECTRIC
+	 * @model name="Electric"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int ELECTRIC_VALUE = 3;
+
+	/**
+	 * The '<em><b>Input</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>Input</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #INPUT
+	 * @model name="input"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int INPUT_VALUE = 4;
+
+	/**
+	 * The '<em><b>Output</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>Output</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #OUTPUT
+	 * @model name="output"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int OUTPUT_VALUE = 5;
+
+	/**
+	 * An array of all the '<em><b>TLM Domain</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final TLMDomain[] VALUES_ARRAY =
+		new TLMDomain[] {
+			HYDRAULIC,
+			MECHANICAL,
+			ROTATIONAL,
+			ELECTRIC,
+			INPUT,
+			OUTPUT,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>TLM Domain</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List<TLMDomain> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>TLM Domain</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param literal the literal.
+	 * @return the matching enumerator or <code>null</code>.
+	 * @generated
+	 */
+	public static TLMDomain get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			TLMDomain result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>TLM Domain</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param name the name.
+	 * @return the matching enumerator or <code>null</code>.
+	 * @generated
+	 */
+	public static TLMDomain getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			TLMDomain result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>TLM Domain</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the integer value.
+	 * @return the matching enumerator or <code>null</code>.
+	 * @generated
+	 */
+	public static TLMDomain get(int value) {
+		switch (value) {
+			case HYDRAULIC_VALUE: return HYDRAULIC;
+			case MECHANICAL_VALUE: return MECHANICAL;
+			case ROTATIONAL_VALUE: return ROTATIONAL;
+			case ELECTRIC_VALUE: return ELECTRIC;
+			case INPUT_VALUE: return INPUT;
+			case OUTPUT_VALUE: return OUTPUT;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final int value;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String name;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private final String literal;
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private TLMDomain(int value, String name, String literal) {
+		this.value = value;
+		this.name = name;
+		this.literal = literal;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getValue() {
+	  return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+	  return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getLiteral() {
+	  return literal;
+	}
+
+	/**
+	 * Returns the literal value of the enumerator, which is its string representation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		return literal;
+	}
+	
+} //TLMDomain
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/TLMInterfaceDefinition.java b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/TLMInterfaceDefinition.java
new file mode 100644
index 0000000..f9b9b9d
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/TLMInterfaceDefinition.java
@@ -0,0 +1,178 @@
+/**
+ * Copyright (c) 2018 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:
+ *   CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.moka.ssp.omsimulatorprofile;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.uml2.uml.Interface;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>TLM Interface Definition</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * TLMInterface will be used to defined all the predefined TLM physical types supported by OMSimulator.
+ * More particularly, each TLM interface will have to list all the corresponding signals an FMU must own.
+ * Each signal will be defined with a SysML flowport.
+ * 
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMInterfaceDefinition#getInterpolation <em>Interpolation</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMInterfaceDefinition#getBase_Interface <em>Base Interface</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMInterfaceDefinition#getBase_Class <em>Base Class</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMInterfaceDefinition#getSignalDefinitions <em>Signal Definitions</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMInterfaceDefinition#getDimensions <em>Dimensions</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.OMSimulatorPackage#getTLMInterfaceDefinition()
+ * @model
+ * @generated
+ */
+public interface TLMInterfaceDefinition extends EObject {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String copyright = "Copyright (c) 2018 CEA LIST.\n\n All rights reserved. This program and the accompanying materials\n are made available under the terms of the Eclipse Public License v1.0\n which accompanies this distribution, and is available at\n http://www.eclipse.org/legal/epl-v10.html\n\n Contributors:\n  CEA LIST - Initial API and implementation";
+
+	/**
+	 * Returns the value of the '<em><b>Interpolation</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.Interpolation}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Interpolation</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Interpolation</em>' attribute.
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.Interpolation
+	 * @see #setInterpolation(Interpolation)
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.OMSimulatorPackage#getTLMInterfaceDefinition_Interpolation()
+	 * @model required="true" ordered="false"
+	 * @generated
+	 */
+	Interpolation getInterpolation();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMInterfaceDefinition#getInterpolation <em>Interpolation</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Interpolation</em>' attribute.
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.Interpolation
+	 * @see #getInterpolation()
+	 * @generated
+	 */
+	void setInterpolation(Interpolation value);
+
+	/**
+	 * Returns the value of the '<em><b>Base Interface</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Base Interface</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Base Interface</em>' reference.
+	 * @see #setBase_Interface(Interface)
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.OMSimulatorPackage#getTLMInterfaceDefinition_Base_Interface()
+	 * @model required="true" ordered="false"
+	 * @generated
+	 */
+	Interface getBase_Interface();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMInterfaceDefinition#getBase_Interface <em>Base Interface</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Base Interface</em>' reference.
+	 * @see #getBase_Interface()
+	 * @generated
+	 */
+	void setBase_Interface(Interface value);
+
+	/**
+	 * Returns the value of the '<em><b>Base Class</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Base Class</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Base Class</em>' reference.
+	 * @see #setBase_Class(org.eclipse.uml2.uml.Class)
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.OMSimulatorPackage#getTLMInterfaceDefinition_Base_Class()
+	 * @model required="true" ordered="false"
+	 * @generated
+	 */
+	org.eclipse.uml2.uml.Class getBase_Class();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMInterfaceDefinition#getBase_Class <em>Base Class</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Base Class</em>' reference.
+	 * @see #getBase_Class()
+	 * @generated
+	 */
+	void setBase_Class(org.eclipse.uml2.uml.Class value);
+
+	/**
+	 * Returns the value of the '<em><b>Signal Definitions</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMSignalDefinition}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Signal Definitions</em>' reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Signal Definitions</em>' reference list.
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.OMSimulatorPackage#getTLMInterfaceDefinition_SignalDefinitions()
+	 * @model required="true" transient="true" volatile="true" derived="true" ordered="false"
+	 * @generated
+	 */
+	EList<TLMSignalDefinition> getSignalDefinitions();
+
+	/**
+	 * Returns the value of the '<em><b>Dimensions</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Dimensions</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Dimensions</em>' attribute.
+	 * @see #setDimensions(int)
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.OMSimulatorPackage#getTLMInterfaceDefinition_Dimensions()
+	 * @model dataType="org.eclipse.uml2.types.Integer" required="true" ordered="false"
+	 * @generated
+	 */
+	int getDimensions();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMInterfaceDefinition#getDimensions <em>Dimensions</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Dimensions</em>' attribute.
+	 * @see #getDimensions()
+	 * @generated
+	 */
+	void setDimensions(int value);
+
+} // TLMInterfaceDefinition
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/TLMSignal.java b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/TLMSignal.java
new file mode 100644
index 0000000..a43cc6d
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/TLMSignal.java
@@ -0,0 +1,99 @@
+/**
+ * Copyright (c) 2018 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:
+ *   CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.moka.ssp.omsimulatorprofile;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.uml2.uml.Port;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>TLM Signal</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * A TLMSignal will be an additional annotation put on each FMU ports implementing TLM predefined signal, which will be referenced with its "definition" attribute.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMSignal#getBase_Port <em>Base Port</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMSignal#getDefinition <em>Definition</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.OMSimulatorPackage#getTLMSignal()
+ * @model
+ * @generated
+ */
+public interface TLMSignal extends EObject {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String copyright = "Copyright (c) 2018 CEA LIST.\n\n All rights reserved. This program and the accompanying materials\n are made available under the terms of the Eclipse Public License v1.0\n which accompanies this distribution, and is available at\n http://www.eclipse.org/legal/epl-v10.html\n\n Contributors:\n  CEA LIST - Initial API and implementation";
+
+	/**
+	 * Returns the value of the '<em><b>Base Port</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Base Port</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Base Port</em>' reference.
+	 * @see #setBase_Port(Port)
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.OMSimulatorPackage#getTLMSignal_Base_Port()
+	 * @model required="true" ordered="false"
+	 * @generated
+	 */
+	Port getBase_Port();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMSignal#getBase_Port <em>Base Port</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Base Port</em>' reference.
+	 * @see #getBase_Port()
+	 * @generated
+	 */
+	void setBase_Port(Port value);
+
+	/**
+	 * Returns the value of the '<em><b>Definition</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Definition</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Definition</em>' reference.
+	 * @see #setDefinition(TLMSignalDefinition)
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.OMSimulatorPackage#getTLMSignal_Definition()
+	 * @model required="true" ordered="false"
+	 * @generated
+	 */
+	TLMSignalDefinition getDefinition();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMSignal#getDefinition <em>Definition</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Definition</em>' reference.
+	 * @see #getDefinition()
+	 * @generated
+	 */
+	void setDefinition(TLMSignalDefinition value);
+
+} // TLMSignal
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/TLMSignalDefinition.java b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/TLMSignalDefinition.java
new file mode 100644
index 0000000..6b8fbde
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/TLMSignalDefinition.java
@@ -0,0 +1,68 @@
+/**
+ * Copyright (c) 2018 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:
+ *   CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.moka.ssp.omsimulatorprofile;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.uml2.uml.Port;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>TLM Signal Definition</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMSignalDefinition#getBase_Port <em>Base Port</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.OMSimulatorPackage#getTLMSignalDefinition()
+ * @model
+ * @generated
+ */
+public interface TLMSignalDefinition extends EObject {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String copyright = "Copyright (c) 2018 CEA LIST.\n\n All rights reserved. This program and the accompanying materials\n are made available under the terms of the Eclipse Public License v1.0\n which accompanies this distribution, and is available at\n http://www.eclipse.org/legal/epl-v10.html\n\n Contributors:\n  CEA LIST - Initial API and implementation";
+
+	/**
+	 * Returns the value of the '<em><b>Base Port</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Base Port</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Base Port</em>' reference.
+	 * @see #setBase_Port(Port)
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.OMSimulatorPackage#getTLMSignalDefinition_Base_Port()
+	 * @model required="true" ordered="false"
+	 * @generated
+	 */
+	Port getBase_Port();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMSignalDefinition#getBase_Port <em>Base Port</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Base Port</em>' reference.
+	 * @see #getBase_Port()
+	 * @generated
+	 */
+	void setBase_Port(Port value);
+
+} // TLMSignalDefinition
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/impl/BusConnectionEndImpl.java b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/impl/BusConnectionEndImpl.java
new file mode 100644
index 0000000..9e51ddd
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/impl/BusConnectionEndImpl.java
@@ -0,0 +1,242 @@
+/**
+ * Copyright (c) 2018 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:
+ *   CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+
+import org.eclipse.papyrus.moka.ssp.omsimulatorprofile.BusConnectionEnd;
+import org.eclipse.papyrus.moka.ssp.omsimulatorprofile.OMSimulatorPackage;
+
+import org.eclipse.uml2.uml.ConnectorEnd;
+import org.eclipse.uml2.uml.Port;
+import org.eclipse.uml2.uml.Type;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Bus Connection End</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.BusConnectionEndImpl#getBase_ConnectorEnd <em>Base Connector End</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.BusConnectionEndImpl#getReferencedSignal <em>Referenced Signal</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class BusConnectionEndImpl extends MinimalEObjectImpl.Container implements BusConnectionEnd {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final String copyright = "Copyright (c) 2018 CEA LIST.\n\n All rights reserved. This program and the accompanying materials\n are made available under the terms of the Eclipse Public License v1.0\n which accompanies this distribution, and is available at\n http://www.eclipse.org/legal/epl-v10.html\n\n Contributors:\n  CEA LIST - Initial API and implementation";
+
+	/**
+	 * The cached value of the '{@link #getBase_ConnectorEnd() <em>Base Connector End</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBase_ConnectorEnd()
+	 * @generated
+	 * @ordered
+	 */
+	protected ConnectorEnd base_ConnectorEnd;
+
+	/**
+	 * The cached value of the '{@link #getReferencedSignal() <em>Referenced Signal</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getReferencedSignal()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<Port> referencedSignal;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected BusConnectionEndImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return OMSimulatorPackage.Literals.BUS_CONNECTION_END;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ConnectorEnd getBase_ConnectorEnd() {
+		if (base_ConnectorEnd != null && base_ConnectorEnd.eIsProxy()) {
+			InternalEObject oldBase_ConnectorEnd = (InternalEObject)base_ConnectorEnd;
+			base_ConnectorEnd = (ConnectorEnd)eResolveProxy(oldBase_ConnectorEnd);
+			if (base_ConnectorEnd != oldBase_ConnectorEnd) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, OMSimulatorPackage.BUS_CONNECTION_END__BASE_CONNECTOR_END, oldBase_ConnectorEnd, base_ConnectorEnd));
+			}
+		}
+		return base_ConnectorEnd;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ConnectorEnd basicGetBase_ConnectorEnd() {
+		return base_ConnectorEnd;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setBase_ConnectorEnd(ConnectorEnd newBase_ConnectorEnd) {
+		ConnectorEnd oldBase_ConnectorEnd = base_ConnectorEnd;
+		base_ConnectorEnd = newBase_ConnectorEnd;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, OMSimulatorPackage.BUS_CONNECTION_END__BASE_CONNECTOR_END, oldBase_ConnectorEnd, base_ConnectorEnd));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<Port> getReferencedSignal() {
+		if (referencedSignal == null) {
+			referencedSignal = new EObjectResolvingEList<Port>(Port.class, this, OMSimulatorPackage.BUS_CONNECTION_END__REFERENCED_SIGNAL);
+		}
+		return referencedSignal;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Port getReferencedSignal(String name, Type type) {
+		return getReferencedSignal(name, type, false);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Port getReferencedSignal(String name, Type type, boolean ignoreCase) {
+		referencedSignalLoop: for (Port referencedSignal : getReferencedSignal()) {
+			if (name != null && !(ignoreCase ? name.equalsIgnoreCase(referencedSignal.getName()) : name.equals(referencedSignal.getName())))
+				continue referencedSignalLoop;
+			if (type != null && !type.equals(referencedSignal.getType()))
+				continue referencedSignalLoop;
+			return referencedSignal;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case OMSimulatorPackage.BUS_CONNECTION_END__BASE_CONNECTOR_END:
+				if (resolve) return getBase_ConnectorEnd();
+				return basicGetBase_ConnectorEnd();
+			case OMSimulatorPackage.BUS_CONNECTION_END__REFERENCED_SIGNAL:
+				return getReferencedSignal();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case OMSimulatorPackage.BUS_CONNECTION_END__BASE_CONNECTOR_END:
+				setBase_ConnectorEnd((ConnectorEnd)newValue);
+				return;
+			case OMSimulatorPackage.BUS_CONNECTION_END__REFERENCED_SIGNAL:
+				getReferencedSignal().clear();
+				getReferencedSignal().addAll((Collection<? extends Port>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case OMSimulatorPackage.BUS_CONNECTION_END__BASE_CONNECTOR_END:
+				setBase_ConnectorEnd((ConnectorEnd)null);
+				return;
+			case OMSimulatorPackage.BUS_CONNECTION_END__REFERENCED_SIGNAL:
+				getReferencedSignal().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case OMSimulatorPackage.BUS_CONNECTION_END__BASE_CONNECTOR_END:
+				return base_ConnectorEnd != null;
+			case OMSimulatorPackage.BUS_CONNECTION_END__REFERENCED_SIGNAL:
+				return referencedSignal != null && !referencedSignal.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //BusConnectionEndImpl
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/impl/OMSimulatorBusImpl.java b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/impl/OMSimulatorBusImpl.java
new file mode 100644
index 0000000..b10ac0e
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/impl/OMSimulatorBusImpl.java
@@ -0,0 +1,293 @@
+/**
+ * Copyright (c) 2018 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:
+ *   CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+
+import org.eclipse.papyrus.moka.ssp.omsimulatorprofile.OMSimulatorBus;
+import org.eclipse.papyrus.moka.ssp.omsimulatorprofile.OMSimulatorPackage;
+import org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMDomain;
+
+import org.eclipse.uml2.uml.Port;
+import org.eclipse.uml2.uml.Type;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Bus</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.OMSimulatorBusImpl#getBase_Port <em>Base Port</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.OMSimulatorBusImpl#getSignals <em>Signals</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.OMSimulatorBusImpl#getDomain <em>Domain</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class OMSimulatorBusImpl extends MinimalEObjectImpl.Container implements OMSimulatorBus {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final String copyright = "Copyright (c) 2018 CEA LIST.\n\n All rights reserved. This program and the accompanying materials\n are made available under the terms of the Eclipse Public License v1.0\n which accompanies this distribution, and is available at\n http://www.eclipse.org/legal/epl-v10.html\n\n Contributors:\n  CEA LIST - Initial API and implementation";
+
+	/**
+	 * The cached value of the '{@link #getBase_Port() <em>Base Port</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBase_Port()
+	 * @generated
+	 * @ordered
+	 */
+	protected Port base_Port;
+
+	/**
+	 * The cached value of the '{@link #getSignals() <em>Signals</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSignals()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<Port> signals;
+
+	/**
+	 * The cached value of the '{@link #getDomain() <em>Domain</em>}' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDomain()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<TLMDomain> domain;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected OMSimulatorBusImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return OMSimulatorPackage.Literals.OM_SIMULATOR_BUS;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Port getBase_Port() {
+		if (base_Port != null && base_Port.eIsProxy()) {
+			InternalEObject oldBase_Port = (InternalEObject)base_Port;
+			base_Port = (Port)eResolveProxy(oldBase_Port);
+			if (base_Port != oldBase_Port) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, OMSimulatorPackage.OM_SIMULATOR_BUS__BASE_PORT, oldBase_Port, base_Port));
+			}
+		}
+		return base_Port;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Port basicGetBase_Port() {
+		return base_Port;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setBase_Port(Port newBase_Port) {
+		Port oldBase_Port = base_Port;
+		base_Port = newBase_Port;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, OMSimulatorPackage.OM_SIMULATOR_BUS__BASE_PORT, oldBase_Port, base_Port));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<Port> getSignals() {
+		if (signals == null) {
+			signals = new EObjectResolvingEList<Port>(Port.class, this, OMSimulatorPackage.OM_SIMULATOR_BUS__SIGNALS);
+		}
+		return signals;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Port getSignals(String name, Type type) {
+		return getSignals(name, type, false);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Port getSignals(String name, Type type, boolean ignoreCase) {
+		signalsLoop: for (Port signals : getSignals()) {
+			if (name != null && !(ignoreCase ? name.equalsIgnoreCase(signals.getName()) : name.equals(signals.getName())))
+				continue signalsLoop;
+			if (type != null && !type.equals(signals.getType()))
+				continue signalsLoop;
+			return signals;
+		}
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<TLMDomain> getDomain() {
+		if (domain == null) {
+			domain = new EDataTypeUniqueEList<TLMDomain>(TLMDomain.class, this, OMSimulatorPackage.OM_SIMULATOR_BUS__DOMAIN);
+		}
+		return domain;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case OMSimulatorPackage.OM_SIMULATOR_BUS__BASE_PORT:
+				if (resolve) return getBase_Port();
+				return basicGetBase_Port();
+			case OMSimulatorPackage.OM_SIMULATOR_BUS__SIGNALS:
+				return getSignals();
+			case OMSimulatorPackage.OM_SIMULATOR_BUS__DOMAIN:
+				return getDomain();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case OMSimulatorPackage.OM_SIMULATOR_BUS__BASE_PORT:
+				setBase_Port((Port)newValue);
+				return;
+			case OMSimulatorPackage.OM_SIMULATOR_BUS__SIGNALS:
+				getSignals().clear();
+				getSignals().addAll((Collection<? extends Port>)newValue);
+				return;
+			case OMSimulatorPackage.OM_SIMULATOR_BUS__DOMAIN:
+				getDomain().clear();
+				getDomain().addAll((Collection<? extends TLMDomain>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case OMSimulatorPackage.OM_SIMULATOR_BUS__BASE_PORT:
+				setBase_Port((Port)null);
+				return;
+			case OMSimulatorPackage.OM_SIMULATOR_BUS__SIGNALS:
+				getSignals().clear();
+				return;
+			case OMSimulatorPackage.OM_SIMULATOR_BUS__DOMAIN:
+				getDomain().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case OMSimulatorPackage.OM_SIMULATOR_BUS__BASE_PORT:
+				return base_Port != null;
+			case OMSimulatorPackage.OM_SIMULATOR_BUS__SIGNALS:
+				return signals != null && !signals.isEmpty();
+			case OMSimulatorPackage.OM_SIMULATOR_BUS__DOMAIN:
+				return domain != null && !domain.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuilder result = new StringBuilder(super.toString());
+		result.append(" (domain: ");
+		result.append(domain);
+		result.append(')');
+		return result.toString();
+	}
+
+} //OMSimulatorBusImpl
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/impl/OMSimulatorFactoryImpl.java b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/impl/OMSimulatorFactoryImpl.java
new file mode 100644
index 0000000..97b4f2a
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/impl/OMSimulatorFactoryImpl.java
@@ -0,0 +1,241 @@
+/**
+ * Copyright (c) 2018 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:
+ *   CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+import org.eclipse.papyrus.moka.ssp.omsimulatorprofile.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class OMSimulatorFactoryImpl extends EFactoryImpl implements OMSimulatorFactory {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final String copyright = "Copyright (c) 2018 CEA LIST.\n\n All rights reserved. This program and the accompanying materials\n are made available under the terms of the Eclipse Public License v1.0\n which accompanies this distribution, and is available at\n http://www.eclipse.org/legal/epl-v10.html\n\n Contributors:\n  CEA LIST - Initial API and implementation";
+
+	/**
+	 * Creates the default factory implementation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static OMSimulatorFactory init() {
+		try {
+			OMSimulatorFactory theOMSimulatorFactory = (OMSimulatorFactory)EPackage.Registry.INSTANCE.getEFactory(OMSimulatorPackage.eNS_URI);
+			if (theOMSimulatorFactory != null) {
+				return theOMSimulatorFactory;
+			}
+		}
+		catch (Exception exception) {
+			EcorePlugin.INSTANCE.log(exception);
+		}
+		return new OMSimulatorFactoryImpl();
+	}
+
+	/**
+	 * Creates an instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public OMSimulatorFactoryImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EObject create(EClass eClass) {
+		switch (eClass.getClassifierID()) {
+			case OMSimulatorPackage.TLM_INTERFACE_DEFINITION: return createTLMInterfaceDefinition();
+			case OMSimulatorPackage.TLM_SIGNAL_DEFINITION: return createTLMSignalDefinition();
+			case OMSimulatorPackage.TLM_SIGNAL: return createTLMSignal();
+			case OMSimulatorPackage.OM_SIMULATOR_BUS: return createOMSimulatorBus();
+			case OMSimulatorPackage.BUS_CONNECTION_END: return createBusConnectionEnd();
+			case OMSimulatorPackage.TLM_CONNECTION: return createTLMConnection();
+			default:
+				throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object createFromString(EDataType eDataType, String initialValue) {
+		switch (eDataType.getClassifierID()) {
+			case OMSimulatorPackage.INTERPOLATION:
+				return createInterpolationFromString(eDataType, initialValue);
+			case OMSimulatorPackage.TLM_DOMAIN:
+				return createTLMDomainFromString(eDataType, initialValue);
+			default:
+				throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String convertToString(EDataType eDataType, Object instanceValue) {
+		switch (eDataType.getClassifierID()) {
+			case OMSimulatorPackage.INTERPOLATION:
+				return convertInterpolationToString(eDataType, instanceValue);
+			case OMSimulatorPackage.TLM_DOMAIN:
+				return convertTLMDomainToString(eDataType, instanceValue);
+			default:
+				throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TLMInterfaceDefinition createTLMInterfaceDefinition() {
+		TLMInterfaceDefinitionImpl tlmInterfaceDefinition = new TLMInterfaceDefinitionImpl();
+		return tlmInterfaceDefinition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TLMSignalDefinition createTLMSignalDefinition() {
+		TLMSignalDefinitionImpl tlmSignalDefinition = new TLMSignalDefinitionImpl();
+		return tlmSignalDefinition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TLMSignal createTLMSignal() {
+		TLMSignalImpl tlmSignal = new TLMSignalImpl();
+		return tlmSignal;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public OMSimulatorBus createOMSimulatorBus() {
+		OMSimulatorBusImpl omSimulatorBus = new OMSimulatorBusImpl();
+		return omSimulatorBus;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public BusConnectionEnd createBusConnectionEnd() {
+		BusConnectionEndImpl busConnectionEnd = new BusConnectionEndImpl();
+		return busConnectionEnd;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TLMConnection createTLMConnection() {
+		TLMConnectionImpl tlmConnection = new TLMConnectionImpl();
+		return tlmConnection;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Interpolation createInterpolationFromString(EDataType eDataType, String initialValue) {
+		Interpolation result = Interpolation.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertInterpolationToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TLMDomain createTLMDomainFromString(EDataType eDataType, String initialValue) {
+		TLMDomain result = TLMDomain.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertTLMDomainToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public OMSimulatorPackage getOMSimulatorPackage() {
+		return (OMSimulatorPackage)getEPackage();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @deprecated
+	 * @generated
+	 */
+	@Deprecated
+	public static OMSimulatorPackage getPackage() {
+		return OMSimulatorPackage.eINSTANCE;
+	}
+
+} //OMSimulatorFactoryImpl
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/impl/OMSimulatorPackageImpl.java b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/impl/OMSimulatorPackageImpl.java
new file mode 100644
index 0000000..4bc6ea0
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/impl/OMSimulatorPackageImpl.java
@@ -0,0 +1,598 @@
+/**
+ * Copyright (c) 2018 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:
+ *   CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EOperation;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EcorePackage;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import org.eclipse.papyrus.moka.ssp.omsimulatorprofile.BusConnectionEnd;
+import org.eclipse.papyrus.moka.ssp.omsimulatorprofile.Interpolation;
+import org.eclipse.papyrus.moka.ssp.omsimulatorprofile.OMSimulatorBus;
+import org.eclipse.papyrus.moka.ssp.omsimulatorprofile.OMSimulatorFactory;
+import org.eclipse.papyrus.moka.ssp.omsimulatorprofile.OMSimulatorPackage;
+import org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMConnection;
+import org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMDomain;
+import org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMInterfaceDefinition;
+import org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMSignal;
+import org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMSignalDefinition;
+
+import org.eclipse.uml2.types.TypesPackage;
+
+import org.eclipse.uml2.uml.UMLPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class OMSimulatorPackageImpl extends EPackageImpl implements OMSimulatorPackage {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final String copyright = "Copyright (c) 2018 CEA LIST.\n\n All rights reserved. This program and the accompanying materials\n are made available under the terms of the Eclipse Public License v1.0\n which accompanies this distribution, and is available at\n http://www.eclipse.org/legal/epl-v10.html\n\n Contributors:\n  CEA LIST - Initial API and implementation";
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass tlmInterfaceDefinitionEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass tlmSignalDefinitionEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass tlmSignalEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass omSimulatorBusEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass busConnectionEndEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass tlmConnectionEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum interpolationEEnum = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum tlmDomainEEnum = null;
+
+	/**
+	 * Creates an instance of the model <b>Package</b>, registered with
+	 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+	 * package URI value.
+	 * <p>Note: the correct way to create the package is via the static
+	 * factory method {@link #init init()}, which also performs
+	 * initialization of the package, or returns the registered package,
+	 * if one already exists.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.emf.ecore.EPackage.Registry
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.OMSimulatorPackage#eNS_URI
+	 * @see #init()
+	 * @generated
+	 */
+	private OMSimulatorPackageImpl() {
+		super(eNS_URI, OMSimulatorFactory.eINSTANCE);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static boolean isInited = false;
+
+	/**
+	 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+	 *
+	 * <p>This method is used to initialize {@link OMSimulatorPackage#eINSTANCE} when that field is accessed.
+	 * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #eNS_URI
+	 * @see #createPackageContents()
+	 * @see #initializePackageContents()
+	 * @generated
+	 */
+	public static OMSimulatorPackage init() {
+		if (isInited) return (OMSimulatorPackage)EPackage.Registry.INSTANCE.getEPackage(OMSimulatorPackage.eNS_URI);
+
+		// Obtain or create and register package
+		Object registeredOMSimulatorPackage = EPackage.Registry.INSTANCE.get(eNS_URI);
+		OMSimulatorPackageImpl theOMSimulatorPackage = registeredOMSimulatorPackage instanceof OMSimulatorPackageImpl ? (OMSimulatorPackageImpl)registeredOMSimulatorPackage : new OMSimulatorPackageImpl();
+
+		isInited = true;
+
+		// Initialize simple dependencies
+		EcorePackage.eINSTANCE.eClass();
+		TypesPackage.eINSTANCE.eClass();
+		UMLPackage.eINSTANCE.eClass();
+
+		// Create package meta-data objects
+		theOMSimulatorPackage.createPackageContents();
+
+		// Initialize created meta-data
+		theOMSimulatorPackage.initializePackageContents();
+
+		// Mark meta-data to indicate it can't be changed
+		theOMSimulatorPackage.freeze();
+
+		// Update the registry and return the package
+		EPackage.Registry.INSTANCE.put(OMSimulatorPackage.eNS_URI, theOMSimulatorPackage);
+		return theOMSimulatorPackage;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getTLMInterfaceDefinition() {
+		return tlmInterfaceDefinitionEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTLMInterfaceDefinition_Interpolation() {
+		return (EAttribute)tlmInterfaceDefinitionEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getTLMInterfaceDefinition_Base_Interface() {
+		return (EReference)tlmInterfaceDefinitionEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getTLMInterfaceDefinition_Base_Class() {
+		return (EReference)tlmInterfaceDefinitionEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getTLMInterfaceDefinition_SignalDefinitions() {
+		return (EReference)tlmInterfaceDefinitionEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTLMInterfaceDefinition_Dimensions() {
+		return (EAttribute)tlmInterfaceDefinitionEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EOperation getTLMInterfaceDefinition__GetSignalDefinitions() {
+		return tlmInterfaceDefinitionEClass.getEOperations().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getTLMSignalDefinition() {
+		return tlmSignalDefinitionEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getTLMSignalDefinition_Base_Port() {
+		return (EReference)tlmSignalDefinitionEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getTLMSignal() {
+		return tlmSignalEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getTLMSignal_Base_Port() {
+		return (EReference)tlmSignalEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getTLMSignal_Definition() {
+		return (EReference)tlmSignalEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getOMSimulatorBus() {
+		return omSimulatorBusEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getOMSimulatorBus_Base_Port() {
+		return (EReference)omSimulatorBusEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getOMSimulatorBus_Signals() {
+		return (EReference)omSimulatorBusEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getOMSimulatorBus_Domain() {
+		return (EAttribute)omSimulatorBusEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getBusConnectionEnd() {
+		return busConnectionEndEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getBusConnectionEnd_Base_ConnectorEnd() {
+		return (EReference)busConnectionEndEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getBusConnectionEnd_ReferencedSignal() {
+		return (EReference)busConnectionEndEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getTLMConnection() {
+		return tlmConnectionEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTLMConnection_Timedelay() {
+		return (EAttribute)tlmConnectionEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTLMConnection_Impedance() {
+		return (EAttribute)tlmConnectionEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTLMConnection_Rotationalimpedance() {
+		return (EAttribute)tlmConnectionEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getTLMConnection_Alpha() {
+		return (EAttribute)tlmConnectionEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getTLMConnection_Base_Connector() {
+		return (EReference)tlmConnectionEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getInterpolation() {
+		return interpolationEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getTLMDomain() {
+		return tlmDomainEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public OMSimulatorFactory getOMSimulatorFactory() {
+		return (OMSimulatorFactory)getEFactoryInstance();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private boolean isCreated = false;
+
+	/**
+	 * Creates the meta-model objects for the package.  This method is
+	 * guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void createPackageContents() {
+		if (isCreated) return;
+		isCreated = true;
+
+		// Create classes and their features
+		tlmInterfaceDefinitionEClass = createEClass(TLM_INTERFACE_DEFINITION);
+		createEAttribute(tlmInterfaceDefinitionEClass, TLM_INTERFACE_DEFINITION__INTERPOLATION);
+		createEReference(tlmInterfaceDefinitionEClass, TLM_INTERFACE_DEFINITION__BASE_INTERFACE);
+		createEReference(tlmInterfaceDefinitionEClass, TLM_INTERFACE_DEFINITION__BASE_CLASS);
+		createEReference(tlmInterfaceDefinitionEClass, TLM_INTERFACE_DEFINITION__SIGNAL_DEFINITIONS);
+		createEAttribute(tlmInterfaceDefinitionEClass, TLM_INTERFACE_DEFINITION__DIMENSIONS);
+		createEOperation(tlmInterfaceDefinitionEClass, TLM_INTERFACE_DEFINITION___GET_SIGNAL_DEFINITIONS);
+
+		tlmSignalDefinitionEClass = createEClass(TLM_SIGNAL_DEFINITION);
+		createEReference(tlmSignalDefinitionEClass, TLM_SIGNAL_DEFINITION__BASE_PORT);
+
+		tlmSignalEClass = createEClass(TLM_SIGNAL);
+		createEReference(tlmSignalEClass, TLM_SIGNAL__BASE_PORT);
+		createEReference(tlmSignalEClass, TLM_SIGNAL__DEFINITION);
+
+		omSimulatorBusEClass = createEClass(OM_SIMULATOR_BUS);
+		createEReference(omSimulatorBusEClass, OM_SIMULATOR_BUS__BASE_PORT);
+		createEReference(omSimulatorBusEClass, OM_SIMULATOR_BUS__SIGNALS);
+		createEAttribute(omSimulatorBusEClass, OM_SIMULATOR_BUS__DOMAIN);
+
+		busConnectionEndEClass = createEClass(BUS_CONNECTION_END);
+		createEReference(busConnectionEndEClass, BUS_CONNECTION_END__BASE_CONNECTOR_END);
+		createEReference(busConnectionEndEClass, BUS_CONNECTION_END__REFERENCED_SIGNAL);
+
+		tlmConnectionEClass = createEClass(TLM_CONNECTION);
+		createEAttribute(tlmConnectionEClass, TLM_CONNECTION__TIMEDELAY);
+		createEAttribute(tlmConnectionEClass, TLM_CONNECTION__IMPEDANCE);
+		createEAttribute(tlmConnectionEClass, TLM_CONNECTION__ROTATIONALIMPEDANCE);
+		createEAttribute(tlmConnectionEClass, TLM_CONNECTION__ALPHA);
+		createEReference(tlmConnectionEClass, TLM_CONNECTION__BASE_CONNECTOR);
+
+		// Create enums
+		interpolationEEnum = createEEnum(INTERPOLATION);
+		tlmDomainEEnum = createEEnum(TLM_DOMAIN);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private boolean isInitialized = false;
+
+	/**
+	 * Complete the initialization of the package and its meta-model.  This
+	 * method is guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void initializePackageContents() {
+		if (isInitialized) return;
+		isInitialized = true;
+
+		// Initialize package
+		setName(eNAME);
+		setNsPrefix(eNS_PREFIX);
+		setNsURI(eNS_URI);
+
+		// Obtain other dependent packages
+		UMLPackage theUMLPackage = (UMLPackage)EPackage.Registry.INSTANCE.getEPackage(UMLPackage.eNS_URI);
+		TypesPackage theTypesPackage = (TypesPackage)EPackage.Registry.INSTANCE.getEPackage(TypesPackage.eNS_URI);
+
+		// Create type parameters
+
+		// Set bounds for type parameters
+
+		// Add supertypes to classes
+
+		// Initialize classes, features, and operations; add parameters
+		initEClass(tlmInterfaceDefinitionEClass, TLMInterfaceDefinition.class, "TLMInterfaceDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getTLMInterfaceDefinition_Interpolation(), this.getInterpolation(), "interpolation", null, 1, 1, TLMInterfaceDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEReference(getTLMInterfaceDefinition_Base_Interface(), theUMLPackage.getInterface(), null, "base_Interface", null, 1, 1, TLMInterfaceDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEReference(getTLMInterfaceDefinition_Base_Class(), theUMLPackage.getClass_(), null, "base_Class", null, 1, 1, TLMInterfaceDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEReference(getTLMInterfaceDefinition_SignalDefinitions(), this.getTLMSignalDefinition(), null, "signalDefinitions", null, 1, -1, TLMInterfaceDefinition.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED);
+		initEAttribute(getTLMInterfaceDefinition_Dimensions(), theTypesPackage.getInteger(), "dimensions", null, 1, 1, TLMInterfaceDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+		initEOperation(getTLMInterfaceDefinition__GetSignalDefinitions(), this.getTLMSignalDefinition(), "getSignalDefinitions", 0, -1, IS_UNIQUE, !IS_ORDERED);
+
+		initEClass(tlmSignalDefinitionEClass, TLMSignalDefinition.class, "TLMSignalDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getTLMSignalDefinition_Base_Port(), theUMLPackage.getPort(), null, "base_Port", null, 1, 1, TLMSignalDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+		initEClass(tlmSignalEClass, TLMSignal.class, "TLMSignal", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getTLMSignal_Base_Port(), theUMLPackage.getPort(), null, "base_Port", null, 1, 1, TLMSignal.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEReference(getTLMSignal_Definition(), this.getTLMSignalDefinition(), null, "definition", null, 1, 1, TLMSignal.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+		initEClass(omSimulatorBusEClass, OMSimulatorBus.class, "OMSimulatorBus", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getOMSimulatorBus_Base_Port(), theUMLPackage.getPort(), null, "base_Port", null, 1, 1, OMSimulatorBus.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEReference(getOMSimulatorBus_Signals(), theUMLPackage.getPort(), null, "signals", null, 0, -1, OMSimulatorBus.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEAttribute(getOMSimulatorBus_Domain(), this.getTLMDomain(), "domain", null, 0, -1, OMSimulatorBus.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+		initEClass(busConnectionEndEClass, BusConnectionEnd.class, "BusConnectionEnd", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getBusConnectionEnd_Base_ConnectorEnd(), theUMLPackage.getConnectorEnd(), null, "base_ConnectorEnd", null, 1, 1, BusConnectionEnd.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEReference(getBusConnectionEnd_ReferencedSignal(), theUMLPackage.getPort(), null, "referencedSignal", null, 0, -1, BusConnectionEnd.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+		initEClass(tlmConnectionEClass, TLMConnection.class, "TLMConnection", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getTLMConnection_Timedelay(), theTypesPackage.getReal(), "timedelay", null, 1, 1, TLMConnection.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEAttribute(getTLMConnection_Impedance(), theTypesPackage.getReal(), "impedance", null, 0, 1, TLMConnection.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEAttribute(getTLMConnection_Rotationalimpedance(), theTypesPackage.getReal(), "rotationalimpedance", null, 0, 1, TLMConnection.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEAttribute(getTLMConnection_Alpha(), theTypesPackage.getReal(), "alpha", null, 0, 1, TLMConnection.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEReference(getTLMConnection_Base_Connector(), theUMLPackage.getConnector(), null, "base_Connector", null, 1, 1, TLMConnection.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+		// Initialize enums and add enum literals
+		initEEnum(interpolationEEnum, Interpolation.class, "Interpolation");
+		addEEnumLiteral(interpolationEEnum, Interpolation.NONE);
+		addEEnumLiteral(interpolationEEnum, Interpolation.COARSEGRAINED);
+		addEEnumLiteral(interpolationEEnum, Interpolation.FINEGRAINED);
+
+		initEEnum(tlmDomainEEnum, TLMDomain.class, "TLMDomain");
+		addEEnumLiteral(tlmDomainEEnum, TLMDomain.HYDRAULIC);
+		addEEnumLiteral(tlmDomainEEnum, TLMDomain.MECHANICAL);
+		addEEnumLiteral(tlmDomainEEnum, TLMDomain.ROTATIONAL);
+		addEEnumLiteral(tlmDomainEEnum, TLMDomain.ELECTRIC);
+		addEEnumLiteral(tlmDomainEEnum, TLMDomain.INPUT);
+		addEEnumLiteral(tlmDomainEEnum, TLMDomain.OUTPUT);
+
+		// Create resource
+		createResource(eNS_URI);
+
+		// Create annotations
+		// http://www.eclipse.org/uml2/2.0.0/UML
+		createUMLAnnotations();
+	}
+
+	/**
+	 * Initializes the annotations for <b>http://www.eclipse.org/uml2/2.0.0/UML</b>.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void createUMLAnnotations() {
+		String source = "http://www.eclipse.org/uml2/2.0.0/UML";
+		addAnnotation
+		  (this,
+		   source,
+		   new String[] {
+			   "originalName", "OMSimulatorProfile"
+		   });
+		addAnnotation
+		  (getTLMConnection_Timedelay(),
+		   source,
+		   new String[] {
+			   "originalName", "time delay"
+		   });
+		addAnnotation
+		  (getTLMConnection_Rotationalimpedance(),
+		   source,
+		   new String[] {
+			   "originalName", "rotational impedance"
+		   });
+	}
+
+} //OMSimulatorPackageImpl
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/impl/TLMConnectionImpl.java b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/impl/TLMConnectionImpl.java
new file mode 100644
index 0000000..1e77435
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/impl/TLMConnectionImpl.java
@@ -0,0 +1,404 @@
+/**
+ * Copyright (c) 2018 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:
+ *   CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.moka.ssp.omsimulatorprofile.OMSimulatorPackage;
+import org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMConnection;
+
+import org.eclipse.uml2.uml.Connector;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>TLM Connection</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.TLMConnectionImpl#getTimedelay <em>Timedelay</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.TLMConnectionImpl#getImpedance <em>Impedance</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.TLMConnectionImpl#getRotationalimpedance <em>Rotationalimpedance</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.TLMConnectionImpl#getAlpha <em>Alpha</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.TLMConnectionImpl#getBase_Connector <em>Base Connector</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class TLMConnectionImpl extends MinimalEObjectImpl.Container implements TLMConnection {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final String copyright = "Copyright (c) 2018 CEA LIST.\n\n All rights reserved. This program and the accompanying materials\n are made available under the terms of the Eclipse Public License v1.0\n which accompanies this distribution, and is available at\n http://www.eclipse.org/legal/epl-v10.html\n\n Contributors:\n  CEA LIST - Initial API and implementation";
+
+	/**
+	 * The default value of the '{@link #getTimedelay() <em>Timedelay</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTimedelay()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final double TIMEDELAY_EDEFAULT = 0.0;
+
+	/**
+	 * The cached value of the '{@link #getTimedelay() <em>Timedelay</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTimedelay()
+	 * @generated
+	 * @ordered
+	 */
+	protected double timedelay = TIMEDELAY_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getImpedance() <em>Impedance</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getImpedance()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final double IMPEDANCE_EDEFAULT = 0.0;
+
+	/**
+	 * The cached value of the '{@link #getImpedance() <em>Impedance</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getImpedance()
+	 * @generated
+	 * @ordered
+	 */
+	protected double impedance = IMPEDANCE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getRotationalimpedance() <em>Rotationalimpedance</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getRotationalimpedance()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final double ROTATIONALIMPEDANCE_EDEFAULT = 0.0;
+
+	/**
+	 * The cached value of the '{@link #getRotationalimpedance() <em>Rotationalimpedance</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getRotationalimpedance()
+	 * @generated
+	 * @ordered
+	 */
+	protected double rotationalimpedance = ROTATIONALIMPEDANCE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getAlpha() <em>Alpha</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAlpha()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final double ALPHA_EDEFAULT = 0.0;
+
+	/**
+	 * The cached value of the '{@link #getAlpha() <em>Alpha</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getAlpha()
+	 * @generated
+	 * @ordered
+	 */
+	protected double alpha = ALPHA_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getBase_Connector() <em>Base Connector</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBase_Connector()
+	 * @generated
+	 * @ordered
+	 */
+	protected Connector base_Connector;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TLMConnectionImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return OMSimulatorPackage.Literals.TLM_CONNECTION;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public double getTimedelay() {
+		return timedelay;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setTimedelay(double newTimedelay) {
+		double oldTimedelay = timedelay;
+		timedelay = newTimedelay;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, OMSimulatorPackage.TLM_CONNECTION__TIMEDELAY, oldTimedelay, timedelay));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public double getImpedance() {
+		return impedance;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setImpedance(double newImpedance) {
+		double oldImpedance = impedance;
+		impedance = newImpedance;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, OMSimulatorPackage.TLM_CONNECTION__IMPEDANCE, oldImpedance, impedance));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public double getRotationalimpedance() {
+		return rotationalimpedance;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setRotationalimpedance(double newRotationalimpedance) {
+		double oldRotationalimpedance = rotationalimpedance;
+		rotationalimpedance = newRotationalimpedance;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, OMSimulatorPackage.TLM_CONNECTION__ROTATIONALIMPEDANCE, oldRotationalimpedance, rotationalimpedance));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public double getAlpha() {
+		return alpha;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setAlpha(double newAlpha) {
+		double oldAlpha = alpha;
+		alpha = newAlpha;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, OMSimulatorPackage.TLM_CONNECTION__ALPHA, oldAlpha, alpha));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Connector getBase_Connector() {
+		if (base_Connector != null && base_Connector.eIsProxy()) {
+			InternalEObject oldBase_Connector = (InternalEObject)base_Connector;
+			base_Connector = (Connector)eResolveProxy(oldBase_Connector);
+			if (base_Connector != oldBase_Connector) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, OMSimulatorPackage.TLM_CONNECTION__BASE_CONNECTOR, oldBase_Connector, base_Connector));
+			}
+		}
+		return base_Connector;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Connector basicGetBase_Connector() {
+		return base_Connector;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setBase_Connector(Connector newBase_Connector) {
+		Connector oldBase_Connector = base_Connector;
+		base_Connector = newBase_Connector;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, OMSimulatorPackage.TLM_CONNECTION__BASE_CONNECTOR, oldBase_Connector, base_Connector));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case OMSimulatorPackage.TLM_CONNECTION__TIMEDELAY:
+				return getTimedelay();
+			case OMSimulatorPackage.TLM_CONNECTION__IMPEDANCE:
+				return getImpedance();
+			case OMSimulatorPackage.TLM_CONNECTION__ROTATIONALIMPEDANCE:
+				return getRotationalimpedance();
+			case OMSimulatorPackage.TLM_CONNECTION__ALPHA:
+				return getAlpha();
+			case OMSimulatorPackage.TLM_CONNECTION__BASE_CONNECTOR:
+				if (resolve) return getBase_Connector();
+				return basicGetBase_Connector();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case OMSimulatorPackage.TLM_CONNECTION__TIMEDELAY:
+				setTimedelay((Double)newValue);
+				return;
+			case OMSimulatorPackage.TLM_CONNECTION__IMPEDANCE:
+				setImpedance((Double)newValue);
+				return;
+			case OMSimulatorPackage.TLM_CONNECTION__ROTATIONALIMPEDANCE:
+				setRotationalimpedance((Double)newValue);
+				return;
+			case OMSimulatorPackage.TLM_CONNECTION__ALPHA:
+				setAlpha((Double)newValue);
+				return;
+			case OMSimulatorPackage.TLM_CONNECTION__BASE_CONNECTOR:
+				setBase_Connector((Connector)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case OMSimulatorPackage.TLM_CONNECTION__TIMEDELAY:
+				setTimedelay(TIMEDELAY_EDEFAULT);
+				return;
+			case OMSimulatorPackage.TLM_CONNECTION__IMPEDANCE:
+				setImpedance(IMPEDANCE_EDEFAULT);
+				return;
+			case OMSimulatorPackage.TLM_CONNECTION__ROTATIONALIMPEDANCE:
+				setRotationalimpedance(ROTATIONALIMPEDANCE_EDEFAULT);
+				return;
+			case OMSimulatorPackage.TLM_CONNECTION__ALPHA:
+				setAlpha(ALPHA_EDEFAULT);
+				return;
+			case OMSimulatorPackage.TLM_CONNECTION__BASE_CONNECTOR:
+				setBase_Connector((Connector)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case OMSimulatorPackage.TLM_CONNECTION__TIMEDELAY:
+				return timedelay != TIMEDELAY_EDEFAULT;
+			case OMSimulatorPackage.TLM_CONNECTION__IMPEDANCE:
+				return impedance != IMPEDANCE_EDEFAULT;
+			case OMSimulatorPackage.TLM_CONNECTION__ROTATIONALIMPEDANCE:
+				return rotationalimpedance != ROTATIONALIMPEDANCE_EDEFAULT;
+			case OMSimulatorPackage.TLM_CONNECTION__ALPHA:
+				return alpha != ALPHA_EDEFAULT;
+			case OMSimulatorPackage.TLM_CONNECTION__BASE_CONNECTOR:
+				return base_Connector != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuilder result = new StringBuilder(super.toString());
+		result.append(" (timedelay: ");
+		result.append(timedelay);
+		result.append(", impedance: ");
+		result.append(impedance);
+		result.append(", rotationalimpedance: ");
+		result.append(rotationalimpedance);
+		result.append(", alpha: ");
+		result.append(alpha);
+		result.append(')');
+		return result.toString();
+	}
+
+} //TLMConnectionImpl
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/impl/TLMInterfaceDefinitionImpl.java b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/impl/TLMInterfaceDefinitionImpl.java
new file mode 100644
index 0000000..ab265c6
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/impl/TLMInterfaceDefinitionImpl.java
@@ -0,0 +1,386 @@
+/**
+ * Copyright (c) 2018 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:
+ *   CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.moka.ssp.omsimulatorprofile.Interpolation;
+import org.eclipse.papyrus.moka.ssp.omsimulatorprofile.OMSimulatorPackage;
+import org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMInterfaceDefinition;
+import org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMSignalDefinition;
+
+import org.eclipse.papyrus.moka.ssp.omsimulatorprofile.operations.TLMInterfaceDefinitionOperations;
+
+import org.eclipse.uml2.uml.Interface;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>TLM Interface Definition</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.TLMInterfaceDefinitionImpl#getInterpolation <em>Interpolation</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.TLMInterfaceDefinitionImpl#getBase_Interface <em>Base Interface</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.TLMInterfaceDefinitionImpl#getBase_Class <em>Base Class</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.TLMInterfaceDefinitionImpl#getSignalDefinitions <em>Signal Definitions</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.TLMInterfaceDefinitionImpl#getDimensions <em>Dimensions</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class TLMInterfaceDefinitionImpl extends MinimalEObjectImpl.Container implements TLMInterfaceDefinition {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final String copyright = "Copyright (c) 2018 CEA LIST.\n\n All rights reserved. This program and the accompanying materials\n are made available under the terms of the Eclipse Public License v1.0\n which accompanies this distribution, and is available at\n http://www.eclipse.org/legal/epl-v10.html\n\n Contributors:\n  CEA LIST - Initial API and implementation";
+
+	/**
+	 * The default value of the '{@link #getInterpolation() <em>Interpolation</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getInterpolation()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final Interpolation INTERPOLATION_EDEFAULT = Interpolation.NONE;
+
+	/**
+	 * The cached value of the '{@link #getInterpolation() <em>Interpolation</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getInterpolation()
+	 * @generated
+	 * @ordered
+	 */
+	protected Interpolation interpolation = INTERPOLATION_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getBase_Interface() <em>Base Interface</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBase_Interface()
+	 * @generated
+	 * @ordered
+	 */
+	protected Interface base_Interface;
+
+	/**
+	 * The cached value of the '{@link #getBase_Class() <em>Base Class</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBase_Class()
+	 * @generated
+	 * @ordered
+	 */
+	protected org.eclipse.uml2.uml.Class base_Class;
+
+	/**
+	 * The default value of the '{@link #getDimensions() <em>Dimensions</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDimensions()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int DIMENSIONS_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getDimensions() <em>Dimensions</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDimensions()
+	 * @generated
+	 * @ordered
+	 */
+	protected int dimensions = DIMENSIONS_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TLMInterfaceDefinitionImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return OMSimulatorPackage.Literals.TLM_INTERFACE_DEFINITION;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Interpolation getInterpolation() {
+		return interpolation;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setInterpolation(Interpolation newInterpolation) {
+		Interpolation oldInterpolation = interpolation;
+		interpolation = newInterpolation == null ? INTERPOLATION_EDEFAULT : newInterpolation;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, OMSimulatorPackage.TLM_INTERFACE_DEFINITION__INTERPOLATION, oldInterpolation, interpolation));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Interface getBase_Interface() {
+		if (base_Interface != null && base_Interface.eIsProxy()) {
+			InternalEObject oldBase_Interface = (InternalEObject)base_Interface;
+			base_Interface = (Interface)eResolveProxy(oldBase_Interface);
+			if (base_Interface != oldBase_Interface) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, OMSimulatorPackage.TLM_INTERFACE_DEFINITION__BASE_INTERFACE, oldBase_Interface, base_Interface));
+			}
+		}
+		return base_Interface;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Interface basicGetBase_Interface() {
+		return base_Interface;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setBase_Interface(Interface newBase_Interface) {
+		Interface oldBase_Interface = base_Interface;
+		base_Interface = newBase_Interface;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, OMSimulatorPackage.TLM_INTERFACE_DEFINITION__BASE_INTERFACE, oldBase_Interface, base_Interface));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public org.eclipse.uml2.uml.Class getBase_Class() {
+		if (base_Class != null && base_Class.eIsProxy()) {
+			InternalEObject oldBase_Class = (InternalEObject)base_Class;
+			base_Class = (org.eclipse.uml2.uml.Class)eResolveProxy(oldBase_Class);
+			if (base_Class != oldBase_Class) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, OMSimulatorPackage.TLM_INTERFACE_DEFINITION__BASE_CLASS, oldBase_Class, base_Class));
+			}
+		}
+		return base_Class;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public org.eclipse.uml2.uml.Class basicGetBase_Class() {
+		return base_Class;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setBase_Class(org.eclipse.uml2.uml.Class newBase_Class) {
+		org.eclipse.uml2.uml.Class oldBase_Class = base_Class;
+		base_Class = newBase_Class;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, OMSimulatorPackage.TLM_INTERFACE_DEFINITION__BASE_CLASS, oldBase_Class, base_Class));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EList<TLMSignalDefinition> getSignalDefinitions() {
+		return TLMInterfaceDefinitionOperations.getSignalDefinitions(this);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int getDimensions() {
+		return dimensions;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDimensions(int newDimensions) {
+		int oldDimensions = dimensions;
+		dimensions = newDimensions;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, OMSimulatorPackage.TLM_INTERFACE_DEFINITION__DIMENSIONS, oldDimensions, dimensions));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case OMSimulatorPackage.TLM_INTERFACE_DEFINITION__INTERPOLATION:
+				return getInterpolation();
+			case OMSimulatorPackage.TLM_INTERFACE_DEFINITION__BASE_INTERFACE:
+				if (resolve) return getBase_Interface();
+				return basicGetBase_Interface();
+			case OMSimulatorPackage.TLM_INTERFACE_DEFINITION__BASE_CLASS:
+				if (resolve) return getBase_Class();
+				return basicGetBase_Class();
+			case OMSimulatorPackage.TLM_INTERFACE_DEFINITION__SIGNAL_DEFINITIONS:
+				return getSignalDefinitions();
+			case OMSimulatorPackage.TLM_INTERFACE_DEFINITION__DIMENSIONS:
+				return getDimensions();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case OMSimulatorPackage.TLM_INTERFACE_DEFINITION__INTERPOLATION:
+				setInterpolation((Interpolation)newValue);
+				return;
+			case OMSimulatorPackage.TLM_INTERFACE_DEFINITION__BASE_INTERFACE:
+				setBase_Interface((Interface)newValue);
+				return;
+			case OMSimulatorPackage.TLM_INTERFACE_DEFINITION__BASE_CLASS:
+				setBase_Class((org.eclipse.uml2.uml.Class)newValue);
+				return;
+			case OMSimulatorPackage.TLM_INTERFACE_DEFINITION__SIGNAL_DEFINITIONS:
+				getSignalDefinitions().clear();
+				getSignalDefinitions().addAll((Collection<? extends TLMSignalDefinition>)newValue);
+				return;
+			case OMSimulatorPackage.TLM_INTERFACE_DEFINITION__DIMENSIONS:
+				setDimensions((Integer)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case OMSimulatorPackage.TLM_INTERFACE_DEFINITION__INTERPOLATION:
+				setInterpolation(INTERPOLATION_EDEFAULT);
+				return;
+			case OMSimulatorPackage.TLM_INTERFACE_DEFINITION__BASE_INTERFACE:
+				setBase_Interface((Interface)null);
+				return;
+			case OMSimulatorPackage.TLM_INTERFACE_DEFINITION__BASE_CLASS:
+				setBase_Class((org.eclipse.uml2.uml.Class)null);
+				return;
+			case OMSimulatorPackage.TLM_INTERFACE_DEFINITION__SIGNAL_DEFINITIONS:
+				getSignalDefinitions().clear();
+				return;
+			case OMSimulatorPackage.TLM_INTERFACE_DEFINITION__DIMENSIONS:
+				setDimensions(DIMENSIONS_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case OMSimulatorPackage.TLM_INTERFACE_DEFINITION__INTERPOLATION:
+				return interpolation != INTERPOLATION_EDEFAULT;
+			case OMSimulatorPackage.TLM_INTERFACE_DEFINITION__BASE_INTERFACE:
+				return base_Interface != null;
+			case OMSimulatorPackage.TLM_INTERFACE_DEFINITION__BASE_CLASS:
+				return base_Class != null;
+			case OMSimulatorPackage.TLM_INTERFACE_DEFINITION__SIGNAL_DEFINITIONS:
+				return !getSignalDefinitions().isEmpty();
+			case OMSimulatorPackage.TLM_INTERFACE_DEFINITION__DIMENSIONS:
+				return dimensions != DIMENSIONS_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuilder result = new StringBuilder(super.toString());
+		result.append(" (interpolation: ");
+		result.append(interpolation);
+		result.append(", dimensions: ");
+		result.append(dimensions);
+		result.append(')');
+		return result.toString();
+	}
+
+} //TLMInterfaceDefinitionImpl
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/impl/TLMSignalDefinitionImpl.java b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/impl/TLMSignalDefinitionImpl.java
new file mode 100644
index 0000000..6f7acdb
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/impl/TLMSignalDefinitionImpl.java
@@ -0,0 +1,174 @@
+/**
+ * Copyright (c) 2018 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:
+ *   CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.moka.ssp.omsimulatorprofile.OMSimulatorPackage;
+import org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMSignalDefinition;
+
+import org.eclipse.uml2.uml.Port;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>TLM Signal Definition</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.TLMSignalDefinitionImpl#getBase_Port <em>Base Port</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class TLMSignalDefinitionImpl extends MinimalEObjectImpl.Container implements TLMSignalDefinition {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final String copyright = "Copyright (c) 2018 CEA LIST.\n\n All rights reserved. This program and the accompanying materials\n are made available under the terms of the Eclipse Public License v1.0\n which accompanies this distribution, and is available at\n http://www.eclipse.org/legal/epl-v10.html\n\n Contributors:\n  CEA LIST - Initial API and implementation";
+
+	/**
+	 * The cached value of the '{@link #getBase_Port() <em>Base Port</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBase_Port()
+	 * @generated
+	 * @ordered
+	 */
+	protected Port base_Port;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TLMSignalDefinitionImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return OMSimulatorPackage.Literals.TLM_SIGNAL_DEFINITION;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Port getBase_Port() {
+		if (base_Port != null && base_Port.eIsProxy()) {
+			InternalEObject oldBase_Port = (InternalEObject)base_Port;
+			base_Port = (Port)eResolveProxy(oldBase_Port);
+			if (base_Port != oldBase_Port) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, OMSimulatorPackage.TLM_SIGNAL_DEFINITION__BASE_PORT, oldBase_Port, base_Port));
+			}
+		}
+		return base_Port;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Port basicGetBase_Port() {
+		return base_Port;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setBase_Port(Port newBase_Port) {
+		Port oldBase_Port = base_Port;
+		base_Port = newBase_Port;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, OMSimulatorPackage.TLM_SIGNAL_DEFINITION__BASE_PORT, oldBase_Port, base_Port));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case OMSimulatorPackage.TLM_SIGNAL_DEFINITION__BASE_PORT:
+				if (resolve) return getBase_Port();
+				return basicGetBase_Port();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case OMSimulatorPackage.TLM_SIGNAL_DEFINITION__BASE_PORT:
+				setBase_Port((Port)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case OMSimulatorPackage.TLM_SIGNAL_DEFINITION__BASE_PORT:
+				setBase_Port((Port)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case OMSimulatorPackage.TLM_SIGNAL_DEFINITION__BASE_PORT:
+				return base_Port != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //TLMSignalDefinitionImpl
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/impl/TLMSignalImpl.java b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/impl/TLMSignalImpl.java
new file mode 100644
index 0000000..c9cece5
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/impl/TLMSignalImpl.java
@@ -0,0 +1,235 @@
+/**
+ * Copyright (c) 2018 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:
+ *   CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.moka.ssp.omsimulatorprofile.OMSimulatorPackage;
+import org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMSignal;
+import org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMSignalDefinition;
+
+import org.eclipse.uml2.uml.Port;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>TLM Signal</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.TLMSignalImpl#getBase_Port <em>Base Port</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.impl.TLMSignalImpl#getDefinition <em>Definition</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class TLMSignalImpl extends MinimalEObjectImpl.Container implements TLMSignal {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final String copyright = "Copyright (c) 2018 CEA LIST.\n\n All rights reserved. This program and the accompanying materials\n are made available under the terms of the Eclipse Public License v1.0\n which accompanies this distribution, and is available at\n http://www.eclipse.org/legal/epl-v10.html\n\n Contributors:\n  CEA LIST - Initial API and implementation";
+
+	/**
+	 * The cached value of the '{@link #getBase_Port() <em>Base Port</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBase_Port()
+	 * @generated
+	 * @ordered
+	 */
+	protected Port base_Port;
+
+	/**
+	 * The cached value of the '{@link #getDefinition() <em>Definition</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDefinition()
+	 * @generated
+	 * @ordered
+	 */
+	protected TLMSignalDefinition definition;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TLMSignalImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return OMSimulatorPackage.Literals.TLM_SIGNAL;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Port getBase_Port() {
+		if (base_Port != null && base_Port.eIsProxy()) {
+			InternalEObject oldBase_Port = (InternalEObject)base_Port;
+			base_Port = (Port)eResolveProxy(oldBase_Port);
+			if (base_Port != oldBase_Port) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, OMSimulatorPackage.TLM_SIGNAL__BASE_PORT, oldBase_Port, base_Port));
+			}
+		}
+		return base_Port;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Port basicGetBase_Port() {
+		return base_Port;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setBase_Port(Port newBase_Port) {
+		Port oldBase_Port = base_Port;
+		base_Port = newBase_Port;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, OMSimulatorPackage.TLM_SIGNAL__BASE_PORT, oldBase_Port, base_Port));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TLMSignalDefinition getDefinition() {
+		if (definition != null && definition.eIsProxy()) {
+			InternalEObject oldDefinition = (InternalEObject)definition;
+			definition = (TLMSignalDefinition)eResolveProxy(oldDefinition);
+			if (definition != oldDefinition) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, OMSimulatorPackage.TLM_SIGNAL__DEFINITION, oldDefinition, definition));
+			}
+		}
+		return definition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TLMSignalDefinition basicGetDefinition() {
+		return definition;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setDefinition(TLMSignalDefinition newDefinition) {
+		TLMSignalDefinition oldDefinition = definition;
+		definition = newDefinition;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, OMSimulatorPackage.TLM_SIGNAL__DEFINITION, oldDefinition, definition));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case OMSimulatorPackage.TLM_SIGNAL__BASE_PORT:
+				if (resolve) return getBase_Port();
+				return basicGetBase_Port();
+			case OMSimulatorPackage.TLM_SIGNAL__DEFINITION:
+				if (resolve) return getDefinition();
+				return basicGetDefinition();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case OMSimulatorPackage.TLM_SIGNAL__BASE_PORT:
+				setBase_Port((Port)newValue);
+				return;
+			case OMSimulatorPackage.TLM_SIGNAL__DEFINITION:
+				setDefinition((TLMSignalDefinition)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case OMSimulatorPackage.TLM_SIGNAL__BASE_PORT:
+				setBase_Port((Port)null);
+				return;
+			case OMSimulatorPackage.TLM_SIGNAL__DEFINITION:
+				setDefinition((TLMSignalDefinition)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case OMSimulatorPackage.TLM_SIGNAL__BASE_PORT:
+				return base_Port != null;
+			case OMSimulatorPackage.TLM_SIGNAL__DEFINITION:
+				return definition != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //TLMSignalImpl
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/util/OMSimulatorAdapterFactory.java b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/util/OMSimulatorAdapterFactory.java
new file mode 100644
index 0000000..705ca94
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/util/OMSimulatorAdapterFactory.java
@@ -0,0 +1,226 @@
+/**
+ * Copyright (c) 2018 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:
+ *   CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.moka.ssp.omsimulatorprofile.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.papyrus.moka.ssp.omsimulatorprofile.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.OMSimulatorPackage
+ * @generated
+ */
+public class OMSimulatorAdapterFactory extends AdapterFactoryImpl {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final String copyright = "Copyright (c) 2018 CEA LIST.\n\n All rights reserved. This program and the accompanying materials\n are made available under the terms of the Eclipse Public License v1.0\n which accompanies this distribution, and is available at\n http://www.eclipse.org/legal/epl-v10.html\n\n Contributors:\n  CEA LIST - Initial API and implementation";
+
+	/**
+	 * The cached model package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static OMSimulatorPackage modelPackage;
+
+	/**
+	 * Creates an instance of the adapter factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public OMSimulatorAdapterFactory() {
+		if (modelPackage == null) {
+			modelPackage = OMSimulatorPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Returns whether this factory is applicable for the type of the object.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+	 * <!-- end-user-doc -->
+	 * @return whether this factory is applicable for the type of the object.
+	 * @generated
+	 */
+	@Override
+	public boolean isFactoryForType(Object object) {
+		if (object == modelPackage) {
+			return true;
+		}
+		if (object instanceof EObject) {
+			return ((EObject)object).eClass().getEPackage() == modelPackage;
+		}
+		return false;
+	}
+
+	/**
+	 * The switch that delegates to the <code>createXXX</code> methods.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected OMSimulatorSwitch<Adapter> modelSwitch =
+		new OMSimulatorSwitch<Adapter>() {
+			@Override
+			public Adapter caseTLMInterfaceDefinition(TLMInterfaceDefinition object) {
+				return createTLMInterfaceDefinitionAdapter();
+			}
+			@Override
+			public Adapter caseTLMSignalDefinition(TLMSignalDefinition object) {
+				return createTLMSignalDefinitionAdapter();
+			}
+			@Override
+			public Adapter caseTLMSignal(TLMSignal object) {
+				return createTLMSignalAdapter();
+			}
+			@Override
+			public Adapter caseOMSimulatorBus(OMSimulatorBus object) {
+				return createOMSimulatorBusAdapter();
+			}
+			@Override
+			public Adapter caseBusConnectionEnd(BusConnectionEnd object) {
+				return createBusConnectionEndAdapter();
+			}
+			@Override
+			public Adapter caseTLMConnection(TLMConnection object) {
+				return createTLMConnectionAdapter();
+			}
+			@Override
+			public Adapter defaultCase(EObject object) {
+				return createEObjectAdapter();
+			}
+		};
+
+	/**
+	 * Creates an adapter for the <code>target</code>.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param target the object to adapt.
+	 * @return the adapter for the <code>target</code>.
+	 * @generated
+	 */
+	@Override
+	public Adapter createAdapter(Notifier target) {
+		return modelSwitch.doSwitch((EObject)target);
+	}
+
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMInterfaceDefinition <em>TLM Interface Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMInterfaceDefinition
+	 * @generated
+	 */
+	public Adapter createTLMInterfaceDefinitionAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMSignalDefinition <em>TLM Signal Definition</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMSignalDefinition
+	 * @generated
+	 */
+	public Adapter createTLMSignalDefinitionAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMSignal <em>TLM Signal</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMSignal
+	 * @generated
+	 */
+	public Adapter createTLMSignalAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.OMSimulatorBus <em>Bus</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.OMSimulatorBus
+	 * @generated
+	 */
+	public Adapter createOMSimulatorBusAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.BusConnectionEnd <em>Bus Connection End</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.BusConnectionEnd
+	 * @generated
+	 */
+	public Adapter createBusConnectionEndAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMConnection <em>TLM Connection</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMConnection
+	 * @generated
+	 */
+	public Adapter createTLMConnectionAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for the default case.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @generated
+	 */
+	public Adapter createEObjectAdapter() {
+		return null;
+	}
+
+} //OMSimulatorAdapterFactory
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/util/OMSimulatorSwitch.java b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/util/OMSimulatorSwitch.java
new file mode 100644
index 0000000..e3a2fe1
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/util/OMSimulatorSwitch.java
@@ -0,0 +1,231 @@
+/**
+ * Copyright (c) 2018 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:
+ *   CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.moka.ssp.omsimulatorprofile.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+import org.eclipse.papyrus.moka.ssp.omsimulatorprofile.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.moka.ssp.omsimulatorprofile.OMSimulatorPackage
+ * @generated
+ */
+public class OMSimulatorSwitch<T> extends Switch<T> {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final String copyright = "Copyright (c) 2018 CEA LIST.\n\n All rights reserved. This program and the accompanying materials\n are made available under the terms of the Eclipse Public License v1.0\n which accompanies this distribution, and is available at\n http://www.eclipse.org/legal/epl-v10.html\n\n Contributors:\n  CEA LIST - Initial API and implementation";
+
+	/**
+	 * The cached model package
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static OMSimulatorPackage modelPackage;
+
+	/**
+	 * Creates an instance of the switch.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public OMSimulatorSwitch() {
+		if (modelPackage == null) {
+			modelPackage = OMSimulatorPackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Checks whether this is a switch for the given package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param ePackage the package in question.
+	 * @return whether this is a switch for the given package.
+	 * @generated
+	 */
+	@Override
+	protected boolean isSwitchFor(EPackage ePackage) {
+		return ePackage == modelPackage;
+	}
+
+	/**
+	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the first non-null result returned by a <code>caseXXX</code> call.
+	 * @generated
+	 */
+	@Override
+	protected T doSwitch(int classifierID, EObject theEObject) {
+		switch (classifierID) {
+			case OMSimulatorPackage.TLM_INTERFACE_DEFINITION: {
+				TLMInterfaceDefinition tlmInterfaceDefinition = (TLMInterfaceDefinition)theEObject;
+				T result = caseTLMInterfaceDefinition(tlmInterfaceDefinition);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case OMSimulatorPackage.TLM_SIGNAL_DEFINITION: {
+				TLMSignalDefinition tlmSignalDefinition = (TLMSignalDefinition)theEObject;
+				T result = caseTLMSignalDefinition(tlmSignalDefinition);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case OMSimulatorPackage.TLM_SIGNAL: {
+				TLMSignal tlmSignal = (TLMSignal)theEObject;
+				T result = caseTLMSignal(tlmSignal);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case OMSimulatorPackage.OM_SIMULATOR_BUS: {
+				OMSimulatorBus omSimulatorBus = (OMSimulatorBus)theEObject;
+				T result = caseOMSimulatorBus(omSimulatorBus);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case OMSimulatorPackage.BUS_CONNECTION_END: {
+				BusConnectionEnd busConnectionEnd = (BusConnectionEnd)theEObject;
+				T result = caseBusConnectionEnd(busConnectionEnd);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case OMSimulatorPackage.TLM_CONNECTION: {
+				TLMConnection tlmConnection = (TLMConnection)theEObject;
+				T result = caseTLMConnection(tlmConnection);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			default: return defaultCase(theEObject);
+		}
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>TLM Interface Definition</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>TLM Interface Definition</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseTLMInterfaceDefinition(TLMInterfaceDefinition object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>TLM Signal Definition</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>TLM Signal Definition</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseTLMSignalDefinition(TLMSignalDefinition object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>TLM Signal</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>TLM Signal</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseTLMSignal(TLMSignal object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Bus</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Bus</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseOMSimulatorBus(OMSimulatorBus object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Bus Connection End</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Bus Connection End</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseBusConnectionEnd(BusConnectionEnd object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>TLM Connection</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>TLM Connection</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseTLMConnection(TLMConnection object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch, but this is the last case anyway.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+	 * @generated
+	 */
+	@Override
+	public T defaultCase(EObject object) {
+		return null;
+	}
+
+} //OMSimulatorSwitch
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/profile/SSPProfileFactory.java b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/profile/SSPProfileFactory.java
new file mode 100644
index 0000000..5db3593
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/profile/SSPProfileFactory.java
@@ -0,0 +1,112 @@
+/**
+ *  Copyright (c) 2018,  IncQuery Labs Ltd and 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:
+ *  IncQuery Labs Ltd - initial API and implementation
+ *  CEA List 
+ */
+package org.eclipse.papyrus.moka.ssp.profile;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.moka.ssp.profile.SSPProfilePackage
+ * @generated
+ */
+public interface SSPProfileFactory extends EFactory {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String copyright = " Copyright (c) 2018,  IncQuery Labs Ltd and CEA List.\n All rights reserved. This program and the accompanying materials\nare made available under the terms of the Eclipse Public License v1.0\nwhich accompanies this distribution, and is available at\nhttp://www.eclipse.org/legal/epl-v10.html\n \nContributors:\n IncQuery Labs Ltd - initial API and implementation\n CEA List ";
+
+	/**
+	 * The singleton instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	SSPProfileFactory eINSTANCE = org.eclipse.papyrus.moka.ssp.profile.impl.SSPProfileFactoryImpl.init();
+
+	/**
+	 * Returns a new object of class '<em>Ssd Connection</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Ssd Connection</em>'.
+	 * @generated
+	 */
+	SsdConnection createSsdConnection();
+
+	/**
+	 * Returns a new object of class '<em>Ssd Connector</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Ssd Connector</em>'.
+	 * @generated
+	 */
+	SsdConnector createSsdConnector();
+
+	/**
+	 * Returns a new object of class '<em>Ssd System</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Ssd System</em>'.
+	 * @generated
+	 */
+	SsdSystem createSsdSystem();
+
+	/**
+	 * Returns a new object of class '<em>Ssd Signal Dictionary Reference</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Ssd Signal Dictionary Reference</em>'.
+	 * @generated
+	 */
+	SsdSignalDictionaryReference createSsdSignalDictionaryReference();
+
+	/**
+	 * Returns a new object of class '<em>Ssd Component</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Ssd Component</em>'.
+	 * @generated
+	 */
+	SsdComponent createSsdComponent();
+
+	/**
+	 * Returns a new object of class '<em>Ssd</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Ssd</em>'.
+	 * @generated
+	 */
+	Ssd createSsd();
+
+	/**
+	 * Returns a new object of class '<em>Ssd Connector And Fmi Port</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Ssd Connector And Fmi Port</em>'.
+	 * @generated
+	 */
+	SsdConnectorAndFmiPort createSsdConnectorAndFmiPort();
+
+	/**
+	 * Returns the package supported by this factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the package supported by this factory.
+	 * @generated
+	 */
+	SSPProfilePackage getSSPProfilePackage();
+
+} //SSPProfileFactory
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/profile/SSPProfilePackage.java b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/profile/SSPProfilePackage.java
new file mode 100644
index 0000000..f44fb53
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/profile/SSPProfilePackage.java
@@ -0,0 +1,1104 @@
+/**
+ *  Copyright (c) 2018,  IncQuery Labs Ltd and 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:
+ *  IncQuery Labs Ltd - initial API and implementation
+ *  CEA List 
+ */
+package org.eclipse.papyrus.moka.ssp.profile;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+import org.eclipse.papyrus.moka.fmi.fmiprofile.FMIProfilePackage;
+
+import org.eclipse.papyrus.sysml14.deprecatedelements.DeprecatedelementsPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ *   <li>each class,</li>
+ *   <li>each feature of each class,</li>
+ *   <li>each enum,</li>
+ *   <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.moka.ssp.profile.SSPProfileFactory
+ * @model kind="package"
+ *        annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='SSPProfile'"
+ * @generated
+ */
+public interface SSPProfilePackage extends EPackage {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String copyright = " Copyright (c) 2018,  IncQuery Labs Ltd and CEA List.\n All rights reserved. This program and the accompanying materials\nare made available under the terms of the Eclipse Public License v1.0\nwhich accompanies this distribution, and is available at\nhttp://www.eclipse.org/legal/epl-v10.html\n \nContributors:\n IncQuery Labs Ltd - initial API and implementation\n CEA List ";
+
+	/**
+	 * The package name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNAME = "profile";
+
+	/**
+	 * The package namespace URI.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_URI = "http://org.eclipse.papyrus.moka.ssp.profile/SSPProfile";
+
+	/**
+	 * The package namespace name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String eNS_PREFIX = "SSPProfile";
+
+	/**
+	 * The singleton instance of the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	SSPProfilePackage eINSTANCE = org.eclipse.papyrus.moka.ssp.profile.impl.SSPProfilePackageImpl.init();
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.moka.ssp.profile.impl.SsdConnectionImpl <em>Ssd Connection</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.papyrus.moka.ssp.profile.impl.SsdConnectionImpl
+	 * @see org.eclipse.papyrus.moka.ssp.profile.impl.SSPProfilePackageImpl#getSsdConnection()
+	 * @generated
+	 */
+	int SSD_CONNECTION = 0;
+
+	/**
+	 * The feature id for the '<em><b>Base Connector</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SSD_CONNECTION__BASE_CONNECTOR = 0;
+
+	/**
+	 * The feature id for the '<em><b>Start</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SSD_CONNECTION__START = 1;
+
+	/**
+	 * The feature id for the '<em><b>End</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SSD_CONNECTION__END = 2;
+
+	/**
+	 * The feature id for the '<em><b>Start Ssd Property</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SSD_CONNECTION__START_SSD_PROPERTY = 3;
+
+	/**
+	 * The feature id for the '<em><b>End Ssd Property</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SSD_CONNECTION__END_SSD_PROPERTY = 4;
+
+	/**
+	 * The number of structural features of the '<em>Ssd Connection</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SSD_CONNECTION_FEATURE_COUNT = 5;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.moka.ssp.profile.impl.SsdConnectorImpl <em>Ssd Connector</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.papyrus.moka.ssp.profile.impl.SsdConnectorImpl
+	 * @see org.eclipse.papyrus.moka.ssp.profile.impl.SSPProfilePackageImpl#getSsdConnector()
+	 * @generated
+	 */
+	int SSD_CONNECTOR = 1;
+
+	/**
+	 * The feature id for the '<em><b>Base Port</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SSD_CONNECTOR__BASE_PORT = DeprecatedelementsPackage.FLOW_PORT__BASE_PORT;
+
+	/**
+	 * The feature id for the '<em><b>Direction</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SSD_CONNECTOR__DIRECTION = DeprecatedelementsPackage.FLOW_PORT__DIRECTION;
+
+	/**
+	 * The feature id for the '<em><b>Is Atomic</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SSD_CONNECTOR__IS_ATOMIC = DeprecatedelementsPackage.FLOW_PORT__IS_ATOMIC;
+
+	/**
+	 * The feature id for the '<em><b>SSD Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SSD_CONNECTOR__SSD_DESCRIPTION = DeprecatedelementsPackage.FLOW_PORT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Type Kind</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SSD_CONNECTOR__TYPE_KIND = DeprecatedelementsPackage.FLOW_PORT_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of structural features of the '<em>Ssd Connector</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SSD_CONNECTOR_FEATURE_COUNT = DeprecatedelementsPackage.FLOW_PORT_FEATURE_COUNT + 2;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.moka.ssp.profile.impl.SsdElementImpl <em>Ssd Element</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.papyrus.moka.ssp.profile.impl.SsdElementImpl
+	 * @see org.eclipse.papyrus.moka.ssp.profile.impl.SSPProfilePackageImpl#getSsdElement()
+	 * @generated
+	 */
+	int SSD_ELEMENT = 2;
+
+	/**
+	 * The feature id for the '<em><b>ID</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SSD_ELEMENT__ID = 0;
+
+	/**
+	 * The number of structural features of the '<em>Ssd Element</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SSD_ELEMENT_FEATURE_COUNT = 1;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.moka.ssp.profile.impl.SsdSystemImpl <em>Ssd System</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.papyrus.moka.ssp.profile.impl.SsdSystemImpl
+	 * @see org.eclipse.papyrus.moka.ssp.profile.impl.SSPProfilePackageImpl#getSsdSystem()
+	 * @generated
+	 */
+	int SSD_SYSTEM = 3;
+
+	/**
+	 * The feature id for the '<em><b>ID</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SSD_SYSTEM__ID = SSD_ELEMENT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Base Class</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SSD_SYSTEM__BASE_CLASS = SSD_ELEMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Ssd System</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SSD_SYSTEM_FEATURE_COUNT = SSD_ELEMENT_FEATURE_COUNT + 1;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.moka.ssp.profile.impl.SsdSignalDictionaryReferenceImpl <em>Ssd Signal Dictionary Reference</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.papyrus.moka.ssp.profile.impl.SsdSignalDictionaryReferenceImpl
+	 * @see org.eclipse.papyrus.moka.ssp.profile.impl.SSPProfilePackageImpl#getSsdSignalDictionaryReference()
+	 * @generated
+	 */
+	int SSD_SIGNAL_DICTIONARY_REFERENCE = 4;
+
+	/**
+	 * The feature id for the '<em><b>ID</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SSD_SIGNAL_DICTIONARY_REFERENCE__ID = SSD_ELEMENT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Base Class</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SSD_SIGNAL_DICTIONARY_REFERENCE__BASE_CLASS = SSD_ELEMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Ssd Signal Dictionary Reference</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SSD_SIGNAL_DICTIONARY_REFERENCE_FEATURE_COUNT = SSD_ELEMENT_FEATURE_COUNT + 1;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.moka.ssp.profile.impl.SsdComponentImpl <em>Ssd Component</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.papyrus.moka.ssp.profile.impl.SsdComponentImpl
+	 * @see org.eclipse.papyrus.moka.ssp.profile.impl.SSPProfilePackageImpl#getSsdComponent()
+	 * @generated
+	 */
+	int SSD_COMPONENT = 5;
+
+	/**
+	 * The feature id for the '<em><b>ID</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SSD_COMPONENT__ID = SSD_ELEMENT__ID;
+
+	/**
+	 * The feature id for the '<em><b>Source</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SSD_COMPONENT__SOURCE = SSD_ELEMENT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SSD_COMPONENT__TYPE = SSD_ELEMENT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Fmu</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SSD_COMPONENT__FMU = SSD_ELEMENT_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Base Property</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SSD_COMPONENT__BASE_PROPERTY = SSD_ELEMENT_FEATURE_COUNT + 3;
+
+	/**
+	 * The number of structural features of the '<em>Ssd Component</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SSD_COMPONENT_FEATURE_COUNT = SSD_ELEMENT_FEATURE_COUNT + 4;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.moka.ssp.profile.impl.SsdImpl <em>Ssd</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.papyrus.moka.ssp.profile.impl.SsdImpl
+	 * @see org.eclipse.papyrus.moka.ssp.profile.impl.SSPProfilePackageImpl#getSsd()
+	 * @generated
+	 */
+	int SSD = 6;
+
+	/**
+	 * The feature id for the '<em><b>Base Package</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SSD__BASE_PACKAGE = 0;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SSD__NAME = 1;
+
+	/**
+	 * The feature id for the '<em><b>Version</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SSD__VERSION = 2;
+
+	/**
+	 * The feature id for the '<em><b>Main System</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SSD__MAIN_SYSTEM = 3;
+
+	/**
+	 * The number of structural features of the '<em>Ssd</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SSD_FEATURE_COUNT = 4;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.moka.ssp.profile.impl.SsdConnectorAndFmiPortImpl <em>Ssd Connector And Fmi Port</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.papyrus.moka.ssp.profile.impl.SsdConnectorAndFmiPortImpl
+	 * @see org.eclipse.papyrus.moka.ssp.profile.impl.SSPProfilePackageImpl#getSsdConnectorAndFmiPort()
+	 * @generated
+	 */
+	int SSD_CONNECTOR_AND_FMI_PORT = 7;
+
+	/**
+	 * The feature id for the '<em><b>Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SSD_CONNECTOR_AND_FMI_PORT__DESCRIPTION = FMIProfilePackage.FMI_PORT__DESCRIPTION;
+
+	/**
+	 * The feature id for the '<em><b>Variability</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SSD_CONNECTOR_AND_FMI_PORT__VARIABILITY = FMIProfilePackage.FMI_PORT__VARIABILITY;
+
+	/**
+	 * The feature id for the '<em><b>Initial</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SSD_CONNECTOR_AND_FMI_PORT__INITIAL = FMIProfilePackage.FMI_PORT__INITIAL;
+
+	/**
+	 * The feature id for the '<em><b>Value Reference</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SSD_CONNECTOR_AND_FMI_PORT__VALUE_REFERENCE = FMIProfilePackage.FMI_PORT__VALUE_REFERENCE;
+
+	/**
+	 * The feature id for the '<em><b>Fmi Variable</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SSD_CONNECTOR_AND_FMI_PORT__FMI_VARIABLE = FMIProfilePackage.FMI_PORT__FMI_VARIABLE;
+
+	/**
+	 * The feature id for the '<em><b>Causality Kind</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SSD_CONNECTOR_AND_FMI_PORT__CAUSALITY_KIND = FMIProfilePackage.FMI_PORT__CAUSALITY_KIND;
+
+	/**
+	 * The feature id for the '<em><b>Base Port</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SSD_CONNECTOR_AND_FMI_PORT__BASE_PORT = FMIProfilePackage.FMI_PORT__BASE_PORT;
+
+	/**
+	 * The feature id for the '<em><b>Direction</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SSD_CONNECTOR_AND_FMI_PORT__DIRECTION = FMIProfilePackage.FMI_PORT__DIRECTION;
+
+	/**
+	 * The feature id for the '<em><b>Is Atomic</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SSD_CONNECTOR_AND_FMI_PORT__IS_ATOMIC = FMIProfilePackage.FMI_PORT__IS_ATOMIC;
+
+	/**
+	 * The feature id for the '<em><b>SSD Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SSD_CONNECTOR_AND_FMI_PORT__SSD_DESCRIPTION = FMIProfilePackage.FMI_PORT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Type Kind</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SSD_CONNECTOR_AND_FMI_PORT__TYPE_KIND = FMIProfilePackage.FMI_PORT_FEATURE_COUNT + 1;
+
+	/**
+	 * The number of structural features of the '<em>Ssd Connector And Fmi Port</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SSD_CONNECTOR_AND_FMI_PORT_FEATURE_COUNT = FMIProfilePackage.FMI_PORT_FEATURE_COUNT + 2;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.papyrus.moka.ssp.profile.TypeKind <em>Type Kind</em>}' enum.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.papyrus.moka.ssp.profile.TypeKind
+	 * @see org.eclipse.papyrus.moka.ssp.profile.impl.SSPProfilePackageImpl#getTypeKind()
+	 * @generated
+	 */
+	int TYPE_KIND = 8;
+
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.moka.ssp.profile.SsdConnection <em>Ssd Connection</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Ssd Connection</em>'.
+	 * @see org.eclipse.papyrus.moka.ssp.profile.SsdConnection
+	 * @generated
+	 */
+	EClass getSsdConnection();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.moka.ssp.profile.SsdConnection#getBase_Connector <em>Base Connector</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Base Connector</em>'.
+	 * @see org.eclipse.papyrus.moka.ssp.profile.SsdConnection#getBase_Connector()
+	 * @see #getSsdConnection()
+	 * @generated
+	 */
+	EReference getSsdConnection_Base_Connector();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.moka.ssp.profile.SsdConnection#getStart <em>Start</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Start</em>'.
+	 * @see org.eclipse.papyrus.moka.ssp.profile.SsdConnection#getStart()
+	 * @see #getSsdConnection()
+	 * @generated
+	 */
+	EReference getSsdConnection_Start();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.moka.ssp.profile.SsdConnection#getEnd <em>End</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>End</em>'.
+	 * @see org.eclipse.papyrus.moka.ssp.profile.SsdConnection#getEnd()
+	 * @see #getSsdConnection()
+	 * @generated
+	 */
+	EReference getSsdConnection_End();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.moka.ssp.profile.SsdConnection#getStartSsdProperty <em>Start Ssd Property</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Start Ssd Property</em>'.
+	 * @see org.eclipse.papyrus.moka.ssp.profile.SsdConnection#getStartSsdProperty()
+	 * @see #getSsdConnection()
+	 * @generated
+	 */
+	EReference getSsdConnection_StartSsdProperty();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.moka.ssp.profile.SsdConnection#getEndSsdProperty <em>End Ssd Property</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>End Ssd Property</em>'.
+	 * @see org.eclipse.papyrus.moka.ssp.profile.SsdConnection#getEndSsdProperty()
+	 * @see #getSsdConnection()
+	 * @generated
+	 */
+	EReference getSsdConnection_EndSsdProperty();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.moka.ssp.profile.SsdConnector <em>Ssd Connector</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Ssd Connector</em>'.
+	 * @see org.eclipse.papyrus.moka.ssp.profile.SsdConnector
+	 * @generated
+	 */
+	EClass getSsdConnector();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.papyrus.moka.ssp.profile.SsdConnector#getSSDDescription <em>SSD Description</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>SSD Description</em>'.
+	 * @see org.eclipse.papyrus.moka.ssp.profile.SsdConnector#getSSDDescription()
+	 * @see #getSsdConnector()
+	 * @generated
+	 */
+	EAttribute getSsdConnector_SSDDescription();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.papyrus.moka.ssp.profile.SsdConnector#getTypeKind <em>Type Kind</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Type Kind</em>'.
+	 * @see org.eclipse.papyrus.moka.ssp.profile.SsdConnector#getTypeKind()
+	 * @see #getSsdConnector()
+	 * @generated
+	 */
+	EAttribute getSsdConnector_TypeKind();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.moka.ssp.profile.SsdElement <em>Ssd Element</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Ssd Element</em>'.
+	 * @see org.eclipse.papyrus.moka.ssp.profile.SsdElement
+	 * @generated
+	 */
+	EClass getSsdElement();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.papyrus.moka.ssp.profile.SsdElement#getID <em>ID</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>ID</em>'.
+	 * @see org.eclipse.papyrus.moka.ssp.profile.SsdElement#getID()
+	 * @see #getSsdElement()
+	 * @generated
+	 */
+	EAttribute getSsdElement_ID();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.moka.ssp.profile.SsdSystem <em>Ssd System</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Ssd System</em>'.
+	 * @see org.eclipse.papyrus.moka.ssp.profile.SsdSystem
+	 * @generated
+	 */
+	EClass getSsdSystem();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.moka.ssp.profile.SsdSystem#getBase_Class <em>Base Class</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Base Class</em>'.
+	 * @see org.eclipse.papyrus.moka.ssp.profile.SsdSystem#getBase_Class()
+	 * @see #getSsdSystem()
+	 * @generated
+	 */
+	EReference getSsdSystem_Base_Class();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.moka.ssp.profile.SsdSignalDictionaryReference <em>Ssd Signal Dictionary Reference</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Ssd Signal Dictionary Reference</em>'.
+	 * @see org.eclipse.papyrus.moka.ssp.profile.SsdSignalDictionaryReference
+	 * @generated
+	 */
+	EClass getSsdSignalDictionaryReference();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.moka.ssp.profile.SsdSignalDictionaryReference#getBase_Class <em>Base Class</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Base Class</em>'.
+	 * @see org.eclipse.papyrus.moka.ssp.profile.SsdSignalDictionaryReference#getBase_Class()
+	 * @see #getSsdSignalDictionaryReference()
+	 * @generated
+	 */
+	EReference getSsdSignalDictionaryReference_Base_Class();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.moka.ssp.profile.SsdComponent <em>Ssd Component</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Ssd Component</em>'.
+	 * @see org.eclipse.papyrus.moka.ssp.profile.SsdComponent
+	 * @generated
+	 */
+	EClass getSsdComponent();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.papyrus.moka.ssp.profile.SsdComponent#getSource <em>Source</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Source</em>'.
+	 * @see org.eclipse.papyrus.moka.ssp.profile.SsdComponent#getSource()
+	 * @see #getSsdComponent()
+	 * @generated
+	 */
+	EAttribute getSsdComponent_Source();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.papyrus.moka.ssp.profile.SsdComponent#getType <em>Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Type</em>'.
+	 * @see org.eclipse.papyrus.moka.ssp.profile.SsdComponent#getType()
+	 * @see #getSsdComponent()
+	 * @generated
+	 */
+	EAttribute getSsdComponent_Type();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.moka.ssp.profile.SsdComponent#getFmu <em>Fmu</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Fmu</em>'.
+	 * @see org.eclipse.papyrus.moka.ssp.profile.SsdComponent#getFmu()
+	 * @see #getSsdComponent()
+	 * @generated
+	 */
+	EReference getSsdComponent_Fmu();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.moka.ssp.profile.SsdComponent#getBase_Property <em>Base Property</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Base Property</em>'.
+	 * @see org.eclipse.papyrus.moka.ssp.profile.SsdComponent#getBase_Property()
+	 * @see #getSsdComponent()
+	 * @generated
+	 */
+	EReference getSsdComponent_Base_Property();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.moka.ssp.profile.Ssd <em>Ssd</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Ssd</em>'.
+	 * @see org.eclipse.papyrus.moka.ssp.profile.Ssd
+	 * @generated
+	 */
+	EClass getSsd();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.moka.ssp.profile.Ssd#getBase_Package <em>Base Package</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Base Package</em>'.
+	 * @see org.eclipse.papyrus.moka.ssp.profile.Ssd#getBase_Package()
+	 * @see #getSsd()
+	 * @generated
+	 */
+	EReference getSsd_Base_Package();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.papyrus.moka.ssp.profile.Ssd#getName <em>Name</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Name</em>'.
+	 * @see org.eclipse.papyrus.moka.ssp.profile.Ssd#getName()
+	 * @see #getSsd()
+	 * @generated
+	 */
+	EAttribute getSsd_Name();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.papyrus.moka.ssp.profile.Ssd#getVersion <em>Version</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Version</em>'.
+	 * @see org.eclipse.papyrus.moka.ssp.profile.Ssd#getVersion()
+	 * @see #getSsd()
+	 * @generated
+	 */
+	EAttribute getSsd_Version();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.papyrus.moka.ssp.profile.Ssd#getMainSystem <em>Main System</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Main System</em>'.
+	 * @see org.eclipse.papyrus.moka.ssp.profile.Ssd#getMainSystem()
+	 * @see #getSsd()
+	 * @generated
+	 */
+	EReference getSsd_MainSystem();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.papyrus.moka.ssp.profile.SsdConnectorAndFmiPort <em>Ssd Connector And Fmi Port</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Ssd Connector And Fmi Port</em>'.
+	 * @see org.eclipse.papyrus.moka.ssp.profile.SsdConnectorAndFmiPort
+	 * @generated
+	 */
+	EClass getSsdConnectorAndFmiPort();
+
+	/**
+	 * Returns the meta object for enum '{@link org.eclipse.papyrus.moka.ssp.profile.TypeKind <em>Type Kind</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for enum '<em>Type Kind</em>'.
+	 * @see org.eclipse.papyrus.moka.ssp.profile.TypeKind
+	 * @generated
+	 */
+	EEnum getTypeKind();
+
+	/**
+	 * Returns the factory that creates the instances of the model.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the factory that creates the instances of the model.
+	 * @generated
+	 */
+	SSPProfileFactory getSSPProfileFactory();
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * Defines literals for the meta objects that represent
+	 * <ul>
+	 *   <li>each class,</li>
+	 *   <li>each feature of each class,</li>
+	 *   <li>each enum,</li>
+	 *   <li>and each data type</li>
+	 * </ul>
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	interface Literals {
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.moka.ssp.profile.impl.SsdConnectionImpl <em>Ssd Connection</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.papyrus.moka.ssp.profile.impl.SsdConnectionImpl
+		 * @see org.eclipse.papyrus.moka.ssp.profile.impl.SSPProfilePackageImpl#getSsdConnection()
+		 * @generated
+		 */
+		EClass SSD_CONNECTION = eINSTANCE.getSsdConnection();
+
+		/**
+		 * The meta object literal for the '<em><b>Base Connector</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference SSD_CONNECTION__BASE_CONNECTOR = eINSTANCE.getSsdConnection_Base_Connector();
+
+		/**
+		 * The meta object literal for the '<em><b>Start</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference SSD_CONNECTION__START = eINSTANCE.getSsdConnection_Start();
+
+		/**
+		 * The meta object literal for the '<em><b>End</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference SSD_CONNECTION__END = eINSTANCE.getSsdConnection_End();
+
+		/**
+		 * The meta object literal for the '<em><b>Start Ssd Property</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference SSD_CONNECTION__START_SSD_PROPERTY = eINSTANCE.getSsdConnection_StartSsdProperty();
+
+		/**
+		 * The meta object literal for the '<em><b>End Ssd Property</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference SSD_CONNECTION__END_SSD_PROPERTY = eINSTANCE.getSsdConnection_EndSsdProperty();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.moka.ssp.profile.impl.SsdConnectorImpl <em>Ssd Connector</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.papyrus.moka.ssp.profile.impl.SsdConnectorImpl
+		 * @see org.eclipse.papyrus.moka.ssp.profile.impl.SSPProfilePackageImpl#getSsdConnector()
+		 * @generated
+		 */
+		EClass SSD_CONNECTOR = eINSTANCE.getSsdConnector();
+
+		/**
+		 * The meta object literal for the '<em><b>SSD Description</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute SSD_CONNECTOR__SSD_DESCRIPTION = eINSTANCE.getSsdConnector_SSDDescription();
+
+		/**
+		 * The meta object literal for the '<em><b>Type Kind</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute SSD_CONNECTOR__TYPE_KIND = eINSTANCE.getSsdConnector_TypeKind();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.moka.ssp.profile.impl.SsdElementImpl <em>Ssd Element</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.papyrus.moka.ssp.profile.impl.SsdElementImpl
+		 * @see org.eclipse.papyrus.moka.ssp.profile.impl.SSPProfilePackageImpl#getSsdElement()
+		 * @generated
+		 */
+		EClass SSD_ELEMENT = eINSTANCE.getSsdElement();
+
+		/**
+		 * The meta object literal for the '<em><b>ID</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute SSD_ELEMENT__ID = eINSTANCE.getSsdElement_ID();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.moka.ssp.profile.impl.SsdSystemImpl <em>Ssd System</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.papyrus.moka.ssp.profile.impl.SsdSystemImpl
+		 * @see org.eclipse.papyrus.moka.ssp.profile.impl.SSPProfilePackageImpl#getSsdSystem()
+		 * @generated
+		 */
+		EClass SSD_SYSTEM = eINSTANCE.getSsdSystem();
+
+		/**
+		 * The meta object literal for the '<em><b>Base Class</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference SSD_SYSTEM__BASE_CLASS = eINSTANCE.getSsdSystem_Base_Class();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.moka.ssp.profile.impl.SsdSignalDictionaryReferenceImpl <em>Ssd Signal Dictionary Reference</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.papyrus.moka.ssp.profile.impl.SsdSignalDictionaryReferenceImpl
+		 * @see org.eclipse.papyrus.moka.ssp.profile.impl.SSPProfilePackageImpl#getSsdSignalDictionaryReference()
+		 * @generated
+		 */
+		EClass SSD_SIGNAL_DICTIONARY_REFERENCE = eINSTANCE.getSsdSignalDictionaryReference();
+
+		/**
+		 * The meta object literal for the '<em><b>Base Class</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference SSD_SIGNAL_DICTIONARY_REFERENCE__BASE_CLASS = eINSTANCE.getSsdSignalDictionaryReference_Base_Class();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.moka.ssp.profile.impl.SsdComponentImpl <em>Ssd Component</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.papyrus.moka.ssp.profile.impl.SsdComponentImpl
+		 * @see org.eclipse.papyrus.moka.ssp.profile.impl.SSPProfilePackageImpl#getSsdComponent()
+		 * @generated
+		 */
+		EClass SSD_COMPONENT = eINSTANCE.getSsdComponent();
+
+		/**
+		 * The meta object literal for the '<em><b>Source</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute SSD_COMPONENT__SOURCE = eINSTANCE.getSsdComponent_Source();
+
+		/**
+		 * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute SSD_COMPONENT__TYPE = eINSTANCE.getSsdComponent_Type();
+
+		/**
+		 * The meta object literal for the '<em><b>Fmu</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference SSD_COMPONENT__FMU = eINSTANCE.getSsdComponent_Fmu();
+
+		/**
+		 * The meta object literal for the '<em><b>Base Property</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference SSD_COMPONENT__BASE_PROPERTY = eINSTANCE.getSsdComponent_Base_Property();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.moka.ssp.profile.impl.SsdImpl <em>Ssd</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.papyrus.moka.ssp.profile.impl.SsdImpl
+		 * @see org.eclipse.papyrus.moka.ssp.profile.impl.SSPProfilePackageImpl#getSsd()
+		 * @generated
+		 */
+		EClass SSD = eINSTANCE.getSsd();
+
+		/**
+		 * The meta object literal for the '<em><b>Base Package</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference SSD__BASE_PACKAGE = eINSTANCE.getSsd_Base_Package();
+
+		/**
+		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute SSD__NAME = eINSTANCE.getSsd_Name();
+
+		/**
+		 * The meta object literal for the '<em><b>Version</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EAttribute SSD__VERSION = eINSTANCE.getSsd_Version();
+
+		/**
+		 * The meta object literal for the '<em><b>Main System</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference SSD__MAIN_SYSTEM = eINSTANCE.getSsd_MainSystem();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.moka.ssp.profile.impl.SsdConnectorAndFmiPortImpl <em>Ssd Connector And Fmi Port</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.papyrus.moka.ssp.profile.impl.SsdConnectorAndFmiPortImpl
+		 * @see org.eclipse.papyrus.moka.ssp.profile.impl.SSPProfilePackageImpl#getSsdConnectorAndFmiPort()
+		 * @generated
+		 */
+		EClass SSD_CONNECTOR_AND_FMI_PORT = eINSTANCE.getSsdConnectorAndFmiPort();
+
+		/**
+		 * The meta object literal for the '{@link org.eclipse.papyrus.moka.ssp.profile.TypeKind <em>Type Kind</em>}' enum.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.papyrus.moka.ssp.profile.TypeKind
+		 * @see org.eclipse.papyrus.moka.ssp.profile.impl.SSPProfilePackageImpl#getTypeKind()
+		 * @generated
+		 */
+		EEnum TYPE_KIND = eINSTANCE.getTypeKind();
+
+	}
+
+} //SSPProfilePackage
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/profile/Ssd.java b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/profile/Ssd.java
new file mode 100644
index 0000000..4d8f3c3
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/profile/Ssd.java
@@ -0,0 +1,147 @@
+/**
+ *  Copyright (c) 2018,  IncQuery Labs Ltd and 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:
+ *  IncQuery Labs Ltd - initial API and implementation
+ *  CEA List 
+ */
+package org.eclipse.papyrus.moka.ssp.profile;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Ssd</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.profile.Ssd#getBase_Package <em>Base Package</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.profile.Ssd#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.profile.Ssd#getVersion <em>Version</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.profile.Ssd#getMainSystem <em>Main System</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.moka.ssp.profile.SSPProfilePackage#getSsd()
+ * @model
+ * @generated
+ */
+public interface Ssd extends EObject {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String copyright = " Copyright (c) 2018,  IncQuery Labs Ltd and CEA List.\n All rights reserved. This program and the accompanying materials\nare made available under the terms of the Eclipse Public License v1.0\nwhich accompanies this distribution, and is available at\nhttp://www.eclipse.org/legal/epl-v10.html\n \nContributors:\n IncQuery Labs Ltd - initial API and implementation\n CEA List ";
+
+	/**
+	 * Returns the value of the '<em><b>Base Package</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Base Package</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Base Package</em>' reference.
+	 * @see #setBase_Package(org.eclipse.uml2.uml.Package)
+	 * @see org.eclipse.papyrus.moka.ssp.profile.SSPProfilePackage#getSsd_Base_Package()
+	 * @model required="true" ordered="false"
+	 * @generated
+	 */
+	org.eclipse.uml2.uml.Package getBase_Package();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.moka.ssp.profile.Ssd#getBase_Package <em>Base Package</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Base Package</em>' reference.
+	 * @see #getBase_Package()
+	 * @generated
+	 */
+	void setBase_Package(org.eclipse.uml2.uml.Package value);
+
+	/**
+	 * Returns the value of the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Name</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Name</em>' attribute.
+	 * @see #setName(String)
+	 * @see org.eclipse.papyrus.moka.ssp.profile.SSPProfilePackage#getSsd_Name()
+	 * @model required="true" ordered="false"
+	 * @generated
+	 */
+	String getName();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.moka.ssp.profile.Ssd#getName <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Name</em>' attribute.
+	 * @see #getName()
+	 * @generated
+	 */
+	void setName(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Version</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Version</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Version</em>' attribute.
+	 * @see #setVersion(String)
+	 * @see org.eclipse.papyrus.moka.ssp.profile.SSPProfilePackage#getSsd_Version()
+	 * @model required="true" ordered="false"
+	 * @generated
+	 */
+	String getVersion();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.moka.ssp.profile.Ssd#getVersion <em>Version</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Version</em>' attribute.
+	 * @see #getVersion()
+	 * @generated
+	 */
+	void setVersion(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Main System</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Main System</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Main System</em>' reference.
+	 * @see #setMainSystem(SsdSystem)
+	 * @see org.eclipse.papyrus.moka.ssp.profile.SSPProfilePackage#getSsd_MainSystem()
+	 * @model required="true" ordered="false"
+	 * @generated
+	 */
+	SsdSystem getMainSystem();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.moka.ssp.profile.Ssd#getMainSystem <em>Main System</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Main System</em>' reference.
+	 * @see #getMainSystem()
+	 * @generated
+	 */
+	void setMainSystem(SsdSystem value);
+
+} // Ssd
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/profile/SsdComponent.java b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/profile/SsdComponent.java
new file mode 100644
index 0000000..eff6284
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/profile/SsdComponent.java
@@ -0,0 +1,149 @@
+/**
+ *  Copyright (c) 2018,  IncQuery Labs Ltd and 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:
+ *  IncQuery Labs Ltd - initial API and implementation
+ *  CEA List 
+ */
+package org.eclipse.papyrus.moka.ssp.profile;
+
+import org.eclipse.papyrus.moka.fmi.fmiprofile.FMU;
+
+import org.eclipse.uml2.uml.Property;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Ssd Component</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.profile.SsdComponent#getSource <em>Source</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.profile.SsdComponent#getType <em>Type</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.profile.SsdComponent#getFmu <em>Fmu</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.profile.SsdComponent#getBase_Property <em>Base Property</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.moka.ssp.profile.SSPProfilePackage#getSsdComponent()
+ * @model
+ * @generated
+ */
+public interface SsdComponent extends SsdElement {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String copyright = " Copyright (c) 2018,  IncQuery Labs Ltd and CEA List.\n All rights reserved. This program and the accompanying materials\nare made available under the terms of the Eclipse Public License v1.0\nwhich accompanies this distribution, and is available at\nhttp://www.eclipse.org/legal/epl-v10.html\n \nContributors:\n IncQuery Labs Ltd - initial API and implementation\n CEA List ";
+
+	/**
+	 * Returns the value of the '<em><b>Source</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Source</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Source</em>' attribute.
+	 * @see #setSource(String)
+	 * @see org.eclipse.papyrus.moka.ssp.profile.SSPProfilePackage#getSsdComponent_Source()
+	 * @model required="true" ordered="false"
+	 * @generated
+	 */
+	String getSource();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.moka.ssp.profile.SsdComponent#getSource <em>Source</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Source</em>' attribute.
+	 * @see #getSource()
+	 * @generated
+	 */
+	void setSource(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Type</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Type</em>' attribute.
+	 * @see #setType(String)
+	 * @see org.eclipse.papyrus.moka.ssp.profile.SSPProfilePackage#getSsdComponent_Type()
+	 * @model required="true" ordered="false"
+	 * @generated
+	 */
+	String getType();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.moka.ssp.profile.SsdComponent#getType <em>Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Type</em>' attribute.
+	 * @see #getType()
+	 * @generated
+	 */
+	void setType(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Fmu</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Fmu</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Fmu</em>' reference.
+	 * @see #setFmu(FMU)
+	 * @see org.eclipse.papyrus.moka.ssp.profile.SSPProfilePackage#getSsdComponent_Fmu()
+	 * @model ordered="false"
+	 * @generated
+	 */
+	FMU getFmu();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.moka.ssp.profile.SsdComponent#getFmu <em>Fmu</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Fmu</em>' reference.
+	 * @see #getFmu()
+	 * @generated
+	 */
+	void setFmu(FMU value);
+
+	/**
+	 * Returns the value of the '<em><b>Base Property</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Base Property</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Base Property</em>' reference.
+	 * @see #setBase_Property(Property)
+	 * @see org.eclipse.papyrus.moka.ssp.profile.SSPProfilePackage#getSsdComponent_Base_Property()
+	 * @model required="true" ordered="false"
+	 * @generated
+	 */
+	Property getBase_Property();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.moka.ssp.profile.SsdComponent#getBase_Property <em>Base Property</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Base Property</em>' reference.
+	 * @see #getBase_Property()
+	 * @generated
+	 */
+	void setBase_Property(Property value);
+
+} // SsdComponent
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/profile/SsdConnection.java b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/profile/SsdConnection.java
new file mode 100644
index 0000000..bd0d26d
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/profile/SsdConnection.java
@@ -0,0 +1,133 @@
+/**
+ *  Copyright (c) 2018,  IncQuery Labs Ltd and 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:
+ *  IncQuery Labs Ltd - initial API and implementation
+ *  CEA List 
+ */
+package org.eclipse.papyrus.moka.ssp.profile;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.uml2.uml.Connector;
+import org.eclipse.uml2.uml.Property;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Ssd Connection</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.profile.SsdConnection#getBase_Connector <em>Base Connector</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.profile.SsdConnection#getStart <em>Start</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.profile.SsdConnection#getEnd <em>End</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.profile.SsdConnection#getStartSsdProperty <em>Start Ssd Property</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.profile.SsdConnection#getEndSsdProperty <em>End Ssd Property</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.moka.ssp.profile.SSPProfilePackage#getSsdConnection()
+ * @model
+ * @generated
+ */
+public interface SsdConnection extends EObject {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String copyright = " Copyright (c) 2018,  IncQuery Labs Ltd and CEA List.\n All rights reserved. This program and the accompanying materials\nare made available under the terms of the Eclipse Public License v1.0\nwhich accompanies this distribution, and is available at\nhttp://www.eclipse.org/legal/epl-v10.html\n \nContributors:\n IncQuery Labs Ltd - initial API and implementation\n CEA List ";
+
+	/**
+	 * Returns the value of the '<em><b>Base Connector</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Base Connector</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Base Connector</em>' reference.
+	 * @see #setBase_Connector(Connector)
+	 * @see org.eclipse.papyrus.moka.ssp.profile.SSPProfilePackage#getSsdConnection_Base_Connector()
+	 * @model required="true" ordered="false"
+	 * @generated
+	 */
+	Connector getBase_Connector();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.moka.ssp.profile.SsdConnection#getBase_Connector <em>Base Connector</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Base Connector</em>' reference.
+	 * @see #getBase_Connector()
+	 * @generated
+	 */
+	void setBase_Connector(Connector value);
+
+	/**
+	 * Returns the value of the '<em><b>Start</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Start</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Start</em>' reference.
+	 * @see org.eclipse.papyrus.moka.ssp.profile.SSPProfilePackage#getSsdConnection_Start()
+	 * @model required="true" transient="true" changeable="false" volatile="true" derived="true" ordered="false"
+	 * @generated
+	 */
+	SsdConnector getStart();
+
+	/**
+	 * Returns the value of the '<em><b>End</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>End</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>End</em>' reference.
+	 * @see org.eclipse.papyrus.moka.ssp.profile.SSPProfilePackage#getSsdConnection_End()
+	 * @model required="true" transient="true" changeable="false" volatile="true" derived="true" ordered="false"
+	 * @generated
+	 */
+	SsdConnector getEnd();
+
+	/**
+	 * Returns the value of the '<em><b>Start Ssd Property</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Start Ssd Property</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Start Ssd Property</em>' reference.
+	 * @see org.eclipse.papyrus.moka.ssp.profile.SSPProfilePackage#getSsdConnection_StartSsdProperty()
+	 * @model transient="true" changeable="false" volatile="true" derived="true" ordered="false"
+	 * @generated
+	 */
+	Property getStartSsdProperty();
+
+	/**
+	 * Returns the value of the '<em><b>End Ssd Property</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>End Ssd Property</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>End Ssd Property</em>' reference.
+	 * @see org.eclipse.papyrus.moka.ssp.profile.SSPProfilePackage#getSsdConnection_EndSsdProperty()
+	 * @model transient="true" changeable="false" volatile="true" derived="true" ordered="false"
+	 * @generated
+	 */
+	Property getEndSsdProperty();
+
+} // SsdConnection
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/profile/SsdConnector.java b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/profile/SsdConnector.java
new file mode 100644
index 0000000..b50b95d
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/profile/SsdConnector.java
@@ -0,0 +1,96 @@
+/**
+ *  Copyright (c) 2018,  IncQuery Labs Ltd and 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:
+ *  IncQuery Labs Ltd - initial API and implementation
+ *  CEA List 
+ */
+package org.eclipse.papyrus.moka.ssp.profile;
+
+import org.eclipse.papyrus.sysml14.deprecatedelements.FlowPort;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Ssd Connector</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.profile.SsdConnector#getSSDDescription <em>SSD Description</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.profile.SsdConnector#getTypeKind <em>Type Kind</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.moka.ssp.profile.SSPProfilePackage#getSsdConnector()
+ * @model
+ * @generated
+ */
+public interface SsdConnector extends FlowPort {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String copyright = " Copyright (c) 2018,  IncQuery Labs Ltd and CEA List.\n All rights reserved. This program and the accompanying materials\nare made available under the terms of the Eclipse Public License v1.0\nwhich accompanies this distribution, and is available at\nhttp://www.eclipse.org/legal/epl-v10.html\n \nContributors:\n IncQuery Labs Ltd - initial API and implementation\n CEA List ";
+
+	/**
+	 * Returns the value of the '<em><b>SSD Description</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>SSD Description</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>SSD Description</em>' attribute.
+	 * @see #setSSDDescription(String)
+	 * @see org.eclipse.papyrus.moka.ssp.profile.SSPProfilePackage#getSsdConnector_SSDDescription()
+	 * @model required="true" ordered="false"
+	 * @generated
+	 */
+	String getSSDDescription();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.moka.ssp.profile.SsdConnector#getSSDDescription <em>SSD Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>SSD Description</em>' attribute.
+	 * @see #getSSDDescription()
+	 * @generated
+	 */
+	void setSSDDescription(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Type Kind</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.papyrus.moka.ssp.profile.TypeKind}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Type Kind</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Type Kind</em>' attribute.
+	 * @see org.eclipse.papyrus.moka.ssp.profile.TypeKind
+	 * @see #setTypeKind(TypeKind)
+	 * @see org.eclipse.papyrus.moka.ssp.profile.SSPProfilePackage#getSsdConnector_TypeKind()
+	 * @model required="true" ordered="false"
+	 * @generated
+	 */
+	TypeKind getTypeKind();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.moka.ssp.profile.SsdConnector#getTypeKind <em>Type Kind</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Type Kind</em>' attribute.
+	 * @see org.eclipse.papyrus.moka.ssp.profile.TypeKind
+	 * @see #getTypeKind()
+	 * @generated
+	 */
+	void setTypeKind(TypeKind value);
+
+} // SsdConnector
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/profile/SsdConnectorAndFmiPort.java b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/profile/SsdConnectorAndFmiPort.java
new file mode 100644
index 0000000..9a2442e
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/profile/SsdConnectorAndFmiPort.java
@@ -0,0 +1,34 @@
+/**
+ *  Copyright (c) 2018,  IncQuery Labs Ltd and 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:
+ *  IncQuery Labs Ltd - initial API and implementation
+ *  CEA List 
+ */
+package org.eclipse.papyrus.moka.ssp.profile;
+
+import org.eclipse.papyrus.moka.fmi.fmiprofile.FMIPort;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Ssd Connector And Fmi Port</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.moka.ssp.profile.SSPProfilePackage#getSsdConnectorAndFmiPort()
+ * @model
+ * @generated
+ */
+public interface SsdConnectorAndFmiPort extends FMIPort, SsdConnector {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String copyright = " Copyright (c) 2018,  IncQuery Labs Ltd and CEA List.\n All rights reserved. This program and the accompanying materials\nare made available under the terms of the Eclipse Public License v1.0\nwhich accompanies this distribution, and is available at\nhttp://www.eclipse.org/legal/epl-v10.html\n \nContributors:\n IncQuery Labs Ltd - initial API and implementation\n CEA List ";
+
+} // SsdConnectorAndFmiPort
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/profile/SsdElement.java b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/profile/SsdElement.java
new file mode 100644
index 0000000..5979b61
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/profile/SsdElement.java
@@ -0,0 +1,66 @@
+/**
+ *  Copyright (c) 2018,  IncQuery Labs Ltd and 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:
+ *  IncQuery Labs Ltd - initial API and implementation
+ *  CEA List 
+ */
+package org.eclipse.papyrus.moka.ssp.profile;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Ssd Element</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.profile.SsdElement#getID <em>ID</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.moka.ssp.profile.SSPProfilePackage#getSsdElement()
+ * @model abstract="true"
+ * @generated
+ */
+public interface SsdElement extends EObject {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String copyright = " Copyright (c) 2018,  IncQuery Labs Ltd and CEA List.\n All rights reserved. This program and the accompanying materials\nare made available under the terms of the Eclipse Public License v1.0\nwhich accompanies this distribution, and is available at\nhttp://www.eclipse.org/legal/epl-v10.html\n \nContributors:\n IncQuery Labs Ltd - initial API and implementation\n CEA List ";
+
+	/**
+	 * Returns the value of the '<em><b>ID</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>ID</em>' attribute isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>ID</em>' attribute.
+	 * @see #setID(String)
+	 * @see org.eclipse.papyrus.moka.ssp.profile.SSPProfilePackage#getSsdElement_ID()
+	 * @model ordered="false"
+	 * @generated
+	 */
+	String getID();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.moka.ssp.profile.SsdElement#getID <em>ID</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>ID</em>' attribute.
+	 * @see #getID()
+	 * @generated
+	 */
+	void setID(String value);
+
+} // SsdElement
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/profile/SsdSignalDictionaryReference.java b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/profile/SsdSignalDictionaryReference.java
new file mode 100644
index 0000000..5bc7ecd
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/profile/SsdSignalDictionaryReference.java
@@ -0,0 +1,65 @@
+/**
+ *  Copyright (c) 2018,  IncQuery Labs Ltd and 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:
+ *  IncQuery Labs Ltd - initial API and implementation
+ *  CEA List 
+ */
+package org.eclipse.papyrus.moka.ssp.profile;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Ssd Signal Dictionary Reference</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.profile.SsdSignalDictionaryReference#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.moka.ssp.profile.SSPProfilePackage#getSsdSignalDictionaryReference()
+ * @model
+ * @generated
+ */
+public interface SsdSignalDictionaryReference extends SsdElement {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String copyright = " Copyright (c) 2018,  IncQuery Labs Ltd and CEA List.\n All rights reserved. This program and the accompanying materials\nare made available under the terms of the Eclipse Public License v1.0\nwhich accompanies this distribution, and is available at\nhttp://www.eclipse.org/legal/epl-v10.html\n \nContributors:\n IncQuery Labs Ltd - initial API and implementation\n CEA List ";
+
+	/**
+	 * Returns the value of the '<em><b>Base Class</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Base Class</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Base Class</em>' reference.
+	 * @see #setBase_Class(org.eclipse.uml2.uml.Class)
+	 * @see org.eclipse.papyrus.moka.ssp.profile.SSPProfilePackage#getSsdSignalDictionaryReference_Base_Class()
+	 * @model required="true" ordered="false"
+	 * @generated
+	 */
+	org.eclipse.uml2.uml.Class getBase_Class();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.moka.ssp.profile.SsdSignalDictionaryReference#getBase_Class <em>Base Class</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Base Class</em>' reference.
+	 * @see #getBase_Class()
+	 * @generated
+	 */
+	void setBase_Class(org.eclipse.uml2.uml.Class value);
+
+} // SsdSignalDictionaryReference
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/profile/SsdSystem.java b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/profile/SsdSystem.java
new file mode 100644
index 0000000..a98ba19
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/profile/SsdSystem.java
@@ -0,0 +1,65 @@
+/**
+ *  Copyright (c) 2018,  IncQuery Labs Ltd and 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:
+ *  IncQuery Labs Ltd - initial API and implementation
+ *  CEA List 
+ */
+package org.eclipse.papyrus.moka.ssp.profile;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Ssd System</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.profile.SsdSystem#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.papyrus.moka.ssp.profile.SSPProfilePackage#getSsdSystem()
+ * @model
+ * @generated
+ */
+public interface SsdSystem extends SsdElement {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	String copyright = " Copyright (c) 2018,  IncQuery Labs Ltd and CEA List.\n All rights reserved. This program and the accompanying materials\nare made available under the terms of the Eclipse Public License v1.0\nwhich accompanies this distribution, and is available at\nhttp://www.eclipse.org/legal/epl-v10.html\n \nContributors:\n IncQuery Labs Ltd - initial API and implementation\n CEA List ";
+
+	/**
+	 * Returns the value of the '<em><b>Base Class</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Base Class</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Base Class</em>' reference.
+	 * @see #setBase_Class(org.eclipse.uml2.uml.Class)
+	 * @see org.eclipse.papyrus.moka.ssp.profile.SSPProfilePackage#getSsdSystem_Base_Class()
+	 * @model required="true" ordered="false"
+	 * @generated
+	 */
+	org.eclipse.uml2.uml.Class getBase_Class();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.papyrus.moka.ssp.profile.SsdSystem#getBase_Class <em>Base Class</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Base Class</em>' reference.
+	 * @see #getBase_Class()
+	 * @generated
+	 */
+	void setBase_Class(org.eclipse.uml2.uml.Class value);
+
+} // SsdSystem
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/profile/TypeKind.java b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/profile/TypeKind.java
new file mode 100644
index 0000000..8f36011
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/profile/TypeKind.java
@@ -0,0 +1,250 @@
+/**
+ *  Copyright (c) 2018,  IncQuery Labs Ltd and 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:
+ *  IncQuery Labs Ltd - initial API and implementation
+ *  CEA List 
+ */
+package org.eclipse.papyrus.moka.ssp.profile;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.emf.common.util.AbstractEnumerator;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Type Kind</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.moka.ssp.profile.SSPProfilePackage#getTypeKind()
+ * @model
+ * @generated
+ */
+public final class TypeKind extends AbstractEnumerator {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final String copyright = " Copyright (c) 2018,  IncQuery Labs Ltd and CEA List.\n All rights reserved. This program and the accompanying materials\nare made available under the terms of the Eclipse Public License v1.0\nwhich accompanies this distribution, and is available at\nhttp://www.eclipse.org/legal/epl-v10.html\n \nContributors:\n IncQuery Labs Ltd - initial API and implementation\n CEA List ";
+
+	/**
+	 * The '<em><b>Input</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>Input</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #INPUT_LITERAL
+	 * @model name="input"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int INPUT = 0;
+
+	/**
+	 * The '<em><b>Output</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>Output</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #OUTPUT_LITERAL
+	 * @model name="output"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int OUTPUT = 1;
+
+	/**
+	 * The '<em><b>Parameter</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>Parameter</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #PARAMETER_LITERAL
+	 * @model name="parameter"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int PARAMETER = 2;
+
+	/**
+	 * The '<em><b>Calculated Parameter</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>Calculated Parameter</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #CALCULATED_PARAMETER_LITERAL
+	 * @model name="calculatedParameter"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int CALCULATED_PARAMETER = 3;
+
+	/**
+	 * The '<em><b>Inout</b></em>' literal value.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of '<em><b>Inout</b></em>' literal object isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @see #INOUT_LITERAL
+	 * @model name="inout"
+	 * @generated
+	 * @ordered
+	 */
+	public static final int INOUT = 4;
+
+	/**
+	 * The '<em><b>Input</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #INPUT
+	 * @generated
+	 * @ordered
+	 */
+	public static final TypeKind INPUT_LITERAL = new TypeKind(INPUT, "input", "input");
+
+	/**
+	 * The '<em><b>Output</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #OUTPUT
+	 * @generated
+	 * @ordered
+	 */
+	public static final TypeKind OUTPUT_LITERAL = new TypeKind(OUTPUT, "output", "output");
+
+	/**
+	 * The '<em><b>Parameter</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #PARAMETER
+	 * @generated
+	 * @ordered
+	 */
+	public static final TypeKind PARAMETER_LITERAL = new TypeKind(PARAMETER, "parameter", "parameter");
+
+	/**
+	 * The '<em><b>Calculated Parameter</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #CALCULATED_PARAMETER
+	 * @generated
+	 * @ordered
+	 */
+	public static final TypeKind CALCULATED_PARAMETER_LITERAL = new TypeKind(CALCULATED_PARAMETER, "calculatedParameter", "calculatedParameter");
+
+	/**
+	 * The '<em><b>Inout</b></em>' literal object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #INOUT
+	 * @generated
+	 * @ordered
+	 */
+	public static final TypeKind INOUT_LITERAL = new TypeKind(INOUT, "inout", "inout");
+
+	/**
+	 * An array of all the '<em><b>Type Kind</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static final TypeKind[] VALUES_ARRAY =
+		new TypeKind[] {
+			INPUT_LITERAL,
+			OUTPUT_LITERAL,
+			PARAMETER_LITERAL,
+			CALCULATED_PARAMETER_LITERAL,
+			INOUT_LITERAL,
+		};
+
+	/**
+	 * A public read-only list of all the '<em><b>Type Kind</b></em>' enumerators.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+	/**
+	 * Returns the '<em><b>Type Kind</b></em>' literal with the specified literal value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param literal the literal.
+	 * @return the matching enumerator or <code>null</code>.
+	 * @generated
+	 */
+	public static TypeKind get(String literal) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			TypeKind result = VALUES_ARRAY[i];
+			if (result.toString().equals(literal)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Type Kind</b></em>' literal with the specified name.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param name the name.
+	 * @return the matching enumerator or <code>null</code>.
+	 * @generated
+	 */
+	public static TypeKind getByName(String name) {
+		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
+			TypeKind result = VALUES_ARRAY[i];
+			if (result.getName().equals(name)) {
+				return result;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the '<em><b>Type Kind</b></em>' literal with the specified integer value.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the integer value.
+	 * @return the matching enumerator or <code>null</code>.
+	 * @generated
+	 */
+	public static TypeKind get(int value) {
+		switch (value) {
+			case INPUT: return INPUT_LITERAL;
+			case OUTPUT: return OUTPUT_LITERAL;
+			case PARAMETER: return PARAMETER_LITERAL;
+			case CALCULATED_PARAMETER: return CALCULATED_PARAMETER_LITERAL;
+			case INOUT: return INOUT_LITERAL;
+		}
+		return null;
+	}
+
+	/**
+	 * Only this class can construct instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private TypeKind(int value, String name, String literal) {
+		super(value, name, literal);
+	}
+
+} //TypeKind
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/profile/impl/SSPProfileFactoryImpl.java b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/profile/impl/SSPProfileFactoryImpl.java
new file mode 100644
index 0000000..1f2726a
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/profile/impl/SSPProfileFactoryImpl.java
@@ -0,0 +1,224 @@
+/**
+ *  Copyright (c) 2018,  IncQuery Labs Ltd and 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:
+ *  IncQuery Labs Ltd - initial API and implementation
+ *  CEA List 
+ */
+package org.eclipse.papyrus.moka.ssp.profile.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+import org.eclipse.papyrus.moka.ssp.profile.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SSPProfileFactoryImpl extends EFactoryImpl implements SSPProfileFactory {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final String copyright = " Copyright (c) 2018,  IncQuery Labs Ltd and CEA List.\n All rights reserved. This program and the accompanying materials\nare made available under the terms of the Eclipse Public License v1.0\nwhich accompanies this distribution, and is available at\nhttp://www.eclipse.org/legal/epl-v10.html\n \nContributors:\n IncQuery Labs Ltd - initial API and implementation\n CEA List ";
+
+	/**
+	 * Creates the default factory implementation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static SSPProfileFactory init() {
+		try {
+			SSPProfileFactory theSSPProfileFactory = (SSPProfileFactory)EPackage.Registry.INSTANCE.getEFactory(SSPProfilePackage.eNS_URI);
+			if (theSSPProfileFactory != null) {
+				return theSSPProfileFactory;
+			}
+		}
+		catch (Exception exception) {
+			EcorePlugin.INSTANCE.log(exception);
+		}
+		return new SSPProfileFactoryImpl();
+	}
+
+	/**
+	 * Creates an instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SSPProfileFactoryImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EObject create(EClass eClass) {
+		switch (eClass.getClassifierID()) {
+			case SSPProfilePackage.SSD_CONNECTION: return createSsdConnection();
+			case SSPProfilePackage.SSD_CONNECTOR: return createSsdConnector();
+			case SSPProfilePackage.SSD_SYSTEM: return createSsdSystem();
+			case SSPProfilePackage.SSD_SIGNAL_DICTIONARY_REFERENCE: return createSsdSignalDictionaryReference();
+			case SSPProfilePackage.SSD_COMPONENT: return createSsdComponent();
+			case SSPProfilePackage.SSD: return createSsd();
+			case SSPProfilePackage.SSD_CONNECTOR_AND_FMI_PORT: return createSsdConnectorAndFmiPort();
+			default:
+				throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object createFromString(EDataType eDataType, String initialValue) {
+		switch (eDataType.getClassifierID()) {
+			case SSPProfilePackage.TYPE_KIND:
+				return createTypeKindFromString(eDataType, initialValue);
+			default:
+				throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertToString(EDataType eDataType, Object instanceValue) {
+		switch (eDataType.getClassifierID()) {
+			case SSPProfilePackage.TYPE_KIND:
+				return convertTypeKindToString(eDataType, instanceValue);
+			default:
+				throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SsdConnection createSsdConnection() {
+		SsdConnectionImpl ssdConnection = new SsdConnectionImpl();
+		return ssdConnection;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SsdConnector createSsdConnector() {
+		SsdConnectorImpl ssdConnector = new SsdConnectorImpl();
+		return ssdConnector;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SsdSystem createSsdSystem() {
+		SsdSystemImpl ssdSystem = new SsdSystemImpl();
+		return ssdSystem;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SsdSignalDictionaryReference createSsdSignalDictionaryReference() {
+		SsdSignalDictionaryReferenceImpl ssdSignalDictionaryReference = new SsdSignalDictionaryReferenceImpl();
+		return ssdSignalDictionaryReference;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SsdComponent createSsdComponent() {
+		SsdComponentImpl ssdComponent = new SsdComponentImpl();
+		return ssdComponent;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Ssd createSsd() {
+		SsdImpl ssd = new SsdImpl();
+		return ssd;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SsdConnectorAndFmiPort createSsdConnectorAndFmiPort() {
+		SsdConnectorAndFmiPortImpl ssdConnectorAndFmiPort = new SsdConnectorAndFmiPortImpl();
+		return ssdConnectorAndFmiPort;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TypeKind createTypeKindFromString(EDataType eDataType, String initialValue) {
+		TypeKind result = TypeKind.get(initialValue);
+		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String convertTypeKindToString(EDataType eDataType, Object instanceValue) {
+		return instanceValue == null ? null : instanceValue.toString();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SSPProfilePackage getSSPProfilePackage() {
+		return (SSPProfilePackage)getEPackage();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @deprecated
+	 * @generated
+	 */
+	public static SSPProfilePackage getPackage() {
+		return SSPProfilePackage.eINSTANCE;
+	}
+
+} //SSPProfileFactoryImpl
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/profile/impl/SSPProfilePackageImpl.java b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/profile/impl/SSPProfilePackageImpl.java
new file mode 100644
index 0000000..c5a95ce
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/profile/impl/SSPProfilePackageImpl.java
@@ -0,0 +1,611 @@
+/**
+ *  Copyright (c) 2018,  IncQuery Labs Ltd and 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:
+ *  IncQuery Labs Ltd - initial API and implementation
+ *  CEA List 
+ */
+package org.eclipse.papyrus.moka.ssp.profile.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EcorePackage;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import org.eclipse.papyrus.moka.fmi.fmiprofile.FMIProfilePackage;
+
+import org.eclipse.papyrus.moka.fmi.fmumetamodel.FmumetamodelPackage;
+
+import org.eclipse.papyrus.moka.fmi.modeldescription.FmiPackage;
+
+import org.eclipse.papyrus.moka.ssp.profile.SSPProfileFactory;
+import org.eclipse.papyrus.moka.ssp.profile.SSPProfilePackage;
+import org.eclipse.papyrus.moka.ssp.profile.Ssd;
+import org.eclipse.papyrus.moka.ssp.profile.SsdComponent;
+import org.eclipse.papyrus.moka.ssp.profile.SsdConnection;
+import org.eclipse.papyrus.moka.ssp.profile.SsdConnector;
+import org.eclipse.papyrus.moka.ssp.profile.SsdConnectorAndFmiPort;
+import org.eclipse.papyrus.moka.ssp.profile.SsdElement;
+import org.eclipse.papyrus.moka.ssp.profile.SsdSignalDictionaryReference;
+import org.eclipse.papyrus.moka.ssp.profile.SsdSystem;
+import org.eclipse.papyrus.moka.ssp.profile.TypeKind;
+
+import org.eclipse.papyrus.sysml14.deprecatedelements.DeprecatedelementsPackage;
+
+import org.eclipse.papyrus.sysml14.sysmlPackage;
+
+import org.eclipse.uml2.types.TypesPackage;
+
+import org.eclipse.uml2.uml.UMLPackage;
+
+import org.eclipse.uml2.uml.profile.standard.StandardPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SSPProfilePackageImpl extends EPackageImpl implements SSPProfilePackage {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final String copyright = " Copyright (c) 2018,  IncQuery Labs Ltd and CEA List.\n All rights reserved. This program and the accompanying materials\nare made available under the terms of the Eclipse Public License v1.0\nwhich accompanies this distribution, and is available at\nhttp://www.eclipse.org/legal/epl-v10.html\n \nContributors:\n IncQuery Labs Ltd - initial API and implementation\n CEA List ";
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass ssdConnectionEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass ssdConnectorEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass ssdElementEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass ssdSystemEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass ssdSignalDictionaryReferenceEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass ssdComponentEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass ssdEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass ssdConnectorAndFmiPortEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EEnum typeKindEEnum = null;
+
+	/**
+	 * Creates an instance of the model <b>Package</b>, registered with
+	 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+	 * package URI value.
+	 * <p>Note: the correct way to create the package is via the static
+	 * factory method {@link #init init()}, which also performs
+	 * initialization of the package, or returns the registered package,
+	 * if one already exists.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.emf.ecore.EPackage.Registry
+	 * @see org.eclipse.papyrus.moka.ssp.profile.SSPProfilePackage#eNS_URI
+	 * @see #init()
+	 * @generated
+	 */
+	private SSPProfilePackageImpl() {
+		super(eNS_URI, SSPProfileFactory.eINSTANCE);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private static boolean isInited = false;
+
+	/**
+	 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+	 *
+	 * <p>This method is used to initialize {@link SSPProfilePackage#eINSTANCE} when that field is accessed.
+	 * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #eNS_URI
+	 * @see #createPackageContents()
+	 * @see #initializePackageContents()
+	 * @generated
+	 */
+	public static SSPProfilePackage init() {
+		if (isInited) return (SSPProfilePackage)EPackage.Registry.INSTANCE.getEPackage(SSPProfilePackage.eNS_URI);
+
+		// Obtain or create and register package
+		Object registeredSSPProfilePackage = EPackage.Registry.INSTANCE.get(eNS_URI);
+		SSPProfilePackageImpl theSSPProfilePackage = registeredSSPProfilePackage instanceof SSPProfilePackageImpl ? (SSPProfilePackageImpl)registeredSSPProfilePackage : new SSPProfilePackageImpl();
+
+		isInited = true;
+
+		// Initialize simple dependencies
+		EcorePackage.eINSTANCE.eClass();
+		FMIProfilePackage.eINSTANCE.eClass();
+		StandardPackage.eINSTANCE.eClass();
+		sysmlPackage.eINSTANCE.eClass();
+		TypesPackage.eINSTANCE.eClass();
+		UMLPackage.eINSTANCE.eClass();
+		FmiPackage.eINSTANCE.eClass();
+		FmumetamodelPackage.eINSTANCE.eClass();
+
+		// Create package meta-data objects
+		theSSPProfilePackage.createPackageContents();
+
+		// Initialize created meta-data
+		theSSPProfilePackage.initializePackageContents();
+
+		// Mark meta-data to indicate it can't be changed
+		theSSPProfilePackage.freeze();
+
+		// Update the registry and return the package
+		EPackage.Registry.INSTANCE.put(SSPProfilePackage.eNS_URI, theSSPProfilePackage);
+		return theSSPProfilePackage;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getSsdConnection() {
+		return ssdConnectionEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getSsdConnection_Base_Connector() {
+		return (EReference)ssdConnectionEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getSsdConnection_Start() {
+		return (EReference)ssdConnectionEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getSsdConnection_End() {
+		return (EReference)ssdConnectionEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getSsdConnection_StartSsdProperty() {
+		return (EReference)ssdConnectionEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getSsdConnection_EndSsdProperty() {
+		return (EReference)ssdConnectionEClass.getEStructuralFeatures().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getSsdConnector() {
+		return ssdConnectorEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getSsdConnector_SSDDescription() {
+		return (EAttribute)ssdConnectorEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getSsdConnector_TypeKind() {
+		return (EAttribute)ssdConnectorEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getSsdElement() {
+		return ssdElementEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getSsdElement_ID() {
+		return (EAttribute)ssdElementEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getSsdSystem() {
+		return ssdSystemEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getSsdSystem_Base_Class() {
+		return (EReference)ssdSystemEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getSsdSignalDictionaryReference() {
+		return ssdSignalDictionaryReferenceEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getSsdSignalDictionaryReference_Base_Class() {
+		return (EReference)ssdSignalDictionaryReferenceEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getSsdComponent() {
+		return ssdComponentEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getSsdComponent_Source() {
+		return (EAttribute)ssdComponentEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getSsdComponent_Type() {
+		return (EAttribute)ssdComponentEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getSsdComponent_Fmu() {
+		return (EReference)ssdComponentEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getSsdComponent_Base_Property() {
+		return (EReference)ssdComponentEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getSsd() {
+		return ssdEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getSsd_Base_Package() {
+		return (EReference)ssdEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getSsd_Name() {
+		return (EAttribute)ssdEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EAttribute getSsd_Version() {
+		return (EAttribute)ssdEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EReference getSsd_MainSystem() {
+		return (EReference)ssdEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EClass getSsdConnectorAndFmiPort() {
+		return ssdConnectorAndFmiPortEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EEnum getTypeKind() {
+		return typeKindEEnum;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SSPProfileFactory getSSPProfileFactory() {
+		return (SSPProfileFactory)getEFactoryInstance();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private boolean isCreated = false;
+
+	/**
+	 * Creates the meta-model objects for the package.  This method is
+	 * guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void createPackageContents() {
+		if (isCreated) return;
+		isCreated = true;
+
+		// Create classes and their features
+		ssdConnectionEClass = createEClass(SSD_CONNECTION);
+		createEReference(ssdConnectionEClass, SSD_CONNECTION__BASE_CONNECTOR);
+		createEReference(ssdConnectionEClass, SSD_CONNECTION__START);
+		createEReference(ssdConnectionEClass, SSD_CONNECTION__END);
+		createEReference(ssdConnectionEClass, SSD_CONNECTION__START_SSD_PROPERTY);
+		createEReference(ssdConnectionEClass, SSD_CONNECTION__END_SSD_PROPERTY);
+
+		ssdConnectorEClass = createEClass(SSD_CONNECTOR);
+		createEAttribute(ssdConnectorEClass, SSD_CONNECTOR__SSD_DESCRIPTION);
+		createEAttribute(ssdConnectorEClass, SSD_CONNECTOR__TYPE_KIND);
+
+		ssdElementEClass = createEClass(SSD_ELEMENT);
+		createEAttribute(ssdElementEClass, SSD_ELEMENT__ID);
+
+		ssdSystemEClass = createEClass(SSD_SYSTEM);
+		createEReference(ssdSystemEClass, SSD_SYSTEM__BASE_CLASS);
+
+		ssdSignalDictionaryReferenceEClass = createEClass(SSD_SIGNAL_DICTIONARY_REFERENCE);
+		createEReference(ssdSignalDictionaryReferenceEClass, SSD_SIGNAL_DICTIONARY_REFERENCE__BASE_CLASS);
+
+		ssdComponentEClass = createEClass(SSD_COMPONENT);
+		createEAttribute(ssdComponentEClass, SSD_COMPONENT__SOURCE);
+		createEAttribute(ssdComponentEClass, SSD_COMPONENT__TYPE);
+		createEReference(ssdComponentEClass, SSD_COMPONENT__FMU);
+		createEReference(ssdComponentEClass, SSD_COMPONENT__BASE_PROPERTY);
+
+		ssdEClass = createEClass(SSD);
+		createEReference(ssdEClass, SSD__BASE_PACKAGE);
+		createEAttribute(ssdEClass, SSD__NAME);
+		createEAttribute(ssdEClass, SSD__VERSION);
+		createEReference(ssdEClass, SSD__MAIN_SYSTEM);
+
+		ssdConnectorAndFmiPortEClass = createEClass(SSD_CONNECTOR_AND_FMI_PORT);
+
+		// Create enums
+		typeKindEEnum = createEEnum(TYPE_KIND);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private boolean isInitialized = false;
+
+	/**
+	 * Complete the initialization of the package and its meta-model.  This
+	 * method is guarded to have no affect on any invocation but its first.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void initializePackageContents() {
+		if (isInitialized) return;
+		isInitialized = true;
+
+		// Initialize package
+		setName(eNAME);
+		setNsPrefix(eNS_PREFIX);
+		setNsURI(eNS_URI);
+
+		// Obtain other dependent packages
+		UMLPackage theUMLPackage = (UMLPackage)EPackage.Registry.INSTANCE.getEPackage(UMLPackage.eNS_URI);
+		DeprecatedelementsPackage theDeprecatedelementsPackage = (DeprecatedelementsPackage)EPackage.Registry.INSTANCE.getEPackage(DeprecatedelementsPackage.eNS_URI);
+		FMIProfilePackage theFMIProfilePackage = (FMIProfilePackage)EPackage.Registry.INSTANCE.getEPackage(FMIProfilePackage.eNS_URI);
+
+		// Add supertypes to classes
+		ssdConnectorEClass.getESuperTypes().add(theDeprecatedelementsPackage.getFlowPort());
+		ssdSystemEClass.getESuperTypes().add(this.getSsdElement());
+		ssdSignalDictionaryReferenceEClass.getESuperTypes().add(this.getSsdElement());
+		ssdComponentEClass.getESuperTypes().add(this.getSsdElement());
+		ssdConnectorAndFmiPortEClass.getESuperTypes().add(theFMIProfilePackage.getFMIPort());
+		ssdConnectorAndFmiPortEClass.getESuperTypes().add(this.getSsdConnector());
+
+		// Initialize classes and features; add operations and parameters
+		initEClass(ssdConnectionEClass, SsdConnection.class, "SsdConnection", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getSsdConnection_Base_Connector(), theUMLPackage.getConnector(), null, "base_Connector", null, 1, 1, SsdConnection.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEReference(getSsdConnection_Start(), this.getSsdConnector(), null, "start", null, 1, 1, SsdConnection.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED);
+		initEReference(getSsdConnection_End(), this.getSsdConnector(), null, "end", null, 1, 1, SsdConnection.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED);
+		initEReference(getSsdConnection_StartSsdProperty(), theUMLPackage.getProperty(), null, "startSsdProperty", null, 0, 1, SsdConnection.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED);
+		initEReference(getSsdConnection_EndSsdProperty(), theUMLPackage.getProperty(), null, "endSsdProperty", null, 0, 1, SsdConnection.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, !IS_ORDERED);
+
+		initEClass(ssdConnectorEClass, SsdConnector.class, "SsdConnector", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getSsdConnector_SSDDescription(), ecorePackage.getEString(), "SSDDescription", null, 1, 1, SsdConnector.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEAttribute(getSsdConnector_TypeKind(), this.getTypeKind(), "typeKind", null, 1, 1, SsdConnector.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+		initEClass(ssdElementEClass, SsdElement.class, "SsdElement", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getSsdElement_ID(), ecorePackage.getEString(), "ID", null, 0, 1, SsdElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+		initEClass(ssdSystemEClass, SsdSystem.class, "SsdSystem", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getSsdSystem_Base_Class(), theUMLPackage.getClass_(), null, "base_Class", null, 1, 1, SsdSystem.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+		initEClass(ssdSignalDictionaryReferenceEClass, SsdSignalDictionaryReference.class, "SsdSignalDictionaryReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getSsdSignalDictionaryReference_Base_Class(), theUMLPackage.getClass_(), null, "base_Class", null, 1, 1, SsdSignalDictionaryReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+		initEClass(ssdComponentEClass, SsdComponent.class, "SsdComponent", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getSsdComponent_Source(), ecorePackage.getEString(), "source", null, 1, 1, SsdComponent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEAttribute(getSsdComponent_Type(), ecorePackage.getEString(), "type", null, 1, 1, SsdComponent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEReference(getSsdComponent_Fmu(), theFMIProfilePackage.getFMU(), null, "fmu", null, 0, 1, SsdComponent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEReference(getSsdComponent_Base_Property(), theUMLPackage.getProperty(), null, "base_Property", null, 1, 1, SsdComponent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+		initEClass(ssdEClass, Ssd.class, "Ssd", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getSsd_Base_Package(), theUMLPackage.getPackage(), null, "base_Package", null, 1, 1, Ssd.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEAttribute(getSsd_Name(), ecorePackage.getEString(), "name", null, 1, 1, Ssd.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEAttribute(getSsd_Version(), ecorePackage.getEString(), "version", null, 1, 1, Ssd.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEReference(getSsd_MainSystem(), this.getSsdSystem(), null, "mainSystem", null, 1, 1, Ssd.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+		initEClass(ssdConnectorAndFmiPortEClass, SsdConnectorAndFmiPort.class, "SsdConnectorAndFmiPort", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+		// Initialize enums and add enum literals
+		initEEnum(typeKindEEnum, TypeKind.class, "TypeKind");
+		addEEnumLiteral(typeKindEEnum, TypeKind.INPUT_LITERAL);
+		addEEnumLiteral(typeKindEEnum, TypeKind.OUTPUT_LITERAL);
+		addEEnumLiteral(typeKindEEnum, TypeKind.PARAMETER_LITERAL);
+		addEEnumLiteral(typeKindEEnum, TypeKind.CALCULATED_PARAMETER_LITERAL);
+		addEEnumLiteral(typeKindEEnum, TypeKind.INOUT_LITERAL);
+
+		// Create resource
+		createResource(eNS_URI);
+
+		// Create annotations
+		// http://www.eclipse.org/uml2/2.0.0/UML
+		createUMLAnnotations();
+	}
+
+	/**
+	 * Initializes the annotations for <b>http://www.eclipse.org/uml2/2.0.0/UML</b>.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void createUMLAnnotations() {
+		String source = "http://www.eclipse.org/uml2/2.0.0/UML";
+		addAnnotation
+		  (this,
+		   source,
+		   new String[] {
+			   "originalName", "SSPProfile"
+		   });
+	}
+
+} //SSPProfilePackageImpl
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/profile/impl/SsdComponentImpl.java b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/profile/impl/SsdComponentImpl.java
new file mode 100644
index 0000000..f307ec2
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/profile/impl/SsdComponentImpl.java
@@ -0,0 +1,351 @@
+/**
+ *  Copyright (c) 2018,  IncQuery Labs Ltd and 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:
+ *  IncQuery Labs Ltd - initial API and implementation
+ *  CEA List 
+ */
+package org.eclipse.papyrus.moka.ssp.profile.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.moka.fmi.fmiprofile.FMU;
+
+import org.eclipse.papyrus.moka.ssp.profile.SSPProfilePackage;
+import org.eclipse.papyrus.moka.ssp.profile.SsdComponent;
+
+import org.eclipse.uml2.uml.Property;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Ssd Component</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.profile.impl.SsdComponentImpl#getSource <em>Source</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.profile.impl.SsdComponentImpl#getType <em>Type</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.profile.impl.SsdComponentImpl#getFmu <em>Fmu</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.profile.impl.SsdComponentImpl#getBase_Property <em>Base Property</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class SsdComponentImpl extends SsdElementImpl implements SsdComponent {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final String copyright = " Copyright (c) 2018,  IncQuery Labs Ltd and CEA List.\n All rights reserved. This program and the accompanying materials\nare made available under the terms of the Eclipse Public License v1.0\nwhich accompanies this distribution, and is available at\nhttp://www.eclipse.org/legal/epl-v10.html\n \nContributors:\n IncQuery Labs Ltd - initial API and implementation\n CEA List ";
+
+	/**
+	 * The default value of the '{@link #getSource() <em>Source</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSource()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String SOURCE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getSource() <em>Source</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSource()
+	 * @generated
+	 * @ordered
+	 */
+	protected String source = SOURCE_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getType() <em>Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getType()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String TYPE_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getType() <em>Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getType()
+	 * @generated
+	 * @ordered
+	 */
+	protected String type = TYPE_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getFmu() <em>Fmu</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getFmu()
+	 * @generated
+	 * @ordered
+	 */
+	protected FMU fmu;
+
+	/**
+	 * The cached value of the '{@link #getBase_Property() <em>Base Property</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBase_Property()
+	 * @generated
+	 * @ordered
+	 */
+	protected Property base_Property;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected SsdComponentImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SSPProfilePackage.Literals.SSD_COMPONENT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getSource() {
+		return source;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSource(String newSource) {
+		String oldSource = source;
+		source = newSource;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SSPProfilePackage.SSD_COMPONENT__SOURCE, oldSource, source));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getType() {
+		return type;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setType(String newType) {
+		String oldType = type;
+		type = newType;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SSPProfilePackage.SSD_COMPONENT__TYPE, oldType, type));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public FMU getFmu() {
+		if (fmu != null && fmu.eIsProxy()) {
+			InternalEObject oldFmu = (InternalEObject)fmu;
+			fmu = (FMU)eResolveProxy(oldFmu);
+			if (fmu != oldFmu) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, SSPProfilePackage.SSD_COMPONENT__FMU, oldFmu, fmu));
+			}
+		}
+		return fmu;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public FMU basicGetFmu() {
+		return fmu;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setFmu(FMU newFmu) {
+		FMU oldFmu = fmu;
+		fmu = newFmu;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SSPProfilePackage.SSD_COMPONENT__FMU, oldFmu, fmu));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Property getBase_Property() {
+		if (base_Property != null && base_Property.eIsProxy()) {
+			InternalEObject oldBase_Property = (InternalEObject)base_Property;
+			base_Property = (Property)eResolveProxy(oldBase_Property);
+			if (base_Property != oldBase_Property) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, SSPProfilePackage.SSD_COMPONENT__BASE_PROPERTY, oldBase_Property, base_Property));
+			}
+		}
+		return base_Property;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Property basicGetBase_Property() {
+		return base_Property;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setBase_Property(Property newBase_Property) {
+		Property oldBase_Property = base_Property;
+		base_Property = newBase_Property;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SSPProfilePackage.SSD_COMPONENT__BASE_PROPERTY, oldBase_Property, base_Property));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SSPProfilePackage.SSD_COMPONENT__SOURCE:
+				return getSource();
+			case SSPProfilePackage.SSD_COMPONENT__TYPE:
+				return getType();
+			case SSPProfilePackage.SSD_COMPONENT__FMU:
+				if (resolve) return getFmu();
+				return basicGetFmu();
+			case SSPProfilePackage.SSD_COMPONENT__BASE_PROPERTY:
+				if (resolve) return getBase_Property();
+				return basicGetBase_Property();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SSPProfilePackage.SSD_COMPONENT__SOURCE:
+				setSource((String)newValue);
+				return;
+			case SSPProfilePackage.SSD_COMPONENT__TYPE:
+				setType((String)newValue);
+				return;
+			case SSPProfilePackage.SSD_COMPONENT__FMU:
+				setFmu((FMU)newValue);
+				return;
+			case SSPProfilePackage.SSD_COMPONENT__BASE_PROPERTY:
+				setBase_Property((Property)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SSPProfilePackage.SSD_COMPONENT__SOURCE:
+				setSource(SOURCE_EDEFAULT);
+				return;
+			case SSPProfilePackage.SSD_COMPONENT__TYPE:
+				setType(TYPE_EDEFAULT);
+				return;
+			case SSPProfilePackage.SSD_COMPONENT__FMU:
+				setFmu((FMU)null);
+				return;
+			case SSPProfilePackage.SSD_COMPONENT__BASE_PROPERTY:
+				setBase_Property((Property)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SSPProfilePackage.SSD_COMPONENT__SOURCE:
+				return SOURCE_EDEFAULT == null ? source != null : !SOURCE_EDEFAULT.equals(source);
+			case SSPProfilePackage.SSD_COMPONENT__TYPE:
+				return TYPE_EDEFAULT == null ? type != null : !TYPE_EDEFAULT.equals(type);
+			case SSPProfilePackage.SSD_COMPONENT__FMU:
+				return fmu != null;
+			case SSPProfilePackage.SSD_COMPONENT__BASE_PROPERTY:
+				return base_Property != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (source: ");
+		result.append(source);
+		result.append(", type: ");
+		result.append(type);
+		result.append(')');
+		return result.toString();
+	}
+
+} //SsdComponentImpl
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/profile/impl/SsdConnectionImpl.java b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/profile/impl/SsdConnectionImpl.java
new file mode 100644
index 0000000..d19d02f
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/profile/impl/SsdConnectionImpl.java
@@ -0,0 +1,283 @@
+/**
+ *  Copyright (c) 2018,  IncQuery Labs Ltd and 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:
+ *  IncQuery Labs Ltd - initial API and implementation
+ *  CEA List 
+ */
+package org.eclipse.papyrus.moka.ssp.profile.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.moka.ssp.profile.SSPProfilePackage;
+import org.eclipse.papyrus.moka.ssp.profile.SsdConnection;
+import org.eclipse.papyrus.moka.ssp.profile.SsdConnector;
+
+import org.eclipse.uml2.uml.Connector;
+import org.eclipse.uml2.uml.Property;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Ssd Connection</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.profile.impl.SsdConnectionImpl#getBase_Connector <em>Base Connector</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.profile.impl.SsdConnectionImpl#getStart <em>Start</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.profile.impl.SsdConnectionImpl#getEnd <em>End</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.profile.impl.SsdConnectionImpl#getStartSsdProperty <em>Start Ssd Property</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.profile.impl.SsdConnectionImpl#getEndSsdProperty <em>End Ssd Property</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class SsdConnectionImpl extends MinimalEObjectImpl.Container implements SsdConnection {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final String copyright = " Copyright (c) 2018,  IncQuery Labs Ltd and CEA List.\n All rights reserved. This program and the accompanying materials\nare made available under the terms of the Eclipse Public License v1.0\nwhich accompanies this distribution, and is available at\nhttp://www.eclipse.org/legal/epl-v10.html\n \nContributors:\n IncQuery Labs Ltd - initial API and implementation\n CEA List ";
+
+	/**
+	 * The cached value of the '{@link #getBase_Connector() <em>Base Connector</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBase_Connector()
+	 * @generated
+	 * @ordered
+	 */
+	protected Connector base_Connector;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected SsdConnectionImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SSPProfilePackage.Literals.SSD_CONNECTION;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Connector getBase_Connector() {
+		if (base_Connector != null && base_Connector.eIsProxy()) {
+			InternalEObject oldBase_Connector = (InternalEObject)base_Connector;
+			base_Connector = (Connector)eResolveProxy(oldBase_Connector);
+			if (base_Connector != oldBase_Connector) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, SSPProfilePackage.SSD_CONNECTION__BASE_CONNECTOR, oldBase_Connector, base_Connector));
+			}
+		}
+		return base_Connector;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Connector basicGetBase_Connector() {
+		return base_Connector;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setBase_Connector(Connector newBase_Connector) {
+		Connector oldBase_Connector = base_Connector;
+		base_Connector = newBase_Connector;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SSPProfilePackage.SSD_CONNECTION__BASE_CONNECTOR, oldBase_Connector, base_Connector));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SsdConnector getStart() {
+		SsdConnector start = basicGetStart();
+		return start != null && start.eIsProxy() ? (SsdConnector)eResolveProxy((InternalEObject)start) : start;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SsdConnector basicGetStart() {
+		// TODO: implement this method to return the 'Start' reference
+		// -> do not perform proxy resolution
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SsdConnector getEnd() {
+		SsdConnector end = basicGetEnd();
+		return end != null && end.eIsProxy() ? (SsdConnector)eResolveProxy((InternalEObject)end) : end;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SsdConnector basicGetEnd() {
+		// TODO: implement this method to return the 'End' reference
+		// -> do not perform proxy resolution
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Property getStartSsdProperty() {
+		Property startSsdProperty = basicGetStartSsdProperty();
+		return startSsdProperty != null && startSsdProperty.eIsProxy() ? (Property)eResolveProxy((InternalEObject)startSsdProperty) : startSsdProperty;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Property basicGetStartSsdProperty() {
+		// TODO: implement this method to return the 'Start Ssd Property' reference
+		// -> do not perform proxy resolution
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Property getEndSsdProperty() {
+		Property endSsdProperty = basicGetEndSsdProperty();
+		return endSsdProperty != null && endSsdProperty.eIsProxy() ? (Property)eResolveProxy((InternalEObject)endSsdProperty) : endSsdProperty;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Property basicGetEndSsdProperty() {
+		// TODO: implement this method to return the 'End Ssd Property' reference
+		// -> do not perform proxy resolution
+		// Ensure that you remove @generated or mark it @generated NOT
+		throw new UnsupportedOperationException();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SSPProfilePackage.SSD_CONNECTION__BASE_CONNECTOR:
+				if (resolve) return getBase_Connector();
+				return basicGetBase_Connector();
+			case SSPProfilePackage.SSD_CONNECTION__START:
+				if (resolve) return getStart();
+				return basicGetStart();
+			case SSPProfilePackage.SSD_CONNECTION__END:
+				if (resolve) return getEnd();
+				return basicGetEnd();
+			case SSPProfilePackage.SSD_CONNECTION__START_SSD_PROPERTY:
+				if (resolve) return getStartSsdProperty();
+				return basicGetStartSsdProperty();
+			case SSPProfilePackage.SSD_CONNECTION__END_SSD_PROPERTY:
+				if (resolve) return getEndSsdProperty();
+				return basicGetEndSsdProperty();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SSPProfilePackage.SSD_CONNECTION__BASE_CONNECTOR:
+				setBase_Connector((Connector)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SSPProfilePackage.SSD_CONNECTION__BASE_CONNECTOR:
+				setBase_Connector((Connector)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SSPProfilePackage.SSD_CONNECTION__BASE_CONNECTOR:
+				return base_Connector != null;
+			case SSPProfilePackage.SSD_CONNECTION__START:
+				return basicGetStart() != null;
+			case SSPProfilePackage.SSD_CONNECTION__END:
+				return basicGetEnd() != null;
+			case SSPProfilePackage.SSD_CONNECTION__START_SSD_PROPERTY:
+				return basicGetStartSsdProperty() != null;
+			case SSPProfilePackage.SSD_CONNECTION__END_SSD_PROPERTY:
+				return basicGetEndSsdProperty() != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //SsdConnectionImpl
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/profile/impl/SsdConnectorAndFmiPortImpl.java b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/profile/impl/SsdConnectorAndFmiPortImpl.java
new file mode 100644
index 0000000..010d194
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/profile/impl/SsdConnectorAndFmiPortImpl.java
@@ -0,0 +1,262 @@
+/**
+ *  Copyright (c) 2018,  IncQuery Labs Ltd and 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:
+ *  IncQuery Labs Ltd - initial API and implementation
+ *  CEA List 
+ */
+package org.eclipse.papyrus.moka.ssp.profile.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.moka.fmi.fmiprofile.impl.FMIPortImpl;
+
+import org.eclipse.papyrus.moka.ssp.profile.SSPProfilePackage;
+import org.eclipse.papyrus.moka.ssp.profile.SsdConnector;
+import org.eclipse.papyrus.moka.ssp.profile.SsdConnectorAndFmiPort;
+import org.eclipse.papyrus.moka.ssp.profile.TypeKind;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Ssd Connector And Fmi Port</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.profile.impl.SsdConnectorAndFmiPortImpl#getSSDDescription <em>SSD Description</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.profile.impl.SsdConnectorAndFmiPortImpl#getTypeKind <em>Type Kind</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class SsdConnectorAndFmiPortImpl extends FMIPortImpl implements SsdConnectorAndFmiPort {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final String copyright = " Copyright (c) 2018,  IncQuery Labs Ltd and CEA List.\n All rights reserved. This program and the accompanying materials\nare made available under the terms of the Eclipse Public License v1.0\nwhich accompanies this distribution, and is available at\nhttp://www.eclipse.org/legal/epl-v10.html\n \nContributors:\n IncQuery Labs Ltd - initial API and implementation\n CEA List ";
+
+	/**
+	 * The default value of the '{@link #getSSDDescription() <em>SSD Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSSDDescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String SSD_DESCRIPTION_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getSSDDescription() <em>SSD Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSSDDescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected String ssdDescription = SSD_DESCRIPTION_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getTypeKind() <em>Type Kind</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTypeKind()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final TypeKind TYPE_KIND_EDEFAULT = TypeKind.INPUT_LITERAL;
+
+	/**
+	 * The cached value of the '{@link #getTypeKind() <em>Type Kind</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTypeKind()
+	 * @generated
+	 * @ordered
+	 */
+	protected TypeKind typeKind = TYPE_KIND_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected SsdConnectorAndFmiPortImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SSPProfilePackage.Literals.SSD_CONNECTOR_AND_FMI_PORT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getSSDDescription() {
+		return ssdDescription;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSSDDescription(String newSSDDescription) {
+		String oldSSDDescription = ssdDescription;
+		ssdDescription = newSSDDescription;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SSPProfilePackage.SSD_CONNECTOR_AND_FMI_PORT__SSD_DESCRIPTION, oldSSDDescription, ssdDescription));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TypeKind getTypeKind() {
+		return typeKind;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setTypeKind(TypeKind newTypeKind) {
+		TypeKind oldTypeKind = typeKind;
+		typeKind = newTypeKind == null ? TYPE_KIND_EDEFAULT : newTypeKind;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SSPProfilePackage.SSD_CONNECTOR_AND_FMI_PORT__TYPE_KIND, oldTypeKind, typeKind));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SSPProfilePackage.SSD_CONNECTOR_AND_FMI_PORT__SSD_DESCRIPTION:
+				return getSSDDescription();
+			case SSPProfilePackage.SSD_CONNECTOR_AND_FMI_PORT__TYPE_KIND:
+				return getTypeKind();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SSPProfilePackage.SSD_CONNECTOR_AND_FMI_PORT__SSD_DESCRIPTION:
+				setSSDDescription((String)newValue);
+				return;
+			case SSPProfilePackage.SSD_CONNECTOR_AND_FMI_PORT__TYPE_KIND:
+				setTypeKind((TypeKind)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SSPProfilePackage.SSD_CONNECTOR_AND_FMI_PORT__SSD_DESCRIPTION:
+				setSSDDescription(SSD_DESCRIPTION_EDEFAULT);
+				return;
+			case SSPProfilePackage.SSD_CONNECTOR_AND_FMI_PORT__TYPE_KIND:
+				setTypeKind(TYPE_KIND_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SSPProfilePackage.SSD_CONNECTOR_AND_FMI_PORT__SSD_DESCRIPTION:
+				return SSD_DESCRIPTION_EDEFAULT == null ? ssdDescription != null : !SSD_DESCRIPTION_EDEFAULT.equals(ssdDescription);
+			case SSPProfilePackage.SSD_CONNECTOR_AND_FMI_PORT__TYPE_KIND:
+				return typeKind != TYPE_KIND_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class baseClass) {
+		if (baseClass == SsdConnector.class) {
+			switch (derivedFeatureID) {
+				case SSPProfilePackage.SSD_CONNECTOR_AND_FMI_PORT__SSD_DESCRIPTION: return SSPProfilePackage.SSD_CONNECTOR__SSD_DESCRIPTION;
+				case SSPProfilePackage.SSD_CONNECTOR_AND_FMI_PORT__TYPE_KIND: return SSPProfilePackage.SSD_CONNECTOR__TYPE_KIND;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) {
+		if (baseClass == SsdConnector.class) {
+			switch (baseFeatureID) {
+				case SSPProfilePackage.SSD_CONNECTOR__SSD_DESCRIPTION: return SSPProfilePackage.SSD_CONNECTOR_AND_FMI_PORT__SSD_DESCRIPTION;
+				case SSPProfilePackage.SSD_CONNECTOR__TYPE_KIND: return SSPProfilePackage.SSD_CONNECTOR_AND_FMI_PORT__TYPE_KIND;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (SSDDescription: ");
+		result.append(ssdDescription);
+		result.append(", typeKind: ");
+		result.append(typeKind);
+		result.append(')');
+		return result.toString();
+	}
+
+} //SsdConnectorAndFmiPortImpl
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/profile/impl/SsdConnectorImpl.java b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/profile/impl/SsdConnectorImpl.java
new file mode 100644
index 0000000..96c7eaa
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/profile/impl/SsdConnectorImpl.java
@@ -0,0 +1,229 @@
+/**
+ *  Copyright (c) 2018,  IncQuery Labs Ltd and 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:
+ *  IncQuery Labs Ltd - initial API and implementation
+ *  CEA List 
+ */
+package org.eclipse.papyrus.moka.ssp.profile.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.moka.ssp.profile.SSPProfilePackage;
+import org.eclipse.papyrus.moka.ssp.profile.SsdConnector;
+import org.eclipse.papyrus.moka.ssp.profile.TypeKind;
+
+import org.eclipse.papyrus.sysml14.deprecatedelements.internal.impl.FlowPortImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Ssd Connector</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.profile.impl.SsdConnectorImpl#getSSDDescription <em>SSD Description</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.profile.impl.SsdConnectorImpl#getTypeKind <em>Type Kind</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class SsdConnectorImpl extends FlowPortImpl implements SsdConnector {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final String copyright = " Copyright (c) 2018,  IncQuery Labs Ltd and CEA List.\n All rights reserved. This program and the accompanying materials\nare made available under the terms of the Eclipse Public License v1.0\nwhich accompanies this distribution, and is available at\nhttp://www.eclipse.org/legal/epl-v10.html\n \nContributors:\n IncQuery Labs Ltd - initial API and implementation\n CEA List ";
+
+	/**
+	 * The default value of the '{@link #getSSDDescription() <em>SSD Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSSDDescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String SSD_DESCRIPTION_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getSSDDescription() <em>SSD Description</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSSDDescription()
+	 * @generated
+	 * @ordered
+	 */
+	protected String ssdDescription = SSD_DESCRIPTION_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getTypeKind() <em>Type Kind</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTypeKind()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final TypeKind TYPE_KIND_EDEFAULT = TypeKind.INPUT_LITERAL;
+
+	/**
+	 * The cached value of the '{@link #getTypeKind() <em>Type Kind</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTypeKind()
+	 * @generated
+	 * @ordered
+	 */
+	protected TypeKind typeKind = TYPE_KIND_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected SsdConnectorImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SSPProfilePackage.Literals.SSD_CONNECTOR;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getSSDDescription() {
+		return ssdDescription;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setSSDDescription(String newSSDDescription) {
+		String oldSSDDescription = ssdDescription;
+		ssdDescription = newSSDDescription;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SSPProfilePackage.SSD_CONNECTOR__SSD_DESCRIPTION, oldSSDDescription, ssdDescription));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TypeKind getTypeKind() {
+		return typeKind;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setTypeKind(TypeKind newTypeKind) {
+		TypeKind oldTypeKind = typeKind;
+		typeKind = newTypeKind == null ? TYPE_KIND_EDEFAULT : newTypeKind;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SSPProfilePackage.SSD_CONNECTOR__TYPE_KIND, oldTypeKind, typeKind));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SSPProfilePackage.SSD_CONNECTOR__SSD_DESCRIPTION:
+				return getSSDDescription();
+			case SSPProfilePackage.SSD_CONNECTOR__TYPE_KIND:
+				return getTypeKind();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SSPProfilePackage.SSD_CONNECTOR__SSD_DESCRIPTION:
+				setSSDDescription((String)newValue);
+				return;
+			case SSPProfilePackage.SSD_CONNECTOR__TYPE_KIND:
+				setTypeKind((TypeKind)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SSPProfilePackage.SSD_CONNECTOR__SSD_DESCRIPTION:
+				setSSDDescription(SSD_DESCRIPTION_EDEFAULT);
+				return;
+			case SSPProfilePackage.SSD_CONNECTOR__TYPE_KIND:
+				setTypeKind(TYPE_KIND_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SSPProfilePackage.SSD_CONNECTOR__SSD_DESCRIPTION:
+				return SSD_DESCRIPTION_EDEFAULT == null ? ssdDescription != null : !SSD_DESCRIPTION_EDEFAULT.equals(ssdDescription);
+			case SSPProfilePackage.SSD_CONNECTOR__TYPE_KIND:
+				return typeKind != TYPE_KIND_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (SSDDescription: ");
+		result.append(ssdDescription);
+		result.append(", typeKind: ");
+		result.append(typeKind);
+		result.append(')');
+		return result.toString();
+	}
+
+} //SsdConnectorImpl
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/profile/impl/SsdElementImpl.java b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/profile/impl/SsdElementImpl.java
new file mode 100644
index 0000000..2eb76ff
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/profile/impl/SsdElementImpl.java
@@ -0,0 +1,173 @@
+/**
+ *  Copyright (c) 2018,  IncQuery Labs Ltd and 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:
+ *  IncQuery Labs Ltd - initial API and implementation
+ *  CEA List 
+ */
+package org.eclipse.papyrus.moka.ssp.profile.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.moka.ssp.profile.SSPProfilePackage;
+import org.eclipse.papyrus.moka.ssp.profile.SsdElement;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Ssd Element</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.profile.impl.SsdElementImpl#getID <em>ID</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class SsdElementImpl extends MinimalEObjectImpl.Container implements SsdElement {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final String copyright = " Copyright (c) 2018,  IncQuery Labs Ltd and CEA List.\n All rights reserved. This program and the accompanying materials\nare made available under the terms of the Eclipse Public License v1.0\nwhich accompanies this distribution, and is available at\nhttp://www.eclipse.org/legal/epl-v10.html\n \nContributors:\n IncQuery Labs Ltd - initial API and implementation\n CEA List ";
+
+	/**
+	 * The default value of the '{@link #getID() <em>ID</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getID()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String ID_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getID() <em>ID</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getID()
+	 * @generated
+	 * @ordered
+	 */
+	protected String id = ID_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected SsdElementImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SSPProfilePackage.Literals.SSD_ELEMENT;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getID() {
+		return id;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setID(String newID) {
+		String oldID = id;
+		id = newID;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SSPProfilePackage.SSD_ELEMENT__ID, oldID, id));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SSPProfilePackage.SSD_ELEMENT__ID:
+				return getID();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SSPProfilePackage.SSD_ELEMENT__ID:
+				setID((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SSPProfilePackage.SSD_ELEMENT__ID:
+				setID(ID_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SSPProfilePackage.SSD_ELEMENT__ID:
+				return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (ID: ");
+		result.append(id);
+		result.append(')');
+		return result.toString();
+	}
+
+} //SsdElementImpl
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/profile/impl/SsdImpl.java b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/profile/impl/SsdImpl.java
new file mode 100644
index 0000000..99bfac2
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/profile/impl/SsdImpl.java
@@ -0,0 +1,349 @@
+/**
+ *  Copyright (c) 2018,  IncQuery Labs Ltd and 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:
+ *  IncQuery Labs Ltd - initial API and implementation
+ *  CEA List 
+ */
+package org.eclipse.papyrus.moka.ssp.profile.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.moka.ssp.profile.SSPProfilePackage;
+import org.eclipse.papyrus.moka.ssp.profile.Ssd;
+import org.eclipse.papyrus.moka.ssp.profile.SsdSystem;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Ssd</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.profile.impl.SsdImpl#getBase_Package <em>Base Package</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.profile.impl.SsdImpl#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.profile.impl.SsdImpl#getVersion <em>Version</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.profile.impl.SsdImpl#getMainSystem <em>Main System</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class SsdImpl extends MinimalEObjectImpl.Container implements Ssd {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final String copyright = " Copyright (c) 2018,  IncQuery Labs Ltd and CEA List.\n All rights reserved. This program and the accompanying materials\nare made available under the terms of the Eclipse Public License v1.0\nwhich accompanies this distribution, and is available at\nhttp://www.eclipse.org/legal/epl-v10.html\n \nContributors:\n IncQuery Labs Ltd - initial API and implementation\n CEA List ";
+
+	/**
+	 * The cached value of the '{@link #getBase_Package() <em>Base Package</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBase_Package()
+	 * @generated
+	 * @ordered
+	 */
+	protected org.eclipse.uml2.uml.Package base_Package;
+
+	/**
+	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String NAME_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getName()
+	 * @generated
+	 * @ordered
+	 */
+	protected String name = NAME_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getVersion() <em>Version</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getVersion()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String VERSION_EDEFAULT = null;
+
+	/**
+	 * The cached value of the '{@link #getVersion() <em>Version</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getVersion()
+	 * @generated
+	 * @ordered
+	 */
+	protected String version = VERSION_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getMainSystem() <em>Main System</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getMainSystem()
+	 * @generated
+	 * @ordered
+	 */
+	protected SsdSystem mainSystem;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected SsdImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SSPProfilePackage.Literals.SSD;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public org.eclipse.uml2.uml.Package getBase_Package() {
+		if (base_Package != null && base_Package.eIsProxy()) {
+			InternalEObject oldBase_Package = (InternalEObject)base_Package;
+			base_Package = (org.eclipse.uml2.uml.Package)eResolveProxy(oldBase_Package);
+			if (base_Package != oldBase_Package) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, SSPProfilePackage.SSD__BASE_PACKAGE, oldBase_Package, base_Package));
+			}
+		}
+		return base_Package;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public org.eclipse.uml2.uml.Package basicGetBase_Package() {
+		return base_Package;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setBase_Package(org.eclipse.uml2.uml.Package newBase_Package) {
+		org.eclipse.uml2.uml.Package oldBase_Package = base_Package;
+		base_Package = newBase_Package;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SSPProfilePackage.SSD__BASE_PACKAGE, oldBase_Package, base_Package));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setName(String newName) {
+		String oldName = name;
+		name = newName;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SSPProfilePackage.SSD__NAME, oldName, name));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getVersion() {
+		return version;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setVersion(String newVersion) {
+		String oldVersion = version;
+		version = newVersion;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SSPProfilePackage.SSD__VERSION, oldVersion, version));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SsdSystem getMainSystem() {
+		if (mainSystem != null && mainSystem.eIsProxy()) {
+			InternalEObject oldMainSystem = (InternalEObject)mainSystem;
+			mainSystem = (SsdSystem)eResolveProxy(oldMainSystem);
+			if (mainSystem != oldMainSystem) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, SSPProfilePackage.SSD__MAIN_SYSTEM, oldMainSystem, mainSystem));
+			}
+		}
+		return mainSystem;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SsdSystem basicGetMainSystem() {
+		return mainSystem;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setMainSystem(SsdSystem newMainSystem) {
+		SsdSystem oldMainSystem = mainSystem;
+		mainSystem = newMainSystem;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SSPProfilePackage.SSD__MAIN_SYSTEM, oldMainSystem, mainSystem));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SSPProfilePackage.SSD__BASE_PACKAGE:
+				if (resolve) return getBase_Package();
+				return basicGetBase_Package();
+			case SSPProfilePackage.SSD__NAME:
+				return getName();
+			case SSPProfilePackage.SSD__VERSION:
+				return getVersion();
+			case SSPProfilePackage.SSD__MAIN_SYSTEM:
+				if (resolve) return getMainSystem();
+				return basicGetMainSystem();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SSPProfilePackage.SSD__BASE_PACKAGE:
+				setBase_Package((org.eclipse.uml2.uml.Package)newValue);
+				return;
+			case SSPProfilePackage.SSD__NAME:
+				setName((String)newValue);
+				return;
+			case SSPProfilePackage.SSD__VERSION:
+				setVersion((String)newValue);
+				return;
+			case SSPProfilePackage.SSD__MAIN_SYSTEM:
+				setMainSystem((SsdSystem)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SSPProfilePackage.SSD__BASE_PACKAGE:
+				setBase_Package((org.eclipse.uml2.uml.Package)null);
+				return;
+			case SSPProfilePackage.SSD__NAME:
+				setName(NAME_EDEFAULT);
+				return;
+			case SSPProfilePackage.SSD__VERSION:
+				setVersion(VERSION_EDEFAULT);
+				return;
+			case SSPProfilePackage.SSD__MAIN_SYSTEM:
+				setMainSystem((SsdSystem)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SSPProfilePackage.SSD__BASE_PACKAGE:
+				return base_Package != null;
+			case SSPProfilePackage.SSD__NAME:
+				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+			case SSPProfilePackage.SSD__VERSION:
+				return VERSION_EDEFAULT == null ? version != null : !VERSION_EDEFAULT.equals(version);
+			case SSPProfilePackage.SSD__MAIN_SYSTEM:
+				return mainSystem != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuffer result = new StringBuffer(super.toString());
+		result.append(" (name: ");
+		result.append(name);
+		result.append(", version: ");
+		result.append(version);
+		result.append(')');
+		return result.toString();
+	}
+
+} //SsdImpl
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/profile/impl/SsdSignalDictionaryReferenceImpl.java b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/profile/impl/SsdSignalDictionaryReferenceImpl.java
new file mode 100644
index 0000000..5eba0c3
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/profile/impl/SsdSignalDictionaryReferenceImpl.java
@@ -0,0 +1,166 @@
+/**
+ *  Copyright (c) 2018,  IncQuery Labs Ltd and 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:
+ *  IncQuery Labs Ltd - initial API and implementation
+ *  CEA List 
+ */
+package org.eclipse.papyrus.moka.ssp.profile.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.moka.ssp.profile.SSPProfilePackage;
+import org.eclipse.papyrus.moka.ssp.profile.SsdSignalDictionaryReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Ssd Signal Dictionary Reference</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.profile.impl.SsdSignalDictionaryReferenceImpl#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class SsdSignalDictionaryReferenceImpl extends SsdElementImpl implements SsdSignalDictionaryReference {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final String copyright = " Copyright (c) 2018,  IncQuery Labs Ltd and CEA List.\n All rights reserved. This program and the accompanying materials\nare made available under the terms of the Eclipse Public License v1.0\nwhich accompanies this distribution, and is available at\nhttp://www.eclipse.org/legal/epl-v10.html\n \nContributors:\n IncQuery Labs Ltd - initial API and implementation\n CEA List ";
+
+	/**
+	 * The cached value of the '{@link #getBase_Class() <em>Base Class</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBase_Class()
+	 * @generated
+	 * @ordered
+	 */
+	protected org.eclipse.uml2.uml.Class base_Class;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected SsdSignalDictionaryReferenceImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SSPProfilePackage.Literals.SSD_SIGNAL_DICTIONARY_REFERENCE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public org.eclipse.uml2.uml.Class getBase_Class() {
+		if (base_Class != null && base_Class.eIsProxy()) {
+			InternalEObject oldBase_Class = (InternalEObject)base_Class;
+			base_Class = (org.eclipse.uml2.uml.Class)eResolveProxy(oldBase_Class);
+			if (base_Class != oldBase_Class) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, SSPProfilePackage.SSD_SIGNAL_DICTIONARY_REFERENCE__BASE_CLASS, oldBase_Class, base_Class));
+			}
+		}
+		return base_Class;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public org.eclipse.uml2.uml.Class basicGetBase_Class() {
+		return base_Class;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setBase_Class(org.eclipse.uml2.uml.Class newBase_Class) {
+		org.eclipse.uml2.uml.Class oldBase_Class = base_Class;
+		base_Class = newBase_Class;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SSPProfilePackage.SSD_SIGNAL_DICTIONARY_REFERENCE__BASE_CLASS, oldBase_Class, base_Class));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SSPProfilePackage.SSD_SIGNAL_DICTIONARY_REFERENCE__BASE_CLASS:
+				if (resolve) return getBase_Class();
+				return basicGetBase_Class();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SSPProfilePackage.SSD_SIGNAL_DICTIONARY_REFERENCE__BASE_CLASS:
+				setBase_Class((org.eclipse.uml2.uml.Class)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SSPProfilePackage.SSD_SIGNAL_DICTIONARY_REFERENCE__BASE_CLASS:
+				setBase_Class((org.eclipse.uml2.uml.Class)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SSPProfilePackage.SSD_SIGNAL_DICTIONARY_REFERENCE__BASE_CLASS:
+				return base_Class != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //SsdSignalDictionaryReferenceImpl
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/profile/impl/SsdSystemImpl.java b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/profile/impl/SsdSystemImpl.java
new file mode 100644
index 0000000..7aa7663
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/profile/impl/SsdSystemImpl.java
@@ -0,0 +1,166 @@
+/**
+ *  Copyright (c) 2018,  IncQuery Labs Ltd and 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:
+ *  IncQuery Labs Ltd - initial API and implementation
+ *  CEA List 
+ */
+package org.eclipse.papyrus.moka.ssp.profile.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.moka.ssp.profile.SSPProfilePackage;
+import org.eclipse.papyrus.moka.ssp.profile.SsdSystem;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Ssd System</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.profile.impl.SsdSystemImpl#getBase_Class <em>Base Class</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class SsdSystemImpl extends SsdElementImpl implements SsdSystem {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final String copyright = " Copyright (c) 2018,  IncQuery Labs Ltd and CEA List.\n All rights reserved. This program and the accompanying materials\nare made available under the terms of the Eclipse Public License v1.0\nwhich accompanies this distribution, and is available at\nhttp://www.eclipse.org/legal/epl-v10.html\n \nContributors:\n IncQuery Labs Ltd - initial API and implementation\n CEA List ";
+
+	/**
+	 * The cached value of the '{@link #getBase_Class() <em>Base Class</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getBase_Class()
+	 * @generated
+	 * @ordered
+	 */
+	protected org.eclipse.uml2.uml.Class base_Class;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected SsdSystemImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected EClass eStaticClass() {
+		return SSPProfilePackage.Literals.SSD_SYSTEM;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public org.eclipse.uml2.uml.Class getBase_Class() {
+		if (base_Class != null && base_Class.eIsProxy()) {
+			InternalEObject oldBase_Class = (InternalEObject)base_Class;
+			base_Class = (org.eclipse.uml2.uml.Class)eResolveProxy(oldBase_Class);
+			if (base_Class != oldBase_Class) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, SSPProfilePackage.SSD_SYSTEM__BASE_CLASS, oldBase_Class, base_Class));
+			}
+		}
+		return base_Class;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public org.eclipse.uml2.uml.Class basicGetBase_Class() {
+		return base_Class;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setBase_Class(org.eclipse.uml2.uml.Class newBase_Class) {
+		org.eclipse.uml2.uml.Class oldBase_Class = base_Class;
+		base_Class = newBase_Class;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SSPProfilePackage.SSD_SYSTEM__BASE_CLASS, oldBase_Class, base_Class));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case SSPProfilePackage.SSD_SYSTEM__BASE_CLASS:
+				if (resolve) return getBase_Class();
+				return basicGetBase_Class();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case SSPProfilePackage.SSD_SYSTEM__BASE_CLASS:
+				setBase_Class((org.eclipse.uml2.uml.Class)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case SSPProfilePackage.SSD_SYSTEM__BASE_CLASS:
+				setBase_Class((org.eclipse.uml2.uml.Class)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case SSPProfilePackage.SSD_SYSTEM__BASE_CLASS:
+				return base_Class != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //SsdSystemImpl
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/profile/util/SSPProfileAdapterFactory.java b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/profile/util/SSPProfileAdapterFactory.java
new file mode 100644
index 0000000..336170c
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/profile/util/SSPProfileAdapterFactory.java
@@ -0,0 +1,307 @@
+/**
+ *  Copyright (c) 2018,  IncQuery Labs Ltd and 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:
+ *  IncQuery Labs Ltd - initial API and implementation
+ *  CEA List 
+ */
+package org.eclipse.papyrus.moka.ssp.profile.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.papyrus.moka.fmi.fmiprofile.FMIPort;
+import org.eclipse.papyrus.moka.fmi.fmiprofile.ScalarVariable;
+
+import org.eclipse.papyrus.moka.ssp.profile.*;
+
+import org.eclipse.papyrus.sysml14.deprecatedelements.FlowPort;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.moka.ssp.profile.SSPProfilePackage
+ * @generated
+ */
+public class SSPProfileAdapterFactory extends AdapterFactoryImpl {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final String copyright = " Copyright (c) 2018,  IncQuery Labs Ltd and CEA List.\n All rights reserved. This program and the accompanying materials\nare made available under the terms of the Eclipse Public License v1.0\nwhich accompanies this distribution, and is available at\nhttp://www.eclipse.org/legal/epl-v10.html\n \nContributors:\n IncQuery Labs Ltd - initial API and implementation\n CEA List ";
+
+	/**
+	 * The cached model package.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static SSPProfilePackage modelPackage;
+
+	/**
+	 * Creates an instance of the adapter factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SSPProfileAdapterFactory() {
+		if (modelPackage == null) {
+			modelPackage = SSPProfilePackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Returns whether this factory is applicable for the type of the object.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+	 * <!-- end-user-doc -->
+	 * @return whether this factory is applicable for the type of the object.
+	 * @generated
+	 */
+	public boolean isFactoryForType(Object object) {
+		if (object == modelPackage) {
+			return true;
+		}
+		if (object instanceof EObject) {
+			return ((EObject)object).eClass().getEPackage() == modelPackage;
+		}
+		return false;
+	}
+
+	/**
+	 * The switch that delegates to the <code>createXXX</code> methods.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected SSPProfileSwitch modelSwitch =
+		new SSPProfileSwitch() {
+			public Object caseSsdConnection(SsdConnection object) {
+				return createSsdConnectionAdapter();
+			}
+			public Object caseSsdConnector(SsdConnector object) {
+				return createSsdConnectorAdapter();
+			}
+			public Object caseSsdElement(SsdElement object) {
+				return createSsdElementAdapter();
+			}
+			public Object caseSsdSystem(SsdSystem object) {
+				return createSsdSystemAdapter();
+			}
+			public Object caseSsdSignalDictionaryReference(SsdSignalDictionaryReference object) {
+				return createSsdSignalDictionaryReferenceAdapter();
+			}
+			public Object caseSsdComponent(SsdComponent object) {
+				return createSsdComponentAdapter();
+			}
+			public Object caseSsd(Ssd object) {
+				return createSsdAdapter();
+			}
+			public Object caseSsdConnectorAndFmiPort(SsdConnectorAndFmiPort object) {
+				return createSsdConnectorAndFmiPortAdapter();
+			}
+			public Object caseFlowPort(FlowPort object) {
+				return createFlowPortAdapter();
+			}
+			public Object caseScalarVariable(ScalarVariable object) {
+				return createScalarVariableAdapter();
+			}
+			public Object caseFMIPort(FMIPort object) {
+				return createFMIPortAdapter();
+			}
+			public Object defaultCase(EObject object) {
+				return createEObjectAdapter();
+			}
+		};
+
+	/**
+	 * Creates an adapter for the <code>target</code>.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param target the object to adapt.
+	 * @return the adapter for the <code>target</code>.
+	 * @generated
+	 */
+	public Adapter createAdapter(Notifier target) {
+		return (Adapter)modelSwitch.doSwitch((EObject)target);
+	}
+
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.moka.ssp.profile.SsdConnection <em>Ssd Connection</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.moka.ssp.profile.SsdConnection
+	 * @generated
+	 */
+	public Adapter createSsdConnectionAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.moka.ssp.profile.SsdConnector <em>Ssd Connector</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.moka.ssp.profile.SsdConnector
+	 * @generated
+	 */
+	public Adapter createSsdConnectorAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.moka.ssp.profile.SsdElement <em>Ssd Element</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.moka.ssp.profile.SsdElement
+	 * @generated
+	 */
+	public Adapter createSsdElementAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.moka.ssp.profile.SsdSystem <em>Ssd System</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.moka.ssp.profile.SsdSystem
+	 * @generated
+	 */
+	public Adapter createSsdSystemAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.moka.ssp.profile.SsdSignalDictionaryReference <em>Ssd Signal Dictionary Reference</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.moka.ssp.profile.SsdSignalDictionaryReference
+	 * @generated
+	 */
+	public Adapter createSsdSignalDictionaryReferenceAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.moka.ssp.profile.SsdComponent <em>Ssd Component</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.moka.ssp.profile.SsdComponent
+	 * @generated
+	 */
+	public Adapter createSsdComponentAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.moka.ssp.profile.Ssd <em>Ssd</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.moka.ssp.profile.Ssd
+	 * @generated
+	 */
+	public Adapter createSsdAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.moka.ssp.profile.SsdConnectorAndFmiPort <em>Ssd Connector And Fmi Port</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.moka.ssp.profile.SsdConnectorAndFmiPort
+	 * @generated
+	 */
+	public Adapter createSsdConnectorAndFmiPortAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.sysml14.deprecatedelements.FlowPort <em>Flow Port</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.sysml14.deprecatedelements.FlowPort
+	 * @generated
+	 */
+	public Adapter createFlowPortAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.moka.fmi.fmiprofile.ScalarVariable <em>Scalar Variable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.moka.fmi.fmiprofile.ScalarVariable
+	 * @generated
+	 */
+	public Adapter createScalarVariableAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.moka.fmi.fmiprofile.FMIPort <em>FMI Port</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.papyrus.moka.fmi.fmiprofile.FMIPort
+	 * @generated
+	 */
+	public Adapter createFMIPortAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for the default case.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @generated
+	 */
+	public Adapter createEObjectAdapter() {
+		return null;
+	}
+
+} //SSPProfileAdapterFactory
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/profile/util/SSPProfileSwitch.java b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/profile/util/SSPProfileSwitch.java
new file mode 100644
index 0000000..9bbafbf
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src-gen/org/eclipse/papyrus/moka/ssp/profile/util/SSPProfileSwitch.java
@@ -0,0 +1,347 @@
+/**
+ *  Copyright (c) 2018,  IncQuery Labs Ltd and 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:
+ *  IncQuery Labs Ltd - initial API and implementation
+ *  CEA List 
+ */
+package org.eclipse.papyrus.moka.ssp.profile.util;
+
+import java.util.List;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.papyrus.moka.fmi.fmiprofile.FMIPort;
+import org.eclipse.papyrus.moka.fmi.fmiprofile.ScalarVariable;
+
+import org.eclipse.papyrus.moka.ssp.profile.*;
+
+import org.eclipse.papyrus.sysml14.deprecatedelements.FlowPort;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.moka.ssp.profile.SSPProfilePackage
+ * @generated
+ */
+public class SSPProfileSwitch {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final String copyright = " Copyright (c) 2018,  IncQuery Labs Ltd and CEA List.\n All rights reserved. This program and the accompanying materials\nare made available under the terms of the Eclipse Public License v1.0\nwhich accompanies this distribution, and is available at\nhttp://www.eclipse.org/legal/epl-v10.html\n \nContributors:\n IncQuery Labs Ltd - initial API and implementation\n CEA List ";
+
+	/**
+	 * The cached model package
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected static SSPProfilePackage modelPackage;
+
+	/**
+	 * Creates an instance of the switch.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public SSPProfileSwitch() {
+		if (modelPackage == null) {
+			modelPackage = SSPProfilePackage.eINSTANCE;
+		}
+	}
+
+	/**
+	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the first non-null result returned by a <code>caseXXX</code> call.
+	 * @generated
+	 */
+	public Object doSwitch(EObject theEObject) {
+		return doSwitch(theEObject.eClass(), theEObject);
+	}
+
+	/**
+	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the first non-null result returned by a <code>caseXXX</code> call.
+	 * @generated
+	 */
+	protected Object doSwitch(EClass theEClass, EObject theEObject) {
+		if (theEClass.eContainer() == modelPackage) {
+			return doSwitch(theEClass.getClassifierID(), theEObject);
+		}
+		else {
+			List eSuperTypes = theEClass.getESuperTypes();
+			return
+				eSuperTypes.isEmpty() ?
+					defaultCase(theEObject) :
+					doSwitch((EClass)eSuperTypes.get(0), theEObject);
+		}
+	}
+
+	/**
+	 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the first non-null result returned by a <code>caseXXX</code> call.
+	 * @generated
+	 */
+	protected Object doSwitch(int classifierID, EObject theEObject) {
+		switch (classifierID) {
+			case SSPProfilePackage.SSD_CONNECTION: {
+				SsdConnection ssdConnection = (SsdConnection)theEObject;
+				Object result = caseSsdConnection(ssdConnection);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SSPProfilePackage.SSD_CONNECTOR: {
+				SsdConnector ssdConnector = (SsdConnector)theEObject;
+				Object result = caseSsdConnector(ssdConnector);
+				if (result == null) result = caseFlowPort(ssdConnector);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SSPProfilePackage.SSD_ELEMENT: {
+				SsdElement ssdElement = (SsdElement)theEObject;
+				Object result = caseSsdElement(ssdElement);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SSPProfilePackage.SSD_SYSTEM: {
+				SsdSystem ssdSystem = (SsdSystem)theEObject;
+				Object result = caseSsdSystem(ssdSystem);
+				if (result == null) result = caseSsdElement(ssdSystem);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SSPProfilePackage.SSD_SIGNAL_DICTIONARY_REFERENCE: {
+				SsdSignalDictionaryReference ssdSignalDictionaryReference = (SsdSignalDictionaryReference)theEObject;
+				Object result = caseSsdSignalDictionaryReference(ssdSignalDictionaryReference);
+				if (result == null) result = caseSsdElement(ssdSignalDictionaryReference);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SSPProfilePackage.SSD_COMPONENT: {
+				SsdComponent ssdComponent = (SsdComponent)theEObject;
+				Object result = caseSsdComponent(ssdComponent);
+				if (result == null) result = caseSsdElement(ssdComponent);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SSPProfilePackage.SSD: {
+				Ssd ssd = (Ssd)theEObject;
+				Object result = caseSsd(ssd);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case SSPProfilePackage.SSD_CONNECTOR_AND_FMI_PORT: {
+				SsdConnectorAndFmiPort ssdConnectorAndFmiPort = (SsdConnectorAndFmiPort)theEObject;
+				Object result = caseSsdConnectorAndFmiPort(ssdConnectorAndFmiPort);
+				if (result == null) result = caseFMIPort(ssdConnectorAndFmiPort);
+				if (result == null) result = caseSsdConnector(ssdConnectorAndFmiPort);
+				if (result == null) result = caseScalarVariable(ssdConnectorAndFmiPort);
+				if (result == null) result = caseFlowPort(ssdConnectorAndFmiPort);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			default: return defaultCase(theEObject);
+		}
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Ssd Connection</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Ssd Connection</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseSsdConnection(SsdConnection object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Ssd Connector</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Ssd Connector</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseSsdConnector(SsdConnector object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Ssd Element</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Ssd Element</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseSsdElement(SsdElement object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Ssd System</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Ssd System</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseSsdSystem(SsdSystem object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Ssd Signal Dictionary Reference</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Ssd Signal Dictionary Reference</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseSsdSignalDictionaryReference(SsdSignalDictionaryReference object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Ssd Component</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Ssd Component</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseSsdComponent(SsdComponent object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Ssd</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Ssd</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseSsd(Ssd object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Ssd Connector And Fmi Port</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Ssd Connector And Fmi Port</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseSsdConnectorAndFmiPort(SsdConnectorAndFmiPort object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Flow Port</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Flow Port</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseFlowPort(FlowPort object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Scalar Variable</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Scalar Variable</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseScalarVariable(ScalarVariable object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>FMI Port</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>FMI Port</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public Object caseFMIPort(FMIPort object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch, but this is the last case anyway.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+	 * @generated
+	 */
+	public Object defaultCase(EObject object) {
+		return null;
+	}
+
+} //SSPProfileSwitch
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/operations/TLMInterfaceDefinitionOperations.java b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/operations/TLMInterfaceDefinitionOperations.java
new file mode 100644
index 0000000..8be99b7
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src/org/eclipse/papyrus/moka/ssp/omsimulatorprofile/operations/TLMInterfaceDefinitionOperations.java
@@ -0,0 +1,73 @@
+/**
+ * Copyright (c) 2018 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:
+ *   CEA LIST - Initial API and implementation
+ */
+package org.eclipse.papyrus.moka.ssp.omsimulatorprofile.operations;
+
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMInterfaceDefinition;
+import org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMSignalDefinition;
+import org.eclipse.uml2.uml.Class;
+import org.eclipse.uml2.uml.Property;
+import org.eclipse.uml2.uml.util.UMLUtil;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A static utility class that provides operations related to '<em><b>TLM Interface Definition</b></em>' model objects.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following operations are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.moka.ssp.omsimulatorprofile.TLMInterfaceDefinition#getSignalDefinitions() <em>Get Signal Definitions</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class TLMInterfaceDefinitionOperations {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static final String copyright = "Copyright (c) 2018 CEA LIST.\n\n All rights reserved. This program and the accompanying materials\n are made available under the terms of the Eclipse Public License v1.0\n which accompanies this distribution, and is available at\n http://www.eclipse.org/legal/epl-v10.html\n\n Contributors:\n  CEA LIST - Initial API and implementation";
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected TLMInterfaceDefinitionOperations() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated NOT
+	 */
+	public static  EList<TLMSignalDefinition> getSignalDefinitions(TLMInterfaceDefinition tlmInterfaceDefinition) {
+		Class baseClass = tlmInterfaceDefinition.getBase_Class();
+		EList<TLMSignalDefinition> result = new BasicEList<>();
+		
+		for (Property  prop : baseClass.getAllAttributes()) {
+			TLMSignalDefinition def = UMLUtil.getStereotypeApplication(prop, TLMSignalDefinition.class);
+			if (def != null) {
+				result.add(def);
+			}
+		}
+		
+		return result;
+	}
+
+} // TLMInterfaceDefinitionOperations
\ No newline at end of file
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src/org/eclipse/papyrus/moka/ssp/profile/custom/StereotypeStrings.java b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src/org/eclipse/papyrus/moka/ssp/profile/custom/StereotypeStrings.java
new file mode 100644
index 0000000..3dacabc
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src/org/eclipse/papyrus/moka/ssp/profile/custom/StereotypeStrings.java
@@ -0,0 +1,35 @@
+package org.eclipse.papyrus.moka.ssp.profile.custom;
+
+import org.eclipse.papyrus.moka.ssp.profile.SSPProfilePackage;
+
+public final class StereotypeStrings {
+	
+	private static final SSPProfilePackage sspPackage = SSPProfilePackage.eINSTANCE;	
+	public static final String SSPPROFILE_QUALIFIEDNAME = "SSPProfile";
+	
+	public static final String SSD_SHORTNAME = sspPackage.getSsd().getName();
+	public static final String SSDSYSTEM_SHORTNAME = sspPackage.getSsdSystem().getName();
+	public static final String SSDCOMPONENT_SHORTNAME = sspPackage.getSsdComponent().getName();
+	public static final String SSDSIGNAL_DICTIONARY_REFERENCE_SHORTNAME = sspPackage.getSsdSignalDictionaryReference().getName();
+	public static final String SSDCONNECTION_SHORTNAME = sspPackage.getSsdConnection().getName();
+	public static final String SSDCONNECTOR_SHORTNAME = sspPackage.getSsdConnector().getName();
+	public static final String SSDCONNECTORANDFMIPORT_SHORTNAME = sspPackage.getSsdConnectorAndFmiPort().getName();
+	
+	public static final String SSD_QUALIFIEDNAME = SSPPROFILE_QUALIFIEDNAME + "::" + SSD_SHORTNAME;	
+	public static final String SSDSYSTEM_QUALIFIEDNAME = SSPPROFILE_QUALIFIEDNAME + "::" + SSDSYSTEM_SHORTNAME;	
+	public static final String SSDCOMPONENT_QUALIFIEDNAME = SSPPROFILE_QUALIFIEDNAME + "::" + SSDCOMPONENT_SHORTNAME;	
+	public static final String SSDSIGNAL_DICTIONARY_REFERENCE_QUALIFIEDNAME = SSPPROFILE_QUALIFIEDNAME + "::" + SSDSIGNAL_DICTIONARY_REFERENCE_SHORTNAME;	
+	public static final String SSDCONNECTION_QUALIFIEDNAME = SSPPROFILE_QUALIFIEDNAME + "::" + SSDCONNECTION_SHORTNAME;	
+	public static final String SSDCONNECTOR_QUALIFIEDNAME = SSPPROFILE_QUALIFIEDNAME + "::" + SSDCONNECTOR_SHORTNAME;	
+	public static final String SSDCONNECTORANDFMIPORT_QUALIFIEDNAME = SSPPROFILE_QUALIFIEDNAME + "::" + SSDCONNECTORANDFMIPORT_SHORTNAME;
+	
+	public static final String SSDCONNECTION_START = "start";
+	public static final String SSDCONNECTION_END = "end";
+	public static final String SSDCOMPONENT_SOURCE = "source";
+	public static final String SSDCOMPONENT_TYPE = "type";
+	public static final String SSDCOMPONENT_FMU = "fmu";
+	public static final String SSDELEMENT_ID = "ID";
+	public static final String SSD_VERSION = "version";
+	public static final String SSD_MAINSYSTEM = "mainSystem";
+	public static final String SSD_NAME = "name";
+}
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src/org/eclipse/papyrus/moka/ssp/profile/custom/imp/CustomSSPProfileFactoryImpl.java b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src/org/eclipse/papyrus/moka/ssp/profile/custom/imp/CustomSSPProfileFactoryImpl.java
new file mode 100644
index 0000000..c330403
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src/org/eclipse/papyrus/moka/ssp/profile/custom/imp/CustomSSPProfileFactoryImpl.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2018, Krisztián Mócsai, IncQuery Labs Ltd.
+ * 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:
+ *   Krisztián Mócsai - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.papyrus.moka.ssp.profile.custom.imp;
+
+import org.eclipse.papyrus.moka.ssp.profile.SsdConnection;
+import org.eclipse.papyrus.moka.ssp.profile.SsdConnector;
+import org.eclipse.papyrus.moka.ssp.profile.SsdConnectorAndFmiPort;
+import org.eclipse.papyrus.moka.ssp.profile.impl.SSPProfileFactoryImpl;
+
+public class CustomSSPProfileFactoryImpl extends SSPProfileFactoryImpl {
+
+	@Override
+	public SsdConnection createSsdConnection() {
+		return new CustomSsdConnectionImpl();
+	}
+
+	@Override
+	public SsdConnectorAndFmiPort createSsdConnectorAndFmiPort() {
+		return new CustomSsdConnectorAndFmiPortImpl();
+	}
+
+	@Override
+	public SsdConnector createSsdConnector() {
+		return new CustomSsdConnector();
+	}
+}
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src/org/eclipse/papyrus/moka/ssp/profile/custom/imp/CustomSsdConnectionImpl.java b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src/org/eclipse/papyrus/moka/ssp/profile/custom/imp/CustomSsdConnectionImpl.java
new file mode 100644
index 0000000..32f6b1a
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src/org/eclipse/papyrus/moka/ssp/profile/custom/imp/CustomSsdConnectionImpl.java
@@ -0,0 +1,84 @@
+/*******************************************************************************
+ * Copyright (c) 2018, Krisztián Mócsai, IncQuery Labs Ltd.
+ * 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:
+ *   Krisztián Mócsai - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.papyrus.moka.ssp.profile.custom.imp;
+
+import org.eclipse.papyrus.moka.ssp.profile.SsdConnector;
+import org.eclipse.papyrus.moka.ssp.profile.custom.StereotypeStrings;
+import org.eclipse.papyrus.moka.ssp.profile.impl.SsdConnectionImpl;
+import org.eclipse.uml2.uml.ConnectableElement;
+import org.eclipse.uml2.uml.ConnectorEnd;
+import org.eclipse.uml2.uml.Port;
+import org.eclipse.uml2.uml.Property;
+import org.eclipse.uml2.uml.Stereotype;
+
+public class CustomSsdConnectionImpl extends SsdConnectionImpl {
+
+	private final int START_INDEX = 0;
+	private final int END_INDEX = 1;
+
+	@Override
+	public SsdConnector basicGetStart() {
+		if (getBase_Connector() != null) {
+			ConnectorEnd connectionEnd = getBase_Connector().getEnds().get(START_INDEX);
+
+			ConnectableElement port = connectionEnd.getRole();
+			if (port == null || !(port instanceof Port)) {
+				return null;
+			}
+			SsdConnector ssdConnector = getSsdConnector((Port) port);
+			return ssdConnector;
+		}
+		return null;
+	}
+
+	@Override
+	public SsdConnector basicGetEnd() {
+		if (getBase_Connector() != null) {
+			ConnectorEnd connectionEnd = getBase_Connector().getEnds().get(END_INDEX);
+
+			ConnectableElement port = connectionEnd.getRole();
+			if (port == null || !(port instanceof Port)) {
+				return null;
+			}
+			SsdConnector ssdConnector = getSsdConnector((Port) port);
+			return ssdConnector;
+		}
+		return null;
+	}
+	
+	private SsdConnector getSsdConnector(Port umlPort) {
+		Stereotype appliedStereotype = umlPort.getAppliedStereotype(StereotypeStrings.SSDCONNECTOR_QUALIFIEDNAME);
+		if (appliedStereotype == null) {
+			appliedStereotype = umlPort.getAppliedStereotype(StereotypeStrings.SSDCONNECTORANDFMIPORT_QUALIFIEDNAME);
+		}
+		SsdConnector ssdConnector = (SsdConnector) umlPort.getStereotypeApplication(appliedStereotype);
+		return ssdConnector;
+	}
+
+	@Override
+	public Property basicGetStartSsdProperty() {
+		if (getBase_Connector() != null && basicGetStart() != null) {
+			ConnectorEnd connectorEnd = base_Connector.getEnds().get(START_INDEX);
+			return connectorEnd.getPartWithPort();
+		}
+		return null;
+	}
+
+	@Override
+	public Property basicGetEndSsdProperty() {
+		if (getBase_Connector() != null && basicGetEnd() != null) {
+			ConnectorEnd connectorEnd = base_Connector.getEnds().get(END_INDEX);
+			return connectorEnd.getPartWithPort();
+		}
+		return null;
+	}
+}
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src/org/eclipse/papyrus/moka/ssp/profile/custom/imp/CustomSsdConnector.java b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src/org/eclipse/papyrus/moka/ssp/profile/custom/imp/CustomSsdConnector.java
new file mode 100644
index 0000000..51d31d3
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src/org/eclipse/papyrus/moka/ssp/profile/custom/imp/CustomSsdConnector.java
@@ -0,0 +1,82 @@
+/*******************************************************************************
+ * Copyright (c) 2018, Krisztián Mócsai, IncQuery Labs Ltd.
+ * 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:
+ *   Krisztián Mócsai - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.papyrus.moka.ssp.profile.custom.imp;
+
+import java.util.Map;
+
+import org.eclipse.papyrus.moka.ssp.profile.impl.SsdConnectorImpl;
+import org.eclipse.papyrus.sysml14.deprecatedelements.FlowPort;
+import org.eclipse.papyrus.sysml14.deprecatedelements.FlowSpecification;
+import org.eclipse.papyrus.sysml14.internal.util.IconUtil;
+import org.eclipse.papyrus.sysml14.portsandflows.FlowDirection;
+import org.eclipse.uml2.uml.Image;
+import org.eclipse.uml2.uml.Interface;
+import org.eclipse.uml2.uml.Stereotype;
+import org.eclipse.uml2.uml.Type;
+import org.eclipse.uml2.uml.util.UMLUtil;
+
+public class CustomSsdConnector extends SsdConnectorImpl {
+
+	private static Map<String, Image> icons;
+	
+	@Override
+	public boolean isAtomic() {
+		boolean isAtomic = true;
+		if (getBase_Port() != null) {
+			// Find FlowPort type
+			Type type = getBase_Port().getType();
+			if ((type != null) && (type instanceof Interface)) {
+				FlowSpecification flowSpec = UMLUtil.getStereotypeApplication(type, FlowSpecification.class);
+				if (flowSpec != null) {
+					isAtomic = false;
+				}
+			}
+		}
+		return isAtomic;
+	}
+
+	public static Map<String, Image> getIcons(FlowPort flowPort) {
+		if (icons == null) {// for PERFORMANCE we call UMLUtil.getStereotype only once
+			Stereotype stereotype = UMLUtil.getStereotype(flowPort);
+			icons = IconUtil.getImages(stereotype);
+		}
+		return icons;
+	}
+
+	@Override
+	public Image getIcon() {
+		Image image = null;
+		if (getBase_Port() != null) {
+			Map<String, Image> iconList = getIcons(this);
+			switch (getDirection()) {
+			case IN:
+				image = iconList.get(getImageKey(FlowDirection.IN));
+				break;
+			case OUT:
+				image = iconList.get(getImageKey(FlowDirection.OUT));
+				break;
+			case INOUT:
+				image = iconList.get(getImageKey(FlowDirection.INOUT));
+				break;
+			default:
+				image = iconList.get(getImageKey(FlowDirection.INOUT));
+				break;
+			}
+		}
+		return image;
+	}
+
+	private String getImageKey(FlowDirection flowDirection) {
+		return FlowPort.class.getSimpleName() + "_" + flowDirection.getName().toUpperCase();//$NON-NLS-1$
+	}
+
+}
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src/org/eclipse/papyrus/moka/ssp/profile/custom/imp/CustomSsdConnectorAndFmiPortImpl.java b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src/org/eclipse/papyrus/moka/ssp/profile/custom/imp/CustomSsdConnectorAndFmiPortImpl.java
new file mode 100644
index 0000000..3e2b436
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src/org/eclipse/papyrus/moka/ssp/profile/custom/imp/CustomSsdConnectorAndFmiPortImpl.java
@@ -0,0 +1,123 @@
+/*******************************************************************************
+ * Copyright (c) 2018, Krisztián Mócsai, IncQuery Labs Ltd.
+ * 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:
+ *   Krisztián Mócsai - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.papyrus.moka.ssp.profile.custom.imp;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.papyrus.moka.fmi.profile.custom.CustomPort;
+import org.eclipse.papyrus.moka.ssp.profile.SSPProfilePackage;
+import org.eclipse.papyrus.moka.ssp.profile.SsdConnector;
+import org.eclipse.papyrus.moka.ssp.profile.SsdConnectorAndFmiPort;
+import org.eclipse.papyrus.moka.ssp.profile.TypeKind;
+
+public class CustomSsdConnectorAndFmiPortImpl extends CustomPort implements SsdConnectorAndFmiPort {
+
+	protected static final String DESCRIPTION_SSD_EDEFAULT = null;
+	protected static final TypeKind TYPE_KIND_EDEFAULT = TypeKind.INPUT_LITERAL;
+	protected String descriptionSSD = DESCRIPTION_SSD_EDEFAULT;
+	protected TypeKind typeKind = TYPE_KIND_EDEFAULT;
+
+	@Override
+	protected EClass eStaticClass() {
+		return SSPProfilePackage.Literals.SSD_CONNECTOR_AND_FMI_PORT;
+	}
+
+	@Override
+	public String getSSDDescription() {
+		return descriptionSSD;
+	}
+
+	@Override
+	public void setSSDDescription(String newDescriptionSSD) {
+		String oldDescriptionSSD = descriptionSSD;
+		descriptionSSD = newDescriptionSSD;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET,
+					SSPProfilePackage.SSD_CONNECTOR_AND_FMI_PORT__SSD_DESCRIPTION, oldDescriptionSSD, descriptionSSD));
+	}
+
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+		case SSPProfilePackage.SSD_CONNECTOR_AND_FMI_PORT__SSD_DESCRIPTION:
+			return getSSDDescription();
+		case SSPProfilePackage.SSD_CONNECTOR_AND_FMI_PORT__TYPE_KIND:
+			return getTypeKind();
+		}		
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+		case SSPProfilePackage.SSD_CONNECTOR_AND_FMI_PORT__SSD_DESCRIPTION:
+			setSSDDescription((String) newValue);
+			return;
+		case SSPProfilePackage.SSD_CONNECTOR_AND_FMI_PORT__TYPE_KIND:
+			setTypeKind((TypeKind)newValue);
+			return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+		case SSPProfilePackage.SSD_CONNECTOR_AND_FMI_PORT__SSD_DESCRIPTION:
+			setSSDDescription(DESCRIPTION_SSD_EDEFAULT);
+			return;
+		case SSPProfilePackage.SSD_CONNECTOR_AND_FMI_PORT__TYPE_KIND:
+			setTypeKind(TYPE_KIND_EDEFAULT);
+			return;
+		}
+		super.eUnset(featureID);
+	}
+
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+		case SSPProfilePackage.SSD_CONNECTOR_AND_FMI_PORT__SSD_DESCRIPTION:
+			return DESCRIPTION_SSD_EDEFAULT == null ? descriptionSSD != null
+					: !DESCRIPTION_SSD_EDEFAULT.equals(descriptionSSD);
+		case SSPProfilePackage.SSD_CONNECTOR_AND_FMI_PORT__TYPE_KIND:
+			return typeKind != TYPE_KIND_EDEFAULT;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	@Override
+	public TypeKind getTypeKind() {
+		return typeKind;
+	}
+
+	@Override
+	public void setTypeKind(TypeKind newTypeKind) {
+		TypeKind oldTypeKind = typeKind;
+		typeKind = newTypeKind == null ? TYPE_KIND_EDEFAULT : newTypeKind;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, SSPProfilePackage.SSD_CONNECTOR_AND_FMI_PORT__TYPE_KIND, oldTypeKind, typeKind));
+	}
+	
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class baseClass) {
+		if (baseClass == SsdConnector.class) {
+			switch (baseFeatureID) {
+				case SSPProfilePackage.SSD_CONNECTOR__SSD_DESCRIPTION: return SSPProfilePackage.SSD_CONNECTOR_AND_FMI_PORT__SSD_DESCRIPTION;
+				case SSPProfilePackage.SSD_CONNECTOR__TYPE_KIND: return SSPProfilePackage.SSD_CONNECTOR_AND_FMI_PORT__TYPE_KIND;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+}
diff --git a/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src/org/eclipse/papyrus/moka/ssp/profile/custom/imp/CustomSsdConnectorTypeImpl.java b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src/org/eclipse/papyrus/moka/ssp/profile/custom/imp/CustomSsdConnectorTypeImpl.java
new file mode 100644
index 0000000..d43c370
--- /dev/null
+++ b/bundles/fmi/language/org.eclipse.papyrus.moka.ssp.profile/src/org/eclipse/papyrus/moka/ssp/profile/custom/imp/CustomSsdConnectorTypeImpl.java
@@ -0,0 +1,57 @@
+/*******************************************************************************
+ * Copyright (c) 2018, Krisztián Mócsai, IncQuery Labs Ltd.
+ * 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:
+ *   Krisztián Mócsai - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.papyrus.moka.ssp.profile.custom.imp;
+
+import org.eclipse.papyrus.moka.fmi.fmiprofile.impl.FMIPortImpl;
+import org.eclipse.papyrus.moka.fmi.modeldescription.Fmi2ScalarVariable;
+import org.eclipse.papyrus.moka.fmi.modeldescription.FmiModelDescriptionType;
+import org.eclipse.papyrus.moka.fmi.profile.util.FastUMLUtil;
+import org.eclipse.papyrus.moka.ssp.profile.SsdComponent;
+import org.eclipse.uml2.uml.Class;
+
+public class CustomSsdConnectorTypeImpl extends FMIPortImpl /*implements SsdConnectorType */{
+		
+//	@Override
+//	protected EClass eStaticClass() {
+//		return SSPProfilePackage.Literals.SSD_CONNECTOR_TYPE;
+//	}
+	
+	@Override
+	public Fmi2ScalarVariable getFmiVariable() {		
+		if (fmiVariable != null){
+			return fmiVariable;
+		}else {
+			fmiVariable = getFMIVariable();
+			return fmiVariable;
+		}
+	}
+	
+	public Fmi2ScalarVariable getFMIVariable() {
+		if (base_Port != null && base_Port.getName() != null) {
+			Class owningClass = base_Port.getClass_();
+			if (owningClass != null) {
+				SsdComponent owningComponent = (SsdComponent) FastUMLUtil.fastGetStereotypeApplication(owningClass, SsdComponent.class);
+
+				if (owningComponent != null && owningComponent.getFmu() != null) {
+					FmiModelDescriptionType modelDesc = owningComponent.getFmu().getModelDescription();
+					if (modelDesc != null && modelDesc.getModelVariables() != null) {
+						for (Fmi2ScalarVariable variable : modelDesc.getModelVariables().getScalarVariable()) {
+							if (base_Port.getName().equals(variable.getName())) {
+								return variable;
+							}
+						}
+					}
+				}
+			}
+		}
+		return null;
+	}
+} 
diff --git a/bundles/fmi/language/pom.xml b/bundles/fmi/language/pom.xml
index dc88ef4..3eb1cfc 100644
--- a/bundles/fmi/language/pom.xml
+++ b/bundles/fmi/language/pom.xml
@@ -19,6 +19,7 @@
 	<!-- Modules to build -->
 	<modules>
 		<module>org.eclipse.papyrus.moka.fmi.profile</module>
+		<module>org.eclipse.papyrus.moka.ssp.profile</module>
 	</modules>
 
 </project>
\ No newline at end of file
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi.fmi2uml/META-INF/MANIFEST.MF b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi.fmi2uml/META-INF/MANIFEST.MF
index fa71922..e09b2b7 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi.fmi2uml/META-INF/MANIFEST.MF
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi.fmi2uml/META-INF/MANIFEST.MF
@@ -6,10 +6,11 @@
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.14.0,4.0.0)",
  org.eclipse.uml2.uml;bundle-version="[5.4.0,6.0.0)",
  org.eclipse.papyrus.moka.fmi.profile;bundle-version="4.0.0",
- org.eclipse.papyrus.moka.fmi;bundle-version="4.0.0"
+ org.eclipse.papyrus.moka.fmi;bundle-version="4.0.0",
+ org.eclipse.papyrus.moka.ssp.profile;bundle-version="1.0.0",
+ org.eclipse.emf.ecore
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Export-Package: org.eclipse.papyrus.moka.fmi.fmi2uml
 Bundle-Vendor: Eclipse Modeling Project
 Bundle-Activator: org.eclipse.papyrus.moka.fmi.fmi2uml.Activator
-Automatic-Module-Name: org.eclipse.papyrus.moka.fmi.fmi2uml
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi.fmi2uml/build.properties b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi.fmi2uml/build.properties
index 534edef..6f029a7 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi.fmi2uml/build.properties
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi.fmi2uml/build.properties
@@ -1,9 +1,7 @@
 source.. = src/
-output.. = target/classes/
 bin.includes = META-INF/,\
                about.html,\
-               .,\
-               pom.xml
+               .
 jars.compile.order = .
 source.. = src/
 src.includes = about.html
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi.fmi2uml/src/org/eclipse/papyrus/moka/fmi/fmi2uml/FMU2UMLTransformation.java b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi.fmi2uml/src/org/eclipse/papyrus/moka/fmi/fmi2uml/FMU2UMLTransformation.java
index 0040f63..fe219ae 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi.fmi2uml/src/org/eclipse/papyrus/moka/fmi/fmi2uml/FMU2UMLTransformation.java
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi.fmi2uml/src/org/eclipse/papyrus/moka/fmi/fmi2uml/FMU2UMLTransformation.java
@@ -17,9 +17,12 @@
 import java.util.List;
 
 import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
 import org.eclipse.emf.ecore.resource.ResourceSet;
 import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
 import org.eclipse.papyrus.moka.fmi.fmiprofile.CS_FMU;
+import org.eclipse.papyrus.moka.fmi.fmiprofile.FMIProfilePackage;
 import org.eclipse.papyrus.moka.fmi.fmumetamodel.FMUBundle;
 import org.eclipse.papyrus.moka.fmi.modeldescription.CausalityType;
 import org.eclipse.papyrus.moka.fmi.modeldescription.CoSimulationType;
@@ -29,6 +32,10 @@
 import org.eclipse.papyrus.moka.fmi.modeldescription.UnknownType1;
 import org.eclipse.papyrus.moka.fmi.profile.util.FMIProfileUtil;
 import org.eclipse.papyrus.moka.fmi.util.FMIUtil;
+import org.eclipse.papyrus.moka.ssp.profile.SSPProfilePackage;
+import org.eclipse.papyrus.moka.ssp.profile.custom.StereotypeStrings;
+import org.eclipse.papyrus.sysml14.deprecatedelements.FlowPort;
+import org.eclipse.papyrus.sysml14.portsandflows.FlowDirection;
 import org.eclipse.uml2.uml.AggregationKind;
 import org.eclipse.uml2.uml.Class;
 import org.eclipse.uml2.uml.Dependency;
@@ -59,6 +66,7 @@
 	FmiModelDescriptionType modelDescription;
 	Package dependencyPackage;
 	Class fmuClass ;
+	EPackage fmiProfile;
 	
 	
 	Stereotype outputDepStereo;
@@ -70,23 +78,26 @@
 	Stereotype outputStereo;
 	Stereotype localStereo;
 	Stereotype parameterStereo;
+	Stereotype flowPortStereo;
 	
 	private FMUBundle fmuBundle;
+	private SSPProfilePackage sspProfile;
 	public FMU2UMLTransformation(FMUBundle fmuBundle, Package receivingPackage) {
 		this.receivingPackage = receivingPackage;
 		this.fmuBundle= fmuBundle;
 		this.modelDescription  =fmuBundle.getModelDescription();
 
-		outputDepStereo= FMIProfileUtil.getStereotype(receivingPackage, FMIProfileUtil.OUTPUT_DEPENDENCY_STEREO_NAME);
-		initialUnknownDepStereo= FMIProfileUtil.getStereotype(receivingPackage, FMIProfileUtil.INITIAL_UNKNWOWN_STEREO_NAME);
-		derivativeDepStereo = FMIProfileUtil.getStereotype(receivingPackage, FMIProfileUtil.DERIVATIVE_DEPENDENCY_STEREO_NAME);
+		fmiProfile = FMIProfilePackage.eINSTANCE;
+		sspProfile = SSPProfilePackage.eINSTANCE;
+		outputDepStereo= FMIProfileUtil.getStereotype(receivingPackage, FMIProfileUtil.OUTPUT_DEPENDENCY_STEREO_NAME, fmiProfile);
+		initialUnknownDepStereo= FMIProfileUtil.getStereotype(receivingPackage, FMIProfileUtil.INITIAL_UNKNWOWN_STEREO_NAME, fmiProfile);
+		derivativeDepStereo = FMIProfileUtil.getStereotype(receivingPackage, FMIProfileUtil.DERIVATIVE_DEPENDENCY_STEREO_NAME, fmiProfile);
 		
-		calculatedParameterStereo =FMIProfileUtil.getStereotype(receivingPackage, FMIProfileUtil.CALCULATED_PARAMETER_STEREO_NAME);
-		independentStereo= FMIProfileUtil.getStereotype(receivingPackage, FMIProfileUtil.INDEPENDENT_STEREO_NAME);
-		inputStereo = FMIProfileUtil.getStereotype(receivingPackage, FMIProfileUtil.PORT_STEREO_NAME);
-		outputStereo = FMIProfileUtil.getStereotype(receivingPackage, FMIProfileUtil.PORT_STEREO_NAME);
-		localStereo = FMIProfileUtil.getStereotype(receivingPackage, FMIProfileUtil.LOCAL_STEREO_NAME);
-		parameterStereo =FMIProfileUtil.getStereotype(receivingPackage, FMIProfileUtil.PARAMETER_STEREO_NAME);
+		calculatedParameterStereo =FMIProfileUtil.getStereotype(receivingPackage, FMIProfileUtil.CALCULATED_PARAMETER_STEREO_NAME, fmiProfile);
+		independentStereo= FMIProfileUtil.getStereotype(receivingPackage, FMIProfileUtil.INDEPENDENT_STEREO_NAME, fmiProfile);
+
+		localStereo = FMIProfileUtil.getStereotype(receivingPackage, FMIProfileUtil.LOCAL_STEREO_NAME, fmiProfile);
+		parameterStereo =FMIProfileUtil.getStereotype(receivingPackage, FMIProfileUtil.PARAMETER_STEREO_NAME, fmiProfile);
 		
 	}
 
@@ -97,11 +108,12 @@
 			if (! modelDescription.getCoSimulation().isEmpty()) {
 				CoSimulationType cosim =modelDescription.getCoSimulation().get(0);
 
-				FMIProfileUtil.applyFMIProfileIfNeeded(receivingPackage);
+				FMIProfileUtil.applyProfileIfNeeded(receivingPackage, fmiProfile);
+				FMIProfileUtil.applyProfileIfNeeded(receivingPackage, sspProfile);
 				fmuClass = receivingPackage.createOwnedClass(cosim.getModelIdentifier(), false);
 				dependencyPackage = receivingPackage.createNestedPackage(cosim.getModelIdentifier()+FMI2UML.DEPENDENCIES_PACKAGE_SUFFIX);
 
-				CS_FMU csFMU = (CS_FMU) fmuClass.applyStereotype(FMIProfileUtil.getStereotype(receivingPackage, FMIProfileUtil.CS_FMU_STEREO_NAME));
+				CS_FMU csFMU = (CS_FMU) fmuClass.applyStereotype(FMIProfileUtil.getStereotype(receivingPackage, FMIProfileUtil.CS_FMU_STEREO_NAME, fmiProfile));
 
 				csFMU.setFmuBundle(fmuBundle);
 
@@ -187,6 +199,13 @@
 		}
 		
 		fmuClass.getOwnedAttributes().add(prop);
+		if (FMIUtil.isPort(variable) && flowPortStereo == null) {
+			flowPortStereo = FMIProfileUtil.getStereotype(prop, StereotypeStrings.SSDCONNECTORANDFMIPORT_SHORTNAME, SSPProfilePackage.eINSTANCE);
+			inputStereo = flowPortStereo;
+			outputStereo = flowPortStereo;
+		}
+		
+		
 		prop.setName(variable.getName());
 		prop.setType(propType);
 		prop.setUpper(1);
@@ -195,7 +214,14 @@
 		setDefaultValue(prop, variable);
 		Stereotype stereo = getPropertyStereotype(variable.getCausality());
 		if (stereo != null){
-			prop.applyStereotype(stereo);
+			EObject stereoApp = prop.applyStereotype(stereo);
+//			if (stereoApp instanceof FlowPort) {
+//				if(CausalityType.INPUT.equals(variable.getCausality())) {
+//					((FlowPort)stereoApp).setDirection(FlowDirection.IN);
+//				}else if (CausalityType.OUTPUT.equals(variable.getCausality())) {
+//					((FlowPort)stereoApp).setDirection(FlowDirection.OUT);
+//				}
+//			}
 		
 		}
 
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/META-INF/MANIFEST.MF b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/META-INF/MANIFEST.MF
index fb964ec..93ed90e 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/META-INF/MANIFEST.MF
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/META-INF/MANIFEST.MF
@@ -1,14 +1,15 @@
 Manifest-Version: 1.0
 Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.14.0,4.0.0)",
- org.eclipse.emf.ecore;bundle-version="[2.14.0,3.0.0)",
- org.eclipse.uml2.types;bundle-version="[2.4.0,3.0.0)",
- org.eclipse.emf.ecore.xmi;bundle-version="[2.14.0,3.0.0)"
+ org.eclipse.emf.ecore;bundle-version="[2.14.0,3.0.0)";visibility:=reexport,
+ org.eclipse.papyrus.moka.fmi;visibility:=reexport,
+ org.eclipse.uml2.types;bundle-version="[2.4.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecore.xmi;bundle-version="[2.14.0,3.0.0)";visibility:=reexport
 Bundle-ActivationPolicy: lazy
 Bundle-Version: 4.0.0.qualifier
 Bundle-ClassPath: .
-Bundle-Vendor: Eclipse Modeling Project
+Bundle-Vendor: %providerName
 Bundle-Localization: plugin
-Bundle-Name: FMI 2 Model Description
+Bundle-Name: %pluginName
 Bundle-ManifestVersion: 2
 Bundle-SymbolicName: org.eclipse.papyrus.moka.fmi;singleton:=true
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/model/Fmi2ModelDescription.genmodel b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/model/Fmi2ModelDescription.genmodel
index cf53ea3..5434116 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/model/Fmi2ModelDescription.genmodel
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/model/Fmi2ModelDescription.genmodel
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
-    xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" copyrightText="Copyright (c) 2016 CEA LIST.&#xD;&#xA;&#xD;&#xA;All rights reserved. This program and the accompanying materials&#xD;&#xA;are made available under the terms of the Eclipse Public License v1.0&#xD;&#xA;which accompanies this distribution, and is available at&#xD;&#xA;http://www.eclipse.org/legal/epl-v10.html&#xD;&#xA;&#xD;&#xA; Contributors:&#xD;&#xA; CEA LIST - Initial API and implementation"
+    xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" copyrightText="Copyright (c) 2019 CEA LIST.&#xA;&#xA;All rights reserved. This program and the accompanying materials&#xA;are made available under the terms of the Eclipse Public License v1.0&#xA;which accompanies this distribution, and is available at&#xA;http://www.eclipse.org/legal/epl-v10.html&#xA;&#xA; Contributors:&#xA; CEA LIST - Initial API and implementation"
     modelDirectory="/org.eclipse.papyrus.moka.fmi/src-gen" modelPluginID="org.eclipse.papyrus.moka.fmi"
     modelName="fmi" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
     importerID="org.eclipse.xsd.ecore.importer" complianceLevel="6.0" copyrightFields="false"
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/model/ModelDescriptionProxy.notation b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/model/ModelDescriptionProxy.notation
index 1d6fcf9..460f08c 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/model/ModelDescriptionProxy.notation
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/model/ModelDescriptionProxy.notation
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/viewpoints/policy/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/gmfdiag/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
   <notation:Diagram xmi:id="_1jkwUAfGEeabPfm64ybCZg" type="PapyrusUMLClassDiagram" name="Class Diagram" measurementUnit="Pixel">
     <children xmi:type="notation:Shape" xmi:id="_zgheAAfHEeabPfm64ybCZg" type="Comment_Shape">
       <children xmi:type="notation:DecorationNode" xmi:id="_zgheAgfHEeabPfm64ybCZg" type="Comment_BodyLabel"/>
@@ -99,9 +99,9 @@
       <element xsi:nil="true"/>
       <layoutConstraint xmi:type="notation:Bounds" xmi:id="_5zFBhyiSEeaEPIADLpYHKQ" x="200"/>
     </children>
-    <styles xmi:type="notation:StringValueStyle" xmi:id="_1jkwUQfGEeabPfm64ybCZg" name="diagram_compatibility_version" stringValue="1.2.0"/>
+    <styles xmi:type="notation:StringValueStyle" xmi:id="_1jkwUQfGEeabPfm64ybCZg" name="diagram_compatibility_version" stringValue="1.4.0"/>
     <styles xmi:type="notation:DiagramStyle" xmi:id="_1jkwUgfGEeabPfm64ybCZg"/>
-    <styles xmi:type="style:PapyrusViewStyle" xmi:id="_1jkwUwfGEeabPfm64ybCZg">
+    <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_R0zgAO-8Eeeg4t5akIWReA" diagramKindId="org.eclipse.papyrus.uml.diagram.class">
       <owner xmi:type="uml:Model" href="ModelDescriptionProxy.uml#_1jIEYAfGEeabPfm64ybCZg"/>
     </styles>
     <element xmi:type="uml:Model" href="ModelDescriptionProxy.uml#_1jIEYAfGEeabPfm64ybCZg"/>
@@ -234,9 +234,9 @@
       <element xmi:type="uml:Comment" href="ModelDescriptionProxy.uml#_oZMi0SgJEeaEPIADLpYHKQ"/>
       <layoutConstraint xmi:type="notation:Bounds" xmi:id="_oZW7wCgJEeaEPIADLpYHKQ" x="784" y="213" width="430" height="79"/>
     </children>
-    <styles xmi:type="notation:StringValueStyle" xmi:id="_oZW7wSgJEeaEPIADLpYHKQ" name="diagram_compatibility_version" stringValue="1.2.0"/>
+    <styles xmi:type="notation:StringValueStyle" xmi:id="_oZW7wSgJEeaEPIADLpYHKQ" name="diagram_compatibility_version" stringValue="1.4.0"/>
     <styles xmi:type="notation:DiagramStyle" xmi:id="_oZW7wigJEeaEPIADLpYHKQ"/>
-    <styles xmi:type="style:PapyrusViewStyle" xmi:id="_oZW7wygJEeaEPIADLpYHKQ">
+    <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_R3wGUO-8Eeeg4t5akIWReA" diagramKindId="org.eclipse.papyrus.uml.diagram.class">
       <owner xmi:type="uml:Model" href="ModelDescriptionProxy.uml#_oZMi0CgJEeaEPIADLpYHKQ"/>
     </styles>
     <element xmi:type="uml:Model" href="ModelDescriptionProxy.uml#_oZMi0CgJEeaEPIADLpYHKQ"/>
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/model/fmumetamodel.ecore b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/model/fmumetamodel.ecore
index 7d12dd7..97de06a 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/model/fmumetamodel.ecore
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/model/fmumetamodel.ecore
@@ -32,7 +32,7 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EDataType" name="File" instanceClassName="java.io.File">
     <eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
-      <details key="originalName" value="File&#xD;&#xA;"/>
+      <details key="originalName" value="File"/>
     </eAnnotations>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="FolderToCreateInFMU" eSuperTypes="#//AbstractFile">
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/model/fmumetamodel.genmodel b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/model/fmumetamodel.genmodel
index 2af3ac5..04c889d 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/model/fmumetamodel.genmodel
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/model/fmumetamodel.genmodel
@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:genmodel="http://www.eclipse.org/uml2/2.2.0/GenModel"
+    copyrightText="Copyright (c) 2019 CEA LIST.&#xA;&#xA;All rights reserved. This program and the accompanying materials&#xA;are made available under the terms of the Eclipse Public License v1.0&#xA;which accompanies this distribution, and is available at&#xA;http://www.eclipse.org/legal/epl-v10.html&#xA;&#xA; Contributors:&#xA; CEA LIST - Initial API and implementation"
     modelDirectory="/org.eclipse.papyrus.moka.fmi/src-gen" modelPluginID="org.eclipse.papyrus.moka.fmi"
     modelName="Fmumetamodel" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
     importerID="org.eclipse.uml2.uml.ecore.importer" complianceLevel="8.0" copyrightFields="false"
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/model/fmumetamodel.notation b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/model/fmumetamodel.notation
index 36fa6d8..082aee8 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/model/fmumetamodel.notation
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/model/fmumetamodel.notation
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/viewpoints/policy/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_DGfCYCiaEeaEPIADLpYHKQ" type="PapyrusUMLClassDiagram" name="ClassDiagram" measurementUnit="Pixel">
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/gmfdiag/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_DGfCYCiaEeaEPIADLpYHKQ" type="PapyrusUMLClassDiagram" name="ClassDiagram" measurementUnit="Pixel">
   <children xmi:type="notation:Shape" xmi:id="_GnGpcCiaEeaEPIADLpYHKQ" type="Class_Shape">
     <children xmi:type="notation:DecorationNode" xmi:id="_GnGpciiaEeaEPIADLpYHKQ" type="Class_NameLabel"/>
     <children xmi:type="notation:DecorationNode" xmi:id="_GnGpcyiaEeaEPIADLpYHKQ" type="Class_FloatingNameLabel">
@@ -212,9 +212,9 @@
     <element xmi:type="uml:Class" href="fmumetamodel.uml#_e1UXIC4PEea0_OLDat2kQQ"/>
     <layoutConstraint xmi:type="notation:Bounds" xmi:id="_e1XacC4PEea0_OLDat2kQQ" x="1296" y="527" width="124" height="168"/>
   </children>
-  <styles xmi:type="notation:StringValueStyle" xmi:id="_DGfCYSiaEeaEPIADLpYHKQ" name="diagram_compatibility_version" stringValue="1.2.0"/>
+  <styles xmi:type="notation:StringValueStyle" xmi:id="_DGfCYSiaEeaEPIADLpYHKQ" name="diagram_compatibility_version" stringValue="1.4.0"/>
   <styles xmi:type="notation:DiagramStyle" xmi:id="_DGfCYiiaEeaEPIADLpYHKQ"/>
-  <styles xmi:type="style:PapyrusViewStyle" xmi:id="_DGfCYyiaEeaEPIADLpYHKQ">
+  <styles xmi:type="style:PapyrusDiagramStyle" xmi:id="_R5w4gO-8Eeeg4t5akIWReA" diagramKindId="org.eclipse.papyrus.uml.diagram.class">
     <owner xmi:type="uml:Model" href="fmumetamodel.uml#_qqrUcCiREeaEPIADLpYHKQ"/>
   </styles>
   <element xmi:type="uml:Model" href="fmumetamodel.uml#_qqrUcCiREeaEPIADLpYHKQ"/>
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/plugin.xml b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/plugin.xml
index 5427c9c..c0c7dd2 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/plugin.xml
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/plugin.xml
@@ -10,12 +10,12 @@
    </extension>
 
    <extension point="org.eclipse.emf.ecore.extension_parser">
-      <parser
-            class="org.eclipse.papyrus.moka.fmi.fmu.FMUResourceFactory"
-            type="fmu">
-      </parser>
       <!-- @generated Fmi2ModelDescription -->
+      <parser
+            type="fmi"
+            class="org.eclipse.papyrus.moka.fmi.modeldescription.util.FmiResourceFactoryImpl"/>
    </extension>
+
    <extension point="org.eclipse.emf.ecore.generated_package">
       <!-- @generated fmu -->
       <package
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/fmumetamodel/AbstractFile.java b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/fmumetamodel/AbstractFile.java
index a6f0f13..294b1d9 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/fmumetamodel/AbstractFile.java
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/fmumetamodel/AbstractFile.java
@@ -1,4 +1,13 @@
 /**
+ * Copyright (c) 2019 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:
+ *  CEA LIST - Initial API and implementation
  */
 package org.eclipse.papyrus.moka.fmi.fmumetamodel;
 
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/fmumetamodel/ArchiveToUnzipInFMU.java b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/fmumetamodel/ArchiveToUnzipInFMU.java
index 1f67bf7..ddc3841 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/fmumetamodel/ArchiveToUnzipInFMU.java
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/fmumetamodel/ArchiveToUnzipInFMU.java
@@ -1,10 +1,18 @@
 /**
+ * Copyright (c) 2019 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:
+ *  CEA LIST - Initial API and implementation
  */
 package org.eclipse.papyrus.moka.fmi.fmumetamodel;
 
 import java.io.File;
 
-
 /**
  * <!-- begin-user-doc -->
  * A representation of the model object '<em><b>Archive To Unzip In FMU</b></em>'.
@@ -22,7 +30,6 @@
  * @generated
  */
 public interface ArchiveToUnzipInFMU extends AbstractFile {
-
 	/**
 	 * Returns the value of the '<em><b>Archive File</b></em>' attribute.
 	 * <!-- begin-user-doc -->
@@ -48,4 +55,5 @@
 	 * @generated
 	 */
 	void setArchiveFile(File value);
+
 } // ArchiveToUnzipInFMU
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/fmumetamodel/FMUBundle.java b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/fmumetamodel/FMUBundle.java
index 02ecb8a..63ce7d6 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/fmumetamodel/FMUBundle.java
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/fmumetamodel/FMUBundle.java
@@ -1,4 +1,13 @@
 /**
+ * Copyright (c) 2019 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:
+ *  CEA LIST - Initial API and implementation
  */
 package org.eclipse.papyrus.moka.fmi.fmumetamodel;
 
@@ -66,7 +75,7 @@
 	 * The list contents are of type {@link org.eclipse.papyrus.moka.fmi.fmumetamodel.AbstractFile}.
 	 * <!-- begin-user-doc -->
 	 * <p>
-	 * If the meaning of the '<em>Resources Files</em>' attribute list isn't clear,
+	 * If the meaning of the '<em>Resources Files</em>' containment reference list isn't clear,
 	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
@@ -82,7 +91,7 @@
 	 * The list contents are of type {@link org.eclipse.papyrus.moka.fmi.fmumetamodel.AbstractFile}.
 	 * <!-- begin-user-doc -->
 	 * <p>
-	 * If the meaning of the '<em>Win32 Files</em>' attribute list isn't clear,
+	 * If the meaning of the '<em>Win32 Files</em>' containment reference list isn't clear,
 	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
@@ -98,7 +107,7 @@
 	 * The list contents are of type {@link org.eclipse.papyrus.moka.fmi.fmumetamodel.AbstractFile}.
 	 * <!-- begin-user-doc -->
 	 * <p>
-	 * If the meaning of the '<em>Win64 Files</em>' attribute list isn't clear,
+	 * If the meaning of the '<em>Win64 Files</em>' containment reference list isn't clear,
 	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
@@ -114,7 +123,7 @@
 	 * The list contents are of type {@link org.eclipse.papyrus.moka.fmi.fmumetamodel.AbstractFile}.
 	 * <!-- begin-user-doc -->
 	 * <p>
-	 * If the meaning of the '<em>Linux32 Files</em>' attribute list isn't clear,
+	 * If the meaning of the '<em>Linux32 Files</em>' containment reference list isn't clear,
 	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
@@ -130,7 +139,7 @@
 	 * The list contents are of type {@link org.eclipse.papyrus.moka.fmi.fmumetamodel.AbstractFile}.
 	 * <!-- begin-user-doc -->
 	 * <p>
-	 * If the meaning of the '<em>Linux64 Files</em>' attribute list isn't clear,
+	 * If the meaning of the '<em>Linux64 Files</em>' containment reference list isn't clear,
 	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
@@ -146,7 +155,7 @@
 	 * The list contents are of type {@link org.eclipse.papyrus.moka.fmi.fmumetamodel.AbstractFile}.
 	 * <!-- begin-user-doc -->
 	 * <p>
-	 * If the meaning of the '<em>Darwin64 Files</em>' attribute list isn't clear,
+	 * If the meaning of the '<em>Darwin64 Files</em>' containment reference list isn't clear,
 	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
@@ -162,7 +171,7 @@
 	 * The list contents are of type {@link org.eclipse.papyrus.moka.fmi.fmumetamodel.AbstractFile}.
 	 * <!-- begin-user-doc -->
 	 * <p>
-	 * If the meaning of the '<em>Darwin32 Files</em>' attribute list isn't clear,
+	 * If the meaning of the '<em>Darwin32 Files</em>' containment reference list isn't clear,
 	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
@@ -178,7 +187,7 @@
 	 * The list contents are of type {@link org.eclipse.papyrus.moka.fmi.fmumetamodel.AbstractFile}.
 	 * <!-- begin-user-doc -->
 	 * <p>
-	 * If the meaning of the '<em>Documentation Files</em>' attribute list isn't clear,
+	 * If the meaning of the '<em>Documentation Files</em>' containment reference list isn't clear,
 	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
@@ -194,7 +203,7 @@
 	 * The list contents are of type {@link org.eclipse.papyrus.moka.fmi.fmumetamodel.AbstractFile}.
 	 * <!-- begin-user-doc -->
 	 * <p>
-	 * If the meaning of the '<em>Source Files</em>' attribute list isn't clear,
+	 * If the meaning of the '<em>Source Files</em>' containment reference list isn't clear,
 	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/fmumetamodel/FmumetamodelFactory.java b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/fmumetamodel/FmumetamodelFactory.java
index a668445..1edce1c 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/fmumetamodel/FmumetamodelFactory.java
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/fmumetamodel/FmumetamodelFactory.java
@@ -1,4 +1,13 @@
 /**
+ * Copyright (c) 2019 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:
+ *  CEA LIST - Initial API and implementation
  */
 package org.eclipse.papyrus.moka.fmi.fmumetamodel;
 
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/fmumetamodel/FmumetamodelPackage.java b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/fmumetamodel/FmumetamodelPackage.java
index 7f22c16..f500a46 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/fmumetamodel/FmumetamodelPackage.java
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/fmumetamodel/FmumetamodelPackage.java
@@ -1,4 +1,13 @@
 /**
+ * Copyright (c) 2019 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:
+ *  CEA LIST - Initial API and implementation
  */
 package org.eclipse.papyrus.moka.fmi.fmumetamodel;
 
@@ -592,7 +601,7 @@
 	 * @return the meta object for data type '<em>File</em>'.
 	 * @see java.io.File
 	 * @model instanceClass="java.io.File"
-	 *        annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='File\r\n'"
+	 *        annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='File'"
 	 * @generated
 	 */
 	EDataType getFile();
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/fmumetamodel/FolderToCreateInFMU.java b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/fmumetamodel/FolderToCreateInFMU.java
index df7568e..f408618 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/fmumetamodel/FolderToCreateInFMU.java
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/fmumetamodel/FolderToCreateInFMU.java
@@ -1,4 +1,13 @@
 /**
+ * Copyright (c) 2019 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:
+ *  CEA LIST - Initial API and implementation
  */
 package org.eclipse.papyrus.moka.fmi.fmumetamodel;
 
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/fmumetamodel/JavaFileProxy.java b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/fmumetamodel/JavaFileProxy.java
index aa93468..7459d6a 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/fmumetamodel/JavaFileProxy.java
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/fmumetamodel/JavaFileProxy.java
@@ -1,4 +1,13 @@
 /**
+ * Copyright (c) 2019 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:
+ *  CEA LIST - Initial API and implementation
  */
 package org.eclipse.papyrus.moka.fmi.fmumetamodel;
 
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/fmumetamodel/impl/AbstractFileImpl.java b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/fmumetamodel/impl/AbstractFileImpl.java
index 0f5e7f7..72b1eca 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/fmumetamodel/impl/AbstractFileImpl.java
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/fmumetamodel/impl/AbstractFileImpl.java
@@ -1,4 +1,13 @@
 /**
+ * Copyright (c) 2019 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:
+ *  CEA LIST - Initial API and implementation
  */
 package org.eclipse.papyrus.moka.fmi.fmumetamodel.impl;
 
@@ -70,6 +79,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public String getName() {
 		return name;
 	}
@@ -79,6 +89,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setName(String newName) {
 		String oldName = name;
 		name = newName;
@@ -153,7 +164,7 @@
 	public String toString() {
 		if (eIsProxy()) return super.toString();
 
-		StringBuffer result = new StringBuffer(super.toString());
+		StringBuilder result = new StringBuilder(super.toString());
 		result.append(" (name: ");
 		result.append(name);
 		result.append(')');
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/fmumetamodel/impl/ArchiveToUnzipInFMUImpl.java b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/fmumetamodel/impl/ArchiveToUnzipInFMUImpl.java
index a61b4a6..6151b4b 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/fmumetamodel/impl/ArchiveToUnzipInFMUImpl.java
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/fmumetamodel/impl/ArchiveToUnzipInFMUImpl.java
@@ -1,12 +1,24 @@
 /**
+ * Copyright (c) 2019 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:
+ *  CEA LIST - Initial API and implementation
  */
 package org.eclipse.papyrus.moka.fmi.fmumetamodel.impl;
 
 import java.io.File;
+
 import org.eclipse.emf.common.notify.Notification;
+
 import org.eclipse.emf.ecore.EClass;
 
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
 import org.eclipse.papyrus.moka.fmi.fmumetamodel.ArchiveToUnzipInFMU;
 import org.eclipse.papyrus.moka.fmi.fmumetamodel.FmumetamodelPackage;
 
@@ -33,6 +45,7 @@
 	 * @ordered
 	 */
 	protected static final File ARCHIVE_FILE_EDEFAULT = null;
+
 	/**
 	 * The cached value of the '{@link #getArchiveFile() <em>Archive File</em>}' attribute.
 	 * <!-- begin-user-doc -->
@@ -67,6 +80,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public File getArchiveFile() {
 		return archiveFile;
 	}
@@ -76,6 +90,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setArchiveFile(File newArchiveFile) {
 		File oldArchiveFile = archiveFile;
 		archiveFile = newArchiveFile;
@@ -150,7 +165,7 @@
 	public String toString() {
 		if (eIsProxy()) return super.toString();
 
-		StringBuffer result = new StringBuffer(super.toString());
+		StringBuilder result = new StringBuilder(super.toString());
 		result.append(" (archiveFile: ");
 		result.append(archiveFile);
 		result.append(')');
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/fmumetamodel/impl/FMUBundleImpl.java b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/fmumetamodel/impl/FMUBundleImpl.java
index 201b8f5..be79a76 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/fmumetamodel/impl/FMUBundleImpl.java
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/fmumetamodel/impl/FMUBundleImpl.java
@@ -1,4 +1,13 @@
 /**
+ * Copyright (c) 2019 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:
+ *  CEA LIST - Initial API and implementation
  */
 package org.eclipse.papyrus.moka.fmi.fmumetamodel.impl;
 
@@ -14,8 +23,10 @@
 
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
 import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
 import org.eclipse.emf.ecore.util.EObjectContainmentEList;
 import org.eclipse.emf.ecore.util.InternalEList;
+
 import org.eclipse.papyrus.moka.fmi.fmumetamodel.AbstractFile;
 import org.eclipse.papyrus.moka.fmi.fmumetamodel.FMUBundle;
 import org.eclipse.papyrus.moka.fmi.fmumetamodel.FmumetamodelPackage;
@@ -180,6 +191,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public FmiModelDescriptionType getModelDescription() {
 		return modelDescription;
 	}
@@ -204,6 +216,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setModelDescription(FmiModelDescriptionType newModelDescription) {
 		if (newModelDescription != modelDescription) {
 			NotificationChain msgs = null;
@@ -223,6 +236,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EList<AbstractFile> getResourcesFiles() {
 		if (resourcesFiles == null) {
 			resourcesFiles = new EObjectContainmentEList<AbstractFile>(AbstractFile.class, this, FmumetamodelPackage.FMU_BUNDLE__RESOURCES_FILES);
@@ -235,6 +249,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EList<AbstractFile> getWin32Files() {
 		if (win32Files == null) {
 			win32Files = new EObjectContainmentEList<AbstractFile>(AbstractFile.class, this, FmumetamodelPackage.FMU_BUNDLE__WIN32_FILES);
@@ -247,6 +262,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EList<AbstractFile> getWin64Files() {
 		if (win64Files == null) {
 			win64Files = new EObjectContainmentEList<AbstractFile>(AbstractFile.class, this, FmumetamodelPackage.FMU_BUNDLE__WIN64_FILES);
@@ -259,6 +275,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EList<AbstractFile> getLinux32Files() {
 		if (linux32Files == null) {
 			linux32Files = new EObjectContainmentEList<AbstractFile>(AbstractFile.class, this, FmumetamodelPackage.FMU_BUNDLE__LINUX32_FILES);
@@ -271,6 +288,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EList<AbstractFile> getLinux64Files() {
 		if (linux64Files == null) {
 			linux64Files = new EObjectContainmentEList<AbstractFile>(AbstractFile.class, this, FmumetamodelPackage.FMU_BUNDLE__LINUX64_FILES);
@@ -283,6 +301,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EList<AbstractFile> getDarwin64Files() {
 		if (darwin64Files == null) {
 			darwin64Files = new EObjectContainmentEList<AbstractFile>(AbstractFile.class, this, FmumetamodelPackage.FMU_BUNDLE__DARWIN64_FILES);
@@ -295,6 +314,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EList<AbstractFile> getDarwin32Files() {
 		if (darwin32Files == null) {
 			darwin32Files = new EObjectContainmentEList<AbstractFile>(AbstractFile.class, this, FmumetamodelPackage.FMU_BUNDLE__DARWIN32_FILES);
@@ -307,6 +327,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EList<AbstractFile> getDocumentationFiles() {
 		if (documentationFiles == null) {
 			documentationFiles = new EObjectContainmentEList<AbstractFile>(AbstractFile.class, this, FmumetamodelPackage.FMU_BUNDLE__DOCUMENTATION_FILES);
@@ -319,6 +340,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EList<AbstractFile> getSourceFiles() {
 		if (sourceFiles == null) {
 			sourceFiles = new EObjectContainmentEList<AbstractFile>(AbstractFile.class, this, FmumetamodelPackage.FMU_BUNDLE__SOURCE_FILES);
@@ -331,6 +353,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EList<AbstractFile> getRootFiles() {
 		if (rootFiles == null) {
 			rootFiles = new EObjectContainmentEList<AbstractFile>(AbstractFile.class, this, FmumetamodelPackage.FMU_BUNDLE__ROOT_FILES);
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/fmumetamodel/impl/FmumetamodelFactoryImpl.java b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/fmumetamodel/impl/FmumetamodelFactoryImpl.java
index ea63a7f..3d50f21 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/fmumetamodel/impl/FmumetamodelFactoryImpl.java
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/fmumetamodel/impl/FmumetamodelFactoryImpl.java
@@ -1,4 +1,13 @@
 /**
+ * Copyright (c) 2019 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:
+ *  CEA LIST - Initial API and implementation
  */
 package org.eclipse.papyrus.moka.fmi.fmumetamodel.impl;
 
@@ -103,6 +112,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public FMUBundle createFMUBundle() {
 		FMUBundleImpl fmuBundle = new FMUBundleImpl();
 		return fmuBundle;
@@ -113,6 +123,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public FolderToCreateInFMU createFolderToCreateInFMU() {
 		FolderToCreateInFMUImpl folderToCreateInFMU = new FolderToCreateInFMUImpl();
 		return folderToCreateInFMU;
@@ -123,6 +134,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public ArchiveToUnzipInFMU createArchiveToUnzipInFMU() {
 		ArchiveToUnzipInFMUImpl archiveToUnzipInFMU = new ArchiveToUnzipInFMUImpl();
 		return archiveToUnzipInFMU;
@@ -133,6 +145,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public JavaFileProxy createJavaFileProxy() {
 		JavaFileProxyImpl javaFileProxy = new JavaFileProxyImpl();
 		return javaFileProxy;
@@ -161,6 +174,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public FmumetamodelPackage getFmumetamodelPackage() {
 		return (FmumetamodelPackage)getEPackage();
 	}
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/fmumetamodel/impl/FmumetamodelPackageImpl.java b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/fmumetamodel/impl/FmumetamodelPackageImpl.java
index 7d2c7a9..76a26cf 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/fmumetamodel/impl/FmumetamodelPackageImpl.java
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/fmumetamodel/impl/FmumetamodelPackageImpl.java
@@ -1,4 +1,13 @@
 /**
+ * Copyright (c) 2019 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:
+ *  CEA LIST - Initial API and implementation
  */
 package org.eclipse.papyrus.moka.fmi.fmumetamodel.impl;
 
@@ -17,10 +26,11 @@
 import org.eclipse.papyrus.moka.fmi.fmumetamodel.FMUBundle;
 import org.eclipse.papyrus.moka.fmi.fmumetamodel.FmumetamodelFactory;
 import org.eclipse.papyrus.moka.fmi.fmumetamodel.FmumetamodelPackage;
-
 import org.eclipse.papyrus.moka.fmi.fmumetamodel.FolderToCreateInFMU;
 import org.eclipse.papyrus.moka.fmi.fmumetamodel.JavaFileProxy;
+
 import org.eclipse.papyrus.moka.fmi.modeldescription.FmiPackage;
+
 import org.eclipse.uml2.types.TypesPackage;
 
 /**
@@ -100,7 +110,7 @@
 
 	/**
 	 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
-	 * 
+	 *
 	 * <p>This method is used to initialize {@link FmumetamodelPackage#eINSTANCE} when that field is accessed.
 	 * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
 	 * <!-- begin-user-doc -->
@@ -114,7 +124,8 @@
 		if (isInited) return (FmumetamodelPackage)EPackage.Registry.INSTANCE.getEPackage(FmumetamodelPackage.eNS_URI);
 
 		// Obtain or create and register package
-		FmumetamodelPackageImpl theFmumetamodelPackage = (FmumetamodelPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof FmumetamodelPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new FmumetamodelPackageImpl());
+		Object registeredFmumetamodelPackage = EPackage.Registry.INSTANCE.get(eNS_URI);
+		FmumetamodelPackageImpl theFmumetamodelPackage = registeredFmumetamodelPackage instanceof FmumetamodelPackageImpl ? (FmumetamodelPackageImpl)registeredFmumetamodelPackage : new FmumetamodelPackageImpl();
 
 		isInited = true;
 
@@ -131,7 +142,6 @@
 		// Mark meta-data to indicate it can't be changed
 		theFmumetamodelPackage.freeze();
 
-  
 		// Update the registry and return the package
 		EPackage.Registry.INSTANCE.put(FmumetamodelPackage.eNS_URI, theFmumetamodelPackage);
 		return theFmumetamodelPackage;
@@ -142,6 +152,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EClass getFMUBundle() {
 		return fmuBundleEClass;
 	}
@@ -151,6 +162,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EReference getFMUBundle_ModelDescription() {
 		return (EReference)fmuBundleEClass.getEStructuralFeatures().get(0);
 	}
@@ -160,6 +172,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EReference getFMUBundle_ResourcesFiles() {
 		return (EReference)fmuBundleEClass.getEStructuralFeatures().get(1);
 	}
@@ -169,6 +182,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EReference getFMUBundle_Win32Files() {
 		return (EReference)fmuBundleEClass.getEStructuralFeatures().get(2);
 	}
@@ -178,6 +192,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EReference getFMUBundle_Win64Files() {
 		return (EReference)fmuBundleEClass.getEStructuralFeatures().get(3);
 	}
@@ -187,6 +202,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EReference getFMUBundle_Linux32Files() {
 		return (EReference)fmuBundleEClass.getEStructuralFeatures().get(4);
 	}
@@ -196,6 +212,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EReference getFMUBundle_Linux64Files() {
 		return (EReference)fmuBundleEClass.getEStructuralFeatures().get(5);
 	}
@@ -205,6 +222,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EReference getFMUBundle_Darwin64Files() {
 		return (EReference)fmuBundleEClass.getEStructuralFeatures().get(6);
 	}
@@ -214,6 +232,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EReference getFMUBundle_Darwin32Files() {
 		return (EReference)fmuBundleEClass.getEStructuralFeatures().get(7);
 	}
@@ -223,6 +242,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EReference getFMUBundle_DocumentationFiles() {
 		return (EReference)fmuBundleEClass.getEStructuralFeatures().get(8);
 	}
@@ -232,6 +252,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EReference getFMUBundle_SourceFiles() {
 		return (EReference)fmuBundleEClass.getEStructuralFeatures().get(9);
 	}
@@ -241,6 +262,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EReference getFMUBundle_RootFiles() {
 		return (EReference)fmuBundleEClass.getEStructuralFeatures().get(10);
 	}
@@ -250,6 +272,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EClass getAbstractFile() {
 		return abstractFileEClass;
 	}
@@ -259,6 +282,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getAbstractFile_Name() {
 		return (EAttribute)abstractFileEClass.getEStructuralFeatures().get(0);
 	}
@@ -268,6 +292,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EClass getFolderToCreateInFMU() {
 		return folderToCreateInFMUEClass;
 	}
@@ -277,6 +302,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EReference getFolderToCreateInFMU_Children() {
 		return (EReference)folderToCreateInFMUEClass.getEStructuralFeatures().get(0);
 	}
@@ -286,6 +312,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EClass getArchiveToUnzipInFMU() {
 		return archiveToUnzipInFMUEClass;
 	}
@@ -295,6 +322,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getArchiveToUnzipInFMU_ArchiveFile() {
 		return (EAttribute)archiveToUnzipInFMUEClass.getEStructuralFeatures().get(0);
 	}
@@ -304,6 +332,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EClass getJavaFileProxy() {
 		return javaFileProxyEClass;
 	}
@@ -313,6 +342,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getJavaFileProxy_File() {
 		return (EAttribute)javaFileProxyEClass.getEStructuralFeatures().get(0);
 	}
@@ -322,6 +352,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EDataType getFile() {
 		return fileEDataType;
 	}
@@ -331,6 +362,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public FmumetamodelFactory getFmumetamodelFactory() {
 		return (FmumetamodelFactory)getEFactoryInstance();
 	}
@@ -463,12 +495,12 @@
 	 * @generated
 	 */
 	protected void createUMLAnnotations() {
-		String source = "http://www.eclipse.org/uml2/2.0.0/UML";	
+		String source = "http://www.eclipse.org/uml2/2.0.0/UML";
 		addAnnotation
-		  (fileEDataType, 
-		   source, 
+		  (fileEDataType,
+		   source,
 		   new String[] {
-			 "originalName", "File\r\n"
+			   "originalName", "File"
 		   });
 	}
 
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/fmumetamodel/impl/FolderToCreateInFMUImpl.java b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/fmumetamodel/impl/FolderToCreateInFMUImpl.java
index 63851e5..a8669df 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/fmumetamodel/impl/FolderToCreateInFMUImpl.java
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/fmumetamodel/impl/FolderToCreateInFMUImpl.java
@@ -1,4 +1,13 @@
 /**
+ * Copyright (c) 2019 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:
+ *  CEA LIST - Initial API and implementation
  */
 package org.eclipse.papyrus.moka.fmi.fmumetamodel.impl;
 
@@ -66,6 +75,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EList<AbstractFile> getChildren() {
 		if (children == null) {
 			children = new EObjectContainmentEList<AbstractFile>(AbstractFile.class, this, FmumetamodelPackage.FOLDER_TO_CREATE_IN_FMU__CHILDREN);
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/fmumetamodel/impl/JavaFileProxyImpl.java b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/fmumetamodel/impl/JavaFileProxyImpl.java
index 235d7f2..e0cff9f 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/fmumetamodel/impl/JavaFileProxyImpl.java
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/fmumetamodel/impl/JavaFileProxyImpl.java
@@ -1,4 +1,13 @@
 /**
+ * Copyright (c) 2019 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:
+ *  CEA LIST - Initial API and implementation
  */
 package org.eclipse.papyrus.moka.fmi.fmumetamodel.impl;
 
@@ -71,6 +80,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public File getFile() {
 		return file;
 	}
@@ -80,6 +90,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setFile(File newFile) {
 		File oldFile = file;
 		file = newFile;
@@ -154,7 +165,7 @@
 	public String toString() {
 		if (eIsProxy()) return super.toString();
 
-		StringBuffer result = new StringBuffer(super.toString());
+		StringBuilder result = new StringBuilder(super.toString());
 		result.append(" (file: ");
 		result.append(file);
 		result.append(')');
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/fmumetamodel/util/FmumetamodelAdapterFactory.java b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/fmumetamodel/util/FmumetamodelAdapterFactory.java
index 4b5a935..8b2bd55 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/fmumetamodel/util/FmumetamodelAdapterFactory.java
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/fmumetamodel/util/FmumetamodelAdapterFactory.java
@@ -1,4 +1,13 @@
 /**
+ * Copyright (c) 2019 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:
+ *  CEA LIST - Initial API and implementation
  */
 package org.eclipse.papyrus.moka.fmi.fmumetamodel.util;
 
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/fmumetamodel/util/FmumetamodelSwitch.java b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/fmumetamodel/util/FmumetamodelSwitch.java
index 9042be8..518d8ad 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/fmumetamodel/util/FmumetamodelSwitch.java
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/fmumetamodel/util/FmumetamodelSwitch.java
@@ -1,4 +1,13 @@
 /**
+ * Copyright (c) 2019 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:
+ *  CEA LIST - Initial API and implementation
  */
 package org.eclipse.papyrus.moka.fmi.fmumetamodel.util;
 
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/CausalityType.java b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/CausalityType.java
index 397841e..ac62734 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/CausalityType.java
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/CausalityType.java
@@ -295,6 +295,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public int getValue() {
 	  return value;
 	}
@@ -304,6 +305,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public String getName() {
 	  return name;
 	}
@@ -313,6 +315,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public String getLiteral() {
 	  return literal;
 	}
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/DependenciesKindTypeItem.java b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/DependenciesKindTypeItem.java
index 41bf56a..89d3b35 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/DependenciesKindTypeItem.java
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/DependenciesKindTypeItem.java
@@ -268,6 +268,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public int getValue() {
 	  return value;
 	}
@@ -277,6 +278,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public String getName() {
 	  return name;
 	}
@@ -286,6 +288,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public String getLiteral() {
 	  return literal;
 	}
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/DependenciesKindTypeItem1.java b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/DependenciesKindTypeItem1.java
index d922ab6..4a3d0d0 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/DependenciesKindTypeItem1.java
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/DependenciesKindTypeItem1.java
@@ -268,6 +268,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public int getValue() {
 	  return value;
 	}
@@ -277,6 +278,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public String getName() {
 	  return name;
 	}
@@ -286,6 +288,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public String getLiteral() {
 	  return literal;
 	}
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/DocumentRoot.java b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/DocumentRoot.java
index 018cdc5..a606cf7 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/DocumentRoot.java
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/DocumentRoot.java
@@ -66,7 +66,7 @@
 	 * <!-- end-user-doc -->
 	 * @return the value of the '<em>XMLNS Prefix Map</em>' map.
 	 * @see org.eclipse.papyrus.moka.fmi.modeldescription.FmiPackage#getDocumentRoot_XMLNSPrefixMap()
-	 * @model mapType="org.eclipse.emf.ecore.EStringToStringMapEntry<org.eclipse.emf.ecore.EString, org.eclipse.emf.ecore.EString>" transient="true"
+	 * @model mapType="org.eclipse.emf.ecore.EStringToStringMapEntry&lt;org.eclipse.emf.ecore.EString, org.eclipse.emf.ecore.EString&gt;" transient="true"
 	 *        extendedMetaData="kind='attribute' name='xmlns:prefix'"
 	 * @generated
 	 */
@@ -84,7 +84,7 @@
 	 * <!-- end-user-doc -->
 	 * @return the value of the '<em>XSI Schema Location</em>' map.
 	 * @see org.eclipse.papyrus.moka.fmi.modeldescription.FmiPackage#getDocumentRoot_XSISchemaLocation()
-	 * @model mapType="org.eclipse.emf.ecore.EStringToStringMapEntry<org.eclipse.emf.ecore.EString, org.eclipse.emf.ecore.EString>" transient="true"
+	 * @model mapType="org.eclipse.emf.ecore.EStringToStringMapEntry&lt;org.eclipse.emf.ecore.EString, org.eclipse.emf.ecore.EString&gt;" transient="true"
 	 *        extendedMetaData="kind='attribute' name='xsi:schemaLocation'"
 	 * @generated
 	 */
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/InitialType.java b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/InitialType.java
index 30f6e13..1d4b118 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/InitialType.java
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/InitialType.java
@@ -214,6 +214,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public int getValue() {
 	  return value;
 	}
@@ -223,6 +224,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public String getName() {
 	  return name;
 	}
@@ -232,6 +234,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public String getLiteral() {
 	  return literal;
 	}
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/VariabilityType.java b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/VariabilityType.java
index 3e1b8c8..440f631 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/VariabilityType.java
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/VariabilityType.java
@@ -268,6 +268,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public int getValue() {
 	  return value;
 	}
@@ -277,6 +278,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public String getName() {
 	  return name;
 	}
@@ -286,6 +288,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public String getLiteral() {
 	  return literal;
 	}
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/VariableNamingConventionType.java b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/VariableNamingConventionType.java
index 80e0f41..5dde30f 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/VariableNamingConventionType.java
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/VariableNamingConventionType.java
@@ -187,6 +187,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public int getValue() {
 	  return value;
 	}
@@ -196,6 +197,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public String getName() {
 	  return name;
 	}
@@ -205,6 +207,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public String getLiteral() {
 	  return literal;
 	}
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/BaseUnitTypeImpl.java b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/BaseUnitTypeImpl.java
index 47aaff3..2832c59 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/BaseUnitTypeImpl.java
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/BaseUnitTypeImpl.java
@@ -358,6 +358,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public int getA() {
 		return a;
 	}
@@ -367,6 +368,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setA(int newA) {
 		int oldA = a;
 		a = newA;
@@ -381,6 +383,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void unsetA() {
 		int oldA = a;
 		boolean oldAESet = aESet;
@@ -395,6 +398,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isSetA() {
 		return aESet;
 	}
@@ -404,6 +408,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public int getCd() {
 		return cd;
 	}
@@ -413,6 +418,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setCd(int newCd) {
 		int oldCd = cd;
 		cd = newCd;
@@ -427,6 +433,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void unsetCd() {
 		int oldCd = cd;
 		boolean oldCdESet = cdESet;
@@ -441,6 +448,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isSetCd() {
 		return cdESet;
 	}
@@ -450,6 +458,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public double getFactor() {
 		return factor;
 	}
@@ -459,6 +468,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setFactor(double newFactor) {
 		double oldFactor = factor;
 		factor = newFactor;
@@ -473,6 +483,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void unsetFactor() {
 		double oldFactor = factor;
 		boolean oldFactorESet = factorESet;
@@ -487,6 +498,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isSetFactor() {
 		return factorESet;
 	}
@@ -496,6 +508,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public int getK() {
 		return k;
 	}
@@ -505,6 +518,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setK(int newK) {
 		int oldK = k;
 		k = newK;
@@ -519,6 +533,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void unsetK() {
 		int oldK = k;
 		boolean oldKESet = kESet;
@@ -533,6 +548,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isSetK() {
 		return kESet;
 	}
@@ -542,6 +558,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public int getKg() {
 		return kg;
 	}
@@ -551,6 +568,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setKg(int newKg) {
 		int oldKg = kg;
 		kg = newKg;
@@ -565,6 +583,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void unsetKg() {
 		int oldKg = kg;
 		boolean oldKgESet = kgESet;
@@ -579,6 +598,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isSetKg() {
 		return kgESet;
 	}
@@ -588,6 +608,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public int getM() {
 		return m;
 	}
@@ -597,6 +618,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setM(int newM) {
 		int oldM = m;
 		m = newM;
@@ -611,6 +633,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void unsetM() {
 		int oldM = m;
 		boolean oldMESet = mESet;
@@ -625,6 +648,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isSetM() {
 		return mESet;
 	}
@@ -634,6 +658,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public int getMol() {
 		return mol;
 	}
@@ -643,6 +668,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setMol(int newMol) {
 		int oldMol = mol;
 		mol = newMol;
@@ -657,6 +683,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void unsetMol() {
 		int oldMol = mol;
 		boolean oldMolESet = molESet;
@@ -671,6 +698,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isSetMol() {
 		return molESet;
 	}
@@ -680,6 +708,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public double getOffset() {
 		return offset;
 	}
@@ -689,6 +718,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setOffset(double newOffset) {
 		double oldOffset = offset;
 		offset = newOffset;
@@ -703,6 +733,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void unsetOffset() {
 		double oldOffset = offset;
 		boolean oldOffsetESet = offsetESet;
@@ -717,6 +748,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isSetOffset() {
 		return offsetESet;
 	}
@@ -726,6 +758,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public int getRad() {
 		return rad;
 	}
@@ -735,6 +768,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setRad(int newRad) {
 		int oldRad = rad;
 		rad = newRad;
@@ -749,6 +783,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void unsetRad() {
 		int oldRad = rad;
 		boolean oldRadESet = radESet;
@@ -763,6 +798,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isSetRad() {
 		return radESet;
 	}
@@ -772,6 +808,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public int getS() {
 		return s;
 	}
@@ -781,6 +818,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setS(int newS) {
 		int oldS = s;
 		s = newS;
@@ -795,6 +833,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void unsetS() {
 		int oldS = s;
 		boolean oldSESet = sESet;
@@ -809,6 +848,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isSetS() {
 		return sESet;
 	}
@@ -970,7 +1010,7 @@
 	public String toString() {
 		if (eIsProxy()) return super.toString();
 
-		StringBuffer result = new StringBuffer(super.toString());
+		StringBuilder result = new StringBuilder(super.toString());
 		result.append(" (a: ");
 		if (aESet) result.append(a); else result.append("<unset>");
 		result.append(", cd: ");
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/BooleanTypeImpl.java b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/BooleanTypeImpl.java
index b3b02fb..619da95 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/BooleanTypeImpl.java
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/BooleanTypeImpl.java
@@ -109,6 +109,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public String getDeclaredType() {
 		return declaredType;
 	}
@@ -118,6 +119,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setDeclaredType(String newDeclaredType) {
 		String oldDeclaredType = declaredType;
 		declaredType = newDeclaredType;
@@ -130,6 +132,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isStart() {
 		return start;
 	}
@@ -139,6 +142,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setStart(boolean newStart) {
 		boolean oldStart = start;
 		start = newStart;
@@ -153,6 +157,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void unsetStart() {
 		boolean oldStart = start;
 		boolean oldStartESet = startESet;
@@ -167,6 +172,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isSetStart() {
 		return startESet;
 	}
@@ -248,7 +254,7 @@
 	public String toString() {
 		if (eIsProxy()) return super.toString();
 
-		StringBuffer result = new StringBuffer(super.toString());
+		StringBuilder result = new StringBuilder(super.toString());
 		result.append(" (declaredType: ");
 		result.append(declaredType);
 		result.append(", start: ");
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/CategoryTypeImpl.java b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/CategoryTypeImpl.java
index 91b0ebb..5e25c5f 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/CategoryTypeImpl.java
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/CategoryTypeImpl.java
@@ -100,6 +100,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public String getDescription() {
 		return description;
 	}
@@ -109,6 +110,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setDescription(String newDescription) {
 		String oldDescription = description;
 		description = newDescription;
@@ -121,6 +123,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public String getName() {
 		return name;
 	}
@@ -130,6 +133,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setName(String newName) {
 		String oldName = name;
 		name = newName;
@@ -214,7 +218,7 @@
 	public String toString() {
 		if (eIsProxy()) return super.toString();
 
-		StringBuffer result = new StringBuffer(super.toString());
+		StringBuilder result = new StringBuilder(super.toString());
 		result.append(" (description: ");
 		result.append(description);
 		result.append(", name: ");
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/CoSimulationTypeImpl.java b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/CoSimulationTypeImpl.java
index 0c47926..6b86ebc 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/CoSimulationTypeImpl.java
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/CoSimulationTypeImpl.java
@@ -393,6 +393,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public SourceFilesType getSourceFiles() {
 		return sourceFiles;
 	}
@@ -417,6 +418,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setSourceFiles(SourceFilesType newSourceFiles) {
 		if (newSourceFiles != sourceFiles) {
 			NotificationChain msgs = null;
@@ -436,6 +438,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isCanBeInstantiatedOnlyOncePerProcess() {
 		return canBeInstantiatedOnlyOncePerProcess;
 	}
@@ -445,6 +448,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setCanBeInstantiatedOnlyOncePerProcess(boolean newCanBeInstantiatedOnlyOncePerProcess) {
 		boolean oldCanBeInstantiatedOnlyOncePerProcess = canBeInstantiatedOnlyOncePerProcess;
 		canBeInstantiatedOnlyOncePerProcess = newCanBeInstantiatedOnlyOncePerProcess;
@@ -459,6 +463,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void unsetCanBeInstantiatedOnlyOncePerProcess() {
 		boolean oldCanBeInstantiatedOnlyOncePerProcess = canBeInstantiatedOnlyOncePerProcess;
 		boolean oldCanBeInstantiatedOnlyOncePerProcessESet = canBeInstantiatedOnlyOncePerProcessESet;
@@ -473,6 +478,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isSetCanBeInstantiatedOnlyOncePerProcess() {
 		return canBeInstantiatedOnlyOncePerProcessESet;
 	}
@@ -482,6 +488,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isCanGetAndSetFMUstate() {
 		return canGetAndSetFMUstate;
 	}
@@ -491,6 +498,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setCanGetAndSetFMUstate(boolean newCanGetAndSetFMUstate) {
 		boolean oldCanGetAndSetFMUstate = canGetAndSetFMUstate;
 		canGetAndSetFMUstate = newCanGetAndSetFMUstate;
@@ -505,6 +513,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void unsetCanGetAndSetFMUstate() {
 		boolean oldCanGetAndSetFMUstate = canGetAndSetFMUstate;
 		boolean oldCanGetAndSetFMUstateESet = canGetAndSetFMUstateESet;
@@ -519,6 +528,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isSetCanGetAndSetFMUstate() {
 		return canGetAndSetFMUstateESet;
 	}
@@ -528,6 +538,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isCanHandleVariableCommunicationStepSize() {
 		return canHandleVariableCommunicationStepSize;
 	}
@@ -537,6 +548,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setCanHandleVariableCommunicationStepSize(boolean newCanHandleVariableCommunicationStepSize) {
 		boolean oldCanHandleVariableCommunicationStepSize = canHandleVariableCommunicationStepSize;
 		canHandleVariableCommunicationStepSize = newCanHandleVariableCommunicationStepSize;
@@ -551,6 +563,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void unsetCanHandleVariableCommunicationStepSize() {
 		boolean oldCanHandleVariableCommunicationStepSize = canHandleVariableCommunicationStepSize;
 		boolean oldCanHandleVariableCommunicationStepSizeESet = canHandleVariableCommunicationStepSizeESet;
@@ -565,6 +578,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isSetCanHandleVariableCommunicationStepSize() {
 		return canHandleVariableCommunicationStepSizeESet;
 	}
@@ -574,6 +588,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isCanInterpolateInputs() {
 		return canInterpolateInputs;
 	}
@@ -583,6 +598,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setCanInterpolateInputs(boolean newCanInterpolateInputs) {
 		boolean oldCanInterpolateInputs = canInterpolateInputs;
 		canInterpolateInputs = newCanInterpolateInputs;
@@ -597,6 +613,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void unsetCanInterpolateInputs() {
 		boolean oldCanInterpolateInputs = canInterpolateInputs;
 		boolean oldCanInterpolateInputsESet = canInterpolateInputsESet;
@@ -611,6 +628,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isSetCanInterpolateInputs() {
 		return canInterpolateInputsESet;
 	}
@@ -620,6 +638,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isCanNotUseMemoryManagementFunctions() {
 		return canNotUseMemoryManagementFunctions;
 	}
@@ -629,6 +648,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setCanNotUseMemoryManagementFunctions(boolean newCanNotUseMemoryManagementFunctions) {
 		boolean oldCanNotUseMemoryManagementFunctions = canNotUseMemoryManagementFunctions;
 		canNotUseMemoryManagementFunctions = newCanNotUseMemoryManagementFunctions;
@@ -643,6 +663,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void unsetCanNotUseMemoryManagementFunctions() {
 		boolean oldCanNotUseMemoryManagementFunctions = canNotUseMemoryManagementFunctions;
 		boolean oldCanNotUseMemoryManagementFunctionsESet = canNotUseMemoryManagementFunctionsESet;
@@ -657,6 +678,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isSetCanNotUseMemoryManagementFunctions() {
 		return canNotUseMemoryManagementFunctionsESet;
 	}
@@ -666,6 +688,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isCanRunAsynchronuously() {
 		return canRunAsynchronuously;
 	}
@@ -675,6 +698,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setCanRunAsynchronuously(boolean newCanRunAsynchronuously) {
 		boolean oldCanRunAsynchronuously = canRunAsynchronuously;
 		canRunAsynchronuously = newCanRunAsynchronuously;
@@ -689,6 +713,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void unsetCanRunAsynchronuously() {
 		boolean oldCanRunAsynchronuously = canRunAsynchronuously;
 		boolean oldCanRunAsynchronuouslyESet = canRunAsynchronuouslyESet;
@@ -703,6 +728,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isSetCanRunAsynchronuously() {
 		return canRunAsynchronuouslyESet;
 	}
@@ -712,6 +738,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isCanSerializeFMUstate() {
 		return canSerializeFMUstate;
 	}
@@ -721,6 +748,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setCanSerializeFMUstate(boolean newCanSerializeFMUstate) {
 		boolean oldCanSerializeFMUstate = canSerializeFMUstate;
 		canSerializeFMUstate = newCanSerializeFMUstate;
@@ -735,6 +763,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void unsetCanSerializeFMUstate() {
 		boolean oldCanSerializeFMUstate = canSerializeFMUstate;
 		boolean oldCanSerializeFMUstateESet = canSerializeFMUstateESet;
@@ -749,6 +778,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isSetCanSerializeFMUstate() {
 		return canSerializeFMUstateESet;
 	}
@@ -758,6 +788,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public long getMaxOutputDerivativeOrder() {
 		return maxOutputDerivativeOrder;
 	}
@@ -767,6 +798,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setMaxOutputDerivativeOrder(long newMaxOutputDerivativeOrder) {
 		long oldMaxOutputDerivativeOrder = maxOutputDerivativeOrder;
 		maxOutputDerivativeOrder = newMaxOutputDerivativeOrder;
@@ -781,6 +813,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void unsetMaxOutputDerivativeOrder() {
 		long oldMaxOutputDerivativeOrder = maxOutputDerivativeOrder;
 		boolean oldMaxOutputDerivativeOrderESet = maxOutputDerivativeOrderESet;
@@ -795,6 +828,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isSetMaxOutputDerivativeOrder() {
 		return maxOutputDerivativeOrderESet;
 	}
@@ -804,6 +838,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public String getModelIdentifier() {
 		return modelIdentifier;
 	}
@@ -813,6 +848,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setModelIdentifier(String newModelIdentifier) {
 		String oldModelIdentifier = modelIdentifier;
 		modelIdentifier = newModelIdentifier;
@@ -825,6 +861,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isNeedsExecutionTool() {
 		return needsExecutionTool;
 	}
@@ -834,6 +871,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setNeedsExecutionTool(boolean newNeedsExecutionTool) {
 		boolean oldNeedsExecutionTool = needsExecutionTool;
 		needsExecutionTool = newNeedsExecutionTool;
@@ -848,6 +886,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void unsetNeedsExecutionTool() {
 		boolean oldNeedsExecutionTool = needsExecutionTool;
 		boolean oldNeedsExecutionToolESet = needsExecutionToolESet;
@@ -862,6 +901,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isSetNeedsExecutionTool() {
 		return needsExecutionToolESet;
 	}
@@ -871,6 +911,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isProvidesDirectionalDerivative() {
 		return providesDirectionalDerivative;
 	}
@@ -880,6 +921,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setProvidesDirectionalDerivative(boolean newProvidesDirectionalDerivative) {
 		boolean oldProvidesDirectionalDerivative = providesDirectionalDerivative;
 		providesDirectionalDerivative = newProvidesDirectionalDerivative;
@@ -894,6 +936,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void unsetProvidesDirectionalDerivative() {
 		boolean oldProvidesDirectionalDerivative = providesDirectionalDerivative;
 		boolean oldProvidesDirectionalDerivativeESet = providesDirectionalDerivativeESet;
@@ -908,6 +951,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isSetProvidesDirectionalDerivative() {
 		return providesDirectionalDerivativeESet;
 	}
@@ -1103,7 +1147,7 @@
 	public String toString() {
 		if (eIsProxy()) return super.toString();
 
-		StringBuffer result = new StringBuffer(super.toString());
+		StringBuilder result = new StringBuilder(super.toString());
 		result.append(" (canBeInstantiatedOnlyOncePerProcess: ");
 		if (canBeInstantiatedOnlyOncePerProcessESet) result.append(canBeInstantiatedOnlyOncePerProcess); else result.append("<unset>");
 		result.append(", canGetAndSetFMUstate: ");
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/DefaultExperimentTypeImpl.java b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/DefaultExperimentTypeImpl.java
index 48bd268..9570379 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/DefaultExperimentTypeImpl.java
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/DefaultExperimentTypeImpl.java
@@ -178,6 +178,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public double getStartTime() {
 		return startTime;
 	}
@@ -187,6 +188,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setStartTime(double newStartTime) {
 		double oldStartTime = startTime;
 		startTime = newStartTime;
@@ -201,6 +203,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void unsetStartTime() {
 		double oldStartTime = startTime;
 		boolean oldStartTimeESet = startTimeESet;
@@ -215,6 +218,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isSetStartTime() {
 		return startTimeESet;
 	}
@@ -224,6 +228,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public double getStepSize() {
 		return stepSize;
 	}
@@ -233,6 +238,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setStepSize(double newStepSize) {
 		double oldStepSize = stepSize;
 		stepSize = newStepSize;
@@ -247,6 +253,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void unsetStepSize() {
 		double oldStepSize = stepSize;
 		boolean oldStepSizeESet = stepSizeESet;
@@ -261,6 +268,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isSetStepSize() {
 		return stepSizeESet;
 	}
@@ -270,6 +278,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public double getStopTime() {
 		return stopTime;
 	}
@@ -279,6 +288,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setStopTime(double newStopTime) {
 		double oldStopTime = stopTime;
 		stopTime = newStopTime;
@@ -293,6 +303,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void unsetStopTime() {
 		double oldStopTime = stopTime;
 		boolean oldStopTimeESet = stopTimeESet;
@@ -307,6 +318,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isSetStopTime() {
 		return stopTimeESet;
 	}
@@ -316,6 +328,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public double getTolerance() {
 		return tolerance;
 	}
@@ -325,6 +338,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setTolerance(double newTolerance) {
 		double oldTolerance = tolerance;
 		tolerance = newTolerance;
@@ -339,6 +353,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void unsetTolerance() {
 		double oldTolerance = tolerance;
 		boolean oldToleranceESet = toleranceESet;
@@ -353,6 +368,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isSetTolerance() {
 		return toleranceESet;
 	}
@@ -454,7 +470,7 @@
 	public String toString() {
 		if (eIsProxy()) return super.toString();
 
-		StringBuffer result = new StringBuffer(super.toString());
+		StringBuilder result = new StringBuilder(super.toString());
 		result.append(" (startTime: ");
 		if (startTimeESet) result.append(startTime); else result.append("<unset>");
 		result.append(", stepSize: ");
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/DisplayUnitTypeImpl.java b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/DisplayUnitTypeImpl.java
index 6c26972..cbbe8c4 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/DisplayUnitTypeImpl.java
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/DisplayUnitTypeImpl.java
@@ -139,6 +139,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public double getFactor() {
 		return factor;
 	}
@@ -148,6 +149,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setFactor(double newFactor) {
 		double oldFactor = factor;
 		factor = newFactor;
@@ -162,6 +164,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void unsetFactor() {
 		double oldFactor = factor;
 		boolean oldFactorESet = factorESet;
@@ -176,6 +179,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isSetFactor() {
 		return factorESet;
 	}
@@ -185,6 +189,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public String getName() {
 		return name;
 	}
@@ -194,6 +199,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setName(String newName) {
 		String oldName = name;
 		name = newName;
@@ -206,6 +212,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public double getOffset() {
 		return offset;
 	}
@@ -215,6 +222,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setOffset(double newOffset) {
 		double oldOffset = offset;
 		offset = newOffset;
@@ -229,6 +237,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void unsetOffset() {
 		double oldOffset = offset;
 		boolean oldOffsetESet = offsetESet;
@@ -243,6 +252,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isSetOffset() {
 		return offsetESet;
 	}
@@ -334,7 +344,7 @@
 	public String toString() {
 		if (eIsProxy()) return super.toString();
 
-		StringBuffer result = new StringBuffer(super.toString());
+		StringBuilder result = new StringBuilder(super.toString());
 		result.append(" (factor: ");
 		if (factorESet) result.append(factor); else result.append("<unset>");
 		result.append(", name: ");
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/DocumentRootImpl.java b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/DocumentRootImpl.java
index 5a31559..fbdb41e 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/DocumentRootImpl.java
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/DocumentRootImpl.java
@@ -103,6 +103,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public FeatureMap getMixed() {
 		if (mixed == null) {
 			mixed = new BasicFeatureMap(this, FmiPackage.DOCUMENT_ROOT__MIXED);
@@ -115,6 +116,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EMap<String, String> getXMLNSPrefixMap() {
 		if (xMLNSPrefixMap == null) {
 			xMLNSPrefixMap = new EcoreEMap<String,String>(EcorePackage.Literals.ESTRING_TO_STRING_MAP_ENTRY, EStringToStringMapEntryImpl.class, this, FmiPackage.DOCUMENT_ROOT__XMLNS_PREFIX_MAP);
@@ -127,6 +129,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EMap<String, String> getXSISchemaLocation() {
 		if (xSISchemaLocation == null) {
 			xSISchemaLocation = new EcoreEMap<String,String>(EcorePackage.Literals.ESTRING_TO_STRING_MAP_ENTRY, EStringToStringMapEntryImpl.class, this, FmiPackage.DOCUMENT_ROOT__XSI_SCHEMA_LOCATION);
@@ -139,6 +142,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public FmiModelDescriptionType getFmiModelDescription() {
 		return (FmiModelDescriptionType)getMixed().get(FmiPackage.Literals.DOCUMENT_ROOT__FMI_MODEL_DESCRIPTION, true);
 	}
@@ -157,6 +161,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setFmiModelDescription(FmiModelDescriptionType newFmiModelDescription) {
 		((FeatureMap.Internal)getMixed()).set(FmiPackage.Literals.DOCUMENT_ROOT__FMI_MODEL_DESCRIPTION, newFmiModelDescription);
 	}
@@ -281,7 +286,7 @@
 	public String toString() {
 		if (eIsProxy()) return super.toString();
 
-		StringBuffer result = new StringBuffer(super.toString());
+		StringBuilder result = new StringBuilder(super.toString());
 		result.append(" (mixed: ");
 		result.append(mixed);
 		result.append(')');
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/EnumerationType1Impl.java b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/EnumerationType1Impl.java
index 85a620b..e30e1fb 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/EnumerationType1Impl.java
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/EnumerationType1Impl.java
@@ -102,6 +102,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public FeatureMap getGroup() {
 		if (group == null) {
 			group = new BasicFeatureMap(this, FmiPackage.ENUMERATION_TYPE1__GROUP);
@@ -114,6 +115,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EList<ItemType> getItem() {
 		return getGroup().list(FmiPackage.Literals.ENUMERATION_TYPE1__ITEM);
 	}
@@ -123,6 +125,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public String getQuantity() {
 		return quantity;
 	}
@@ -132,6 +135,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setQuantity(String newQuantity) {
 		String oldQuantity = quantity;
 		quantity = newQuantity;
@@ -245,7 +249,7 @@
 	public String toString() {
 		if (eIsProxy()) return super.toString();
 
-		StringBuffer result = new StringBuffer(super.toString());
+		StringBuilder result = new StringBuilder(super.toString());
 		result.append(" (group: ");
 		result.append(group);
 		result.append(", quantity: ");
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/EnumerationTypeImpl.java b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/EnumerationTypeImpl.java
index 4ec4404..1200e5c 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/EnumerationTypeImpl.java
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/EnumerationTypeImpl.java
@@ -190,6 +190,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public String getDeclaredType() {
 		return declaredType;
 	}
@@ -199,6 +200,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setDeclaredType(String newDeclaredType) {
 		String oldDeclaredType = declaredType;
 		declaredType = newDeclaredType;
@@ -211,6 +213,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public int getMax() {
 		return max;
 	}
@@ -220,6 +223,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setMax(int newMax) {
 		int oldMax = max;
 		max = newMax;
@@ -234,6 +238,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void unsetMax() {
 		int oldMax = max;
 		boolean oldMaxESet = maxESet;
@@ -248,6 +253,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isSetMax() {
 		return maxESet;
 	}
@@ -257,6 +263,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public int getMin() {
 		return min;
 	}
@@ -266,6 +273,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setMin(int newMin) {
 		int oldMin = min;
 		min = newMin;
@@ -280,6 +288,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void unsetMin() {
 		int oldMin = min;
 		boolean oldMinESet = minESet;
@@ -294,6 +303,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isSetMin() {
 		return minESet;
 	}
@@ -303,6 +313,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public String getQuantity() {
 		return quantity;
 	}
@@ -312,6 +323,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setQuantity(String newQuantity) {
 		String oldQuantity = quantity;
 		quantity = newQuantity;
@@ -324,6 +336,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public int getStart() {
 		return start;
 	}
@@ -333,6 +346,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setStart(int newStart) {
 		int oldStart = start;
 		start = newStart;
@@ -347,6 +361,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void unsetStart() {
 		int oldStart = start;
 		boolean oldStartESet = startESet;
@@ -361,6 +376,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isSetStart() {
 		return startESet;
 	}
@@ -472,7 +488,7 @@
 	public String toString() {
 		if (eIsProxy()) return super.toString();
 
-		StringBuffer result = new StringBuffer(super.toString());
+		StringBuilder result = new StringBuilder(super.toString());
 		result.append(" (declaredType: ");
 		result.append(declaredType);
 		result.append(", max: ");
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/FileType1Impl.java b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/FileType1Impl.java
index 71d6985..e7e4a46 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/FileType1Impl.java
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/FileType1Impl.java
@@ -79,6 +79,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public String getName() {
 		return name;
 	}
@@ -88,6 +89,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setName(String newName) {
 		String oldName = name;
 		name = newName;
@@ -162,7 +164,7 @@
 	public String toString() {
 		if (eIsProxy()) return super.toString();
 
-		StringBuffer result = new StringBuffer(super.toString());
+		StringBuilder result = new StringBuilder(super.toString());
 		result.append(" (name: ");
 		result.append(name);
 		result.append(')');
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/FileTypeImpl.java b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/FileTypeImpl.java
index f4bb548..9fc3db7 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/FileTypeImpl.java
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/FileTypeImpl.java
@@ -79,6 +79,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public String getName() {
 		return name;
 	}
@@ -88,6 +89,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setName(String newName) {
 		String oldName = name;
 		name = newName;
@@ -162,7 +164,7 @@
 	public String toString() {
 		if (eIsProxy()) return super.toString();
 
-		StringBuffer result = new StringBuffer(super.toString());
+		StringBuilder result = new StringBuilder(super.toString());
 		result.append(" (name: ");
 		result.append(name);
 		result.append(')');
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/Fmi2AnnotationImpl.java b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/Fmi2AnnotationImpl.java
index 72553be..38cf4dd 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/Fmi2AnnotationImpl.java
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/Fmi2AnnotationImpl.java
@@ -79,6 +79,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public FeatureMap getGroup() {
 		if (group == null) {
 			group = new BasicFeatureMap(this, FmiPackage.FMI2_ANNOTATION__GROUP);
@@ -91,6 +92,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EList<ToolType> getTool() {
 		return getGroup().list(FmiPackage.Literals.FMI2_ANNOTATION__TOOL);
 	}
@@ -191,7 +193,7 @@
 	public String toString() {
 		if (eIsProxy()) return super.toString();
 
-		StringBuffer result = new StringBuffer(super.toString());
+		StringBuilder result = new StringBuilder(super.toString());
 		result.append(" (group: ");
 		result.append(group);
 		result.append(')');
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/Fmi2ScalarVariableImpl.java b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/Fmi2ScalarVariableImpl.java
index 769f2ba..c95a3f9 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/Fmi2ScalarVariableImpl.java
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/Fmi2ScalarVariableImpl.java
@@ -327,6 +327,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public RealType getReal() {
 		return real;
 	}
@@ -351,6 +352,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setReal(RealType newReal) {
 		if (newReal != real) {
 			NotificationChain msgs = null;
@@ -370,6 +372,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public IntegerType getInteger() {
 		return integer;
 	}
@@ -394,6 +397,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setInteger(IntegerType newInteger) {
 		if (newInteger != integer) {
 			NotificationChain msgs = null;
@@ -413,6 +417,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public BooleanType getBoolean() {
 		return boolean_;
 	}
@@ -437,6 +442,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setBoolean(BooleanType newBoolean) {
 		if (newBoolean != boolean_) {
 			NotificationChain msgs = null;
@@ -456,6 +462,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public StringType getString() {
 		return string;
 	}
@@ -480,6 +487,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setString(StringType newString) {
 		if (newString != string) {
 			NotificationChain msgs = null;
@@ -499,6 +507,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EnumerationType getEnumeration() {
 		return enumeration;
 	}
@@ -523,6 +532,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setEnumeration(EnumerationType newEnumeration) {
 		if (newEnumeration != enumeration) {
 			NotificationChain msgs = null;
@@ -542,6 +552,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public Fmi2Annotation getAnnotations() {
 		return annotations;
 	}
@@ -566,6 +577,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setAnnotations(Fmi2Annotation newAnnotations) {
 		if (newAnnotations != annotations) {
 			NotificationChain msgs = null;
@@ -585,6 +597,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isCanHandleMultipleSetPerTimeInstant() {
 		return canHandleMultipleSetPerTimeInstant;
 	}
@@ -594,6 +607,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setCanHandleMultipleSetPerTimeInstant(boolean newCanHandleMultipleSetPerTimeInstant) {
 		boolean oldCanHandleMultipleSetPerTimeInstant = canHandleMultipleSetPerTimeInstant;
 		canHandleMultipleSetPerTimeInstant = newCanHandleMultipleSetPerTimeInstant;
@@ -608,6 +622,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void unsetCanHandleMultipleSetPerTimeInstant() {
 		boolean oldCanHandleMultipleSetPerTimeInstant = canHandleMultipleSetPerTimeInstant;
 		boolean oldCanHandleMultipleSetPerTimeInstantESet = canHandleMultipleSetPerTimeInstantESet;
@@ -622,6 +637,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isSetCanHandleMultipleSetPerTimeInstant() {
 		return canHandleMultipleSetPerTimeInstantESet;
 	}
@@ -631,6 +647,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public CausalityType getCausality() {
 		return causality;
 	}
@@ -640,6 +657,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setCausality(CausalityType newCausality) {
 		CausalityType oldCausality = causality;
 		causality = newCausality == null ? CAUSALITY_EDEFAULT : newCausality;
@@ -654,6 +672,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void unsetCausality() {
 		CausalityType oldCausality = causality;
 		boolean oldCausalityESet = causalityESet;
@@ -668,6 +687,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isSetCausality() {
 		return causalityESet;
 	}
@@ -677,6 +697,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public String getDescription() {
 		return description;
 	}
@@ -686,6 +707,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setDescription(String newDescription) {
 		String oldDescription = description;
 		description = newDescription;
@@ -698,6 +720,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public InitialType getInitial() {
 		return initial;
 	}
@@ -707,6 +730,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setInitial(InitialType newInitial) {
 		InitialType oldInitial = initial;
 		initial = newInitial == null ? INITIAL_EDEFAULT : newInitial;
@@ -721,6 +745,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void unsetInitial() {
 		InitialType oldInitial = initial;
 		boolean oldInitialESet = initialESet;
@@ -735,6 +760,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isSetInitial() {
 		return initialESet;
 	}
@@ -744,6 +770,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public String getName() {
 		return name;
 	}
@@ -753,6 +780,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setName(String newName) {
 		String oldName = name;
 		name = newName;
@@ -765,6 +793,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public long getValueReference() {
 		return valueReference;
 	}
@@ -774,6 +803,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setValueReference(long newValueReference) {
 		long oldValueReference = valueReference;
 		valueReference = newValueReference;
@@ -788,6 +818,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void unsetValueReference() {
 		long oldValueReference = valueReference;
 		boolean oldValueReferenceESet = valueReferenceESet;
@@ -802,6 +833,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isSetValueReference() {
 		return valueReferenceESet;
 	}
@@ -811,6 +843,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public VariabilityType getVariability() {
 		return variability;
 	}
@@ -820,6 +853,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setVariability(VariabilityType newVariability) {
 		VariabilityType oldVariability = variability;
 		variability = newVariability == null ? VARIABILITY_EDEFAULT : newVariability;
@@ -834,6 +868,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void unsetVariability() {
 		VariabilityType oldVariability = variability;
 		boolean oldVariabilityESet = variabilityESet;
@@ -848,6 +883,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isSetVariability() {
 		return variabilityESet;
 	}
@@ -1063,7 +1099,7 @@
 	public String toString() {
 		if (eIsProxy()) return super.toString();
 
-		StringBuffer result = new StringBuffer(super.toString());
+		StringBuilder result = new StringBuilder(super.toString());
 		result.append(" (canHandleMultipleSetPerTimeInstant: ");
 		if (canHandleMultipleSetPerTimeInstantESet) result.append(canHandleMultipleSetPerTimeInstant); else result.append("<unset>");
 		result.append(", causality: ");
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/Fmi2SimpleTypeImpl.java b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/Fmi2SimpleTypeImpl.java
index 63b59ce..7ec171c 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/Fmi2SimpleTypeImpl.java
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/Fmi2SimpleTypeImpl.java
@@ -161,6 +161,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public RealType1 getReal() {
 		return real;
 	}
@@ -185,6 +186,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setReal(RealType1 newReal) {
 		if (newReal != real) {
 			NotificationChain msgs = null;
@@ -204,6 +206,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public IntegerType1 getInteger() {
 		return integer;
 	}
@@ -228,6 +231,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setInteger(IntegerType1 newInteger) {
 		if (newInteger != integer) {
 			NotificationChain msgs = null;
@@ -247,6 +251,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EObject getBoolean() {
 		return boolean_;
 	}
@@ -271,6 +276,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setBoolean(EObject newBoolean) {
 		if (newBoolean != boolean_) {
 			NotificationChain msgs = null;
@@ -290,6 +296,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EObject getString() {
 		return string;
 	}
@@ -314,6 +321,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setString(EObject newString) {
 		if (newString != string) {
 			NotificationChain msgs = null;
@@ -333,6 +341,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EnumerationType1 getEnumeration() {
 		return enumeration;
 	}
@@ -357,6 +366,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setEnumeration(EnumerationType1 newEnumeration) {
 		if (newEnumeration != enumeration) {
 			NotificationChain msgs = null;
@@ -376,6 +386,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public String getDescription() {
 		return description;
 	}
@@ -385,6 +396,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setDescription(String newDescription) {
 		String oldDescription = description;
 		description = newDescription;
@@ -397,6 +409,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public String getName() {
 		return name;
 	}
@@ -406,6 +419,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setName(String newName) {
 		String oldName = name;
 		name = newName;
@@ -562,7 +576,7 @@
 	public String toString() {
 		if (eIsProxy()) return super.toString();
 
-		StringBuffer result = new StringBuffer(super.toString());
+		StringBuilder result = new StringBuilder(super.toString());
 		result.append(" (description: ");
 		result.append(description);
 		result.append(", name: ");
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/Fmi2UnitImpl.java b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/Fmi2UnitImpl.java
index d4654d6..52321ed 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/Fmi2UnitImpl.java
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/Fmi2UnitImpl.java
@@ -114,6 +114,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public BaseUnitType getBaseUnit() {
 		return baseUnit;
 	}
@@ -138,6 +139,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setBaseUnit(BaseUnitType newBaseUnit) {
 		if (newBaseUnit != baseUnit) {
 			NotificationChain msgs = null;
@@ -157,6 +159,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public FeatureMap getGroup() {
 		if (group == null) {
 			group = new BasicFeatureMap(this, FmiPackage.FMI2_UNIT__GROUP);
@@ -169,6 +172,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EList<DisplayUnitType> getDisplayUnit() {
 		return getGroup().list(FmiPackage.Literals.FMI2_UNIT__DISPLAY_UNIT);
 	}
@@ -178,6 +182,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public String getName() {
 		return name;
 	}
@@ -187,6 +192,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setName(String newName) {
 		String oldName = name;
 		name = newName;
@@ -312,7 +318,7 @@
 	public String toString() {
 		if (eIsProxy()) return super.toString();
 
-		StringBuffer result = new StringBuffer(super.toString());
+		StringBuilder result = new StringBuilder(super.toString());
 		result.append(" (group: ");
 		result.append(group);
 		result.append(", name: ");
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/Fmi2VariableDependencyImpl.java b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/Fmi2VariableDependencyImpl.java
index c7b58e4..8087bfa 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/Fmi2VariableDependencyImpl.java
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/Fmi2VariableDependencyImpl.java
@@ -79,6 +79,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public FeatureMap getGroup() {
 		if (group == null) {
 			group = new BasicFeatureMap(this, FmiPackage.FMI2_VARIABLE_DEPENDENCY__GROUP);
@@ -91,6 +92,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EList<UnknownType1> getUnknown() {
 		return getGroup().list(FmiPackage.Literals.FMI2_VARIABLE_DEPENDENCY__UNKNOWN);
 	}
@@ -191,7 +193,7 @@
 	public String toString() {
 		if (eIsProxy()) return super.toString();
 
-		StringBuffer result = new StringBuffer(super.toString());
+		StringBuilder result = new StringBuilder(super.toString());
 		result.append(" (group: ");
 		result.append(group);
 		result.append(')');
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/FmiFactoryImpl.java b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/FmiFactoryImpl.java
index 8810455..c1e80b6 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/FmiFactoryImpl.java
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/FmiFactoryImpl.java
@@ -207,6 +207,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public BaseUnitType createBaseUnitType() {
 		BaseUnitTypeImpl baseUnitType = new BaseUnitTypeImpl();
 		return baseUnitType;
@@ -217,6 +218,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public BooleanType createBooleanType() {
 		BooleanTypeImpl booleanType = new BooleanTypeImpl();
 		return booleanType;
@@ -227,6 +229,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public CategoryType createCategoryType() {
 		CategoryTypeImpl categoryType = new CategoryTypeImpl();
 		return categoryType;
@@ -237,6 +240,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public CoSimulationType createCoSimulationType() {
 		CoSimulationTypeImpl coSimulationType = new CoSimulationTypeImpl();
 		return coSimulationType;
@@ -247,6 +251,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public DefaultExperimentType createDefaultExperimentType() {
 		DefaultExperimentTypeImpl defaultExperimentType = new DefaultExperimentTypeImpl();
 		return defaultExperimentType;
@@ -257,6 +262,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public DisplayUnitType createDisplayUnitType() {
 		DisplayUnitTypeImpl displayUnitType = new DisplayUnitTypeImpl();
 		return displayUnitType;
@@ -267,6 +273,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public DocumentRoot createDocumentRoot() {
 		DocumentRootImpl documentRoot = new DocumentRootImpl();
 		return documentRoot;
@@ -277,6 +284,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EnumerationType createEnumerationType() {
 		EnumerationTypeImpl enumerationType = new EnumerationTypeImpl();
 		return enumerationType;
@@ -287,6 +295,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EnumerationType1 createEnumerationType1() {
 		EnumerationType1Impl enumerationType1 = new EnumerationType1Impl();
 		return enumerationType1;
@@ -297,6 +306,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public FileType createFileType() {
 		FileTypeImpl fileType = new FileTypeImpl();
 		return fileType;
@@ -307,6 +317,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public FileType1 createFileType1() {
 		FileType1Impl fileType1 = new FileType1Impl();
 		return fileType1;
@@ -317,6 +328,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public Fmi2Annotation createFmi2Annotation() {
 		Fmi2AnnotationImpl fmi2Annotation = new Fmi2AnnotationImpl();
 		return fmi2Annotation;
@@ -327,6 +339,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public Fmi2ScalarVariable createFmi2ScalarVariable() {
 		Fmi2ScalarVariableImpl fmi2ScalarVariable = new Fmi2ScalarVariableImpl();
 		return fmi2ScalarVariable;
@@ -337,6 +350,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public Fmi2SimpleType createFmi2SimpleType() {
 		Fmi2SimpleTypeImpl fmi2SimpleType = new Fmi2SimpleTypeImpl();
 		return fmi2SimpleType;
@@ -347,6 +361,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public Fmi2Unit createFmi2Unit() {
 		Fmi2UnitImpl fmi2Unit = new Fmi2UnitImpl();
 		return fmi2Unit;
@@ -357,6 +372,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public Fmi2VariableDependency createFmi2VariableDependency() {
 		Fmi2VariableDependencyImpl fmi2VariableDependency = new Fmi2VariableDependencyImpl();
 		return fmi2VariableDependency;
@@ -367,6 +383,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public FmiModelDescriptionType createFmiModelDescriptionType() {
 		FmiModelDescriptionTypeImpl fmiModelDescriptionType = new FmiModelDescriptionTypeImpl();
 		return fmiModelDescriptionType;
@@ -377,6 +394,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public InitialUnknownsType createInitialUnknownsType() {
 		InitialUnknownsTypeImpl initialUnknownsType = new InitialUnknownsTypeImpl();
 		return initialUnknownsType;
@@ -387,6 +405,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public IntegerType createIntegerType() {
 		IntegerTypeImpl integerType = new IntegerTypeImpl();
 		return integerType;
@@ -397,6 +416,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public IntegerType1 createIntegerType1() {
 		IntegerType1Impl integerType1 = new IntegerType1Impl();
 		return integerType1;
@@ -407,6 +427,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public ItemType createItemType() {
 		ItemTypeImpl itemType = new ItemTypeImpl();
 		return itemType;
@@ -417,6 +438,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public LogCategoriesType createLogCategoriesType() {
 		LogCategoriesTypeImpl logCategoriesType = new LogCategoriesTypeImpl();
 		return logCategoriesType;
@@ -427,6 +449,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public ModelExchangeType createModelExchangeType() {
 		ModelExchangeTypeImpl modelExchangeType = new ModelExchangeTypeImpl();
 		return modelExchangeType;
@@ -437,6 +460,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public ModelStructureType createModelStructureType() {
 		ModelStructureTypeImpl modelStructureType = new ModelStructureTypeImpl();
 		return modelStructureType;
@@ -447,6 +471,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public ModelVariablesType createModelVariablesType() {
 		ModelVariablesTypeImpl modelVariablesType = new ModelVariablesTypeImpl();
 		return modelVariablesType;
@@ -457,6 +482,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public RealType createRealType() {
 		RealTypeImpl realType = new RealTypeImpl();
 		return realType;
@@ -467,6 +493,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public RealType1 createRealType1() {
 		RealType1Impl realType1 = new RealType1Impl();
 		return realType1;
@@ -477,6 +504,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public SourceFilesType createSourceFilesType() {
 		SourceFilesTypeImpl sourceFilesType = new SourceFilesTypeImpl();
 		return sourceFilesType;
@@ -487,6 +515,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public SourceFilesType1 createSourceFilesType1() {
 		SourceFilesType1Impl sourceFilesType1 = new SourceFilesType1Impl();
 		return sourceFilesType1;
@@ -497,6 +526,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public StringType createStringType() {
 		StringTypeImpl stringType = new StringTypeImpl();
 		return stringType;
@@ -507,6 +537,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public ToolType createToolType() {
 		ToolTypeImpl toolType = new ToolTypeImpl();
 		return toolType;
@@ -517,6 +548,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public TypeDefinitionsType createTypeDefinitionsType() {
 		TypeDefinitionsTypeImpl typeDefinitionsType = new TypeDefinitionsTypeImpl();
 		return typeDefinitionsType;
@@ -527,6 +559,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public UnitDefinitionsType createUnitDefinitionsType() {
 		UnitDefinitionsTypeImpl unitDefinitionsType = new UnitDefinitionsTypeImpl();
 		return unitDefinitionsType;
@@ -537,6 +570,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public UnknownType createUnknownType() {
 		UnknownTypeImpl unknownType = new UnknownTypeImpl();
 		return unknownType;
@@ -547,6 +581,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public UnknownType1 createUnknownType1() {
 		UnknownType1Impl unknownType1 = new UnknownType1Impl();
 		return unknownType1;
@@ -909,6 +944,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public FmiPackage getFmiPackage() {
 		return (FmiPackage)getEPackage();
 	}
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/FmiModelDescriptionTypeImpl.java b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/FmiModelDescriptionTypeImpl.java
index 5abe37d..e7541b1 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/FmiModelDescriptionTypeImpl.java
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/FmiModelDescriptionTypeImpl.java
@@ -449,6 +449,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public FeatureMap getGroup() {
 		if (group == null) {
 			group = new BasicFeatureMap(this, FmiPackage.FMI_MODEL_DESCRIPTION_TYPE__GROUP);
@@ -461,6 +462,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EList<ModelExchangeType> getModelExchange() {
 		return getGroup().list(FmiPackage.Literals.FMI_MODEL_DESCRIPTION_TYPE__MODEL_EXCHANGE);
 	}
@@ -470,6 +472,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EList<CoSimulationType> getCoSimulation() {
 		return getGroup().list(FmiPackage.Literals.FMI_MODEL_DESCRIPTION_TYPE__CO_SIMULATION);
 	}
@@ -479,6 +482,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public UnitDefinitionsType getUnitDefinitions() {
 		return unitDefinitions;
 	}
@@ -503,6 +507,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setUnitDefinitions(UnitDefinitionsType newUnitDefinitions) {
 		if (newUnitDefinitions != unitDefinitions) {
 			NotificationChain msgs = null;
@@ -522,6 +527,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public TypeDefinitionsType getTypeDefinitions() {
 		return typeDefinitions;
 	}
@@ -546,6 +552,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setTypeDefinitions(TypeDefinitionsType newTypeDefinitions) {
 		if (newTypeDefinitions != typeDefinitions) {
 			NotificationChain msgs = null;
@@ -565,6 +572,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public LogCategoriesType getLogCategories() {
 		return logCategories;
 	}
@@ -589,6 +597,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setLogCategories(LogCategoriesType newLogCategories) {
 		if (newLogCategories != logCategories) {
 			NotificationChain msgs = null;
@@ -608,6 +617,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public DefaultExperimentType getDefaultExperiment() {
 		return defaultExperiment;
 	}
@@ -632,6 +642,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setDefaultExperiment(DefaultExperimentType newDefaultExperiment) {
 		if (newDefaultExperiment != defaultExperiment) {
 			NotificationChain msgs = null;
@@ -651,6 +662,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public Fmi2Annotation getVendorAnnotations() {
 		return vendorAnnotations;
 	}
@@ -675,6 +687,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setVendorAnnotations(Fmi2Annotation newVendorAnnotations) {
 		if (newVendorAnnotations != vendorAnnotations) {
 			NotificationChain msgs = null;
@@ -694,6 +707,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public ModelVariablesType getModelVariables() {
 		return modelVariables;
 	}
@@ -718,6 +732,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setModelVariables(ModelVariablesType newModelVariables) {
 		if (newModelVariables != modelVariables) {
 			NotificationChain msgs = null;
@@ -737,6 +752,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public ModelStructureType getModelStructure() {
 		return modelStructure;
 	}
@@ -761,6 +777,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setModelStructure(ModelStructureType newModelStructure) {
 		if (newModelStructure != modelStructure) {
 			NotificationChain msgs = null;
@@ -780,6 +797,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public String getAuthor() {
 		return author;
 	}
@@ -789,6 +807,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setAuthor(String newAuthor) {
 		String oldAuthor = author;
 		author = newAuthor;
@@ -801,6 +820,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public String getCopyright() {
 		return copyright;
 	}
@@ -810,6 +830,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setCopyright(String newCopyright) {
 		String oldCopyright = copyright;
 		copyright = newCopyright;
@@ -822,6 +843,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public String getDescription() {
 		return description;
 	}
@@ -831,6 +853,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setDescription(String newDescription) {
 		String oldDescription = description;
 		description = newDescription;
@@ -843,6 +866,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public String getFmiVersion() {
 		return fmiVersion;
 	}
@@ -852,6 +876,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setFmiVersion(String newFmiVersion) {
 		String oldFmiVersion = fmiVersion;
 		fmiVersion = newFmiVersion;
@@ -866,6 +891,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void unsetFmiVersion() {
 		String oldFmiVersion = fmiVersion;
 		boolean oldFmiVersionESet = fmiVersionESet;
@@ -880,6 +906,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isSetFmiVersion() {
 		return fmiVersionESet;
 	}
@@ -889,6 +916,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public XMLGregorianCalendar getGenerationDateAndTime() {
 		return generationDateAndTime;
 	}
@@ -898,6 +926,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setGenerationDateAndTime(XMLGregorianCalendar newGenerationDateAndTime) {
 		XMLGregorianCalendar oldGenerationDateAndTime = generationDateAndTime;
 		generationDateAndTime = newGenerationDateAndTime;
@@ -910,6 +939,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public String getGenerationTool() {
 		return generationTool;
 	}
@@ -919,6 +949,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setGenerationTool(String newGenerationTool) {
 		String oldGenerationTool = generationTool;
 		generationTool = newGenerationTool;
@@ -931,6 +962,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public String getGuid() {
 		return guid;
 	}
@@ -940,6 +972,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setGuid(String newGuid) {
 		String oldGuid = guid;
 		guid = newGuid;
@@ -952,6 +985,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public String getLicense() {
 		return license;
 	}
@@ -961,6 +995,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setLicense(String newLicense) {
 		String oldLicense = license;
 		license = newLicense;
@@ -973,6 +1008,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public String getModelName() {
 		return modelName;
 	}
@@ -982,6 +1018,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setModelName(String newModelName) {
 		String oldModelName = modelName;
 		modelName = newModelName;
@@ -994,6 +1031,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public long getNumberOfEventIndicators() {
 		return numberOfEventIndicators;
 	}
@@ -1003,6 +1041,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setNumberOfEventIndicators(long newNumberOfEventIndicators) {
 		long oldNumberOfEventIndicators = numberOfEventIndicators;
 		numberOfEventIndicators = newNumberOfEventIndicators;
@@ -1017,6 +1056,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void unsetNumberOfEventIndicators() {
 		long oldNumberOfEventIndicators = numberOfEventIndicators;
 		boolean oldNumberOfEventIndicatorsESet = numberOfEventIndicatorsESet;
@@ -1031,6 +1071,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isSetNumberOfEventIndicators() {
 		return numberOfEventIndicatorsESet;
 	}
@@ -1040,6 +1081,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public VariableNamingConventionType getVariableNamingConvention() {
 		return variableNamingConvention;
 	}
@@ -1049,6 +1091,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setVariableNamingConvention(VariableNamingConventionType newVariableNamingConvention) {
 		VariableNamingConventionType oldVariableNamingConvention = variableNamingConvention;
 		variableNamingConvention = newVariableNamingConvention == null ? VARIABLE_NAMING_CONVENTION_EDEFAULT : newVariableNamingConvention;
@@ -1063,6 +1106,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void unsetVariableNamingConvention() {
 		VariableNamingConventionType oldVariableNamingConvention = variableNamingConvention;
 		boolean oldVariableNamingConventionESet = variableNamingConventionESet;
@@ -1077,6 +1121,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isSetVariableNamingConvention() {
 		return variableNamingConventionESet;
 	}
@@ -1086,6 +1131,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public String getVersion() {
 		return version;
 	}
@@ -1095,6 +1141,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setVersion(String newVersion) {
 		String oldVersion = version;
 		version = newVersion;
@@ -1415,7 +1462,7 @@
 	public String toString() {
 		if (eIsProxy()) return super.toString();
 
-		StringBuffer result = new StringBuffer(super.toString());
+		StringBuilder result = new StringBuilder(super.toString());
 		result.append(" (group: ");
 		result.append(group);
 		result.append(", author: ");
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/FmiPackageImpl.java b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/FmiPackageImpl.java
index a0c6e50..5df1d2c 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/FmiPackageImpl.java
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/FmiPackageImpl.java
@@ -463,7 +463,7 @@
 
 	/**
 	 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
-	 * 
+	 *
 	 * <p>This method is used to initialize {@link FmiPackage#eINSTANCE} when that field is accessed.
 	 * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
 	 * <!-- begin-user-doc -->
@@ -477,7 +477,8 @@
 		if (isInited) return (FmiPackage)EPackage.Registry.INSTANCE.getEPackage(FmiPackage.eNS_URI);
 
 		// Obtain or create and register package
-		FmiPackageImpl theFmiPackage = (FmiPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof FmiPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new FmiPackageImpl());
+		Object registeredFmiPackage = EPackage.Registry.INSTANCE.get(eNS_URI);
+		FmiPackageImpl theFmiPackage = registeredFmiPackage instanceof FmiPackageImpl ? (FmiPackageImpl)registeredFmiPackage : new FmiPackageImpl();
 
 		isInited = true;
 
@@ -492,8 +493,9 @@
 
 		// Register package validator
 		EValidator.Registry.INSTANCE.put
-			(theFmiPackage, 
+			(theFmiPackage,
 			 new EValidator.Descriptor() {
+				 @Override
 				 public EValidator getEValidator() {
 					 return FmiValidator.INSTANCE;
 				 }
@@ -502,7 +504,6 @@
 		// Mark meta-data to indicate it can't be changed
 		theFmiPackage.freeze();
 
-  
 		// Update the registry and return the package
 		EPackage.Registry.INSTANCE.put(FmiPackage.eNS_URI, theFmiPackage);
 		return theFmiPackage;
@@ -513,6 +514,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EClass getBaseUnitType() {
 		return baseUnitTypeEClass;
 	}
@@ -522,6 +524,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getBaseUnitType_A() {
 		return (EAttribute)baseUnitTypeEClass.getEStructuralFeatures().get(0);
 	}
@@ -531,6 +534,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getBaseUnitType_Cd() {
 		return (EAttribute)baseUnitTypeEClass.getEStructuralFeatures().get(1);
 	}
@@ -540,6 +544,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getBaseUnitType_Factor() {
 		return (EAttribute)baseUnitTypeEClass.getEStructuralFeatures().get(2);
 	}
@@ -549,6 +554,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getBaseUnitType_K() {
 		return (EAttribute)baseUnitTypeEClass.getEStructuralFeatures().get(3);
 	}
@@ -558,6 +564,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getBaseUnitType_Kg() {
 		return (EAttribute)baseUnitTypeEClass.getEStructuralFeatures().get(4);
 	}
@@ -567,6 +574,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getBaseUnitType_M() {
 		return (EAttribute)baseUnitTypeEClass.getEStructuralFeatures().get(5);
 	}
@@ -576,6 +584,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getBaseUnitType_Mol() {
 		return (EAttribute)baseUnitTypeEClass.getEStructuralFeatures().get(6);
 	}
@@ -585,6 +594,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getBaseUnitType_Offset() {
 		return (EAttribute)baseUnitTypeEClass.getEStructuralFeatures().get(7);
 	}
@@ -594,6 +604,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getBaseUnitType_Rad() {
 		return (EAttribute)baseUnitTypeEClass.getEStructuralFeatures().get(8);
 	}
@@ -603,6 +614,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getBaseUnitType_S() {
 		return (EAttribute)baseUnitTypeEClass.getEStructuralFeatures().get(9);
 	}
@@ -612,6 +624,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EClass getBooleanType() {
 		return booleanTypeEClass;
 	}
@@ -621,6 +634,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getBooleanType_DeclaredType() {
 		return (EAttribute)booleanTypeEClass.getEStructuralFeatures().get(0);
 	}
@@ -630,6 +644,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getBooleanType_Start() {
 		return (EAttribute)booleanTypeEClass.getEStructuralFeatures().get(1);
 	}
@@ -639,6 +654,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EClass getCategoryType() {
 		return categoryTypeEClass;
 	}
@@ -648,6 +664,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getCategoryType_Description() {
 		return (EAttribute)categoryTypeEClass.getEStructuralFeatures().get(0);
 	}
@@ -657,6 +674,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getCategoryType_Name() {
 		return (EAttribute)categoryTypeEClass.getEStructuralFeatures().get(1);
 	}
@@ -666,6 +684,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EClass getCoSimulationType() {
 		return coSimulationTypeEClass;
 	}
@@ -675,6 +694,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EReference getCoSimulationType_SourceFiles() {
 		return (EReference)coSimulationTypeEClass.getEStructuralFeatures().get(0);
 	}
@@ -684,6 +704,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getCoSimulationType_CanBeInstantiatedOnlyOncePerProcess() {
 		return (EAttribute)coSimulationTypeEClass.getEStructuralFeatures().get(1);
 	}
@@ -693,6 +714,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getCoSimulationType_CanGetAndSetFMUstate() {
 		return (EAttribute)coSimulationTypeEClass.getEStructuralFeatures().get(2);
 	}
@@ -702,6 +724,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getCoSimulationType_CanHandleVariableCommunicationStepSize() {
 		return (EAttribute)coSimulationTypeEClass.getEStructuralFeatures().get(3);
 	}
@@ -711,6 +734,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getCoSimulationType_CanInterpolateInputs() {
 		return (EAttribute)coSimulationTypeEClass.getEStructuralFeatures().get(4);
 	}
@@ -720,6 +744,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getCoSimulationType_CanNotUseMemoryManagementFunctions() {
 		return (EAttribute)coSimulationTypeEClass.getEStructuralFeatures().get(5);
 	}
@@ -729,6 +754,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getCoSimulationType_CanRunAsynchronuously() {
 		return (EAttribute)coSimulationTypeEClass.getEStructuralFeatures().get(6);
 	}
@@ -738,6 +764,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getCoSimulationType_CanSerializeFMUstate() {
 		return (EAttribute)coSimulationTypeEClass.getEStructuralFeatures().get(7);
 	}
@@ -747,6 +774,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getCoSimulationType_MaxOutputDerivativeOrder() {
 		return (EAttribute)coSimulationTypeEClass.getEStructuralFeatures().get(8);
 	}
@@ -756,6 +784,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getCoSimulationType_ModelIdentifier() {
 		return (EAttribute)coSimulationTypeEClass.getEStructuralFeatures().get(9);
 	}
@@ -765,6 +794,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getCoSimulationType_NeedsExecutionTool() {
 		return (EAttribute)coSimulationTypeEClass.getEStructuralFeatures().get(10);
 	}
@@ -774,6 +804,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getCoSimulationType_ProvidesDirectionalDerivative() {
 		return (EAttribute)coSimulationTypeEClass.getEStructuralFeatures().get(11);
 	}
@@ -783,6 +814,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EClass getDefaultExperimentType() {
 		return defaultExperimentTypeEClass;
 	}
@@ -792,6 +824,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getDefaultExperimentType_StartTime() {
 		return (EAttribute)defaultExperimentTypeEClass.getEStructuralFeatures().get(0);
 	}
@@ -801,6 +834,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getDefaultExperimentType_StepSize() {
 		return (EAttribute)defaultExperimentTypeEClass.getEStructuralFeatures().get(1);
 	}
@@ -810,6 +844,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getDefaultExperimentType_StopTime() {
 		return (EAttribute)defaultExperimentTypeEClass.getEStructuralFeatures().get(2);
 	}
@@ -819,6 +854,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getDefaultExperimentType_Tolerance() {
 		return (EAttribute)defaultExperimentTypeEClass.getEStructuralFeatures().get(3);
 	}
@@ -828,6 +864,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EClass getDisplayUnitType() {
 		return displayUnitTypeEClass;
 	}
@@ -837,6 +874,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getDisplayUnitType_Factor() {
 		return (EAttribute)displayUnitTypeEClass.getEStructuralFeatures().get(0);
 	}
@@ -846,6 +884,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getDisplayUnitType_Name() {
 		return (EAttribute)displayUnitTypeEClass.getEStructuralFeatures().get(1);
 	}
@@ -855,6 +894,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getDisplayUnitType_Offset() {
 		return (EAttribute)displayUnitTypeEClass.getEStructuralFeatures().get(2);
 	}
@@ -864,6 +904,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EClass getDocumentRoot() {
 		return documentRootEClass;
 	}
@@ -873,6 +914,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getDocumentRoot_Mixed() {
 		return (EAttribute)documentRootEClass.getEStructuralFeatures().get(0);
 	}
@@ -882,6 +924,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EReference getDocumentRoot_XMLNSPrefixMap() {
 		return (EReference)documentRootEClass.getEStructuralFeatures().get(1);
 	}
@@ -891,6 +934,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EReference getDocumentRoot_XSISchemaLocation() {
 		return (EReference)documentRootEClass.getEStructuralFeatures().get(2);
 	}
@@ -900,6 +944,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EReference getDocumentRoot_FmiModelDescription() {
 		return (EReference)documentRootEClass.getEStructuralFeatures().get(3);
 	}
@@ -909,6 +954,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EClass getEnumerationType() {
 		return enumerationTypeEClass;
 	}
@@ -918,6 +964,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getEnumerationType_DeclaredType() {
 		return (EAttribute)enumerationTypeEClass.getEStructuralFeatures().get(0);
 	}
@@ -927,6 +974,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getEnumerationType_Max() {
 		return (EAttribute)enumerationTypeEClass.getEStructuralFeatures().get(1);
 	}
@@ -936,6 +984,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getEnumerationType_Min() {
 		return (EAttribute)enumerationTypeEClass.getEStructuralFeatures().get(2);
 	}
@@ -945,6 +994,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getEnumerationType_Quantity() {
 		return (EAttribute)enumerationTypeEClass.getEStructuralFeatures().get(3);
 	}
@@ -954,6 +1004,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getEnumerationType_Start() {
 		return (EAttribute)enumerationTypeEClass.getEStructuralFeatures().get(4);
 	}
@@ -963,6 +1014,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EClass getEnumerationType1() {
 		return enumerationType1EClass;
 	}
@@ -972,6 +1024,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getEnumerationType1_Group() {
 		return (EAttribute)enumerationType1EClass.getEStructuralFeatures().get(0);
 	}
@@ -981,6 +1034,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EReference getEnumerationType1_Item() {
 		return (EReference)enumerationType1EClass.getEStructuralFeatures().get(1);
 	}
@@ -990,6 +1044,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getEnumerationType1_Quantity() {
 		return (EAttribute)enumerationType1EClass.getEStructuralFeatures().get(2);
 	}
@@ -999,6 +1054,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EClass getFileType() {
 		return fileTypeEClass;
 	}
@@ -1008,6 +1064,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getFileType_Name() {
 		return (EAttribute)fileTypeEClass.getEStructuralFeatures().get(0);
 	}
@@ -1017,6 +1074,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EClass getFileType1() {
 		return fileType1EClass;
 	}
@@ -1026,6 +1084,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getFileType1_Name() {
 		return (EAttribute)fileType1EClass.getEStructuralFeatures().get(0);
 	}
@@ -1035,6 +1094,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EClass getFmi2Annotation() {
 		return fmi2AnnotationEClass;
 	}
@@ -1044,6 +1104,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getFmi2Annotation_Group() {
 		return (EAttribute)fmi2AnnotationEClass.getEStructuralFeatures().get(0);
 	}
@@ -1053,6 +1114,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EReference getFmi2Annotation_Tool() {
 		return (EReference)fmi2AnnotationEClass.getEStructuralFeatures().get(1);
 	}
@@ -1062,6 +1124,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EClass getFmi2ScalarVariable() {
 		return fmi2ScalarVariableEClass;
 	}
@@ -1071,6 +1134,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EReference getFmi2ScalarVariable_Real() {
 		return (EReference)fmi2ScalarVariableEClass.getEStructuralFeatures().get(0);
 	}
@@ -1080,6 +1144,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EReference getFmi2ScalarVariable_Integer() {
 		return (EReference)fmi2ScalarVariableEClass.getEStructuralFeatures().get(1);
 	}
@@ -1089,6 +1154,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EReference getFmi2ScalarVariable_Boolean() {
 		return (EReference)fmi2ScalarVariableEClass.getEStructuralFeatures().get(2);
 	}
@@ -1098,6 +1164,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EReference getFmi2ScalarVariable_String() {
 		return (EReference)fmi2ScalarVariableEClass.getEStructuralFeatures().get(3);
 	}
@@ -1107,6 +1174,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EReference getFmi2ScalarVariable_Enumeration() {
 		return (EReference)fmi2ScalarVariableEClass.getEStructuralFeatures().get(4);
 	}
@@ -1116,6 +1184,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EReference getFmi2ScalarVariable_Annotations() {
 		return (EReference)fmi2ScalarVariableEClass.getEStructuralFeatures().get(5);
 	}
@@ -1125,6 +1194,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getFmi2ScalarVariable_CanHandleMultipleSetPerTimeInstant() {
 		return (EAttribute)fmi2ScalarVariableEClass.getEStructuralFeatures().get(6);
 	}
@@ -1134,6 +1204,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getFmi2ScalarVariable_Causality() {
 		return (EAttribute)fmi2ScalarVariableEClass.getEStructuralFeatures().get(7);
 	}
@@ -1143,6 +1214,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getFmi2ScalarVariable_Description() {
 		return (EAttribute)fmi2ScalarVariableEClass.getEStructuralFeatures().get(8);
 	}
@@ -1152,6 +1224,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getFmi2ScalarVariable_Initial() {
 		return (EAttribute)fmi2ScalarVariableEClass.getEStructuralFeatures().get(9);
 	}
@@ -1161,6 +1234,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getFmi2ScalarVariable_Name() {
 		return (EAttribute)fmi2ScalarVariableEClass.getEStructuralFeatures().get(10);
 	}
@@ -1170,6 +1244,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getFmi2ScalarVariable_ValueReference() {
 		return (EAttribute)fmi2ScalarVariableEClass.getEStructuralFeatures().get(11);
 	}
@@ -1179,6 +1254,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getFmi2ScalarVariable_Variability() {
 		return (EAttribute)fmi2ScalarVariableEClass.getEStructuralFeatures().get(12);
 	}
@@ -1188,6 +1264,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EClass getFmi2SimpleType() {
 		return fmi2SimpleTypeEClass;
 	}
@@ -1197,6 +1274,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EReference getFmi2SimpleType_Real() {
 		return (EReference)fmi2SimpleTypeEClass.getEStructuralFeatures().get(0);
 	}
@@ -1206,6 +1284,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EReference getFmi2SimpleType_Integer() {
 		return (EReference)fmi2SimpleTypeEClass.getEStructuralFeatures().get(1);
 	}
@@ -1215,6 +1294,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EReference getFmi2SimpleType_Boolean() {
 		return (EReference)fmi2SimpleTypeEClass.getEStructuralFeatures().get(2);
 	}
@@ -1224,6 +1304,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EReference getFmi2SimpleType_String() {
 		return (EReference)fmi2SimpleTypeEClass.getEStructuralFeatures().get(3);
 	}
@@ -1233,6 +1314,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EReference getFmi2SimpleType_Enumeration() {
 		return (EReference)fmi2SimpleTypeEClass.getEStructuralFeatures().get(4);
 	}
@@ -1242,6 +1324,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getFmi2SimpleType_Description() {
 		return (EAttribute)fmi2SimpleTypeEClass.getEStructuralFeatures().get(5);
 	}
@@ -1251,6 +1334,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getFmi2SimpleType_Name() {
 		return (EAttribute)fmi2SimpleTypeEClass.getEStructuralFeatures().get(6);
 	}
@@ -1260,6 +1344,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EClass getFmi2Unit() {
 		return fmi2UnitEClass;
 	}
@@ -1269,6 +1354,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EReference getFmi2Unit_BaseUnit() {
 		return (EReference)fmi2UnitEClass.getEStructuralFeatures().get(0);
 	}
@@ -1278,6 +1364,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getFmi2Unit_Group() {
 		return (EAttribute)fmi2UnitEClass.getEStructuralFeatures().get(1);
 	}
@@ -1287,6 +1374,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EReference getFmi2Unit_DisplayUnit() {
 		return (EReference)fmi2UnitEClass.getEStructuralFeatures().get(2);
 	}
@@ -1296,6 +1384,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getFmi2Unit_Name() {
 		return (EAttribute)fmi2UnitEClass.getEStructuralFeatures().get(3);
 	}
@@ -1305,6 +1394,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EClass getFmi2VariableDependency() {
 		return fmi2VariableDependencyEClass;
 	}
@@ -1314,6 +1404,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getFmi2VariableDependency_Group() {
 		return (EAttribute)fmi2VariableDependencyEClass.getEStructuralFeatures().get(0);
 	}
@@ -1323,6 +1414,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EReference getFmi2VariableDependency_Unknown() {
 		return (EReference)fmi2VariableDependencyEClass.getEStructuralFeatures().get(1);
 	}
@@ -1332,6 +1424,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EClass getFmiModelDescriptionType() {
 		return fmiModelDescriptionTypeEClass;
 	}
@@ -1341,6 +1434,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getFmiModelDescriptionType_Group() {
 		return (EAttribute)fmiModelDescriptionTypeEClass.getEStructuralFeatures().get(0);
 	}
@@ -1350,6 +1444,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EReference getFmiModelDescriptionType_ModelExchange() {
 		return (EReference)fmiModelDescriptionTypeEClass.getEStructuralFeatures().get(1);
 	}
@@ -1359,6 +1454,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EReference getFmiModelDescriptionType_CoSimulation() {
 		return (EReference)fmiModelDescriptionTypeEClass.getEStructuralFeatures().get(2);
 	}
@@ -1368,6 +1464,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EReference getFmiModelDescriptionType_UnitDefinitions() {
 		return (EReference)fmiModelDescriptionTypeEClass.getEStructuralFeatures().get(3);
 	}
@@ -1377,6 +1474,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EReference getFmiModelDescriptionType_TypeDefinitions() {
 		return (EReference)fmiModelDescriptionTypeEClass.getEStructuralFeatures().get(4);
 	}
@@ -1386,6 +1484,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EReference getFmiModelDescriptionType_LogCategories() {
 		return (EReference)fmiModelDescriptionTypeEClass.getEStructuralFeatures().get(5);
 	}
@@ -1395,6 +1494,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EReference getFmiModelDescriptionType_DefaultExperiment() {
 		return (EReference)fmiModelDescriptionTypeEClass.getEStructuralFeatures().get(6);
 	}
@@ -1404,6 +1504,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EReference getFmiModelDescriptionType_VendorAnnotations() {
 		return (EReference)fmiModelDescriptionTypeEClass.getEStructuralFeatures().get(7);
 	}
@@ -1413,6 +1514,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EReference getFmiModelDescriptionType_ModelVariables() {
 		return (EReference)fmiModelDescriptionTypeEClass.getEStructuralFeatures().get(8);
 	}
@@ -1422,6 +1524,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EReference getFmiModelDescriptionType_ModelStructure() {
 		return (EReference)fmiModelDescriptionTypeEClass.getEStructuralFeatures().get(9);
 	}
@@ -1431,6 +1534,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getFmiModelDescriptionType_Author() {
 		return (EAttribute)fmiModelDescriptionTypeEClass.getEStructuralFeatures().get(10);
 	}
@@ -1440,6 +1544,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getFmiModelDescriptionType_Copyright() {
 		return (EAttribute)fmiModelDescriptionTypeEClass.getEStructuralFeatures().get(11);
 	}
@@ -1449,6 +1554,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getFmiModelDescriptionType_Description() {
 		return (EAttribute)fmiModelDescriptionTypeEClass.getEStructuralFeatures().get(12);
 	}
@@ -1458,6 +1564,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getFmiModelDescriptionType_FmiVersion() {
 		return (EAttribute)fmiModelDescriptionTypeEClass.getEStructuralFeatures().get(13);
 	}
@@ -1467,6 +1574,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getFmiModelDescriptionType_GenerationDateAndTime() {
 		return (EAttribute)fmiModelDescriptionTypeEClass.getEStructuralFeatures().get(14);
 	}
@@ -1476,6 +1584,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getFmiModelDescriptionType_GenerationTool() {
 		return (EAttribute)fmiModelDescriptionTypeEClass.getEStructuralFeatures().get(15);
 	}
@@ -1485,6 +1594,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getFmiModelDescriptionType_Guid() {
 		return (EAttribute)fmiModelDescriptionTypeEClass.getEStructuralFeatures().get(16);
 	}
@@ -1494,6 +1604,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getFmiModelDescriptionType_License() {
 		return (EAttribute)fmiModelDescriptionTypeEClass.getEStructuralFeatures().get(17);
 	}
@@ -1503,6 +1614,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getFmiModelDescriptionType_ModelName() {
 		return (EAttribute)fmiModelDescriptionTypeEClass.getEStructuralFeatures().get(18);
 	}
@@ -1512,6 +1624,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getFmiModelDescriptionType_NumberOfEventIndicators() {
 		return (EAttribute)fmiModelDescriptionTypeEClass.getEStructuralFeatures().get(19);
 	}
@@ -1521,6 +1634,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getFmiModelDescriptionType_VariableNamingConvention() {
 		return (EAttribute)fmiModelDescriptionTypeEClass.getEStructuralFeatures().get(20);
 	}
@@ -1530,6 +1644,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getFmiModelDescriptionType_Version() {
 		return (EAttribute)fmiModelDescriptionTypeEClass.getEStructuralFeatures().get(21);
 	}
@@ -1539,6 +1654,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EClass getInitialUnknownsType() {
 		return initialUnknownsTypeEClass;
 	}
@@ -1548,6 +1664,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getInitialUnknownsType_Group() {
 		return (EAttribute)initialUnknownsTypeEClass.getEStructuralFeatures().get(0);
 	}
@@ -1557,6 +1674,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EReference getInitialUnknownsType_Unknown() {
 		return (EReference)initialUnknownsTypeEClass.getEStructuralFeatures().get(1);
 	}
@@ -1566,6 +1684,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EClass getIntegerType() {
 		return integerTypeEClass;
 	}
@@ -1575,6 +1694,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getIntegerType_DeclaredType() {
 		return (EAttribute)integerTypeEClass.getEStructuralFeatures().get(0);
 	}
@@ -1584,6 +1704,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getIntegerType_Max() {
 		return (EAttribute)integerTypeEClass.getEStructuralFeatures().get(1);
 	}
@@ -1593,6 +1714,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getIntegerType_Min() {
 		return (EAttribute)integerTypeEClass.getEStructuralFeatures().get(2);
 	}
@@ -1602,6 +1724,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getIntegerType_Quantity() {
 		return (EAttribute)integerTypeEClass.getEStructuralFeatures().get(3);
 	}
@@ -1611,6 +1734,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getIntegerType_Start() {
 		return (EAttribute)integerTypeEClass.getEStructuralFeatures().get(4);
 	}
@@ -1620,6 +1744,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EClass getIntegerType1() {
 		return integerType1EClass;
 	}
@@ -1629,6 +1754,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getIntegerType1_Max() {
 		return (EAttribute)integerType1EClass.getEStructuralFeatures().get(0);
 	}
@@ -1638,6 +1764,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getIntegerType1_Min() {
 		return (EAttribute)integerType1EClass.getEStructuralFeatures().get(1);
 	}
@@ -1647,6 +1774,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getIntegerType1_Quantity() {
 		return (EAttribute)integerType1EClass.getEStructuralFeatures().get(2);
 	}
@@ -1656,6 +1784,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EClass getItemType() {
 		return itemTypeEClass;
 	}
@@ -1665,6 +1794,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getItemType_Description() {
 		return (EAttribute)itemTypeEClass.getEStructuralFeatures().get(0);
 	}
@@ -1674,6 +1804,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getItemType_Name() {
 		return (EAttribute)itemTypeEClass.getEStructuralFeatures().get(1);
 	}
@@ -1683,6 +1814,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getItemType_Value() {
 		return (EAttribute)itemTypeEClass.getEStructuralFeatures().get(2);
 	}
@@ -1692,6 +1824,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EClass getLogCategoriesType() {
 		return logCategoriesTypeEClass;
 	}
@@ -1701,6 +1834,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getLogCategoriesType_Group() {
 		return (EAttribute)logCategoriesTypeEClass.getEStructuralFeatures().get(0);
 	}
@@ -1710,6 +1844,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EReference getLogCategoriesType_Category() {
 		return (EReference)logCategoriesTypeEClass.getEStructuralFeatures().get(1);
 	}
@@ -1719,6 +1854,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EClass getModelExchangeType() {
 		return modelExchangeTypeEClass;
 	}
@@ -1728,6 +1864,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EReference getModelExchangeType_SourceFiles() {
 		return (EReference)modelExchangeTypeEClass.getEStructuralFeatures().get(0);
 	}
@@ -1737,6 +1874,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getModelExchangeType_CanBeInstantiatedOnlyOncePerProcess() {
 		return (EAttribute)modelExchangeTypeEClass.getEStructuralFeatures().get(1);
 	}
@@ -1746,6 +1884,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getModelExchangeType_CanGetAndSetFMUstate() {
 		return (EAttribute)modelExchangeTypeEClass.getEStructuralFeatures().get(2);
 	}
@@ -1755,6 +1894,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getModelExchangeType_CanNotUseMemoryManagementFunctions() {
 		return (EAttribute)modelExchangeTypeEClass.getEStructuralFeatures().get(3);
 	}
@@ -1764,6 +1904,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getModelExchangeType_CanSerializeFMUstate() {
 		return (EAttribute)modelExchangeTypeEClass.getEStructuralFeatures().get(4);
 	}
@@ -1773,6 +1914,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getModelExchangeType_CompletedIntegratorStepNotNeeded() {
 		return (EAttribute)modelExchangeTypeEClass.getEStructuralFeatures().get(5);
 	}
@@ -1782,6 +1924,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getModelExchangeType_ModelIdentifier() {
 		return (EAttribute)modelExchangeTypeEClass.getEStructuralFeatures().get(6);
 	}
@@ -1791,6 +1934,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getModelExchangeType_NeedsExecutionTool() {
 		return (EAttribute)modelExchangeTypeEClass.getEStructuralFeatures().get(7);
 	}
@@ -1800,6 +1944,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getModelExchangeType_ProvidesDirectionalDerivative() {
 		return (EAttribute)modelExchangeTypeEClass.getEStructuralFeatures().get(8);
 	}
@@ -1809,6 +1954,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EClass getModelStructureType() {
 		return modelStructureTypeEClass;
 	}
@@ -1818,6 +1964,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EReference getModelStructureType_Outputs() {
 		return (EReference)modelStructureTypeEClass.getEStructuralFeatures().get(0);
 	}
@@ -1827,6 +1974,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EReference getModelStructureType_Derivatives() {
 		return (EReference)modelStructureTypeEClass.getEStructuralFeatures().get(1);
 	}
@@ -1836,6 +1984,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EReference getModelStructureType_InitialUnknowns() {
 		return (EReference)modelStructureTypeEClass.getEStructuralFeatures().get(2);
 	}
@@ -1845,6 +1994,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EClass getModelVariablesType() {
 		return modelVariablesTypeEClass;
 	}
@@ -1854,6 +2004,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getModelVariablesType_Group() {
 		return (EAttribute)modelVariablesTypeEClass.getEStructuralFeatures().get(0);
 	}
@@ -1863,6 +2014,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EReference getModelVariablesType_ScalarVariable() {
 		return (EReference)modelVariablesTypeEClass.getEStructuralFeatures().get(1);
 	}
@@ -1872,6 +2024,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EClass getRealType() {
 		return realTypeEClass;
 	}
@@ -1881,6 +2034,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getRealType_DeclaredType() {
 		return (EAttribute)realTypeEClass.getEStructuralFeatures().get(0);
 	}
@@ -1890,6 +2044,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getRealType_Derivative() {
 		return (EAttribute)realTypeEClass.getEStructuralFeatures().get(1);
 	}
@@ -1899,6 +2054,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getRealType_DisplayUnit() {
 		return (EAttribute)realTypeEClass.getEStructuralFeatures().get(2);
 	}
@@ -1908,6 +2064,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getRealType_Max() {
 		return (EAttribute)realTypeEClass.getEStructuralFeatures().get(3);
 	}
@@ -1917,6 +2074,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getRealType_Min() {
 		return (EAttribute)realTypeEClass.getEStructuralFeatures().get(4);
 	}
@@ -1926,6 +2084,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getRealType_Nominal() {
 		return (EAttribute)realTypeEClass.getEStructuralFeatures().get(5);
 	}
@@ -1935,6 +2094,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getRealType_Quantity() {
 		return (EAttribute)realTypeEClass.getEStructuralFeatures().get(6);
 	}
@@ -1944,6 +2104,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getRealType_Reinit() {
 		return (EAttribute)realTypeEClass.getEStructuralFeatures().get(7);
 	}
@@ -1953,6 +2114,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getRealType_RelativeQuantity() {
 		return (EAttribute)realTypeEClass.getEStructuralFeatures().get(8);
 	}
@@ -1962,6 +2124,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getRealType_Start() {
 		return (EAttribute)realTypeEClass.getEStructuralFeatures().get(9);
 	}
@@ -1971,6 +2134,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getRealType_Unbounded() {
 		return (EAttribute)realTypeEClass.getEStructuralFeatures().get(10);
 	}
@@ -1980,6 +2144,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getRealType_Unit() {
 		return (EAttribute)realTypeEClass.getEStructuralFeatures().get(11);
 	}
@@ -1989,6 +2154,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EClass getRealType1() {
 		return realType1EClass;
 	}
@@ -1998,6 +2164,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getRealType1_DisplayUnit() {
 		return (EAttribute)realType1EClass.getEStructuralFeatures().get(0);
 	}
@@ -2007,6 +2174,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getRealType1_Max() {
 		return (EAttribute)realType1EClass.getEStructuralFeatures().get(1);
 	}
@@ -2016,6 +2184,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getRealType1_Min() {
 		return (EAttribute)realType1EClass.getEStructuralFeatures().get(2);
 	}
@@ -2025,6 +2194,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getRealType1_Nominal() {
 		return (EAttribute)realType1EClass.getEStructuralFeatures().get(3);
 	}
@@ -2034,6 +2204,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getRealType1_Quantity() {
 		return (EAttribute)realType1EClass.getEStructuralFeatures().get(4);
 	}
@@ -2043,6 +2214,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getRealType1_RelativeQuantity() {
 		return (EAttribute)realType1EClass.getEStructuralFeatures().get(5);
 	}
@@ -2052,6 +2224,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getRealType1_Unbounded() {
 		return (EAttribute)realType1EClass.getEStructuralFeatures().get(6);
 	}
@@ -2061,6 +2234,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getRealType1_Unit() {
 		return (EAttribute)realType1EClass.getEStructuralFeatures().get(7);
 	}
@@ -2070,6 +2244,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EClass getSourceFilesType() {
 		return sourceFilesTypeEClass;
 	}
@@ -2079,6 +2254,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getSourceFilesType_Group() {
 		return (EAttribute)sourceFilesTypeEClass.getEStructuralFeatures().get(0);
 	}
@@ -2088,6 +2264,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EReference getSourceFilesType_File() {
 		return (EReference)sourceFilesTypeEClass.getEStructuralFeatures().get(1);
 	}
@@ -2097,6 +2274,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EClass getSourceFilesType1() {
 		return sourceFilesType1EClass;
 	}
@@ -2106,6 +2284,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getSourceFilesType1_Group() {
 		return (EAttribute)sourceFilesType1EClass.getEStructuralFeatures().get(0);
 	}
@@ -2115,6 +2294,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EReference getSourceFilesType1_File() {
 		return (EReference)sourceFilesType1EClass.getEStructuralFeatures().get(1);
 	}
@@ -2124,6 +2304,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EClass getStringType() {
 		return stringTypeEClass;
 	}
@@ -2133,6 +2314,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getStringType_DeclaredType() {
 		return (EAttribute)stringTypeEClass.getEStructuralFeatures().get(0);
 	}
@@ -2142,6 +2324,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getStringType_Start() {
 		return (EAttribute)stringTypeEClass.getEStructuralFeatures().get(1);
 	}
@@ -2151,6 +2334,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EClass getToolType() {
 		return toolTypeEClass;
 	}
@@ -2160,6 +2344,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getToolType_Any() {
 		return (EAttribute)toolTypeEClass.getEStructuralFeatures().get(0);
 	}
@@ -2169,6 +2354,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getToolType_Name() {
 		return (EAttribute)toolTypeEClass.getEStructuralFeatures().get(1);
 	}
@@ -2178,6 +2364,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EClass getTypeDefinitionsType() {
 		return typeDefinitionsTypeEClass;
 	}
@@ -2187,6 +2374,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getTypeDefinitionsType_Group() {
 		return (EAttribute)typeDefinitionsTypeEClass.getEStructuralFeatures().get(0);
 	}
@@ -2196,6 +2384,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EReference getTypeDefinitionsType_SimpleType() {
 		return (EReference)typeDefinitionsTypeEClass.getEStructuralFeatures().get(1);
 	}
@@ -2205,6 +2394,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EClass getUnitDefinitionsType() {
 		return unitDefinitionsTypeEClass;
 	}
@@ -2214,6 +2404,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getUnitDefinitionsType_Group() {
 		return (EAttribute)unitDefinitionsTypeEClass.getEStructuralFeatures().get(0);
 	}
@@ -2223,6 +2414,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EReference getUnitDefinitionsType_Unit() {
 		return (EReference)unitDefinitionsTypeEClass.getEStructuralFeatures().get(1);
 	}
@@ -2232,6 +2424,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EClass getUnknownType() {
 		return unknownTypeEClass;
 	}
@@ -2241,6 +2434,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getUnknownType_Dependencies() {
 		return (EAttribute)unknownTypeEClass.getEStructuralFeatures().get(0);
 	}
@@ -2250,6 +2444,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getUnknownType_DependenciesKind() {
 		return (EAttribute)unknownTypeEClass.getEStructuralFeatures().get(1);
 	}
@@ -2259,6 +2454,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getUnknownType_Index() {
 		return (EAttribute)unknownTypeEClass.getEStructuralFeatures().get(2);
 	}
@@ -2268,6 +2464,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EClass getUnknownType1() {
 		return unknownType1EClass;
 	}
@@ -2277,6 +2474,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getUnknownType1_Dependencies() {
 		return (EAttribute)unknownType1EClass.getEStructuralFeatures().get(0);
 	}
@@ -2286,6 +2484,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getUnknownType1_DependenciesKind() {
 		return (EAttribute)unknownType1EClass.getEStructuralFeatures().get(1);
 	}
@@ -2295,6 +2494,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EAttribute getUnknownType1_Index() {
 		return (EAttribute)unknownType1EClass.getEStructuralFeatures().get(2);
 	}
@@ -2304,6 +2504,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EEnum getCausalityType() {
 		return causalityTypeEEnum;
 	}
@@ -2313,6 +2514,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EEnum getDependenciesKindTypeItem() {
 		return dependenciesKindTypeItemEEnum;
 	}
@@ -2322,6 +2524,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EEnum getDependenciesKindTypeItem1() {
 		return dependenciesKindTypeItem1EEnum;
 	}
@@ -2331,6 +2534,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EEnum getInitialType() {
 		return initialTypeEEnum;
 	}
@@ -2340,6 +2544,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EEnum getVariabilityType() {
 		return variabilityTypeEEnum;
 	}
@@ -2349,6 +2554,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EEnum getVariableNamingConventionType() {
 		return variableNamingConventionTypeEEnum;
 	}
@@ -2358,6 +2564,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EDataType getCausalityTypeObject() {
 		return causalityTypeObjectEDataType;
 	}
@@ -2367,6 +2574,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EDataType getDependenciesKindType() {
 		return dependenciesKindTypeEDataType;
 	}
@@ -2376,6 +2584,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EDataType getDependenciesKindType1() {
 		return dependenciesKindType1EDataType;
 	}
@@ -2385,6 +2594,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EDataType getDependenciesKindTypeItemObject() {
 		return dependenciesKindTypeItemObjectEDataType;
 	}
@@ -2394,6 +2604,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EDataType getDependenciesKindTypeItemObject1() {
 		return dependenciesKindTypeItemObject1EDataType;
 	}
@@ -2403,6 +2614,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EDataType getDependenciesType() {
 		return dependenciesTypeEDataType;
 	}
@@ -2412,6 +2624,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EDataType getDependenciesType1() {
 		return dependenciesType1EDataType;
 	}
@@ -2421,6 +2634,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EDataType getInitialTypeObject() {
 		return initialTypeObjectEDataType;
 	}
@@ -2430,6 +2644,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EDataType getVariabilityTypeObject() {
 		return variabilityTypeObjectEDataType;
 	}
@@ -2439,6 +2654,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EDataType getVariableNamingConventionTypeObject() {
 		return variableNamingConventionTypeObjectEDataType;
 	}
@@ -2448,6 +2664,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public FmiFactory getFmiFactory() {
 		return (FmiFactory)getEFactoryInstance();
 	}
@@ -3059,1674 +3276,1674 @@
 	 * @generated
 	 */
 	protected void createExtendedMetaDataAnnotations() {
-		String source = "http:///org/eclipse/emf/ecore/util/ExtendedMetaData";	
+		String source = "http:///org/eclipse/emf/ecore/util/ExtendedMetaData";
 		addAnnotation
-		  (this, 
-		   source, 
+		  (this,
+		   source,
 		   new String[] {
-			 "qualified", "false"
-		   });	
+			   "qualified", "false"
+		   });
 		addAnnotation
-		  (baseUnitTypeEClass, 
-		   source, 
+		  (baseUnitTypeEClass,
+		   source,
 		   new String[] {
-			 "name", "BaseUnit_._type",
-			 "kind", "empty"
-		   });	
+			   "name", "BaseUnit_._type",
+			   "kind", "empty"
+		   });
 		addAnnotation
-		  (getBaseUnitType_A(), 
-		   source, 
+		  (getBaseUnitType_A(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "A",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "A",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getBaseUnitType_Cd(), 
-		   source, 
+		  (getBaseUnitType_Cd(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "cd",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "cd",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getBaseUnitType_Factor(), 
-		   source, 
+		  (getBaseUnitType_Factor(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "factor",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "factor",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getBaseUnitType_K(), 
-		   source, 
+		  (getBaseUnitType_K(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "K",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "K",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getBaseUnitType_Kg(), 
-		   source, 
+		  (getBaseUnitType_Kg(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "kg",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "kg",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getBaseUnitType_M(), 
-		   source, 
+		  (getBaseUnitType_M(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "m",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "m",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getBaseUnitType_Mol(), 
-		   source, 
+		  (getBaseUnitType_Mol(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "mol",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "mol",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getBaseUnitType_Offset(), 
-		   source, 
+		  (getBaseUnitType_Offset(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "offset",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "offset",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getBaseUnitType_Rad(), 
-		   source, 
+		  (getBaseUnitType_Rad(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "rad",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "rad",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getBaseUnitType_S(), 
-		   source, 
+		  (getBaseUnitType_S(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "s",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "s",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (booleanTypeEClass, 
-		   source, 
+		  (booleanTypeEClass,
+		   source,
 		   new String[] {
-			 "name", "Boolean_._type",
-			 "kind", "empty"
-		   });	
+			   "name", "Boolean_._type",
+			   "kind", "empty"
+		   });
 		addAnnotation
-		  (getBooleanType_DeclaredType(), 
-		   source, 
+		  (getBooleanType_DeclaredType(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "declaredType",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "declaredType",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getBooleanType_Start(), 
-		   source, 
+		  (getBooleanType_Start(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "start",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "start",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (categoryTypeEClass, 
-		   source, 
+		  (categoryTypeEClass,
+		   source,
 		   new String[] {
-			 "name", "Category_._type",
-			 "kind", "empty"
-		   });	
+			   "name", "Category_._type",
+			   "kind", "empty"
+		   });
 		addAnnotation
-		  (getCategoryType_Description(), 
-		   source, 
+		  (getCategoryType_Description(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "description",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "description",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getCategoryType_Name(), 
-		   source, 
+		  (getCategoryType_Name(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "name",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "name",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (causalityTypeEEnum, 
-		   source, 
+		  (causalityTypeEEnum,
+		   source,
 		   new String[] {
-			 "name", "causality_._type"
-		   });	
+			   "name", "causality_._type"
+		   });
 		addAnnotation
-		  (causalityTypeObjectEDataType, 
-		   source, 
+		  (causalityTypeObjectEDataType,
+		   source,
 		   new String[] {
-			 "name", "causality_._type:Object",
-			 "baseType", "causality_._type"
-		   });	
+			   "name", "causality_._type:Object",
+			   "baseType", "causality_._type"
+		   });
 		addAnnotation
-		  (coSimulationTypeEClass, 
-		   source, 
+		  (coSimulationTypeEClass,
+		   source,
 		   new String[] {
-			 "name", "CoSimulation_._type",
-			 "kind", "elementOnly"
-		   });	
+			   "name", "CoSimulation_._type",
+			   "kind", "elementOnly"
+		   });
 		addAnnotation
-		  (getCoSimulationType_SourceFiles(), 
-		   source, 
+		  (getCoSimulationType_SourceFiles(),
+		   source,
 		   new String[] {
-			 "kind", "element",
-			 "name", "SourceFiles",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "element",
+			   "name", "SourceFiles",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getCoSimulationType_CanBeInstantiatedOnlyOncePerProcess(), 
-		   source, 
+		  (getCoSimulationType_CanBeInstantiatedOnlyOncePerProcess(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "canBeInstantiatedOnlyOncePerProcess",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "canBeInstantiatedOnlyOncePerProcess",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getCoSimulationType_CanGetAndSetFMUstate(), 
-		   source, 
+		  (getCoSimulationType_CanGetAndSetFMUstate(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "canGetAndSetFMUstate",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "canGetAndSetFMUstate",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getCoSimulationType_CanHandleVariableCommunicationStepSize(), 
-		   source, 
+		  (getCoSimulationType_CanHandleVariableCommunicationStepSize(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "canHandleVariableCommunicationStepSize",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "canHandleVariableCommunicationStepSize",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getCoSimulationType_CanInterpolateInputs(), 
-		   source, 
+		  (getCoSimulationType_CanInterpolateInputs(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "canInterpolateInputs",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "canInterpolateInputs",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getCoSimulationType_CanNotUseMemoryManagementFunctions(), 
-		   source, 
+		  (getCoSimulationType_CanNotUseMemoryManagementFunctions(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "canNotUseMemoryManagementFunctions",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "canNotUseMemoryManagementFunctions",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getCoSimulationType_CanRunAsynchronuously(), 
-		   source, 
+		  (getCoSimulationType_CanRunAsynchronuously(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "canRunAsynchronuously",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "canRunAsynchronuously",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getCoSimulationType_CanSerializeFMUstate(), 
-		   source, 
+		  (getCoSimulationType_CanSerializeFMUstate(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "canSerializeFMUstate",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "canSerializeFMUstate",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getCoSimulationType_MaxOutputDerivativeOrder(), 
-		   source, 
+		  (getCoSimulationType_MaxOutputDerivativeOrder(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "maxOutputDerivativeOrder",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "maxOutputDerivativeOrder",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getCoSimulationType_ModelIdentifier(), 
-		   source, 
+		  (getCoSimulationType_ModelIdentifier(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "modelIdentifier",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "modelIdentifier",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getCoSimulationType_NeedsExecutionTool(), 
-		   source, 
+		  (getCoSimulationType_NeedsExecutionTool(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "needsExecutionTool",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "needsExecutionTool",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getCoSimulationType_ProvidesDirectionalDerivative(), 
-		   source, 
+		  (getCoSimulationType_ProvidesDirectionalDerivative(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "providesDirectionalDerivative",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "providesDirectionalDerivative",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (defaultExperimentTypeEClass, 
-		   source, 
+		  (defaultExperimentTypeEClass,
+		   source,
 		   new String[] {
-			 "name", "DefaultExperiment_._type",
-			 "kind", "empty"
-		   });	
+			   "name", "DefaultExperiment_._type",
+			   "kind", "empty"
+		   });
 		addAnnotation
-		  (getDefaultExperimentType_StartTime(), 
-		   source, 
+		  (getDefaultExperimentType_StartTime(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "startTime",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "startTime",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getDefaultExperimentType_StepSize(), 
-		   source, 
+		  (getDefaultExperimentType_StepSize(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "stepSize",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "stepSize",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getDefaultExperimentType_StopTime(), 
-		   source, 
+		  (getDefaultExperimentType_StopTime(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "stopTime",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "stopTime",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getDefaultExperimentType_Tolerance(), 
-		   source, 
+		  (getDefaultExperimentType_Tolerance(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "tolerance",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "tolerance",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (dependenciesKindTypeEDataType, 
-		   source, 
+		  (dependenciesKindTypeEDataType,
+		   source,
 		   new String[] {
-			 "name", "dependenciesKind_._type",
-			 "itemType", "dependenciesKind_._type_._item"
-		   });	
+			   "name", "dependenciesKind_._type",
+			   "itemType", "dependenciesKind_._type_._item"
+		   });
 		addAnnotation
-		  (dependenciesKindType1EDataType, 
-		   source, 
+		  (dependenciesKindType1EDataType,
+		   source,
 		   new String[] {
-			 "name", "dependenciesKind_._1_._type",
-			 "itemType", "dependenciesKind_._1_._type_._item"
-		   });	
+			   "name", "dependenciesKind_._1_._type",
+			   "itemType", "dependenciesKind_._1_._type_._item"
+		   });
 		addAnnotation
-		  (dependenciesKindTypeItemEEnum, 
-		   source, 
+		  (dependenciesKindTypeItemEEnum,
+		   source,
 		   new String[] {
-			 "name", "dependenciesKind_._type_._item"
-		   });	
+			   "name", "dependenciesKind_._type_._item"
+		   });
 		addAnnotation
-		  (dependenciesKindTypeItem1EEnum, 
-		   source, 
+		  (dependenciesKindTypeItem1EEnum,
+		   source,
 		   new String[] {
-			 "name", "dependenciesKind_._1_._type_._item"
-		   });	
+			   "name", "dependenciesKind_._1_._type_._item"
+		   });
 		addAnnotation
-		  (dependenciesKindTypeItemObjectEDataType, 
-		   source, 
+		  (dependenciesKindTypeItemObjectEDataType,
+		   source,
 		   new String[] {
-			 "name", "dependenciesKind_._type_._item:Object",
-			 "baseType", "dependenciesKind_._type_._item"
-		   });	
+			   "name", "dependenciesKind_._type_._item:Object",
+			   "baseType", "dependenciesKind_._type_._item"
+		   });
 		addAnnotation
-		  (dependenciesKindTypeItemObject1EDataType, 
-		   source, 
+		  (dependenciesKindTypeItemObject1EDataType,
+		   source,
 		   new String[] {
-			 "name", "dependenciesKind_._1_._type_._item:Object",
-			 "baseType", "dependenciesKind_._1_._type_._item"
-		   });	
+			   "name", "dependenciesKind_._1_._type_._item:Object",
+			   "baseType", "dependenciesKind_._1_._type_._item"
+		   });
 		addAnnotation
-		  (dependenciesTypeEDataType, 
-		   source, 
+		  (dependenciesTypeEDataType,
+		   source,
 		   new String[] {
-			 "name", "dependencies_._type",
-			 "itemType", "http://www.eclipse.org/emf/2003/XMLType#unsignedInt"
-		   });	
+			   "name", "dependencies_._type",
+			   "itemType", "http://www.eclipse.org/emf/2003/XMLType#unsignedInt"
+		   });
 		addAnnotation
-		  (dependenciesType1EDataType, 
-		   source, 
+		  (dependenciesType1EDataType,
+		   source,
 		   new String[] {
-			 "name", "dependencies_._1_._type",
-			 "itemType", "http://www.eclipse.org/emf/2003/XMLType#unsignedInt"
-		   });	
+			   "name", "dependencies_._1_._type",
+			   "itemType", "http://www.eclipse.org/emf/2003/XMLType#unsignedInt"
+		   });
 		addAnnotation
-		  (displayUnitTypeEClass, 
-		   source, 
+		  (displayUnitTypeEClass,
+		   source,
 		   new String[] {
-			 "name", "DisplayUnit_._type",
-			 "kind", "empty"
-		   });	
+			   "name", "DisplayUnit_._type",
+			   "kind", "empty"
+		   });
 		addAnnotation
-		  (getDisplayUnitType_Factor(), 
-		   source, 
+		  (getDisplayUnitType_Factor(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "factor",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "factor",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getDisplayUnitType_Name(), 
-		   source, 
+		  (getDisplayUnitType_Name(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "name",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "name",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getDisplayUnitType_Offset(), 
-		   source, 
+		  (getDisplayUnitType_Offset(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "offset",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "offset",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (documentRootEClass, 
-		   source, 
+		  (documentRootEClass,
+		   source,
 		   new String[] {
-			 "name", "",
-			 "kind", "mixed"
-		   });	
+			   "name", "",
+			   "kind", "mixed"
+		   });
 		addAnnotation
-		  (getDocumentRoot_Mixed(), 
-		   source, 
+		  (getDocumentRoot_Mixed(),
+		   source,
 		   new String[] {
-			 "kind", "elementWildcard",
-			 "name", ":mixed"
-		   });	
+			   "kind", "elementWildcard",
+			   "name", ":mixed"
+		   });
 		addAnnotation
-		  (getDocumentRoot_XMLNSPrefixMap(), 
-		   source, 
+		  (getDocumentRoot_XMLNSPrefixMap(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "xmlns:prefix"
-		   });	
+			   "kind", "attribute",
+			   "name", "xmlns:prefix"
+		   });
 		addAnnotation
-		  (getDocumentRoot_XSISchemaLocation(), 
-		   source, 
+		  (getDocumentRoot_XSISchemaLocation(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "xsi:schemaLocation"
-		   });	
+			   "kind", "attribute",
+			   "name", "xsi:schemaLocation"
+		   });
 		addAnnotation
-		  (getDocumentRoot_FmiModelDescription(), 
-		   source, 
+		  (getDocumentRoot_FmiModelDescription(),
+		   source,
 		   new String[] {
-			 "kind", "element",
-			 "name", "fmiModelDescription",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "element",
+			   "name", "fmiModelDescription",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (enumerationTypeEClass, 
-		   source, 
+		  (enumerationTypeEClass,
+		   source,
 		   new String[] {
-			 "name", "Enumeration_._type",
-			 "kind", "empty"
-		   });	
+			   "name", "Enumeration_._type",
+			   "kind", "empty"
+		   });
 		addAnnotation
-		  (getEnumerationType_DeclaredType(), 
-		   source, 
+		  (getEnumerationType_DeclaredType(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "declaredType",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "declaredType",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getEnumerationType_Max(), 
-		   source, 
+		  (getEnumerationType_Max(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "max",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "max",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getEnumerationType_Min(), 
-		   source, 
+		  (getEnumerationType_Min(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "min",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "min",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getEnumerationType_Quantity(), 
-		   source, 
+		  (getEnumerationType_Quantity(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "quantity",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "quantity",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getEnumerationType_Start(), 
-		   source, 
+		  (getEnumerationType_Start(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "start",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "start",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (enumerationType1EClass, 
-		   source, 
+		  (enumerationType1EClass,
+		   source,
 		   new String[] {
-			 "name", "Enumeration_._1_._type",
-			 "kind", "elementOnly"
-		   });	
+			   "name", "Enumeration_._1_._type",
+			   "kind", "elementOnly"
+		   });
 		addAnnotation
-		  (getEnumerationType1_Group(), 
-		   source, 
+		  (getEnumerationType1_Group(),
+		   source,
 		   new String[] {
-			 "kind", "group",
-			 "name", "group:0"
-		   });	
+			   "kind", "group",
+			   "name", "group:0"
+		   });
 		addAnnotation
-		  (getEnumerationType1_Item(), 
-		   source, 
+		  (getEnumerationType1_Item(),
+		   source,
 		   new String[] {
-			 "kind", "element",
-			 "name", "Item",
-			 "namespace", "##targetNamespace",
-			 "group", "group:0"
-		   });	
+			   "kind", "element",
+			   "name", "Item",
+			   "namespace", "##targetNamespace",
+			   "group", "group:0"
+		   });
 		addAnnotation
-		  (getEnumerationType1_Quantity(), 
-		   source, 
+		  (getEnumerationType1_Quantity(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "quantity",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "quantity",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (fileTypeEClass, 
-		   source, 
+		  (fileTypeEClass,
+		   source,
 		   new String[] {
-			 "name", "File_._type",
-			 "kind", "empty"
-		   });	
+			   "name", "File_._type",
+			   "kind", "empty"
+		   });
 		addAnnotation
-		  (getFileType_Name(), 
-		   source, 
+		  (getFileType_Name(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "name",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "name",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (fileType1EClass, 
-		   source, 
+		  (fileType1EClass,
+		   source,
 		   new String[] {
-			 "name", "File_._1_._type",
-			 "kind", "empty"
-		   });	
+			   "name", "File_._1_._type",
+			   "kind", "empty"
+		   });
 		addAnnotation
-		  (getFileType1_Name(), 
-		   source, 
+		  (getFileType1_Name(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "name",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "name",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (fmi2AnnotationEClass, 
-		   source, 
+		  (fmi2AnnotationEClass,
+		   source,
 		   new String[] {
-			 "name", "fmi2Annotation",
-			 "kind", "elementOnly"
-		   });	
+			   "name", "fmi2Annotation",
+			   "kind", "elementOnly"
+		   });
 		addAnnotation
-		  (getFmi2Annotation_Group(), 
-		   source, 
+		  (getFmi2Annotation_Group(),
+		   source,
 		   new String[] {
-			 "kind", "group",
-			 "name", "group:0"
-		   });	
+			   "kind", "group",
+			   "name", "group:0"
+		   });
 		addAnnotation
-		  (getFmi2Annotation_Tool(), 
-		   source, 
+		  (getFmi2Annotation_Tool(),
+		   source,
 		   new String[] {
-			 "kind", "element",
-			 "name", "Tool",
-			 "namespace", "##targetNamespace",
-			 "group", "group:0"
-		   });	
+			   "kind", "element",
+			   "name", "Tool",
+			   "namespace", "##targetNamespace",
+			   "group", "group:0"
+		   });
 		addAnnotation
-		  (fmi2ScalarVariableEClass, 
-		   source, 
+		  (fmi2ScalarVariableEClass,
+		   source,
 		   new String[] {
-			 "name", "fmi2ScalarVariable",
-			 "kind", "elementOnly"
-		   });	
+			   "name", "fmi2ScalarVariable",
+			   "kind", "elementOnly"
+		   });
 		addAnnotation
-		  (getFmi2ScalarVariable_Real(), 
-		   source, 
+		  (getFmi2ScalarVariable_Real(),
+		   source,
 		   new String[] {
-			 "kind", "element",
-			 "name", "Real",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "element",
+			   "name", "Real",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getFmi2ScalarVariable_Integer(), 
-		   source, 
+		  (getFmi2ScalarVariable_Integer(),
+		   source,
 		   new String[] {
-			 "kind", "element",
-			 "name", "Integer",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "element",
+			   "name", "Integer",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getFmi2ScalarVariable_Boolean(), 
-		   source, 
+		  (getFmi2ScalarVariable_Boolean(),
+		   source,
 		   new String[] {
-			 "kind", "element",
-			 "name", "Boolean",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "element",
+			   "name", "Boolean",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getFmi2ScalarVariable_String(), 
-		   source, 
+		  (getFmi2ScalarVariable_String(),
+		   source,
 		   new String[] {
-			 "kind", "element",
-			 "name", "String",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "element",
+			   "name", "String",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getFmi2ScalarVariable_Enumeration(), 
-		   source, 
+		  (getFmi2ScalarVariable_Enumeration(),
+		   source,
 		   new String[] {
-			 "kind", "element",
-			 "name", "Enumeration",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "element",
+			   "name", "Enumeration",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getFmi2ScalarVariable_Annotations(), 
-		   source, 
+		  (getFmi2ScalarVariable_Annotations(),
+		   source,
 		   new String[] {
-			 "kind", "element",
-			 "name", "Annotations",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "element",
+			   "name", "Annotations",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getFmi2ScalarVariable_CanHandleMultipleSetPerTimeInstant(), 
-		   source, 
+		  (getFmi2ScalarVariable_CanHandleMultipleSetPerTimeInstant(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "canHandleMultipleSetPerTimeInstant",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "canHandleMultipleSetPerTimeInstant",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getFmi2ScalarVariable_Causality(), 
-		   source, 
+		  (getFmi2ScalarVariable_Causality(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "causality",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "causality",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getFmi2ScalarVariable_Description(), 
-		   source, 
+		  (getFmi2ScalarVariable_Description(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "description",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "description",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getFmi2ScalarVariable_Initial(), 
-		   source, 
+		  (getFmi2ScalarVariable_Initial(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "initial",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "initial",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getFmi2ScalarVariable_Name(), 
-		   source, 
+		  (getFmi2ScalarVariable_Name(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "name",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "name",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getFmi2ScalarVariable_ValueReference(), 
-		   source, 
+		  (getFmi2ScalarVariable_ValueReference(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "valueReference",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "valueReference",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getFmi2ScalarVariable_Variability(), 
-		   source, 
+		  (getFmi2ScalarVariable_Variability(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "variability",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "variability",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (fmi2SimpleTypeEClass, 
-		   source, 
+		  (fmi2SimpleTypeEClass,
+		   source,
 		   new String[] {
-			 "name", "fmi2SimpleType",
-			 "kind", "elementOnly"
-		   });	
+			   "name", "fmi2SimpleType",
+			   "kind", "elementOnly"
+		   });
 		addAnnotation
-		  (getFmi2SimpleType_Real(), 
-		   source, 
+		  (getFmi2SimpleType_Real(),
+		   source,
 		   new String[] {
-			 "kind", "element",
-			 "name", "Real",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "element",
+			   "name", "Real",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getFmi2SimpleType_Integer(), 
-		   source, 
+		  (getFmi2SimpleType_Integer(),
+		   source,
 		   new String[] {
-			 "kind", "element",
-			 "name", "Integer",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "element",
+			   "name", "Integer",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getFmi2SimpleType_Boolean(), 
-		   source, 
+		  (getFmi2SimpleType_Boolean(),
+		   source,
 		   new String[] {
-			 "kind", "element",
-			 "name", "Boolean",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "element",
+			   "name", "Boolean",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getFmi2SimpleType_String(), 
-		   source, 
+		  (getFmi2SimpleType_String(),
+		   source,
 		   new String[] {
-			 "kind", "element",
-			 "name", "String",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "element",
+			   "name", "String",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getFmi2SimpleType_Enumeration(), 
-		   source, 
+		  (getFmi2SimpleType_Enumeration(),
+		   source,
 		   new String[] {
-			 "kind", "element",
-			 "name", "Enumeration",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "element",
+			   "name", "Enumeration",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getFmi2SimpleType_Description(), 
-		   source, 
+		  (getFmi2SimpleType_Description(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "description",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "description",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getFmi2SimpleType_Name(), 
-		   source, 
+		  (getFmi2SimpleType_Name(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "name",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "name",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (fmi2UnitEClass, 
-		   source, 
+		  (fmi2UnitEClass,
+		   source,
 		   new String[] {
-			 "name", "fmi2Unit",
-			 "kind", "elementOnly"
-		   });	
+			   "name", "fmi2Unit",
+			   "kind", "elementOnly"
+		   });
 		addAnnotation
-		  (getFmi2Unit_BaseUnit(), 
-		   source, 
+		  (getFmi2Unit_BaseUnit(),
+		   source,
 		   new String[] {
-			 "kind", "element",
-			 "name", "BaseUnit",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "element",
+			   "name", "BaseUnit",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getFmi2Unit_Group(), 
-		   source, 
+		  (getFmi2Unit_Group(),
+		   source,
 		   new String[] {
-			 "kind", "group",
-			 "name", "group:1"
-		   });	
+			   "kind", "group",
+			   "name", "group:1"
+		   });
 		addAnnotation
-		  (getFmi2Unit_DisplayUnit(), 
-		   source, 
+		  (getFmi2Unit_DisplayUnit(),
+		   source,
 		   new String[] {
-			 "kind", "element",
-			 "name", "DisplayUnit",
-			 "namespace", "##targetNamespace",
-			 "group", "group:1"
-		   });	
+			   "kind", "element",
+			   "name", "DisplayUnit",
+			   "namespace", "##targetNamespace",
+			   "group", "group:1"
+		   });
 		addAnnotation
-		  (getFmi2Unit_Name(), 
-		   source, 
+		  (getFmi2Unit_Name(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "name",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "name",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (fmi2VariableDependencyEClass, 
-		   source, 
+		  (fmi2VariableDependencyEClass,
+		   source,
 		   new String[] {
-			 "name", "fmi2VariableDependency",
-			 "kind", "elementOnly"
-		   });	
+			   "name", "fmi2VariableDependency",
+			   "kind", "elementOnly"
+		   });
 		addAnnotation
-		  (getFmi2VariableDependency_Group(), 
-		   source, 
+		  (getFmi2VariableDependency_Group(),
+		   source,
 		   new String[] {
-			 "kind", "group",
-			 "name", "group:0"
-		   });	
+			   "kind", "group",
+			   "name", "group:0"
+		   });
 		addAnnotation
-		  (getFmi2VariableDependency_Unknown(), 
-		   source, 
+		  (getFmi2VariableDependency_Unknown(),
+		   source,
 		   new String[] {
-			 "kind", "element",
-			 "name", "Unknown",
-			 "namespace", "##targetNamespace",
-			 "group", "group:0"
-		   });	
+			   "kind", "element",
+			   "name", "Unknown",
+			   "namespace", "##targetNamespace",
+			   "group", "group:0"
+		   });
 		addAnnotation
-		  (fmiModelDescriptionTypeEClass, 
-		   source, 
+		  (fmiModelDescriptionTypeEClass,
+		   source,
 		   new String[] {
-			 "name", "fmiModelDescription_._type",
-			 "kind", "elementOnly"
-		   });	
+			   "name", "fmiModelDescription_._type",
+			   "kind", "elementOnly"
+		   });
 		addAnnotation
-		  (getFmiModelDescriptionType_Group(), 
-		   source, 
+		  (getFmiModelDescriptionType_Group(),
+		   source,
 		   new String[] {
-			 "kind", "group",
-			 "name", "group:0"
-		   });	
+			   "kind", "group",
+			   "name", "group:0"
+		   });
 		addAnnotation
-		  (getFmiModelDescriptionType_ModelExchange(), 
-		   source, 
+		  (getFmiModelDescriptionType_ModelExchange(),
+		   source,
 		   new String[] {
-			 "kind", "element",
-			 "name", "ModelExchange",
-			 "namespace", "##targetNamespace",
-			 "group", "group:0"
-		   });	
+			   "kind", "element",
+			   "name", "ModelExchange",
+			   "namespace", "##targetNamespace",
+			   "group", "group:0"
+		   });
 		addAnnotation
-		  (getFmiModelDescriptionType_CoSimulation(), 
-		   source, 
+		  (getFmiModelDescriptionType_CoSimulation(),
+		   source,
 		   new String[] {
-			 "kind", "element",
-			 "name", "CoSimulation",
-			 "namespace", "##targetNamespace",
-			 "group", "group:0"
-		   });	
+			   "kind", "element",
+			   "name", "CoSimulation",
+			   "namespace", "##targetNamespace",
+			   "group", "group:0"
+		   });
 		addAnnotation
-		  (getFmiModelDescriptionType_UnitDefinitions(), 
-		   source, 
+		  (getFmiModelDescriptionType_UnitDefinitions(),
+		   source,
 		   new String[] {
-			 "kind", "element",
-			 "name", "UnitDefinitions",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "element",
+			   "name", "UnitDefinitions",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getFmiModelDescriptionType_TypeDefinitions(), 
-		   source, 
+		  (getFmiModelDescriptionType_TypeDefinitions(),
+		   source,
 		   new String[] {
-			 "kind", "element",
-			 "name", "TypeDefinitions",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "element",
+			   "name", "TypeDefinitions",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getFmiModelDescriptionType_LogCategories(), 
-		   source, 
+		  (getFmiModelDescriptionType_LogCategories(),
+		   source,
 		   new String[] {
-			 "kind", "element",
-			 "name", "LogCategories",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "element",
+			   "name", "LogCategories",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getFmiModelDescriptionType_DefaultExperiment(), 
-		   source, 
+		  (getFmiModelDescriptionType_DefaultExperiment(),
+		   source,
 		   new String[] {
-			 "kind", "element",
-			 "name", "DefaultExperiment",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "element",
+			   "name", "DefaultExperiment",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getFmiModelDescriptionType_VendorAnnotations(), 
-		   source, 
+		  (getFmiModelDescriptionType_VendorAnnotations(),
+		   source,
 		   new String[] {
-			 "kind", "element",
-			 "name", "VendorAnnotations",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "element",
+			   "name", "VendorAnnotations",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getFmiModelDescriptionType_ModelVariables(), 
-		   source, 
+		  (getFmiModelDescriptionType_ModelVariables(),
+		   source,
 		   new String[] {
-			 "kind", "element",
-			 "name", "ModelVariables",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "element",
+			   "name", "ModelVariables",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getFmiModelDescriptionType_ModelStructure(), 
-		   source, 
+		  (getFmiModelDescriptionType_ModelStructure(),
+		   source,
 		   new String[] {
-			 "kind", "element",
-			 "name", "ModelStructure",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "element",
+			   "name", "ModelStructure",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getFmiModelDescriptionType_Author(), 
-		   source, 
+		  (getFmiModelDescriptionType_Author(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "author",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "author",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getFmiModelDescriptionType_Copyright(), 
-		   source, 
+		  (getFmiModelDescriptionType_Copyright(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "copyright",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "copyright",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getFmiModelDescriptionType_Description(), 
-		   source, 
+		  (getFmiModelDescriptionType_Description(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "description",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "description",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getFmiModelDescriptionType_FmiVersion(), 
-		   source, 
+		  (getFmiModelDescriptionType_FmiVersion(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "fmiVersion",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "fmiVersion",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getFmiModelDescriptionType_GenerationDateAndTime(), 
-		   source, 
+		  (getFmiModelDescriptionType_GenerationDateAndTime(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "generationDateAndTime",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "generationDateAndTime",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getFmiModelDescriptionType_GenerationTool(), 
-		   source, 
+		  (getFmiModelDescriptionType_GenerationTool(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "generationTool",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "generationTool",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getFmiModelDescriptionType_Guid(), 
-		   source, 
+		  (getFmiModelDescriptionType_Guid(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "guid",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "guid",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getFmiModelDescriptionType_License(), 
-		   source, 
+		  (getFmiModelDescriptionType_License(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "license",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "license",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getFmiModelDescriptionType_ModelName(), 
-		   source, 
+		  (getFmiModelDescriptionType_ModelName(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "modelName",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "modelName",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getFmiModelDescriptionType_NumberOfEventIndicators(), 
-		   source, 
+		  (getFmiModelDescriptionType_NumberOfEventIndicators(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "numberOfEventIndicators",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "numberOfEventIndicators",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getFmiModelDescriptionType_VariableNamingConvention(), 
-		   source, 
+		  (getFmiModelDescriptionType_VariableNamingConvention(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "variableNamingConvention",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "variableNamingConvention",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getFmiModelDescriptionType_Version(), 
-		   source, 
+		  (getFmiModelDescriptionType_Version(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "version",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "version",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (initialTypeEEnum, 
-		   source, 
+		  (initialTypeEEnum,
+		   source,
 		   new String[] {
-			 "name", "initial_._type"
-		   });	
+			   "name", "initial_._type"
+		   });
 		addAnnotation
-		  (initialTypeObjectEDataType, 
-		   source, 
+		  (initialTypeObjectEDataType,
+		   source,
 		   new String[] {
-			 "name", "initial_._type:Object",
-			 "baseType", "initial_._type"
-		   });	
+			   "name", "initial_._type:Object",
+			   "baseType", "initial_._type"
+		   });
 		addAnnotation
-		  (initialUnknownsTypeEClass, 
-		   source, 
+		  (initialUnknownsTypeEClass,
+		   source,
 		   new String[] {
-			 "name", "InitialUnknowns_._type",
-			 "kind", "elementOnly"
-		   });	
+			   "name", "InitialUnknowns_._type",
+			   "kind", "elementOnly"
+		   });
 		addAnnotation
-		  (getInitialUnknownsType_Group(), 
-		   source, 
+		  (getInitialUnknownsType_Group(),
+		   source,
 		   new String[] {
-			 "kind", "group",
-			 "name", "group:0"
-		   });	
+			   "kind", "group",
+			   "name", "group:0"
+		   });
 		addAnnotation
-		  (getInitialUnknownsType_Unknown(), 
-		   source, 
+		  (getInitialUnknownsType_Unknown(),
+		   source,
 		   new String[] {
-			 "kind", "element",
-			 "name", "Unknown",
-			 "namespace", "##targetNamespace",
-			 "group", "group:0"
-		   });	
+			   "kind", "element",
+			   "name", "Unknown",
+			   "namespace", "##targetNamespace",
+			   "group", "group:0"
+		   });
 		addAnnotation
-		  (integerTypeEClass, 
-		   source, 
+		  (integerTypeEClass,
+		   source,
 		   new String[] {
-			 "name", "Integer_._type",
-			 "kind", "empty"
-		   });	
+			   "name", "Integer_._type",
+			   "kind", "empty"
+		   });
 		addAnnotation
-		  (getIntegerType_DeclaredType(), 
-		   source, 
+		  (getIntegerType_DeclaredType(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "declaredType",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "declaredType",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getIntegerType_Max(), 
-		   source, 
+		  (getIntegerType_Max(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "max",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "max",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getIntegerType_Min(), 
-		   source, 
+		  (getIntegerType_Min(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "min",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "min",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getIntegerType_Quantity(), 
-		   source, 
+		  (getIntegerType_Quantity(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "quantity",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "quantity",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getIntegerType_Start(), 
-		   source, 
+		  (getIntegerType_Start(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "start",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "start",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (integerType1EClass, 
-		   source, 
+		  (integerType1EClass,
+		   source,
 		   new String[] {
-			 "name", "Integer_._1_._type",
-			 "kind", "empty"
-		   });	
+			   "name", "Integer_._1_._type",
+			   "kind", "empty"
+		   });
 		addAnnotation
-		  (getIntegerType1_Max(), 
-		   source, 
+		  (getIntegerType1_Max(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "max",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "max",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getIntegerType1_Min(), 
-		   source, 
+		  (getIntegerType1_Min(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "min",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "min",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getIntegerType1_Quantity(), 
-		   source, 
+		  (getIntegerType1_Quantity(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "quantity",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "quantity",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (itemTypeEClass, 
-		   source, 
+		  (itemTypeEClass,
+		   source,
 		   new String[] {
-			 "name", "Item_._type",
-			 "kind", "empty"
-		   });	
+			   "name", "Item_._type",
+			   "kind", "empty"
+		   });
 		addAnnotation
-		  (getItemType_Description(), 
-		   source, 
+		  (getItemType_Description(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "description",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "description",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getItemType_Name(), 
-		   source, 
+		  (getItemType_Name(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "name",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "name",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getItemType_Value(), 
-		   source, 
+		  (getItemType_Value(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "value",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "value",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (logCategoriesTypeEClass, 
-		   source, 
+		  (logCategoriesTypeEClass,
+		   source,
 		   new String[] {
-			 "name", "LogCategories_._type",
-			 "kind", "elementOnly"
-		   });	
+			   "name", "LogCategories_._type",
+			   "kind", "elementOnly"
+		   });
 		addAnnotation
-		  (getLogCategoriesType_Group(), 
-		   source, 
+		  (getLogCategoriesType_Group(),
+		   source,
 		   new String[] {
-			 "kind", "group",
-			 "name", "group:0"
-		   });	
+			   "kind", "group",
+			   "name", "group:0"
+		   });
 		addAnnotation
-		  (getLogCategoriesType_Category(), 
-		   source, 
+		  (getLogCategoriesType_Category(),
+		   source,
 		   new String[] {
-			 "kind", "element",
-			 "name", "Category",
-			 "namespace", "##targetNamespace",
-			 "group", "group:0"
-		   });	
+			   "kind", "element",
+			   "name", "Category",
+			   "namespace", "##targetNamespace",
+			   "group", "group:0"
+		   });
 		addAnnotation
-		  (modelExchangeTypeEClass, 
-		   source, 
+		  (modelExchangeTypeEClass,
+		   source,
 		   new String[] {
-			 "name", "ModelExchange_._type",
-			 "kind", "elementOnly"
-		   });	
+			   "name", "ModelExchange_._type",
+			   "kind", "elementOnly"
+		   });
 		addAnnotation
-		  (getModelExchangeType_SourceFiles(), 
-		   source, 
+		  (getModelExchangeType_SourceFiles(),
+		   source,
 		   new String[] {
-			 "kind", "element",
-			 "name", "SourceFiles",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "element",
+			   "name", "SourceFiles",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getModelExchangeType_CanBeInstantiatedOnlyOncePerProcess(), 
-		   source, 
+		  (getModelExchangeType_CanBeInstantiatedOnlyOncePerProcess(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "canBeInstantiatedOnlyOncePerProcess",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "canBeInstantiatedOnlyOncePerProcess",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getModelExchangeType_CanGetAndSetFMUstate(), 
-		   source, 
+		  (getModelExchangeType_CanGetAndSetFMUstate(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "canGetAndSetFMUstate",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "canGetAndSetFMUstate",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getModelExchangeType_CanNotUseMemoryManagementFunctions(), 
-		   source, 
+		  (getModelExchangeType_CanNotUseMemoryManagementFunctions(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "canNotUseMemoryManagementFunctions",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "canNotUseMemoryManagementFunctions",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getModelExchangeType_CanSerializeFMUstate(), 
-		   source, 
+		  (getModelExchangeType_CanSerializeFMUstate(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "canSerializeFMUstate",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "canSerializeFMUstate",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getModelExchangeType_CompletedIntegratorStepNotNeeded(), 
-		   source, 
+		  (getModelExchangeType_CompletedIntegratorStepNotNeeded(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "completedIntegratorStepNotNeeded",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "completedIntegratorStepNotNeeded",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getModelExchangeType_ModelIdentifier(), 
-		   source, 
+		  (getModelExchangeType_ModelIdentifier(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "modelIdentifier",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "modelIdentifier",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getModelExchangeType_NeedsExecutionTool(), 
-		   source, 
+		  (getModelExchangeType_NeedsExecutionTool(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "needsExecutionTool",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "needsExecutionTool",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getModelExchangeType_ProvidesDirectionalDerivative(), 
-		   source, 
+		  (getModelExchangeType_ProvidesDirectionalDerivative(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "providesDirectionalDerivative",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "providesDirectionalDerivative",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (modelStructureTypeEClass, 
-		   source, 
+		  (modelStructureTypeEClass,
+		   source,
 		   new String[] {
-			 "name", "ModelStructure_._type",
-			 "kind", "elementOnly"
-		   });	
+			   "name", "ModelStructure_._type",
+			   "kind", "elementOnly"
+		   });
 		addAnnotation
-		  (getModelStructureType_Outputs(), 
-		   source, 
+		  (getModelStructureType_Outputs(),
+		   source,
 		   new String[] {
-			 "kind", "element",
-			 "name", "Outputs",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "element",
+			   "name", "Outputs",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getModelStructureType_Derivatives(), 
-		   source, 
+		  (getModelStructureType_Derivatives(),
+		   source,
 		   new String[] {
-			 "kind", "element",
-			 "name", "Derivatives",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "element",
+			   "name", "Derivatives",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getModelStructureType_InitialUnknowns(), 
-		   source, 
+		  (getModelStructureType_InitialUnknowns(),
+		   source,
 		   new String[] {
-			 "kind", "element",
-			 "name", "InitialUnknowns",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "element",
+			   "name", "InitialUnknowns",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (modelVariablesTypeEClass, 
-		   source, 
+		  (modelVariablesTypeEClass,
+		   source,
 		   new String[] {
-			 "name", "ModelVariables_._type",
-			 "kind", "elementOnly"
-		   });	
+			   "name", "ModelVariables_._type",
+			   "kind", "elementOnly"
+		   });
 		addAnnotation
-		  (getModelVariablesType_Group(), 
-		   source, 
+		  (getModelVariablesType_Group(),
+		   source,
 		   new String[] {
-			 "kind", "group",
-			 "name", "group:0"
-		   });	
+			   "kind", "group",
+			   "name", "group:0"
+		   });
 		addAnnotation
-		  (getModelVariablesType_ScalarVariable(), 
-		   source, 
+		  (getModelVariablesType_ScalarVariable(),
+		   source,
 		   new String[] {
-			 "kind", "element",
-			 "name", "ScalarVariable",
-			 "namespace", "##targetNamespace",
-			 "group", "group:0"
-		   });	
+			   "kind", "element",
+			   "name", "ScalarVariable",
+			   "namespace", "##targetNamespace",
+			   "group", "group:0"
+		   });
 		addAnnotation
-		  (realTypeEClass, 
-		   source, 
+		  (realTypeEClass,
+		   source,
 		   new String[] {
-			 "name", "Real_._type",
-			 "kind", "empty"
-		   });	
+			   "name", "Real_._type",
+			   "kind", "empty"
+		   });
 		addAnnotation
-		  (getRealType_DeclaredType(), 
-		   source, 
+		  (getRealType_DeclaredType(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "declaredType",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "declaredType",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getRealType_Derivative(), 
-		   source, 
+		  (getRealType_Derivative(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "derivative",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "derivative",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getRealType_DisplayUnit(), 
-		   source, 
+		  (getRealType_DisplayUnit(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "displayUnit",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "displayUnit",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getRealType_Max(), 
-		   source, 
+		  (getRealType_Max(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "max",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "max",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getRealType_Min(), 
-		   source, 
+		  (getRealType_Min(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "min",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "min",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getRealType_Nominal(), 
-		   source, 
+		  (getRealType_Nominal(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "nominal",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "nominal",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getRealType_Quantity(), 
-		   source, 
+		  (getRealType_Quantity(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "quantity",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "quantity",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getRealType_Reinit(), 
-		   source, 
+		  (getRealType_Reinit(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "reinit",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "reinit",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getRealType_RelativeQuantity(), 
-		   source, 
+		  (getRealType_RelativeQuantity(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "relativeQuantity",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "relativeQuantity",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getRealType_Start(), 
-		   source, 
+		  (getRealType_Start(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "start",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "start",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getRealType_Unbounded(), 
-		   source, 
+		  (getRealType_Unbounded(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "unbounded",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "unbounded",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getRealType_Unit(), 
-		   source, 
+		  (getRealType_Unit(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "unit",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "unit",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (realType1EClass, 
-		   source, 
+		  (realType1EClass,
+		   source,
 		   new String[] {
-			 "name", "Real_._1_._type",
-			 "kind", "empty"
-		   });	
+			   "name", "Real_._1_._type",
+			   "kind", "empty"
+		   });
 		addAnnotation
-		  (getRealType1_DisplayUnit(), 
-		   source, 
+		  (getRealType1_DisplayUnit(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "displayUnit",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "displayUnit",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getRealType1_Max(), 
-		   source, 
+		  (getRealType1_Max(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "max",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "max",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getRealType1_Min(), 
-		   source, 
+		  (getRealType1_Min(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "min",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "min",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getRealType1_Nominal(), 
-		   source, 
+		  (getRealType1_Nominal(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "nominal",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "nominal",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getRealType1_Quantity(), 
-		   source, 
+		  (getRealType1_Quantity(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "quantity",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "quantity",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getRealType1_RelativeQuantity(), 
-		   source, 
+		  (getRealType1_RelativeQuantity(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "relativeQuantity",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "relativeQuantity",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getRealType1_Unbounded(), 
-		   source, 
+		  (getRealType1_Unbounded(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "unbounded",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "unbounded",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getRealType1_Unit(), 
-		   source, 
+		  (getRealType1_Unit(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "unit",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "unit",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (sourceFilesTypeEClass, 
-		   source, 
+		  (sourceFilesTypeEClass,
+		   source,
 		   new String[] {
-			 "name", "SourceFiles_._type",
-			 "kind", "elementOnly"
-		   });	
+			   "name", "SourceFiles_._type",
+			   "kind", "elementOnly"
+		   });
 		addAnnotation
-		  (getSourceFilesType_Group(), 
-		   source, 
+		  (getSourceFilesType_Group(),
+		   source,
 		   new String[] {
-			 "kind", "group",
-			 "name", "group:0"
-		   });	
+			   "kind", "group",
+			   "name", "group:0"
+		   });
 		addAnnotation
-		  (getSourceFilesType_File(), 
-		   source, 
+		  (getSourceFilesType_File(),
+		   source,
 		   new String[] {
-			 "kind", "element",
-			 "name", "File",
-			 "namespace", "##targetNamespace",
-			 "group", "group:0"
-		   });	
+			   "kind", "element",
+			   "name", "File",
+			   "namespace", "##targetNamespace",
+			   "group", "group:0"
+		   });
 		addAnnotation
-		  (sourceFilesType1EClass, 
-		   source, 
+		  (sourceFilesType1EClass,
+		   source,
 		   new String[] {
-			 "name", "SourceFiles_._1_._type",
-			 "kind", "elementOnly"
-		   });	
+			   "name", "SourceFiles_._1_._type",
+			   "kind", "elementOnly"
+		   });
 		addAnnotation
-		  (getSourceFilesType1_Group(), 
-		   source, 
+		  (getSourceFilesType1_Group(),
+		   source,
 		   new String[] {
-			 "kind", "group",
-			 "name", "group:0"
-		   });	
+			   "kind", "group",
+			   "name", "group:0"
+		   });
 		addAnnotation
-		  (getSourceFilesType1_File(), 
-		   source, 
+		  (getSourceFilesType1_File(),
+		   source,
 		   new String[] {
-			 "kind", "element",
-			 "name", "File",
-			 "namespace", "##targetNamespace",
-			 "group", "group:0"
-		   });	
+			   "kind", "element",
+			   "name", "File",
+			   "namespace", "##targetNamespace",
+			   "group", "group:0"
+		   });
 		addAnnotation
-		  (stringTypeEClass, 
-		   source, 
+		  (stringTypeEClass,
+		   source,
 		   new String[] {
-			 "name", "String_._type",
-			 "kind", "empty"
-		   });	
+			   "name", "String_._type",
+			   "kind", "empty"
+		   });
 		addAnnotation
-		  (getStringType_DeclaredType(), 
-		   source, 
+		  (getStringType_DeclaredType(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "declaredType",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "declaredType",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getStringType_Start(), 
-		   source, 
+		  (getStringType_Start(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "start",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "start",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (toolTypeEClass, 
-		   source, 
+		  (toolTypeEClass,
+		   source,
 		   new String[] {
-			 "name", "Tool_._type",
-			 "kind", "elementOnly"
-		   });	
+			   "name", "Tool_._type",
+			   "kind", "elementOnly"
+		   });
 		addAnnotation
-		  (getToolType_Any(), 
-		   source, 
+		  (getToolType_Any(),
+		   source,
 		   new String[] {
-			 "kind", "elementWildcard",
-			 "wildcards", "##any",
-			 "name", ":0",
-			 "processing", "lax"
-		   });	
+			   "kind", "elementWildcard",
+			   "wildcards", "##any",
+			   "name", ":0",
+			   "processing", "lax"
+		   });
 		addAnnotation
-		  (getToolType_Name(), 
-		   source, 
+		  (getToolType_Name(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "name",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "name",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (typeDefinitionsTypeEClass, 
-		   source, 
+		  (typeDefinitionsTypeEClass,
+		   source,
 		   new String[] {
-			 "name", "TypeDefinitions_._type",
-			 "kind", "elementOnly"
-		   });	
+			   "name", "TypeDefinitions_._type",
+			   "kind", "elementOnly"
+		   });
 		addAnnotation
-		  (getTypeDefinitionsType_Group(), 
-		   source, 
+		  (getTypeDefinitionsType_Group(),
+		   source,
 		   new String[] {
-			 "kind", "group",
-			 "name", "group:0"
-		   });	
+			   "kind", "group",
+			   "name", "group:0"
+		   });
 		addAnnotation
-		  (getTypeDefinitionsType_SimpleType(), 
-		   source, 
+		  (getTypeDefinitionsType_SimpleType(),
+		   source,
 		   new String[] {
-			 "kind", "element",
-			 "name", "SimpleType",
-			 "namespace", "##targetNamespace",
-			 "group", "group:0"
-		   });	
+			   "kind", "element",
+			   "name", "SimpleType",
+			   "namespace", "##targetNamespace",
+			   "group", "group:0"
+		   });
 		addAnnotation
-		  (unitDefinitionsTypeEClass, 
-		   source, 
+		  (unitDefinitionsTypeEClass,
+		   source,
 		   new String[] {
-			 "name", "UnitDefinitions_._type",
-			 "kind", "elementOnly"
-		   });	
+			   "name", "UnitDefinitions_._type",
+			   "kind", "elementOnly"
+		   });
 		addAnnotation
-		  (getUnitDefinitionsType_Group(), 
-		   source, 
+		  (getUnitDefinitionsType_Group(),
+		   source,
 		   new String[] {
-			 "kind", "group",
-			 "name", "group:0"
-		   });	
+			   "kind", "group",
+			   "name", "group:0"
+		   });
 		addAnnotation
-		  (getUnitDefinitionsType_Unit(), 
-		   source, 
+		  (getUnitDefinitionsType_Unit(),
+		   source,
 		   new String[] {
-			 "kind", "element",
-			 "name", "Unit",
-			 "namespace", "##targetNamespace",
-			 "group", "group:0"
-		   });	
+			   "kind", "element",
+			   "name", "Unit",
+			   "namespace", "##targetNamespace",
+			   "group", "group:0"
+		   });
 		addAnnotation
-		  (unknownTypeEClass, 
-		   source, 
+		  (unknownTypeEClass,
+		   source,
 		   new String[] {
-			 "name", "Unknown_._type",
-			 "kind", "empty"
-		   });	
+			   "name", "Unknown_._type",
+			   "kind", "empty"
+		   });
 		addAnnotation
-		  (getUnknownType_Dependencies(), 
-		   source, 
+		  (getUnknownType_Dependencies(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "dependencies",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "dependencies",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getUnknownType_DependenciesKind(), 
-		   source, 
+		  (getUnknownType_DependenciesKind(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "dependenciesKind",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "dependenciesKind",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getUnknownType_Index(), 
-		   source, 
+		  (getUnknownType_Index(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "index",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "index",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (unknownType1EClass, 
-		   source, 
+		  (unknownType1EClass,
+		   source,
 		   new String[] {
-			 "name", "Unknown_._1_._type",
-			 "kind", "empty"
-		   });	
+			   "name", "Unknown_._1_._type",
+			   "kind", "empty"
+		   });
 		addAnnotation
-		  (getUnknownType1_Dependencies(), 
-		   source, 
+		  (getUnknownType1_Dependencies(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "dependencies",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "dependencies",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getUnknownType1_DependenciesKind(), 
-		   source, 
+		  (getUnknownType1_DependenciesKind(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "dependenciesKind",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "dependenciesKind",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (getUnknownType1_Index(), 
-		   source, 
+		  (getUnknownType1_Index(),
+		   source,
 		   new String[] {
-			 "kind", "attribute",
-			 "name", "index",
-			 "namespace", "##targetNamespace"
-		   });	
+			   "kind", "attribute",
+			   "name", "index",
+			   "namespace", "##targetNamespace"
+		   });
 		addAnnotation
-		  (variabilityTypeEEnum, 
-		   source, 
+		  (variabilityTypeEEnum,
+		   source,
 		   new String[] {
-			 "name", "variability_._type"
-		   });	
+			   "name", "variability_._type"
+		   });
 		addAnnotation
-		  (variabilityTypeObjectEDataType, 
-		   source, 
+		  (variabilityTypeObjectEDataType,
+		   source,
 		   new String[] {
-			 "name", "variability_._type:Object",
-			 "baseType", "variability_._type"
-		   });	
+			   "name", "variability_._type:Object",
+			   "baseType", "variability_._type"
+		   });
 		addAnnotation
-		  (variableNamingConventionTypeEEnum, 
-		   source, 
+		  (variableNamingConventionTypeEEnum,
+		   source,
 		   new String[] {
-			 "name", "variableNamingConvention_._type"
-		   });	
+			   "name", "variableNamingConvention_._type"
+		   });
 		addAnnotation
-		  (variableNamingConventionTypeObjectEDataType, 
-		   source, 
+		  (variableNamingConventionTypeObjectEDataType,
+		   source,
 		   new String[] {
-			 "name", "variableNamingConvention_._type:Object",
-			 "baseType", "variableNamingConvention_._type"
+			   "name", "variableNamingConvention_._type:Object",
+			   "baseType", "variableNamingConvention_._type"
 		   });
 	}
 
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/InitialUnknownsTypeImpl.java b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/InitialUnknownsTypeImpl.java
index 261c39e..4c613a7 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/InitialUnknownsTypeImpl.java
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/InitialUnknownsTypeImpl.java
@@ -79,6 +79,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public FeatureMap getGroup() {
 		if (group == null) {
 			group = new BasicFeatureMap(this, FmiPackage.INITIAL_UNKNOWNS_TYPE__GROUP);
@@ -91,6 +92,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EList<UnknownType> getUnknown() {
 		return getGroup().list(FmiPackage.Literals.INITIAL_UNKNOWNS_TYPE__UNKNOWN);
 	}
@@ -191,7 +193,7 @@
 	public String toString() {
 		if (eIsProxy()) return super.toString();
 
-		StringBuffer result = new StringBuffer(super.toString());
+		StringBuilder result = new StringBuilder(super.toString());
 		result.append(" (group: ");
 		result.append(group);
 		result.append(')');
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/IntegerType1Impl.java b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/IntegerType1Impl.java
index 3d6d495..dc702c5 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/IntegerType1Impl.java
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/IntegerType1Impl.java
@@ -139,6 +139,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public int getMax() {
 		return max;
 	}
@@ -148,6 +149,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setMax(int newMax) {
 		int oldMax = max;
 		max = newMax;
@@ -162,6 +164,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void unsetMax() {
 		int oldMax = max;
 		boolean oldMaxESet = maxESet;
@@ -176,6 +179,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isSetMax() {
 		return maxESet;
 	}
@@ -185,6 +189,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public int getMin() {
 		return min;
 	}
@@ -194,6 +199,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setMin(int newMin) {
 		int oldMin = min;
 		min = newMin;
@@ -208,6 +214,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void unsetMin() {
 		int oldMin = min;
 		boolean oldMinESet = minESet;
@@ -222,6 +229,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isSetMin() {
 		return minESet;
 	}
@@ -231,6 +239,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public String getQuantity() {
 		return quantity;
 	}
@@ -240,6 +249,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setQuantity(String newQuantity) {
 		String oldQuantity = quantity;
 		quantity = newQuantity;
@@ -334,7 +344,7 @@
 	public String toString() {
 		if (eIsProxy()) return super.toString();
 
-		StringBuffer result = new StringBuffer(super.toString());
+		StringBuilder result = new StringBuilder(super.toString());
 		result.append(" (max: ");
 		if (maxESet) result.append(max); else result.append("<unset>");
 		result.append(", min: ");
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/IntegerTypeImpl.java b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/IntegerTypeImpl.java
index 382849b..1549684 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/IntegerTypeImpl.java
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/IntegerTypeImpl.java
@@ -190,6 +190,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public String getDeclaredType() {
 		return declaredType;
 	}
@@ -199,6 +200,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setDeclaredType(String newDeclaredType) {
 		String oldDeclaredType = declaredType;
 		declaredType = newDeclaredType;
@@ -211,6 +213,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public int getMax() {
 		return max;
 	}
@@ -220,6 +223,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setMax(int newMax) {
 		int oldMax = max;
 		max = newMax;
@@ -234,6 +238,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void unsetMax() {
 		int oldMax = max;
 		boolean oldMaxESet = maxESet;
@@ -248,6 +253,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isSetMax() {
 		return maxESet;
 	}
@@ -257,6 +263,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public int getMin() {
 		return min;
 	}
@@ -266,6 +273,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setMin(int newMin) {
 		int oldMin = min;
 		min = newMin;
@@ -280,6 +288,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void unsetMin() {
 		int oldMin = min;
 		boolean oldMinESet = minESet;
@@ -294,6 +303,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isSetMin() {
 		return minESet;
 	}
@@ -303,6 +313,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public String getQuantity() {
 		return quantity;
 	}
@@ -312,6 +323,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setQuantity(String newQuantity) {
 		String oldQuantity = quantity;
 		quantity = newQuantity;
@@ -324,6 +336,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public int getStart() {
 		return start;
 	}
@@ -333,6 +346,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setStart(int newStart) {
 		int oldStart = start;
 		start = newStart;
@@ -347,6 +361,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void unsetStart() {
 		int oldStart = start;
 		boolean oldStartESet = startESet;
@@ -361,6 +376,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isSetStart() {
 		return startESet;
 	}
@@ -472,7 +488,7 @@
 	public String toString() {
 		if (eIsProxy()) return super.toString();
 
-		StringBuffer result = new StringBuffer(super.toString());
+		StringBuilder result = new StringBuilder(super.toString());
 		result.append(" (declaredType: ");
 		result.append(declaredType);
 		result.append(", max: ");
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/ItemTypeImpl.java b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/ItemTypeImpl.java
index 5ef8013..297391c 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/ItemTypeImpl.java
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/ItemTypeImpl.java
@@ -130,6 +130,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public String getDescription() {
 		return description;
 	}
@@ -139,6 +140,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setDescription(String newDescription) {
 		String oldDescription = description;
 		description = newDescription;
@@ -151,6 +153,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public String getName() {
 		return name;
 	}
@@ -160,6 +163,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setName(String newName) {
 		String oldName = name;
 		name = newName;
@@ -172,6 +176,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public int getValue() {
 		return value;
 	}
@@ -181,6 +186,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setValue(int newValue) {
 		int oldValue = value;
 		value = newValue;
@@ -195,6 +201,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void unsetValue() {
 		int oldValue = value;
 		boolean oldValueESet = valueESet;
@@ -209,6 +216,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isSetValue() {
 		return valueESet;
 	}
@@ -300,7 +308,7 @@
 	public String toString() {
 		if (eIsProxy()) return super.toString();
 
-		StringBuffer result = new StringBuffer(super.toString());
+		StringBuilder result = new StringBuilder(super.toString());
 		result.append(" (description: ");
 		result.append(description);
 		result.append(", name: ");
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/LogCategoriesTypeImpl.java b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/LogCategoriesTypeImpl.java
index 41aa918..ace93e9 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/LogCategoriesTypeImpl.java
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/LogCategoriesTypeImpl.java
@@ -79,6 +79,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public FeatureMap getGroup() {
 		if (group == null) {
 			group = new BasicFeatureMap(this, FmiPackage.LOG_CATEGORIES_TYPE__GROUP);
@@ -91,6 +92,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EList<CategoryType> getCategory() {
 		return getGroup().list(FmiPackage.Literals.LOG_CATEGORIES_TYPE__CATEGORY);
 	}
@@ -191,7 +193,7 @@
 	public String toString() {
 		if (eIsProxy()) return super.toString();
 
-		StringBuffer result = new StringBuffer(super.toString());
+		StringBuilder result = new StringBuilder(super.toString());
 		result.append(" (group: ");
 		result.append(group);
 		result.append(')');
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/ModelExchangeTypeImpl.java b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/ModelExchangeTypeImpl.java
index c93a4ea..270443a 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/ModelExchangeTypeImpl.java
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/ModelExchangeTypeImpl.java
@@ -303,6 +303,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public SourceFilesType1 getSourceFiles() {
 		return sourceFiles;
 	}
@@ -327,6 +328,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setSourceFiles(SourceFilesType1 newSourceFiles) {
 		if (newSourceFiles != sourceFiles) {
 			NotificationChain msgs = null;
@@ -346,6 +348,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isCanBeInstantiatedOnlyOncePerProcess() {
 		return canBeInstantiatedOnlyOncePerProcess;
 	}
@@ -355,6 +358,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setCanBeInstantiatedOnlyOncePerProcess(boolean newCanBeInstantiatedOnlyOncePerProcess) {
 		boolean oldCanBeInstantiatedOnlyOncePerProcess = canBeInstantiatedOnlyOncePerProcess;
 		canBeInstantiatedOnlyOncePerProcess = newCanBeInstantiatedOnlyOncePerProcess;
@@ -369,6 +373,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void unsetCanBeInstantiatedOnlyOncePerProcess() {
 		boolean oldCanBeInstantiatedOnlyOncePerProcess = canBeInstantiatedOnlyOncePerProcess;
 		boolean oldCanBeInstantiatedOnlyOncePerProcessESet = canBeInstantiatedOnlyOncePerProcessESet;
@@ -383,6 +388,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isSetCanBeInstantiatedOnlyOncePerProcess() {
 		return canBeInstantiatedOnlyOncePerProcessESet;
 	}
@@ -392,6 +398,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isCanGetAndSetFMUstate() {
 		return canGetAndSetFMUstate;
 	}
@@ -401,6 +408,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setCanGetAndSetFMUstate(boolean newCanGetAndSetFMUstate) {
 		boolean oldCanGetAndSetFMUstate = canGetAndSetFMUstate;
 		canGetAndSetFMUstate = newCanGetAndSetFMUstate;
@@ -415,6 +423,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void unsetCanGetAndSetFMUstate() {
 		boolean oldCanGetAndSetFMUstate = canGetAndSetFMUstate;
 		boolean oldCanGetAndSetFMUstateESet = canGetAndSetFMUstateESet;
@@ -429,6 +438,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isSetCanGetAndSetFMUstate() {
 		return canGetAndSetFMUstateESet;
 	}
@@ -438,6 +448,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isCanNotUseMemoryManagementFunctions() {
 		return canNotUseMemoryManagementFunctions;
 	}
@@ -447,6 +458,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setCanNotUseMemoryManagementFunctions(boolean newCanNotUseMemoryManagementFunctions) {
 		boolean oldCanNotUseMemoryManagementFunctions = canNotUseMemoryManagementFunctions;
 		canNotUseMemoryManagementFunctions = newCanNotUseMemoryManagementFunctions;
@@ -461,6 +473,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void unsetCanNotUseMemoryManagementFunctions() {
 		boolean oldCanNotUseMemoryManagementFunctions = canNotUseMemoryManagementFunctions;
 		boolean oldCanNotUseMemoryManagementFunctionsESet = canNotUseMemoryManagementFunctionsESet;
@@ -475,6 +488,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isSetCanNotUseMemoryManagementFunctions() {
 		return canNotUseMemoryManagementFunctionsESet;
 	}
@@ -484,6 +498,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isCanSerializeFMUstate() {
 		return canSerializeFMUstate;
 	}
@@ -493,6 +508,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setCanSerializeFMUstate(boolean newCanSerializeFMUstate) {
 		boolean oldCanSerializeFMUstate = canSerializeFMUstate;
 		canSerializeFMUstate = newCanSerializeFMUstate;
@@ -507,6 +523,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void unsetCanSerializeFMUstate() {
 		boolean oldCanSerializeFMUstate = canSerializeFMUstate;
 		boolean oldCanSerializeFMUstateESet = canSerializeFMUstateESet;
@@ -521,6 +538,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isSetCanSerializeFMUstate() {
 		return canSerializeFMUstateESet;
 	}
@@ -530,6 +548,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isCompletedIntegratorStepNotNeeded() {
 		return completedIntegratorStepNotNeeded;
 	}
@@ -539,6 +558,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setCompletedIntegratorStepNotNeeded(boolean newCompletedIntegratorStepNotNeeded) {
 		boolean oldCompletedIntegratorStepNotNeeded = completedIntegratorStepNotNeeded;
 		completedIntegratorStepNotNeeded = newCompletedIntegratorStepNotNeeded;
@@ -553,6 +573,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void unsetCompletedIntegratorStepNotNeeded() {
 		boolean oldCompletedIntegratorStepNotNeeded = completedIntegratorStepNotNeeded;
 		boolean oldCompletedIntegratorStepNotNeededESet = completedIntegratorStepNotNeededESet;
@@ -567,6 +588,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isSetCompletedIntegratorStepNotNeeded() {
 		return completedIntegratorStepNotNeededESet;
 	}
@@ -576,6 +598,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public String getModelIdentifier() {
 		return modelIdentifier;
 	}
@@ -585,6 +608,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setModelIdentifier(String newModelIdentifier) {
 		String oldModelIdentifier = modelIdentifier;
 		modelIdentifier = newModelIdentifier;
@@ -597,6 +621,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isNeedsExecutionTool() {
 		return needsExecutionTool;
 	}
@@ -606,6 +631,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setNeedsExecutionTool(boolean newNeedsExecutionTool) {
 		boolean oldNeedsExecutionTool = needsExecutionTool;
 		needsExecutionTool = newNeedsExecutionTool;
@@ -620,6 +646,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void unsetNeedsExecutionTool() {
 		boolean oldNeedsExecutionTool = needsExecutionTool;
 		boolean oldNeedsExecutionToolESet = needsExecutionToolESet;
@@ -634,6 +661,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isSetNeedsExecutionTool() {
 		return needsExecutionToolESet;
 	}
@@ -643,6 +671,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isProvidesDirectionalDerivative() {
 		return providesDirectionalDerivative;
 	}
@@ -652,6 +681,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setProvidesDirectionalDerivative(boolean newProvidesDirectionalDerivative) {
 		boolean oldProvidesDirectionalDerivative = providesDirectionalDerivative;
 		providesDirectionalDerivative = newProvidesDirectionalDerivative;
@@ -666,6 +696,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void unsetProvidesDirectionalDerivative() {
 		boolean oldProvidesDirectionalDerivative = providesDirectionalDerivative;
 		boolean oldProvidesDirectionalDerivativeESet = providesDirectionalDerivativeESet;
@@ -680,6 +711,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isSetProvidesDirectionalDerivative() {
 		return providesDirectionalDerivativeESet;
 	}
@@ -845,7 +877,7 @@
 	public String toString() {
 		if (eIsProxy()) return super.toString();
 
-		StringBuffer result = new StringBuffer(super.toString());
+		StringBuilder result = new StringBuilder(super.toString());
 		result.append(" (canBeInstantiatedOnlyOncePerProcess: ");
 		if (canBeInstantiatedOnlyOncePerProcessESet) result.append(canBeInstantiatedOnlyOncePerProcess); else result.append("<unset>");
 		result.append(", canGetAndSetFMUstate: ");
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/ModelStructureTypeImpl.java b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/ModelStructureTypeImpl.java
index ad0c7c2..076856e 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/ModelStructureTypeImpl.java
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/ModelStructureTypeImpl.java
@@ -95,6 +95,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public Fmi2VariableDependency getOutputs() {
 		return outputs;
 	}
@@ -119,6 +120,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setOutputs(Fmi2VariableDependency newOutputs) {
 		if (newOutputs != outputs) {
 			NotificationChain msgs = null;
@@ -138,6 +140,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public Fmi2VariableDependency getDerivatives() {
 		return derivatives;
 	}
@@ -162,6 +165,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setDerivatives(Fmi2VariableDependency newDerivatives) {
 		if (newDerivatives != derivatives) {
 			NotificationChain msgs = null;
@@ -181,6 +185,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public InitialUnknownsType getInitialUnknowns() {
 		return initialUnknowns;
 	}
@@ -205,6 +210,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setInitialUnknowns(InitialUnknownsType newInitialUnknowns) {
 		if (newInitialUnknowns != initialUnknowns) {
 			NotificationChain msgs = null;
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/ModelVariablesTypeImpl.java b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/ModelVariablesTypeImpl.java
index 4842df1..9913ad1 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/ModelVariablesTypeImpl.java
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/ModelVariablesTypeImpl.java
@@ -79,6 +79,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public FeatureMap getGroup() {
 		if (group == null) {
 			group = new BasicFeatureMap(this, FmiPackage.MODEL_VARIABLES_TYPE__GROUP);
@@ -91,6 +92,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EList<Fmi2ScalarVariable> getScalarVariable() {
 		return getGroup().list(FmiPackage.Literals.MODEL_VARIABLES_TYPE__SCALAR_VARIABLE);
 	}
@@ -191,7 +193,7 @@
 	public String toString() {
 		if (eIsProxy()) return super.toString();
 
-		StringBuffer result = new StringBuffer(super.toString());
+		StringBuilder result = new StringBuilder(super.toString());
 		result.append(" (group: ");
 		result.append(group);
 		result.append(')');
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/RealType1Impl.java b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/RealType1Impl.java
index 9d1850d..c141196 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/RealType1Impl.java
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/RealType1Impl.java
@@ -271,6 +271,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public String getDisplayUnit() {
 		return displayUnit;
 	}
@@ -280,6 +281,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setDisplayUnit(String newDisplayUnit) {
 		String oldDisplayUnit = displayUnit;
 		displayUnit = newDisplayUnit;
@@ -292,6 +294,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public double getMax() {
 		return max;
 	}
@@ -301,6 +304,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setMax(double newMax) {
 		double oldMax = max;
 		max = newMax;
@@ -315,6 +319,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void unsetMax() {
 		double oldMax = max;
 		boolean oldMaxESet = maxESet;
@@ -329,6 +334,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isSetMax() {
 		return maxESet;
 	}
@@ -338,6 +344,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public double getMin() {
 		return min;
 	}
@@ -347,6 +354,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setMin(double newMin) {
 		double oldMin = min;
 		min = newMin;
@@ -361,6 +369,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void unsetMin() {
 		double oldMin = min;
 		boolean oldMinESet = minESet;
@@ -375,6 +384,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isSetMin() {
 		return minESet;
 	}
@@ -384,6 +394,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public double getNominal() {
 		return nominal;
 	}
@@ -393,6 +404,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setNominal(double newNominal) {
 		double oldNominal = nominal;
 		nominal = newNominal;
@@ -407,6 +419,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void unsetNominal() {
 		double oldNominal = nominal;
 		boolean oldNominalESet = nominalESet;
@@ -421,6 +434,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isSetNominal() {
 		return nominalESet;
 	}
@@ -430,6 +444,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public String getQuantity() {
 		return quantity;
 	}
@@ -439,6 +454,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setQuantity(String newQuantity) {
 		String oldQuantity = quantity;
 		quantity = newQuantity;
@@ -451,6 +467,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isRelativeQuantity() {
 		return relativeQuantity;
 	}
@@ -460,6 +477,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setRelativeQuantity(boolean newRelativeQuantity) {
 		boolean oldRelativeQuantity = relativeQuantity;
 		relativeQuantity = newRelativeQuantity;
@@ -474,6 +492,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void unsetRelativeQuantity() {
 		boolean oldRelativeQuantity = relativeQuantity;
 		boolean oldRelativeQuantityESet = relativeQuantityESet;
@@ -488,6 +507,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isSetRelativeQuantity() {
 		return relativeQuantityESet;
 	}
@@ -497,6 +517,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isUnbounded() {
 		return unbounded;
 	}
@@ -506,6 +527,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setUnbounded(boolean newUnbounded) {
 		boolean oldUnbounded = unbounded;
 		unbounded = newUnbounded;
@@ -520,6 +542,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void unsetUnbounded() {
 		boolean oldUnbounded = unbounded;
 		boolean oldUnboundedESet = unboundedESet;
@@ -534,6 +557,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isSetUnbounded() {
 		return unboundedESet;
 	}
@@ -543,6 +567,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public String getUnit() {
 		return unit;
 	}
@@ -552,6 +577,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setUnit(String newUnit) {
 		String oldUnit = unit;
 		unit = newUnit;
@@ -696,7 +722,7 @@
 	public String toString() {
 		if (eIsProxy()) return super.toString();
 
-		StringBuffer result = new StringBuffer(super.toString());
+		StringBuilder result = new StringBuilder(super.toString());
 		result.append(" (displayUnit: ");
 		result.append(displayUnit);
 		result.append(", max: ");
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/RealTypeImpl.java b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/RealTypeImpl.java
index 127bdb9..4efcaf7 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/RealTypeImpl.java
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/RealTypeImpl.java
@@ -382,6 +382,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public String getDeclaredType() {
 		return declaredType;
 	}
@@ -391,6 +392,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setDeclaredType(String newDeclaredType) {
 		String oldDeclaredType = declaredType;
 		declaredType = newDeclaredType;
@@ -403,6 +405,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public long getDerivative() {
 		return derivative;
 	}
@@ -412,6 +415,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setDerivative(long newDerivative) {
 		long oldDerivative = derivative;
 		derivative = newDerivative;
@@ -426,6 +430,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void unsetDerivative() {
 		long oldDerivative = derivative;
 		boolean oldDerivativeESet = derivativeESet;
@@ -440,6 +445,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isSetDerivative() {
 		return derivativeESet;
 	}
@@ -449,6 +455,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public String getDisplayUnit() {
 		return displayUnit;
 	}
@@ -458,6 +465,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setDisplayUnit(String newDisplayUnit) {
 		String oldDisplayUnit = displayUnit;
 		displayUnit = newDisplayUnit;
@@ -470,6 +478,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public double getMax() {
 		return max;
 	}
@@ -479,6 +488,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setMax(double newMax) {
 		double oldMax = max;
 		max = newMax;
@@ -493,6 +503,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void unsetMax() {
 		double oldMax = max;
 		boolean oldMaxESet = maxESet;
@@ -507,6 +518,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isSetMax() {
 		return maxESet;
 	}
@@ -516,6 +528,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public double getMin() {
 		return min;
 	}
@@ -525,6 +538,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setMin(double newMin) {
 		double oldMin = min;
 		min = newMin;
@@ -539,6 +553,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void unsetMin() {
 		double oldMin = min;
 		boolean oldMinESet = minESet;
@@ -553,6 +568,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isSetMin() {
 		return minESet;
 	}
@@ -562,6 +578,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public double getNominal() {
 		return nominal;
 	}
@@ -571,6 +588,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setNominal(double newNominal) {
 		double oldNominal = nominal;
 		nominal = newNominal;
@@ -585,6 +603,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void unsetNominal() {
 		double oldNominal = nominal;
 		boolean oldNominalESet = nominalESet;
@@ -599,6 +618,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isSetNominal() {
 		return nominalESet;
 	}
@@ -608,6 +628,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public String getQuantity() {
 		return quantity;
 	}
@@ -617,6 +638,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setQuantity(String newQuantity) {
 		String oldQuantity = quantity;
 		quantity = newQuantity;
@@ -629,6 +651,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isReinit() {
 		return reinit;
 	}
@@ -638,6 +661,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setReinit(boolean newReinit) {
 		boolean oldReinit = reinit;
 		reinit = newReinit;
@@ -652,6 +676,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void unsetReinit() {
 		boolean oldReinit = reinit;
 		boolean oldReinitESet = reinitESet;
@@ -666,6 +691,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isSetReinit() {
 		return reinitESet;
 	}
@@ -675,6 +701,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isRelativeQuantity() {
 		return relativeQuantity;
 	}
@@ -684,6 +711,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setRelativeQuantity(boolean newRelativeQuantity) {
 		boolean oldRelativeQuantity = relativeQuantity;
 		relativeQuantity = newRelativeQuantity;
@@ -698,6 +726,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void unsetRelativeQuantity() {
 		boolean oldRelativeQuantity = relativeQuantity;
 		boolean oldRelativeQuantityESet = relativeQuantityESet;
@@ -712,6 +741,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isSetRelativeQuantity() {
 		return relativeQuantityESet;
 	}
@@ -721,6 +751,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public double getStart() {
 		return start;
 	}
@@ -730,6 +761,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setStart(double newStart) {
 		double oldStart = start;
 		start = newStart;
@@ -744,6 +776,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void unsetStart() {
 		double oldStart = start;
 		boolean oldStartESet = startESet;
@@ -758,6 +791,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isSetStart() {
 		return startESet;
 	}
@@ -767,6 +801,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isUnbounded() {
 		return unbounded;
 	}
@@ -776,6 +811,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setUnbounded(boolean newUnbounded) {
 		boolean oldUnbounded = unbounded;
 		unbounded = newUnbounded;
@@ -790,6 +826,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void unsetUnbounded() {
 		boolean oldUnbounded = unbounded;
 		boolean oldUnboundedESet = unboundedESet;
@@ -804,6 +841,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isSetUnbounded() {
 		return unboundedESet;
 	}
@@ -813,6 +851,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public String getUnit() {
 		return unit;
 	}
@@ -822,6 +861,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setUnit(String newUnit) {
 		String oldUnit = unit;
 		unit = newUnit;
@@ -1006,7 +1046,7 @@
 	public String toString() {
 		if (eIsProxy()) return super.toString();
 
-		StringBuffer result = new StringBuffer(super.toString());
+		StringBuilder result = new StringBuilder(super.toString());
 		result.append(" (declaredType: ");
 		result.append(declaredType);
 		result.append(", derivative: ");
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/SourceFilesType1Impl.java b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/SourceFilesType1Impl.java
index 6fcd671..bbe67ad 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/SourceFilesType1Impl.java
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/SourceFilesType1Impl.java
@@ -79,6 +79,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public FeatureMap getGroup() {
 		if (group == null) {
 			group = new BasicFeatureMap(this, FmiPackage.SOURCE_FILES_TYPE1__GROUP);
@@ -91,6 +92,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EList<FileType1> getFile() {
 		return getGroup().list(FmiPackage.Literals.SOURCE_FILES_TYPE1__FILE);
 	}
@@ -191,7 +193,7 @@
 	public String toString() {
 		if (eIsProxy()) return super.toString();
 
-		StringBuffer result = new StringBuffer(super.toString());
+		StringBuilder result = new StringBuilder(super.toString());
 		result.append(" (group: ");
 		result.append(group);
 		result.append(')');
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/SourceFilesTypeImpl.java b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/SourceFilesTypeImpl.java
index 2c8d66d..c032add 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/SourceFilesTypeImpl.java
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/SourceFilesTypeImpl.java
@@ -79,6 +79,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public FeatureMap getGroup() {
 		if (group == null) {
 			group = new BasicFeatureMap(this, FmiPackage.SOURCE_FILES_TYPE__GROUP);
@@ -91,6 +92,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EList<FileType> getFile() {
 		return getGroup().list(FmiPackage.Literals.SOURCE_FILES_TYPE__FILE);
 	}
@@ -191,7 +193,7 @@
 	public String toString() {
 		if (eIsProxy()) return super.toString();
 
-		StringBuffer result = new StringBuffer(super.toString());
+		StringBuilder result = new StringBuilder(super.toString());
 		result.append(" (group: ");
 		result.append(group);
 		result.append(')');
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/StringTypeImpl.java b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/StringTypeImpl.java
index ccab0fd..b59d7e3 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/StringTypeImpl.java
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/StringTypeImpl.java
@@ -100,6 +100,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public String getDeclaredType() {
 		return declaredType;
 	}
@@ -109,6 +110,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setDeclaredType(String newDeclaredType) {
 		String oldDeclaredType = declaredType;
 		declaredType = newDeclaredType;
@@ -121,6 +123,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public String getStart() {
 		return start;
 	}
@@ -130,6 +133,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setStart(String newStart) {
 		String oldStart = start;
 		start = newStart;
@@ -214,7 +218,7 @@
 	public String toString() {
 		if (eIsProxy()) return super.toString();
 
-		StringBuffer result = new StringBuffer(super.toString());
+		StringBuilder result = new StringBuilder(super.toString());
 		result.append(" (declaredType: ");
 		result.append(declaredType);
 		result.append(", start: ");
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/ToolTypeImpl.java b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/ToolTypeImpl.java
index 47ef79e..0a56eb1 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/ToolTypeImpl.java
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/ToolTypeImpl.java
@@ -96,6 +96,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public FeatureMap getAny() {
 		if (any == null) {
 			any = new BasicFeatureMap(this, FmiPackage.TOOL_TYPE__ANY);
@@ -108,6 +109,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public String getName() {
 		return name;
 	}
@@ -117,6 +119,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setName(String newName) {
 		String oldName = name;
 		name = newName;
@@ -216,7 +219,7 @@
 	public String toString() {
 		if (eIsProxy()) return super.toString();
 
-		StringBuffer result = new StringBuffer(super.toString());
+		StringBuilder result = new StringBuilder(super.toString());
 		result.append(" (any: ");
 		result.append(any);
 		result.append(", name: ");
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/TypeDefinitionsTypeImpl.java b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/TypeDefinitionsTypeImpl.java
index 885d362..7863abd 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/TypeDefinitionsTypeImpl.java
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/TypeDefinitionsTypeImpl.java
@@ -79,6 +79,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public FeatureMap getGroup() {
 		if (group == null) {
 			group = new BasicFeatureMap(this, FmiPackage.TYPE_DEFINITIONS_TYPE__GROUP);
@@ -91,6 +92,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EList<Fmi2SimpleType> getSimpleType() {
 		return getGroup().list(FmiPackage.Literals.TYPE_DEFINITIONS_TYPE__SIMPLE_TYPE);
 	}
@@ -191,7 +193,7 @@
 	public String toString() {
 		if (eIsProxy()) return super.toString();
 
-		StringBuffer result = new StringBuffer(super.toString());
+		StringBuilder result = new StringBuilder(super.toString());
 		result.append(" (group: ");
 		result.append(group);
 		result.append(')');
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/UnitDefinitionsTypeImpl.java b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/UnitDefinitionsTypeImpl.java
index 5ad458c..158af2a 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/UnitDefinitionsTypeImpl.java
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/UnitDefinitionsTypeImpl.java
@@ -79,6 +79,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public FeatureMap getGroup() {
 		if (group == null) {
 			group = new BasicFeatureMap(this, FmiPackage.UNIT_DEFINITIONS_TYPE__GROUP);
@@ -91,6 +92,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public EList<Fmi2Unit> getUnit() {
 		return getGroup().list(FmiPackage.Literals.UNIT_DEFINITIONS_TYPE__UNIT);
 	}
@@ -191,7 +193,7 @@
 	public String toString() {
 		if (eIsProxy()) return super.toString();
 
-		StringBuffer result = new StringBuffer(super.toString());
+		StringBuilder result = new StringBuilder(super.toString());
 		result.append(" (group: ");
 		result.append(group);
 		result.append(')');
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/UnknownType1Impl.java b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/UnknownType1Impl.java
index d958cf9..66c8046 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/UnknownType1Impl.java
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/UnknownType1Impl.java
@@ -133,6 +133,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public List<Long> getDependencies() {
 		return dependencies;
 	}
@@ -142,6 +143,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setDependencies(List<Long> newDependencies) {
 		List<Long> oldDependencies = dependencies;
 		dependencies = newDependencies;
@@ -154,6 +156,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public List<DependenciesKindTypeItem1> getDependenciesKind() {
 		return dependenciesKind;
 	}
@@ -163,6 +166,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setDependenciesKind(List<DependenciesKindTypeItem1> newDependenciesKind) {
 		List<DependenciesKindTypeItem1> oldDependenciesKind = dependenciesKind;
 		dependenciesKind = newDependenciesKind;
@@ -175,6 +179,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public long getIndex() {
 		return index;
 	}
@@ -184,6 +189,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setIndex(long newIndex) {
 		long oldIndex = index;
 		index = newIndex;
@@ -198,6 +204,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void unsetIndex() {
 		long oldIndex = index;
 		boolean oldIndexESet = indexESet;
@@ -212,6 +219,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isSetIndex() {
 		return indexESet;
 	}
@@ -304,7 +312,7 @@
 	public String toString() {
 		if (eIsProxy()) return super.toString();
 
-		StringBuffer result = new StringBuffer(super.toString());
+		StringBuilder result = new StringBuilder(super.toString());
 		result.append(" (dependencies: ");
 		result.append(dependencies);
 		result.append(", dependenciesKind: ");
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/UnknownTypeImpl.java b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/UnknownTypeImpl.java
index 7502dea..eff11fc 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/UnknownTypeImpl.java
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src-gen/org/eclipse/papyrus/moka/fmi/modeldescription/impl/UnknownTypeImpl.java
@@ -133,6 +133,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public List<Long> getDependencies() {
 		return dependencies;
 	}
@@ -142,6 +143,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setDependencies(List<Long> newDependencies) {
 		List<Long> oldDependencies = dependencies;
 		dependencies = newDependencies;
@@ -154,6 +156,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public List<DependenciesKindTypeItem> getDependenciesKind() {
 		return dependenciesKind;
 	}
@@ -163,6 +166,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setDependenciesKind(List<DependenciesKindTypeItem> newDependenciesKind) {
 		List<DependenciesKindTypeItem> oldDependenciesKind = dependenciesKind;
 		dependenciesKind = newDependenciesKind;
@@ -175,6 +179,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public long getIndex() {
 		return index;
 	}
@@ -184,6 +189,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void setIndex(long newIndex) {
 		long oldIndex = index;
 		index = newIndex;
@@ -198,6 +204,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public void unsetIndex() {
 		long oldIndex = index;
 		boolean oldIndexESet = indexESet;
@@ -212,6 +219,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@Override
 	public boolean isSetIndex() {
 		return indexESet;
 	}
@@ -304,7 +312,7 @@
 	public String toString() {
 		if (eIsProxy()) return super.toString();
 
-		StringBuffer result = new StringBuffer(super.toString());
+		StringBuilder result = new StringBuilder(super.toString());
 		result.append(" (dependencies: ");
 		result.append(dependencies);
 		result.append(", dependenciesKind: ");
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src/org/eclipse/papyrus/moka/fmi/fmu/FMUParser.java b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src/org/eclipse/papyrus/moka/fmi/fmu/FMUParser.java
index 4b16bb0..2a53120 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src/org/eclipse/papyrus/moka/fmi/fmu/FMUParser.java
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src/org/eclipse/papyrus/moka/fmi/fmu/FMUParser.java
@@ -61,16 +61,16 @@
 
 	boolean isUnzipped=false;
 
-	public FMUParser(String fmuPath){
+	public FMUParser(String fmuPath) throws FileNotFoundException{
 		initializeParser(fmuPath, true);
 	}
 	
 	
-	public FMUParser(String fmuPath, boolean autoclean){
+	public FMUParser(String fmuPath, boolean autoclean) throws FileNotFoundException{
 		initializeParser(fmuPath, autoclean);
 	}
 
-	private void initializeParser(String fmuPath, boolean autoclean) {
+	private void initializeParser(String fmuPath, boolean autoclean) throws FileNotFoundException {
 		initResourceSet();
 		
 		this.fmuPath = fmuPath ;
@@ -120,17 +120,22 @@
 
 
 
-	private void initModelDescriptionFromFolder() {
-		Resource modelDescriptionResource = resSet.getResource(URI.createFileURI(fmuFolder.getAbsolutePath()+ File.separator + FMUResourceUtil.MODEL_DESCRIPTION_FILE_NAME), true);
-		if (modelDescriptionResource != null
-				&&!modelDescriptionResource.getContents().isEmpty() && modelDescriptionResource.getContents().get(0) instanceof DocumentRoot){
-			DocumentRoot root = (DocumentRoot) modelDescriptionResource.getContents().get(0);
-			modelDescription = root.getFmiModelDescription();
+	private void initModelDescriptionFromFolder() throws FileNotFoundException {
+		try {
+			String uri = fmuFolder.getAbsolutePath() + File.separator + FMUResourceUtil.MODEL_DESCRIPTION_FILE_NAME;
+			Resource modelDescriptionResource = resSet.getResource(URI.createFileURI(uri), true);
+			if (modelDescriptionResource != null && !modelDescriptionResource.getContents().isEmpty()
+					&& modelDescriptionResource.getContents().get(0) instanceof DocumentRoot) {
+				DocumentRoot root = (DocumentRoot) modelDescriptionResource.getContents().get(0);
+				modelDescription = root.getFmiModelDescription();
 
-			Resource resFromZip = resSet.getResource(FMUResourceUtil.MODEL_DESCRIPTION_ZIP_URI, false);
-			if (resFromZip != null && resFromZip.isLoaded()){
-				resFromZip.unload();
+				Resource resFromZip = resSet.getResource(FMUResourceUtil.MODEL_DESCRIPTION_ZIP_URI, false);
+				if (resFromZip != null && resFromZip.isLoaded()) {
+					resFromZip.unload();
+				}
 			}
+		} catch (RuntimeException e) {
+			throw new FileNotFoundException("Can't find the " + FMUResourceUtil.MODEL_DESCRIPTION_FILE_NAME + " file of the FMU.");
 		}
 	}
 
@@ -182,7 +187,8 @@
 		}
 	
 		try{
-			UnzipUtility.unzip(fmuFile.getAbsolutePath(), fmuFolder.getAbsolutePath());
+			URI fileUri = URI.createFileURI(fmuFile.getAbsolutePath());
+			UnzipUtility.unzip(fileUri, fmuFolder.getAbsolutePath());
 		} catch (IOException e) {
 			Activator.getDefault().getLog().log(new Status(IStatus.ERROR, Activator.getDefault().getBundle().getSymbolicName(), "Could not unzip fmu archive" + fmuFile, e));
 		}
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src/org/eclipse/papyrus/moka/fmi/fmu/FMUResource.java b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src/org/eclipse/papyrus/moka/fmi/fmu/FMUResource.java
index e5dd00c..4b7de7d 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src/org/eclipse/papyrus/moka/fmi/fmu/FMUResource.java
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src/org/eclipse/papyrus/moka/fmi/fmu/FMUResource.java
@@ -60,7 +60,7 @@
 	public void doLoad(InputStream inputStream, Map<?, ?> options) throws IOException {
 
 		Path tmpDirectoryPath = Files.createTempDirectory("fmuResource");
-		UnzipUtility.unzip(new ZipInputStream(inputStream), tmpDirectoryPath.toString());
+		UnzipUtility.unzip(new ZipInputStream(inputStream), tmpDirectoryPath.toString(), uri.lastSegment());
 		fmuParser = new FMUParser(tmpDirectoryPath.toString());
 		createFmuBundle();
 		getContents().add(fmuBundle);
@@ -86,7 +86,7 @@
 				break;
 
 			case FMUResourceUtil.FOLDER_SOURCES:
-				fmuBundle.getDocumentationFiles()
+				fmuBundle.getSourceFiles()
 						.addAll(FMUResourceUtil.createJavaFileProxies(fmuChildFile.listFiles()));
 				break;
 
@@ -148,6 +148,7 @@
 			saveModelDescription(zipOputputStream);
 			saveBinaries(zipOputputStream);
 			saveResources(zipOputputStream);
+			saveSources(zipOputputStream);
 			saveDocumentation(zipOputputStream);
 			saveRoot(zipOputputStream);
 			zipOputputStream.close();
@@ -211,7 +212,9 @@
 		addFiles(fmuBundle.getResourcesFiles(), zipOutputStream, FMUResourceUtil.FOLDER_RESOURCES);
 	}
 	
-	
+	private void saveSources(ZipOutputStream zipOutputStream) throws IOException {
+		addFiles(fmuBundle.getSourceFiles(), zipOutputStream, FMUResourceUtil.FOLDER_SOURCES);
+	}
 
 	private void addFile(AbstractFile fmuFile, ZipOutputStream zipOutputStream, String fmuFolder) throws IOException {
 		if (fmuFile instanceof JavaFileProxy && ((JavaFileProxy) fmuFile).getFile() != null
@@ -309,4 +312,4 @@
 		}
 
 	}
-}
+}
\ No newline at end of file
diff --git a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src/org/eclipse/papyrus/moka/fmi/util/UnzipUtility.java b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src/org/eclipse/papyrus/moka/fmi/util/UnzipUtility.java
index d25aee3..54bdfa3 100644
--- a/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src/org/eclipse/papyrus/moka/fmi/util/UnzipUtility.java
+++ b/bundles/fmi/tools/org.eclipse.papyrus.moka.fmi/src/org/eclipse/papyrus/moka/fmi/util/UnzipUtility.java
@@ -19,6 +19,8 @@
 import java.io.IOException;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipInputStream;
+
+import org.eclipse.emf.common.util.URI;
  
 
 public class UnzipUtility {
@@ -33,41 +35,46 @@
      * @param destDirectory
      * @throws IOException
      */
-    public static void unzip(String zipFilePath, String destDirectory) throws IOException {
+    public static void unzip(URI zipFileURI, String destDirectory) throws IOException {
         File destDir = new File(destDirectory);
         if (!destDir.exists()) {
             destDir.mkdir();
         }
-       try(ZipInputStream zipIn = new ZipInputStream(new FileInputStream(zipFilePath));){
-    	   unzip(zipIn, destDirectory);
-       }
+		try (ZipInputStream zipIn = new ZipInputStream(new FileInputStream(zipFileURI.toFileString()))) {
+			unzip(zipIn, destDirectory, zipFileURI.lastSegment());
+		}
     }
     
     
-    public static void unzip(ZipInputStream zipIn, String destDirectory) throws IOException {
-    	
-    	ZipEntry entry =  zipIn.getNextEntry();
-         // iterates over entries in the zip file
-         while (entry != null) {
-             String filePath = destDirectory + File.separator + entry.getName();
-             boolean isDirectory = entry.isDirectory();
-             
-             String replacement = File.separator.equals("\\")? "\\\\":"/";
-             filePath= filePath.replaceAll("/", replacement);
-             filePath= filePath.replaceAll("\\\\", replacement);
-             if (!isDirectory) {
-                 // if the entry is a file, extracts it
-                 extractFile(zipIn, filePath);
-             } else {
-                 // if the entry is a directory, make the directory
-                 File dir = new File(filePath);
-                 dir.mkdirs();
-                 
-             }
-             zipIn.closeEntry();
-             entry = zipIn.getNextEntry();
-         }
-         zipIn.close();
+    public static void unzip(ZipInputStream zipIn, String destDirectory, String zipFileName) throws IOException {
+    	ZipEntry entry = zipIn.getNextEntry();
+		try {			
+			// iterates over entries in the zip file
+			while (entry != null) {
+				String filePath = destDirectory + File.separator + entry.getName();
+				boolean isDirectory = entry.isDirectory();
+
+				String replacement = File.separator.equals("\\") ? "\\\\" : "/";
+				filePath = filePath.replaceAll("/", replacement);
+				filePath = filePath.replaceAll("\\\\", replacement);
+				if (!isDirectory) {
+					// if the entry is a file, extracts it
+					extractFile(zipIn, filePath);
+				} else {
+					// if the entry is a directory, make the directory
+					File dir = new File(filePath);
+					dir.mkdirs();
+
+				}
+				zipIn.closeEntry();
+				entry = zipIn.getNextEntry();
+			}
+			zipIn.close();
+		} catch (IOException e) {
+			throw new IOException("Could not unzip " + zipFileName +  " archive.\n The problematic entry is \"" + entry.getName() + "\".");
+		} finally {
+			zipIn.close();
+		}
 	}
 	/**
      * Extracts a zip entry (file entry)
@@ -76,20 +83,21 @@
      * @throws IOException
      */
     private static void extractFile(ZipInputStream zipIn,  String filePath) throws IOException {
-    	File outputFile = new File(filePath);
-    	File parent = new File(outputFile.getParent());
-    	if (!parent.exists()){
-    		parent.mkdirs();
-    	}
-    	BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(filePath));
-        byte[] bytesIn = new byte[BUFFER_SIZE];
-        int read = 0;
-        while ((read = zipIn.read(bytesIn)) != -1) {
-            bos.write(bytesIn, 0, read);
-        }
-        bos.close();
-       	outputFile.setExecutable(true);
-       
+	
+		File outputFile = new File(filePath);
+		File parent = new File(outputFile.getParent());
+		if (!parent.exists()) {
+			parent.mkdirs();
+		}
+		BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(filePath));
+		byte[] bytesIn = new byte[BUFFER_SIZE];
+		int read = 0;
+		while ((read = zipIn.read(bytesIn)) != -1) {
+			bos.write(bytesIn, 0, read);
+		}
+		bos.close();
+		outputFile.setExecutable(true);
+		      
         
     }
 }
\ No newline at end of file
diff --git a/bundles/fmi/ui/org.eclipse.papyrus.moka.fmi.ui/META-INF/MANIFEST.MF b/bundles/fmi/ui/org.eclipse.papyrus.moka.fmi.ui/META-INF/MANIFEST.MF
index c428012..6b2a1a6 100644
--- a/bundles/fmi/ui/org.eclipse.papyrus.moka.fmi.ui/META-INF/MANIFEST.MF
+++ b/bundles/fmi/ui/org.eclipse.papyrus.moka.fmi.ui/META-INF/MANIFEST.MF
@@ -5,24 +5,22 @@
 Bundle-Version: 4.0.0.qualifier
 Bundle-Activator: org.eclipse.papyrus.moka.fmi.ui.Activator
 Require-Bundle: org.eclipse.ui;bundle-version="[3.109.0,4.0.0)",
- org.eclipse.core.runtime;bundle-version="[3.14.0,4.0.0)",
- org.eclipse.ui.ide;bundle-version="[3.14.0,4.0.0)",
+ org.eclipse.core.runtime;bundle-version="[3.13.0,4.0.0)",
+ org.eclipse.ui.ide;bundle-version="[3.13.0,4.0.0)",
  org.eclipse.gef;bundle-version="[3.11.0,4.0.0)",
- org.eclipse.emf.transaction;bundle-version="[1.9.1,2.0.0)",
- org.eclipse.papyrus.moka.ui;bundle-version="4.0.0",
- org.eclipse.papyrus.moka.composites.utils;bundle-version="4.0.0",
- org.eclipse.papyrus.moka.fmu.engine;bundle-version="4.0.0",
- org.eclipse.papyrus.moka.fmi.fmi2uml;bundle-version="4.0.0",
+ org.eclipse.emf.transaction;bundle-version="[1.9.0,2.0.0)",
+ org.eclipse.papyrus.moka.fmi.fmi2uml;bundle-version="2.0.100",
  org.eclipse.gmf.runtime.diagram.ui;bundle-version="[1.8.0,2.0.0)",
- org.eclipse.papyrus.infra.gmfdiag.css;bundle-version="[2.2.1,3.0.0)",
- org.eclipse.papyrus.uml.diagram.composite;bundle-version="[3.1.0,4.0.0)",
- org.eclipse.papyrus.infra.gmfdiag.dnd;bundle-version="[1.4.0,2.0.0)",
- org.eclipse.papyrus.uml.diagram.wizards;bundle-version="[3.0.2,4.0.0)",
+ org.eclipse.papyrus.infra.gmfdiag.css;bundle-version="[2.1.0,3.0.0)",
+ org.eclipse.papyrus.uml.diagram.composite;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.papyrus.infra.gmfdiag.dnd;bundle-version="[1.2.0,2.0.0)",
+ org.eclipse.papyrus.uml.diagram.wizards;bundle-version="[3.0.0,4.0.0)",
  org.eclipse.papyrus.infra.ui;bundle-version="[2.0.0,3.0.0)",
- org.eclipse.papyrus.uml.tools.utils;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.papyrus.infra.core;bundle-version="[3.0.100,4.0.0)",
- org.eclipse.papyrus.moka.fmi;bundle-version="4.0.0",
- org.eclipse.papyrus.moka.fmi.profile;bundle-version="4.0.0"
+ org.eclipse.papyrus.uml.tools.utils;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.papyrus.infra.core;bundle-version="2.0.0",
+ org.eclipse.papyrus.moka.fmi.profile;bundle-version="4.0.0",
+ org.eclipse.papyrus.sysml14;bundle-version="1.3.0",
+ org.eclipse.papyrus.moka.ssp.profile;bundle-version="4.0.0"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Bundle-Vendor: Eclipse Modeling Project
@@ -31,4 +29,3 @@
  org.eclipse.papyrus.moka.fmi.ui.dialogs,
  org.eclipse.papyrus.moka.fmi.ui.dnd,
  org.eclipse.papyrus.moka.fmi.ui.handlers
-Automatic-Module-Name: org.eclipse.papyrus.moka.fmi.ui
diff --git a/bundles/fmi/ui/org.eclipse.papyrus.moka.fmi.ui/build.properties b/bundles/fmi/ui/org.eclipse.papyrus.moka.fmi.ui/build.properties
index b4abc3f..0d9f371 100644
--- a/bundles/fmi/ui/org.eclipse.papyrus.moka.fmi.ui/build.properties
+++ b/bundles/fmi/ui/org.eclipse.papyrus.moka.fmi.ui/build.properties
@@ -1,9 +1,7 @@
 source.. = src/
-output.. = target/classes/
 bin.includes = META-INF/,\
                .,\
                plugin.xml,\
                css/,\
                models/,\
-               icons/,\
-               pom.xml
+               icons/
diff --git a/bundles/fmi/ui/org.eclipse.papyrus.moka.fmi.ui/src/org/eclipse/papyrus/moka/fmi/ui/commands/DropFMUAsPartCommand.java b/bundles/fmi/ui/org.eclipse.papyrus.moka.fmi.ui/src/org/eclipse/papyrus/moka/fmi/ui/commands/DropFMUAsPartCommand.java
index 4459ea4..b2fa65e 100644
--- a/bundles/fmi/ui/org.eclipse.papyrus.moka.fmi.ui/src/org/eclipse/papyrus/moka/fmi/ui/commands/DropFMUAsPartCommand.java
+++ b/bundles/fmi/ui/org.eclipse.papyrus.moka.fmi.ui/src/org/eclipse/papyrus/moka/fmi/ui/commands/DropFMUAsPartCommand.java
@@ -23,6 +23,7 @@
 import org.eclipse.draw2d.geometry.Dimension;
 import org.eclipse.draw2d.geometry.Point;
 import org.eclipse.draw2d.geometry.Rectangle;
+import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.transaction.TransactionalEditingDomain;
 import org.eclipse.gmf.runtime.common.core.command.CommandResult;
 import org.eclipse.gmf.runtime.diagram.ui.commands.SetBoundsCommand;
@@ -34,10 +35,11 @@
 import org.eclipse.gmf.runtime.emf.type.core.IHintedType;
 import org.eclipse.gmf.runtime.notation.Node;
 import org.eclipse.gmf.runtime.notation.View;
-import org.eclipse.papyrus.infra.gmfdiag.css.CSSShapeImpl;
-import org.eclipse.papyrus.moka.fmi.fmiprofile.FlowDirection;
 import org.eclipse.papyrus.moka.fmi.profile.util.FMIProfileUtil;
+import org.eclipse.papyrus.moka.ssp.profile.custom.StereotypeStrings;
+import org.eclipse.papyrus.sysml14.portsandflows.FlowDirection;
 import org.eclipse.papyrus.uml.diagram.composite.custom.edit.command.CreateViewCommand;
+import org.eclipse.papyrus.uml.diagram.composite.edit.parts.PropertyPartEditPartCN;
 import org.eclipse.papyrus.uml.diagram.composite.part.UMLVisualIDRegistry;
 import org.eclipse.papyrus.uml.diagram.composite.providers.UMLElementTypes;
 import org.eclipse.papyrus.uml.tools.utils.NamedElementUtil;
@@ -45,6 +47,7 @@
 import org.eclipse.uml2.uml.Class;
 import org.eclipse.uml2.uml.Port;
 import org.eclipse.uml2.uml.Property;
+import org.eclipse.uml2.uml.Stereotype;
 
 public class DropFMUAsPartCommand extends AbstractTransactionalCommand {
 
@@ -114,6 +117,11 @@
 		newPart.setName(NamedElementUtil.getDefaultNameWithIncrementFromBase(partName,targetSimulator.getOwnedAttributes()));
 		newPart.setAggregation(AggregationKind.COMPOSITE_LITERAL);
 		
+		Stereotype stereotype = newPart.getApplicableStereotype(StereotypeStrings.SSDCOMPONENT_QUALIFIEDNAME);
+		if (stereotype != null) {
+			EObject SsdComponent = newPart.applyStereotype(stereotype);
+		}
+		
 	}
 
 
@@ -127,9 +135,11 @@
 
 		int maxPortOnOneSide = Math.max(inPorts.size(), outPorts.size());
 		int figureHeight = Math.max(MIN_HEIGHT, (2 * maxPortOnOneSide + 1) * PORT_DEFAULT_HEIGHT);
-
+		
+		String elementType = PropertyPartEditPartCN.VISUAL_ID;
+		
 		ViewDescriptor descriptor = new ViewDescriptor(new EObjectAdapter(newPart), Node.class,
-				((IHintedType) UMLElementTypes.getElementType(UMLVisualIDRegistry.getNodeVisualID(targetView, newPart)))
+				((IHintedType) UMLElementTypes.getElementType(elementType))
 				.getSemanticHint(),
 				targetGraphicalEditPart.getDiagramPreferencesHint());
 		CreateViewCommand createCommand = new CreateViewCommand(domain, descriptor, targetView);
diff --git a/bundles/fmi/ui/org.eclipse.papyrus.moka.fmi.ui/src/org/eclipse/papyrus/moka/fmi/ui/handlers/ImportFMULibHandler.java b/bundles/fmi/ui/org.eclipse.papyrus.moka.fmi.ui/src/org/eclipse/papyrus/moka/fmi/ui/handlers/ImportFMULibHandler.java
index cd19cb8..f91dc7d 100644
--- a/bundles/fmi/ui/org.eclipse.papyrus.moka.fmi.ui/src/org/eclipse/papyrus/moka/fmi/ui/handlers/ImportFMULibHandler.java
+++ b/bundles/fmi/ui/org.eclipse.papyrus.moka.fmi.ui/src/org/eclipse/papyrus/moka/fmi/ui/handlers/ImportFMULibHandler.java
@@ -45,31 +45,31 @@
 import org.eclipse.swt.widgets.MessageBox;
 import org.eclipse.swt.widgets.Shell;
 import org.eclipse.ui.PlatformUI;
-import org.eclipse.uml2.uml.Class;
 import org.eclipse.uml2.uml.Package;
+import org.eclipse.uml2.uml.Class;
 
 /**
  * @author Sebastien Revol
  * 
  */
-public class ImportFMULibHandler  extends AbstractCommandHandler
+public class ImportFMULibHandler
+		extends AbstractCommandHandler
 
 {
 
-
 	private static final String DEFAULT_LIBRARY_NAME = "FMULibrary";
 
-
-	public String getLibraryName(){
+	public String getLibraryName() {
 		String defaultModelLibName = DEFAULT_LIBRARY_NAME;
-		ImportFMUDialog dialog = new ImportFMUDialog(Display.getCurrent().getActiveShell(), defaultModelLibName );
+		ImportFMUDialog dialog = new ImportFMUDialog(
+			Display.getCurrent().getActiveShell(), defaultModelLibName);
 		IPreferenceStore store = Activator.getDefault().getPreferenceStore();
 		dialog.setPreferenceStore(store);
 		dialog.open();
 
 		// If the operation was cancelled, then return
 		if (dialog.getReturnCode() != ImportFMUDialog.CANCEL) {
-			return dialog.getImportedModelName();            
+			return dialog.getImportedModelName();
 		}
 		return null;
 	}
@@ -81,163 +81,235 @@
 
 		FileDialog fd = new FileDialog(shell, SWT.MULTI);
 		fd.setText("Select FMU to be imported");
-		//fd.setFilterPath(currentProjectDir);
-		String[] filterExt = { "*.fmu" };
+		// fd.setFilterPath(currentProjectDir);
+		String[] filterExt = {"*.fmu"};
 		fd.setFilterExtensions(filterExt);
 
 		if (fd.open() != null) {
 			String folder = fd.getFilterPath();
-			for(String name : fd.getFileNames()){
-				fmuFiles.add(folder+ File.separator+ name);
+			for (String name : fd.getFileNames()) {
+				fmuFiles.add(folder + File.separator + name);
 			}
 		}
 
-		return  fmuFiles;
+		return fmuFiles;
 	}
 
-
-	
-
-	protected void unloadOpenedFMUs(List<FMUBundle> fmuBundles) {
-		for (FMUBundle fmuBundle : fmuBundles){
+	protected static void unloadOpenedFMUs(List<FMUBundle> fmuBundles) {
+		for (FMUBundle fmuBundle : fmuBundles) {
 			fmuBundle.eResource().unload();
 		}
 
 	}
 
-	private void cleanFolder(IFolder libFolder) {
+	private static void cleanFolder(IFolder libFolder) {
 		try {
 			libFolder.delete(false, null);
 		} catch (CoreException e) {
-			Activator.getDefault().getLog().log(new Status(IStatus.ERROR, Activator.PLUGIN_ID,"failed to delete folder "+ libFolder.getFullPath().toPortableString() ));
+			Activator.getDefault().getLog()
+				.log(new Status(IStatus.ERROR, Activator.PLUGIN_ID,
+					"failed to delete folder "
+						+ libFolder.getFullPath().toPortableString()));
 		}
 
 	}
 
-
-	private void errorDialog(Exception e, String message) {		
-		ErrorDialog.openError(Display.getCurrent().getActiveShell(), "SpiderML Error", message, new Status(IStatus.ERROR,Activator.PLUGIN_ID, message, e));
+	private static void errorDialog(Exception e, String message) {
+		ErrorDialog.openError(Display.getCurrent().getActiveShell(),
+			"Error", message,
+			new Status(IStatus.ERROR, Activator.PLUGIN_ID, message, e));
 	}
 
-	private void errorPopup(String message) {
-		MessageBox messageBox = new MessageBox(Display.getCurrent().getActiveShell(), SWT.ICON_ERROR);
+	private static void errorPopup(String message) {
+		MessageBox messageBox = new MessageBox(
+			Display.getCurrent().getActiveShell(), SWT.ICON_ERROR);
 		messageBox.setMessage(message);
 		messageBox.open();
 	}
 
 	private boolean libExists(Package targetPackage, String libName) {
-		for(Package pack : targetPackage.getNestedPackages()){
-			if (libName.equals(pack.getName())){
+		for (Package pack : targetPackage.getNestedPackages()) {
+			if (libName.equals(pack.getName())) {
 				return true;
 			}
 		}
 		return false;
 	}
 
-
-
 	@Override
 	protected Command getCommand(IEvaluationContext context) {
 		EObject selection = getSelectedElement();
-		if (selection instanceof Package){
-			final Package target = (Package)selection;
+		if (selection instanceof Package) {
+			final Package target = (Package) selection;
 			return new RecordingCommand(getEditingDomain(context)) {
 
 				@Override
 				protected void doExecute() {
 					boolean canContinue = false;
-					String libName= null;
-					while (!canContinue){
+					String libName = null;
+					while (!canContinue) {
 						libName = getLibraryName();
-						if( libName == null){
+						if (libName == null) {
 							return;
-						}else {
+						} else {
 							canContinue = !libExists(target, libName);
-							if (!canContinue){ 
-								errorPopup("A library named "+ libName+ " already exists! Please choose another name");
+							if (!canContinue) {
+								errorPopup("A library named " + libName
+									+ " already exists! Please choose another name");
 							}
-						}	
+						}
 					}
 					URI modelURI = target.eResource().getURI();
-					IFile modelIFile = ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(modelURI.toPlatformString(true)));
+					IFile modelIFile = ResourcesPlugin.getWorkspace().getRoot()
+						.getFile(new Path(modelURI.toPlatformString(true)));
 					IProject project = modelIFile.getProject();
 					IFolder libFolder = project.getFolder(libName);
-					if (libFolder.exists()){
-						errorPopup("A folder with name "+ libName+ " already exists in the project "+ libFolder.getName()+" Aborting.");
+					if (libFolder.exists()) {
+						errorPopup("A folder with name " + libName
+							+ " already exists in the project "
+							+ libFolder.getName() + " Aborting.");
 						return;
 					}
 
 					try {
-						libFolder.create(false,true, null);
+						libFolder.create(false, true, null);
 					} catch (CoreException e) {
-						errorDialog(e, "Could not create library folder" + libFolder.getName());
+						errorDialog(e, "Could not create library folder"
+							+ libFolder.getName());
 						return;
 					}
 
 					List<String> fmuAndSlxPaths = getFMUFiles();
-					List<FMUBundle> fmuBundles = new ArrayList<>();
-					ResourceSet papyResourceSet =target.eResource().getResourceSet();
 
-					for(String filePath : fmuAndSlxPaths){
-						File sourceFile = new File(filePath);
-						IFile targetIFile = libFolder.getFile(sourceFile.getName());
-						try {
-							targetIFile.create(new FileInputStream(sourceFile), true, null);
-						} catch (CoreException e) {
-							errorDialog(e, "Could not FMU File " + targetIFile.getName() + " in");
-							cleanFolder(libFolder);
-							return;
-						} catch (FileNotFoundException e) {
-							errorDialog(e, "Could not create FMU file " + libFolder.getFullPath().toOSString() +" in workspace");
+					importFMUs(target, libName, libFolder, fmuAndSlxPaths);
 
-						}
-
-						URI fmuURI = URI.createPlatformResourceURI(targetIFile.getFullPath().toPortableString(),true);
-
-						FMUResource resource=null;
-						try {
-							resource = (FMUResource) papyResourceSet.getResource(fmuURI, true);
-						} catch (Exception e) {
-							errorDialog(e, "Error importing fmu " + filePath);
-							unloadOpenedFMUs(fmuBundles);
-							cleanFolder(libFolder);
-							return;
-						}
-
-
-						if (resource != null && resource.getFmuParser() != null ){
-							if( resource.getFmuParser().getModelDescription() != null){
-								fmuBundles.add( (FMUBundle) resource.getContents().get(0));
-							}else {
-								errorPopup("Ignoring FMU " + filePath+" since it doesn't contain a modelDescription.xml file.");
-							}
-						}
-					}
-
-
-					
-					Package libPackage = target.createNestedPackage(libName);
-
-					for (FMUBundle fmuBundle : fmuBundles){
-						FmiModelDescriptionType modelDescription = fmuBundle.getModelDescription();
-						
-						if (modelDescription !=null && !modelDescription.getCoSimulation().isEmpty()){
-							String name = modelDescription.getCoSimulation().get(0).getModelIdentifier();
-							Package targetPackage = libPackage.createNestedPackage(name);
-							Class fmuClass= FMI2UML.getFMUClass(fmuBundle, targetPackage);
-							
-						}else {
-							errorPopup("Ignoring FMU " + modelDescription.eResource().getURI().toPlatformString(true)+" since it doesn't contain a  Cosimulation section.");
-						}
-					}
-				
 				}
+
 			};
 		}
 		return null;
 
 	}
 
+	// TODO put it into common
+	public static void importFMUs(final Package target, String libName,
+			IFolder libFolder, List<String> fmuAndSlxPaths) {
+		List<FMUBundle> fmuBundles = new ArrayList<>();
+		ResourceSet papyResourceSet = target.eResource().getResourceSet();
 
+		for (String filePath : fmuAndSlxPaths) {
+			File sourceFile = new File(filePath);
+			IFile targetIFile = libFolder.getFile(sourceFile.getName());
+			try {
+				targetIFile.create(new FileInputStream(sourceFile), true, null);
+			} catch (CoreException e) {
+				errorDialog(e,
+					"Could not FMU File " + targetIFile.getName() + " in");
+				cleanFolder(libFolder);
+				return;
+			} catch (FileNotFoundException e) {
+				errorDialog(e, "Could not create FMU file "
+					+ libFolder.getFullPath().toOSString() + " in workspace");
+
+			}
+
+			URI fmuURI = URI.createPlatformResourceURI(
+				targetIFile.getFullPath().toPortableString(), true);
+
+			FMUResource resource = null;
+			try {
+				resource = (FMUResource) papyResourceSet.getResource(fmuURI,
+					true);
+			} catch (Exception e) {
+				errorDialog(e, "Error importing fmu " + filePath);
+				unloadOpenedFMUs(fmuBundles);
+				cleanFolder(libFolder);
+				return;
+			}
+
+			if (resource != null && resource.getFmuParser() != null) {
+				if (resource.getFmuParser().getModelDescription() != null) {
+					fmuBundles.add((FMUBundle) resource.getContents().get(0));
+				} else {
+					errorPopup("Ignoring FMU " + filePath
+						+ " since it doesn't contain a modelDescription.xml file.");
+				}
+			}
+		}
+
+		Package libPackage = target.createNestedPackage(libName);
+
+		for (FMUBundle fmuBundle : fmuBundles) {
+			FmiModelDescriptionType modelDescription = fmuBundle
+				.getModelDescription();
+
+			if (modelDescription != null
+				&& !modelDescription.getCoSimulation().isEmpty()) {
+				String name = modelDescription.getCoSimulation().get(0)
+					.getModelIdentifier();
+				Package targetPackage = libPackage.createNestedPackage(name);
+				FMI2UML.getFMUClass(fmuBundle, targetPackage);
+
+			} else {
+				errorPopup("Ignoring FMU "
+					+ modelDescription.eResource().getURI()
+						.toPlatformString(true)
+					+ " since it doesn't contain a  Cosimulation section.");
+			}
+		}
+	}
+
+	public static List<FMUBundle> loadFMUs(final Package target, String libName,
+			URI fmuLibURI, List<String> fmuNames) {
+		List<FMUBundle> fmuBundles = new ArrayList<>();
+		ResourceSet papyResourceSet = target.eResource().getResourceSet();
+
+		for (String fmuName : fmuNames) {
+
+			URI fmuURI = fmuLibURI.appendSegment(fmuName);
+
+			FMUResource resource = null;
+			try {
+				resource = (FMUResource) papyResourceSet.getResource(fmuURI,
+					true);
+			} catch (Exception e) {
+				errorDialog(e, "Error importing fmu " + fmuName);
+				unloadOpenedFMUs(fmuBundles);
+				// cleanFolder(libFolder);
+				return null;
+			}
+
+			if (resource != null && resource.getFmuParser() != null) {
+				if (resource.getFmuParser().getModelDescription() != null) {
+					fmuBundles.add((FMUBundle) resource.getContents().get(0));
+				} else {
+					errorPopup("Ignoring FMU " + fmuName
+						+ " since it doesn't contain a modelDescription.xml file.");
+				}
+			}
+		}
+		return fmuBundles;
+	}
+
+	public static Class createUMLMoldel(Package libPackage,
+			FMUBundle fmuBundle) {
+		FmiModelDescriptionType modelDescription = fmuBundle
+			.getModelDescription();
+
+		if (modelDescription != null
+			&& !modelDescription.getCoSimulation().isEmpty()) {
+			String name = modelDescription.getCoSimulation().get(0)
+				.getModelIdentifier();
+			Package targetPackage = libPackage.createNestedPackage(name);
+			return FMI2UML.getFMUClass(fmuBundle, targetPackage);
+
+		} else {
+			errorPopup("Ignoring FMU "
+				+ modelDescription.eResource().getURI().toPlatformString(true)
+				+ " since it doesn't contain a  Cosimulation section.");
+
+			return null;
+		}
+	}
 
 }
diff --git a/features/org.eclipse.papyrus.moka.fmi.feature/feature.xml b/features/org.eclipse.papyrus.moka.fmi.feature/feature.xml
index bd75bb8..fef77bf 100644
--- a/features/org.eclipse.papyrus.moka.fmi.feature/feature.xml
+++ b/features/org.eclipse.papyrus.moka.fmi.feature/feature.xml
@@ -120,4 +120,11 @@
          version="0.0.0"
          unpack="false"/>
 
+   <plugin
+         id="org.eclipse.papyrus.moka.ssp.profile"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
 </feature>
diff --git a/releng/platforms/org.eclipse.papyrus.moka.targetplatform.photon/.project b/releng/platforms/org.eclipse.papyrus.moka.targetplatform.photon/.project
new file mode 100644
index 0000000..a96de1d
--- /dev/null
+++ b/releng/platforms/org.eclipse.papyrus.moka.targetplatform.photon/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.papyrus.moka.targetplatform.photon</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.m2e.core.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.m2e.core.maven2Nature</nature>
+	</natures>
+</projectDescription>
diff --git a/releng/platforms/org.eclipse.papyrus.moka.targetplatform.photon/org.eclipse.papyrus.moka.targetplatform.photon.target b/releng/platforms/org.eclipse.papyrus.moka.targetplatform.photon/org.eclipse.papyrus.moka.targetplatform.photon.target
index 191ea07..d4cc46f 100644
--- a/releng/platforms/org.eclipse.papyrus.moka.targetplatform.photon/org.eclipse.papyrus.moka.targetplatform.photon.target
+++ b/releng/platforms/org.eclipse.papyrus.moka.targetplatform.photon/org.eclipse.papyrus.moka.targetplatform.photon.target
@@ -39,5 +39,9 @@
       <unit id="org.eclipse.nebula.visualization.feature.feature.group" version="0.0.0"/>
       <repository id="nebula" location="http://download.eclipse.org/nebula/releases/2.0.1"/>
     </location>
+    <location includeMode="planner" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
+      <unit id="org.eclipse.papyrus.sysml14.feature.feature.group" version="0.0.0"/>
+      <repository id="sysml-photon" location="http://download.eclipse.org/modeling/mdt/papyrus/components/sysml14/photon/"/>
+    </location>
   </locations>
 </target>
diff --git a/releng/platforms/org.eclipse.papyrus.moka.targetplatform.photon/org.eclipse.papyrus.moka.targetplatform.photon.tpd b/releng/platforms/org.eclipse.papyrus.moka.targetplatform.photon/org.eclipse.papyrus.moka.targetplatform.photon.tpd
index ff62872..8ba67f4 100644
--- a/releng/platforms/org.eclipse.papyrus.moka.targetplatform.photon/org.eclipse.papyrus.moka.targetplatform.photon.tpd
+++ b/releng/platforms/org.eclipse.papyrus.moka.targetplatform.photon/org.eclipse.papyrus.moka.targetplatform.photon.tpd
@@ -7,7 +7,6 @@
 	org.eclipse.equinox.p2.discovery.feature.feature.group lazy
 	org.eclipse.equinox.executable.feature.group lazy
 }
-
 location "https://hudson.eclipse.org/papyrus/view/Master/job/Papyrus-Master/lastSuccessfulBuild/artifact/repository/" papyrus {
 	org.eclipse.papyrus.sdk.feature.feature.group lazy
 }
@@ -34,4 +33,8 @@
 location "http://download.eclipse.org/nebula/releases/2.0.1" nebula {
 	org.eclipse.nebula.widgets.xviewer.feature.feature.group lazy
 	org.eclipse.nebula.visualization.feature.feature.group lazy
+}
+
+location "http://download.eclipse.org/modeling/mdt/papyrus/components/sysml14/photon/" sysml-photon {
+	org.eclipse.papyrus.sysml14.feature.feature.group lazy
 }
\ No newline at end of file
diff --git a/tests/fmi/org.eclipse.papyrus.moka.fmi.test/src/org/eclipse/papyrus/moka/fmi/test/TestFMI.java b/tests/fmi/org.eclipse.papyrus.moka.fmi.test/src/org/eclipse/papyrus/moka/fmi/test/TestFMI.java
index 3b937cd..9da86d7 100644
--- a/tests/fmi/org.eclipse.papyrus.moka.fmi.test/src/org/eclipse/papyrus/moka/fmi/test/TestFMI.java
+++ b/tests/fmi/org.eclipse.papyrus.moka.fmi.test/src/org/eclipse/papyrus/moka/fmi/test/TestFMI.java
@@ -35,6 +35,7 @@
 import org.eclipse.emf.ecore.xmi.XMLResource;
 import org.eclipse.papyrus.moka.fmi.fmi2uml.FMI2UML;
 import org.eclipse.papyrus.moka.fmi.fmiprofile.CS_FMU;
+import org.eclipse.papyrus.moka.fmi.fmiprofile.FMIProfilePackage;
 import org.eclipse.papyrus.moka.fmi.fmu.FMUParser;
 import org.eclipse.papyrus.moka.fmi.fmu.FMUResource;
 import org.eclipse.papyrus.moka.fmi.fmumetamodel.AbstractFile;
@@ -231,7 +232,7 @@
 			String expectedClassName = fmuRes.getFmuParser().getModelDescription().getCoSimulation().get(0).getModelIdentifier();
 			assertTrue(fmuClass.getName().equals(expectedClassName));
 			
-			Stereotype csFMUStereo = FMIProfileUtil.getStereotype(umlModel, FMIProfileUtil.CS_FMU_STEREO_NAME);
+			Stereotype csFMUStereo = FMIProfileUtil.getStereotype(umlModel, FMIProfileUtil.CS_FMU_STEREO_NAME, FMIProfilePackage.eINSTANCE);
 			EObject application = fmuClass.getStereotypeApplication(csFMUStereo);
 			assertTrue(application instanceof CS_FMU);
 			CS_FMU csFMU = (CS_FMU) application;
@@ -254,7 +255,7 @@
 			Class umlClass = (Class) umlModel.getOwnedType(expectedClassName) ;
 			
 			csFMUStereo = umlClass.getAppliedStereotype(FMIProfileUtil.CS_FMU_STEREO_QUALIFIED_NAME);
-			assertTrue(csFMUStereo == FMIProfileUtil.getStereotype(umlModel, FMIProfileUtil.CS_FMU_STEREO_NAME));
+			assertTrue(csFMUStereo == FMIProfileUtil.getStereotype(umlModel, FMIProfileUtil.CS_FMU_STEREO_NAME, FMIProfilePackage.eINSTANCE));
 			
 			csFMU = (CS_FMU) umlClass.getStereotypeApplication(csFMUStereo);
 			assertTrue(csFMU.getModelDescription() != null);