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

/* Begin PBXBuildFile section */
		3D41A2091DA55D2E00E3AD19 /* dwarf_buffer_reader.cc in Sources */ = {isa = PBXBuildFile; fileRef = 3D41A2071DA55D2E00E3AD19 /* dwarf_buffer_reader.cc */; };
		3D448E8E1D9DB8AD00177F7E /* mach_o_file.cc in Sources */ = {isa = PBXBuildFile; fileRef = 3D448E8D1D9DB8AD00177F7E /* mach_o_file.cc */; };
		3D5392721DAD55F2006587A9 /* covmap_patcher.cc in Sources */ = {isa = PBXBuildFile; fileRef = 3D5392701DAD55F2006587A9 /* covmap_patcher.cc */; };
		3D70F5E51DA541EC0047C19B /* dwarf_string_patcher.cc in Sources */ = {isa = PBXBuildFile; fileRef = 3D70F5E31DA541EC0047C19B /* dwarf_string_patcher.cc */; };
		3D82482A1D9D73CD0092A343 /* mach_o_container.cc in Sources */ = {isa = PBXBuildFile; fileRef = 3D8248281D9D73CD0092A343 /* mach_o_container.cc */; };
		3DC2E3C91D635C0A00DCF7D3 /* main.cc in Sources */ = {isa = PBXBuildFile; fileRef = 3DC2E3C81D635C0A00DCF7D3 /* main.cc */; };
		AB18C220E0250070E2A7B288 /* symtab_nlist_resolver.cc in Sources */ = {isa = PBXBuildFile; fileRef = AB18CE7D5CA828ECAB9E338B /* symtab_nlist_resolver.cc */; };
		AB18C2949FFB1788F849D501 /* mach_load_command_resolver.cc in Sources */ = {isa = PBXBuildFile; fileRef = AB18C25F7DBB623DF72455FB /* mach_load_command_resolver.cc */; };
		AB18CA53B536D78FC0B34A51 /* covmap_section.cc in Sources */ = {isa = PBXBuildFile; fileRef = AB18CB8CB0AE195372AE7B25 /* covmap_section.cc */; };
/* End PBXBuildFile section */

/* Begin PBXCopyFilesBuildPhase section */
		3DC2E3C31D635C0A00DCF7D3 /* CopyFiles */ = {
			isa = PBXCopyFilesBuildPhase;
			buildActionMask = 2147483647;
			dstPath = /usr/share/man/man1/;
			dstSubfolderSpec = 0;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 1;
		};
/* End PBXCopyFilesBuildPhase section */

/* Begin PBXFileReference section */
		3D41A2071DA55D2E00E3AD19 /* dwarf_buffer_reader.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = dwarf_buffer_reader.cc; sourceTree = "<group>"; };
		3D41A2081DA55D2E00E3AD19 /* dwarf_buffer_reader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dwarf_buffer_reader.h; sourceTree = "<group>"; };
		3D448E8D1D9DB8AD00177F7E /* mach_o_file.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = mach_o_file.cc; sourceTree = "<group>"; };
		3D5392701DAD55F2006587A9 /* covmap_patcher.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = covmap_patcher.cc; sourceTree = "<group>"; };
		3D5392711DAD55F2006587A9 /* covmap_patcher.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = covmap_patcher.h; sourceTree = "<group>"; };
		3D70F5E31DA541EC0047C19B /* dwarf_string_patcher.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = dwarf_string_patcher.cc; sourceTree = "<group>"; };
		3D70F5E41DA541EC0047C19B /* dwarf_string_patcher.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dwarf_string_patcher.h; sourceTree = "<group>"; };
		3D8248281D9D73CD0092A343 /* mach_o_container.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = mach_o_container.cc; sourceTree = "<group>"; };
		3D8248291D9D73CD0092A343 /* mach_o_container.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mach_o_container.h; sourceTree = "<group>"; };
		3DC2E3C51D635C0A00DCF7D3 /* post_processor */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = post_processor; sourceTree = BUILT_PRODUCTS_DIR; };
		3DC2E3C81D635C0A00DCF7D3 /* main.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = main.cc; sourceTree = "<group>"; };
		3DDCD8D31DAD570500C0704F /* patcher_base.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = patcher_base.h; sourceTree = "<group>"; };
		AB18C0E3DCD4BF5F5F1DD249 /* covmap_section.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = covmap_section.h; sourceTree = "<group>"; };
		AB18C25F7DBB623DF72455FB /* mach_load_command_resolver.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = mach_load_command_resolver.cc; sourceTree = "<group>"; };
		AB18C6F0892DB7DDFA6689F2 /* mach_o_file.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mach_o_file.h; sourceTree = "<group>"; };
		AB18C93BF8C893F0F4B893DF /* symtab_nlist_resolver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = symtab_nlist_resolver.h; sourceTree = "<group>"; };
		AB18CB8CB0AE195372AE7B25 /* covmap_section.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = covmap_section.cc; sourceTree = "<group>"; };
		AB18CC202741A5FCF0B50DAD /* mach_load_command_resolver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mach_load_command_resolver.h; sourceTree = "<group>"; };
		AB18CC4B7C618AB62CCF8149 /* return_code.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = return_code.h; sourceTree = "<group>"; };
		AB18CE7D5CA828ECAB9E338B /* symtab_nlist_resolver.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = symtab_nlist_resolver.cc; sourceTree = "<group>"; };
/* End PBXFileReference section */

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

/* Begin PBXGroup section */
		3DC2E3BC1D635C0A00DCF7D3 = {
			isa = PBXGroup;
			children = (
				3DC2E3C71D635C0A00DCF7D3 /* post_processor */,
				3DC2E3C61D635C0A00DCF7D3 /* Products */,
			);
			sourceTree = "<group>";
		};
		3DC2E3C61D635C0A00DCF7D3 /* Products */ = {
			isa = PBXGroup;
			children = (
				3DC2E3C51D635C0A00DCF7D3 /* post_processor */,
			);
			name = Products;
			sourceTree = "<group>";
		};
		3DC2E3C71D635C0A00DCF7D3 /* post_processor */ = {
			isa = PBXGroup;
			children = (
				3D5392701DAD55F2006587A9 /* covmap_patcher.cc */,
				3D5392711DAD55F2006587A9 /* covmap_patcher.h */,
				AB18CB8CB0AE195372AE7B25 /* covmap_section.cc */,
				AB18C0E3DCD4BF5F5F1DD249 /* covmap_section.h */,
				3D41A2071DA55D2E00E3AD19 /* dwarf_buffer_reader.cc */,
				3D41A2081DA55D2E00E3AD19 /* dwarf_buffer_reader.h */,
				3D70F5E31DA541EC0047C19B /* dwarf_string_patcher.cc */,
				3D70F5E41DA541EC0047C19B /* dwarf_string_patcher.h */,
				AB18C25F7DBB623DF72455FB /* mach_load_command_resolver.cc */,
				AB18CC202741A5FCF0B50DAD /* mach_load_command_resolver.h */,
				3D8248281D9D73CD0092A343 /* mach_o_container.cc */,
				3D8248291D9D73CD0092A343 /* mach_o_container.h */,
				3D448E8D1D9DB8AD00177F7E /* mach_o_file.cc */,
				AB18C6F0892DB7DDFA6689F2 /* mach_o_file.h */,
				3DC2E3C81D635C0A00DCF7D3 /* main.cc */,
				3DDCD8D31DAD570500C0704F /* patcher_base.h */,
				AB18CC4B7C618AB62CCF8149 /* return_code.h */,
				AB18CE7D5CA828ECAB9E338B /* symtab_nlist_resolver.cc */,
				AB18C93BF8C893F0F4B893DF /* symtab_nlist_resolver.h */,
			);
			path = post_processor;
			sourceTree = "<group>";
		};
/* End PBXGroup section */

/* Begin PBXNativeTarget section */
		3DC2E3C41D635C0A00DCF7D3 /* post_processor */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 3DC2E3CC1D635C0A00DCF7D3 /* Build configuration list for PBXNativeTarget "post_processor" */;
			buildPhases = (
				3DC2E3C11D635C0A00DCF7D3 /* Sources */,
				3DC2E3C21D635C0A00DCF7D3 /* Frameworks */,
				3DC2E3C31D635C0A00DCF7D3 /* CopyFiles */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = post_processor;
			productName = post_processor;
			productReference = 3DC2E3C51D635C0A00DCF7D3 /* post_processor */;
			productType = "com.apple.product-type.tool";
		};
/* End PBXNativeTarget section */

/* Begin PBXProject section */
		3DC2E3BD1D635C0A00DCF7D3 /* Project object */ = {
			isa = PBXProject;
			attributes = {
				LastUpgradeCheck = 0800;
				ORGANIZATIONNAME = "Google Inc.";
				TargetAttributes = {
					3DC2E3C41D635C0A00DCF7D3 = {
						CreatedOnToolsVersion = 7.3.1;
					};
				};
			};
			buildConfigurationList = 3DC2E3C01D635C0A00DCF7D3 /* Build configuration list for PBXProject "post_processor" */;
			compatibilityVersion = "Xcode 3.2";
			developmentRegion = English;
			hasScannedForEncodings = 0;
			knownRegions = (
				en,
			);
			mainGroup = 3DC2E3BC1D635C0A00DCF7D3;
			productRefGroup = 3DC2E3C61D635C0A00DCF7D3 /* Products */;
			projectDirPath = "";
			projectRoot = "";
			targets = (
				3DC2E3C41D635C0A00DCF7D3 /* post_processor */,
			);
		};
/* End PBXProject section */

/* Begin PBXSourcesBuildPhase section */
		3DC2E3C11D635C0A00DCF7D3 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				3D448E8E1D9DB8AD00177F7E /* mach_o_file.cc in Sources */,
				3D82482A1D9D73CD0092A343 /* mach_o_container.cc in Sources */,
				3DC2E3C91D635C0A00DCF7D3 /* main.cc in Sources */,
				AB18CA53B536D78FC0B34A51 /* covmap_section.cc in Sources */,
				3D70F5E51DA541EC0047C19B /* dwarf_string_patcher.cc in Sources */,
				AB18C2949FFB1788F849D501 /* mach_load_command_resolver.cc in Sources */,
				3D5392721DAD55F2006587A9 /* covmap_patcher.cc in Sources */,
				AB18C220E0250070E2A7B288 /* symtab_nlist_resolver.cc in Sources */,
				3D41A2091DA55D2E00E3AD19 /* dwarf_buffer_reader.cc in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXSourcesBuildPhase section */

/* Begin XCBuildConfiguration section */
		3DC2E3CA1D635C0A00DCF7D3 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				CLANG_ANALYZER_NONNULL = YES;
				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
				CLANG_CXX_LIBRARY = "libc++";
				CLANG_ENABLE_MODULES = YES;
				CLANG_ENABLE_OBJC_ARC = YES;
				CLANG_WARN_BOOL_CONVERSION = YES;
				CLANG_WARN_CONSTANT_CONVERSION = 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_OBJC_ROOT_CLASS = YES_ERROR;
				CLANG_WARN_SUSPICIOUS_MOVE = YES;
				CLANG_WARN_UNREACHABLE_CODE = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				CODE_SIGN_IDENTITY = "-";
				COPY_PHASE_STRIP = NO;
				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;
				MACOSX_DEPLOYMENT_TARGET = 10.11;
				MTL_ENABLE_DEBUG_INFO = YES;
				ONLY_ACTIVE_ARCH = YES;
				SDKROOT = macosx;
				SKIP_INSTALL = YES;
			};
			name = Debug;
		};
		3DC2E3CB1D635C0A00DCF7D3 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				CLANG_ANALYZER_NONNULL = YES;
				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
				CLANG_CXX_LIBRARY = "libc++";
				CLANG_ENABLE_MODULES = YES;
				CLANG_ENABLE_OBJC_ARC = YES;
				CLANG_WARN_BOOL_CONVERSION = YES;
				CLANG_WARN_CONSTANT_CONVERSION = 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_OBJC_ROOT_CLASS = YES_ERROR;
				CLANG_WARN_SUSPICIOUS_MOVE = YES;
				CLANG_WARN_UNREACHABLE_CODE = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				CODE_SIGN_IDENTITY = "-";
				COPY_PHASE_STRIP = NO;
				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;
				MACOSX_DEPLOYMENT_TARGET = 10.11;
				MTL_ENABLE_DEBUG_INFO = NO;
				SDKROOT = macosx;
				SKIP_INSTALL = YES;
			};
			name = Release;
		};
		3DC2E3CD1D635C0A00DCF7D3 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				PRODUCT_NAME = post_processor;
			};
			name = Debug;
		};
		3DC2E3CE1D635C0A00DCF7D3 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				PRODUCT_NAME = post_processor;
			};
			name = Release;
		};
/* End XCBuildConfiguration section */

/* Begin XCConfigurationList section */
		3DC2E3C01D635C0A00DCF7D3 /* Build configuration list for PBXProject "post_processor" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				3DC2E3CA1D635C0A00DCF7D3 /* Debug */,
				3DC2E3CB1D635C0A00DCF7D3 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		3DC2E3CC1D635C0A00DCF7D3 /* Build configuration list for PBXNativeTarget "post_processor" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				3DC2E3CD1D635C0A00DCF7D3 /* Debug */,
				3DC2E3CE1D635C0A00DCF7D3 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
/* End XCConfigurationList section */
	};
	rootObject = 3DC2E3BD1D635C0A00DCF7D3 /* Project object */;
}
