9 /* Begin PBXBuildFile section */
10 B523C73D25C98D9800C44061 /* NSImage+writePNG.swift in Sources */ = {isa = PBXBuildFile; fileRef = B523C73C25C98D9800C44061 /* NSImage+writePNG.swift */; };
11 B523C74625C9BD3500C44061 /* CloudKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B523C74525C9BD3500C44061 /* CloudKit.framework */; };
12 B523C74B25C9C1BA00C44061 /* DefaultMapView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B523C74A25C9C1BA00C44061 /* DefaultMapView.swift */; };
13 B523C75A25C9FD4900C44061 /* MapAxes.swift in Sources */ = {isa = PBXBuildFile; fileRef = B523C75925C9FD4900C44061 /* MapAxes.swift */; };
14 B523C76225CA05A300C44061 /* MapStages.swift in Sources */ = {isa = PBXBuildFile; fileRef = B523C76125CA05A300C44061 /* MapStages.swift */; };
15 B523C76725CA071B00C44061 /* MapVertices.swift in Sources */ = {isa = PBXBuildFile; fileRef = B523C76625CA071B00C44061 /* MapVertices.swift */; };
16 B523C76C25CA0DFA00C44061 /* MapEdges.swift in Sources */ = {isa = PBXBuildFile; fileRef = B523C76B25CA0DFA00C44061 /* MapEdges.swift */; };
17 B523C77125CA121300C44061 /* MapBlockers.swift in Sources */ = {isa = PBXBuildFile; fileRef = B523C77025CA121300C44061 /* MapBlockers.swift */; };
18 B523C77625CA181100C44061 /* MapColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = B523C77525CA181100C44061 /* MapColor.swift */; };
19 B523C77E25CA294C00C44061 /* MapOpportunities.swift in Sources */ = {isa = PBXBuildFile; fileRef = B523C77D25CA294C00C44061 /* MapOpportunities.swift */; };
20 B526257225C874F9003E73B7 /* MapApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = B526257125C874F9003E73B7 /* MapApp.swift */; };
21 B526257425C874F9003E73B7 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B526257325C874F9003E73B7 /* ContentView.swift */; };
22 B526257625C874FA003E73B7 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = B526257525C874FA003E73B7 /* Assets.xcassets */; };
23 B526257925C874FA003E73B7 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = B526257825C874FA003E73B7 /* Preview Assets.xcassets */; };
24 B526257B25C874FA003E73B7 /* Persistence.swift in Sources */ = {isa = PBXBuildFile; fileRef = B526257A25C874FA003E73B7 /* Persistence.swift */; };
25 B526257E25C874FA003E73B7 /* Map.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = B526257C25C874FA003E73B7 /* Map.xcdatamodeld */; };
26 B526258A25C874FA003E73B7 /* MapTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B526258925C874FA003E73B7 /* MapTests.swift */; };
27 B526259525C874FA003E73B7 /* MapUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B526259425C874FA003E73B7 /* MapUITests.swift */; };
28 B52625A625C876C3003E73B7 /* MapDetail.swift in Sources */ = {isa = PBXBuildFile; fileRef = B52625A525C876C3003E73B7 /* MapDetail.swift */; };
29 B52625AB25C87909003E73B7 /* Date+format.swift in Sources */ = {isa = PBXBuildFile; fileRef = B52625AA25C87909003E73B7 /* Date+format.swift */; };
30 B52625B025C87C14003E73B7 /* MapRender.swift in Sources */ = {isa = PBXBuildFile; fileRef = B52625AF25C87C14003E73B7 /* MapRender.swift */; };
31 B52625BB25C884C2003E73B7 /* Map+parse.swift in Sources */ = {isa = PBXBuildFile; fileRef = B52625BA25C884C2003E73B7 /* Map+parse.swift */; };
32 B52625C625C8BD2A003E73B7 /* Stage.swift in Sources */ = {isa = PBXBuildFile; fileRef = B52625C525C8BD2A003E73B7 /* Stage.swift */; };
33 B539516C25CB0C9300959F72 /* Store.swift in Sources */ = {isa = PBXBuildFile; fileRef = B539516B25CB0C9200959F72 /* Store.swift */; };
34 B539517425CB0CA400959F72 /* AppState.swift in Sources */ = {isa = PBXBuildFile; fileRef = B539517325CB0CA400959F72 /* AppState.swift */; };
35 B539518125CB2D7A00959F72 /* MapTextEditor.swift in Sources */ = {isa = PBXBuildFile; fileRef = B539518025CB2D7A00959F72 /* MapTextEditor.swift */; };
36 B5CF75C925CC19FC003BFF3D /* EvolutionPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5CF75C825CC19FC003BFF3D /* EvolutionPicker.swift */; };
37 B5CF75CF25CC7965003BFF3D /* MapParser.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5CF75CE25CC7965003BFF3D /* MapParser.swift */; };
38 B5CF75D825CC79BC003BFF3D /* VertexParserStrategy.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5CF75D725CC79BC003BFF3D /* VertexParserStrategy.swift */; };
39 B5CF75DD25CC79D7003BFF3D /* EdgeParserStrategy.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5CF75DC25CC79D7003BFF3D /* EdgeParserStrategy.swift */; };
40 B5CF75E225CC79ED003BFF3D /* BlockerParserStrategy.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5CF75E125CC79ED003BFF3D /* BlockerParserStrategy.swift */; };
41 B5CF75EA25CC7A13003BFF3D /* OpportunityParserStrategy.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5CF75E925CC7A13003BFF3D /* OpportunityParserStrategy.swift */; };
42 B5CF75EF25CC7A4A003BFF3D /* StageParserStrategy.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5CF75EE25CC7A4A003BFF3D /* StageParserStrategy.swift */; };
43 B5CF75F725CC97CA003BFF3D /* Debouncer.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5CF75F625CC97CA003BFF3D /* Debouncer.swift */; };
44 /* End PBXBuildFile section */
46 /* Begin PBXContainerItemProxy section */
47 B526258625C874FA003E73B7 /* PBXContainerItemProxy */ = {
48 isa = PBXContainerItemProxy;
49 containerPortal = B526256625C874F9003E73B7 /* Project object */;
51 remoteGlobalIDString = B526256D25C874F9003E73B7;
54 B526259125C874FA003E73B7 /* PBXContainerItemProxy */ = {
55 isa = PBXContainerItemProxy;
56 containerPortal = B526256625C874F9003E73B7 /* Project object */;
58 remoteGlobalIDString = B526256D25C874F9003E73B7;
61 /* End PBXContainerItemProxy section */
63 /* Begin PBXFileReference section */
64 B523C73C25C98D9800C44061 /* NSImage+writePNG.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NSImage+writePNG.swift"; sourceTree = "<group>"; };
65 B523C74525C9BD3500C44061 /* CloudKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CloudKit.framework; path = System/Library/Frameworks/CloudKit.framework; sourceTree = SDKROOT; };
66 B523C74A25C9C1BA00C44061 /* DefaultMapView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DefaultMapView.swift; sourceTree = "<group>"; };
67 B523C75925C9FD4900C44061 /* MapAxes.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MapAxes.swift; sourceTree = "<group>"; };
68 B523C76125CA05A300C44061 /* MapStages.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MapStages.swift; sourceTree = "<group>"; };
69 B523C76625CA071B00C44061 /* MapVertices.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MapVertices.swift; sourceTree = "<group>"; };
70 B523C76B25CA0DFA00C44061 /* MapEdges.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MapEdges.swift; sourceTree = "<group>"; };
71 B523C77025CA121300C44061 /* MapBlockers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MapBlockers.swift; sourceTree = "<group>"; };
72 B523C77525CA181100C44061 /* MapColor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MapColor.swift; sourceTree = "<group>"; };
73 B523C77D25CA294C00C44061 /* MapOpportunities.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MapOpportunities.swift; sourceTree = "<group>"; };
74 B526256E25C874F9003E73B7 /* Map.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Map.app; sourceTree = BUILT_PRODUCTS_DIR; };
75 B526257125C874F9003E73B7 /* MapApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MapApp.swift; sourceTree = "<group>"; };
76 B526257325C874F9003E73B7 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = "<group>"; };
77 B526257525C874FA003E73B7 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
78 B526257825C874FA003E73B7 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = "<group>"; };
79 B526257A25C874FA003E73B7 /* Persistence.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Persistence.swift; sourceTree = "<group>"; };
80 B526257D25C874FA003E73B7 /* Map.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = Map.xcdatamodel; sourceTree = "<group>"; };
81 B526257F25C874FA003E73B7 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
82 B526258025C874FA003E73B7 /* Map.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Map.entitlements; sourceTree = "<group>"; };
83 B526258525C874FA003E73B7 /* MapTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MapTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
84 B526258925C874FA003E73B7 /* MapTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MapTests.swift; sourceTree = "<group>"; };
85 B526258B25C874FA003E73B7 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
86 B526259025C874FA003E73B7 /* MapUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MapUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
87 B526259425C874FA003E73B7 /* MapUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MapUITests.swift; sourceTree = "<group>"; };
88 B526259625C874FA003E73B7 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
89 B52625A525C876C3003E73B7 /* MapDetail.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MapDetail.swift; sourceTree = "<group>"; };
90 B52625AA25C87909003E73B7 /* Date+format.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Date+format.swift"; sourceTree = "<group>"; };
91 B52625AF25C87C14003E73B7 /* MapRender.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MapRender.swift; sourceTree = "<group>"; };
92 B52625BA25C884C2003E73B7 /* Map+parse.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Map+parse.swift"; sourceTree = "<group>"; };
93 B52625C525C8BD2A003E73B7 /* Stage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Stage.swift; sourceTree = "<group>"; };
94 B539516B25CB0C9200959F72 /* Store.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Store.swift; sourceTree = "<group>"; };
95 B539517325CB0CA400959F72 /* AppState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppState.swift; sourceTree = "<group>"; };
96 B539518025CB2D7A00959F72 /* MapTextEditor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MapTextEditor.swift; sourceTree = "<group>"; };
97 B5CF75C825CC19FC003BFF3D /* EvolutionPicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EvolutionPicker.swift; sourceTree = "<group>"; };
98 B5CF75CE25CC7965003BFF3D /* MapParser.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MapParser.swift; sourceTree = "<group>"; };
99 B5CF75D725CC79BC003BFF3D /* VertexParserStrategy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VertexParserStrategy.swift; sourceTree = "<group>"; };
100 B5CF75DC25CC79D7003BFF3D /* EdgeParserStrategy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EdgeParserStrategy.swift; sourceTree = "<group>"; };
101 B5CF75E125CC79ED003BFF3D /* BlockerParserStrategy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BlockerParserStrategy.swift; sourceTree = "<group>"; };
102 B5CF75E925CC7A13003BFF3D /* OpportunityParserStrategy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OpportunityParserStrategy.swift; sourceTree = "<group>"; };
103 B5CF75EE25CC7A4A003BFF3D /* StageParserStrategy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StageParserStrategy.swift; sourceTree = "<group>"; };
104 B5CF75F625CC97CA003BFF3D /* Debouncer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Debouncer.swift; sourceTree = "<group>"; };
105 /* End PBXFileReference section */
107 /* Begin PBXFrameworksBuildPhase section */
108 B526256B25C874F9003E73B7 /* Frameworks */ = {
109 isa = PBXFrameworksBuildPhase;
110 buildActionMask = 2147483647;
112 B523C74625C9BD3500C44061 /* CloudKit.framework in Frameworks */,
114 runOnlyForDeploymentPostprocessing = 0;
116 B526258225C874FA003E73B7 /* Frameworks */ = {
117 isa = PBXFrameworksBuildPhase;
118 buildActionMask = 2147483647;
121 runOnlyForDeploymentPostprocessing = 0;
123 B526258D25C874FA003E73B7 /* Frameworks */ = {
124 isa = PBXFrameworksBuildPhase;
125 buildActionMask = 2147483647;
128 runOnlyForDeploymentPostprocessing = 0;
130 /* End PBXFrameworksBuildPhase section */
132 /* Begin PBXGroup section */
133 B523C74425C9BD3500C44061 /* Frameworks */ = {
136 B523C74525C9BD3500C44061 /* CloudKit.framework */,
139 sourceTree = "<group>";
141 B523C75825C9FD3A00C44061 /* MapRenderComponents */ = {
144 B523C75925C9FD4900C44061 /* MapAxes.swift */,
145 B523C76125CA05A300C44061 /* MapStages.swift */,
146 B523C76625CA071B00C44061 /* MapVertices.swift */,
147 B523C76B25CA0DFA00C44061 /* MapEdges.swift */,
148 B523C77025CA121300C44061 /* MapBlockers.swift */,
149 B523C77D25CA294C00C44061 /* MapOpportunities.swift */,
151 path = MapRenderComponents;
152 sourceTree = "<group>";
154 B526256525C874F9003E73B7 = {
157 B526257025C874F9003E73B7 /* Map */,
158 B526258825C874FA003E73B7 /* MapTests */,
159 B526259325C874FA003E73B7 /* MapUITests */,
160 B526256F25C874F9003E73B7 /* Products */,
161 B523C74425C9BD3500C44061 /* Frameworks */,
163 sourceTree = "<group>";
165 B526256F25C874F9003E73B7 /* Products */ = {
168 B526256E25C874F9003E73B7 /* Map.app */,
169 B526258525C874FA003E73B7 /* MapTests.xctest */,
170 B526259025C874FA003E73B7 /* MapUITests.xctest */,
173 sourceTree = "<group>";
175 B526257025C874F9003E73B7 /* Map */ = {
178 B523C77525CA181100C44061 /* MapColor.swift */,
179 B5CF75CD25CC7953003BFF3D /* MapParser */,
180 B539516A25CB0C7800959F72 /* State */,
181 B52625B425C87D54003E73B7 /* Extensions */,
182 B539517925CB0D6100959F72 /* Views */,
183 B523C75825C9FD3A00C44061 /* MapRenderComponents */,
184 B526257525C874FA003E73B7 /* Assets.xcassets */,
185 B526257F25C874FA003E73B7 /* Info.plist */,
186 B526258025C874FA003E73B7 /* Map.entitlements */,
187 B526257C25C874FA003E73B7 /* Map.xcdatamodeld */,
188 B526257725C874FA003E73B7 /* Preview Content */,
189 B5CF75F625CC97CA003BFF3D /* Debouncer.swift */,
192 sourceTree = "<group>";
194 B526257725C874FA003E73B7 /* Preview Content */ = {
197 B526257825C874FA003E73B7 /* Preview Assets.xcassets */,
199 path = "Preview Content";
200 sourceTree = "<group>";
202 B526258825C874FA003E73B7 /* MapTests */ = {
205 B526258925C874FA003E73B7 /* MapTests.swift */,
206 B526258B25C874FA003E73B7 /* Info.plist */,
209 sourceTree = "<group>";
211 B526259325C874FA003E73B7 /* MapUITests */ = {
214 B526259425C874FA003E73B7 /* MapUITests.swift */,
215 B526259625C874FA003E73B7 /* Info.plist */,
218 sourceTree = "<group>";
220 B52625B425C87D54003E73B7 /* Extensions */ = {
223 B52625BA25C884C2003E73B7 /* Map+parse.swift */,
224 B52625AA25C87909003E73B7 /* Date+format.swift */,
225 B523C73C25C98D9800C44061 /* NSImage+writePNG.swift */,
228 sourceTree = "<group>";
230 B539516A25CB0C7800959F72 /* State */ = {
233 B52625C525C8BD2A003E73B7 /* Stage.swift */,
234 B526257A25C874FA003E73B7 /* Persistence.swift */,
235 B539516B25CB0C9200959F72 /* Store.swift */,
236 B539517325CB0CA400959F72 /* AppState.swift */,
239 sourceTree = "<group>";
241 B539517925CB0D6100959F72 /* Views */ = {
244 B526257125C874F9003E73B7 /* MapApp.swift */,
245 B526257325C874F9003E73B7 /* ContentView.swift */,
246 B52625A525C876C3003E73B7 /* MapDetail.swift */,
247 B523C74A25C9C1BA00C44061 /* DefaultMapView.swift */,
248 B539518025CB2D7A00959F72 /* MapTextEditor.swift */,
249 B52625AF25C87C14003E73B7 /* MapRender.swift */,
250 B5CF75C825CC19FC003BFF3D /* EvolutionPicker.swift */,
253 sourceTree = "<group>";
255 B5CF75CD25CC7953003BFF3D /* MapParser */ = {
258 B5CF75D625CC79A4003BFF3D /* Strategies */,
259 B5CF75CE25CC7965003BFF3D /* MapParser.swift */,
262 sourceTree = "<group>";
264 B5CF75D625CC79A4003BFF3D /* Strategies */ = {
267 B5CF75D725CC79BC003BFF3D /* VertexParserStrategy.swift */,
268 B5CF75DC25CC79D7003BFF3D /* EdgeParserStrategy.swift */,
269 B5CF75E125CC79ED003BFF3D /* BlockerParserStrategy.swift */,
270 B5CF75E925CC7A13003BFF3D /* OpportunityParserStrategy.swift */,
271 B5CF75EE25CC7A4A003BFF3D /* StageParserStrategy.swift */,
274 sourceTree = "<group>";
276 /* End PBXGroup section */
278 /* Begin PBXNativeTarget section */
279 B526256D25C874F9003E73B7 /* Map */ = {
280 isa = PBXNativeTarget;
281 buildConfigurationList = B526259925C874FA003E73B7 /* Build configuration list for PBXNativeTarget "Map" */;
283 B526256A25C874F9003E73B7 /* Sources */,
284 B526256B25C874F9003E73B7 /* Frameworks */,
285 B526256C25C874F9003E73B7 /* Resources */,
293 productReference = B526256E25C874F9003E73B7 /* Map.app */;
294 productType = "com.apple.product-type.application";
296 B526258425C874FA003E73B7 /* MapTests */ = {
297 isa = PBXNativeTarget;
298 buildConfigurationList = B526259C25C874FA003E73B7 /* Build configuration list for PBXNativeTarget "MapTests" */;
300 B526258125C874FA003E73B7 /* Sources */,
301 B526258225C874FA003E73B7 /* Frameworks */,
302 B526258325C874FA003E73B7 /* Resources */,
307 B526258725C874FA003E73B7 /* PBXTargetDependency */,
310 productName = MapTests;
311 productReference = B526258525C874FA003E73B7 /* MapTests.xctest */;
312 productType = "com.apple.product-type.bundle.unit-test";
314 B526258F25C874FA003E73B7 /* MapUITests */ = {
315 isa = PBXNativeTarget;
316 buildConfigurationList = B526259F25C874FA003E73B7 /* Build configuration list for PBXNativeTarget "MapUITests" */;
318 B526258C25C874FA003E73B7 /* Sources */,
319 B526258D25C874FA003E73B7 /* Frameworks */,
320 B526258E25C874FA003E73B7 /* Resources */,
325 B526259225C874FA003E73B7 /* PBXTargetDependency */,
328 productName = MapUITests;
329 productReference = B526259025C874FA003E73B7 /* MapUITests.xctest */;
330 productType = "com.apple.product-type.bundle.ui-testing";
332 /* End PBXNativeTarget section */
334 /* Begin PBXProject section */
335 B526256625C874F9003E73B7 /* Project object */ = {
338 LastSwiftUpdateCheck = 1240;
339 LastUpgradeCheck = 1240;
341 B526256D25C874F9003E73B7 = {
342 CreatedOnToolsVersion = 12.4;
344 B526258425C874FA003E73B7 = {
345 CreatedOnToolsVersion = 12.4;
346 TestTargetID = B526256D25C874F9003E73B7;
348 B526258F25C874FA003E73B7 = {
349 CreatedOnToolsVersion = 12.4;
350 TestTargetID = B526256D25C874F9003E73B7;
354 buildConfigurationList = B526256925C874F9003E73B7 /* Build configuration list for PBXProject "Map" */;
355 compatibilityVersion = "Xcode 9.3";
356 developmentRegion = en;
357 hasScannedForEncodings = 0;
362 mainGroup = B526256525C874F9003E73B7;
363 productRefGroup = B526256F25C874F9003E73B7 /* Products */;
367 B526256D25C874F9003E73B7 /* Map */,
368 B526258425C874FA003E73B7 /* MapTests */,
369 B526258F25C874FA003E73B7 /* MapUITests */,
372 /* End PBXProject section */
374 /* Begin PBXResourcesBuildPhase section */
375 B526256C25C874F9003E73B7 /* Resources */ = {
376 isa = PBXResourcesBuildPhase;
377 buildActionMask = 2147483647;
379 B526257925C874FA003E73B7 /* Preview Assets.xcassets in Resources */,
380 B526257625C874FA003E73B7 /* Assets.xcassets in Resources */,
382 runOnlyForDeploymentPostprocessing = 0;
384 B526258325C874FA003E73B7 /* Resources */ = {
385 isa = PBXResourcesBuildPhase;
386 buildActionMask = 2147483647;
389 runOnlyForDeploymentPostprocessing = 0;
391 B526258E25C874FA003E73B7 /* Resources */ = {
392 isa = PBXResourcesBuildPhase;
393 buildActionMask = 2147483647;
396 runOnlyForDeploymentPostprocessing = 0;
398 /* End PBXResourcesBuildPhase section */
400 /* Begin PBXSourcesBuildPhase section */
401 B526256A25C874F9003E73B7 /* Sources */ = {
402 isa = PBXSourcesBuildPhase;
403 buildActionMask = 2147483647;
405 B52625B025C87C14003E73B7 /* MapRender.swift in Sources */,
406 B523C77E25CA294C00C44061 /* MapOpportunities.swift in Sources */,
407 B52625AB25C87909003E73B7 /* Date+format.swift in Sources */,
408 B5CF75D825CC79BC003BFF3D /* VertexParserStrategy.swift in Sources */,
409 B5CF75EA25CC7A13003BFF3D /* OpportunityParserStrategy.swift in Sources */,
410 B523C77125CA121300C44061 /* MapBlockers.swift in Sources */,
411 B523C76725CA071B00C44061 /* MapVertices.swift in Sources */,
412 B5CF75CF25CC7965003BFF3D /* MapParser.swift in Sources */,
413 B5CF75E225CC79ED003BFF3D /* BlockerParserStrategy.swift in Sources */,
414 B539517425CB0CA400959F72 /* AppState.swift in Sources */,
415 B523C75A25C9FD4900C44061 /* MapAxes.swift in Sources */,
416 B539518125CB2D7A00959F72 /* MapTextEditor.swift in Sources */,
417 B52625BB25C884C2003E73B7 /* Map+parse.swift in Sources */,
418 B52625C625C8BD2A003E73B7 /* Stage.swift in Sources */,
419 B523C73D25C98D9800C44061 /* NSImage+writePNG.swift in Sources */,
420 B526257B25C874FA003E73B7 /* Persistence.swift in Sources */,
421 B5CF75EF25CC7A4A003BFF3D /* StageParserStrategy.swift in Sources */,
422 B523C77625CA181100C44061 /* MapColor.swift in Sources */,
423 B5CF75DD25CC79D7003BFF3D /* EdgeParserStrategy.swift in Sources */,
424 B526257425C874F9003E73B7 /* ContentView.swift in Sources */,
425 B526257E25C874FA003E73B7 /* Map.xcdatamodeld in Sources */,
426 B5CF75C925CC19FC003BFF3D /* EvolutionPicker.swift in Sources */,
427 B523C74B25C9C1BA00C44061 /* DefaultMapView.swift in Sources */,
428 B539516C25CB0C9300959F72 /* Store.swift in Sources */,
429 B526257225C874F9003E73B7 /* MapApp.swift in Sources */,
430 B52625A625C876C3003E73B7 /* MapDetail.swift in Sources */,
431 B523C76225CA05A300C44061 /* MapStages.swift in Sources */,
432 B5CF75F725CC97CA003BFF3D /* Debouncer.swift in Sources */,
433 B523C76C25CA0DFA00C44061 /* MapEdges.swift in Sources */,
435 runOnlyForDeploymentPostprocessing = 0;
437 B526258125C874FA003E73B7 /* Sources */ = {
438 isa = PBXSourcesBuildPhase;
439 buildActionMask = 2147483647;
441 B526258A25C874FA003E73B7 /* MapTests.swift in Sources */,
443 runOnlyForDeploymentPostprocessing = 0;
445 B526258C25C874FA003E73B7 /* Sources */ = {
446 isa = PBXSourcesBuildPhase;
447 buildActionMask = 2147483647;
449 B526259525C874FA003E73B7 /* MapUITests.swift in Sources */,
451 runOnlyForDeploymentPostprocessing = 0;
453 /* End PBXSourcesBuildPhase section */
455 /* Begin PBXTargetDependency section */
456 B526258725C874FA003E73B7 /* PBXTargetDependency */ = {
457 isa = PBXTargetDependency;
458 target = B526256D25C874F9003E73B7 /* Map */;
459 targetProxy = B526258625C874FA003E73B7 /* PBXContainerItemProxy */;
461 B526259225C874FA003E73B7 /* PBXTargetDependency */ = {
462 isa = PBXTargetDependency;
463 target = B526256D25C874F9003E73B7 /* Map */;
464 targetProxy = B526259125C874FA003E73B7 /* PBXContainerItemProxy */;
466 /* End PBXTargetDependency section */
468 /* Begin XCBuildConfiguration section */
469 B526259725C874FA003E73B7 /* Debug */ = {
470 isa = XCBuildConfiguration;
472 ALWAYS_SEARCH_USER_PATHS = NO;
473 CLANG_ANALYZER_NONNULL = YES;
474 CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
475 CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
476 CLANG_CXX_LIBRARY = "libc++";
477 CLANG_ENABLE_MODULES = YES;
478 CLANG_ENABLE_OBJC_ARC = YES;
479 CLANG_ENABLE_OBJC_WEAK = YES;
480 CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
481 CLANG_WARN_BOOL_CONVERSION = YES;
482 CLANG_WARN_COMMA = YES;
483 CLANG_WARN_CONSTANT_CONVERSION = YES;
484 CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
485 CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
486 CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
487 CLANG_WARN_EMPTY_BODY = YES;
488 CLANG_WARN_ENUM_CONVERSION = YES;
489 CLANG_WARN_INFINITE_RECURSION = YES;
490 CLANG_WARN_INT_CONVERSION = YES;
491 CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
492 CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
493 CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
494 CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
495 CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
496 CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
497 CLANG_WARN_STRICT_PROTOTYPES = YES;
498 CLANG_WARN_SUSPICIOUS_MOVE = YES;
499 CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
500 CLANG_WARN_UNREACHABLE_CODE = YES;
501 CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
502 COPY_PHASE_STRIP = NO;
503 DEBUG_INFORMATION_FORMAT = dwarf;
504 ENABLE_STRICT_OBJC_MSGSEND = YES;
505 ENABLE_TESTABILITY = YES;
506 GCC_C_LANGUAGE_STANDARD = gnu11;
507 GCC_DYNAMIC_NO_PIC = NO;
508 GCC_NO_COMMON_BLOCKS = YES;
509 GCC_OPTIMIZATION_LEVEL = 0;
510 GCC_PREPROCESSOR_DEFINITIONS = (
514 GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
515 GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
516 GCC_WARN_UNDECLARED_SELECTOR = YES;
517 GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
518 GCC_WARN_UNUSED_FUNCTION = YES;
519 GCC_WARN_UNUSED_VARIABLE = YES;
520 MACOSX_DEPLOYMENT_TARGET = 11.1;
521 MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
523 ONLY_ACTIVE_ARCH = YES;
525 SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
526 SWIFT_OPTIMIZATION_LEVEL = "-Onone";
530 B526259825C874FA003E73B7 /* Release */ = {
531 isa = XCBuildConfiguration;
533 ALWAYS_SEARCH_USER_PATHS = NO;
534 CLANG_ANALYZER_NONNULL = YES;
535 CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
536 CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
537 CLANG_CXX_LIBRARY = "libc++";
538 CLANG_ENABLE_MODULES = YES;
539 CLANG_ENABLE_OBJC_ARC = YES;
540 CLANG_ENABLE_OBJC_WEAK = YES;
541 CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
542 CLANG_WARN_BOOL_CONVERSION = YES;
543 CLANG_WARN_COMMA = YES;
544 CLANG_WARN_CONSTANT_CONVERSION = YES;
545 CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
546 CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
547 CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
548 CLANG_WARN_EMPTY_BODY = YES;
549 CLANG_WARN_ENUM_CONVERSION = YES;
550 CLANG_WARN_INFINITE_RECURSION = YES;
551 CLANG_WARN_INT_CONVERSION = YES;
552 CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
553 CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
554 CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
555 CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
556 CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
557 CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
558 CLANG_WARN_STRICT_PROTOTYPES = YES;
559 CLANG_WARN_SUSPICIOUS_MOVE = YES;
560 CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
561 CLANG_WARN_UNREACHABLE_CODE = YES;
562 CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
563 COPY_PHASE_STRIP = NO;
564 DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
565 ENABLE_NS_ASSERTIONS = NO;
566 ENABLE_STRICT_OBJC_MSGSEND = YES;
567 GCC_C_LANGUAGE_STANDARD = gnu11;
568 GCC_NO_COMMON_BLOCKS = YES;
569 GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
570 GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
571 GCC_WARN_UNDECLARED_SELECTOR = YES;
572 GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
573 GCC_WARN_UNUSED_FUNCTION = YES;
574 GCC_WARN_UNUSED_VARIABLE = YES;
575 MACOSX_DEPLOYMENT_TARGET = 11.1;
576 MTL_ENABLE_DEBUG_INFO = NO;
579 SWIFT_COMPILATION_MODE = wholemodule;
580 SWIFT_OPTIMIZATION_LEVEL = "-O";
584 B526259A25C874FA003E73B7 /* Debug */ = {
585 isa = XCBuildConfiguration;
587 ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
588 ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
589 CODE_SIGN_ENTITLEMENTS = Map/Map.entitlements;
590 CODE_SIGN_STYLE = Automatic;
591 COMBINE_HIDPI_IMAGES = YES;
592 DEVELOPMENT_ASSET_PATHS = "\"Map/Preview Content\"";
593 DEVELOPMENT_TEAM = S68NHQVJXW;
594 ENABLE_HARDENED_RUNTIME = YES;
595 ENABLE_PREVIEWS = YES;
596 INFOPLIST_FILE = Map/Info.plist;
597 LD_RUNPATH_SEARCH_PATHS = (
599 "@executable_path/../Frameworks",
601 MACOSX_DEPLOYMENT_TARGET = 11;
602 MARKETING_VERSION = 1.1.0;
603 PRODUCT_BUNDLE_IDENTIFIER = pizza.unlimited.Map;
604 PRODUCT_NAME = "$(TARGET_NAME)";
609 B526259B25C874FA003E73B7 /* Release */ = {
610 isa = XCBuildConfiguration;
612 ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
613 ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
614 CODE_SIGN_ENTITLEMENTS = Map/Map.entitlements;
615 CODE_SIGN_STYLE = Automatic;
616 COMBINE_HIDPI_IMAGES = YES;
617 DEVELOPMENT_ASSET_PATHS = "\"Map/Preview Content\"";
618 DEVELOPMENT_TEAM = S68NHQVJXW;
619 ENABLE_HARDENED_RUNTIME = YES;
620 ENABLE_PREVIEWS = YES;
621 INFOPLIST_FILE = Map/Info.plist;
622 LD_RUNPATH_SEARCH_PATHS = (
624 "@executable_path/../Frameworks",
626 MACOSX_DEPLOYMENT_TARGET = 11;
627 MARKETING_VERSION = 1.1.0;
628 PRODUCT_BUNDLE_IDENTIFIER = pizza.unlimited.Map;
629 PRODUCT_NAME = "$(TARGET_NAME)";
634 B526259D25C874FA003E73B7 /* Debug */ = {
635 isa = XCBuildConfiguration;
637 ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
638 BUNDLE_LOADER = "$(TEST_HOST)";
639 CODE_SIGN_STYLE = Automatic;
640 COMBINE_HIDPI_IMAGES = YES;
641 DEVELOPMENT_TEAM = S68NHQVJXW;
642 INFOPLIST_FILE = MapTests/Info.plist;
643 LD_RUNPATH_SEARCH_PATHS = (
645 "@executable_path/../Frameworks",
646 "@loader_path/../Frameworks",
648 MACOSX_DEPLOYMENT_TARGET = 11.0;
649 PRODUCT_BUNDLE_IDENTIFIER = pizza.unlimited.MapTests;
650 PRODUCT_NAME = "$(TARGET_NAME)";
652 TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Map.app/Contents/MacOS/Map";
656 B526259E25C874FA003E73B7 /* Release */ = {
657 isa = XCBuildConfiguration;
659 ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
660 BUNDLE_LOADER = "$(TEST_HOST)";
661 CODE_SIGN_STYLE = Automatic;
662 COMBINE_HIDPI_IMAGES = YES;
663 DEVELOPMENT_TEAM = S68NHQVJXW;
664 INFOPLIST_FILE = MapTests/Info.plist;
665 LD_RUNPATH_SEARCH_PATHS = (
667 "@executable_path/../Frameworks",
668 "@loader_path/../Frameworks",
670 MACOSX_DEPLOYMENT_TARGET = 11.0;
671 PRODUCT_BUNDLE_IDENTIFIER = pizza.unlimited.MapTests;
672 PRODUCT_NAME = "$(TARGET_NAME)";
674 TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Map.app/Contents/MacOS/Map";
678 B52625A025C874FA003E73B7 /* Debug */ = {
679 isa = XCBuildConfiguration;
681 ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
682 CODE_SIGN_STYLE = Automatic;
683 COMBINE_HIDPI_IMAGES = YES;
684 DEVELOPMENT_TEAM = S68NHQVJXW;
685 INFOPLIST_FILE = MapUITests/Info.plist;
686 LD_RUNPATH_SEARCH_PATHS = (
688 "@executable_path/../Frameworks",
689 "@loader_path/../Frameworks",
691 PRODUCT_BUNDLE_IDENTIFIER = pizza.unlimited.MapUITests;
692 PRODUCT_NAME = "$(TARGET_NAME)";
694 TEST_TARGET_NAME = Map;
698 B52625A125C874FA003E73B7 /* Release */ = {
699 isa = XCBuildConfiguration;
701 ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
702 CODE_SIGN_STYLE = Automatic;
703 COMBINE_HIDPI_IMAGES = YES;
704 DEVELOPMENT_TEAM = S68NHQVJXW;
705 INFOPLIST_FILE = MapUITests/Info.plist;
706 LD_RUNPATH_SEARCH_PATHS = (
708 "@executable_path/../Frameworks",
709 "@loader_path/../Frameworks",
711 PRODUCT_BUNDLE_IDENTIFIER = pizza.unlimited.MapUITests;
712 PRODUCT_NAME = "$(TARGET_NAME)";
714 TEST_TARGET_NAME = Map;
718 /* End XCBuildConfiguration section */
720 /* Begin XCConfigurationList section */
721 B526256925C874F9003E73B7 /* Build configuration list for PBXProject "Map" */ = {
722 isa = XCConfigurationList;
723 buildConfigurations = (
724 B526259725C874FA003E73B7 /* Debug */,
725 B526259825C874FA003E73B7 /* Release */,
727 defaultConfigurationIsVisible = 0;
728 defaultConfigurationName = Release;
730 B526259925C874FA003E73B7 /* Build configuration list for PBXNativeTarget "Map" */ = {
731 isa = XCConfigurationList;
732 buildConfigurations = (
733 B526259A25C874FA003E73B7 /* Debug */,
734 B526259B25C874FA003E73B7 /* Release */,
736 defaultConfigurationIsVisible = 0;
737 defaultConfigurationName = Release;
739 B526259C25C874FA003E73B7 /* Build configuration list for PBXNativeTarget "MapTests" */ = {
740 isa = XCConfigurationList;
741 buildConfigurations = (
742 B526259D25C874FA003E73B7 /* Debug */,
743 B526259E25C874FA003E73B7 /* Release */,
745 defaultConfigurationIsVisible = 0;
746 defaultConfigurationName = Release;
748 B526259F25C874FA003E73B7 /* Build configuration list for PBXNativeTarget "MapUITests" */ = {
749 isa = XCConfigurationList;
750 buildConfigurations = (
751 B52625A025C874FA003E73B7 /* Debug */,
752 B52625A125C874FA003E73B7 /* Release */,
754 defaultConfigurationIsVisible = 0;
755 defaultConfigurationName = Release;
757 /* End XCConfigurationList section */
759 /* Begin XCVersionGroup section */
760 B526257C25C874FA003E73B7 /* Map.xcdatamodeld */ = {
761 isa = XCVersionGroup;
763 B526257D25C874FA003E73B7 /* Map.xcdatamodel */,
765 currentVersion = B526257D25C874FA003E73B7 /* Map.xcdatamodel */;
766 path = Map.xcdatamodeld;
767 sourceTree = "<group>";
768 versionGroupType = wrapper.xcdatamodel;
770 /* End XCVersionGroup section */
772 rootObject = B526256625C874F9003E73B7 /* Project object */;