9 /* Begin PBXBuildFile section */
10 B5012E3F2C96232A00AC4D68 /* EvolutionPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5012E3E2C96232300AC4D68 /* EvolutionPicker.swift */; };
11 B5012E422C96235E00AC4D68 /* Stage.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5012E412C96235B00AC4D68 /* Stage.swift */; };
12 B5012E452C9623C700AC4D68 /* Font+theme.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5012E442C9623C500AC4D68 /* Font+theme.swift */; };
13 B5012E472C96243C00AC4D68 /* MapTextEditor.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5012E462C96243500AC4D68 /* MapTextEditor.swift */; };
14 B5012E492C96245B00AC4D68 /* Color+theme.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5012E482C96245800AC4D68 /* Color+theme.swift */; };
15 B5012E4B2C96246F00AC4D68 /* NSColor+theme.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5012E4A2C96246D00AC4D68 /* NSColor+theme.swift */; };
16 B5012E572C96249400AC4D68 /* NoteParserStrategy.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5012E4D2C96249400AC4D68 /* NoteParserStrategy.swift */; };
17 B5012E582C96249400AC4D68 /* BlockerParserStrategy.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5012E4F2C96249400AC4D68 /* BlockerParserStrategy.swift */; };
18 B5012E592C96249400AC4D68 /* VertexParserStrategy.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5012E4C2C96249400AC4D68 /* VertexParserStrategy.swift */; };
19 B5012E5A2C96249400AC4D68 /* MapParser.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5012E532C96249400AC4D68 /* MapParser.swift */; };
20 B5012E5B2C96249400AC4D68 /* OpportunityParserStrategy.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5012E502C96249400AC4D68 /* OpportunityParserStrategy.swift */; };
21 B5012E5C2C96249400AC4D68 /* EdgeParserStrategy.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5012E4E2C96249400AC4D68 /* EdgeParserStrategy.swift */; };
22 B5012E5D2C96249400AC4D68 /* StageParserStrategy.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5012E512C96249400AC4D68 /* StageParserStrategy.swift */; };
23 B5012E5E2C96249400AC4D68 /* Debouncer.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5012E552C96249400AC4D68 /* Debouncer.swift */; };
24 B5012E622C96254700AC4D68 /* MapRenderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5012E5F2C96254700AC4D68 /* MapRenderView.swift */; };
25 B5012E6B2C96255A00AC4D68 /* MapAxes.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5012E632C96255A00AC4D68 /* MapAxes.swift */; };
26 B5012E6C2C96255A00AC4D68 /* MapVertices.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5012E652C96255A00AC4D68 /* MapVertices.swift */; };
27 B5012E6D2C96255A00AC4D68 /* MapStages.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5012E642C96255A00AC4D68 /* MapStages.swift */; };
28 B5012E6E2C96255A00AC4D68 /* MapNotes.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5012E662C96255A00AC4D68 /* MapNotes.swift */; };
29 B5012E6F2C96255A00AC4D68 /* MapEdges.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5012E672C96255A00AC4D68 /* MapEdges.swift */; };
30 B5012E702C96255A00AC4D68 /* MapOpportunities.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5012E692C96255A00AC4D68 /* MapOpportunities.swift */; };
31 B5012E712C96255A00AC4D68 /* MapBlockers.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5012E682C96255A00AC4D68 /* MapBlockers.swift */; };
32 B5012E742C9625E200AC4D68 /* Patterns in Frameworks */ = {isa = PBXBuildFile; productRef = B5012E732C9625E200AC4D68 /* Patterns */; };
33 B5012E7A2C96F02F00AC4D68 /* Dimensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5012E792C96F02E00AC4D68 /* Dimensions.swift */; };
34 B5012E7C2C972B6C00AC4D68 /* GroupParserStrategy.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5012E7B2C972B6600AC4D68 /* GroupParserStrategy.swift */; };
35 B5012E7F2C97315800AC4D68 /* ConcaveHull in Frameworks */ = {isa = PBXBuildFile; productRef = B5012E7E2C97315800AC4D68 /* ConcaveHull */; };
36 B5012E812C97318600AC4D68 /* MapGroups.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5012E802C97318300AC4D68 /* MapGroups.swift */; };
37 B5012E872C97874600AC4D68 /* MapGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5012E862C97874400AC4D68 /* MapGroup.swift */; };
38 B5012E8A2C98235500AC4D68 /* MapCommands.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5012E892C98235300AC4D68 /* MapCommands.swift */; };
39 B5012E8C2C98244000AC4D68 /* ViewStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5012E8B2C98243E00AC4D68 /* ViewStyle.swift */; };
40 B5012E8E2C9828D000AC4D68 /* Constants.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5012E8D2C9828CE00AC4D68 /* Constants.swift */; };
41 B54587102C961E9C0067B788 /* MapApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = B545870F2C961E9C0067B788 /* MapApp.swift */; };
42 B54587122C961E9C0067B788 /* MapDocument.swift in Sources */ = {isa = PBXBuildFile; fileRef = B54587112C961E9C0067B788 /* MapDocument.swift */; };
43 B54587142C961E9C0067B788 /* MapEditor.swift in Sources */ = {isa = PBXBuildFile; fileRef = B54587132C961E9C0067B788 /* MapEditor.swift */; };
44 B54587162C961E9E0067B788 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = B54587152C961E9E0067B788 /* Assets.xcassets */; };
45 B54587192C961E9E0067B788 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = B54587182C961E9E0067B788 /* Preview Assets.xcassets */; };
46 B54587252C961E9E0067B788 /* MapTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B54587242C961E9E0067B788 /* MapTests.swift */; };
47 B545872F2C961E9E0067B788 /* MapUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B545872E2C961E9E0067B788 /* MapUITests.swift */; };
48 B54587312C961E9E0067B788 /* MapUITestsLaunchTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B54587302C961E9E0067B788 /* MapUITestsLaunchTests.swift */; };
49 /* End PBXBuildFile section */
51 /* Begin PBXContainerItemProxy section */
52 B54587212C961E9E0067B788 /* PBXContainerItemProxy */ = {
53 isa = PBXContainerItemProxy;
54 containerPortal = B54587042C961E9C0067B788 /* Project object */;
56 remoteGlobalIDString = B545870B2C961E9C0067B788;
59 B545872B2C961E9E0067B788 /* PBXContainerItemProxy */ = {
60 isa = PBXContainerItemProxy;
61 containerPortal = B54587042C961E9C0067B788 /* Project object */;
63 remoteGlobalIDString = B545870B2C961E9C0067B788;
66 /* End PBXContainerItemProxy section */
68 /* Begin PBXFileReference section */
69 B5012E3E2C96232300AC4D68 /* EvolutionPicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EvolutionPicker.swift; sourceTree = "<group>"; };
70 B5012E412C96235B00AC4D68 /* Stage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Stage.swift; sourceTree = "<group>"; };
71 B5012E442C9623C500AC4D68 /* Font+theme.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Font+theme.swift"; sourceTree = "<group>"; };
72 B5012E462C96243500AC4D68 /* MapTextEditor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MapTextEditor.swift; sourceTree = "<group>"; };
73 B5012E482C96245800AC4D68 /* Color+theme.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Color+theme.swift"; sourceTree = "<group>"; };
74 B5012E4A2C96246D00AC4D68 /* NSColor+theme.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NSColor+theme.swift"; sourceTree = "<group>"; };
75 B5012E4C2C96249400AC4D68 /* VertexParserStrategy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VertexParserStrategy.swift; sourceTree = "<group>"; };
76 B5012E4D2C96249400AC4D68 /* NoteParserStrategy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NoteParserStrategy.swift; sourceTree = "<group>"; };
77 B5012E4E2C96249400AC4D68 /* EdgeParserStrategy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EdgeParserStrategy.swift; sourceTree = "<group>"; };
78 B5012E4F2C96249400AC4D68 /* BlockerParserStrategy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BlockerParserStrategy.swift; sourceTree = "<group>"; };
79 B5012E502C96249400AC4D68 /* OpportunityParserStrategy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OpportunityParserStrategy.swift; sourceTree = "<group>"; };
80 B5012E512C96249400AC4D68 /* StageParserStrategy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StageParserStrategy.swift; sourceTree = "<group>"; };
81 B5012E532C96249400AC4D68 /* MapParser.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MapParser.swift; sourceTree = "<group>"; };
82 B5012E552C96249400AC4D68 /* Debouncer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Debouncer.swift; sourceTree = "<group>"; };
83 B5012E5F2C96254700AC4D68 /* MapRenderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MapRenderView.swift; sourceTree = "<group>"; };
84 B5012E632C96255A00AC4D68 /* MapAxes.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MapAxes.swift; sourceTree = "<group>"; };
85 B5012E642C96255A00AC4D68 /* MapStages.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MapStages.swift; sourceTree = "<group>"; };
86 B5012E652C96255A00AC4D68 /* MapVertices.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MapVertices.swift; sourceTree = "<group>"; };
87 B5012E662C96255A00AC4D68 /* MapNotes.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MapNotes.swift; sourceTree = "<group>"; };
88 B5012E672C96255A00AC4D68 /* MapEdges.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MapEdges.swift; sourceTree = "<group>"; };
89 B5012E682C96255A00AC4D68 /* MapBlockers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MapBlockers.swift; sourceTree = "<group>"; };
90 B5012E692C96255A00AC4D68 /* MapOpportunities.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MapOpportunities.swift; sourceTree = "<group>"; };
91 B5012E792C96F02E00AC4D68 /* Dimensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Dimensions.swift; sourceTree = "<group>"; };
92 B5012E7B2C972B6600AC4D68 /* GroupParserStrategy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GroupParserStrategy.swift; sourceTree = "<group>"; };
93 B5012E802C97318300AC4D68 /* MapGroups.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MapGroups.swift; sourceTree = "<group>"; };
94 B5012E862C97874400AC4D68 /* MapGroup.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MapGroup.swift; sourceTree = "<group>"; };
95 B5012E892C98235300AC4D68 /* MapCommands.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MapCommands.swift; sourceTree = "<group>"; };
96 B5012E8B2C98243E00AC4D68 /* ViewStyle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewStyle.swift; sourceTree = "<group>"; };
97 B5012E8D2C9828CE00AC4D68 /* Constants.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Constants.swift; sourceTree = "<group>"; };
98 B545870C2C961E9C0067B788 /* Map.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Map.app; sourceTree = BUILT_PRODUCTS_DIR; };
99 B545870F2C961E9C0067B788 /* MapApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MapApp.swift; sourceTree = "<group>"; };
100 B54587112C961E9C0067B788 /* MapDocument.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MapDocument.swift; sourceTree = "<group>"; };
101 B54587132C961E9C0067B788 /* MapEditor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MapEditor.swift; sourceTree = "<group>"; };
102 B54587152C961E9E0067B788 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
103 B54587182C961E9E0067B788 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = "<group>"; };
104 B545871A2C961E9E0067B788 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
105 B545871B2C961E9E0067B788 /* Map.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Map.entitlements; sourceTree = "<group>"; };
106 B54587202C961E9E0067B788 /* MapTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MapTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
107 B54587242C961E9E0067B788 /* MapTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MapTests.swift; sourceTree = "<group>"; };
108 B545872A2C961E9E0067B788 /* Map2UITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Map2UITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
109 B545872E2C961E9E0067B788 /* MapUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MapUITests.swift; sourceTree = "<group>"; };
110 B54587302C961E9E0067B788 /* MapUITestsLaunchTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MapUITestsLaunchTests.swift; sourceTree = "<group>"; };
111 /* End PBXFileReference section */
113 /* Begin PBXFrameworksBuildPhase section */
114 B54587092C961E9C0067B788 /* Frameworks */ = {
115 isa = PBXFrameworksBuildPhase;
116 buildActionMask = 2147483647;
118 B5012E742C9625E200AC4D68 /* Patterns in Frameworks */,
119 B5012E7F2C97315800AC4D68 /* ConcaveHull in Frameworks */,
121 runOnlyForDeploymentPostprocessing = 0;
123 B545871D2C961E9E0067B788 /* Frameworks */ = {
124 isa = PBXFrameworksBuildPhase;
125 buildActionMask = 2147483647;
128 runOnlyForDeploymentPostprocessing = 0;
130 B54587272C961E9E0067B788 /* Frameworks */ = {
131 isa = PBXFrameworksBuildPhase;
132 buildActionMask = 2147483647;
135 runOnlyForDeploymentPostprocessing = 0;
137 /* End PBXFrameworksBuildPhase section */
139 /* Begin PBXGroup section */
140 B5012E3C2C96222E00AC4D68 /* Data */ = {
143 B5012E412C96235B00AC4D68 /* Stage.swift */,
144 B54587112C961E9C0067B788 /* MapDocument.swift */,
147 sourceTree = "<group>";
149 B5012E3D2C96223800AC4D68 /* Presentation */ = {
152 B5012E8B2C98243E00AC4D68 /* ViewStyle.swift */,
153 B5012E882C98234F00AC4D68 /* Commands */,
154 B5012E612C96254700AC4D68 /* Complex Components */,
155 B5012E432C9623BC00AC4D68 /* Theme */,
156 B5012E402C96232E00AC4D68 /* Base Components */,
157 B54587132C961E9C0067B788 /* MapEditor.swift */,
160 sourceTree = "<group>";
162 B5012E402C96232E00AC4D68 /* Base Components */ = {
165 B5012E6A2C96255A00AC4D68 /* MapRender */,
166 B5012E462C96243500AC4D68 /* MapTextEditor.swift */,
167 B5012E3E2C96232300AC4D68 /* EvolutionPicker.swift */,
169 path = "Base Components";
170 sourceTree = "<group>";
172 B5012E432C9623BC00AC4D68 /* Theme */ = {
175 B5012E792C96F02E00AC4D68 /* Dimensions.swift */,
176 B5012E4A2C96246D00AC4D68 /* NSColor+theme.swift */,
177 B5012E482C96245800AC4D68 /* Color+theme.swift */,
178 B5012E442C9623C500AC4D68 /* Font+theme.swift */,
181 sourceTree = "<group>";
183 B5012E522C96249400AC4D68 /* Strategies */ = {
186 B5012E7B2C972B6600AC4D68 /* GroupParserStrategy.swift */,
187 B5012E4C2C96249400AC4D68 /* VertexParserStrategy.swift */,
188 B5012E4D2C96249400AC4D68 /* NoteParserStrategy.swift */,
189 B5012E4E2C96249400AC4D68 /* EdgeParserStrategy.swift */,
190 B5012E4F2C96249400AC4D68 /* BlockerParserStrategy.swift */,
191 B5012E502C96249400AC4D68 /* OpportunityParserStrategy.swift */,
192 B5012E512C96249400AC4D68 /* StageParserStrategy.swift */,
195 sourceTree = "<group>";
197 B5012E542C96249400AC4D68 /* MapParser */ = {
200 B5012E522C96249400AC4D68 /* Strategies */,
201 B5012E532C96249400AC4D68 /* MapParser.swift */,
204 sourceTree = "<group>";
206 B5012E562C96249400AC4D68 /* Logic */ = {
209 B5012E8D2C9828CE00AC4D68 /* Constants.swift */,
210 B5012E542C96249400AC4D68 /* MapParser */,
211 B5012E552C96249400AC4D68 /* Debouncer.swift */,
214 sourceTree = "<group>";
216 B5012E602C96254700AC4D68 /* MapRender */ = {
219 B5012E5F2C96254700AC4D68 /* MapRenderView.swift */,
222 sourceTree = "<group>";
224 B5012E612C96254700AC4D68 /* Complex Components */ = {
227 B5012E602C96254700AC4D68 /* MapRender */,
229 path = "Complex Components";
230 sourceTree = "<group>";
232 B5012E6A2C96255A00AC4D68 /* MapRender */ = {
235 B5012E802C97318300AC4D68 /* MapGroups.swift */,
236 B5012E862C97874400AC4D68 /* MapGroup.swift */,
237 B5012E632C96255A00AC4D68 /* MapAxes.swift */,
238 B5012E642C96255A00AC4D68 /* MapStages.swift */,
239 B5012E652C96255A00AC4D68 /* MapVertices.swift */,
240 B5012E662C96255A00AC4D68 /* MapNotes.swift */,
241 B5012E672C96255A00AC4D68 /* MapEdges.swift */,
242 B5012E682C96255A00AC4D68 /* MapBlockers.swift */,
243 B5012E692C96255A00AC4D68 /* MapOpportunities.swift */,
246 sourceTree = "<group>";
248 B5012E882C98234F00AC4D68 /* Commands */ = {
251 B5012E892C98235300AC4D68 /* MapCommands.swift */,
254 sourceTree = "<group>";
256 B54587032C961E9C0067B788 = {
259 B545870E2C961E9C0067B788 /* Map */,
260 B54587232C961E9E0067B788 /* MapTests */,
261 B545872D2C961E9E0067B788 /* MapUITests */,
262 B545870D2C961E9C0067B788 /* Products */,
264 sourceTree = "<group>";
266 B545870D2C961E9C0067B788 /* Products */ = {
269 B545870C2C961E9C0067B788 /* Map.app */,
270 B54587202C961E9E0067B788 /* MapTests.xctest */,
271 B545872A2C961E9E0067B788 /* Map2UITests.xctest */,
274 sourceTree = "<group>";
276 B545870E2C961E9C0067B788 /* Map */ = {
279 B5012E562C96249400AC4D68 /* Logic */,
280 B5012E3C2C96222E00AC4D68 /* Data */,
281 B5012E3D2C96223800AC4D68 /* Presentation */,
282 B545870F2C961E9C0067B788 /* MapApp.swift */,
283 B54587152C961E9E0067B788 /* Assets.xcassets */,
284 B545871A2C961E9E0067B788 /* Info.plist */,
285 B545871B2C961E9E0067B788 /* Map.entitlements */,
286 B54587172C961E9E0067B788 /* Preview Content */,
289 sourceTree = "<group>";
291 B54587172C961E9E0067B788 /* Preview Content */ = {
294 B54587182C961E9E0067B788 /* Preview Assets.xcassets */,
296 path = "Preview Content";
297 sourceTree = "<group>";
299 B54587232C961E9E0067B788 /* MapTests */ = {
302 B54587242C961E9E0067B788 /* MapTests.swift */,
305 sourceTree = "<group>";
307 B545872D2C961E9E0067B788 /* MapUITests */ = {
310 B545872E2C961E9E0067B788 /* MapUITests.swift */,
311 B54587302C961E9E0067B788 /* MapUITestsLaunchTests.swift */,
314 sourceTree = "<group>";
316 /* End PBXGroup section */
318 /* Begin PBXNativeTarget section */
319 B545870B2C961E9C0067B788 /* Map */ = {
320 isa = PBXNativeTarget;
321 buildConfigurationList = B54587342C961E9E0067B788 /* Build configuration list for PBXNativeTarget "Map" */;
323 B54587082C961E9C0067B788 /* Sources */,
324 B54587092C961E9C0067B788 /* Frameworks */,
325 B545870A2C961E9C0067B788 /* Resources */,
332 packageProductDependencies = (
333 B5012E732C9625E200AC4D68 /* Patterns */,
334 B5012E7E2C97315800AC4D68 /* ConcaveHull */,
337 productReference = B545870C2C961E9C0067B788 /* Map.app */;
338 productType = "com.apple.product-type.application";
340 B545871F2C961E9E0067B788 /* MapTests */ = {
341 isa = PBXNativeTarget;
342 buildConfigurationList = B54587372C961E9E0067B788 /* Build configuration list for PBXNativeTarget "MapTests" */;
344 B545871C2C961E9E0067B788 /* Sources */,
345 B545871D2C961E9E0067B788 /* Frameworks */,
346 B545871E2C961E9E0067B788 /* Resources */,
351 B54587222C961E9E0067B788 /* PBXTargetDependency */,
354 productName = Map2Tests;
355 productReference = B54587202C961E9E0067B788 /* MapTests.xctest */;
356 productType = "com.apple.product-type.bundle.unit-test";
358 B54587292C961E9E0067B788 /* Map2UITests */ = {
359 isa = PBXNativeTarget;
360 buildConfigurationList = B545873A2C961E9E0067B788 /* Build configuration list for PBXNativeTarget "Map2UITests" */;
362 B54587262C961E9E0067B788 /* Sources */,
363 B54587272C961E9E0067B788 /* Frameworks */,
364 B54587282C961E9E0067B788 /* Resources */,
369 B545872C2C961E9E0067B788 /* PBXTargetDependency */,
372 productName = Map2UITests;
373 productReference = B545872A2C961E9E0067B788 /* Map2UITests.xctest */;
374 productType = "com.apple.product-type.bundle.ui-testing";
376 /* End PBXNativeTarget section */
378 /* Begin PBXProject section */
379 B54587042C961E9C0067B788 /* Project object */ = {
382 BuildIndependentTargetsInParallel = 1;
383 LastSwiftUpdateCheck = 1600;
384 LastUpgradeCheck = 1600;
386 B545870B2C961E9C0067B788 = {
387 CreatedOnToolsVersion = 16.0;
389 B545871F2C961E9E0067B788 = {
390 CreatedOnToolsVersion = 16.0;
391 TestTargetID = B545870B2C961E9C0067B788;
393 B54587292C961E9E0067B788 = {
394 CreatedOnToolsVersion = 16.0;
395 TestTargetID = B545870B2C961E9C0067B788;
399 buildConfigurationList = B54587072C961E9C0067B788 /* Build configuration list for PBXProject "Map" */;
400 compatibilityVersion = "Xcode 15.0";
401 developmentRegion = en;
402 hasScannedForEncodings = 0;
407 mainGroup = B54587032C961E9C0067B788;
408 packageReferences = (
409 B5012E722C9625E200AC4D68 /* XCRemoteSwiftPackageReference "patterns" */,
410 B5012E7D2C97315800AC4D68 /* XCRemoteSwiftPackageReference "ConcaveHull" */,
412 productRefGroup = B545870D2C961E9C0067B788 /* Products */;
416 B545870B2C961E9C0067B788 /* Map */,
417 B545871F2C961E9E0067B788 /* MapTests */,
418 B54587292C961E9E0067B788 /* Map2UITests */,
421 /* End PBXProject section */
423 /* Begin PBXResourcesBuildPhase section */
424 B545870A2C961E9C0067B788 /* Resources */ = {
425 isa = PBXResourcesBuildPhase;
426 buildActionMask = 2147483647;
428 B54587192C961E9E0067B788 /* Preview Assets.xcassets in Resources */,
429 B54587162C961E9E0067B788 /* Assets.xcassets in Resources */,
431 runOnlyForDeploymentPostprocessing = 0;
433 B545871E2C961E9E0067B788 /* Resources */ = {
434 isa = PBXResourcesBuildPhase;
435 buildActionMask = 2147483647;
438 runOnlyForDeploymentPostprocessing = 0;
440 B54587282C961E9E0067B788 /* Resources */ = {
441 isa = PBXResourcesBuildPhase;
442 buildActionMask = 2147483647;
445 runOnlyForDeploymentPostprocessing = 0;
447 /* End PBXResourcesBuildPhase section */
449 /* Begin PBXSourcesBuildPhase section */
450 B54587082C961E9C0067B788 /* Sources */ = {
451 isa = PBXSourcesBuildPhase;
452 buildActionMask = 2147483647;
454 B5012E872C97874600AC4D68 /* MapGroup.swift in Sources */,
455 B5012E472C96243C00AC4D68 /* MapTextEditor.swift in Sources */,
456 B5012E622C96254700AC4D68 /* MapRenderView.swift in Sources */,
457 B5012E492C96245B00AC4D68 /* Color+theme.swift in Sources */,
458 B54587122C961E9C0067B788 /* MapDocument.swift in Sources */,
459 B54587102C961E9C0067B788 /* MapApp.swift in Sources */,
460 B5012E8C2C98244000AC4D68 /* ViewStyle.swift in Sources */,
461 B5012E8E2C9828D000AC4D68 /* Constants.swift in Sources */,
462 B5012E7C2C972B6C00AC4D68 /* GroupParserStrategy.swift in Sources */,
463 B5012E6B2C96255A00AC4D68 /* MapAxes.swift in Sources */,
464 B5012E6C2C96255A00AC4D68 /* MapVertices.swift in Sources */,
465 B5012E6D2C96255A00AC4D68 /* MapStages.swift in Sources */,
466 B5012E7A2C96F02F00AC4D68 /* Dimensions.swift in Sources */,
467 B5012E6E2C96255A00AC4D68 /* MapNotes.swift in Sources */,
468 B5012E6F2C96255A00AC4D68 /* MapEdges.swift in Sources */,
469 B5012E702C96255A00AC4D68 /* MapOpportunities.swift in Sources */,
470 B5012E712C96255A00AC4D68 /* MapBlockers.swift in Sources */,
471 B5012E4B2C96246F00AC4D68 /* NSColor+theme.swift in Sources */,
472 B54587142C961E9C0067B788 /* MapEditor.swift in Sources */,
473 B5012E3F2C96232A00AC4D68 /* EvolutionPicker.swift in Sources */,
474 B5012E572C96249400AC4D68 /* NoteParserStrategy.swift in Sources */,
475 B5012E582C96249400AC4D68 /* BlockerParserStrategy.swift in Sources */,
476 B5012E592C96249400AC4D68 /* VertexParserStrategy.swift in Sources */,
477 B5012E5A2C96249400AC4D68 /* MapParser.swift in Sources */,
478 B5012E5B2C96249400AC4D68 /* OpportunityParserStrategy.swift in Sources */,
479 B5012E5C2C96249400AC4D68 /* EdgeParserStrategy.swift in Sources */,
480 B5012E5D2C96249400AC4D68 /* StageParserStrategy.swift in Sources */,
481 B5012E812C97318600AC4D68 /* MapGroups.swift in Sources */,
482 B5012E8A2C98235500AC4D68 /* MapCommands.swift in Sources */,
483 B5012E5E2C96249400AC4D68 /* Debouncer.swift in Sources */,
484 B5012E452C9623C700AC4D68 /* Font+theme.swift in Sources */,
485 B5012E422C96235E00AC4D68 /* Stage.swift in Sources */,
487 runOnlyForDeploymentPostprocessing = 0;
489 B545871C2C961E9E0067B788 /* Sources */ = {
490 isa = PBXSourcesBuildPhase;
491 buildActionMask = 2147483647;
493 B54587252C961E9E0067B788 /* MapTests.swift in Sources */,
495 runOnlyForDeploymentPostprocessing = 0;
497 B54587262C961E9E0067B788 /* Sources */ = {
498 isa = PBXSourcesBuildPhase;
499 buildActionMask = 2147483647;
501 B54587312C961E9E0067B788 /* MapUITestsLaunchTests.swift in Sources */,
502 B545872F2C961E9E0067B788 /* MapUITests.swift in Sources */,
504 runOnlyForDeploymentPostprocessing = 0;
506 /* End PBXSourcesBuildPhase section */
508 /* Begin PBXTargetDependency section */
509 B54587222C961E9E0067B788 /* PBXTargetDependency */ = {
510 isa = PBXTargetDependency;
511 target = B545870B2C961E9C0067B788 /* Map */;
512 targetProxy = B54587212C961E9E0067B788 /* PBXContainerItemProxy */;
514 B545872C2C961E9E0067B788 /* PBXTargetDependency */ = {
515 isa = PBXTargetDependency;
516 target = B545870B2C961E9C0067B788 /* Map */;
517 targetProxy = B545872B2C961E9E0067B788 /* PBXContainerItemProxy */;
519 /* End PBXTargetDependency section */
521 /* Begin XCBuildConfiguration section */
522 B54587322C961E9E0067B788 /* Debug */ = {
523 isa = XCBuildConfiguration;
525 ALWAYS_SEARCH_USER_PATHS = NO;
526 ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
527 CLANG_ANALYZER_NONNULL = YES;
528 CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
529 CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
530 CLANG_ENABLE_MODULES = YES;
531 CLANG_ENABLE_OBJC_ARC = YES;
532 CLANG_ENABLE_OBJC_WEAK = YES;
533 CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
534 CLANG_WARN_BOOL_CONVERSION = YES;
535 CLANG_WARN_COMMA = YES;
536 CLANG_WARN_CONSTANT_CONVERSION = YES;
537 CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
538 CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
539 CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
540 CLANG_WARN_EMPTY_BODY = YES;
541 CLANG_WARN_ENUM_CONVERSION = YES;
542 CLANG_WARN_INFINITE_RECURSION = YES;
543 CLANG_WARN_INT_CONVERSION = YES;
544 CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
545 CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
546 CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
547 CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
548 CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
549 CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
550 CLANG_WARN_STRICT_PROTOTYPES = YES;
551 CLANG_WARN_SUSPICIOUS_MOVE = YES;
552 CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
553 CLANG_WARN_UNREACHABLE_CODE = YES;
554 CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
555 COPY_PHASE_STRIP = NO;
556 DEBUG_INFORMATION_FORMAT = dwarf;
557 ENABLE_STRICT_OBJC_MSGSEND = YES;
558 ENABLE_TESTABILITY = YES;
559 ENABLE_USER_SCRIPT_SANDBOXING = YES;
560 GCC_C_LANGUAGE_STANDARD = gnu17;
561 GCC_DYNAMIC_NO_PIC = NO;
562 GCC_NO_COMMON_BLOCKS = YES;
563 GCC_OPTIMIZATION_LEVEL = 0;
564 GCC_PREPROCESSOR_DEFINITIONS = (
568 GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
569 GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
570 GCC_WARN_UNDECLARED_SELECTOR = YES;
571 GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
572 GCC_WARN_UNUSED_FUNCTION = YES;
573 GCC_WARN_UNUSED_VARIABLE = YES;
574 LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
575 MACOSX_DEPLOYMENT_TARGET = 15.0;
576 MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
578 ONLY_ACTIVE_ARCH = YES;
580 SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)";
581 SWIFT_OPTIMIZATION_LEVEL = "-Onone";
585 B54587332C961E9E0067B788 /* Release */ = {
586 isa = XCBuildConfiguration;
588 ALWAYS_SEARCH_USER_PATHS = NO;
589 ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
590 CLANG_ANALYZER_NONNULL = YES;
591 CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
592 CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
593 CLANG_ENABLE_MODULES = YES;
594 CLANG_ENABLE_OBJC_ARC = YES;
595 CLANG_ENABLE_OBJC_WEAK = YES;
596 CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
597 CLANG_WARN_BOOL_CONVERSION = YES;
598 CLANG_WARN_COMMA = YES;
599 CLANG_WARN_CONSTANT_CONVERSION = YES;
600 CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
601 CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
602 CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
603 CLANG_WARN_EMPTY_BODY = YES;
604 CLANG_WARN_ENUM_CONVERSION = YES;
605 CLANG_WARN_INFINITE_RECURSION = YES;
606 CLANG_WARN_INT_CONVERSION = YES;
607 CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
608 CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
609 CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
610 CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
611 CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
612 CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
613 CLANG_WARN_STRICT_PROTOTYPES = YES;
614 CLANG_WARN_SUSPICIOUS_MOVE = YES;
615 CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
616 CLANG_WARN_UNREACHABLE_CODE = YES;
617 CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
618 COPY_PHASE_STRIP = NO;
619 DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
620 ENABLE_NS_ASSERTIONS = NO;
621 ENABLE_STRICT_OBJC_MSGSEND = YES;
622 ENABLE_USER_SCRIPT_SANDBOXING = YES;
623 GCC_C_LANGUAGE_STANDARD = gnu17;
624 GCC_NO_COMMON_BLOCKS = YES;
625 GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
626 GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
627 GCC_WARN_UNDECLARED_SELECTOR = YES;
628 GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
629 GCC_WARN_UNUSED_FUNCTION = YES;
630 GCC_WARN_UNUSED_VARIABLE = YES;
631 LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
632 MACOSX_DEPLOYMENT_TARGET = 15.0;
633 MTL_ENABLE_DEBUG_INFO = NO;
636 SWIFT_COMPILATION_MODE = wholemodule;
640 B54587352C961E9E0067B788 /* Debug */ = {
641 isa = XCBuildConfiguration;
643 ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
644 ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
645 CODE_SIGN_ENTITLEMENTS = Map/Map.entitlements;
646 CODE_SIGN_STYLE = Automatic;
647 COMBINE_HIDPI_IMAGES = YES;
648 CURRENT_PROJECT_VERSION = 3;
649 DEVELOPMENT_ASSET_PATHS = "\"Map/Preview Content\"";
650 DEVELOPMENT_TEAM = S68NHQVJXW;
651 ENABLE_HARDENED_RUNTIME = YES;
652 ENABLE_PREVIEWS = YES;
653 GENERATE_INFOPLIST_FILE = YES;
654 INFOPLIST_FILE = Map/Info.plist;
655 INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.productivity";
656 INFOPLIST_KEY_NSHumanReadableCopyright = "";
657 LD_RUNPATH_SEARCH_PATHS = (
659 "@executable_path/../Frameworks",
661 MACOSX_DEPLOYMENT_TARGET = 14.0;
662 MARKETING_VERSION = 3.0.0;
663 PRODUCT_BUNDLE_IDENTIFIER = systems.tranquil.Map;
664 PRODUCT_NAME = "$(TARGET_NAME)";
665 SWIFT_EMIT_LOC_STRINGS = YES;
670 B54587362C961E9E0067B788 /* Release */ = {
671 isa = XCBuildConfiguration;
673 ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
674 ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
675 CODE_SIGN_ENTITLEMENTS = Map/Map.entitlements;
676 CODE_SIGN_STYLE = Automatic;
677 COMBINE_HIDPI_IMAGES = YES;
678 CURRENT_PROJECT_VERSION = 3;
679 DEVELOPMENT_ASSET_PATHS = "\"Map/Preview Content\"";
680 DEVELOPMENT_TEAM = S68NHQVJXW;
681 ENABLE_HARDENED_RUNTIME = YES;
682 ENABLE_PREVIEWS = YES;
683 GENERATE_INFOPLIST_FILE = YES;
684 INFOPLIST_FILE = Map/Info.plist;
685 INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.productivity";
686 INFOPLIST_KEY_NSHumanReadableCopyright = "";
687 LD_RUNPATH_SEARCH_PATHS = (
689 "@executable_path/../Frameworks",
691 MACOSX_DEPLOYMENT_TARGET = 14.0;
692 MARKETING_VERSION = 3.0.0;
693 PRODUCT_BUNDLE_IDENTIFIER = systems.tranquil.Map;
694 PRODUCT_NAME = "$(TARGET_NAME)";
695 SWIFT_EMIT_LOC_STRINGS = YES;
700 B54587382C961E9E0067B788 /* Debug */ = {
701 isa = XCBuildConfiguration;
703 BUNDLE_LOADER = "$(TEST_HOST)";
704 CODE_SIGN_STYLE = Automatic;
705 CURRENT_PROJECT_VERSION = 1;
706 DEVELOPMENT_TEAM = S68NHQVJXW;
707 GENERATE_INFOPLIST_FILE = YES;
708 MACOSX_DEPLOYMENT_TARGET = 15.0;
709 MARKETING_VERSION = 1.0;
710 PRODUCT_BUNDLE_IDENTIFIER = systems.tranquil.Map2Tests;
711 PRODUCT_NAME = "$(TARGET_NAME)";
712 SWIFT_EMIT_LOC_STRINGS = NO;
714 TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Map2.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Map2";
718 B54587392C961E9E0067B788 /* Release */ = {
719 isa = XCBuildConfiguration;
721 BUNDLE_LOADER = "$(TEST_HOST)";
722 CODE_SIGN_STYLE = Automatic;
723 CURRENT_PROJECT_VERSION = 1;
724 DEVELOPMENT_TEAM = S68NHQVJXW;
725 GENERATE_INFOPLIST_FILE = YES;
726 MACOSX_DEPLOYMENT_TARGET = 15.0;
727 MARKETING_VERSION = 1.0;
728 PRODUCT_BUNDLE_IDENTIFIER = systems.tranquil.Map2Tests;
729 PRODUCT_NAME = "$(TARGET_NAME)";
730 SWIFT_EMIT_LOC_STRINGS = NO;
732 TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Map2.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Map2";
736 B545873B2C961E9E0067B788 /* Debug */ = {
737 isa = XCBuildConfiguration;
739 CODE_SIGN_STYLE = Automatic;
740 CURRENT_PROJECT_VERSION = 1;
741 DEVELOPMENT_TEAM = S68NHQVJXW;
742 GENERATE_INFOPLIST_FILE = YES;
743 MARKETING_VERSION = 1.0;
744 PRODUCT_BUNDLE_IDENTIFIER = systems.tranquil.Map2UITests;
745 PRODUCT_NAME = "$(TARGET_NAME)";
746 SWIFT_EMIT_LOC_STRINGS = NO;
748 TEST_TARGET_NAME = Map2;
752 B545873C2C961E9E0067B788 /* Release */ = {
753 isa = XCBuildConfiguration;
755 CODE_SIGN_STYLE = Automatic;
756 CURRENT_PROJECT_VERSION = 1;
757 DEVELOPMENT_TEAM = S68NHQVJXW;
758 GENERATE_INFOPLIST_FILE = YES;
759 MARKETING_VERSION = 1.0;
760 PRODUCT_BUNDLE_IDENTIFIER = systems.tranquil.Map2UITests;
761 PRODUCT_NAME = "$(TARGET_NAME)";
762 SWIFT_EMIT_LOC_STRINGS = NO;
764 TEST_TARGET_NAME = Map2;
768 /* End XCBuildConfiguration section */
770 /* Begin XCConfigurationList section */
771 B54587072C961E9C0067B788 /* Build configuration list for PBXProject "Map" */ = {
772 isa = XCConfigurationList;
773 buildConfigurations = (
774 B54587322C961E9E0067B788 /* Debug */,
775 B54587332C961E9E0067B788 /* Release */,
777 defaultConfigurationIsVisible = 0;
778 defaultConfigurationName = Release;
780 B54587342C961E9E0067B788 /* Build configuration list for PBXNativeTarget "Map" */ = {
781 isa = XCConfigurationList;
782 buildConfigurations = (
783 B54587352C961E9E0067B788 /* Debug */,
784 B54587362C961E9E0067B788 /* Release */,
786 defaultConfigurationIsVisible = 0;
787 defaultConfigurationName = Release;
789 B54587372C961E9E0067B788 /* Build configuration list for PBXNativeTarget "MapTests" */ = {
790 isa = XCConfigurationList;
791 buildConfigurations = (
792 B54587382C961E9E0067B788 /* Debug */,
793 B54587392C961E9E0067B788 /* Release */,
795 defaultConfigurationIsVisible = 0;
796 defaultConfigurationName = Release;
798 B545873A2C961E9E0067B788 /* Build configuration list for PBXNativeTarget "Map2UITests" */ = {
799 isa = XCConfigurationList;
800 buildConfigurations = (
801 B545873B2C961E9E0067B788 /* Debug */,
802 B545873C2C961E9E0067B788 /* Release */,
804 defaultConfigurationIsVisible = 0;
805 defaultConfigurationName = Release;
807 /* End XCConfigurationList section */
809 /* Begin XCRemoteSwiftPackageReference section */
810 B5012E722C9625E200AC4D68 /* XCRemoteSwiftPackageReference "patterns" */ = {
811 isa = XCRemoteSwiftPackageReference;
812 repositoryURL = "https://git.sr.ht/~rbdr/patterns";
814 kind = upToNextMajorVersion;
815 minimumVersion = 2.0.0;
818 B5012E7D2C97315800AC4D68 /* XCRemoteSwiftPackageReference "ConcaveHull" */ = {
819 isa = XCRemoteSwiftPackageReference;
820 repositoryURL = "https://github.com/Syncheo/ConcaveHull";
826 /* End XCRemoteSwiftPackageReference section */
828 /* Begin XCSwiftPackageProductDependency section */
829 B5012E732C9625E200AC4D68 /* Patterns */ = {
830 isa = XCSwiftPackageProductDependency;
831 package = B5012E722C9625E200AC4D68 /* XCRemoteSwiftPackageReference "patterns" */;
832 productName = Patterns;
834 B5012E7E2C97315800AC4D68 /* ConcaveHull */ = {
835 isa = XCSwiftPackageProductDependency;
836 package = B5012E7D2C97315800AC4D68 /* XCRemoteSwiftPackageReference "ConcaveHull" */;
837 productName = ConcaveHull;
839 /* End XCSwiftPackageProductDependency section */
841 rootObject = B54587042C961E9C0067B788 /* Project object */;