// !$*UTF8*$!
{
	archiveVersion = 1;
	classes = {
	};
	objectVersion = 48;
	objects = {

/* Begin PBXAggregateTarget section */
		A975D5782140585200D4834F /* MoltenVK-iOS */ = {
			isa = PBXAggregateTarget;
			buildConfigurationList = A975D5882140585200D4834F /* Build configuration list for PBXAggregateTarget "MoltenVK-iOS" */;
			buildPhases = (
				A975D5872140585200D4834F /* Package MoltenVK */,
			);
			dependencies = (
				A975D5792140585200D4834F /* PBXTargetDependency */,
				A975D57D2140585200D4834F /* PBXTargetDependency */,
				A975D5812140585200D4834F /* PBXTargetDependency */,
			);
			name = "MoltenVK-iOS";
			productName = Package;
		};
		A975D58B2140586700D4834F /* MoltenVK-macOS */ = {
			isa = PBXAggregateTarget;
			buildConfigurationList = A975D59B2140586700D4834F /* Build configuration list for PBXAggregateTarget "MoltenVK-macOS" */;
			buildPhases = (
				A975D59A2140586700D4834F /* Package MoltenVK */,
			);
			dependencies = (
				A975D58E2140586700D4834F /* PBXTargetDependency */,
				A975D5922140586700D4834F /* PBXTargetDependency */,
				A975D5962140586700D4834F /* PBXTargetDependency */,
				A975D5982140586700D4834F /* PBXTargetDependency */,
			);
			name = "MoltenVK-macOS";
			productName = Package;
		};
		A9FEADBC1F3517480010240E /* MoltenVK */ = {
			isa = PBXAggregateTarget;
			buildConfigurationList = A9FEADDC1F3517480010240E /* Build configuration list for PBXAggregateTarget "MoltenVK" */;
			buildPhases = (
			);
			dependencies = (
				A9AFC2602184EEF60084B396 /* PBXTargetDependency */,
				A9AFC2622184EEF60084B396 /* PBXTargetDependency */,
			);
			name = MoltenVK;
			productName = Package;
		};
/* End PBXAggregateTarget section */

/* Begin PBXContainerItemProxy section */
		A92DB3F41CE0F72500FBC835 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = A92DB3EE1CE0F72500FBC835 /* MoltenVK.xcodeproj */;
			proxyType = 2;
			remoteGlobalIDString = A9B8EE0A1A98D796009C5A02;
			remoteInfo = "MoltenVK-iOS";
		};
		A92DB3F61CE0F72500FBC835 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = A92DB3EE1CE0F72500FBC835 /* MoltenVK.xcodeproj */;
			proxyType = 2;
			remoteGlobalIDString = A9CBEE011B6299D800E45FDC;
			remoteInfo = "MoltenVK-macOS";
		};
		A975D57A2140585200D4834F /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = A92DB3EE1CE0F72500FBC835 /* MoltenVK.xcodeproj */;
			proxyType = 1;
			remoteGlobalIDString = A9B8EE091A98D796009C5A02;
			remoteInfo = "MoltenVK-iOS";
		};
		A975D57E2140585200D4834F /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = A92DB40E1CE0F89600FBC835 /* MoltenVKShaderConverter.xcodeproj */;
			proxyType = 1;
			remoteGlobalIDString = A93903B81C57E9D700FE90DC;
			remoteInfo = "MoltenVKSPIRVToMSLConverter-iOS";
		};
		A975D5822140585200D4834F /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = A92DB40E1CE0F89600FBC835 /* MoltenVKShaderConverter.xcodeproj */;
			proxyType = 1;
			remoteGlobalIDString = A937472B1A9A8B2900F29B34;
			remoteInfo = "MoltenVKGLSLToSPIRVConverter-iOS";
		};
		A975D58F2140586700D4834F /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = A92DB3EE1CE0F72500FBC835 /* MoltenVK.xcodeproj */;
			proxyType = 1;
			remoteGlobalIDString = A9CBED861B6299D800E45FDC;
			remoteInfo = "MoltenVK-macOS";
		};
		A975D5932140586700D4834F /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = A92DB40E1CE0F89600FBC835 /* MoltenVKShaderConverter.xcodeproj */;
			proxyType = 1;
			remoteGlobalIDString = A93903C01C57E9ED00FE90DC;
			remoteInfo = "MoltenVKSPIRVToMSLConverter-macOS";
		};
		A975D5972140586700D4834F /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = A92DB40E1CE0F89600FBC835 /* MoltenVKShaderConverter.xcodeproj */;
			proxyType = 1;
			remoteGlobalIDString = A93747701A9A98D000F29B34;
			remoteInfo = "MoltenVKGLSLToSPIRVConverter-macOS";
		};
		A975D5992140586700D4834F /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = A92DB40E1CE0F89600FBC835 /* MoltenVKShaderConverter.xcodeproj */;
			proxyType = 1;
			remoteGlobalIDString = A9092A8C1A81717B00051823;
			remoteInfo = MoltenVKShaderConverter;
		};
		A981498A1FB6B566005F00B4 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = A92DB40E1CE0F89600FBC835 /* MoltenVKShaderConverter.xcodeproj */;
			proxyType = 2;
			remoteGlobalIDString = A964BD5F1C57EFBD00D930D8;
			remoteInfo = MoltenVKShaderConverter;
		};
		A981498C1FB6B566005F00B4 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = A92DB40E1CE0F89600FBC835 /* MoltenVKShaderConverter.xcodeproj */;
			proxyType = 2;
			remoteGlobalIDString = A964BD611C57EFBD00D930D8;
			remoteInfo = "MoltenVKGLSLToSPIRVConverter-iOS";
		};
		A981498E1FB6B566005F00B4 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = A92DB40E1CE0F89600FBC835 /* MoltenVKShaderConverter.xcodeproj */;
			proxyType = 2;
			remoteGlobalIDString = A964BD601C57EFBD00D930D8;
			remoteInfo = "MoltenVKGLSLToSPIRVConverter-macOS";
		};
		A98149901FB6B566005F00B4 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = A92DB40E1CE0F89600FBC835 /* MoltenVKShaderConverter.xcodeproj */;
			proxyType = 2;
			remoteGlobalIDString = A93903BF1C57E9D700FE90DC;
			remoteInfo = "MoltenVKSPIRVToMSLConverter-iOS";
		};
		A98149921FB6B566005F00B4 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = A92DB40E1CE0F89600FBC835 /* MoltenVKShaderConverter.xcodeproj */;
			proxyType = 2;
			remoteGlobalIDString = A93903C71C57E9ED00FE90DC;
			remoteInfo = "MoltenVKSPIRVToMSLConverter-macOS";
		};
		A9AFC25F2184EEF60084B396 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = A90B2B1D1A9B6170008EE819 /* Project object */;
			proxyType = 1;
			remoteGlobalIDString = A975D5782140585200D4834F;
			remoteInfo = "MoltenVK-iOS";
		};
		A9AFC2612184EEF60084B396 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = A90B2B1D1A9B6170008EE819 /* Project object */;
			proxyType = 1;
			remoteGlobalIDString = A975D58B2140586700D4834F;
			remoteInfo = "MoltenVK-macOS";
		};
/* End PBXContainerItemProxy section */

/* Begin PBXFileReference section */
		A92DB3E41CE0F37D00FBC835 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = "<group>"; };
		A92DB3E51CE0F37D00FBC835 /* LICENSE */ = {isa = PBXFileReference; lastKnownFileType = text; path = LICENSE; sourceTree = "<group>"; };
		A92DB3E61CE0F37D00FBC835 /* Whats_New.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; name = Whats_New.md; path = Docs/Whats_New.md; sourceTree = "<group>"; };
		A92DB3EE1CE0F72500FBC835 /* MoltenVK.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = MoltenVK.xcodeproj; path = MoltenVK/MoltenVK.xcodeproj; sourceTree = "<group>"; };
		A92DB40E1CE0F89600FBC835 /* MoltenVKShaderConverter.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = MoltenVKShaderConverter.xcodeproj; path = MoltenVKShaderConverter/MoltenVKShaderConverter.xcodeproj; sourceTree = "<group>"; };
		A92EF7C521856EA200C8B91B /* package_ios.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = package_ios.sh; sourceTree = "<group>"; };
		A92EF7C621856EA200C8B91B /* package_moltenvk.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = package_moltenvk.sh; sourceTree = "<group>"; };
		A92EF7C721856EA200C8B91B /* package_shader_converter_tool.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = package_shader_converter_tool.sh; sourceTree = "<group>"; };
		A92EF7C821856EA200C8B91B /* package_macos.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = package_macos.sh; sourceTree = "<group>"; };
		A92EF7C921856EA200C8B91B /* package_docs.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = package_docs.sh; sourceTree = "<group>"; };
		A92EF7CA21856EA200C8B91B /* package_update_latest.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = package_update_latest.sh; sourceTree = "<group>"; };
		A92EF7CB21856EA300C8B91B /* package_shader_converter.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = package_shader_converter.sh; sourceTree = "<group>"; };
		A92EF7DE2186451700C8B91B /* Makefile */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; name = Makefile; path = ../Makefile; sourceTree = "<group>"; };
		A975D55C213F25D700D4834F /* create_dylib.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; name = create_dylib.sh; path = ../MoltenVK/scripts/create_dylib.sh; sourceTree = "<group>"; };
		A98149E51FB78829005F00B4 /* MoltenVK_Runtime_UserGuide.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; name = MoltenVK_Runtime_UserGuide.md; path = Docs/MoltenVK_Runtime_UserGuide.md; sourceTree = "<group>"; };
		A99A760321852584000A8E2A /* create_framework.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; name = create_framework.sh; path = ../MoltenVK/scripts/create_framework.sh; sourceTree = "<group>"; };
		A9DA8340218A198C002AA662 /* .travis.yml */ = {isa = PBXFileReference; lastKnownFileType = text; path = .travis.yml; sourceTree = "<group>"; };
		A9DA8341218A198C002AA662 /* .gitignore */ = {isa = PBXFileReference; lastKnownFileType = text; path = .gitignore; sourceTree = "<group>"; };
/* End PBXFileReference section */

/* Begin PBXGroup section */
		A90B2B1C1A9B6170008EE819 = {
			isa = PBXGroup;
			children = (
				A92DB3EE1CE0F72500FBC835 /* MoltenVK.xcodeproj */,
				A92DB40E1CE0F89600FBC835 /* MoltenVKShaderConverter.xcodeproj */,
				A975D55B213F25AD00D4834F /* Scripts */,
				A92DB3E11CE0F34500FBC835 /* Docs */,
				A9DA833F218A193F002AA662 /* Git */,
			);
			sourceTree = "<group>";
		};
		A92DB3E11CE0F34500FBC835 /* Docs */ = {
			isa = PBXGroup;
			children = (
				A92DB3E41CE0F37D00FBC835 /* README.md */,
				A92DB3E51CE0F37D00FBC835 /* LICENSE */,
				A98149E51FB78829005F00B4 /* MoltenVK_Runtime_UserGuide.md */,
				A92DB3E61CE0F37D00FBC835 /* Whats_New.md */,
			);
			name = Docs;
			sourceTree = "<group>";
		};
		A92DB3EF1CE0F72500FBC835 /* Products */ = {
			isa = PBXGroup;
			children = (
				A92DB3F51CE0F72500FBC835 /* libMoltenVK.a */,
				A92DB3F71CE0F72500FBC835 /* libMoltenVK.a */,
			);
			name = Products;
			sourceTree = "<group>";
		};
		A975D55B213F25AD00D4834F /* Scripts */ = {
			isa = PBXGroup;
			children = (
				A975D55C213F25D700D4834F /* create_dylib.sh */,
				A99A760321852584000A8E2A /* create_framework.sh */,
				A92EF7C921856EA200C8B91B /* package_docs.sh */,
				A92EF7C521856EA200C8B91B /* package_ios.sh */,
				A92EF7C821856EA200C8B91B /* package_macos.sh */,
				A92EF7C621856EA200C8B91B /* package_moltenvk.sh */,
				A92EF7C721856EA200C8B91B /* package_shader_converter_tool.sh */,
				A92EF7CB21856EA300C8B91B /* package_shader_converter.sh */,
				A92EF7CA21856EA200C8B91B /* package_update_latest.sh */,
				A92EF7DE2186451700C8B91B /* Makefile */,
			);
			path = Scripts;
			sourceTree = "<group>";
		};
		A98149741FB6B565005F00B4 /* Products */ = {
			isa = PBXGroup;
			children = (
				A981498B1FB6B566005F00B4 /* MoltenVKShaderConverter */,
				A981498D1FB6B566005F00B4 /* MoltenVKGLSLToSPIRVConverter.framework */,
				A981498F1FB6B566005F00B4 /* MoltenVKGLSLToSPIRVConverter.framework */,
				A98149911FB6B566005F00B4 /* MoltenVKSPIRVToMSLConverter.framework */,
				A98149931FB6B566005F00B4 /* MoltenVKSPIRVToMSLConverter.framework */,
			);
			name = Products;
			sourceTree = "<group>";
		};
		A9DA833F218A193F002AA662 /* Git */ = {
			isa = PBXGroup;
			children = (
				A9DA8341218A198C002AA662 /* .gitignore */,
				A9DA8340218A198C002AA662 /* .travis.yml */,
			);
			name = Git;
			sourceTree = "<group>";
		};
/* End PBXGroup section */

/* Begin PBXProject section */
		A90B2B1D1A9B6170008EE819 /* Project object */ = {
			isa = PBXProject;
			attributes = {
				LastUpgradeCheck = 1010;
				TargetAttributes = {
					A9FEADBC1F3517480010240E = {
						DevelopmentTeam = VU3TCKU48B;
					};
				};
			};
			buildConfigurationList = A90B2B201A9B6170008EE819 /* Build configuration list for PBXProject "MoltenVKPackaging" */;
			compatibilityVersion = "Xcode 8.0";
			developmentRegion = English;
			hasScannedForEncodings = 0;
			knownRegions = (
				en,
			);
			mainGroup = A90B2B1C1A9B6170008EE819;
			projectDirPath = "";
			projectReferences = (
				{
					ProductGroup = A92DB3EF1CE0F72500FBC835 /* Products */;
					ProjectRef = A92DB3EE1CE0F72500FBC835 /* MoltenVK.xcodeproj */;
				},
				{
					ProductGroup = A98149741FB6B565005F00B4 /* Products */;
					ProjectRef = A92DB40E1CE0F89600FBC835 /* MoltenVKShaderConverter.xcodeproj */;
				},
			);
			projectRoot = "";
			targets = (
				A9FEADBC1F3517480010240E /* MoltenVK */,
				A975D5782140585200D4834F /* MoltenVK-iOS */,
				A975D58B2140586700D4834F /* MoltenVK-macOS */,
			);
		};
/* End PBXProject section */

/* Begin PBXReferenceProxy section */
		A92DB3F51CE0F72500FBC835 /* libMoltenVK.a */ = {
			isa = PBXReferenceProxy;
			fileType = archive.ar;
			path = libMoltenVK.a;
			remoteRef = A92DB3F41CE0F72500FBC835 /* PBXContainerItemProxy */;
			sourceTree = BUILT_PRODUCTS_DIR;
		};
		A92DB3F71CE0F72500FBC835 /* libMoltenVK.a */ = {
			isa = PBXReferenceProxy;
			fileType = archive.ar;
			path = libMoltenVK.a;
			remoteRef = A92DB3F61CE0F72500FBC835 /* PBXContainerItemProxy */;
			sourceTree = BUILT_PRODUCTS_DIR;
		};
		A981498B1FB6B566005F00B4 /* MoltenVKShaderConverter */ = {
			isa = PBXReferenceProxy;
			fileType = "compiled.mach-o.executable";
			path = MoltenVKShaderConverter;
			remoteRef = A981498A1FB6B566005F00B4 /* PBXContainerItemProxy */;
			sourceTree = BUILT_PRODUCTS_DIR;
		};
		A981498D1FB6B566005F00B4 /* MoltenVKGLSLToSPIRVConverter.framework */ = {
			isa = PBXReferenceProxy;
			fileType = wrapper.framework;
			path = MoltenVKGLSLToSPIRVConverter.framework;
			remoteRef = A981498C1FB6B566005F00B4 /* PBXContainerItemProxy */;
			sourceTree = BUILT_PRODUCTS_DIR;
		};
		A981498F1FB6B566005F00B4 /* MoltenVKGLSLToSPIRVConverter.framework */ = {
			isa = PBXReferenceProxy;
			fileType = wrapper.framework;
			path = MoltenVKGLSLToSPIRVConverter.framework;
			remoteRef = A981498E1FB6B566005F00B4 /* PBXContainerItemProxy */;
			sourceTree = BUILT_PRODUCTS_DIR;
		};
		A98149911FB6B566005F00B4 /* MoltenVKSPIRVToMSLConverter.framework */ = {
			isa = PBXReferenceProxy;
			fileType = wrapper.framework;
			path = MoltenVKSPIRVToMSLConverter.framework;
			remoteRef = A98149901FB6B566005F00B4 /* PBXContainerItemProxy */;
			sourceTree = BUILT_PRODUCTS_DIR;
		};
		A98149931FB6B566005F00B4 /* MoltenVKSPIRVToMSLConverter.framework */ = {
			isa = PBXReferenceProxy;
			fileType = wrapper.framework;
			path = MoltenVKSPIRVToMSLConverter.framework;
			remoteRef = A98149921FB6B566005F00B4 /* PBXContainerItemProxy */;
			sourceTree = BUILT_PRODUCTS_DIR;
		};
/* End PBXReferenceProxy section */

/* Begin PBXShellScriptBuildPhase section */
		A975D5872140585200D4834F /* Package MoltenVK */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputPaths = (
			);
			name = "Package MoltenVK";
			outputPaths = (
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = "\"${SRCROOT}/Scripts/package_ios.sh\"\n";
		};
		A975D59A2140586700D4834F /* Package MoltenVK */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputPaths = (
			);
			name = "Package MoltenVK";
			outputPaths = (
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = "\"${SRCROOT}/Scripts/package_macos.sh\"\n";
		};
/* End PBXShellScriptBuildPhase section */

/* Begin PBXTargetDependency section */
		A975D5792140585200D4834F /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			name = "MoltenVK-iOS";
			targetProxy = A975D57A2140585200D4834F /* PBXContainerItemProxy */;
		};
		A975D57D2140585200D4834F /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			name = "MoltenVKSPIRVToMSLConverter-iOS";
			targetProxy = A975D57E2140585200D4834F /* PBXContainerItemProxy */;
		};
		A975D5812140585200D4834F /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			name = "MoltenVKGLSLToSPIRVConverter-iOS";
			targetProxy = A975D5822140585200D4834F /* PBXContainerItemProxy */;
		};
		A975D58E2140586700D4834F /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			name = "MoltenVK-macOS";
			targetProxy = A975D58F2140586700D4834F /* PBXContainerItemProxy */;
		};
		A975D5922140586700D4834F /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			name = "MoltenVKSPIRVToMSLConverter-macOS";
			targetProxy = A975D5932140586700D4834F /* PBXContainerItemProxy */;
		};
		A975D5962140586700D4834F /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			name = "MoltenVKGLSLToSPIRVConverter-macOS";
			targetProxy = A975D5972140586700D4834F /* PBXContainerItemProxy */;
		};
		A975D5982140586700D4834F /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			name = MoltenVKShaderConverter;
			targetProxy = A975D5992140586700D4834F /* PBXContainerItemProxy */;
		};
		A9AFC2602184EEF60084B396 /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			target = A975D5782140585200D4834F /* MoltenVK-iOS */;
			targetProxy = A9AFC25F2184EEF60084B396 /* PBXContainerItemProxy */;
		};
		A9AFC2622184EEF60084B396 /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			target = A975D58B2140586700D4834F /* MoltenVK-macOS */;
			targetProxy = A9AFC2612184EEF60084B396 /* PBXContainerItemProxy */;
		};
/* End PBXTargetDependency section */

/* Begin XCBuildConfiguration section */
		A90B2B211A9B6170008EE819 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
			};
			name = Debug;
		};
		A90B2B221A9B6170008EE819 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
			};
			name = Release;
		};
		A975D5892140585200D4834F /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				PRODUCT_NAME = "$(TARGET_NAME)";
			};
			name = Debug;
		};
		A975D58A2140585200D4834F /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				PRODUCT_NAME = "$(TARGET_NAME)";
			};
			name = Release;
		};
		A975D59C2140586700D4834F /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				PRODUCT_NAME = "$(TARGET_NAME)";
			};
			name = Debug;
		};
		A975D59D2140586700D4834F /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				PRODUCT_NAME = "$(TARGET_NAME)";
			};
			name = Release;
		};
		A9FEADDD1F3517480010240E /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				PRODUCT_NAME = "$(TARGET_NAME)";
			};
			name = Debug;
		};
		A9FEADDE1F3517480010240E /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				PRODUCT_NAME = "$(TARGET_NAME)";
			};
			name = Release;
		};
/* End XCBuildConfiguration section */

/* Begin XCConfigurationList section */
		A90B2B201A9B6170008EE819 /* Build configuration list for PBXProject "MoltenVKPackaging" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				A90B2B211A9B6170008EE819 /* Debug */,
				A90B2B221A9B6170008EE819 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		A975D5882140585200D4834F /* Build configuration list for PBXAggregateTarget "MoltenVK-iOS" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				A975D5892140585200D4834F /* Debug */,
				A975D58A2140585200D4834F /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		A975D59B2140586700D4834F /* Build configuration list for PBXAggregateTarget "MoltenVK-macOS" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				A975D59C2140586700D4834F /* Debug */,
				A975D59D2140586700D4834F /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		A9FEADDC1F3517480010240E /* Build configuration list for PBXAggregateTarget "MoltenVK" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				A9FEADDD1F3517480010240E /* Debug */,
				A9FEADDE1F3517480010240E /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
/* End XCConfigurationList section */
	};
	rootObject = A90B2B1D1A9B6170008EE819 /* Project object */;
}
