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

/* Begin PBXBuildFile section */
		1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; };
		1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */; };
		28FD15000DC6FC520079059D /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 28FD14FF0DC6FC520079059D /* OpenGLES.framework */; };
		28FD15080DC6FC5B0079059D /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 28FD15070DC6FC5B0079059D /* QuartzCore.framework */; };
		945C4F53195AF17F00DBBF61 /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 945C4F52195AF17F00DBBF61 /* Default-568h@2x.png */; };
		F3A497AC2555F0BD00E92A8B /* CoreHaptics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A497AB2555F0BD00E92A8B /* CoreHaptics.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
		F3A497AD2555F0C000E92A8B /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A4978F2555F07100E92A8B /* libSDL2.a */; };
		F3A497B02555F0FF00E92A8B /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A497AF2555F0FF00E92A8B /* Metal.framework */; };
		F3A497B32555F11600E92A8B /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3A497B22555F11600E92A8B /* AVFoundation.framework */; };
		FA8B4B97196703B400F8EB7C /* CoreMotion.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA8B4B96196703B400F8EB7C /* CoreMotion.framework */; };
		FAE0E9651BAF967F0098DFA4 /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FAE0E9641BAF967F0098DFA4 /* GameController.framework */; };
		FD779EDE0E26BA1200F39101 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FD779EDD0E26BA1200F39101 /* CoreAudio.framework */; };
		FD77A07D0E26BD8C00F39101 /* Icon.png in Resources */ = {isa = PBXBuildFile; fileRef = FD77A07C0E26BD8C00F39101 /* Icon.png */; };
		FD77A07F0E26BDA900F39101 /* Default.png in Resources */ = {isa = PBXBuildFile; fileRef = FD77A07E0E26BDA900F39101 /* Default.png */; };
		FD77A0850E26BDB800F39101 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FD77A0840E26BDB800F39101 /* AudioToolbox.framework */; };
		FD77A09D0E26BDE500F39101 /* main.c in Sources */ = {isa = PBXBuildFile; fileRef = FD77A09C0E26BDE500F39101 /* main.c */; };
		FDB8BFC60E5A0F6A00980157 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FDB8BFC50E5A0F6A00980157 /* CoreGraphics.framework */; };
/* End PBXBuildFile section */

/* Begin PBXContainerItemProxy section */
		F3A497862555F07100E92A8B /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 944A65681957463F0094A81E /* SDL.xcodeproj */;
			proxyType = 2;
			remoteGlobalIDString = BECDF66C0761BA81005FE872;
			remoteInfo = Framework;
		};
		F3A497882555F07100E92A8B /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 944A65681957463F0094A81E /* SDL.xcodeproj */;
			proxyType = 2;
			remoteGlobalIDString = A7D88B5423E2437C00DCD162;
			remoteInfo = "Framework-iOS";
		};
		F3A4978A2555F07100E92A8B /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 944A65681957463F0094A81E /* SDL.xcodeproj */;
			proxyType = 2;
			remoteGlobalIDString = A7D88D1523E24BED00DCD162;
			remoteInfo = "Framework-tvOS";
		};
		F3A4978C2555F07100E92A8B /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 944A65681957463F0094A81E /* SDL.xcodeproj */;
			proxyType = 2;
			remoteGlobalIDString = BECDF6B30761BA81005FE872;
			remoteInfo = "Static Library";
		};
		F3A4978E2555F07100E92A8B /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 944A65681957463F0094A81E /* SDL.xcodeproj */;
			proxyType = 2;
			remoteGlobalIDString = A7D88E5423E24D3B00DCD162;
			remoteInfo = "Static Library-iOS";
		};
		F3A497902555F07100E92A8B /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 944A65681957463F0094A81E /* SDL.xcodeproj */;
			proxyType = 2;
			remoteGlobalIDString = A769B23D23E259AE00872273;
			remoteInfo = "Static Library-tvOS";
		};
		F3A497922555F07100E92A8B /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 944A65681957463F0094A81E /* SDL.xcodeproj */;
			proxyType = 2;
			remoteGlobalIDString = DB31407717554B71006C0E22;
			remoteInfo = "Shared Library";
		};
		F3A497942555F07100E92A8B /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 944A65681957463F0094A81E /* SDL.xcodeproj */;
			proxyType = 2;
			remoteGlobalIDString = A75FCEB323E25AB700529352;
			remoteInfo = "Shared Library-iOS";
		};
		F3A497962555F07100E92A8B /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 944A65681957463F0094A81E /* SDL.xcodeproj */;
			proxyType = 2;
			remoteGlobalIDString = A75FD06C23E25AC700529352;
			remoteInfo = "Shared Library-tvOS";
		};
		F3A497982555F07100E92A8B /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 944A65681957463F0094A81E /* SDL.xcodeproj */;
			proxyType = 2;
			remoteGlobalIDString = BECDF6BE0761BA81005FE872;
			remoteInfo = "Standard DMG";
		};
		F3A4979A2555F07100E92A8B /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 944A65681957463F0094A81E /* SDL.xcodeproj */;
			proxyType = 2;
			remoteGlobalIDString = A75FDB8C23E4C74400529352;
			remoteInfo = hidapi;
		};
		F3A4979C2555F07100E92A8B /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 944A65681957463F0094A81E /* SDL.xcodeproj */;
			proxyType = 2;
			remoteGlobalIDString = A75FDB4923E399AC00529352;
			remoteInfo = "hidapi-iOS";
		};
		F3A4979E2555F07100E92A8B /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 944A65681957463F0094A81E /* SDL.xcodeproj */;
			proxyType = 2;
			remoteGlobalIDString = A75FDB6E23E3A2C900529352;
			remoteInfo = "hidapi-tvOS";
		};
/* End PBXContainerItemProxy section */

/* Begin PBXFileReference section */
		1D30AB110D05D00D00671497 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
		1D6058910D05DD3D006BFB54 /* ___PROJECTNAME___.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "___PROJECTNAME___.app"; sourceTree = BUILT_PRODUCTS_DIR; };
		1DF5F4DF0D08C38300B7A737 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
		28FD14FF0DC6FC520079059D /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; };
		28FD15070DC6FC5B0079059D /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
		8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
		944A65681957463F0094A81E /* SDL.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = SDL.xcodeproj; path = ../../../Xcode/SDL/SDL.xcodeproj; sourceTree = "<group>"; };
		945C4F52195AF17F00DBBF61 /* Default-568h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-568h@2x.png"; sourceTree = "<group>"; };
		F3A497AB2555F0BD00E92A8B /* CoreHaptics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreHaptics.framework; path = System/Library/Frameworks/CoreHaptics.framework; sourceTree = SDKROOT; };
		F3A497AF2555F0FF00E92A8B /* Metal.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Metal.framework; path = System/Library/Frameworks/Metal.framework; sourceTree = SDKROOT; };
		F3A497B22555F11600E92A8B /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; };
		FA8B4B96196703B400F8EB7C /* CoreMotion.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMotion.framework; path = System/Library/Frameworks/CoreMotion.framework; sourceTree = SDKROOT; };
		FAE0E9641BAF967F0098DFA4 /* GameController.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GameController.framework; path = System/Library/Frameworks/GameController.framework; sourceTree = SDKROOT; };
		FD779EDD0E26BA1200F39101 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = System/Library/Frameworks/CoreAudio.framework; sourceTree = SDKROOT; };
		FD77A07C0E26BD8C00F39101 /* Icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Icon.png; sourceTree = "<group>"; };
		FD77A07E0E26BDA900F39101 /* Default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Default.png; sourceTree = "<group>"; };
		FD77A0840E26BDB800F39101 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; };
		FD77A09C0E26BDE500F39101 /* main.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = main.c; sourceTree = "<group>"; };
		FDB8BFC50E5A0F6A00980157 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
		1D60588F0D05DD3D006BFB54 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				F3A497AD2555F0C000E92A8B /* libSDL2.a in Frameworks */,
				FD77A0850E26BDB800F39101 /* AudioToolbox.framework in Frameworks */,
				F3A497B32555F11600E92A8B /* AVFoundation.framework in Frameworks */,
				1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */,
				FD779EDE0E26BA1200F39101 /* CoreAudio.framework in Frameworks */,
				FDB8BFC60E5A0F6A00980157 /* CoreGraphics.framework in Frameworks */,
				F3A497AC2555F0BD00E92A8B /* CoreHaptics.framework in Frameworks */,
				FA8B4B97196703B400F8EB7C /* CoreMotion.framework in Frameworks */,
				FAE0E9651BAF967F0098DFA4 /* GameController.framework in Frameworks */,
				F3A497B02555F0FF00E92A8B /* Metal.framework in Frameworks */,
				28FD15000DC6FC520079059D /* OpenGLES.framework in Frameworks */,
				28FD15080DC6FC5B0079059D /* QuartzCore.framework in Frameworks */,
				1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
		19C28FACFE9D520D11CA2CBB /* Products */ = {
			isa = PBXGroup;
			children = (
				1D6058910D05DD3D006BFB54 /* ___PROJECTNAME___.app */,
			);
			name = Products;
			sourceTree = "<group>";
		};
		29B97314FDCFA39411CA2CEA /* CustomTemplate */ = {
			isa = PBXGroup;
			children = (
				945C4F52195AF17F00DBBF61 /* Default-568h@2x.png */,
				29B97315FDCFA39411CA2CEA /* Sources */,
				29B97317FDCFA39411CA2CEA /* Resources */,
				29B97323FDCFA39411CA2CEA /* Frameworks */,
				19C28FACFE9D520D11CA2CBB /* Products */,
			);
			name = CustomTemplate;
			sourceTree = "<group>";
		};
		29B97315FDCFA39411CA2CEA /* Sources */ = {
			isa = PBXGroup;
			children = (
				944A65681957463F0094A81E /* SDL.xcodeproj */,
				FD77A09C0E26BDE500F39101 /* main.c */,
			);
			name = Sources;
			sourceTree = "<group>";
		};
		29B97317FDCFA39411CA2CEA /* Resources */ = {
			isa = PBXGroup;
			children = (
				FD77A07E0E26BDA900F39101 /* Default.png */,
				FD77A07C0E26BD8C00F39101 /* Icon.png */,
				8D1107310486CEB800E47090 /* Info.plist */,
			);
			name = Resources;
			sourceTree = "<group>";
		};
		29B97323FDCFA39411CA2CEA /* Frameworks */ = {
			isa = PBXGroup;
			children = (
				F3A497B22555F11600E92A8B /* AVFoundation.framework */,
				F3A497AF2555F0FF00E92A8B /* Metal.framework */,
				F3A497AB2555F0BD00E92A8B /* CoreHaptics.framework */,
				FAE0E9641BAF967F0098DFA4 /* GameController.framework */,
				FA8B4B96196703B400F8EB7C /* CoreMotion.framework */,
				FDB8BFC50E5A0F6A00980157 /* CoreGraphics.framework */,
				FD77A0840E26BDB800F39101 /* AudioToolbox.framework */,
				FD779EDD0E26BA1200F39101 /* CoreAudio.framework */,
				28FD15070DC6FC5B0079059D /* QuartzCore.framework */,
				28FD14FF0DC6FC520079059D /* OpenGLES.framework */,
				1DF5F4DF0D08C38300B7A737 /* UIKit.framework */,
				1D30AB110D05D00D00671497 /* Foundation.framework */,
			);
			name = Frameworks;
			sourceTree = "<group>";
		};
		F3A497772555F07100E92A8B /* Products */ = {
			isa = PBXGroup;
			children = (
				F3A497872555F07100E92A8B /* SDL2.framework */,
				F3A497892555F07100E92A8B /* SDL2.framework */,
				F3A4978B2555F07100E92A8B /* SDL2.framework */,
				F3A4978D2555F07100E92A8B /* libSDL2.a */,
				F3A4978F2555F07100E92A8B /* libSDL2.a */,
				F3A497912555F07100E92A8B /* libSDL2.a */,
				F3A497932555F07100E92A8B /* libSDL2.dylib */,
				F3A497952555F07100E92A8B /* libSDL2.dylib */,
				F3A497972555F07100E92A8B /* libSDL2.dylib */,
				F3A497992555F07100E92A8B /* SDL2 */,
				F3A4979B2555F07100E92A8B /* hidapi.framework */,
				F3A4979D2555F07100E92A8B /* hidapi.framework */,
				F3A4979F2555F07100E92A8B /* hidapi.framework */,
			);
			name = Products;
			sourceTree = "<group>";
		};
/* End PBXGroup section */

/* Begin PBXNativeTarget section */
		1D6058900D05DD3D006BFB54 /* ___PROJECTNAME___ */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "___PROJECTNAME___" */;
			buildPhases = (
				1D60588D0D05DD3D006BFB54 /* Resources */,
				1D60588E0D05DD3D006BFB54 /* Sources */,
				1D60588F0D05DD3D006BFB54 /* Frameworks */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = "___PROJECTNAME___";
			productName = "___PROJECTNAME___";
			productReference = 1D6058910D05DD3D006BFB54 /* ___PROJECTNAME___.app */;
			productType = "com.apple.product-type.application";
		};
/* End PBXNativeTarget section */

/* Begin PBXProject section */
		29B97313FDCFA39411CA2CEA /* Project object */ = {
			isa = PBXProject;
			attributes = {
				LastUpgradeCheck = 0510;
			};
			buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "___PROJECTNAME___" */;
			compatibilityVersion = "Xcode 3.2";
			developmentRegion = English;
			hasScannedForEncodings = 1;
			knownRegions = (
				English,
				Japanese,
				French,
				German,
			);
			mainGroup = 29B97314FDCFA39411CA2CEA /* CustomTemplate */;
			projectDirPath = "";
			projectReferences = (
				{
					ProductGroup = F3A497772555F07100E92A8B /* Products */;
					ProjectRef = 944A65681957463F0094A81E /* SDL.xcodeproj */;
				},
			);
			projectRoot = "";
			targets = (
				1D6058900D05DD3D006BFB54 /* ___PROJECTNAME___ */,
			);
		};
/* End PBXProject section */

/* Begin PBXReferenceProxy section */
		F3A497872555F07100E92A8B /* SDL2.framework */ = {
			isa = PBXReferenceProxy;
			fileType = wrapper.framework;
			path = SDL2.framework;
			remoteRef = F3A497862555F07100E92A8B /* PBXContainerItemProxy */;
			sourceTree = BUILT_PRODUCTS_DIR;
		};
		F3A497892555F07100E92A8B /* SDL2.framework */ = {
			isa = PBXReferenceProxy;
			fileType = wrapper.framework;
			path = SDL2.framework;
			remoteRef = F3A497882555F07100E92A8B /* PBXContainerItemProxy */;
			sourceTree = BUILT_PRODUCTS_DIR;
		};
		F3A4978B2555F07100E92A8B /* SDL2.framework */ = {
			isa = PBXReferenceProxy;
			fileType = wrapper.framework;
			path = SDL2.framework;
			remoteRef = F3A4978A2555F07100E92A8B /* PBXContainerItemProxy */;
			sourceTree = BUILT_PRODUCTS_DIR;
		};
		F3A4978D2555F07100E92A8B /* libSDL2.a */ = {
			isa = PBXReferenceProxy;
			fileType = archive.ar;
			path = libSDL2.a;
			remoteRef = F3A4978C2555F07100E92A8B /* PBXContainerItemProxy */;
			sourceTree = BUILT_PRODUCTS_DIR;
		};
		F3A4978F2555F07100E92A8B /* libSDL2.a */ = {
			isa = PBXReferenceProxy;
			fileType = archive.ar;
			path = libSDL2.a;
			remoteRef = F3A4978E2555F07100E92A8B /* PBXContainerItemProxy */;
			sourceTree = BUILT_PRODUCTS_DIR;
		};
		F3A497912555F07100E92A8B /* libSDL2.a */ = {
			isa = PBXReferenceProxy;
			fileType = archive.ar;
			path = libSDL2.a;
			remoteRef = F3A497902555F07100E92A8B /* PBXContainerItemProxy */;
			sourceTree = BUILT_PRODUCTS_DIR;
		};
		F3A497932555F07100E92A8B /* libSDL2.dylib */ = {
			isa = PBXReferenceProxy;
			fileType = "compiled.mach-o.dylib";
			path = libSDL2.dylib;
			remoteRef = F3A497922555F07100E92A8B /* PBXContainerItemProxy */;
			sourceTree = BUILT_PRODUCTS_DIR;
		};
		F3A497952555F07100E92A8B /* libSDL2.dylib */ = {
			isa = PBXReferenceProxy;
			fileType = "compiled.mach-o.dylib";
			path = libSDL2.dylib;
			remoteRef = F3A497942555F07100E92A8B /* PBXContainerItemProxy */;
			sourceTree = BUILT_PRODUCTS_DIR;
		};
		F3A497972555F07100E92A8B /* libSDL2.dylib */ = {
			isa = PBXReferenceProxy;
			fileType = "compiled.mach-o.dylib";
			path = libSDL2.dylib;
			remoteRef = F3A497962555F07100E92A8B /* PBXContainerItemProxy */;
			sourceTree = BUILT_PRODUCTS_DIR;
		};
		F3A497992555F07100E92A8B /* SDL2 */ = {
			isa = PBXReferenceProxy;
			fileType = "compiled.mach-o.executable";
			path = SDL2;
			remoteRef = F3A497982555F07100E92A8B /* PBXContainerItemProxy */;
			sourceTree = BUILT_PRODUCTS_DIR;
		};
		F3A4979B2555F07100E92A8B /* hidapi.framework */ = {
			isa = PBXReferenceProxy;
			fileType = wrapper.framework;
			path = hidapi.framework;
			remoteRef = F3A4979A2555F07100E92A8B /* PBXContainerItemProxy */;
			sourceTree = BUILT_PRODUCTS_DIR;
		};
		F3A4979D2555F07100E92A8B /* hidapi.framework */ = {
			isa = PBXReferenceProxy;
			fileType = wrapper.framework;
			path = hidapi.framework;
			remoteRef = F3A4979C2555F07100E92A8B /* PBXContainerItemProxy */;
			sourceTree = BUILT_PRODUCTS_DIR;
		};
		F3A4979F2555F07100E92A8B /* hidapi.framework */ = {
			isa = PBXReferenceProxy;
			fileType = wrapper.framework;
			path = hidapi.framework;
			remoteRef = F3A4979E2555F07100E92A8B /* PBXContainerItemProxy */;
			sourceTree = BUILT_PRODUCTS_DIR;
		};
/* End PBXReferenceProxy section */

/* Begin PBXResourcesBuildPhase section */
		1D60588D0D05DD3D006BFB54 /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				FD77A07D0E26BD8C00F39101 /* Icon.png in Resources */,
				FD77A07F0E26BDA900F39101 /* Default.png in Resources */,
				945C4F53195AF17F00DBBF61 /* Default-568h@2x.png in Resources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXResourcesBuildPhase section */

/* Begin PBXSourcesBuildPhase section */
		1D60588E0D05DD3D006BFB54 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				FD77A09D0E26BDE500F39101 /* main.c in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXSourcesBuildPhase section */

/* Begin XCBuildConfiguration section */
		1D6058940D05DD3E006BFB54 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				COPY_PHASE_STRIP = NO;
				GCC_DYNAMIC_NO_PIC = NO;
				GCC_OPTIMIZATION_LEVEL = 0;
				GCC_PRECOMPILE_PREFIX_HEADER = YES;
				GCC_PREFIX_HEADER = "";
				INFOPLIST_FILE = Info.plist;
				LIBRARY_SEARCH_PATHS = "$(inherited)";
				PRODUCT_NAME = "___PROJECTNAME___";
				USER_HEADER_SEARCH_PATHS = ../../../include;
			};
			name = Debug;
		};
		1D6058950D05DD3E006BFB54 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				COPY_PHASE_STRIP = YES;
				GCC_PRECOMPILE_PREFIX_HEADER = YES;
				GCC_PREFIX_HEADER = "";
				INFOPLIST_FILE = Info.plist;
				LIBRARY_SEARCH_PATHS = "$(inherited)";
				PRODUCT_NAME = "___PROJECTNAME___";
				USER_HEADER_SEARCH_PATHS = ../../../include;
			};
			name = Release;
		};
		C01FCF4F08A954540054247B /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
				GCC_C_LANGUAGE_STANDARD = c99;
				GCC_WARN_ABOUT_RETURN_TYPE = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				ONLY_ACTIVE_ARCH = YES;
				OTHER_CFLAGS = "";
				PREBINDING = NO;
				SDKROOT = iphoneos;
			};
			name = Debug;
		};
		C01FCF5008A954540054247B /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
				GCC_C_LANGUAGE_STANDARD = c99;
				GCC_WARN_ABOUT_RETURN_TYPE = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				OTHER_CFLAGS = "";
				PREBINDING = NO;
				SDKROOT = iphoneos;
			};
			name = Release;
		};
/* End XCBuildConfiguration section */

/* Begin XCConfigurationList section */
		1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "___PROJECTNAME___" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				1D6058940D05DD3E006BFB54 /* Debug */,
				1D6058950D05DD3E006BFB54 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		C01FCF4E08A954540054247B /* Build configuration list for PBXProject "___PROJECTNAME___" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				C01FCF4F08A954540054247B /* Debug */,
				C01FCF5008A954540054247B /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
/* End XCConfigurationList section */
	};
	rootObject = 29B97313FDCFA39411CA2CEA /* Project object */;
}
