aboutsummaryrefslogtreecommitdiffstats
path: root/subprojects
diff options
context:
space:
mode:
authorLibravatar Kristóf Marussy <kristof@marussy.com>2022-11-19 21:39:00 +0100
committerLibravatar Kristóf Marussy <kristof@marussy.com>2022-11-22 16:40:03 +0100
commit3aa4a2b58221a3e83b17d0c04c9a6e9c41e5500c (patch)
tree1e25f513e3b34b2ea29dbcc6cc3795e5927a1362 /subprojects
parentfeat(language): numeric expressions (diff)
downloadrefinery-3aa4a2b58221a3e83b17d0c04c9a6e9c41e5500c.tar.gz
refinery-3aa4a2b58221a3e83b17d0c04c9a6e9c41e5500c.tar.zst
refinery-3aa4a2b58221a3e83b17d0c04c9a6e9c41e5500c.zip
refactor: separate primitive types from nodes
Diffstat (limited to 'subprojects')
-rw-r--r--subprojects/frontend/src/index.tsx21
-rw-r--r--subprojects/frontend/src/language/problem.grammar59
-rw-r--r--subprojects/frontend/src/language/problemLanguageSupport.ts5
-rw-r--r--subprojects/frontend/src/xtext/ContentAssistService.ts2
-rw-r--r--subprojects/language-model/problem.aird1407
-rw-r--r--subprojects/language-model/src/main/resources/model/problem.ecore53
-rw-r--r--subprojects/language-model/src/main/resources/model/problem.genmodel42
-rw-r--r--subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/model/ModelInitializer.java9
-rw-r--r--subprojects/language/src/main/java/tools/refinery/language/Problem.xtext102
-rw-r--r--subprojects/language/src/main/java/tools/refinery/language/ProblemRuntimeModule.java21
-rw-r--r--subprojects/language/src/main/java/tools/refinery/language/formatting2/ProblemFormatter.java32
-rw-r--r--subprojects/language/src/main/java/tools/refinery/language/resource/NodeNameCollector.java38
-rw-r--r--subprojects/language/src/main/java/tools/refinery/language/resource/ProblemDerivedStateComputer.java67
-rw-r--r--subprojects/language/src/main/java/tools/refinery/language/scoping/ProblemScopeProvider.java3
-rw-r--r--subprojects/language/src/main/java/tools/refinery/language/serializer/PreferShortAssertionsProblemSemanticSequencer.java52
-rw-r--r--subprojects/language/src/main/java/tools/refinery/language/utils/BuiltinSymbols.java12
-rw-r--r--subprojects/language/src/main/java/tools/refinery/language/utils/NodeInfo.java10
-rw-r--r--subprojects/language/src/main/java/tools/refinery/language/utils/ProblemDesugarer.java50
-rw-r--r--subprojects/language/src/main/java/tools/refinery/language/utils/SymbolCollector.java134
-rw-r--r--subprojects/language/src/main/resources/tools/refinery/language/builtin.problem28
-rw-r--r--subprojects/language/src/test/java/tools/refinery/language/tests/ProblemParsingTest.java12
-rw-r--r--subprojects/language/src/test/java/tools/refinery/language/tests/parser/antlr/TransitiveClosureParserTest.java4
-rw-r--r--subprojects/language/src/test/java/tools/refinery/language/tests/rules/RuleParsingTest.java14
-rw-r--r--subprojects/language/src/test/java/tools/refinery/language/tests/scoping/NodeScopingTest.java81
-rw-r--r--subprojects/language/src/test/java/tools/refinery/language/tests/serializer/ProblemSerializerTest.java36
-rw-r--r--subprojects/language/src/test/java/tools/refinery/language/tests/utils/SymbolCollectorTest.java73
-rw-r--r--subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedAssertionArgument.java5
-rw-r--r--subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedClassDeclaration.java8
-rw-r--r--subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedProblem.java23
29 files changed, 1249 insertions, 1154 deletions
diff --git a/subprojects/frontend/src/index.tsx b/subprojects/frontend/src/index.tsx
index b42b8062..0165d7c1 100644
--- a/subprojects/frontend/src/index.tsx
+++ b/subprojects/frontend/src/index.tsx
@@ -10,27 +10,24 @@ const initialValue = `class Family {
10} 10}
11 11
12class Person { 12class Person {
13 Person[] children opposite parent 13 refers Person[] children opposite parent
14 Person[0..1] parent opposite children 14 refers Person[0..1] parent opposite children
15 int age 15 int age
16 TaxStatus taxStatus 16 refers TaxStatus taxStatus
17} 17}
18 18
19enum TaxStatus { 19enum TaxStatus {
20 child, student, adult, retired 20 child, student, adult, retired
21} 21}
22 22
23int ageDifference(Person p, Person q) =
24 children(p, q), age(p, pAge), age(q, qAge) -> qAge - pAge.
25
26error invalidAgeDifference(Person p, Person q) <->
27 children(p, q), ageDifference(p, q) <= 0.
28
29% A child cannot have any dependents. 23% A child cannot have any dependents.
30pred invalidTaxStatus(Person p) <-> 24pred invalidTaxStatus(Person p) <->
31 taxStatus(p, child), 25 taxStatus(p, child),
32 children(p, _q) 26 children(p, _q)
33; 27;
28 parent(p, q),
29 age(q) < age(p)
30;
34 taxStatus(p, retired), 31 taxStatus(p, retired),
35 parent(p, q), 32 parent(p, q),
36 !taxStatus(q, retired). 33 !taxStatus(q, retired).
@@ -44,10 +41,8 @@ children(anne, ciri).
44?children(bob, ciri). 41?children(bob, ciri).
45default children(ciri, *): false. 42default children(ciri, *): false.
46taxStatus(anne, adult). 43taxStatus(anne, adult).
47age(anne, 35). 44age(bob) in 21..35.
48bobAge: 27. 45age(ciri) = 10.
49age(bob, bobAge).
50!age(ciri, bobAge).
51 46
52scope Family = 1, Person += 5..10. 47scope Family = 1, Person += 5..10.
53`; 48`;
diff --git a/subprojects/frontend/src/language/problem.grammar b/subprojects/frontend/src/language/problem.grammar
index 4235c433..7c4098d5 100644
--- a/subprojects/frontend/src/language/problem.grammar
+++ b/subprojects/frontend/src/language/problem.grammar
@@ -3,11 +3,12 @@
3@external prop implicitCompletion from './props' 3@external prop implicitCompletion from './props'
4 4
5@precedence { 5@precedence {
6 containment @cut,
7 prefix, 6 prefix,
8 exponential @right, 7 exponential @right,
9 multiplicative @left, 8 multiplicative @left,
10 additive @left, 9 additive @left,
10 range @left,
11 lattice @left,
11 comparison @left 12 comparison @left
12} 13}
13 14
@@ -20,7 +21,7 @@ statement {
20 ClassDefinition { 21 ClassDefinition {
21 kw<"abstract">? kw<"class"> RelationName 22 kw<"abstract">? kw<"class"> RelationName
22 (kw<"extends"> sep<",", RelationName>)? 23 (kw<"extends"> sep<",", RelationName>)?
23 (ClassBody { "{" ReferenceDeclaration* "}" } | ".") 24 (ClassBody { "{" FeatureDeclaration* "}" } | ".")
24 } | 25 } |
25 EnumDefinition { 26 EnumDefinition {
26 kw<"enum"> RelationName 27 kw<"enum"> RelationName
@@ -35,7 +36,7 @@ statement {
35 PredicateBody { ("<->" sep<OrOp, Conjunction>)? "." } 36 PredicateBody { ("<->" sep<OrOp, Conjunction>)? "." }
36 } | 37 } |
37 FunctionDefinition { 38 FunctionDefinition {
38 RelationName RelationName ParameterList<Parameter>? 39 PrimitiveType RelationName ParameterList<Parameter>?
39 FunctionBody { ("=" sep<OrOp, Case>)? "." } 40 FunctionBody { ("=" sep<OrOp, Case>)? "." }
40 } | 41 } |
41 //RuleDefinition { 42 //RuleDefinition {
@@ -45,10 +46,8 @@ statement {
45 //} | 46 //} |
46 Assertion { 47 Assertion {
47 kw<"default">? (NotOp | UnknownOp)? RelationName 48 kw<"default">? (NotOp | UnknownOp)? RelationName
48 ParameterList<AssertionArgument> (":" LogicValue)? "." 49 ParameterList<AssertionArgument>
49 } | 50 (":" LogicValue | ("=" | kw<"in">) Expr)? "."
50 NodeValueAssertion {
51 QualifiedName ":" Constant "."
52 } | 51 } |
53 IndividualDeclaration { 52 IndividualDeclaration {
54 kw<"individual"> sep<",", IndividualNodeName> "." 53 kw<"individual"> sep<",", IndividualNodeName> "."
@@ -58,15 +57,8 @@ statement {
58 } 57 }
59} 58}
60 59
61ReferenceDeclaration { 60FeatureDeclaration {
62 ( 61 (ReferenceKind | PrimitiveType | kw<"bool">) RelationName
63 ExplicitContainmentReference {
64 !containment (kw<"refers"> | ckw<"contains"> | kw<"container">) RelationName
65 } |
66 ImplicitContainmentReference {
67 RelationName
68 }
69 )
70 ("[" Multiplicity? "]")? 62 ("[" Multiplicity? "]")?
71 RelationName 63 RelationName
72 (kw<"opposite"> RelationName)? 64 (kw<"opposite"> RelationName)?
@@ -75,7 +67,10 @@ ReferenceDeclaration {
75 67
76Parameter { Modality? RelationName? VariableName } 68Parameter { Modality? RelationName? VariableName }
77 69
78Conjunction { ("," | Expr)+ } 70// Use @dynamicPrecedence to prevent a(b) from being parsed as Expr { a } Expr { b }
71// instead of Atom { a(b) }
72// Being looser with token sequencing enables more consistent syntactic highlighting.
73Conjunction { ("," | NextConjunction[@dynamicPrecedence=-10] { Expr })+ }
79 74
80Case { Conjunction ("->" Expr)? } 75Case { Conjunction ("->" Expr)? }
81 76
@@ -85,8 +80,10 @@ Expr {
85 UnaryExpr | BinaryExpr | Aggregation | VariableName | Atom | Constant | "(" Expr ")" 80 UnaryExpr | BinaryExpr | Aggregation | VariableName | Atom | Constant | "(" Expr ")"
86} 81}
87 82
88BinaryExpr[@dynamicPrecedence=1] { 83BinaryExpr {
89 Expr !comparison ComparisonOp Expr | 84 Expr !comparison ComparisonOp Expr |
85 Expr !lattice (LatticeMeet | "\\/") Expr |
86 Expr !range ".." Expr |
90 Expr !additive ("+" | "-") Expr | 87 Expr !additive ("+" | "-") Expr |
91 Expr !multiplicative (StarMult | Divide) Expr | 88 Expr !multiplicative (StarMult | Divide) Expr |
92 Expr !exponential "**" Expr 89 Expr !exponential "**" Expr
@@ -110,12 +107,20 @@ Atom { RelationName "+"? ParameterList<Expr> }
110// Literal 107// Literal
111//} 108//}
112 109
113AssertionArgument { NodeName | StarArgument | Constant } 110AssertionArgument { NodeName | StarArgument }
111
112Constant { Real | String | StarMult }
114 113
115Constant { Real | String } 114ReferenceKind {
115 kw<"refers"> | ckw<"contains"> | kw<"container">
116}
117
118PrimitiveType {
119 kw<"int"> | kw<"real"> | kw<"string">
120}
116 121
117LogicValue { 122LogicValue {
118 ckw<"true"> | ckw<"false"> | kw<"unknown"> | kw<"error"> 123 kw<"true"> | kw<"false"> | kw<"unknown"> | kw<"error">
119} 124}
120 125
121Modality { 126Modality {
@@ -126,10 +131,16 @@ AggregationOp {
126 ckw<"sum"> | ckw<"prod"> | ckw<"min"> | ckw<"max"> 131 ckw<"sum"> | ckw<"prod"> | ckw<"min"> | ckw<"max">
127} 132}
128 133
134ComparisonOp { SymbolicComparisonOp | kw<"in"> }
135
129ScopeElement { RelationName ("=" | "+=") Multiplicity } 136ScopeElement { RelationName ("=" | "+=") Multiplicity }
130 137
131Multiplicity { (IntMult "..")? (IntMult | StarMult)} 138Multiplicity { (IntMult "..")? (IntMult | StarMult)}
132 139
140// The ~name handles the ambiguity between transitve closure a+(b, c) and addition a+(b)
141// in the grammar. We prefer the addition interpretation by applying @dynamicPrecedence=1
142// to the VariableName rule,
143// but will go with the transtive closure (and highlight `a` as a relation) if forced.
133RelationName { QualifiedName ~name } 144RelationName { QualifiedName ~name }
134 145
135//RuleName { QualifiedName } 146//RuleName { QualifiedName }
@@ -167,7 +178,9 @@ sep1<separator, content> { content (separator content)* }
167 178
168 Divide { "/" } 179 Divide { "/" }
169 180
170 @precedence { BlockComment, LineComment, Divide } 181 LatticeMeet { "/\\" }
182
183 @precedence { BlockComment, LineComment, LatticeMeet, Divide }
171 184
172 identifier { $[A-Za-z_] $[a-zA-Z0-9_]* } 185 identifier { $[A-Za-z_] $[a-zA-Z0-9_]* }
173 186
@@ -186,7 +199,7 @@ sep1<separator, content> { content (separator content)* }
186 "\"" (![\\"\n] | "\\" (![\n] | "\n"))* "\"" 199 "\"" (![\\"\n] | "\\" (![\n] | "\n"))* "\""
187 } 200 }
188 201
189 ComparisonOp { ">" | ">=" | "<" | "<=" | "==" | "!=" } 202 SymbolicComparisonOp { ">" | ">=" | "<" | "<=" | "==" | "!=" }
190 203
191 NotOp { "!" } 204 NotOp { "!" }
192 205
diff --git a/subprojects/frontend/src/language/problemLanguageSupport.ts b/subprojects/frontend/src/language/problemLanguageSupport.ts
index cde8b157..2a973c93 100644
--- a/subprojects/frontend/src/language/problemLanguageSupport.ts
+++ b/subprojects/frontend/src/language/problemLanguageSupport.ts
@@ -24,9 +24,10 @@ const parserWithMetadata = parser.configure({
24 'problem class enum pred individual scope': t.definitionKeyword, 24 'problem class enum pred individual scope': t.definitionKeyword,
25 'abstract extends refers contains container opposite': t.modifier, 25 'abstract extends refers contains container opposite': t.modifier,
26 'default error contained containment': t.modifier, 26 'default error contained containment': t.modifier,
27 'true false unknown error': t.operatorKeyword, 27 'true false unknown error': t.keyword,
28 'int real string bool': t.keyword,
28 'may must current': t.operatorKeyword, 29 'may must current': t.operatorKeyword,
29 'sum prod min max': t.operatorKeyword, 30 'sum prod min max in': t.operatorKeyword,
30 // 'new delete': t.keyword, 31 // 'new delete': t.keyword,
31 NotOp: t.operator, 32 NotOp: t.operator,
32 UnknownOp: t.operator, 33 UnknownOp: t.operator,
diff --git a/subprojects/frontend/src/xtext/ContentAssistService.ts b/subprojects/frontend/src/xtext/ContentAssistService.ts
index 101990af..fa894e4d 100644
--- a/subprojects/frontend/src/xtext/ContentAssistService.ts
+++ b/subprojects/frontend/src/xtext/ContentAssistService.ts
@@ -17,7 +17,7 @@ const PROPOSALS_LIMIT = 1000;
17 17
18const IDENTIFIER_REGEXP_STR = '[a-zA-Z0-9_]*'; 18const IDENTIFIER_REGEXP_STR = '[a-zA-Z0-9_]*';
19 19
20const HIGH_PRIORITY_KEYWORDS = ['<->', '==>']; 20const HIGH_PRIORITY_KEYWORDS = ['<->', '->', '==>'];
21 21
22const log = getLogger('xtext.ContentAssistService'); 22const log = getLogger('xtext.ContentAssistService');
23 23
diff --git a/subprojects/language-model/problem.aird b/subprojects/language-model/problem.aird
index ea236bac..71c35bf0 100644
--- a/subprojects/language-model/problem.aird
+++ b/subprojects/language-model/problem.aird
@@ -7,15 +7,15 @@
7 <semanticResources>build/resources/main/model/problem.genmodel</semanticResources> 7 <semanticResources>build/resources/main/model/problem.genmodel</semanticResources>
8 <ownedViews xmi:type="viewpoint:DView" uid="_CsAAYKA4EeuqkpDnuik1sg"> 8 <ownedViews xmi:type="viewpoint:DView" uid="_CsAAYKA4EeuqkpDnuik1sg">
9 <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']"/> 9 <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']"/>
10 <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" uid="_CsYa4KA4EeuqkpDnuik1sg" name="declarations" repPath="#_CsUwgKA4EeuqkpDnuik1sg" changeId="7963203d-e6fa-4125-bf8a-9dda33d5ad33"> 10 <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" uid="_CsYa4KA4EeuqkpDnuik1sg" name="declarations" repPath="#_CsUwgKA4EeuqkpDnuik1sg" changeId="f104e460-dce9-4947-b526-467cf8618336">
11 <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/> 11 <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/>
12 <target xmi:type="ecore:EPackage" href="src/main/resources/model/problem.ecore#/"/> 12 <target xmi:type="ecore:EPackage" href="src/main/resources/model/problem.ecore#/"/>
13 </ownedRepresentationDescriptors> 13 </ownedRepresentationDescriptors>
14 <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" uid="_z1bOYF3lEe2LuOZzJ_LhLg" name="expressions" repPath="#_z1YyIF3lEe2LuOZzJ_LhLg" changeId="385dc42c-cb01-4aee-99fc-b214027a2c01"> 14 <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" uid="_z1bOYF3lEe2LuOZzJ_LhLg" name="expressions" repPath="#_z1YyIF3lEe2LuOZzJ_LhLg" changeId="c3a824dd-b6bd-4f9e-af60-d14ca2505e9b">
15 <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/> 15 <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/>
16 <target xmi:type="ecore:EPackage" href="src/main/resources/model/problem.ecore#/"/> 16 <target xmi:type="ecore:EPackage" href="src/main/resources/model/problem.ecore#/"/>
17 </ownedRepresentationDescriptors> 17 </ownedRepresentationDescriptors>
18 <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" uid="_xj9yMF4eEe2rXNsIDUvqhw" name="assertions" repPath="#_xj6H0F4eEe2rXNsIDUvqhw" changeId="4b03bb1b-f192-4b52-9f72-fc6504aada68"> 18 <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" uid="_xj9yMF4eEe2rXNsIDUvqhw" name="assertions" repPath="#_xj6H0F4eEe2rXNsIDUvqhw" changeId="28ff9304-150b-45c1-ac19-7a8c71612b50">
19 <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/> 19 <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/>
20 <target xmi:type="ecore:EPackage" href="src/main/resources/model/problem.ecore#/"/> 20 <target xmi:type="ecore:EPackage" href="src/main/resources/model/problem.ecore#/"/>
21 </ownedRepresentationDescriptors> 21 </ownedRepresentationDescriptors>
@@ -35,7 +35,7 @@
35 <styles xmi:type="notation:FilteringStyle" xmi:id="_D1FIUqA4EeuqkpDnuik1sg"/> 35 <styles xmi:type="notation:FilteringStyle" xmi:id="_D1FIUqA4EeuqkpDnuik1sg"/>
36 </children> 36 </children>
37 <styles xmi:type="notation:ShapeStyle" xmi:id="_D1D6MaA4EeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/> 37 <styles xmi:type="notation:ShapeStyle" xmi:id="_D1D6MaA4EeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/>
38 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D1D6MqA4EeuqkpDnuik1sg" x="804" y="180" width="120" height="100"/> 38 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D1D6MqA4EeuqkpDnuik1sg" x="776" y="176" width="120" height="100"/>
39 </children> 39 </children>
40 <children xmi:type="notation:Node" xmi:id="_JT0o8KA4EeuqkpDnuik1sg" type="2003" element="_JTstIKA4EeuqkpDnuik1sg"> 40 <children xmi:type="notation:Node" xmi:id="_JT0o8KA4EeuqkpDnuik1sg" type="2003" element="_JTstIKA4EeuqkpDnuik1sg">
41 <children xmi:type="notation:Node" xmi:id="_JT1QAKA4EeuqkpDnuik1sg" type="5007"/> 41 <children xmi:type="notation:Node" xmi:id="_JT1QAKA4EeuqkpDnuik1sg" type="5007"/>
@@ -48,7 +48,7 @@
48 <styles xmi:type="notation:FilteringStyle" xmi:id="_JT13EqA4EeuqkpDnuik1sg"/> 48 <styles xmi:type="notation:FilteringStyle" xmi:id="_JT13EqA4EeuqkpDnuik1sg"/>
49 </children> 49 </children>
50 <styles xmi:type="notation:ShapeStyle" xmi:id="_JT0o8aA4EeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/> 50 <styles xmi:type="notation:ShapeStyle" xmi:id="_JT0o8aA4EeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/>
51 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JT0o8qA4EeuqkpDnuik1sg" x="672" y="720" width="120" height="100"/> 51 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JT0o8qA4EeuqkpDnuik1sg" x="644" y="716" width="120" height="100"/>
52 </children> 52 </children>
53 <children xmi:type="notation:Node" xmi:id="_c-HCQKA4EeuqkpDnuik1sg" type="2003" element="_c-A7oKA4EeuqkpDnuik1sg"> 53 <children xmi:type="notation:Node" xmi:id="_c-HCQKA4EeuqkpDnuik1sg" type="2003" element="_c-A7oKA4EeuqkpDnuik1sg">
54 <children xmi:type="notation:Node" xmi:id="_c-HCQ6A4EeuqkpDnuik1sg" type="5007"/> 54 <children xmi:type="notation:Node" xmi:id="_c-HCQ6A4EeuqkpDnuik1sg" type="5007"/>
@@ -61,7 +61,7 @@
61 <styles xmi:type="notation:FilteringStyle" xmi:id="_c-HCRqA4EeuqkpDnuik1sg"/> 61 <styles xmi:type="notation:FilteringStyle" xmi:id="_c-HCRqA4EeuqkpDnuik1sg"/>
62 </children> 62 </children>
63 <styles xmi:type="notation:ShapeStyle" xmi:id="_c-HCQaA4EeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/> 63 <styles xmi:type="notation:ShapeStyle" xmi:id="_c-HCQaA4EeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/>
64 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_c-HCQqA4EeuqkpDnuik1sg" x="588" y="960" width="147" height="100"/> 64 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_c-HCQqA4EeuqkpDnuik1sg" x="560" y="1124" width="147" height="100"/>
65 </children> 65 </children>
66 <children xmi:type="notation:Node" xmi:id="_RzZA0KA5EeuqkpDnuik1sg" type="2003" element="_RzK-YKA5EeuqkpDnuik1sg"> 66 <children xmi:type="notation:Node" xmi:id="_RzZA0KA5EeuqkpDnuik1sg" type="2003" element="_RzK-YKA5EeuqkpDnuik1sg">
67 <children xmi:type="notation:Node" xmi:id="_RzZn4KA5EeuqkpDnuik1sg" type="5007"/> 67 <children xmi:type="notation:Node" xmi:id="_RzZn4KA5EeuqkpDnuik1sg" type="5007"/>
@@ -74,7 +74,7 @@
74 <styles xmi:type="notation:FilteringStyle" xmi:id="_RzZn46A5EeuqkpDnuik1sg"/> 74 <styles xmi:type="notation:FilteringStyle" xmi:id="_RzZn46A5EeuqkpDnuik1sg"/>
75 </children> 75 </children>
76 <styles xmi:type="notation:ShapeStyle" xmi:id="_RzZA0aA5EeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/> 76 <styles xmi:type="notation:ShapeStyle" xmi:id="_RzZA0aA5EeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/>
77 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RzZA0qA5EeuqkpDnuik1sg" x="1056" y="24" width="120" height="100"/> 77 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RzZA0qA5EeuqkpDnuik1sg" x="1028" y="20" width="120" height="100"/>
78 </children> 78 </children>
79 <children xmi:type="notation:Node" xmi:id="_fit3kKA5EeuqkpDnuik1sg" type="2003" element="_fihqUKA5EeuqkpDnuik1sg"> 79 <children xmi:type="notation:Node" xmi:id="_fit3kKA5EeuqkpDnuik1sg" type="2003" element="_fihqUKA5EeuqkpDnuik1sg">
80 <children xmi:type="notation:Node" xmi:id="_fit3k6A5EeuqkpDnuik1sg" type="5007"/> 80 <children xmi:type="notation:Node" xmi:id="_fit3k6A5EeuqkpDnuik1sg" type="5007"/>
@@ -87,7 +87,7 @@
87 <styles xmi:type="notation:FilteringStyle" xmi:id="_fit3lqA5EeuqkpDnuik1sg"/> 87 <styles xmi:type="notation:FilteringStyle" xmi:id="_fit3lqA5EeuqkpDnuik1sg"/>
88 </children> 88 </children>
89 <styles xmi:type="notation:ShapeStyle" xmi:id="_fit3kaA5EeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/> 89 <styles xmi:type="notation:ShapeStyle" xmi:id="_fit3kaA5EeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/>
90 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fit3kqA5EeuqkpDnuik1sg" x="1368" y="720" width="150" height="100"/> 90 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_fit3kqA5EeuqkpDnuik1sg" x="1340" y="716" width="150" height="100"/>
91 </children> 91 </children>
92 <children xmi:type="notation:Node" xmi:id="_QKLK0KA6EeuqkpDnuik1sg" type="2003" element="_QKD2EKA6EeuqkpDnuik1sg"> 92 <children xmi:type="notation:Node" xmi:id="_QKLK0KA6EeuqkpDnuik1sg" type="2003" element="_QKD2EKA6EeuqkpDnuik1sg">
93 <children xmi:type="notation:Node" xmi:id="_QKLK06A6EeuqkpDnuik1sg" type="5007"/> 93 <children xmi:type="notation:Node" xmi:id="_QKLK06A6EeuqkpDnuik1sg" type="5007"/>
@@ -100,7 +100,7 @@
100 <styles xmi:type="notation:FilteringStyle" xmi:id="_QKLK1qA6EeuqkpDnuik1sg"/> 100 <styles xmi:type="notation:FilteringStyle" xmi:id="_QKLK1qA6EeuqkpDnuik1sg"/>
101 </children> 101 </children>
102 <styles xmi:type="notation:ShapeStyle" xmi:id="_QKLK0aA6EeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/> 102 <styles xmi:type="notation:ShapeStyle" xmi:id="_QKLK0aA6EeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/>
103 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QKLK0qA6EeuqkpDnuik1sg" x="1375" y="534" width="120" height="100"/> 103 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QKLK0qA6EeuqkpDnuik1sg" x="1347" y="530" width="120" height="100"/>
104 </children> 104 </children>
105 <children xmi:type="notation:Node" xmi:id="_jP6FkKA6EeuqkpDnuik1sg" type="2003" element="_jPpm4KA6EeuqkpDnuik1sg"> 105 <children xmi:type="notation:Node" xmi:id="_jP6FkKA6EeuqkpDnuik1sg" type="2003" element="_jPpm4KA6EeuqkpDnuik1sg">
106 <children xmi:type="notation:Node" xmi:id="_jP6soKA6EeuqkpDnuik1sg" type="5007"/> 106 <children xmi:type="notation:Node" xmi:id="_jP6soKA6EeuqkpDnuik1sg" type="5007"/>
@@ -109,7 +109,7 @@
109 <styles xmi:type="notation:FilteringStyle" xmi:id="_jP6so6A6EeuqkpDnuik1sg"/> 109 <styles xmi:type="notation:FilteringStyle" xmi:id="_jP6so6A6EeuqkpDnuik1sg"/>
110 </children> 110 </children>
111 <styles xmi:type="notation:ShapeStyle" xmi:id="_jP6FkaA6EeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/> 111 <styles xmi:type="notation:ShapeStyle" xmi:id="_jP6FkaA6EeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/>
112 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jP6FkqA6EeuqkpDnuik1sg" x="1200" y="336" width="120" height="100"/> 112 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jP6FkqA6EeuqkpDnuik1sg" x="1172" y="332" width="120" height="100"/>
113 </children> 113 </children>
114 <children xmi:type="notation:Node" xmi:id="_xsq_MKA8EeuqkpDnuik1sg" type="2003" element="_xsYrUKA8EeuqkpDnuik1sg"> 114 <children xmi:type="notation:Node" xmi:id="_xsq_MKA8EeuqkpDnuik1sg" type="2003" element="_xsYrUKA8EeuqkpDnuik1sg">
115 <children xmi:type="notation:Node" xmi:id="_xsrmQKA8EeuqkpDnuik1sg" type="5007"/> 115 <children xmi:type="notation:Node" xmi:id="_xsrmQKA8EeuqkpDnuik1sg" type="5007"/>
@@ -118,7 +118,7 @@
118 <styles xmi:type="notation:FilteringStyle" xmi:id="_xsrmQ6A8EeuqkpDnuik1sg"/> 118 <styles xmi:type="notation:FilteringStyle" xmi:id="_xsrmQ6A8EeuqkpDnuik1sg"/>
119 </children> 119 </children>
120 <styles xmi:type="notation:ShapeStyle" xmi:id="_xsq_MaA8EeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/> 120 <styles xmi:type="notation:ShapeStyle" xmi:id="_xsq_MaA8EeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/>
121 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xsq_MqA8EeuqkpDnuik1sg" x="1020" y="336" width="120" height="100"/> 121 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xsq_MqA8EeuqkpDnuik1sg" x="992" y="332" width="120" height="100"/>
122 </children> 122 </children>
123 <children xmi:type="notation:Node" xmi:id="_QUDYMKA9EeuqkpDnuik1sg" type="2003" element="_QTzgkKA9EeuqkpDnuik1sg"> 123 <children xmi:type="notation:Node" xmi:id="_QUDYMKA9EeuqkpDnuik1sg" type="2003" element="_QTzgkKA9EeuqkpDnuik1sg">
124 <children xmi:type="notation:Node" xmi:id="_QUDYM6A9EeuqkpDnuik1sg" type="5007"/> 124 <children xmi:type="notation:Node" xmi:id="_QUDYM6A9EeuqkpDnuik1sg" type="5007"/>
@@ -127,7 +127,7 @@
127 <styles xmi:type="notation:FilteringStyle" xmi:id="_QUDYNqA9EeuqkpDnuik1sg"/> 127 <styles xmi:type="notation:FilteringStyle" xmi:id="_QUDYNqA9EeuqkpDnuik1sg"/>
128 </children> 128 </children>
129 <styles xmi:type="notation:ShapeStyle" xmi:id="_QUDYMaA9EeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/> 129 <styles xmi:type="notation:ShapeStyle" xmi:id="_QUDYMaA9EeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/>
130 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QUDYMqA9EeuqkpDnuik1sg" x="336" y="528" width="120" height="100"/> 130 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QUDYMqA9EeuqkpDnuik1sg" x="308" y="524" width="120" height="100"/>
131 </children> 131 </children>
132 <children xmi:type="notation:Node" xmi:id="_e73WIKA9EeuqkpDnuik1sg" type="2003" element="_e7ydoKA9EeuqkpDnuik1sg"> 132 <children xmi:type="notation:Node" xmi:id="_e73WIKA9EeuqkpDnuik1sg" type="2003" element="_e7ydoKA9EeuqkpDnuik1sg">
133 <children xmi:type="notation:Node" xmi:id="_e73WI6A9EeuqkpDnuik1sg" type="5007"/> 133 <children xmi:type="notation:Node" xmi:id="_e73WI6A9EeuqkpDnuik1sg" type="5007"/>
@@ -136,7 +136,7 @@
136 <styles xmi:type="notation:FilteringStyle" xmi:id="_e73WJqA9EeuqkpDnuik1sg"/> 136 <styles xmi:type="notation:FilteringStyle" xmi:id="_e73WJqA9EeuqkpDnuik1sg"/>
137 </children> 137 </children>
138 <styles xmi:type="notation:ShapeStyle" xmi:id="_e73WIaA9EeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/> 138 <styles xmi:type="notation:ShapeStyle" xmi:id="_e73WIaA9EeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/>
139 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_e73WIqA9EeuqkpDnuik1sg" x="804" y="336" width="120" height="100"/> 139 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_e73WIqA9EeuqkpDnuik1sg" x="776" y="332" width="120" height="100"/>
140 </children> 140 </children>
141 <children xmi:type="notation:Node" xmi:id="_zaq8oKA9EeuqkpDnuik1sg" type="2003" element="_zac6MKA9EeuqkpDnuik1sg"> 141 <children xmi:type="notation:Node" xmi:id="_zaq8oKA9EeuqkpDnuik1sg" type="2003" element="_zac6MKA9EeuqkpDnuik1sg">
142 <children xmi:type="notation:Node" xmi:id="_zarjsKA9EeuqkpDnuik1sg" type="5007"/> 142 <children xmi:type="notation:Node" xmi:id="_zarjsKA9EeuqkpDnuik1sg" type="5007"/>
@@ -149,7 +149,7 @@
149 <styles xmi:type="notation:FilteringStyle" xmi:id="_zarjs6A9EeuqkpDnuik1sg"/> 149 <styles xmi:type="notation:FilteringStyle" xmi:id="_zarjs6A9EeuqkpDnuik1sg"/>
150 </children> 150 </children>
151 <styles xmi:type="notation:ShapeStyle" xmi:id="_zaq8oaA9EeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/> 151 <styles xmi:type="notation:ShapeStyle" xmi:id="_zaq8oaA9EeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/>
152 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zaq8oqA9EeuqkpDnuik1sg" x="336" y="720" width="120" height="99"/> 152 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zaq8oqA9EeuqkpDnuik1sg" x="308" y="716" width="120" height="99"/>
153 </children> 153 </children>
154 <children xmi:type="notation:Node" xmi:id="_Ren3cKBJEeuqkpDnuik1sg" type="2003" element="_ReiX4KBJEeuqkpDnuik1sg"> 154 <children xmi:type="notation:Node" xmi:id="_Ren3cKBJEeuqkpDnuik1sg" type="2003" element="_ReiX4KBJEeuqkpDnuik1sg">
155 <children xmi:type="notation:Node" xmi:id="_Ren3c6BJEeuqkpDnuik1sg" type="5007"/> 155 <children xmi:type="notation:Node" xmi:id="_Ren3c6BJEeuqkpDnuik1sg" type="5007"/>
@@ -158,7 +158,7 @@
158 <styles xmi:type="notation:FilteringStyle" xmi:id="_Ren3dqBJEeuqkpDnuik1sg"/> 158 <styles xmi:type="notation:FilteringStyle" xmi:id="_Ren3dqBJEeuqkpDnuik1sg"/>
159 </children> 159 </children>
160 <styles xmi:type="notation:ShapeStyle" xmi:id="_Ren3caBJEeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/> 160 <styles xmi:type="notation:ShapeStyle" xmi:id="_Ren3caBJEeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/>
161 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ren3cqBJEeuqkpDnuik1sg" x="336" y="960" width="120" height="100"/> 161 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ren3cqBJEeuqkpDnuik1sg" x="308" y="1124" width="120" height="100"/>
162 </children> 162 </children>
163 <children xmi:type="notation:Node" xmi:id="_Tx6IsKBJEeuqkpDnuik1sg" type="2003" element="_Tx0CEKBJEeuqkpDnuik1sg"> 163 <children xmi:type="notation:Node" xmi:id="_Tx6IsKBJEeuqkpDnuik1sg" type="2003" element="_Tx0CEKBJEeuqkpDnuik1sg">
164 <children xmi:type="notation:Node" xmi:id="_Tx6Is6BJEeuqkpDnuik1sg" type="5007"/> 164 <children xmi:type="notation:Node" xmi:id="_Tx6Is6BJEeuqkpDnuik1sg" type="5007"/>
@@ -175,7 +175,7 @@
175 <styles xmi:type="notation:FilteringStyle" xmi:id="_Tx6ItqBJEeuqkpDnuik1sg"/> 175 <styles xmi:type="notation:FilteringStyle" xmi:id="_Tx6ItqBJEeuqkpDnuik1sg"/>
176 </children> 176 </children>
177 <styles xmi:type="notation:ShapeStyle" xmi:id="_Tx6IsaBJEeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/> 177 <styles xmi:type="notation:ShapeStyle" xmi:id="_Tx6IsaBJEeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/>
178 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Tx6IsqBJEeuqkpDnuik1sg" x="240" y="1128" width="120" height="100"/> 178 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Tx6IsqBJEeuqkpDnuik1sg" x="212" y="1280" width="120" height="100"/>
179 </children> 179 </children>
180 <children xmi:type="notation:Node" xmi:id="_aPNjUKBJEeuqkpDnuik1sg" type="2003" element="_aPIDwKBJEeuqkpDnuik1sg"> 180 <children xmi:type="notation:Node" xmi:id="_aPNjUKBJEeuqkpDnuik1sg" type="2003" element="_aPIDwKBJEeuqkpDnuik1sg">
181 <children xmi:type="notation:Node" xmi:id="_aPOKYKBJEeuqkpDnuik1sg" type="5007"/> 181 <children xmi:type="notation:Node" xmi:id="_aPOKYKBJEeuqkpDnuik1sg" type="5007"/>
@@ -188,7 +188,7 @@
188 <styles xmi:type="notation:FilteringStyle" xmi:id="_aPOKY6BJEeuqkpDnuik1sg"/> 188 <styles xmi:type="notation:FilteringStyle" xmi:id="_aPOKY6BJEeuqkpDnuik1sg"/>
189 </children> 189 </children>
190 <styles xmi:type="notation:ShapeStyle" xmi:id="_aPNjUaBJEeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/> 190 <styles xmi:type="notation:ShapeStyle" xmi:id="_aPNjUaBJEeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/>
191 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aPNjUqBJEeuqkpDnuik1sg" x="408" y="1128" width="120" height="100"/> 191 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aPNjUqBJEeuqkpDnuik1sg" x="380" y="1280" width="120" height="100"/>
192 </children> 192 </children>
193 <children xmi:type="notation:Node" xmi:id="_D-lH8NYBEeuF_d0WEhR3Xw" type="2003" element="_D9_5INYBEeuF_d0WEhR3Xw"> 193 <children xmi:type="notation:Node" xmi:id="_D-lH8NYBEeuF_d0WEhR3Xw" type="2003" element="_D9_5INYBEeuF_d0WEhR3Xw">
194 <children xmi:type="notation:Node" xmi:id="_D-lvANYBEeuF_d0WEhR3Xw" type="5007"/> 194 <children xmi:type="notation:Node" xmi:id="_D-lvANYBEeuF_d0WEhR3Xw" type="5007"/>
@@ -197,7 +197,7 @@
197 <styles xmi:type="notation:FilteringStyle" xmi:id="_D-lvA9YBEeuF_d0WEhR3Xw"/> 197 <styles xmi:type="notation:FilteringStyle" xmi:id="_D-lvA9YBEeuF_d0WEhR3Xw"/>
198 </children> 198 </children>
199 <styles xmi:type="notation:ShapeStyle" xmi:id="_D-lH8dYBEeuF_d0WEhR3Xw" fontName="Noto Sans" fontHeight="8"/> 199 <styles xmi:type="notation:ShapeStyle" xmi:id="_D-lH8dYBEeuF_d0WEhR3Xw" fontName="Noto Sans" fontHeight="8"/>
200 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D-lH8tYBEeuF_d0WEhR3Xw" x="48" y="1128" width="147" height="100"/> 200 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D-lH8tYBEeuF_d0WEhR3Xw" x="20" y="1280" width="147" height="100"/>
201 </children> 201 </children>
202 <children xmi:type="notation:Node" xmi:id="_M6O-0NbGEeuymriYTNxK2g" type="2003" element="_M58q8NbGEeuymriYTNxK2g"> 202 <children xmi:type="notation:Node" xmi:id="_M6O-0NbGEeuymriYTNxK2g" type="2003" element="_M58q8NbGEeuymriYTNxK2g">
203 <children xmi:type="notation:Node" xmi:id="_M6Pl4NbGEeuymriYTNxK2g" type="5007"/> 203 <children xmi:type="notation:Node" xmi:id="_M6Pl4NbGEeuymriYTNxK2g" type="5007"/>
@@ -206,7 +206,7 @@
206 <styles xmi:type="notation:FilteringStyle" xmi:id="_M6Pl49bGEeuymriYTNxK2g"/> 206 <styles xmi:type="notation:FilteringStyle" xmi:id="_M6Pl49bGEeuymriYTNxK2g"/>
207 </children> 207 </children>
208 <styles xmi:type="notation:ShapeStyle" xmi:id="_M6O-0dbGEeuymriYTNxK2g" fontName="Noto Sans" fontHeight="8"/> 208 <styles xmi:type="notation:ShapeStyle" xmi:id="_M6O-0dbGEeuymriYTNxK2g" fontName="Noto Sans" fontHeight="8"/>
209 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_M6O-0tbGEeuymriYTNxK2g" x="903" y="720" width="120" height="100"/> 209 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_M6O-0tbGEeuymriYTNxK2g" x="875" y="716" width="120" height="100"/>
210 </children> 210 </children>
211 <children xmi:type="notation:Node" xmi:id="_Kw-vINbNEeuymriYTNxK2g" type="2003" element="_KwtCUNbNEeuymriYTNxK2g"> 211 <children xmi:type="notation:Node" xmi:id="_Kw-vINbNEeuymriYTNxK2g" type="2003" element="_KwtCUNbNEeuymriYTNxK2g">
212 <children xmi:type="notation:Node" xmi:id="_Kw_WMNbNEeuymriYTNxK2g" type="5007"/> 212 <children xmi:type="notation:Node" xmi:id="_Kw_WMNbNEeuymriYTNxK2g" type="5007"/>
@@ -215,7 +215,7 @@
215 <styles xmi:type="notation:FilteringStyle" xmi:id="_Kw_WM9bNEeuymriYTNxK2g"/> 215 <styles xmi:type="notation:FilteringStyle" xmi:id="_Kw_WM9bNEeuymriYTNxK2g"/>
216 </children> 216 </children>
217 <styles xmi:type="notation:ShapeStyle" xmi:id="_Kw-vIdbNEeuymriYTNxK2g" fontName="Noto Sans" fontHeight="8"/> 217 <styles xmi:type="notation:ShapeStyle" xmi:id="_Kw-vIdbNEeuymriYTNxK2g" fontName="Noto Sans" fontHeight="8"/>
218 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Kw-vItbNEeuymriYTNxK2g" x="1137" y="180" width="120" height="100"/> 218 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Kw-vItbNEeuymriYTNxK2g" x="1109" y="176" width="120" height="100"/>
219 </children> 219 </children>
220 <children xmi:type="notation:Node" xmi:id="_pdJrwAGyEey7cfH5K6RyCw" type="2003" element="_pcXBkAGyEey7cfH5K6RyCw"> 220 <children xmi:type="notation:Node" xmi:id="_pdJrwAGyEey7cfH5K6RyCw" type="2003" element="_pcXBkAGyEey7cfH5K6RyCw">
221 <children xmi:type="notation:Node" xmi:id="_pdOkQAGyEey7cfH5K6RyCw" type="5007"/> 221 <children xmi:type="notation:Node" xmi:id="_pdOkQAGyEey7cfH5K6RyCw" type="5007"/>
@@ -224,7 +224,7 @@
224 <styles xmi:type="notation:FilteringStyle" xmi:id="_pdOkQwGyEey7cfH5K6RyCw"/> 224 <styles xmi:type="notation:FilteringStyle" xmi:id="_pdOkQwGyEey7cfH5K6RyCw"/>
225 </children> 225 </children>
226 <styles xmi:type="notation:ShapeStyle" xmi:id="_pdJrwQGyEey7cfH5K6RyCw" fontName="Noto Sans" fontHeight="8"/> 226 <styles xmi:type="notation:ShapeStyle" xmi:id="_pdJrwQGyEey7cfH5K6RyCw" fontName="Noto Sans" fontHeight="8"/>
227 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pdJrwgGyEey7cfH5K6RyCw" x="132" y="528" width="147" height="100"/> 227 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pdJrwgGyEey7cfH5K6RyCw" x="104" y="524" width="147" height="100"/>
228 </children> 228 </children>
229 <children xmi:type="notation:Node" xmi:id="_A9YrQCrZEeyyC-O0_LlY9w" type="2003" element="_A8hIkCrZEeyyC-O0_LlY9w"> 229 <children xmi:type="notation:Node" xmi:id="_A9YrQCrZEeyyC-O0_LlY9w" type="2003" element="_A8hIkCrZEeyyC-O0_LlY9w">
230 <children xmi:type="notation:Node" xmi:id="_A9c8sCrZEeyyC-O0_LlY9w" type="5007"/> 230 <children xmi:type="notation:Node" xmi:id="_A9c8sCrZEeyyC-O0_LlY9w" type="5007"/>
@@ -233,7 +233,7 @@
233 <styles xmi:type="notation:FilteringStyle" xmi:id="_A9eK0irZEeyyC-O0_LlY9w"/> 233 <styles xmi:type="notation:FilteringStyle" xmi:id="_A9eK0irZEeyyC-O0_LlY9w"/>
234 </children> 234 </children>
235 <styles xmi:type="notation:ShapeStyle" xmi:id="_A9YrQSrZEeyyC-O0_LlY9w" fontName="Segoe UI" fontHeight="8"/> 235 <styles xmi:type="notation:ShapeStyle" xmi:id="_A9YrQSrZEeyyC-O0_LlY9w" fontName="Segoe UI" fontHeight="8"/>
236 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_A9YrQirZEeyyC-O0_LlY9w" x="1713" y="534" width="148" height="100"/> 236 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_A9YrQirZEeyyC-O0_LlY9w" x="1685" y="530" width="148" height="100"/>
237 </children> 237 </children>
238 <children xmi:type="notation:Node" xmi:id="_N0FQ4CrZEeyyC-O0_LlY9w" type="2003" element="_NzpMACrZEeyyC-O0_LlY9w"> 238 <children xmi:type="notation:Node" xmi:id="_N0FQ4CrZEeyyC-O0_LlY9w" type="2003" element="_NzpMACrZEeyyC-O0_LlY9w">
239 <children xmi:type="notation:Node" xmi:id="_N0F38CrZEeyyC-O0_LlY9w" type="5007"/> 239 <children xmi:type="notation:Node" xmi:id="_N0F38CrZEeyyC-O0_LlY9w" type="5007"/>
@@ -242,7 +242,7 @@
242 <styles xmi:type="notation:FilteringStyle" xmi:id="_N0F38yrZEeyyC-O0_LlY9w"/> 242 <styles xmi:type="notation:FilteringStyle" xmi:id="_N0F38yrZEeyyC-O0_LlY9w"/>
243 </children> 243 </children>
244 <styles xmi:type="notation:ShapeStyle" xmi:id="_N0FQ4SrZEeyyC-O0_LlY9w" fontName="Segoe UI" fontHeight="8"/> 244 <styles xmi:type="notation:ShapeStyle" xmi:id="_N0FQ4SrZEeyyC-O0_LlY9w" fontName="Segoe UI" fontHeight="8"/>
245 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_N0FQ4irZEeyyC-O0_LlY9w" x="1980" y="720" width="132" height="100"/> 245 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_N0FQ4irZEeyyC-O0_LlY9w" x="1952" y="716" width="132" height="100"/>
246 </children> 246 </children>
247 <children xmi:type="notation:Node" xmi:id="_jzknACrZEeyyC-O0_LlY9w" type="2003" element="_jzRFACrZEeyyC-O0_LlY9w"> 247 <children xmi:type="notation:Node" xmi:id="_jzknACrZEeyyC-O0_LlY9w" type="2003" element="_jzRFACrZEeyyC-O0_LlY9w">
248 <children xmi:type="notation:Node" xmi:id="_jzknAyrZEeyyC-O0_LlY9w" type="5007"/> 248 <children xmi:type="notation:Node" xmi:id="_jzknAyrZEeyyC-O0_LlY9w" type="5007"/>
@@ -251,7 +251,7 @@
251 <styles xmi:type="notation:FilteringStyle" xmi:id="_jzknBirZEeyyC-O0_LlY9w"/> 251 <styles xmi:type="notation:FilteringStyle" xmi:id="_jzknBirZEeyyC-O0_LlY9w"/>
252 </children> 252 </children>
253 <styles xmi:type="notation:ShapeStyle" xmi:id="_jzknASrZEeyyC-O0_LlY9w" fontName="Segoe UI" fontHeight="8"/> 253 <styles xmi:type="notation:ShapeStyle" xmi:id="_jzknASrZEeyyC-O0_LlY9w" fontName="Segoe UI" fontHeight="8"/>
254 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jzknAirZEeyyC-O0_LlY9w" x="1980" y="960" width="120" height="100"/> 254 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jzknAirZEeyyC-O0_LlY9w" x="1952" y="956" width="120" height="100"/>
255 </children> 255 </children>
256 <children xmi:type="notation:Node" xmi:id="_re7JICrZEeyyC-O0_LlY9w" type="2003" element="_remZACrZEeyyC-O0_LlY9w"> 256 <children xmi:type="notation:Node" xmi:id="_re7JICrZEeyyC-O0_LlY9w" type="2003" element="_remZACrZEeyyC-O0_LlY9w">
257 <children xmi:type="notation:Node" xmi:id="_re7JIyrZEeyyC-O0_LlY9w" type="5007"/> 257 <children xmi:type="notation:Node" xmi:id="_re7JIyrZEeyyC-O0_LlY9w" type="5007"/>
@@ -260,7 +260,7 @@
260 <styles xmi:type="notation:FilteringStyle" xmi:id="_re7JJirZEeyyC-O0_LlY9w"/> 260 <styles xmi:type="notation:FilteringStyle" xmi:id="_re7JJirZEeyyC-O0_LlY9w"/>
261 </children> 261 </children>
262 <styles xmi:type="notation:ShapeStyle" xmi:id="_re7JISrZEeyyC-O0_LlY9w" fontName="Segoe UI" fontHeight="8"/> 262 <styles xmi:type="notation:ShapeStyle" xmi:id="_re7JISrZEeyyC-O0_LlY9w" fontName="Segoe UI" fontHeight="8"/>
263 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_re7JIirZEeyyC-O0_LlY9w" x="1986" y="1128" width="120" height="100"/> 263 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_re7JIirZEeyyC-O0_LlY9w" x="1958" y="1124" width="120" height="100"/>
264 </children> 264 </children>
265 <children xmi:type="notation:Node" xmi:id="_eKvl8BEKEe2AArBmfNpEZA" type="2003" element="_eKVWQBEKEe2AArBmfNpEZA"> 265 <children xmi:type="notation:Node" xmi:id="_eKvl8BEKEe2AArBmfNpEZA" type="2003" element="_eKVWQBEKEe2AArBmfNpEZA">
266 <children xmi:type="notation:Node" xmi:id="_eKwNABEKEe2AArBmfNpEZA" type="5007"/> 266 <children xmi:type="notation:Node" xmi:id="_eKwNABEKEe2AArBmfNpEZA" type="5007"/>
@@ -285,15 +285,11 @@
285 <styles xmi:type="notation:FilteringStyle" xmi:id="_eKwNAxEKEe2AArBmfNpEZA"/> 285 <styles xmi:type="notation:FilteringStyle" xmi:id="_eKwNAxEKEe2AArBmfNpEZA"/>
286 </children> 286 </children>
287 <styles xmi:type="notation:ShapeStyle" xmi:id="_eKvl8REKEe2AArBmfNpEZA" fontName="Noto Sans" fontHeight="8"/> 287 <styles xmi:type="notation:ShapeStyle" xmi:id="_eKvl8REKEe2AArBmfNpEZA" fontName="Noto Sans" fontHeight="8"/>
288 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eKvl8hEKEe2AArBmfNpEZA" x="1137" y="1128" width="120" height="100"/> 288 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eKvl8hEKEe2AArBmfNpEZA" x="1124" y="1280" width="120" height="100"/>
289 </children> 289 </children>
290 <children xmi:type="notation:Node" xmi:id="_xp1icDNlEe2fD4dIhR_vzA" type="2003" element="_xpDfUDNlEe2fD4dIhR_vzA"> 290 <children xmi:type="notation:Node" xmi:id="_xp1icDNlEe2fD4dIhR_vzA" type="2003" element="_xpDfUDNlEe2fD4dIhR_vzA">
291 <children xmi:type="notation:Node" xmi:id="_xp2JgDNlEe2fD4dIhR_vzA" type="5007"/> 291 <children xmi:type="notation:Node" xmi:id="_xp2JgDNlEe2fD4dIhR_vzA" type="5007"/>
292 <children xmi:type="notation:Node" xmi:id="_xp2JgTNlEe2fD4dIhR_vzA" type="7004"> 292 <children xmi:type="notation:Node" xmi:id="_xp2JgTNlEe2fD4dIhR_vzA" type="7004">
293 <children xmi:type="notation:Node" xmi:id="_2OW2gDNlEe2fD4dIhR_vzA" type="3010" element="_2N3HQDNlEe2fD4dIhR_vzA">
294 <styles xmi:type="notation:FontStyle" xmi:id="_2OW2gTNlEe2fD4dIhR_vzA" fontName="Noto Sans" fontHeight="8"/>
295 <layoutConstraint xmi:type="notation:Location" xmi:id="_2OW2gjNlEe2fD4dIhR_vzA"/>
296 </children>
297 <children xmi:type="notation:Node" xmi:id="_20SOEDNlEe2fD4dIhR_vzA" type="3010" element="_2zSIgDNlEe2fD4dIhR_vzA"> 293 <children xmi:type="notation:Node" xmi:id="_20SOEDNlEe2fD4dIhR_vzA" type="3010" element="_2zSIgDNlEe2fD4dIhR_vzA">
298 <styles xmi:type="notation:FontStyle" xmi:id="_20SOETNlEe2fD4dIhR_vzA" fontName="Noto Sans" fontHeight="8"/> 294 <styles xmi:type="notation:FontStyle" xmi:id="_20SOETNlEe2fD4dIhR_vzA" fontName="Noto Sans" fontHeight="8"/>
299 <layoutConstraint xmi:type="notation:Location" xmi:id="_20SOEjNlEe2fD4dIhR_vzA"/> 295 <layoutConstraint xmi:type="notation:Location" xmi:id="_20SOEjNlEe2fD4dIhR_vzA"/>
@@ -310,7 +306,7 @@
310 <styles xmi:type="notation:FilteringStyle" xmi:id="_xp2JgzNlEe2fD4dIhR_vzA"/> 306 <styles xmi:type="notation:FilteringStyle" xmi:id="_xp2JgzNlEe2fD4dIhR_vzA"/>
311 </children> 307 </children>
312 <styles xmi:type="notation:ShapeStyle" xmi:id="_xp1icTNlEe2fD4dIhR_vzA" fontName="Noto Sans" fontHeight="8"/> 308 <styles xmi:type="notation:ShapeStyle" xmi:id="_xp1icTNlEe2fD4dIhR_vzA" fontName="Noto Sans" fontHeight="8"/>
313 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xp1icjNlEe2fD4dIhR_vzA" x="602" y="1128" width="120" height="100"/> 309 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xp1icjNlEe2fD4dIhR_vzA" x="574" y="1280" width="120" height="100"/>
314 </children> 310 </children>
315 <children xmi:type="notation:Node" xmi:id="_DFHboDNoEe2fD4dIhR_vzA" type="2003" element="_DD1pQDNoEe2fD4dIhR_vzA"> 311 <children xmi:type="notation:Node" xmi:id="_DFHboDNoEe2fD4dIhR_vzA" type="2003" element="_DD1pQDNoEe2fD4dIhR_vzA">
316 <children xmi:type="notation:Node" xmi:id="_DFICsDNoEe2fD4dIhR_vzA" type="5007"/> 312 <children xmi:type="notation:Node" xmi:id="_DFICsDNoEe2fD4dIhR_vzA" type="5007"/>
@@ -335,16 +331,20 @@
335 <styles xmi:type="notation:FilteringStyle" xmi:id="_DFICszNoEe2fD4dIhR_vzA"/> 331 <styles xmi:type="notation:FilteringStyle" xmi:id="_DFICszNoEe2fD4dIhR_vzA"/>
336 </children> 332 </children>
337 <styles xmi:type="notation:ShapeStyle" xmi:id="_DFHboTNoEe2fD4dIhR_vzA" fontName="Noto Sans" fontHeight="8"/> 333 <styles xmi:type="notation:ShapeStyle" xmi:id="_DFHboTNoEe2fD4dIhR_vzA" fontName="Noto Sans" fontHeight="8"/>
338 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DFHbojNoEe2fD4dIhR_vzA" x="1383" y="1128" width="120" height="100"/> 334 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DFHbojNoEe2fD4dIhR_vzA" x="1355" y="1280" width="120" height="100"/>
339 </children> 335 </children>
340 <children xmi:type="notation:Node" xmi:id="_782skF9mEe2rXNsIDUvqhw" type="2003" element="_78pRMF9mEe2rXNsIDUvqhw"> 336 <children xmi:type="notation:Node" xmi:id="_782skF9mEe2rXNsIDUvqhw" type="2003" element="_78pRMF9mEe2rXNsIDUvqhw">
341 <children xmi:type="notation:Node" xmi:id="_783ToF9mEe2rXNsIDUvqhw" type="5007"/> 337 <children xmi:type="notation:Node" xmi:id="_783ToF9mEe2rXNsIDUvqhw" type="5007"/>
342 <children xmi:type="notation:Node" xmi:id="_783ToV9mEe2rXNsIDUvqhw" type="7004"> 338 <children xmi:type="notation:Node" xmi:id="_783ToV9mEe2rXNsIDUvqhw" type="7004">
339 <children xmi:type="notation:Node" xmi:id="_WXcHIGg9Ee25oofngfVl_A" type="3010" element="_WWiIMGg9Ee25oofngfVl_A">
340 <styles xmi:type="notation:FontStyle" xmi:id="_WXcHIWg9Ee25oofngfVl_A" fontColor="2697711" fontName="Noto Sans" fontHeight="8"/>
341 <layoutConstraint xmi:type="notation:Location" xmi:id="_WXcHImg9Ee25oofngfVl_A"/>
342 </children>
343 <styles xmi:type="notation:SortingStyle" xmi:id="_783Tol9mEe2rXNsIDUvqhw"/> 343 <styles xmi:type="notation:SortingStyle" xmi:id="_783Tol9mEe2rXNsIDUvqhw"/>
344 <styles xmi:type="notation:FilteringStyle" xmi:id="_783To19mEe2rXNsIDUvqhw"/> 344 <styles xmi:type="notation:FilteringStyle" xmi:id="_783To19mEe2rXNsIDUvqhw"/>
345 </children> 345 </children>
346 <styles xmi:type="notation:ShapeStyle" xmi:id="_782skV9mEe2rXNsIDUvqhw" fontName="Noto Sans" fontHeight="8"/> 346 <styles xmi:type="notation:ShapeStyle" xmi:id="_782skV9mEe2rXNsIDUvqhw" fontName="Noto Sans" fontHeight="8"/>
347 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_782skl9mEe2rXNsIDUvqhw" x="1578" y="720" width="132" height="100"/> 347 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_782skl9mEe2rXNsIDUvqhw" x="1550" y="716" width="132" height="100"/>
348 </children> 348 </children>
349 <children xmi:type="notation:Node" xmi:id="_rsftYF9vEe2rXNsIDUvqhw" type="2003" element="_rsVVUF9vEe2rXNsIDUvqhw"> 349 <children xmi:type="notation:Node" xmi:id="_rsftYF9vEe2rXNsIDUvqhw" type="2003" element="_rsVVUF9vEe2rXNsIDUvqhw">
350 <children xmi:type="notation:Node" xmi:id="_rsgUcF9vEe2rXNsIDUvqhw" type="5007"/> 350 <children xmi:type="notation:Node" xmi:id="_rsgUcF9vEe2rXNsIDUvqhw" type="5007"/>
@@ -353,7 +353,7 @@
353 <styles xmi:type="notation:FilteringStyle" xmi:id="_rsgUc19vEe2rXNsIDUvqhw"/> 353 <styles xmi:type="notation:FilteringStyle" xmi:id="_rsgUc19vEe2rXNsIDUvqhw"/>
354 </children> 354 </children>
355 <styles xmi:type="notation:ShapeStyle" xmi:id="_rsftYV9vEe2rXNsIDUvqhw" fontName="Noto Sans" fontHeight="8"/> 355 <styles xmi:type="notation:ShapeStyle" xmi:id="_rsftYV9vEe2rXNsIDUvqhw" fontName="Noto Sans" fontHeight="8"/>
356 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rsftYl9vEe2rXNsIDUvqhw" x="1812" y="960" width="120" height="100"/> 356 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_rsftYl9vEe2rXNsIDUvqhw" x="1784" y="956" width="120" height="100"/>
357 </children> 357 </children>
358 <children xmi:type="notation:Node" xmi:id="_thrGUF9vEe2rXNsIDUvqhw" type="2003" element="_thaAkF9vEe2rXNsIDUvqhw"> 358 <children xmi:type="notation:Node" xmi:id="_thrGUF9vEe2rXNsIDUvqhw" type="2003" element="_thaAkF9vEe2rXNsIDUvqhw">
359 <children xmi:type="notation:Node" xmi:id="_thrGU19vEe2rXNsIDUvqhw" type="5007"/> 359 <children xmi:type="notation:Node" xmi:id="_thrGU19vEe2rXNsIDUvqhw" type="5007"/>
@@ -362,7 +362,7 @@
362 <styles xmi:type="notation:FilteringStyle" xmi:id="_thrGVl9vEe2rXNsIDUvqhw"/> 362 <styles xmi:type="notation:FilteringStyle" xmi:id="_thrGVl9vEe2rXNsIDUvqhw"/>
363 </children> 363 </children>
364 <styles xmi:type="notation:ShapeStyle" xmi:id="_thrGUV9vEe2rXNsIDUvqhw" fontName="Noto Sans" fontHeight="8"/> 364 <styles xmi:type="notation:ShapeStyle" xmi:id="_thrGUV9vEe2rXNsIDUvqhw" fontName="Noto Sans" fontHeight="8"/>
365 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_thrGUl9vEe2rXNsIDUvqhw" x="1590" y="1128" width="120" height="100"/> 365 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_thrGUl9vEe2rXNsIDUvqhw" x="1562" y="1124" width="120" height="100"/>
366 </children> 366 </children>
367 <children xmi:type="notation:Node" xmi:id="_uqERwF9vEe2rXNsIDUvqhw" type="2003" element="_up7H0F9vEe2rXNsIDUvqhw"> 367 <children xmi:type="notation:Node" xmi:id="_uqERwF9vEe2rXNsIDUvqhw" type="2003" element="_up7H0F9vEe2rXNsIDUvqhw">
368 <children xmi:type="notation:Node" xmi:id="_uqERw19vEe2rXNsIDUvqhw" type="5007"/> 368 <children xmi:type="notation:Node" xmi:id="_uqERw19vEe2rXNsIDUvqhw" type="5007"/>
@@ -371,7 +371,7 @@
371 <styles xmi:type="notation:FilteringStyle" xmi:id="_uqE40l9vEe2rXNsIDUvqhw"/> 371 <styles xmi:type="notation:FilteringStyle" xmi:id="_uqE40l9vEe2rXNsIDUvqhw"/>
372 </children> 372 </children>
373 <styles xmi:type="notation:ShapeStyle" xmi:id="_uqERwV9vEe2rXNsIDUvqhw" fontName="Noto Sans" fontHeight="8"/> 373 <styles xmi:type="notation:ShapeStyle" xmi:id="_uqERwV9vEe2rXNsIDUvqhw" fontName="Noto Sans" fontHeight="8"/>
374 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uqERwl9vEe2rXNsIDUvqhw" x="1812" y="1128" width="120" height="100"/> 374 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uqERwl9vEe2rXNsIDUvqhw" x="1784" y="1124" width="120" height="100"/>
375 </children> 375 </children>
376 <children xmi:type="notation:Node" xmi:id="_1HBuIF9vEe2rXNsIDUvqhw" type="2003" element="_1G5LQF9vEe2rXNsIDUvqhw"> 376 <children xmi:type="notation:Node" xmi:id="_1HBuIF9vEe2rXNsIDUvqhw" type="2003" element="_1G5LQF9vEe2rXNsIDUvqhw">
377 <children xmi:type="notation:Node" xmi:id="_1HBuI19vEe2rXNsIDUvqhw" type="5007"/> 377 <children xmi:type="notation:Node" xmi:id="_1HBuI19vEe2rXNsIDUvqhw" type="5007"/>
@@ -380,7 +380,7 @@
380 <styles xmi:type="notation:FilteringStyle" xmi:id="_1HBuJl9vEe2rXNsIDUvqhw"/> 380 <styles xmi:type="notation:FilteringStyle" xmi:id="_1HBuJl9vEe2rXNsIDUvqhw"/>
381 </children> 381 </children>
382 <styles xmi:type="notation:ShapeStyle" xmi:id="_1HBuIV9vEe2rXNsIDUvqhw" fontName="Noto Sans" fontHeight="8" italic="true"/> 382 <styles xmi:type="notation:ShapeStyle" xmi:id="_1HBuIV9vEe2rXNsIDUvqhw" fontName="Noto Sans" fontHeight="8" italic="true"/>
383 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1HBuIl9vEe2rXNsIDUvqhw" x="1375" y="960" width="135"/> 383 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1HBuIl9vEe2rXNsIDUvqhw" x="1347" y="956" width="135"/>
384 </children> 384 </children>
385 <children xmi:type="notation:Node" xmi:id="_286RsF9vEe2rXNsIDUvqhw" type="2003" element="_28xu0F9vEe2rXNsIDUvqhw"> 385 <children xmi:type="notation:Node" xmi:id="_286RsF9vEe2rXNsIDUvqhw" type="2003" element="_28xu0F9vEe2rXNsIDUvqhw">
386 <children xmi:type="notation:Node" xmi:id="_2864wF9vEe2rXNsIDUvqhw" type="5007"/> 386 <children xmi:type="notation:Node" xmi:id="_2864wF9vEe2rXNsIDUvqhw" type="5007"/>
@@ -389,7 +389,7 @@
389 <styles xmi:type="notation:FilteringStyle" xmi:id="_2864w19vEe2rXNsIDUvqhw"/> 389 <styles xmi:type="notation:FilteringStyle" xmi:id="_2864w19vEe2rXNsIDUvqhw"/>
390 </children> 390 </children>
391 <styles xmi:type="notation:ShapeStyle" xmi:id="_286RsV9vEe2rXNsIDUvqhw" fontName="Noto Sans" fontHeight="8"/> 391 <styles xmi:type="notation:ShapeStyle" xmi:id="_286RsV9vEe2rXNsIDUvqhw" fontName="Noto Sans" fontHeight="8"/>
392 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_286Rsl9vEe2rXNsIDUvqhw" x="1137" y="960"/> 392 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_286Rsl9vEe2rXNsIDUvqhw" x="1124" y="956"/>
393 </children> 393 </children>
394 <children xmi:type="notation:Node" xmi:id="_HyypsF9wEe2rXNsIDUvqhw" type="2003" element="_HynqkF9wEe2rXNsIDUvqhw"> 394 <children xmi:type="notation:Node" xmi:id="_HyypsF9wEe2rXNsIDUvqhw" type="2003" element="_HynqkF9wEe2rXNsIDUvqhw">
395 <children xmi:type="notation:Node" xmi:id="_Hyyps19wEe2rXNsIDUvqhw" type="5007"/> 395 <children xmi:type="notation:Node" xmi:id="_Hyyps19wEe2rXNsIDUvqhw" type="5007"/>
@@ -398,7 +398,7 @@
398 <styles xmi:type="notation:FilteringStyle" xmi:id="_Hyyptl9wEe2rXNsIDUvqhw"/> 398 <styles xmi:type="notation:FilteringStyle" xmi:id="_Hyyptl9wEe2rXNsIDUvqhw"/>
399 </children> 399 </children>
400 <styles xmi:type="notation:ShapeStyle" xmi:id="_HyypsV9wEe2rXNsIDUvqhw" fontName="Noto Sans" fontHeight="8" italic="true"/> 400 <styles xmi:type="notation:ShapeStyle" xmi:id="_HyypsV9wEe2rXNsIDUvqhw" fontName="Noto Sans" fontHeight="8" italic="true"/>
401 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Hyypsl9wEe2rXNsIDUvqhw" x="1707" y="1284"/> 401 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Hyypsl9wEe2rXNsIDUvqhw" x="1679" y="1280"/>
402 </children> 402 </children>
403 <children xmi:type="notation:Node" xmi:id="_dzfLYGTvEe2qdtyPWAtoxA" type="2003" element="_dzVaYGTvEe2qdtyPWAtoxA"> 403 <children xmi:type="notation:Node" xmi:id="_dzfLYGTvEe2qdtyPWAtoxA" type="2003" element="_dzVaYGTvEe2qdtyPWAtoxA">
404 <children xmi:type="notation:Node" xmi:id="_dzfLY2TvEe2qdtyPWAtoxA" type="5007"/> 404 <children xmi:type="notation:Node" xmi:id="_dzfLY2TvEe2qdtyPWAtoxA" type="5007"/>
@@ -407,7 +407,59 @@
407 <styles xmi:type="notation:FilteringStyle" xmi:id="_dzfLZmTvEe2qdtyPWAtoxA"/> 407 <styles xmi:type="notation:FilteringStyle" xmi:id="_dzfLZmTvEe2qdtyPWAtoxA"/>
408 </children> 408 </children>
409 <styles xmi:type="notation:ShapeStyle" xmi:id="_dzfLYWTvEe2qdtyPWAtoxA" fontName="Noto Sans" fontHeight="8" italic="true"/> 409 <styles xmi:type="notation:ShapeStyle" xmi:id="_dzfLYWTvEe2qdtyPWAtoxA" fontName="Noto Sans" fontHeight="8" italic="true"/>
410 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dzfLYmTvEe2qdtyPWAtoxA" x="525" y="528"/> 410 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_dzfLYmTvEe2qdtyPWAtoxA" x="497" y="524"/>
411 </children>
412 <children xmi:type="notation:Node" xmi:id="_O9jk8Gg8Ee25oofngfVl_A" type="2003" element="_O8gcEGg8Ee25oofngfVl_A">
413 <children xmi:type="notation:Node" xmi:id="_O9rgwGg8Ee25oofngfVl_A" type="5007"/>
414 <children xmi:type="notation:Node" xmi:id="_O9sH0Gg8Ee25oofngfVl_A" type="7004">
415 <styles xmi:type="notation:SortingStyle" xmi:id="_O9sH0Wg8Ee25oofngfVl_A"/>
416 <styles xmi:type="notation:FilteringStyle" xmi:id="_O9sH0mg8Ee25oofngfVl_A"/>
417 </children>
418 <styles xmi:type="notation:ShapeStyle" xmi:id="_O9jk8Wg8Ee25oofngfVl_A" fontName="Noto Sans" fontHeight="8"/>
419 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_O9jk8mg8Ee25oofngfVl_A" x="572" y="956" width="124" height="100"/>
420 </children>
421 <children xmi:type="notation:Node" xmi:id="_cVTpMGg8Ee25oofngfVl_A" type="2003" element="_cU9D4Gg8Ee25oofngfVl_A">
422 <children xmi:type="notation:Node" xmi:id="_cVTpM2g8Ee25oofngfVl_A" type="5007"/>
423 <children xmi:type="notation:Node" xmi:id="_cVTpNGg8Ee25oofngfVl_A" type="7004">
424 <children xmi:type="notation:Node" xmi:id="_ECnr8Gg9Ee25oofngfVl_A" type="3010" element="_EB7vcGg9Ee25oofngfVl_A">
425 <styles xmi:type="notation:FontStyle" xmi:id="_ECnr8Wg9Ee25oofngfVl_A" fontColor="2697711" fontName="Noto Sans" fontHeight="8"/>
426 <layoutConstraint xmi:type="notation:Location" xmi:id="_ECnr8mg9Ee25oofngfVl_A"/>
427 </children>
428 <styles xmi:type="notation:SortingStyle" xmi:id="_cVTpNWg8Ee25oofngfVl_A"/>
429 <styles xmi:type="notation:FilteringStyle" xmi:id="_cVTpNmg8Ee25oofngfVl_A"/>
430 </children>
431 <styles xmi:type="notation:ShapeStyle" xmi:id="_cVTpMWg8Ee25oofngfVl_A" fontName="Noto Sans" fontHeight="8"/>
432 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cVTpMmg8Ee25oofngfVl_A" x="768" y="1124" width="135" height="100"/>
433 </children>
434 <children xmi:type="notation:Node" xmi:id="_jZNw0Gg8Ee25oofngfVl_A" type="2003" element="_jY5nwGg8Ee25oofngfVl_A">
435 <children xmi:type="notation:Node" xmi:id="_jZNw02g8Ee25oofngfVl_A" type="5007"/>
436 <children xmi:type="notation:Node" xmi:id="_jZNw1Gg8Ee25oofngfVl_A" type="7004">
437 <styles xmi:type="notation:SortingStyle" xmi:id="_jZNw1Wg8Ee25oofngfVl_A"/>
438 <styles xmi:type="notation:FilteringStyle" xmi:id="_jZNw1mg8Ee25oofngfVl_A"/>
439 </children>
440 <styles xmi:type="notation:ShapeStyle" xmi:id="_jZNw0Wg8Ee25oofngfVl_A" fontName="Noto Sans" fontHeight="8"/>
441 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jZNw0mg8Ee25oofngfVl_A" x="956" y="1124" width="120" height="100"/>
442 </children>
443 <children xmi:type="notation:Node" xmi:id="_pOTU4Gg8Ee25oofngfVl_A" type="2003" element="_pOBoEGg8Ee25oofngfVl_A">
444 <children xmi:type="notation:Node" xmi:id="_pOT78Gg8Ee25oofngfVl_A" type="5007"/>
445 <children xmi:type="notation:Node" xmi:id="_pOT78Wg8Ee25oofngfVl_A" type="7004">
446 <children xmi:type="notation:Node" xmi:id="_qPXJQGg8Ee25oofngfVl_A" type="3010" element="_qOtpAGg8Ee25oofngfVl_A">
447 <styles xmi:type="notation:FontStyle" xmi:id="_qPXJQWg8Ee25oofngfVl_A" fontName="Noto Sans" fontHeight="8"/>
448 <layoutConstraint xmi:type="notation:Location" xmi:id="_qPXJQmg8Ee25oofngfVl_A"/>
449 </children>
450 <children xmi:type="notation:Node" xmi:id="_qqPucGg8Ee25oofngfVl_A" type="3010" element="_qp-BoGg8Ee25oofngfVl_A">
451 <styles xmi:type="notation:FontStyle" xmi:id="_qqPucWg8Ee25oofngfVl_A" fontName="Noto Sans" fontHeight="8"/>
452 <layoutConstraint xmi:type="notation:Location" xmi:id="_qqPucmg8Ee25oofngfVl_A"/>
453 </children>
454 <children xmi:type="notation:Node" xmi:id="_rAE0gGg8Ee25oofngfVl_A" type="3010" element="_q_vdUGg8Ee25oofngfVl_A">
455 <styles xmi:type="notation:FontStyle" xmi:id="_rAE0gWg8Ee25oofngfVl_A" fontName="Noto Sans" fontHeight="8"/>
456 <layoutConstraint xmi:type="notation:Location" xmi:id="_rAE0gmg8Ee25oofngfVl_A"/>
457 </children>
458 <styles xmi:type="notation:SortingStyle" xmi:id="_pOT78mg8Ee25oofngfVl_A"/>
459 <styles xmi:type="notation:FilteringStyle" xmi:id="_pOT782g8Ee25oofngfVl_A"/>
460 </children>
461 <styles xmi:type="notation:ShapeStyle" xmi:id="_pOTU4Wg8Ee25oofngfVl_A" fontName="Noto Sans" fontHeight="8"/>
462 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pOTU4mg8Ee25oofngfVl_A" x="776" y="1280" width="120" height="100"/>
411 </children> 463 </children>
412 <styles xmi:type="notation:DiagramStyle" xmi:id="_CsZB8qA4EeuqkpDnuik1sg"/> 464 <styles xmi:type="notation:DiagramStyle" xmi:id="_CsZB8qA4EeuqkpDnuik1sg"/>
413 <edges xmi:type="notation:Edge" xmi:id="_4eaYwKA8EeuqkpDnuik1sg" type="4001" element="_4eU5TqA8EeuqkpDnuik1sg" source="_D1D6MKA4EeuqkpDnuik1sg" target="_xsq_MKA8EeuqkpDnuik1sg"> 465 <edges xmi:type="notation:Edge" xmi:id="_4eaYwKA8EeuqkpDnuik1sg" type="4001" element="_4eU5TqA8EeuqkpDnuik1sg" source="_D1D6MKA4EeuqkpDnuik1sg" target="_xsq_MKA8EeuqkpDnuik1sg">
@@ -458,22 +510,6 @@
458 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_m_00QNXtEeuF_d0WEhR3Xw" id="(0.711864406779661,0.0)"/> 510 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_m_00QNXtEeuF_d0WEhR3Xw" id="(0.711864406779661,0.0)"/>
459 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_m_00QdXtEeuF_d0WEhR3Xw" id="(0.5,0.5)"/> 511 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_m_00QdXtEeuF_d0WEhR3Xw" id="(0.5,0.5)"/>
460 </edges> 512 </edges>
461 <edges xmi:type="notation:Edge" xmi:id="_jlBE0KA4EeuqkpDnuik1sg" type="4001" element="_jk6-PKA4EeuqkpDnuik1sg" source="_JT0o8KA4EeuqkpDnuik1sg" target="_c-HCQKA4EeuqkpDnuik1sg">
462 <children xmi:type="notation:Node" xmi:id="_jlBE1KA4EeuqkpDnuik1sg" type="6001">
463 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jlBE1aA4EeuqkpDnuik1sg" x="-76" y="-14"/>
464 </children>
465 <children xmi:type="notation:Node" xmi:id="_jlBE1qA4EeuqkpDnuik1sg" type="6002">
466 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jlBE16A4EeuqkpDnuik1sg" x="4" y="10"/>
467 </children>
468 <children xmi:type="notation:Node" xmi:id="_jlBE2KA4EeuqkpDnuik1sg" type="6003">
469 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jlBE2aA4EeuqkpDnuik1sg" x="-4" y="10"/>
470 </children>
471 <styles xmi:type="notation:ConnectorStyle" xmi:id="_jlBE0aA4EeuqkpDnuik1sg" routing="Rectilinear"/>
472 <styles xmi:type="notation:FontStyle" xmi:id="_jlBE0qA4EeuqkpDnuik1sg" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/>
473 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_jlBE06A4EeuqkpDnuik1sg" points="[-24, 0, 35, -142]$[-24, 58, 35, -84]$[-59, 58, 0, -84]$[-59, 142, 0, 0]"/>
474 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_jlBr4KA4EeuqkpDnuik1sg" id="(0.4067796610169492,1.0)"/>
475 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_jlBr4aA4EeuqkpDnuik1sg" id="(0.503448275862069,0.0)"/>
476 </edges>
477 <edges xmi:type="notation:Edge" xmi:id="_pldLAKA9EeuqkpDnuik1sg" type="4001" element="_plK3JqA9EeuqkpDnuik1sg" source="_JT0o8KA4EeuqkpDnuik1sg" target="_e73WIKA9EeuqkpDnuik1sg"> 513 <edges xmi:type="notation:Edge" xmi:id="_pldLAKA9EeuqkpDnuik1sg" type="4001" element="_plK3JqA9EeuqkpDnuik1sg" source="_JT0o8KA4EeuqkpDnuik1sg" target="_e73WIKA9EeuqkpDnuik1sg">
478 <children xmi:type="notation:Node" xmi:id="_pldLBKA9EeuqkpDnuik1sg" type="6001"> 514 <children xmi:type="notation:Node" xmi:id="_pldLBKA9EeuqkpDnuik1sg" type="6001">
479 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pldLBaA9EeuqkpDnuik1sg" y="-10"/> 515 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pldLBaA9EeuqkpDnuik1sg" y="-10"/>
@@ -764,17 +800,17 @@
764 </edges> 800 </edges>
765 <edges xmi:type="notation:Edge" xmi:id="_n5uykKBJEeuqkpDnuik1sg" type="4001" element="_n5fiHqBJEeuqkpDnuik1sg" source="_zaq8oKA9EeuqkpDnuik1sg" target="_Ren3cKBJEeuqkpDnuik1sg"> 801 <edges xmi:type="notation:Edge" xmi:id="_n5uykKBJEeuqkpDnuik1sg" type="4001" element="_n5fiHqBJEeuqkpDnuik1sg" source="_zaq8oKA9EeuqkpDnuik1sg" target="_Ren3cKBJEeuqkpDnuik1sg">
766 <children xmi:type="notation:Node" xmi:id="_n5uylKBJEeuqkpDnuik1sg" type="6001"> 802 <children xmi:type="notation:Node" xmi:id="_n5uylKBJEeuqkpDnuik1sg" type="6001">
767 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_n5uylaBJEeuqkpDnuik1sg" x="-5" y="-55"/> 803 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_n5uylaBJEeuqkpDnuik1sg" x="-89" y="-55"/>
768 </children> 804 </children>
769 <children xmi:type="notation:Node" xmi:id="_n5uylqBJEeuqkpDnuik1sg" type="6002"> 805 <children xmi:type="notation:Node" xmi:id="_n5uylqBJEeuqkpDnuik1sg" type="6002">
770 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_n5uyl6BJEeuqkpDnuik1sg" y="10"/> 806 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_n5uyl6BJEeuqkpDnuik1sg" x="-25" y="10"/>
771 </children> 807 </children>
772 <children xmi:type="notation:Node" xmi:id="_n5uymKBJEeuqkpDnuik1sg" type="6003"> 808 <children xmi:type="notation:Node" xmi:id="_n5uymKBJEeuqkpDnuik1sg" type="6003">
773 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_n5uymaBJEeuqkpDnuik1sg" y="10"/> 809 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_n5uymaBJEeuqkpDnuik1sg" x="-143" y="10"/>
774 </children> 810 </children>
775 <styles xmi:type="notation:ConnectorStyle" xmi:id="_n5uykaBJEeuqkpDnuik1sg" routing="Rectilinear"/> 811 <styles xmi:type="notation:ConnectorStyle" xmi:id="_n5uykaBJEeuqkpDnuik1sg" routing="Rectilinear"/>
776 <styles xmi:type="notation:FontStyle" xmi:id="_n5uykqBJEeuqkpDnuik1sg" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/> 812 <styles xmi:type="notation:FontStyle" xmi:id="_n5uykqBJEeuqkpDnuik1sg" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/>
777 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_n5uyk6BJEeuqkpDnuik1sg" points="[0, 0, 0, -143]$[0, 143, 0, 0]"/> 813 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_n5uyk6BJEeuqkpDnuik1sg" points="[0, 0, 0, -311]$[0, 311, 0, 0]"/>
778 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_n5uymqBJEeuqkpDnuik1sg" id="(0.4067796610169492,1.0)"/> 814 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_n5uymqBJEeuqkpDnuik1sg" id="(0.4067796610169492,1.0)"/>
779 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_n5uym6BJEeuqkpDnuik1sg" id="(0.4067796610169492,0.0)"/> 815 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_n5uym6BJEeuqkpDnuik1sg" id="(0.4067796610169492,0.0)"/>
780 </edges> 816 </edges>
@@ -924,17 +960,17 @@
924 </edges> 960 </edges>
925 <edges xmi:type="notation:Edge" xmi:id="_287f0F9vEe2rXNsIDUvqhw" type="4001" element="_283OkF9vEe2rXNsIDUvqhw" source="_1HBuIF9vEe2rXNsIDUvqhw" target="_286RsF9vEe2rXNsIDUvqhw"> 961 <edges xmi:type="notation:Edge" xmi:id="_287f0F9vEe2rXNsIDUvqhw" type="4001" element="_283OkF9vEe2rXNsIDUvqhw" source="_1HBuIF9vEe2rXNsIDUvqhw" target="_286RsF9vEe2rXNsIDUvqhw">
926 <children xmi:type="notation:Node" xmi:id="_287f1F9vEe2rXNsIDUvqhw" type="6001"> 962 <children xmi:type="notation:Node" xmi:id="_287f1F9vEe2rXNsIDUvqhw" type="6001">
927 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_287f1V9vEe2rXNsIDUvqhw" x="5" y="16"/> 963 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_287f1V9vEe2rXNsIDUvqhw" x="-2" y="16"/>
928 </children> 964 </children>
929 <children xmi:type="notation:Node" xmi:id="_287f1l9vEe2rXNsIDUvqhw" type="6002"> 965 <children xmi:type="notation:Node" xmi:id="_287f1l9vEe2rXNsIDUvqhw" type="6002">
930 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_287f119vEe2rXNsIDUvqhw" x="37" y="-10"/> 966 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_287f119vEe2rXNsIDUvqhw" x="40" y="-10"/>
931 </children> 967 </children>
932 <children xmi:type="notation:Node" xmi:id="_287f2F9vEe2rXNsIDUvqhw" type="6003"> 968 <children xmi:type="notation:Node" xmi:id="_287f2F9vEe2rXNsIDUvqhw" type="6003">
933 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_287f2V9vEe2rXNsIDUvqhw" y="-10"/> 969 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_287f2V9vEe2rXNsIDUvqhw" x="13" y="-10"/>
934 </children> 970 </children>
935 <styles xmi:type="notation:ConnectorStyle" xmi:id="_287f0V9vEe2rXNsIDUvqhw" routing="Rectilinear"/> 971 <styles xmi:type="notation:ConnectorStyle" xmi:id="_287f0V9vEe2rXNsIDUvqhw" routing="Rectilinear"/>
936 <styles xmi:type="notation:FontStyle" xmi:id="_287f0l9vEe2rXNsIDUvqhw" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/> 972 <styles xmi:type="notation:FontStyle" xmi:id="_287f0l9vEe2rXNsIDUvqhw" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/>
937 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_287f019vEe2rXNsIDUvqhw" points="[-59, -1, 179, -1]$[-179, -1, 59, -1]"/> 973 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_287f019vEe2rXNsIDUvqhw" points="[-59, -1, 164, -1]$[-164, -1, 59, -1]"/>
938 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_288G4F9vEe2rXNsIDUvqhw" id="(0.44360902255639095,0.5)"/> 974 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_288G4F9vEe2rXNsIDUvqhw" id="(0.44360902255639095,0.5)"/>
939 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_288G4V9vEe2rXNsIDUvqhw" id="(0.5,0.5)"/> 975 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_288G4V9vEe2rXNsIDUvqhw" id="(0.5,0.5)"/>
940 </edges> 976 </edges>
@@ -1066,22 +1102,6 @@
1066 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_m2W6FGTvEe2qdtyPWAtoxA" id="(0.4067796610169492,1.0)"/> 1102 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_m2W6FGTvEe2qdtyPWAtoxA" id="(0.4067796610169492,1.0)"/>
1067 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_m2W6FWTvEe2qdtyPWAtoxA" id="(0.5,0.5)"/> 1103 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_m2W6FWTvEe2qdtyPWAtoxA" id="(0.5,0.5)"/>
1068 </edges> 1104 </edges>
1069 <edges xmi:type="notation:Edge" xmi:id="_nx8YkGTvEe2qdtyPWAtoxA" type="4001" element="_nxr57GTvEe2qdtyPWAtoxA" source="_c-HCQKA4EeuqkpDnuik1sg" target="_dzfLYGTvEe2qdtyPWAtoxA">
1070 <children xmi:type="notation:Node" xmi:id="_nx8_oGTvEe2qdtyPWAtoxA" type="6001">
1071 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nx8_oWTvEe2qdtyPWAtoxA" y="-10"/>
1072 </children>
1073 <children xmi:type="notation:Node" xmi:id="_nx8_omTvEe2qdtyPWAtoxA" type="6002">
1074 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nx8_o2TvEe2qdtyPWAtoxA" y="10"/>
1075 </children>
1076 <children xmi:type="notation:Node" xmi:id="_nx8_pGTvEe2qdtyPWAtoxA" type="6003">
1077 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_nx8_pWTvEe2qdtyPWAtoxA" y="10"/>
1078 </children>
1079 <styles xmi:type="notation:ConnectorStyle" xmi:id="_nx8YkWTvEe2qdtyPWAtoxA" routing="Tree"/>
1080 <styles xmi:type="notation:FontStyle" xmi:id="_nx8YkmTvEe2qdtyPWAtoxA" fontName="Noto Sans" fontHeight="8"/>
1081 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_nx8Yk2TvEe2qdtyPWAtoxA" points="[0, 0, 76, 334]$[-76, -334, 0, 0]"/>
1082 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_nx8_pmTvEe2qdtyPWAtoxA" id="(0.2827586206896552,0.02040816326530612)"/>
1083 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_nx8_p2TvEe2qdtyPWAtoxA" id="(0.5,0.5)"/>
1084 </edges>
1085 <edges xmi:type="notation:Edge" xmi:id="_pHyxMGTvEe2qdtyPWAtoxA" type="4001" element="_pHlWJ2TvEe2qdtyPWAtoxA" source="_M6O-0NbGEeuymriYTNxK2g" target="_dzfLYGTvEe2qdtyPWAtoxA"> 1105 <edges xmi:type="notation:Edge" xmi:id="_pHyxMGTvEe2qdtyPWAtoxA" type="4001" element="_pHlWJ2TvEe2qdtyPWAtoxA" source="_M6O-0NbGEeuymriYTNxK2g" target="_dzfLYGTvEe2qdtyPWAtoxA">
1086 <children xmi:type="notation:Node" xmi:id="_pHyxNGTvEe2qdtyPWAtoxA" type="6001"> 1106 <children xmi:type="notation:Node" xmi:id="_pHyxNGTvEe2qdtyPWAtoxA" type="6001">
1087 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pHyxNWTvEe2qdtyPWAtoxA" y="-10"/> 1107 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pHyxNWTvEe2qdtyPWAtoxA" y="-10"/>
@@ -1164,49 +1184,33 @@
1164 </edges> 1184 </edges>
1165 <edges xmi:type="notation:Edge" xmi:id="_Nr78MGTzEe2qdtyPWAtoxA" type="4001" element="_NrtSzmTzEe2qdtyPWAtoxA" source="_c-HCQKA4EeuqkpDnuik1sg" target="_dzfLYGTvEe2qdtyPWAtoxA"> 1185 <edges xmi:type="notation:Edge" xmi:id="_Nr78MGTzEe2qdtyPWAtoxA" type="4001" element="_NrtSzmTzEe2qdtyPWAtoxA" source="_c-HCQKA4EeuqkpDnuik1sg" target="_dzfLYGTvEe2qdtyPWAtoxA">
1166 <children xmi:type="notation:Node" xmi:id="_Nr78NGTzEe2qdtyPWAtoxA" type="6001"> 1186 <children xmi:type="notation:Node" xmi:id="_Nr78NGTzEe2qdtyPWAtoxA" type="6001">
1167 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Nr78NWTzEe2qdtyPWAtoxA" x="-3"/> 1187 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Nr78NWTzEe2qdtyPWAtoxA" x="81"/>
1168 </children> 1188 </children>
1169 <children xmi:type="notation:Node" xmi:id="_Nr78NmTzEe2qdtyPWAtoxA" type="6002"> 1189 <children xmi:type="notation:Node" xmi:id="_Nr78NmTzEe2qdtyPWAtoxA" type="6002">
1170 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Nr78N2TzEe2qdtyPWAtoxA" x="53" y="10"/> 1190 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Nr78N2TzEe2qdtyPWAtoxA" x="196" y="10"/>
1171 </children> 1191 </children>
1172 <children xmi:type="notation:Node" xmi:id="_Nr78OGTzEe2qdtyPWAtoxA" type="6003"> 1192 <children xmi:type="notation:Node" xmi:id="_Nr78OGTzEe2qdtyPWAtoxA" type="6003">
1173 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Nr78OWTzEe2qdtyPWAtoxA" x="-5" y="10"/> 1193 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Nr78OWTzEe2qdtyPWAtoxA" x="20" y="10"/>
1174 </children> 1194 </children>
1175 <styles xmi:type="notation:ConnectorStyle" xmi:id="_Nr78MWTzEe2qdtyPWAtoxA" routing="Rectilinear"/> 1195 <styles xmi:type="notation:ConnectorStyle" xmi:id="_Nr78MWTzEe2qdtyPWAtoxA" routing="Rectilinear"/>
1176 <styles xmi:type="notation:FontStyle" xmi:id="_Nr78MmTzEe2qdtyPWAtoxA" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/> 1196 <styles xmi:type="notation:FontStyle" xmi:id="_Nr78MmTzEe2qdtyPWAtoxA" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/>
1177 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Nr78M2TzEe2qdtyPWAtoxA" points="[-60, 24, 24, 358]$[-84, 24, 0, 358]$[-84, -334, 0, 0]"/> 1197 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Nr78M2TzEe2qdtyPWAtoxA" points="[-60, 24, 24, 526]$[-84, 24, 0, 526]$[-84, -502, 0, 0]"/>
1178 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Nr78OmTzEe2qdtyPWAtoxA" id="(0.41379310344827586,0.0)"/> 1198 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Nr78OmTzEe2qdtyPWAtoxA" id="(0.41379310344827586,0.0)"/>
1179 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Nr78O2TzEe2qdtyPWAtoxA" id="(0.3305084745762712,1.0)"/> 1199 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Nr78O2TzEe2qdtyPWAtoxA" id="(0.3305084745762712,1.0)"/>
1180 </edges> 1200 </edges>
1181 <edges xmi:type="notation:Edge" xmi:id="_RLXQcGTzEe2qdtyPWAtoxA" type="4001" element="_RK6kjGTzEe2qdtyPWAtoxA" source="_782skF9mEe2rXNsIDUvqhw" target="_dzfLYGTvEe2qdtyPWAtoxA">
1182 <children xmi:type="notation:Node" xmi:id="_RLXQdGTzEe2qdtyPWAtoxA" type="6001">
1183 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RLXQdWTzEe2qdtyPWAtoxA" x="-437" y="-8"/>
1184 </children>
1185 <children xmi:type="notation:Node" xmi:id="_RLXQdmTzEe2qdtyPWAtoxA" type="6002">
1186 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RLXQd2TzEe2qdtyPWAtoxA" x="122" y="10"/>
1187 </children>
1188 <children xmi:type="notation:Node" xmi:id="_RLXQeGTzEe2qdtyPWAtoxA" type="6003">
1189 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RLXQeWTzEe2qdtyPWAtoxA" x="-49" y="10"/>
1190 </children>
1191 <styles xmi:type="notation:ConnectorStyle" xmi:id="_RLXQcWTzEe2qdtyPWAtoxA" routing="Rectilinear"/>
1192 <styles xmi:type="notation:FontStyle" xmi:id="_RLXQcmTzEe2qdtyPWAtoxA" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/>
1193 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_RLXQc2TzEe2qdtyPWAtoxA" points="[66, -36, 1001, 120]$[66, -96, 1001, 60]$[-954, -96, -19, 60]$[-954, -130, -19, 26]"/>
1194 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_RLXQemTzEe2qdtyPWAtoxA" id="(0.0,0.3673469387755102)"/>
1195 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_RLXQe2TzEe2qdtyPWAtoxA" id="(1.0,0.7346938775510204)"/>
1196 </edges>
1197 <edges xmi:type="notation:Edge" xmi:id="_YXbOgGTzEe2qdtyPWAtoxA" type="4001" element="_YWqZhmTzEe2qdtyPWAtoxA" source="_JT0o8KA4EeuqkpDnuik1sg" target="_dzfLYGTvEe2qdtyPWAtoxA"> 1201 <edges xmi:type="notation:Edge" xmi:id="_YXbOgGTzEe2qdtyPWAtoxA" type="4001" element="_YWqZhmTzEe2qdtyPWAtoxA" source="_JT0o8KA4EeuqkpDnuik1sg" target="_dzfLYGTvEe2qdtyPWAtoxA">
1198 <children xmi:type="notation:Node" xmi:id="_YXbOhGTzEe2qdtyPWAtoxA" type="6001"> 1202 <children xmi:type="notation:Node" xmi:id="_YXbOhGTzEe2qdtyPWAtoxA" type="6001">
1199 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YXbOhWTzEe2qdtyPWAtoxA" x="-17" y="-8"/> 1203 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YXbOhWTzEe2qdtyPWAtoxA" x="-12" y="-8"/>
1200 </children> 1204 </children>
1201 <children xmi:type="notation:Node" xmi:id="_YXbOhmTzEe2qdtyPWAtoxA" type="6002"> 1205 <children xmi:type="notation:Node" xmi:id="_YXbOhmTzEe2qdtyPWAtoxA" type="6002">
1202 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YXbOh2TzEe2qdtyPWAtoxA" x="-1" y="10"/> 1206 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YXbOh2TzEe2qdtyPWAtoxA" x="1" y="10"/>
1203 </children> 1207 </children>
1204 <children xmi:type="notation:Node" xmi:id="_YXbOiGTzEe2qdtyPWAtoxA" type="6003"> 1208 <children xmi:type="notation:Node" xmi:id="_YXbOiGTzEe2qdtyPWAtoxA" type="6003">
1205 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YXbOiWTzEe2qdtyPWAtoxA" x="1" y="10"/> 1209 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YXbOiWTzEe2qdtyPWAtoxA" x="-1" y="10"/>
1206 </children> 1210 </children>
1207 <styles xmi:type="notation:ConnectorStyle" xmi:id="_YXbOgWTzEe2qdtyPWAtoxA" routing="Rectilinear"/> 1211 <styles xmi:type="notation:ConnectorStyle" xmi:id="_YXbOgWTzEe2qdtyPWAtoxA" routing="Rectilinear"/>
1208 <styles xmi:type="notation:FontStyle" xmi:id="_YXbOgmTzEe2qdtyPWAtoxA" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/> 1212 <styles xmi:type="notation:FontStyle" xmi:id="_YXbOgmTzEe2qdtyPWAtoxA" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/>
1209 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_YXbOg2TzEe2qdtyPWAtoxA" points="[25, 0, 160, 94]$[25, -48, 160, 46]$[-117, -48, 18, 46]$[-117, -94, 18, 0]"/> 1213 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_YXbOg2TzEe2qdtyPWAtoxA" points="[25, 0, 160, 94]$[25, -48, 160, 46]$[-107, -48, 28, 46]$[-107, -94, 28, 0]"/>
1210 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YXbOimTzEe2qdtyPWAtoxA" id="(0.3983050847457627,0.0)"/> 1214 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YXbOimTzEe2qdtyPWAtoxA" id="(0.3983050847457627,0.0)"/>
1211 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YXbOi2TzEe2qdtyPWAtoxA" id="(0.5,1.0)"/> 1215 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YXbOi2TzEe2qdtyPWAtoxA" id="(0.5,1.0)"/>
1212 </edges> 1216 </edges>
@@ -1241,6 +1245,85 @@
1241 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_q7EI1mTzEe2qdtyPWAtoxA" id="(0.711864406779661,0.0)"/> 1245 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_q7EI1mTzEe2qdtyPWAtoxA" id="(0.711864406779661,0.0)"/>
1242 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_q7EI12TzEe2qdtyPWAtoxA" id="(0.0,0.5612244897959183)"/> 1246 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_q7EI12TzEe2qdtyPWAtoxA" id="(0.0,0.5612244897959183)"/>
1243 </edges> 1247 </edges>
1248 <edges xmi:type="notation:Edge" xmi:id="_Rq3fwGg8Ee25oofngfVl_A" type="4001" element="_jk6-PKA4EeuqkpDnuik1sg" source="_JT0o8KA4EeuqkpDnuik1sg" target="_O9jk8Gg8Ee25oofngfVl_A">
1249 <children xmi:type="notation:Node" xmi:id="_Rq4t4Gg8Ee25oofngfVl_A" type="6001">
1250 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Rq4t4Wg8Ee25oofngfVl_A" x="-53" y="-19"/>
1251 </children>
1252 <children xmi:type="notation:Node" xmi:id="_Rq5U8Gg8Ee25oofngfVl_A" type="6002">
1253 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Rq5U8Wg8Ee25oofngfVl_A" x="8" y="10"/>
1254 </children>
1255 <children xmi:type="notation:Node" xmi:id="_Rq58AGg8Ee25oofngfVl_A" type="6003">
1256 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Rq58AWg8Ee25oofngfVl_A" x="-8" y="10"/>
1257 </children>
1258 <styles xmi:type="notation:ConnectorStyle" xmi:id="_Rq3fwWg8Ee25oofngfVl_A" routing="Rectilinear"/>
1259 <styles xmi:type="notation:FontStyle" xmi:id="_Rq3fwmg8Ee25oofngfVl_A" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/>
1260 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Rq3fw2g8Ee25oofngfVl_A" points="[-24, 0, 35, -191]$[-24, 71, 35, -120]$[-60, 71, -1, -120]$[-60, 142, -1, -49]"/>
1261 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Rq8YQGg8Ee25oofngfVl_A" id="(0.4067796610169492,1.0)"/>
1262 </edges>
1263 <edges xmi:type="notation:Edge" xmi:id="_WnX2AGg8Ee25oofngfVl_A" type="4001" element="_nxr57GTvEe2qdtyPWAtoxA" source="_O9jk8Gg8Ee25oofngfVl_A" target="_dzfLYGTvEe2qdtyPWAtoxA">
1264 <children xmi:type="notation:Node" xmi:id="_WnX2BGg8Ee25oofngfVl_A" type="6001">
1265 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WnX2BWg8Ee25oofngfVl_A" y="-10"/>
1266 </children>
1267 <children xmi:type="notation:Node" xmi:id="_WnX2Bmg8Ee25oofngfVl_A" type="6002">
1268 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WnX2B2g8Ee25oofngfVl_A" y="10"/>
1269 </children>
1270 <children xmi:type="notation:Node" xmi:id="_WnX2CGg8Ee25oofngfVl_A" type="6003">
1271 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WnX2CWg8Ee25oofngfVl_A" y="10"/>
1272 </children>
1273 <styles xmi:type="notation:ConnectorStyle" xmi:id="_WnX2AWg8Ee25oofngfVl_A" routing="Tree"/>
1274 <styles xmi:type="notation:FontStyle" xmi:id="_WnX2Amg8Ee25oofngfVl_A" fontName="Noto Sans" fontHeight="8"/>
1275 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_WnX2A2g8Ee25oofngfVl_A" points="[0, -56, 86, 383]$[0, -320, 86, 119]$[-85, -320, 1, 119]$[-85, -390, 1, 49]"/>
1276 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WnZEIGg8Ee25oofngfVl_A" id="(0.22950819672131148,0.5714285714285714)"/>
1277 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_WnZEIWg8Ee25oofngfVl_A" id="(0.5,0.5)"/>
1278 </edges>
1279 <edges xmi:type="notation:Edge" xmi:id="_bOAC4Gg8Ee25oofngfVl_A" type="4001" element="_bNXJs2g8Ee25oofngfVl_A" source="_c-HCQKA4EeuqkpDnuik1sg" target="_O9jk8Gg8Ee25oofngfVl_A">
1280 <children xmi:type="notation:Node" xmi:id="_bOAp8Gg8Ee25oofngfVl_A" type="6001">
1281 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bOAp8Wg8Ee25oofngfVl_A" y="-10"/>
1282 </children>
1283 <children xmi:type="notation:Node" xmi:id="_bOAp8mg8Ee25oofngfVl_A" type="6002">
1284 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bOAp82g8Ee25oofngfVl_A" y="10"/>
1285 </children>
1286 <children xmi:type="notation:Node" xmi:id="_bOAp9Gg8Ee25oofngfVl_A" type="6003">
1287 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bOAp9Wg8Ee25oofngfVl_A" y="10"/>
1288 </children>
1289 <styles xmi:type="notation:ConnectorStyle" xmi:id="_bOAC4Wg8Ee25oofngfVl_A" routing="Tree"/>
1290 <styles xmi:type="notation:FontStyle" xmi:id="_bOAC4mg8Ee25oofngfVl_A" fontName="Noto Sans" fontHeight="8"/>
1291 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_bOAC42g8Ee25oofngfVl_A" points="[0, 0, -1, 119]$[0, -52, -1, 67]$[2, -52, 1, 67]$[2, -70, 1, 49]"/>
1292 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_bOAp9mg8Ee25oofngfVl_A" id="(0.22758620689655173,0.05102040816326531)"/>
1293 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_bOAp92g8Ee25oofngfVl_A" id="(0.5,0.5)"/>
1294 </edges>
1295 <edges xmi:type="notation:Edge" xmi:id="_lSXq0Gg8Ee25oofngfVl_A" type="4001" element="_lSCTtWg8Ee25oofngfVl_A" source="_cVTpMGg8Ee25oofngfVl_A" target="_O9jk8Gg8Ee25oofngfVl_A">
1296 <children xmi:type="notation:Node" xmi:id="_lSXq1Gg8Ee25oofngfVl_A" type="6001">
1297 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lSXq1Wg8Ee25oofngfVl_A" y="-10"/>
1298 </children>
1299 <children xmi:type="notation:Node" xmi:id="_lSXq1mg8Ee25oofngfVl_A" type="6002">
1300 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lSXq12g8Ee25oofngfVl_A" y="10"/>
1301 </children>
1302 <children xmi:type="notation:Node" xmi:id="_lSXq2Gg8Ee25oofngfVl_A" type="6003">
1303 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lSXq2Wg8Ee25oofngfVl_A" y="10"/>
1304 </children>
1305 <styles xmi:type="notation:ConnectorStyle" xmi:id="_lSXq0Wg8Ee25oofngfVl_A" routing="Tree"/>
1306 <styles xmi:type="notation:FontStyle" xmi:id="_lSXq0mg8Ee25oofngfVl_A" fontName="Noto Sans" fontHeight="8"/>
1307 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_lSXq02g8Ee25oofngfVl_A" points="[0, 0, 135, 106]$[-135, -106, 0, 0]"/>
1308 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_lSXq2mg8Ee25oofngfVl_A" id="(0.3684210526315789,0.17346938775510204)"/>
1309 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_lSXq22g8Ee25oofngfVl_A" id="(0.5,0.5)"/>
1310 </edges>
1311 <edges xmi:type="notation:Edge" xmi:id="_mDe-sGg8Ee25oofngfVl_A" type="4001" element="_mCvX7mg8Ee25oofngfVl_A" source="_jZNw0Gg8Ee25oofngfVl_A" target="_O9jk8Gg8Ee25oofngfVl_A">
1312 <children xmi:type="notation:Node" xmi:id="_mDflwGg8Ee25oofngfVl_A" type="6001">
1313 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mDflwWg8Ee25oofngfVl_A" y="-10"/>
1314 </children>
1315 <children xmi:type="notation:Node" xmi:id="_mDflwmg8Ee25oofngfVl_A" type="6002">
1316 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mDflw2g8Ee25oofngfVl_A" y="10"/>
1317 </children>
1318 <children xmi:type="notation:Node" xmi:id="_mDflxGg8Ee25oofngfVl_A" type="6003">
1319 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mDflxWg8Ee25oofngfVl_A" y="10"/>
1320 </children>
1321 <styles xmi:type="notation:ConnectorStyle" xmi:id="_mDe-sWg8Ee25oofngfVl_A" routing="Tree"/>
1322 <styles xmi:type="notation:FontStyle" xmi:id="_mDe-smg8Ee25oofngfVl_A" fontName="Noto Sans" fontHeight="8"/>
1323 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_mDe-s2g8Ee25oofngfVl_A" points="[0, 0, 262, 132]$[-262, -132, 0, 0]"/>
1324 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_mDflxmg8Ee25oofngfVl_A" id="(0.3644067796610169,0.16326530612244897)"/>
1325 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_mDflx2g8Ee25oofngfVl_A" id="(0.5,0.5)"/>
1326 </edges>
1244 </data> 1327 </data>
1245 </ownedAnnotationEntries> 1328 </ownedAnnotationEntries>
1246 <ownedAnnotationEntries xmi:type="description:AnnotationEntry" uid="_Csiy8KA4EeuqkpDnuik1sg" source="DANNOTATION_CUSTOMIZATION_KEY"> 1329 <ownedAnnotationEntries xmi:type="description:AnnotationEntry" uid="_Csiy8KA4EeuqkpDnuik1sg" source="DANNOTATION_CUSTOMIZATION_KEY">
@@ -1286,7 +1369,7 @@
1286 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> 1369 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
1287 </ownedElements> 1370 </ownedElements>
1288 </ownedDiagramElements> 1371 </ownedDiagramElements>
1289 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_c-A7oKA4EeuqkpDnuik1sg" name="ReferenceDeclaration" tooltipText="" outgoingEdges="_0V3L1qA4EeuqkpDnuik1sg _p1JWcqBJEeuqkpDnuik1sg _nxr57GTvEe2qdtyPWAtoxA _NrtSzmTzEe2qdtyPWAtoxA" incomingEdges="_jk6-PKA4EeuqkpDnuik1sg _0V3L1qA4EeuqkpDnuik1sg" width="12" height="10"> 1372 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_c-A7oKA4EeuqkpDnuik1sg" name="ReferenceDeclaration" tooltipText="" outgoingEdges="_0V3L1qA4EeuqkpDnuik1sg _p1JWcqBJEeuqkpDnuik1sg _NrtSzmTzEe2qdtyPWAtoxA _bNXJs2g8Ee25oofngfVl_A" incomingEdges="_0V3L1qA4EeuqkpDnuik1sg" width="12" height="10">
1290 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//ReferenceDeclaration"/> 1373 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//ReferenceDeclaration"/>
1291 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//ReferenceDeclaration"/> 1374 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//ReferenceDeclaration"/>
1292 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> 1375 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -1296,7 +1379,7 @@
1296 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> 1379 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
1297 </ownedStyle> 1380 </ownedStyle>
1298 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> 1381 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
1299 <ownedElements xmi:type="diagram:DNodeListElement" uid="_902GwDNlEe2fD4dIhR_vzA" name="kind : ReferenceKind = DEFAULT" tooltipText=""> 1382 <ownedElements xmi:type="diagram:DNodeListElement" uid="_902GwDNlEe2fD4dIhR_vzA" name="kind : ReferenceKind = REFERENCE" tooltipText="">
1300 <target xmi:type="ecore:EAttribute" href="src/main/resources/model/problem.ecore#//ReferenceDeclaration/kind"/> 1383 <target xmi:type="ecore:EAttribute" href="src/main/resources/model/problem.ecore#//ReferenceDeclaration/kind"/>
1301 <semanticElements xmi:type="ecore:EAttribute" href="src/main/resources/model/problem.ecore#//ReferenceDeclaration/kind"/> 1384 <semanticElements xmi:type="ecore:EAttribute" href="src/main/resources/model/problem.ecore#//ReferenceDeclaration/kind"/>
1302 <ownedStyle xmi:type="diagram:BundledImage" uid="__BoC8jNlEe2fD4dIhR_vzA" labelAlignment="LEFT"> 1385 <ownedStyle xmi:type="diagram:BundledImage" uid="__BoC8jNlEe2fD4dIhR_vzA" labelAlignment="LEFT">
@@ -1305,9 +1388,9 @@
1305 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> 1388 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
1306 </ownedElements> 1389 </ownedElements>
1307 </ownedDiagramElements> 1390 </ownedDiagramElements>
1308 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_jk6-PKA4EeuqkpDnuik1sg" name="[0..*] referenceDeclarations" sourceNode="_JTstIKA4EeuqkpDnuik1sg" targetNode="_c-A7oKA4EeuqkpDnuik1sg"> 1391 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_jk6-PKA4EeuqkpDnuik1sg" name="[0..*] featureDeclarations" sourceNode="_JTstIKA4EeuqkpDnuik1sg" targetNode="_O8gcEGg8Ee25oofngfVl_A">
1309 <target xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//ClassDeclaration/referenceDeclarations"/> 1392 <target xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//ClassDeclaration/featureDeclarations"/>
1310 <semanticElements xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//ClassDeclaration/referenceDeclarations"/> 1393 <semanticElements xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//ClassDeclaration/featureDeclarations"/>
1311 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_jk7lQKA4EeuqkpDnuik1sg" description="_L-JhMKA4EeuqkpDnuik1sg" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0"> 1394 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_jk7lQKA4EeuqkpDnuik1sg" description="_L-JhMKA4EeuqkpDnuik1sg" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
1312 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_jk7lQqA4EeuqkpDnuik1sg" showIcon="false"> 1395 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_jk7lQqA4EeuqkpDnuik1sg" showIcon="false">
1313 <customFeatures>labelSize</customFeatures> 1396 <customFeatures>labelSize</customFeatures>
@@ -1992,14 +2075,6 @@
1992 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@style"/> 2075 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@style"/>
1993 </ownedStyle> 2076 </ownedStyle>
1994 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']"/> 2077 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']"/>
1995 <ownedElements xmi:type="diagram:DNodeListElement" uid="_2N3HQDNlEe2fD4dIhR_vzA" name="DEFAULT" tooltipText="">
1996 <target xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//ReferenceKind/DEFAULT"/>
1997 <semanticElements xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//ReferenceKind/DEFAULT"/>
1998 <ownedStyle xmi:type="diagram:BundledImage" uid="_2N3HQTNlEe2fD4dIhR_vzA" labelAlignment="LEFT">
1999 <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
2000 </ownedStyle>
2001 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
2002 </ownedElements>
2003 <ownedElements xmi:type="diagram:DNodeListElement" uid="_2zSIgDNlEe2fD4dIhR_vzA" name="REFERENCE" tooltipText=""> 2078 <ownedElements xmi:type="diagram:DNodeListElement" uid="_2zSIgDNlEe2fD4dIhR_vzA" name="REFERENCE" tooltipText="">
2004 <target xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//ReferenceKind/REFERENCE"/> 2079 <target xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//ReferenceKind/REFERENCE"/>
2005 <semanticElements xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//ReferenceKind/REFERENCE"/> 2080 <semanticElements xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//ReferenceKind/REFERENCE"/>
@@ -2068,26 +2143,34 @@
2068 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> 2143 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
2069 </ownedElements> 2144 </ownedElements>
2070 </ownedDiagramElements> 2145 </ownedDiagramElements>
2071 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_78pRMF9mEe2rXNsIDUvqhw" name="FunctionDefinition" tooltipText="" outgoingEdges="_rKoQHF9nEe2rXNsIDUvqhw _S6YCJl9wEe2rXNsIDUvqhw _sMPaBmTvEe2qdtyPWAtoxA _RK6kjGTzEe2qdtyPWAtoxA" width="12" height="10"> 2146 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_78pRMF9mEe2rXNsIDUvqhw" name="FunctionDefinition" tooltipText="" outgoingEdges="_rKoQHF9nEe2rXNsIDUvqhw _S6YCJl9wEe2rXNsIDUvqhw _sMPaBmTvEe2qdtyPWAtoxA" width="12" height="10">
2072 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//FunctionDefinition"/> 2147 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//FunctionDefinition"/>
2073 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//FunctionDefinition"/> 2148 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//FunctionDefinition"/>
2074 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> 2149 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
2075 <arrangeConstraints>KEEP_SIZE</arrangeConstraints> 2150 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
2076 <arrangeConstraints>KEEP_RATIO</arrangeConstraints> 2151 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
2077 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_78pRMV9mEe2rXNsIDUvqhw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> 2152 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_XN5OB2g9Ee25oofngfVl_A" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
2078 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> 2153 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
2079 </ownedStyle> 2154 </ownedStyle>
2080 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> 2155 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
2156 <ownedElements xmi:type="diagram:DNodeListElement" uid="_WWiIMGg9Ee25oofngfVl_A" name="functionType : PrimitiveType = INT" tooltipText="">
2157 <target xmi:type="ecore:EAttribute" href="src/main/resources/model/problem.ecore#//FunctionDefinition/functionType"/>
2158 <semanticElements xmi:type="ecore:EAttribute" href="src/main/resources/model/problem.ecore#//FunctionDefinition/functionType"/>
2159 <ownedStyle xmi:type="diagram:BundledImage" uid="_XN6cJGg9Ee25oofngfVl_A" labelAlignment="LEFT">
2160 <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
2161 </ownedStyle>
2162 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
2163 </ownedElements>
2081 </ownedDiagramElements> 2164 </ownedDiagramElements>
2082 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_rKoQHF9nEe2rXNsIDUvqhw" sourceNode="_78pRMF9mEe2rXNsIDUvqhw" targetNode="_A8hIkCrZEeyyC-O0_LlY9w"> 2165 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_rKoQHF9nEe2rXNsIDUvqhw" sourceNode="_78pRMF9mEe2rXNsIDUvqhw" targetNode="_A8hIkCrZEeyyC-O0_LlY9w">
2083 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//FunctionDefinition"/> 2166 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//FunctionDefinition"/>
2084 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//FunctionDefinition"/> 2167 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//FunctionDefinition"/>
2085 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_rKo3IF9nEe2rXNsIDUvqhw" lineStyle="dash" targetArrow="InputClosedArrow" routingStyle="tree"> 2168 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_XN-tzGg9Ee25oofngfVl_A" lineStyle="dash" targetArrow="InputClosedArrow" routingStyle="tree">
2086 <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@conditionnalStyles.0/@style"/> 2169 <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@conditionnalStyles.0/@style"/>
2087 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_rKo3IV9nEe2rXNsIDUvqhw" showIcon="false"> 2170 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_XN-tzWg9Ee25oofngfVl_A" showIcon="false">
2088 <labelFormat>italic</labelFormat> 2171 <labelFormat>italic</labelFormat>
2089 </beginLabelStyle> 2172 </beginLabelStyle>
2090 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_rKo3Il9nEe2rXNsIDUvqhw" showIcon="false"/> 2173 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_XN-tzmg9Ee25oofngfVl_A" showIcon="false"/>
2091 </ownedStyle> 2174 </ownedStyle>
2092 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> 2175 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
2093 </ownedDiagramElements> 2176 </ownedDiagramElements>
@@ -2266,7 +2349,7 @@
2266 </ownedStyle> 2349 </ownedStyle>
2267 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> 2350 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
2268 </ownedDiagramElements> 2351 </ownedDiagramElements>
2269 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_dzVaYGTvEe2qdtyPWAtoxA" name="Relation" tooltipText="" outgoingEdges="_-OYJtGTvEe2qdtyPWAtoxA" incomingEdges="_m2GbcmTvEe2qdtyPWAtoxA _nxr57GTvEe2qdtyPWAtoxA _pHlWJ2TvEe2qdtyPWAtoxA _p-1uSmTvEe2qdtyPWAtoxA _sMPaBmTvEe2qdtyPWAtoxA _NrtSzmTzEe2qdtyPWAtoxA _RK6kjGTzEe2qdtyPWAtoxA _YWqZhmTzEe2qdtyPWAtoxA _iWzpAmTzEe2qdtyPWAtoxA _q604amTzEe2qdtyPWAtoxA" width="12" height="10"> 2352 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_dzVaYGTvEe2qdtyPWAtoxA" name="Relation" tooltipText="" outgoingEdges="_-OYJtGTvEe2qdtyPWAtoxA" incomingEdges="_m2GbcmTvEe2qdtyPWAtoxA _nxr57GTvEe2qdtyPWAtoxA _pHlWJ2TvEe2qdtyPWAtoxA _p-1uSmTvEe2qdtyPWAtoxA _sMPaBmTvEe2qdtyPWAtoxA _NrtSzmTzEe2qdtyPWAtoxA _YWqZhmTzEe2qdtyPWAtoxA _iWzpAmTzEe2qdtyPWAtoxA _q604amTzEe2qdtyPWAtoxA" width="12" height="10">
2270 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Relation"/> 2353 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Relation"/>
2271 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Relation"/> 2354 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Relation"/>
2272 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> 2355 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -2290,9 +2373,9 @@
2290 </ownedStyle> 2373 </ownedStyle>
2291 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> 2374 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
2292 </ownedDiagramElements> 2375 </ownedDiagramElements>
2293 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_nxr57GTvEe2qdtyPWAtoxA" sourceNode="_c-A7oKA4EeuqkpDnuik1sg" targetNode="_dzVaYGTvEe2qdtyPWAtoxA"> 2376 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_nxr57GTvEe2qdtyPWAtoxA" sourceNode="_O8gcEGg8Ee25oofngfVl_A" targetNode="_dzVaYGTvEe2qdtyPWAtoxA">
2294 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//ReferenceDeclaration"/> 2377 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//FeatureDeclaration"/>
2295 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//ReferenceDeclaration"/> 2378 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//FeatureDeclaration"/>
2296 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_nxr57WTvEe2qdtyPWAtoxA" targetArrow="InputClosedArrow" routingStyle="tree"> 2379 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_nxr57WTvEe2qdtyPWAtoxA" targetArrow="InputClosedArrow" routingStyle="tree">
2297 <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/> 2380 <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
2298 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_nxr57mTvEe2qdtyPWAtoxA" showIcon="false"> 2381 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_nxr57mTvEe2qdtyPWAtoxA" showIcon="false">
@@ -2329,12 +2412,12 @@
2329 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_sMPaBmTvEe2qdtyPWAtoxA" sourceNode="_78pRMF9mEe2rXNsIDUvqhw" targetNode="_dzVaYGTvEe2qdtyPWAtoxA"> 2412 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_sMPaBmTvEe2qdtyPWAtoxA" sourceNode="_78pRMF9mEe2rXNsIDUvqhw" targetNode="_dzVaYGTvEe2qdtyPWAtoxA">
2330 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//FunctionDefinition"/> 2413 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//FunctionDefinition"/>
2331 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//FunctionDefinition"/> 2414 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//FunctionDefinition"/>
2332 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_sMPaB2TvEe2qdtyPWAtoxA" targetArrow="InputClosedArrow" routingStyle="tree"> 2415 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_XN-t0mg9Ee25oofngfVl_A" targetArrow="InputClosedArrow" routingStyle="tree">
2333 <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/> 2416 <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
2334 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_sMPaCGTvEe2qdtyPWAtoxA" showIcon="false"> 2417 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_XN-t02g9Ee25oofngfVl_A" showIcon="false">
2335 <labelFormat>italic</labelFormat> 2418 <labelFormat>italic</labelFormat>
2336 </beginLabelStyle> 2419 </beginLabelStyle>
2337 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_sMPaCWTvEe2qdtyPWAtoxA" showIcon="false"/> 2420 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_XN-t1Gg9Ee25oofngfVl_A" showIcon="false"/>
2338 </ownedStyle> 2421 </ownedStyle>
2339 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> 2422 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
2340 </ownedDiagramElements> 2423 </ownedDiagramElements>
@@ -2373,20 +2456,6 @@
2373 </ownedStyle> 2456 </ownedStyle>
2374 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> 2457 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
2375 </ownedDiagramElements> 2458 </ownedDiagramElements>
2376 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_RK6kjGTzEe2qdtyPWAtoxA" name="[0..1] functionType" sourceNode="_78pRMF9mEe2rXNsIDUvqhw" targetNode="_dzVaYGTvEe2qdtyPWAtoxA">
2377 <target xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//FunctionDefinition/functionType"/>
2378 <semanticElements xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//FunctionDefinition/functionType"/>
2379 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_RK7LkGTzEe2qdtyPWAtoxA" routingStyle="manhattan" strokeColor="0,0,0">
2380 <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']/@style"/>
2381 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_RK7LkmTzEe2qdtyPWAtoxA" showIcon="false">
2382 <customFeatures>labelSize</customFeatures>
2383 </centerLabelStyle>
2384 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_RK7LkWTzEe2qdtyPWAtoxA" showIcon="false" labelColor="39,76,114">
2385 <customFeatures>labelSize</customFeatures>
2386 </endLabelStyle>
2387 </ownedStyle>
2388 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
2389 </ownedDiagramElements>
2390 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_YWqZhmTzEe2qdtyPWAtoxA" name="[0..*] superTypes" sourceNode="_JTstIKA4EeuqkpDnuik1sg" targetNode="_dzVaYGTvEe2qdtyPWAtoxA"> 2459 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_YWqZhmTzEe2qdtyPWAtoxA" name="[0..*] superTypes" sourceNode="_JTstIKA4EeuqkpDnuik1sg" targetNode="_dzVaYGTvEe2qdtyPWAtoxA">
2391 <target xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//ClassDeclaration/superTypes"/> 2460 <target xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//ClassDeclaration/superTypes"/>
2392 <semanticElements xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//ClassDeclaration/superTypes"/> 2461 <semanticElements xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//ClassDeclaration/superTypes"/>
@@ -2429,6 +2498,119 @@
2429 </ownedStyle> 2498 </ownedStyle>
2430 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> 2499 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
2431 </ownedDiagramElements> 2500 </ownedDiagramElements>
2501 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_O8gcEGg8Ee25oofngfVl_A" name="FeatureDeclaration" tooltipText="" outgoingEdges="_nxr57GTvEe2qdtyPWAtoxA" incomingEdges="_jk6-PKA4EeuqkpDnuik1sg _bNXJs2g8Ee25oofngfVl_A _lSCTtWg8Ee25oofngfVl_A _mCvX7mg8Ee25oofngfVl_A" width="12" height="10">
2502 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//FeatureDeclaration"/>
2503 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//FeatureDeclaration"/>
2504 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
2505 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
2506 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
2507 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_3hrT6Wg8Ee25oofngfVl_A" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228">
2508 <labelFormat>italic</labelFormat>
2509 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/>
2510 </ownedStyle>
2511 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
2512 </ownedDiagramElements>
2513 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_bNXJs2g8Ee25oofngfVl_A" sourceNode="_c-A7oKA4EeuqkpDnuik1sg" targetNode="_O8gcEGg8Ee25oofngfVl_A">
2514 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//ReferenceDeclaration"/>
2515 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//ReferenceDeclaration"/>
2516 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_bNXwwGg8Ee25oofngfVl_A" targetArrow="InputClosedArrow" routingStyle="tree">
2517 <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
2518 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_bNXwwWg8Ee25oofngfVl_A" showIcon="false">
2519 <labelFormat>italic</labelFormat>
2520 </beginLabelStyle>
2521 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_bNXwwmg8Ee25oofngfVl_A" showIcon="false"/>
2522 </ownedStyle>
2523 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
2524 </ownedDiagramElements>
2525 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_cU9D4Gg8Ee25oofngfVl_A" name="AttributeDeclaration" tooltipText="" outgoingEdges="_lSCTtWg8Ee25oofngfVl_A" width="12" height="10">
2526 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//AttributeDeclaration"/>
2527 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//AttributeDeclaration"/>
2528 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
2529 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
2530 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
2531 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_Eui91Wg9Ee25oofngfVl_A" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
2532 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
2533 </ownedStyle>
2534 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
2535 <ownedElements xmi:type="diagram:DNodeListElement" uid="_EB7vcGg9Ee25oofngfVl_A" name="attributeType : PrimitiveType = INT" tooltipText="">
2536 <target xmi:type="ecore:EAttribute" href="src/main/resources/model/problem.ecore#//AttributeDeclaration/attributeType"/>
2537 <semanticElements xmi:type="ecore:EAttribute" href="src/main/resources/model/problem.ecore#//AttributeDeclaration/attributeType"/>
2538 <ownedStyle xmi:type="diagram:BundledImage" uid="_EukL8Wg9Ee25oofngfVl_A" labelAlignment="LEFT">
2539 <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
2540 </ownedStyle>
2541 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
2542 </ownedElements>
2543 </ownedDiagramElements>
2544 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_jY5nwGg8Ee25oofngfVl_A" name="FlagDeclaration" tooltipText="" outgoingEdges="_mCvX7mg8Ee25oofngfVl_A" width="12" height="10">
2545 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//FlagDeclaration"/>
2546 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//FlagDeclaration"/>
2547 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
2548 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
2549 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
2550 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_jY5nwWg8Ee25oofngfVl_A" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
2551 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
2552 </ownedStyle>
2553 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
2554 </ownedDiagramElements>
2555 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_lSCTtWg8Ee25oofngfVl_A" sourceNode="_cU9D4Gg8Ee25oofngfVl_A" targetNode="_O8gcEGg8Ee25oofngfVl_A">
2556 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//AttributeDeclaration"/>
2557 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//AttributeDeclaration"/>
2558 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_EupEhWg9Ee25oofngfVl_A" targetArrow="InputClosedArrow" routingStyle="tree">
2559 <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
2560 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_EupEhmg9Ee25oofngfVl_A" showIcon="false">
2561 <labelFormat>italic</labelFormat>
2562 </beginLabelStyle>
2563 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_EupEh2g9Ee25oofngfVl_A" showIcon="false"/>
2564 </ownedStyle>
2565 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
2566 </ownedDiagramElements>
2567 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_mCvX7mg8Ee25oofngfVl_A" sourceNode="_jY5nwGg8Ee25oofngfVl_A" targetNode="_O8gcEGg8Ee25oofngfVl_A">
2568 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//FlagDeclaration"/>
2569 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//FlagDeclaration"/>
2570 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_mCv-4Gg8Ee25oofngfVl_A" targetArrow="InputClosedArrow" routingStyle="tree">
2571 <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
2572 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_mCv-4Wg8Ee25oofngfVl_A" showIcon="false">
2573 <labelFormat>italic</labelFormat>
2574 </beginLabelStyle>
2575 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_mCv-4mg8Ee25oofngfVl_A" showIcon="false"/>
2576 </ownedStyle>
2577 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
2578 </ownedDiagramElements>
2579 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_pOBoEGg8Ee25oofngfVl_A" name="PrimitiveType" tooltipText="" width="12" height="10">
2580 <target xmi:type="ecore:EEnum" href="src/main/resources/model/problem.ecore#//PrimitiveType"/>
2581 <semanticElements xmi:type="ecore:EEnum" href="src/main/resources/model/problem.ecore#//PrimitiveType"/>
2582 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
2583 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
2584 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
2585 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_pOBoEWg8Ee25oofngfVl_A" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="221,236,202">
2586 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@style"/>
2587 </ownedStyle>
2588 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']"/>
2589 <ownedElements xmi:type="diagram:DNodeListElement" uid="_qOtpAGg8Ee25oofngfVl_A" name="INT" tooltipText="">
2590 <target xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//PrimitiveType/INT"/>
2591 <semanticElements xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//PrimitiveType/INT"/>
2592 <ownedStyle xmi:type="diagram:BundledImage" uid="_qOuQEGg8Ee25oofngfVl_A" labelAlignment="LEFT">
2593 <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
2594 </ownedStyle>
2595 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
2596 </ownedElements>
2597 <ownedElements xmi:type="diagram:DNodeListElement" uid="_qp-BoGg8Ee25oofngfVl_A" name="REAL" tooltipText="">
2598 <target xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//PrimitiveType/REAL"/>
2599 <semanticElements xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//PrimitiveType/REAL"/>
2600 <ownedStyle xmi:type="diagram:BundledImage" uid="_qp-osGg8Ee25oofngfVl_A" labelAlignment="LEFT">
2601 <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
2602 </ownedStyle>
2603 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
2604 </ownedElements>
2605 <ownedElements xmi:type="diagram:DNodeListElement" uid="_q_vdUGg8Ee25oofngfVl_A" name="STRING" tooltipText="">
2606 <target xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//PrimitiveType/STRING"/>
2607 <semanticElements xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//PrimitiveType/STRING"/>
2608 <ownedStyle xmi:type="diagram:BundledImage" uid="_q_wEYGg8Ee25oofngfVl_A" labelAlignment="LEFT">
2609 <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
2610 </ownedStyle>
2611 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
2612 </ownedElements>
2613 </ownedDiagramElements>
2432 <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/> 2614 <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/>
2433 <filterVariableHistory xmi:type="diagram:FilterVariableHistory" uid="_CsWlsKA4EeuqkpDnuik1sg"/> 2615 <filterVariableHistory xmi:type="diagram:FilterVariableHistory" uid="_CsWlsKA4EeuqkpDnuik1sg"/>
2434 <activatedLayers xmi:type="description_1:Layer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer"/> 2616 <activatedLayers xmi:type="description_1:Layer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer"/>
@@ -2473,7 +2655,7 @@
2473 <styles xmi:type="notation:FilteringStyle" xmi:id="_bTgeLF3tEe2LuOZzJ_LhLg"/> 2655 <styles xmi:type="notation:FilteringStyle" xmi:id="_bTgeLF3tEe2LuOZzJ_LhLg"/>
2474 </children> 2656 </children>
2475 <styles xmi:type="notation:ShapeStyle" xmi:id="_bTgeJ13tEe2LuOZzJ_LhLg" fontName="Noto Sans" fontHeight="8"/> 2657 <styles xmi:type="notation:ShapeStyle" xmi:id="_bTgeJ13tEe2LuOZzJ_LhLg" fontName="Noto Sans" fontHeight="8"/>
2476 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bTgeKF3tEe2LuOZzJ_LhLg" x="1872" y="168" width="120" height="100"/> 2658 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bTgeKF3tEe2LuOZzJ_LhLg" x="1956" y="168" width="120" height="100"/>
2477 </children> 2659 </children>
2478 <children xmi:type="notation:Node" xmi:id="_meWJcF3uEe2LuOZzJ_LhLg" type="2003" element="_mdrbEF3uEe2LuOZzJ_LhLg"> 2660 <children xmi:type="notation:Node" xmi:id="_meWJcF3uEe2LuOZzJ_LhLg" type="2003" element="_mdrbEF3uEe2LuOZzJ_LhLg">
2479 <children xmi:type="notation:Node" xmi:id="_meWwgF3uEe2LuOZzJ_LhLg" type="5007"/> 2661 <children xmi:type="notation:Node" xmi:id="_meWwgF3uEe2LuOZzJ_LhLg" type="5007"/>
@@ -2524,11 +2706,19 @@
2524 <styles xmi:type="notation:FontStyle" xmi:id="_n5Y5MV3wEe2LuOZzJ_LhLg" fontName="Noto Sans" fontHeight="8"/> 2706 <styles xmi:type="notation:FontStyle" xmi:id="_n5Y5MV3wEe2LuOZzJ_LhLg" fontName="Noto Sans" fontHeight="8"/>
2525 <layoutConstraint xmi:type="notation:Location" xmi:id="_n5Y5Ml3wEe2LuOZzJ_LhLg"/> 2707 <layoutConstraint xmi:type="notation:Location" xmi:id="_n5Y5Ml3wEe2LuOZzJ_LhLg"/>
2526 </children> 2708 </children>
2709 <children xmi:type="notation:Node" xmi:id="_SoEXkGgrEe24RpwpWgpkFQ" type="3010" element="_Sn1HAGgrEe24RpwpWgpkFQ">
2710 <styles xmi:type="notation:FontStyle" xmi:id="_SoEXkWgrEe24RpwpWgpkFQ" fontName="Noto Sans" fontHeight="8"/>
2711 <layoutConstraint xmi:type="notation:Location" xmi:id="_SoEXkmgrEe24RpwpWgpkFQ"/>
2712 </children>
2713 <children xmi:type="notation:Node" xmi:id="_TrvbEGgrEe24RpwpWgpkFQ" type="3010" element="_TrhYoGgrEe24RpwpWgpkFQ">
2714 <styles xmi:type="notation:FontStyle" xmi:id="_TrvbEWgrEe24RpwpWgpkFQ" fontName="Noto Sans" fontHeight="8"/>
2715 <layoutConstraint xmi:type="notation:Location" xmi:id="_TrvbEmgrEe24RpwpWgpkFQ"/>
2716 </children>
2527 <styles xmi:type="notation:SortingStyle" xmi:id="_ccRVpV3wEe2LuOZzJ_LhLg"/> 2717 <styles xmi:type="notation:SortingStyle" xmi:id="_ccRVpV3wEe2LuOZzJ_LhLg"/>
2528 <styles xmi:type="notation:FilteringStyle" xmi:id="_ccRVpl3wEe2LuOZzJ_LhLg"/> 2718 <styles xmi:type="notation:FilteringStyle" xmi:id="_ccRVpl3wEe2LuOZzJ_LhLg"/>
2529 </children> 2719 </children>
2530 <styles xmi:type="notation:ShapeStyle" xmi:id="_ccRVoV3wEe2LuOZzJ_LhLg" fontName="Noto Sans" fontHeight="8"/> 2720 <styles xmi:type="notation:ShapeStyle" xmi:id="_ccRVoV3wEe2LuOZzJ_LhLg" fontName="Noto Sans" fontHeight="8"/>
2531 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ccRVol3wEe2LuOZzJ_LhLg" x="1788" y="450" width="120" height="123"/> 2721 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ccRVol3wEe2LuOZzJ_LhLg" x="1788" y="450" width="120" height="153"/>
2532 </children> 2722 </children>
2533 <children xmi:type="notation:Node" xmi:id="_R7b9sF38Ee2LuOZzJ_LhLg" type="2003" element="_R7XFMF38Ee2LuOZzJ_LhLg"> 2723 <children xmi:type="notation:Node" xmi:id="_R7b9sF38Ee2LuOZzJ_LhLg" type="2003" element="_R7XFMF38Ee2LuOZzJ_LhLg">
2534 <children xmi:type="notation:Node" xmi:id="_R7b9s138Ee2LuOZzJ_LhLg" type="5007"/> 2724 <children xmi:type="notation:Node" xmi:id="_R7b9s138Ee2LuOZzJ_LhLg" type="5007"/>
@@ -2599,15 +2789,6 @@
2599 <styles xmi:type="notation:ShapeStyle" xmi:id="_Yrrhd14HEe2LuOZzJ_LhLg" fontName="Noto Sans" fontHeight="8"/> 2789 <styles xmi:type="notation:ShapeStyle" xmi:id="_Yrrhd14HEe2LuOZzJ_LhLg" fontName="Noto Sans" fontHeight="8"/>
2600 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YrrheF4HEe2LuOZzJ_LhLg" x="933" y="446" width="120" height="106"/> 2790 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YrrheF4HEe2LuOZzJ_LhLg" x="933" y="446" width="120" height="106"/>
2601 </children> 2791 </children>
2602 <children xmi:type="notation:Node" xmi:id="_6MkBsF4IEe2LuOZzJ_LhLg" type="2003" element="_6MWmUF4IEe2LuOZzJ_LhLg">
2603 <children xmi:type="notation:Node" xmi:id="_6MkBs14IEe2LuOZzJ_LhLg" type="5007"/>
2604 <children xmi:type="notation:Node" xmi:id="_6MkowF4IEe2LuOZzJ_LhLg" type="7004">
2605 <styles xmi:type="notation:SortingStyle" xmi:id="_6MkowV4IEe2LuOZzJ_LhLg"/>
2606 <styles xmi:type="notation:FilteringStyle" xmi:id="_6Mkowl4IEe2LuOZzJ_LhLg"/>
2607 </children>
2608 <styles xmi:type="notation:ShapeStyle" xmi:id="_6MkBsV4IEe2LuOZzJ_LhLg" fontName="Noto Sans" fontHeight="8"/>
2609 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6MkBsl4IEe2LuOZzJ_LhLg" x="2304" y="168" width="120" height="100"/>
2610 </children>
2611 <children xmi:type="notation:Node" xmi:id="_87Ju4F4IEe2LuOZzJ_LhLg" type="2003" element="_86zJkF4IEe2LuOZzJ_LhLg"> 2792 <children xmi:type="notation:Node" xmi:id="_87Ju4F4IEe2LuOZzJ_LhLg" type="2003" element="_86zJkF4IEe2LuOZzJ_LhLg">
2612 <children xmi:type="notation:Node" xmi:id="_87Ju414IEe2LuOZzJ_LhLg" type="5007"/> 2793 <children xmi:type="notation:Node" xmi:id="_87Ju414IEe2LuOZzJ_LhLg" type="5007"/>
2613 <children xmi:type="notation:Node" xmi:id="_87Ju5F4IEe2LuOZzJ_LhLg" type="7004"> 2794 <children xmi:type="notation:Node" xmi:id="_87Ju5F4IEe2LuOZzJ_LhLg" type="7004">
@@ -2615,7 +2796,7 @@
2615 <styles xmi:type="notation:FilteringStyle" xmi:id="_87Ju5l4IEe2LuOZzJ_LhLg"/> 2796 <styles xmi:type="notation:FilteringStyle" xmi:id="_87Ju5l4IEe2LuOZzJ_LhLg"/>
2616 </children> 2797 </children>
2617 <styles xmi:type="notation:ShapeStyle" xmi:id="_87Ju4V4IEe2LuOZzJ_LhLg" fontName="Noto Sans" fontHeight="8" italic="true"/> 2798 <styles xmi:type="notation:ShapeStyle" xmi:id="_87Ju4V4IEe2LuOZzJ_LhLg" fontName="Noto Sans" fontHeight="8" italic="true"/>
2618 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_87Ju4l4IEe2LuOZzJ_LhLg" x="2304" y="312"/> 2799 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_87Ju4l4IEe2LuOZzJ_LhLg" x="2556" y="168"/>
2619 </children> 2800 </children>
2620 <children xmi:type="notation:Node" xmi:id="_JYXdgF4JEe2LuOZzJ_LhLg" type="2003" element="_JYQIwF4JEe2LuOZzJ_LhLg"> 2801 <children xmi:type="notation:Node" xmi:id="_JYXdgF4JEe2LuOZzJ_LhLg" type="2003" element="_JYQIwF4JEe2LuOZzJ_LhLg">
2621 <children xmi:type="notation:Node" xmi:id="_JYXdg14JEe2LuOZzJ_LhLg" type="5007"/> 2802 <children xmi:type="notation:Node" xmi:id="_JYXdg14JEe2LuOZzJ_LhLg" type="5007"/>
@@ -2628,7 +2809,7 @@
2628 <styles xmi:type="notation:FilteringStyle" xmi:id="_JYXdhl4JEe2LuOZzJ_LhLg"/> 2809 <styles xmi:type="notation:FilteringStyle" xmi:id="_JYXdhl4JEe2LuOZzJ_LhLg"/>
2629 </children> 2810 </children>
2630 <styles xmi:type="notation:ShapeStyle" xmi:id="_JYXdgV4JEe2LuOZzJ_LhLg" fontName="Noto Sans" fontHeight="8"/> 2811 <styles xmi:type="notation:ShapeStyle" xmi:id="_JYXdgV4JEe2LuOZzJ_LhLg" fontName="Noto Sans" fontHeight="8"/>
2631 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JYXdgl4JEe2LuOZzJ_LhLg" x="2136" y="449"/> 2812 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JYXdgl4JEe2LuOZzJ_LhLg" x="2292" y="312"/>
2632 </children> 2813 </children>
2633 <children xmi:type="notation:Node" xmi:id="_JYYEkF4JEe2LuOZzJ_LhLg" type="2003" element="_JYQIw14JEe2LuOZzJ_LhLg"> 2814 <children xmi:type="notation:Node" xmi:id="_JYYEkF4JEe2LuOZzJ_LhLg" type="2003" element="_JYQIw14JEe2LuOZzJ_LhLg">
2634 <children xmi:type="notation:Node" xmi:id="_JYYEk14JEe2LuOZzJ_LhLg" type="5007"/> 2815 <children xmi:type="notation:Node" xmi:id="_JYYEk14JEe2LuOZzJ_LhLg" type="5007"/>
@@ -2641,7 +2822,7 @@
2641 <styles xmi:type="notation:FilteringStyle" xmi:id="_JYYEll4JEe2LuOZzJ_LhLg"/> 2822 <styles xmi:type="notation:FilteringStyle" xmi:id="_JYYEll4JEe2LuOZzJ_LhLg"/>
2642 </children> 2823 </children>
2643 <styles xmi:type="notation:ShapeStyle" xmi:id="_JYYEkV4JEe2LuOZzJ_LhLg" fontName="Noto Sans" fontHeight="8"/> 2824 <styles xmi:type="notation:ShapeStyle" xmi:id="_JYYEkV4JEe2LuOZzJ_LhLg" fontName="Noto Sans" fontHeight="8"/>
2644 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JYYEkl4JEe2LuOZzJ_LhLg" x="2285" y="449"/> 2825 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JYYEkl4JEe2LuOZzJ_LhLg" x="2441" y="312"/>
2645 </children> 2826 </children>
2646 <children xmi:type="notation:Node" xmi:id="_JYYEl14JEe2LuOZzJ_LhLg" type="2003" element="_JYQv0l4JEe2LuOZzJ_LhLg"> 2827 <children xmi:type="notation:Node" xmi:id="_JYYEl14JEe2LuOZzJ_LhLg" type="2003" element="_JYQv0l4JEe2LuOZzJ_LhLg">
2647 <children xmi:type="notation:Node" xmi:id="_JYYEml4JEe2LuOZzJ_LhLg" type="5007"/> 2828 <children xmi:type="notation:Node" xmi:id="_JYYEml4JEe2LuOZzJ_LhLg" type="5007"/>
@@ -2654,7 +2835,7 @@
2654 <styles xmi:type="notation:FilteringStyle" xmi:id="_JYYEnV4JEe2LuOZzJ_LhLg"/> 2835 <styles xmi:type="notation:FilteringStyle" xmi:id="_JYYEnV4JEe2LuOZzJ_LhLg"/>
2655 </children> 2836 </children>
2656 <styles xmi:type="notation:ShapeStyle" xmi:id="_JYYEmF4JEe2LuOZzJ_LhLg" fontName="Noto Sans" fontHeight="8"/> 2837 <styles xmi:type="notation:ShapeStyle" xmi:id="_JYYEmF4JEe2LuOZzJ_LhLg" fontName="Noto Sans" fontHeight="8"/>
2657 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JYYEmV4JEe2LuOZzJ_LhLg" x="2472" y="449"/> 2838 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JYYEmV4JEe2LuOZzJ_LhLg" x="2784" y="312"/>
2658 </children> 2839 </children>
2659 <children xmi:type="notation:Node" xmi:id="_9AqPEF4KEe2m7IaHDkh2Xg" type="2003" element="_9AeB0F4KEe2m7IaHDkh2Xg"> 2840 <children xmi:type="notation:Node" xmi:id="_9AqPEF4KEe2m7IaHDkh2Xg" type="2003" element="_9AeB0F4KEe2m7IaHDkh2Xg">
2660 <children xmi:type="notation:Node" xmi:id="_9ArdMF4KEe2m7IaHDkh2Xg" type="5007"/> 2841 <children xmi:type="notation:Node" xmi:id="_9ArdMF4KEe2m7IaHDkh2Xg" type="5007"/>
@@ -2727,11 +2908,15 @@
2727 <styles xmi:type="notation:FontStyle" xmi:id="_QkX6EGTUEe2qdtyPWAtoxA" fontName="Noto Sans" fontHeight="8"/> 2908 <styles xmi:type="notation:FontStyle" xmi:id="_QkX6EGTUEe2qdtyPWAtoxA" fontName="Noto Sans" fontHeight="8"/>
2728 <layoutConstraint xmi:type="notation:Location" xmi:id="_QkX6EWTUEe2qdtyPWAtoxA"/> 2909 <layoutConstraint xmi:type="notation:Location" xmi:id="_QkX6EWTUEe2qdtyPWAtoxA"/>
2729 </children> 2910 </children>
2911 <children xmi:type="notation:Node" xmi:id="_pZfy4GgpEe24RpwpWgpkFQ" type="3010" element="_pZAqsGgpEe24RpwpWgpkFQ">
2912 <styles xmi:type="notation:FontStyle" xmi:id="_pZfy4WgpEe24RpwpWgpkFQ" fontName="Noto Sans" fontHeight="8"/>
2913 <layoutConstraint xmi:type="notation:Location" xmi:id="_pZfy4mgpEe24RpwpWgpkFQ"/>
2914 </children>
2730 <styles xmi:type="notation:SortingStyle" xmi:id="_QkXS9WTUEe2qdtyPWAtoxA"/> 2915 <styles xmi:type="notation:SortingStyle" xmi:id="_QkXS9WTUEe2qdtyPWAtoxA"/>
2731 <styles xmi:type="notation:FilteringStyle" xmi:id="_QkXS9mTUEe2qdtyPWAtoxA"/> 2916 <styles xmi:type="notation:FilteringStyle" xmi:id="_QkXS9mTUEe2qdtyPWAtoxA"/>
2732 </children> 2917 </children>
2733 <styles xmi:type="notation:ShapeStyle" xmi:id="_QkXS8WTUEe2qdtyPWAtoxA" fontName="Noto Sans" fontHeight="8"/> 2918 <styles xmi:type="notation:ShapeStyle" xmi:id="_QkXS8WTUEe2qdtyPWAtoxA" fontName="Noto Sans" fontHeight="8"/>
2734 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QkXS8mTUEe2qdtyPWAtoxA" x="1958" y="448" height="131"/> 2919 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QkXS8mTUEe2qdtyPWAtoxA" x="1958" y="448" height="155"/>
2735 </children> 2920 </children>
2736 <children xmi:type="notation:Node" xmi:id="_36XqIGTuEe2qdtyPWAtoxA" type="2003" element="_36CS8GTuEe2qdtyPWAtoxA"> 2921 <children xmi:type="notation:Node" xmi:id="_36XqIGTuEe2qdtyPWAtoxA" type="2003" element="_36CS8GTuEe2qdtyPWAtoxA">
2737 <children xmi:type="notation:Node" xmi:id="_36YRMGTuEe2qdtyPWAtoxA" type="5007"/> 2922 <children xmi:type="notation:Node" xmi:id="_36YRMGTuEe2qdtyPWAtoxA" type="5007"/>
@@ -2811,6 +2996,24 @@
2811 <styles xmi:type="notation:ShapeStyle" xmi:id="_FOjAgWTwEe2qdtyPWAtoxA" fontName="Noto Sans" fontHeight="8"/> 2996 <styles xmi:type="notation:ShapeStyle" xmi:id="_FOjAgWTwEe2qdtyPWAtoxA" fontName="Noto Sans" fontHeight="8"/>
2812 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FOjAgmTwEe2qdtyPWAtoxA" x="1608" y="446"/> 2997 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FOjAgmTwEe2qdtyPWAtoxA" x="1608" y="446"/>
2813 </children> 2998 </children>
2999 <children xmi:type="notation:Node" xmi:id="_3ahdoGgpEe24RpwpWgpkFQ" type="2003" element="_3aQ-8GgpEe24RpwpWgpkFQ">
3000 <children xmi:type="notation:Node" xmi:id="_3ahdo2gpEe24RpwpWgpkFQ" type="5007"/>
3001 <children xmi:type="notation:Node" xmi:id="_3ahdpGgpEe24RpwpWgpkFQ" type="7004">
3002 <styles xmi:type="notation:SortingStyle" xmi:id="_3ahdpWgpEe24RpwpWgpkFQ"/>
3003 <styles xmi:type="notation:FilteringStyle" xmi:id="_3ahdpmgpEe24RpwpWgpkFQ"/>
3004 </children>
3005 <styles xmi:type="notation:ShapeStyle" xmi:id="_3ahdoWgpEe24RpwpWgpkFQ" fontName="Noto Sans" fontHeight="8"/>
3006 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3ahdomgpEe24RpwpWgpkFQ" x="2124" y="312" width="120" height="100"/>
3007 </children>
3008 <children xmi:type="notation:Node" xmi:id="_zs6moGgtEe24RpwpWgpkFQ" type="2003" element="_zsr9IGgtEe24RpwpWgpkFQ">
3009 <children xmi:type="notation:Node" xmi:id="_zs7NsGgtEe24RpwpWgpkFQ" type="5007"/>
3010 <children xmi:type="notation:Node" xmi:id="_zs7NsWgtEe24RpwpWgpkFQ" type="7004">
3011 <styles xmi:type="notation:SortingStyle" xmi:id="_zs7NsmgtEe24RpwpWgpkFQ"/>
3012 <styles xmi:type="notation:FilteringStyle" xmi:id="_zs7Ns2gtEe24RpwpWgpkFQ"/>
3013 </children>
3014 <styles xmi:type="notation:ShapeStyle" xmi:id="_zs6moWgtEe24RpwpWgpkFQ" fontName="Noto Sans" fontHeight="8"/>
3015 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zs6momgtEe24RpwpWgpkFQ" x="2628" y="312" width="120" height="100"/>
3016 </children>
2814 <styles xmi:type="notation:DiagramStyle" xmi:id="_z1ff0l3lEe2LuOZzJ_LhLg"/> 3017 <styles xmi:type="notation:DiagramStyle" xmi:id="_z1ff0l3lEe2LuOZzJ_LhLg"/>
2815 <edges xmi:type="notation:Edge" xmi:id="_C-b04F3mEe2LuOZzJ_LhLg" type="4001" element="_C9_I8F3mEe2LuOZzJ_LhLg" source="_9ZUmgF3lEe2LuOZzJ_LhLg" target="_8bUtMF3lEe2LuOZzJ_LhLg"> 3018 <edges xmi:type="notation:Edge" xmi:id="_C-b04F3mEe2LuOZzJ_LhLg" type="4001" element="_C9_I8F3mEe2LuOZzJ_LhLg" source="_9ZUmgF3lEe2LuOZzJ_LhLg" target="_8bUtMF3lEe2LuOZzJ_LhLg">
2816 <children xmi:type="notation:Node" xmi:id="_C-cb8F3mEe2LuOZzJ_LhLg" type="6001"> 3019 <children xmi:type="notation:Node" xmi:id="_C-cb8F3mEe2LuOZzJ_LhLg" type="6001">
@@ -2846,33 +3049,33 @@
2846 </edges> 3049 </edges>
2847 <edges xmi:type="notation:Edge" xmi:id="_oAifgF3vEe2LuOZzJ_LhLg" type="4001" element="_oARZ0l3vEe2LuOZzJ_LhLg" source="_bTgeJl3tEe2LuOZzJ_LhLg" target="_3xZUsF3lEe2LuOZzJ_LhLg"> 3050 <edges xmi:type="notation:Edge" xmi:id="_oAifgF3vEe2LuOZzJ_LhLg" type="4001" element="_oARZ0l3vEe2LuOZzJ_LhLg" source="_bTgeJl3tEe2LuOZzJ_LhLg" target="_3xZUsF3lEe2LuOZzJ_LhLg">
2848 <children xmi:type="notation:Node" xmi:id="_oAifhF3vEe2LuOZzJ_LhLg" type="6001"> 3051 <children xmi:type="notation:Node" xmi:id="_oAifhF3vEe2LuOZzJ_LhLg" type="6001">
2849 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_oAifhV3vEe2LuOZzJ_LhLg" x="-239" y="-38"/> 3052 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_oAifhV3vEe2LuOZzJ_LhLg" x="-281" y="-38"/>
2850 </children> 3053 </children>
2851 <children xmi:type="notation:Node" xmi:id="_oAifhl3vEe2LuOZzJ_LhLg" type="6002"> 3054 <children xmi:type="notation:Node" xmi:id="_oAifhl3vEe2LuOZzJ_LhLg" type="6002">
2852 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_oAifh13vEe2LuOZzJ_LhLg" x="-13" y="-68"/> 3055 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_oAifh13vEe2LuOZzJ_LhLg" x="-26" y="-68"/>
2853 </children> 3056 </children>
2854 <children xmi:type="notation:Node" xmi:id="_oAifiF3vEe2LuOZzJ_LhLg" type="6003"> 3057 <children xmi:type="notation:Node" xmi:id="_oAifiF3vEe2LuOZzJ_LhLg" type="6003">
2855 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_oAifiV3vEe2LuOZzJ_LhLg" x="-337" y="-10"/> 3058 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_oAifiV3vEe2LuOZzJ_LhLg" x="-324" y="-10"/>
2856 </children> 3059 </children>
2857 <styles xmi:type="notation:ConnectorStyle" xmi:id="_oAifgV3vEe2LuOZzJ_LhLg" routing="Rectilinear"/> 3060 <styles xmi:type="notation:ConnectorStyle" xmi:id="_oAifgV3vEe2LuOZzJ_LhLg" routing="Rectilinear"/>
2858 <styles xmi:type="notation:FontStyle" xmi:id="_oAifgl3vEe2LuOZzJ_LhLg" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/> 3061 <styles xmi:type="notation:FontStyle" xmi:id="_oAifgl3vEe2LuOZzJ_LhLg" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/>
2859 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_oAifg13vEe2LuOZzJ_LhLg" points="[6, 0, 719, 50]$[6, -96, 719, -46]$[-631, -96, 82, -46]"/> 3062 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_oAifg13vEe2LuOZzJ_LhLg" points="[6, 0, 803, 50]$[6, -96, 803, -46]$[-715, -96, 82, -46]"/>
2860 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_oAifil3vEe2LuOZzJ_LhLg" id="(0.3050847457627119,0.0)"/> 3063 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_oAifil3vEe2LuOZzJ_LhLg" id="(0.3050847457627119,0.0)"/>
2861 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_oAifi13vEe2LuOZzJ_LhLg" id="(0.3050847457627119,1.0)"/> 3064 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_oAifi13vEe2LuOZzJ_LhLg" id="(0.3050847457627119,1.0)"/>
2862 </edges> 3065 </edges>
2863 <edges xmi:type="notation:Edge" xmi:id="_qyMHwF3vEe2LuOZzJ_LhLg" type="4001" element="_qx9eWF3vEe2LuOZzJ_LhLg" source="_bTgeJl3tEe2LuOZzJ_LhLg" target="_3xZUsF3lEe2LuOZzJ_LhLg"> 3066 <edges xmi:type="notation:Edge" xmi:id="_qyMHwF3vEe2LuOZzJ_LhLg" type="4001" element="_qx9eWF3vEe2LuOZzJ_LhLg" source="_bTgeJl3tEe2LuOZzJ_LhLg" target="_3xZUsF3lEe2LuOZzJ_LhLg">
2864 <children xmi:type="notation:Node" xmi:id="_qyMHxF3vEe2LuOZzJ_LhLg" type="6001"> 3067 <children xmi:type="notation:Node" xmi:id="_qyMHxF3vEe2LuOZzJ_LhLg" type="6001">
2865 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qyMHxV3vEe2LuOZzJ_LhLg" x="-312" y="-62"/> 3068 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qyMHxV3vEe2LuOZzJ_LhLg" x="-354" y="-62"/>
2866 </children> 3069 </children>
2867 <children xmi:type="notation:Node" xmi:id="_qyMHxl3vEe2LuOZzJ_LhLg" type="6002"> 3070 <children xmi:type="notation:Node" xmi:id="_qyMHxl3vEe2LuOZzJ_LhLg" type="6002">
2868 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qyMHx13vEe2LuOZzJ_LhLg" x="-81"/> 3071 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qyMHx13vEe2LuOZzJ_LhLg" x="-10" y="-83"/>
2869 </children> 3072 </children>
2870 <children xmi:type="notation:Node" xmi:id="_qyMHyF3vEe2LuOZzJ_LhLg" type="6003"> 3073 <children xmi:type="notation:Node" xmi:id="_qyMHyF3vEe2LuOZzJ_LhLg" type="6003">
2871 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qyMHyV3vEe2LuOZzJ_LhLg" x="-342" y="-10"/> 3074 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qyMHyV3vEe2LuOZzJ_LhLg" x="-330" y="-10"/>
2872 </children> 3075 </children>
2873 <styles xmi:type="notation:ConnectorStyle" xmi:id="_qyMHwV3vEe2LuOZzJ_LhLg" routing="Rectilinear"/> 3076 <styles xmi:type="notation:ConnectorStyle" xmi:id="_qyMHwV3vEe2LuOZzJ_LhLg" routing="Rectilinear"/>
2874 <styles xmi:type="notation:FontStyle" xmi:id="_qyMHwl3vEe2LuOZzJ_LhLg" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/> 3077 <styles xmi:type="notation:FontStyle" xmi:id="_qyMHwl3vEe2LuOZzJ_LhLg" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/>
2875 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_qyMHw13vEe2LuOZzJ_LhLg" points="[0, 0, 713, 50]$[0, -120, 713, -70]$[-667, -120, 46, -70]"/> 3078 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_qyMHw13vEe2LuOZzJ_LhLg" points="[0, 0, 797, 50]$[0, -120, 797, -70]$[-751, -120, 46, -70]"/>
2876 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_qyMHyl3vEe2LuOZzJ_LhLg" id="(0.6101694915254238,0.0)"/> 3079 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_qyMHyl3vEe2LuOZzJ_LhLg" id="(0.6101694915254238,0.0)"/>
2877 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_qyMHy13vEe2LuOZzJ_LhLg" id="(0.6101694915254238,1.0)"/> 3080 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_qyMHy13vEe2LuOZzJ_LhLg" id="(0.6101694915254238,1.0)"/>
2878 </edges> 3081 </edges>
@@ -2894,17 +3097,17 @@
2894 </edges> 3097 </edges>
2895 <edges xmi:type="notation:Edge" xmi:id="_v0nf0F3vEe2LuOZzJ_LhLg" type="4001" element="_v0WaHF3vEe2LuOZzJ_LhLg" source="_bTgeJl3tEe2LuOZzJ_LhLg" target="_3xZUsF3lEe2LuOZzJ_LhLg"> 3098 <edges xmi:type="notation:Edge" xmi:id="_v0nf0F3vEe2LuOZzJ_LhLg" type="4001" element="_v0WaHF3vEe2LuOZzJ_LhLg" source="_bTgeJl3tEe2LuOZzJ_LhLg" target="_3xZUsF3lEe2LuOZzJ_LhLg">
2896 <children xmi:type="notation:Node" xmi:id="_v0nf1F3vEe2LuOZzJ_LhLg" type="6001"> 3099 <children xmi:type="notation:Node" xmi:id="_v0nf1F3vEe2LuOZzJ_LhLg" type="6001">
2897 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_v0nf1V3vEe2LuOZzJ_LhLg" x="9" y="-10"/> 3100 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_v0nf1V3vEe2LuOZzJ_LhLg" x="5" y="-10"/>
2898 </children> 3101 </children>
2899 <children xmi:type="notation:Node" xmi:id="_v0nf1l3vEe2LuOZzJ_LhLg" type="6002"> 3102 <children xmi:type="notation:Node" xmi:id="_v0nf1l3vEe2LuOZzJ_LhLg" type="6002">
2900 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_v0nf113vEe2LuOZzJ_LhLg" x="-2" y="10"/> 3103 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_v0nf113vEe2LuOZzJ_LhLg" x="-6" y="10"/>
2901 </children> 3104 </children>
2902 <children xmi:type="notation:Node" xmi:id="_v0nf2F3vEe2LuOZzJ_LhLg" type="6003"> 3105 <children xmi:type="notation:Node" xmi:id="_v0nf2F3vEe2LuOZzJ_LhLg" type="6003">
2903 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_v0nf2V3vEe2LuOZzJ_LhLg" x="22" y="10"/> 3106 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_v0nf2V3vEe2LuOZzJ_LhLg" x="18" y="10"/>
2904 </children> 3107 </children>
2905 <styles xmi:type="notation:ConnectorStyle" xmi:id="_v0nf0V3vEe2LuOZzJ_LhLg" routing="Tree"/> 3108 <styles xmi:type="notation:ConnectorStyle" xmi:id="_v0nf0V3vEe2LuOZzJ_LhLg" routing="Tree"/>
2906 <styles xmi:type="notation:FontStyle" xmi:id="_v0nf0l3vEe2LuOZzJ_LhLg" fontName="Noto Sans" fontHeight="8"/> 3109 <styles xmi:type="notation:FontStyle" xmi:id="_v0nf0l3vEe2LuOZzJ_LhLg" fontName="Noto Sans" fontHeight="8"/>
2907 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_v0nf013vEe2LuOZzJ_LhLg" points="[0, -2, 698, 99]$[0, -26, 698, 75]$[-704, -26, -6, 75]$[-704, -52, -6, 49]"/> 3110 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_v0nf013vEe2LuOZzJ_LhLg" points="[0, -2, 758, 99]$[0, -38, 758, 63]$[-764, -38, -6, 63]$[-764, -52, -6, 49]"/>
2908 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_v0nf2l3vEe2LuOZzJ_LhLg" id="(0.1694915254237288,0.02040816326530612)"/> 3111 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_v0nf2l3vEe2LuOZzJ_LhLg" id="(0.1694915254237288,0.02040816326530612)"/>
2909 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_v0nf213vEe2LuOZzJ_LhLg" id="(0.5,0.5)"/> 3112 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_v0nf213vEe2LuOZzJ_LhLg" id="(0.5,0.5)"/>
2910 </edges> 3113 </edges>
@@ -3020,35 +3223,19 @@
3020 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_JYZ5x14JEe2LuOZzJ_LhLg" id="(0.5,0.5)"/> 3223 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_JYZ5x14JEe2LuOZzJ_LhLg" id="(0.5,0.5)"/>
3021 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_JYZ5yF4JEe2LuOZzJ_LhLg" id="(0.5,0.5)"/> 3224 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_JYZ5yF4JEe2LuOZzJ_LhLg" id="(0.5,0.5)"/>
3022 </edges> 3225 </edges>
3023 <edges xmi:type="notation:Edge" xmi:id="_BbjigF4KEe2m7IaHDkh2Xg" type="4001" element="_BaytgF4KEe2m7IaHDkh2Xg" source="_6MkBsF4IEe2LuOZzJ_LhLg" target="_87Ju4F4IEe2LuOZzJ_LhLg">
3024 <children xmi:type="notation:Node" xmi:id="_BbnM4F4KEe2m7IaHDkh2Xg" type="6001">
3025 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BbnM4V4KEe2m7IaHDkh2Xg" x="3" y="-48"/>
3026 </children>
3027 <children xmi:type="notation:Node" xmi:id="_Bbnz8F4KEe2m7IaHDkh2Xg" type="6002">
3028 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Bbnz8V4KEe2m7IaHDkh2Xg" y="10"/>
3029 </children>
3030 <children xmi:type="notation:Node" xmi:id="_Bbnz8l4KEe2m7IaHDkh2Xg" type="6003">
3031 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Bbnz814KEe2m7IaHDkh2Xg" y="10"/>
3032 </children>
3033 <styles xmi:type="notation:ConnectorStyle" xmi:id="_BbjigV4KEe2m7IaHDkh2Xg" routing="Rectilinear"/>
3034 <styles xmi:type="notation:FontStyle" xmi:id="_Bbjigl4KEe2m7IaHDkh2Xg" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/>
3035 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Bbjig14KEe2m7IaHDkh2Xg" points="[0, 0, 0, -46]$[0, 46, 0, 0]"/>
3036 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_BbqQMF4KEe2m7IaHDkh2Xg" id="(0.5084745762711864,1.0)"/>
3037 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_BbqQMV4KEe2m7IaHDkh2Xg" id="(0.5084745762711864,0.0)"/>
3038 </edges>
3039 <edges xmi:type="notation:Edge" xmi:id="_q0sN4F4KEe2m7IaHDkh2Xg" type="4001" element="_q0dkhF4KEe2m7IaHDkh2Xg" source="_3BISYF4GEe2LuOZzJ_LhLg" target="_3xZUsF3lEe2LuOZzJ_LhLg"> 3226 <edges xmi:type="notation:Edge" xmi:id="_q0sN4F4KEe2m7IaHDkh2Xg" type="4001" element="_q0dkhF4KEe2m7IaHDkh2Xg" source="_3BISYF4GEe2LuOZzJ_LhLg" target="_3xZUsF3lEe2LuOZzJ_LhLg">
3040 <children xmi:type="notation:Node" xmi:id="_q0sN5F4KEe2m7IaHDkh2Xg" type="6001"> 3227 <children xmi:type="notation:Node" xmi:id="_q0sN5F4KEe2m7IaHDkh2Xg" type="6001">
3041 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_q0sN5V4KEe2m7IaHDkh2Xg" x="-26" y="13"/> 3228 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_q0sN5V4KEe2m7IaHDkh2Xg" x="-14" y="25"/>
3042 </children> 3229 </children>
3043 <children xmi:type="notation:Node" xmi:id="_q0sN5l4KEe2m7IaHDkh2Xg" type="6002"> 3230 <children xmi:type="notation:Node" xmi:id="_q0sN5l4KEe2m7IaHDkh2Xg" type="6002">
3044 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_q0sN514KEe2m7IaHDkh2Xg" x="-9" y="10"/> 3231 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_q0sN514KEe2m7IaHDkh2Xg" x="-9" y="10"/>
3045 </children> 3232 </children>
3046 <children xmi:type="notation:Node" xmi:id="_q0s08F4KEe2m7IaHDkh2Xg" type="6003"> 3233 <children xmi:type="notation:Node" xmi:id="_q0s08F4KEe2m7IaHDkh2Xg" type="6003">
3047 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_q0s08V4KEe2m7IaHDkh2Xg" x="-54" y="10"/> 3234 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_q0s08V4KEe2m7IaHDkh2Xg" x="-42" y="10"/>
3048 </children> 3235 </children>
3049 <styles xmi:type="notation:ConnectorStyle" xmi:id="_q0sN4V4KEe2m7IaHDkh2Xg" routing="Tree"/> 3236 <styles xmi:type="notation:ConnectorStyle" xmi:id="_q0sN4V4KEe2m7IaHDkh2Xg" routing="Tree"/>
3050 <styles xmi:type="notation:FontStyle" xmi:id="_q0sN4l4KEe2m7IaHDkh2Xg" fontName="Noto Sans" fontHeight="8"/> 3237 <styles xmi:type="notation:FontStyle" xmi:id="_q0sN4l4KEe2m7IaHDkh2Xg" fontName="Noto Sans" fontHeight="8"/>
3051 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_q0sN414KEe2m7IaHDkh2Xg" points="[0, -27, -155, 202]$[0, -195, -155, 34]$[174, -195, 19, 34]$[174, -221, 19, 8]"/> 3238 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_q0sN414KEe2m7IaHDkh2Xg" points="[0, -27, -155, 202]$[0, -207, -155, 22]$[174, -207, 19, 22]$[174, -221, 19, 8]"/>
3052 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_q0s08l4KEe2m7IaHDkh2Xg" id="(0.8206896551724138,0.2755102040816326)"/> 3239 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_q0s08l4KEe2m7IaHDkh2Xg" id="(0.8206896551724138,0.2755102040816326)"/>
3053 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_q0s0814KEe2m7IaHDkh2Xg" id="(0.288135593220339,0.9183673469387755)"/> 3240 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_q0s0814KEe2m7IaHDkh2Xg" id="(0.288135593220339,0.9183673469387755)"/>
3054 </edges> 3241 </edges>
@@ -3148,22 +3335,6 @@
3148 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Y_BrQF63Ee2rXNsIDUvqhw" id="(0.47368421052631576,0.061224489795918366)"/> 3335 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Y_BrQF63Ee2rXNsIDUvqhw" id="(0.47368421052631576,0.061224489795918366)"/>
3149 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Y_BrQV63Ee2rXNsIDUvqhw" id="(0.0,0.6122448979591837)"/> 3336 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Y_BrQV63Ee2rXNsIDUvqhw" id="(0.0,0.6122448979591837)"/>
3150 </edges> 3337 </edges>
3151 <edges xmi:type="notation:Edge" xmi:id="_gPyjIF63Ee2rXNsIDUvqhw" type="4001" element="_gPg2el63Ee2rXNsIDUvqhw" source="_6MkBsF4IEe2LuOZzJ_LhLg" target="_3xZUsF3lEe2LuOZzJ_LhLg">
3152 <children xmi:type="notation:Node" xmi:id="_gPyjJF63Ee2rXNsIDUvqhw" type="6001">
3153 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gPyjJV63Ee2rXNsIDUvqhw" x="-3" y="-10"/>
3154 </children>
3155 <children xmi:type="notation:Node" xmi:id="_gPyjJl63Ee2rXNsIDUvqhw" type="6002">
3156 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gPyjJ163Ee2rXNsIDUvqhw" x="-4" y="10"/>
3157 </children>
3158 <children xmi:type="notation:Node" xmi:id="_gPyjKF63Ee2rXNsIDUvqhw" type="6003">
3159 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gPyjKV63Ee2rXNsIDUvqhw" x="-2" y="10"/>
3160 </children>
3161 <styles xmi:type="notation:ConnectorStyle" xmi:id="_gPyjIV63Ee2rXNsIDUvqhw" routing="Tree"/>
3162 <styles xmi:type="notation:FontStyle" xmi:id="_gPyjIl63Ee2rXNsIDUvqhw" fontName="Noto Sans" fontHeight="8"/>
3163 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gPyjI163Ee2rXNsIDUvqhw" points="[0, -18, 1256, 88]$[0, -46, 1256, 60]$[-1220, -46, 36, 60]$[-1220, -68, 36, 38]"/>
3164 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gPyjKl63Ee2rXNsIDUvqhw" id="(0.4915254237288136,0.1836734693877551)"/>
3165 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gPyjK163Ee2rXNsIDUvqhw" id="(0.0,0.6122448979591837)"/>
3166 </edges>
3167 <edges xmi:type="notation:Edge" xmi:id="_mZrI4F9vEe2rXNsIDUvqhw" type="4001" element="_ZLAvTl9vEe2rXNsIDUvqhw" source="_3BISYF4GEe2LuOZzJ_LhLg" target="_R7b9sF38Ee2LuOZzJ_LhLg"> 3338 <edges xmi:type="notation:Edge" xmi:id="_mZrI4F9vEe2rXNsIDUvqhw" type="4001" element="_ZLAvTl9vEe2rXNsIDUvqhw" source="_3BISYF4GEe2LuOZzJ_LhLg" target="_R7b9sF38Ee2LuOZzJ_LhLg">
3168 <children xmi:type="notation:Node" xmi:id="_mZrI5F9vEe2rXNsIDUvqhw" type="6001"> 3339 <children xmi:type="notation:Node" xmi:id="_mZrI5F9vEe2rXNsIDUvqhw" type="6001">
3169 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mZrI5V9vEe2rXNsIDUvqhw" y="-10"/> 3340 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mZrI5V9vEe2rXNsIDUvqhw" y="-10"/>
@@ -3308,6 +3479,54 @@
3308 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_MXL3KmTwEe2qdtyPWAtoxA" id="(0.7295081967213115,0.09183673469387756)"/> 3479 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_MXL3KmTwEe2qdtyPWAtoxA" id="(0.7295081967213115,0.09183673469387756)"/>
3309 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_MXL3K2TwEe2qdtyPWAtoxA" id="(0.0,0.6122448979591837)"/> 3480 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_MXL3K2TwEe2qdtyPWAtoxA" id="(0.0,0.6122448979591837)"/>
3310 </edges> 3481 </edges>
3482 <edges xmi:type="notation:Edge" xmi:id="_45broGgpEe24RpwpWgpkFQ" type="4001" element="_45D4QmgpEe24RpwpWgpkFQ" source="_3ahdoGgpEe24RpwpWgpkFQ" target="_bTgeJl3tEe2LuOZzJ_LhLg">
3483 <children xmi:type="notation:Node" xmi:id="_45brpGgpEe24RpwpWgpkFQ" type="6001">
3484 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_45brpWgpEe24RpwpWgpkFQ" y="-10"/>
3485 </children>
3486 <children xmi:type="notation:Node" xmi:id="_45cSsGgpEe24RpwpWgpkFQ" type="6002">
3487 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_45cSsWgpEe24RpwpWgpkFQ" y="10"/>
3488 </children>
3489 <children xmi:type="notation:Node" xmi:id="_45cSsmgpEe24RpwpWgpkFQ" type="6003">
3490 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_45cSs2gpEe24RpwpWgpkFQ" y="10"/>
3491 </children>
3492 <styles xmi:type="notation:ConnectorStyle" xmi:id="_45broWgpEe24RpwpWgpkFQ" routing="Tree"/>
3493 <styles xmi:type="notation:FontStyle" xmi:id="_45bromgpEe24RpwpWgpkFQ" fontName="Noto Sans" fontHeight="8"/>
3494 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_45bro2gpEe24RpwpWgpkFQ" points="[0, 0, 158, 120]$[-158, -120, 0, 0]"/>
3495 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_45cStGgpEe24RpwpWgpkFQ" id="(0.5508474576271186,0.061224489795918366)"/>
3496 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_45cStWgpEe24RpwpWgpkFQ" id="(0.5,0.5)"/>
3497 </edges>
3498 <edges xmi:type="notation:Edge" xmi:id="_qYvskGgtEe24RpwpWgpkFQ" type="4001" element="_qYZuyGgtEe24RpwpWgpkFQ" source="_87Ju4F4IEe2LuOZzJ_LhLg" target="_3xZUsF3lEe2LuOZzJ_LhLg">
3499 <children xmi:type="notation:Node" xmi:id="_qYvslGgtEe24RpwpWgpkFQ" type="6001">
3500 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qYvslWgtEe24RpwpWgpkFQ" x="12" y="-10"/>
3501 </children>
3502 <children xmi:type="notation:Node" xmi:id="_qYvslmgtEe24RpwpWgpkFQ" type="6002">
3503 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qYvsl2gtEe24RpwpWgpkFQ" x="12" y="10"/>
3504 </children>
3505 <children xmi:type="notation:Node" xmi:id="_qYvsmGgtEe24RpwpWgpkFQ" type="6003">
3506 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qYvsmWgtEe24RpwpWgpkFQ" x="12" y="10"/>
3507 </children>
3508 <styles xmi:type="notation:ConnectorStyle" xmi:id="_qYvskWgtEe24RpwpWgpkFQ" routing="Tree"/>
3509 <styles xmi:type="notation:FontStyle" xmi:id="_qYvskmgtEe24RpwpWgpkFQ" fontName="Noto Sans" fontHeight="8"/>
3510 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_qYvsk2gtEe24RpwpWgpkFQ" points="[0, -49, 1456, 88]$[0, -85, 1456, 52]$[-1403, -85, 53, 52]$[-1403, -99, 53, 38]"/>
3511 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_syrYYGgtEe24RpwpWgpkFQ" id="(0.5,0.5)"/>
3512 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_qYvsm2gtEe24RpwpWgpkFQ" id="(0.0,0.6122448979591837)"/>
3513 </edges>
3514 <edges xmi:type="notation:Edge" xmi:id="_3zjE0GgtEe24RpwpWgpkFQ" type="4001" element="_3zQKBGgtEe24RpwpWgpkFQ" source="_zs6moGgtEe24RpwpWgpkFQ" target="_87Ju4F4IEe2LuOZzJ_LhLg">
3515 <children xmi:type="notation:Node" xmi:id="_3zjr4GgtEe24RpwpWgpkFQ" type="6001">
3516 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3zjr4WgtEe24RpwpWgpkFQ" y="-10"/>
3517 </children>
3518 <children xmi:type="notation:Node" xmi:id="_3zjr4mgtEe24RpwpWgpkFQ" type="6002">
3519 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3zjr42gtEe24RpwpWgpkFQ" y="10"/>
3520 </children>
3521 <children xmi:type="notation:Node" xmi:id="_3zjr5GgtEe24RpwpWgpkFQ" type="6003">
3522 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3zjr5WgtEe24RpwpWgpkFQ" y="10"/>
3523 </children>
3524 <styles xmi:type="notation:ConnectorStyle" xmi:id="_3zjE0WgtEe24RpwpWgpkFQ" routing="Tree"/>
3525 <styles xmi:type="notation:FontStyle" xmi:id="_3zjE0mgtEe24RpwpWgpkFQ" fontName="Noto Sans" fontHeight="8"/>
3526 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3zjE02gtEe24RpwpWgpkFQ" points="[0, 0, 86, 120]$[-86, -120, 0, 0]"/>
3527 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3zjr5mgtEe24RpwpWgpkFQ" id="(0.8135593220338984,0.0)"/>
3528 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_3zjr52gtEe24RpwpWgpkFQ" id="(0.5,0.5)"/>
3529 </edges>
3311 </data> 3530 </data>
3312 </ownedAnnotationEntries> 3531 </ownedAnnotationEntries>
3313 <ownedAnnotationEntries xmi:type="description:AnnotationEntry" uid="_z1k_YV3lEe2LuOZzJ_LhLg" source="DANNOTATION_CUSTOMIZATION_KEY"> 3532 <ownedAnnotationEntries xmi:type="description:AnnotationEntry" uid="_z1k_YV3lEe2LuOZzJ_LhLg" source="DANNOTATION_CUSTOMIZATION_KEY">
@@ -3323,7 +3542,7 @@
3323 </computedStyleDescriptions> 3542 </computedStyleDescriptions>
3324 </data> 3543 </data>
3325 </ownedAnnotationEntries> 3544 </ownedAnnotationEntries>
3326 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_3wvNYF3lEe2LuOZzJ_LhLg" name="Expr" tooltipText="" incomingEdges="_FMB-xl3vEe2LuOZzJ_LhLg _oARZ0l3vEe2LuOZzJ_LhLg _qx9eWF3vEe2LuOZzJ_LhLg _uSiCAF3vEe2LuOZzJ_LhLg _v0WaHF3vEe2LuOZzJ_LhLg _ObhgTF4HEe2LuOZzJ_LhLg _q0dkhF4KEe2m7IaHDkh2Xg _Y-E8MF4LEe2m7IaHDkh2Xg _Y-qe-F63Ee2rXNsIDUvqhw _gPg2el63Ee2rXNsIDUvqhw _LC4MOmTvEe2qdtyPWAtoxA _MW7_mGTwEe2qdtyPWAtoxA" width="12" height="10"> 3545 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_3wvNYF3lEe2LuOZzJ_LhLg" name="Expr" tooltipText="" incomingEdges="_FMB-xl3vEe2LuOZzJ_LhLg _oARZ0l3vEe2LuOZzJ_LhLg _qx9eWF3vEe2LuOZzJ_LhLg _uSiCAF3vEe2LuOZzJ_LhLg _v0WaHF3vEe2LuOZzJ_LhLg _ObhgTF4HEe2LuOZzJ_LhLg _q0dkhF4KEe2m7IaHDkh2Xg _Y-E8MF4LEe2m7IaHDkh2Xg _Y-qe-F63Ee2rXNsIDUvqhw _LC4MOmTvEe2qdtyPWAtoxA _MW7_mGTwEe2qdtyPWAtoxA _qYZuyGgtEe24RpwpWgpkFQ" width="12" height="10">
3327 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Expr"/> 3546 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Expr"/>
3328 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Expr"/> 3547 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Expr"/>
3329 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> 3548 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -3372,7 +3591,7 @@
3372 </ownedStyle> 3591 </ownedStyle>
3373 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> 3592 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
3374 </ownedDiagramElements> 3593 </ownedDiagramElements>
3375 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_bTLuAF3tEe2LuOZzJ_LhLg" name="BinaryExpr" tooltipText="" outgoingEdges="_oARZ0l3vEe2LuOZzJ_LhLg _qx9eWF3vEe2LuOZzJ_LhLg _v0WaHF3vEe2LuOZzJ_LhLg" incomingEdges="_UstBaGTUEe2qdtyPWAtoxA _Vb3NYGTUEe2qdtyPWAtoxA" width="12" height="10"> 3594 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_bTLuAF3tEe2LuOZzJ_LhLg" name="BinaryExpr" tooltipText="" outgoingEdges="_oARZ0l3vEe2LuOZzJ_LhLg _qx9eWF3vEe2LuOZzJ_LhLg _v0WaHF3vEe2LuOZzJ_LhLg" incomingEdges="_UstBaGTUEe2qdtyPWAtoxA _Vb3NYGTUEe2qdtyPWAtoxA _45D4QmgpEe24RpwpWgpkFQ" width="12" height="10">
3376 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//BinaryExpr"/> 3595 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//BinaryExpr"/>
3377 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//BinaryExpr"/> 3596 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//BinaryExpr"/>
3378 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> 3597 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -3536,6 +3755,22 @@
3536 </ownedStyle> 3755 </ownedStyle>
3537 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> 3756 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
3538 </ownedElements> 3757 </ownedElements>
3758 <ownedElements xmi:type="diagram:DNodeListElement" uid="_Sn1HAGgrEe24RpwpWgpkFQ" name="MEET" tooltipText="">
3759 <target xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//BinaryOp/MEET"/>
3760 <semanticElements xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//BinaryOp/MEET"/>
3761 <ownedStyle xmi:type="diagram:BundledImage" uid="_Sn1HAWgrEe24RpwpWgpkFQ" labelAlignment="LEFT">
3762 <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
3763 </ownedStyle>
3764 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
3765 </ownedElements>
3766 <ownedElements xmi:type="diagram:DNodeListElement" uid="_TrhYoGgrEe24RpwpWgpkFQ" name="JOIN" tooltipText="">
3767 <target xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//BinaryOp/JOIN"/>
3768 <semanticElements xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//BinaryOp/JOIN"/>
3769 <ownedStyle xmi:type="diagram:BundledImage" uid="_TrhYoWgrEe24RpwpWgpkFQ" labelAlignment="LEFT">
3770 <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
3771 </ownedStyle>
3772 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
3773 </ownedElements>
3539 </ownedDiagramElements> 3774 </ownedDiagramElements>
3540 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_R7XFMF38Ee2LuOZzJ_LhLg" name="ExistentialQuantifier" tooltipText="" outgoingEdges="_WGxVyF38Ee2LuOZzJ_LhLg" incomingEdges="_C0JQzV4LEe2m7IaHDkh2Xg _ZLAvTl9vEe2rXNsIDUvqhw" width="12" height="10"> 3775 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_R7XFMF38Ee2LuOZzJ_LhLg" name="ExistentialQuantifier" tooltipText="" outgoingEdges="_WGxVyF38Ee2LuOZzJ_LhLg" incomingEdges="_C0JQzV4LEe2m7IaHDkh2Xg _ZLAvTl9vEe2rXNsIDUvqhw" width="12" height="10">
3541 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//ExistentialQuantifier"/> 3776 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//ExistentialQuantifier"/>
@@ -3692,18 +3927,7 @@
3692 </ownedStyle> 3927 </ownedStyle>
3693 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> 3928 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
3694 </ownedDiagramElements> 3929 </ownedDiagramElements>
3695 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_6MWmUF4IEe2LuOZzJ_LhLg" name="ConstantExpr" tooltipText="" outgoingEdges="_BaytgF4KEe2m7IaHDkh2Xg _gPg2el63Ee2rXNsIDUvqhw" width="12" height="10"> 3930 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_86zJkF4IEe2LuOZzJ_LhLg" name="Constant" tooltipText="" outgoingEdges="_qYZuyGgtEe24RpwpWgpkFQ" incomingEdges="_JYWPtF4JEe2LuOZzJ_LhLg _JYW2c14JEe2LuOZzJ_LhLg _JYW2el4JEe2LuOZzJ_LhLg _3zQKBGgtEe24RpwpWgpkFQ" width="12" height="10">
3696 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//ConstantExpr"/>
3697 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//ConstantExpr"/>
3698 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
3699 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
3700 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
3701 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_6MXNYF4IEe2LuOZzJ_LhLg" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
3702 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
3703 </ownedStyle>
3704 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
3705 </ownedDiagramElements>
3706 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_86zJkF4IEe2LuOZzJ_LhLg" name="Constant" tooltipText="" incomingEdges="_JYWPtF4JEe2LuOZzJ_LhLg _JYW2c14JEe2LuOZzJ_LhLg _JYW2el4JEe2LuOZzJ_LhLg _BaytgF4KEe2m7IaHDkh2Xg" width="12" height="10">
3707 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Constant"/> 3931 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Constant"/>
3708 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Constant"/> 3932 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Constant"/>
3709 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> 3933 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -3808,19 +4032,6 @@
3808 </ownedStyle> 4032 </ownedStyle>
3809 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> 4033 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
3810 </ownedDiagramElements> 4034 </ownedDiagramElements>
3811 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_BaytgF4KEe2m7IaHDkh2Xg" name="[0..1] constant" sourceNode="_6MWmUF4IEe2LuOZzJ_LhLg" targetNode="_86zJkF4IEe2LuOZzJ_LhLg">
3812 <target xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//ConstantExpr/constant"/>
3813 <semanticElements xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//ConstantExpr/constant"/>
3814 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_Baz7oF4KEe2m7IaHDkh2Xg" description="_FMCl0F3vEe2LuOZzJ_LhLg" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
3815 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_Baz7ol4KEe2m7IaHDkh2Xg" showIcon="false">
3816 <customFeatures>labelSize</customFeatures>
3817 </centerLabelStyle>
3818 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_Baz7oV4KEe2m7IaHDkh2Xg" showIcon="false" labelColor="39,76,114">
3819 <customFeatures>labelSize</customFeatures>
3820 </endLabelStyle>
3821 </ownedStyle>
3822 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
3823 </ownedDiagramElements>
3824 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_q0dkhF4KEe2m7IaHDkh2Xg" sourceNode="_3A1XcF4GEe2LuOZzJ_LhLg" targetNode="_3wvNYF3lEe2LuOZzJ_LhLg"> 4035 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_q0dkhF4KEe2m7IaHDkh2Xg" sourceNode="_3A1XcF4GEe2LuOZzJ_LhLg" targetNode="_3wvNYF3lEe2LuOZzJ_LhLg">
3825 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//AggregationExpr"/> 4036 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//AggregationExpr"/>
3826 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//AggregationExpr"/> 4037 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//AggregationExpr"/>
@@ -3930,18 +4141,6 @@
3930 </ownedStyle> 4141 </ownedStyle>
3931 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> 4142 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
3932 </ownedDiagramElements> 4143 </ownedDiagramElements>
3933 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_gPg2el63Ee2rXNsIDUvqhw" sourceNode="_6MWmUF4IEe2LuOZzJ_LhLg" targetNode="_3wvNYF3lEe2LuOZzJ_LhLg">
3934 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//ConstantExpr"/>
3935 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//ConstantExpr"/>
3936 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_gPg2e163Ee2rXNsIDUvqhw" targetArrow="InputClosedArrow" routingStyle="tree">
3937 <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
3938 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_gPg2fF63Ee2rXNsIDUvqhw" showIcon="false">
3939 <labelFormat>italic</labelFormat>
3940 </beginLabelStyle>
3941 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_gPg2fV63Ee2rXNsIDUvqhw" showIcon="false"/>
3942 </ownedStyle>
3943 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
3944 </ownedDiagramElements>
3945 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_ZLAvTl9vEe2rXNsIDUvqhw" sourceNode="_3A1XcF4GEe2LuOZzJ_LhLg" targetNode="_R7XFMF38Ee2LuOZzJ_LhLg"> 4144 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_ZLAvTl9vEe2rXNsIDUvqhw" sourceNode="_3A1XcF4GEe2LuOZzJ_LhLg" targetNode="_R7XFMF38Ee2LuOZzJ_LhLg">
3946 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//AggregationExpr"/> 4145 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//AggregationExpr"/>
3947 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//AggregationExpr"/> 4146 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//AggregationExpr"/>
@@ -4050,6 +4249,14 @@
4050 </ownedStyle> 4249 </ownedStyle>
4051 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> 4250 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
4052 </ownedElements> 4251 </ownedElements>
4252 <ownedElements xmi:type="diagram:DNodeListElement" uid="_pZAqsGgpEe24RpwpWgpkFQ" name="IN" tooltipText="">
4253 <target xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//ComparisonOp/IN"/>
4254 <semanticElements xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//ComparisonOp/IN"/>
4255 <ownedStyle xmi:type="diagram:BundledImage" uid="_pZBRwGgpEe24RpwpWgpkFQ" labelAlignment="LEFT">
4256 <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
4257 </ownedStyle>
4258 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
4259 </ownedElements>
4053 </ownedDiagramElements> 4260 </ownedDiagramElements>
4054 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_UstBaGTUEe2qdtyPWAtoxA" sourceNode="_M-ZR0GTUEe2qdtyPWAtoxA" targetNode="_bTLuAF3tEe2LuOZzJ_LhLg"> 4261 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_UstBaGTUEe2qdtyPWAtoxA" sourceNode="_M-ZR0GTUEe2qdtyPWAtoxA" targetNode="_bTLuAF3tEe2LuOZzJ_LhLg">
4055 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//ArithmeticBinaryExpr"/> 4262 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//ArithmeticBinaryExpr"/>
@@ -4265,6 +4472,64 @@
4265 </ownedStyle> 4472 </ownedStyle>
4266 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> 4473 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
4267 </ownedDiagramElements> 4474 </ownedDiagramElements>
4475 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_3aQ-8GgpEe24RpwpWgpkFQ" name="RangeExpr" tooltipText="" outgoingEdges="_45D4QmgpEe24RpwpWgpkFQ" width="12" height="10">
4476 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//RangeExpr"/>
4477 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//RangeExpr"/>
4478 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
4479 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
4480 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
4481 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_3aQ-8WgpEe24RpwpWgpkFQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
4482 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
4483 </ownedStyle>
4484 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
4485 </ownedDiagramElements>
4486 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_45D4QmgpEe24RpwpWgpkFQ" sourceNode="_3aQ-8GgpEe24RpwpWgpkFQ" targetNode="_bTLuAF3tEe2LuOZzJ_LhLg">
4487 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//RangeExpr"/>
4488 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//RangeExpr"/>
4489 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_45D4Q2gpEe24RpwpWgpkFQ" targetArrow="InputClosedArrow" routingStyle="tree">
4490 <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
4491 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_45D4RGgpEe24RpwpWgpkFQ" showIcon="false">
4492 <labelFormat>italic</labelFormat>
4493 </beginLabelStyle>
4494 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_45D4RWgpEe24RpwpWgpkFQ" showIcon="false"/>
4495 </ownedStyle>
4496 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
4497 </ownedDiagramElements>
4498 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_qYZuyGgtEe24RpwpWgpkFQ" sourceNode="_86zJkF4IEe2LuOZzJ_LhLg" targetNode="_3wvNYF3lEe2LuOZzJ_LhLg">
4499 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Constant"/>
4500 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Constant"/>
4501 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_qYaVYGgtEe24RpwpWgpkFQ" targetArrow="InputClosedArrow" routingStyle="tree">
4502 <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
4503 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_qYaVYWgtEe24RpwpWgpkFQ" showIcon="false">
4504 <labelFormat>italic</labelFormat>
4505 </beginLabelStyle>
4506 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_qYaVYmgtEe24RpwpWgpkFQ" showIcon="false"/>
4507 </ownedStyle>
4508 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
4509 </ownedDiagramElements>
4510 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_zsr9IGgtEe24RpwpWgpkFQ" name="InfConstant" tooltipText="" outgoingEdges="_3zQKBGgtEe24RpwpWgpkFQ" width="12" height="10">
4511 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//InfConstant"/>
4512 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//InfConstant"/>
4513 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
4514 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
4515 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
4516 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_zsr9IWgtEe24RpwpWgpkFQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
4517 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
4518 </ownedStyle>
4519 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
4520 </ownedDiagramElements>
4521 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_3zQKBGgtEe24RpwpWgpkFQ" sourceNode="_zsr9IGgtEe24RpwpWgpkFQ" targetNode="_86zJkF4IEe2LuOZzJ_LhLg">
4522 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//InfConstant"/>
4523 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//InfConstant"/>
4524 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_3zQKBWgtEe24RpwpWgpkFQ" targetArrow="InputClosedArrow" routingStyle="tree">
4525 <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
4526 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_3zQKBmgtEe24RpwpWgpkFQ" showIcon="false">
4527 <labelFormat>italic</labelFormat>
4528 </beginLabelStyle>
4529 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_3zQKB2gtEe24RpwpWgpkFQ" showIcon="false"/>
4530 </ownedStyle>
4531 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
4532 </ownedDiagramElements>
4268 <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/> 4533 <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/>
4269 <filterVariableHistory xmi:type="diagram:FilterVariableHistory" uid="_z1aAQF3lEe2LuOZzJ_LhLg"/> 4534 <filterVariableHistory xmi:type="diagram:FilterVariableHistory" uid="_z1aAQF3lEe2LuOZzJ_LhLg"/>
4270 <activatedLayers xmi:type="description_1:Layer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer"/> 4535 <activatedLayers xmi:type="description_1:Layer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer"/>
@@ -4282,15 +4547,11 @@
4282 <styles xmi:type="notation:FilteringStyle" xmi:id="_yj6zVl4eEe2rXNsIDUvqhw"/> 4547 <styles xmi:type="notation:FilteringStyle" xmi:id="_yj6zVl4eEe2rXNsIDUvqhw"/>
4283 </children> 4548 </children>
4284 <styles xmi:type="notation:ShapeStyle" xmi:id="_yj6zUV4eEe2rXNsIDUvqhw" fontName="Noto Sans" fontHeight="8" italic="true"/> 4549 <styles xmi:type="notation:ShapeStyle" xmi:id="_yj6zUV4eEe2rXNsIDUvqhw" fontName="Noto Sans" fontHeight="8" italic="true"/>
4285 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yj6zUl4eEe2rXNsIDUvqhw" x="458" y="20"/> 4550 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_yj6zUl4eEe2rXNsIDUvqhw" x="357" y="24"/>
4286 </children> 4551 </children>
4287 <children xmi:type="notation:Node" xmi:id="_z9rbk14eEe2rXNsIDUvqhw" type="2003" element="_z9nxMF4eEe2rXNsIDUvqhw"> 4552 <children xmi:type="notation:Node" xmi:id="_z9rbk14eEe2rXNsIDUvqhw" type="2003" element="_z9nxMF4eEe2rXNsIDUvqhw">
4288 <children xmi:type="notation:Node" xmi:id="_z9rbll4eEe2rXNsIDUvqhw" type="5007"/> 4553 <children xmi:type="notation:Node" xmi:id="_z9rbll4eEe2rXNsIDUvqhw" type="5007"/>
4289 <children xmi:type="notation:Node" xmi:id="_z9rbl14eEe2rXNsIDUvqhw" type="7004"> 4554 <children xmi:type="notation:Node" xmi:id="_z9rbl14eEe2rXNsIDUvqhw" type="7004">
4290 <children xmi:type="notation:Node" xmi:id="_z9sCp14eEe2rXNsIDUvqhw" type="3010" element="_z9pmZF4eEe2rXNsIDUvqhw">
4291 <styles xmi:type="notation:FontStyle" xmi:id="_z9sCqF4eEe2rXNsIDUvqhw" fontName="Noto Sans" fontHeight="8"/>
4292 <layoutConstraint xmi:type="notation:Location" xmi:id="_z9sCqV4eEe2rXNsIDUvqhw"/>
4293 </children>
4294 <children xmi:type="notation:Node" xmi:id="_z9sCql4eEe2rXNsIDUvqhw" type="3010" element="_z9qNcF4eEe2rXNsIDUvqhw"> 4555 <children xmi:type="notation:Node" xmi:id="_z9sCql4eEe2rXNsIDUvqhw" type="3010" element="_z9qNcF4eEe2rXNsIDUvqhw">
4295 <styles xmi:type="notation:FontStyle" xmi:id="_z9sCq14eEe2rXNsIDUvqhw" fontName="Noto Sans" fontHeight="8"/> 4556 <styles xmi:type="notation:FontStyle" xmi:id="_z9sCq14eEe2rXNsIDUvqhw" fontName="Noto Sans" fontHeight="8"/>
4296 <layoutConstraint xmi:type="notation:Location" xmi:id="_z9sCrF4eEe2rXNsIDUvqhw"/> 4557 <layoutConstraint xmi:type="notation:Location" xmi:id="_z9sCrF4eEe2rXNsIDUvqhw"/>
@@ -4299,7 +4560,7 @@
4299 <styles xmi:type="notation:FilteringStyle" xmi:id="_z9rbmV4eEe2rXNsIDUvqhw"/> 4560 <styles xmi:type="notation:FilteringStyle" xmi:id="_z9rbmV4eEe2rXNsIDUvqhw"/>
4300 </children> 4561 </children>
4301 <styles xmi:type="notation:ShapeStyle" xmi:id="_z9rblF4eEe2rXNsIDUvqhw" fontName="Noto Sans" fontHeight="8"/> 4562 <styles xmi:type="notation:ShapeStyle" xmi:id="_z9rblF4eEe2rXNsIDUvqhw" fontName="Noto Sans" fontHeight="8"/>
4302 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_z9rblV4eEe2rXNsIDUvqhw" x="236" y="176"/> 4563 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_z9rblV4eEe2rXNsIDUvqhw" x="336" y="180"/>
4303 </children> 4564 </children>
4304 <children xmi:type="notation:Node" xmi:id="_z9sCoF4eEe2rXNsIDUvqhw" type="2003" element="_z9oYQF4eEe2rXNsIDUvqhw"> 4565 <children xmi:type="notation:Node" xmi:id="_z9sCoF4eEe2rXNsIDUvqhw" type="2003" element="_z9oYQF4eEe2rXNsIDUvqhw">
4305 <children xmi:type="notation:Node" xmi:id="_z9sCo14eEe2rXNsIDUvqhw" type="5007"/> 4566 <children xmi:type="notation:Node" xmi:id="_z9sCo14eEe2rXNsIDUvqhw" type="5007"/>
@@ -4308,41 +4569,7 @@
4308 <styles xmi:type="notation:FilteringStyle" xmi:id="_z9sCpl4eEe2rXNsIDUvqhw"/> 4569 <styles xmi:type="notation:FilteringStyle" xmi:id="_z9sCpl4eEe2rXNsIDUvqhw"/>
4309 </children> 4570 </children>
4310 <styles xmi:type="notation:ShapeStyle" xmi:id="_z9sCoV4eEe2rXNsIDUvqhw" fontName="Noto Sans" fontHeight="8" italic="true"/> 4571 <styles xmi:type="notation:ShapeStyle" xmi:id="_z9sCoV4eEe2rXNsIDUvqhw" fontName="Noto Sans" fontHeight="8" italic="true"/>
4311 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_z9sCol4eEe2rXNsIDUvqhw" x="248" y="356"/> 4572 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_z9sCol4eEe2rXNsIDUvqhw" x="166" y="356"/>
4312 </children>
4313 <children xmi:type="notation:Node" xmi:id="_52zyJl4eEe2rXNsIDUvqhw" type="2003" element="_52wu0F4eEe2rXNsIDUvqhw">
4314 <children xmi:type="notation:Node" xmi:id="_520ZMF4eEe2rXNsIDUvqhw" type="5007"/>
4315 <children xmi:type="notation:Node" xmi:id="_520ZMV4eEe2rXNsIDUvqhw" type="7004">
4316 <styles xmi:type="notation:SortingStyle" xmi:id="_520ZMl4eEe2rXNsIDUvqhw"/>
4317 <styles xmi:type="notation:FilteringStyle" xmi:id="_520ZM14eEe2rXNsIDUvqhw"/>
4318 </children>
4319 <styles xmi:type="notation:ShapeStyle" xmi:id="_52zyJ14eEe2rXNsIDUvqhw" fontName="Noto Sans" fontHeight="8"/>
4320 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_52zyKF4eEe2rXNsIDUvqhw" x="674" y="176"/>
4321 </children>
4322 <children xmi:type="notation:Node" xmi:id="_7IBiYF4eEe2rXNsIDUvqhw" type="2003" element="_7H9Q8F4eEe2rXNsIDUvqhw">
4323 <children xmi:type="notation:Node" xmi:id="_7IBiY14eEe2rXNsIDUvqhw" type="5007"/>
4324 <children xmi:type="notation:Node" xmi:id="_7IBiZF4eEe2rXNsIDUvqhw" type="7004">
4325 <children xmi:type="notation:Node" xmi:id="_7IBiZ14eEe2rXNsIDUvqhw" type="3010" element="_7H_tM14eEe2rXNsIDUvqhw">
4326 <styles xmi:type="notation:FontStyle" xmi:id="_7IBiaF4eEe2rXNsIDUvqhw" fontName="Noto Sans" fontHeight="8"/>
4327 <layoutConstraint xmi:type="notation:Location" xmi:id="_7IBiaV4eEe2rXNsIDUvqhw"/>
4328 </children>
4329 <children xmi:type="notation:Node" xmi:id="_7IBial4eEe2rXNsIDUvqhw" type="3010" element="_7H_tNV4eEe2rXNsIDUvqhw">
4330 <styles xmi:type="notation:FontStyle" xmi:id="_7IBia14eEe2rXNsIDUvqhw" fontName="Noto Sans" fontHeight="8"/>
4331 <layoutConstraint xmi:type="notation:Location" xmi:id="_7IBibF4eEe2rXNsIDUvqhw"/>
4332 </children>
4333 <children xmi:type="notation:Node" xmi:id="_7ICJcF4eEe2rXNsIDUvqhw" type="3010" element="_7H_tN14eEe2rXNsIDUvqhw">
4334 <styles xmi:type="notation:FontStyle" xmi:id="_7ICJcV4eEe2rXNsIDUvqhw" fontName="Noto Sans" fontHeight="8"/>
4335 <layoutConstraint xmi:type="notation:Location" xmi:id="_7ICJcl4eEe2rXNsIDUvqhw"/>
4336 </children>
4337 <children xmi:type="notation:Node" xmi:id="_7ICJc14eEe2rXNsIDUvqhw" type="3010" element="_7IAUQF4eEe2rXNsIDUvqhw">
4338 <styles xmi:type="notation:FontStyle" xmi:id="_7ICJdF4eEe2rXNsIDUvqhw" fontName="Noto Sans" fontHeight="8"/>
4339 <layoutConstraint xmi:type="notation:Location" xmi:id="_7ICJdV4eEe2rXNsIDUvqhw"/>
4340 </children>
4341 <styles xmi:type="notation:SortingStyle" xmi:id="_7IBiZV4eEe2rXNsIDUvqhw"/>
4342 <styles xmi:type="notation:FilteringStyle" xmi:id="_7IBiZl4eEe2rXNsIDUvqhw"/>
4343 </children>
4344 <styles xmi:type="notation:ShapeStyle" xmi:id="_7IBiYV4eEe2rXNsIDUvqhw" fontName="Noto Sans" fontHeight="8"/>
4345 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7IBiYl4eEe2rXNsIDUvqhw" x="20" y="20"/>
4346 </children> 4573 </children>
4347 <children xmi:type="notation:Node" xmi:id="_A-j38F4fEe2rXNsIDUvqhw" type="2003" element="_A-fmgF4fEe2rXNsIDUvqhw"> 4574 <children xmi:type="notation:Node" xmi:id="_A-j38F4fEe2rXNsIDUvqhw" type="2003" element="_A-fmgF4fEe2rXNsIDUvqhw">
4348 <children xmi:type="notation:Node" xmi:id="_A-j3814fEe2rXNsIDUvqhw" type="5007"/> 4575 <children xmi:type="notation:Node" xmi:id="_A-j3814fEe2rXNsIDUvqhw" type="5007"/>
@@ -4351,20 +4578,7 @@
4351 <styles xmi:type="notation:FilteringStyle" xmi:id="_A-j39l4fEe2rXNsIDUvqhw"/> 4578 <styles xmi:type="notation:FilteringStyle" xmi:id="_A-j39l4fEe2rXNsIDUvqhw"/>
4352 </children> 4579 </children>
4353 <styles xmi:type="notation:ShapeStyle" xmi:id="_A-j38V4fEe2rXNsIDUvqhw" fontName="Noto Sans" fontHeight="8"/> 4580 <styles xmi:type="notation:ShapeStyle" xmi:id="_A-j38V4fEe2rXNsIDUvqhw" fontName="Noto Sans" fontHeight="8"/>
4354 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_A-j38l4fEe2rXNsIDUvqhw" x="377" y="680"/> 4581 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_A-j38l4fEe2rXNsIDUvqhw" x="260" y="684"/>
4355 </children>
4356 <children xmi:type="notation:Node" xmi:id="_ChaKwF4fEe2rXNsIDUvqhw" type="2003" element="_ChUEIF4fEe2rXNsIDUvqhw">
4357 <children xmi:type="notation:Node" xmi:id="_ChaKw14fEe2rXNsIDUvqhw" type="5007"/>
4358 <children xmi:type="notation:Node" xmi:id="_ChaKxF4fEe2rXNsIDUvqhw" type="7004">
4359 <children xmi:type="notation:Node" xmi:id="_59URQF63Ee2rXNsIDUvqhw" type="3010" element="_59AIMF63Ee2rXNsIDUvqhw">
4360 <styles xmi:type="notation:FontStyle" xmi:id="_59URQV63Ee2rXNsIDUvqhw" fontColor="2697711" fontName="Noto Sans" fontHeight="8"/>
4361 <layoutConstraint xmi:type="notation:Location" xmi:id="_59URQl63Ee2rXNsIDUvqhw"/>
4362 </children>
4363 <styles xmi:type="notation:SortingStyle" xmi:id="_ChaKxV4fEe2rXNsIDUvqhw"/>
4364 <styles xmi:type="notation:FilteringStyle" xmi:id="_ChaKxl4fEe2rXNsIDUvqhw"/>
4365 </children>
4366 <styles xmi:type="notation:ShapeStyle" xmi:id="_ChaKwV4fEe2rXNsIDUvqhw" fontName="Noto Sans" fontHeight="8"/>
4367 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ChaKwl4fEe2rXNsIDUvqhw" x="494" y="512"/>
4368 </children> 4582 </children>
4369 <children xmi:type="notation:Node" xmi:id="_ChaKx14fEe2rXNsIDUvqhw" type="2003" element="_ChUrMl4fEe2rXNsIDUvqhw"> 4583 <children xmi:type="notation:Node" xmi:id="_ChaKx14fEe2rXNsIDUvqhw" type="2003" element="_ChUrMl4fEe2rXNsIDUvqhw">
4370 <children xmi:type="notation:Node" xmi:id="_ChaKyl4fEe2rXNsIDUvqhw" type="5007"/> 4584 <children xmi:type="notation:Node" xmi:id="_ChaKyl4fEe2rXNsIDUvqhw" type="5007"/>
@@ -4373,7 +4587,7 @@
4373 <styles xmi:type="notation:FilteringStyle" xmi:id="_ChaKzV4fEe2rXNsIDUvqhw"/> 4587 <styles xmi:type="notation:FilteringStyle" xmi:id="_ChaKzV4fEe2rXNsIDUvqhw"/>
4374 </children> 4588 </children>
4375 <styles xmi:type="notation:ShapeStyle" xmi:id="_ChaKyF4fEe2rXNsIDUvqhw" fontName="Noto Sans" fontHeight="8"/> 4589 <styles xmi:type="notation:ShapeStyle" xmi:id="_ChaKyF4fEe2rXNsIDUvqhw" fontName="Noto Sans" fontHeight="8"/>
4376 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ChaKyV4fEe2rXNsIDUvqhw" x="254" y="512"/> 4590 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ChaKyV4fEe2rXNsIDUvqhw" x="240" y="516" width="159"/>
4377 </children> 4591 </children>
4378 <children xmi:type="notation:Node" xmi:id="_ChaKzl4fEe2rXNsIDUvqhw" type="2003" element="_ChVSQF4fEe2rXNsIDUvqhw"> 4592 <children xmi:type="notation:Node" xmi:id="_ChaKzl4fEe2rXNsIDUvqhw" type="2003" element="_ChVSQF4fEe2rXNsIDUvqhw">
4379 <children xmi:type="notation:Node" xmi:id="_Chax0F4fEe2rXNsIDUvqhw" type="5007"/> 4593 <children xmi:type="notation:Node" xmi:id="_Chax0F4fEe2rXNsIDUvqhw" type="5007"/>
@@ -4382,16 +4596,7 @@
4382 <styles xmi:type="notation:FilteringStyle" xmi:id="_Chax014fEe2rXNsIDUvqhw"/> 4596 <styles xmi:type="notation:FilteringStyle" xmi:id="_Chax014fEe2rXNsIDUvqhw"/>
4383 </children> 4597 </children>
4384 <styles xmi:type="notation:ShapeStyle" xmi:id="_ChaKz14fEe2rXNsIDUvqhw" fontName="Noto Sans" fontHeight="8"/> 4598 <styles xmi:type="notation:ShapeStyle" xmi:id="_ChaKz14fEe2rXNsIDUvqhw" fontName="Noto Sans" fontHeight="8"/>
4385 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ChaK0F4fEe2rXNsIDUvqhw" x="20" y="512"/> 4599 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ChaK0F4fEe2rXNsIDUvqhw" x="20" y="516"/>
4386 </children>
4387 <children xmi:type="notation:Node" xmi:id="_GY-5QF4fEe2rXNsIDUvqhw" type="2003" element="_GY29cF4fEe2rXNsIDUvqhw">
4388 <children xmi:type="notation:Node" xmi:id="_GY-5Q14fEe2rXNsIDUvqhw" type="5007"/>
4389 <children xmi:type="notation:Node" xmi:id="_GY-5RF4fEe2rXNsIDUvqhw" type="7004">
4390 <styles xmi:type="notation:SortingStyle" xmi:id="_GY-5RV4fEe2rXNsIDUvqhw"/>
4391 <styles xmi:type="notation:FilteringStyle" xmi:id="_GY-5Rl4fEe2rXNsIDUvqhw"/>
4392 </children>
4393 <styles xmi:type="notation:ShapeStyle" xmi:id="_GY-5QV4fEe2rXNsIDUvqhw" fontName="Noto Sans" fontHeight="8" italic="true"/>
4394 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GY-5Ql4fEe2rXNsIDUvqhw" x="689" y="680"/>
4395 </children> 4600 </children>
4396 <children xmi:type="notation:Node" xmi:id="_85Kp8GTvEe2qdtyPWAtoxA" type="2003" element="_85G_kGTvEe2qdtyPWAtoxA"> 4601 <children xmi:type="notation:Node" xmi:id="_85Kp8GTvEe2qdtyPWAtoxA" type="2003" element="_85G_kGTvEe2qdtyPWAtoxA">
4397 <children xmi:type="notation:Node" xmi:id="_85Kp82TvEe2qdtyPWAtoxA" type="5007"/> 4602 <children xmi:type="notation:Node" xmi:id="_85Kp82TvEe2qdtyPWAtoxA" type="5007"/>
@@ -4400,22 +4605,91 @@
4400 <styles xmi:type="notation:FilteringStyle" xmi:id="_85Kp9mTvEe2qdtyPWAtoxA"/> 4605 <styles xmi:type="notation:FilteringStyle" xmi:id="_85Kp9mTvEe2qdtyPWAtoxA"/>
4401 </children> 4606 </children>
4402 <styles xmi:type="notation:ShapeStyle" xmi:id="_85Kp8WTvEe2qdtyPWAtoxA" fontName="Noto Sans" fontHeight="8" italic="true"/> 4607 <styles xmi:type="notation:ShapeStyle" xmi:id="_85Kp8WTvEe2qdtyPWAtoxA" fontName="Noto Sans" fontHeight="8" italic="true"/>
4403 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_85Kp8mTvEe2qdtyPWAtoxA" x="20" y="176"/> 4608 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_85Kp8mTvEe2qdtyPWAtoxA" x="44" y="180"/>
4609 </children>
4610 <children xmi:type="notation:Node" xmi:id="_IhNHMGgpEe24RpwpWgpkFQ" type="2003" element="_IhJc0GgpEe24RpwpWgpkFQ">
4611 <children xmi:type="notation:Node" xmi:id="_IhNHM2gpEe24RpwpWgpkFQ" type="5007"/>
4612 <children xmi:type="notation:Node" xmi:id="_IhNHNGgpEe24RpwpWgpkFQ" type="7004">
4613 <styles xmi:type="notation:SortingStyle" xmi:id="_IhNHNWgpEe24RpwpWgpkFQ"/>
4614 <styles xmi:type="notation:FilteringStyle" xmi:id="_IhNHNmgpEe24RpwpWgpkFQ"/>
4615 </children>
4616 <styles xmi:type="notation:ShapeStyle" xmi:id="_IhNHMWgpEe24RpwpWgpkFQ" fontName="Noto Sans" fontHeight="8" italic="true"/>
4617 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_IhNHMmgpEe24RpwpWgpkFQ" x="674" y="684"/>
4618 </children>
4619 <children xmi:type="notation:Node" xmi:id="_8CJxQGhDEe2gzfo0wfORyw" type="2003" element="_8BPLQGhDEe2gzfo0wfORyw">
4620 <children xmi:type="notation:Node" xmi:id="_8COCsGhDEe2gzfo0wfORyw" type="5007"/>
4621 <children xmi:type="notation:Node" xmi:id="_8COpwGhDEe2gzfo0wfORyw" type="7004">
4622 <styles xmi:type="notation:SortingStyle" xmi:id="_8COpwWhDEe2gzfo0wfORyw"/>
4623 <styles xmi:type="notation:FilteringStyle" xmi:id="_8COpwmhDEe2gzfo0wfORyw"/>
4624 </children>
4625 <styles xmi:type="notation:ShapeStyle" xmi:id="_8CJxQWhDEe2gzfo0wfORyw" fontName="Noto Sans" fontHeight="8"/>
4626 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8CJxQmhDEe2gzfo0wfORyw" x="576" y="348" width="120" height="100"/>
4627 </children>
4628 <children xmi:type="notation:Node" xmi:id="__veXkGhDEe2gzfo0wfORyw" type="2003" element="__vBEkGhDEe2gzfo0wfORyw">
4629 <children xmi:type="notation:Node" xmi:id="__veXk2hDEe2gzfo0wfORyw" type="5007"/>
4630 <children xmi:type="notation:Node" xmi:id="__veXlGhDEe2gzfo0wfORyw" type="7004">
4631 <children xmi:type="notation:Node" xmi:id="_NBj4sGhEEe2gzfo0wfORyw" type="3010" element="_NA-p4GhEEe2gzfo0wfORyw">
4632 <styles xmi:type="notation:FontStyle" xmi:id="_NBj4sWhEEe2gzfo0wfORyw" fontColor="2697711" fontName="Noto Sans" fontHeight="8"/>
4633 <layoutConstraint xmi:type="notation:Location" xmi:id="_NBj4smhEEe2gzfo0wfORyw"/>
4634 </children>
4635 <styles xmi:type="notation:SortingStyle" xmi:id="__veXlWhDEe2gzfo0wfORyw"/>
4636 <styles xmi:type="notation:FilteringStyle" xmi:id="__veXlmhDEe2gzfo0wfORyw"/>
4637 </children>
4638 <styles xmi:type="notation:ShapeStyle" xmi:id="__veXkWhDEe2gzfo0wfORyw" fontName="Noto Sans" fontHeight="8"/>
4639 <layoutConstraint xmi:type="notation:Bounds" xmi:id="__veXkmhDEe2gzfo0wfORyw" x="468" y="516" width="135" height="100"/>
4640 </children>
4641 <children xmi:type="notation:Node" xmi:id="_CDdMYGhEEe2gzfo0wfORyw" type="2003" element="_CCxP4GhEEe2gzfo0wfORyw">
4642 <children xmi:type="notation:Node" xmi:id="_CDdzcmhEEe2gzfo0wfORyw" type="5007"/>
4643 <children xmi:type="notation:Node" xmi:id="_CDdzc2hEEe2gzfo0wfORyw" type="7004">
4644 <children xmi:type="notation:Node" xmi:id="_rVyFIGhEEe2gzfo0wfORyw" type="3010" element="_rVH90GhEEe2gzfo0wfORyw">
4645 <styles xmi:type="notation:FontStyle" xmi:id="_rVyFIWhEEe2gzfo0wfORyw" fontColor="2697711" fontName="Noto Sans" fontHeight="8"/>
4646 <layoutConstraint xmi:type="notation:Location" xmi:id="_rVyFImhEEe2gzfo0wfORyw"/>
4647 </children>
4648 <styles xmi:type="notation:SortingStyle" xmi:id="_CDdzdGhEEe2gzfo0wfORyw"/>
4649 <styles xmi:type="notation:FilteringStyle" xmi:id="_CDdzdWhEEe2gzfo0wfORyw"/>
4650 </children>
4651 <styles xmi:type="notation:ShapeStyle" xmi:id="_CDdzcGhEEe2gzfo0wfORyw" fontName="Noto Sans" fontHeight="8"/>
4652 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CDdzcWhEEe2gzfo0wfORyw" x="660" y="516" width="147" height="100"/>
4653 </children>
4654 <children xmi:type="notation:Node" xmi:id="_L2dXgGhEEe2gzfo0wfORyw" type="2003" element="_L2YfAGhEEe2gzfo0wfORyw">
4655 <children xmi:type="notation:Node" xmi:id="_L2d-kGhEEe2gzfo0wfORyw" type="5007"/>
4656 <children xmi:type="notation:Node" xmi:id="_L2d-kWhEEe2gzfo0wfORyw" type="7004">
4657 <children xmi:type="notation:Node" xmi:id="_L2eloGhEEe2gzfo0wfORyw" type="3010" element="_L2a7Q2hEEe2gzfo0wfORyw">
4658 <styles xmi:type="notation:FontStyle" xmi:id="_L2eloWhEEe2gzfo0wfORyw" fontName="Noto Sans" fontHeight="8"/>
4659 <layoutConstraint xmi:type="notation:Location" xmi:id="_L2elomhEEe2gzfo0wfORyw"/>
4660 </children>
4661 <children xmi:type="notation:Node" xmi:id="_L2elo2hEEe2gzfo0wfORyw" type="3010" element="_L2a7RWhEEe2gzfo0wfORyw">
4662 <styles xmi:type="notation:FontStyle" xmi:id="_L2elpGhEEe2gzfo0wfORyw" fontName="Noto Sans" fontHeight="8"/>
4663 <layoutConstraint xmi:type="notation:Location" xmi:id="_L2elpWhEEe2gzfo0wfORyw"/>
4664 </children>
4665 <children xmi:type="notation:Node" xmi:id="_L2elpmhEEe2gzfo0wfORyw" type="3010" element="_L2biUWhEEe2gzfo0wfORyw">
4666 <styles xmi:type="notation:FontStyle" xmi:id="_L2elp2hEEe2gzfo0wfORyw" fontName="Noto Sans" fontHeight="8"/>
4667 <layoutConstraint xmi:type="notation:Location" xmi:id="_L2elqGhEEe2gzfo0wfORyw"/>
4668 </children>
4669 <children xmi:type="notation:Node" xmi:id="_L2elqWhEEe2gzfo0wfORyw" type="3010" element="_L2biU2hEEe2gzfo0wfORyw">
4670 <styles xmi:type="notation:FontStyle" xmi:id="_L2fMsGhEEe2gzfo0wfORyw" fontName="Noto Sans" fontHeight="8"/>
4671 <layoutConstraint xmi:type="notation:Location" xmi:id="_L2fMsWhEEe2gzfo0wfORyw"/>
4672 </children>
4673 <styles xmi:type="notation:SortingStyle" xmi:id="_L2d-kmhEEe2gzfo0wfORyw"/>
4674 <styles xmi:type="notation:FilteringStyle" xmi:id="_L2d-k2hEEe2gzfo0wfORyw"/>
4675 </children>
4676 <styles xmi:type="notation:ShapeStyle" xmi:id="_L2dXgWhEEe2gzfo0wfORyw" fontName="Noto Sans" fontHeight="8"/>
4677 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_L2dXgmhEEe2gzfo0wfORyw" x="476" y="684"/>
4404 </children> 4678 </children>
4405 <styles xmi:type="notation:DiagramStyle" xmi:id="_xkD40l4eEe2rXNsIDUvqhw"/> 4679 <styles xmi:type="notation:DiagramStyle" xmi:id="_xkD40l4eEe2rXNsIDUvqhw"/>
4406 <edges xmi:type="notation:Edge" xmi:id="_z9sps14eEe2rXNsIDUvqhw" type="4001" element="_z9q0gF4eEe2rXNsIDUvqhw" source="_z9rbk14eEe2rXNsIDUvqhw" target="_z9sCoF4eEe2rXNsIDUvqhw"> 4680 <edges xmi:type="notation:Edge" xmi:id="_z9sps14eEe2rXNsIDUvqhw" type="4001" element="_z9q0gF4eEe2rXNsIDUvqhw" source="_z9rbk14eEe2rXNsIDUvqhw" target="_z9sCoF4eEe2rXNsIDUvqhw">
4407 <children xmi:type="notation:Node" xmi:id="_z9spt14eEe2rXNsIDUvqhw" type="6001"> 4681 <children xmi:type="notation:Node" xmi:id="_z9spt14eEe2rXNsIDUvqhw" type="6001">
4408 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_z9spuF4eEe2rXNsIDUvqhw" x="1"/> 4682 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_z9spuF4eEe2rXNsIDUvqhw" x="-10" y="12"/>
4409 </children> 4683 </children>
4410 <children xmi:type="notation:Node" xmi:id="_z9spuV4eEe2rXNsIDUvqhw" type="6002"> 4684 <children xmi:type="notation:Node" xmi:id="_z9spuV4eEe2rXNsIDUvqhw" type="6002">
4411 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_z9spul4eEe2rXNsIDUvqhw" x="55"/> 4685 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_z9spul4eEe2rXNsIDUvqhw" x="5"/>
4412 </children> 4686 </children>
4413 <children xmi:type="notation:Node" xmi:id="_z9spu14eEe2rXNsIDUvqhw" type="6003"> 4687 <children xmi:type="notation:Node" xmi:id="_z9spu14eEe2rXNsIDUvqhw" type="6003">
4414 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_z9spvF4eEe2rXNsIDUvqhw" x="4"/> 4688 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_z9spvF4eEe2rXNsIDUvqhw" x="-46"/>
4415 </children> 4689 </children>
4416 <styles xmi:type="notation:ConnectorStyle" xmi:id="_z9sptF4eEe2rXNsIDUvqhw" routing="Rectilinear"/> 4690 <styles xmi:type="notation:ConnectorStyle" xmi:id="_z9sptF4eEe2rXNsIDUvqhw" routing="Rectilinear"/>
4417 <styles xmi:type="notation:FontStyle" xmi:id="_z9sptV4eEe2rXNsIDUvqhw" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/> 4691 <styles xmi:type="notation:FontStyle" xmi:id="_z9sptV4eEe2rXNsIDUvqhw" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/>
4418 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_z9sptl4eEe2rXNsIDUvqhw" points="[0, 49, 8, -131]$[0, 131, 8, -49]"/> 4692 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_z9sptl4eEe2rXNsIDUvqhw" points="[-43, 49, 147, -127]$[-43, 95, 147, -81]$[-189, 95, 1, -81]$[-189, 127, 1, -49]"/>
4419 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_z9spvV4eEe2rXNsIDUvqhw" id="(0.5,0.5)"/> 4693 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_z9spvV4eEe2rXNsIDUvqhw" id="(0.5,0.5)"/>
4420 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_z9spvl4eEe2rXNsIDUvqhw" id="(0.5,0.5)"/> 4694 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_z9spvl4eEe2rXNsIDUvqhw" id="(0.5,0.5)"/>
4421 </edges> 4695 </edges>
@@ -4432,89 +4706,25 @@
4432 <styles xmi:type="notation:ConnectorStyle" xmi:id="_z9spwF4eEe2rXNsIDUvqhw" routing="Tree"/> 4706 <styles xmi:type="notation:ConnectorStyle" xmi:id="_z9spwF4eEe2rXNsIDUvqhw" routing="Tree"/>
4433 <styles xmi:type="notation:FontStyle" xmi:id="_z9spwV4eEe2rXNsIDUvqhw" fontName="Noto Sans" fontHeight="8"/> 4707 <styles xmi:type="notation:FontStyle" xmi:id="_z9spwV4eEe2rXNsIDUvqhw" fontName="Noto Sans" fontHeight="8"/>
4434 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_z9spwl4eEe2rXNsIDUvqhw" points="[0, 0, -71, 555]$[71, -555, 0, 0]"/> 4708 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_z9spwl4eEe2rXNsIDUvqhw" points="[0, 0, -71, 555]$[71, -555, 0, 0]"/>
4435 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_z9tQxF4eEe2rXNsIDUvqhw" id="(0.5,0.5)"/> 4709 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_z9tQxF4eEe2rXNsIDUvqhw" id="(0.3522012578616352,0.05102040816326531)"/>
4436 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_z9tQxV4eEe2rXNsIDUvqhw" id="(0.5,0.5)"/> 4710 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_z9tQxV4eEe2rXNsIDUvqhw" id="(0.5,0.5)"/>
4437 </edges> 4711 </edges>
4438 <edges xmi:type="notation:Edge" xmi:id="_520ZOl4eEe2rXNsIDUvqhw" type="4001" element="_52zLHV4eEe2rXNsIDUvqhw" source="_52zyJl4eEe2rXNsIDUvqhw" target="_yj6zUF4eEe2rXNsIDUvqhw">
4439 <children xmi:type="notation:Node" xmi:id="_520ZPl4eEe2rXNsIDUvqhw" type="6001">
4440 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_520ZP14eEe2rXNsIDUvqhw" y="-10"/>
4441 </children>
4442 <children xmi:type="notation:Node" xmi:id="_520ZQF4eEe2rXNsIDUvqhw" type="6002">
4443 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_520ZQV4eEe2rXNsIDUvqhw" y="10"/>
4444 </children>
4445 <children xmi:type="notation:Node" xmi:id="_520ZQl4eEe2rXNsIDUvqhw" type="6003">
4446 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_520ZQ14eEe2rXNsIDUvqhw" y="10"/>
4447 </children>
4448 <styles xmi:type="notation:ConnectorStyle" xmi:id="_520ZO14eEe2rXNsIDUvqhw" routing="Tree"/>
4449 <styles xmi:type="notation:FontStyle" xmi:id="_520ZPF4eEe2rXNsIDUvqhw" fontName="Noto Sans" fontHeight="8"/>
4450 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_520ZPV4eEe2rXNsIDUvqhw" points="[-39, -50, 286, 373]$[-325, -422, 0, 1]"/>
4451 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_521AQF4eEe2rXNsIDUvqhw" id="(0.5,0.5)"/>
4452 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_521AQV4eEe2rXNsIDUvqhw" id="(0.5,0.5)"/>
4453 </edges>
4454 <edges xmi:type="notation:Edge" xmi:id="_A-kfAF4fEe2rXNsIDUvqhw" type="4001" element="_A-ip3l4fEe2rXNsIDUvqhw" source="_52zyJl4eEe2rXNsIDUvqhw" target="_A-j38F4fEe2rXNsIDUvqhw">
4455 <children xmi:type="notation:Node" xmi:id="_A-kfBF4fEe2rXNsIDUvqhw" type="6001">
4456 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_A-kfBV4fEe2rXNsIDUvqhw" x="-131" y="-171"/>
4457 </children>
4458 <children xmi:type="notation:Node" xmi:id="_A-kfBl4fEe2rXNsIDUvqhw" type="6002">
4459 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_A-kfB14fEe2rXNsIDUvqhw" x="9" y="-10"/>
4460 </children>
4461 <children xmi:type="notation:Node" xmi:id="_A-kfCF4fEe2rXNsIDUvqhw" type="6003">
4462 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_A-kfCV4fEe2rXNsIDUvqhw" x="-119"/>
4463 </children>
4464 <styles xmi:type="notation:ConnectorStyle" xmi:id="_A-kfAV4fEe2rXNsIDUvqhw" routing="Rectilinear"/>
4465 <styles xmi:type="notation:FontStyle" xmi:id="_A-kfAl4fEe2rXNsIDUvqhw" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/>
4466 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_A-kfA14fEe2rXNsIDUvqhw" points="[-61, 1, 238, -503]$[-289, 1, 10, -503]$[-289, 455, 10, -49]"/>
4467 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_A-lGEF4fEe2rXNsIDUvqhw" id="(0.5,0.5)"/>
4468 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_A-lGEV4fEe2rXNsIDUvqhw" id="(0.5,0.5)"/>
4469 </edges>
4470 <edges xmi:type="notation:Edge" xmi:id="_Chax114fEe2rXNsIDUvqhw" type="4001" element="_ChYVol4fEe2rXNsIDUvqhw" source="_ChaKwF4fEe2rXNsIDUvqhw" target="_A-j38F4fEe2rXNsIDUvqhw">
4471 <children xmi:type="notation:Node" xmi:id="_Chax214fEe2rXNsIDUvqhw" type="6001">
4472 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Chax3F4fEe2rXNsIDUvqhw" x="-58" y="38"/>
4473 </children>
4474 <children xmi:type="notation:Node" xmi:id="_Chax3V4fEe2rXNsIDUvqhw" type="6002">
4475 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Chax3l4fEe2rXNsIDUvqhw" x="67" y="-39"/>
4476 </children>
4477 <children xmi:type="notation:Node" xmi:id="_Chax314fEe2rXNsIDUvqhw" type="6003">
4478 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Chax4F4fEe2rXNsIDUvqhw" x="-32" y="84"/>
4479 </children>
4480 <styles xmi:type="notation:ConnectorStyle" xmi:id="_Chax2F4fEe2rXNsIDUvqhw" routing="Rectilinear"/>
4481 <styles xmi:type="notation:FontStyle" xmi:id="_Chax2V4fEe2rXNsIDUvqhw" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/>
4482 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Chax2l4fEe2rXNsIDUvqhw" points="[-23, 49, 118, -119]$[-23, 167, 118, -1]$[-82, 167, 59, -1]"/>
4483 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ChbY4F4fEe2rXNsIDUvqhw" id="(0.5,0.5)"/>
4484 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ChbY4V4fEe2rXNsIDUvqhw" id="(0.5,0.5)"/>
4485 </edges>
4486 <edges xmi:type="notation:Edge" xmi:id="_ChbY4l4fEe2rXNsIDUvqhw" type="4001" element="_ChYVqV4fEe2rXNsIDUvqhw" source="_ChaKx14fEe2rXNsIDUvqhw" target="_A-j38F4fEe2rXNsIDUvqhw"> 4712 <edges xmi:type="notation:Edge" xmi:id="_ChbY4l4fEe2rXNsIDUvqhw" type="4001" element="_ChYVqV4fEe2rXNsIDUvqhw" source="_ChaKx14fEe2rXNsIDUvqhw" target="_A-j38F4fEe2rXNsIDUvqhw">
4487 <children xmi:type="notation:Node" xmi:id="_ChbY5l4fEe2rXNsIDUvqhw" type="6001"> 4713 <children xmi:type="notation:Node" xmi:id="_ChbY5l4fEe2rXNsIDUvqhw" type="6001">
4488 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ChbY514fEe2rXNsIDUvqhw" x="-54" y="34"/> 4714 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ChbY514fEe2rXNsIDUvqhw" x="-5" y="34"/>
4489 </children> 4715 </children>
4490 <children xmi:type="notation:Node" xmi:id="_ChbY6F4fEe2rXNsIDUvqhw" type="6002"> 4716 <children xmi:type="notation:Node" xmi:id="_ChbY6F4fEe2rXNsIDUvqhw" type="6002">
4491 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ChbY6V4fEe2rXNsIDUvqhw" x="10" y="-4"/> 4717 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ChbY6V4fEe2rXNsIDUvqhw" x="25" y="-4"/>
4492 </children> 4718 </children>
4493 <children xmi:type="notation:Node" xmi:id="_ChbY6l4fEe2rXNsIDUvqhw" type="6003"> 4719 <children xmi:type="notation:Node" xmi:id="_ChbY6l4fEe2rXNsIDUvqhw" type="6003">
4494 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ChbY614fEe2rXNsIDUvqhw" x="-14" y="-78"/> 4720 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ChbY614fEe2rXNsIDUvqhw" x="-19" y="-10"/>
4495 </children> 4721 </children>
4496 <styles xmi:type="notation:ConnectorStyle" xmi:id="_ChbY414fEe2rXNsIDUvqhw" routing="Rectilinear"/> 4722 <styles xmi:type="notation:ConnectorStyle" xmi:id="_ChbY414fEe2rXNsIDUvqhw" routing="Rectilinear"/>
4497 <styles xmi:type="notation:FontStyle" xmi:id="_ChbY5F4fEe2rXNsIDUvqhw" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/> 4723 <styles xmi:type="notation:FontStyle" xmi:id="_ChbY5F4fEe2rXNsIDUvqhw" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/>
4498 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ChbY5V4fEe2rXNsIDUvqhw" points="[0, 49, -84, -74]$[0, 167, -84, 44]$[50, 167, -34, 44]"/> 4724 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ChbY5V4fEe2rXNsIDUvqhw" points="[5, 49, 24, -74]$[5, 119, 24, -4]"/>
4499 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ChbY7F4fEe2rXNsIDUvqhw" id="(0.5,0.5)"/> 4725 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ChbY7F4fEe2rXNsIDUvqhw" id="(0.4681528662420382,0.5)"/>
4500 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ChbY7V4fEe2rXNsIDUvqhw" id="(0.288135593220339,0.04081632653061224)"/> 4726 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ChbY7V4fEe2rXNsIDUvqhw" id="(0.288135593220339,0.04081632653061224)"/>
4501 </edges> 4727 </edges>
4502 <edges xmi:type="notation:Edge" xmi:id="_Chb_8F4fEe2rXNsIDUvqhw" type="4001" element="_ChY8sl4fEe2rXNsIDUvqhw" source="_ChaKwF4fEe2rXNsIDUvqhw" target="_z9sCoF4eEe2rXNsIDUvqhw">
4503 <children xmi:type="notation:Node" xmi:id="_Chb_9F4fEe2rXNsIDUvqhw" type="6001">
4504 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Chb_9V4fEe2rXNsIDUvqhw" y="-10"/>
4505 </children>
4506 <children xmi:type="notation:Node" xmi:id="_Chb_9l4fEe2rXNsIDUvqhw" type="6002">
4507 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Chb_914fEe2rXNsIDUvqhw" y="10"/>
4508 </children>
4509 <children xmi:type="notation:Node" xmi:id="_ChcnAF4fEe2rXNsIDUvqhw" type="6003">
4510 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ChcnAV4fEe2rXNsIDUvqhw" y="10"/>
4511 </children>
4512 <styles xmi:type="notation:ConnectorStyle" xmi:id="_Chb_8V4fEe2rXNsIDUvqhw" routing="Tree"/>
4513 <styles xmi:type="notation:FontStyle" xmi:id="_Chb_8l4fEe2rXNsIDUvqhw" fontName="Noto Sans" fontHeight="8"/>
4514 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Chb_814fEe2rXNsIDUvqhw" points="[-60, -28, 421, 191]$[-479, -218, 2, 1]"/>
4515 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ChcnAl4fEe2rXNsIDUvqhw" id="(0.5,0.5)"/>
4516 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ChcnA14fEe2rXNsIDUvqhw" id="(0.5,0.5)"/>
4517 </edges>
4518 <edges xmi:type="notation:Edge" xmi:id="_ChcnBF4fEe2rXNsIDUvqhw" type="4001" element="_ChY8uV4fEe2rXNsIDUvqhw" source="_ChaKx14fEe2rXNsIDUvqhw" target="_z9sCoF4eEe2rXNsIDUvqhw"> 4728 <edges xmi:type="notation:Edge" xmi:id="_ChcnBF4fEe2rXNsIDUvqhw" type="4001" element="_ChY8uV4fEe2rXNsIDUvqhw" source="_ChaKx14fEe2rXNsIDUvqhw" target="_z9sCoF4eEe2rXNsIDUvqhw">
4519 <children xmi:type="notation:Node" xmi:id="_ChcnCF4fEe2rXNsIDUvqhw" type="6001"> 4729 <children xmi:type="notation:Node" xmi:id="_ChcnCF4fEe2rXNsIDUvqhw" type="6001">
4520 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ChcnCV4fEe2rXNsIDUvqhw" y="-10"/> 4730 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ChcnCV4fEe2rXNsIDUvqhw" y="-10"/>
@@ -4528,7 +4738,7 @@
4528 <styles xmi:type="notation:ConnectorStyle" xmi:id="_ChcnBV4fEe2rXNsIDUvqhw" routing="Tree"/> 4738 <styles xmi:type="notation:ConnectorStyle" xmi:id="_ChcnBV4fEe2rXNsIDUvqhw" routing="Tree"/>
4529 <styles xmi:type="notation:FontStyle" xmi:id="_ChcnBl4fEe2rXNsIDUvqhw" fontName="Noto Sans" fontHeight="8"/> 4739 <styles xmi:type="notation:FontStyle" xmi:id="_ChcnBl4fEe2rXNsIDUvqhw" fontName="Noto Sans" fontHeight="8"/>
4530 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ChcnB14fEe2rXNsIDUvqhw" points="[-60, -29, 433, 202]$[-491, -230, 2, 1]"/> 4740 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ChcnB14fEe2rXNsIDUvqhw" points="[-60, -29, 433, 202]$[-491, -230, 2, 1]"/>
4531 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ChdOEF4fEe2rXNsIDUvqhw" id="(0.5,0.5)"/> 4741 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ChdOEF4fEe2rXNsIDUvqhw" id="(0.4681528662420382,0.5)"/>
4532 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ChdOEV4fEe2rXNsIDUvqhw" id="(0.5,0.5)"/> 4742 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ChdOEV4fEe2rXNsIDUvqhw" id="(0.5,0.5)"/>
4533 </edges> 4743 </edges>
4534 <edges xmi:type="notation:Edge" xmi:id="_ChdOEl4fEe2rXNsIDUvqhw" type="4001" element="_ChZjtl4fEe2rXNsIDUvqhw" source="_ChaKzl4fEe2rXNsIDUvqhw" target="_z9sCoF4eEe2rXNsIDUvqhw"> 4744 <edges xmi:type="notation:Edge" xmi:id="_ChdOEl4fEe2rXNsIDUvqhw" type="4001" element="_ChZjtl4fEe2rXNsIDUvqhw" source="_ChaKzl4fEe2rXNsIDUvqhw" target="_z9sCoF4eEe2rXNsIDUvqhw">
@@ -4547,54 +4757,86 @@
4547 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ChdOHF4fEe2rXNsIDUvqhw" id="(0.5,0.5)"/> 4757 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ChdOHF4fEe2rXNsIDUvqhw" id="(0.5,0.5)"/>
4548 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ChdOHV4fEe2rXNsIDUvqhw" id="(0.5,0.5)"/> 4758 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ChdOHV4fEe2rXNsIDUvqhw" id="(0.5,0.5)"/>
4549 </edges> 4759 </edges>
4550 <edges xmi:type="notation:Edge" xmi:id="_GY_gUF4fEe2rXNsIDUvqhw" type="4001" element="_GY8dDF4fEe2rXNsIDUvqhw" source="_52zyJl4eEe2rXNsIDUvqhw" target="_GY-5QF4fEe2rXNsIDUvqhw">
4551 <children xmi:type="notation:Node" xmi:id="_GY_gVF4fEe2rXNsIDUvqhw" type="6001">
4552 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GY_gVV4fEe2rXNsIDUvqhw" x="-181" y="-37"/>
4553 </children>
4554 <children xmi:type="notation:Node" xmi:id="_GY_gVl4fEe2rXNsIDUvqhw" type="6002">
4555 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GY_gV14fEe2rXNsIDUvqhw" x="-50" y="10"/>
4556 </children>
4557 <children xmi:type="notation:Node" xmi:id="_GY_gWF4fEe2rXNsIDUvqhw" type="6003">
4558 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GY_gWV4fEe2rXNsIDUvqhw" x="47" y="10"/>
4559 </children>
4560 <styles xmi:type="notation:ConnectorStyle" xmi:id="_GY_gUV4fEe2rXNsIDUvqhw" routing="Rectilinear"/>
4561 <styles xmi:type="notation:FontStyle" xmi:id="_GY_gUl4fEe2rXNsIDUvqhw" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/>
4562 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GY_gU14fEe2rXNsIDUvqhw" points="[12, 49, -1, -455]$[12, 455, -1, -49]"/>
4563 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GZAHYF4fEe2rXNsIDUvqhw" id="(0.5,0.5)"/>
4564 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GZAHYV4fEe2rXNsIDUvqhw" id="(0.5,0.5)"/>
4565 </edges>
4566 <edges xmi:type="notation:Edge" xmi:id="_GZAHYl4fEe2rXNsIDUvqhw" type="4001" element="_GY9EE14fEe2rXNsIDUvqhw" source="_ChaKwF4fEe2rXNsIDUvqhw" target="_GY-5QF4fEe2rXNsIDUvqhw">
4567 <children xmi:type="notation:Node" xmi:id="_GZAHZl4fEe2rXNsIDUvqhw" type="6001">
4568 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GZAHZ14fEe2rXNsIDUvqhw" x="-79" y="-48"/>
4569 </children>
4570 <children xmi:type="notation:Node" xmi:id="_GZAHaF4fEe2rXNsIDUvqhw" type="6002">
4571 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GZAHaV4fEe2rXNsIDUvqhw" x="3"/>
4572 </children>
4573 <children xmi:type="notation:Node" xmi:id="_GZAHal4fEe2rXNsIDUvqhw" type="6003">
4574 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GZAHa14fEe2rXNsIDUvqhw" x="-36" y="10"/>
4575 </children>
4576 <styles xmi:type="notation:ConnectorStyle" xmi:id="_GZAHY14fEe2rXNsIDUvqhw" routing="Rectilinear"/>
4577 <styles xmi:type="notation:FontStyle" xmi:id="_GZAHZF4fEe2rXNsIDUvqhw" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/>
4578 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GZAHZV4fEe2rXNsIDUvqhw" points="[13, 49, -158, -119]$[13, 169, -158, 1]$[112, 169, -59, 1]"/>
4579 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GZAHbF4fEe2rXNsIDUvqhw" id="(0.5,0.5)"/>
4580 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GZAHbV4fEe2rXNsIDUvqhw" id="(0.5,0.5)"/>
4581 </edges>
4582 <edges xmi:type="notation:Edge" xmi:id="_AUVwUGTwEe2qdtyPWAtoxA" type="4001" element="_AUF41GTwEe2qdtyPWAtoxA" source="_z9rbk14eEe2rXNsIDUvqhw" target="_85Kp8GTvEe2qdtyPWAtoxA"> 4760 <edges xmi:type="notation:Edge" xmi:id="_AUVwUGTwEe2qdtyPWAtoxA" type="4001" element="_AUF41GTwEe2qdtyPWAtoxA" source="_z9rbk14eEe2rXNsIDUvqhw" target="_85Kp8GTvEe2qdtyPWAtoxA">
4583 <children xmi:type="notation:Node" xmi:id="_AUVwVGTwEe2qdtyPWAtoxA" type="6001"> 4761 <children xmi:type="notation:Node" xmi:id="_AUVwVGTwEe2qdtyPWAtoxA" type="6001">
4584 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AUVwVWTwEe2qdtyPWAtoxA" y="-10"/> 4762 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AUVwVWTwEe2qdtyPWAtoxA" x="-1" y="16"/>
4585 </children> 4763 </children>
4586 <children xmi:type="notation:Node" xmi:id="_AUVwVmTwEe2qdtyPWAtoxA" type="6002"> 4764 <children xmi:type="notation:Node" xmi:id="_AUVwVmTwEe2qdtyPWAtoxA" type="6002">
4587 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AUVwV2TwEe2qdtyPWAtoxA" y="10"/> 4765 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AUVwV2TwEe2qdtyPWAtoxA" x="-12" y="10"/>
4588 </children> 4766 </children>
4589 <children xmi:type="notation:Node" xmi:id="_AUVwWGTwEe2qdtyPWAtoxA" type="6003"> 4767 <children xmi:type="notation:Node" xmi:id="_AUVwWGTwEe2qdtyPWAtoxA" type="6003">
4590 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AUVwWWTwEe2qdtyPWAtoxA" y="10"/> 4768 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_AUVwWWTwEe2qdtyPWAtoxA" x="-64" y="10"/>
4591 </children> 4769 </children>
4592 <styles xmi:type="notation:ConnectorStyle" xmi:id="_AUVwUWTwEe2qdtyPWAtoxA" routing="Rectilinear"/> 4770 <styles xmi:type="notation:ConnectorStyle" xmi:id="_AUVwUWTwEe2qdtyPWAtoxA" routing="Rectilinear"/>
4593 <styles xmi:type="notation:FontStyle" xmi:id="_AUVwUmTwEe2qdtyPWAtoxA" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/> 4771 <styles xmi:type="notation:FontStyle" xmi:id="_AUVwUmTwEe2qdtyPWAtoxA" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/>
4594 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_AUVwU2TwEe2qdtyPWAtoxA" points="[0, 42, 98, 42]$[-98, 42, 0, 42]"/> 4772 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_AUVwU2TwEe2qdtyPWAtoxA" points="[0, 42, 174, 42]$[-174, 42, 0, 42]"/>
4595 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AUWXYGTwEe2qdtyPWAtoxA" id="(0.0,0.061224489795918366)"/> 4773 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AUWXYGTwEe2qdtyPWAtoxA" id="(0.0,0.061224489795918366)"/>
4596 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AUWXYWTwEe2qdtyPWAtoxA" id="(1.0,0.061224489795918366)"/> 4774 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_AUWXYWTwEe2qdtyPWAtoxA" id="(1.0,0.061224489795918366)"/>
4597 </edges> 4775 </edges>
4776 <edges xmi:type="notation:Edge" xmi:id="_9Qz8wGhDEe2gzfo0wfORyw" type="4001" element="_CxoVTGgpEe24RpwpWgpkFQ" source="_z9rbk14eEe2rXNsIDUvqhw" target="_8CJxQGhDEe2gzfo0wfORyw">
4777 <children xmi:type="notation:Node" xmi:id="_9Q0j0GhDEe2gzfo0wfORyw" type="6001">
4778 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9Q0j0WhDEe2gzfo0wfORyw" x="-32" y="-16"/>
4779 </children>
4780 <children xmi:type="notation:Node" xmi:id="_9Q1K4GhDEe2gzfo0wfORyw" type="6002">
4781 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9Q1K4WhDEe2gzfo0wfORyw" x="9" y="10"/>
4782 </children>
4783 <children xmi:type="notation:Node" xmi:id="_9Q1K4mhDEe2gzfo0wfORyw" type="6003">
4784 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9Q1K42hDEe2gzfo0wfORyw" x="4" y="14"/>
4785 </children>
4786 <styles xmi:type="notation:ConnectorStyle" xmi:id="_9Qz8wWhDEe2gzfo0wfORyw" routing="Rectilinear"/>
4787 <styles xmi:type="notation:FontStyle" xmi:id="_9Qz8wmhDEe2gzfo0wfORyw" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/>
4788 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9Qz8w2hDEe2gzfo0wfORyw" points="[13, 0, -175, -73]$[13, 46, -175, -27]$[191, 46, 3, -27]$[191, 70, 3, -3]"/>
4789 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9Q3nIGhDEe2gzfo0wfORyw" id="(0.6792452830188679,1.0)"/>
4790 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_9Q4OMGhDEe2gzfo0wfORyw" id="(0.4661016949152542,0.030612244897959183)"/>
4791 </edges>
4792 <edges xmi:type="notation:Edge" xmi:id="_FXFgUGhEEe2gzfo0wfORyw" type="4001" element="_FWwwQmhEEe2gzfo0wfORyw" source="__veXkGhDEe2gzfo0wfORyw" target="_8CJxQGhDEe2gzfo0wfORyw">
4793 <children xmi:type="notation:Node" xmi:id="_FXFgVGhEEe2gzfo0wfORyw" type="6001">
4794 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FXFgVWhEEe2gzfo0wfORyw" y="-10"/>
4795 </children>
4796 <children xmi:type="notation:Node" xmi:id="_FXFgVmhEEe2gzfo0wfORyw" type="6002">
4797 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FXFgV2hEEe2gzfo0wfORyw" y="10"/>
4798 </children>
4799 <children xmi:type="notation:Node" xmi:id="_FXFgWGhEEe2gzfo0wfORyw" type="6003">
4800 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FXFgWWhEEe2gzfo0wfORyw" y="10"/>
4801 </children>
4802 <styles xmi:type="notation:ConnectorStyle" xmi:id="_FXFgUWhEEe2gzfo0wfORyw" routing="Tree"/>
4803 <styles xmi:type="notation:FontStyle" xmi:id="_FXFgUmhEEe2gzfo0wfORyw" fontName="Noto Sans" fontHeight="8"/>
4804 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_FXFgU2hEEe2gzfo0wfORyw" points="[0, 0, -120, 70]$[120, -70, 0, 0]"/>
4805 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FXGHYGhEEe2gzfo0wfORyw" id="(0.45112781954887216,0.0)"/>
4806 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FXGHYWhEEe2gzfo0wfORyw" id="(0.5,0.5)"/>
4807 </edges>
4808 <edges xmi:type="notation:Edge" xmi:id="_FtE-cGhEEe2gzfo0wfORyw" type="4001" element="_FslPPGhEEe2gzfo0wfORyw" source="_CDdMYGhEEe2gzfo0wfORyw" target="_8CJxQGhDEe2gzfo0wfORyw">
4809 <children xmi:type="notation:Node" xmi:id="_FtE-dGhEEe2gzfo0wfORyw" type="6001">
4810 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FtE-dWhEEe2gzfo0wfORyw" y="-10"/>
4811 </children>
4812 <children xmi:type="notation:Node" xmi:id="_FtE-dmhEEe2gzfo0wfORyw" type="6002">
4813 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FtE-d2hEEe2gzfo0wfORyw" y="10"/>
4814 </children>
4815 <children xmi:type="notation:Node" xmi:id="_FtFlgGhEEe2gzfo0wfORyw" type="6003">
4816 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FtFlgWhEEe2gzfo0wfORyw" y="10"/>
4817 </children>
4818 <styles xmi:type="notation:ConnectorStyle" xmi:id="_FtE-cWhEEe2gzfo0wfORyw" routing="Tree"/>
4819 <styles xmi:type="notation:FontStyle" xmi:id="_FtE-cmhEEe2gzfo0wfORyw" fontName="Noto Sans" fontHeight="8"/>
4820 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_FtE-c2hEEe2gzfo0wfORyw" points="[0, 0, 132, 70]$[-132, -70, 0, 0]"/>
4821 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FtFlgmhEEe2gzfo0wfORyw" id="(0.5793103448275863,0.0)"/>
4822 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FtFlg2hEEe2gzfo0wfORyw" id="(0.4661016949152542,0.030612244897959183)"/>
4823 </edges>
4824 <edges xmi:type="notation:Edge" xmi:id="_HNbW4GhEEe2gzfo0wfORyw" type="4001" element="_HNHN1mhEEe2gzfo0wfORyw" source="_CDdMYGhEEe2gzfo0wfORyw" target="_IhNHMGgpEe24RpwpWgpkFQ">
4825 <children xmi:type="notation:Node" xmi:id="_HNbW5GhEEe2gzfo0wfORyw" type="6001">
4826 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HNbW5WhEEe2gzfo0wfORyw" x="-5" y="-32"/>
4827 </children>
4828 <children xmi:type="notation:Node" xmi:id="_HNbW5mhEEe2gzfo0wfORyw" type="6002">
4829 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HNbW52hEEe2gzfo0wfORyw" y="10"/>
4830 </children>
4831 <children xmi:type="notation:Node" xmi:id="_HNb98GhEEe2gzfo0wfORyw" type="6003">
4832 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HNb98WhEEe2gzfo0wfORyw" y="10"/>
4833 </children>
4834 <styles xmi:type="notation:ConnectorStyle" xmi:id="_HNbW4WhEEe2gzfo0wfORyw" routing="Rectilinear"/>
4835 <styles xmi:type="notation:FontStyle" xmi:id="_HNbW4mhEEe2gzfo0wfORyw" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/>
4836 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_HNbW42hEEe2gzfo0wfORyw" points="[0, 0, 0, -70]$[0, 70, 0, 0]"/>
4837 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HNb98mhEEe2gzfo0wfORyw" id="(0.503448275862069,1.0)"/>
4838 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HNb982hEEe2gzfo0wfORyw" id="(0.5,0.0)"/>
4839 </edges>
4598 </data> 4840 </data>
4599 </ownedAnnotationEntries> 4841 </ownedAnnotationEntries>
4600 <ownedAnnotationEntries xmi:type="description:AnnotationEntry" uid="_xkO38F4eEe2rXNsIDUvqhw" source="DANNOTATION_CUSTOMIZATION_KEY"> 4842 <ownedAnnotationEntries xmi:type="description:AnnotationEntry" uid="_xkO38F4eEe2rXNsIDUvqhw" source="DANNOTATION_CUSTOMIZATION_KEY">
@@ -4610,7 +4852,7 @@
4610 </computedStyleDescriptions> 4852 </computedStyleDescriptions>
4611 </data> 4853 </data>
4612 </ownedAnnotationEntries> 4854 </ownedAnnotationEntries>
4613 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_yj4-IF4eEe2rXNsIDUvqhw" name="Statement" tooltipText="" incomingEdges="_z9q0il4eEe2rXNsIDUvqhw _52zLHV4eEe2rXNsIDUvqhw" width="12" height="10"> 4855 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_yj4-IF4eEe2rXNsIDUvqhw" name="Statement" tooltipText="" incomingEdges="_z9q0il4eEe2rXNsIDUvqhw" width="12" height="10">
4614 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Statement"/> 4856 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Statement"/>
4615 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Statement"/> 4857 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Statement"/>
4616 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> 4858 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -4622,24 +4864,16 @@
4622 </ownedStyle> 4864 </ownedStyle>
4623 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> 4865 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
4624 </ownedDiagramElements> 4866 </ownedDiagramElements>
4625 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_z9nxMF4eEe2rXNsIDUvqhw" name="Assertion" tooltipText="" outgoingEdges="_z9q0gF4eEe2rXNsIDUvqhw _z9q0il4eEe2rXNsIDUvqhw _AUF41GTwEe2qdtyPWAtoxA" width="12" height="10"> 4867 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_z9nxMF4eEe2rXNsIDUvqhw" name="Assertion" tooltipText="" outgoingEdges="_z9q0gF4eEe2rXNsIDUvqhw _z9q0il4eEe2rXNsIDUvqhw _AUF41GTwEe2qdtyPWAtoxA _CxoVTGgpEe24RpwpWgpkFQ" width="12" height="10">
4626 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Assertion"/> 4868 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Assertion"/>
4627 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Assertion"/> 4869 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Assertion"/>
4628 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> 4870 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
4629 <arrangeConstraints>KEEP_SIZE</arrangeConstraints> 4871 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
4630 <arrangeConstraints>KEEP_RATIO</arrangeConstraints> 4872 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
4631 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_z9nxMV4eEe2rXNsIDUvqhw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> 4873 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_F1pf42gpEe24RpwpWgpkFQ" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
4632 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> 4874 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
4633 </ownedStyle> 4875 </ownedStyle>
4634 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> 4876 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
4635 <ownedElements xmi:type="diagram:DNodeListElement" uid="_z9pmZF4eEe2rXNsIDUvqhw" name="value : LogicValue = TRUE" tooltipText="">
4636 <target xmi:type="ecore:EAttribute" href="src/main/resources/model/problem.ecore#//Assertion/value"/>
4637 <semanticElements xmi:type="ecore:EAttribute" href="src/main/resources/model/problem.ecore#//Assertion/value"/>
4638 <ownedStyle xmi:type="diagram:BundledImage" uid="_z9pmZV4eEe2rXNsIDUvqhw" labelAlignment="LEFT">
4639 <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
4640 </ownedStyle>
4641 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
4642 </ownedElements>
4643 <ownedElements xmi:type="diagram:DNodeListElement" uid="_z9qNcF4eEe2rXNsIDUvqhw" name="default : EBoolean = false" tooltipText=""> 4877 <ownedElements xmi:type="diagram:DNodeListElement" uid="_z9qNcF4eEe2rXNsIDUvqhw" name="default : EBoolean = false" tooltipText="">
4644 <target xmi:type="ecore:EAttribute" href="src/main/resources/model/problem.ecore#//Assertion/default"/> 4878 <target xmi:type="ecore:EAttribute" href="src/main/resources/model/problem.ecore#//Assertion/default"/>
4645 <semanticElements xmi:type="ecore:EAttribute" href="src/main/resources/model/problem.ecore#//Assertion/default"/> 4879 <semanticElements xmi:type="ecore:EAttribute" href="src/main/resources/model/problem.ecore#//Assertion/default"/>
@@ -4649,7 +4883,7 @@
4649 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> 4883 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
4650 </ownedElements> 4884 </ownedElements>
4651 </ownedDiagramElements> 4885 </ownedDiagramElements>
4652 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_z9oYQF4eEe2rXNsIDUvqhw" name="AssertionArgument" tooltipText="" incomingEdges="_z9q0gF4eEe2rXNsIDUvqhw _ChY8sl4fEe2rXNsIDUvqhw _ChY8uV4fEe2rXNsIDUvqhw _ChZjtl4fEe2rXNsIDUvqhw" width="12" height="10"> 4886 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_z9oYQF4eEe2rXNsIDUvqhw" name="AssertionArgument" tooltipText="" incomingEdges="_z9q0gF4eEe2rXNsIDUvqhw _ChY8uV4fEe2rXNsIDUvqhw _ChZjtl4fEe2rXNsIDUvqhw" width="12" height="10">
4653 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//AssertionArgument"/> 4887 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//AssertionArgument"/>
4654 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//AssertionArgument"/> 4888 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//AssertionArgument"/>
4655 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> 4889 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -4677,82 +4911,16 @@
4677 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_z9q0il4eEe2rXNsIDUvqhw" sourceNode="_z9nxMF4eEe2rXNsIDUvqhw" targetNode="_yj4-IF4eEe2rXNsIDUvqhw"> 4911 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_z9q0il4eEe2rXNsIDUvqhw" sourceNode="_z9nxMF4eEe2rXNsIDUvqhw" targetNode="_yj4-IF4eEe2rXNsIDUvqhw">
4678 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Assertion"/> 4912 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Assertion"/>
4679 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Assertion"/> 4913 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Assertion"/>
4680 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_z9q0i14eEe2rXNsIDUvqhw" lineStyle="dash" targetArrow="InputClosedArrow" routingStyle="tree"> 4914 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_F1rVImgpEe24RpwpWgpkFQ" lineStyle="dash" targetArrow="InputClosedArrow" routingStyle="tree">
4681 <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@conditionnalStyles.0/@style"/> 4915 <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@conditionnalStyles.0/@style"/>
4682 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_z9q0jF4eEe2rXNsIDUvqhw" showIcon="false"> 4916 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_F1rVI2gpEe24RpwpWgpkFQ" showIcon="false">
4683 <labelFormat>italic</labelFormat> 4917 <labelFormat>italic</labelFormat>
4684 </beginLabelStyle> 4918 </beginLabelStyle>
4685 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_z9q0jV4eEe2rXNsIDUvqhw" showIcon="false"/> 4919 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_F1rVJGgpEe24RpwpWgpkFQ" showIcon="false"/>
4686 </ownedStyle> 4920 </ownedStyle>
4687 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> 4921 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
4688 </ownedDiagramElements> 4922 </ownedDiagramElements>
4689 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_52wu0F4eEe2rXNsIDUvqhw" name="NodeValueAssertion" tooltipText="" outgoingEdges="_52zLHV4eEe2rXNsIDUvqhw _A-ip3l4fEe2rXNsIDUvqhw _GY8dDF4fEe2rXNsIDUvqhw" width="12" height="10"> 4923 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_A-fmgF4fEe2rXNsIDUvqhw" name="Node" tooltipText="" incomingEdges="_ChYVqV4fEe2rXNsIDUvqhw" width="12" height="10">
4690 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//NodeValueAssertion"/>
4691 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//NodeValueAssertion"/>
4692 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
4693 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
4694 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
4695 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_52wu0V4eEe2rXNsIDUvqhw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
4696 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
4697 </ownedStyle>
4698 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
4699 </ownedDiagramElements>
4700 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_52zLHV4eEe2rXNsIDUvqhw" sourceNode="_52wu0F4eEe2rXNsIDUvqhw" targetNode="_yj4-IF4eEe2rXNsIDUvqhw">
4701 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//NodeValueAssertion"/>
4702 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//NodeValueAssertion"/>
4703 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_52zyIF4eEe2rXNsIDUvqhw" lineStyle="dash" targetArrow="InputClosedArrow" routingStyle="tree">
4704 <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@conditionnalStyles.0/@style"/>
4705 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_52zyIV4eEe2rXNsIDUvqhw" showIcon="false">
4706 <labelFormat>italic</labelFormat>
4707 </beginLabelStyle>
4708 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_52zyIl4eEe2rXNsIDUvqhw" showIcon="false"/>
4709 </ownedStyle>
4710 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
4711 </ownedDiagramElements>
4712 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_7H9Q8F4eEe2rXNsIDUvqhw" name="LogicValue" tooltipText="" width="12" height="10">
4713 <target xmi:type="ecore:EEnum" href="src/main/resources/model/problem.ecore#//LogicValue"/>
4714 <semanticElements xmi:type="ecore:EEnum" href="src/main/resources/model/problem.ecore#//LogicValue"/>
4715 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
4716 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
4717 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
4718 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_7H9Q8V4eEe2rXNsIDUvqhw" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="221,236,202">
4719 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@style"/>
4720 </ownedStyle>
4721 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']"/>
4722 <ownedElements xmi:type="diagram:DNodeListElement" uid="_7H_tM14eEe2rXNsIDUvqhw" name="TRUE" tooltipText="">
4723 <target xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//LogicValue/TRUE"/>
4724 <semanticElements xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//LogicValue/TRUE"/>
4725 <ownedStyle xmi:type="diagram:BundledImage" uid="_7H_tNF4eEe2rXNsIDUvqhw" labelAlignment="LEFT">
4726 <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
4727 </ownedStyle>
4728 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
4729 </ownedElements>
4730 <ownedElements xmi:type="diagram:DNodeListElement" uid="_7H_tNV4eEe2rXNsIDUvqhw" name="FALSE" tooltipText="">
4731 <target xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//LogicValue/FALSE"/>
4732 <semanticElements xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//LogicValue/FALSE"/>
4733 <ownedStyle xmi:type="diagram:BundledImage" uid="_7H_tNl4eEe2rXNsIDUvqhw" labelAlignment="LEFT">
4734 <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
4735 </ownedStyle>
4736 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
4737 </ownedElements>
4738 <ownedElements xmi:type="diagram:DNodeListElement" uid="_7H_tN14eEe2rXNsIDUvqhw" name="UNKNOWN" tooltipText="">
4739 <target xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//LogicValue/UNKNOWN"/>
4740 <semanticElements xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//LogicValue/UNKNOWN"/>
4741 <ownedStyle xmi:type="diagram:BundledImage" uid="_7H_tOF4eEe2rXNsIDUvqhw" labelAlignment="LEFT">
4742 <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
4743 </ownedStyle>
4744 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
4745 </ownedElements>
4746 <ownedElements xmi:type="diagram:DNodeListElement" uid="_7IAUQF4eEe2rXNsIDUvqhw" name="ERROR" tooltipText="">
4747 <target xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//LogicValue/ERROR"/>
4748 <semanticElements xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//LogicValue/ERROR"/>
4749 <ownedStyle xmi:type="diagram:BundledImage" uid="_7IAUQV4eEe2rXNsIDUvqhw" labelAlignment="LEFT">
4750 <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
4751 </ownedStyle>
4752 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
4753 </ownedElements>
4754 </ownedDiagramElements>
4755 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_A-fmgF4fEe2rXNsIDUvqhw" name="Node" tooltipText="" incomingEdges="_A-ip3l4fEe2rXNsIDUvqhw _ChYVol4fEe2rXNsIDUvqhw _ChYVqV4fEe2rXNsIDUvqhw" width="12" height="10">
4756 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Node"/> 4924 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Node"/>
4757 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Node"/> 4925 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Node"/>
4758 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> 4926 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -4763,39 +4931,6 @@
4763 </ownedStyle> 4931 </ownedStyle>
4764 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> 4932 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
4765 </ownedDiagramElements> 4933 </ownedDiagramElements>
4766 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_A-ip3l4fEe2rXNsIDUvqhw" name="[0..1] node" sourceNode="_52wu0F4eEe2rXNsIDUvqhw" targetNode="_A-fmgF4fEe2rXNsIDUvqhw">
4767 <target xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//NodeValueAssertion/node"/>
4768 <semanticElements xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//NodeValueAssertion/node"/>
4769 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_A-jQ4F4fEe2rXNsIDUvqhw" routingStyle="manhattan" strokeColor="0,0,0">
4770 <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']/@style"/>
4771 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_A-jQ4l4fEe2rXNsIDUvqhw" showIcon="false">
4772 <customFeatures>labelSize</customFeatures>
4773 </centerLabelStyle>
4774 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_A-jQ4V4fEe2rXNsIDUvqhw" showIcon="false" labelColor="39,76,114">
4775 <customFeatures>labelSize</customFeatures>
4776 </endLabelStyle>
4777 </ownedStyle>
4778 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
4779 </ownedDiagramElements>
4780 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_ChUEIF4fEe2rXNsIDUvqhw" name="ConstantAssertionArgument" tooltipText="" outgoingEdges="_ChYVol4fEe2rXNsIDUvqhw _ChY8sl4fEe2rXNsIDUvqhw _GY9EE14fEe2rXNsIDUvqhw" width="12" height="10">
4781 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//ConstantAssertionArgument"/>
4782 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//ConstantAssertionArgument"/>
4783 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
4784 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
4785 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
4786 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_7D9JO163Ee2rXNsIDUvqhw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
4787 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
4788 </ownedStyle>
4789 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
4790 <ownedElements xmi:type="diagram:DNodeListElement" uid="_59AIMF63Ee2rXNsIDUvqhw" name="negative : EBoolean = false" tooltipText="">
4791 <target xmi:type="ecore:EAttribute" href="src/main/resources/model/problem.ecore#//ConstantAssertionArgument/negative"/>
4792 <semanticElements xmi:type="ecore:EAttribute" href="src/main/resources/model/problem.ecore#//ConstantAssertionArgument/negative"/>
4793 <ownedStyle xmi:type="diagram:BundledImage" uid="_7D9wQV63Ee2rXNsIDUvqhw" labelAlignment="LEFT">
4794 <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
4795 </ownedStyle>
4796 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
4797 </ownedElements>
4798 </ownedDiagramElements>
4799 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_ChUrMl4fEe2rXNsIDUvqhw" name="NodeAssertionArgument" tooltipText="" outgoingEdges="_ChYVqV4fEe2rXNsIDUvqhw _ChY8uV4fEe2rXNsIDUvqhw" width="12" height="10"> 4934 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_ChUrMl4fEe2rXNsIDUvqhw" name="NodeAssertionArgument" tooltipText="" outgoingEdges="_ChYVqV4fEe2rXNsIDUvqhw _ChY8uV4fEe2rXNsIDUvqhw" width="12" height="10">
4800 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//NodeAssertionArgument"/> 4935 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//NodeAssertionArgument"/>
4801 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//NodeAssertionArgument"/> 4936 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//NodeAssertionArgument"/>
@@ -4818,19 +4953,6 @@
4818 </ownedStyle> 4953 </ownedStyle>
4819 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> 4954 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
4820 </ownedDiagramElements> 4955 </ownedDiagramElements>
4821 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_ChYVol4fEe2rXNsIDUvqhw" name="[0..1] node" sourceNode="_ChUEIF4fEe2rXNsIDUvqhw" targetNode="_A-fmgF4fEe2rXNsIDUvqhw">
4822 <target xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//ConstantAssertionArgument/node"/>
4823 <semanticElements xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//ConstantAssertionArgument/node"/>
4824 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_ChYVo14fEe2rXNsIDUvqhw" description="_z9q0gV4eEe2rXNsIDUvqhw" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
4825 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_ChYVpV4fEe2rXNsIDUvqhw" showIcon="false">
4826 <customFeatures>labelSize</customFeatures>
4827 </centerLabelStyle>
4828 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_ChYVpF4fEe2rXNsIDUvqhw" showIcon="false" labelColor="39,76,114">
4829 <customFeatures>labelSize</customFeatures>
4830 </endLabelStyle>
4831 </ownedStyle>
4832 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
4833 </ownedDiagramElements>
4834 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_ChYVqV4fEe2rXNsIDUvqhw" name="[0..1] node" sourceNode="_ChUrMl4fEe2rXNsIDUvqhw" targetNode="_A-fmgF4fEe2rXNsIDUvqhw"> 4956 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_ChYVqV4fEe2rXNsIDUvqhw" name="[0..1] node" sourceNode="_ChUrMl4fEe2rXNsIDUvqhw" targetNode="_A-fmgF4fEe2rXNsIDUvqhw">
4835 <target xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//NodeAssertionArgument/node"/> 4957 <target xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//NodeAssertionArgument/node"/>
4836 <semanticElements xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//NodeAssertionArgument/node"/> 4958 <semanticElements xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//NodeAssertionArgument/node"/>
@@ -4845,18 +4967,6 @@
4845 </ownedStyle> 4967 </ownedStyle>
4846 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> 4968 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
4847 </ownedDiagramElements> 4969 </ownedDiagramElements>
4848 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_ChY8sl4fEe2rXNsIDUvqhw" sourceNode="_ChUEIF4fEe2rXNsIDUvqhw" targetNode="_z9oYQF4eEe2rXNsIDUvqhw">
4849 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//ConstantAssertionArgument"/>
4850 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//ConstantAssertionArgument"/>
4851 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_7D--fl63Ee2rXNsIDUvqhw" targetArrow="InputClosedArrow" routingStyle="tree">
4852 <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
4853 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_7D--f163Ee2rXNsIDUvqhw" showIcon="false">
4854 <labelFormat>italic</labelFormat>
4855 </beginLabelStyle>
4856 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_7D--gF63Ee2rXNsIDUvqhw" showIcon="false"/>
4857 </ownedStyle>
4858 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
4859 </ownedDiagramElements>
4860 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_ChY8uV4fEe2rXNsIDUvqhw" sourceNode="_ChUrMl4fEe2rXNsIDUvqhw" targetNode="_z9oYQF4eEe2rXNsIDUvqhw"> 4970 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_ChY8uV4fEe2rXNsIDUvqhw" sourceNode="_ChUrMl4fEe2rXNsIDUvqhw" targetNode="_z9oYQF4eEe2rXNsIDUvqhw">
4861 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//NodeAssertionArgument"/> 4971 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//NodeAssertionArgument"/>
4862 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//NodeAssertionArgument"/> 4972 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//NodeAssertionArgument"/>
@@ -4881,70 +4991,187 @@
4881 </ownedStyle> 4991 </ownedStyle>
4882 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> 4992 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
4883 </ownedDiagramElements> 4993 </ownedDiagramElements>
4884 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_GY29cF4fEe2rXNsIDUvqhw" name="Constant" tooltipText="" incomingEdges="_GY8dDF4fEe2rXNsIDUvqhw _GY9EE14fEe2rXNsIDUvqhw" width="12" height="10"> 4994 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_85G_kGTvEe2qdtyPWAtoxA" name="Relation" tooltipText="" incomingEdges="_AUF41GTwEe2qdtyPWAtoxA" width="12" height="10">
4885 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Constant"/> 4995 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Relation"/>
4886 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Constant"/> 4996 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Relation"/>
4887 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> 4997 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
4888 <arrangeConstraints>KEEP_SIZE</arrangeConstraints> 4998 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
4889 <arrangeConstraints>KEEP_RATIO</arrangeConstraints> 4999 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
4890 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_GY29cV4fEe2rXNsIDUvqhw" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228"> 5000 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_85G_kWTvEe2qdtyPWAtoxA" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228">
4891 <labelFormat>italic</labelFormat> 5001 <labelFormat>italic</labelFormat>
4892 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/> 5002 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/>
4893 </ownedStyle> 5003 </ownedStyle>
4894 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> 5004 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
4895 </ownedDiagramElements> 5005 </ownedDiagramElements>
4896 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_GY8dDF4fEe2rXNsIDUvqhw" name="[0..1] value" sourceNode="_52wu0F4eEe2rXNsIDUvqhw" targetNode="_GY29cF4fEe2rXNsIDUvqhw"> 5006 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_AUF41GTwEe2qdtyPWAtoxA" name="[0..1] relation" sourceNode="_z9nxMF4eEe2rXNsIDUvqhw" targetNode="_85G_kGTvEe2qdtyPWAtoxA">
4897 <target xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//NodeValueAssertion/value"/> 5007 <target xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//Assertion/relation"/>
4898 <semanticElements xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//NodeValueAssertion/value"/> 5008 <semanticElements xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//Assertion/relation"/>
4899 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_GY8dDV4fEe2rXNsIDUvqhw" description="_z9q0gV4eEe2rXNsIDUvqhw" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0"> 5009 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_AUGfwGTwEe2qdtyPWAtoxA" routingStyle="manhattan" strokeColor="0,0,0">
4900 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_GY8dD14fEe2rXNsIDUvqhw" showIcon="false"> 5010 <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']/@style"/>
5011 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_AUGfwmTwEe2qdtyPWAtoxA" showIcon="false">
4901 <customFeatures>labelSize</customFeatures> 5012 <customFeatures>labelSize</customFeatures>
4902 </centerLabelStyle> 5013 </centerLabelStyle>
4903 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_GY8dDl4fEe2rXNsIDUvqhw" showIcon="false" labelColor="39,76,114"> 5014 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_AUGfwWTwEe2qdtyPWAtoxA" showIcon="false" labelColor="39,76,114">
4904 <customFeatures>labelSize</customFeatures> 5015 <customFeatures>labelSize</customFeatures>
4905 </endLabelStyle> 5016 </endLabelStyle>
4906 </ownedStyle> 5017 </ownedStyle>
4907 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> 5018 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
4908 </ownedDiagramElements> 5019 </ownedDiagramElements>
4909 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_GY9EE14fEe2rXNsIDUvqhw" name="[0..1] constant" sourceNode="_ChUEIF4fEe2rXNsIDUvqhw" targetNode="_GY29cF4fEe2rXNsIDUvqhw"> 5020 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_CxoVTGgpEe24RpwpWgpkFQ" name="[0..1] value" sourceNode="_z9nxMF4eEe2rXNsIDUvqhw" targetNode="_8BPLQGhDEe2gzfo0wfORyw">
4910 <target xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//ConstantAssertionArgument/constant"/> 5021 <target xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//Assertion/value"/>
4911 <semanticElements xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//ConstantAssertionArgument/constant"/> 5022 <semanticElements xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//Assertion/value"/>
4912 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_GY9EFF4fEe2rXNsIDUvqhw" description="_z9q0gV4eEe2rXNsIDUvqhw" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0"> 5023 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_Gl7GTGgpEe24RpwpWgpkFQ" description="_z9q0gV4eEe2rXNsIDUvqhw" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
4913 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_GY9EFl4fEe2rXNsIDUvqhw" showIcon="false"> 5024 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_Gl7GTmgpEe24RpwpWgpkFQ" showIcon="false">
4914 <customFeatures>labelSize</customFeatures> 5025 <customFeatures>labelSize</customFeatures>
4915 </centerLabelStyle> 5026 </centerLabelStyle>
4916 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_GY9EFV4fEe2rXNsIDUvqhw" showIcon="false" labelColor="39,76,114"> 5027 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_Gl7GTWgpEe24RpwpWgpkFQ" showIcon="false" labelColor="39,76,114">
4917 <customFeatures>labelSize</customFeatures> 5028 <customFeatures>labelSize</customFeatures>
4918 </endLabelStyle> 5029 </endLabelStyle>
4919 </ownedStyle> 5030 </ownedStyle>
4920 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> 5031 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
4921 </ownedDiagramElements> 5032 </ownedDiagramElements>
4922 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_85G_kGTvEe2qdtyPWAtoxA" name="Relation" tooltipText="" incomingEdges="_AUF41GTwEe2qdtyPWAtoxA" width="12" height="10"> 5033 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_IhJc0GgpEe24RpwpWgpkFQ" name="Expr" tooltipText="" incomingEdges="_HNHN1mhEEe2gzfo0wfORyw" width="12" height="10">
4923 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Relation"/> 5034 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Expr"/>
4924 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Relation"/> 5035 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Expr"/>
4925 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> 5036 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
4926 <arrangeConstraints>KEEP_SIZE</arrangeConstraints> 5037 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
4927 <arrangeConstraints>KEEP_RATIO</arrangeConstraints> 5038 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
4928 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_85G_kWTvEe2qdtyPWAtoxA" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228"> 5039 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_IhJc0WgpEe24RpwpWgpkFQ" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228">
4929 <labelFormat>italic</labelFormat> 5040 <labelFormat>italic</labelFormat>
4930 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/> 5041 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/>
4931 </ownedStyle> 5042 </ownedStyle>
4932 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> 5043 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
4933 </ownedDiagramElements> 5044 </ownedDiagramElements>
4934 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_AUF41GTwEe2qdtyPWAtoxA" name="[0..1] relation" sourceNode="_z9nxMF4eEe2rXNsIDUvqhw" targetNode="_85G_kGTvEe2qdtyPWAtoxA"> 5045 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_8BPLQGhDEe2gzfo0wfORyw" name="AssertionValue" tooltipText="" incomingEdges="_CxoVTGgpEe24RpwpWgpkFQ _FWwwQmhEEe2gzfo0wfORyw _FslPPGhEEe2gzfo0wfORyw" width="12" height="10">
4935 <target xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//Assertion/relation"/> 5046 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//AssertionValue"/>
4936 <semanticElements xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//Assertion/relation"/> 5047 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//AssertionValue"/>
4937 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_AUGfwGTwEe2qdtyPWAtoxA" routingStyle="manhattan" strokeColor="0,0,0"> 5048 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
4938 <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']/@style"/> 5049 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
4939 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_AUGfwmTwEe2qdtyPWAtoxA" showIcon="false"> 5050 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
5051 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="__eBbM2hDEe2gzfo0wfORyw" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228">
5052 <labelFormat>italic</labelFormat>
5053 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@conditionnalStyles.1/@style"/>
5054 </ownedStyle>
5055 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
5056 </ownedDiagramElements>
5057 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="__vBEkGhDEe2gzfo0wfORyw" name="LogicAssertionValue" tooltipText="" outgoingEdges="_FWwwQmhEEe2gzfo0wfORyw" width="12" height="10">
5058 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//LogicAssertionValue"/>
5059 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//LogicAssertionValue"/>
5060 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
5061 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
5062 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
5063 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_OEMabmhEEe2gzfo0wfORyw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
5064 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
5065 </ownedStyle>
5066 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
5067 <ownedElements xmi:type="diagram:DNodeListElement" uid="_NA-p4GhEEe2gzfo0wfORyw" name="logicValue : LogicValue = TRUE" tooltipText="">
5068 <target xmi:type="ecore:EAttribute" href="src/main/resources/model/problem.ecore#//LogicAssertionValue/logicValue"/>
5069 <semanticElements xmi:type="ecore:EAttribute" href="src/main/resources/model/problem.ecore#//LogicAssertionValue/logicValue"/>
5070 <ownedStyle xmi:type="diagram:BundledImage" uid="_OENogWhEEe2gzfo0wfORyw" labelAlignment="LEFT">
5071 <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
5072 </ownedStyle>
5073 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
5074 </ownedElements>
5075 </ownedDiagramElements>
5076 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_CCxP4GhEEe2gzfo0wfORyw" name="ExprAssertionValue" tooltipText="" outgoingEdges="_FslPPGhEEe2gzfo0wfORyw _HNHN1mhEEe2gzfo0wfORyw" width="12" height="10">
5077 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//ExprAssertionValue"/>
5078 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//ExprAssertionValue"/>
5079 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
5080 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
5081 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
5082 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_sP6yM2hEEe2gzfo0wfORyw" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
5083 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
5084 </ownedStyle>
5085 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
5086 <ownedElements xmi:type="diagram:DNodeListElement" uid="_rVH90GhEEe2gzfo0wfORyw" name="range : EBoolean = false" tooltipText="">
5087 <target xmi:type="ecore:EAttribute" href="src/main/resources/model/problem.ecore#//ExprAssertionValue/range"/>
5088 <semanticElements xmi:type="ecore:EAttribute" href="src/main/resources/model/problem.ecore#//ExprAssertionValue/range"/>
5089 <ownedStyle xmi:type="diagram:BundledImage" uid="_sP8AQmhEEe2gzfo0wfORyw" labelAlignment="LEFT">
5090 <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
5091 </ownedStyle>
5092 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
5093 </ownedElements>
5094 </ownedDiagramElements>
5095 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_FWwwQmhEEe2gzfo0wfORyw" sourceNode="__vBEkGhDEe2gzfo0wfORyw" targetNode="_8BPLQGhDEe2gzfo0wfORyw">
5096 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//LogicAssertionValue"/>
5097 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//LogicAssertionValue"/>
5098 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_OEPdxWhEEe2gzfo0wfORyw" targetArrow="InputClosedArrow" routingStyle="tree">
5099 <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
5100 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_OEPdxmhEEe2gzfo0wfORyw" showIcon="false">
5101 <labelFormat>italic</labelFormat>
5102 </beginLabelStyle>
5103 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_OEPdx2hEEe2gzfo0wfORyw" showIcon="false"/>
5104 </ownedStyle>
5105 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
5106 </ownedDiagramElements>
5107 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_FslPPGhEEe2gzfo0wfORyw" sourceNode="_CCxP4GhEEe2gzfo0wfORyw" targetNode="_8BPLQGhDEe2gzfo0wfORyw">
5108 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//ExprAssertionValue"/>
5109 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//ExprAssertionValue"/>
5110 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_sP91iGhEEe2gzfo0wfORyw" targetArrow="InputClosedArrow" routingStyle="tree">
5111 <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
5112 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_sP91iWhEEe2gzfo0wfORyw" showIcon="false">
5113 <labelFormat>italic</labelFormat>
5114 </beginLabelStyle>
5115 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_sP91imhEEe2gzfo0wfORyw" showIcon="false"/>
5116 </ownedStyle>
5117 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
5118 </ownedDiagramElements>
5119 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_HNHN1mhEEe2gzfo0wfORyw" name="[0..1] body" sourceNode="_CCxP4GhEEe2gzfo0wfORyw" targetNode="_IhJc0GgpEe24RpwpWgpkFQ">
5120 <target xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//ExprAssertionValue/body"/>
5121 <semanticElements xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//ExprAssertionValue/body"/>
5122 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_HNHN12hEEe2gzfo0wfORyw" description="_z9q0gV4eEe2rXNsIDUvqhw" sourceArrow="FillDiamond" routingStyle="manhattan" strokeColor="0,0,0">
5123 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_HNHN2WhEEe2gzfo0wfORyw" showIcon="false">
4940 <customFeatures>labelSize</customFeatures> 5124 <customFeatures>labelSize</customFeatures>
4941 </centerLabelStyle> 5125 </centerLabelStyle>
4942 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_AUGfwWTwEe2qdtyPWAtoxA" showIcon="false" labelColor="39,76,114"> 5126 <endLabelStyle xmi:type="diagram:EndLabelStyle" uid="_HNHN2GhEEe2gzfo0wfORyw" showIcon="false" labelColor="39,76,114">
4943 <customFeatures>labelSize</customFeatures> 5127 <customFeatures>labelSize</customFeatures>
4944 </endLabelStyle> 5128 </endLabelStyle>
4945 </ownedStyle> 5129 </ownedStyle>
4946 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/> 5130 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC_EReference']"/>
4947 </ownedDiagramElements> 5131 </ownedDiagramElements>
5132 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_L2YfAGhEEe2gzfo0wfORyw" name="LogicValue" tooltipText="" width="12" height="10">
5133 <target xmi:type="ecore:EEnum" href="src/main/resources/model/problem.ecore#//LogicValue"/>
5134 <semanticElements xmi:type="ecore:EEnum" href="src/main/resources/model/problem.ecore#//LogicValue"/>
5135 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
5136 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
5137 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
5138 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_L2YfAWhEEe2gzfo0wfORyw" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="221,236,202">
5139 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@style"/>
5140 </ownedStyle>
5141 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']"/>
5142 <ownedElements xmi:type="diagram:DNodeListElement" uid="_L2a7Q2hEEe2gzfo0wfORyw" name="TRUE" tooltipText="">
5143 <target xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//LogicValue/TRUE"/>
5144 <semanticElements xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//LogicValue/TRUE"/>
5145 <ownedStyle xmi:type="diagram:BundledImage" uid="_L2a7RGhEEe2gzfo0wfORyw" labelAlignment="LEFT">
5146 <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
5147 </ownedStyle>
5148 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
5149 </ownedElements>
5150 <ownedElements xmi:type="diagram:DNodeListElement" uid="_L2a7RWhEEe2gzfo0wfORyw" name="FALSE" tooltipText="">
5151 <target xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//LogicValue/FALSE"/>
5152 <semanticElements xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//LogicValue/FALSE"/>
5153 <ownedStyle xmi:type="diagram:BundledImage" uid="_L2biUGhEEe2gzfo0wfORyw" labelAlignment="LEFT">
5154 <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
5155 </ownedStyle>
5156 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
5157 </ownedElements>
5158 <ownedElements xmi:type="diagram:DNodeListElement" uid="_L2biUWhEEe2gzfo0wfORyw" name="UNKNOWN" tooltipText="">
5159 <target xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//LogicValue/UNKNOWN"/>
5160 <semanticElements xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//LogicValue/UNKNOWN"/>
5161 <ownedStyle xmi:type="diagram:BundledImage" uid="_L2biUmhEEe2gzfo0wfORyw" labelAlignment="LEFT">
5162 <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
5163 </ownedStyle>
5164 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
5165 </ownedElements>
5166 <ownedElements xmi:type="diagram:DNodeListElement" uid="_L2biU2hEEe2gzfo0wfORyw" name="ERROR" tooltipText="">
5167 <target xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//LogicValue/ERROR"/>
5168 <semanticElements xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//LogicValue/ERROR"/>
5169 <ownedStyle xmi:type="diagram:BundledImage" uid="_L2biVGhEEe2gzfo0wfORyw" labelAlignment="LEFT">
5170 <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
5171 </ownedStyle>
5172 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
5173 </ownedElements>
5174 </ownedDiagramElements>
4948 <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/> 5175 <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/>
4949 <filterVariableHistory xmi:type="diagram:FilterVariableHistory" uid="_xj8kEF4eEe2rXNsIDUvqhw"/> 5176 <filterVariableHistory xmi:type="diagram:FilterVariableHistory" uid="_xj8kEF4eEe2rXNsIDUvqhw"/>
4950 <activatedLayers xmi:type="description_1:Layer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer"/> 5177 <activatedLayers xmi:type="description_1:Layer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer"/>
diff --git a/subprojects/language-model/src/main/resources/model/problem.ecore b/subprojects/language-model/src/main/resources/model/problem.ecore
index 3214da65..314639c1 100644
--- a/subprojects/language-model/src/main/resources/model/problem.ecore
+++ b/subprojects/language-model/src/main/resources/model/problem.ecore
@@ -9,14 +9,14 @@
9 </eClassifiers> 9 </eClassifiers>
10 <eClassifiers xsi:type="ecore:EClass" name="ClassDeclaration" eSuperTypes="#//Statement #//Relation"> 10 <eClassifiers xsi:type="ecore:EClass" name="ClassDeclaration" eSuperTypes="#//Statement #//Relation">
11 <eStructuralFeatures xsi:type="ecore:EAttribute" name="abstract" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> 11 <eStructuralFeatures xsi:type="ecore:EAttribute" name="abstract" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
12 <eStructuralFeatures xsi:type="ecore:EReference" name="referenceDeclarations" 12 <eStructuralFeatures xsi:type="ecore:EReference" name="featureDeclarations" upperBound="-1"
13 upperBound="-1" eType="#//ReferenceDeclaration" containment="true"/> 13 eType="#//FeatureDeclaration" containment="true"/>
14 <eStructuralFeatures xsi:type="ecore:EReference" name="newNode" eType="#//Node" 14 <eStructuralFeatures xsi:type="ecore:EReference" name="newNode" eType="#//Node"
15 transient="true" containment="true"/> 15 transient="true" containment="true"/>
16 <eStructuralFeatures xsi:type="ecore:EReference" name="superTypes" upperBound="-1" 16 <eStructuralFeatures xsi:type="ecore:EReference" name="superTypes" upperBound="-1"
17 eType="#//Relation"/> 17 eType="#//Relation"/>
18 </eClassifiers> 18 </eClassifiers>
19 <eClassifiers xsi:type="ecore:EClass" name="ReferenceDeclaration" eSuperTypes="#//Relation"> 19 <eClassifiers xsi:type="ecore:EClass" name="ReferenceDeclaration" eSuperTypes="#//FeatureDeclaration">
20 <eStructuralFeatures xsi:type="ecore:EReference" name="opposite" eType="#//ReferenceDeclaration"/> 20 <eStructuralFeatures xsi:type="ecore:EReference" name="opposite" eType="#//ReferenceDeclaration"/>
21 <eStructuralFeatures xsi:type="ecore:EReference" name="multiplicity" eType="#//Multiplicity" 21 <eStructuralFeatures xsi:type="ecore:EReference" name="multiplicity" eType="#//Multiplicity"
22 containment="true"/> 22 containment="true"/>
@@ -49,12 +49,13 @@
49 eType="#//ImplicitVariable" transient="true" containment="true"/> 49 eType="#//ImplicitVariable" transient="true" containment="true"/>
50 </eClassifiers> 50 </eClassifiers>
51 <eClassifiers xsi:type="ecore:EClass" name="Assertion" eSuperTypes="#//Statement"> 51 <eClassifiers xsi:type="ecore:EClass" name="Assertion" eSuperTypes="#//Statement">
52 <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="#//LogicValue"/>
53 <eStructuralFeatures xsi:type="ecore:EReference" name="arguments" upperBound="-1" 52 <eStructuralFeatures xsi:type="ecore:EReference" name="arguments" upperBound="-1"
54 eType="#//AssertionArgument" containment="true"/> 53 eType="#//AssertionArgument" containment="true"/>
55 <eStructuralFeatures xsi:type="ecore:EAttribute" name="default" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" 54 <eStructuralFeatures xsi:type="ecore:EAttribute" name="default" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
56 defaultValueLiteral="false"/> 55 defaultValueLiteral="false"/>
57 <eStructuralFeatures xsi:type="ecore:EReference" name="relation" eType="#//Relation"/> 56 <eStructuralFeatures xsi:type="ecore:EReference" name="relation" eType="#//Relation"/>
57 <eStructuralFeatures xsi:type="ecore:EReference" name="value" eType="#//AssertionValue"
58 containment="true"/>
58 </eClassifiers> 59 </eClassifiers>
59 <eClassifiers xsi:type="ecore:EClass" name="Node" eSuperTypes="#//VariableOrNode"/> 60 <eClassifiers xsi:type="ecore:EClass" name="Node" eSuperTypes="#//VariableOrNode"/>
60 <eClassifiers xsi:type="ecore:EEnum" name="LogicValue"> 61 <eClassifiers xsi:type="ecore:EEnum" name="LogicValue">
@@ -91,7 +92,7 @@
91 eType="#//Node" containment="true"/> 92 eType="#//Node" containment="true"/>
92 </eClassifiers> 93 </eClassifiers>
93 <eClassifiers xsi:type="ecore:EClass" name="VariableOrNode" abstract="true" eSuperTypes="#//NamedElement"/> 94 <eClassifiers xsi:type="ecore:EClass" name="VariableOrNode" abstract="true" eSuperTypes="#//NamedElement"/>
94 <eClassifiers xsi:type="ecore:EClass" name="Constant" abstract="true"/> 95 <eClassifiers xsi:type="ecore:EClass" name="Constant" abstract="true" eSuperTypes="#//Expr"/>
95 <eClassifiers xsi:type="ecore:EClass" name="IntConstant" eSuperTypes="#//Constant"> 96 <eClassifiers xsi:type="ecore:EClass" name="IntConstant" eSuperTypes="#//Constant">
96 <eStructuralFeatures xsi:type="ecore:EAttribute" name="intValue" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" 97 <eStructuralFeatures xsi:type="ecore:EAttribute" name="intValue" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
97 defaultValueLiteral="0"/> 98 defaultValueLiteral="0"/>
@@ -107,17 +108,6 @@
107 <eStructuralFeatures xsi:type="ecore:EReference" name="node" eType="#//Node"/> 108 <eStructuralFeatures xsi:type="ecore:EReference" name="node" eType="#//Node"/>
108 </eClassifiers> 109 </eClassifiers>
109 <eClassifiers xsi:type="ecore:EClass" name="AssertionArgument" abstract="true"/> 110 <eClassifiers xsi:type="ecore:EClass" name="AssertionArgument" abstract="true"/>
110 <eClassifiers xsi:type="ecore:EClass" name="ConstantAssertionArgument" eSuperTypes="#//AssertionArgument">
111 <eStructuralFeatures xsi:type="ecore:EReference" name="constant" eType="#//Constant"
112 containment="true"/>
113 <eStructuralFeatures xsi:type="ecore:EReference" name="node" eType="#//Node" containment="true"/>
114 <eStructuralFeatures xsi:type="ecore:EAttribute" name="negative" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
115 </eClassifiers>
116 <eClassifiers xsi:type="ecore:EClass" name="NodeValueAssertion" eSuperTypes="#//Statement">
117 <eStructuralFeatures xsi:type="ecore:EReference" name="node" eType="#//Node"/>
118 <eStructuralFeatures xsi:type="ecore:EReference" name="value" eType="#//Constant"
119 containment="true"/>
120 </eClassifiers>
121 <eClassifiers xsi:type="ecore:EClass" name="IndividualDeclaration" eSuperTypes="#//Statement"> 111 <eClassifiers xsi:type="ecore:EClass" name="IndividualDeclaration" eSuperTypes="#//Statement">
122 <eStructuralFeatures xsi:type="ecore:EReference" name="nodes" upperBound="-1" 112 <eStructuralFeatures xsi:type="ecore:EReference" name="nodes" upperBound="-1"
123 eType="#//Node" containment="true"/> 113 eType="#//Node" containment="true"/>
@@ -168,9 +158,9 @@
168 <eLiterals name="GREATER_EQ" value="3"/> 158 <eLiterals name="GREATER_EQ" value="3"/>
169 <eLiterals name="EQ" value="4"/> 159 <eLiterals name="EQ" value="4"/>
170 <eLiterals name="NOT_EQ" value="5"/> 160 <eLiterals name="NOT_EQ" value="5"/>
161 <eLiterals name="IN" value="6"/>
171 </eClassifiers> 162 </eClassifiers>
172 <eClassifiers xsi:type="ecore:EEnum" name="ReferenceKind"> 163 <eClassifiers xsi:type="ecore:EEnum" name="ReferenceKind">
173 <eLiterals name="DEFAULT"/>
174 <eLiterals name="REFERENCE" value="1"/> 164 <eLiterals name="REFERENCE" value="1"/>
175 <eLiterals name="CONTAINMENT" value="2"/> 165 <eLiterals name="CONTAINMENT" value="2"/>
176 <eLiterals name="CONTAINER" value="3"/> 166 <eLiterals name="CONTAINER" value="3"/>
@@ -205,6 +195,8 @@
205 <eLiterals name="MUL" value="2"/> 195 <eLiterals name="MUL" value="2"/>
206 <eLiterals name="DIV" value="3"/> 196 <eLiterals name="DIV" value="3"/>
207 <eLiterals name="POW" value="4"/> 197 <eLiterals name="POW" value="4"/>
198 <eLiterals name="MEET" value="5"/>
199 <eLiterals name="JOIN" value="6"/>
208 </eClassifiers> 200 </eClassifiers>
209 <eClassifiers xsi:type="ecore:EClass" name="ArithmeticUnaryExpr" eSuperTypes="#//UnaryExpr"> 201 <eClassifiers xsi:type="ecore:EClass" name="ArithmeticUnaryExpr" eSuperTypes="#//UnaryExpr">
210 <eStructuralFeatures xsi:type="ecore:EAttribute" name="op" eType="#//UnaryOp"/> 202 <eStructuralFeatures xsi:type="ecore:EAttribute" name="op" eType="#//UnaryOp"/>
@@ -225,16 +217,12 @@
225 <eClassifiers xsi:type="ecore:EClass" name="ComparisonExpr" eSuperTypes="#//BinaryExpr"> 217 <eClassifiers xsi:type="ecore:EClass" name="ComparisonExpr" eSuperTypes="#//BinaryExpr">
226 <eStructuralFeatures xsi:type="ecore:EAttribute" name="op" eType="#//ComparisonOp"/> 218 <eStructuralFeatures xsi:type="ecore:EAttribute" name="op" eType="#//ComparisonOp"/>
227 </eClassifiers> 219 </eClassifiers>
228 <eClassifiers xsi:type="ecore:EClass" name="ConstantExpr" eSuperTypes="#//Expr">
229 <eStructuralFeatures xsi:type="ecore:EReference" name="constant" eType="#//Constant"
230 containment="true"/>
231 </eClassifiers>
232 <eClassifiers xsi:type="ecore:EClass" name="QuantifiedUnaryExpr" abstract="true" 220 <eClassifiers xsi:type="ecore:EClass" name="QuantifiedUnaryExpr" abstract="true"
233 eSuperTypes="#//ExistentialQuantifier #//UnaryExpr"/> 221 eSuperTypes="#//ExistentialQuantifier #//UnaryExpr"/>
234 <eClassifiers xsi:type="ecore:EClass" name="FunctionDefinition" eSuperTypes="#//ParametricDefinition #//Relation"> 222 <eClassifiers xsi:type="ecore:EClass" name="FunctionDefinition" eSuperTypes="#//ParametricDefinition #//Relation">
235 <eStructuralFeatures xsi:type="ecore:EReference" name="cases" upperBound="-1" 223 <eStructuralFeatures xsi:type="ecore:EReference" name="cases" upperBound="-1"
236 eType="#//Case" containment="true"/> 224 eType="#//Case" containment="true"/>
237 <eStructuralFeatures xsi:type="ecore:EReference" name="functionType" eType="#//Relation"/> 225 <eStructuralFeatures xsi:type="ecore:EAttribute" name="functionType" eType="#//PrimitiveType"/>
238 </eClassifiers> 226 </eClassifiers>
239 <eClassifiers xsi:type="ecore:EClass" name="Case" abstract="true"/> 227 <eClassifiers xsi:type="ecore:EClass" name="Case" abstract="true"/>
240 <eClassifiers xsi:type="ecore:EClass" name="Conjunction" eSuperTypes="#//Case #//ExistentialQuantifier"> 228 <eClassifiers xsi:type="ecore:EClass" name="Conjunction" eSuperTypes="#//Case #//ExistentialQuantifier">
@@ -256,4 +244,25 @@
256 <eClassifiers xsi:type="ecore:EClass" name="ModalExpr" eSuperTypes="#//UnaryExpr"> 244 <eClassifiers xsi:type="ecore:EClass" name="ModalExpr" eSuperTypes="#//UnaryExpr">
257 <eStructuralFeatures xsi:type="ecore:EAttribute" name="modality" eType="#//Modality"/> 245 <eStructuralFeatures xsi:type="ecore:EAttribute" name="modality" eType="#//Modality"/>
258 </eClassifiers> 246 </eClassifiers>
247 <eClassifiers xsi:type="ecore:EClass" name="RangeExpr" eSuperTypes="#//BinaryExpr"/>
248 <eClassifiers xsi:type="ecore:EClass" name="InfConstant" eSuperTypes="#//Constant"/>
249 <eClassifiers xsi:type="ecore:EClass" name="FeatureDeclaration" abstract="true"
250 eSuperTypes="#//Relation"/>
251 <eClassifiers xsi:type="ecore:EClass" name="AttributeDeclaration" eSuperTypes="#//FeatureDeclaration">
252 <eStructuralFeatures xsi:type="ecore:EAttribute" name="attributeType" eType="#//PrimitiveType"/>
253 </eClassifiers>
254 <eClassifiers xsi:type="ecore:EClass" name="FlagDeclaration" eSuperTypes="#//FeatureDeclaration"/>
255 <eClassifiers xsi:type="ecore:EEnum" name="PrimitiveType">
256 <eLiterals name="INT"/>
257 <eLiterals name="REAL" value="1"/>
258 <eLiterals name="STRING" value="2"/>
259 </eClassifiers>
260 <eClassifiers xsi:type="ecore:EClass" name="AssertionValue" abstract="true"/>
261 <eClassifiers xsi:type="ecore:EClass" name="LogicAssertionValue" eSuperTypes="#//AssertionValue">
262 <eStructuralFeatures xsi:type="ecore:EAttribute" name="logicValue" eType="#//LogicValue"/>
263 </eClassifiers>
264 <eClassifiers xsi:type="ecore:EClass" name="ExprAssertionValue" eSuperTypes="#//AssertionValue">
265 <eStructuralFeatures xsi:type="ecore:EReference" name="body" eType="#//Expr" containment="true"/>
266 <eStructuralFeatures xsi:type="ecore:EAttribute" name="range" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
267 </eClassifiers>
259</ecore:EPackage> 268</ecore:EPackage>
diff --git a/subprojects/language-model/src/main/resources/model/problem.genmodel b/subprojects/language-model/src/main/resources/model/problem.genmodel
index 230f9919..c5d7c0ea 100644
--- a/subprojects/language-model/src/main/resources/model/problem.genmodel
+++ b/subprojects/language-model/src/main/resources/model/problem.genmodel
@@ -29,9 +29,9 @@
29 <genEnumLiterals ecoreEnumLiteral="problem.ecore#//ComparisonOp/GREATER_EQ"/> 29 <genEnumLiterals ecoreEnumLiteral="problem.ecore#//ComparisonOp/GREATER_EQ"/>
30 <genEnumLiterals ecoreEnumLiteral="problem.ecore#//ComparisonOp/EQ"/> 30 <genEnumLiterals ecoreEnumLiteral="problem.ecore#//ComparisonOp/EQ"/>
31 <genEnumLiterals ecoreEnumLiteral="problem.ecore#//ComparisonOp/NOT_EQ"/> 31 <genEnumLiterals ecoreEnumLiteral="problem.ecore#//ComparisonOp/NOT_EQ"/>
32 <genEnumLiterals ecoreEnumLiteral="problem.ecore#//ComparisonOp/IN"/>
32 </genEnums> 33 </genEnums>
33 <genEnums typeSafeEnumCompatible="false" ecoreEnum="problem.ecore#//ReferenceKind"> 34 <genEnums typeSafeEnumCompatible="false" ecoreEnum="problem.ecore#//ReferenceKind">
34 <genEnumLiterals ecoreEnumLiteral="problem.ecore#//ReferenceKind/DEFAULT"/>
35 <genEnumLiterals ecoreEnumLiteral="problem.ecore#//ReferenceKind/REFERENCE"/> 35 <genEnumLiterals ecoreEnumLiteral="problem.ecore#//ReferenceKind/REFERENCE"/>
36 <genEnumLiterals ecoreEnumLiteral="problem.ecore#//ReferenceKind/CONTAINMENT"/> 36 <genEnumLiterals ecoreEnumLiteral="problem.ecore#//ReferenceKind/CONTAINMENT"/>
37 <genEnumLiterals ecoreEnumLiteral="problem.ecore#//ReferenceKind/CONTAINER"/> 37 <genEnumLiterals ecoreEnumLiteral="problem.ecore#//ReferenceKind/CONTAINER"/>
@@ -52,6 +52,8 @@
52 <genEnumLiterals ecoreEnumLiteral="problem.ecore#//BinaryOp/MUL"/> 52 <genEnumLiterals ecoreEnumLiteral="problem.ecore#//BinaryOp/MUL"/>
53 <genEnumLiterals ecoreEnumLiteral="problem.ecore#//BinaryOp/DIV"/> 53 <genEnumLiterals ecoreEnumLiteral="problem.ecore#//BinaryOp/DIV"/>
54 <genEnumLiterals ecoreEnumLiteral="problem.ecore#//BinaryOp/POW"/> 54 <genEnumLiterals ecoreEnumLiteral="problem.ecore#//BinaryOp/POW"/>
55 <genEnumLiterals ecoreEnumLiteral="problem.ecore#//BinaryOp/MEET"/>
56 <genEnumLiterals ecoreEnumLiteral="problem.ecore#//BinaryOp/JOIN"/>
55 </genEnums> 57 </genEnums>
56 <genEnums typeSafeEnumCompatible="false" ecoreEnum="problem.ecore#//AggregationOp"> 58 <genEnums typeSafeEnumCompatible="false" ecoreEnum="problem.ecore#//AggregationOp">
57 <genEnumLiterals ecoreEnumLiteral="problem.ecore#//AggregationOp/SUM"/> 59 <genEnumLiterals ecoreEnumLiteral="problem.ecore#//AggregationOp/SUM"/>
@@ -59,13 +61,18 @@
59 <genEnumLiterals ecoreEnumLiteral="problem.ecore#//AggregationOp/MIN"/> 61 <genEnumLiterals ecoreEnumLiteral="problem.ecore#//AggregationOp/MIN"/>
60 <genEnumLiterals ecoreEnumLiteral="problem.ecore#//AggregationOp/MAX"/> 62 <genEnumLiterals ecoreEnumLiteral="problem.ecore#//AggregationOp/MAX"/>
61 </genEnums> 63 </genEnums>
64 <genEnums typeSafeEnumCompatible="false" ecoreEnum="problem.ecore#//PrimitiveType">
65 <genEnumLiterals ecoreEnumLiteral="problem.ecore#//PrimitiveType/INT"/>
66 <genEnumLiterals ecoreEnumLiteral="problem.ecore#//PrimitiveType/REAL"/>
67 <genEnumLiterals ecoreEnumLiteral="problem.ecore#//PrimitiveType/STRING"/>
68 </genEnums>
62 <genClasses ecoreClass="problem.ecore#//Problem"> 69 <genClasses ecoreClass="problem.ecore#//Problem">
63 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//Problem/nodes"/> 70 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//Problem/nodes"/>
64 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//Problem/statements"/> 71 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//Problem/statements"/>
65 </genClasses> 72 </genClasses>
66 <genClasses ecoreClass="problem.ecore#//ClassDeclaration"> 73 <genClasses ecoreClass="problem.ecore#//ClassDeclaration">
67 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//ClassDeclaration/abstract"/> 74 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//ClassDeclaration/abstract"/>
68 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//ClassDeclaration/referenceDeclarations"/> 75 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//ClassDeclaration/featureDeclarations"/>
69 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//ClassDeclaration/newNode"/> 76 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//ClassDeclaration/newNode"/>
70 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//ClassDeclaration/superTypes"/> 77 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//ClassDeclaration/superTypes"/>
71 </genClasses> 78 </genClasses>
@@ -97,10 +104,10 @@
97 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//ExistentialQuantifier/implicitVariables"/> 104 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//ExistentialQuantifier/implicitVariables"/>
98 </genClasses> 105 </genClasses>
99 <genClasses ecoreClass="problem.ecore#//Assertion"> 106 <genClasses ecoreClass="problem.ecore#//Assertion">
100 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//Assertion/value"/>
101 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//Assertion/arguments"/> 107 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//Assertion/arguments"/>
102 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//Assertion/default"/> 108 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//Assertion/default"/>
103 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//Assertion/relation"/> 109 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//Assertion/relation"/>
110 <genFeatures children="true" createChild="true" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//Assertion/value"/>
104 </genClasses> 111 </genClasses>
105 <genClasses ecoreClass="problem.ecore#//Node"/> 112 <genClasses ecoreClass="problem.ecore#//Node"/>
106 <genClasses ecoreClass="problem.ecore#//ScopeDeclaration"> 113 <genClasses ecoreClass="problem.ecore#//ScopeDeclaration">
@@ -139,15 +146,6 @@
139 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//NodeAssertionArgument/node"/> 146 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//NodeAssertionArgument/node"/>
140 </genClasses> 147 </genClasses>
141 <genClasses ecoreClass="problem.ecore#//AssertionArgument"/> 148 <genClasses ecoreClass="problem.ecore#//AssertionArgument"/>
142 <genClasses ecoreClass="problem.ecore#//ConstantAssertionArgument">
143 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//ConstantAssertionArgument/constant"/>
144 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//ConstantAssertionArgument/node"/>
145 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//ConstantAssertionArgument/negative"/>
146 </genClasses>
147 <genClasses ecoreClass="problem.ecore#//NodeValueAssertion">
148 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//NodeValueAssertion/node"/>
149 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//NodeValueAssertion/value"/>
150 </genClasses>
151 <genClasses ecoreClass="problem.ecore#//IndividualDeclaration"> 149 <genClasses ecoreClass="problem.ecore#//IndividualDeclaration">
152 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//IndividualDeclaration/nodes"/> 150 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//IndividualDeclaration/nodes"/>
153 </genClasses> 151 </genClasses>
@@ -199,13 +197,10 @@
199 <genClasses ecoreClass="problem.ecore#//ComparisonExpr"> 197 <genClasses ecoreClass="problem.ecore#//ComparisonExpr">
200 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//ComparisonExpr/op"/> 198 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//ComparisonExpr/op"/>
201 </genClasses> 199 </genClasses>
202 <genClasses ecoreClass="problem.ecore#//ConstantExpr">
203 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//ConstantExpr/constant"/>
204 </genClasses>
205 <genClasses ecoreClass="problem.ecore#//QuantifiedUnaryExpr"/> 200 <genClasses ecoreClass="problem.ecore#//QuantifiedUnaryExpr"/>
206 <genClasses ecoreClass="problem.ecore#//FunctionDefinition"> 201 <genClasses ecoreClass="problem.ecore#//FunctionDefinition">
207 <genFeatures children="true" createChild="true" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//FunctionDefinition/cases"/> 202 <genFeatures children="true" createChild="true" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//FunctionDefinition/cases"/>
208 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//FunctionDefinition/functionType"/> 203 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//FunctionDefinition/functionType"/>
209 </genClasses> 204 </genClasses>
210 <genClasses ecoreClass="problem.ecore#//Case"/> 205 <genClasses ecoreClass="problem.ecore#//Case"/>
211 <genClasses ecoreClass="problem.ecore#//Conjunction"> 206 <genClasses ecoreClass="problem.ecore#//Conjunction">
@@ -224,5 +219,20 @@
224 <genClasses ecoreClass="problem.ecore#//ModalExpr"> 219 <genClasses ecoreClass="problem.ecore#//ModalExpr">
225 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//ModalExpr/modality"/> 220 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//ModalExpr/modality"/>
226 </genClasses> 221 </genClasses>
222 <genClasses ecoreClass="problem.ecore#//RangeExpr"/>
223 <genClasses ecoreClass="problem.ecore#//InfConstant"/>
224 <genClasses ecoreClass="problem.ecore#//FeatureDeclaration"/>
225 <genClasses ecoreClass="problem.ecore#//AttributeDeclaration">
226 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//AttributeDeclaration/attributeType"/>
227 </genClasses>
228 <genClasses ecoreClass="problem.ecore#//FlagDeclaration"/>
229 <genClasses ecoreClass="problem.ecore#//AssertionValue"/>
230 <genClasses ecoreClass="problem.ecore#//LogicAssertionValue">
231 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//LogicAssertionValue/logicValue"/>
232 </genClasses>
233 <genClasses ecoreClass="problem.ecore#//ExprAssertionValue">
234 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//ExprAssertionValue/body"/>
235 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//ExprAssertionValue/range"/>
236 </genClasses>
227 </genPackages> 237 </genPackages>
228</genmodel:GenModel> 238</genmodel:GenModel>
diff --git a/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/model/ModelInitializer.java b/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/model/ModelInitializer.java
index 233cc156..557e9752 100644
--- a/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/model/ModelInitializer.java
+++ b/subprojects/language-semantics/src/main/java/tools/refinery/language/semantics/model/ModelInitializer.java
@@ -75,8 +75,6 @@ public class ModelInitializer {
75 var argument = arguments.get(i); 75 var argument = arguments.get(i);
76 if (argument instanceof NodeAssertionArgument nodeArgument) { 76 if (argument instanceof NodeAssertionArgument nodeArgument) {
77 nodes[i] = nodeTrace.getOrThrow(nodeArgument.getNode()); 77 nodes[i] = nodeTrace.getOrThrow(nodeArgument.getNode());
78 } else if (argument instanceof ConstantAssertionArgument constantArgument) {
79 nodes[i] = nodeTrace.getOrThrow(constantArgument.getNode());
80 } else if (argument instanceof WildcardAssertionArgument) { 78 } else if (argument instanceof WildcardAssertionArgument) {
81 nodes[i] = -1; 79 nodes[i] = -1;
82 } else { 80 } else {
@@ -86,8 +84,11 @@ public class ModelInitializer {
86 return Tuple.of(nodes); 84 return Tuple.of(nodes);
87 } 85 }
88 86
89 private static TruthValue getTruthValue(LogicValue value) { 87 private static TruthValue getTruthValue(AssertionValue value) {
90 return switch (value) { 88 if (!(value instanceof LogicAssertionValue logicAssertionValue)) {
89 return TruthValue.ERROR;
90 }
91 return switch (logicAssertionValue.getLogicValue()) {
91 case TRUE -> TruthValue.TRUE; 92 case TRUE -> TruthValue.TRUE;
92 case FALSE -> TruthValue.FALSE; 93 case FALSE -> TruthValue.FALSE;
93 case UNKNOWN -> TruthValue.UNKNOWN; 94 case UNKNOWN -> TruthValue.UNKNOWN;
diff --git a/subprojects/language/src/main/java/tools/refinery/language/Problem.xtext b/subprojects/language/src/main/java/tools/refinery/language/Problem.xtext
index bc1ee465..8b13a693 100644
--- a/subprojects/language/src/main/java/tools/refinery/language/Problem.xtext
+++ b/subprojects/language/src/main/java/tools/refinery/language/Problem.xtext
@@ -10,14 +10,13 @@ Problem:
10Statement: 10Statement:
11 ClassDeclaration | EnumDeclaration | 11 ClassDeclaration | EnumDeclaration |
12 PredicateDefinition | FunctionDefinition | /* RuleDefinition | */ 12 PredicateDefinition | FunctionDefinition | /* RuleDefinition | */
13 Assertion | NodeValueAssertion | 13 Assertion | ScopeDeclaration | IndividualDeclaration;
14 ScopeDeclaration | IndividualDeclaration;
15 14
16ClassDeclaration: 15ClassDeclaration:
17 abstract?="abstract"? "class" 16 abstract?="abstract"? "class"
18 name=Identifier 17 name=Identifier
19 ("extends" superTypes+=[Relation|QualifiedName] ("," superTypes+=[Relation|QualifiedName])*)? 18 ("extends" superTypes+=[Relation|QualifiedName] ("," superTypes+=[Relation|QualifiedName])*)?
20 ("{" (referenceDeclarations+=ReferenceDeclaration ";"?)* "}" | "."); 19 ("{" (featureDeclarations+=FeatureDeclaration ";"?)* "}" | ".");
21 20
22EnumDeclaration: 21EnumDeclaration:
23 "enum" 22 "enum"
@@ -27,16 +26,27 @@ EnumDeclaration:
27EnumLiteral returns Node: 26EnumLiteral returns Node:
28 name=Identifier; 27 name=Identifier;
29 28
29FeatureDeclaration:
30 ReferenceDeclaration | AttributeDeclaration | FlagDeclaration;
31
30enum ReferenceKind: 32enum ReferenceKind:
31 REFERENCE="refers" | CONTAINMENT="contains" | CONTAINER="container"; 33 REFERENCE="refers" | CONTAINMENT="contains" | CONTAINER="container";
32 34
33ReferenceDeclaration: 35ReferenceDeclaration:
34 (kind=ReferenceKind referenceType=[Relation|QualifiedName] | 36 kind=ReferenceKind referenceType=[Relation|QualifiedName]
35 referenceType=[Relation|NonRelationKindQualifiedName])
36 ("[" multiplicity=Multiplicity "]")? 37 ("[" multiplicity=Multiplicity "]")?
37 name=Identifier 38 name=Identifier
38 ("opposite" opposite=[ReferenceDeclaration|QualifiedName])?; 39 ("opposite" opposite=[ReferenceDeclaration|QualifiedName])?;
39 40
41enum PrimitiveType:
42 INT="int" | REAL="real" | STRING="string";
43
44AttributeDeclaration:
45 attributeType=PrimitiveType name=Identifier;
46
47FlagDeclaration:
48 "bool" name=Identifier;
49
40enum ErrorKind returns PredicateKind: 50enum ErrorKind returns PredicateKind:
41 ERROR="error"; 51 ERROR="error";
42 52
@@ -54,7 +64,7 @@ Conjunction:
54 literals+=Expr ("," literals+=Expr)*; 64 literals+=Expr ("," literals+=Expr)*;
55 65
56FunctionDefinition: 66FunctionDefinition:
57 functionType=[Relation|QualifiedName] name=Identifier 67 functionType=PrimitiveType name=Identifier
58 "(" (parameters+=Parameter ("," parameters+=Parameter)*)? ")" 68 "(" (parameters+=Parameter ("," parameters+=Parameter)*)? ")"
59 ("=" cases+=Case (";" cases+=Case)*)? 69 ("=" cases+=Case (";" cases+=Case)*)?
60 "."; 70 ".";
@@ -96,11 +106,21 @@ Expr:
96 ComparisonExpr; 106 ComparisonExpr;
97 107
98enum ComparisonOp: 108enum ComparisonOp:
99 LESS="<" | LESS_EQ="<=" | GREATER=">" | GREATER_EQ=">=" | EQ="==" | NOT_EQ="!="; 109 LESS="<" | LESS_EQ="<=" | GREATER=">" | GREATER_EQ=">=" | EQ="==" | NOT_EQ="!=" | IN="in";
100 110
101ComparisonExpr returns Expr: 111ComparisonExpr returns Expr:
102 AdditiveExpr ({ComparisonExpr.left=current} 112 LatticeExpr ({ComparisonExpr.left=current}
103 op=ComparisonOp right=AdditiveExpr)*; 113 op=ComparisonOp right=LatticeExpr)*;
114
115enum LatticeOp returns BinaryOp:
116 MEET="/\\" | JOIN="\\/";
117
118LatticeExpr returns Expr:
119 RangeExpr ({ArithmeticBinaryExpr.left=current}
120 op=LatticeOp right=RangeExpr)*;
121
122RangeExpr returns Expr:
123 AdditiveExpr ({RangeExpr.left=current} ".." right=AdditiveExpr)*;
104 124
105enum AdditiveOp returns BinaryOp: 125enum AdditiveOp returns BinaryOp:
106 ADD="+" | SUB="-"; 126 ADD="+" | SUB="-";
@@ -125,7 +145,7 @@ ExponentialExpr returns Expr:
125 145
126UnaryExpr returns Expr: 146UnaryExpr returns Expr:
127 ArithmeticUnaryExpr | ModalExpr | NegationExpr | CountExpr | AggregationExpr | 147 ArithmeticUnaryExpr | ModalExpr | NegationExpr | CountExpr | AggregationExpr |
128 Atom | VariableOrNodeExpr | ConstantExpr | "(" Expr ")"; 148 Atom | VariableOrNodeExpr | Constant | "(" Expr ")";
129 149
130enum UnaryOp: 150enum UnaryOp:
131 PLUS="+" | MINUS="-"; 151 PLUS="+" | MINUS="-";
@@ -159,21 +179,33 @@ Atom:
159VariableOrNodeExpr: 179VariableOrNodeExpr:
160 variableOrNode=[VariableOrNode|QualifiedName]; 180 variableOrNode=[VariableOrNode|QualifiedName];
161 181
162ConstantExpr: 182Constant:
163 constant=Constant; 183 RealConstant | IntConstant | InfConstant | StringConstant;
184
185IntConstant:
186 intValue=INT;
187
188RealConstant:
189 realValue=Real;
190
191InfConstant:
192 {InfConstant} "*";
193
194StringConstant:
195 stringValue=STRING;
164 196
165Assertion: 197Assertion:
166 default?="default"? 198 default?="default"?
167 (value=ShortLogicValue? 199 (relation=[Relation|QualifiedName]
168 relation=[Relation|QualifiedName]
169 "(" (arguments+=AssertionArgument ("," arguments+=AssertionArgument)*)? ")"
170 | relation=[Relation|QualifiedName]
171 "(" (arguments+=AssertionArgument ("," arguments+=AssertionArgument)*)? ")" 200 "(" (arguments+=AssertionArgument ("," arguments+=AssertionArgument)*)? ")"
172 ":" value=LogicValue) 201 value=AssertionValue |
202 value=ShortLogicAssertionValue
203 relation=[Relation|QualifiedName]
204 "(" (arguments+=AssertionArgument ("," arguments+=AssertionArgument)*)? ")")
173 "."; 205 ".";
174 206
175AssertionArgument: 207AssertionArgument:
176 NodeAssertionArgument | WildcardAssertionArgument | ConstantAssertionArgument; 208 NodeAssertionArgument | WildcardAssertionArgument;
177 209
178NodeAssertionArgument: 210NodeAssertionArgument:
179 node=[Node|QualifiedName]; 211 node=[Node|QualifiedName];
@@ -181,29 +213,23 @@ NodeAssertionArgument:
181WildcardAssertionArgument: 213WildcardAssertionArgument:
182 {WildcardAssertionArgument} "*"; 214 {WildcardAssertionArgument} "*";
183 215
184ConstantAssertionArgument: 216AssertionValue:
185 negative?="-"? constant=Constant; 217 LogicAssertionValue | ExprAssertionValue;
186 218
187enum LogicValue: 219enum LogicValue:
188 TRUE="true" | FALSE="false" | UNKNOWN="unknown" | ERROR="error"; 220 TRUE="true" | FALSE="false" | UNKNOWN="unknown" | ERROR="error";
189 221
190enum ShortLogicValue returns LogicValue: 222LogicAssertionValue:
191 FALSE="!" | UNKNOWN="?"; 223 ":" logicValue=LogicValue;
192 224
193NodeValueAssertion: 225ExprAssertionValue:
194 node=[Node|QualifiedName] ":" value=Constant "."; 226 (range?="in" | "=") body=Expr;
195
196Constant:
197 RealConstant | IntConstant | StringConstant;
198
199IntConstant:
200 intValue=INT;
201 227
202RealConstant: 228enum ShortLogicValue returns LogicValue:
203 realValue=Real; 229 FALSE="!" | UNKNOWN="?";
204 230
205StringConstant: 231ShortLogicAssertionValue returns LogicAssertionValue:
206 stringValue=STRING; 232 {LogicAssertionValue} logicValue=ShortLogicValue?;
207 233
208ScopeDeclaration: 234ScopeDeclaration:
209 "scope" typeScopes+=TypeScope ("," typeScopes+=TypeScope)* "."; 235 "scope" typeScopes+=TypeScope ("," typeScopes+=TypeScope)* ".";
@@ -234,17 +260,11 @@ IndividualDeclaration:
234UpperBound returns ecore::EInt: 260UpperBound returns ecore::EInt:
235 INT | "*"; 261 INT | "*";
236 262
237NonRelationKindQualifiedName hidden():
238 NonRelationKindIdentifier ("::" Identifier)*;
239
240QualifiedName hidden(): 263QualifiedName hidden():
241 Identifier ("::" Identifier)*; 264 Identifier ("::" Identifier)*;
242 265
243NonRelationKindIdentifier:
244 ID | "true" | "false" | "contained" | "sum" | "prod" | "min" | "max";
245
246Identifier: 266Identifier:
247 NonRelationKindIdentifier | "contains"; 267 ID | "contains" | "contained" | "sum" | "prod" | "min" | "max";
248 268
249Real returns ecore::EDouble: 269Real returns ecore::EDouble:
250 EXPONENTIAL | INT "." (INT | EXPONENTIAL); 270 EXPONENTIAL | INT "." (INT | EXPONENTIAL);
diff --git a/subprojects/language/src/main/java/tools/refinery/language/ProblemRuntimeModule.java b/subprojects/language/src/main/java/tools/refinery/language/ProblemRuntimeModule.java
index c0777038..5efcdc81 100644
--- a/subprojects/language/src/main/java/tools/refinery/language/ProblemRuntimeModule.java
+++ b/subprojects/language/src/main/java/tools/refinery/language/ProblemRuntimeModule.java
@@ -3,25 +3,18 @@
3 */ 3 */
4package tools.refinery.language; 4package tools.refinery.language;
5 5
6import com.google.inject.Binder;
7import com.google.inject.name.Names;
6import org.eclipse.xtext.conversion.IValueConverterService; 8import org.eclipse.xtext.conversion.IValueConverterService;
7import org.eclipse.xtext.naming.IQualifiedNameConverter; 9import org.eclipse.xtext.naming.IQualifiedNameConverter;
8import org.eclipse.xtext.parser.IParser; 10import org.eclipse.xtext.parser.IParser;
9import org.eclipse.xtext.resource.DerivedStateAwareResource; 11import org.eclipse.xtext.resource.*;
10import org.eclipse.xtext.resource.DerivedStateAwareResourceDescriptionManager;
11import org.eclipse.xtext.resource.IDefaultResourceDescriptionStrategy;
12import org.eclipse.xtext.resource.IDerivedStateComputer;
13import org.eclipse.xtext.resource.ILocationInFileProvider;
14import org.eclipse.xtext.resource.IResourceDescription;
15import org.eclipse.xtext.resource.XtextResource;
16import org.eclipse.xtext.scoping.IGlobalScopeProvider; 12import org.eclipse.xtext.scoping.IGlobalScopeProvider;
17import org.eclipse.xtext.scoping.IScopeProvider; 13import org.eclipse.xtext.scoping.IScopeProvider;
18import org.eclipse.xtext.scoping.impl.AbstractDeclarativeScopeProvider; 14import org.eclipse.xtext.scoping.impl.AbstractDeclarativeScopeProvider;
15import org.eclipse.xtext.serializer.sequencer.ISemanticSequencer;
19import org.eclipse.xtext.validation.IResourceValidator; 16import org.eclipse.xtext.validation.IResourceValidator;
20import org.eclipse.xtext.xbase.annotations.validation.DerivedStateAwareResourceValidator; 17import org.eclipse.xtext.xbase.annotations.validation.DerivedStateAwareResourceValidator;
21
22import com.google.inject.Binder;
23import com.google.inject.name.Names;
24
25import tools.refinery.language.conversion.ProblemValueConverterService; 18import tools.refinery.language.conversion.ProblemValueConverterService;
26import tools.refinery.language.naming.ProblemQualifiedNameConverter; 19import tools.refinery.language.naming.ProblemQualifiedNameConverter;
27import tools.refinery.language.parser.antlr.TokenSourceInjectingProblemParser; 20import tools.refinery.language.parser.antlr.TokenSourceInjectingProblemParser;
@@ -30,6 +23,7 @@ import tools.refinery.language.resource.ProblemLocationInFileProvider;
30import tools.refinery.language.resource.ProblemResourceDescriptionStrategy; 23import tools.refinery.language.resource.ProblemResourceDescriptionStrategy;
31import tools.refinery.language.scoping.ProblemGlobalScopeProvider; 24import tools.refinery.language.scoping.ProblemGlobalScopeProvider;
32import tools.refinery.language.scoping.ProblemLocalScopeProvider; 25import tools.refinery.language.scoping.ProblemLocalScopeProvider;
26import tools.refinery.language.serializer.PreferShortAssertionsProblemSemanticSequencer;
33 27
34/** 28/**
35 * Use this class to register components to be used at runtime / without the 29 * Use this class to register components to be used at runtime / without the
@@ -88,4 +82,9 @@ public class ProblemRuntimeModule extends AbstractProblemRuntimeModule {
88 public Class<? extends ILocationInFileProvider> bindILocationInFileProvider() { 82 public Class<? extends ILocationInFileProvider> bindILocationInFileProvider() {
89 return ProblemLocationInFileProvider.class; 83 return ProblemLocationInFileProvider.class;
90 } 84 }
85
86 @Override
87 public Class<? extends ISemanticSequencer> bindISemanticSequencer() {
88 return PreferShortAssertionsProblemSemanticSequencer.class;
89 }
91} 90}
diff --git a/subprojects/language/src/main/java/tools/refinery/language/formatting2/ProblemFormatter.java b/subprojects/language/src/main/java/tools/refinery/language/formatting2/ProblemFormatter.java
index a65e0750..46870edb 100644
--- a/subprojects/language/src/main/java/tools/refinery/language/formatting2/ProblemFormatter.java
+++ b/subprojects/language/src/main/java/tools/refinery/language/formatting2/ProblemFormatter.java
@@ -3,6 +3,7 @@
3 */ 3 */
4package tools.refinery.language.formatting2; 4package tools.refinery.language.formatting2;
5 5
6import com.google.inject.Inject;
6import org.eclipse.emf.ecore.EObject; 7import org.eclipse.emf.ecore.EObject;
7import org.eclipse.xtext.formatting2.AbstractJavaFormatter; 8import org.eclipse.xtext.formatting2.AbstractJavaFormatter;
8import org.eclipse.xtext.formatting2.IFormattableDocument; 9import org.eclipse.xtext.formatting2.IFormattableDocument;
@@ -12,9 +13,12 @@ import org.eclipse.xtext.formatting2.regionaccess.ISequentialRegion;
12import org.eclipse.xtext.xbase.lib.Procedures.Procedure1; 13import org.eclipse.xtext.xbase.lib.Procedures.Procedure1;
13 14
14import tools.refinery.language.model.problem.*; 15import tools.refinery.language.model.problem.*;
16import tools.refinery.language.services.ProblemGrammarAccess;
15 17
16@SuppressWarnings("UnstableApiUsage") 18@SuppressWarnings("UnstableApiUsage")
17public class ProblemFormatter extends AbstractJavaFormatter { 19public class ProblemFormatter extends AbstractJavaFormatter {
20 @Inject
21 private ProblemGrammarAccess problemGrammarAccess;
18 22
19 protected void format(Problem problem, IFormattableDocument doc) { 23 protected void format(Problem problem, IFormattableDocument doc) {
20 doc.prepend(problem, this::noSpace); 24 doc.prepend(problem, this::noSpace);
@@ -31,17 +35,35 @@ public class ProblemFormatter extends AbstractJavaFormatter {
31 surroundNewLines(doc, assertion, this::singleNewLine); 35 surroundNewLines(doc, assertion, this::singleNewLine);
32 var region = regionFor(assertion); 36 var region = regionFor(assertion);
33 doc.append(region.feature(ProblemPackage.Literals.ASSERTION__DEFAULT), this::oneSpace); 37 doc.append(region.feature(ProblemPackage.Literals.ASSERTION__DEFAULT), this::oneSpace);
34 doc.append(region.feature(ProblemPackage.Literals.ASSERTION__VALUE), this::noSpace);
35 doc.append(region.feature(ProblemPackage.Literals.ASSERTION__RELATION), this::noSpace); 38 doc.append(region.feature(ProblemPackage.Literals.ASSERTION__RELATION), this::noSpace);
36 formatParenthesizedList(region, doc); 39 formatParenthesizedList(region, doc);
37 doc.prepend(region.keyword(":"), this::noSpace); 40 var value = assertion.getValue();
38 doc.append(region.keyword(":"), this::oneSpace); 41 if (value != null) {
42 doc.append(value, this::noSpace);
43 doc.format(value);
44 }
39 doc.prepend(region.keyword("."), this::noSpace); 45 doc.prepend(region.keyword("."), this::noSpace);
40 for (var argument : assertion.getArguments()) { 46 for (var argument : assertion.getArguments()) {
41 doc.format(argument); 47 doc.format(argument);
42 } 48 }
43 } 49 }
44 50
51 protected void format(LogicAssertionValue assertionValue, IFormattableDocument doc) {
52 var region = regionFor(assertionValue);
53 doc.prepend(region.keyword(":"), this::noSpace);
54 doc.append(region.keyword(":"), this::oneSpace);
55 }
56
57 protected void format(ExprAssertionValue assertionValue, IFormattableDocument doc) {
58 var region = regionFor(assertionValue);
59 doc.surround(region.keyword("="), this::oneSpace);
60 doc.surround(region.keyword("in"), this::oneSpace);
61 var body = assertionValue.getBody();
62 if (body != null) {
63 doc.format(body);
64 }
65 }
66
45 protected void format(ClassDeclaration classDeclaration, IFormattableDocument doc) { 67 protected void format(ClassDeclaration classDeclaration, IFormattableDocument doc) {
46 surroundNewLines(doc, classDeclaration, this::twoNewLines); 68 surroundNewLines(doc, classDeclaration, this::twoNewLines);
47 var region = regionFor(classDeclaration); 69 var region = regionFor(classDeclaration);
@@ -53,8 +75,8 @@ public class ProblemFormatter extends AbstractJavaFormatter {
53 doc.append(region.keyword("{"), it -> it.setNewLines(1, 1, 2)); 75 doc.append(region.keyword("{"), it -> it.setNewLines(1, 1, 2));
54 doc.prepend(region.keyword("}"), it -> it.setNewLines(1, 1, 2)); 76 doc.prepend(region.keyword("}"), it -> it.setNewLines(1, 1, 2));
55 doc.prepend(region.keyword("."), this::noSpace); 77 doc.prepend(region.keyword("."), this::noSpace);
56 for (var referenceDeclaration : classDeclaration.getReferenceDeclarations()) { 78 for (var featureDeclaration : classDeclaration.getFeatureDeclarations()) {
57 doc.format(referenceDeclaration); 79 doc.format(featureDeclaration);
58 } 80 }
59 } 81 }
60 82
diff --git a/subprojects/language/src/main/java/tools/refinery/language/resource/NodeNameCollector.java b/subprojects/language/src/main/java/tools/refinery/language/resource/NodeNameCollector.java
index 99bf9b64..419be0d3 100644
--- a/subprojects/language/src/main/java/tools/refinery/language/resource/NodeNameCollector.java
+++ b/subprojects/language/src/main/java/tools/refinery/language/resource/NodeNameCollector.java
@@ -1,10 +1,9 @@
1package tools.refinery.language.resource; 1package tools.refinery.language.resource;
2 2
3import java.util.List; 3import com.google.common.collect.ImmutableSet;
4import java.util.Set; 4import com.google.inject.Inject;
5 5import com.google.inject.name.Named;
6import org.eclipse.emf.ecore.EObject; 6import org.eclipse.emf.ecore.EObject;
7import org.eclipse.emf.ecore.EStructuralFeature;
8import org.eclipse.xtext.linking.impl.LinkingHelper; 7import org.eclipse.xtext.linking.impl.LinkingHelper;
9import org.eclipse.xtext.naming.IQualifiedNameConverter; 8import org.eclipse.xtext.naming.IQualifiedNameConverter;
10import org.eclipse.xtext.nodemodel.INode; 9import org.eclipse.xtext.nodemodel.INode;
@@ -12,20 +11,12 @@ import org.eclipse.xtext.nodemodel.util.NodeModelUtils;
12import org.eclipse.xtext.scoping.IScope; 11import org.eclipse.xtext.scoping.IScope;
13import org.eclipse.xtext.scoping.IScopeProvider; 12import org.eclipse.xtext.scoping.IScopeProvider;
14import org.eclipse.xtext.scoping.impl.AbstractDeclarativeScopeProvider; 13import org.eclipse.xtext.scoping.impl.AbstractDeclarativeScopeProvider;
15 14import tools.refinery.language.model.problem.*;
16import com.google.common.collect.ImmutableSet;
17import com.google.inject.Inject;
18import com.google.inject.name.Named;
19
20import tools.refinery.language.model.problem.Assertion;
21import tools.refinery.language.model.problem.AssertionArgument;
22import tools.refinery.language.model.problem.NodeAssertionArgument;
23import tools.refinery.language.model.problem.NodeValueAssertion;
24import tools.refinery.language.model.problem.Problem;
25import tools.refinery.language.model.problem.ProblemPackage;
26import tools.refinery.language.model.problem.Statement;
27import tools.refinery.language.naming.NamingUtil; 15import tools.refinery.language.naming.NamingUtil;
28 16
17import java.util.List;
18import java.util.Set;
19
29public class NodeNameCollector { 20public class NodeNameCollector {
30 @Inject 21 @Inject
31 private LinkingHelper linkingHelper; 22 private LinkingHelper linkingHelper;
@@ -55,25 +46,20 @@ public class NodeNameCollector {
55 protected void collectStatementNodeNames(Statement statement) { 46 protected void collectStatementNodeNames(Statement statement) {
56 if (statement instanceof Assertion assertion) { 47 if (statement instanceof Assertion assertion) {
57 collectAssertionNodeNames(assertion); 48 collectAssertionNodeNames(assertion);
58 } else if (statement instanceof NodeValueAssertion nodeValueAssertion) {
59 collectNodeValueAssertionNodeNames(nodeValueAssertion);
60 } 49 }
61 } 50 }
62 51
63 protected void collectAssertionNodeNames(Assertion assertion) { 52 protected void collectAssertionNodeNames(Assertion assertion) {
64 for (AssertionArgument argument : assertion.getArguments()) { 53 for (AssertionArgument argument : assertion.getArguments()) {
65 if (argument instanceof NodeAssertionArgument) { 54 if (argument instanceof NodeAssertionArgument) {
66 collectNodeNames(argument, ProblemPackage.Literals.NODE_ASSERTION_ARGUMENT__NODE); 55 collectNodeNames(argument);
67 } 56 }
68 } 57 }
69 } 58 }
70 59
71 protected void collectNodeValueAssertionNodeNames(NodeValueAssertion nodeValueAssertion) { 60 private void collectNodeNames(EObject eObject) {
72 collectNodeNames(nodeValueAssertion, ProblemPackage.Literals.NODE_VALUE_ASSERTION__NODE); 61 List<INode> nodes = NodeModelUtils.findNodesForFeature(eObject,
73 } 62 ProblemPackage.Literals.NODE_ASSERTION_ARGUMENT__NODE);
74
75 private void collectNodeNames(EObject eObject, EStructuralFeature feature) {
76 List<INode> nodes = NodeModelUtils.findNodesForFeature(eObject, feature);
77 for (INode node : nodes) { 63 for (INode node : nodes) {
78 var nodeName = linkingHelper.getCrossRefNodeAsString(node, true); 64 var nodeName = linkingHelper.getCrossRefNodeAsString(node, true);
79 if (!NamingUtil.isValidId(nodeName)) { 65 if (!NamingUtil.isValidId(nodeName)) {
@@ -85,4 +71,4 @@ public class NodeNameCollector {
85 } 71 }
86 } 72 }
87 } 73 }
88} \ No newline at end of file 74}
diff --git a/subprojects/language/src/main/java/tools/refinery/language/resource/ProblemDerivedStateComputer.java b/subprojects/language/src/main/java/tools/refinery/language/resource/ProblemDerivedStateComputer.java
index f28e1791..8d3a552a 100644
--- a/subprojects/language/src/main/java/tools/refinery/language/resource/ProblemDerivedStateComputer.java
+++ b/subprojects/language/src/main/java/tools/refinery/language/resource/ProblemDerivedStateComputer.java
@@ -1,13 +1,9 @@
1package tools.refinery.language.resource; 1package tools.refinery.language.resource;
2 2
3import java.util.Collection; 3import com.google.inject.Inject;
4import java.util.HashMap; 4import com.google.inject.Provider;
5import java.util.HashSet; 5import com.google.inject.Singleton;
6import java.util.List; 6import com.google.inject.name.Named;
7import java.util.Map;
8import java.util.Set;
9import java.util.function.Function;
10
11import org.eclipse.emf.common.notify.impl.AdapterImpl; 7import org.eclipse.emf.common.notify.impl.AdapterImpl;
12import org.eclipse.emf.ecore.EObject; 8import org.eclipse.emf.ecore.EObject;
13import org.eclipse.emf.ecore.resource.Resource; 9import org.eclipse.emf.ecore.resource.Resource;
@@ -16,37 +12,20 @@ import org.eclipse.xtext.Constants;
16import org.eclipse.xtext.resource.DerivedStateAwareResource; 12import org.eclipse.xtext.resource.DerivedStateAwareResource;
17import org.eclipse.xtext.resource.IDerivedStateComputer; 13import org.eclipse.xtext.resource.IDerivedStateComputer;
18import org.eclipse.xtext.resource.XtextResource; 14import org.eclipse.xtext.resource.XtextResource;
19import org.eclipse.xtext.scoping.IScopeProvider; 15import tools.refinery.language.model.problem.*;
20import org.eclipse.xtext.scoping.impl.AbstractDeclarativeScopeProvider;
21
22import com.google.inject.Inject;
23import com.google.inject.Provider;
24import com.google.inject.Singleton;
25import com.google.inject.name.Named;
26 16
27import tools.refinery.language.model.problem.Assertion; 17import java.util.*;
28import tools.refinery.language.model.problem.ClassDeclaration; 18import java.util.function.Function;
29import tools.refinery.language.model.problem.ConstantAssertionArgument;
30import tools.refinery.language.model.problem.Node;
31import tools.refinery.language.model.problem.Problem;
32import tools.refinery.language.model.problem.ProblemFactory;
33import tools.refinery.language.model.problem.Statement;
34 19
35@Singleton 20@Singleton
36public class ProblemDerivedStateComputer implements IDerivedStateComputer { 21public class ProblemDerivedStateComputer implements IDerivedStateComputer {
37 public static final String NEW_NODE = "new"; 22 public static final String NEW_NODE = "new";
38 23
39 public static final String CONSTANT_NODE = "constant";
40
41 @Inject 24 @Inject
42 @Named(Constants.LANGUAGE_NAME) 25 @Named(Constants.LANGUAGE_NAME)
43 private String languageName; 26 private String languageName;
44 27
45 @Inject 28 @Inject
46 @Named(AbstractDeclarativeScopeProvider.NAMED_DELEGATE)
47 private IScopeProvider scopeProvider;
48
49 @Inject
50 private Provider<NodeNameCollector> nodeNameCollectorProvider; 29 private Provider<NodeNameCollector> nodeNameCollectorProvider;
51 30
52 @Inject 31 @Inject
@@ -88,15 +67,6 @@ public class ProblemDerivedStateComputer implements IDerivedStateComputer {
88 && declaration.getNewNode() == null) { 67 && declaration.getNewNode() == null) {
89 var newNode = adapter.createNewNodeIfAbsent(declaration, key -> createNode(NEW_NODE)); 68 var newNode = adapter.createNewNodeIfAbsent(declaration, key -> createNode(NEW_NODE));
90 declaration.setNewNode(newNode); 69 declaration.setNewNode(newNode);
91 } else if (statement instanceof Assertion assertion) {
92 for (var argument : assertion.getArguments()) {
93 if (argument instanceof ConstantAssertionArgument constantAssertionArgument
94 && constantAssertionArgument.getNode() == null) {
95 var constantNode = adapter.createConstantNodeIfAbsent(constantAssertionArgument,
96 key -> createNode(CONSTANT_NODE));
97 constantAssertionArgument.setNode(constantNode);
98 }
99 }
100 } 70 }
101 } 71 }
102 } 72 }
@@ -130,22 +100,14 @@ public class ProblemDerivedStateComputer implements IDerivedStateComputer {
130 100
131 protected void discardDerivedProblemState(Problem problem, Adapter adapter) { 101 protected void discardDerivedProblemState(Problem problem, Adapter adapter) {
132 Set<ClassDeclaration> classDeclarations = new HashSet<>(); 102 Set<ClassDeclaration> classDeclarations = new HashSet<>();
133 Set<ConstantAssertionArgument> constantAssertionArguments = new HashSet<>();
134 problem.getNodes().clear(); 103 problem.getNodes().clear();
135 for (var statement : problem.getStatements()) { 104 for (var statement : problem.getStatements()) {
136 if (statement instanceof ClassDeclaration classDeclaration) { 105 if (statement instanceof ClassDeclaration classDeclaration) {
137 classDeclaration.setNewNode(null); 106 classDeclaration.setNewNode(null);
138 classDeclarations.add(classDeclaration); 107 classDeclarations.add(classDeclaration);
139 } else if (statement instanceof Assertion assertion) {
140 for (var argument : assertion.getArguments()) {
141 if (argument instanceof ConstantAssertionArgument constantAssertionArgument) {
142 constantAssertionArgument.setNode(null);
143 constantAssertionArguments.add(constantAssertionArgument);
144 }
145 }
146 } 108 }
147 } 109 }
148 adapter.retainAll(classDeclarations, constantAssertionArguments); 110 adapter.retainAll(classDeclarations);
149 derivedVariableComputer.discardDerivedVariables(problem); 111 derivedVariableComputer.discardDerivedVariables(problem);
150 } 112 }
151 113
@@ -166,24 +128,15 @@ public class ProblemDerivedStateComputer implements IDerivedStateComputer {
166 } 128 }
167 129
168 protected static class Adapter extends AdapterImpl { 130 protected static class Adapter extends AdapterImpl {
169 private Map<ClassDeclaration, Node> newNodes = new HashMap<>(); 131 private final Map<ClassDeclaration, Node> newNodes = new HashMap<>();
170
171 private Map<ConstantAssertionArgument, Node> constantNodes = new HashMap<>();
172 132
173 public Node createNewNodeIfAbsent(ClassDeclaration classDeclaration, 133 public Node createNewNodeIfAbsent(ClassDeclaration classDeclaration,
174 Function<ClassDeclaration, Node> createNode) { 134 Function<ClassDeclaration, Node> createNode) {
175 return newNodes.computeIfAbsent(classDeclaration, createNode); 135 return newNodes.computeIfAbsent(classDeclaration, createNode);
176 } 136 }
177 137
178 public Node createConstantNodeIfAbsent(ConstantAssertionArgument constantAssertionArgument, 138 public void retainAll(Collection<ClassDeclaration> classDeclarations) {
179 Function<ConstantAssertionArgument, Node> createNode) {
180 return constantNodes.computeIfAbsent(constantAssertionArgument, createNode);
181 }
182
183 public void retainAll(Collection<ClassDeclaration> classDeclarations,
184 Collection<ConstantAssertionArgument> constantAssertionArguments) {
185 newNodes.keySet().retainAll(classDeclarations); 139 newNodes.keySet().retainAll(classDeclarations);
186 constantNodes.keySet().retainAll(constantAssertionArguments);
187 } 140 }
188 141
189 @Override 142 @Override
diff --git a/subprojects/language/src/main/java/tools/refinery/language/scoping/ProblemScopeProvider.java b/subprojects/language/src/main/java/tools/refinery/language/scoping/ProblemScopeProvider.java
index c2045aea..3ab07496 100644
--- a/subprojects/language/src/main/java/tools/refinery/language/scoping/ProblemScopeProvider.java
+++ b/subprojects/language/src/main/java/tools/refinery/language/scoping/ProblemScopeProvider.java
@@ -29,8 +29,7 @@ public class ProblemScopeProvider extends AbstractProblemScopeProvider {
29 @Override 29 @Override
30 public IScope getScope(EObject context, EReference reference) { 30 public IScope getScope(EObject context, EReference reference) {
31 var scope = super.getScope(context, reference); 31 var scope = super.getScope(context, reference);
32 if (reference == ProblemPackage.Literals.NODE_ASSERTION_ARGUMENT__NODE 32 if (reference == ProblemPackage.Literals.NODE_ASSERTION_ARGUMENT__NODE) {
33 || reference == ProblemPackage.Literals.NODE_VALUE_ASSERTION__NODE) {
34 return getNodesScope(context, scope); 33 return getNodesScope(context, scope);
35 } 34 }
36 if (reference == ProblemPackage.Literals.VARIABLE_OR_NODE_EXPR__VARIABLE_OR_NODE 35 if (reference == ProblemPackage.Literals.VARIABLE_OR_NODE_EXPR__VARIABLE_OR_NODE
diff --git a/subprojects/language/src/main/java/tools/refinery/language/serializer/PreferShortAssertionsProblemSemanticSequencer.java b/subprojects/language/src/main/java/tools/refinery/language/serializer/PreferShortAssertionsProblemSemanticSequencer.java
new file mode 100644
index 00000000..c51a5e28
--- /dev/null
+++ b/subprojects/language/src/main/java/tools/refinery/language/serializer/PreferShortAssertionsProblemSemanticSequencer.java
@@ -0,0 +1,52 @@
1package tools.refinery.language.serializer;
2
3import com.google.inject.Inject;
4import org.eclipse.xtext.serializer.ISerializationContext;
5import org.eclipse.xtext.serializer.sequencer.ITransientValueService.ListTransient;
6import org.eclipse.xtext.serializer.sequencer.ITransientValueService.ValueTransient;
7import tools.refinery.language.model.problem.Assertion;
8import tools.refinery.language.model.problem.LogicAssertionValue;
9import tools.refinery.language.model.problem.LogicValue;
10import tools.refinery.language.model.problem.ProblemPackage;
11import tools.refinery.language.services.ProblemGrammarAccess;
12
13public class PreferShortAssertionsProblemSemanticSequencer extends ProblemSemanticSequencer {
14 @Inject
15 private ProblemGrammarAccess grammarAccess;
16
17 @Override
18 protected void sequence_Assertion(ISerializationContext context, Assertion semanticObject) {
19 if (semanticObject.isDefault() ||
20 !(semanticObject.getValue() instanceof LogicAssertionValue logicAssertionValue) ||
21 logicAssertionValue.getLogicValue() == LogicValue.ERROR) {
22 super.sequence_Assertion(context, semanticObject);
23 return;
24 }
25 if (errorAcceptor != null) {
26 if (transientValues.isValueTransient(semanticObject, ProblemPackage.Literals.ASSERTION__RELATION) == ValueTransient.YES) {
27 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject,
28 ProblemPackage.Literals.ASSERTION__RELATION));
29 }
30 if (transientValues.isListTransient(semanticObject, ProblemPackage.Literals.ASSERTION__ARGUMENTS) == ListTransient.YES) {
31 errorAcceptor.accept(diagnosticProvider.createFeatureValueMissing(semanticObject,
32 ProblemPackage.Literals.ASSERTION__ARGUMENTS));
33 }
34 }
35 var feeder = createSequencerFeeder(context, semanticObject);
36 var access = grammarAccess.getAssertionAccess();
37 feeder.accept(access.getValueShortLogicAssertionValueParserRuleCall_1_1_0_0(), logicAssertionValue);
38 feeder.accept(access.getRelationRelationQualifiedNameParserRuleCall_1_1_1_0_1(), semanticObject.getRelation());
39 var iterator = semanticObject.getArguments().iterator();
40 if (iterator.hasNext()) {
41 var firstArgument = iterator.next();
42 feeder.accept(access.getArgumentsAssertionArgumentParserRuleCall_1_1_3_0_0(), firstArgument, 0);
43 int index = 1;
44 while (iterator.hasNext()) {
45 var argument = iterator.next();
46 feeder.accept(access.getArgumentsAssertionArgumentParserRuleCall_1_1_3_1_1_0(), argument, index);
47 index++;
48 }
49 }
50 feeder.finish();
51 }
52}
diff --git a/subprojects/language/src/main/java/tools/refinery/language/utils/BuiltinSymbols.java b/subprojects/language/src/main/java/tools/refinery/language/utils/BuiltinSymbols.java
index 7e43cecf..d3777cd3 100644
--- a/subprojects/language/src/main/java/tools/refinery/language/utils/BuiltinSymbols.java
+++ b/subprojects/language/src/main/java/tools/refinery/language/utils/BuiltinSymbols.java
@@ -1,14 +1,8 @@
1package tools.refinery.language.utils; 1package tools.refinery.language.utils;
2 2
3import tools.refinery.language.model.problem.ClassDeclaration; 3import tools.refinery.language.model.problem.*;
4import tools.refinery.language.model.problem.EnumDeclaration;
5import tools.refinery.language.model.problem.Node;
6import tools.refinery.language.model.problem.PredicateDefinition;
7import tools.refinery.language.model.problem.Problem;
8import tools.refinery.language.model.problem.ReferenceDeclaration;
9 4
10public record BuiltinSymbols(Problem problem, ClassDeclaration node, ReferenceDeclaration equals, 5public record BuiltinSymbols(Problem problem, ClassDeclaration node, ReferenceDeclaration equals,
11 PredicateDefinition exists, ClassDeclaration domain, ClassDeclaration data, EnumDeclaration bool, Node boolTrue, 6 PredicateDefinition exists, PredicateDefinition contained, PredicateDefinition contains,
12 Node boolFalse, ClassDeclaration intClass, ClassDeclaration real, ClassDeclaration string, 7 PredicateDefinition root) {
13 PredicateDefinition contained, PredicateDefinition contains, PredicateDefinition root) {
14} 8}
diff --git a/subprojects/language/src/main/java/tools/refinery/language/utils/NodeInfo.java b/subprojects/language/src/main/java/tools/refinery/language/utils/NodeInfo.java
index 38db0e29..c8f47653 100644
--- a/subprojects/language/src/main/java/tools/refinery/language/utils/NodeInfo.java
+++ b/subprojects/language/src/main/java/tools/refinery/language/utils/NodeInfo.java
@@ -1,12 +1,4 @@
1package tools.refinery.language.utils; 1package tools.refinery.language.utils;
2 2
3import java.util.ArrayList; 3public record NodeInfo(String name, boolean individual) {
4import java.util.Collection;
5
6import tools.refinery.language.model.problem.NodeValueAssertion;
7
8public record NodeInfo(String name, boolean individual, Collection<NodeValueAssertion> valueAssertions) {
9 public NodeInfo(String name, boolean individual) {
10 this(name, individual, new ArrayList<>());
11 }
12} 4}
diff --git a/subprojects/language/src/main/java/tools/refinery/language/utils/ProblemDesugarer.java b/subprojects/language/src/main/java/tools/refinery/language/utils/ProblemDesugarer.java
index 23fd8982..b8200919 100644
--- a/subprojects/language/src/main/java/tools/refinery/language/utils/ProblemDesugarer.java
+++ b/subprojects/language/src/main/java/tools/refinery/language/utils/ProblemDesugarer.java
@@ -40,19 +40,10 @@ public class ProblemDesugarer {
40 var node = doGetDeclaration(builtin, ClassDeclaration.class, "node"); 40 var node = doGetDeclaration(builtin, ClassDeclaration.class, "node");
41 var equals = doGetEqualsReference(node); 41 var equals = doGetEqualsReference(node);
42 var exists = doGetDeclaration(builtin, PredicateDefinition.class, "exists"); 42 var exists = doGetDeclaration(builtin, PredicateDefinition.class, "exists");
43 var domain = doGetDeclaration(builtin, ClassDeclaration.class, "domain");
44 var data = doGetDeclaration(builtin, ClassDeclaration.class, "data");
45 var bool = doGetDeclaration(builtin, EnumDeclaration.class, "bool");
46 var boolTrue = doGetLiteral(bool, "true");
47 var boolFalse = doGetLiteral(bool, "false");
48 var intClass = doGetDeclaration(builtin, ClassDeclaration.class, "int");
49 var real = doGetDeclaration(builtin, ClassDeclaration.class, "real");
50 var string = doGetDeclaration(builtin, ClassDeclaration.class, "string");
51 var contained = doGetDeclaration(builtin, PredicateDefinition.class, "contained"); 43 var contained = doGetDeclaration(builtin, PredicateDefinition.class, "contained");
52 var contains = doGetDeclaration(builtin, PredicateDefinition.class, "contains"); 44 var contains = doGetDeclaration(builtin, PredicateDefinition.class, "contains");
53 var root = doGetDeclaration(builtin, PredicateDefinition.class, "root"); 45 var root = doGetDeclaration(builtin, PredicateDefinition.class, "root");
54 return new BuiltinSymbols(builtin, node, equals, exists, domain, data, bool, boolTrue, boolFalse, intClass, 46 return new BuiltinSymbols(builtin, node, equals, exists, contained, contains, root);
55 real, string, contained, contains, root);
56 } 47 }
57 48
58 private <T extends Statement & NamedElement> T doGetDeclaration(Problem builtin, Class<T> type, String name) { 49 private <T extends Statement & NamedElement> T doGetDeclaration(Problem builtin, Class<T> type, String name) {
@@ -62,16 +53,12 @@ public class ProblemDesugarer {
62 } 53 }
63 54
64 private ReferenceDeclaration doGetEqualsReference(ClassDeclaration nodeClassDeclaration) { 55 private ReferenceDeclaration doGetEqualsReference(ClassDeclaration nodeClassDeclaration) {
65 return nodeClassDeclaration.getReferenceDeclarations().stream() 56 return (ReferenceDeclaration) nodeClassDeclaration.getFeatureDeclarations().stream()
66 .filter(reference -> "equals".equals(reference.getName())).findFirst() 57 .filter(reference -> reference instanceof ReferenceDeclaration &&
58 "equals".equals(reference.getName())).findFirst()
67 .orElseThrow(() -> new IllegalArgumentException("Reference " + "equals" + " not found")); 59 .orElseThrow(() -> new IllegalArgumentException("Reference " + "equals" + " not found"));
68 } 60 }
69 61
70 private Node doGetLiteral(EnumDeclaration enumDeclaration, String name) {
71 return enumDeclaration.getLiterals().stream().filter(literal -> name.equals(literal.getName())).findFirst()
72 .orElseThrow(() -> new IllegalArgumentException("Enum literal " + name + " not found"));
73 }
74
75 public Collection<ClassDeclaration> getSuperclassesAndSelf(ClassDeclaration classDeclaration) { 62 public Collection<ClassDeclaration> getSuperclassesAndSelf(ClassDeclaration classDeclaration) {
76 return cache.get(Tuples.create(classDeclaration, "superclassesAndSelf"), classDeclaration.eResource(), 63 return cache.get(Tuples.create(classDeclaration, "superclassesAndSelf"), classDeclaration.eResource(),
77 () -> doGetSuperclassesAndSelf(classDeclaration)); 64 () -> doGetSuperclassesAndSelf(classDeclaration));
@@ -94,9 +81,6 @@ public class ProblemDesugarer {
94 } 81 }
95 } 82 }
96 } 83 }
97 if (builtinSymbols.isPresent() && !found.contains(builtinSymbols.get().data())) {
98 found.add(builtinSymbols.get().domain());
99 }
100 return found; 84 return found;
101 } 85 }
102 86
@@ -108,31 +92,17 @@ public class ProblemDesugarer {
108 private Collection<ReferenceDeclaration> doGetAllReferenceDeclarations(ClassDeclaration classDeclaration) { 92 private Collection<ReferenceDeclaration> doGetAllReferenceDeclarations(ClassDeclaration classDeclaration) {
109 Set<ReferenceDeclaration> referenceDeclarations = new HashSet<>(); 93 Set<ReferenceDeclaration> referenceDeclarations = new HashSet<>();
110 for (ClassDeclaration superclass : getSuperclassesAndSelf(classDeclaration)) { 94 for (ClassDeclaration superclass : getSuperclassesAndSelf(classDeclaration)) {
111 referenceDeclarations.addAll(superclass.getReferenceDeclarations()); 95 for (FeatureDeclaration featureDeclaration : superclass.getFeatureDeclarations()) {
96 if (featureDeclaration instanceof ReferenceDeclaration referenceDeclaration) {
97 referenceDeclarations.add(referenceDeclaration);
98 }
99 }
112 } 100 }
113 return referenceDeclarations; 101 return referenceDeclarations;
114 } 102 }
115 103
116 public boolean isContainmentReference(ReferenceDeclaration referenceDeclaration) { 104 public boolean isContainmentReference(ReferenceDeclaration referenceDeclaration) {
117 switch (referenceDeclaration.getKind()) { 105 return referenceDeclaration.getKind() == ReferenceKind.CONTAINMENT;
118 case REFERENCE, CONTAINER:
119 return false;
120 case CONTAINMENT:
121 return true;
122 case DEFAULT:
123 return isDataClass(referenceDeclaration.getReferenceType());
124 default:
125 throw new IllegalArgumentException("Unknown reference kind " + referenceDeclaration.getKind());
126 }
127 }
128
129 public boolean isDataClass(Relation relation) {
130 if (relation instanceof ClassDeclaration classDeclaration) {
131 var supertypes = getSuperclassesAndSelf(classDeclaration);
132 var builtinSymbols = getBuiltinSymbols(relation);
133 return builtinSymbols.isPresent() && supertypes.contains(builtinSymbols.get().data());
134 }
135 return false;
136 } 106 }
137 107
138 public CollectedSymbols collectSymbols(Problem problem) { 108 public CollectedSymbols collectSymbols(Problem problem) {
diff --git a/subprojects/language/src/main/java/tools/refinery/language/utils/SymbolCollector.java b/subprojects/language/src/main/java/tools/refinery/language/utils/SymbolCollector.java
index 210e96ab..5412f620 100644
--- a/subprojects/language/src/main/java/tools/refinery/language/utils/SymbolCollector.java
+++ b/subprojects/language/src/main/java/tools/refinery/language/utils/SymbolCollector.java
@@ -2,7 +2,6 @@ package tools.refinery.language.utils;
2 2
3import com.google.inject.Inject; 3import com.google.inject.Inject;
4import org.eclipse.emf.ecore.EObject; 4import org.eclipse.emf.ecore.EObject;
5import org.eclipse.emf.ecore.util.EcoreUtil;
6import org.eclipse.xtext.naming.IQualifiedNameConverter; 5import org.eclipse.xtext.naming.IQualifiedNameConverter;
7import org.eclipse.xtext.naming.IQualifiedNameProvider; 6import org.eclipse.xtext.naming.IQualifiedNameProvider;
8import tools.refinery.language.model.problem.*; 7import tools.refinery.language.model.problem.*;
@@ -64,43 +63,65 @@ class SymbolCollector {
64 } 63 }
65 64
66 private void collectClass(ClassDeclaration classDeclaration) { 65 private void collectClass(ClassDeclaration classDeclaration) {
67 // node and domain classes are not contained by default, but every other type is 66 var contained = classDeclaration != builtinSymbols.node();
68 // contained, including data types.
69 var contained =
70 classDeclaration != builtinSymbols.node() && classDeclaration != builtinSymbols.domain();
71 var containmentRole = contained ? ContainmentRole.CONTAINED : ContainmentRole.NONE; 67 var containmentRole = contained ? ContainmentRole.CONTAINED : ContainmentRole.NONE;
72 var instanceParameter = ProblemFactory.eINSTANCE.createParameter(); 68 var instanceParameter = ProblemFactory.eINSTANCE.createParameter();
73 instanceParameter.setName("instance"); 69 instanceParameter.setName("instance");
74 var classInfo = new RelationInfo(getQualifiedNameString(classDeclaration), containmentRole, 70 var classInfo = new RelationInfo(getQualifiedNameString(classDeclaration), containmentRole,
75 List.of(instanceParameter), null, null, List.of()); 71 List.of(instanceParameter), null, null, List.of());
76 relations.put(classDeclaration, classInfo); 72 relations.put(classDeclaration, classInfo);
77 collectReferences(classDeclaration); 73 collectFeatures(classDeclaration);
78 } 74 }
79 75
80 private void collectReferences(ClassDeclaration classDeclaration) { 76 private void collectFeatures(ClassDeclaration classDeclaration) {
81 for (var referenceDeclaration : classDeclaration.getReferenceDeclarations()) { 77 for (var featureDeclaration : classDeclaration.getFeatureDeclarations()) {
82 var referenceRole = desugarer.isContainmentReference(referenceDeclaration) ? 78 if (featureDeclaration instanceof ReferenceDeclaration referenceDeclaration) {
83 ContainmentRole.CONTAINMENT : 79 collectReference(classDeclaration, referenceDeclaration);
84 ContainmentRole.NONE; 80 } else if (featureDeclaration instanceof AttributeDeclaration attributeDeclaration) {
85 var sourceParameter = ProblemFactory.eINSTANCE.createParameter(); 81 collectAttribute(classDeclaration, attributeDeclaration);
86 sourceParameter.setName("source"); 82 } else if (featureDeclaration instanceof FlagDeclaration flagDeclaration) {
87 sourceParameter.setParameterType(classDeclaration); 83 collectFlag(classDeclaration, flagDeclaration);
88 var targetParameter = ProblemFactory.eINSTANCE.createParameter(); 84 } else {
89 targetParameter.setName("target"); 85 throw new IllegalArgumentException("Unknown FeatureDeclaration: " + featureDeclaration);
90 var multiplicity = referenceDeclaration.getMultiplicity();
91 if (multiplicity == null) {
92 var exactMultiplicity = ProblemFactory.eINSTANCE.createExactMultiplicity();
93 exactMultiplicity.setExactValue(1);
94 multiplicity = exactMultiplicity;
95 } 86 }
96 targetParameter.setParameterType(referenceDeclaration.getReferenceType());
97 var referenceInfo = new RelationInfo(getQualifiedNameString(referenceDeclaration), referenceRole,
98 List.of(sourceParameter, targetParameter), multiplicity, referenceDeclaration.getOpposite(),
99 List.of());
100 this.relations.put(referenceDeclaration, referenceInfo);
101 } 87 }
102 } 88 }
103 89
90 private void collectReference(ClassDeclaration classDeclaration, ReferenceDeclaration referenceDeclaration) {
91 var referenceRole = desugarer.isContainmentReference(referenceDeclaration) ?
92 ContainmentRole.CONTAINMENT :
93 ContainmentRole.NONE;
94 var sourceParameter = ProblemFactory.eINSTANCE.createParameter();
95 sourceParameter.setName("source");
96 sourceParameter.setParameterType(classDeclaration);
97 var targetParameter = ProblemFactory.eINSTANCE.createParameter();
98 targetParameter.setName("target");
99 var multiplicity = referenceDeclaration.getMultiplicity();
100 if (multiplicity == null) {
101 var exactMultiplicity = ProblemFactory.eINSTANCE.createExactMultiplicity();
102 exactMultiplicity.setExactValue(1);
103 multiplicity = exactMultiplicity;
104 }
105 targetParameter.setParameterType(referenceDeclaration.getReferenceType());
106 var referenceInfo = new RelationInfo(getQualifiedNameString(referenceDeclaration), referenceRole,
107 List.of(sourceParameter, targetParameter), multiplicity, referenceDeclaration.getOpposite(),
108 List.of());
109 this.relations.put(referenceDeclaration, referenceInfo);
110 }
111
112 private void collectAttribute(ClassDeclaration classDeclaration, AttributeDeclaration attributeDeclaration) {
113 // TODO Implement attribute handling.
114 }
115
116 private void collectFlag(ClassDeclaration classDeclaration, FlagDeclaration flagDeclaration) {
117 var parameter = ProblemFactory.eINSTANCE.createParameter();
118 parameter.setName("object");
119 parameter.setParameterType(classDeclaration);
120 var referenceInfo = new RelationInfo(getQualifiedNameString(flagDeclaration), ContainmentRole.NONE,
121 List.of(parameter), null, null, List.of());
122 this.relations.put(flagDeclaration, referenceInfo);
123 }
124
104 private void collectEnum(EnumDeclaration enumDeclaration) { 125 private void collectEnum(EnumDeclaration enumDeclaration) {
105 var instanceParameter = ProblemFactory.eINSTANCE.createParameter(); 126 var instanceParameter = ProblemFactory.eINSTANCE.createParameter();
106 instanceParameter.setName("instance"); 127 instanceParameter.setName("instance");
@@ -117,8 +138,6 @@ class SymbolCollector {
117 collectNewNode(classDeclaration); 138 collectNewNode(classDeclaration);
118 } else if (statement instanceof EnumDeclaration enumDeclaration) { 139 } else if (statement instanceof EnumDeclaration enumDeclaration) {
119 collectEnumLiterals(enumDeclaration); 140 collectEnumLiterals(enumDeclaration);
120 } else if (statement instanceof Assertion assertion) {
121 collectConstantNodes(assertion);
122 } 141 }
123 } 142 }
124 for (var node : problem.getNodes()) { 143 for (var node : problem.getNodes()) {
@@ -145,17 +164,6 @@ class SymbolCollector {
145 } 164 }
146 } 165 }
147 166
148 private void collectConstantNodes(Assertion assertion) {
149 for (var argument : assertion.getArguments()) {
150 if (argument instanceof ConstantAssertionArgument constantAssertionArgument) {
151 var constantNode = constantAssertionArgument.getNode();
152 if (constantNode != null) {
153 addNode(constantNode, false);
154 }
155 }
156 }
157 }
158
159 private void addNode(Node node, boolean individual) { 167 private void addNode(Node node, boolean individual) {
160 var info = new NodeInfo(getQualifiedNameString(node), individual); 168 var info = new NodeInfo(getQualifiedNameString(node), individual);
161 this.nodes.put(node, info); 169 this.nodes.put(node, info);
@@ -173,8 +181,6 @@ class SymbolCollector {
173 for (var statement : problem.getStatements()) { 181 for (var statement : problem.getStatements()) {
174 if (statement instanceof Assertion assertion) { 182 if (statement instanceof Assertion assertion) {
175 collectAssertion(assertion); 183 collectAssertion(assertion);
176 } else if (statement instanceof NodeValueAssertion nodeValueAssertion) {
177 collectNodeValueAssertion(nodeValueAssertion);
178 } else if (statement instanceof PredicateDefinition predicateDefinition) { 184 } else if (statement instanceof PredicateDefinition predicateDefinition) {
179 collectPredicateAssertion(predicateDefinition); 185 collectPredicateAssertion(predicateDefinition);
180 } else if (statement instanceof ClassDeclaration classDeclaration) { 186 } else if (statement instanceof ClassDeclaration classDeclaration) {
@@ -196,48 +202,6 @@ class SymbolCollector {
196 return; 202 return;
197 } 203 }
198 relationInfo.assertions().add(assertion); 204 relationInfo.assertions().add(assertion);
199 for (var argument : assertion.getArguments()) {
200 if (argument instanceof ConstantAssertionArgument constantAssertionArgument) {
201 var constantNode = constantAssertionArgument.getNode();
202 if (constantNode != null) {
203 var valueAssertion = ProblemFactory.eINSTANCE.createNodeValueAssertion();
204 valueAssertion.setNode(constantNode);
205 valueAssertion.setValue(EcoreUtil.copy(constantAssertionArgument.getConstant()));
206 collectNodeValueAssertion(valueAssertion);
207 var logicValue = assertion.getValue();
208 if (logicValue != LogicValue.TRUE) {
209 addAssertion(builtinSymbols.exists(), logicValue, constantNode);
210 }
211 }
212 }
213 }
214 }
215
216 private void collectNodeValueAssertion(NodeValueAssertion nodeValueAssertion) {
217 var node = nodeValueAssertion.getNode();
218 if (node == null) {
219 return;
220 }
221 var nodeInfo = this.nodes.get(node);
222 if (nodeInfo == null) {
223 throw new IllegalStateException("Node value assertion refers to unknown node");
224 }
225 nodeInfo.valueAssertions().add(nodeValueAssertion);
226 var constant = nodeValueAssertion.getValue();
227 if (constant == null) {
228 return;
229 }
230 Relation dataType;
231 if (constant instanceof IntConstant) {
232 dataType = builtinSymbols.intClass();
233 } else if (constant instanceof RealConstant) {
234 dataType = builtinSymbols.real();
235 } else if (constant instanceof StringConstant) {
236 dataType = builtinSymbols.string();
237 } else {
238 throw new IllegalArgumentException("Unknown constant type");
239 }
240 addAssertion(dataType, LogicValue.TRUE, node);
241 } 205 }
242 206
243 private void collectPredicateAssertion(PredicateDefinition predicateDefinition) { 207 private void collectPredicateAssertion(PredicateDefinition predicateDefinition) {
@@ -278,7 +242,9 @@ class SymbolCollector {
278 } 242 }
279 assertion.getArguments().add(argument); 243 assertion.getArguments().add(argument);
280 } 244 }
281 assertion.setValue(logicValue); 245 var value = ProblemFactory.eINSTANCE.createLogicAssertionValue();
246 value.setLogicValue(logicValue);
247 assertion.setValue(value);
282 collectAssertion(assertion); 248 collectAssertion(assertion);
283 } 249 }
284} 250}
diff --git a/subprojects/language/src/main/resources/tools/refinery/language/builtin.problem b/subprojects/language/src/main/resources/tools/refinery/language/builtin.problem
index 38e77237..06b6da1d 100644
--- a/subprojects/language/src/main/resources/tools/refinery/language/builtin.problem
+++ b/subprojects/language/src/main/resources/tools/refinery/language/builtin.problem
@@ -6,19 +6,21 @@ abstract class node {
6 6
7pred exists(node node). 7pred exists(node node).
8 8
9abstract class domain extends node. 9% class Integer {
10 10% int intValue
11abstract class data extends node. 11% }
12 12%
13enum bool { 13% class Real {
14 true, false 14% real realValue
15} 15% }
16 16%
17class int extends data. 17% class String {
18 18% string stringValue
19class real extends data. 19% }
20 20%
21class string extends data. 21% enum Boolean {
22% TRUE, FALSE
23% }
22 24
23pred contained(node node). 25pred contained(node node).
24 26
diff --git a/subprojects/language/src/test/java/tools/refinery/language/tests/ProblemParsingTest.java b/subprojects/language/src/test/java/tools/refinery/language/tests/ProblemParsingTest.java
index 3a6e015f..e0dee496 100644
--- a/subprojects/language/src/test/java/tools/refinery/language/tests/ProblemParsingTest.java
+++ b/subprojects/language/src/test/java/tools/refinery/language/tests/ProblemParsingTest.java
@@ -24,10 +24,10 @@ class ProblemParsingTest {
24 } 24 }
25 25
26 class Person { 26 class Person {
27 Person[0..*] children opposite parent 27 refers Person[0..*] children opposite parent
28 Person[0..1] parent opposite children 28 refers Person[0..1] parent opposite children
29 int age 29 int age
30 TaxStatus taxStatus 30 refers TaxStatus taxStatus
31 } 31 }
32 32
33 enum TaxStatus { 33 enum TaxStatus {
@@ -46,10 +46,8 @@ class ProblemParsingTest {
46 children(anne, ciri). 46 children(anne, ciri).
47 ?children(bob, ciri). 47 ?children(bob, ciri).
48 taxStatus(anne, adult). 48 taxStatus(anne, adult).
49 age(anne, 35). 49 age(bob) in 21..35.
50 bobAge: 27. 50 age(ciri) = 10.
51 age(bob, bobAge).
52 !age(ciri, bobAge).
53 """); 51 """);
54 assertThat(problem.errors(), empty()); 52 assertThat(problem.errors(), empty());
55 } 53 }
diff --git a/subprojects/language/src/test/java/tools/refinery/language/tests/parser/antlr/TransitiveClosureParserTest.java b/subprojects/language/src/test/java/tools/refinery/language/tests/parser/antlr/TransitiveClosureParserTest.java
index 96d12edf..6e702720 100644
--- a/subprojects/language/src/test/java/tools/refinery/language/tests/parser/antlr/TransitiveClosureParserTest.java
+++ b/subprojects/language/src/test/java/tools/refinery/language/tests/parser/antlr/TransitiveClosureParserTest.java
@@ -24,7 +24,9 @@ class TransitiveClosureParserTest {
24 @Test 24 @Test
25 void binaryAddOperatorTest() { 25 void binaryAddOperatorTest() {
26 var problem = parseHelper.parse(""" 26 var problem = parseHelper.parse("""
27 pred foo(int a, int b) <-> a + (b) > 10. 27 int a().
28 int b().
29 pred foo() <-> a() + (b()) > 10.
28 """); 30 """);
29 assertThat(problem.errors(), empty()); 31 assertThat(problem.errors(), empty());
30 var literal = problem.pred("foo").conj(0).lit(0).get(); 32 var literal = problem.pred("foo").conj(0).lit(0).get();
diff --git a/subprojects/language/src/test/java/tools/refinery/language/tests/rules/RuleParsingTest.java b/subprojects/language/src/test/java/tools/refinery/language/tests/rules/RuleParsingTest.java
index 4b42f4aa..72e5e18a 100644
--- a/subprojects/language/src/test/java/tools/refinery/language/tests/rules/RuleParsingTest.java
+++ b/subprojects/language/src/test/java/tools/refinery/language/tests/rules/RuleParsingTest.java
@@ -1,10 +1,6 @@
1package tools.refinery.language.tests.rules; 1package tools.refinery.language.tests.rules;
2 2
3import static org.hamcrest.MatcherAssert.assertThat; 3import com.google.inject.Inject;
4import static org.hamcrest.Matchers.empty;
5import static org.hamcrest.Matchers.equalTo;
6import static org.hamcrest.Matchers.not;
7
8import org.eclipse.xtext.testing.InjectWith; 4import org.eclipse.xtext.testing.InjectWith;
9import org.eclipse.xtext.testing.extensions.InjectionExtension; 5import org.eclipse.xtext.testing.extensions.InjectionExtension;
10import org.junit.jupiter.api.Disabled; 6import org.junit.jupiter.api.Disabled;
@@ -12,13 +8,13 @@ import org.junit.jupiter.api.Test;
12import org.junit.jupiter.api.extension.ExtendWith; 8import org.junit.jupiter.api.extension.ExtendWith;
13import org.junit.jupiter.params.ParameterizedTest; 9import org.junit.jupiter.params.ParameterizedTest;
14import org.junit.jupiter.params.provider.ValueSource; 10import org.junit.jupiter.params.provider.ValueSource;
15
16import com.google.inject.Inject;
17
18import tools.refinery.language.model.tests.utils.ProblemParseHelper; 11import tools.refinery.language.model.tests.utils.ProblemParseHelper;
19import tools.refinery.language.tests.ProblemInjectorProvider; 12import tools.refinery.language.tests.ProblemInjectorProvider;
20 13
21@Disabled 14import static org.hamcrest.MatcherAssert.assertThat;
15import static org.hamcrest.Matchers.*;
16
17@Disabled("TODO: Rework transformation rules")
22@ExtendWith(InjectionExtension.class) 18@ExtendWith(InjectionExtension.class)
23@InjectWith(ProblemInjectorProvider.class) 19@InjectWith(ProblemInjectorProvider.class)
24class RuleParsingTest { 20class RuleParsingTest {
diff --git a/subprojects/language/src/test/java/tools/refinery/language/tests/scoping/NodeScopingTest.java b/subprojects/language/src/test/java/tools/refinery/language/tests/scoping/NodeScopingTest.java
index 9049b8ec..2fd647e5 100644
--- a/subprojects/language/src/test/java/tools/refinery/language/tests/scoping/NodeScopingTest.java
+++ b/subprojects/language/src/test/java/tools/refinery/language/tests/scoping/NodeScopingTest.java
@@ -3,6 +3,7 @@ package tools.refinery.language.tests.scoping;
3import com.google.inject.Inject; 3import com.google.inject.Inject;
4import org.eclipse.xtext.testing.InjectWith; 4import org.eclipse.xtext.testing.InjectWith;
5import org.eclipse.xtext.testing.extensions.InjectionExtension; 5import org.eclipse.xtext.testing.extensions.InjectionExtension;
6import org.junit.jupiter.api.Disabled;
6import org.junit.jupiter.api.Test; 7import org.junit.jupiter.api.Test;
7import org.junit.jupiter.api.extension.ExtendWith; 8import org.junit.jupiter.api.extension.ExtendWith;
8import org.junit.jupiter.params.ParameterizedTest; 9import org.junit.jupiter.params.ParameterizedTest;
@@ -28,15 +29,11 @@ class NodeScopingTest {
28 @ValueSource(strings = { "", "builtin::" }) 29 @ValueSource(strings = { "", "builtin::" })
29 void builtInArgumentTypeTest(String qualifiedNamePrefix) { 30 void builtInArgumentTypeTest(String qualifiedNamePrefix) {
30 var problem = parse(""" 31 var problem = parse("""
31 pred predicate({PARAM}node a, {PARAM}data b, {PARAM}int c). 32 pred predicate({PARAM}node a).
32 """, qualifiedNamePrefix); 33 """, qualifiedNamePrefix);
33 assertThat(problem.errors(), empty()); 34 assertThat(problem.errors(), empty());
34 assertThat(problem.pred("predicate").param(0).getParameterType(), 35 assertThat(problem.pred("predicate").param(0).getParameterType(),
35 equalTo(problem.builtin().findClass("node").get())); 36 equalTo(problem.builtin().findClass("node").get()));
36 assertThat(problem.pred("predicate").param(1).getParameterType(),
37 equalTo(problem.builtin().findClass("data").get()));
38 assertThat(problem.pred("predicate").param(2).getParameterType(),
39 equalTo(problem.builtin().findClass("int").get()));
40 } 37 }
41 38
42 @Test 39 @Test
@@ -55,16 +52,6 @@ class NodeScopingTest {
55 } 52 }
56 53
57 @Test 54 @Test
58 void implicitNodeInNodeValueAssertionTest() {
59 var problem = parseHelper.parse("""
60 a: 16.
61 """);
62 assertThat(problem.errors(), empty());
63 assertThat(problem.nodeNames(), hasItems("a"));
64 assertThat(problem.nodeValueAssertion(0).getNode(), equalTo(problem.node("a")));
65 }
66
67 @Test
68 void implicitNodeInPredicateTest() { 55 void implicitNodeInPredicateTest() {
69 var problem = parse(""" 56 var problem = parse("""
70 pred predicate(node a) <-> node(b). 57 pred predicate(node a) <-> node(b).
@@ -95,18 +82,6 @@ class NodeScopingTest {
95 82
96 @ParameterizedTest 83 @ParameterizedTest
97 @MethodSource("individualNodeReferenceSource") 84 @MethodSource("individualNodeReferenceSource")
98 void individualNodeInNodeValueAssertionTest(String qualifiedNamePrefix, boolean namedProblem) {
99 var problem = parse("""
100 individual a.
101 {PARAM}a: 16.
102 """, qualifiedNamePrefix, namedProblem);
103 assertThat(problem.errors(), empty());
104 assertThat(problem.nodeNames(), empty());
105 assertThat(problem.nodeValueAssertion(0).getNode(), equalTo(problem.individualNode("a")));
106 }
107
108 @ParameterizedTest
109 @MethodSource("individualNodeReferenceSource")
110 void individualNodeInPredicateTest(String qualifiedNamePrefix, boolean namedProblem) { 85 void individualNodeInPredicateTest(String qualifiedNamePrefix, boolean namedProblem) {
111 var problem = parse(""" 86 var problem = parse("""
112 individual b. 87 individual b.
@@ -121,6 +96,7 @@ class NodeScopingTest {
121 return Stream.of(Arguments.of("", false), Arguments.of("", true), Arguments.of("test::", true)); 96 return Stream.of(Arguments.of("", false), Arguments.of("", true), Arguments.of("test::", true));
122 } 97 }
123 98
99 @Disabled("No nodes are present in builtin.problem currently")
124 @ParameterizedTest 100 @ParameterizedTest
125 @MethodSource("builtInNodeReferencesSource") 101 @MethodSource("builtInNodeReferencesSource")
126 void builtInNodeTest(String qualifiedName) { 102 void builtInNodeTest(String qualifiedName) {
@@ -133,18 +109,7 @@ class NodeScopingTest {
133 assertThat(problem.assertion(0).arg(0).node(), equalTo(problem.builtin().findClass("int").get().getNewNode())); 109 assertThat(problem.assertion(0).arg(0).node(), equalTo(problem.builtin().findClass("int").get().getNewNode()));
134 } 110 }
135 111
136 @ParameterizedTest 112 @Disabled("No nodes are present in builtin.problem currently")
137 @MethodSource("builtInNodeReferencesSource")
138 void builtInNodeInNodeValueAssertionTest(String qualifiedName) {
139 var problem = parse("""
140 {PARAM}: 16.
141 """, qualifiedName);
142 assertThat(problem.errors(), empty());
143 assertThat(problem.nodeNames(), empty());
144 assertThat(problem.nodeValueAssertion(0).getNode(),
145 equalTo(problem.builtin().findClass("int").get().getNewNode()));
146 }
147
148 @ParameterizedTest 113 @ParameterizedTest
149 @MethodSource("builtInNodeReferencesSource") 114 @MethodSource("builtInNodeReferencesSource")
150 void builtInNodeInPredicateTest(String qualifiedName) { 115 void builtInNodeInPredicateTest(String qualifiedName) {
@@ -176,18 +141,6 @@ class NodeScopingTest {
176 141
177 @ParameterizedTest 142 @ParameterizedTest
178 @MethodSource("classNewNodeReferencesSource") 143 @MethodSource("classNewNodeReferencesSource")
179 void classNewNodeInNodeValueAssertionTest(String qualifiedName, boolean namedProblem) {
180 var problem = parse("""
181 class Foo.
182 {PARAM}: 16.
183 """, qualifiedName, namedProblem);
184 assertThat(problem.errors(), empty());
185 assertThat(problem.nodeNames(), empty());
186 assertThat(problem.nodeValueAssertion(0).getNode(), equalTo(problem.findClass("Foo").get().getNewNode()));
187 }
188
189 @ParameterizedTest
190 @MethodSource("classNewNodeReferencesSource")
191 void classNewNodeInPredicateTest(String qualifiedName, boolean namedProblem) { 144 void classNewNodeInPredicateTest(String qualifiedName, boolean namedProblem) {
192 var problem = parse(""" 145 var problem = parse("""
193 class Foo. 146 class Foo.
@@ -231,18 +184,6 @@ class NodeScopingTest {
231 184
232 @ParameterizedTest 185 @ParameterizedTest
233 @MethodSource("enumLiteralReferencesSource") 186 @MethodSource("enumLiteralReferencesSource")
234 void enumLiteralInNodeValueAssertionTest(String qualifiedName, boolean namedProblem) {
235 var problem = parse("""
236 enum Foo { alpha, beta }
237 {PARAM}: 16.
238 """, qualifiedName, namedProblem);
239 assertThat(problem.errors(), empty());
240 assertThat(problem.nodeNames(), empty());
241 assertThat(problem.nodeValueAssertion(0).getNode(), equalTo(problem.findEnum("Foo").literal("alpha")));
242 }
243
244 @ParameterizedTest
245 @MethodSource("enumLiteralReferencesSource")
246 void enumLiteralInPredicateTest(String qualifiedName, boolean namedProblem) { 187 void enumLiteralInPredicateTest(String qualifiedName, boolean namedProblem) {
247 var problem = parse(""" 188 var problem = parse("""
248 enum Foo { alpha, beta } 189 enum Foo { alpha, beta }
@@ -260,6 +201,7 @@ class NodeScopingTest {
260 Arguments.of("test::Foo::alpha", true)); 201 Arguments.of("test::Foo::alpha", true));
261 } 202 }
262 203
204 @Disabled("No enum literals are present in builtin.problem currently")
263 @ParameterizedTest 205 @ParameterizedTest
264 @MethodSource("builtInEnumLiteralReferencesSource") 206 @MethodSource("builtInEnumLiteralReferencesSource")
265 void builtInEnumLiteralTest(String qualifiedName) { 207 void builtInEnumLiteralTest(String qualifiedName) {
@@ -272,18 +214,7 @@ class NodeScopingTest {
272 assertThat(problem.assertion(0).arg(0).node(), equalTo(problem.builtin().findEnum("bool").literal("true"))); 214 assertThat(problem.assertion(0).arg(0).node(), equalTo(problem.builtin().findEnum("bool").literal("true")));
273 } 215 }
274 216
275 @ParameterizedTest 217 @Disabled("No enum literals are present in builtin.problem currently")
276 @MethodSource("builtInEnumLiteralReferencesSource")
277 void builtInEnumLiteralInNodeValueAssertionTest(String qualifiedName) {
278 var problem = parse("""
279 {PARAM}: 16.
280 """, qualifiedName);
281 assertThat(problem.errors(), empty());
282 assertThat(problem.nodeNames(), empty());
283 assertThat(problem.nodeValueAssertion(0).getNode(),
284 equalTo(problem.builtin().findEnum("bool").literal("true")));
285 }
286
287 @ParameterizedTest 218 @ParameterizedTest
288 @MethodSource("builtInEnumLiteralReferencesSource") 219 @MethodSource("builtInEnumLiteralReferencesSource")
289 void bultInEnumLiteralInPredicateTest(String qualifiedName) { 220 void bultInEnumLiteralInPredicateTest(String qualifiedName) {
diff --git a/subprojects/language/src/test/java/tools/refinery/language/tests/serializer/ProblemSerializerTest.java b/subprojects/language/src/test/java/tools/refinery/language/tests/serializer/ProblemSerializerTest.java
index 150e47a4..5024fb45 100644
--- a/subprojects/language/src/test/java/tools/refinery/language/tests/serializer/ProblemSerializerTest.java
+++ b/subprojects/language/src/test/java/tools/refinery/language/tests/serializer/ProblemSerializerTest.java
@@ -68,6 +68,29 @@ class ProblemSerializerTest {
68 Arguments.of(LogicValue.UNKNOWN, "?foo(a)."), Arguments.of(LogicValue.ERROR, "foo(a): error.")); 68 Arguments.of(LogicValue.UNKNOWN, "?foo(a)."), Arguments.of(LogicValue.ERROR, "foo(a): error."));
69 } 69 }
70 70
71 @ParameterizedTest
72 @MethodSource
73 void defaultAssertionTest(LogicValue value, String valueAsString) {
74 var pred = createPred();
75 var node = ProblemFactory.eINSTANCE.createNode();
76 node.setName("a");
77 var individualDeclaration = ProblemFactory.eINSTANCE.createIndividualDeclaration();
78 individualDeclaration.getNodes().add(node);
79 problem.getStatements().add(individualDeclaration);
80 createAssertion(pred, node, value, true);
81
82 assertSerializedResult("""
83 pred foo(node p).
84
85 individual a.
86 default foo(a):\040""" + valueAsString + ".\n");
87 }
88
89 static Stream<Arguments> defaultAssertionTest() {
90 return Stream.of(Arguments.of(LogicValue.TRUE, "true"), Arguments.of(LogicValue.FALSE, "false"),
91 Arguments.of(LogicValue.UNKNOWN, "unknown"), Arguments.of(LogicValue.ERROR, "error"));
92 }
93
71 @Test 94 @Test
72 void implicitNodeTest() { 95 void implicitNodeTest() {
73 var pred = createPred(); 96 var pred = createPred();
@@ -116,13 +139,20 @@ class ProblemSerializerTest {
116 createAssertion(relation, node, LogicValue.TRUE); 139 createAssertion(relation, node, LogicValue.TRUE);
117 } 140 }
118 141
119 private void createAssertion(Relation relation, Node node, LogicValue value) { 142 private void createAssertion(Relation relation, Node node, LogicValue logicValue) {
143 createAssertion(relation, node, logicValue, false);
144 }
145
146 private void createAssertion(Relation relation, Node node, LogicValue logicValue, boolean isDefault) {
120 var assertion = ProblemFactory.eINSTANCE.createAssertion(); 147 var assertion = ProblemFactory.eINSTANCE.createAssertion();
121 assertion.setRelation(relation); 148 assertion.setRelation(relation);
122 var argument = ProblemFactory.eINSTANCE.createNodeAssertionArgument(); 149 var argument = ProblemFactory.eINSTANCE.createNodeAssertionArgument();
123 argument.setNode(node); 150 argument.setNode(node);
124 assertion.getArguments().add(argument); 151 assertion.getArguments().add(argument);
152 var value = ProblemFactory.eINSTANCE.createLogicAssertionValue();
153 value.setLogicValue(logicValue);
125 assertion.setValue(value); 154 assertion.setValue(value);
155 assertion.setDefault(isDefault);
126 problem.getStatements().add(assertion); 156 problem.getStatements().add(assertion);
127 } 157 }
128 158
@@ -143,7 +173,7 @@ class ProblemSerializerTest {
143 var variable = ProblemFactory.eINSTANCE.createImplicitVariable(); 173 var variable = ProblemFactory.eINSTANCE.createImplicitVariable();
144 variable.setName("q"); 174 variable.setName("q");
145 conjunction.getImplicitVariables().add(variable); 175 conjunction.getImplicitVariables().add(variable);
146 var equals = nodeType.reference("equals"); 176 var equals = nodeType.feature("equals");
147 conjunction.getLiterals().add(createAtom(equals, parameter1, variable)); 177 conjunction.getLiterals().add(createAtom(equals, parameter1, variable));
148 conjunction.getLiterals().add(createAtom(equals, variable, parameter2)); 178 conjunction.getLiterals().add(createAtom(equals, variable, parameter2));
149 pred.getBodies().add(conjunction); 179 pred.getBodies().add(conjunction);
@@ -177,7 +207,7 @@ class ProblemSerializerTest {
177 pred.getParameters().add(parameter); 207 pred.getParameters().add(parameter);
178 var conjunction = ProblemFactory.eINSTANCE.createConjunction(); 208 var conjunction = ProblemFactory.eINSTANCE.createConjunction();
179 var atom = ProblemFactory.eINSTANCE.createAtom(); 209 var atom = ProblemFactory.eINSTANCE.createAtom();
180 var equals = nodeType.reference("equals"); 210 var equals = nodeType.feature("equals");
181 atom.setRelation(equals); 211 atom.setRelation(equals);
182 var arg1 = ProblemFactory.eINSTANCE.createVariableOrNodeExpr(); 212 var arg1 = ProblemFactory.eINSTANCE.createVariableOrNodeExpr();
183 arg1.setVariableOrNode(parameter); 213 arg1.setVariableOrNode(parameter);
diff --git a/subprojects/language/src/test/java/tools/refinery/language/tests/utils/SymbolCollectorTest.java b/subprojects/language/src/test/java/tools/refinery/language/tests/utils/SymbolCollectorTest.java
index 98c16352..66b7f1ab 100644
--- a/subprojects/language/src/test/java/tools/refinery/language/tests/utils/SymbolCollectorTest.java
+++ b/subprojects/language/src/test/java/tools/refinery/language/tests/utils/SymbolCollectorTest.java
@@ -4,6 +4,7 @@ import com.google.inject.Inject;
4import org.eclipse.xtext.testing.InjectWith; 4import org.eclipse.xtext.testing.InjectWith;
5import org.eclipse.xtext.testing.extensions.InjectionExtension; 5import org.eclipse.xtext.testing.extensions.InjectionExtension;
6import org.hamcrest.Matcher; 6import org.hamcrest.Matcher;
7import org.junit.jupiter.api.Disabled;
7import org.junit.jupiter.api.Test; 8import org.junit.jupiter.api.Test;
8import org.junit.jupiter.api.extension.ExtendWith; 9import org.junit.jupiter.api.extension.ExtendWith;
9import org.junit.jupiter.params.ParameterizedTest; 10import org.junit.jupiter.params.ParameterizedTest;
@@ -87,15 +88,15 @@ class SymbolCollectorTest {
87 void referenceTest() { 88 void referenceTest() {
88 var problem = parseHelper.parse(""" 89 var problem = parseHelper.parse("""
89 class Foo { 90 class Foo {
90 Foo[] bar opposite quux 91 refers Foo[] bar opposite quux
91 Foo quux opposite bar 92 refers Foo quux opposite bar
92 } 93 }
93 """); 94 """);
94 var collectedSymbols = desugarer.collectSymbols(problem.get()); 95 var collectedSymbols = desugarer.collectSymbols(problem.get());
95 var fooClass = problem.findClass("Foo"); 96 var fooClass = problem.findClass("Foo");
96 var barReference = fooClass.reference("bar"); 97 var barReference = fooClass.feature("bar");
97 var barInfo = collectedSymbols.relations().get(barReference); 98 var barInfo = collectedSymbols.relations().get(barReference);
98 var quuxReference = fooClass.reference("quux"); 99 var quuxReference = fooClass.feature("quux");
99 var quuxInfo = collectedSymbols.relations().get(quuxReference); 100 var quuxInfo = collectedSymbols.relations().get(quuxReference);
100 assertThat(barInfo.containmentRole(), is(ContainmentRole.NONE)); 101 assertThat(barInfo.containmentRole(), is(ContainmentRole.NONE));
101 assertThat(barInfo.opposite(), is(quuxReference)); 102 assertThat(barInfo.opposite(), is(quuxReference));
@@ -116,10 +117,11 @@ class SymbolCollectorTest {
116 } 117 }
117 """); 118 """);
118 var collectedSymbols = desugarer.collectSymbols(problem.get()); 119 var collectedSymbols = desugarer.collectSymbols(problem.get());
119 assertThat(collectedSymbols.relations().get(problem.findClass("Foo").reference("bar")).containmentRole(), 120 assertThat(collectedSymbols.relations().get(problem.findClass("Foo").feature("bar")).containmentRole(),
120 is(ContainmentRole.CONTAINMENT)); 121 is(ContainmentRole.CONTAINMENT));
121 } 122 }
122 123
124 @Disabled("TODO: Rework numerical references")
123 @Test 125 @Test
124 void dataReferenceTest() { 126 void dataReferenceTest() {
125 var problem = parseHelper.parse(""" 127 var problem = parseHelper.parse("""
@@ -128,7 +130,7 @@ class SymbolCollectorTest {
128 } 130 }
129 """); 131 """);
130 var collectedSymbols = desugarer.collectSymbols(problem.get()); 132 var collectedSymbols = desugarer.collectSymbols(problem.get());
131 assertThat(collectedSymbols.relations().get(problem.findClass("Foo").reference("bar")).containmentRole(), 133 assertThat(collectedSymbols.relations().get(problem.findClass("Foo").feature("bar")).containmentRole(),
132 is(ContainmentRole.CONTAINMENT)); 134 is(ContainmentRole.CONTAINMENT));
133 } 135 }
134 136
@@ -204,61 +206,6 @@ class SymbolCollectorTest {
204 assertThat(collectedSymbols.relations().get(problem.pred("foo").get()).assertions(), hasSize(0)); 206 assertThat(collectedSymbols.relations().get(problem.pred("foo").get()).assertions(), hasSize(0));
205 } 207 }
206 208
207 @ParameterizedTest
208 @MethodSource("valueTypes")
209 void nodeValueAssertionTest(String value, String typeName) {
210 var problem = parseHelper.parse("a: %s.".formatted(value));
211 var collectedSymbols = desugarer.collectSymbols(problem.get());
212 var node = problem.node("a");
213 var nodeInfo = collectedSymbols.nodes().get(node);
214 assertThat(nodeInfo.individual(), is(false));
215 assertThat(nodeInfo.valueAssertions(), hasSize(1));
216 assertThat(collectedSymbols.relations().get(problem.builtin().findClass(typeName).get()).assertions(),
217 assertsNode(node, LogicValue.TRUE));
218 }
219
220 @ParameterizedTest
221 @MethodSource("valueTypes")
222 void constantInAssertionTest(String value, String typeName) {
223 var problem = parseHelper.parse("""
224 containment pred foo(node x, data y).
225 foo(a, %s).
226 """.formatted(value));
227 var collectedSymbols = desugarer.collectSymbols(problem.get());
228 var node = problem.assertion(0).arg(1).constantNode();
229 var nodeInfo = collectedSymbols.nodes().get(node);
230 assertThat(nodeInfo.individual(), is(false));
231 assertThat(nodeInfo.valueAssertions(), hasSize(1));
232 assertThat(collectedSymbols.relations().get(problem.pred("foo").get()).assertions(), assertsNode(node,
233 LogicValue.TRUE));
234 assertThat(collectedSymbols.relations().get(problem.builtin().findClass(typeName).get()).assertions(),
235 assertsNode(node, LogicValue.TRUE));
236 }
237
238 @ParameterizedTest
239 @MethodSource("valueTypes")
240 void constantInUnknownAssertionTest(String value, String typeName) {
241 var problem = parseHelper.parse("""
242 containment pred foo(node x, data y).
243 foo(a, %s): unknown.
244 """.formatted(value));
245 var collectedSymbols = desugarer.collectSymbols(problem.get());
246 var node = problem.assertion(0).arg(1).constantNode();
247 var nodeInfo = collectedSymbols.nodes().get(node);
248 assertThat(nodeInfo.individual(), is(false));
249 assertThat(nodeInfo.valueAssertions(), hasSize(1));
250 assertThat(collectedSymbols.relations().get(problem.pred("foo").get()).assertions(), assertsNode(node,
251 LogicValue.UNKNOWN));
252 assertThat(collectedSymbols.relations().get(problem.builtin().findClass(typeName).get()).assertions(),
253 assertsNode(node, LogicValue.TRUE));
254 assertThat(collectedSymbols.relations().get(problem.builtinSymbols().exists()).assertions(), assertsNode(node,
255 LogicValue.UNKNOWN));
256 }
257
258 static Stream<Arguments> valueTypes() {
259 return Stream.of(Arguments.of("3", "int"), Arguments.of("3.14", "real"), Arguments.of("\"foo\"", "string"));
260 }
261
262 @Test 209 @Test
263 void invalidProblemTest() { 210 void invalidProblemTest() {
264 var problem = parseHelper.parse(""" 211 var problem = parseHelper.parse("""
@@ -279,13 +226,13 @@ class SymbolCollectorTest {
279 var fooInfo = collectedSymbols.relations().get(problem.pred("foo").get()); 226 var fooInfo = collectedSymbols.relations().get(problem.pred("foo").get());
280 assertThat(fooInfo.assertions(), hasSize(1)); 227 assertThat(fooInfo.assertions(), hasSize(1));
281 var assertion = fooInfo.assertions().stream().findFirst().orElseThrow(); 228 var assertion = fooInfo.assertions().stream().findFirst().orElseThrow();
282 assertThat(assertion.getValue(), is(LogicValue.FALSE)); 229 assertThat(assertion.getValue(), hasProperty("logicValue", is(LogicValue.FALSE)));
283 assertThat(assertion.getArguments(), hasSize(2)); 230 assertThat(assertion.getArguments(), hasSize(2));
284 assertThat(assertion.getArguments(), everyItem(instanceOf(WildcardAssertionArgument.class))); 231 assertThat(assertion.getArguments(), everyItem(instanceOf(WildcardAssertionArgument.class)));
285 } 232 }
286 233
287 private static Matcher<Iterable<? super Assertion>> assertsNode(Node node, LogicValue value) { 234 private static Matcher<Iterable<? super Assertion>> assertsNode(Node node, LogicValue value) {
288 return hasItem(allOf(hasProperty("arguments", hasItem(hasProperty("node", is(node)))), hasProperty("value", 235 return hasItem(allOf(hasProperty("arguments", hasItem(hasProperty("node", is(node)))), hasProperty("value",
289 is(value)))); 236 hasProperty("logicValue", is(value)))));
290 } 237 }
291} 238}
diff --git a/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedAssertionArgument.java b/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedAssertionArgument.java
index b8b3a7de..840c1f74 100644
--- a/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedAssertionArgument.java
+++ b/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedAssertionArgument.java
@@ -1,7 +1,6 @@
1package tools.refinery.language.model.tests.utils; 1package tools.refinery.language.model.tests.utils;
2 2
3import tools.refinery.language.model.problem.AssertionArgument; 3import tools.refinery.language.model.problem.AssertionArgument;
4import tools.refinery.language.model.problem.ConstantAssertionArgument;
5import tools.refinery.language.model.problem.Node; 4import tools.refinery.language.model.problem.Node;
6import tools.refinery.language.model.problem.NodeAssertionArgument; 5import tools.refinery.language.model.problem.NodeAssertionArgument;
7 6
@@ -13,8 +12,4 @@ public record WrappedAssertionArgument(AssertionArgument assertionArgument) {
13 public Node node() { 12 public Node node() {
14 return ((NodeAssertionArgument) assertionArgument).getNode(); 13 return ((NodeAssertionArgument) assertionArgument).getNode();
15 } 14 }
16
17 public Node constantNode() {
18 return ((ConstantAssertionArgument) assertionArgument).getNode();
19 }
20} 15}
diff --git a/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedClassDeclaration.java b/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedClassDeclaration.java
index d8926c29..41b2ea62 100644
--- a/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedClassDeclaration.java
+++ b/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedClassDeclaration.java
@@ -1,14 +1,14 @@
1package tools.refinery.language.model.tests.utils; 1package tools.refinery.language.model.tests.utils;
2 2
3import tools.refinery.language.model.problem.ClassDeclaration; 3import tools.refinery.language.model.problem.ClassDeclaration;
4import tools.refinery.language.model.problem.ReferenceDeclaration; 4import tools.refinery.language.model.problem.FeatureDeclaration;
5 5
6public record WrappedClassDeclaration(ClassDeclaration classDeclaration) { 6public record WrappedClassDeclaration(ClassDeclaration classDeclaration) {
7 public ClassDeclaration get() { 7 public ClassDeclaration get() {
8 return classDeclaration; 8 return classDeclaration;
9 } 9 }
10 10
11 public ReferenceDeclaration reference(String name) { 11 public FeatureDeclaration feature(String name) {
12 return ProblemNavigationUtil.named(classDeclaration.getReferenceDeclarations(), name); 12 return ProblemNavigationUtil.named(classDeclaration.getFeatureDeclarations(), name);
13 } 13 }
14} 14}
diff --git a/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedProblem.java b/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedProblem.java
index aef96b5b..78ca95c7 100644
--- a/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedProblem.java
+++ b/subprojects/language/src/testFixtures/java/tools/refinery/language/model/tests/utils/WrappedProblem.java
@@ -1,25 +1,14 @@
1package tools.refinery.language.model.tests.utils; 1package tools.refinery.language.model.tests.utils;
2 2
3import java.util.List;
4import java.util.stream.Stream;
5
6import org.eclipse.emf.ecore.resource.Resource.Diagnostic; 3import org.eclipse.emf.ecore.resource.Resource.Diagnostic;
7import org.eclipse.emf.ecore.util.EcoreUtil; 4import org.eclipse.emf.ecore.util.EcoreUtil;
8 5import tools.refinery.language.model.problem.*;
9import tools.refinery.language.model.problem.Assertion;
10import tools.refinery.language.model.problem.ClassDeclaration;
11import tools.refinery.language.model.problem.EnumDeclaration;
12import tools.refinery.language.model.problem.IndividualDeclaration;
13import tools.refinery.language.model.problem.NamedElement;
14import tools.refinery.language.model.problem.Node;
15import tools.refinery.language.model.problem.NodeValueAssertion;
16import tools.refinery.language.model.problem.PredicateDefinition;
17import tools.refinery.language.model.problem.Problem;
18import tools.refinery.language.model.problem.RuleDefinition;
19import tools.refinery.language.model.problem.Statement;
20import tools.refinery.language.utils.BuiltinSymbols; 6import tools.refinery.language.utils.BuiltinSymbols;
21import tools.refinery.language.utils.ProblemDesugarer; 7import tools.refinery.language.utils.ProblemDesugarer;
22 8
9import java.util.List;
10import java.util.stream.Stream;
11
23public record WrappedProblem(Problem problem) { 12public record WrappedProblem(Problem problem) {
24 public Problem get() { 13 public Problem get() {
25 return problem; 14 return problem;
@@ -72,10 +61,6 @@ public record WrappedProblem(Problem problem) {
72 return ProblemNavigationUtil.named(uniqueNodes, name); 61 return ProblemNavigationUtil.named(uniqueNodes, name);
73 } 62 }
74 63
75 public NodeValueAssertion nodeValueAssertion(int i) {
76 return nthStatementOfType(NodeValueAssertion.class, i);
77 }
78
79 private <T extends Statement> Stream<T> statementsOfType(Class<? extends T> type) { 64 private <T extends Statement> Stream<T> statementsOfType(Class<? extends T> type) {
80 return problem.getStatements().stream().filter(type::isInstance).map(type::cast); 65 return problem.getStatements().stream().filter(type::isInstance).map(type::cast);
81 } 66 }