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

/* Begin PBXBuildFile section */
		172FF8A72117B74D0059CBC5 /* XCTNSNotificationExpectation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 172FF8A62117B74D0059CBC5 /* XCTNSNotificationExpectation.swift */; };
		17B6C3EB210D5A3900A11ECC /* XCTWaiter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 17B6C3EA210D5A3900A11ECC /* XCTWaiter.swift */; };
		17B6C3ED210F53BE00A11ECC /* WaiterManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 17B6C3EC210F53BE00A11ECC /* WaiterManager.swift */; };
		17B6C3EF210F990100A11ECC /* XCTWaiter+Validation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 17B6C3EE210F990100A11ECC /* XCTWaiter+Validation.swift */; };
		17D5B680211216EF00D93239 /* SourceLocation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 17D5B67F211216EF00D93239 /* SourceLocation.swift */; };
		AE2FE0FB1CFE86DB003EF0D7 /* XCAbstractTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE2FE0EA1CFE86DB003EF0D7 /* XCAbstractTest.swift */; };
		AE2FE0FE1CFE86DB003EF0D7 /* XCTAssert.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE2FE0ED1CFE86DB003EF0D7 /* XCTAssert.swift */; };
		AE2FE0FF1CFE86DB003EF0D7 /* XCTestCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE2FE0EE1CFE86DB003EF0D7 /* XCTestCase.swift */; };
		AE2FE1011CFE86DB003EF0D7 /* XCTestCase+Performance.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE2FE0F01CFE86DB003EF0D7 /* XCTestCase+Performance.swift */; };
		AE2FE1021CFE86DB003EF0D7 /* XCTestCaseRun.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE2FE0F11CFE86DB003EF0D7 /* XCTestCaseRun.swift */; };
		AE2FE1031CFE86DB003EF0D7 /* XCTestErrors.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE2FE0F21CFE86DB003EF0D7 /* XCTestErrors.swift */; };
		AE2FE1051CFE86DB003EF0D7 /* XCTestMain.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE2FE0F41CFE86DB003EF0D7 /* XCTestMain.swift */; };
		AE2FE1061CFE86DB003EF0D7 /* XCTestObservation.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE2FE0F51CFE86DB003EF0D7 /* XCTestObservation.swift */; };
		AE2FE1071CFE86DB003EF0D7 /* XCTestObservationCenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE2FE0F61CFE86DB003EF0D7 /* XCTestObservationCenter.swift */; };
		AE2FE1081CFE86DB003EF0D7 /* XCTestRun.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE2FE0F71CFE86DB003EF0D7 /* XCTestRun.swift */; };
		AE2FE1091CFE86DB003EF0D7 /* XCTestSuite.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE2FE0F81CFE86DB003EF0D7 /* XCTestSuite.swift */; };
		AE2FE10A1CFE86DB003EF0D7 /* XCTestSuiteRun.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE2FE0F91CFE86DB003EF0D7 /* XCTestSuiteRun.swift */; };
		AE2FE1151CFE86E6003EF0D7 /* ArgumentParser.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE2FE10C1CFE86E6003EF0D7 /* ArgumentParser.swift */; };
		AE2FE1161CFE86E6003EF0D7 /* ObjectWrapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE2FE10D1CFE86E6003EF0D7 /* ObjectWrapper.swift */; };
		AE2FE1171CFE86E6003EF0D7 /* PerformanceMeter.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE2FE10E1CFE86E6003EF0D7 /* PerformanceMeter.swift */; };
		AE2FE1181CFE86E6003EF0D7 /* PrintObserver.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE2FE10F1CFE86E6003EF0D7 /* PrintObserver.swift */; };
		AE2FE1191CFE86E6003EF0D7 /* TestFiltering.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE2FE1101CFE86E6003EF0D7 /* TestFiltering.swift */; };
		AE2FE11A1CFE86E6003EF0D7 /* WallClockTimeMetric.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE2FE1111CFE86E6003EF0D7 /* WallClockTimeMetric.swift */; };
		AE2FE11B1CFE86E6003EF0D7 /* XCTNSPredicateExpectation.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE2FE1121CFE86E6003EF0D7 /* XCTNSPredicateExpectation.swift */; };
		AE2FE11C1CFE86E6003EF0D7 /* XCTestCaseSuite.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE2FE1131CFE86E6003EF0D7 /* XCTestCaseSuite.swift */; };
		AE2FE11D1CFE86E6003EF0D7 /* XCTestInternalObservation.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE2FE1141CFE86E6003EF0D7 /* XCTestInternalObservation.swift */; };
		AE63767E1D01ED17002C0EA8 /* TestListing.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE63767D1D01ED17002C0EA8 /* TestListing.swift */; };
		DA9D441B1D920A3500108768 /* XCTestCase+Asynchronous.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA9D44161D920A3500108768 /* XCTestCase+Asynchronous.swift */; };
		DA9D441C1D920A3500108768 /* XCTestExpectation.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA9D44171D920A3500108768 /* XCTestExpectation.swift */; };
/* End PBXBuildFile section */

/* Begin PBXContainerItemProxy section */
		DAA333B91C267AF3000CC115 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 5B5D86D21BBC74AD00234F36 /* Project object */;
			proxyType = 1;
			remoteGlobalIDString = 5B5D86DA1BBC74AD00234F36;
			remoteInfo = SwiftXCTest;
		};
/* End PBXContainerItemProxy section */

/* Begin PBXFileReference section */
		172FF8A62117B74D0059CBC5 /* XCTNSNotificationExpectation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = XCTNSNotificationExpectation.swift; sourceTree = "<group>"; };
		17B6C3EA210D5A3900A11ECC /* XCTWaiter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = XCTWaiter.swift; sourceTree = "<group>"; };
		17B6C3EC210F53BE00A11ECC /* WaiterManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WaiterManager.swift; sourceTree = "<group>"; };
		17B6C3EE210F990100A11ECC /* XCTWaiter+Validation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "XCTWaiter+Validation.swift"; sourceTree = "<group>"; };
		17D5B67F211216EF00D93239 /* SourceLocation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SourceLocation.swift; sourceTree = "<group>"; };
		5B5D86DB1BBC74AD00234F36 /* SwiftXCTest.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SwiftXCTest.framework; sourceTree = BUILT_PRODUCTS_DIR; };
		AE2FE0EA1CFE86DB003EF0D7 /* XCAbstractTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XCAbstractTest.swift; sourceTree = "<group>"; };
		AE2FE0ED1CFE86DB003EF0D7 /* XCTAssert.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XCTAssert.swift; sourceTree = "<group>"; };
		AE2FE0EE1CFE86DB003EF0D7 /* XCTestCase.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XCTestCase.swift; sourceTree = "<group>"; };
		AE2FE0F01CFE86DB003EF0D7 /* XCTestCase+Performance.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "XCTestCase+Performance.swift"; sourceTree = "<group>"; };
		AE2FE0F11CFE86DB003EF0D7 /* XCTestCaseRun.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XCTestCaseRun.swift; sourceTree = "<group>"; };
		AE2FE0F21CFE86DB003EF0D7 /* XCTestErrors.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XCTestErrors.swift; sourceTree = "<group>"; };
		AE2FE0F41CFE86DB003EF0D7 /* XCTestMain.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XCTestMain.swift; sourceTree = "<group>"; };
		AE2FE0F51CFE86DB003EF0D7 /* XCTestObservation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XCTestObservation.swift; sourceTree = "<group>"; };
		AE2FE0F61CFE86DB003EF0D7 /* XCTestObservationCenter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XCTestObservationCenter.swift; sourceTree = "<group>"; };
		AE2FE0F71CFE86DB003EF0D7 /* XCTestRun.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XCTestRun.swift; sourceTree = "<group>"; };
		AE2FE0F81CFE86DB003EF0D7 /* XCTestSuite.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XCTestSuite.swift; sourceTree = "<group>"; };
		AE2FE0F91CFE86DB003EF0D7 /* XCTestSuiteRun.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XCTestSuiteRun.swift; sourceTree = "<group>"; };
		AE2FE10C1CFE86E6003EF0D7 /* ArgumentParser.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ArgumentParser.swift; sourceTree = "<group>"; };
		AE2FE10D1CFE86E6003EF0D7 /* ObjectWrapper.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ObjectWrapper.swift; sourceTree = "<group>"; };
		AE2FE10E1CFE86E6003EF0D7 /* PerformanceMeter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PerformanceMeter.swift; sourceTree = "<group>"; };
		AE2FE10F1CFE86E6003EF0D7 /* PrintObserver.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PrintObserver.swift; sourceTree = "<group>"; };
		AE2FE1101CFE86E6003EF0D7 /* TestFiltering.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TestFiltering.swift; sourceTree = "<group>"; };
		AE2FE1111CFE86E6003EF0D7 /* WallClockTimeMetric.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WallClockTimeMetric.swift; sourceTree = "<group>"; };
		AE2FE1121CFE86E6003EF0D7 /* XCTNSPredicateExpectation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XCTNSPredicateExpectation.swift; sourceTree = "<group>"; };
		AE2FE1131CFE86E6003EF0D7 /* XCTestCaseSuite.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XCTestCaseSuite.swift; sourceTree = "<group>"; };
		AE2FE1141CFE86E6003EF0D7 /* XCTestInternalObservation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XCTestInternalObservation.swift; sourceTree = "<group>"; };
		AE63767D1D01ED17002C0EA8 /* TestListing.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TestListing.swift; sourceTree = "<group>"; };
		AE7DD6061C8DC6C0006FC722 /* Functional */ = {isa = PBXFileReference; lastKnownFileType = folder; path = Functional; sourceTree = "<group>"; };
		B1384A411C1B3E8700EDF031 /* CONTRIBUTING.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = CONTRIBUTING.md; sourceTree = "<group>"; };
		B1384A421C1B3E8700EDF031 /* LICENSE */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = LICENSE; sourceTree = "<group>"; };
		B1384A431C1B3E8700EDF031 /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = "<group>"; };
		DA7805F91C6704A2003C6636 /* SwiftFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SwiftFoundation.framework; path = "../swift-corelibs-foundation/build/Debug/SwiftFoundation.framework"; sourceTree = "<group>"; };
		DA9D44161D920A3500108768 /* XCTestCase+Asynchronous.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "XCTestCase+Asynchronous.swift"; sourceTree = "<group>"; };
		DA9D44171D920A3500108768 /* XCTestExpectation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XCTestExpectation.swift; sourceTree = "<group>"; };
		EA3E74BB1BF2B6D500635A73 /* build_script.py */ = {isa = PBXFileReference; lastKnownFileType = text.script.python; path = build_script.py; sourceTree = "<group>"; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
		5B5D86D71BBC74AD00234F36 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
		5B5D86D11BBC74AD00234F36 = {
			isa = PBXGroup;
			children = (
				C265F6661C3AEB6A00520CF9 /* Sources */,
				DA78F7E71C4039410082E15B /* Tests */,
				5B5D86DC1BBC74AD00234F36 /* Products */,
				DA7805FB1C6704CC003C6636 /* Linked Libraries */,
				EA3E74BC1BF2B6D700635A73 /* Linux Build */,
				B1384A401C1B3E6A00EDF031 /* Documentation */,
			);
			indentWidth = 4;
			sourceTree = "<group>";
			tabWidth = 4;
		};
		5B5D86DC1BBC74AD00234F36 /* Products */ = {
			isa = PBXGroup;
			children = (
				5B5D86DB1BBC74AD00234F36 /* SwiftXCTest.framework */,
			);
			name = Products;
			sourceTree = "<group>";
		};
		AE2FE0E81CFE86A5003EF0D7 /* Private */ = {
			isa = PBXGroup;
			children = (
				AE2FE10C1CFE86E6003EF0D7 /* ArgumentParser.swift */,
				AE2FE10D1CFE86E6003EF0D7 /* ObjectWrapper.swift */,
				AE2FE10E1CFE86E6003EF0D7 /* PerformanceMeter.swift */,
				AE2FE10F1CFE86E6003EF0D7 /* PrintObserver.swift */,
				AE2FE1101CFE86E6003EF0D7 /* TestFiltering.swift */,
				AE63767D1D01ED17002C0EA8 /* TestListing.swift */,
				AE2FE1111CFE86E6003EF0D7 /* WallClockTimeMetric.swift */,
				AE2FE1131CFE86E6003EF0D7 /* XCTestCaseSuite.swift */,
				AE2FE1141CFE86E6003EF0D7 /* XCTestInternalObservation.swift */,
				17B6C3EC210F53BE00A11ECC /* WaiterManager.swift */,
				17D5B67F211216EF00D93239 /* SourceLocation.swift */,
			);
			path = Private;
			sourceTree = "<group>";
		};
		AE2FE0E91CFE86AE003EF0D7 /* Public */ = {
			isa = PBXGroup;
			children = (
				DA9D44131D920A3500108768 /* Asynchronous */,
				AE2FE0EA1CFE86DB003EF0D7 /* XCAbstractTest.swift */,
				AE2FE0ED1CFE86DB003EF0D7 /* XCTAssert.swift */,
				AE2FE0EE1CFE86DB003EF0D7 /* XCTestCase.swift */,
				AE2FE0F01CFE86DB003EF0D7 /* XCTestCase+Performance.swift */,
				AE2FE0F11CFE86DB003EF0D7 /* XCTestCaseRun.swift */,
				AE2FE0F21CFE86DB003EF0D7 /* XCTestErrors.swift */,
				AE2FE0F41CFE86DB003EF0D7 /* XCTestMain.swift */,
				AE2FE0F51CFE86DB003EF0D7 /* XCTestObservation.swift */,
				AE2FE0F61CFE86DB003EF0D7 /* XCTestObservationCenter.swift */,
				AE2FE0F71CFE86DB003EF0D7 /* XCTestRun.swift */,
				AE2FE0F81CFE86DB003EF0D7 /* XCTestSuite.swift */,
				AE2FE0F91CFE86DB003EF0D7 /* XCTestSuiteRun.swift */,
			);
			path = Public;
			sourceTree = "<group>";
		};
		B1384A401C1B3E6A00EDF031 /* Documentation */ = {
			isa = PBXGroup;
			children = (
				B1384A411C1B3E8700EDF031 /* CONTRIBUTING.md */,
				B1384A421C1B3E8700EDF031 /* LICENSE */,
				B1384A431C1B3E8700EDF031 /* README.md */,
			);
			name = Documentation;
			sourceTree = "<group>";
		};
		C265F6661C3AEB6A00520CF9 /* Sources */ = {
			isa = PBXGroup;
			children = (
				C265F6671C3AEB6A00520CF9 /* XCTest */,
			);
			path = Sources;
			sourceTree = "<group>";
		};
		C265F6671C3AEB6A00520CF9 /* XCTest */ = {
			isa = PBXGroup;
			children = (
				AE2FE0E91CFE86AE003EF0D7 /* Public */,
				AE2FE0E81CFE86A5003EF0D7 /* Private */,
			);
			path = XCTest;
			sourceTree = "<group>";
		};
		DA7805FB1C6704CC003C6636 /* Linked Libraries */ = {
			isa = PBXGroup;
			children = (
				DA7805F91C6704A2003C6636 /* SwiftFoundation.framework */,
			);
			name = "Linked Libraries";
			sourceTree = "<group>";
		};
		DA78F7E71C4039410082E15B /* Tests */ = {
			isa = PBXGroup;
			children = (
				AE7DD6061C8DC6C0006FC722 /* Functional */,
			);
			path = Tests;
			sourceTree = "<group>";
		};
		DA9D44131D920A3500108768 /* Asynchronous */ = {
			isa = PBXGroup;
			children = (
				17B6C3EA210D5A3900A11ECC /* XCTWaiter.swift */,
				17B6C3EE210F990100A11ECC /* XCTWaiter+Validation.swift */,
				DA9D44161D920A3500108768 /* XCTestCase+Asynchronous.swift */,
				DA9D44171D920A3500108768 /* XCTestExpectation.swift */,
				AE2FE1121CFE86E6003EF0D7 /* XCTNSPredicateExpectation.swift */,
				172FF8A62117B74D0059CBC5 /* XCTNSNotificationExpectation.swift */,
			);
			path = Asynchronous;
			sourceTree = "<group>";
		};
		EA3E74BC1BF2B6D700635A73 /* Linux Build */ = {
			isa = PBXGroup;
			children = (
				EA3E74BB1BF2B6D500635A73 /* build_script.py */,
			);
			name = "Linux Build";
			sourceTree = "<group>";
		};
/* End PBXGroup section */

/* Begin PBXHeadersBuildPhase section */
		5B5D86D81BBC74AD00234F36 /* Headers */ = {
			isa = PBXHeadersBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXHeadersBuildPhase section */

/* Begin PBXLegacyTarget section */
		DAA333B51C267AD6000CC115 /* SwiftXCTestFunctionalTests */ = {
			isa = PBXLegacyTarget;
			buildArgumentsString = "-sv --no-progress-bar Tests/Functional";
			buildConfigurationList = DAA333B81C267AD6000CC115 /* Build configuration list for PBXLegacyTarget "SwiftXCTestFunctionalTests" */;
			buildPhases = (
			);
			buildToolPath = "$(SRCROOT)/../llvm/utils/lit/lit.py";
			buildWorkingDirectory = "";
			dependencies = (
				DAA333BA1C267AF3000CC115 /* PBXTargetDependency */,
			);
			name = SwiftXCTestFunctionalTests;
			passBuildSettingsInEnvironment = 1;
			productName = SwiftXCTestFunctionalTests;
		};
/* End PBXLegacyTarget section */

/* Begin PBXNativeTarget section */
		5B5D86DA1BBC74AD00234F36 /* SwiftXCTest */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 5B5D86E31BBC74AD00234F36 /* Build configuration list for PBXNativeTarget "SwiftXCTest" */;
			buildPhases = (
				5B5D86D61BBC74AD00234F36 /* Sources */,
				5B5D86D71BBC74AD00234F36 /* Frameworks */,
				5B5D86D81BBC74AD00234F36 /* Headers */,
				5B5D86D91BBC74AD00234F36 /* Resources */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = SwiftXCTest;
			productName = TestFramework;
			productReference = 5B5D86DB1BBC74AD00234F36 /* SwiftXCTest.framework */;
			productType = "com.apple.product-type.framework";
		};
/* End PBXNativeTarget section */

/* Begin PBXProject section */
		5B5D86D21BBC74AD00234F36 /* Project object */ = {
			isa = PBXProject;
			attributes = {
				LastSwiftMigration = 0730;
				LastSwiftUpdateCheck = 0730;
				LastUpgradeCheck = 1010;
				ORGANIZATIONNAME = Apple;
				TargetAttributes = {
					5B5D86DA1BBC74AD00234F36 = {
						CreatedOnToolsVersion = 7.1;
						LastSwiftMigration = 0900;
					};
					DAA333B51C267AD6000CC115 = {
						CreatedOnToolsVersion = 7.2;
					};
				};
			};
			buildConfigurationList = 5B5D86D51BBC74AD00234F36 /* Build configuration list for PBXProject "XCTest" */;
			compatibilityVersion = "Xcode 3.2";
			developmentRegion = English;
			hasScannedForEncodings = 0;
			knownRegions = (
				en,
				Base,
			);
			mainGroup = 5B5D86D11BBC74AD00234F36;
			productRefGroup = 5B5D86DC1BBC74AD00234F36 /* Products */;
			projectDirPath = "";
			projectRoot = "";
			targets = (
				5B5D86DA1BBC74AD00234F36 /* SwiftXCTest */,
				DAA333B51C267AD6000CC115 /* SwiftXCTestFunctionalTests */,
			);
		};
/* End PBXProject section */

/* Begin PBXResourcesBuildPhase section */
		5B5D86D91BBC74AD00234F36 /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXResourcesBuildPhase section */

/* Begin PBXSourcesBuildPhase section */
		5B5D86D61BBC74AD00234F36 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				AE2FE1071CFE86DB003EF0D7 /* XCTestObservationCenter.swift in Sources */,
				DA9D441C1D920A3500108768 /* XCTestExpectation.swift in Sources */,
				AE2FE1011CFE86DB003EF0D7 /* XCTestCase+Performance.swift in Sources */,
				DA9D441B1D920A3500108768 /* XCTestCase+Asynchronous.swift in Sources */,
				AE2FE1181CFE86E6003EF0D7 /* PrintObserver.swift in Sources */,
				17B6C3EB210D5A3900A11ECC /* XCTWaiter.swift in Sources */,
				17B6C3EF210F990100A11ECC /* XCTWaiter+Validation.swift in Sources */,
				AE2FE1021CFE86DB003EF0D7 /* XCTestCaseRun.swift in Sources */,
				AE2FE1171CFE86E6003EF0D7 /* PerformanceMeter.swift in Sources */,
				AE2FE1051CFE86DB003EF0D7 /* XCTestMain.swift in Sources */,
				AE2FE11B1CFE86E6003EF0D7 /* XCTNSPredicateExpectation.swift in Sources */,
				17D5B680211216EF00D93239 /* SourceLocation.swift in Sources */,
				AE63767E1D01ED17002C0EA8 /* TestListing.swift in Sources */,
				AE2FE1151CFE86E6003EF0D7 /* ArgumentParser.swift in Sources */,
				AE2FE0FF1CFE86DB003EF0D7 /* XCTestCase.swift in Sources */,
				AE2FE11D1CFE86E6003EF0D7 /* XCTestInternalObservation.swift in Sources */,
				AE2FE1061CFE86DB003EF0D7 /* XCTestObservation.swift in Sources */,
				AE2FE0FB1CFE86DB003EF0D7 /* XCAbstractTest.swift in Sources */,
				AE2FE1081CFE86DB003EF0D7 /* XCTestRun.swift in Sources */,
				AE2FE10A1CFE86DB003EF0D7 /* XCTestSuiteRun.swift in Sources */,
				AE2FE1161CFE86E6003EF0D7 /* ObjectWrapper.swift in Sources */,
				172FF8A72117B74D0059CBC5 /* XCTNSNotificationExpectation.swift in Sources */,
				AE2FE11A1CFE86E6003EF0D7 /* WallClockTimeMetric.swift in Sources */,
				AE2FE1191CFE86E6003EF0D7 /* TestFiltering.swift in Sources */,
				AE2FE1031CFE86DB003EF0D7 /* XCTestErrors.swift in Sources */,
				AE2FE1091CFE86DB003EF0D7 /* XCTestSuite.swift in Sources */,
				AE2FE11C1CFE86E6003EF0D7 /* XCTestCaseSuite.swift in Sources */,
				AE2FE0FE1CFE86DB003EF0D7 /* XCTAssert.swift in Sources */,
				17B6C3ED210F53BE00A11ECC /* WaiterManager.swift in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXSourcesBuildPhase section */

/* Begin PBXTargetDependency section */
		DAA333BA1C267AF3000CC115 /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			target = 5B5D86DA1BBC74AD00234F36 /* SwiftXCTest */;
			targetProxy = DAA333B91C267AF3000CC115 /* PBXContainerItemProxy */;
		};
/* End PBXTargetDependency section */

/* Begin XCBuildConfiguration section */
		5B5D86E11BBC74AD00234F36 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
				CLANG_CXX_LIBRARY = "libc++";
				CLANG_ENABLE_MODULES = YES;
				CLANG_ENABLE_OBJC_ARC = YES;
				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
				CLANG_WARN_BOOL_CONVERSION = YES;
				CLANG_WARN_COMMA = YES;
				CLANG_WARN_CONSTANT_CONVERSION = YES;
				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
				CLANG_WARN_EMPTY_BODY = YES;
				CLANG_WARN_ENUM_CONVERSION = YES;
				CLANG_WARN_INFINITE_RECURSION = YES;
				CLANG_WARN_INT_CONVERSION = YES;
				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
				CLANG_WARN_STRICT_PROTOTYPES = YES;
				CLANG_WARN_SUSPICIOUS_MOVE = YES;
				CLANG_WARN_UNREACHABLE_CODE = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				CODE_SIGN_IDENTITY = "";
				COPY_PHASE_STRIP = NO;
				CURRENT_PROJECT_VERSION = 1.0;
				DEBUG_INFORMATION_FORMAT = dwarf;
				ENABLE_STRICT_OBJC_MSGSEND = YES;
				ENABLE_TESTABILITY = YES;
				GCC_C_LANGUAGE_STANDARD = gnu99;
				GCC_DYNAMIC_NO_PIC = NO;
				GCC_NO_COMMON_BLOCKS = YES;
				GCC_OPTIMIZATION_LEVEL = 0;
				GCC_PREPROCESSOR_DEFINITIONS = (
					"DEBUG=1",
					"$(inherited)",
				);
				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
				GCC_WARN_UNDECLARED_SELECTOR = YES;
				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
				GCC_WARN_UNUSED_FUNCTION = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				INFOPLIST_FILE = Info.plist;
				MTL_ENABLE_DEBUG_INFO = YES;
				ONLY_ACTIVE_ARCH = YES;
				PRODUCT_BUNDLE_IDENTIFIER = org.swift.XCTest;
				PRODUCT_BUNDLE_PACKAGE_TYPE = BNDL;
				PRODUCT_NAME = SwiftXCTest;
				SDKROOT = macosx;
				SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
				SWIFT_OPTIMIZATION_LEVEL = "-Onone";
				SWIFT_SWIFT3_OBJC_INFERENCE = Off;
				SWIFT_VERSION = 4.0;
				VERSIONING_SYSTEM = "apple-generic";
				VERSION_INFO_PREFIX = "";
			};
			name = Debug;
		};
		5B5D86E21BBC74AD00234F36 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
				CLANG_CXX_LIBRARY = "libc++";
				CLANG_ENABLE_MODULES = YES;
				CLANG_ENABLE_OBJC_ARC = YES;
				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
				CLANG_WARN_BOOL_CONVERSION = YES;
				CLANG_WARN_COMMA = YES;
				CLANG_WARN_CONSTANT_CONVERSION = YES;
				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
				CLANG_WARN_EMPTY_BODY = YES;
				CLANG_WARN_ENUM_CONVERSION = YES;
				CLANG_WARN_INFINITE_RECURSION = YES;
				CLANG_WARN_INT_CONVERSION = YES;
				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
				CLANG_WARN_STRICT_PROTOTYPES = YES;
				CLANG_WARN_SUSPICIOUS_MOVE = YES;
				CLANG_WARN_UNREACHABLE_CODE = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				CODE_SIGN_IDENTITY = "";
				COPY_PHASE_STRIP = NO;
				CURRENT_PROJECT_VERSION = 1.0;
				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
				ENABLE_NS_ASSERTIONS = NO;
				ENABLE_STRICT_OBJC_MSGSEND = YES;
				GCC_C_LANGUAGE_STANDARD = gnu99;
				GCC_NO_COMMON_BLOCKS = YES;
				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
				GCC_WARN_UNDECLARED_SELECTOR = YES;
				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
				GCC_WARN_UNUSED_FUNCTION = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				INFOPLIST_FILE = Info.plist;
				MTL_ENABLE_DEBUG_INFO = NO;
				PRODUCT_BUNDLE_IDENTIFIER = org.swift.XCTest;
				PRODUCT_BUNDLE_PACKAGE_TYPE = BNDL;
				PRODUCT_NAME = SwiftXCTest;
				SDKROOT = macosx;
				SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
				SWIFT_SWIFT3_OBJC_INFERENCE = Off;
				SWIFT_VERSION = 4.0;
				VERSIONING_SYSTEM = "apple-generic";
				VERSION_INFO_PREFIX = "";
			};
			name = Release;
		};
		5B5D86E41BBC74AD00234F36 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				DEFINES_MODULE = YES;
				DYLIB_INSTALL_NAME_BASE = "@rpath";
				"FRAMEWORK_SEARCH_PATHS[sdk=macosx*]" = "";
				IPHONEOS_DEPLOYMENT_TARGET = 10.0;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				"LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks @loader_path/Frameworks";
				MACOSX_DEPLOYMENT_TARGET = 10.12;
				"OTHER_LDFLAGS[sdk=macosx*]" = (
					"-framework",
					SwiftFoundation,
				);
				OTHER_SWIFT_FLAGS = "-swift-version 4";
				PRODUCT_BUNDLE_PACKAGE_TYPE = FMWK;
				SKIP_INSTALL = YES;
				SUPPORTED_PLATFORMS = "appletvos appletvsimulator iphoneos iphonesimulator macosx watchos watchsimulator";
				SWIFT_INDEX_STORE_ENABLE = NO;
				SWIFT_SWIFT3_OBJC_INFERENCE = Off;
				SWIFT_VERSION = 4.0;
				TARGETED_DEVICE_FAMILY = "1,2,3,4";
				TVOS_DEPLOYMENT_TARGET = 10.0;
				WATCHOS_DEPLOYMENT_TARGET = 3.0;
			};
			name = Debug;
		};
		5B5D86E51BBC74AD00234F36 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				DEFINES_MODULE = YES;
				DYLIB_INSTALL_NAME_BASE = "@rpath";
				"FRAMEWORK_SEARCH_PATHS[sdk=macosx*]" = "";
				IPHONEOS_DEPLOYMENT_TARGET = 10.0;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				"LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks @loader_path/Frameworks";
				MACOSX_DEPLOYMENT_TARGET = 10.12;
				"OTHER_LDFLAGS[sdk=macosx*]" = (
					"-framework",
					SwiftFoundation,
				);
				OTHER_SWIFT_FLAGS = "-swift-version 4";
				PRODUCT_BUNDLE_PACKAGE_TYPE = FMWK;
				SKIP_INSTALL = YES;
				SUPPORTED_PLATFORMS = "appletvos appletvsimulator iphoneos iphonesimulator macosx watchos watchsimulator";
				SWIFT_INDEX_STORE_ENABLE = NO;
				SWIFT_SWIFT3_OBJC_INFERENCE = Off;
				SWIFT_VERSION = 4.0;
				TARGETED_DEVICE_FAMILY = "1,2,3,4";
				TVOS_DEPLOYMENT_TARGET = 10.0;
				WATCHOS_DEPLOYMENT_TARGET = 3.0;
			};
			name = Release;
		};
		DAA333B61C267AD6000CC115 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				DEBUGGING_SYMBOLS = YES;
				DEBUG_INFORMATION_FORMAT = dwarf;
				GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
				GCC_OPTIMIZATION_LEVEL = 0;
				OTHER_CFLAGS = "";
				"OTHER_LDFLAGS[sdk=macosx*]" = (
					"-framework",
					SwiftFoundation,
				);
				PRODUCT_NAME = "$(TARGET_NAME)";
				SWIFT_EXEC = "$(TOOLCHAIN_DIR)/usr/bin/swiftc";
			};
			name = Debug;
		};
		DAA333B71C267AD6000CC115 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
				OTHER_CFLAGS = "";
				"OTHER_LDFLAGS[sdk=macosx*]" = (
					"-framework",
					SwiftFoundation,
				);
				PRODUCT_NAME = "$(TARGET_NAME)";
				SWIFT_EXEC = "$(TOOLCHAIN_DIR)/usr/bin/swiftc";
			};
			name = Release;
		};
/* End XCBuildConfiguration section */

/* Begin XCConfigurationList section */
		5B5D86D51BBC74AD00234F36 /* Build configuration list for PBXProject "XCTest" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				5B5D86E11BBC74AD00234F36 /* Debug */,
				5B5D86E21BBC74AD00234F36 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		5B5D86E31BBC74AD00234F36 /* Build configuration list for PBXNativeTarget "SwiftXCTest" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				5B5D86E41BBC74AD00234F36 /* Debug */,
				5B5D86E51BBC74AD00234F36 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		DAA333B81C267AD6000CC115 /* Build configuration list for PBXLegacyTarget "SwiftXCTestFunctionalTests" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				DAA333B61C267AD6000CC115 /* Debug */,
				DAA333B71C267AD6000CC115 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
/* End XCConfigurationList section */
	};
	rootObject = 5B5D86D21BBC74AD00234F36 /* Project object */;
}
