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

/* Begin PBXBuildFile section */
		DCE86BF213439AF6004FD85F /* libsqlite3.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = DCE86BF113439AF6004FD85F /* libsqlite3.dylib */; };
		DCE86BFD1343C080004FD85F /* DDAbstractDatabaseLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = DCE86BFC1343C080004FD85F /* DDAbstractDatabaseLogger.m */; };
		DCFF742713427FF600F53777 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DCFF742613427FF600F53777 /* Cocoa.framework */; };
		DCFF743113427FF600F53777 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = DCFF742F13427FF600F53777 /* InfoPlist.strings */; };
		DCFF743413427FF600F53777 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = DCFF743313427FF600F53777 /* main.m */; };
		DCFF743713427FF600F53777 /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = DCFF743513427FF600F53777 /* Credits.rtf */; };
		DCFF743A13427FF600F53777 /* SQLiteLoggerAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = DCFF743913427FF600F53777 /* SQLiteLoggerAppDelegate.m */; };
		DCFF743D13427FF600F53777 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = DCFF743B13427FF600F53777 /* MainMenu.xib */; };
		DCFF744E1342802100F53777 /* DDLog.m in Sources */ = {isa = PBXBuildFile; fileRef = DCFF74491342802100F53777 /* DDLog.m */; };
		DCFF744F1342802100F53777 /* DDTTYLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = DCFF744B1342802100F53777 /* DDTTYLogger.m */; };
		DCFF7454134280C500F53777 /* FMDBLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = DCFF7453134280C500F53777 /* FMDBLogger.m */; };
		DCFF745B134280CF00F53777 /* FMDatabase.m in Sources */ = {isa = PBXBuildFile; fileRef = DCFF7456134280CF00F53777 /* FMDatabase.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
		DCFF745C134280CF00F53777 /* FMDatabaseAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = DCFF7458134280CF00F53777 /* FMDatabaseAdditions.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
		DCFF745D134280CF00F53777 /* FMResultSet.m in Sources */ = {isa = PBXBuildFile; fileRef = DCFF745A134280CF00F53777 /* FMResultSet.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
/* End PBXBuildFile section */

/* Begin PBXFileReference section */
		DCE86BF113439AF6004FD85F /* libsqlite3.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libsqlite3.dylib; path = usr/lib/libsqlite3.dylib; sourceTree = SDKROOT; };
		DCE86BFB1343C080004FD85F /* DDAbstractDatabaseLogger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DDAbstractDatabaseLogger.h; path = ../../Lumberjack/DDAbstractDatabaseLogger.h; sourceTree = "<group>"; };
		DCE86BFC1343C080004FD85F /* DDAbstractDatabaseLogger.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DDAbstractDatabaseLogger.m; path = ../../Lumberjack/DDAbstractDatabaseLogger.m; sourceTree = "<group>"; };
		DCFF742213427FF600F53777 /* SQLiteLogger.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SQLiteLogger.app; sourceTree = BUILT_PRODUCTS_DIR; };
		DCFF742613427FF600F53777 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; };
		DCFF742913427FF600F53777 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; };
		DCFF742A13427FF600F53777 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = System/Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; };
		DCFF742B13427FF600F53777 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
		DCFF742E13427FF600F53777 /* SQLiteLogger-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "SQLiteLogger-Info.plist"; sourceTree = "<group>"; };
		DCFF743013427FF600F53777 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
		DCFF743213427FF600F53777 /* SQLiteLogger-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "SQLiteLogger-Prefix.pch"; sourceTree = "<group>"; };
		DCFF743313427FF600F53777 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
		DCFF743613427FF600F53777 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = en; path = en.lproj/Credits.rtf; sourceTree = "<group>"; };
		DCFF743813427FF600F53777 /* SQLiteLoggerAppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SQLiteLoggerAppDelegate.h; sourceTree = "<group>"; };
		DCFF743913427FF600F53777 /* SQLiteLoggerAppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SQLiteLoggerAppDelegate.m; sourceTree = "<group>"; };
		DCFF743C13427FF600F53777 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/MainMenu.xib; sourceTree = "<group>"; };
		DCFF74481342802100F53777 /* DDLog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DDLog.h; path = ../../Lumberjack/DDLog.h; sourceTree = "<group>"; };
		DCFF74491342802100F53777 /* DDLog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DDLog.m; path = ../../Lumberjack/DDLog.m; sourceTree = "<group>"; };
		DCFF744A1342802100F53777 /* DDTTYLogger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DDTTYLogger.h; path = ../../Lumberjack/DDTTYLogger.h; sourceTree = "<group>"; };
		DCFF744B1342802100F53777 /* DDTTYLogger.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DDTTYLogger.m; path = ../../Lumberjack/DDTTYLogger.m; sourceTree = "<group>"; };
		DCFF7452134280C500F53777 /* FMDBLogger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FMDBLogger.h; sourceTree = "<group>"; };
		DCFF7453134280C500F53777 /* FMDBLogger.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FMDBLogger.m; sourceTree = "<group>"; };
		DCFF7455134280CF00F53777 /* FMDatabase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FMDatabase.h; path = FMDB/FMDatabase.h; sourceTree = "<group>"; };
		DCFF7456134280CF00F53777 /* FMDatabase.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = FMDatabase.m; path = FMDB/FMDatabase.m; sourceTree = "<group>"; };
		DCFF7457134280CF00F53777 /* FMDatabaseAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FMDatabaseAdditions.h; path = FMDB/FMDatabaseAdditions.h; sourceTree = "<group>"; };
		DCFF7458134280CF00F53777 /* FMDatabaseAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = FMDatabaseAdditions.m; path = FMDB/FMDatabaseAdditions.m; sourceTree = "<group>"; };
		DCFF7459134280CF00F53777 /* FMResultSet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FMResultSet.h; path = FMDB/FMResultSet.h; sourceTree = "<group>"; };
		DCFF745A134280CF00F53777 /* FMResultSet.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = FMResultSet.m; path = FMDB/FMResultSet.m; sourceTree = "<group>"; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
		DCFF741F13427FF600F53777 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				DCE86BF213439AF6004FD85F /* libsqlite3.dylib in Frameworks */,
				DCFF742713427FF600F53777 /* Cocoa.framework in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
		DCFF741713427FF600F53777 = {
			isa = PBXGroup;
			children = (
				DCFF74431342801000F53777 /* Logging */,
				DCFF742C13427FF600F53777 /* SQLiteLogger */,
				DCFF742513427FF600F53777 /* Frameworks */,
				DCFF742313427FF600F53777 /* Products */,
			);
			sourceTree = "<group>";
		};
		DCFF742313427FF600F53777 /* Products */ = {
			isa = PBXGroup;
			children = (
				DCFF742213427FF600F53777 /* SQLiteLogger.app */,
			);
			name = Products;
			sourceTree = "<group>";
		};
		DCFF742513427FF600F53777 /* Frameworks */ = {
			isa = PBXGroup;
			children = (
				DCFF742613427FF600F53777 /* Cocoa.framework */,
				DCE86BF113439AF6004FD85F /* libsqlite3.dylib */,
				DCFF742813427FF600F53777 /* Other Frameworks */,
			);
			name = Frameworks;
			sourceTree = "<group>";
		};
		DCFF742813427FF600F53777 /* Other Frameworks */ = {
			isa = PBXGroup;
			children = (
				DCFF742913427FF600F53777 /* AppKit.framework */,
				DCFF742A13427FF600F53777 /* CoreData.framework */,
				DCFF742B13427FF600F53777 /* Foundation.framework */,
			);
			name = "Other Frameworks";
			sourceTree = "<group>";
		};
		DCFF742C13427FF600F53777 /* SQLiteLogger */ = {
			isa = PBXGroup;
			children = (
				DCFF743813427FF600F53777 /* SQLiteLoggerAppDelegate.h */,
				DCFF743913427FF600F53777 /* SQLiteLoggerAppDelegate.m */,
				DCFF743B13427FF600F53777 /* MainMenu.xib */,
				DCFF742D13427FF600F53777 /* Supporting Files */,
			);
			path = SQLiteLogger;
			sourceTree = "<group>";
		};
		DCFF742D13427FF600F53777 /* Supporting Files */ = {
			isa = PBXGroup;
			children = (
				DCFF742E13427FF600F53777 /* SQLiteLogger-Info.plist */,
				DCFF742F13427FF600F53777 /* InfoPlist.strings */,
				DCFF743213427FF600F53777 /* SQLiteLogger-Prefix.pch */,
				DCFF743313427FF600F53777 /* main.m */,
				DCFF743513427FF600F53777 /* Credits.rtf */,
			);
			name = "Supporting Files";
			sourceTree = "<group>";
		};
		DCFF74431342801000F53777 /* Logging */ = {
			isa = PBXGroup;
			children = (
				DCFF74481342802100F53777 /* DDLog.h */,
				DCFF74491342802100F53777 /* DDLog.m */,
				DCFF744A1342802100F53777 /* DDTTYLogger.h */,
				DCFF744B1342802100F53777 /* DDTTYLogger.m */,
				DCE86BFB1343C080004FD85F /* DDAbstractDatabaseLogger.h */,
				DCE86BFC1343C080004FD85F /* DDAbstractDatabaseLogger.m */,
				DCFF74501342802B00F53777 /* SQLite */,
			);
			name = Logging;
			sourceTree = "<group>";
		};
		DCFF74501342802B00F53777 /* SQLite */ = {
			isa = PBXGroup;
			children = (
				DCFF7451134280A700F53777 /* FMDB */,
				DCFF7452134280C500F53777 /* FMDBLogger.h */,
				DCFF7453134280C500F53777 /* FMDBLogger.m */,
			);
			name = SQLite;
			sourceTree = "<group>";
		};
		DCFF7451134280A700F53777 /* FMDB */ = {
			isa = PBXGroup;
			children = (
				DCFF7455134280CF00F53777 /* FMDatabase.h */,
				DCFF7456134280CF00F53777 /* FMDatabase.m */,
				DCFF7457134280CF00F53777 /* FMDatabaseAdditions.h */,
				DCFF7458134280CF00F53777 /* FMDatabaseAdditions.m */,
				DCFF7459134280CF00F53777 /* FMResultSet.h */,
				DCFF745A134280CF00F53777 /* FMResultSet.m */,
			);
			name = FMDB;
			sourceTree = "<group>";
		};
/* End PBXGroup section */

/* Begin PBXNativeTarget section */
		DCFF742113427FF600F53777 /* SQLiteLogger */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = DCFF744013427FF600F53777 /* Build configuration list for PBXNativeTarget "SQLiteLogger" */;
			buildPhases = (
				DCFF741E13427FF600F53777 /* Sources */,
				DCFF741F13427FF600F53777 /* Frameworks */,
				DCFF742013427FF600F53777 /* Resources */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = SQLiteLogger;
			productName = SQLiteLogger;
			productReference = DCFF742213427FF600F53777 /* SQLiteLogger.app */;
			productType = "com.apple.product-type.application";
		};
/* End PBXNativeTarget section */

/* Begin PBXProject section */
		DCFF741913427FF600F53777 /* Project object */ = {
			isa = PBXProject;
			attributes = {
				LastUpgradeCheck = 0460;
				ORGANIZATIONNAME = Voalte;
			};
			buildConfigurationList = DCFF741C13427FF600F53777 /* Build configuration list for PBXProject "SQLiteLogger" */;
			compatibilityVersion = "Xcode 3.2";
			developmentRegion = English;
			hasScannedForEncodings = 0;
			knownRegions = (
				en,
			);
			mainGroup = DCFF741713427FF600F53777;
			productRefGroup = DCFF742313427FF600F53777 /* Products */;
			projectDirPath = "";
			projectRoot = "";
			targets = (
				DCFF742113427FF600F53777 /* SQLiteLogger */,
			);
		};
/* End PBXProject section */

/* Begin PBXResourcesBuildPhase section */
		DCFF742013427FF600F53777 /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				DCFF743113427FF600F53777 /* InfoPlist.strings in Resources */,
				DCFF743713427FF600F53777 /* Credits.rtf in Resources */,
				DCFF743D13427FF600F53777 /* MainMenu.xib in Resources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXResourcesBuildPhase section */

/* Begin PBXSourcesBuildPhase section */
		DCFF741E13427FF600F53777 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				DCFF743413427FF600F53777 /* main.m in Sources */,
				DCFF743A13427FF600F53777 /* SQLiteLoggerAppDelegate.m in Sources */,
				DCFF744E1342802100F53777 /* DDLog.m in Sources */,
				DCFF744F1342802100F53777 /* DDTTYLogger.m in Sources */,
				DCFF7454134280C500F53777 /* FMDBLogger.m in Sources */,
				DCFF745B134280CF00F53777 /* FMDatabase.m in Sources */,
				DCFF745C134280CF00F53777 /* FMDatabaseAdditions.m in Sources */,
				DCFF745D134280CF00F53777 /* FMResultSet.m in Sources */,
				DCE86BFD1343C080004FD85F /* DDAbstractDatabaseLogger.m in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXSourcesBuildPhase section */

/* Begin PBXVariantGroup section */
		DCFF742F13427FF600F53777 /* InfoPlist.strings */ = {
			isa = PBXVariantGroup;
			children = (
				DCFF743013427FF600F53777 /* en */,
			);
			name = InfoPlist.strings;
			sourceTree = "<group>";
		};
		DCFF743513427FF600F53777 /* Credits.rtf */ = {
			isa = PBXVariantGroup;
			children = (
				DCFF743613427FF600F53777 /* en */,
			);
			name = Credits.rtf;
			sourceTree = "<group>";
		};
		DCFF743B13427FF600F53777 /* MainMenu.xib */ = {
			isa = PBXVariantGroup;
			children = (
				DCFF743C13427FF600F53777 /* en */,
			);
			name = MainMenu.xib;
			sourceTree = "<group>";
		};
/* End PBXVariantGroup section */

/* Begin XCBuildConfiguration section */
		DCFF743E13427FF600F53777 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
				CLANG_WARN_CONSTANT_CONVERSION = YES;
				CLANG_WARN_ENUM_CONVERSION = YES;
				CLANG_WARN_INT_CONVERSION = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				GCC_C_LANGUAGE_STANDARD = gnu99;
				GCC_OPTIMIZATION_LEVEL = 0;
				GCC_PREPROCESSOR_DEFINITIONS = DEBUG;
				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_RETURN_TYPE = YES;
				GCC_WARN_UNINITIALIZED_AUTOS = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				MACOSX_DEPLOYMENT_TARGET = 10.6;
				ONLY_ACTIVE_ARCH = YES;
				SDKROOT = macosx;
			};
			name = Debug;
		};
		DCFF743F13427FF600F53777 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
				CLANG_WARN_CONSTANT_CONVERSION = YES;
				CLANG_WARN_ENUM_CONVERSION = YES;
				CLANG_WARN_INT_CONVERSION = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				GCC_C_LANGUAGE_STANDARD = gnu99;
				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
				GCC_WARN_ABOUT_RETURN_TYPE = YES;
				GCC_WARN_UNINITIALIZED_AUTOS = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				MACOSX_DEPLOYMENT_TARGET = 10.6;
				SDKROOT = macosx;
			};
			name = Release;
		};
		DCFF744113427FF600F53777 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				CLANG_ENABLE_OBJC_ARC = YES;
				COPY_PHASE_STRIP = NO;
				GCC_DYNAMIC_NO_PIC = NO;
				GCC_ENABLE_OBJC_EXCEPTIONS = YES;
				GCC_PRECOMPILE_PREFIX_HEADER = YES;
				GCC_PREFIX_HEADER = "SQLiteLogger/SQLiteLogger-Prefix.pch";
				INFOPLIST_FILE = "SQLiteLogger/SQLiteLogger-Info.plist";
				PRODUCT_NAME = "$(TARGET_NAME)";
				WRAPPER_EXTENSION = app;
			};
			name = Debug;
		};
		DCFF744213427FF600F53777 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				CLANG_ENABLE_OBJC_ARC = YES;
				COPY_PHASE_STRIP = YES;
				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
				GCC_ENABLE_OBJC_EXCEPTIONS = YES;
				GCC_PRECOMPILE_PREFIX_HEADER = YES;
				GCC_PREFIX_HEADER = "SQLiteLogger/SQLiteLogger-Prefix.pch";
				INFOPLIST_FILE = "SQLiteLogger/SQLiteLogger-Info.plist";
				PRODUCT_NAME = "$(TARGET_NAME)";
				WRAPPER_EXTENSION = app;
			};
			name = Release;
		};
/* End XCBuildConfiguration section */

/* Begin XCConfigurationList section */
		DCFF741C13427FF600F53777 /* Build configuration list for PBXProject "SQLiteLogger" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				DCFF743E13427FF600F53777 /* Debug */,
				DCFF743F13427FF600F53777 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		DCFF744013427FF600F53777 /* Build configuration list for PBXNativeTarget "SQLiteLogger" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				DCFF744113427FF600F53777 /* Debug */,
				DCFF744213427FF600F53777 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
/* End XCConfigurationList section */
	};
	rootObject = DCFF741913427FF600F53777 /* Project object */;
}
