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

/* Begin PBXBuildFile section */
		A146114A0B94631F000C6B18 /* convex_hull_bench.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A14611490B94631F000C6B18 /* convex_hull_bench.cpp */; };
		A1F593A60B8F042A00073279 /* convex_hull_sample.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F593A50B8F042A00073279 /* convex_hull_sample.cpp */; };
		A1F593B70B8F06F900073279 /* libtbb.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A1F593B30B8F06F900073279 /* libtbb.dylib */; };
		A1F593BB0B8F072500073279 /* libtbb.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = A1F593B30B8F06F900073279 /* libtbb.dylib */; };
		A1F594FC0B8F4F1000073279 /* libtbb.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A1F593B30B8F06F900073279 /* libtbb.dylib */; };
		A1F594FD0B8F4F1800073279 /* libtbb.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = A1F593B30B8F06F900073279 /* libtbb.dylib */; };
/* End PBXBuildFile section */

/* Begin PBXCopyFilesBuildPhase section */
		8DD76F690486A84900D96B5E /* CopyFiles */ = {
			isa = PBXCopyFilesBuildPhase;
			buildActionMask = 12;
			dstPath = "";
			dstSubfolderSpec = 16;
			files = (
				A1F593BB0B8F072500073279 /* libtbb.dylib in CopyFiles */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		A1F594F40B8F4E7700073279 /* CopyFiles */ = {
			isa = PBXCopyFilesBuildPhase;
			buildActionMask = 2147483647;
			dstPath = "";
			dstSubfolderSpec = 16;
			files = (
				A1F594FD0B8F4F1800073279 /* libtbb.dylib in CopyFiles */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXCopyFilesBuildPhase section */

/* Begin PBXFileReference section */
		A14611490B94631F000C6B18 /* convex_hull_bench.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = convex_hull_bench.cpp; path = ../convex_hull_bench.cpp; sourceTree = SOURCE_ROOT; };
		A146114C0B9463CB000C6B18 /* convex_hull.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = convex_hull.h; path = ../convex_hull.h; sourceTree = SOURCE_ROOT; };
		A1F593A50B8F042A00073279 /* convex_hull_sample.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = convex_hull_sample.cpp; path = ../convex_hull_sample.cpp; sourceTree = SOURCE_ROOT; };
		A1F593B30B8F06F900073279 /* libtbb.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libtbb.dylib; path = /Library/Frameworks/TBB.framework/Libraries/libtbb.dylib; sourceTree = "<absolute>"; };
		A1F594EB0B8F4B5600073279 /* convex_hull_bench */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = convex_hull_bench; sourceTree = BUILT_PRODUCTS_DIR; };
		A1F594FA0B8F4EE000073279 /* convex_hull_sample */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = convex_hull_sample; sourceTree = BUILT_PRODUCTS_DIR; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
		8DD76F660486A84900D96B5E /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				A1F593B70B8F06F900073279 /* libtbb.dylib in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		A1F594E90B8F4B5600073279 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				A1F594FC0B8F4F1000073279 /* libtbb.dylib in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
		08FB7794FE84155DC02AAC07 /* convex_hull */ = {
			isa = PBXGroup;
			children = (
				08FB7795FE84155DC02AAC07 /* Source */,
				A1F593B20B8F06F900073279 /* External Frameworks and Libraries */,
				1AB674ADFE9D54B511CA2CBB /* Products */,
			);
			name = convex_hull;
			sourceTree = "<group>";
		};
		08FB7795FE84155DC02AAC07 /* Source */ = {
			isa = PBXGroup;
			children = (
				A146114C0B9463CB000C6B18 /* convex_hull.h */,
				A14611490B94631F000C6B18 /* convex_hull_bench.cpp */,
				A1F593A50B8F042A00073279 /* convex_hull_sample.cpp */,
			);
			name = Source;
			sourceTree = "<group>";
		};
		1AB674ADFE9D54B511CA2CBB /* Products */ = {
			isa = PBXGroup;
			children = (
				A1F594EB0B8F4B5600073279 /* convex_hull_bench */,
				A1F594FA0B8F4EE000073279 /* convex_hull_sample */,
			);
			name = Products;
			sourceTree = "<group>";
		};
		A1F593B20B8F06F900073279 /* External Frameworks and Libraries */ = {
			isa = PBXGroup;
			children = (
				A1F593B30B8F06F900073279 /* libtbb.dylib */,
			);
			name = "External Frameworks and Libraries";
			sourceTree = "<group>";
		};
/* End PBXGroup section */

/* Begin PBXNativeTarget section */
		8DD76F620486A84900D96B5E /* convex_hull_sample */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 1DEB923108733DC60010E9CD /* Build configuration list for PBXNativeTarget "convex_hull_sample" */;
			buildPhases = (
				8DD76F640486A84900D96B5E /* Sources */,
				8DD76F660486A84900D96B5E /* Frameworks */,
				8DD76F690486A84900D96B5E /* CopyFiles */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = convex_hull_sample;
			productInstallPath = "$(HOME)/bin";
			productName = convex_hull;
			productReference = A1F594FA0B8F4EE000073279 /* convex_hull_sample */;
			productType = "com.apple.product-type.tool";
		};
		A1F594EA0B8F4B5600073279 /* convex_hull_bench */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = A1F594EE0B8F4B8200073279 /* Build configuration list for PBXNativeTarget "convex_hull_bench" */;
			buildPhases = (
				A1F594E80B8F4B5600073279 /* Sources */,
				A1F594E90B8F4B5600073279 /* Frameworks */,
				A1F594F40B8F4E7700073279 /* CopyFiles */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = convex_hull_bench;
			productName = convex_hull_bench;
			productReference = A1F594EB0B8F4B5600073279 /* convex_hull_bench */;
			productType = "com.apple.product-type.tool";
		};
/* End PBXNativeTarget section */

/* Begin PBXProject section */
		08FB7793FE84155DC02AAC07 /* Project object */ = {
			isa = PBXProject;
			buildConfigurationList = 1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "convex_hull" */;
			compatibilityVersion = "Xcode 2.4";
			hasScannedForEncodings = 1;
			mainGroup = 08FB7794FE84155DC02AAC07 /* convex_hull */;
			projectDirPath = "";
			projectRoot = "";
			targets = (
				8DD76F620486A84900D96B5E /* convex_hull_sample */,
				A1F594EA0B8F4B5600073279 /* convex_hull_bench */,
			);
		};
/* End PBXProject section */

/* Begin PBXSourcesBuildPhase section */
		8DD76F640486A84900D96B5E /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				A1F593A60B8F042A00073279 /* convex_hull_sample.cpp in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		A1F594E80B8F4B5600073279 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				A146114A0B94631F000C6B18 /* convex_hull_bench.cpp in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXSourcesBuildPhase section */

/* Begin XCBuildConfiguration section */
		1DEB923208733DC60010E9CD /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				COPY_PHASE_STRIP = NO;
				GCC_DYNAMIC_NO_PIC = NO;
				GCC_ENABLE_FIX_AND_CONTINUE = YES;
				GCC_OPTIMIZATION_LEVEL = 0;
				GCC_VERSION = 4.0;
				INSTALL_PATH = "$(HOME)/bin";
				LIBRARY_SEARCH_PATHS = (
					"$(inherited)",
					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
				);
				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
				PRODUCT_NAME = convex_hull_sample;
				ZERO_LINK = NO;
			};
			name = Debug;
		};
		1DEB923308733DC60010E9CD /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
				GCC_VERSION = 4.0;
				INSTALL_PATH = "$(HOME)/bin";
				LIBRARY_SEARCH_PATHS = (
					"$(inherited)",
					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
				);
				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
				PRODUCT_NAME = convex_hull_sample;
				ZERO_LINK = NO;
			};
			name = Release;
		};
		1DEB923608733DC60010E9CD /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				ARCHS = i386;
				GCC_ENABLE_CPP_RTTI = YES;
				GCC_MODEL_TUNING = "";
				GCC_VERSION = 4.0;
				GCC_WARN_ABOUT_RETURN_TYPE = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				PREBINDING = NO;
				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
				SYMROOT = "/tmp/tbb-$(USER)";
			};
			name = Debug;
		};
		1DEB923708733DC60010E9CD /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				ARCHS = i386;
				GCC_ENABLE_CPP_RTTI = YES;
				GCC_MODEL_TUNING = "";
				GCC_VERSION = 4.0;
				GCC_WARN_ABOUT_RETURN_TYPE = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				PREBINDING = NO;
				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
				SYMROOT = "/tmp/tbb-$(USER)";
			};
			name = Release;
		};
		A1F593C60B8F0E6E00073279 /* Debug64 */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ARCHS = "$(ARCHS_STANDARD_64_BIT_PRE_XCODE_3_1)";
				ARCHS_STANDARD_64_BIT_PRE_XCODE_3_1 = x86_64;
				COPY_PHASE_STRIP = NO;
				GCC_DYNAMIC_NO_PIC = NO;
				GCC_ENABLE_FIX_AND_CONTINUE = YES;
				GCC_OPTIMIZATION_LEVEL = 0;
				GCC_VERSION = 4.0;
				INSTALL_PATH = "$(HOME)/bin";
				LIBRARY_SEARCH_PATHS = (
					"$(inherited)",
					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
				);
				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
				PRODUCT_NAME = convex_hull_sample;
				ZERO_LINK = NO;
			};
			name = Debug64;
		};
		A1F593C70B8F0E6E00073279 /* Release64 */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ARCHS = "$(ARCHS_STANDARD_64_BIT_PRE_XCODE_3_1)";
				ARCHS_STANDARD_64_BIT_PRE_XCODE_3_1 = x86_64;
				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
				GCC_VERSION = 4.0;
				INSTALL_PATH = "$(HOME)/bin";
				LIBRARY_SEARCH_PATHS = (
					"$(inherited)",
					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
				);
				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
				PRODUCT_NAME = convex_hull_sample;
				ZERO_LINK = NO;
			};
			name = Release64;
		};
		A1F593C80B8F0E6E00073279 /* Debug64 */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				ARCHS = i386;
				GCC_ENABLE_CPP_RTTI = YES;
				GCC_MODEL_TUNING = "";
				GCC_VERSION = 4.0;
				GCC_WARN_ABOUT_RETURN_TYPE = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				OTHER_CPLUSPLUSFLAGS = (
					"$(OTHER_CFLAGS)",
					"-m64",
				);
				OTHER_LDFLAGS = "-m64";
				PREBINDING = NO;
				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
				SYMROOT = "/tmp/tbb-$(USER)";
			};
			name = Debug64;
		};
		A1F593C90B8F0E6E00073279 /* Release64 */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				ARCHS = i386;
				GCC_ENABLE_CPP_RTTI = YES;
				GCC_MODEL_TUNING = "";
				GCC_VERSION = 4.0;
				GCC_WARN_ABOUT_RETURN_TYPE = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				OTHER_CPLUSPLUSFLAGS = (
					"$(OTHER_CFLAGS)",
					"-m64",
				);
				OTHER_LDFLAGS = "-m64";
				PREBINDING = NO;
				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
				SYMROOT = "/tmp/tbb-$(USER)";
			};
			name = Release64;
		};
		A1F594EF0B8F4B8200073279 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				COPY_PHASE_STRIP = NO;
				GCC_DYNAMIC_NO_PIC = NO;
				GCC_ENABLE_FIX_AND_CONTINUE = YES;
				GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
				GCC_OPTIMIZATION_LEVEL = 0;
				GCC_VERSION = 4.0;
				INSTALL_PATH = "$(HOME)/bin";
				LIBRARY_SEARCH_PATHS = (
					"$(inherited)",
					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
				);
				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
				PREBINDING = NO;
				PRODUCT_NAME = convex_hull_bench;
				ZERO_LINK = NO;
			};
			name = Debug;
		};
		A1F594F00B8F4B8200073279 /* Debug64 */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ARCHS = "$(ARCHS_STANDARD_64_BIT_PRE_XCODE_3_1)";
				ARCHS_STANDARD_64_BIT_PRE_XCODE_3_1 = x86_64;
				COPY_PHASE_STRIP = NO;
				GCC_DYNAMIC_NO_PIC = NO;
				GCC_ENABLE_FIX_AND_CONTINUE = YES;
				GCC_OPTIMIZATION_LEVEL = 0;
				GCC_VERSION = 4.0;
				INSTALL_PATH = "$(HOME)/bin";
				LIBRARY_SEARCH_PATHS = (
					"$(inherited)",
					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
				);
				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
				PREBINDING = NO;
				PRODUCT_NAME = convex_hull_bench;
				ZERO_LINK = NO;
			};
			name = Debug64;
		};
		A1F594F10B8F4B8200073279 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				COPY_PHASE_STRIP = YES;
				GCC_ENABLE_FIX_AND_CONTINUE = NO;
				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
				GCC_VERSION = 4.0;
				INSTALL_PATH = "$(HOME)/bin";
				LIBRARY_SEARCH_PATHS = (
					"$(inherited)",
					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
				);
				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
				PREBINDING = NO;
				PRODUCT_NAME = convex_hull_bench;
				ZERO_LINK = NO;
			};
			name = Release;
		};
		A1F594F20B8F4B8200073279 /* Release64 */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ARCHS = "$(ARCHS_STANDARD_64_BIT_PRE_XCODE_3_1)";
				ARCHS_STANDARD_64_BIT_PRE_XCODE_3_1 = x86_64;
				GCC_ENABLE_FIX_AND_CONTINUE = NO;
				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
				GCC_VERSION = 4.0;
				INSTALL_PATH = "$(HOME)/bin";
				LIBRARY_SEARCH_PATHS = (
					"$(inherited)",
					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
				);
				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
				PREBINDING = NO;
				PRODUCT_NAME = convex_hull_bench;
				ZERO_LINK = NO;
			};
			name = Release64;
		};
/* End XCBuildConfiguration section */

/* Begin XCConfigurationList section */
		1DEB923108733DC60010E9CD /* Build configuration list for PBXNativeTarget "convex_hull_sample" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				1DEB923208733DC60010E9CD /* Debug */,
				A1F593C60B8F0E6E00073279 /* Debug64 */,
				1DEB923308733DC60010E9CD /* Release */,
				A1F593C70B8F0E6E00073279 /* Release64 */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "convex_hull" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				1DEB923608733DC60010E9CD /* Debug */,
				A1F593C80B8F0E6E00073279 /* Debug64 */,
				1DEB923708733DC60010E9CD /* Release */,
				A1F593C90B8F0E6E00073279 /* Release64 */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		A1F594EE0B8F4B8200073279 /* Build configuration list for PBXNativeTarget "convex_hull_bench" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				A1F594EF0B8F4B8200073279 /* Debug */,
				A1F594F00B8F4B8200073279 /* Debug64 */,
				A1F594F10B8F4B8200073279 /* Release */,
				A1F594F20B8F4B8200073279 /* Release64 */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
/* End XCConfigurationList section */
	};
	rootObject = 08FB7793FE84155DC02AAC07 /* Project object */;
}
