-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathForestProj.drawio
240 lines (240 loc) · 45.2 KB
/
ForestProj.drawio
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
<mxfile host="app.diagrams.net" modified="2021-09-27T08:27:53.463Z" agent="5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36" etag="jlBM31__xfSoqiUfkuL_" version="15.3.4" type="github">
<diagram id="Yo6Zvny2ZRX3JAPKxXua" name="Page 2">
<mxGraphModel dx="1450" dy="1990" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="8I9pphBKhg92I5GMk5e_-31" value="" style="graphMlID=e0;endArrow=none;strokeColor=#FF6392;strokeWidth=1.0;startArrow=diamond;startFill=0;endFill=1;exitX=1;exitY=0.25;exitDx=0;exitDy=0;fontColor=#5AA9E6;entryX=-0.008;entryY=-0.286;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="8I9pphBKhg92I5GMk5e_-50" target="8I9pphBKhg92I5GMk5e_-57" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-32" value="" style="graphMlID=e1;endArrow=none;strokeColor=#FF6392;strokeWidth=1.0;startArrow=diamond;startFill=0;endFill=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;fontColor=#5AA9E6;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="8I9pphBKhg92I5GMk5e_-51" target="8I9pphBKhg92I5GMk5e_-61" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-33" value="" style="graphMlID=e2;endArrow=none;strokeColor=#FF6392;strokeWidth=1.0;startArrow=diamond;startFill=0;endFill=1;fontColor=#5AA9E6;entryX=0;entryY=0.25;entryDx=0;entryDy=0;" parent="1" source="8I9pphBKhg92I5GMk5e_-60" target="8I9pphBKhg92I5GMk5e_-89" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="648" y="240" as="sourcePoint" />
</mxGeometry>
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-34" value="" style="graphMlID=e3;endArrow=none;strokeColor=#FF6392;strokeWidth=1.0;startArrow=diamond;startFill=0;endFill=1;exitX=0.988;exitY=-0.077;exitDx=0;exitDy=0;exitPerimeter=0;fontColor=#5AA9E6;entryX=-0.023;entryY=0.105;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="8I9pphBKhg92I5GMk5e_-53" target="8I9pphBKhg92I5GMk5e_-64" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="840" y="580" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-35" value="" style="graphMlID=e4;endArrow=none;strokeColor=#FF6392;strokeWidth=1.0;startArrow=diamond;startFill=0;endFill=1;exitX=0.975;exitY=1;exitDx=0;exitDy=0;exitPerimeter=0;fontColor=#5AA9E6;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="8I9pphBKhg92I5GMk5e_-53" target="8I9pphBKhg92I5GMk5e_-71" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-36" value="" style="graphMlID=e5;endArrow=none;strokeColor=#FF6392;strokeWidth=1.0;startArrow=diamond;startFill=0;endFill=1;fontColor=#5AA9E6;exitX=1.001;exitY=-0.077;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" source="8I9pphBKhg92I5GMk5e_-55" target="8I9pphBKhg92I5GMk5e_-82" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-37" value="" style="graphMlID=e6;endArrow=none;strokeColor=#FF6392;strokeWidth=1.0;startArrow=diamond;startFill=0;endFill=1;fontColor=#5AA9E6;" parent="1" source="8I9pphBKhg92I5GMk5e_-64" target="8I9pphBKhg92I5GMk5e_-97" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-38" value="" style="graphMlID=e7;endArrow=none;strokeColor=#FF6392;strokeWidth=1.0;startArrow=none;startFill=1;endFill=1;fontColor=#5AA9E6;entryX=0;entryY=0.25;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="8I9pphBKhg92I5GMk5e_-67" target="8I9pphBKhg92I5GMk5e_-72" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-39" value="" style="graphMlID=e8;endArrow=none;strokeColor=#FF6392;strokeWidth=1.0;startArrow=diamond;startFill=0;endFill=1;fontColor=#5AA9E6;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="8I9pphBKhg92I5GMk5e_-57" target="8I9pphBKhg92I5GMk5e_-86" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="710" y="80" as="sourcePoint" />
</mxGeometry>
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-40" value="" style="graphMlID=e9;endArrow=none;strokeColor=#FF6392;strokeWidth=1.0;startArrow=diamond;startFill=0;endFill=1;fontColor=#5AA9E6;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=-0.013;entryY=0.08;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="8I9pphBKhg92I5GMk5e_-86" target="8I9pphBKhg92I5GMk5e_-105" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-41" value="" style="graphMlID=e10;endArrow=none;strokeColor=#FF6392;strokeWidth=1.0;startArrow=diamond;startFill=0;endFill=1;fontColor=#5AA9E6;exitX=0.998;exitY=0.132;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.008;entryY=0.345;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="8I9pphBKhg92I5GMk5e_-85" target="8I9pphBKhg92I5GMk5e_-101" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-42" value="" style="graphMlID=e11;endArrow=none;strokeColor=#FF6392;strokeWidth=1.0;startArrow=diamond;startFill=0;endFill=1;fontColor=#5AA9E6;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.006;entryY=0.178;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="8I9pphBKhg92I5GMk5e_-97" target="8I9pphBKhg92I5GMk5e_-109" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-43" value="" style="graphMlID=e12;endArrow=none;strokeColor=#FF6392;strokeWidth=1.0;startArrow=diamond;startFill=0;endFill=1;fontColor=#5AA9E6;exitX=0.999;exitY=0.387;exitDx=0;exitDy=0;exitPerimeter=0;entryX=-0.014;entryY=0.373;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="8I9pphBKhg92I5GMk5e_-109" target="8I9pphBKhg92I5GMk5e_-112" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-44" value="" style="graphMlID=e13;endArrow=none;strokeColor=#FF6392;strokeWidth=1.0;startArrow=none;startFill=1;endFill=1;fontColor=#5AA9E6;entryX=0.528;entryY=0.978;entryDx=0;entryDy=0;entryPerimeter=0;exitX=0.57;exitY=-0.037;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" source="8I9pphBKhg92I5GMk5e_-60" target="8I9pphBKhg92I5GMk5e_-57" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-45" value="" style="graphMlID=e14;endArrow=none;strokeColor=#FF6392;strokeWidth=1.0;startArrow=none;startFill=1;endFill=1;fontColor=#5AA9E6;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" parent="1" source="8I9pphBKhg92I5GMk5e_-96" target="8I9pphBKhg92I5GMk5e_-88" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="1177.6990312711996" y="279.6614280464578" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-50" value="VirtualWorld" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=20;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;hachureGap=4;pointerEvents=0;fillColor=#FFE45E;strokeColor=#FF6392;fontColor=#5AA9E6;" parent="1" vertex="1">
<mxGeometry x="20" y="150" width="300" height="610" as="geometry" />
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-51" value="+TIMER_ACTION_PERIOD: int <<static>>
+VIEW_WIDTH: int <<static>>
+VIEW_HEIGHT: int <<static>>
+TILE_WIDTH: int <<static>>
+TILE_HEIGHT: int <<static>>
+WORLD_WIDTH_SCALE: int <<static>>
+WORLD_HEIGHT_SCALE: int <<static>>
+VIEW_COLS: int <<static>>
+VIEW_ROWS: int <<static>>
+WORLD_COLS: int <<static>>
+WORLD_ROWS: int <<static>>
+IMAGE_LIST_FILE_NAME: String <<static>>
+DEFAULT_IMAGE_NAME: String <<static>>
+DEFAULT_IMAGE_COLOR: int <<static>>
+LOAD_FILE_NAME: String <<static>>
+FAST_FLAG: String <<static>>
+FASTER_FLAG: String <<static>>
+FASTEST_FLAG: String <<static>>
+FAST_SCALE: double <<static>>
+FASTER_SCALE: double <<static>>
+FASTEST_SCALE: double <<static>>
+timeScale: double
+imageStore: ImageStore
+world: WorldModel
+view: WorldView
+scheduler: EventScheduler" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#5AA9E6;" parent="8I9pphBKhg92I5GMk5e_-50" vertex="1">
<mxGeometry y="20" width="300" height="380" as="geometry" />
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-52" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=#FF6392;fontColor=#5AA9E6;" parent="8I9pphBKhg92I5GMk5e_-50" vertex="1">
<mxGeometry y="400" width="300" height="8" as="geometry" />
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-53" value="+settings()
+setup()
+draw()
+mousePressed()
-mouseToPoint()
+keyPressed()
+createDefaultBackground() <<static>>
+createImageColored() <<static>>
+loadWorld() <<static>>
+loadWorld() <<static>>
+scheduleActions() <<static>>
+parseCommandLine() <<static>>
+main() <<static>>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#5AA9E6;" parent="8I9pphBKhg92I5GMk5e_-50" vertex="1">
<mxGeometry y="408" width="300" height="202" as="geometry" />
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-54" value="WorldModel" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;hachureGap=4;pointerEvents=0;sketch=0;fontColor=#5AA9E6;strokeColor=#FF6392;fillColor=#FFE45E;" parent="1" vertex="1">
<mxGeometry x="520" y="52.03" width="280" height="160" as="geometry" />
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-55" value="+numRows: int
+numCols: int
+background: Background[][]
+occupancy: Entity[][]
+entities: Set<Entity>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#000000;" parent="8I9pphBKhg92I5GMk5e_-54" vertex="1">
<mxGeometry y="26" width="280" height="94" as="geometry" />
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-56" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=#FF6392;fontColor=#5AA9E6;" parent="8I9pphBKhg92I5GMk5e_-54" vertex="1">
<mxGeometry y="120" width="280" height="8" as="geometry" />
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-57" value="TODO" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#020405;" parent="8I9pphBKhg92I5GMk5e_-54" vertex="1">
<mxGeometry y="128" width="280" height="32" as="geometry" />
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-60" value="WorldView" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;hachureGap=4;pointerEvents=0;sketch=0;fontColor=#5AA9E6;strokeColor=#FF6392;fillColor=#FFE45E;" parent="1" vertex="1">
<mxGeometry x="520" y="263.05" width="280" height="168" as="geometry" />
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-61" value="+screen: PApplet
+world: WorldModel
+tileWidth: int
+tileHeight: int
+viewport: Viewport" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#000000;" parent="8I9pphBKhg92I5GMk5e_-60" vertex="1">
<mxGeometry y="26" width="280" height="84" as="geometry" />
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-62" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=#FF6392;fontColor=#5AA9E6;" parent="8I9pphBKhg92I5GMk5e_-60" vertex="1">
<mxGeometry y="110" width="280" height="8" as="geometry" />
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-63" value="TODO" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#000000;" parent="8I9pphBKhg92I5GMk5e_-60" vertex="1">
<mxGeometry y="118" width="280" height="50" as="geometry" />
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-64" value="EventScheduler" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;hachureGap=4;pointerEvents=0;sketch=0;fontColor=#5AA9E6;strokeColor=#FF6392;fillColor=#FFE45E;" parent="1" vertex="1">
<mxGeometry x="520" y="450" width="280" height="150" as="geometry" />
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-65" value="+eventQueue: PriorityQueue<Event>
+pendingEvents: Map<Entity, List<Event>>
+timeScale: double" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#000000;" parent="8I9pphBKhg92I5GMk5e_-64" vertex="1">
<mxGeometry y="26" width="280" height="64" as="geometry" />
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-66" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=#FF6392;fontColor=#5AA9E6;" parent="8I9pphBKhg92I5GMk5e_-64" vertex="1">
<mxGeometry y="90" width="280" height="8" as="geometry" />
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-67" value="TODO" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#000000;" parent="8I9pphBKhg92I5GMk5e_-64" vertex="1">
<mxGeometry y="98" width="280" height="26" as="geometry" />
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-76" value="TODO" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#5AA9E6;" parent="8I9pphBKhg92I5GMk5e_-64" vertex="1">
<mxGeometry y="124" width="280" height="26" as="geometry" />
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-68" value="ImageStore" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;hachureGap=4;pointerEvents=0;sketch=0;fontColor=#5AA9E6;strokeColor=#FF6392;fillColor=#FFE45E;" parent="1" vertex="1">
<mxGeometry x="520" y="600" width="280" height="114" as="geometry" />
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-69" value="+images: Map<String, List<PImage>>
+defaultImages: List<PImage>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#000000;" parent="8I9pphBKhg92I5GMk5e_-68" vertex="1">
<mxGeometry y="26" width="280" height="54" as="geometry" />
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-70" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=#FF6392;fontColor=#5AA9E6;" parent="8I9pphBKhg92I5GMk5e_-68" vertex="1">
<mxGeometry y="80" width="280" height="8" as="geometry" />
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-71" value="TODO" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#000000;" parent="8I9pphBKhg92I5GMk5e_-68" vertex="1">
<mxGeometry y="88" width="280" height="26" as="geometry" />
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-72" value="EventComparator" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;hachureGap=4;pointerEvents=0;sketch=0;fontColor=#5AA9E6;strokeColor=#FF6392;fillColor=#FFE45E;" parent="1" vertex="1">
<mxGeometry x="850" y="580" width="240" height="134" as="geometry" />
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-73" value="+eventQueue: PriorityQueue<Event>
+pendingEvents: Map<Entity, List<Event>>
+timeScale: double" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#000000;" parent="8I9pphBKhg92I5GMk5e_-72" vertex="1">
<mxGeometry y="26" width="240" height="74" as="geometry" />
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-74" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=#FF6392;fontColor=#5AA9E6;" parent="8I9pphBKhg92I5GMk5e_-72" vertex="1">
<mxGeometry y="100" width="240" height="8" as="geometry" />
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-75" value="TODO" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#000000;" parent="8I9pphBKhg92I5GMk5e_-72" vertex="1">
<mxGeometry y="108" width="240" height="26" as="geometry" />
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-77" value="Functions" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;hachureGap=4;pointerEvents=0;sketch=0;fontColor=#5AA9E6;strokeColor=#FF6392;fillColor=#FFE45E;" parent="1" vertex="1">
<mxGeometry x="512.57" y="750" width="360" height="2350" as="geometry" />
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-78" value="+rand: Random <<static>>

+COLOR_MASK: int <<static>>
+KEYED_IMAGE_MIN: int <<static>>
+KEYED_RED_IDX: int <<static>>
+KEYED_GREEN_IDX: int <<static>>
+KEYED_BLUE_IDX: int <<static>>

+PROPERTY_KEY: int <<static>>

+PATH_KEYS: List<String <<static>>

+SAPLING_KEY: String <<static>>
+SAPLING_HEALTH_LIMIT: int <<static>>
+ SAPLING_ACTION_ANIMATION_PERIOD: int <<static>>
+SAPLING_NUM_PROPERTIES: int <<static>>
+SAPLING_ID: String <<static>>
+SAPLING_COL: int <<static>>
+SAPLING_ROW: int <<static>>
+SAPLING_HEALTH: int <<static>>


+BGND_KEY: String <<static>>
+BGND_NUM_PROPERTIES: int <<static>>
+BGND_ID: int <<static>>
+BGND_COL: int <<static>>
+BGND_ROW: int <<static>>

+OBSTACLE_KEY: String <<static>>
+OBSTACLE_NUM_PROPERTIES: int <<static>>
+OBSTACLE_ID: int <<static>>
+OBSTACLE_COL: int <<static>>
+OBSTACLE_ROW: int <<static>>
+OBSTACLE_ANIMATION_PERIOD: int <<static>>

+DUDE_KEY: String <<static>>
+DUDE_NUM_PROPERTIES: int <<static>>
+DUDE_ID: String <<static>>
+DUDE_COL: int <<static>>
+DUDE_ROW: int <<static>>
+DUDE_LIMIT: int <<static>>
+DUDE_ACTION_PERIOD: int <<static>>
+DUDE_ANIMATION_PERIOD: int <<static>>

+HOUSE_KEY: String <<static>>
+HOUSE_NUM_PROPERTIES: int <<static>>
+HOUSE_ID: String <<static>>
+HOUSE_COL: int <<static>>
+HOUSE_ROW: int <<static>>

+FAIRY_KEY: String <<static>>
+FAIRY_NUM_PROPERTIES: int <<static>>
+ FAIRY_ID: String <<static>>
+FAIRY_COL: int <<static>>
+FAIRY_ROW: int <<static>>
+FAIRY_ANIMATION_PERIOD: int <<static>>
+FAIRY_ACTION_PERIOD: int <<static>>

+TREE_KEY: String <<static>>
+TREE_NUM_PROPERTIES: int <<static>>
+TREE_ID: String <<static>>
+TREE_COL: int <<static>>
+TREE_ROW: int <<static>>
+TREE_ANIMATION_PERIOD: int <<static>>
+TREE_ACTION_PERIOD: int <<static>>
+SAPLING_HEALTH: int <<static>>
" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#000000;" parent="8I9pphBKhg92I5GMk5e_-77" vertex="1">
<mxGeometry y="26" width="360" height="964" as="geometry" />
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-79" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=#FF6392;fontColor=#5AA9E6;" parent="8I9pphBKhg92I5GMk5e_-77" vertex="1">
<mxGeometry y="990" width="360" height="8" as="geometry" />
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-80" value="+getCurrentImage(): PImage <<static>>
+getAnimationPeriod(): int <<static>>
+nextImage() <<static>>
+executeAction() <<static>>
+executeAnimationAction() <<static>>
+executeActivityAction() <<static>>

+executeSaplingActivity() <<static>>
+executeTreeActivity() <<static>>
+executeFairyActivity() <<static>>
+executeDudeNotFullActivity() <<static>>
+executeDudeFullActivity() <<static>>

+scheduleActions() <<static>>

+transformNotFull(): boolean <<static>>
+transformFull(): boolean <<static>>
+transformPlant(): boolean <<static>>
+transformTree(): boolean <<static>>
+transformSapling(): boolean <<static>>

+moveToFairy(): boolean <<static>>
+moveToNotFull(): boolean <<static>>
+moveToFull(): boolean <<static>>

+nextPositionFairy(): Point <<static>>
+nextPositionDude(): Point <<static>>

+adjacent(): boolean <<static>>
+getNumFromRange: int <<static>>

+scheduleEvent() <<static>>
+unscheduleAllEvents() <<static>>
+removePendingEvent() <<static>>
+updateOnTime() <<static>>

+getImageList(): List<PImage> <<static>>
+loadImages() <<static>>
+processImageLine() <<static>>
+getImages(): List<PImage> <<static>>
+setAlpha() <<static>>

+shift() <<static>>
+contains(): boolean <<static>>

+load() <<static>>
+processLine(): boolean <<static>>

+parseBackground(): boolean <<static>>
+parseSapling(): boolean <<static>>
+parseDude(): boolean <<static>>
+parseFairy(): boolean <<static>>
+parseTree(): boolean <<static>>
+parseObstacle(): boolean <<static>>
+parseHouse(): boolean <<static>>

+tryAddEntity() <<static>>
+withinBounds(): boolean <<static>>
+isOccupied(): boolean <<static>>

+nearestEntity(): Optional<Entity> <<static>>
+distanceSquared(): int <<static>>
+findNearest(): Optional<Entity> <<static>>
+addEntity() <<static>>
+moveEntity() <<static>>
+removeEntity() <<static>>
+removeEntityAt() <<static>>

+getBackgroundImage(): Optional<PImage> <<static>>
+setBackground() <<static>>
+getOccupant(): Optional<Entity> <<static>>
+getOccupancyCell(): Entity <<static>>
+setOccupancyCell() <<static>>
+getBackgroundCell(): Background <<static>>
+setBackgroundCell() <<static>>

+viewportToWorld(): Point <<static>>
+worldToViewport(): Point <<static>>
+clamp() <<static>>
+shiftView() <<static>>
+drawBackground() <<static>>
+drawEntities() <<static>>
+drawViewport() <<static>>

+createAnimationAction(): Action <<static>>
+createActivityAction(): Action <<static>>

+createHouse(): Entity <<static>>
+createObstacle(): Entity <<static>>
+createTree(): Entity <<static>>
+createStump(): Entity <<static>>
+createSapling(): Entity <<static>>
+createFairy(): Entity <<static>>
+createDudeNotFull(): Entity <<static>>
+createDudeFull(): Entity <<static>>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontColor=#000000;" parent="8I9pphBKhg92I5GMk5e_-77" vertex="1">
<mxGeometry y="998" width="360" height="1352" as="geometry" />
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-81" value="Background" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;hachureGap=4;pointerEvents=0;sketch=0;fontColor=#5AA9E6;strokeColor=#FF6392;fillColor=#FFE45E;" parent="1" vertex="1">
<mxGeometry x="850" y="30" width="250" height="144" as="geometry" />
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-82" value="+id: String
+images: List<PImage>
+imageIndex: int" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="8I9pphBKhg92I5GMk5e_-81" vertex="1">
<mxGeometry y="26" width="250" height="84" as="geometry" />
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-83" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="8I9pphBKhg92I5GMk5e_-81" vertex="1">
<mxGeometry y="110" width="250" height="8" as="geometry" />
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-84" value="TODO" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="8I9pphBKhg92I5GMk5e_-81" vertex="1">
<mxGeometry y="118" width="250" height="26" as="geometry" />
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-85" value="Entity" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;hachureGap=4;pointerEvents=0;sketch=0;fontColor=#5AA9E6;strokeColor=#FF6392;fillColor=#FFE45E;" parent="1" vertex="1">
<mxGeometry x="1120" y="120" width="160" height="204" as="geometry" />
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-86" value="+kind: EntityKind
+id: String
+position: Point
+images: List<PImage>
+imageIndex: int
+resourceLimit: int
+resourceCount: int
+actionPeriod: int
+animationPeriod: int" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="8I9pphBKhg92I5GMk5e_-85" vertex="1">
<mxGeometry y="26" width="160" height="144" as="geometry" />
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-87" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="8I9pphBKhg92I5GMk5e_-85" vertex="1">
<mxGeometry y="170" width="160" height="8" as="geometry" />
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-88" value="TODO" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="8I9pphBKhg92I5GMk5e_-85" vertex="1">
<mxGeometry y="178" width="160" height="26" as="geometry" />
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-89" value="Viewport" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;hachureGap=4;pointerEvents=0;sketch=0;fontColor=#5AA9E6;strokeColor=#FF6392;fillColor=#FFE45E;" parent="1" vertex="1">
<mxGeometry x="850" y="302.04" width="230" height="134" as="geometry" />
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-90" value="+row: int
+col: int
+numRows: int
+numCols: int" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="8I9pphBKhg92I5GMk5e_-89" vertex="1">
<mxGeometry y="26" width="230" height="74" as="geometry" />
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-91" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="8I9pphBKhg92I5GMk5e_-89" vertex="1">
<mxGeometry y="100" width="230" height="8" as="geometry" />
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-92" value="TODO" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="8I9pphBKhg92I5GMk5e_-89" vertex="1">
<mxGeometry y="108" width="230" height="26" as="geometry" />
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-96" value="Event" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;hachureGap=4;pointerEvents=0;sketch=0;fontColor=#5AA9E6;strokeColor=#FF6392;fillColor=#FFE45E;" parent="1" vertex="1">
<mxGeometry x="1115" y="413.54" width="165" height="158" as="geometry" />
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-97" value="+action: Action
+time: long
+entity: Entity" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="8I9pphBKhg92I5GMk5e_-96" vertex="1">
<mxGeometry y="26" width="165" height="64" as="geometry" />
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-98" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="8I9pphBKhg92I5GMk5e_-96" vertex="1">
<mxGeometry y="90" width="165" height="8" as="geometry" />
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-99" value="TODO" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="8I9pphBKhg92I5GMk5e_-96" vertex="1">
<mxGeometry y="98" width="165" height="60" as="geometry" />
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-100" value="<<enumeration>>
EntityKind" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=40;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;hachureGap=4;pointerEvents=0;sketch=0;fontColor=#5AA9E6;strokeColor=#FF6392;fillColor=#FFE45E;" parent="1" vertex="1">
<mxGeometry x="1320" y="30" width="160" height="172" as="geometry" />
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-101" value="HOUSE
DUDE_FULL
DUDE_NOT_FULL
OBSTACLE
FAIRY
STUMP
SAPLING
TREE" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="8I9pphBKhg92I5GMk5e_-100" vertex="1">
<mxGeometry y="40" width="160" height="124" as="geometry" />
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-102" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="8I9pphBKhg92I5GMk5e_-100" vertex="1">
<mxGeometry y="164" width="160" height="8" as="geometry" />
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-104" value="Point" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;hachureGap=4;pointerEvents=0;sketch=0;fontColor=#5AA9E6;strokeColor=#FF6392;fillColor=#FFE45E;" parent="1" vertex="1">
<mxGeometry x="1320" y="230" width="160" height="130" as="geometry" />
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-105" value="+x: int
+y: int" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="8I9pphBKhg92I5GMk5e_-104" vertex="1">
<mxGeometry y="26" width="160" height="54" as="geometry" />
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-106" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="8I9pphBKhg92I5GMk5e_-104" vertex="1">
<mxGeometry y="80" width="160" height="8" as="geometry" />
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-107" value="+toString(): String
+equals(): boolean" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="8I9pphBKhg92I5GMk5e_-104" vertex="1">
<mxGeometry y="88" width="160" height="42" as="geometry" />
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-108" value="Action" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;hachureGap=4;pointerEvents=0;sketch=0;fontColor=#5AA9E6;strokeColor=#FF6392;fillColor=#FFE45E;" parent="1" vertex="1">
<mxGeometry x="1320" y="413.53999999999996" width="160" height="184" as="geometry" />
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-109" value="+kind: ActionKind
+entity: Entity
+world: WorldModel
+imageStore: ImageStore
+repeatCount: int" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="8I9pphBKhg92I5GMk5e_-108" vertex="1">
<mxGeometry y="26" width="160" height="124" as="geometry" />
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-110" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="8I9pphBKhg92I5GMk5e_-108" vertex="1">
<mxGeometry y="150" width="160" height="8" as="geometry" />
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-111" value="TODO" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="8I9pphBKhg92I5GMk5e_-108" vertex="1">
<mxGeometry y="158" width="160" height="26" as="geometry" />
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-112" value="ActionKind" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;hachureGap=4;pointerEvents=0;sketch=0;fontColor=#5AA9E6;strokeColor=#FF6392;fillColor=#FFE45E;" parent="1" vertex="1">
<mxGeometry x="1520" y="439.54" width="160" height="68" as="geometry" />
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-113" value="ACTIVITY
ANIMATION" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="8I9pphBKhg92I5GMk5e_-112" vertex="1">
<mxGeometry y="26" width="160" height="34" as="geometry" />
</mxCell>
<mxCell id="8I9pphBKhg92I5GMk5e_-114" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" parent="8I9pphBKhg92I5GMk5e_-112" vertex="1">
<mxGeometry y="60" width="160" height="8" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>