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

/* Begin PBXBuildFile section */
		DCA67DEF146B531D003411EE /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DCA67DEE146B531D003411EE /* Cocoa.framework */; };
		DCA67DF9146B531D003411EE /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = DCA67DF7146B531D003411EE /* InfoPlist.strings */; };
		DCA67DFB146B531D003411EE /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = DCA67DFA146B531D003411EE /* main.m */; };
		DCA67DFF146B531D003411EE /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = DCA67DFD146B531D003411EE /* Credits.rtf */; };
		DCA67E02146B531E003411EE /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = DCA67E01146B531E003411EE /* AppDelegate.m */; };
		DCA67E05146B531E003411EE /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = DCA67E03146B531E003411EE /* MainMenu.xib */; };
		DCA67E1C146B534D003411EE /* DDAbstractDatabaseLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = DCA67E0D146B534D003411EE /* DDAbstractDatabaseLogger.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
		DCA67E1D146B534D003411EE /* DDASLLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = DCA67E0F146B534D003411EE /* DDASLLogger.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
		DCA67E1E146B534D003411EE /* DDFileLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = DCA67E11146B534D003411EE /* DDFileLogger.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
		DCA67E1F146B534D003411EE /* DDLog.m in Sources */ = {isa = PBXBuildFile; fileRef = DCA67E13146B534D003411EE /* DDLog.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
		DCA67E20146B534D003411EE /* DDTTYLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = DCA67E15146B534D003411EE /* DDTTYLogger.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
		DCA67E21146B534D003411EE /* DDContextFilterLogFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = DCA67E18146B534D003411EE /* DDContextFilterLogFormatter.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
		DCA67E22146B534D003411EE /* DDDispatchQueueLogFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = DCA67E1A146B534D003411EE /* DDDispatchQueueLogFormatter.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
		DCA67E23146B534D003411EE /* README.txt in Resources */ = {isa = PBXBuildFile; fileRef = DCA67E1B146B534D003411EE /* README.txt */; };
/* End PBXBuildFile section */

/* Begin PBXFileReference section */
		DCA67DEA146B531D003411EE /* NonArcTest.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = NonArcTest.app; sourceTree = BUILT_PRODUCTS_DIR; };
		DCA67DEE146B531D003411EE /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; };
		DCA67DF1146B531D003411EE /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; };
		DCA67DF2146B531D003411EE /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = System/Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; };
		DCA67DF3146B531D003411EE /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
		DCA67DF6146B531D003411EE /* NonArcTest-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "NonArcTest-Info.plist"; sourceTree = "<group>"; };
		DCA67DF8146B531D003411EE /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
		DCA67DFA146B531D003411EE /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
		DCA67DFC146B531D003411EE /* NonArcTest-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "NonArcTest-Prefix.pch"; sourceTree = "<group>"; };
		DCA67DFE146B531D003411EE /* en */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = en; path = en.lproj/Credits.rtf; sourceTree = "<group>"; };
		DCA67E00146B531D003411EE /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
		DCA67E01146B531E003411EE /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
		DCA67E04146B531E003411EE /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/MainMenu.xib; sourceTree = "<group>"; };
		DCA67E0C146B534D003411EE /* DDAbstractDatabaseLogger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DDAbstractDatabaseLogger.h; path = ../../../Lumberjack/DDAbstractDatabaseLogger.h; sourceTree = "<group>"; };
		DCA67E0D146B534D003411EE /* DDAbstractDatabaseLogger.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DDAbstractDatabaseLogger.m; path = ../../../Lumberjack/DDAbstractDatabaseLogger.m; sourceTree = "<group>"; };
		DCA67E0E146B534D003411EE /* DDASLLogger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DDASLLogger.h; path = ../../../Lumberjack/DDASLLogger.h; sourceTree = "<group>"; };
		DCA67E0F146B534D003411EE /* DDASLLogger.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DDASLLogger.m; path = ../../../Lumberjack/DDASLLogger.m; sourceTree = "<group>"; };
		DCA67E10146B534D003411EE /* DDFileLogger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DDFileLogger.h; path = ../../../Lumberjack/DDFileLogger.h; sourceTree = "<group>"; };
		DCA67E11146B534D003411EE /* DDFileLogger.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DDFileLogger.m; path = ../../../Lumberjack/DDFileLogger.m; sourceTree = "<group>"; };
		DCA67E12146B534D003411EE /* DDLog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DDLog.h; path = ../../../Lumberjack/DDLog.h; sourceTree = "<group>"; };
		DCA67E13146B534D003411EE /* DDLog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DDLog.m; path = ../../../Lumberjack/DDLog.m; sourceTree = "<group>"; };
		DCA67E14146B534D003411EE /* DDTTYLogger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DDTTYLogger.h; path = ../../../Lumberjack/DDTTYLogger.h; sourceTree = "<group>"; };
		DCA67E15146B534D003411EE /* DDTTYLogger.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DDTTYLogger.m; path = ../../../Lumberjack/DDTTYLogger.m; sourceTree = "<group>"; };
		DCA67E17146B534D003411EE /* DDContextFilterLogFormatter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DDContextFilterLogFormatter.h; sourceTree = "<group>"; };
		DCA67E18146B534D003411EE /* DDContextFilterLogFormatter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DDContextFilterLogFormatter.m; sourceTree = "<group>"; };
		DCA67E19146B534D003411EE /* DDDispatchQueueLogFormatter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DDDispatchQueueLogFormatter.h; sourceTree = "<group>"; };
		DCA67E1A146B534D003411EE /* DDDispatchQueueLogFormatter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DDDispatchQueueLogFormatter.m; sourceTree = "<group>"; };
		DCA67E1B146B534D003411EE /* README.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = README.txt; sourceTree = "<group>"; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
		DCA67DE7146B531D003411EE /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				DCA67DEF146B531D003411EE /* Cocoa.framework in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
		DCA67DDF146B531D003411EE = {
			isa = PBXGroup;
			children = (
				DCA67E0B146B5336003411EE /* Logging */,
				DCA67DF4146B531D003411EE /* NonArcTest */,
				DCA67DED146B531D003411EE /* Frameworks */,
				DCA67DEB146B531D003411EE /* Products */,
			);
			sourceTree = "<group>";
		};
		DCA67DEB146B531D003411EE /* Products */ = {
			isa = PBXGroup;
			children = (
				DCA67DEA146B531D003411EE /* NonArcTest.app */,
			);
			name = Products;
			sourceTree = "<group>";
		};
		DCA67DED146B531D003411EE /* Frameworks */ = {
			isa = PBXGroup;
			children = (
				DCA67DEE146B531D003411EE /* Cocoa.framework */,
				DCA67DF0146B531D003411EE /* Other Frameworks */,
			);
			name = Frameworks;
			sourceTree = "<group>";
		};
		DCA67DF0146B531D003411EE /* Other Frameworks */ = {
			isa = PBXGroup;
			children = (
				DCA67DF1146B531D003411EE /* AppKit.framework */,
				DCA67DF2146B531D003411EE /* CoreData.framework */,
				DCA67DF3146B531D003411EE /* Foundation.framework */,
			);
			name = "Other Frameworks";
			sourceTree = "<group>";
		};
		DCA67DF4146B531D003411EE /* NonArcTest */ = {
			isa = PBXGroup;
			children = (
				DCA67E00146B531D003411EE /* AppDelegate.h */,
				DCA67E01146B531E003411EE /* AppDelegate.m */,
				DCA67E03146B531E003411EE /* MainMenu.xib */,
				DCA67DF5146B531D003411EE /* Supporting Files */,
			);
			path = NonArcTest;
			sourceTree = "<group>";
		};
		DCA67DF5146B531D003411EE /* Supporting Files */ = {
			isa = PBXGroup;
			children = (
				DCA67DF6146B531D003411EE /* NonArcTest-Info.plist */,
				DCA67DF7146B531D003411EE /* InfoPlist.strings */,
				DCA67DFA146B531D003411EE /* main.m */,
				DCA67DFC146B531D003411EE /* NonArcTest-Prefix.pch */,
				DCA67DFD146B531D003411EE /* Credits.rtf */,
			);
			name = "Supporting Files";
			sourceTree = "<group>";
		};
		DCA67E0B146B5336003411EE /* Logging */ = {
			isa = PBXGroup;
			children = (
				DCA67E12146B534D003411EE /* DDLog.h */,
				DCA67E13146B534D003411EE /* DDLog.m */,
				DCA67E0E146B534D003411EE /* DDASLLogger.h */,
				DCA67E0F146B534D003411EE /* DDASLLogger.m */,
				DCA67E14146B534D003411EE /* DDTTYLogger.h */,
				DCA67E15146B534D003411EE /* DDTTYLogger.m */,
				DCA67E10146B534D003411EE /* DDFileLogger.h */,
				DCA67E11146B534D003411EE /* DDFileLogger.m */,
				DCA67E0C146B534D003411EE /* DDAbstractDatabaseLogger.h */,
				DCA67E0D146B534D003411EE /* DDAbstractDatabaseLogger.m */,
				DCA67E16146B534D003411EE /* Extensions */,
			);
			name = Logging;
			sourceTree = "<group>";
		};
		DCA67E16146B534D003411EE /* Extensions */ = {
			isa = PBXGroup;
			children = (
				DCA67E17146B534D003411EE /* DDContextFilterLogFormatter.h */,
				DCA67E18146B534D003411EE /* DDContextFilterLogFormatter.m */,
				DCA67E19146B534D003411EE /* DDDispatchQueueLogFormatter.h */,
				DCA67E1A146B534D003411EE /* DDDispatchQueueLogFormatter.m */,
				DCA67E1B146B534D003411EE /* README.txt */,
			);
			name = Extensions;
			path = ../../../Lumberjack/Extensions;
			sourceTree = "<group>";
		};
/* End PBXGroup section */

/* Begin PBXNativeTarget section */
		DCA67DE9146B531D003411EE /* NonArcTest */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = DCA67E08146B531E003411EE /* Build configuration list for PBXNativeTarget "NonArcTest" */;
			buildPhases = (
				DCA67DE6146B531D003411EE /* Sources */,
				DCA67DE7146B531D003411EE /* Frameworks */,
				DCA67DE8146B531D003411EE /* Resources */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = NonArcTest;
			productName = NonArcTest;
			productReference = DCA67DEA146B531D003411EE /* NonArcTest.app */;
			productType = "com.apple.product-type.application";
		};
/* End PBXNativeTarget section */

/* Begin PBXProject section */
		DCA67DE1146B531D003411EE /* Project object */ = {
			isa = PBXProject;
			attributes = {
				LastUpgradeCheck = 0500;
			};
			buildConfigurationList = DCA67DE4146B531D003411EE /* Build configuration list for PBXProject "NonArcTest" */;
			compatibilityVersion = "Xcode 3.2";
			developmentRegion = English;
			hasScannedForEncodings = 0;
			knownRegions = (
				en,
			);
			mainGroup = DCA67DDF146B531D003411EE;
			productRefGroup = DCA67DEB146B531D003411EE /* Products */;
			projectDirPath = "";
			projectRoot = "";
			targets = (
				DCA67DE9146B531D003411EE /* NonArcTest */,
			);
		};
/* End PBXProject section */

/* Begin PBXResourcesBuildPhase section */
		DCA67DE8146B531D003411EE /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				DCA67DF9146B531D003411EE /* InfoPlist.strings in Resources */,
				DCA67DFF146B531D003411EE /* Credits.rtf in Resources */,
				DCA67E05146B531E003411EE /* MainMenu.xib in Resources */,
				DCA67E23146B534D003411EE /* README.txt in Resources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXResourcesBuildPhase section */

/* Begin PBXSourcesBuildPhase section */
		DCA67DE6146B531D003411EE /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				DCA67DFB146B531D003411EE /* main.m in Sources */,
				DCA67E02146B531E003411EE /* AppDelegate.m in Sources */,
				DCA67E1C146B534D003411EE /* DDAbstractDatabaseLogger.m in Sources */,
				DCA67E1D146B534D003411EE /* DDASLLogger.m in Sources */,
				DCA67E1E146B534D003411EE /* DDFileLogger.m in Sources */,
				DCA67E1F146B534D003411EE /* DDLog.m in Sources */,
				DCA67E20146B534D003411EE /* DDTTYLogger.m in Sources */,
				DCA67E21146B534D003411EE /* DDContextFilterLogFormatter.m in Sources */,
				DCA67E22146B534D003411EE /* DDDispatchQueueLogFormatter.m in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXSourcesBuildPhase section */

/* Begin PBXVariantGroup section */
		DCA67DF7146B531D003411EE /* InfoPlist.strings */ = {
			isa = PBXVariantGroup;
			children = (
				DCA67DF8146B531D003411EE /* en */,
			);
			name = InfoPlist.strings;
			sourceTree = "<group>";
		};
		DCA67DFD146B531D003411EE /* Credits.rtf */ = {
			isa = PBXVariantGroup;
			children = (
				DCA67DFE146B531D003411EE /* en */,
			);
			name = Credits.rtf;
			sourceTree = "<group>";
		};
		DCA67E03146B531E003411EE /* MainMenu.xib */ = {
			isa = PBXVariantGroup;
			children = (
				DCA67E04146B531E003411EE /* en */,
			);
			name = MainMenu.xib;
			sourceTree = "<group>";
		};
/* End PBXVariantGroup section */

/* Begin XCBuildConfiguration section */
		DCA67E06146B531E003411EE /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				CLANG_WARN_BOOL_CONVERSION = YES;
				CLANG_WARN_CONSTANT_CONVERSION = YES;
				CLANG_WARN_EMPTY_BODY = YES;
				CLANG_WARN_ENUM_CONVERSION = YES;
				CLANG_WARN_INT_CONVERSION = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				COPY_PHASE_STRIP = NO;
				GCC_C_LANGUAGE_STANDARD = gnu99;
				GCC_DYNAMIC_NO_PIC = NO;
				GCC_ENABLE_OBJC_EXCEPTIONS = YES;
				GCC_OPTIMIZATION_LEVEL = 0;
				GCC_PREPROCESSOR_DEFINITIONS = (
					"DEBUG=1",
					"$(inherited)",
				);
				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
				GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
				GCC_WARN_ABOUT_RETURN_TYPE = YES;
				GCC_WARN_UNDECLARED_SELECTOR = YES;
				GCC_WARN_UNINITIALIZED_AUTOS = YES;
				GCC_WARN_UNUSED_FUNCTION = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				MACOSX_DEPLOYMENT_TARGET = 10.7;
				ONLY_ACTIVE_ARCH = YES;
				SDKROOT = macosx;
			};
			name = Debug;
		};
		DCA67E07146B531E003411EE /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				CLANG_WARN_BOOL_CONVERSION = YES;
				CLANG_WARN_CONSTANT_CONVERSION = YES;
				CLANG_WARN_EMPTY_BODY = YES;
				CLANG_WARN_ENUM_CONVERSION = YES;
				CLANG_WARN_INT_CONVERSION = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				COPY_PHASE_STRIP = YES;
				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
				GCC_C_LANGUAGE_STANDARD = gnu99;
				GCC_ENABLE_OBJC_EXCEPTIONS = YES;
				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
				GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
				GCC_WARN_ABOUT_RETURN_TYPE = YES;
				GCC_WARN_UNDECLARED_SELECTOR = YES;
				GCC_WARN_UNINITIALIZED_AUTOS = YES;
				GCC_WARN_UNUSED_FUNCTION = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				MACOSX_DEPLOYMENT_TARGET = 10.7;
				SDKROOT = macosx;
			};
			name = Release;
		};
		DCA67E09146B531E003411EE /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				COMBINE_HIDPI_IMAGES = YES;
				GCC_PRECOMPILE_PREFIX_HEADER = YES;
				GCC_PREFIX_HEADER = "NonArcTest/NonArcTest-Prefix.pch";
				INFOPLIST_FILE = "NonArcTest/NonArcTest-Info.plist";
				PRODUCT_NAME = "$(TARGET_NAME)";
				WRAPPER_EXTENSION = app;
			};
			name = Debug;
		};
		DCA67E0A146B531E003411EE /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				COMBINE_HIDPI_IMAGES = YES;
				GCC_PRECOMPILE_PREFIX_HEADER = YES;
				GCC_PREFIX_HEADER = "NonArcTest/NonArcTest-Prefix.pch";
				INFOPLIST_FILE = "NonArcTest/NonArcTest-Info.plist";
				PRODUCT_NAME = "$(TARGET_NAME)";
				WRAPPER_EXTENSION = app;
			};
			name = Release;
		};
/* End XCBuildConfiguration section */

/* Begin XCConfigurationList section */
		DCA67DE4146B531D003411EE /* Build configuration list for PBXProject "NonArcTest" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				DCA67E06146B531E003411EE /* Debug */,
				DCA67E07146B531E003411EE /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		DCA67E08146B531E003411EE /* Build configuration list for PBXNativeTarget "NonArcTest" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				DCA67E09146B531E003411EE /* Debug */,
				DCA67E0A146B531E003411EE /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
/* End XCConfigurationList section */
	};
	rootObject = DCA67DE1146B531D003411EE /* Project object */;
}
