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

/* Begin PBXBuildFile section */
		264D5D581293835600ED4C01 /* DNBArch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 264D5D571293835600ED4C01 /* DNBArch.cpp */; };
		2660D9CE1192280900958FBD /* StringExtractor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2660D9CC1192280900958FBD /* StringExtractor.cpp */; };
		26CE05A7115C360D0022F371 /* DNBError.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26C637DE0C71334A0024798E /* DNBError.cpp */; };
		26CE05A8115C36170022F371 /* DNBThreadResumeActions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 260E7331114BFFE600D1DFB3 /* DNBThreadResumeActions.cpp */; };
		26CE05A9115C36250022F371 /* debugserver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26A02918114AB9240029C479 /* debugserver.cpp */; };
		26CE05AA115C36260022F371 /* RNBContext.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26A68F7E0D104EC800665A9E /* RNBContext.cpp */; };
		26CE05AB115C36270022F371 /* RNBServices.cpp in Sources */ = {isa = PBXBuildFile; fileRef = EF8878A00D9C797C001831DA /* RNBServices.cpp */; };
		26CE05AC115C36280022F371 /* RNBSocket.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26A68FB00D1054DA00665A9E /* RNBSocket.cpp */; };
		26CE05AD115C36280022F371 /* RNBRemote.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26A68FD60D10574500665A9E /* RNBRemote.cpp */; };
		26CE05AE115C36320022F371 /* dbgnub-mig.defs in Sources */ = {isa = PBXBuildFile; fileRef = 26C637E80C71334A0024798E /* dbgnub-mig.defs */; settings = {ATTRIBUTES = (Client, Server, ); }; };
		26CE05B0115C36340022F371 /* MachException.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26C637EE0C71334A0024798E /* MachException.cpp */; };
		26CE05B1115C36350022F371 /* MachProcess.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26C637F00C71334A0024798E /* MachProcess.cpp */; };
		26CE05B2115C36360022F371 /* MachThread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26C637F20C71334A0024798E /* MachThread.cpp */; };
		26CE05B3115C36370022F371 /* MachThreadList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26C637F40C71334A0024798E /* MachThreadList.cpp */; };
		26CE05B4115C36380022F371 /* MachVMMemory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26C637F60C71334A0024798E /* MachVMMemory.cpp */; };
		26CE05B5115C36380022F371 /* MachVMRegion.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26C637F80C71334A0024798E /* MachVMRegion.cpp */; };
		26CE05B6115C36390022F371 /* MachTask.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26B67DE10EE9BC30006C8BC0 /* MachTask.cpp */; };
		26CE05B7115C363B0022F371 /* DNB.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26C637D60C71334A0024798E /* DNB.cpp */; };
		26CE05B8115C363C0022F371 /* DNBBreakpoint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26C637D90C71334A0024798E /* DNBBreakpoint.cpp */; };
		26CE05B9115C363D0022F371 /* DNBDataRef.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26C637DB0C71334A0024798E /* DNBDataRef.cpp */; };
		26CE05BA115C363E0022F371 /* DNBLog.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26C637E00C71334A0024798E /* DNBLog.cpp */; };
		26CE05BB115C363F0022F371 /* DNBRegisterInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26C637E20C71334A0024798E /* DNBRegisterInfo.cpp */; };
		26CE05BC115C36420022F371 /* PThreadEvent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26C637FE0C71334A0024798E /* PThreadEvent.cpp */; };
		26CE05BD115C36430022F371 /* PThreadMutex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2672DBEE0EEF446700E92059 /* PThreadMutex.cpp */; };
		26CE05BE115C36440022F371 /* SysSignal.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26C638010C71334A0024798E /* SysSignal.cpp */; };
		26CE05BF115C364D0022F371 /* DNBArchImplX86_64.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26CF99A21142EB7400011AAB /* DNBArchImplX86_64.cpp */; };
		26CE05C0115C364F0022F371 /* DNBArchImplI386.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26C637EA0C71334A0024798E /* DNBArchImplI386.cpp */; };
		26CE05C1115C36510022F371 /* DNBArchImpl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2675D4220CCEB705000F49AF /* DNBArchImpl.cpp */; };
		26CE05C2115C36550022F371 /* DNBArchImpl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26C637FB0C71334A0024798E /* DNBArchImpl.cpp */; };
		26CE05C3115C36580022F371 /* CFString.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2695DD9B0D3EC160007E4CA2 /* CFString.cpp */; };
		26CE05C4115C36590022F371 /* CFData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2695DE2E0D3EE55B007E4CA2 /* CFData.cpp */; };
		26CE05C5115C36590022F371 /* CFBundle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2695DD910D3EBFF6007E4CA2 /* CFBundle.cpp */; };
		26CE05CF115C36F70022F371 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26ACA3340D3E956300A2120B /* CoreFoundation.framework */; };
		26CE05F1115C387C0022F371 /* PseudoTerminal.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AF67ABFF0D34604D0022D128 /* PseudoTerminal.cpp */; };
		4971AE7213D10F4F00649E37 /* HasAVX.s in Sources */ = {isa = PBXBuildFile; fileRef = 4971AE7113D10F4F00649E37 /* HasAVX.s */; };
/* End PBXBuildFile section */

/* Begin PBXFileReference section */
		260828DE0CBAF7F400F95054 /* DNBRuntimeAction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DNBRuntimeAction.h; sourceTree = "<group>"; };
		260E7331114BFFE600D1DFB3 /* DNBThreadResumeActions.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DNBThreadResumeActions.cpp; sourceTree = "<group>"; };
		260E7332114BFFE600D1DFB3 /* DNBThreadResumeActions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DNBThreadResumeActions.h; sourceTree = "<group>"; };
		260FC7320E5B290400043FC9 /* debugnub-exports */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "debugnub-exports"; sourceTree = SOURCE_ROOT; };
		26203D1C1641EFB200A662F7 /* com.apple.debugserver.applist.internal.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = com.apple.debugserver.applist.internal.plist; sourceTree = "<group>"; };
		26203D1D1641EFB200A662F7 /* com.apple.debugserver.internal.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = com.apple.debugserver.internal.plist; sourceTree = "<group>"; };
		26242C390DDBD33C0054A4CC /* debugserver-entitlements.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "debugserver-entitlements.plist"; sourceTree = "<group>"; };
		264D5D571293835600ED4C01 /* DNBArch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DNBArch.cpp; sourceTree = "<group>"; };
		26593A060D4931CC001C9FE3 /* ChangeLog */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = ChangeLog; sourceTree = "<group>"; };
		2660D9CC1192280900958FBD /* StringExtractor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = StringExtractor.cpp; path = ../../source/Utility/StringExtractor.cpp; sourceTree = SOURCE_ROOT; };
		2660D9CD1192280900958FBD /* StringExtractor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = StringExtractor.h; path = ../../source/Utility/StringExtractor.h; sourceTree = SOURCE_ROOT; };
		2672DBEE0EEF446700E92059 /* PThreadMutex.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PThreadMutex.cpp; sourceTree = "<group>"; };
		2675D4220CCEB705000F49AF /* DNBArchImpl.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = DNBArchImpl.cpp; path = arm/DNBArchImpl.cpp; sourceTree = "<group>"; };
		2675D4230CCEB705000F49AF /* DNBArchImpl.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = DNBArchImpl.h; path = arm/DNBArchImpl.h; sourceTree = "<group>"; };
		2695DD910D3EBFF6007E4CA2 /* CFBundle.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CFBundle.cpp; sourceTree = "<group>"; };
		2695DD920D3EBFF6007E4CA2 /* CFBundle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CFBundle.h; sourceTree = "<group>"; };
		2695DD9A0D3EC160007E4CA2 /* CFString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CFString.h; sourceTree = "<group>"; };
		2695DD9B0D3EC160007E4CA2 /* CFString.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CFString.cpp; sourceTree = "<group>"; };
		2695DE2D0D3EE55B007E4CA2 /* CFData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CFData.h; sourceTree = "<group>"; };
		2695DE2E0D3EE55B007E4CA2 /* CFData.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CFData.cpp; sourceTree = "<group>"; };
		269E8DF8164B2ED200AD65F6 /* com.apple.debugserver.posix.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = com.apple.debugserver.posix.plist; sourceTree = "<group>"; };
		26A02918114AB9240029C479 /* debugserver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = debugserver.cpp; sourceTree = "<group>"; };
		26A4BAED0D498B7D00A9BEAB /* com.apple.debugserver.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = com.apple.debugserver.plist; sourceTree = "<group>"; };
		26A68F7D0D104EC800665A9E /* RNBContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RNBContext.h; sourceTree = "<group>"; };
		26A68F7E0D104EC800665A9E /* RNBContext.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RNBContext.cpp; sourceTree = "<group>"; };
		26A68FAF0D1054DA00665A9E /* RNBSocket.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RNBSocket.h; sourceTree = "<group>"; };
		26A68FB00D1054DA00665A9E /* RNBSocket.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RNBSocket.cpp; sourceTree = "<group>"; };
		26A68FD50D10574500665A9E /* RNBRemote.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RNBRemote.h; sourceTree = "<group>"; };
		26A68FD60D10574500665A9E /* RNBRemote.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RNBRemote.cpp; sourceTree = "<group>"; };
		26A8FE1E0D11A77B00203048 /* DNBTimer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DNBTimer.h; sourceTree = "<group>"; };
		26ACA3340D3E956300A2120B /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = System/Library/Frameworks/CoreFoundation.framework; sourceTree = SDKROOT; };
		26B67DE00EE9BC30006C8BC0 /* MachTask.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MachTask.h; sourceTree = "<group>"; };
		26B67DE10EE9BC30006C8BC0 /* MachTask.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MachTask.cpp; sourceTree = "<group>"; };
		26C636AD0C71303A0024798E /* dbgnub-config.pl */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.script.perl; path = "dbgnub-config.pl"; sourceTree = "<group>"; };
		26C637D60C71334A0024798E /* DNB.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = DNB.cpp; sourceTree = "<group>"; };
		26C637D70C71334A0024798E /* DNB.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DNB.h; sourceTree = "<group>"; };
		26C637D80C71334A0024798E /* DNBArch.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DNBArch.h; sourceTree = "<group>"; };
		26C637D90C71334A0024798E /* DNBBreakpoint.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = DNBBreakpoint.cpp; sourceTree = "<group>"; };
		26C637DA0C71334A0024798E /* DNBBreakpoint.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DNBBreakpoint.h; sourceTree = "<group>"; };
		26C637DB0C71334A0024798E /* DNBDataRef.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = DNBDataRef.cpp; sourceTree = "<group>"; };
		26C637DC0C71334A0024798E /* DNBDataRef.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DNBDataRef.h; sourceTree = "<group>"; };
		26C637DD0C71334A0024798E /* DNBDefs.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = DNBDefs.h; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; };
		26C637DE0C71334A0024798E /* DNBError.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = DNBError.cpp; sourceTree = "<group>"; };
		26C637DF0C71334A0024798E /* DNBError.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DNBError.h; sourceTree = "<group>"; };
		26C637E00C71334A0024798E /* DNBLog.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = DNBLog.cpp; sourceTree = "<group>"; };
		26C637E10C71334A0024798E /* DNBLog.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DNBLog.h; sourceTree = "<group>"; };
		26C637E20C71334A0024798E /* DNBRegisterInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = DNBRegisterInfo.cpp; sourceTree = "<group>"; };
		26C637E30C71334A0024798E /* DNBRegisterInfo.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DNBRegisterInfo.h; sourceTree = "<group>"; };
		26C637E70C71334A0024798E /* CFUtils.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CFUtils.h; sourceTree = "<group>"; };
		26C637E80C71334A0024798E /* dbgnub-mig.defs */ = {isa = PBXFileReference; explicitFileType = sourcecode.mig; fileEncoding = 30; path = "dbgnub-mig.defs"; sourceTree = "<group>"; };
		26C637EA0C71334A0024798E /* DNBArchImplI386.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = DNBArchImplI386.cpp; sourceTree = "<group>"; };
		26C637EB0C71334A0024798E /* DNBArchImplI386.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DNBArchImplI386.h; sourceTree = "<group>"; };
		26C637EE0C71334A0024798E /* MachException.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = MachException.cpp; sourceTree = "<group>"; };
		26C637EF0C71334A0024798E /* MachException.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = MachException.h; sourceTree = "<group>"; };
		26C637F00C71334A0024798E /* MachProcess.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = MachProcess.cpp; sourceTree = "<group>"; };
		26C637F10C71334A0024798E /* MachProcess.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = MachProcess.h; sourceTree = "<group>"; };
		26C637F20C71334A0024798E /* MachThread.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = MachThread.cpp; sourceTree = "<group>"; };
		26C637F30C71334A0024798E /* MachThread.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = MachThread.h; sourceTree = "<group>"; };
		26C637F40C71334A0024798E /* MachThreadList.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = MachThreadList.cpp; sourceTree = "<group>"; };
		26C637F50C71334A0024798E /* MachThreadList.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = MachThreadList.h; sourceTree = "<group>"; };
		26C637F60C71334A0024798E /* MachVMMemory.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = MachVMMemory.cpp; sourceTree = "<group>"; };
		26C637F70C71334A0024798E /* MachVMMemory.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = MachVMMemory.h; sourceTree = "<group>"; };
		26C637F80C71334A0024798E /* MachVMRegion.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = MachVMRegion.cpp; sourceTree = "<group>"; };
		26C637F90C71334A0024798E /* MachVMRegion.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = MachVMRegion.h; sourceTree = "<group>"; };
		26C637FB0C71334A0024798E /* DNBArchImpl.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = DNBArchImpl.cpp; sourceTree = "<group>"; };
		26C637FC0C71334A0024798E /* DNBArchImpl.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DNBArchImpl.h; sourceTree = "<group>"; };
		26C637FD0C71334A0024798E /* PThreadCondition.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = PThreadCondition.h; sourceTree = "<group>"; };
		26C637FE0C71334A0024798E /* PThreadEvent.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = PThreadEvent.cpp; sourceTree = "<group>"; };
		26C637FF0C71334A0024798E /* PThreadEvent.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = PThreadEvent.h; sourceTree = "<group>"; };
		26C638000C71334A0024798E /* PThreadMutex.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = PThreadMutex.h; sourceTree = "<group>"; };
		26C638010C71334A0024798E /* SysSignal.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SysSignal.cpp; sourceTree = "<group>"; };
		26C638020C71334A0024798E /* SysSignal.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SysSignal.h; sourceTree = "<group>"; };
		26C638050C71334A0024798E /* TTYState.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = TTYState.cpp; sourceTree = "<group>"; };
		26C638060C71334A0024798E /* TTYState.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = TTYState.h; sourceTree = "<group>"; };
		26CE0594115C31C20022F371 /* debugserver */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = debugserver; sourceTree = BUILT_PRODUCTS_DIR; };
		26CF99A21142EB7400011AAB /* DNBArchImplX86_64.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DNBArchImplX86_64.cpp; sourceTree = "<group>"; };
		26CF99A31142EB7400011AAB /* DNBArchImplX86_64.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DNBArchImplX86_64.h; sourceTree = "<group>"; };
		26E6B9DA0D1329010037ECDD /* RNBDefs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RNBDefs.h; sourceTree = "<group>"; };
		4971AE7013D10F4F00649E37 /* HasAVX.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HasAVX.h; sourceTree = "<group>"; };
		4971AE7113D10F4F00649E37 /* HasAVX.s */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = HasAVX.s; sourceTree = "<group>"; };
		49F530111331519C008956F6 /* MachRegisterStatesI386.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MachRegisterStatesI386.h; sourceTree = "<group>"; };
		49F5301213316D7F008956F6 /* MachRegisterStatesX86_64.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MachRegisterStatesX86_64.h; sourceTree = "<group>"; };
		9457ECF61419864100DFE7D8 /* stack_logging.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = stack_logging.h; sourceTree = "<group>"; };
		AF5B2E72150EB6020075D7FD /* com.apple.debugserver-secure.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "com.apple.debugserver-secure.plist"; sourceTree = "<group>"; };
		AF67ABFF0D34604D0022D128 /* PseudoTerminal.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PseudoTerminal.cpp; sourceTree = "<group>"; };
		AF67AC000D34604D0022D128 /* PseudoTerminal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PseudoTerminal.h; sourceTree = "<group>"; };
		EF88788B0D9C7558001831DA /* com.apple.debugserver.applist.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = com.apple.debugserver.applist.plist; sourceTree = "<group>"; };
		EF88789F0D9C797C001831DA /* RNBServices.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RNBServices.h; sourceTree = "<group>"; };
		EF8878A00D9C797C001831DA /* RNBServices.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RNBServices.cpp; sourceTree = "<group>"; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
		26CE0592115C31C20022F371 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				26CE05CF115C36F70022F371 /* CoreFoundation.framework in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
		08FB7794FE84155DC02AAC07 /* dbgnub */ = {
			isa = PBXGroup;
			children = (
				26ACA3330D3E94F200A2120B /* Framework */,
				26C637D50C71334A0024798E /* source */,
				26C636AC0C71303A0024798E /* scripts */,
				1AB674ADFE9D54B511CA2CBB /* Products */,
			);
			name = dbgnub;
			sourceTree = "<group>";
		};
		1AB674ADFE9D54B511CA2CBB /* Products */ = {
			isa = PBXGroup;
			children = (
				26CE0594115C31C20022F371 /* debugserver */,
			);
			name = Products;
			sourceTree = "<group>";
		};
		2675D41C0CCEB6CF000F49AF /* arm */ = {
			isa = PBXGroup;
			children = (
				2675D4220CCEB705000F49AF /* DNBArchImpl.cpp */,
				2675D4230CCEB705000F49AF /* DNBArchImpl.h */,
			);
			name = arm;
			sourceTree = "<group>";
		};
		26A028FE114AB6A60029C479 /* Resources */ = {
			isa = PBXGroup;
			children = (
				269E8DF8164B2ED200AD65F6 /* com.apple.debugserver.posix.plist */,
				26203D1C1641EFB200A662F7 /* com.apple.debugserver.applist.internal.plist */,
				26203D1D1641EFB200A662F7 /* com.apple.debugserver.internal.plist */,
				260FC7320E5B290400043FC9 /* debugnub-exports */,
				26242C390DDBD33C0054A4CC /* debugserver-entitlements.plist */,
				26A4BAED0D498B7D00A9BEAB /* com.apple.debugserver.plist */,
				AF5B2E72150EB6020075D7FD /* com.apple.debugserver-secure.plist */,
				EF88788B0D9C7558001831DA /* com.apple.debugserver.applist.plist */,
			);
			name = Resources;
			sourceTree = "<group>";
		};
		26A028FF114AB6BB0029C479 /* libdebugnub */ = {
			isa = PBXGroup;
			children = (
				26C637E60C71334A0024798E /* MacOSX */,
				260828DE0CBAF7F400F95054 /* DNBRuntimeAction.h */,
				26A8FE1E0D11A77B00203048 /* DNBTimer.h */,
				26C637D70C71334A0024798E /* DNB.h */,
				26C637D60C71334A0024798E /* DNB.cpp */,
				26C637D80C71334A0024798E /* DNBArch.h */,
				264D5D571293835600ED4C01 /* DNBArch.cpp */,
				26C637DA0C71334A0024798E /* DNBBreakpoint.h */,
				26C637D90C71334A0024798E /* DNBBreakpoint.cpp */,
				26C637DC0C71334A0024798E /* DNBDataRef.h */,
				26C637DB0C71334A0024798E /* DNBDataRef.cpp */,
				26C637DD0C71334A0024798E /* DNBDefs.h */,
				26C637DF0C71334A0024798E /* DNBError.h */,
				26C637DE0C71334A0024798E /* DNBError.cpp */,
				26C637E10C71334A0024798E /* DNBLog.h */,
				26C637E00C71334A0024798E /* DNBLog.cpp */,
				26C637E30C71334A0024798E /* DNBRegisterInfo.h */,
				26C637E20C71334A0024798E /* DNBRegisterInfo.cpp */,
				260E7332114BFFE600D1DFB3 /* DNBThreadResumeActions.h */,
				260E7331114BFFE600D1DFB3 /* DNBThreadResumeActions.cpp */,
				AF67AC000D34604D0022D128 /* PseudoTerminal.h */,
				AF67ABFF0D34604D0022D128 /* PseudoTerminal.cpp */,
				26C637FD0C71334A0024798E /* PThreadCondition.h */,
				26C637FF0C71334A0024798E /* PThreadEvent.h */,
				26C637FE0C71334A0024798E /* PThreadEvent.cpp */,
				26C638000C71334A0024798E /* PThreadMutex.h */,
				2672DBEE0EEF446700E92059 /* PThreadMutex.cpp */,
				26C638020C71334A0024798E /* SysSignal.h */,
				26C638010C71334A0024798E /* SysSignal.cpp */,
				26C638060C71334A0024798E /* TTYState.h */,
				26C638050C71334A0024798E /* TTYState.cpp */,
			);
			name = libdebugnub;
			sourceTree = "<group>";
		};
		26ACA3330D3E94F200A2120B /* Framework */ = {
			isa = PBXGroup;
			children = (
				26ACA3340D3E956300A2120B /* CoreFoundation.framework */,
			);
			name = Framework;
			sourceTree = "<group>";
		};
		26C636AC0C71303A0024798E /* scripts */ = {
			isa = PBXGroup;
			children = (
				26C636AD0C71303A0024798E /* dbgnub-config.pl */,
			);
			path = scripts;
			sourceTree = "<group>";
		};
		26C637D50C71334A0024798E /* source */ = {
			isa = PBXGroup;
			children = (
				26593A060D4931CC001C9FE3 /* ChangeLog */,
				26DEFD6C0D104C23008A5A07 /* debugserver */,
				26A028FF114AB6BB0029C479 /* libdebugnub */,
			);
			indentWidth = 4;
			path = source;
			sourceTree = "<group>";
			tabWidth = 4;
			usesTabs = 0;
		};
		26C637E60C71334A0024798E /* MacOSX */ = {
			isa = PBXGroup;
			children = (
				2695DD920D3EBFF6007E4CA2 /* CFBundle.h */,
				2695DD910D3EBFF6007E4CA2 /* CFBundle.cpp */,
				2695DE2D0D3EE55B007E4CA2 /* CFData.h */,
				2695DE2E0D3EE55B007E4CA2 /* CFData.cpp */,
				2695DD9A0D3EC160007E4CA2 /* CFString.h */,
				2695DD9B0D3EC160007E4CA2 /* CFString.cpp */,
				26C637E70C71334A0024798E /* CFUtils.h */,
				2675D41C0CCEB6CF000F49AF /* arm */,
				26C637E90C71334A0024798E /* i386 */,
				26C637FA0C71334A0024798E /* ppc */,
				26CF99A11142EB7400011AAB /* x86_64 */,
				4971AE7013D10F4F00649E37 /* HasAVX.h */,
				4971AE7113D10F4F00649E37 /* HasAVX.s */,
				26C637E80C71334A0024798E /* dbgnub-mig.defs */,
				26C637EF0C71334A0024798E /* MachException.h */,
				26C637EE0C71334A0024798E /* MachException.cpp */,
				26C637F10C71334A0024798E /* MachProcess.h */,
				26C637F00C71334A0024798E /* MachProcess.cpp */,
				26C637F30C71334A0024798E /* MachThread.h */,
				26C637F20C71334A0024798E /* MachThread.cpp */,
				26C637F50C71334A0024798E /* MachThreadList.h */,
				26C637F40C71334A0024798E /* MachThreadList.cpp */,
				26C637F70C71334A0024798E /* MachVMMemory.h */,
				26C637F60C71334A0024798E /* MachVMMemory.cpp */,
				26C637F90C71334A0024798E /* MachVMRegion.h */,
				26C637F80C71334A0024798E /* MachVMRegion.cpp */,
				26B67DE00EE9BC30006C8BC0 /* MachTask.h */,
				26B67DE10EE9BC30006C8BC0 /* MachTask.cpp */,
				9457ECF61419864100DFE7D8 /* stack_logging.h */,
			);
			path = MacOSX;
			sourceTree = "<group>";
		};
		26C637E90C71334A0024798E /* i386 */ = {
			isa = PBXGroup;
			children = (
				26C637EA0C71334A0024798E /* DNBArchImplI386.cpp */,
				26C637EB0C71334A0024798E /* DNBArchImplI386.h */,
				49F530111331519C008956F6 /* MachRegisterStatesI386.h */,
			);
			path = i386;
			sourceTree = "<group>";
		};
		26C637FA0C71334A0024798E /* ppc */ = {
			isa = PBXGroup;
			children = (
				26C637FB0C71334A0024798E /* DNBArchImpl.cpp */,
				26C637FC0C71334A0024798E /* DNBArchImpl.h */,
			);
			path = ppc;
			sourceTree = "<group>";
		};
		26CF99A11142EB7400011AAB /* x86_64 */ = {
			isa = PBXGroup;
			children = (
				26CF99A21142EB7400011AAB /* DNBArchImplX86_64.cpp */,
				26CF99A31142EB7400011AAB /* DNBArchImplX86_64.h */,
				49F5301213316D7F008956F6 /* MachRegisterStatesX86_64.h */,
			);
			path = x86_64;
			sourceTree = "<group>";
		};
		26DEFD6C0D104C23008A5A07 /* debugserver */ = {
			isa = PBXGroup;
			children = (
				26A02918114AB9240029C479 /* debugserver.cpp */,
				26A028FE114AB6A60029C479 /* Resources */,
				26A68F7D0D104EC800665A9E /* RNBContext.h */,
				26A68F7E0D104EC800665A9E /* RNBContext.cpp */,
				EF88789F0D9C797C001831DA /* RNBServices.h */,
				EF8878A00D9C797C001831DA /* RNBServices.cpp */,
				26A68FAF0D1054DA00665A9E /* RNBSocket.h */,
				26A68FB00D1054DA00665A9E /* RNBSocket.cpp */,
				26A68FD50D10574500665A9E /* RNBRemote.h */,
				26A68FD60D10574500665A9E /* RNBRemote.cpp */,
				26E6B9DA0D1329010037ECDD /* RNBDefs.h */,
				2660D9CD1192280900958FBD /* StringExtractor.h */,
				2660D9CC1192280900958FBD /* StringExtractor.cpp */,
			);
			name = debugserver;
			sourceTree = "<group>";
			usesTabs = 0;
		};
/* End PBXGroup section */

/* Begin PBXNativeTarget section */
		26CE0593115C31C20022F371 /* debugserver */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 26CE05A4115C31ED0022F371 /* Build configuration list for PBXNativeTarget "debugserver" */;
			buildPhases = (
				26CE05C7115C36870022F371 /* ShellScript */,
				26CE0591115C31C20022F371 /* Sources */,
				26CE0592115C31C20022F371 /* Frameworks */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = debugserver;
			productName = "lldb-debugserver";
			productReference = 26CE0594115C31C20022F371 /* debugserver */;
			productType = "com.apple.product-type.tool";
		};
/* End PBXNativeTarget section */

/* Begin PBXProject section */
		08FB7793FE84155DC02AAC07 /* Project object */ = {
			isa = PBXProject;
			attributes = {
				LastUpgradeCheck = 0500;
			};
			buildConfigurationList = 1DEB914E08733D8E0010E9CD /* Build configuration list for PBXProject "debugserver" */;
			compatibilityVersion = "Xcode 3.2";
			developmentRegion = English;
			hasScannedForEncodings = 1;
			knownRegions = (
				English,
				Japanese,
				French,
				German,
			);
			mainGroup = 08FB7794FE84155DC02AAC07 /* dbgnub */;
			projectDirPath = "";
			projectRoot = "";
			targets = (
				26CE0593115C31C20022F371 /* debugserver */,
			);
		};
/* End PBXProject section */

/* Begin PBXShellScriptBuildPhase section */
		26CE05C7115C36870022F371 /* ShellScript */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputPaths = (
				"$(SRCROOT)/scripts/dbgnub-config.pl",
			);
			outputPaths = (
				"$(DERIVED_FILE_DIR)/DNBConfig.h",
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = "perl -x scripts/dbgnub-config.pl\n";
		};
/* End PBXShellScriptBuildPhase section */

/* Begin PBXSourcesBuildPhase section */
		26CE0591115C31C20022F371 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				26CE05A7115C360D0022F371 /* DNBError.cpp in Sources */,
				26CE05A8115C36170022F371 /* DNBThreadResumeActions.cpp in Sources */,
				26CE05A9115C36250022F371 /* debugserver.cpp in Sources */,
				26CE05AA115C36260022F371 /* RNBContext.cpp in Sources */,
				26CE05AB115C36270022F371 /* RNBServices.cpp in Sources */,
				26CE05AC115C36280022F371 /* RNBSocket.cpp in Sources */,
				26CE05AD115C36280022F371 /* RNBRemote.cpp in Sources */,
				26CE05AE115C36320022F371 /* dbgnub-mig.defs in Sources */,
				26CE05B0115C36340022F371 /* MachException.cpp in Sources */,
				26CE05B1115C36350022F371 /* MachProcess.cpp in Sources */,
				26CE05B2115C36360022F371 /* MachThread.cpp in Sources */,
				26CE05B3115C36370022F371 /* MachThreadList.cpp in Sources */,
				26CE05B4115C36380022F371 /* MachVMMemory.cpp in Sources */,
				26CE05B5115C36380022F371 /* MachVMRegion.cpp in Sources */,
				26CE05B6115C36390022F371 /* MachTask.cpp in Sources */,
				26CE05B7115C363B0022F371 /* DNB.cpp in Sources */,
				26CE05B8115C363C0022F371 /* DNBBreakpoint.cpp in Sources */,
				26CE05B9115C363D0022F371 /* DNBDataRef.cpp in Sources */,
				26CE05BA115C363E0022F371 /* DNBLog.cpp in Sources */,
				26CE05BB115C363F0022F371 /* DNBRegisterInfo.cpp in Sources */,
				26CE05BC115C36420022F371 /* PThreadEvent.cpp in Sources */,
				26CE05BD115C36430022F371 /* PThreadMutex.cpp in Sources */,
				26CE05BE115C36440022F371 /* SysSignal.cpp in Sources */,
				26CE05BF115C364D0022F371 /* DNBArchImplX86_64.cpp in Sources */,
				26CE05C0115C364F0022F371 /* DNBArchImplI386.cpp in Sources */,
				26CE05C1115C36510022F371 /* DNBArchImpl.cpp in Sources */,
				26CE05C2115C36550022F371 /* DNBArchImpl.cpp in Sources */,
				26CE05C3115C36580022F371 /* CFString.cpp in Sources */,
				26CE05C4115C36590022F371 /* CFData.cpp in Sources */,
				26CE05C5115C36590022F371 /* CFBundle.cpp in Sources */,
				26CE05F1115C387C0022F371 /* PseudoTerminal.cpp in Sources */,
				2660D9CE1192280900958FBD /* StringExtractor.cpp in Sources */,
				264D5D581293835600ED4C01 /* DNBArch.cpp in Sources */,
				4971AE7213D10F4F00649E37 /* HasAVX.s in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXSourcesBuildPhase section */

/* Begin XCBuildConfiguration section */
		1DEB914F08733D8E0010E9CD /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				"ARCHS[sdk=iphoneos*]" = (
					armv7,
					armv7s,
				);
				"ARCHS[sdk=macosx*]" = (
					x86_64,
					i386,
				);
				CLANG_WARN_BOOL_CONVERSION = YES;
				CLANG_WARN_CONSTANT_CONVERSION = YES;
				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = 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;
				CURRENT_PROJECT_VERSION = 300.99.0;
				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
				GCC_WARN_ABOUT_RETURN_TYPE = YES;
				GCC_WARN_UNDECLARED_SELECTOR = YES;
				GCC_WARN_UNINITIALIZED_AUTOS = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				ONLY_ACTIVE_ARCH = YES;
				STRIP_INSTALLED_PRODUCT = NO;
				VERSIONING_SYSTEM = "apple-generic";
				VERSION_INFO_BUILDER = "$(USER)";
			};
			name = Debug;
		};
		1DEB915008733D8E0010E9CD /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				"ARCHS[sdk=iphoneos*]" = (
					armv7,
					armv7s,
				);
				"ARCHS[sdk=macosx*]" = "$(ARCHS_STANDARD_64_BIT)";
				CLANG_WARN_BOOL_CONVERSION = YES;
				CLANG_WARN_CONSTANT_CONVERSION = YES;
				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES;
				CLANG_WARN_EMPTY_BODY = YES;
				CLANG_WARN_ENUM_CONVERSION = YES;
				CLANG_WARN_INT_CONVERSION = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				CURRENT_PROJECT_VERSION = 300.99.0;
				DEAD_CODE_STRIPPING = YES;
				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
				GCC_WARN_ABOUT_RETURN_TYPE = YES;
				GCC_WARN_UNDECLARED_SELECTOR = YES;
				GCC_WARN_UNINITIALIZED_AUTOS = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				ONLY_ACTIVE_ARCH = YES;
				STRIPFLAGS = "-x";
				STRIP_STYLE = debugging;
				VERSIONING_SYSTEM = "apple-generic";
				VERSION_INFO_BUILDER = "$(USER)";
			};
			name = Release;
		};
		262419A11198A93E00067686 /* BuildAndIntegration */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				"ARCHS[sdk=iphoneos*]" = (
					armv7,
					armv7s,
				);
				"ARCHS[sdk=macosx*]" = (
					x86_64,
					i386,
				);
				CLANG_WARN_BOOL_CONVERSION = YES;
				CLANG_WARN_CONSTANT_CONVERSION = YES;
				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES;
				CLANG_WARN_EMPTY_BODY = YES;
				CLANG_WARN_ENUM_CONVERSION = YES;
				CLANG_WARN_INT_CONVERSION = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				CURRENT_PROJECT_VERSION = 300.99.0;
				DEAD_CODE_STRIPPING = YES;
				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
				GCC_WARN_ABOUT_RETURN_TYPE = YES;
				GCC_WARN_UNDECLARED_SELECTOR = YES;
				GCC_WARN_UNINITIALIZED_AUTOS = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				STRIPFLAGS = "-x";
				STRIP_STYLE = debugging;
				VERSIONING_SYSTEM = "apple-generic";
				VERSION_INFO_BUILDER = "$(USER)";
			};
			name = BuildAndIntegration;
		};
		262419A21198A93E00067686 /* BuildAndIntegration */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
				CLANG_CXX_LIBRARY = "libc++";
				"CODE_SIGN_ENTITLEMENTS[sdk=iphoneos*]" = "source/debugserver-entitlements.plist";
				COPY_PHASE_STRIP = YES;
				CURRENT_PROJECT_VERSION = 300.99.0;
				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
				FRAMEWORK_SEARCH_PATHS = $SDKROOT/System/Library/PrivateFrameworks;
				"FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*][arch=*]" = (
					"$(SDKROOT)/System/Library/PrivateFrameworks",
					"$(SDKROOT)/Developer/Library/PrivateFrameworks",
				);
				"FRAMEWORK_SEARCH_PATHS[sdk=macosx*][arch=*]" = "$(SDKROOT)/System/Library/PrivateFrameworks";
				GCC_C_LANGUAGE_STANDARD = c99;
				GCC_PREPROCESSOR_DEFINITIONS = LLDB_DEBUGSERVER_BUILDANDINTEGRATION;
				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
				HEADER_SEARCH_PATHS = /System/Library/Frameworks/System.framework/PrivateHeaders;
				INSTALL_PATH = /usr/bin;
				"INSTALL_PATH[sdk=iphoneos*]" = /Developer/usr/bin/;
				LLDB_DEBUGSERVER = 1;
				OTHER_CFLAGS = "-Wparentheses";
				"OTHER_CFLAGS[sdk=iphoneos*][arch=*]" = (
					"-Wparentheses",
					"-DWITH_LOCKDOWN",
					"-DWITH_SPRINGBOARD",
					"-DOS_OBJECT_USE_OBJC=0",
				);
				"OTHER_CPLUSPLUSFLAGS[sdk=iphoneos*][arch=*]" = "$(OTHER_CFLAGS)";
				OTHER_LDFLAGS = (
					"-sectcreate",
					__TEXT,
					__info_plist,
					"$(PROJECT_DIR)/resources/lldb-debugserver-Info.plist",
				);
				"OTHER_LDFLAGS[sdk=iphoneos*][arch=*]" = (
					"-framework",
					SpringBoardServices,
					"-llockdown",
				);
				OTHER_MIGFLAGS = "-I$(DERIVED_FILE_DIR)";
				PRODUCT_NAME = debugserver;
				SKIP_INSTALL = YES;
				"SKIP_INSTALL[sdk=iphoneos*]" = NO;
				STRIP_INSTALLED_PRODUCT = YES;
				USER_HEADER_SEARCH_PATHS = "./source ../../source $(DERIVED_SOURCES_DIR)";
				ZERO_LINK = NO;
			};
			name = BuildAndIntegration;
		};
		26CE0596115C31C30022F371 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
				CLANG_CXX_LIBRARY = "libc++";
				"CODE_SIGN_ENTITLEMENTS[sdk=iphoneos*]" = "source/debugserver-entitlements.plist";
				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "-";
				"CODE_SIGN_IDENTITY[sdk=macosx*]" = lldb_codesign;
				COPY_PHASE_STRIP = YES;
				CURRENT_PROJECT_VERSION = 300.99.0;
				FRAMEWORK_SEARCH_PATHS = $SDKROOT/System/Library/PrivateFrameworks;
				"FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*][arch=*]" = (
					"$(SDKROOT)/System/Library/PrivateFrameworks",
					"$(SDKROOT)/Developer/Library/PrivateFrameworks",
				);
				"FRAMEWORK_SEARCH_PATHS[sdk=macosx*][arch=*]" = "$(SDKROOT)/System/Library/PrivateFrameworks";
				GCC_C_LANGUAGE_STANDARD = c99;
				GCC_DYNAMIC_NO_PIC = NO;
				GCC_OPTIMIZATION_LEVEL = 0;
				GCC_PREPROCESSOR_DEFINITIONS = LLDB_DEBUGSERVER_DEBUG;
				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
				INSTALL_PATH = /usr/bin;
				LLDB_DEBUGSERVER = 1;
				OTHER_CFLAGS = "-Wparentheses";
				"OTHER_CFLAGS[sdk=iphoneos*][arch=*]" = (
					"-Wparentheses",
					"-DWITH_LOCKDOWN",
					"-DWITH_SPRINGBOARD",
					"-DOS_OBJECT_USE_OBJC=0",
				);
				"OTHER_CPLUSPLUSFLAGS[sdk=iphoneos*][arch=*]" = "$(OTHER_CFLAGS)";
				OTHER_LDFLAGS = (
					"-sectcreate",
					__TEXT,
					__info_plist,
					"$(PROJECT_DIR)/resources/lldb-debugserver-Info.plist",
				);
				"OTHER_LDFLAGS[sdk=iphoneos*][arch=*]" = (
					"-framework",
					SpringBoardServices,
					"-llockdown",
				);
				OTHER_MIGFLAGS = "-I$(DERIVED_FILE_DIR)";
				PRODUCT_NAME = debugserver;
				"PROVISIONING_PROFILE[sdk=iphoneos*]" = "";
				"PROVISIONING_PROFILE[sdk=macosx*]" = "";
				SKIP_INSTALL = YES;
				USER_HEADER_SEARCH_PATHS = "./source ../../source $(DERIVED_SOURCES_DIR)";
				ZERO_LINK = NO;
			};
			name = Debug;
		};
		26CE0597115C31C30022F371 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
				CLANG_CXX_LIBRARY = "libc++";
				"CODE_SIGN_ENTITLEMENTS[sdk=iphoneos*]" = "source/debugserver-entitlements.plist";
				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "-";
				"CODE_SIGN_IDENTITY[sdk=macosx*]" = lldb_codesign;
				COPY_PHASE_STRIP = YES;
				CURRENT_PROJECT_VERSION = 300.99.0;
				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
				FRAMEWORK_SEARCH_PATHS = $SDKROOT/System/Library/PrivateFrameworks;
				"FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*][arch=*]" = (
					"$(SDKROOT)/System/Library/PrivateFrameworks",
					"$(SDKROOT)/Developer/Library/PrivateFrameworks",
				);
				"FRAMEWORK_SEARCH_PATHS[sdk=macosx*][arch=*]" = "$(SDKROOT)/System/Library/PrivateFrameworks";
				GCC_C_LANGUAGE_STANDARD = c99;
				GCC_PREPROCESSOR_DEFINITIONS = LLDB_DEBUGSERVER_RELEASE;
				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
				HEADER_SEARCH_PATHS = /System/Library/Frameworks/System.framework/PrivateHeaders;
				INSTALL_PATH = /usr/bin;
				LLDB_DEBUGSERVER = 1;
				OTHER_CFLAGS = "-Wparentheses";
				"OTHER_CFLAGS[sdk=iphoneos*][arch=*]" = (
					"-Wparentheses",
					"-DWITH_LOCKDOWN",
					"-DWITH_SPRINGBOARD",
					"-DOS_OBJECT_USE_OBJC=0",
				);
				"OTHER_CPLUSPLUSFLAGS[sdk=iphoneos*][arch=*]" = "$(OTHER_CFLAGS)";
				OTHER_LDFLAGS = (
					"-sectcreate",
					__TEXT,
					__info_plist,
					"$(PROJECT_DIR)/resources/lldb-debugserver-Info.plist",
				);
				"OTHER_LDFLAGS[sdk=iphoneos*][arch=*]" = (
					"-framework",
					SpringBoardServices,
					"-llockdown",
				);
				OTHER_MIGFLAGS = "-I$(DERIVED_FILE_DIR)";
				PRODUCT_NAME = debugserver;
				"PROVISIONING_PROFILE[sdk=iphoneos*]" = "";
				"PROVISIONING_PROFILE[sdk=macosx*]" = "";
				SKIP_INSTALL = YES;
				USER_HEADER_SEARCH_PATHS = "./source ../../source $(DERIVED_SOURCES_DIR)";
				ZERO_LINK = NO;
			};
			name = Release;
		};
		4968B7A916657FAE00741ABB /* DebugClang */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				"ARCHS[sdk=iphoneos*]" = (
					armv7,
					armv7s,
				);
				"ARCHS[sdk=macosx*]" = (
					x86_64,
					i386,
				);
				CLANG_WARN_BOOL_CONVERSION = YES;
				CLANG_WARN_CONSTANT_CONVERSION = YES;
				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = 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;
				CURRENT_PROJECT_VERSION = 300.99.0;
				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
				GCC_WARN_ABOUT_RETURN_TYPE = YES;
				GCC_WARN_UNDECLARED_SELECTOR = YES;
				GCC_WARN_UNINITIALIZED_AUTOS = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				ONLY_ACTIVE_ARCH = YES;
				STRIP_INSTALLED_PRODUCT = NO;
				VERSIONING_SYSTEM = "apple-generic";
				VERSION_INFO_BUILDER = "$(USER)";
			};
			name = DebugClang;
		};
		4968B7AA16657FAE00741ABB /* DebugClang */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
				CLANG_CXX_LIBRARY = "libc++";
				"CODE_SIGN_ENTITLEMENTS[sdk=iphoneos*]" = "source/debugserver-entitlements.plist";
				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "-";
				"CODE_SIGN_IDENTITY[sdk=macosx*]" = lldb_codesign;
				COPY_PHASE_STRIP = YES;
				CURRENT_PROJECT_VERSION = 300.99.0;
				FRAMEWORK_SEARCH_PATHS = $SDKROOT/System/Library/PrivateFrameworks;
				"FRAMEWORK_SEARCH_PATHS[sdk=iphoneos*][arch=*]" = (
					"$(SDKROOT)/System/Library/PrivateFrameworks",
					"$(SDKROOT)/Developer/Library/PrivateFrameworks",
				);
				"FRAMEWORK_SEARCH_PATHS[sdk=macosx*][arch=*]" = "$(SDKROOT)/System/Library/PrivateFrameworks";
				GCC_C_LANGUAGE_STANDARD = c99;
				GCC_DYNAMIC_NO_PIC = NO;
				GCC_OPTIMIZATION_LEVEL = 0;
				GCC_PREPROCESSOR_DEFINITIONS = LLDB_DEBUGSERVER_DEBUG;
				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
				INSTALL_PATH = /usr/bin;
				LLDB_DEBUGSERVER = 1;
				OTHER_CFLAGS = "-Wparentheses";
				"OTHER_CFLAGS[sdk=iphoneos*][arch=*]" = (
					"-Wparentheses",
					"-DWITH_LOCKDOWN",
					"-DWITH_SPRINGBOARD",
					"-DOS_OBJECT_USE_OBJC=0",
				);
				"OTHER_CPLUSPLUSFLAGS[sdk=iphoneos*][arch=*]" = "$(OTHER_CFLAGS)";
				OTHER_LDFLAGS = (
					"-sectcreate",
					__TEXT,
					__info_plist,
					"$(PROJECT_DIR)/resources/lldb-debugserver-Info.plist",
				);
				"OTHER_LDFLAGS[sdk=iphoneos*][arch=*]" = (
					"-framework",
					SpringBoardServices,
					"-llockdown",
				);
				OTHER_MIGFLAGS = "-I$(DERIVED_FILE_DIR)";
				PRODUCT_NAME = debugserver;
				"PROVISIONING_PROFILE[sdk=iphoneos*]" = "";
				"PROVISIONING_PROFILE[sdk=macosx*]" = "";
				SKIP_INSTALL = YES;
				USER_HEADER_SEARCH_PATHS = "./source ../../source $(DERIVED_SOURCES_DIR)";
				ZERO_LINK = NO;
			};
			name = DebugClang;
		};
/* End XCBuildConfiguration section */

/* Begin XCConfigurationList section */
		1DEB914E08733D8E0010E9CD /* Build configuration list for PBXProject "debugserver" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				1DEB914F08733D8E0010E9CD /* Debug */,
				4968B7A916657FAE00741ABB /* DebugClang */,
				1DEB915008733D8E0010E9CD /* Release */,
				262419A11198A93E00067686 /* BuildAndIntegration */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = BuildAndIntegration;
		};
		26CE05A4115C31ED0022F371 /* Build configuration list for PBXNativeTarget "debugserver" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				26CE0596115C31C30022F371 /* Debug */,
				4968B7AA16657FAE00741ABB /* DebugClang */,
				26CE0597115C31C30022F371 /* Release */,
				262419A21198A93E00067686 /* BuildAndIntegration */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = BuildAndIntegration;
		};
/* End XCConfigurationList section */
	};
	rootObject = 08FB7793FE84155DC02AAC07 /* Project object */;
}
