Bug 468073: [codegen] generator ignores exclusions (part 5)

* Exclusions in state machines
* Fixes to exclusions in structural elements to take into account the
new UML Extensions model
* Updated tests

Change-Id: I9945af14f71a20cdb84480e2d7bb926e2f6b98e8
Signed-off-by: Ernesto Posse <eposse@gmail.com>
diff --git a/models/samples/ComputerSystem/expected_src/CMakeLists.txt b/models/samples/ComputerSystem/expected_src/CMakeLists.txt
index a6c8d76..347e28c 100644
--- a/models/samples/ComputerSystem/expected_src/CMakeLists.txt
+++ b/models/samples/ComputerSystem/expected_src/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Generated 2017-02-27 14:38:09
+# Generated 2017-03-09 17:30:03
 
 cmake_minimum_required(VERSION 2.8.7)
 set(TARGET TopMain)
diff --git a/models/tests/codepattern/structure/ExclusionsAttributes/ExclusionsAttributes.uml b/models/tests/codepattern/structure/ExclusionsAttributes/ExclusionsAttributes.uml
index 2f16724..c33a356 100644
--- a/models/tests/codepattern/structure/ExclusionsAttributes/ExclusionsAttributes.uml
+++ b/models/tests/codepattern/structure/ExclusionsAttributes/ExclusionsAttributes.uml
@@ -15,8 +15,22 @@
       <ownedAttribute xmi:type="uml:Property" xmi:id="_BGWLYPk3EeaxQe9AQrYHAg" name="c2" visibility="public" type="_R4WlcPk2EeaxQe9AQrYHAg" redefinedProperty="_bBqTUPk2EeaxQe9AQrYHAg"/>
       <ownedAttribute xmi:type="uml:Property" xmi:id="_dFG8UPk3EeaxQe9AQrYHAg" name="c3" visibility="public" redefinedProperty="_cigbAPk2EeaxQe9AQrYHAg"/>
     </packagedElement>
-    <packagedElement xmi:type="uml:Class" xmi:id="_QnCHgPk2EeaxQe9AQrYHAg" name="C"/>
-    <packagedElement xmi:type="uml:Class" xmi:id="_R4WlcPk2EeaxQe9AQrYHAg" name="D"/>
+    <packagedElement xmi:type="uml:Class" xmi:id="_QnCHgPk2EeaxQe9AQrYHAg" name="C">
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_M2uq0AUMEeeC7eUse1vXQQ" name="a1" visibility="public">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Boolean"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_QtHGgAUMEeeC7eUse1vXQQ" name="a2" visibility="public">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Integer"/>
+      </ownedAttribute>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_SjgAYAUMEeeC7eUse1vXQQ" name="a3" visibility="public">
+        <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#Real"/>
+      </ownedAttribute>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Class" xmi:id="_R4WlcPk2EeaxQe9AQrYHAg" name="D">
+      <generalization xmi:type="uml:Generalization" xmi:id="_LqN0YAUMEeeC7eUse1vXQQ" general="_QnCHgPk2EeaxQe9AQrYHAg"/>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_WBa4wAUMEeeC7eUse1vXQQ" name="a2" visibility="public" redefinedProperty="_QtHGgAUMEeeC7eUse1vXQQ"/>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_ZwUzcAUMEeeC7eUse1vXQQ" name="a3" visibility="public" redefinedProperty="_SjgAYAUMEeeC7eUse1vXQQ"/>
+    </packagedElement>
     <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_4GtMUPk1EeaxQe9AQrYHAg">
       <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4GwPoPk1EeaxQe9AQrYHAg" source="http://www.eclipse.org/uml2/2.0.0/UML">
         <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/umlrt#/"/>
@@ -31,4 +45,6 @@
   <UMLRealTime:RTRedefinedElement xmi:id="_fpHxMPk3EeaxQe9AQrYHAg" base_RedefinableElement="_dFG8UPk3EeaxQe9AQrYHAg"/>
   <UMLRealTime:CapsulePart xmi:id="_IjVE4Pk4EeaxQe9AQrYHAg" base_Property="_IjJesPk4EeaxQe9AQrYHAg"/>
   <UMLRealTime:CapsulePart xmi:id="_JFEgAPk4EeaxQe9AQrYHAg" base_Property="_JFDR4Pk4EeaxQe9AQrYHAg"/>
+  <UMLRealTime:RTRedefinedElement xmi:id="_dvbGQAUMEeeC7eUse1vXQQ" base_RedefinableElement="_WBa4wAUMEeeC7eUse1vXQQ" rootFragment="_QtHGgAUMEeeC7eUse1vXQQ"/>
+  <UMLRealTime:RTRedefinedElement xmi:id="_lm5Y0AUMEeeC7eUse1vXQQ" base_RedefinableElement="_ZwUzcAUMEeeC7eUse1vXQQ"/>
 </xmi:XMI>
diff --git a/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/C.cc b/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/C.cc
index 140ce2d..c861ce8 100644
--- a/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/C.cc
+++ b/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/C.cc
@@ -7,9 +7,33 @@
 
 const UMLRTObject_field C::fields[] = 
 {
+    {
+        "a1",
+        &UMLRTType_bool,
+        offsetof( C, a1 ),
+        1,
+        0
+    },
+    {
+        "a2",
+        &UMLRTType_int,
+        offsetof( C, a2 ),
+        1,
+        0
+    },
+    {
+        "a3",
+        &UMLRTType_double,
+        offsetof( C, a3 ),
+        1,
+        0
+    }
 };
 
 
+
+
+
 const UMLRTObject_class UMLRTType_C = 
 {
     UMLRTObjectInitialize<C>,
@@ -22,7 +46,7 @@
     NULL,
     {
         sizeof( C ),
-        0,
+        3,
         C::fields
     },
     UMLRTOBJECTCLASS_DEFAULT_VERSION,
diff --git a/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/C.hh b/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/C.hh
index 6829884..f7f73e9 100644
--- a/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/C.hh
+++ b/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/C.hh
@@ -7,6 +7,9 @@
 class C
 {
 public:
+    bool a1;
+    int a2;
+    double a3;
     static const UMLRTObject_field fields[];
 };
 extern const UMLRTObject_class UMLRTType_C;
diff --git a/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/CMakeLists.txt b/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/CMakeLists.txt
index 6725497..0ecdccb 100644
--- a/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/CMakeLists.txt
+++ b/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Generated 2017-02-22 17:52:08
+# Generated 2017-03-09 16:21:30
 
 cmake_minimum_required(VERSION 2.8.7)
 set(TARGET TopMain)
diff --git a/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/D.cc b/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/D.cc
index ea545da..28b851c 100644
--- a/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/D.cc
+++ b/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/D.cc
@@ -7,9 +7,25 @@
 
 const UMLRTObject_field D::fields[] = 
 {
+    {
+        "a2",
+        &UMLRTType_int,
+        offsetof( D, a2 ),
+        1,
+        0
+    },
+    {
+        "a1",
+        &UMLRTType_bool,
+        offsetof( D, a1 ),
+        1,
+        0
+    }
 };
 
 
+
+
 const UMLRTObject_class UMLRTType_D = 
 {
     UMLRTObjectInitialize<D>,
@@ -22,7 +38,7 @@
     NULL,
     {
         sizeof( D ),
-        0,
+        2,
         D::fields
     },
     UMLRTOBJECTCLASS_DEFAULT_VERSION,
diff --git a/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/D.hh b/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/D.hh
index 4462386..07830eb 100644
--- a/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/D.hh
+++ b/models/tests/codepattern/structure/ExclusionsAttributes/expected_src/D.hh
@@ -2,11 +2,14 @@
 #ifndef D_HH
 #define D_HH
 
+#include "C.hh"
 #include "umlrtobjectclass.hh"
 
-class D
+class D : public C
 {
 public:
+    int a2;
+    bool a1;
     static const UMLRTObject_field fields[];
 };
 extern const UMLRTObject_class UMLRTType_D;
diff --git a/models/tests/codepattern/structure/ExclusionsConnectors/expected_src/CMakeLists.txt b/models/tests/codepattern/structure/ExclusionsConnectors/expected_src/CMakeLists.txt
index 85aa846..c00fea1 100644
--- a/models/tests/codepattern/structure/ExclusionsConnectors/expected_src/CMakeLists.txt
+++ b/models/tests/codepattern/structure/ExclusionsConnectors/expected_src/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Generated 2017-02-16 14:45:13
+# Generated 2017-03-09 16:27:42
 
 cmake_minimum_required(VERSION 2.8.7)
 set(TARGET TopMain)
diff --git a/models/tests/codepattern/structure/ExclusionsOperations/expected_src/A.cc b/models/tests/codepattern/structure/ExclusionsOperations/expected_src/A.cc
new file mode 100644
index 0000000..2931ce8
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsOperations/expected_src/A.cc
@@ -0,0 +1,76 @@
+
+#include "A.hh"
+
+#include "umlrtslot.hh"
+#include <cstddef>
+#include "umlrtcapsuleclass.hh"
+class UMLRTRtsInterface;
+struct UMLRTCommsPort;
+
+Capsule_A::Capsule_A( const UMLRTCapsuleClass * cd, UMLRTSlot * st, const UMLRTCommsPort * * border, const UMLRTCommsPort * * internal, bool isStat )
+: UMLRTCapsule( NULL, cd, st, border, internal, isStat )
+{
+}
+
+
+void Capsule_A::bindPort( bool isBorder, int portId, int index )
+{
+}
+
+void Capsule_A::unbindPort( bool isBorder, int portId, int index )
+{
+}
+
+C Capsule_A::op1( char * x, D y )
+{
+    /* UMLRTGEN-USERREGION-BEGIN platform:/resource/ExclusionsOperations/ExclusionsOperations.uml ExclusionsOperations::A operation op1 */
+    // op1
+    /* UMLRTGEN-USERREGION-END */
+}
+
+C Capsule_A::op2( char * x, D y )
+{
+    /* UMLRTGEN-USERREGION-BEGIN platform:/resource/ExclusionsOperations/ExclusionsOperations.uml ExclusionsOperations::A operation op2 */
+    /* UMLRTGEN-USERREGION-END */
+}
+
+C Capsule_A::op3( char * x, D y )
+{
+    /* UMLRTGEN-USERREGION-BEGIN platform:/resource/ExclusionsOperations/ExclusionsOperations.uml ExclusionsOperations::A operation op3 */
+    // op3
+    /* UMLRTGEN-USERREGION-END */
+}
+
+C Capsule_A::op4( char * x, D y )
+{
+    /* UMLRTGEN-USERREGION-BEGIN platform:/resource/ExclusionsOperations/ExclusionsOperations.uml ExclusionsOperations::A operation op4 */
+    /* UMLRTGEN-USERREGION-END */
+}
+
+void Capsule_A::initialize( const UMLRTMessage & msg )
+{
+}
+
+void Capsule_A::inject( const UMLRTMessage & msg )
+{
+}
+
+
+static void instantiate_A( const UMLRTRtsInterface * rts, UMLRTSlot * slot, const UMLRTCommsPort * * borderPorts )
+{
+    slot->capsule = new Capsule_A( &A, slot, borderPorts, NULL, false );
+}
+
+const UMLRTCapsuleClass A = 
+{
+    "A",
+    NULL,
+    instantiate_A,
+    0,
+    NULL,
+    0,
+    NULL,
+    0,
+    NULL
+};
+
diff --git a/models/tests/codepattern/structure/ExclusionsOperations/expected_src/A.hh b/models/tests/codepattern/structure/ExclusionsOperations/expected_src/A.hh
new file mode 100644
index 0000000..f22e200
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsOperations/expected_src/A.hh
@@ -0,0 +1,32 @@
+
+#ifndef A_HH
+#define A_HH
+
+#include "C.hh"
+#include "D.hh"
+#include "umlrtcapsule.hh"
+#include "umlrtcapsuleclass.hh"
+#include "umlrtmessage.hh"
+struct UMLRTCommsPort;
+struct UMLRTSlot;
+
+class Capsule_A : public UMLRTCapsule
+{
+public:
+    Capsule_A( const UMLRTCapsuleClass * cd, UMLRTSlot * st, const UMLRTCommsPort * * border, const UMLRTCommsPort * * internal, bool isStat );
+    enum PartId
+    {
+    };
+    virtual void bindPort( bool isBorder, int portId, int index );
+    virtual void unbindPort( bool isBorder, int portId, int index );
+    C op1( char * x, D y );
+    C op2( char * x, D y );
+    C op3( char * x, D y );
+    C op4( char * x, D y );
+    virtual void initialize( const UMLRTMessage & msg );
+    virtual void inject( const UMLRTMessage & msg );
+};
+extern const UMLRTCapsuleClass A;
+
+#endif
+
diff --git a/models/tests/codepattern/structure/ExclusionsOperations/expected_src/B.cc b/models/tests/codepattern/structure/ExclusionsOperations/expected_src/B.cc
new file mode 100644
index 0000000..6bdb5be
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsOperations/expected_src/B.cc
@@ -0,0 +1,70 @@
+
+#include "B.hh"
+
+#include "A.hh"
+#include "umlrtslot.hh"
+#include <cstddef>
+#include "umlrtcapsuleclass.hh"
+class UMLRTRtsInterface;
+struct UMLRTCommsPort;
+
+Capsule_B::Capsule_B( const UMLRTCapsuleClass * cd, UMLRTSlot * st, const UMLRTCommsPort * * border, const UMLRTCommsPort * * internal, bool isStat )
+: Capsule_A( cd, st, border, internal, isStat )
+{
+}
+
+
+void Capsule_B::bindPort( bool isBorder, int portId, int index )
+{
+}
+
+void Capsule_B::unbindPort( bool isBorder, int portId, int index )
+{
+}
+
+D Capsule_B::op2( char * x, C y )
+{
+    /* UMLRTGEN-USERREGION-BEGIN platform:/resource/ExclusionsOperations/ExclusionsOperations.uml ExclusionsOperations::B operation op2 */
+    // op2
+    /* UMLRTGEN-USERREGION-END */
+}
+
+C Capsule_B::op3( char * x, D y )
+{
+    /* UMLRTGEN-USERREGION-BEGIN platform:/resource/ExclusionsOperations/ExclusionsOperations.uml ExclusionsOperations::B operation op3 */
+    // rop3/* UMLRTGEN-USERREGION-END */
+}
+
+C Capsule_B::op4( char * x, D y )
+{
+    /* UMLRTGEN-USERREGION-BEGIN platform:/resource/ExclusionsOperations/ExclusionsOperations.uml ExclusionsOperations::B operation op4 */
+    // op4/* UMLRTGEN-USERREGION-END */
+}
+
+void Capsule_B::initialize( const UMLRTMessage & msg )
+{
+}
+
+void Capsule_B::inject( const UMLRTMessage & msg )
+{
+}
+
+
+static void instantiate_B( const UMLRTRtsInterface * rts, UMLRTSlot * slot, const UMLRTCommsPort * * borderPorts )
+{
+    slot->capsule = new Capsule_B( &B, slot, borderPorts, NULL, false );
+}
+
+const UMLRTCapsuleClass B = 
+{
+    "B",
+    &A,
+    instantiate_B,
+    0,
+    NULL,
+    0,
+    NULL,
+    0,
+    NULL
+};
+
diff --git a/models/tests/codepattern/structure/ExclusionsOperations/expected_src/B.hh b/models/tests/codepattern/structure/ExclusionsOperations/expected_src/B.hh
new file mode 100644
index 0000000..3349293
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsOperations/expected_src/B.hh
@@ -0,0 +1,31 @@
+
+#ifndef B_HH
+#define B_HH
+
+#include "A.hh"
+#include "C.hh"
+#include "D.hh"
+#include "umlrtcapsuleclass.hh"
+#include "umlrtmessage.hh"
+struct UMLRTCommsPort;
+struct UMLRTSlot;
+
+class Capsule_B : public Capsule_A
+{
+public:
+    Capsule_B( const UMLRTCapsuleClass * cd, UMLRTSlot * st, const UMLRTCommsPort * * border, const UMLRTCommsPort * * internal, bool isStat );
+    enum PartId
+    {
+    };
+    virtual void bindPort( bool isBorder, int portId, int index );
+    virtual void unbindPort( bool isBorder, int portId, int index );
+    D op2( char * x, C y );
+    C op3( char * x, D y );
+    C op4( char * x, D y );
+    virtual void initialize( const UMLRTMessage & msg );
+    virtual void inject( const UMLRTMessage & msg );
+};
+extern const UMLRTCapsuleClass B;
+
+#endif
+
diff --git a/models/tests/codepattern/structure/ExclusionsOperations/expected_src/C.cc b/models/tests/codepattern/structure/ExclusionsOperations/expected_src/C.cc
new file mode 100644
index 0000000..140ce2d
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsOperations/expected_src/C.cc
@@ -0,0 +1,31 @@
+
+#include "C.hh"
+
+#include "umlrtobjectclass.hh"
+#include "umlrtobjectclassgeneric.hh"
+#include <cstddef>
+
+const UMLRTObject_field C::fields[] = 
+{
+};
+
+
+const UMLRTObject_class UMLRTType_C = 
+{
+    UMLRTObjectInitialize<C>,
+    UMLRTObjectCopy<C>,
+    UMLRTObject_decode,
+    UMLRTObject_encode,
+    UMLRTObjectDestroy<C>,
+    UMLRTObject_fprintf,
+    "C",
+    NULL,
+    {
+        sizeof( C ),
+        0,
+        C::fields
+    },
+    UMLRTOBJECTCLASS_DEFAULT_VERSION,
+    UMLRTOBJECTCLASS_DEFAULT_BACKWARDS
+};
+
diff --git a/models/tests/codepattern/structure/ExclusionsOperations/expected_src/C.hh b/models/tests/codepattern/structure/ExclusionsOperations/expected_src/C.hh
new file mode 100644
index 0000000..6829884
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsOperations/expected_src/C.hh
@@ -0,0 +1,15 @@
+
+#ifndef C_HH
+#define C_HH
+
+#include "umlrtobjectclass.hh"
+
+class C
+{
+public:
+    static const UMLRTObject_field fields[];
+};
+extern const UMLRTObject_class UMLRTType_C;
+
+#endif
+
diff --git a/models/tests/codepattern/structure/ExclusionsOperations/expected_src/CMakeLists.txt b/models/tests/codepattern/structure/ExclusionsOperations/expected_src/CMakeLists.txt
new file mode 100644
index 0000000..4544ab3
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsOperations/expected_src/CMakeLists.txt
@@ -0,0 +1,36 @@
+# Generated 2017-03-09 16:31:15
+
+cmake_minimum_required(VERSION 2.8.7)
+set(TARGET TopMain)
+project(${TARGET})
+
+# require location of supporting RTS
+if (NOT UMLRTS_ROOT)
+  if (DEFINED ENV{UMLRTS_ROOT})
+    set(UMLRTS_ROOT $ENV{UMLRTS_ROOT})
+  else ()
+    set(UMLRTS_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/umlrt.rts)
+  endif ()
+endif ()
+
+# setup primary envars - provides tooling config
+include(${UMLRTS_ROOT}/build/buildenv.cmake)
+
+# model sources
+set(SRCS TopMain.cc C.cc D.cc A.cc B.cc Top.cc TopControllers.cc )
+
+# specify target
+add_executable(${TARGET} ${SRCS})
+
+# setup lib dependency support after defining TARGET
+include(${UMLRTS_ROOT}/build/rtslib.cmake)
+
+# compiler parameters
+set_target_properties(${TARGET} PROPERTIES COMPILE_OPTIONS "${COPTS}")
+set_target_properties(${TARGET} PROPERTIES COMPILE_DEFINITIONS "${CDEFS}")
+include_directories(${INCS})
+
+# linker parameters
+set_target_properties(${TARGET} PROPERTIES CMAKE_EXE_LINKER_FLAGS "${LOPTS}")
+target_link_libraries(${TARGET} ${LIBS})
+
diff --git a/models/tests/codepattern/structure/ExclusionsOperations/expected_src/D.cc b/models/tests/codepattern/structure/ExclusionsOperations/expected_src/D.cc
new file mode 100644
index 0000000..ea545da
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsOperations/expected_src/D.cc
@@ -0,0 +1,31 @@
+
+#include "D.hh"
+
+#include "umlrtobjectclass.hh"
+#include "umlrtobjectclassgeneric.hh"
+#include <cstddef>
+
+const UMLRTObject_field D::fields[] = 
+{
+};
+
+
+const UMLRTObject_class UMLRTType_D = 
+{
+    UMLRTObjectInitialize<D>,
+    UMLRTObjectCopy<D>,
+    UMLRTObject_decode,
+    UMLRTObject_encode,
+    UMLRTObjectDestroy<D>,
+    UMLRTObject_fprintf,
+    "D",
+    NULL,
+    {
+        sizeof( D ),
+        0,
+        D::fields
+    },
+    UMLRTOBJECTCLASS_DEFAULT_VERSION,
+    UMLRTOBJECTCLASS_DEFAULT_BACKWARDS
+};
+
diff --git a/models/tests/codepattern/structure/ExclusionsOperations/expected_src/D.hh b/models/tests/codepattern/structure/ExclusionsOperations/expected_src/D.hh
new file mode 100644
index 0000000..d271a92
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsOperations/expected_src/D.hh
@@ -0,0 +1,16 @@
+
+#ifndef D_HH
+#define D_HH
+
+#include "C.hh"
+#include "umlrtobjectclass.hh"
+
+class D : public C
+{
+public:
+    static const UMLRTObject_field fields[];
+};
+extern const UMLRTObject_class UMLRTType_D;
+
+#endif
+
diff --git a/models/tests/codepattern/structure/ExclusionsOperations/expected_src/Makefile b/models/tests/codepattern/structure/ExclusionsOperations/expected_src/Makefile
new file mode 100644
index 0000000..0bcbd22
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsOperations/expected_src/Makefile
@@ -0,0 +1,11 @@
+##################################################
+# Default makefile
+# Redirect make to target makefile
+##################################################
+
+all:
+	make -f MakefileTop.mk all
+clean:
+	make -f MakefileTop.mk clean
+.PHONY: 
+	make -f MakefileTop.mk all clean
diff --git a/models/tests/codepattern/structure/ExclusionsOperations/expected_src/MakefileTop.mk b/models/tests/codepattern/structure/ExclusionsOperations/expected_src/MakefileTop.mk
new file mode 100644
index 0000000..a92bc1f
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsOperations/expected_src/MakefileTop.mk
@@ -0,0 +1,49 @@
+# set default value for TARGETOS if is it not defined
+ifeq ($(TARGETOS), )
+$(warning warning: TARGETOS not defined. Choosing linux)
+TARGETOS=linux
+endif
+
+# set default value for BUILDTOOLS if is it not defined
+ifeq ($(BUILDTOOLS), )
+$(warning warning: BUILDTOOLS not defined. Choosing x86-gcc-4.6.3)
+BUILDTOOLS=x86-gcc-4.6.3
+endif
+
+# Location of RTS root.
+UMLRTS_ROOT ?= ./umlrt.rts
+
+CONFIG=$(TARGETOS).$(BUILDTOOLS)
+
+# Destination directory for the RTS services library.
+LIBDEST=$(UMLRTS_ROOT)/lib/$(CONFIG)
+
+include $(UMLRTS_ROOT)/build/host/host.mk
+include $(UMLRTS_ROOT)/build/buildtools/$(BUILDTOOLS)/buildtools.mk
+
+LD_PATHS=$(LIBDEST)
+CC_INCLUDES+=$(UMLRTS_ROOT)/include
+
+CC_DEFINES:=$(foreach d, $(CC_DEFINES), $(CC_DEF)$d)
+CC_INCLUDES:=$(foreach i, $(CC_INCLUDES), $(CC_INC)$i)
+LD_LIBS:=$(foreach i, $(LD_LIBS), $(LD_LIB)$i)
+LD_PATHS:=$(foreach i, $(LD_PATHS), $(LD_LIBPATH)$i)
+
+SRCS = TopMain.cc C.cc D.cc A.cc B.cc Top.cc TopControllers.cc 
+OBJS = $(subst $(CC_EXT),$(OBJ_EXT),$(SRCS))
+
+MAIN = TopMain$(EXE_EXT)
+
+all: $(MAIN)
+
+$(MAIN): $(OBJS) $(UMLRTS_ROOT)/lib/$(CONFIG)/$(LIB_PRFX)rts$(LIB_EXT)
+	$(LD) $(LD_FLAGS) $(OBJS) $(LD_PATHS) $(LD_LIBS) $(LD_OUT)$@
+
+%$(OBJ_EXT) : %$(CC_EXT)
+	$(CC) $< $(CC_FLAGS) $(CC_DEFINES) $(CC_INCLUDES) $(CC_OUT)$@
+
+clean :
+	@echo $(RM) main$(EXE_EXT) *$(OBJ_EXT) *$(DEP_EXT) $(DBG_FILES)
+	@$(RM) main$(EXE_EXT) *$(OBJ_EXT) *$(DEP_EXT) $(DBG_FILES)
+
+.PHONY: all clean
diff --git a/models/tests/codepattern/structure/ExclusionsOperations/expected_src/Top-connections.log b/models/tests/codepattern/structure/ExclusionsOperations/expected_src/Top-connections.log
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsOperations/expected_src/Top-connections.log
diff --git a/models/tests/codepattern/structure/ExclusionsOperations/expected_src/Top.cc b/models/tests/codepattern/structure/ExclusionsOperations/expected_src/Top.cc
new file mode 100644
index 0000000..ce5dcb2
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsOperations/expected_src/Top.cc
@@ -0,0 +1,81 @@
+
+#include "Top.hh"
+
+#include "A.hh"
+#include "B.hh"
+#include "umlrtcapsuleclass.hh"
+#include "umlrtcapsulepart.hh"
+#include "umlrtslot.hh"
+#include <cstddef>
+#include "umlrtcapsulerole.hh"
+#include "umlrtframeservice.hh"
+class UMLRTRtsInterface;
+struct UMLRTCommsPort;
+
+Capsule_Top::Capsule_Top( const UMLRTCapsuleClass * cd, UMLRTSlot * st, const UMLRTCommsPort * * border, const UMLRTCommsPort * * internal, bool isStat )
+: UMLRTCapsule( NULL, cd, st, border, internal, isStat )
+, a( &slot->parts[part_a] )
+, b( &slot->parts[part_b] )
+{
+}
+
+
+
+
+void Capsule_Top::bindPort( bool isBorder, int portId, int index )
+{
+}
+
+void Capsule_Top::unbindPort( bool isBorder, int portId, int index )
+{
+}
+
+void Capsule_Top::initialize( const UMLRTMessage & msg )
+{
+}
+
+void Capsule_Top::inject( const UMLRTMessage & msg )
+{
+}
+
+
+static const UMLRTCapsuleRole roles[] = 
+{
+    {
+        "a",
+        &A,
+        1,
+        1,
+        false,
+        false
+    },
+    {
+        "b",
+        &B,
+        1,
+        1,
+        false,
+        false
+    }
+};
+
+static void instantiate_Top( const UMLRTRtsInterface * rts, UMLRTSlot * slot, const UMLRTCommsPort * * borderPorts )
+{
+    A.instantiate( NULL, slot->parts[Capsule_Top::part_a].slots[0], UMLRTFrameService::createBorderPorts( slot->parts[Capsule_Top::part_a].slots[0], A.numPortRolesBorder ) );
+    B.instantiate( NULL, slot->parts[Capsule_Top::part_b].slots[0], UMLRTFrameService::createBorderPorts( slot->parts[Capsule_Top::part_b].slots[0], B.numPortRolesBorder ) );
+    slot->capsule = new Capsule_Top( &Top, slot, borderPorts, NULL, false );
+}
+
+const UMLRTCapsuleClass Top = 
+{
+    "Top",
+    NULL,
+    instantiate_Top,
+    2,
+    roles,
+    0,
+    NULL,
+    0,
+    NULL
+};
+
diff --git a/models/tests/codepattern/structure/ExclusionsOperations/expected_src/Top.hh b/models/tests/codepattern/structure/ExclusionsOperations/expected_src/Top.hh
new file mode 100644
index 0000000..2c5910f
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsOperations/expected_src/Top.hh
@@ -0,0 +1,33 @@
+
+#ifndef TOP_HH
+#define TOP_HH
+
+#include "umlrtcapsule.hh"
+#include "umlrtcapsuleclass.hh"
+#include "umlrtmessage.hh"
+struct UMLRTCapsulePart;
+struct UMLRTCommsPort;
+struct UMLRTSlot;
+
+class Capsule_Top : public UMLRTCapsule
+{
+public:
+    Capsule_Top( const UMLRTCapsuleClass * cd, UMLRTSlot * st, const UMLRTCommsPort * * border, const UMLRTCommsPort * * internal, bool isStat );
+    enum PartId
+    {
+        part_a,
+        part_b
+    };
+protected:
+    const UMLRTCapsulePart * const a;
+    const UMLRTCapsulePart * const b;
+public:
+    virtual void bindPort( bool isBorder, int portId, int index );
+    virtual void unbindPort( bool isBorder, int portId, int index );
+    virtual void initialize( const UMLRTMessage & msg );
+    virtual void inject( const UMLRTMessage & msg );
+};
+extern const UMLRTCapsuleClass Top;
+
+#endif
+
diff --git a/models/tests/codepattern/structure/ExclusionsOperations/expected_src/TopControllers.cc b/models/tests/codepattern/structure/ExclusionsOperations/expected_src/TopControllers.cc
new file mode 100644
index 0000000..942d143
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsOperations/expected_src/TopControllers.cc
@@ -0,0 +1,97 @@
+
+#include "TopControllers.hh"
+
+#include "A.hh"
+#include "B.hh"
+#include "Top.hh"
+#include "umlrtcapsuleclass.hh"
+#include "umlrtcapsulepart.hh"
+#include "umlrtcontroller.hh"
+#include "umlrtslot.hh"
+#include <cstddef>
+
+
+static UMLRTController DefaultController_( "DefaultController" );
+
+UMLRTController * DefaultController = &DefaultController_;
+
+static Capsule_Top top( &Top, &Top_slots[InstId_Top], NULL, NULL, true );
+
+static UMLRTSlot * slots_Top[] = 
+{
+    &Top_slots[InstId_Top_a],
+    &Top_slots[InstId_Top_b]
+};
+
+static UMLRTCapsulePart parts_Top[] = 
+{
+    {
+        &Top,
+        Capsule_Top::part_a,
+        1,
+        &slots_Top[0]
+    },
+    {
+        &Top,
+        Capsule_Top::part_b,
+        1,
+        &slots_Top[1]
+    }
+};
+
+static Capsule_A top_a( &A, &Top_slots[InstId_Top_a], NULL, NULL, true );
+
+static Capsule_B top_b( &B, &Top_slots[InstId_Top_b], NULL, NULL, true );
+
+UMLRTSlot Top_slots[] = 
+{
+    {
+        "Top",
+        0,
+        &Top,
+        NULL,
+        0,
+        &top,
+        &DefaultController_,
+        2,
+        parts_Top,
+        0,
+        NULL,
+        NULL,
+        true,
+        false
+    },
+    {
+        "Top.a",
+        0,
+        &A,
+        &Top,
+        Capsule_Top::part_a,
+        &top_a,
+        &DefaultController_,
+        0,
+        NULL,
+        0,
+        NULL,
+        NULL,
+        true,
+        false
+    },
+    {
+        "Top.b",
+        0,
+        &B,
+        &Top,
+        Capsule_Top::part_b,
+        &top_b,
+        &DefaultController_,
+        0,
+        NULL,
+        0,
+        NULL,
+        NULL,
+        true,
+        false
+    }
+};
+
diff --git a/models/tests/codepattern/structure/ExclusionsOperations/expected_src/TopControllers.hh b/models/tests/codepattern/structure/ExclusionsOperations/expected_src/TopControllers.hh
new file mode 100644
index 0000000..b89ad3c
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsOperations/expected_src/TopControllers.hh
@@ -0,0 +1,18 @@
+
+#ifndef TOPCONTROLLERS_HH
+#define TOPCONTROLLERS_HH
+
+class UMLRTController;
+struct UMLRTSlot;
+
+enum CapsuleInstanceId
+{
+    InstId_Top,
+    InstId_Top_a,
+    InstId_Top_b
+};
+extern UMLRTController * DefaultController;
+extern UMLRTSlot Top_slots[];
+
+#endif
+
diff --git a/models/tests/codepattern/structure/ExclusionsOperations/expected_src/TopMain.cc b/models/tests/codepattern/structure/ExclusionsOperations/expected_src/TopMain.cc
new file mode 100644
index 0000000..79261c7
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsOperations/expected_src/TopMain.cc
@@ -0,0 +1,38 @@
+#include "umlrtmain.hh"
+
+#include "umlrtcontroller.hh"
+#include "TopControllers.hh"
+#include "umlrtcapsuletocontrollermap.hh"
+#include "umlrtmessagepool.hh"
+#include "umlrtsignalelementpool.hh"
+#include "umlrttimerpool.hh"
+#include "umlrtuserconfig.hh"
+#include <stdio.h>
+
+static UMLRTSignalElement signalElementBuffer[USER_CONFIG_SIGNAL_ELEMENT_POOL_SIZE];
+static UMLRTSignalElementPool signalElementPool( signalElementBuffer, USER_CONFIG_SIGNAL_ELEMENT_POOL_SIZE );
+
+static UMLRTMessage messageBuffer[USER_CONFIG_MESSAGE_POOL_SIZE];
+static UMLRTMessagePool messagePool( messageBuffer, USER_CONFIG_MESSAGE_POOL_SIZE );
+
+static UMLRTTimer timers[USER_CONFIG_TIMER_POOL_SIZE];
+static UMLRTTimerPool timerPool( timers, USER_CONFIG_TIMER_POOL_SIZE );
+
+int main( int argc, char * argv[] )
+{
+    UMLRTController::initializePools( &signalElementPool, &messagePool, &timerPool );
+    UMLRTMain::setArgs( argc, argv );
+    UMLRTCapsuleToControllerMap::setDefaultSlotList( Top_slots, 3 );
+
+    if( ! UMLRTMain::targetStartup() )
+        return EXIT_FAILURE;
+
+    DefaultController->spawn();
+
+    if( ! UMLRTMain::mainLoop() )
+        return UMLRTMain::targetShutdown( false );
+
+    DefaultController->join();
+
+    return UMLRTMain::targetShutdown( true );
+}
diff --git a/models/tests/codepattern/structure/ExclusionsParts/expected_src/B.cc b/models/tests/codepattern/structure/ExclusionsParts/expected_src/B.cc
index 23534d0..f8c47c5 100644
--- a/models/tests/codepattern/structure/ExclusionsParts/expected_src/B.cc
+++ b/models/tests/codepattern/structure/ExclusionsParts/expected_src/B.cc
@@ -15,8 +15,8 @@
 
 Capsule_B::Capsule_B( const UMLRTCapsuleClass * cd, UMLRTSlot * st, const UMLRTCommsPort * * border, const UMLRTCommsPort * * internal, bool isStat )
 : Capsule_A( cd, st, border, internal, isStat )
-, c2( &slot->parts[part_c2] )
 , c1( &slot->parts[part_c1] )
+, c2( &slot->parts[part_c2] )
 {
 }
 
diff --git a/models/tests/codepattern/structure/ExclusionsParts/expected_src/B.hh b/models/tests/codepattern/structure/ExclusionsParts/expected_src/B.hh
index 3308b6b..ab523fa 100644
--- a/models/tests/codepattern/structure/ExclusionsParts/expected_src/B.hh
+++ b/models/tests/codepattern/structure/ExclusionsParts/expected_src/B.hh
@@ -20,8 +20,8 @@
         part_c3
     };
 protected:
-    const UMLRTCapsulePart * const c2;
     const UMLRTCapsulePart * const c1;
+    const UMLRTCapsulePart * const c2;
 public:
     virtual void bindPort( bool isBorder, int portId, int index );
     virtual void unbindPort( bool isBorder, int portId, int index );
diff --git a/models/tests/codepattern/structure/ExclusionsParts/expected_src/CMakeLists.txt b/models/tests/codepattern/structure/ExclusionsParts/expected_src/CMakeLists.txt
index 0148ec5..7371efd 100644
--- a/models/tests/codepattern/structure/ExclusionsParts/expected_src/CMakeLists.txt
+++ b/models/tests/codepattern/structure/ExclusionsParts/expected_src/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Generated 2017-02-16 14:48:30
+# Generated 2017-03-09 16:23:10
 
 cmake_minimum_required(VERSION 2.8.7)
 set(TARGET TopMain)
diff --git a/models/tests/codepattern/structure/ExclusionsParts/expected_src/TopControllers.cc b/models/tests/codepattern/structure/ExclusionsParts/expected_src/TopControllers.cc
index 8f7d96d..96e8491 100644
--- a/models/tests/codepattern/structure/ExclusionsParts/expected_src/TopControllers.cc
+++ b/models/tests/codepattern/structure/ExclusionsParts/expected_src/TopControllers.cc
@@ -82,21 +82,21 @@
 
 static UMLRTSlot * slots_Top_b[] = 
 {
-    &Top_slots[InstId_Top_b_c2],
-    &Top_slots[InstId_Top_b_c1]
+    &Top_slots[InstId_Top_b_c1],
+    &Top_slots[InstId_Top_b_c2]
 };
 
 static UMLRTCapsulePart parts_Top_b[] = 
 {
     {
         &B,
-        Capsule_B::part_c2,
+        Capsule_B::part_c1,
         1,
         &slots_Top_b[0]
     },
     {
         &B,
-        Capsule_B::part_c1,
+        Capsule_B::part_c2,
         1,
         &slots_Top_b[1]
     }
diff --git a/models/tests/codepattern/structure/ExclusionsPorts/expected_src/B.cc b/models/tests/codepattern/structure/ExclusionsPorts/expected_src/B.cc
index a325762..8c91549 100644
--- a/models/tests/codepattern/structure/ExclusionsPorts/expected_src/B.cc
+++ b/models/tests/codepattern/structure/ExclusionsPorts/expected_src/B.cc
@@ -12,8 +12,8 @@
 
 Capsule_B::Capsule_B( const UMLRTCapsuleClass * cd, UMLRTSlot * st, const UMLRTCommsPort * * border, const UMLRTCommsPort * * internal, bool isStat )
 : Capsule_A( cd, st, border, internal, isStat )
-, q( borderPorts[borderport_q] )
 , p( borderPorts[borderport_p] )
+, q( borderPorts[borderport_q] )
 {
 }
 
@@ -27,12 +27,12 @@
     if( isBorder )
         switch( portId )
         {
-        case borderport_q:
-            UMLRTFrameService::sendBoundUnbound( borderPorts, borderport_q, index, true );
-            break;
         case borderport_p:
             UMLRTFrameService::sendBoundUnbound( borderPorts, borderport_p, index, true );
             break;
+        case borderport_q:
+            UMLRTFrameService::sendBoundUnbound( borderPorts, borderport_q, index, true );
+            break;
         }
 }
 
@@ -41,14 +41,14 @@
     if( isBorder )
         switch( portId )
         {
-        case borderport_q:
-            UMLRTFrameService::sendBoundUnbound( borderPorts, borderport_q, index, false );
-            UMLRTFrameService::disconnectPort( borderPorts[borderport_q], index );
-            break;
         case borderport_p:
             UMLRTFrameService::sendBoundUnbound( borderPorts, borderport_p, index, false );
             UMLRTFrameService::disconnectPort( borderPorts[borderport_p], index );
             break;
+        case borderport_q:
+            UMLRTFrameService::sendBoundUnbound( borderPorts, borderport_q, index, false );
+            UMLRTFrameService::disconnectPort( borderPorts[borderport_q], index );
+            break;
         }
 }
 
@@ -64,20 +64,6 @@
 static const UMLRTCommsPortRole portroles_border[] = 
 {
     {
-        Capsule_B::port_q,
-        "Protocol1",
-        "q",
-        "",
-        1,
-        true,
-        false,
-        false,
-        true,
-        false,
-        false,
-        true
-    },
-    {
         Capsule_B::port_p,
         "Protocol1",
         "p",
@@ -90,6 +76,20 @@
         false,
         false,
         true
+    },
+    {
+        Capsule_B::port_q,
+        "Protocol1",
+        "q",
+        "",
+        1,
+        true,
+        false,
+        false,
+        true,
+        false,
+        false,
+        true
     }
 };
 
diff --git a/models/tests/codepattern/structure/ExclusionsPorts/expected_src/B.hh b/models/tests/codepattern/structure/ExclusionsPorts/expected_src/B.hh
index c056d04..036add5 100644
--- a/models/tests/codepattern/structure/ExclusionsPorts/expected_src/B.hh
+++ b/models/tests/codepattern/structure/ExclusionsPorts/expected_src/B.hh
@@ -14,15 +14,15 @@
 public:
     Capsule_B( const UMLRTCapsuleClass * cd, UMLRTSlot * st, const UMLRTCommsPort * * border, const UMLRTCommsPort * * internal, bool isStat );
 protected:
-    Protocol1::Base q;
+    Protocol1::Base p;
 public:
     enum BorderPortId
     {
-        borderport_q,
-        borderport_p
+        borderport_p,
+        borderport_q
     };
 protected:
-    Protocol1::Base p;
+    Protocol1::Base q;
 public:
     enum PartId
     {
diff --git a/models/tests/codepattern/structure/ExclusionsPorts/expected_src/CMakeLists.txt b/models/tests/codepattern/structure/ExclusionsPorts/expected_src/CMakeLists.txt
index d45117a..c134127 100644
--- a/models/tests/codepattern/structure/ExclusionsPorts/expected_src/CMakeLists.txt
+++ b/models/tests/codepattern/structure/ExclusionsPorts/expected_src/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Generated 2017-02-16 14:52:46
+# Generated 2017-03-09 16:25:06
 
 cmake_minimum_required(VERSION 2.8.7)
 set(TARGET TopMain)
diff --git a/models/tests/codepattern/structure/ExclusionsPorts/expected_src/TopControllers.cc b/models/tests/codepattern/structure/ExclusionsPorts/expected_src/TopControllers.cc
index b1d7d1b..9d2a95f 100644
--- a/models/tests/codepattern/structure/ExclusionsPorts/expected_src/TopControllers.cc
+++ b/models/tests/codepattern/structure/ExclusionsPorts/expected_src/TopControllers.cc
@@ -149,7 +149,7 @@
 {
     {
         &B,
-        Capsule_B::borderport_q,
+        Capsule_B::borderport_p,
         &Top_slots[InstId_Top_b],
         1,
         borderfarEndList_Top_b,
@@ -160,7 +160,7 @@
         true,
         true,
         false,
-        true,
+        false,
         false,
         false,
         false,
@@ -170,7 +170,7 @@
     },
     {
         &B,
-        Capsule_B::borderport_p,
+        Capsule_B::borderport_q,
         &Top_slots[InstId_Top_b],
         1,
         &borderfarEndList_Top_b[1],
@@ -181,7 +181,7 @@
         true,
         true,
         false,
-        false,
+        true,
         false,
         false,
         false,
diff --git a/models/tests/codepattern/structure/ExclusionsProtocolMessages/expected_src/CMakeLists.txt b/models/tests/codepattern/structure/ExclusionsProtocolMessages/expected_src/CMakeLists.txt
index 1be48ae..ca482d1 100644
--- a/models/tests/codepattern/structure/ExclusionsProtocolMessages/expected_src/CMakeLists.txt
+++ b/models/tests/codepattern/structure/ExclusionsProtocolMessages/expected_src/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Generated 2017-02-27 14:22:22
+# Generated 2017-03-09 16:29:09
 
 cmake_minimum_required(VERSION 2.8.7)
 set(TARGET TopMain)
diff --git a/models/tests/codepattern/structure/ExclusionsTransitions/.project b/models/tests/codepattern/structure/ExclusionsTransitions/.project
new file mode 100644
index 0000000..80e16a3
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsTransitions/.project
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>ExclusionsTransitions</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+	</buildSpec>
+	<natures>
+	</natures>
+</projectDescription>
diff --git a/models/tests/codepattern/structure/ExclusionsTransitions/ExclusionsTransitions.di b/models/tests/codepattern/structure/ExclusionsTransitions/ExclusionsTransitions.di
new file mode 100644
index 0000000..bf9abab
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsTransitions/ExclusionsTransitions.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
diff --git a/models/tests/codepattern/structure/ExclusionsTransitions/ExclusionsTransitions.notation b/models/tests/codepattern/structure/ExclusionsTransitions/ExclusionsTransitions.notation
new file mode 100644
index 0000000..345908d
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsTransitions/ExclusionsTransitions.notation
@@ -0,0 +1,1145 @@
+<?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:configuration="http://www.eclipse.org/papyrus/infra/viewpoints/configuration" 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">
+  <notation:Diagram xmi:id="_-9JYIP31Eeaho99HbWPUFw" type="CompositeStructure" measurementUnit="Pixel">
+    <children xmi:type="notation:Shape" xmi:id="_-9nSMP31Eeaho99HbWPUFw" type="Class_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_-9pHYP31Eeaho99HbWPUFw" type="Class_NameLabel"/>
+      <children xmi:type="notation:DecorationNode" xmi:id="_-9pucP31Eeaho99HbWPUFw" type="Class_FloatingNameLabel">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_-9pucf31Eeaho99HbWPUFw" y="5"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_-9pucv31Eeaho99HbWPUFw" type="Class_StructureCompartment">
+        <children xmi:type="notation:Shape" xmi:id="_UBZOAP32Eeaho99HbWPUFw" type="Property_Shape">
+          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UKv-UP32Eeaho99HbWPUFw" source="PapyrusCSSForceValue">
+            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UKwlYP32Eeaho99HbWPUFw" key="mutable" value="true"/>
+          </eAnnotations>
+          <children xmi:type="notation:DecorationNode" xmi:id="_UBZ1EP32Eeaho99HbWPUFw" type="Property_NameLabel"/>
+          <children xmi:type="notation:DecorationNode" xmi:id="_UBZ1Ef32Eeaho99HbWPUFw" type="Property_FloatingNameLabel">
+            <layoutConstraint xmi:type="notation:Location" xmi:id="_UBacIP32Eeaho99HbWPUFw" y="5"/>
+          </children>
+          <children xmi:type="notation:BasicCompartment" xmi:id="_UBacIf32Eeaho99HbWPUFw" type="Property_StructureCompartment">
+            <styles xmi:type="notation:TitleStyle" xmi:id="_UBacIv32Eeaho99HbWPUFw"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UBacI_32Eeaho99HbWPUFw"/>
+          </children>
+          <children xmi:type="notation:DecorationNode" xmi:id="_UC64AP32Eeaho99HbWPUFw" type="StereotypeLabel">
+            <styles xmi:type="notation:StringValueStyle" xmi:id="_UC64Af32Eeaho99HbWPUFw" name="stereotype" stringValue="UMLRealTime::CapsulePart"/>
+            <element xmi:type="uml:Stereotype" href="pathmap://UML_RT_PROFILE/uml-rt.profile.uml#_EQwT4EhOEeO0lv5O1DTHOQ"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UC64Av32Eeaho99HbWPUFw"/>
+          </children>
+          <children xmi:type="notation:BasicCompartment" xmi:id="_UC7fEP32Eeaho99HbWPUFw" type="StereotypeBrace">
+            <styles xmi:type="notation:TitleStyle" xmi:id="_UC7fEf32Eeaho99HbWPUFw"/>
+            <styles xmi:type="notation:StringValueStyle" xmi:id="_UC7fEv32Eeaho99HbWPUFw" name="stereotype" stringValue="UMLRealTime::CapsulePart"/>
+            <element xmi:type="uml:Stereotype" href="pathmap://UML_RT_PROFILE/uml-rt.profile.uml#_EQwT4EhOEeO0lv5O1DTHOQ"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UC7fE_32Eeaho99HbWPUFw"/>
+          </children>
+          <children xmi:type="notation:BasicCompartment" xmi:id="_UDA-oP32Eeaho99HbWPUFw" type="compartment_shape_display">
+            <styles xmi:type="notation:TitleStyle" xmi:id="_UDA-of32Eeaho99HbWPUFw"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UDA-ov32Eeaho99HbWPUFw"/>
+          </children>
+          <children xmi:type="notation:BasicCompartment" xmi:id="_UDCz0P32Eeaho99HbWPUFw" type="StereotypeCompartment">
+            <styles xmi:type="notation:TitleStyle" xmi:id="_UDCz0f32Eeaho99HbWPUFw"/>
+            <styles xmi:type="notation:StringValueStyle" xmi:id="_UDCz0v32Eeaho99HbWPUFw" name="stereotype" stringValue="UMLRealTime::CapsulePart"/>
+            <element xmi:type="uml:Stereotype" href="pathmap://UML_RT_PROFILE/uml-rt.profile.uml#_EQwT4EhOEeO0lv5O1DTHOQ"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UDCz0_32Eeaho99HbWPUFw"/>
+          </children>
+          <children xmi:type="notation:Shape" xmi:id="_UDb1YP32Eeaho99HbWPUFw" type="Port_Shape">
+            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UKwlYf32Eeaho99HbWPUFw" source="PapyrusCSSForceValue">
+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UKwlYv32Eeaho99HbWPUFw" key="mutable" value="true"/>
+            </eAnnotations>
+            <children xmi:type="notation:DecorationNode" xmi:id="_UDb1Yv32Eeaho99HbWPUFw" type="Port_NameLabel">
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_UDb1Y_32Eeaho99HbWPUFw" x="-12" y="11"/>
+            </children>
+            <children xmi:type="notation:DecorationNode" xmi:id="_UDb1ZP32Eeaho99HbWPUFw" type="Port_StereotypeLabel">
+              <layoutConstraint xmi:type="notation:Location" xmi:id="_UDb1Zf32Eeaho99HbWPUFw" y="22"/>
+            </children>
+            <element xmi:type="uml:Port" href="ExclusionsTransitions.uml#_FpsvsP32Eeaho99HbWPUFw"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UDb1Yf32Eeaho99HbWPUFw" x="-5" y="18" width="11" height="11"/>
+          </children>
+          <element xmi:type="uml:Property" href="ExclusionsTransitions.uml#_T9V0cP32Eeaho99HbWPUFw"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UBZOAf32Eeaho99HbWPUFw" x="133" y="55" width="45" height="48"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_UBy2oP32Eeaho99HbWPUFw" type="Property_Shape">
+          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UK020P32Eeaho99HbWPUFw" source="PapyrusCSSForceValue">
+            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UK020f32Eeaho99HbWPUFw" key="mutable" value="true"/>
+          </eAnnotations>
+          <children xmi:type="notation:DecorationNode" xmi:id="_UBzdsP32Eeaho99HbWPUFw" type="Property_NameLabel"/>
+          <children xmi:type="notation:DecorationNode" xmi:id="_UBzdsf32Eeaho99HbWPUFw" type="Property_FloatingNameLabel">
+            <layoutConstraint xmi:type="notation:Location" xmi:id="_UBzdsv32Eeaho99HbWPUFw" y="5"/>
+          </children>
+          <children xmi:type="notation:BasicCompartment" xmi:id="_UBzds_32Eeaho99HbWPUFw" type="Property_StructureCompartment">
+            <styles xmi:type="notation:TitleStyle" xmi:id="_UBzdtP32Eeaho99HbWPUFw"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UBzdtf32Eeaho99HbWPUFw"/>
+          </children>
+          <children xmi:type="notation:DecorationNode" xmi:id="_UEpWUP32Eeaho99HbWPUFw" type="StereotypeLabel">
+            <styles xmi:type="notation:StringValueStyle" xmi:id="_UEpWUf32Eeaho99HbWPUFw" name="stereotype" stringValue="UMLRealTime::CapsulePart"/>
+            <element xmi:type="uml:Stereotype" href="pathmap://UML_RT_PROFILE/uml-rt.profile.uml#_EQwT4EhOEeO0lv5O1DTHOQ"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UEpWUv32Eeaho99HbWPUFw"/>
+          </children>
+          <children xmi:type="notation:BasicCompartment" xmi:id="_UEp9YP32Eeaho99HbWPUFw" type="StereotypeBrace">
+            <styles xmi:type="notation:TitleStyle" xmi:id="_UEp9Yf32Eeaho99HbWPUFw"/>
+            <styles xmi:type="notation:StringValueStyle" xmi:id="_UEp9Yv32Eeaho99HbWPUFw" name="stereotype" stringValue="UMLRealTime::CapsulePart"/>
+            <element xmi:type="uml:Stereotype" href="pathmap://UML_RT_PROFILE/uml-rt.profile.uml#_EQwT4EhOEeO0lv5O1DTHOQ"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UEp9Y_32Eeaho99HbWPUFw"/>
+          </children>
+          <children xmi:type="notation:BasicCompartment" xmi:id="_UEp9ZP32Eeaho99HbWPUFw" type="compartment_shape_display">
+            <styles xmi:type="notation:TitleStyle" xmi:id="_UEp9Zf32Eeaho99HbWPUFw"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UEp9Zv32Eeaho99HbWPUFw"/>
+          </children>
+          <children xmi:type="notation:BasicCompartment" xmi:id="_UErykP32Eeaho99HbWPUFw" type="StereotypeCompartment">
+            <styles xmi:type="notation:TitleStyle" xmi:id="_UErykf32Eeaho99HbWPUFw"/>
+            <styles xmi:type="notation:StringValueStyle" xmi:id="_UErykv32Eeaho99HbWPUFw" name="stereotype" stringValue="UMLRealTime::CapsulePart"/>
+            <element xmi:type="uml:Stereotype" href="pathmap://UML_RT_PROFILE/uml-rt.profile.uml#_EQwT4EhOEeO0lv5O1DTHOQ"/>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UEryk_32Eeaho99HbWPUFw"/>
+          </children>
+          <element xmi:type="uml:Property" href="ExclusionsTransitions.uml#_UBdfcP32Eeaho99HbWPUFw"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UBy2of32Eeaho99HbWPUFw" x="311" y="55" width="45" height="48"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_UDBlsP32Eeaho99HbWPUFw" type="StereotypeComment">
+          <styles xmi:type="notation:TitleStyle" xmi:id="_UDBlsf32Eeaho99HbWPUFw"/>
+          <styles xmi:type="notation:EObjectValueStyle" xmi:id="_UDBls_32Eeaho99HbWPUFw" name="BASE_ELEMENT">
+            <eObjectValue xmi:type="uml:Property" href="ExclusionsTransitions.uml#_T9V0cP32Eeaho99HbWPUFw"/>
+          </styles>
+          <element xsi:nil="true"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UDBlsv32Eeaho99HbWPUFw" x="375" y="55"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_UEMDUP32Eeaho99HbWPUFw" type="StereotypeComment">
+          <styles xmi:type="notation:TitleStyle" xmi:id="_UEMDUf32Eeaho99HbWPUFw"/>
+          <styles xmi:type="notation:EObjectValueStyle" xmi:id="_UEMDU_32Eeaho99HbWPUFw" name="BASE_ELEMENT">
+            <eObjectValue xmi:type="uml:Port" href="ExclusionsTransitions.uml#_FpsvsP32Eeaho99HbWPUFw"/>
+          </styles>
+          <element xsi:nil="true"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UEMDUv32Eeaho99HbWPUFw" x="194" y="-6"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_UEqkcP32Eeaho99HbWPUFw" type="StereotypeComment">
+          <styles xmi:type="notation:TitleStyle" xmi:id="_UEqkcf32Eeaho99HbWPUFw"/>
+          <styles xmi:type="notation:EObjectValueStyle" xmi:id="_UEqkc_32Eeaho99HbWPUFw" name="BASE_ELEMENT">
+            <eObjectValue xmi:type="uml:Property" href="ExclusionsTransitions.uml#_UBdfcP32Eeaho99HbWPUFw"/>
+          </styles>
+          <element xsi:nil="true"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UEqkcv32Eeaho99HbWPUFw" x="395" y="75"/>
+        </children>
+        <styles xmi:type="notation:TitleStyle" xmi:id="_-9puc_31Eeaho99HbWPUFw"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-9pudP31Eeaho99HbWPUFw" x="41" y="60" width="287" height="163"/>
+      </children>
+      <element xmi:type="uml:Class" href="ExclusionsTransitions.uml#_-5oKEP31Eeaho99HbWPUFw"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-9nSMf31Eeaho99HbWPUFw" x="40" y="40" width="500" height="250"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_RTv8AP32Eeaho99HbWPUFw" type="StereotypeComment">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_RTv8Af32Eeaho99HbWPUFw"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_RTv8A_32Eeaho99HbWPUFw" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:Class" href="ExclusionsTransitions.uml#_-5oKEP31Eeaho99HbWPUFw"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RTv8Av32Eeaho99HbWPUFw" x="240" y="40"/>
+    </children>
+    <styles xmi:type="notation:StringValueStyle" xmi:id="_-9JYIf31Eeaho99HbWPUFw" name="diagram_compatibility_version" stringValue="1.2.0"/>
+    <styles xmi:type="notation:DiagramStyle" xmi:id="_-9JYIv31Eeaho99HbWPUFw"/>
+    <styles xmi:type="style:PapyrusViewStyle" xmi:id="_-9JYI_31Eeaho99HbWPUFw">
+      <owner xmi:type="uml:Class" href="ExclusionsTransitions.uml#_-5oKEP31Eeaho99HbWPUFw"/>
+      <configuration xmi:type="configuration:PapyrusDiagram" href="platform:/plugin/org.eclipse.papyrusrt.umlrt.tooling.diagram.common/configuration/UMLRT.configuration#_Z79eQHcZEeSnWeKqQOfW2A"/>
+    </styles>
+    <element xmi:type="uml:Class" href="ExclusionsTransitions.uml#_-5oKEP31Eeaho99HbWPUFw"/>
+    <edges xmi:type="notation:Connector" xmi:id="_RTwjEP32Eeaho99HbWPUFw" type="StereotypeCommentLink" source="_-9nSMP31Eeaho99HbWPUFw" target="_RTv8AP32Eeaho99HbWPUFw">
+      <styles xmi:type="notation:FontStyle" xmi:id="_RTwjEf32Eeaho99HbWPUFw"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_RTwjFf32Eeaho99HbWPUFw" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:Class" href="ExclusionsTransitions.uml#_-5oKEP31Eeaho99HbWPUFw"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_RTwjEv32Eeaho99HbWPUFw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_RTwjE_32Eeaho99HbWPUFw"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_RTwjFP32Eeaho99HbWPUFw"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_UDBltP32Eeaho99HbWPUFw" type="StereotypeCommentLink" source="_UBZOAP32Eeaho99HbWPUFw" target="_UDBlsP32Eeaho99HbWPUFw">
+      <styles xmi:type="notation:FontStyle" xmi:id="_UDBltf32Eeaho99HbWPUFw"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_UDCMwP32Eeaho99HbWPUFw" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:Property" href="ExclusionsTransitions.uml#_T9V0cP32Eeaho99HbWPUFw"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_UDBltv32Eeaho99HbWPUFw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_UDBlt_32Eeaho99HbWPUFw"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_UDBluP32Eeaho99HbWPUFw"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_UEMDVP32Eeaho99HbWPUFw" type="StereotypeCommentLink" source="_UDb1YP32Eeaho99HbWPUFw" target="_UEMDUP32Eeaho99HbWPUFw">
+      <styles xmi:type="notation:FontStyle" xmi:id="_UEMDVf32Eeaho99HbWPUFw"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_UEMqYP32Eeaho99HbWPUFw" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:Port" href="ExclusionsTransitions.uml#_FpsvsP32Eeaho99HbWPUFw"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_UEMDVv32Eeaho99HbWPUFw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_UEMDV_32Eeaho99HbWPUFw"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_UEMDWP32Eeaho99HbWPUFw"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_UEqkdP32Eeaho99HbWPUFw" type="StereotypeCommentLink" source="_UBy2oP32Eeaho99HbWPUFw" target="_UEqkcP32Eeaho99HbWPUFw">
+      <styles xmi:type="notation:FontStyle" xmi:id="_UEqkdf32Eeaho99HbWPUFw"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_UErLgv32Eeaho99HbWPUFw" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:Property" href="ExclusionsTransitions.uml#_UBdfcP32Eeaho99HbWPUFw"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_UEqkdv32Eeaho99HbWPUFw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_UErLgP32Eeaho99HbWPUFw"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_UErLgf32Eeaho99HbWPUFw"/>
+    </edges>
+  </notation:Diagram>
+  <notation:Diagram xmi:id="_ANtBEP32Eeaho99HbWPUFw" type="CompositeStructure" measurementUnit="Pixel">
+    <children xmi:type="notation:Shape" xmi:id="_ANtoIP32Eeaho99HbWPUFw" type="Class_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_ANtoIv32Eeaho99HbWPUFw" type="Class_NameLabel"/>
+      <children xmi:type="notation:DecorationNode" xmi:id="_ANtoI_32Eeaho99HbWPUFw" type="Class_FloatingNameLabel">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_ANtoJP32Eeaho99HbWPUFw" y="5"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_ANtoJf32Eeaho99HbWPUFw" type="Class_StructureCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_ANtoJv32Eeaho99HbWPUFw"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ANtoJ_32Eeaho99HbWPUFw"/>
+      </children>
+      <element xmi:type="uml:Class" href="ExclusionsTransitions.uml#_ANBroP32Eeaho99HbWPUFw"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ANtoIf32Eeaho99HbWPUFw" x="40" y="40" width="500" height="250"/>
+    </children>
+    <styles xmi:type="notation:StringValueStyle" xmi:id="_ANtBEf32Eeaho99HbWPUFw" name="diagram_compatibility_version" stringValue="1.2.0"/>
+    <styles xmi:type="notation:DiagramStyle" xmi:id="_ANtBEv32Eeaho99HbWPUFw"/>
+    <styles xmi:type="style:PapyrusViewStyle" xmi:id="_ANtBE_32Eeaho99HbWPUFw">
+      <owner xmi:type="uml:Class" href="ExclusionsTransitions.uml#_ANBroP32Eeaho99HbWPUFw"/>
+      <configuration xmi:type="configuration:PapyrusDiagram" href="platform:/plugin/org.eclipse.papyrusrt.umlrt.tooling.diagram.common/configuration/UMLRT.configuration#_Z79eQHcZEeSnWeKqQOfW2A"/>
+    </styles>
+    <element xmi:type="uml:Class" href="ExclusionsTransitions.uml#_ANBroP32Eeaho99HbWPUFw"/>
+  </notation:Diagram>
+  <notation:Diagram xmi:id="_CfGb8P32Eeaho99HbWPUFw" type="CompositeStructure" measurementUnit="Pixel">
+    <children xmi:type="notation:Shape" xmi:id="_CfHDAP32Eeaho99HbWPUFw" type="Class_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_CfHDAv32Eeaho99HbWPUFw" type="Class_NameLabel"/>
+      <children xmi:type="notation:DecorationNode" xmi:id="_CfHDA_32Eeaho99HbWPUFw" type="Class_FloatingNameLabel">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_CfHDBP32Eeaho99HbWPUFw" y="5"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_CfHDBf32Eeaho99HbWPUFw" type="Class_StructureCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_CfHDBv32Eeaho99HbWPUFw"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CfHDB_32Eeaho99HbWPUFw"/>
+      </children>
+      <element xmi:type="uml:Class" href="ExclusionsTransitions.uml#_CeeJ0P32Eeaho99HbWPUFw"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CfHDAf32Eeaho99HbWPUFw" x="40" y="40" width="500" height="250"/>
+    </children>
+    <styles xmi:type="notation:StringValueStyle" xmi:id="_CfGb8f32Eeaho99HbWPUFw" name="diagram_compatibility_version" stringValue="1.2.0"/>
+    <styles xmi:type="notation:DiagramStyle" xmi:id="_CfGb8v32Eeaho99HbWPUFw"/>
+    <styles xmi:type="style:PapyrusViewStyle" xmi:id="_CfGb8_32Eeaho99HbWPUFw">
+      <owner xmi:type="uml:Class" href="ExclusionsTransitions.uml#_CeeJ0P32Eeaho99HbWPUFw"/>
+      <configuration xmi:type="configuration:PapyrusDiagram" href="platform:/plugin/org.eclipse.papyrusrt.umlrt.tooling.diagram.common/configuration/UMLRT.configuration#_Z79eQHcZEeSnWeKqQOfW2A"/>
+    </styles>
+    <element xmi:type="uml:Class" href="ExclusionsTransitions.uml#_CeeJ0P32Eeaho99HbWPUFw"/>
+  </notation:Diagram>
+  <notation:Diagram xmi:id="_PqamsP32Eeaho99HbWPUFw" type="PapyrusUMLStateMachineDiagram" measurementUnit="Pixel">
+    <children xmi:type="notation:Shape" xmi:id="_Pqamsf32Eeaho99HbWPUFw" type="StateMachine_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_Pqamsv32Eeaho99HbWPUFw" type="StateMachine_NameLabel">
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Pqams_32Eeaho99HbWPUFw" width="700" height="16"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_PqamtP32Eeaho99HbWPUFw" type="StateMachine_RegionCompartment">
+        <children xmi:type="notation:Shape" xmi:id="_Pqamtf32Eeaho99HbWPUFw" type="Region_Shape">
+          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Pqamtv32Eeaho99HbWPUFw" source="RegionAnnotationKey">
+            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Pqamt_32Eeaho99HbWPUFw" key="RegionZoneKey" value=""/>
+          </eAnnotations>
+          <children xmi:type="notation:BasicCompartment" xmi:id="_PqamuP32Eeaho99HbWPUFw" type="Region_SubvertexCompartment">
+            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cPNkAP32Eeaho99HbWPUFw" source="PapyrusCSSForceValue">
+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cPNkAf32Eeaho99HbWPUFw" key="mutable" value="true"/>
+            </eAnnotations>
+            <children xmi:type="notation:Shape" xmi:id="_b1T2QP32Eeaho99HbWPUFw" type="Pseudostate_InitialShape">
+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cPNkAv32Eeaho99HbWPUFw" source="PapyrusCSSForceValue">
+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cPNkA_32Eeaho99HbWPUFw" key="mutable" value="true"/>
+              </eAnnotations>
+              <children xmi:type="notation:DecorationNode" xmi:id="_b1T2Qv32Eeaho99HbWPUFw" type="Pseudostate_InitialFloatingNameLabel">
+                <layoutConstraint xmi:type="notation:Location" xmi:id="_b1T2Q_32Eeaho99HbWPUFw" x="25" y="3"/>
+              </children>
+              <children xmi:type="notation:DecorationNode" xmi:id="_b1UdUP32Eeaho99HbWPUFw" type="Pseudostate_InitialStereotypeLabel">
+                <layoutConstraint xmi:type="notation:Location" xmi:id="_b1UdUf32Eeaho99HbWPUFw" x="25" y="-10"/>
+              </children>
+              <element xmi:type="uml:Pseudostate" href="ExclusionsTransitions.uml#_Pn6sUP32Eeaho99HbWPUFw"/>
+              <layoutConstraint xmi:type="notation:Bounds" xmi:id="_b1T2Qf32Eeaho99HbWPUFw" x="51" y="82" width="20" height="20"/>
+            </children>
+            <children xmi:type="notation:Shape" xmi:id="_b1UdUv32Eeaho99HbWPUFw" type="State_Shape">
+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cPNkBP32Eeaho99HbWPUFw" source="PapyrusCSSForceValue">
+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cPNkBf32Eeaho99HbWPUFw" key="mutable" value="true"/>
+              </eAnnotations>
+              <children xmi:type="notation:DecorationNode" xmi:id="_b1UdVP32Eeaho99HbWPUFw" type="State_NameLabel"/>
+              <children xmi:type="notation:DecorationNode" xmi:id="_b1UdVf32Eeaho99HbWPUFw" type="State_FloatingNameLabel">
+                <layoutConstraint xmi:type="notation:Location" xmi:id="_b1UdVv32Eeaho99HbWPUFw" x="40"/>
+              </children>
+              <children xmi:type="notation:BasicCompartment" xmi:id="_b1UdV_32Eeaho99HbWPUFw" type="State_RegionCompartment">
+                <layoutConstraint xmi:type="notation:Bounds" xmi:id="_b1UdWP32Eeaho99HbWPUFw"/>
+              </children>
+              <children xmi:type="notation:Compartment" xmi:id="_b1Z84P32Eeaho99HbWPUFw" type="InternalTransitions">
+                <layoutConstraint xmi:type="notation:Bounds" xmi:id="_b1aj8P32Eeaho99HbWPUFw"/>
+              </children>
+              <element xmi:type="uml:State" href="ExclusionsTransitions.uml#_PoVjEP32Eeaho99HbWPUFw"/>
+              <layoutConstraint xmi:type="notation:Bounds" xmi:id="_b1UdU_32Eeaho99HbWPUFw" x="91" y="123" width="40" height="40"/>
+            </children>
+            <children xmi:type="notation:Shape" xmi:id="_b5nHcP32Eeaho99HbWPUFw" type="StereotypeComment">
+              <styles xmi:type="notation:TitleStyle" xmi:id="_b5nHcf32Eeaho99HbWPUFw"/>
+              <styles xmi:type="notation:EObjectValueStyle" xmi:id="_b5nugP32Eeaho99HbWPUFw" name="BASE_ELEMENT">
+                <eObjectValue xmi:type="uml:Pseudostate" href="ExclusionsTransitions.uml#_Pn6sUP32Eeaho99HbWPUFw"/>
+              </styles>
+              <element xsi:nil="true"/>
+              <layoutConstraint xmi:type="notation:Bounds" xmi:id="_b5nHcv32Eeaho99HbWPUFw" x="200"/>
+            </children>
+            <children xmi:type="notation:Shape" xmi:id="_b6eqIv32Eeaho99HbWPUFw" type="StereotypeComment">
+              <styles xmi:type="notation:TitleStyle" xmi:id="_b6eqI_32Eeaho99HbWPUFw"/>
+              <styles xmi:type="notation:EObjectValueStyle" xmi:id="_b6eqJf32Eeaho99HbWPUFw" name="BASE_ELEMENT">
+                <eObjectValue xmi:type="uml:State" href="ExclusionsTransitions.uml#_PoVjEP32Eeaho99HbWPUFw"/>
+              </styles>
+              <element xsi:nil="true"/>
+              <layoutConstraint xmi:type="notation:Bounds" xmi:id="_b6eqJP32Eeaho99HbWPUFw" x="200"/>
+            </children>
+            <children xmi:type="notation:Shape" xmi:id="_esjJIP32Eeaho99HbWPUFw" type="State_Shape">
+              <children xmi:type="notation:DecorationNode" xmi:id="_esjwMP32Eeaho99HbWPUFw" type="State_NameLabel"/>
+              <children xmi:type="notation:DecorationNode" xmi:id="_esjwMf32Eeaho99HbWPUFw" type="State_FloatingNameLabel">
+                <layoutConstraint xmi:type="notation:Location" xmi:id="_esjwMv32Eeaho99HbWPUFw" x="40"/>
+              </children>
+              <children xmi:type="notation:BasicCompartment" xmi:id="_esjwM_32Eeaho99HbWPUFw" type="State_RegionCompartment">
+                <layoutConstraint xmi:type="notation:Bounds" xmi:id="_esjwNP32Eeaho99HbWPUFw"/>
+              </children>
+              <children xmi:type="notation:Compartment" xmi:id="_esjwNf32Eeaho99HbWPUFw" type="InternalTransitions">
+                <layoutConstraint xmi:type="notation:Bounds" xmi:id="_esjwNv32Eeaho99HbWPUFw"/>
+              </children>
+              <element xmi:type="uml:State" href="ExclusionsTransitions.uml#_esL8wP32Eeaho99HbWPUFw"/>
+              <layoutConstraint xmi:type="notation:Bounds" xmi:id="_esjJIf32Eeaho99HbWPUFw" x="261" y="44"/>
+            </children>
+            <children xmi:type="notation:Shape" xmi:id="_esxLk_32Eeaho99HbWPUFw" type="StereotypeComment">
+              <styles xmi:type="notation:TitleStyle" xmi:id="_esxLlP32Eeaho99HbWPUFw"/>
+              <styles xmi:type="notation:EObjectValueStyle" xmi:id="_esxLlv32Eeaho99HbWPUFw" name="BASE_ELEMENT">
+                <eObjectValue xmi:type="uml:State" href="ExclusionsTransitions.uml#_esL8wP32Eeaho99HbWPUFw"/>
+              </styles>
+              <element xsi:nil="true"/>
+              <layoutConstraint xmi:type="notation:Bounds" xmi:id="_esxLlf32Eeaho99HbWPUFw" x="200"/>
+            </children>
+            <children xmi:type="notation:Shape" xmi:id="_fORWIP32Eeaho99HbWPUFw" type="State_Shape">
+              <children xmi:type="notation:DecorationNode" xmi:id="_fORWIv32Eeaho99HbWPUFw" type="State_NameLabel"/>
+              <children xmi:type="notation:DecorationNode" xmi:id="_fOR9MP32Eeaho99HbWPUFw" type="State_FloatingNameLabel">
+                <layoutConstraint xmi:type="notation:Location" xmi:id="_fOR9Mf32Eeaho99HbWPUFw" x="40"/>
+              </children>
+              <children xmi:type="notation:BasicCompartment" xmi:id="_fOR9Mv32Eeaho99HbWPUFw" type="State_RegionCompartment">
+                <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fOR9M_32Eeaho99HbWPUFw"/>
+              </children>
+              <children xmi:type="notation:Compartment" xmi:id="_fOR9NP32Eeaho99HbWPUFw" type="InternalTransitions">
+                <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fOR9Nf32Eeaho99HbWPUFw"/>
+              </children>
+              <element xmi:type="uml:State" href="ExclusionsTransitions.uml#_fN1RQP32Eeaho99HbWPUFw"/>
+              <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fORWIf32Eeaho99HbWPUFw" x="261" y="123"/>
+            </children>
+            <children xmi:type="notation:Shape" xmi:id="_fOhNwP32Eeaho99HbWPUFw" type="StereotypeComment">
+              <styles xmi:type="notation:TitleStyle" xmi:id="_fOhNwf32Eeaho99HbWPUFw"/>
+              <styles xmi:type="notation:EObjectValueStyle" xmi:id="_fOhNw_32Eeaho99HbWPUFw" name="BASE_ELEMENT">
+                <eObjectValue xmi:type="uml:State" href="ExclusionsTransitions.uml#_fN1RQP32Eeaho99HbWPUFw"/>
+              </styles>
+              <element xsi:nil="true"/>
+              <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fOhNwv32Eeaho99HbWPUFw" x="200"/>
+            </children>
+            <children xmi:type="notation:Shape" xmi:id="_nD51oP32Eeaho99HbWPUFw" type="State_Shape">
+              <children xmi:type="notation:DecorationNode" xmi:id="_nD51ov32Eeaho99HbWPUFw" type="State_NameLabel"/>
+              <children xmi:type="notation:DecorationNode" xmi:id="_nD51o_32Eeaho99HbWPUFw" type="State_FloatingNameLabel">
+                <layoutConstraint xmi:type="notation:Location" xmi:id="_nD51pP32Eeaho99HbWPUFw" x="40"/>
+              </children>
+              <children xmi:type="notation:BasicCompartment" xmi:id="_nD51pf32Eeaho99HbWPUFw" type="State_RegionCompartment">
+                <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nD51pv32Eeaho99HbWPUFw"/>
+              </children>
+              <children xmi:type="notation:Compartment" xmi:id="_nD51p_32Eeaho99HbWPUFw" type="InternalTransitions">
+                <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nD51qP32Eeaho99HbWPUFw"/>
+              </children>
+              <element xmi:type="uml:State" href="ExclusionsTransitions.uml#_nDkecP32Eeaho99HbWPUFw"/>
+              <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nD51of32Eeaho99HbWPUFw" x="261" y="202"/>
+            </children>
+            <children xmi:type="notation:Shape" xmi:id="_nEC_kP32Eeaho99HbWPUFw" type="StereotypeComment">
+              <styles xmi:type="notation:TitleStyle" xmi:id="_nEC_kf32Eeaho99HbWPUFw"/>
+              <styles xmi:type="notation:EObjectValueStyle" xmi:id="_nEC_k_32Eeaho99HbWPUFw" name="BASE_ELEMENT">
+                <eObjectValue xmi:type="uml:State" href="ExclusionsTransitions.uml#_nDkecP32Eeaho99HbWPUFw"/>
+              </styles>
+              <element xsi:nil="true"/>
+              <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nEC_kv32Eeaho99HbWPUFw" x="200"/>
+            </children>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Pqamuf32Eeaho99HbWPUFw" width="64" height="116"/>
+          </children>
+          <element xmi:type="uml:Region" href="ExclusionsTransitions.uml#_PntQ8P32Eeaho99HbWPUFw"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Pqamuv32Eeaho99HbWPUFw" width="700" height="287"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_b1L6cP32Eeaho99HbWPUFw" type="StereotypeComment">
+          <styles xmi:type="notation:TitleStyle" xmi:id="_b1L6cf32Eeaho99HbWPUFw"/>
+          <styles xmi:type="notation:EObjectValueStyle" xmi:id="_b1L6c_32Eeaho99HbWPUFw" name="BASE_ELEMENT">
+            <eObjectValue xmi:type="uml:Region" href="ExclusionsTransitions.uml#_PntQ8P32Eeaho99HbWPUFw"/>
+          </styles>
+          <element xsi:nil="true"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_b1L6cv32Eeaho99HbWPUFw" x="200"/>
+        </children>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Pqamu_32Eeaho99HbWPUFw" y="16" width="700" height="284"/>
+      </children>
+      <element xmi:type="uml:StateMachine" href="ExclusionsTransitions.uml#_Pm-4MP32Eeaho99HbWPUFw"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PqamvP32Eeaho99HbWPUFw" x="28" y="29" width="700" height="300"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_b1DXkP32Eeaho99HbWPUFw" type="StereotypeComment">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_b1DXkf32Eeaho99HbWPUFw"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_b1DXk_32Eeaho99HbWPUFw" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:StateMachine" href="ExclusionsTransitions.uml#_Pm-4MP32Eeaho99HbWPUFw"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_b1DXkv32Eeaho99HbWPUFw" x="230" y="30"/>
+    </children>
+    <styles xmi:type="notation:StringValueStyle" xmi:id="_Pqamvf32Eeaho99HbWPUFw" name="diagram_compatibility_version" stringValue="1.2.0"/>
+    <styles xmi:type="notation:DiagramStyle" xmi:id="_Pqamvv32Eeaho99HbWPUFw"/>
+    <styles xmi:type="style:PapyrusViewStyle" xmi:id="_Pqamv_32Eeaho99HbWPUFw">
+      <owner xmi:type="uml:StateMachine" href="ExclusionsTransitions.uml#_Pm-4MP32Eeaho99HbWPUFw"/>
+      <configuration xmi:type="configuration:PapyrusDiagram" href="platform:/plugin/org.eclipse.papyrusrt.umlrt.tooling.diagram.statemachine/configuration/RTStateMachine.configuration#_Z79eQHcZEeSnWeKqQOfW2A"/>
+    </styles>
+    <element xmi:type="uml:StateMachine" href="ExclusionsTransitions.uml#_Pm-4MP32Eeaho99HbWPUFw"/>
+    <edges xmi:type="notation:Connector" xmi:id="_b1D-oP32Eeaho99HbWPUFw" type="StereotypeCommentLink" source="_Pqamsf32Eeaho99HbWPUFw" target="_b1DXkP32Eeaho99HbWPUFw">
+      <styles xmi:type="notation:FontStyle" xmi:id="_b1D-of32Eeaho99HbWPUFw"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_b1D-pf32Eeaho99HbWPUFw" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:StateMachine" href="ExclusionsTransitions.uml#_Pm-4MP32Eeaho99HbWPUFw"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_b1D-ov32Eeaho99HbWPUFw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_b1D-o_32Eeaho99HbWPUFw"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_b1D-pP32Eeaho99HbWPUFw"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_b1MhgP32Eeaho99HbWPUFw" type="StereotypeCommentLink" source="_Pqamtf32Eeaho99HbWPUFw" target="_b1L6cP32Eeaho99HbWPUFw">
+      <styles xmi:type="notation:FontStyle" xmi:id="_b1Mhgf32Eeaho99HbWPUFw"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_b1Mhhf32Eeaho99HbWPUFw" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:Region" href="ExclusionsTransitions.uml#_PntQ8P32Eeaho99HbWPUFw"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_b1Mhgv32Eeaho99HbWPUFw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_b1Mhg_32Eeaho99HbWPUFw"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_b1MhhP32Eeaho99HbWPUFw"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_b5nugf32Eeaho99HbWPUFw" type="StereotypeCommentLink" source="_b1T2QP32Eeaho99HbWPUFw" target="_b5nHcP32Eeaho99HbWPUFw">
+      <styles xmi:type="notation:FontStyle" xmi:id="_b5nugv32Eeaho99HbWPUFw"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_b5nuhv32Eeaho99HbWPUFw" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:Pseudostate" href="ExclusionsTransitions.uml#_Pn6sUP32Eeaho99HbWPUFw"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_b5nug_32Eeaho99HbWPUFw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_b5nuhP32Eeaho99HbWPUFw"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_b5nuhf32Eeaho99HbWPUFw"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_b6eqJv32Eeaho99HbWPUFw" type="StereotypeCommentLink" source="_b1UdUv32Eeaho99HbWPUFw" target="_b6eqIv32Eeaho99HbWPUFw">
+      <styles xmi:type="notation:FontStyle" xmi:id="_b6eqJ_32Eeaho99HbWPUFw"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_b6fRMv32Eeaho99HbWPUFw" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:State" href="ExclusionsTransitions.uml#_PoVjEP32Eeaho99HbWPUFw"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_b6eqKP32Eeaho99HbWPUFw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_b6fRMP32Eeaho99HbWPUFw"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_b6fRMf32Eeaho99HbWPUFw"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_cMXrYP32Eeaho99HbWPUFw" type="Transition_Edge" source="_b1T2QP32Eeaho99HbWPUFw" target="_b1UdUv32Eeaho99HbWPUFw">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_cS4jEP32Eeaho99HbWPUFw" source="PapyrusCSSForceValue">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_cS4jEf32Eeaho99HbWPUFw" key="mutable" value="true"/>
+      </eAnnotations>
+      <children xmi:type="notation:DecorationNode" xmi:id="_cMYScP32Eeaho99HbWPUFw" type="Transition_NameLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_cpDnYP32Eeaho99HbWPUFw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_cMYScf32Eeaho99HbWPUFw" x="-3" y="-7"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_cMYScv32Eeaho99HbWPUFw" type="Transition_GuardLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_cpeeIP32Eeaho99HbWPUFw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_cMYSc_32Eeaho99HbWPUFw"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_cMYSdP32Eeaho99HbWPUFw" type="Transition_StereotypeLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_cpzOQP32Eeaho99HbWPUFw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_cMYSdf32Eeaho99HbWPUFw" y="60"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_cMXrYf32Eeaho99HbWPUFw"/>
+      <element xmi:type="uml:Transition" href="ExclusionsTransitions.uml#_Pomo0P32Eeaho99HbWPUFw"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_cMXrYv32Eeaho99HbWPUFw" points="[31, 48, -643984, -643984]$[31, 48, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cMZgkP32Eeaho99HbWPUFw" id="(0.0,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cMZgkf32Eeaho99HbWPUFw" id="(0.0,0.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_esxLl_32Eeaho99HbWPUFw" type="StereotypeCommentLink" source="_esjJIP32Eeaho99HbWPUFw" target="_esxLk_32Eeaho99HbWPUFw">
+      <styles xmi:type="notation:FontStyle" xmi:id="_esxLmP32Eeaho99HbWPUFw"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_esxyov32Eeaho99HbWPUFw" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:State" href="ExclusionsTransitions.uml#_esL8wP32Eeaho99HbWPUFw"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_esxLmf32Eeaho99HbWPUFw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_esxyoP32Eeaho99HbWPUFw"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_esxyof32Eeaho99HbWPUFw"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_fOhNxP32Eeaho99HbWPUFw" type="StereotypeCommentLink" source="_fORWIP32Eeaho99HbWPUFw" target="_fOhNwP32Eeaho99HbWPUFw">
+      <styles xmi:type="notation:FontStyle" xmi:id="_fOhNxf32Eeaho99HbWPUFw"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_fOhNyf32Eeaho99HbWPUFw" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:State" href="ExclusionsTransitions.uml#_fN1RQP32Eeaho99HbWPUFw"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_fOhNxv32Eeaho99HbWPUFw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_fOhNx_32Eeaho99HbWPUFw"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_fOhNyP32Eeaho99HbWPUFw"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_i9WP8P32Eeaho99HbWPUFw" type="Transition_Edge" source="_b1UdUv32Eeaho99HbWPUFw" target="_esjJIP32Eeaho99HbWPUFw">
+      <children xmi:type="notation:DecorationNode" xmi:id="_i9W3AP32Eeaho99HbWPUFw" type="Transition_NameLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_pC4q0P32Eeaho99HbWPUFw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_i9W3Af32Eeaho99HbWPUFw" x="-16" y="-15"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_i9W3Av32Eeaho99HbWPUFw" type="Transition_GuardLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_pC5R4P32Eeaho99HbWPUFw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_i9W3A_32Eeaho99HbWPUFw"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_i9W3BP32Eeaho99HbWPUFw" type="Transition_StereotypeLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_pC548P32Eeaho99HbWPUFw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_i9W3Bf32Eeaho99HbWPUFw" x="-1" y="59"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_i9WP8f32Eeaho99HbWPUFw"/>
+      <element xmi:type="uml:Transition" href="ExclusionsTransitions.uml#_i86LEP32Eeaho99HbWPUFw"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_i9WP8v32Eeaho99HbWPUFw" points="[157, 159, -643984, -643984]$[300, 89, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_i-am8P32Eeaho99HbWPUFw" id="(0.575,0.225)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_i-am8f32Eeaho99HbWPUFw" id="(0.4,0.3)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_mKlA8P32Eeaho99HbWPUFw" type="Transition_Edge" source="_b1UdUv32Eeaho99HbWPUFw" target="_fORWIP32Eeaho99HbWPUFw">
+      <children xmi:type="notation:DecorationNode" xmi:id="_mKloAP32Eeaho99HbWPUFw" type="Transition_NameLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_mrsxAP32Eeaho99HbWPUFw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_mKloAf32Eeaho99HbWPUFw" x="-1" y="-9"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_mKloAv32Eeaho99HbWPUFw" type="Transition_GuardLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_msHnwP32Eeaho99HbWPUFw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_mKloA_32Eeaho99HbWPUFw"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_mKloBP32Eeaho99HbWPUFw" type="Transition_StereotypeLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_msgCQP32Eeaho99HbWPUFw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_mKloBf32Eeaho99HbWPUFw" x="1" y="59"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_mKlA8f32Eeaho99HbWPUFw"/>
+      <element xmi:type="uml:Transition" href="ExclusionsTransitions.uml#_mKKxQP32Eeaho99HbWPUFw"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_mKlA8v32Eeaho99HbWPUFw" points="[160, 183, -643984, -643984]$[295, 207, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_mLkfcP32Eeaho99HbWPUFw" id="(0.675,0.575)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_mLkfcf32Eeaho99HbWPUFw" id="(0.425,0.6)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_nEDmoP32Eeaho99HbWPUFw" type="StereotypeCommentLink" source="_nD51oP32Eeaho99HbWPUFw" target="_nEC_kP32Eeaho99HbWPUFw">
+      <styles xmi:type="notation:FontStyle" xmi:id="_nEDmof32Eeaho99HbWPUFw"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_nEDmpf32Eeaho99HbWPUFw" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:State" href="ExclusionsTransitions.uml#_nDkecP32Eeaho99HbWPUFw"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_nEDmov32Eeaho99HbWPUFw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_nEDmo_32Eeaho99HbWPUFw"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_nEDmpP32Eeaho99HbWPUFw"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_nxG54P32Eeaho99HbWPUFw" type="Transition_Edge" source="_b1UdUv32Eeaho99HbWPUFw" target="_nD51oP32Eeaho99HbWPUFw">
+      <children xmi:type="notation:DecorationNode" xmi:id="_nxHg8P32Eeaho99HbWPUFw" type="Transition_NameLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_pC6gAP32Eeaho99HbWPUFw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_nxHg8f32Eeaho99HbWPUFw" x="3" y="-9"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_nxHg8v32Eeaho99HbWPUFw" type="Transition_GuardLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_pC6gAf32Eeaho99HbWPUFw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_nxHg8_32Eeaho99HbWPUFw"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_nxHg9P32Eeaho99HbWPUFw" type="Transition_StereotypeLabel">
+        <styles xmi:type="notation:BooleanValueStyle" xmi:id="_pC7HEP32Eeaho99HbWPUFw" name="IS_UPDATED_POSITION" booleanValue="true"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_nxHg9f32Eeaho99HbWPUFw" y="58"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_nxG54f32Eeaho99HbWPUFw"/>
+      <element xmi:type="uml:Transition" href="ExclusionsTransitions.uml#_nwvGcP32Eeaho99HbWPUFw"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_nxG54v32Eeaho99HbWPUFw" points="[153, 195, -643984, -643984]$[305, 287, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_nx9OcP32Eeaho99HbWPUFw" id="(0.375,0.725)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_nx9Ocf32Eeaho99HbWPUFw" id="(0.475,0.6)"/>
+    </edges>
+  </notation:Diagram>
+  <notation:Diagram xmi:id="_MyPDMP33Eeaho99HbWPUFw" type="PapyrusUMLStateMachineDiagram" measurementUnit="Pixel">
+    <children xmi:type="notation:Shape" xmi:id="_MyPDMf33Eeaho99HbWPUFw" type="StateMachine_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_MyPDMv33Eeaho99HbWPUFw" type="StateMachine_NameLabel">
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MyPDM_33Eeaho99HbWPUFw" width="700" height="16"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_MyPDNP33Eeaho99HbWPUFw" type="StateMachine_RegionCompartment">
+        <children xmi:type="notation:Shape" xmi:id="_MyPDNf33Eeaho99HbWPUFw" type="Region_Shape">
+          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_MyPDNv33Eeaho99HbWPUFw" source="RegionAnnotationKey">
+            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_MyPDN_33Eeaho99HbWPUFw" key="RegionZoneKey" value=""/>
+          </eAnnotations>
+          <children xmi:type="notation:BasicCompartment" xmi:id="_MyPDOP33Eeaho99HbWPUFw" type="Region_SubvertexCompartment">
+            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Nu7U8P33Eeaho99HbWPUFw" source="PapyrusCSSForceValue">
+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Nu7U8f33Eeaho99HbWPUFw" key="mutable" value="true"/>
+            </eAnnotations>
+            <children xmi:type="notation:Shape" xmi:id="_Nld28P33Eeaho99HbWPUFw" type="Pseudostate_InitialShape">
+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Nu78AP33Eeaho99HbWPUFw" source="PapyrusCSSForceValue">
+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Nu78Af33Eeaho99HbWPUFw" key="mutable" value="true"/>
+              </eAnnotations>
+              <children xmi:type="notation:DecorationNode" xmi:id="_Nld28v33Eeaho99HbWPUFw" type="Pseudostate_InitialFloatingNameLabel">
+                <layoutConstraint xmi:type="notation:Location" xmi:id="_Nld28_33Eeaho99HbWPUFw" x="25" y="3"/>
+              </children>
+              <children xmi:type="notation:DecorationNode" xmi:id="_Nld29P33Eeaho99HbWPUFw" type="Pseudostate_InitialStereotypeLabel">
+                <layoutConstraint xmi:type="notation:Location" xmi:id="_Nld29f33Eeaho99HbWPUFw" x="25" y="-10"/>
+              </children>
+              <element xmi:type="uml:Pseudostate" href="ExclusionsTransitions.uml#_Pn6sUP32Eeaho99HbWPUFw"/>
+              <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Nld28f33Eeaho99HbWPUFw" x="51" y="82" width="20" height="20"/>
+            </children>
+            <children xmi:type="notation:Shape" xmi:id="_NleeAP33Eeaho99HbWPUFw" type="State_Shape">
+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Nu78Av33Eeaho99HbWPUFw" source="PapyrusCSSForceValue">
+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Nu78A_33Eeaho99HbWPUFw" key="mutable" value="true"/>
+              </eAnnotations>
+              <children xmi:type="notation:DecorationNode" xmi:id="_NleeAv33Eeaho99HbWPUFw" type="State_NameLabel"/>
+              <children xmi:type="notation:DecorationNode" xmi:id="_NleeA_33Eeaho99HbWPUFw" type="State_FloatingNameLabel">
+                <layoutConstraint xmi:type="notation:Location" xmi:id="_NleeBP33Eeaho99HbWPUFw" x="40"/>
+              </children>
+              <children xmi:type="notation:BasicCompartment" xmi:id="_NleeBf33Eeaho99HbWPUFw" type="State_RegionCompartment">
+                <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NleeBv33Eeaho99HbWPUFw"/>
+              </children>
+              <children xmi:type="notation:Compartment" xmi:id="_NleeB_33Eeaho99HbWPUFw" type="InternalTransitions">
+                <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NleeCP33Eeaho99HbWPUFw"/>
+              </children>
+              <element xmi:type="uml:State" href="ExclusionsTransitions.uml#_PoVjEP32Eeaho99HbWPUFw"/>
+              <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NleeAf33Eeaho99HbWPUFw" x="91" y="123" width="40" height="40"/>
+            </children>
+            <children xmi:type="notation:Shape" xmi:id="_NleeCf33Eeaho99HbWPUFw" type="State_Shape">
+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Nu78BP33Eeaho99HbWPUFw" source="PapyrusCSSForceValue">
+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Nu78Bf33Eeaho99HbWPUFw" key="mutable" value="true"/>
+              </eAnnotations>
+              <children xmi:type="notation:DecorationNode" xmi:id="_NleeC_33Eeaho99HbWPUFw" type="State_NameLabel"/>
+              <children xmi:type="notation:DecorationNode" xmi:id="_NleeDP33Eeaho99HbWPUFw" type="State_FloatingNameLabel">
+                <layoutConstraint xmi:type="notation:Location" xmi:id="_NleeDf33Eeaho99HbWPUFw" x="40"/>
+              </children>
+              <children xmi:type="notation:BasicCompartment" xmi:id="_NleeDv33Eeaho99HbWPUFw" type="State_RegionCompartment">
+                <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NleeD_33Eeaho99HbWPUFw"/>
+              </children>
+              <children xmi:type="notation:Compartment" xmi:id="_NleeEP33Eeaho99HbWPUFw" type="InternalTransitions">
+                <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NleeEf33Eeaho99HbWPUFw"/>
+              </children>
+              <element xmi:type="uml:State" href="ExclusionsTransitions.uml#_esL8wP32Eeaho99HbWPUFw"/>
+              <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NleeCv33Eeaho99HbWPUFw" x="261" y="44"/>
+            </children>
+            <children xmi:type="notation:Shape" xmi:id="_NlfFEP33Eeaho99HbWPUFw" type="State_Shape">
+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Nu78Bv33Eeaho99HbWPUFw" source="PapyrusCSSForceValue">
+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Nu78B_33Eeaho99HbWPUFw" key="mutable" value="true"/>
+              </eAnnotations>
+              <children xmi:type="notation:DecorationNode" xmi:id="_NlfFEv33Eeaho99HbWPUFw" type="State_NameLabel"/>
+              <children xmi:type="notation:DecorationNode" xmi:id="_NlfFE_33Eeaho99HbWPUFw" type="State_FloatingNameLabel">
+                <layoutConstraint xmi:type="notation:Location" xmi:id="_NlfFFP33Eeaho99HbWPUFw" x="40"/>
+              </children>
+              <children xmi:type="notation:BasicCompartment" xmi:id="_NlfFFf33Eeaho99HbWPUFw" type="State_RegionCompartment">
+                <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NlfFFv33Eeaho99HbWPUFw"/>
+              </children>
+              <children xmi:type="notation:Compartment" xmi:id="_NlfFF_33Eeaho99HbWPUFw" type="InternalTransitions">
+                <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NlfFGP33Eeaho99HbWPUFw"/>
+              </children>
+              <element xmi:type="uml:State" href="ExclusionsTransitions.uml#_fN1RQP32Eeaho99HbWPUFw"/>
+              <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NlfFEf33Eeaho99HbWPUFw" x="261" y="123"/>
+            </children>
+            <children xmi:type="notation:Shape" xmi:id="_NlfFGf33Eeaho99HbWPUFw" type="State_Shape">
+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_Nu78CP33Eeaho99HbWPUFw" source="PapyrusCSSForceValue">
+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_Nu78Cf33Eeaho99HbWPUFw" key="mutable" value="true"/>
+              </eAnnotations>
+              <children xmi:type="notation:DecorationNode" xmi:id="_NlfFG_33Eeaho99HbWPUFw" type="State_NameLabel"/>
+              <children xmi:type="notation:DecorationNode" xmi:id="_NlfFHP33Eeaho99HbWPUFw" type="State_FloatingNameLabel">
+                <layoutConstraint xmi:type="notation:Location" xmi:id="_NlfFHf33Eeaho99HbWPUFw" x="40"/>
+              </children>
+              <children xmi:type="notation:BasicCompartment" xmi:id="_NlfFHv33Eeaho99HbWPUFw" type="State_RegionCompartment">
+                <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NlfFH_33Eeaho99HbWPUFw"/>
+              </children>
+              <children xmi:type="notation:Compartment" xmi:id="_NlfsIP33Eeaho99HbWPUFw" type="InternalTransitions">
+                <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NlfsIf33Eeaho99HbWPUFw"/>
+              </children>
+              <element xmi:type="uml:State" href="ExclusionsTransitions.uml#_nDkecP32Eeaho99HbWPUFw"/>
+              <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NlfFGv33Eeaho99HbWPUFw" x="261" y="202"/>
+            </children>
+            <children xmi:type="notation:Shape" xmi:id="_NlynEP33Eeaho99HbWPUFw" type="StereotypeComment">
+              <styles xmi:type="notation:TitleStyle" xmi:id="_NlynEf33Eeaho99HbWPUFw"/>
+              <styles xmi:type="notation:EObjectValueStyle" xmi:id="_NlynE_33Eeaho99HbWPUFw" name="BASE_ELEMENT">
+                <eObjectValue xmi:type="uml:Pseudostate" href="ExclusionsTransitions.uml#/-1"/>
+              </styles>
+              <element xsi:nil="true"/>
+              <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NlynEv33Eeaho99HbWPUFw" x="251" y="82"/>
+            </children>
+            <children xmi:type="notation:Shape" xmi:id="_Nl_bYP33Eeaho99HbWPUFw" type="StereotypeComment">
+              <styles xmi:type="notation:TitleStyle" xmi:id="_Nl_bYf33Eeaho99HbWPUFw"/>
+              <styles xmi:type="notation:EObjectValueStyle" xmi:id="_Nl_bY_33Eeaho99HbWPUFw" name="BASE_ELEMENT">
+                <eObjectValue xmi:type="uml:State" href="ExclusionsTransitions.uml#/-1"/>
+              </styles>
+              <element xsi:nil="true"/>
+              <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Nl_bYv33Eeaho99HbWPUFw" x="291" y="123"/>
+            </children>
+            <children xmi:type="notation:Shape" xmi:id="_NmKagP33Eeaho99HbWPUFw" type="StereotypeComment">
+              <styles xmi:type="notation:TitleStyle" xmi:id="_NmKagf33Eeaho99HbWPUFw"/>
+              <styles xmi:type="notation:EObjectValueStyle" xmi:id="_NmKag_33Eeaho99HbWPUFw" name="BASE_ELEMENT">
+                <eObjectValue xmi:type="uml:State" href="ExclusionsTransitions.uml#/-1"/>
+              </styles>
+              <element xsi:nil="true"/>
+              <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NmKagv33Eeaho99HbWPUFw" x="461" y="44"/>
+            </children>
+            <children xmi:type="notation:Shape" xmi:id="_NmTkc_33Eeaho99HbWPUFw" type="StereotypeComment">
+              <styles xmi:type="notation:TitleStyle" xmi:id="_NmTkdP33Eeaho99HbWPUFw"/>
+              <styles xmi:type="notation:EObjectValueStyle" xmi:id="_NmULgP33Eeaho99HbWPUFw" name="BASE_ELEMENT">
+                <eObjectValue xmi:type="uml:State" href="ExclusionsTransitions.uml#/-1"/>
+              </styles>
+              <element xsi:nil="true"/>
+              <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NmTkdf33Eeaho99HbWPUFw" x="461" y="123"/>
+            </children>
+            <children xmi:type="notation:Shape" xmi:id="_NmdVcP33Eeaho99HbWPUFw" type="StereotypeComment">
+              <styles xmi:type="notation:TitleStyle" xmi:id="_NmdVcf33Eeaho99HbWPUFw"/>
+              <styles xmi:type="notation:EObjectValueStyle" xmi:id="_NmdVc_33Eeaho99HbWPUFw" name="BASE_ELEMENT">
+                <eObjectValue xmi:type="uml:State" href="ExclusionsTransitions.uml#/-1"/>
+              </styles>
+              <element xsi:nil="true"/>
+              <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NmdVcv33Eeaho99HbWPUFw" x="461" y="202"/>
+            </children>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MyPDOf33Eeaho99HbWPUFw" width="136" height="208"/>
+          </children>
+          <element xmi:type="uml:Region" href="ExclusionsTransitions.uml#_PntQ8P32Eeaho99HbWPUFw"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MyPDOv33Eeaho99HbWPUFw" width="700" height="287"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_NlXwUP33Eeaho99HbWPUFw" type="StereotypeComment">
+          <styles xmi:type="notation:TitleStyle" xmi:id="_NlXwUf33Eeaho99HbWPUFw"/>
+          <styles xmi:type="notation:EObjectValueStyle" xmi:id="_NlXwU_33Eeaho99HbWPUFw" name="BASE_ELEMENT">
+            <eObjectValue xmi:type="uml:Region" href="ExclusionsTransitions.uml#/-1"/>
+          </styles>
+          <element xsi:nil="true"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NlXwUv33Eeaho99HbWPUFw" x="200"/>
+        </children>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MyPDO_33Eeaho99HbWPUFw" y="16" width="700" height="284"/>
+      </children>
+      <element xmi:type="uml:StateMachine" href="ExclusionsTransitions.uml#_Mw5mcP33Eeaho99HbWPUFw"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MyPDPP33Eeaho99HbWPUFw" x="28" y="29" width="700" height="300"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_NlP0gP33Eeaho99HbWPUFw" type="StereotypeComment">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_NlP0gf33Eeaho99HbWPUFw"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_NlP0g_33Eeaho99HbWPUFw" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:StateMachine" href="ExclusionsTransitions.uml#_Mw5mcP33Eeaho99HbWPUFw"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NlP0gv33Eeaho99HbWPUFw" x="228" y="29"/>
+    </children>
+    <styles xmi:type="notation:StringValueStyle" xmi:id="_MyPDPf33Eeaho99HbWPUFw" name="diagram_compatibility_version" stringValue="1.2.0"/>
+    <styles xmi:type="notation:DiagramStyle" xmi:id="_MyPDPv33Eeaho99HbWPUFw"/>
+    <styles xmi:type="style:PapyrusViewStyle" xmi:id="_MyPDP_33Eeaho99HbWPUFw">
+      <owner xmi:type="uml:StateMachine" href="ExclusionsTransitions.uml#_Mw5mcP33Eeaho99HbWPUFw"/>
+      <configuration xmi:type="configuration:PapyrusDiagram" href="platform:/plugin/org.eclipse.papyrusrt.umlrt.tooling.diagram.statemachine/configuration/RTStateMachine.configuration#_Z79eQHcZEeSnWeKqQOfW2A"/>
+    </styles>
+    <element xmi:type="uml:StateMachine" href="ExclusionsTransitions.uml#_Mw5mcP33Eeaho99HbWPUFw"/>
+    <edges xmi:type="notation:Connector" xmi:id="_NlP0hP33Eeaho99HbWPUFw" type="StereotypeCommentLink" source="_MyPDMf33Eeaho99HbWPUFw" target="_NlP0gP33Eeaho99HbWPUFw">
+      <styles xmi:type="notation:FontStyle" xmi:id="_NlP0hf33Eeaho99HbWPUFw"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_NlQbkP33Eeaho99HbWPUFw" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:StateMachine" href="ExclusionsTransitions.uml#_Mw5mcP33Eeaho99HbWPUFw"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NlP0hv33Eeaho99HbWPUFw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NlP0h_33Eeaho99HbWPUFw"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NlP0iP33Eeaho99HbWPUFw"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_NlXwVP33Eeaho99HbWPUFw" type="StereotypeCommentLink" source="_MyPDNf33Eeaho99HbWPUFw" target="_NlXwUP33Eeaho99HbWPUFw">
+      <styles xmi:type="notation:FontStyle" xmi:id="_NlXwVf33Eeaho99HbWPUFw"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_NlXwWf33Eeaho99HbWPUFw" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:Region" href="ExclusionsTransitions.uml#/-1"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NlXwVv33Eeaho99HbWPUFw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NlXwV_33Eeaho99HbWPUFw"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NlXwWP33Eeaho99HbWPUFw"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_NlynFP33Eeaho99HbWPUFw" type="StereotypeCommentLink" source="_Nld28P33Eeaho99HbWPUFw" target="_NlynEP33Eeaho99HbWPUFw">
+      <styles xmi:type="notation:FontStyle" xmi:id="_NlynFf33Eeaho99HbWPUFw"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_NlynGf33Eeaho99HbWPUFw" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:Pseudostate" href="ExclusionsTransitions.uml#/-1"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NlynFv33Eeaho99HbWPUFw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NlynF_33Eeaho99HbWPUFw"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NlynGP33Eeaho99HbWPUFw"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_Nl_bZP33Eeaho99HbWPUFw" type="StereotypeCommentLink" source="_NleeAP33Eeaho99HbWPUFw" target="_Nl_bYP33Eeaho99HbWPUFw">
+      <styles xmi:type="notation:FontStyle" xmi:id="_Nl_bZf33Eeaho99HbWPUFw"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_Nl_baf33Eeaho99HbWPUFw" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:State" href="ExclusionsTransitions.uml#/-1"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Nl_bZv33Eeaho99HbWPUFw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Nl_bZ_33Eeaho99HbWPUFw"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Nl_baP33Eeaho99HbWPUFw"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_NmKahP33Eeaho99HbWPUFw" type="StereotypeCommentLink" source="_NleeCf33Eeaho99HbWPUFw" target="_NmKagP33Eeaho99HbWPUFw">
+      <styles xmi:type="notation:FontStyle" xmi:id="_NmKahf33Eeaho99HbWPUFw"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_NmKaif33Eeaho99HbWPUFw" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:State" href="ExclusionsTransitions.uml#/-1"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NmKahv33Eeaho99HbWPUFw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NmKah_33Eeaho99HbWPUFw"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NmKaiP33Eeaho99HbWPUFw"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_NmULgf33Eeaho99HbWPUFw" type="StereotypeCommentLink" source="_NlfFEP33Eeaho99HbWPUFw" target="_NmTkc_33Eeaho99HbWPUFw">
+      <styles xmi:type="notation:FontStyle" xmi:id="_NmULgv33Eeaho99HbWPUFw"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_NmULhv33Eeaho99HbWPUFw" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:State" href="ExclusionsTransitions.uml#/-1"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NmULg_33Eeaho99HbWPUFw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NmULhP33Eeaho99HbWPUFw"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NmULhf33Eeaho99HbWPUFw"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_NmdVdP33Eeaho99HbWPUFw" type="StereotypeCommentLink" source="_NlfFGf33Eeaho99HbWPUFw" target="_NmdVcP33Eeaho99HbWPUFw">
+      <styles xmi:type="notation:FontStyle" xmi:id="_NmdVdf33Eeaho99HbWPUFw"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_NmdVef33Eeaho99HbWPUFw" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:State" href="ExclusionsTransitions.uml#/-1"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NmdVdv33Eeaho99HbWPUFw" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NmdVd_33Eeaho99HbWPUFw"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NmdVeP33Eeaho99HbWPUFw"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_NtCekP33Eeaho99HbWPUFw" type="Transition_Edge" source="_Nld28P33Eeaho99HbWPUFw" target="_NleeAP33Eeaho99HbWPUFw">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NxDb4P33Eeaho99HbWPUFw" source="PapyrusCSSForceValue">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_NxDb4f33Eeaho99HbWPUFw" key="mutable" value="true"/>
+      </eAnnotations>
+      <children xmi:type="notation:DecorationNode" xmi:id="_NtDFoP33Eeaho99HbWPUFw" type="Transition_NameLabel">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_NtDFof33Eeaho99HbWPUFw" x="-3" y="-7"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_NtDFov33Eeaho99HbWPUFw" type="Transition_GuardLabel">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_NtDFo_33Eeaho99HbWPUFw"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_NtDFpP33Eeaho99HbWPUFw" type="Transition_StereotypeLabel">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_NtDFpf33Eeaho99HbWPUFw" y="60"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_NtCekf33Eeaho99HbWPUFw"/>
+      <element xmi:type="uml:Transition" href="ExclusionsTransitions.uml#_Pomo0P32Eeaho99HbWPUFw"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NtCekv33Eeaho99HbWPUFw" points="[31, 48, -643984, -643984]$[31, 48, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NtDssP33Eeaho99HbWPUFw" id="(0.0,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NtDssf33Eeaho99HbWPUFw" id="(0.0,0.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_NuGOgP33Eeaho99HbWPUFw" type="Transition_Edge" target="_NleeCf33Eeaho99HbWPUFw">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NxSFYP33Eeaho99HbWPUFw" source="PapyrusCSSForceValue">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_NxSFYf33Eeaho99HbWPUFw" key="mutable" value="true"/>
+      </eAnnotations>
+      <children xmi:type="notation:DecorationNode" xmi:id="_NuGOg_33Eeaho99HbWPUFw" type="Transition_NameLabel">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_NuGOhP33Eeaho99HbWPUFw"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_NuGOhf33Eeaho99HbWPUFw" type="Transition_GuardLabel">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_NuGOhv33Eeaho99HbWPUFw"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_NuGOh_33Eeaho99HbWPUFw" type="Transition_StereotypeLabel">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_NuGOiP33Eeaho99HbWPUFw" y="60"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_NuGOgf33Eeaho99HbWPUFw"/>
+      <element xmi:type="uml:Transition" href="ExclusionsTransitions.uml#_i86LEP32Eeaho99HbWPUFw"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NuGOgv33Eeaho99HbWPUFw" points="[2, 3, -168, 82]$[174, -78, 4, 1]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NuHcoP33Eeaho99HbWPUFw" id="(0.0,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NuHcof33Eeaho99HbWPUFw" id="(0.0,0.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_NuHcov33Eeaho99HbWPUFw" type="Transition_Edge" target="_NlfFEP33Eeaho99HbWPUFw">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_NxSFYv33Eeaho99HbWPUFw" source="PapyrusCSSForceValue">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_NxSFY_33Eeaho99HbWPUFw" key="mutable" value="true"/>
+      </eAnnotations>
+      <children xmi:type="notation:DecorationNode" xmi:id="_NuHcpf33Eeaho99HbWPUFw" type="Transition_NameLabel">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_NuHcpv33Eeaho99HbWPUFw"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_NuHcp_33Eeaho99HbWPUFw" type="Transition_GuardLabel">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_NuHcqP33Eeaho99HbWPUFw"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_NuIDsP33Eeaho99HbWPUFw" type="Transition_StereotypeLabel">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_NuIDsf33Eeaho99HbWPUFw" y="60"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_NuHco_33Eeaho99HbWPUFw"/>
+      <element xmi:type="uml:Transition" href="ExclusionsTransitions.uml#_mKKxQP32Eeaho99HbWPUFw"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NuHcpP33Eeaho99HbWPUFw" points="[2, 3, -168, 3]$[173, 2, 3, 2]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NuIDsv33Eeaho99HbWPUFw" id="(0.0,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NuIDs_33Eeaho99HbWPUFw" id="(0.0,0.0)"/>
+    </edges>
+  </notation:Diagram>
+  <notation:Diagram xmi:id="_sOb8gP-FEeagDfx54OupdQ" type="CompositeStructure" measurementUnit="Pixel">
+    <children xmi:type="notation:Shape" xmi:id="_sOe_0P-FEeagDfx54OupdQ" type="Class_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_sOgN8P-FEeagDfx54OupdQ" type="Class_NameLabel"/>
+      <children xmi:type="notation:DecorationNode" xmi:id="_sOg1AP-FEeagDfx54OupdQ" type="Class_FloatingNameLabel">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_sOg1Af-FEeagDfx54OupdQ" y="5"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_sOg1Av-FEeagDfx54OupdQ" type="Class_StructureCompartment">
+        <styles xmi:type="notation:TitleStyle" xmi:id="_sOg1A_-FEeagDfx54OupdQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sOg1BP-FEeagDfx54OupdQ"/>
+      </children>
+      <element xmi:type="uml:Class" href="ExclusionsTransitions.uml#_sNUiMP-FEeagDfx54OupdQ"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_sOe_0f-FEeagDfx54OupdQ" x="40" y="40" width="500" height="250"/>
+    </children>
+    <styles xmi:type="notation:StringValueStyle" xmi:id="_sOb8gf-FEeagDfx54OupdQ" name="diagram_compatibility_version" stringValue="1.2.0"/>
+    <styles xmi:type="notation:DiagramStyle" xmi:id="_sOb8gv-FEeagDfx54OupdQ"/>
+    <styles xmi:type="style:PapyrusViewStyle" xmi:id="_sOb8g_-FEeagDfx54OupdQ">
+      <owner xmi:type="uml:Class" href="ExclusionsTransitions.uml#_sNUiMP-FEeagDfx54OupdQ"/>
+      <configuration xmi:type="configuration:PapyrusDiagram" href="platform:/plugin/org.eclipse.papyrusrt.umlrt.tooling.diagram.common/configuration/UMLRT.configuration#_Z79eQHcZEeSnWeKqQOfW2A"/>
+    </styles>
+    <element xmi:type="uml:Class" href="ExclusionsTransitions.uml#_sNUiMP-FEeagDfx54OupdQ"/>
+  </notation:Diagram>
+  <notation:Diagram xmi:id="_vTfo8P-FEeagDfx54OupdQ" type="PapyrusUMLStateMachineDiagram" measurementUnit="Pixel">
+    <children xmi:type="notation:Shape" xmi:id="_vTfo8f-FEeagDfx54OupdQ" type="StateMachine_Shape">
+      <children xmi:type="notation:DecorationNode" xmi:id="_vTfo8v-FEeagDfx54OupdQ" type="StateMachine_NameLabel">
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vTfo8_-FEeagDfx54OupdQ" width="700" height="16"/>
+      </children>
+      <children xmi:type="notation:BasicCompartment" xmi:id="_vTfo9P-FEeagDfx54OupdQ" type="StateMachine_RegionCompartment">
+        <children xmi:type="notation:Shape" xmi:id="_vTfo9f-FEeagDfx54OupdQ" type="Region_Shape">
+          <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_vTfo9v-FEeagDfx54OupdQ" source="RegionAnnotationKey">
+            <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_vTfo9_-FEeagDfx54OupdQ" key="RegionZoneKey" value=""/>
+          </eAnnotations>
+          <children xmi:type="notation:BasicCompartment" xmi:id="_vTfo-P-FEeagDfx54OupdQ" type="Region_SubvertexCompartment">
+            <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wWog8P-FEeagDfx54OupdQ" source="PapyrusCSSForceValue">
+              <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wWog8f-FEeagDfx54OupdQ" key="mutable" value="true"/>
+            </eAnnotations>
+            <children xmi:type="notation:Shape" xmi:id="_wKMAYP-FEeagDfx54OupdQ" type="Pseudostate_InitialShape">
+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wWog8v-FEeagDfx54OupdQ" source="PapyrusCSSForceValue">
+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wWog8_-FEeagDfx54OupdQ" key="mutable" value="true"/>
+              </eAnnotations>
+              <children xmi:type="notation:DecorationNode" xmi:id="_wKMAYv-FEeagDfx54OupdQ" type="Pseudostate_InitialFloatingNameLabel">
+                <layoutConstraint xmi:type="notation:Location" xmi:id="_wKMAY_-FEeagDfx54OupdQ" x="25" y="3"/>
+              </children>
+              <children xmi:type="notation:DecorationNode" xmi:id="_wKMAZP-FEeagDfx54OupdQ" type="Pseudostate_InitialStereotypeLabel">
+                <layoutConstraint xmi:type="notation:Location" xmi:id="_wKMAZf-FEeagDfx54OupdQ" x="25" y="-10"/>
+              </children>
+              <element xmi:type="uml:Pseudostate" href="ExclusionsTransitions.uml#_Pn6sUP32Eeaho99HbWPUFw"/>
+              <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wKMAYf-FEeagDfx54OupdQ" x="51" y="82" width="20" height="20"/>
+            </children>
+            <children xmi:type="notation:Shape" xmi:id="_wKMncP-FEeagDfx54OupdQ" type="State_Shape">
+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wWog9P-FEeagDfx54OupdQ" source="PapyrusCSSForceValue">
+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wWog9f-FEeagDfx54OupdQ" key="mutable" value="true"/>
+              </eAnnotations>
+              <children xmi:type="notation:DecorationNode" xmi:id="_wKMncv-FEeagDfx54OupdQ" type="State_NameLabel"/>
+              <children xmi:type="notation:DecorationNode" xmi:id="_wKMnc_-FEeagDfx54OupdQ" type="State_FloatingNameLabel">
+                <layoutConstraint xmi:type="notation:Location" xmi:id="_wKMndP-FEeagDfx54OupdQ" x="40"/>
+              </children>
+              <children xmi:type="notation:BasicCompartment" xmi:id="_wKMndf-FEeagDfx54OupdQ" type="State_RegionCompartment">
+                <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wKMndv-FEeagDfx54OupdQ"/>
+              </children>
+              <children xmi:type="notation:Compartment" xmi:id="_wKNOgP-FEeagDfx54OupdQ" type="InternalTransitions">
+                <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wKNOgf-FEeagDfx54OupdQ"/>
+              </children>
+              <element xmi:type="uml:State" href="ExclusionsTransitions.uml#_PoVjEP32Eeaho99HbWPUFw"/>
+              <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wKMncf-FEeagDfx54OupdQ" x="91" y="123" width="40" height="40"/>
+            </children>
+            <children xmi:type="notation:Shape" xmi:id="_wKNOgv-FEeagDfx54OupdQ" type="State_Shape">
+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wWog9v-FEeagDfx54OupdQ" source="PapyrusCSSForceValue">
+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wWog9_-FEeagDfx54OupdQ" key="mutable" value="true"/>
+              </eAnnotations>
+              <children xmi:type="notation:DecorationNode" xmi:id="_wKNOhP-FEeagDfx54OupdQ" type="State_NameLabel"/>
+              <children xmi:type="notation:DecorationNode" xmi:id="_wKNOhf-FEeagDfx54OupdQ" type="State_FloatingNameLabel">
+                <layoutConstraint xmi:type="notation:Location" xmi:id="_wKNOhv-FEeagDfx54OupdQ" x="40"/>
+              </children>
+              <children xmi:type="notation:BasicCompartment" xmi:id="_wKNOh_-FEeagDfx54OupdQ" type="State_RegionCompartment">
+                <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wKNOiP-FEeagDfx54OupdQ"/>
+              </children>
+              <children xmi:type="notation:Compartment" xmi:id="_wKNOif-FEeagDfx54OupdQ" type="InternalTransitions">
+                <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wKNOiv-FEeagDfx54OupdQ"/>
+              </children>
+              <element xmi:type="uml:State" href="ExclusionsTransitions.uml#_esL8wP32Eeaho99HbWPUFw"/>
+              <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wKNOg_-FEeagDfx54OupdQ" x="261" y="44"/>
+            </children>
+            <children xmi:type="notation:Shape" xmi:id="_wKN1kP-FEeagDfx54OupdQ" type="State_Shape">
+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wWog-P-FEeagDfx54OupdQ" source="PapyrusCSSForceValue">
+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wWog-f-FEeagDfx54OupdQ" key="mutable" value="true"/>
+              </eAnnotations>
+              <children xmi:type="notation:DecorationNode" xmi:id="_wKN1kv-FEeagDfx54OupdQ" type="State_NameLabel"/>
+              <children xmi:type="notation:DecorationNode" xmi:id="_wKN1k_-FEeagDfx54OupdQ" type="State_FloatingNameLabel">
+                <layoutConstraint xmi:type="notation:Location" xmi:id="_wKN1lP-FEeagDfx54OupdQ" x="40"/>
+              </children>
+              <children xmi:type="notation:BasicCompartment" xmi:id="_wKN1lf-FEeagDfx54OupdQ" type="State_RegionCompartment">
+                <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wKN1lv-FEeagDfx54OupdQ"/>
+              </children>
+              <children xmi:type="notation:Compartment" xmi:id="_wKN1l_-FEeagDfx54OupdQ" type="InternalTransitions">
+                <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wKN1mP-FEeagDfx54OupdQ"/>
+              </children>
+              <element xmi:type="uml:State" href="ExclusionsTransitions.uml#_fN1RQP32Eeaho99HbWPUFw"/>
+              <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wKN1kf-FEeagDfx54OupdQ" x="261" y="123"/>
+            </children>
+            <children xmi:type="notation:Shape" xmi:id="_wKN1mf-FEeagDfx54OupdQ" type="State_Shape">
+              <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wWpIAP-FEeagDfx54OupdQ" source="PapyrusCSSForceValue">
+                <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wWpIAf-FEeagDfx54OupdQ" key="mutable" value="true"/>
+              </eAnnotations>
+              <children xmi:type="notation:DecorationNode" xmi:id="_wKN1m_-FEeagDfx54OupdQ" type="State_NameLabel"/>
+              <children xmi:type="notation:DecorationNode" xmi:id="_wKN1nP-FEeagDfx54OupdQ" type="State_FloatingNameLabel">
+                <layoutConstraint xmi:type="notation:Location" xmi:id="_wKN1nf-FEeagDfx54OupdQ" x="40"/>
+              </children>
+              <children xmi:type="notation:BasicCompartment" xmi:id="_wKN1nv-FEeagDfx54OupdQ" type="State_RegionCompartment">
+                <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wKN1n_-FEeagDfx54OupdQ"/>
+              </children>
+              <children xmi:type="notation:Compartment" xmi:id="_wKN1oP-FEeagDfx54OupdQ" type="InternalTransitions">
+                <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wKN1of-FEeagDfx54OupdQ"/>
+              </children>
+              <element xmi:type="uml:State" href="ExclusionsTransitions.uml#_nDkecP32Eeaho99HbWPUFw"/>
+              <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wKN1mv-FEeagDfx54OupdQ" x="261" y="202"/>
+            </children>
+            <children xmi:type="notation:Shape" xmi:id="_wKjz0P-FEeagDfx54OupdQ" type="StereotypeComment">
+              <styles xmi:type="notation:TitleStyle" xmi:id="_wKjz0f-FEeagDfx54OupdQ"/>
+              <styles xmi:type="notation:EObjectValueStyle" xmi:id="_wKjz0_-FEeagDfx54OupdQ" name="BASE_ELEMENT">
+                <eObjectValue xmi:type="uml:Pseudostate" href="ExclusionsTransitions.uml#_vSp7cv-FEeagDfx54OupdQ"/>
+              </styles>
+              <element xsi:nil="true"/>
+              <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wKjz0v-FEeagDfx54OupdQ" x="251" y="82"/>
+            </children>
+            <children xmi:type="notation:Shape" xmi:id="_wKwoIP-FEeagDfx54OupdQ" type="StereotypeComment">
+              <styles xmi:type="notation:TitleStyle" xmi:id="_wKwoIf-FEeagDfx54OupdQ"/>
+              <styles xmi:type="notation:EObjectValueStyle" xmi:id="_wKwoI_-FEeagDfx54OupdQ" name="BASE_ELEMENT">
+                <eObjectValue xmi:type="uml:State" href="ExclusionsTransitions.uml#_vSqigf-FEeagDfx54OupdQ"/>
+              </styles>
+              <element xsi:nil="true"/>
+              <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wKwoIv-FEeagDfx54OupdQ" x="291" y="123"/>
+            </children>
+            <children xmi:type="notation:Shape" xmi:id="_wK7nQP-FEeagDfx54OupdQ" type="StereotypeComment">
+              <styles xmi:type="notation:TitleStyle" xmi:id="_wK7nQf-FEeagDfx54OupdQ"/>
+              <styles xmi:type="notation:EObjectValueStyle" xmi:id="_wK7nQ_-FEeagDfx54OupdQ" name="BASE_ELEMENT">
+                <eObjectValue xmi:type="uml:State" href="ExclusionsTransitions.uml#_vSrJkf-FEeagDfx54OupdQ"/>
+              </styles>
+              <element xsi:nil="true"/>
+              <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wK7nQv-FEeagDfx54OupdQ" x="461" y="44"/>
+            </children>
+            <children xmi:type="notation:Shape" xmi:id="_wLGmYP-FEeagDfx54OupdQ" type="StereotypeComment">
+              <styles xmi:type="notation:TitleStyle" xmi:id="_wLGmYf-FEeagDfx54OupdQ"/>
+              <styles xmi:type="notation:EObjectValueStyle" xmi:id="_wLGmY_-FEeagDfx54OupdQ" name="BASE_ELEMENT">
+                <eObjectValue xmi:type="uml:State" href="ExclusionsTransitions.uml#_vSrwof-FEeagDfx54OupdQ"/>
+              </styles>
+              <element xsi:nil="true"/>
+              <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wLGmYv-FEeagDfx54OupdQ" x="461" y="123"/>
+            </children>
+            <children xmi:type="notation:Shape" xmi:id="_wLSMkP-FEeagDfx54OupdQ" type="StereotypeComment">
+              <styles xmi:type="notation:TitleStyle" xmi:id="_wLSMkf-FEeagDfx54OupdQ"/>
+              <styles xmi:type="notation:EObjectValueStyle" xmi:id="_wLSMk_-FEeagDfx54OupdQ" name="BASE_ELEMENT">
+                <eObjectValue xmi:type="uml:State" href="ExclusionsTransitions.uml#_vSs-wP-FEeagDfx54OupdQ"/>
+              </styles>
+              <element xsi:nil="true"/>
+              <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wLSMkv-FEeagDfx54OupdQ" x="461" y="202"/>
+            </children>
+            <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vTfo-f-FEeagDfx54OupdQ" width="136" height="208"/>
+          </children>
+          <element xmi:type="uml:Region" href="ExclusionsTransitions.uml#_PntQ8P32Eeaho99HbWPUFw"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vTfo-v-FEeagDfx54OupdQ" width="700" height="287"/>
+        </children>
+        <children xmi:type="notation:Shape" xmi:id="_wKBBQP-FEeagDfx54OupdQ" type="StereotypeComment">
+          <styles xmi:type="notation:TitleStyle" xmi:id="_wKBBQf-FEeagDfx54OupdQ"/>
+          <styles xmi:type="notation:EObjectValueStyle" xmi:id="_wKBoUP-FEeagDfx54OupdQ" name="BASE_ELEMENT">
+            <eObjectValue xmi:type="uml:Region" href="ExclusionsTransitions.uml#_vSpUYf-FEeagDfx54OupdQ"/>
+          </styles>
+          <element xsi:nil="true"/>
+          <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wKBBQv-FEeagDfx54OupdQ" x="200"/>
+        </children>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vTfo-_-FEeagDfx54OupdQ" y="16" width="700" height="284"/>
+      </children>
+      <element xmi:type="uml:StateMachine" href="ExclusionsTransitions.uml#_vShYkP-FEeagDfx54OupdQ"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vTfo_P-FEeagDfx54OupdQ" x="28" y="29" width="700" height="300"/>
+    </children>
+    <children xmi:type="notation:Shape" xmi:id="_wJ33UP-FEeagDfx54OupdQ" type="StereotypeComment">
+      <styles xmi:type="notation:TitleStyle" xmi:id="_wJ33Uf-FEeagDfx54OupdQ"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_wJ4eYP-FEeagDfx54OupdQ" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:StateMachine" href="ExclusionsTransitions.uml#_vShYkP-FEeagDfx54OupdQ"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wJ33Uv-FEeagDfx54OupdQ" x="228" y="29"/>
+    </children>
+    <styles xmi:type="notation:StringValueStyle" xmi:id="_vTfo_f-FEeagDfx54OupdQ" name="diagram_compatibility_version" stringValue="1.2.0"/>
+    <styles xmi:type="notation:DiagramStyle" xmi:id="_vTfo_v-FEeagDfx54OupdQ"/>
+    <styles xmi:type="style:PapyrusViewStyle" xmi:id="_vTfo__-FEeagDfx54OupdQ">
+      <owner xmi:type="uml:StateMachine" href="ExclusionsTransitions.uml#_vShYkP-FEeagDfx54OupdQ"/>
+      <configuration xmi:type="configuration:PapyrusDiagram" href="platform:/plugin/org.eclipse.papyrusrt.umlrt.tooling.diagram.statemachine/configuration/RTStateMachine.configuration#_Z79eQHcZEeSnWeKqQOfW2A"/>
+    </styles>
+    <element xmi:type="uml:StateMachine" href="ExclusionsTransitions.uml#_vShYkP-FEeagDfx54OupdQ"/>
+    <edges xmi:type="notation:Connector" xmi:id="_wJ4eYf-FEeagDfx54OupdQ" type="StereotypeCommentLink" source="_vTfo8f-FEeagDfx54OupdQ" target="_wJ33UP-FEeagDfx54OupdQ">
+      <styles xmi:type="notation:FontStyle" xmi:id="_wJ4eYv-FEeagDfx54OupdQ"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_wJ5Fcv-FEeagDfx54OupdQ" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:StateMachine" href="ExclusionsTransitions.uml#_vShYkP-FEeagDfx54OupdQ"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wJ4eY_-FEeagDfx54OupdQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wJ5FcP-FEeagDfx54OupdQ"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wJ5Fcf-FEeagDfx54OupdQ"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_wKBoUf-FEeagDfx54OupdQ" type="StereotypeCommentLink" source="_vTfo9f-FEeagDfx54OupdQ" target="_wKBBQP-FEeagDfx54OupdQ">
+      <styles xmi:type="notation:FontStyle" xmi:id="_wKBoUv-FEeagDfx54OupdQ"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_wKBoVv-FEeagDfx54OupdQ" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:Region" href="ExclusionsTransitions.uml#_vSpUYf-FEeagDfx54OupdQ"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wKBoU_-FEeagDfx54OupdQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wKBoVP-FEeagDfx54OupdQ"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wKBoVf-FEeagDfx54OupdQ"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_wKjz1P-FEeagDfx54OupdQ" type="StereotypeCommentLink" source="_wKMAYP-FEeagDfx54OupdQ" target="_wKjz0P-FEeagDfx54OupdQ">
+      <styles xmi:type="notation:FontStyle" xmi:id="_wKjz1f-FEeagDfx54OupdQ"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_wKjz2f-FEeagDfx54OupdQ" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:Pseudostate" href="ExclusionsTransitions.uml#_vSp7cv-FEeagDfx54OupdQ"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wKjz1v-FEeagDfx54OupdQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wKjz1_-FEeagDfx54OupdQ"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wKjz2P-FEeagDfx54OupdQ"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_wKwoJP-FEeagDfx54OupdQ" type="StereotypeCommentLink" source="_wKMncP-FEeagDfx54OupdQ" target="_wKwoIP-FEeagDfx54OupdQ">
+      <styles xmi:type="notation:FontStyle" xmi:id="_wKwoJf-FEeagDfx54OupdQ"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_wKwoKf-FEeagDfx54OupdQ" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:State" href="ExclusionsTransitions.uml#_vSqigf-FEeagDfx54OupdQ"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wKwoJv-FEeagDfx54OupdQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wKwoJ_-FEeagDfx54OupdQ"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wKwoKP-FEeagDfx54OupdQ"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_wK7nRP-FEeagDfx54OupdQ" type="StereotypeCommentLink" source="_wKNOgv-FEeagDfx54OupdQ" target="_wK7nQP-FEeagDfx54OupdQ">
+      <styles xmi:type="notation:FontStyle" xmi:id="_wK7nRf-FEeagDfx54OupdQ"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_wK7nSf-FEeagDfx54OupdQ" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:State" href="ExclusionsTransitions.uml#_vSrJkf-FEeagDfx54OupdQ"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wK7nRv-FEeagDfx54OupdQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wK7nR_-FEeagDfx54OupdQ"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wK7nSP-FEeagDfx54OupdQ"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_wLGmZP-FEeagDfx54OupdQ" type="StereotypeCommentLink" source="_wKN1kP-FEeagDfx54OupdQ" target="_wLGmYP-FEeagDfx54OupdQ">
+      <styles xmi:type="notation:FontStyle" xmi:id="_wLGmZf-FEeagDfx54OupdQ"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_wLGmaf-FEeagDfx54OupdQ" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:State" href="ExclusionsTransitions.uml#_vSrwof-FEeagDfx54OupdQ"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wLGmZv-FEeagDfx54OupdQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wLGmZ_-FEeagDfx54OupdQ"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wLGmaP-FEeagDfx54OupdQ"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_wLSMlP-FEeagDfx54OupdQ" type="StereotypeCommentLink" source="_wKN1mf-FEeagDfx54OupdQ" target="_wLSMkP-FEeagDfx54OupdQ">
+      <styles xmi:type="notation:FontStyle" xmi:id="_wLSMlf-FEeagDfx54OupdQ"/>
+      <styles xmi:type="notation:EObjectValueStyle" xmi:id="_wLSMmf-FEeagDfx54OupdQ" name="BASE_ELEMENT">
+        <eObjectValue xmi:type="uml:State" href="ExclusionsTransitions.uml#_vSs-wP-FEeagDfx54OupdQ"/>
+      </styles>
+      <element xsi:nil="true"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wLSMlv-FEeagDfx54OupdQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wLSMl_-FEeagDfx54OupdQ"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wLSMmP-FEeagDfx54OupdQ"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_wVkJ8P-FEeagDfx54OupdQ" type="Transition_Edge" source="_wKMAYP-FEeagDfx54OupdQ" target="_wKMncP-FEeagDfx54OupdQ">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wkZ3MP-FEeagDfx54OupdQ" source="PapyrusCSSForceValue">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wkaeQP-FEeagDfx54OupdQ" key="mutable" value="true"/>
+      </eAnnotations>
+      <children xmi:type="notation:DecorationNode" xmi:id="_wVkJ8_-FEeagDfx54OupdQ" type="Transition_NameLabel">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_wVkJ9P-FEeagDfx54OupdQ" x="-3" y="-7"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_wVkJ9f-FEeagDfx54OupdQ" type="Transition_GuardLabel">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_wVkJ9v-FEeagDfx54OupdQ"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_wVkJ9_-FEeagDfx54OupdQ" type="Transition_StereotypeLabel">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_wVkJ-P-FEeagDfx54OupdQ" y="60"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_wVkJ8f-FEeagDfx54OupdQ"/>
+      <element xmi:type="uml:Transition" href="ExclusionsTransitions.uml#_Pomo0P32Eeaho99HbWPUFw"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wVkJ8v-FEeagDfx54OupdQ" points="[31, 48, -643984, -643984]$[31, 48, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wVlYEP-FEeagDfx54OupdQ" id="(0.0,0.0)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wVl_IP-FEeagDfx54OupdQ" id="(0.0,0.0)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_wV3r8P-FEeagDfx54OupdQ" type="Transition_Edge" source="_wKMncP-FEeagDfx54OupdQ" target="_wKNOgv-FEeagDfx54OupdQ">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wkq88P-FEeagDfx54OupdQ" source="PapyrusCSSForceValue">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wkq88f-FEeagDfx54OupdQ" key="mutable" value="true"/>
+      </eAnnotations>
+      <children xmi:type="notation:DecorationNode" xmi:id="_wV4TAP-FEeagDfx54OupdQ" type="Transition_NameLabel">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_wV4TAf-FEeagDfx54OupdQ" x="-16" y="-15"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_wV4TAv-FEeagDfx54OupdQ" type="Transition_GuardLabel">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_wV4TA_-FEeagDfx54OupdQ"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_wV4TBP-FEeagDfx54OupdQ" type="Transition_StereotypeLabel">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_wV4TBf-FEeagDfx54OupdQ" y="60"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_wV3r8f-FEeagDfx54OupdQ"/>
+      <element xmi:type="uml:Transition" href="ExclusionsTransitions.uml#_i86LEP32Eeaho99HbWPUFw"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wV3r8v-FEeagDfx54OupdQ" points="[157, 159, -643984, -643984]$[300, 89, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wV46EP-FEeagDfx54OupdQ" id="(0.575,0.225)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wV46Ef-FEeagDfx54OupdQ" id="(0.4,0.3)"/>
+    </edges>
+    <edges xmi:type="notation:Connector" xmi:id="_wV5hIP-FEeagDfx54OupdQ" type="Transition_Edge" source="_wKMncP-FEeagDfx54OupdQ" target="_wKN1kP-FEeagDfx54OupdQ">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_wkq88v-FEeagDfx54OupdQ" source="PapyrusCSSForceValue">
+        <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_wkq88_-FEeagDfx54OupdQ" key="mutable" value="true"/>
+      </eAnnotations>
+      <children xmi:type="notation:DecorationNode" xmi:id="_wV5hI_-FEeagDfx54OupdQ" type="Transition_NameLabel">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_wV5hJP-FEeagDfx54OupdQ" x="-1" y="-9"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_wV5hJf-FEeagDfx54OupdQ" type="Transition_GuardLabel">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_wV5hJv-FEeagDfx54OupdQ"/>
+      </children>
+      <children xmi:type="notation:DecorationNode" xmi:id="_wV5hJ_-FEeagDfx54OupdQ" type="Transition_StereotypeLabel">
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_wV5hKP-FEeagDfx54OupdQ" y="60"/>
+      </children>
+      <styles xmi:type="notation:FontStyle" xmi:id="_wV5hIf-FEeagDfx54OupdQ"/>
+      <element xmi:type="uml:Transition" href="ExclusionsTransitions.uml#_mKKxQP32Eeaho99HbWPUFw"/>
+      <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wV5hIv-FEeagDfx54OupdQ" points="[160, 183, -643984, -643984]$[295, 207, -643984, -643984]"/>
+      <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wV6IMP-FEeagDfx54OupdQ" id="(0.675,0.575)"/>
+      <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wV6IMf-FEeagDfx54OupdQ" id="(0.425,0.6)"/>
+    </edges>
+  </notation:Diagram>
+</xmi:XMI>
diff --git a/models/tests/codepattern/structure/ExclusionsTransitions/ExclusionsTransitions.uml b/models/tests/codepattern/structure/ExclusionsTransitions/ExclusionsTransitions.uml
new file mode 100644
index 0000000..c17bcc7
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsTransitions/ExclusionsTransitions.uml
@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:UMLRTStateMachines="http://www.eclipse.org/papyrus/umlrt/statemachine" xmlns:UMLRealTime="http://www.eclipse.org/papyrus/umlrt" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML">
+  <uml:Model xmi:id="_1a7bAP31Eeaho99HbWPUFw" name="ExclusionsTransitions">
+    <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1a7bAf31Eeaho99HbWPUFw" source="http://www.eclipse.org/papyrus-rt/language/1.0.0">
+      <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1a7bAv31Eeaho99HbWPUFw" key="language" value="umlrt-cpp"/>
+    </eAnnotations>
+    <packagedElement xmi:type="uml:Package" xmi:id="_7h5ZQP31Eeaho99HbWPUFw" name="Protocol1">
+      <packagedElement xmi:type="uml:Collaboration" xmi:id="_7bz_YP31Eeaho99HbWPUFw" name="Protocol1">
+        <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_7ii5gP31Eeaho99HbWPUFw" client="_7bz_YP31Eeaho99HbWPUFw" supplier="_7iWsQP31Eeaho99HbWPUFw" contract="_7iWsQP31Eeaho99HbWPUFw"/>
+        <interfaceRealization xmi:type="uml:InterfaceRealization" xmi:id="_7i10cP31Eeaho99HbWPUFw" client="_7bz_YP31Eeaho99HbWPUFw" supplier="_7iwU4P31Eeaho99HbWPUFw" contract="_7iwU4P31Eeaho99HbWPUFw"/>
+      </packagedElement>
+      <packagedElement xmi:type="uml:Interface" xmi:id="_7iWsQP31Eeaho99HbWPUFw" name="Protocol1">
+        <ownedOperation xmi:type="uml:Operation" xmi:id="_I2CI0P32Eeaho99HbWPUFw" name="m1">
+          <ownedParameter xmi:type="uml:Parameter" xmi:id="_5_hyIP32Eeaho99HbWPUFw" name="data">
+            <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_zL7x0OmKEeG_gcDHG3asaQ"/>
+          </ownedParameter>
+        </ownedOperation>
+        <ownedOperation xmi:type="uml:Operation" xmi:id="_K-x-AP32Eeaho99HbWPUFw" name="m2">
+          <ownedParameter xmi:type="uml:Parameter" xmi:id="_8LWwgP32Eeaho99HbWPUFw" name="data">
+            <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_V3dAkOmJEeG_gcDHG3asaQ"/>
+          </ownedParameter>
+        </ownedOperation>
+        <ownedOperation xmi:type="uml:Operation" xmi:id="_klkyAP32Eeaho99HbWPUFw" name="m3">
+          <ownedParameter xmi:type="uml:Parameter" xmi:id="_9S7ckP32Eeaho99HbWPUFw" name="data">
+            <type xmi:type="uml:PrimitiveType" href="pathmap://PapyrusC_Cpp_LIBRARIES/AnsiCLibrary.uml#_yJpD0OmJEeG_gcDHG3asaQ"/>
+          </ownedParameter>
+        </ownedOperation>
+      </packagedElement>
+      <packagedElement xmi:type="uml:Interface" xmi:id="_7inK8P31Eeaho99HbWPUFw" name="Protocol1~"/>
+      <packagedElement xmi:type="uml:Usage" xmi:id="_7it4oP31Eeaho99HbWPUFw" client="_7bz_YP31Eeaho99HbWPUFw" supplier="_7inK8P31Eeaho99HbWPUFw"/>
+      <packagedElement xmi:type="uml:AnyReceiveEvent" xmi:id="_7ivGwP31Eeaho99HbWPUFw" name="*"/>
+      <packagedElement xmi:type="uml:Interface" xmi:id="_7iwU4P31Eeaho99HbWPUFw" name="Protocol1IO"/>
+      <packagedElement xmi:type="uml:Usage" xmi:id="_7i3CkP31Eeaho99HbWPUFw" client="_7bz_YP31Eeaho99HbWPUFw" supplier="_7iwU4P31Eeaho99HbWPUFw"/>
+      <packagedElement xmi:type="uml:CallEvent" xmi:id="_I2bxcP32Eeaho99HbWPUFw" operation="_I2CI0P32Eeaho99HbWPUFw"/>
+      <packagedElement xmi:type="uml:CallEvent" xmi:id="_K-4EoP32Eeaho99HbWPUFw" operation="_K-x-AP32Eeaho99HbWPUFw"/>
+      <packagedElement xmi:type="uml:CallEvent" xmi:id="_klpqgP32Eeaho99HbWPUFw" operation="_klkyAP32Eeaho99HbWPUFw"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Class" xmi:id="_-5oKEP31Eeaho99HbWPUFw" name="Top" isActive="true">
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_T9V0cP32Eeaho99HbWPUFw" name="a" visibility="protected" type="_ANBroP32Eeaho99HbWPUFw" isOrdered="true" aggregation="composite"/>
+      <ownedAttribute xmi:type="uml:Property" xmi:id="_UBdfcP32Eeaho99HbWPUFw" name="b" visibility="protected" type="_sNUiMP-FEeagDfx54OupdQ" isOrdered="true" aggregation="composite"/>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Class" xmi:id="_ANBroP32Eeaho99HbWPUFw" name="A" classifierBehavior="_Pm-4MP32Eeaho99HbWPUFw" isActive="true">
+      <ownedAttribute xmi:type="uml:Port" xmi:id="_FpsvsP32Eeaho99HbWPUFw" name="p" visibility="public" type="_7bz_YP31Eeaho99HbWPUFw" isOrdered="true" aggregation="composite" isBehavior="true"/>
+      <ownedBehavior xmi:type="uml:StateMachine" xmi:id="_Pm-4MP32Eeaho99HbWPUFw" name="StateMachine" isReentrant="false">
+        <region xmi:type="uml:Region" xmi:id="_PntQ8P32Eeaho99HbWPUFw" name="Region">
+          <transition xmi:type="uml:Transition" xmi:id="_Pomo0P32Eeaho99HbWPUFw" name="" source="_Pn6sUP32Eeaho99HbWPUFw" target="_PoVjEP32Eeaho99HbWPUFw"/>
+          <transition xmi:type="uml:Transition" xmi:id="_i86LEP32Eeaho99HbWPUFw" name="" source="_PoVjEP32Eeaho99HbWPUFw" target="_esL8wP32Eeaho99HbWPUFw">
+            <trigger xmi:type="uml:Trigger" xmi:id="_FSFrgP33Eeaho99HbWPUFw" event="_I2bxcP32Eeaho99HbWPUFw" port="_FpsvsP32Eeaho99HbWPUFw"/>
+          </transition>
+          <transition xmi:type="uml:Transition" xmi:id="_mKKxQP32Eeaho99HbWPUFw" name="" source="_PoVjEP32Eeaho99HbWPUFw" target="_fN1RQP32Eeaho99HbWPUFw">
+            <trigger xmi:type="uml:Trigger" xmi:id="_HFRgYP33Eeaho99HbWPUFw" event="_K-4EoP32Eeaho99HbWPUFw" port="_FpsvsP32Eeaho99HbWPUFw"/>
+          </transition>
+          <transition xmi:type="uml:Transition" xmi:id="_nwvGcP32Eeaho99HbWPUFw" name="" source="_PoVjEP32Eeaho99HbWPUFw" target="_nDkecP32Eeaho99HbWPUFw">
+            <trigger xmi:type="uml:Trigger" xmi:id="_I6O24P33Eeaho99HbWPUFw" event="_klpqgP32Eeaho99HbWPUFw" port="_FpsvsP32Eeaho99HbWPUFw"/>
+          </transition>
+          <subvertex xmi:type="uml:Pseudostate" xmi:id="_Pn6sUP32Eeaho99HbWPUFw" name=""/>
+          <subvertex xmi:type="uml:State" xmi:id="_PoVjEP32Eeaho99HbWPUFw" name="State1"/>
+          <subvertex xmi:type="uml:State" xmi:id="_esL8wP32Eeaho99HbWPUFw" name="State2"/>
+          <subvertex xmi:type="uml:State" xmi:id="_fN1RQP32Eeaho99HbWPUFw" name="State3"/>
+          <subvertex xmi:type="uml:State" xmi:id="_nDkecP32Eeaho99HbWPUFw" name="State4"/>
+        </region>
+      </ownedBehavior>
+    </packagedElement>
+    <packagedElement xmi:type="uml:Class" xmi:id="_sNUiMP-FEeagDfx54OupdQ" name="B" classifierBehavior="_vShYkP-FEeagDfx54OupdQ" isActive="true">
+      <generalization xmi:type="uml:Generalization" xmi:id="_uPdZEP-FEeagDfx54OupdQ" general="_ANBroP32Eeaho99HbWPUFw"/>
+      <ownedBehavior xmi:type="uml:StateMachine" xmi:id="_vShYkP-FEeagDfx54OupdQ" name="StateMachine" redefinedClassifier="_Pm-4MP32Eeaho99HbWPUFw" isReentrant="false" extendedStateMachine="_Pm-4MP32Eeaho99HbWPUFw">
+        <region xmi:type="uml:Region" xmi:id="_vSpUYf-FEeagDfx54OupdQ" extendedRegion="_PntQ8P32Eeaho99HbWPUFw">
+          <transition xmi:type="uml:Transition" xmi:id="_vSuz8P-FEeagDfx54OupdQ" guard="_yIJh4P-FEeagDfx54OupdQ" redefinedTransition="_mKKxQP32Eeaho99HbWPUFw">
+            <ownedRule xmi:type="uml:Constraint" xmi:id="_yIJh4P-FEeagDfx54OupdQ">
+              <specification xmi:type="uml:OpaqueExpression" xmi:id="_0w8JEP-FEeagDfx54OupdQ">
+                <language>C++</language>
+                <body>return data &lt; 0xFF00;</body>
+              </specification>
+            </ownedRule>
+          </transition>
+          <transition xmi:type="uml:Transition" xmi:id="_vSvbAP-FEeagDfx54OupdQ" redefinedTransition="_nwvGcP32Eeaho99HbWPUFw"/>
+        </region>
+      </ownedBehavior>
+    </packagedElement>
+    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_1a7bA_31Eeaho99HbWPUFw">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1a7bBP31Eeaho99HbWPUFw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+        <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/umlrt#/"/>
+      </eAnnotations>
+      <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_RT_PROFILE/uml-rt.profile.uml#_1h74oEeVEeO0lv5O1DTHOQ"/>
+    </profileApplication>
+    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_1a7bBf31Eeaho99HbWPUFw">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1a7bBv31Eeaho99HbWPUFw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+        <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/umlrt/statemachine#/"/>
+      </eAnnotations>
+      <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_RT_PROFILE/UMLRealTimeSM-addendum.profile.uml#_KLcn0FDtEeOA4ecmvfqvaw"/>
+    </profileApplication>
+    <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_1a7bB_31Eeaho99HbWPUFw">
+      <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1a7bCP31Eeaho99HbWPUFw" source="http://www.eclipse.org/uml2/2.0.0/UML">
+        <references xmi:type="ecore:EPackage" href="http://www.eclipse.org/papyrus/umlrt/cppproperties#/"/>
+      </eAnnotations>
+      <appliedProfile xmi:type="uml:Profile" href="pathmap://UMLRT_CPP/RTCppProperties.profile.uml#_vl5LALs8EeSTjNEQkASznQ"/>
+    </profileApplication>
+  </uml:Model>
+  <UMLRealTime:ProtocolContainer xmi:id="_7iBVEP31Eeaho99HbWPUFw" base_Package="_7h5ZQP31Eeaho99HbWPUFw"/>
+  <UMLRealTime:RTMessageSet xmi:id="_7icy4P31Eeaho99HbWPUFw" base_Interface="_7iWsQP31Eeaho99HbWPUFw"/>
+  <UMLRealTime:RTMessageSet xmi:id="_7ircYP31Eeaho99HbWPUFw" base_Interface="_7inK8P31Eeaho99HbWPUFw" rtMsgKind="out"/>
+  <UMLRealTime:RTMessageSet xmi:id="_7iz_QP31Eeaho99HbWPUFw" base_Interface="_7iwU4P31Eeaho99HbWPUFw" rtMsgKind="inOut"/>
+  <UMLRealTime:Protocol xmi:id="_7i6F4P31Eeaho99HbWPUFw" base_Collaboration="_7bz_YP31Eeaho99HbWPUFw"/>
+  <UMLRealTime:Capsule xmi:id="_-9v1EP31Eeaho99HbWPUFw" base_Class="_-5oKEP31Eeaho99HbWPUFw"/>
+  <UMLRealTime:Capsule xmi:id="_ANvdUP32Eeaho99HbWPUFw" base_Class="_ANBroP32Eeaho99HbWPUFw"/>
+  <UMLRealTime:RTPort xmi:id="_FqLQ0P32Eeaho99HbWPUFw" base_Port="_FpsvsP32Eeaho99HbWPUFw"/>
+  <UMLRTStateMachines:RTPseudostate xmi:id="_PoEdUP32Eeaho99HbWPUFw" base_Pseudostate="_Pn6sUP32Eeaho99HbWPUFw"/>
+  <UMLRTStateMachines:RTState xmi:id="_PobCoP32Eeaho99HbWPUFw" base_State="_PoVjEP32Eeaho99HbWPUFw"/>
+  <UMLRTStateMachines:RTRegion xmi:id="_PosvcP32Eeaho99HbWPUFw" base_Region="_PntQ8P32Eeaho99HbWPUFw"/>
+  <UMLRTStateMachines:RTStateMachine xmi:id="_PqdqAP32Eeaho99HbWPUFw" base_StateMachine="_Pm-4MP32Eeaho99HbWPUFw"/>
+  <UMLRealTime:CapsulePart xmi:id="_T9e-YP32Eeaho99HbWPUFw" base_Property="_T9V0cP32Eeaho99HbWPUFw"/>
+  <UMLRealTime:CapsulePart xmi:id="_UBgiwP32Eeaho99HbWPUFw" base_Property="_UBdfcP32Eeaho99HbWPUFw"/>
+  <UMLRTStateMachines:RTState xmi:id="_esPnIP32Eeaho99HbWPUFw" base_State="_esL8wP32Eeaho99HbWPUFw"/>
+  <UMLRTStateMachines:RTState xmi:id="_fN3tgP32Eeaho99HbWPUFw" base_State="_fN1RQP32Eeaho99HbWPUFw"/>
+  <UMLRTStateMachines:RTState xmi:id="_nDnhwP32Eeaho99HbWPUFw" base_State="_nDkecP32Eeaho99HbWPUFw"/>
+  <UMLRealTime:Capsule xmi:id="_sOkfYP-FEeagDfx54OupdQ" base_Class="_sNUiMP-FEeagDfx54OupdQ"/>
+  <UMLRealTime:RTRedefinedElement xmi:id="_vSwpIP-FEeagDfx54OupdQ" base_RedefinableElement="_vShYkP-FEeagDfx54OupdQ" rootFragment="_Pm-4MP32Eeaho99HbWPUFw"/>
+  <UMLRTStateMachines:RTStateMachine xmi:id="_vTg3EP-FEeagDfx54OupdQ" base_StateMachine="_vShYkP-FEeagDfx54OupdQ"/>
+  <UMLRTStateMachines:RTRegion xmi:id="_vSp7cP-FEeagDfx54OupdQ" base_Region="_vSpUYf-FEeagDfx54OupdQ"/>
+  <UMLRealTime:RTRedefinedElement xmi:id="_yH_J0P-FEeagDfx54OupdQ" base_RedefinableElement="_vSpUYf-FEeagDfx54OupdQ" rootFragment="_PntQ8P32Eeaho99HbWPUFw"/>
+  <UMLRealTime:RTRedefinedElement xmi:id="_yH_w4P-FEeagDfx54OupdQ" base_RedefinableElement="_vSuz8P-FEeagDfx54OupdQ" rootFragment="_mKKxQP32Eeaho99HbWPUFw"/>
+  <UMLRealTime:RTRedefinedElement xmi:id="_2oZZ8P-FEeagDfx54OupdQ" base_RedefinableElement="_vSvbAP-FEeagDfx54OupdQ"/>
+</xmi:XMI>
diff --git a/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/A.cc b/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/A.cc
new file mode 100644
index 0000000..78f31b9
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/A.cc
@@ -0,0 +1,189 @@
+
+#include "A.hh"
+
+#include "Protocol1.hh"
+#include "umlrtcommsportrole.hh"
+#include "umlrtmessage.hh"
+#include "umlrtslot.hh"
+#include <cstddef>
+#include "umlrtcapsuleclass.hh"
+#include "umlrtframeservice.hh"
+class UMLRTRtsInterface;
+struct UMLRTCommsPort;
+
+Capsule_A::Capsule_A( const UMLRTCapsuleClass * cd, UMLRTSlot * st, const UMLRTCommsPort * * border, const UMLRTCommsPort * * internal, bool isStat )
+: UMLRTCapsule( NULL, cd, st, border, internal, isStat )
+, p( borderPorts[borderport_p] )
+, currentState( SPECIAL_INTERNAL_STATE_UNVISITED )
+{
+    stateNames[State1] = "State1";
+    stateNames[State2] = "State2";
+    stateNames[State3] = "State3";
+    stateNames[State4] = "State4";
+    stateNames[SPECIAL_INTERNAL_STATE_TOP] = "<top>";
+    stateNames[SPECIAL_INTERNAL_STATE_UNVISITED] = "<uninitialized>";
+}
+
+
+
+
+
+void Capsule_A::bindPort( bool isBorder, int portId, int index )
+{
+    if( isBorder )
+        switch( portId )
+        {
+        case borderport_p:
+            UMLRTFrameService::sendBoundUnbound( borderPorts, borderport_p, index, true );
+            break;
+        }
+}
+
+void Capsule_A::unbindPort( bool isBorder, int portId, int index )
+{
+    if( isBorder )
+        switch( portId )
+        {
+        case borderport_p:
+            UMLRTFrameService::sendBoundUnbound( borderPorts, borderport_p, index, false );
+            UMLRTFrameService::disconnectPort( borderPorts[borderport_p], index );
+            break;
+        }
+}
+
+void Capsule_A::inject( const UMLRTMessage & message )
+{
+    msg = &message;
+    switch( currentState )
+    {
+    case State1:
+        currentState = state_____State1( &message );
+        break;
+    case State2:
+        currentState = state_____State2( &message );
+        break;
+    case State3:
+        currentState = state_____State3( &message );
+        break;
+    case State4:
+        currentState = state_____State4( &message );
+        break;
+    default:
+        break;
+    }
+}
+
+void Capsule_A::initialize( const UMLRTMessage & message )
+{
+    msg = &message;
+    currentState = State1;
+}
+
+const char * Capsule_A::getCurrentStateString() const
+{
+    return stateNames[currentState];
+}
+
+
+
+
+void Capsule_A::update_state( Capsule_A::State newState )
+{
+    currentState = newState;
+}
+
+Capsule_A::State Capsule_A::state_____State1( const UMLRTMessage * msg )
+{
+    switch( msg->destPort->role()->id )
+    {
+    case port_p:
+        switch( msg->getSignalId() )
+        {
+        case Protocol1::signal_m1:
+            return State2;
+        case Protocol1::signal_m2:
+            return State3;
+        case Protocol1::signal_m3:
+            return State4;
+        default:
+            this->unexpectedMessage();
+            break;
+        }
+        return currentState;
+    default:
+        this->unexpectedMessage();
+        break;
+    }
+    return currentState;
+}
+
+Capsule_A::State Capsule_A::state_____State2( const UMLRTMessage * msg )
+{
+    switch( msg->destPort->role()->id )
+    {
+    default:
+        this->unexpectedMessage();
+        break;
+    }
+    return currentState;
+}
+
+Capsule_A::State Capsule_A::state_____State3( const UMLRTMessage * msg )
+{
+    switch( msg->destPort->role()->id )
+    {
+    default:
+        this->unexpectedMessage();
+        break;
+    }
+    return currentState;
+}
+
+Capsule_A::State Capsule_A::state_____State4( const UMLRTMessage * msg )
+{
+    switch( msg->destPort->role()->id )
+    {
+    default:
+        this->unexpectedMessage();
+        break;
+    }
+    return currentState;
+}
+
+
+static const UMLRTCommsPortRole portroles_border[] = 
+{
+    {
+        Capsule_A::port_p,
+        "Protocol1",
+        "p",
+        "",
+        1,
+        true,
+        false,
+        false,
+        false,
+        false,
+        false,
+        true
+    }
+};
+
+static void instantiate_A( const UMLRTRtsInterface * rts, UMLRTSlot * slot, const UMLRTCommsPort * * borderPorts )
+{
+    slot->capsule = new Capsule_A( &A, slot, borderPorts, NULL, false );
+}
+
+const UMLRTCapsuleClass A = 
+{
+    "A",
+    NULL,
+    instantiate_A,
+    0,
+    NULL,
+    1,
+    portroles_border,
+    0,
+    NULL
+};
+
diff --git a/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/A.hh b/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/A.hh
new file mode 100644
index 0000000..c3e72d3
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/A.hh
@@ -0,0 +1,56 @@
+
+#ifndef A_HH
+#define A_HH
+
+#include "Protocol1.hh"
+#include "umlrtcapsule.hh"
+#include "umlrtcapsuleclass.hh"
+#include "umlrtmessage.hh"
+struct UMLRTCommsPort;
+struct UMLRTSlot;
+
+class Capsule_A : public UMLRTCapsule
+{
+public:
+    Capsule_A( const UMLRTCapsuleClass * cd, UMLRTSlot * st, const UMLRTCommsPort * * border, const UMLRTCommsPort * * internal, bool isStat );
+protected:
+    Protocol1::Base p;
+public:
+    enum BorderPortId
+    {
+        borderport_p
+    };
+    enum PartId
+    {
+    };
+    enum PortId
+    {
+        port_p
+    };
+    virtual void bindPort( bool isBorder, int portId, int index );
+    virtual void unbindPort( bool isBorder, int portId, int index );
+    virtual void inject( const UMLRTMessage & message );
+    virtual void initialize( const UMLRTMessage & message );
+    const char * getCurrentStateString() const;
+private:
+    enum State
+    {
+        State1,
+        State2,
+        State3,
+        State4,
+        SPECIAL_INTERNAL_STATE_TOP,
+        SPECIAL_INTERNAL_STATE_UNVISITED
+    };
+    const char * stateNames[6];
+    State currentState;
+    void update_state( State newState );
+    State state_____State1( const UMLRTMessage * msg );
+    State state_____State2( const UMLRTMessage * msg );
+    State state_____State3( const UMLRTMessage * msg );
+    State state_____State4( const UMLRTMessage * msg );
+};
+extern const UMLRTCapsuleClass A;
+
+#endif
+
diff --git a/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/B.cc b/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/B.cc
new file mode 100644
index 0000000..bb888c8
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/B.cc
@@ -0,0 +1,202 @@
+
+#include "B.hh"
+
+#include "A.hh"
+#include "Protocol1.hh"
+#include "umlrtcommsportrole.hh"
+#include "umlrtmessage.hh"
+#include "umlrtslot.hh"
+#include <cstddef>
+#include "umlrtcapsuleclass.hh"
+#include "umlrtframeservice.hh"
+#include <stdint.h>
+class UMLRTRtsInterface;
+struct UMLRTCommsPort;
+
+Capsule_B::Capsule_B( const UMLRTCapsuleClass * cd, UMLRTSlot * st, const UMLRTCommsPort * * border, const UMLRTCommsPort * * internal, bool isStat )
+: Capsule_A( cd, st, border, internal, isStat )
+, p( borderPorts[borderport_p] )
+, currentState( SPECIAL_INTERNAL_STATE_UNVISITED )
+{
+    stateNames[State1] = "State1";
+    stateNames[State2] = "State2";
+    stateNames[State3] = "State3";
+    stateNames[State4] = "State4";
+    stateNames[SPECIAL_INTERNAL_STATE_TOP] = "<top>";
+    stateNames[SPECIAL_INTERNAL_STATE_UNVISITED] = "<uninitialized>";
+}
+
+
+
+
+
+void Capsule_B::bindPort( bool isBorder, int portId, int index )
+{
+    if( isBorder )
+        switch( portId )
+        {
+        case borderport_p:
+            UMLRTFrameService::sendBoundUnbound( borderPorts, borderport_p, index, true );
+            break;
+        }
+}
+
+void Capsule_B::unbindPort( bool isBorder, int portId, int index )
+{
+    if( isBorder )
+        switch( portId )
+        {
+        case borderport_p:
+            UMLRTFrameService::sendBoundUnbound( borderPorts, borderport_p, index, false );
+            UMLRTFrameService::disconnectPort( borderPorts[borderport_p], index );
+            break;
+        }
+}
+
+void Capsule_B::inject( const UMLRTMessage & message )
+{
+    msg = &message;
+    switch( currentState )
+    {
+    case State1:
+        currentState = state_____State1( &message );
+        break;
+    case State2:
+        currentState = state_____State2( &message );
+        break;
+    case State3:
+        currentState = state_____State3( &message );
+        break;
+    case State4:
+        currentState = state_____State4( &message );
+        break;
+    default:
+        break;
+    }
+}
+
+void Capsule_B::initialize( const UMLRTMessage & message )
+{
+    msg = &message;
+    currentState = State1;
+}
+
+const char * Capsule_B::getCurrentStateString() const
+{
+    return stateNames[currentState];
+}
+
+
+
+
+void Capsule_B::update_state( Capsule_B::State newState )
+{
+    currentState = newState;
+}
+
+bool Capsule_B::guard_____transition0( const UMLRTMessage * msg )
+{
+    #define data ( *(const int16_t * )msg->getParam( 0 ) )
+    #define rtdata ( (const int16_t * )msg->getParam( 0 ) )
+    /* UMLRTGEN-USERREGION-BEGIN platform:/resource/ExclusionsTransitions/ExclusionsTransitions.uml ExclusionsTransitions::B guard State1,State3,m2:p */
+    return data < 0xFF00;
+    /* UMLRTGEN-USERREGION-END */
+    #undef rtdata
+    #undef data
+}
+
+Capsule_B::State Capsule_B::state_____State1( const UMLRTMessage * msg )
+{
+    switch( msg->destPort->role()->id )
+    {
+    case port_p:
+        switch( msg->getSignalId() )
+        {
+        case Protocol1::signal_m2:
+            if( guard_____transition0( msg ) )
+                return State3;
+            break;
+        case Protocol1::signal_m1:
+            return State2;
+        default:
+            this->unexpectedMessage();
+            break;
+        }
+        return currentState;
+    default:
+        this->unexpectedMessage();
+        break;
+    }
+    return currentState;
+}
+
+Capsule_B::State Capsule_B::state_____State2( const UMLRTMessage * msg )
+{
+    switch( msg->destPort->role()->id )
+    {
+    default:
+        this->unexpectedMessage();
+        break;
+    }
+    return currentState;
+}
+
+Capsule_B::State Capsule_B::state_____State3( const UMLRTMessage * msg )
+{
+    switch( msg->destPort->role()->id )
+    {
+    default:
+        this->unexpectedMessage();
+        break;
+    }
+    return currentState;
+}
+
+Capsule_B::State Capsule_B::state_____State4( const UMLRTMessage * msg )
+{
+    switch( msg->destPort->role()->id )
+    {
+    default:
+        this->unexpectedMessage();
+        break;
+    }
+    return currentState;
+}
+
+
+static const UMLRTCommsPortRole portroles_border[] = 
+{
+    {
+        Capsule_B::port_p,
+        "Protocol1",
+        "p",
+        "",
+        1,
+        true,
+        false,
+        false,
+        false,
+        false,
+        false,
+        true
+    }
+};
+
+static void instantiate_B( const UMLRTRtsInterface * rts, UMLRTSlot * slot, const UMLRTCommsPort * * borderPorts )
+{
+    slot->capsule = new Capsule_B( &B, slot, borderPorts, NULL, false );
+}
+
+const UMLRTCapsuleClass B = 
+{
+    "B",
+    &A,
+    instantiate_B,
+    0,
+    NULL,
+    1,
+    portroles_border,
+    0,
+    NULL
+};
+
diff --git a/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/B.hh b/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/B.hh
new file mode 100644
index 0000000..37e0f7f
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/B.hh
@@ -0,0 +1,58 @@
+
+#ifndef B_HH
+#define B_HH
+
+#include "A.hh"
+#include "Protocol1.hh"
+#include "umlrtcapsuleclass.hh"
+#include "umlrtmessage.hh"
+struct UMLRTCommsPort;
+struct UMLRTSlot;
+
+class Capsule_B : public Capsule_A
+{
+public:
+    Capsule_B( const UMLRTCapsuleClass * cd, UMLRTSlot * st, const UMLRTCommsPort * * border, const UMLRTCommsPort * * internal, bool isStat );
+protected:
+    Protocol1::Base p;
+public:
+    enum BorderPortId
+    {
+        borderport_p
+    };
+    enum PartId
+    {
+    };
+    enum PortId
+    {
+        port_p,
+        port_p
+    };
+    virtual void bindPort( bool isBorder, int portId, int index );
+    virtual void unbindPort( bool isBorder, int portId, int index );
+    virtual void inject( const UMLRTMessage & message );
+    virtual void initialize( const UMLRTMessage & message );
+    const char * getCurrentStateString() const;
+private:
+    enum State
+    {
+        State1,
+        State2,
+        State3,
+        State4,
+        SPECIAL_INTERNAL_STATE_TOP,
+        SPECIAL_INTERNAL_STATE_UNVISITED
+    };
+    const char * stateNames[6];
+    State currentState;
+    void update_state( State newState );
+    bool guard_____transition0( const UMLRTMessage * msg );
+    State state_____State1( const UMLRTMessage * msg );
+    State state_____State2( const UMLRTMessage * msg );
+    State state_____State3( const UMLRTMessage * msg );
+    State state_____State4( const UMLRTMessage * msg );
+};
+extern const UMLRTCapsuleClass B;
+
+#endif
+
diff --git a/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/CMakeLists.txt b/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/CMakeLists.txt
new file mode 100644
index 0000000..70e5f0e
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/CMakeLists.txt
@@ -0,0 +1,36 @@
+# Generated 2017-03-09 17:19:00
+
+cmake_minimum_required(VERSION 2.8.7)
+set(TARGET TopMain)
+project(${TARGET})
+
+# require location of supporting RTS
+if (NOT UMLRTS_ROOT)
+  if (DEFINED ENV{UMLRTS_ROOT})
+    set(UMLRTS_ROOT $ENV{UMLRTS_ROOT})
+  else ()
+    set(UMLRTS_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/umlrt.rts)
+  endif ()
+endif ()
+
+# setup primary envars - provides tooling config
+include(${UMLRTS_ROOT}/build/buildenv.cmake)
+
+# model sources
+set(SRCS TopMain.cc Protocol1.cc A.cc B.cc Top.cc TopControllers.cc )
+
+# specify target
+add_executable(${TARGET} ${SRCS})
+
+# setup lib dependency support after defining TARGET
+include(${UMLRTS_ROOT}/build/rtslib.cmake)
+
+# compiler parameters
+set_target_properties(${TARGET} PROPERTIES COMPILE_OPTIONS "${COPTS}")
+set_target_properties(${TARGET} PROPERTIES COMPILE_DEFINITIONS "${CDEFS}")
+include_directories(${INCS})
+
+# linker parameters
+set_target_properties(${TARGET} PROPERTIES CMAKE_EXE_LINKER_FLAGS "${LOPTS}")
+target_link_libraries(${TARGET} ${LIBS})
+
diff --git a/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/Makefile b/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/Makefile
new file mode 100644
index 0000000..0bcbd22
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/Makefile
@@ -0,0 +1,11 @@
+##################################################
+# Default makefile
+# Redirect make to target makefile
+##################################################
+
+all:
+	make -f MakefileTop.mk all
+clean:
+	make -f MakefileTop.mk clean
+.PHONY: 
+	make -f MakefileTop.mk all clean
diff --git a/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/MakefileTop.mk b/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/MakefileTop.mk
new file mode 100644
index 0000000..b62ddd0
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/MakefileTop.mk
@@ -0,0 +1,49 @@
+# set default value for TARGETOS if is it not defined
+ifeq ($(TARGETOS), )
+$(warning warning: TARGETOS not defined. Choosing linux)
+TARGETOS=linux
+endif
+
+# set default value for BUILDTOOLS if is it not defined
+ifeq ($(BUILDTOOLS), )
+$(warning warning: BUILDTOOLS not defined. Choosing x86-gcc-4.6.3)
+BUILDTOOLS=x86-gcc-4.6.3
+endif
+
+# Location of RTS root.
+UMLRTS_ROOT ?= ./umlrt.rts
+
+CONFIG=$(TARGETOS).$(BUILDTOOLS)
+
+# Destination directory for the RTS services library.
+LIBDEST=$(UMLRTS_ROOT)/lib/$(CONFIG)
+
+include $(UMLRTS_ROOT)/build/host/host.mk
+include $(UMLRTS_ROOT)/build/buildtools/$(BUILDTOOLS)/buildtools.mk
+
+LD_PATHS=$(LIBDEST)
+CC_INCLUDES+=$(UMLRTS_ROOT)/include
+
+CC_DEFINES:=$(foreach d, $(CC_DEFINES), $(CC_DEF)$d)
+CC_INCLUDES:=$(foreach i, $(CC_INCLUDES), $(CC_INC)$i)
+LD_LIBS:=$(foreach i, $(LD_LIBS), $(LD_LIB)$i)
+LD_PATHS:=$(foreach i, $(LD_PATHS), $(LD_LIBPATH)$i)
+
+SRCS = TopMain.cc Protocol1.cc A.cc B.cc Top.cc TopControllers.cc 
+OBJS = $(subst $(CC_EXT),$(OBJ_EXT),$(SRCS))
+
+MAIN = TopMain$(EXE_EXT)
+
+all: $(MAIN)
+
+$(MAIN): $(OBJS) $(UMLRTS_ROOT)/lib/$(CONFIG)/$(LIB_PRFX)rts$(LIB_EXT)
+	$(LD) $(LD_FLAGS) $(OBJS) $(LD_PATHS) $(LD_LIBS) $(LD_OUT)$@
+
+%$(OBJ_EXT) : %$(CC_EXT)
+	$(CC) $< $(CC_FLAGS) $(CC_DEFINES) $(CC_INCLUDES) $(CC_OUT)$@
+
+clean :
+	@echo $(RM) main$(EXE_EXT) *$(OBJ_EXT) *$(DEP_EXT) $(DBG_FILES)
+	@$(RM) main$(EXE_EXT) *$(OBJ_EXT) *$(DEP_EXT) $(DBG_FILES)
+
+.PHONY: all clean
diff --git a/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/Protocol1.cc b/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/Protocol1.cc
new file mode 100644
index 0000000..5838e83
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/Protocol1.cc
@@ -0,0 +1,94 @@
+
+#include "Protocol1.hh"
+
+#include "umlrtobjectclass.hh"
+#include "umlrtoutsignal.hh"
+#include <stdint.h>
+struct UMLRTCommsPort;
+
+static UMLRTObject_field fields_m1[] = 
+{
+    {
+        "data",
+        &UMLRTType_int8_t,
+        0,
+        1,
+        0
+    }
+};
+
+static UMLRTObject payload_m1 = 
+{
+    sizeof( int8_t ),
+    1,
+    fields_m1
+};
+
+static UMLRTObject_field fields_m2[] = 
+{
+    {
+        "data",
+        &UMLRTType_int16_t,
+        0,
+        1,
+        0
+    }
+};
+
+static UMLRTObject payload_m2 = 
+{
+    sizeof( int16_t ),
+    1,
+    fields_m2
+};
+
+static UMLRTObject_field fields_m3[] = 
+{
+    {
+        "data",
+        &UMLRTType_int32_t,
+        0,
+        1,
+        0
+    }
+};
+
+static UMLRTObject payload_m3 = 
+{
+    sizeof( int32_t ),
+    1,
+    fields_m3
+};
+
+Protocol1::Base::Base( const UMLRTCommsPort * & srcPort )
+: UMLRTProtocol( srcPort )
+{
+}
+
+Protocol1::Conj::Conj( const UMLRTCommsPort * & srcPort )
+: UMLRTProtocol( srcPort )
+{
+}
+
+UMLRTOutSignal Protocol1::Conj::m1( const int8_t & data ) const
+{
+    UMLRTOutSignal signal;
+    signal.initialize( "m1", signal_m1, srcPort, &payload_m1, &data );
+    return signal;
+}
+
+UMLRTOutSignal Protocol1::Conj::m2( const int16_t & data ) const
+{
+    UMLRTOutSignal signal;
+    signal.initialize( "m2", signal_m2, srcPort, &payload_m2, &data );
+    return signal;
+}
+
+UMLRTOutSignal Protocol1::Conj::m3( const int32_t & data ) const
+{
+    UMLRTOutSignal signal;
+    signal.initialize( "m3", signal_m3, srcPort, &payload_m3, &data );
+    return signal;
+}
+
+
diff --git a/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/Protocol1.hh b/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/Protocol1.hh
new file mode 100644
index 0000000..aab40f2
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/Protocol1.hh
@@ -0,0 +1,35 @@
+
+#ifndef PROTOCOL1_HH
+#define PROTOCOL1_HH
+
+#include "umlrtoutsignal.hh"
+#include "umlrtprotocol.hh"
+#include "umlrtsignal.hh"
+#include <stdint.h>
+struct UMLRTCommsPort;
+
+namespace Protocol1
+{
+    class Base : public UMLRTProtocol
+    {
+    public:
+        Base( const UMLRTCommsPort * & srcPort );
+    };
+    class Conj : public UMLRTProtocol
+    {
+    public:
+        Conj( const UMLRTCommsPort * & srcPort );
+        UMLRTOutSignal m1( const int8_t & data ) const;
+        UMLRTOutSignal m2( const int16_t & data ) const;
+        UMLRTOutSignal m3( const int32_t & data ) const;
+    };
+    enum SignalId
+    {
+        signal_m1 = UMLRTSignal::FIRST_PROTOCOL_SIGNAL_ID,
+        signal_m2,
+        signal_m3
+    };
+};
+
+#endif
+
diff --git a/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/Top-connections.log b/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/Top-connections.log
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/Top-connections.log
diff --git a/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/Top.cc b/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/Top.cc
new file mode 100644
index 0000000..ce5dcb2
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/Top.cc
@@ -0,0 +1,81 @@
+
+#include "Top.hh"
+
+#include "A.hh"
+#include "B.hh"
+#include "umlrtcapsuleclass.hh"
+#include "umlrtcapsulepart.hh"
+#include "umlrtslot.hh"
+#include <cstddef>
+#include "umlrtcapsulerole.hh"
+#include "umlrtframeservice.hh"
+class UMLRTRtsInterface;
+struct UMLRTCommsPort;
+
+Capsule_Top::Capsule_Top( const UMLRTCapsuleClass * cd, UMLRTSlot * st, const UMLRTCommsPort * * border, const UMLRTCommsPort * * internal, bool isStat )
+: UMLRTCapsule( NULL, cd, st, border, internal, isStat )
+, a( &slot->parts[part_a] )
+, b( &slot->parts[part_b] )
+{
+}
+
+
+
+
+void Capsule_Top::bindPort( bool isBorder, int portId, int index )
+{
+}
+
+void Capsule_Top::unbindPort( bool isBorder, int portId, int index )
+{
+}
+
+void Capsule_Top::initialize( const UMLRTMessage & msg )
+{
+}
+
+void Capsule_Top::inject( const UMLRTMessage & msg )
+{
+}
+
+
+static const UMLRTCapsuleRole roles[] = 
+{
+    {
+        "a",
+        &A,
+        1,
+        1,
+        false,
+        false
+    },
+    {
+        "b",
+        &B,
+        1,
+        1,
+        false,
+        false
+    }
+};
+
+static void instantiate_Top( const UMLRTRtsInterface * rts, UMLRTSlot * slot, const UMLRTCommsPort * * borderPorts )
+{
+    A.instantiate( NULL, slot->parts[Capsule_Top::part_a].slots[0], UMLRTFrameService::createBorderPorts( slot->parts[Capsule_Top::part_a].slots[0], A.numPortRolesBorder ) );
+    B.instantiate( NULL, slot->parts[Capsule_Top::part_b].slots[0], UMLRTFrameService::createBorderPorts( slot->parts[Capsule_Top::part_b].slots[0], B.numPortRolesBorder ) );
+    slot->capsule = new Capsule_Top( &Top, slot, borderPorts, NULL, false );
+}
+
+const UMLRTCapsuleClass Top = 
+{
+    "Top",
+    NULL,
+    instantiate_Top,
+    2,
+    roles,
+    0,
+    NULL,
+    0,
+    NULL
+};
+
diff --git a/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/Top.hh b/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/Top.hh
new file mode 100644
index 0000000..2c5910f
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/Top.hh
@@ -0,0 +1,33 @@
+
+#ifndef TOP_HH
+#define TOP_HH
+
+#include "umlrtcapsule.hh"
+#include "umlrtcapsuleclass.hh"
+#include "umlrtmessage.hh"
+struct UMLRTCapsulePart;
+struct UMLRTCommsPort;
+struct UMLRTSlot;
+
+class Capsule_Top : public UMLRTCapsule
+{
+public:
+    Capsule_Top( const UMLRTCapsuleClass * cd, UMLRTSlot * st, const UMLRTCommsPort * * border, const UMLRTCommsPort * * internal, bool isStat );
+    enum PartId
+    {
+        part_a,
+        part_b
+    };
+protected:
+    const UMLRTCapsulePart * const a;
+    const UMLRTCapsulePart * const b;
+public:
+    virtual void bindPort( bool isBorder, int portId, int index );
+    virtual void unbindPort( bool isBorder, int portId, int index );
+    virtual void initialize( const UMLRTMessage & msg );
+    virtual void inject( const UMLRTMessage & msg );
+};
+extern const UMLRTCapsuleClass Top;
+
+#endif
+
diff --git a/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/TopControllers.cc b/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/TopControllers.cc
new file mode 100644
index 0000000..76b0f3b
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/TopControllers.cc
@@ -0,0 +1,175 @@
+
+#include "TopControllers.hh"
+
+#include "A.hh"
+#include "B.hh"
+#include "Top.hh"
+#include "umlrtcapsuleclass.hh"
+#include "umlrtcapsulepart.hh"
+#include "umlrtcommsport.hh"
+#include "umlrtcommsportfarend.hh"
+#include "umlrtcontroller.hh"
+#include "umlrtslot.hh"
+#include <cstddef>
+
+
+static UMLRTController DefaultController_( "DefaultController" );
+
+UMLRTController * DefaultController = &DefaultController_;
+
+static Capsule_Top top( &Top, &Top_slots[InstId_Top], NULL, NULL, true );
+
+static UMLRTSlot * slots_Top[] = 
+{
+    &Top_slots[InstId_Top_a],
+    &Top_slots[InstId_Top_b]
+};
+
+static UMLRTCapsulePart parts_Top[] = 
+{
+    {
+        &Top,
+        Capsule_Top::part_a,
+        1,
+        &slots_Top[0]
+    },
+    {
+        &Top,
+        Capsule_Top::part_b,
+        1,
+        &slots_Top[1]
+    }
+};
+
+static UMLRTCommsPortFarEnd borderfarEndList_Top_a[] = 
+{
+    {
+        0,
+        NULL
+    }
+};
+
+UMLRTCommsPort borderports_Top_a[] = 
+{
+    {
+        &A,
+        Capsule_A::borderport_p,
+        &Top_slots[InstId_Top_a],
+        1,
+        borderfarEndList_Top_a,
+        NULL,
+        NULL,
+        "",
+        true,
+        true,
+        true,
+        false,
+        false,
+        false,
+        false,
+        false,
+        false,
+        false,
+        true
+    }
+};
+
+static const UMLRTCommsPort * borderports_Top_a_ptrs[] = 
+{
+    &borderports_Top_a[0]
+};
+
+static Capsule_A top_a( &A, &Top_slots[InstId_Top_a], borderports_Top_a_ptrs, NULL, true );
+
+static UMLRTCommsPortFarEnd borderfarEndList_Top_b[] = 
+{
+    {
+        0,
+        NULL
+    }
+};
+
+UMLRTCommsPort borderports_Top_b[] = 
+{
+    {
+        &B,
+        Capsule_B::borderport_p,
+        &Top_slots[InstId_Top_b],
+        1,
+        borderfarEndList_Top_b,
+        NULL,
+        NULL,
+        "",
+        true,
+        true,
+        true,
+        false,
+        false,
+        false,
+        false,
+        false,
+        false,
+        false,
+        true
+    }
+};
+
+static const UMLRTCommsPort * borderports_Top_b_ptrs[] = 
+{
+    &borderports_Top_b[0]
+};
+
+static Capsule_B top_b( &B, &Top_slots[InstId_Top_b], borderports_Top_b_ptrs, NULL, true );
+
+UMLRTSlot Top_slots[] = 
+{
+    {
+        "Top",
+        0,
+        &Top,
+        NULL,
+        0,
+        &top,
+        &DefaultController_,
+        2,
+        parts_Top,
+        0,
+        NULL,
+        NULL,
+        true,
+        false
+    },
+    {
+        "Top.a",
+        0,
+        &A,
+        &Top,
+        Capsule_Top::part_a,
+        &top_a,
+        &DefaultController_,
+        0,
+        NULL,
+        1,
+        borderports_Top_a,
+        NULL,
+        true,
+        false
+    },
+    {
+        "Top.b",
+        0,
+        &B,
+        &Top,
+        Capsule_Top::part_b,
+        &top_b,
+        &DefaultController_,
+        0,
+        NULL,
+        1,
+        borderports_Top_b,
+        NULL,
+        true,
+        false
+    }
+};
+
diff --git a/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/TopControllers.hh b/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/TopControllers.hh
new file mode 100644
index 0000000..8c7f55b
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/TopControllers.hh
@@ -0,0 +1,21 @@
+
+#ifndef TOPCONTROLLERS_HH
+#define TOPCONTROLLERS_HH
+
+class UMLRTController;
+struct UMLRTCommsPort;
+struct UMLRTSlot;
+
+enum CapsuleInstanceId
+{
+    InstId_Top,
+    InstId_Top_a,
+    InstId_Top_b
+};
+extern UMLRTController * DefaultController;
+extern UMLRTCommsPort borderports_Top_a[];
+extern UMLRTCommsPort borderports_Top_b[];
+extern UMLRTSlot Top_slots[];
+
+#endif
+
diff --git a/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/TopMain.cc b/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/TopMain.cc
new file mode 100644
index 0000000..79261c7
--- /dev/null
+++ b/models/tests/codepattern/structure/ExclusionsTransitions/expected_src/TopMain.cc
@@ -0,0 +1,38 @@
+#include "umlrtmain.hh"
+
+#include "umlrtcontroller.hh"
+#include "TopControllers.hh"
+#include "umlrtcapsuletocontrollermap.hh"
+#include "umlrtmessagepool.hh"
+#include "umlrtsignalelementpool.hh"
+#include "umlrttimerpool.hh"
+#include "umlrtuserconfig.hh"
+#include <stdio.h>
+
+static UMLRTSignalElement signalElementBuffer[USER_CONFIG_SIGNAL_ELEMENT_POOL_SIZE];
+static UMLRTSignalElementPool signalElementPool( signalElementBuffer, USER_CONFIG_SIGNAL_ELEMENT_POOL_SIZE );
+
+static UMLRTMessage messageBuffer[USER_CONFIG_MESSAGE_POOL_SIZE];
+static UMLRTMessagePool messagePool( messageBuffer, USER_CONFIG_MESSAGE_POOL_SIZE );
+
+static UMLRTTimer timers[USER_CONFIG_TIMER_POOL_SIZE];
+static UMLRTTimerPool timerPool( timers, USER_CONFIG_TIMER_POOL_SIZE );
+
+int main( int argc, char * argv[] )
+{
+    UMLRTController::initializePools( &signalElementPool, &messagePool, &timerPool );
+    UMLRTMain::setArgs( argc, argv );
+    UMLRTCapsuleToControllerMap::setDefaultSlotList( Top_slots, 3 );
+
+    if( ! UMLRTMain::targetStartup() )
+        return EXIT_FAILURE;
+
+    DefaultController->spawn();
+
+    if( ! UMLRTMain::mainLoop() )
+        return UMLRTMain::targetShutdown( false );
+
+    DefaultController->join();
+
+    return UMLRTMain::targetShutdown( true );
+}
diff --git a/models/tests/executable/PingPong/expected_src/CMakeLists.txt b/models/tests/executable/PingPong/expected_src/CMakeLists.txt
index 482a41b..8a1db13 100644
--- a/models/tests/executable/PingPong/expected_src/CMakeLists.txt
+++ b/models/tests/executable/PingPong/expected_src/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Generated 2017-02-27 14:36:43
+# Generated 2017-03-09 17:28:38
 
 cmake_minimum_required(VERSION 2.8.7)
 set(TARGET TopMain)
diff --git a/plugins/umlrt/codegen/org.eclipse.papyrusrt.codegen.cpp/src/org/eclipse/papyrusrt/codegen/cpp/internal/SerializableClassGenerator.java b/plugins/umlrt/codegen/org.eclipse.papyrusrt.codegen.cpp/src/org/eclipse/papyrusrt/codegen/cpp/internal/SerializableClassGenerator.java
index 1c3a954..cb45c28 100644
--- a/plugins/umlrt/codegen/org.eclipse.papyrusrt.codegen.cpp/src/org/eclipse/papyrusrt/codegen/cpp/internal/SerializableClassGenerator.java
+++ b/plugins/umlrt/codegen/org.eclipse.papyrusrt.codegen.cpp/src/org/eclipse/papyrusrt/codegen/cpp/internal/SerializableClassGenerator.java
@@ -26,6 +26,7 @@
 import org.eclipse.papyrusrt.codegen.lang.cpp.external.StandardLibrary;
 import org.eclipse.papyrusrt.xtumlrt.common.Attribute;
 import org.eclipse.papyrusrt.xtumlrt.common.StructuredType;
+import org.eclipse.papyrusrt.xtumlrt.util.XTUMLRTUtil;
 
 /**
  * Serializable classes are basic classes that can be encoded and sent across
@@ -59,7 +60,7 @@
 		ElementList elements = cpp.getElementList(CppCodePattern.Output.BasicClass, data);
 
 		BlockInitializer fieldsInit = new BlockInitializer(UMLRTRuntime.UMLRTObject.getFieldType().const_().arrayOf(null));
-		for (Attribute attr : data.getAttributes()) {
+		for (Attribute attr : XTUMLRTUtil.getAllAttributes(data)) {
 			// Bug 470881: Static fields should not be serialized.
 			if (!attr.isStatic()) {
 				String typeStr = RTCppGenerationProperties.getAttributePropType(attr);
diff --git a/plugins/umlrt/codegen/org.eclipse.papyrusrt.codegen.statemachines.flat/src/org/eclipse/papyrusrt/codegen/statemachines/transformations/FlatteningTransformer.xtend b/plugins/umlrt/codegen/org.eclipse.papyrusrt.codegen.statemachines.flat/src/org/eclipse/papyrusrt/codegen/statemachines/transformations/FlatteningTransformer.xtend
index 6b75403..2e57b6f 100644
--- a/plugins/umlrt/codegen/org.eclipse.papyrusrt.codegen.statemachines.flat/src/org/eclipse/papyrusrt/codegen/statemachines/transformations/FlatteningTransformer.xtend
+++ b/plugins/umlrt/codegen/org.eclipse.papyrusrt.codegen.statemachines.flat/src/org/eclipse/papyrusrt/codegen/statemachines/transformations/FlatteningTransformer.xtend
@@ -82,6 +82,8 @@
         QualifiedNames.resetCounter
 
         // We flatten (expand) the inheritance hierarchy
+//        val expandedStateMachine = stateMachine
+        // TODO: disable inheritance flattener as it is now redundant. It cannot be done yet, because the user tags generation requires it.
         val expandedStateMachine = inheritanceFlattener.transform( stateMachine, context )
         result = expandedStateMachine !== null
         if (!result) return new TransformationResult( result, expandedStateMachine, null )
diff --git a/plugins/umlrt/codegen/org.eclipse.papyrusrt.codegen.statemachines.flat/src/org/eclipse/papyrusrt/codegen/statemachines/transformations/StateMachineInheritanceFlattener.xtend b/plugins/umlrt/codegen/org.eclipse.papyrusrt.codegen.statemachines.flat/src/org/eclipse/papyrusrt/codegen/statemachines/transformations/StateMachineInheritanceFlattener.xtend
index 2af8e09..eac8da6 100644
--- a/plugins/umlrt/codegen/org.eclipse.papyrusrt.codegen.statemachines.flat/src/org/eclipse/papyrusrt/codegen/statemachines/transformations/StateMachineInheritanceFlattener.xtend
+++ b/plugins/umlrt/codegen/org.eclipse.papyrusrt.codegen.statemachines.flat/src/org/eclipse/papyrusrt/codegen/statemachines/transformations/StateMachineInheritanceFlattener.xtend
@@ -176,7 +176,7 @@
         val targetInContainer = transition.getTransitionTargetInState( container as CompositeState )
         sourceVertex = getExpanded( sourceInContainer ) as Vertex
         targetVertex = getExpanded( targetInContainer ) as Vertex
-        triggers.addAll( transition.triggers.map [ it.triggerCopy ] )
+        triggers.addAll( transition.allTriggers.map [ it.triggerCopy ] )
         guard = if (transition.guard !== null) getGuardCopy( transition.guard )
         actionChain = if (transition.actionChain !== null) getActionChainCopy( transition.actionChain )
     }
diff --git a/plugins/xtumlrt/common/org.eclipse.papyrusrt.xtumlrt.external/META-INF/MANIFEST.MF b/plugins/xtumlrt/common/org.eclipse.papyrusrt.xtumlrt.external/META-INF/MANIFEST.MF
index 5795792..c8de12d 100644
--- a/plugins/xtumlrt/common/org.eclipse.papyrusrt.xtumlrt.external/META-INF/MANIFEST.MF
+++ b/plugins/xtumlrt/common/org.eclipse.papyrusrt.xtumlrt.external/META-INF/MANIFEST.MF
@@ -13,6 +13,7 @@
  org.eclipse.papyrusrt.xtumlrt.util;bundle-version="0.9.0",
  org.eclipse.uml2.uml,
  org.eclipse.uml2.uml.resources,
- org.eclipse.xtend.lib;bundle-version="2.10.0"
+ org.eclipse.xtend.lib;bundle-version="2.10.0",
+ org.eclipse.xtext.xbase.lib
 Export-Package: org.eclipse.papyrusrt.xtumlrt.external,
  org.eclipse.papyrusrt.xtumlrt.external.predefined
diff --git a/plugins/xtumlrt/common/org.eclipse.papyrusrt.xtumlrt.external/src/org/eclipse/papyrusrt/xtumlrt/external/predefined/UMLRTProfileUtil.java b/plugins/xtumlrt/common/org.eclipse.papyrusrt.xtumlrt.external/src/org/eclipse/papyrusrt/xtumlrt/external/predefined/UMLRTProfileUtil.java
index db5204c..3ee467b 100644
--- a/plugins/xtumlrt/common/org.eclipse.papyrusrt.xtumlrt.external/src/org/eclipse/papyrusrt/xtumlrt/external/predefined/UMLRTProfileUtil.java
+++ b/plugins/xtumlrt/common/org.eclipse.papyrusrt.xtumlrt.external/src/org/eclipse/papyrusrt/xtumlrt/external/predefined/UMLRTProfileUtil.java
@@ -9,6 +9,7 @@
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Set;
 import java.util.TreeSet;
 
 import org.eclipse.papyrusrt.umlrt.profile.UMLRealTime.Capsule;
@@ -21,7 +22,6 @@
 import org.eclipse.papyrusrt.umlrt.profile.UMLRealTime.RTPort;
 import org.eclipse.papyrusrt.umlrt.profile.UMLRealTime.RTRedefinedElement;
 import org.eclipse.papyrusrt.xtumlrt.util.UML2NamesUtil;
-//import org.eclipse.papyrus.umlrt.UMLRealTime.RTRExcludedElement;
 import org.eclipse.uml2.uml.Class;
 import org.eclipse.uml2.uml.Collaboration;
 import org.eclipse.uml2.uml.Connector;
@@ -34,6 +34,7 @@
 import org.eclipse.uml2.uml.Property;
 import org.eclipse.uml2.uml.Stereotype;
 import org.eclipse.uml2.uml.Type;
+import org.eclipse.xtext.xbase.lib.IterableExtensions;
 
 /**
  * This class provides a facade to the UML-RT profile.
@@ -301,7 +302,7 @@
 			Iterable<Interface> interfaces,
 			RTMessageKind messageKind,
 			boolean includeInOut) {
-		final TreeSet<Operation> operations = new TreeSet<>(new UML2NamesUtil.NameComparator());
+		final Set<Operation> operations = new TreeSet<>(new UML2NamesUtil.NameComparator());
 		if (interfaces != null) {
 			for (Interface iface : interfaces) {
 				final RTMessageSet rtMessageSet = getRTMessageSet(iface);
@@ -449,8 +450,8 @@
 		// Ports are put into a sorted list to make sure that the order is
 		// stable between
 		// different parts of the generator (as well as between invocations).
-		final TreeSet<Property> parts = new TreeSet<>(new UML2NamesUtil.NameComparator());
-		for (Property attr : classifier.getOwnedAttributes()) {
+		final Set<Property> parts = new TreeSet<>(new UML2NamesUtil.NameComparator());
+		for (Property attr : IterableExtensions.filter(classifier.getOwnedMembers(), Property.class)) {
 			if (isCapsulePart(attr)) {
 				parts.add(attr);
 			}
@@ -470,8 +471,8 @@
 		// Ports are put into a sorted list to make sure that the order is
 		// stable between
 		// different parts of the generator (as well as between invocations).
-		final TreeSet<Port> ports = new TreeSet<>(new UML2NamesUtil.NameComparator());
-		for (Port port : classifier.getOwnedPorts()) {
+		final Set<Port> ports = new TreeSet<>(new UML2NamesUtil.NameComparator());
+		for (Port port : IterableExtensions.filter(classifier.getOwnedMembers(), Port.class)) {
 			if (isRTPort(port) && getProtocol(port) != null) {
 				ports.add(port);
 			}
@@ -488,7 +489,7 @@
 	 * @return An {@link Iterable} of {@link Port}(ies) that have the {@link RTPort} stereotype.
 	 */
 	public static Iterable<Port> getAllRTPorts(Class klass) {
-		final TreeSet<Port> allPorts = new TreeSet<>(new UML2NamesUtil.NameComparator());
+		final Set<Port> allPorts = new TreeSet<>(new UML2NamesUtil.NameComparator());
 		if (klass != null) {
 			for (Port p : getRTPorts(klass)) {
 				allPorts.add(p);
@@ -517,8 +518,8 @@
 		// Connectors are put into a sorted list to make sure that the order is
 		// stable between
 		// different parts of the generator (as well as between invocations).
-		final TreeSet<Connector> connectors = new TreeSet<>(new UML2NamesUtil.NameComparator());
-		for (Connector connector : classifier.getOwnedConnectors()) {
+		final Set<Connector> connectors = new TreeSet<>(new UML2NamesUtil.NameComparator());
+		for (Connector connector : IterableExtensions.filter(classifier.getOwnedMembers(), Connector.class)) {
 			if (isRTConnector(connector)) {
 				connectors.add(connector);
 			}
@@ -535,7 +536,7 @@
 	 * @return An {@link Iterable} of {@link Connector}(ies) that have the {@link RTConnector} stereotype.
 	 */
 	public static Iterable<Connector> getAllRTConnectors(Class klass) {
-		final TreeSet<Connector> allConnectors = new TreeSet<>(new UML2NamesUtil.NameComparator());
+		final Set<Connector> allConnectors = new TreeSet<>(new UML2NamesUtil.NameComparator());
 		if (klass != null) {
 			for (Connector c : getRTConnectors(klass)) {
 				allConnectors.add(c);
diff --git a/plugins/xtumlrt/common/org.eclipse.papyrusrt.xtumlrt.external/src/org/eclipse/papyrusrt/xtumlrt/external/predefined/UMLRTStateMachProfileUtil.xtend b/plugins/xtumlrt/common/org.eclipse.papyrusrt.xtumlrt.external/src/org/eclipse/papyrusrt/xtumlrt/external/predefined/UMLRTStateMachProfileUtil.xtend
index 7ab0731..341cdb0 100644
--- a/plugins/xtumlrt/common/org.eclipse.papyrusrt.xtumlrt.external/src/org/eclipse/papyrusrt/xtumlrt/external/predefined/UMLRTStateMachProfileUtil.xtend
+++ b/plugins/xtumlrt/common/org.eclipse.papyrusrt.xtumlrt.external/src/org/eclipse/papyrusrt/xtumlrt/external/predefined/UMLRTStateMachProfileUtil.xtend
@@ -7,6 +7,7 @@
  *******************************************************************************/
 package org.eclipse.papyrusrt.xtumlrt.external.predefined
 
+import org.eclipse.papyrusrt.umlrt.profile.statemachine.UMLRTStateMachines.RTGuard
 import org.eclipse.papyrusrt.umlrt.profile.statemachine.UMLRTStateMachines.RTTrigger
 import org.eclipse.uml2.uml.Element
 import org.eclipse.uml2.uml.Pseudostate
@@ -15,8 +16,6 @@
 import org.eclipse.uml2.uml.Region
 import org.eclipse.uml2.uml.StateMachine
 import org.eclipse.uml2.uml.Transition
-import org.eclipse.uml2.uml.Stereotype
-import org.eclipse.papyrusrt.umlrt.profile.statemachine.UMLRTStateMachines.RTGuard
 
 class UMLRTStateMachProfileUtil
 {
@@ -24,6 +23,25 @@
 	/** Name of the trigger guard stereotype. */
 	static val UML_REAL_TIME_RT_GUARD = "UMLRTStateMachines::RTGuard";
 
+    static def Iterable<Pseudostate> getConnectionPoints( State state )
+    {
+        state?.ownedMembers?.filter( Pseudostate )
+    }
+
+    static def Iterable<Pseudostate> getInternalPseudostates( Region region )
+    {
+        region?.ownedMembers?.filter( Pseudostate )
+    }
+
+    static def Iterable<Pseudostate> getInternalPseudostates( State state )
+    {
+        state?.ownedRegion?.internalPseudostates
+    }
+
+    static def Iterable<Pseudostate> getInternalPseudostates( StateMachine stateMachine )
+    {
+        stateMachine?.ownedRegion?.internalPseudostates
+    }
 
     static def Iterable<Pseudostate> getChoicePoints( Region region )
     {
@@ -57,12 +75,12 @@
 
     static def Iterable<Pseudostate> getEntryPoints( State state )
     {
-        state.connectionPoints.filter [ it.kind == PseudostateKind.ENTRY_POINT_LITERAL ]
+        getConnectionPoints( state )?.filter [ it.kind == PseudostateKind.ENTRY_POINT_LITERAL ]
     }
 
     static def Iterable<Pseudostate> getExitPoints( State state )
     {
-        state.connectionPoints.filter [ it.kind == PseudostateKind.EXIT_POINT_LITERAL ]
+        getConnectionPoints( state )?.filter [ it.kind == PseudostateKind.EXIT_POINT_LITERAL ]
     }
 
     static def Pseudostate getInitialPoint( Region region )
@@ -80,21 +98,6 @@
         stateMachine?.ownedRegion?.initialPoint
     }
 
-    static def Iterable<Pseudostate> getInternalPseudostates( Region region )
-    {
-        region?.subvertices?.filter( Pseudostate )
-    }
-
-    static def Iterable<Pseudostate> getInternalPseudostates( State state )
-    {
-        state?.ownedRegion?.internalPseudostates
-    }
-
-    static def Iterable<Pseudostate> getInternalPseudostates( StateMachine stateMachine )
-    {
-        stateMachine?.ownedRegion?.internalPseudostates
-    }
-
     static def Iterable<Pseudostate> getJunctionPoints( Region region )
     {
         region?.internalPseudostates?.filter[ it.kind == PseudostateKind.JUNCTION_LITERAL ]
@@ -124,65 +127,66 @@
             regions.get(0)
     }
 
-    static def RTTrigger getRTTrigger(Element el) {
-        val s = el.getAppliedStereotype("UMLRealTime::RTTrigger")
-        if (s == null)
-        {
-            return null
-        }
-        return el.getStereotypeApplication(s) as RTTrigger
-    }
-
     static def Iterable<State> getSubstates( Region region )
     {
-        region?.subvertices?.filter( State )
+        region?.ownedMembers?.filter( State )
     }
 
     static def Iterable<State> getSubstates( State state )
     {
-        state?.ownedRegion?.substates
+        getSubstates( state?.ownedRegion )
     }
 
     static def Iterable<State> getSubstates( StateMachine stateMachine )
     {
-        stateMachine?.ownedRegion?.substates
+        getSubstates( stateMachine?.ownedRegion )
     }
 
     static def Iterable<Transition> getTransitions( Region region )
     {
-        region?.subvertices?.filter( Transition )
+        region?.ownedMembers?.filter( Transition )
     }
 
     static def Iterable<Transition> getTransitions( State state )
     {
-        state?.ownedRegion?.transitions
+        getTransitions( state?.ownedRegion )
     }
 
     static def Iterable<Transition> getTransitions( StateMachine stateMachine )
     {
-        stateMachine?.ownedRegion?.transitions
+        getTransitions( stateMachine?.ownedRegion)
+    }
+
+    static def boolean isRTGuard( Element el )
+    {
+        val s = el.getApplicableStereotype(UML_REAL_TIME_RT_GUARD)
+        s !== null && el.isStereotypeApplied(s)
     }
 
     static def boolean isRTTrigger( Element el )
     {
         val s = el.getApplicableStereotype("UMLRealTime::RTTrigger")
-        if (s != null)
+        if (s !== null)
         {
             return el.isStereotypeApplied(s)
         }
         return false;
     }
 
-	static def boolean isRTGuard( Element el )
-	{
-		val s = el.getApplicableStereotype(UML_REAL_TIME_RT_GUARD)
-		s !== null && el.isStereotypeApplied(s)
-	}
+    static def RTGuard getRTGuard( Element el )
+    {
+        val s = el.getAppliedStereotype(UML_REAL_TIME_RT_GUARD)
+        if (s === null) null else el.getStereotypeApplication(s) as RTGuard
+    }
 
-	static def RTGuard getRTGuard( Element el )
-	{
-		val s = el.getAppliedStereotype(UML_REAL_TIME_RT_GUARD)
-		if (s === null) null else el.getStereotypeApplication(s) as RTGuard
-	}
+    static def RTTrigger getRTTrigger(Element el) 
+    {
+        val s = el.getAppliedStereotype("UMLRealTime::RTTrigger")
+        if (s === null)
+        {
+            return null
+        }
+        return el.getStereotypeApplication(s) as RTTrigger
+    }
 
 }
\ No newline at end of file
diff --git a/plugins/xtumlrt/common/org.eclipse.papyrusrt.xtumlrt.util/src/org/eclipse/papyrusrt/xtumlrt/util/XTUMLRTAnnotations.xtend b/plugins/xtumlrt/common/org.eclipse.papyrusrt.xtumlrt.util/src/org/eclipse/papyrusrt/xtumlrt/util/XTUMLRTAnnotations.xtend
index cdf36b4..a34ce4e 100644
--- a/plugins/xtumlrt/common/org.eclipse.papyrusrt.xtumlrt.util/src/org/eclipse/papyrusrt/xtumlrt/util/XTUMLRTAnnotations.xtend
+++ b/plugins/xtumlrt/common/org.eclipse.papyrusrt.xtumlrt.util/src/org/eclipse/papyrusrt/xtumlrt/util/XTUMLRTAnnotations.xtend
@@ -26,6 +26,9 @@
  */
 class XTUMLRTAnnotations
 {
+    public static val ANN_EXCLUSION = "Excluded"
+    public static val ANN_PARAM_EXCLUDED = "excluded"
+    
     /** Maps each xtumlrt element to the list of UML stereotype applications from the C++ Properties Set profile */
     static val annotationsMap = new HashMap<CommonElement, EList<EObject>>
 
diff --git a/plugins/xtumlrt/common/org.eclipse.papyrusrt.xtumlrt.util/src/org/eclipse/papyrusrt/xtumlrt/util/XTUMLRTSMVirtualInheritanceExtensions.xtend b/plugins/xtumlrt/common/org.eclipse.papyrusrt.xtumlrt.util/src/org/eclipse/papyrusrt/xtumlrt/util/XTUMLRTSMVirtualInheritanceExtensions.xtend
index 1a93f05..46eb1c7 100644
--- a/plugins/xtumlrt/common/org.eclipse.papyrusrt.xtumlrt.util/src/org/eclipse/papyrusrt/xtumlrt/util/XTUMLRTSMVirtualInheritanceExtensions.xtend
+++ b/plugins/xtumlrt/common/org.eclipse.papyrusrt.xtumlrt.util/src/org/eclipse/papyrusrt/xtumlrt/util/XTUMLRTSMVirtualInheritanceExtensions.xtend
@@ -7,6 +7,9 @@
  *******************************************************************************/
 package org.eclipse.papyrusrt.xtumlrt.util
 
+import java.util.Collection
+import java.util.LinkedHashSet
+import java.util.List
 import org.eclipse.papyrusrt.xtumlrt.statemach.CompositeState
 import org.eclipse.papyrusrt.xtumlrt.statemach.ChoicePoint
 import org.eclipse.papyrusrt.xtumlrt.statemach.DeepHistory
@@ -20,8 +23,8 @@
 import org.eclipse.papyrusrt.xtumlrt.statemach.Transition
 import org.eclipse.papyrusrt.xtumlrt.statemach.Vertex
 import static extension org.eclipse.papyrusrt.xtumlrt.util.XTUMLRTStateMachineUtil.*
-import java.util.Collection
-import java.util.List
+import static extension org.eclipse.papyrusrt.xtumlrt.util.XTUMLRTUtil.*
+import org.eclipse.papyrusrt.xtumlrt.statemach.Trigger
 
 /**
  * This class provides extension methods that implement "virtual state machine
@@ -496,7 +499,7 @@
         val List<State> allStates = newArrayList
         if (state !== null)
         {
-            allStates.addAll( state.substates )
+            allStates.addAll( state.actualSubstates )
             val redefinedState = state.redefinedState
             if (redefinedState !== null)
             {
@@ -512,17 +515,27 @@
     }
 
     /**
+     * Returns the set of substates of the given composite state that have not been excluded.
+     */
+    static def Iterable<State> getActualSubstates( CompositeState state )
+    {
+        val substates = new LinkedHashSet<State>
+        substates.addAll( state.substates.filter[ !isExcluded ] )
+        substates
+    }
+
+    /**
      * Returns the union of:
      *
      * <ol>
      *   <li> the set inherited transitions that have not been redefined,
-     *   <li> the set of transitions that are redefinitions of states in the extended region, and
+     *   <li> the set of transitions that are redefinitions of transitions in the extended region, and
      *   <li> the set of new transitions which are neither inherited, not redefinitions
      * </ol>
      *
      * <p> The last two sets are already present in the given region, so this method takes
-     * those states in the current region and adds all inherited states for which there is
-     * no state in the given region redefining them.
+     * those transitions in the current region and adds all inherited transitions for which there is
+     * no transition in the given region redefining them.
      */
     static def dispatch Iterable<Transition> getAllTransitions( StateMachine stateMachine )
     {
@@ -540,7 +553,7 @@
         val List<Transition> allTransitions = newArrayList
         if (state !== null)
         {
-            allTransitions.addAll( state.transitions )
+            allTransitions.addAll( state.actualTransitions )
             val redefinedState = state.redefinedState
             if (redefinedState !== null)
             {
@@ -556,6 +569,59 @@
     }
 
     /**
+     * Returns the set of transitions of the given composite state that have not been excluded.
+     */
+    static def Iterable<Transition> getActualTransitions( CompositeState state )
+    {
+        val transitions = new LinkedHashSet<Transition>
+        transitions.addAll( state.transitions.filter[ !isExcluded ] )
+        transitions
+    }
+
+    /**
+     * Returns the union of:
+     *
+     * <ol>
+     *   <li> the set inherited triggers that have not been excluded,
+     *   <li> the set of new triggers which are neither inherited, not excluded
+     * </ol>
+     *
+     * <p> The last set is already present in the given transition, so this method takes
+     * those triggers in the current transition and adds all inherited triggers that have not
+     * been excluded.
+     */
+    static def Iterable<Trigger> getAllTriggers( Transition transition )
+    {
+        val List<Trigger> allTriggers = newArrayList
+        if (transition !== null)
+        {
+            allTriggers.addAll( transition.actualTriggers )
+            val redefinedTransition = transition.redefinedTransition
+            if (redefinedTransition !== null)
+            {
+                val inheritedTriggers = redefinedTransition.allTriggers
+                for (trig : inheritedTriggers)
+                {
+                    if (!transition.excludes( trig ))
+                        allTriggers.add( trig )
+                }
+            }
+        }
+        allTriggers
+    }
+
+    /**
+     * Returns the set of triggers of the given transition that have not been excluded.
+     */
+    static def Iterable<Trigger> getActualTriggers( Transition transition )
+    {
+        val triggers = new LinkedHashSet<Trigger>
+        triggers.addAll( transition.triggers.filter[ !isExcluded ] )
+        triggers
+    }
+
+
+    /**
      * Returns the state redefined by the given state or null if it doesn't
      * redefine any.
      */
@@ -850,4 +916,4 @@
         compositeState.redefinedTransitions.exists [it == transition]
     }
 
-}
\ No newline at end of file
+}
diff --git a/plugins/xtumlrt/common/org.eclipse.papyrusrt.xtumlrt.util/src/org/eclipse/papyrusrt/xtumlrt/util/XTUMLRTUtil.xtend b/plugins/xtumlrt/common/org.eclipse.papyrusrt.xtumlrt.util/src/org/eclipse/papyrusrt/xtumlrt/util/XTUMLRTUtil.xtend
index 7a4410f..9793bab 100644
--- a/plugins/xtumlrt/common/org.eclipse.papyrusrt.xtumlrt.util/src/org/eclipse/papyrusrt/xtumlrt/util/XTUMLRTUtil.xtend
+++ b/plugins/xtumlrt/common/org.eclipse.papyrusrt.xtumlrt.util/src/org/eclipse/papyrusrt/xtumlrt/util/XTUMLRTUtil.xtend
@@ -43,6 +43,7 @@
 import org.eclipse.papyrusrt.xtumlrt.umlrt.RTPort
 import static extension org.eclipse.papyrusrt.xtumlrt.util.GeneralUtil.*
 import static extension org.eclipse.papyrusrt.xtumlrt.util.XTUMLRTAnnotations.*
+import org.eclipse.papyrusrt.xtumlrt.common.Annotation
 
 class XTUMLRTUtil
 {
@@ -711,4 +712,21 @@
         return false
     }
 
+    static def excludedElements( NamedElement container )
+    {
+        var Iterable<CommonElement> elements = newArrayList
+        val ann = getAnnotation( container, XTUMLRTAnnotations.ANN_EXCLUSION )
+        if (ann instanceof Annotation)
+        {
+            val param = ann.parameters.findFirst[ name == XTUMLRTAnnotations.ANN_PARAM_EXCLUDED ]
+            elements = param.value as Iterable<CommonElement>
+        }
+        return elements
+    }
+
+    static def excludes( NamedElement container, CommonElement element )
+    {
+        container.excludedElements.exists[ it == element ]
+    }
+
 }
\ No newline at end of file
diff --git a/plugins/xtumlrt/metamodel/org.eclipse.papyrusrt.xtumlrt.umlrt.model/.settings/.gitignore b/plugins/xtumlrt/metamodel/org.eclipse.papyrusrt.xtumlrt.umlrt.model/.settings/.gitignore
new file mode 100644
index 0000000..5f2445c
--- /dev/null
+++ b/plugins/xtumlrt/metamodel/org.eclipse.papyrusrt.xtumlrt.umlrt.model/.settings/.gitignore
@@ -0,0 +1 @@
+/org.eclipse.xtend.core.Xtend.prefs
diff --git a/plugins/xtumlrt/trans/org.eclipse.papyrusrt.xtumlrt.trans.from.uml/src/org/eclipse/papyrusrt/xtumlrt/trans/from/uml/UML2xtumlrtModelTranslator.xtend b/plugins/xtumlrt/trans/org.eclipse.papyrusrt.xtumlrt.trans.from.uml/src/org/eclipse/papyrusrt/xtumlrt/trans/from/uml/UML2xtumlrtModelTranslator.xtend
index 6f49bbf..6343b42 100644
--- a/plugins/xtumlrt/trans/org.eclipse.papyrusrt.xtumlrt.trans.from.uml/src/org/eclipse/papyrusrt/xtumlrt/trans/from/uml/UML2xtumlrtModelTranslator.xtend
+++ b/plugins/xtumlrt/trans/org.eclipse.papyrusrt.xtumlrt.trans.from.uml/src/org/eclipse/papyrusrt/xtumlrt/trans/from/uml/UML2xtumlrtModelTranslator.xtend
@@ -413,12 +413,12 @@
 
     protected dispatch def initStructuredType( Class klass, StructuredType newType )
     {
-        for (attribute : klass.ownedAttributes)
+        for (attribute : klass.ownedMembers.filter(org.eclipse.uml2.uml.Property))
         {
             if (!attribute.isRTPort && !attribute.isCapsulePart)
                 newType.attributes.add( translateElement(attribute) as Attribute )
         }
-        for (operation : klass.ownedOperations)
+        for (operation : klass.ownedMembers.filter(org.eclipse.uml2.uml.Operation))
         {
             newType.operations.add( translateElement(operation) as Operation )
         }
@@ -440,7 +440,7 @@
         else if (klass.ownedBehaviors !== null
                  && !klass.ownedBehaviors.empty)
         {
-            stateMachine = klass.ownedBehaviors.findFirst[ it instanceof org.eclipse.uml2.uml.StateMachine ]
+            stateMachine = klass.ownedMembers.findFirst[ it instanceof org.eclipse.uml2.uml.StateMachine ]
                            as org.eclipse.uml2.uml.StateMachine
         }
         if (stateMachine !== null)
diff --git a/plugins/xtumlrt/trans/org.eclipse.papyrusrt.xtumlrt.trans.from.uml/src/org/eclipse/papyrusrt/xtumlrt/trans/from/uml/UML2xtumlrtSMTranslator.xtend b/plugins/xtumlrt/trans/org.eclipse.papyrusrt.xtumlrt.trans.from.uml/src/org/eclipse/papyrusrt/xtumlrt/trans/from/uml/UML2xtumlrtSMTranslator.xtend
index b049f7a..274c90b 100644
--- a/plugins/xtumlrt/trans/org.eclipse.papyrusrt.xtumlrt.trans.from.uml/src/org/eclipse/papyrusrt/xtumlrt/trans/from/uml/UML2xtumlrtSMTranslator.xtend
+++ b/plugins/xtumlrt/trans/org.eclipse.papyrusrt.xtumlrt.trans.from.uml/src/org/eclipse/papyrusrt/xtumlrt/trans/from/uml/UML2xtumlrtSMTranslator.xtend
@@ -22,6 +22,7 @@
 import org.eclipse.papyrusrt.xtumlrt.statemach.JunctionPoint
 import org.eclipse.papyrusrt.xtumlrt.statemach.Pseudostate
 import org.eclipse.papyrusrt.xtumlrt.statemach.SimpleState
+import org.eclipse.papyrusrt.xtumlrt.statemach.State
 import org.eclipse.papyrusrt.xtumlrt.statemach.StateMachine
 import org.eclipse.papyrusrt.xtumlrt.statemach.StatemachFactory
 import org.eclipse.papyrusrt.xtumlrt.statemach.Transition
@@ -38,14 +39,7 @@
 import org.eclipse.papyrusrt.xtumlrt.util.ActionLangUtils
 import org.eclipse.papyrusrt.xtumlrt.util.XTUMLRTAnnotations
 import org.eclipse.papyrusrt.xtumlrt.util.XTUMLRTLogger
-import org.eclipse.uml2.uml.AnyReceiveEvent
-import org.eclipse.uml2.uml.Behavior
-import org.eclipse.uml2.uml.CallEvent
-import org.eclipse.uml2.uml.Constraint
-import org.eclipse.uml2.uml.Element
 import org.eclipse.uml2.uml.PseudostateKind
-import org.eclipse.uml2.uml.Region
-import org.eclipse.uml2.uml.State
 
 import static extension org.eclipse.papyrusrt.xtumlrt.util.GeneralUtil.*
 import static extension org.eclipse.papyrusrt.xtumlrt.util.NamesUtil.*
@@ -62,7 +56,7 @@
         this.uml2xtumlrtTranslator = uml2xtumlrtTranslator
     }
 
-    dispatch def CommonElement translate( Element element )
+    dispatch def CommonElement translate( org.eclipse.uml2.uml.Element element )
     {
     }
 
@@ -93,25 +87,25 @@
     create
         if (region === null) null
         else StatemachFactory.eINSTANCE.createCompositeState
-    translate( Region region )
+    translate( org.eclipse.uml2.uml.Region region )
     {
         if (region !== null)
         {
             initial = translateOptionalElement( region.initialPoint ) as InitialPoint
             deepHistory = translateOptionalElement( region.deepHistoryPoint ) as DeepHistory
-            for (element : region.choicePoints)
+            for (element : getChoicePoints( region ))
             {
                 choicePoints.addIfNotNull( translateElement(element) as ChoicePoint )
             }
-            for (element : region.junctionPoints)
+            for (element : getJunctionPoints( region ))
             {
                 junctionPoints.addIfNotNull( translateElement(element) as JunctionPoint )
             }
-            for (element : region.substates)
+            for (element : getSubstates( region ))
             {
-                substates.addIfNotNull( translateElement(element) as org.eclipse.papyrusrt.xtumlrt.statemach.State )
+                substates.addIfNotNull( translateElement(element) as State )
             }
-            for (element : region.transitions)
+            for (element : getTransitions( region ) )
             {
                 transitions.addIfNotNull( translateElement(element) as Transition )
             }
@@ -128,24 +122,24 @@
      *
      * @param originalState - the UML2 state element in the original model
      */
-    dispatch def org.eclipse.papyrusrt.xtumlrt.statemach.State
+    dispatch def State
     create
         if (originalState.isSimpleState)
             translateSimpleState( originalState )
         else
             translateCompositeState( originalState )
-    translate( State originalState )
+    translate( org.eclipse.uml2.uml.State originalState )
     {
         if (it !== null)
         {
             name = originalState.effectiveName
-            entryAction = translateFeature( originalState, "entry", Behavior, EntryAction, true ) as EntryAction
-            exitAction = translateFeature( originalState, "exit", Behavior, ExitAction, true ) as ExitAction
-            for (entryPoint : originalState.entryPoints)
+            entryAction = translateFeature( originalState, "entry", org.eclipse.uml2.uml.Behavior, EntryAction, true ) as EntryAction
+            exitAction = translateFeature( originalState, "exit", org.eclipse.uml2.uml.Behavior, ExitAction, true ) as ExitAction
+            for (entryPoint : getEntryPoints( originalState ))
             {
                 entryPoints.addIfNotNull( translateElement(entryPoint) as EntryPoint )
             }
-            for (exitPoint : originalState.exitPoints)
+            for (exitPoint : getExitPoints( originalState ))
             {
                 exitPoints.addIfNotNull( translateElement(exitPoint) as ExitPoint )
             }
@@ -153,17 +147,17 @@
         }
     }
 
-    def isSimpleState( State originalState )
+    def isSimpleState( org.eclipse.uml2.uml.State originalState )
     {
         originalState.simple
         || originalState.composite
             && (originalState.regions === null
                 || originalState.regions.empty
                 || (originalState.regions.size == 1
-                    && (originalState.regions.get(0) as Region).isEmpty))
+                    && (originalState.regions.get(0) as org.eclipse.uml2.uml.Region).isEmpty))
     }
 
-    def boolean isEmpty( Region region )
+    def boolean isEmpty( org.eclipse.uml2.uml.Region region )
     {
         if (region.extendedRegion === null)
             region.ownedElements === null || region.ownedElements.empty
@@ -174,7 +168,7 @@
     /**
      * Translates a simple state.
      */
-    protected def SimpleState translateSimpleState( State originalState )
+    protected def SimpleState translateSimpleState( org.eclipse.uml2.uml.State originalState )
     {
         StatemachFactory.eINSTANCE.createSimpleState
     }
@@ -186,7 +180,7 @@
      * <p>When traversing the sub-states, the translation is applied recursively.
      */
     protected def CompositeState
-    translateCompositeState( State originalState )
+    translateCompositeState( org.eclipse.uml2.uml.State originalState )
     {
         translate( originalState.ownedRegion ) as CompositeState
     }
@@ -225,9 +219,9 @@
         if (behaviour === null) null
         else if (behaviour.owner !== null)
         {
-            if (behaviour.owner instanceof State)
+            if (behaviour.owner instanceof org.eclipse.uml2.uml.State)
             {
-                val state = behaviour.owner as State
+                val state = behaviour.owner as org.eclipse.uml2.uml.State
                 if (behaviour === state.entry)
                     StatemachextFactory.eINSTANCE.createEntryAction
                 else if (behaviour === state.exit)
@@ -242,7 +236,7 @@
         }
         else
             throw new RuntimeException( "Behavior '" + behaviour.qualifiedName + "' has no owner.")
-    translate( Behavior behaviour )
+    translate( org.eclipse.uml2.uml.Behavior behaviour )
     {
         if (it !== null && behaviour !== null)
         {
@@ -262,9 +256,9 @@
         {
             triggers.addIfNotNull( translateElement(trigger) as Trigger )
         }
-        guard        = translateFeature( originalTransition, "guard", Constraint, Guard, true ) as Guard
+        guard        = translateFeature( originalTransition, "guard", org.eclipse.uml2.uml.Constraint, Guard, true ) as Guard
         actionChain  = StatemachFactory.eINSTANCE.createActionChain
-        actionChain.actions.addIfNotNull( translateFeature( originalTransition, "effect", Behavior, TransitionAction, true ) as TransitionAction )
+        actionChain.actions.addIfNotNull( translateFeature( originalTransition, "effect", org.eclipse.uml2.uml.Behavior, TransitionAction, true ) as TransitionAction )
         translateRedefinableElement( originalTransition, it )
     }
 
@@ -292,7 +286,7 @@
                 val triggerPort = uml2xtumlrtTranslator.translateElement(port) as RTPort
                 if (PortKind.RELAY == triggerPort.kind)
                 {
-                    XTUMLRTLogger.warning("Ignoring replay port from the trigger '" + trigger.qualifiedName + "'")
+                    XTUMLRTLogger.warning("Ignoring relay port from the trigger '" + trigger.qualifiedName + "'")
                 } 
                 else
                 {
@@ -306,11 +300,11 @@
         {
             XTUMLRTLogger.error( "The trigger '" + trigger.qualifiedName + "' has a null event" )
         }
-        if (event instanceof AnyReceiveEvent)
+        if (event instanceof org.eclipse.uml2.uml.AnyReceiveEvent)
         {
             signal = UmlrtFactory.eINSTANCE.createAnyEvent
         }
-        else if (event instanceof CallEvent)
+        else if (event instanceof org.eclipse.uml2.uml.CallEvent)
         {
             val operation = event.operation
             if (operation === null)
@@ -334,6 +328,7 @@
                     triggerGuard = translateElement( constraint ) as Guard
                 }
             }
+            addExcludedAnnotation( owner, excludedElements( owner ) )
         }
         it
     }
@@ -341,7 +336,7 @@
     dispatch def create
         if (originalGuard === null) null
         else StatemachFactory.eINSTANCE.createGuard
-    translate( Constraint originalGuard )
+    translate( org.eclipse.uml2.uml.Constraint originalGuard )
     {
         if (it !== null)
         {
diff --git a/plugins/xtumlrt/trans/org.eclipse.papyrusrt.xtumlrt.trans.from.uml/src/org/eclipse/papyrusrt/xtumlrt/trans/from/uml/UML2xtumlrtTranslator.xtend b/plugins/xtumlrt/trans/org.eclipse.papyrusrt.xtumlrt.trans.from.uml/src/org/eclipse/papyrusrt/xtumlrt/trans/from/uml/UML2xtumlrtTranslator.xtend
index 56c2e26..0ea693e 100644
--- a/plugins/xtumlrt/trans/org.eclipse.papyrusrt.xtumlrt.trans.from.uml/src/org/eclipse/papyrusrt/xtumlrt/trans/from/uml/UML2xtumlrtTranslator.xtend
+++ b/plugins/xtumlrt/trans/org.eclipse.papyrusrt.xtumlrt.trans.from.uml/src/org/eclipse/papyrusrt/xtumlrt/trans/from/uml/UML2xtumlrtTranslator.xtend
@@ -16,6 +16,7 @@
 import java.util.ArrayList
 import java.util.Collection
 import java.util.Collections
+import java.util.LinkedHashSet
 import java.util.List
 import java.util.Map
 import java.util.Set
@@ -30,17 +31,18 @@
 import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl
 import org.eclipse.papyrusrt.xtumlrt.util.DetailedException
 import org.eclipse.papyrusrt.xtumlrt.common.CommonElement
+import org.eclipse.papyrusrt.xtumlrt.common.NamedElement
 import org.eclipse.papyrusrt.xtumlrt.common.RedefinableElement
 import org.eclipse.papyrusrt.xtumlrt.util.XTUMLRTAnnotations
 import org.eclipse.papyrusrt.xtumlrt.util.XTUMLRTLogger
 import org.eclipse.uml2.uml.Element
 import org.eclipse.uml2.uml.Enumeration
-import org.eclipse.uml2.uml.NamedElement
 import org.eclipse.xtend.lib.annotations.Accessors
 import org.eclipse.xtend.lib.annotations.Data
 
 import static extension org.eclipse.papyrusrt.xtumlrt.external.predefined.RTSModelLibraryUtils.*
 import static extension org.eclipse.papyrusrt.xtumlrt.external.predefined.UMLRTProfileUtil.*
+import org.eclipse.papyrusrt.xtumlrt.common.CommonFactory
 
 /**
  * This is the base class for translators from UML2 to xtUMLrt.
@@ -395,6 +397,38 @@
         }
     }
 
+    protected def addExcludedAnnotation( org.eclipse.uml2.uml.RedefinableElement container, Iterable<org.eclipse.uml2.uml.Element> excluded )
+    {
+        val translatedContainer = translateElement( container ) as NamedElement
+        val translatedExcluded = excluded.map [ translateElement ]
+        val ann = CommonFactory.eINSTANCE.createAnnotation => [ name = XTUMLRTAnnotations.ANN_EXCLUSION ]
+        val param = 
+            CommonFactory.eINSTANCE.createAnnotationParameter => [
+                name = XTUMLRTAnnotations.ANN_PARAM_EXCLUDED 
+                value = translatedExcluded
+            ]
+        ann.parameters.add( param )
+        translatedContainer.annotations.add( ann )
+    }
+
+    protected def Iterable<org.eclipse.uml2.uml.Element> excludedElements( org.eclipse.uml2.uml.RedefinableElement container )
+    {
+        val set = new LinkedHashSet<org.eclipse.uml2.uml.Element>();
+        for (constraint : container.ownedElements.filter(org.eclipse.uml2.uml.Constraint))
+        {
+            val spec = constraint.specification
+            if (spec instanceof org.eclipse.uml2.uml.LiteralBoolean)
+            {
+                if (!spec.value)
+                {
+                    set.addAll(constraint.constrainedElements)
+                }
+            }
+        }
+        set
+    }
+
+
     @Data
     static class TranslationException extends DetailedException
     {
@@ -425,7 +459,7 @@
         def String getUMLElementInfoStr()
         {
             if (element === null) return "null UML element"
-            if (element instanceof NamedElement)
+            if (element instanceof org.eclipse.uml2.uml.NamedElement)
                 return element.qualifiedName
             if (element instanceof Enum<?>)
                 return element.name