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

/* Begin PBXBuildFile section */
		2D0761731E53C6B8006734D2 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D0761721E53C6B8006734D2 /* AppDelegate.swift */; };
		2D0761751E53C6B8006734D2 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D0761741E53C6B8006734D2 /* ViewController.swift */; };
		2D0761781E53C6B8006734D2 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 2D0761761E53C6B8006734D2 /* Main.storyboard */; };
		2D07617A1E53C6B8006734D2 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 2D0761791E53C6B8006734D2 /* Assets.xcassets */; };
		2D07617D1E53C6B8006734D2 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 2D07617B1E53C6B8006734D2 /* LaunchScreen.storyboard */; };
		2D0761881E53C6B8006734D2 /* ButtonsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D0761871E53C6B8006734D2 /* ButtonsTests.swift */; };
		2D0761931E53C6B8006734D2 /* ButtonsUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D0761921E53C6B8006734D2 /* ButtonsUITests.swift */; };
		2D27FF411E5DFBDA003FE262 /* Interface.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 2D27FF3F1E5DFBDA003FE262 /* Interface.storyboard */; };
		2D27FF431E5DFBDA003FE262 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 2D27FF421E5DFBDA003FE262 /* Assets.xcassets */; };
		2D27FF4A1E5DFBDA003FE262 /* ButtonsWatchExtension.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 2D27FF491E5DFBDA003FE262 /* ButtonsWatchExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
		2D27FF5D1E5DFBDA003FE262 /* ButtonsWatch.app in Embed Watch Content */ = {isa = PBXBuildFile; fileRef = 2D27FF3D1E5DFBDA003FE262 /* ButtonsWatch.app */; };
		2D27FF6D1E5DFE31003FE262 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D27FF6C1E5DFE31003FE262 /* AppDelegate.swift */; };
		2D27FF6F1E5DFE31003FE262 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D27FF6E1E5DFE31003FE262 /* ViewController.swift */; };
		2D27FF721E5DFE31003FE262 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 2D27FF701E5DFE31003FE262 /* Main.storyboard */; };
		2D27FF741E5DFE31003FE262 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 2D27FF731E5DFE31003FE262 /* Assets.xcassets */; };
		2D27FF7F1E5DFE32003FE262 /* ButtonsTVTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D27FF7E1E5DFE32003FE262 /* ButtonsTVTests.swift */; };
		2D27FF8A1E5DFE32003FE262 /* ButtonsTVUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D27FF891E5DFE32003FE262 /* ButtonsTVUITests.swift */; };
		2D61BD0C1F1D54E400C5978A /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D61BD0B1F1D54E400C5978A /* AppDelegate.swift */; };
		2D61BD0E1F1D54E400C5978A /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D61BD0D1F1D54E400C5978A /* ViewController.swift */; };
		2D61BD101F1D54E400C5978A /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 2D61BD0F1F1D54E400C5978A /* Assets.xcassets */; };
		2D61BD131F1D54E400C5978A /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 2D61BD111F1D54E400C5978A /* Main.storyboard */; };
		2D61BD201F1D57D000C5978A /* ButtonsMacTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D61BD1F1F1D57D000C5978A /* ButtonsMacTests.swift */; };
		2D61BD2E1F1D583700C5978A /* ButtonsMacUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D61BD2D1F1D583700C5978A /* ButtonsMacUITests.swift */; };
		2D62FFB21E673F3500542AE3 /* ComplicationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D786DA71E5E2C5000BB9F00 /* ComplicationController.swift */; };
		2D62FFB31E673F3500542AE3 /* ExtensionDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D786DA81E5E2C5000BB9F00 /* ExtensionDelegate.swift */; };
		2D62FFB41E673F3500542AE3 /* NotificationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D786DAB1E5E2C5000BB9F00 /* NotificationController.swift */; };
		2D786DAC1E5E2C5000BB9F00 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 2D786DA61E5E2C5000BB9F00 /* Assets.xcassets */; };
		2D786DB01E5E2C5000BB9F00 /* InterfaceController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D786DAA1E5E2C5000BB9F00 /* InterfaceController.swift */; };
		2DAAFFA81E5E085F0090F12F /* TVServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2DAAFFA71E5E085F0090F12F /* TVServices.framework */; };
		2DAAFFAB1E5E085F0090F12F /* ServiceProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2DAAFFAA1E5E085F0090F12F /* ServiceProvider.swift */; };
		2DAAFFAF1E5E085F0090F12F /* ButtonsTVExtension.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 2DAAFFA51E5E085F0090F12F /* ButtonsTVExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
/* End PBXBuildFile section */

/* Begin PBXContainerItemProxy section */
		2D0761841E53C6B8006734D2 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 2D0761671E53C6B8006734D2 /* Project object */;
			proxyType = 1;
			remoteGlobalIDString = 2D07616E1E53C6B8006734D2;
			remoteInfo = Buttons;
		};
		2D07618F1E53C6B8006734D2 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 2D0761671E53C6B8006734D2 /* Project object */;
			proxyType = 1;
			remoteGlobalIDString = 2D07616E1E53C6B8006734D2;
			remoteInfo = Buttons;
		};
		2D27FF4B1E5DFBDA003FE262 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 2D0761671E53C6B8006734D2 /* Project object */;
			proxyType = 1;
			remoteGlobalIDString = 2D27FF481E5DFBDA003FE262;
			remoteInfo = "ButtonsWatch Extension";
		};
		2D27FF5B1E5DFBDA003FE262 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 2D0761671E53C6B8006734D2 /* Project object */;
			proxyType = 1;
			remoteGlobalIDString = 2D27FF3C1E5DFBDA003FE262;
			remoteInfo = ButtonsWatch;
		};
		2D27FF7B1E5DFE32003FE262 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 2D0761671E53C6B8006734D2 /* Project object */;
			proxyType = 1;
			remoteGlobalIDString = 2D27FF691E5DFE31003FE262;
			remoteInfo = ButtonsTV;
		};
		2D27FF861E5DFE32003FE262 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 2D0761671E53C6B8006734D2 /* Project object */;
			proxyType = 1;
			remoteGlobalIDString = 2D27FF691E5DFE31003FE262;
			remoteInfo = ButtonsTV;
		};
		2D61BD221F1D57D000C5978A /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 2D0761671E53C6B8006734D2 /* Project object */;
			proxyType = 1;
			remoteGlobalIDString = 2D61BD081F1D54E400C5978A;
			remoteInfo = ButtonsMac;
		};
		2D61BD301F1D583700C5978A /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 2D0761671E53C6B8006734D2 /* Project object */;
			proxyType = 1;
			remoteGlobalIDString = 2D61BD081F1D54E400C5978A;
			remoteInfo = ButtonsMac;
		};
		2DAAFFAD1E5E085F0090F12F /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 2D0761671E53C6B8006734D2 /* Project object */;
			proxyType = 1;
			remoteGlobalIDString = 2DAAFFA41E5E085F0090F12F;
			remoteInfo = ButtonsTVExtension;
		};
/* End PBXContainerItemProxy section */

/* Begin PBXCopyFilesBuildPhase section */
		2D27FF631E5DFBDA003FE262 /* Embed App Extensions */ = {
			isa = PBXCopyFilesBuildPhase;
			buildActionMask = 2147483647;
			dstPath = "";
			dstSubfolderSpec = 13;
			files = (
				2D27FF4A1E5DFBDA003FE262 /* ButtonsWatchExtension.appex in Embed App Extensions */,
			);
			name = "Embed App Extensions";
			runOnlyForDeploymentPostprocessing = 0;
		};
		2D27FF651E5DFBDA003FE262 /* Embed Watch Content */ = {
			isa = PBXCopyFilesBuildPhase;
			buildActionMask = 2147483647;
			dstPath = "$(CONTENTS_FOLDER_PATH)/Watch";
			dstSubfolderSpec = 16;
			files = (
				2D27FF5D1E5DFBDA003FE262 /* ButtonsWatch.app in Embed Watch Content */,
			);
			name = "Embed Watch Content";
			runOnlyForDeploymentPostprocessing = 0;
		};
		2D8340A91E5DF7690006C4AB /* Embed App Extensions */ = {
			isa = PBXCopyFilesBuildPhase;
			buildActionMask = 2147483647;
			dstPath = "";
			dstSubfolderSpec = 13;
			files = (
			);
			name = "Embed App Extensions";
			runOnlyForDeploymentPostprocessing = 0;
		};
		2DAAFFB31E5E085F0090F12F /* Embed App Extensions */ = {
			isa = PBXCopyFilesBuildPhase;
			buildActionMask = 2147483647;
			dstPath = "";
			dstSubfolderSpec = 13;
			files = (
				2DAAFFAF1E5E085F0090F12F /* ButtonsTVExtension.appex in Embed App Extensions */,
			);
			name = "Embed App Extensions";
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXCopyFilesBuildPhase section */

/* Begin PBXFileReference section */
		2D07616F1E53C6B8006734D2 /* Buttons.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Buttons.app; sourceTree = BUILT_PRODUCTS_DIR; };
		2D0761721E53C6B8006734D2 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
		2D0761741E53C6B8006734D2 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = "<group>"; };
		2D0761771E53C6B8006734D2 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
		2D0761791E53C6B8006734D2 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
		2D07617C1E53C6B8006734D2 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
		2D07617E1E53C6B8006734D2 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
		2D0761831E53C6B8006734D2 /* ButtonsTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ButtonsTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
		2D0761871E53C6B8006734D2 /* ButtonsTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ButtonsTests.swift; sourceTree = "<group>"; };
		2D0761891E53C6B8006734D2 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
		2D07618E1E53C6B8006734D2 /* ButtonsUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ButtonsUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
		2D0761921E53C6B8006734D2 /* ButtonsUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ButtonsUITests.swift; sourceTree = "<group>"; };
		2D0761941E53C6B8006734D2 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
		2D27FF3D1E5DFBDA003FE262 /* ButtonsWatch.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ButtonsWatch.app; sourceTree = BUILT_PRODUCTS_DIR; };
		2D27FF401E5DFBDA003FE262 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Interface.storyboard; sourceTree = "<group>"; };
		2D27FF421E5DFBDA003FE262 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
		2D27FF441E5DFBDA003FE262 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
		2D27FF491E5DFBDA003FE262 /* ButtonsWatchExtension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = ButtonsWatchExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; };
		2D27FF6A1E5DFE31003FE262 /* ButtonsTV.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ButtonsTV.app; sourceTree = BUILT_PRODUCTS_DIR; };
		2D27FF6C1E5DFE31003FE262 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
		2D27FF6E1E5DFE31003FE262 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = "<group>"; };
		2D27FF711E5DFE31003FE262 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
		2D27FF731E5DFE31003FE262 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
		2D27FF751E5DFE31003FE262 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
		2D27FF7A1E5DFE31003FE262 /* ButtonsTVTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ButtonsTVTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
		2D27FF7E1E5DFE32003FE262 /* ButtonsTVTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ButtonsTVTests.swift; sourceTree = "<group>"; };
		2D27FF801E5DFE32003FE262 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
		2D27FF851E5DFE32003FE262 /* ButtonsTVUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ButtonsTVUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
		2D27FF891E5DFE32003FE262 /* ButtonsTVUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ButtonsTVUITests.swift; sourceTree = "<group>"; };
		2D27FF8B1E5DFE32003FE262 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
		2D61BD091F1D54E400C5978A /* ButtonsMac.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ButtonsMac.app; sourceTree = BUILT_PRODUCTS_DIR; };
		2D61BD0B1F1D54E400C5978A /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
		2D61BD0D1F1D54E400C5978A /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = "<group>"; };
		2D61BD0F1F1D54E400C5978A /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
		2D61BD121F1D54E400C5978A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
		2D61BD141F1D54E400C5978A /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
		2D61BD151F1D54E400C5978A /* ButtonsMac.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = ButtonsMac.entitlements; sourceTree = "<group>"; };
		2D61BD1D1F1D57D000C5978A /* ButtonsMacTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ButtonsMacTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
		2D61BD1F1F1D57D000C5978A /* ButtonsMacTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ButtonsMacTests.swift; sourceTree = "<group>"; };
		2D61BD211F1D57D000C5978A /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
		2D61BD2B1F1D583700C5978A /* ButtonsMacUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ButtonsMacUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
		2D61BD2D1F1D583700C5978A /* ButtonsMacUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ButtonsMacUITests.swift; sourceTree = "<group>"; };
		2D61BD2F1F1D583700C5978A /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
		2D786DA61E5E2C5000BB9F00 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = ButtonsWatchExtension/Assets.xcassets; sourceTree = SOURCE_ROOT; };
		2D786DA71E5E2C5000BB9F00 /* ComplicationController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ComplicationController.swift; path = ButtonsWatchExtension/ComplicationController.swift; sourceTree = SOURCE_ROOT; };
		2D786DA81E5E2C5000BB9F00 /* ExtensionDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ExtensionDelegate.swift; path = ButtonsWatchExtension/ExtensionDelegate.swift; sourceTree = SOURCE_ROOT; };
		2D786DA91E5E2C5000BB9F00 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = ButtonsWatchExtension/Info.plist; sourceTree = SOURCE_ROOT; };
		2D786DAA1E5E2C5000BB9F00 /* InterfaceController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = InterfaceController.swift; path = ButtonsWatchExtension/InterfaceController.swift; sourceTree = SOURCE_ROOT; };
		2D786DAB1E5E2C5000BB9F00 /* NotificationController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = NotificationController.swift; path = ButtonsWatchExtension/NotificationController.swift; sourceTree = SOURCE_ROOT; };
		2D786DB21E5E2C5C00BB9F00 /* PushNotificationPayload.apns */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = PushNotificationPayload.apns; path = ButtonsWatchExtension/PushNotificationPayload.apns; sourceTree = SOURCE_ROOT; };
		2DAAFFA51E5E085F0090F12F /* ButtonsTVExtension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = ButtonsTVExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; };
		2DAAFFA71E5E085F0090F12F /* TVServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = TVServices.framework; path = Library/Frameworks/TVServices.framework; sourceTree = DEVELOPER_DIR; };
		2DAAFFAA1E5E085F0090F12F /* ServiceProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ServiceProvider.swift; sourceTree = "<group>"; };
		2DAAFFAC1E5E085F0090F12F /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
		2D07616C1E53C6B8006734D2 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		2D0761801E53C6B8006734D2 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		2D07618B1E53C6B8006734D2 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		2D27FF461E5DFBDA003FE262 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		2D27FF671E5DFE31003FE262 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		2D27FF771E5DFE31003FE262 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		2D27FF821E5DFE32003FE262 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		2D61BD061F1D54E400C5978A /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		2D61BD1A1F1D57D000C5978A /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		2D61BD281F1D583700C5978A /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		2DAAFFA21E5E085F0090F12F /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				2DAAFFA81E5E085F0090F12F /* TVServices.framework in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
		2D0761661E53C6B8006734D2 = {
			isa = PBXGroup;
			children = (
				2D0761711E53C6B8006734D2 /* Buttons */,
				2D0761861E53C6B8006734D2 /* ButtonsTests */,
				2D0761911E53C6B8006734D2 /* ButtonsUITests */,
				2D27FF3E1E5DFBDA003FE262 /* ButtonsWatch */,
				2D27FF4D1E5DFBDA003FE262 /* ButtonsWatchExtension */,
				2D27FF6B1E5DFE31003FE262 /* ButtonsTV */,
				2D27FF7D1E5DFE32003FE262 /* ButtonsTVTests */,
				2D27FF881E5DFE32003FE262 /* ButtonsTVUITests */,
				2DAAFFA91E5E085F0090F12F /* ButtonsTVExtension */,
				2D61BD0A1F1D54E400C5978A /* ButtonsMac */,
				2D61BD1E1F1D57D000C5978A /* ButtonsMacTests */,
				2D61BD2C1F1D583700C5978A /* ButtonsMacUITests */,
				2DAAFFA61E5E085F0090F12F /* Frameworks */,
				2D0761701E53C6B8006734D2 /* Products */,
			);
			sourceTree = "<group>";
		};
		2D0761701E53C6B8006734D2 /* Products */ = {
			isa = PBXGroup;
			children = (
				2D07616F1E53C6B8006734D2 /* Buttons.app */,
				2D0761831E53C6B8006734D2 /* ButtonsTests.xctest */,
				2D07618E1E53C6B8006734D2 /* ButtonsUITests.xctest */,
				2D27FF3D1E5DFBDA003FE262 /* ButtonsWatch.app */,
				2D27FF491E5DFBDA003FE262 /* ButtonsWatchExtension.appex */,
				2D27FF6A1E5DFE31003FE262 /* ButtonsTV.app */,
				2D27FF7A1E5DFE31003FE262 /* ButtonsTVTests.xctest */,
				2D27FF851E5DFE32003FE262 /* ButtonsTVUITests.xctest */,
				2DAAFFA51E5E085F0090F12F /* ButtonsTVExtension.appex */,
				2D61BD091F1D54E400C5978A /* ButtonsMac.app */,
				2D61BD1D1F1D57D000C5978A /* ButtonsMacTests.xctest */,
				2D61BD2B1F1D583700C5978A /* ButtonsMacUITests.xctest */,
			);
			name = Products;
			sourceTree = "<group>";
		};
		2D0761711E53C6B8006734D2 /* Buttons */ = {
			isa = PBXGroup;
			children = (
				2D0761721E53C6B8006734D2 /* AppDelegate.swift */,
				2D0761741E53C6B8006734D2 /* ViewController.swift */,
				2D0761761E53C6B8006734D2 /* Main.storyboard */,
				2D0761791E53C6B8006734D2 /* Assets.xcassets */,
				2D07617B1E53C6B8006734D2 /* LaunchScreen.storyboard */,
				2D07617E1E53C6B8006734D2 /* Info.plist */,
			);
			path = Buttons;
			sourceTree = "<group>";
		};
		2D0761861E53C6B8006734D2 /* ButtonsTests */ = {
			isa = PBXGroup;
			children = (
				2D0761871E53C6B8006734D2 /* ButtonsTests.swift */,
				2D0761891E53C6B8006734D2 /* Info.plist */,
			);
			path = ButtonsTests;
			sourceTree = "<group>";
		};
		2D0761911E53C6B8006734D2 /* ButtonsUITests */ = {
			isa = PBXGroup;
			children = (
				2D0761921E53C6B8006734D2 /* ButtonsUITests.swift */,
				2D0761941E53C6B8006734D2 /* Info.plist */,
			);
			path = ButtonsUITests;
			sourceTree = "<group>";
		};
		2D27FF3E1E5DFBDA003FE262 /* ButtonsWatch */ = {
			isa = PBXGroup;
			children = (
				2D27FF3F1E5DFBDA003FE262 /* Interface.storyboard */,
				2D27FF421E5DFBDA003FE262 /* Assets.xcassets */,
				2D27FF441E5DFBDA003FE262 /* Info.plist */,
			);
			path = ButtonsWatch;
			sourceTree = "<group>";
		};
		2D27FF4D1E5DFBDA003FE262 /* ButtonsWatchExtension */ = {
			isa = PBXGroup;
			children = (
				2D786DA61E5E2C5000BB9F00 /* Assets.xcassets */,
				2D786DA71E5E2C5000BB9F00 /* ComplicationController.swift */,
				2D786DA81E5E2C5000BB9F00 /* ExtensionDelegate.swift */,
				2D786DA91E5E2C5000BB9F00 /* Info.plist */,
				2D786DAA1E5E2C5000BB9F00 /* InterfaceController.swift */,
				2D786DAB1E5E2C5000BB9F00 /* NotificationController.swift */,
				2D27FF4E1E5DFBDA003FE262 /* Supporting Files */,
			);
			name = ButtonsWatchExtension;
			path = "ButtonsWatch Extension";
			sourceTree = "<group>";
		};
		2D27FF4E1E5DFBDA003FE262 /* Supporting Files */ = {
			isa = PBXGroup;
			children = (
				2D786DB21E5E2C5C00BB9F00 /* PushNotificationPayload.apns */,
			);
			name = "Supporting Files";
			sourceTree = "<group>";
		};
		2D27FF6B1E5DFE31003FE262 /* ButtonsTV */ = {
			isa = PBXGroup;
			children = (
				2D27FF6C1E5DFE31003FE262 /* AppDelegate.swift */,
				2D27FF6E1E5DFE31003FE262 /* ViewController.swift */,
				2D27FF701E5DFE31003FE262 /* Main.storyboard */,
				2D27FF731E5DFE31003FE262 /* Assets.xcassets */,
				2D27FF751E5DFE31003FE262 /* Info.plist */,
			);
			path = ButtonsTV;
			sourceTree = "<group>";
		};
		2D27FF7D1E5DFE32003FE262 /* ButtonsTVTests */ = {
			isa = PBXGroup;
			children = (
				2D27FF7E1E5DFE32003FE262 /* ButtonsTVTests.swift */,
				2D27FF801E5DFE32003FE262 /* Info.plist */,
			);
			path = ButtonsTVTests;
			sourceTree = "<group>";
		};
		2D27FF881E5DFE32003FE262 /* ButtonsTVUITests */ = {
			isa = PBXGroup;
			children = (
				2D27FF891E5DFE32003FE262 /* ButtonsTVUITests.swift */,
				2D27FF8B1E5DFE32003FE262 /* Info.plist */,
			);
			path = ButtonsTVUITests;
			sourceTree = "<group>";
		};
		2D61BD0A1F1D54E400C5978A /* ButtonsMac */ = {
			isa = PBXGroup;
			children = (
				2D61BD0B1F1D54E400C5978A /* AppDelegate.swift */,
				2D61BD0D1F1D54E400C5978A /* ViewController.swift */,
				2D61BD0F1F1D54E400C5978A /* Assets.xcassets */,
				2D61BD111F1D54E400C5978A /* Main.storyboard */,
				2D61BD141F1D54E400C5978A /* Info.plist */,
				2D61BD151F1D54E400C5978A /* ButtonsMac.entitlements */,
			);
			path = ButtonsMac;
			sourceTree = "<group>";
		};
		2D61BD1E1F1D57D000C5978A /* ButtonsMacTests */ = {
			isa = PBXGroup;
			children = (
				2D61BD1F1F1D57D000C5978A /* ButtonsMacTests.swift */,
				2D61BD211F1D57D000C5978A /* Info.plist */,
			);
			path = ButtonsMacTests;
			sourceTree = "<group>";
		};
		2D61BD2C1F1D583700C5978A /* ButtonsMacUITests */ = {
			isa = PBXGroup;
			children = (
				2D61BD2D1F1D583700C5978A /* ButtonsMacUITests.swift */,
				2D61BD2F1F1D583700C5978A /* Info.plist */,
			);
			path = ButtonsMacUITests;
			sourceTree = "<group>";
		};
		2DAAFFA61E5E085F0090F12F /* Frameworks */ = {
			isa = PBXGroup;
			children = (
				2DAAFFA71E5E085F0090F12F /* TVServices.framework */,
			);
			name = Frameworks;
			sourceTree = "<group>";
		};
		2DAAFFA91E5E085F0090F12F /* ButtonsTVExtension */ = {
			isa = PBXGroup;
			children = (
				2DAAFFAA1E5E085F0090F12F /* ServiceProvider.swift */,
				2DAAFFAC1E5E085F0090F12F /* Info.plist */,
			);
			path = ButtonsTVExtension;
			sourceTree = "<group>";
		};
/* End PBXGroup section */

/* Begin PBXNativeTarget section */
		2D07616E1E53C6B8006734D2 /* Buttons */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 2D0761971E53C6B8006734D2 /* Build configuration list for PBXNativeTarget "Buttons" */;
			buildPhases = (
				2D07616B1E53C6B8006734D2 /* Sources */,
				2D07616C1E53C6B8006734D2 /* Frameworks */,
				2D07616D1E53C6B8006734D2 /* Resources */,
				2D8340A91E5DF7690006C4AB /* Embed App Extensions */,
				2D27FF651E5DFBDA003FE262 /* Embed Watch Content */,
			);
			buildRules = (
			);
			dependencies = (
				2D27FF5C1E5DFBDA003FE262 /* PBXTargetDependency */,
			);
			name = Buttons;
			productName = Buttons;
			productReference = 2D07616F1E53C6B8006734D2 /* Buttons.app */;
			productType = "com.apple.product-type.application";
		};
		2D0761821E53C6B8006734D2 /* ButtonsTests */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 2D07619A1E53C6B8006734D2 /* Build configuration list for PBXNativeTarget "ButtonsTests" */;
			buildPhases = (
				2D07617F1E53C6B8006734D2 /* Sources */,
				2D0761801E53C6B8006734D2 /* Frameworks */,
				2D0761811E53C6B8006734D2 /* Resources */,
			);
			buildRules = (
			);
			dependencies = (
				2D0761851E53C6B8006734D2 /* PBXTargetDependency */,
			);
			name = ButtonsTests;
			productName = ButtonsTests;
			productReference = 2D0761831E53C6B8006734D2 /* ButtonsTests.xctest */;
			productType = "com.apple.product-type.bundle.unit-test";
		};
		2D07618D1E53C6B8006734D2 /* ButtonsUITests */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 2D07619D1E53C6B8006734D2 /* Build configuration list for PBXNativeTarget "ButtonsUITests" */;
			buildPhases = (
				2D07618A1E53C6B8006734D2 /* Sources */,
				2D07618B1E53C6B8006734D2 /* Frameworks */,
				2D07618C1E53C6B8006734D2 /* Resources */,
			);
			buildRules = (
			);
			dependencies = (
				2D0761901E53C6B8006734D2 /* PBXTargetDependency */,
			);
			name = ButtonsUITests;
			productName = ButtonsUITests;
			productReference = 2D07618E1E53C6B8006734D2 /* ButtonsUITests.xctest */;
			productType = "com.apple.product-type.bundle.ui-testing";
		};
		2D27FF3C1E5DFBDA003FE262 /* ButtonsWatch */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 2D27FF641E5DFBDA003FE262 /* Build configuration list for PBXNativeTarget "ButtonsWatch" */;
			buildPhases = (
				2D27FF3B1E5DFBDA003FE262 /* Resources */,
				2D27FF631E5DFBDA003FE262 /* Embed App Extensions */,
			);
			buildRules = (
			);
			dependencies = (
				2D27FF4C1E5DFBDA003FE262 /* PBXTargetDependency */,
			);
			name = ButtonsWatch;
			productName = ButtonsWatch;
			productReference = 2D27FF3D1E5DFBDA003FE262 /* ButtonsWatch.app */;
			productType = "com.apple.product-type.application.watchapp2";
		};
		2D27FF481E5DFBDA003FE262 /* ButtonsWatchExtension */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 2D27FF621E5DFBDA003FE262 /* Build configuration list for PBXNativeTarget "ButtonsWatchExtension" */;
			buildPhases = (
				2D27FF451E5DFBDA003FE262 /* Sources */,
				2D27FF461E5DFBDA003FE262 /* Frameworks */,
				2D27FF471E5DFBDA003FE262 /* Resources */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = ButtonsWatchExtension;
			productName = "ButtonsWatch Extension";
			productReference = 2D27FF491E5DFBDA003FE262 /* ButtonsWatchExtension.appex */;
			productType = "com.apple.product-type.watchkit2-extension";
		};
		2D27FF691E5DFE31003FE262 /* ButtonsTV */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 2D27FF8C1E5DFE32003FE262 /* Build configuration list for PBXNativeTarget "ButtonsTV" */;
			buildPhases = (
				2D27FF661E5DFE31003FE262 /* Sources */,
				2D27FF671E5DFE31003FE262 /* Frameworks */,
				2D27FF681E5DFE31003FE262 /* Resources */,
				2DAAFFB31E5E085F0090F12F /* Embed App Extensions */,
			);
			buildRules = (
			);
			dependencies = (
				2DAAFFAE1E5E085F0090F12F /* PBXTargetDependency */,
			);
			name = ButtonsTV;
			productName = ButtonsTV;
			productReference = 2D27FF6A1E5DFE31003FE262 /* ButtonsTV.app */;
			productType = "com.apple.product-type.application";
		};
		2D27FF791E5DFE31003FE262 /* ButtonsTVTests */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 2D27FF8F1E5DFE32003FE262 /* Build configuration list for PBXNativeTarget "ButtonsTVTests" */;
			buildPhases = (
				2D27FF761E5DFE31003FE262 /* Sources */,
				2D27FF771E5DFE31003FE262 /* Frameworks */,
				2D27FF781E5DFE31003FE262 /* Resources */,
			);
			buildRules = (
			);
			dependencies = (
				2D27FF7C1E5DFE32003FE262 /* PBXTargetDependency */,
			);
			name = ButtonsTVTests;
			productName = ButtonsTVTests;
			productReference = 2D27FF7A1E5DFE31003FE262 /* ButtonsTVTests.xctest */;
			productType = "com.apple.product-type.bundle.unit-test";
		};
		2D27FF841E5DFE32003FE262 /* ButtonsTVUITests */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 2D27FF921E5DFE32003FE262 /* Build configuration list for PBXNativeTarget "ButtonsTVUITests" */;
			buildPhases = (
				2D27FF811E5DFE32003FE262 /* Sources */,
				2D27FF821E5DFE32003FE262 /* Frameworks */,
				2D27FF831E5DFE32003FE262 /* Resources */,
			);
			buildRules = (
			);
			dependencies = (
				2D27FF871E5DFE32003FE262 /* PBXTargetDependency */,
			);
			name = ButtonsTVUITests;
			productName = ButtonsTVUITests;
			productReference = 2D27FF851E5DFE32003FE262 /* ButtonsTVUITests.xctest */;
			productType = "com.apple.product-type.bundle.ui-testing";
		};
		2D61BD081F1D54E400C5978A /* ButtonsMac */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 2D61BD181F1D54E400C5978A /* Build configuration list for PBXNativeTarget "ButtonsMac" */;
			buildPhases = (
				2D61BD051F1D54E400C5978A /* Sources */,
				2D61BD061F1D54E400C5978A /* Frameworks */,
				2D61BD071F1D54E400C5978A /* Resources */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = ButtonsMac;
			productName = ButtonsMac;
			productReference = 2D61BD091F1D54E400C5978A /* ButtonsMac.app */;
			productType = "com.apple.product-type.application";
		};
		2D61BD1C1F1D57D000C5978A /* ButtonsMacTests */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 2D61BD241F1D57D000C5978A /* Build configuration list for PBXNativeTarget "ButtonsMacTests" */;
			buildPhases = (
				2D61BD191F1D57D000C5978A /* Sources */,
				2D61BD1A1F1D57D000C5978A /* Frameworks */,
				2D61BD1B1F1D57D000C5978A /* Resources */,
			);
			buildRules = (
			);
			dependencies = (
				2D61BD231F1D57D000C5978A /* PBXTargetDependency */,
			);
			name = ButtonsMacTests;
			productName = ButtonsMacTests;
			productReference = 2D61BD1D1F1D57D000C5978A /* ButtonsMacTests.xctest */;
			productType = "com.apple.product-type.bundle.unit-test";
		};
		2D61BD2A1F1D583700C5978A /* ButtonsMacUITests */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 2D61BD321F1D583700C5978A /* Build configuration list for PBXNativeTarget "ButtonsMacUITests" */;
			buildPhases = (
				2D61BD271F1D583700C5978A /* Sources */,
				2D61BD281F1D583700C5978A /* Frameworks */,
				2D61BD291F1D583700C5978A /* Resources */,
			);
			buildRules = (
			);
			dependencies = (
				2D61BD311F1D583700C5978A /* PBXTargetDependency */,
			);
			name = ButtonsMacUITests;
			productName = ButtonsMacUITests;
			productReference = 2D61BD2B1F1D583700C5978A /* ButtonsMacUITests.xctest */;
			productType = "com.apple.product-type.bundle.ui-testing";
		};
		2DAAFFA41E5E085F0090F12F /* ButtonsTVExtension */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 2DAAFFB21E5E085F0090F12F /* Build configuration list for PBXNativeTarget "ButtonsTVExtension" */;
			buildPhases = (
				2DAAFFA11E5E085F0090F12F /* Sources */,
				2DAAFFA21E5E085F0090F12F /* Frameworks */,
				2DAAFFA31E5E085F0090F12F /* Resources */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = ButtonsTVExtension;
			productName = ButtonsTVExtension;
			productReference = 2DAAFFA51E5E085F0090F12F /* ButtonsTVExtension.appex */;
			productType = "com.apple.product-type.tv-app-extension";
		};
/* End PBXNativeTarget section */

/* Begin PBXProject section */
		2D0761671E53C6B8006734D2 /* Project object */ = {
			isa = PBXProject;
			attributes = {
				LastSwiftUpdateCheck = 0900;
				LastUpgradeCheck = 0920;
				ORGANIZATIONNAME = "Sergio Campama";
				TargetAttributes = {
					2D07616E1E53C6B8006734D2 = {
						CreatedOnToolsVersion = 8.2;
						DevelopmentTeam = EQHXZ8M8AV;
						LastSwiftMigration = 0920;
						ProvisioningStyle = Automatic;
					};
					2D0761821E53C6B8006734D2 = {
						CreatedOnToolsVersion = 8.2;
						DevelopmentTeam = EQHXZ8M8AV;
						LastSwiftMigration = 0920;
						ProvisioningStyle = Automatic;
						TestTargetID = 2D07616E1E53C6B8006734D2;
					};
					2D07618D1E53C6B8006734D2 = {
						CreatedOnToolsVersion = 8.2;
						DevelopmentTeam = EQHXZ8M8AV;
						LastSwiftMigration = 0920;
						ProvisioningStyle = Automatic;
						TestTargetID = 2D07616E1E53C6B8006734D2;
					};
					2D27FF3C1E5DFBDA003FE262 = {
						CreatedOnToolsVersion = 8.3;
						DevelopmentTeam = EQHXZ8M8AV;
						ProvisioningStyle = Automatic;
					};
					2D27FF481E5DFBDA003FE262 = {
						CreatedOnToolsVersion = 8.3;
						DevelopmentTeam = EQHXZ8M8AV;
						LastSwiftMigration = 0920;
						ProvisioningStyle = Automatic;
					};
					2D27FF691E5DFE31003FE262 = {
						CreatedOnToolsVersion = 8.3;
						DevelopmentTeam = EQHXZ8M8AV;
						ProvisioningStyle = Automatic;
					};
					2D27FF791E5DFE31003FE262 = {
						CreatedOnToolsVersion = 8.3;
						DevelopmentTeam = EQHXZ8M8AV;
						ProvisioningStyle = Automatic;
						TestTargetID = 2D27FF691E5DFE31003FE262;
					};
					2D27FF841E5DFE32003FE262 = {
						CreatedOnToolsVersion = 8.3;
						DevelopmentTeam = EQHXZ8M8AV;
						ProvisioningStyle = Automatic;
						TestTargetID = 2D27FF691E5DFE31003FE262;
					};
					2D61BD081F1D54E400C5978A = {
						CreatedOnToolsVersion = 9.0;
					};
					2D61BD1C1F1D57D000C5978A = {
						CreatedOnToolsVersion = 9.0;
						TestTargetID = 2D61BD081F1D54E400C5978A;
					};
					2D61BD2A1F1D583700C5978A = {
						CreatedOnToolsVersion = 9.0;
						TestTargetID = 2D61BD081F1D54E400C5978A;
					};
					2DAAFFA41E5E085F0090F12F = {
						CreatedOnToolsVersion = 8.3;
						DevelopmentTeam = EQHXZ8M8AV;
						ProvisioningStyle = Automatic;
					};
				};
			};
			buildConfigurationList = 2D07616A1E53C6B8006734D2 /* Build configuration list for PBXProject "Buttons" */;
			compatibilityVersion = "Xcode 3.2";
			developmentRegion = English;
			hasScannedForEncodings = 0;
			knownRegions = (
				en,
				Base,
			);
			mainGroup = 2D0761661E53C6B8006734D2;
			productRefGroup = 2D0761701E53C6B8006734D2 /* Products */;
			projectDirPath = "";
			projectRoot = "";
			targets = (
				2D07616E1E53C6B8006734D2 /* Buttons */,
				2D0761821E53C6B8006734D2 /* ButtonsTests */,
				2D07618D1E53C6B8006734D2 /* ButtonsUITests */,
				2D27FF3C1E5DFBDA003FE262 /* ButtonsWatch */,
				2D27FF481E5DFBDA003FE262 /* ButtonsWatchExtension */,
				2D27FF691E5DFE31003FE262 /* ButtonsTV */,
				2D27FF791E5DFE31003FE262 /* ButtonsTVTests */,
				2D27FF841E5DFE32003FE262 /* ButtonsTVUITests */,
				2DAAFFA41E5E085F0090F12F /* ButtonsTVExtension */,
				2D61BD081F1D54E400C5978A /* ButtonsMac */,
				2D61BD1C1F1D57D000C5978A /* ButtonsMacTests */,
				2D61BD2A1F1D583700C5978A /* ButtonsMacUITests */,
			);
		};
/* End PBXProject section */

/* Begin PBXResourcesBuildPhase section */
		2D07616D1E53C6B8006734D2 /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				2D07617D1E53C6B8006734D2 /* LaunchScreen.storyboard in Resources */,
				2D07617A1E53C6B8006734D2 /* Assets.xcassets in Resources */,
				2D0761781E53C6B8006734D2 /* Main.storyboard in Resources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		2D0761811E53C6B8006734D2 /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		2D07618C1E53C6B8006734D2 /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		2D27FF3B1E5DFBDA003FE262 /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				2D27FF431E5DFBDA003FE262 /* Assets.xcassets in Resources */,
				2D27FF411E5DFBDA003FE262 /* Interface.storyboard in Resources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		2D27FF471E5DFBDA003FE262 /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				2D786DAC1E5E2C5000BB9F00 /* Assets.xcassets in Resources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		2D27FF681E5DFE31003FE262 /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				2D27FF741E5DFE31003FE262 /* Assets.xcassets in Resources */,
				2D27FF721E5DFE31003FE262 /* Main.storyboard in Resources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		2D27FF781E5DFE31003FE262 /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		2D27FF831E5DFE32003FE262 /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		2D61BD071F1D54E400C5978A /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				2D61BD101F1D54E400C5978A /* Assets.xcassets in Resources */,
				2D61BD131F1D54E400C5978A /* Main.storyboard in Resources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		2D61BD1B1F1D57D000C5978A /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		2D61BD291F1D583700C5978A /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		2DAAFFA31E5E085F0090F12F /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXResourcesBuildPhase section */

/* Begin PBXSourcesBuildPhase section */
		2D07616B1E53C6B8006734D2 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				2D0761751E53C6B8006734D2 /* ViewController.swift in Sources */,
				2D0761731E53C6B8006734D2 /* AppDelegate.swift in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		2D07617F1E53C6B8006734D2 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				2D0761881E53C6B8006734D2 /* ButtonsTests.swift in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		2D07618A1E53C6B8006734D2 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				2D0761931E53C6B8006734D2 /* ButtonsUITests.swift in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		2D27FF451E5DFBDA003FE262 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				2D62FFB21E673F3500542AE3 /* ComplicationController.swift in Sources */,
				2D62FFB31E673F3500542AE3 /* ExtensionDelegate.swift in Sources */,
				2D62FFB41E673F3500542AE3 /* NotificationController.swift in Sources */,
				2D786DB01E5E2C5000BB9F00 /* InterfaceController.swift in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		2D27FF661E5DFE31003FE262 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				2D27FF6F1E5DFE31003FE262 /* ViewController.swift in Sources */,
				2D27FF6D1E5DFE31003FE262 /* AppDelegate.swift in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		2D27FF761E5DFE31003FE262 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				2D27FF7F1E5DFE32003FE262 /* ButtonsTVTests.swift in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		2D27FF811E5DFE32003FE262 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				2D27FF8A1E5DFE32003FE262 /* ButtonsTVUITests.swift in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		2D61BD051F1D54E400C5978A /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				2D61BD0E1F1D54E400C5978A /* ViewController.swift in Sources */,
				2D61BD0C1F1D54E400C5978A /* AppDelegate.swift in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		2D61BD191F1D57D000C5978A /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				2D61BD201F1D57D000C5978A /* ButtonsMacTests.swift in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		2D61BD271F1D583700C5978A /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				2D61BD2E1F1D583700C5978A /* ButtonsMacUITests.swift in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		2DAAFFA11E5E085F0090F12F /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				2DAAFFAB1E5E085F0090F12F /* ServiceProvider.swift in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXSourcesBuildPhase section */

/* Begin PBXTargetDependency section */
		2D0761851E53C6B8006734D2 /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			target = 2D07616E1E53C6B8006734D2 /* Buttons */;
			targetProxy = 2D0761841E53C6B8006734D2 /* PBXContainerItemProxy */;
		};
		2D0761901E53C6B8006734D2 /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			target = 2D07616E1E53C6B8006734D2 /* Buttons */;
			targetProxy = 2D07618F1E53C6B8006734D2 /* PBXContainerItemProxy */;
		};
		2D27FF4C1E5DFBDA003FE262 /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			target = 2D27FF481E5DFBDA003FE262 /* ButtonsWatchExtension */;
			targetProxy = 2D27FF4B1E5DFBDA003FE262 /* PBXContainerItemProxy */;
		};
		2D27FF5C1E5DFBDA003FE262 /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			target = 2D27FF3C1E5DFBDA003FE262 /* ButtonsWatch */;
			targetProxy = 2D27FF5B1E5DFBDA003FE262 /* PBXContainerItemProxy */;
		};
		2D27FF7C1E5DFE32003FE262 /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			target = 2D27FF691E5DFE31003FE262 /* ButtonsTV */;
			targetProxy = 2D27FF7B1E5DFE32003FE262 /* PBXContainerItemProxy */;
		};
		2D27FF871E5DFE32003FE262 /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			target = 2D27FF691E5DFE31003FE262 /* ButtonsTV */;
			targetProxy = 2D27FF861E5DFE32003FE262 /* PBXContainerItemProxy */;
		};
		2D61BD231F1D57D000C5978A /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			target = 2D61BD081F1D54E400C5978A /* ButtonsMac */;
			targetProxy = 2D61BD221F1D57D000C5978A /* PBXContainerItemProxy */;
		};
		2D61BD311F1D583700C5978A /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			target = 2D61BD081F1D54E400C5978A /* ButtonsMac */;
			targetProxy = 2D61BD301F1D583700C5978A /* PBXContainerItemProxy */;
		};
		2DAAFFAE1E5E085F0090F12F /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			target = 2DAAFFA41E5E085F0090F12F /* ButtonsTVExtension */;
			targetProxy = 2DAAFFAD1E5E085F0090F12F /* PBXContainerItemProxy */;
		};
/* End PBXTargetDependency section */

/* Begin PBXVariantGroup section */
		2D0761761E53C6B8006734D2 /* Main.storyboard */ = {
			isa = PBXVariantGroup;
			children = (
				2D0761771E53C6B8006734D2 /* Base */,
			);
			name = Main.storyboard;
			sourceTree = "<group>";
		};
		2D07617B1E53C6B8006734D2 /* LaunchScreen.storyboard */ = {
			isa = PBXVariantGroup;
			children = (
				2D07617C1E53C6B8006734D2 /* Base */,
			);
			name = LaunchScreen.storyboard;
			sourceTree = "<group>";
		};
		2D27FF3F1E5DFBDA003FE262 /* Interface.storyboard */ = {
			isa = PBXVariantGroup;
			children = (
				2D27FF401E5DFBDA003FE262 /* Base */,
			);
			name = Interface.storyboard;
			sourceTree = "<group>";
		};
		2D27FF701E5DFE31003FE262 /* Main.storyboard */ = {
			isa = PBXVariantGroup;
			children = (
				2D27FF711E5DFE31003FE262 /* Base */,
			);
			name = Main.storyboard;
			sourceTree = "<group>";
		};
		2D61BD111F1D54E400C5978A /* Main.storyboard */ = {
			isa = PBXVariantGroup;
			children = (
				2D61BD121F1D54E400C5978A /* Base */,
			);
			name = Main.storyboard;
			sourceTree = "<group>";
		};
/* End PBXVariantGroup section */

/* Begin XCBuildConfiguration section */
		2D0761951E53C6B8006734D2 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				CLANG_ANALYZER_NONNULL = YES;
				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
				CLANG_CXX_LIBRARY = "libc++";
				CLANG_ENABLE_MODULES = YES;
				CLANG_ENABLE_OBJC_ARC = YES;
				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
				CLANG_WARN_BOOL_CONVERSION = YES;
				CLANG_WARN_COMMA = YES;
				CLANG_WARN_CONSTANT_CONVERSION = YES;
				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
				CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
				CLANG_WARN_EMPTY_BODY = YES;
				CLANG_WARN_ENUM_CONVERSION = YES;
				CLANG_WARN_INFINITE_RECURSION = YES;
				CLANG_WARN_INT_CONVERSION = YES;
				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
				CLANG_WARN_STRICT_PROTOTYPES = YES;
				CLANG_WARN_SUSPICIOUS_MOVE = YES;
				CLANG_WARN_UNREACHABLE_CODE = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
				COPY_PHASE_STRIP = NO;
				DEBUG_INFORMATION_FORMAT = dwarf;
				ENABLE_STRICT_OBJC_MSGSEND = YES;
				ENABLE_TESTABILITY = YES;
				GCC_C_LANGUAGE_STANDARD = gnu99;
				GCC_DYNAMIC_NO_PIC = NO;
				GCC_NO_COMMON_BLOCKS = YES;
				GCC_OPTIMIZATION_LEVEL = 0;
				GCC_PREPROCESSOR_DEFINITIONS = (
					"DEBUG=1",
					"$(inherited)",
				);
				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
				GCC_WARN_UNDECLARED_SELECTOR = YES;
				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
				GCC_WARN_UNUSED_FUNCTION = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				IPHONEOS_DEPLOYMENT_TARGET = 10.2;
				MTL_ENABLE_DEBUG_INFO = YES;
				ONLY_ACTIVE_ARCH = YES;
				SDKROOT = iphoneos;
				SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
				SWIFT_OPTIMIZATION_LEVEL = "-Onone";
				TARGETED_DEVICE_FAMILY = "1,2";
			};
			name = Debug;
		};
		2D0761961E53C6B8006734D2 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				CLANG_ANALYZER_NONNULL = YES;
				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
				CLANG_CXX_LIBRARY = "libc++";
				CLANG_ENABLE_MODULES = YES;
				CLANG_ENABLE_OBJC_ARC = YES;
				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
				CLANG_WARN_BOOL_CONVERSION = YES;
				CLANG_WARN_COMMA = YES;
				CLANG_WARN_CONSTANT_CONVERSION = YES;
				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
				CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
				CLANG_WARN_EMPTY_BODY = YES;
				CLANG_WARN_ENUM_CONVERSION = YES;
				CLANG_WARN_INFINITE_RECURSION = YES;
				CLANG_WARN_INT_CONVERSION = YES;
				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
				CLANG_WARN_STRICT_PROTOTYPES = YES;
				CLANG_WARN_SUSPICIOUS_MOVE = YES;
				CLANG_WARN_UNREACHABLE_CODE = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
				COPY_PHASE_STRIP = NO;
				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
				ENABLE_NS_ASSERTIONS = NO;
				ENABLE_STRICT_OBJC_MSGSEND = YES;
				GCC_C_LANGUAGE_STANDARD = gnu99;
				GCC_NO_COMMON_BLOCKS = YES;
				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
				GCC_WARN_UNDECLARED_SELECTOR = YES;
				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
				GCC_WARN_UNUSED_FUNCTION = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				IPHONEOS_DEPLOYMENT_TARGET = 10.2;
				MTL_ENABLE_DEBUG_INFO = NO;
				SDKROOT = iphoneos;
				SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
				TARGETED_DEVICE_FAMILY = "1,2";
				VALIDATE_PRODUCT = YES;
			};
			name = Release;
		};
		2D0761981E53C6B8006734D2 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
				DEVELOPMENT_TEAM = EQHXZ8M8AV;
				INFOPLIST_FILE = Buttons/Info.plist;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = com.google.Buttons;
				PRODUCT_NAME = "$(TARGET_NAME)";
				SWIFT_SWIFT3_OBJC_INFERENCE = Default;
				SWIFT_VERSION = 4.0;
			};
			name = Debug;
		};
		2D0761991E53C6B8006734D2 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
				DEVELOPMENT_TEAM = EQHXZ8M8AV;
				INFOPLIST_FILE = Buttons/Info.plist;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = com.google.Buttons;
				PRODUCT_NAME = "$(TARGET_NAME)";
				SWIFT_SWIFT3_OBJC_INFERENCE = Default;
				SWIFT_VERSION = 4.0;
			};
			name = Release;
		};
		2D07619B1E53C6B8006734D2 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
				BUNDLE_LOADER = "$(TEST_HOST)";
				DEVELOPMENT_TEAM = EQHXZ8M8AV;
				INFOPLIST_FILE = ButtonsTests/Info.plist;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = com.google.ButtonsTests;
				PRODUCT_NAME = "$(TARGET_NAME)";
				SWIFT_SWIFT3_OBJC_INFERENCE = Default;
				SWIFT_VERSION = 4.0;
				TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Buttons.app/Buttons";
			};
			name = Debug;
		};
		2D07619C1E53C6B8006734D2 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
				BUNDLE_LOADER = "$(TEST_HOST)";
				DEVELOPMENT_TEAM = EQHXZ8M8AV;
				INFOPLIST_FILE = ButtonsTests/Info.plist;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = com.google.ButtonsTests;
				PRODUCT_NAME = "$(TARGET_NAME)";
				SWIFT_SWIFT3_OBJC_INFERENCE = Default;
				SWIFT_VERSION = 4.0;
				TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Buttons.app/Buttons";
			};
			name = Release;
		};
		2D07619E1E53C6B8006734D2 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
				DEVELOPMENT_TEAM = EQHXZ8M8AV;
				INFOPLIST_FILE = ButtonsUITests/Info.plist;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = com.google.ButtonsUITests;
				PRODUCT_NAME = "$(TARGET_NAME)";
				SWIFT_SWIFT3_OBJC_INFERENCE = Default;
				SWIFT_VERSION = 4.0;
				TEST_TARGET_NAME = Buttons;
			};
			name = Debug;
		};
		2D07619F1E53C6B8006734D2 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
				DEVELOPMENT_TEAM = EQHXZ8M8AV;
				INFOPLIST_FILE = ButtonsUITests/Info.plist;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = com.google.ButtonsUITests;
				PRODUCT_NAME = "$(TARGET_NAME)";
				SWIFT_SWIFT3_OBJC_INFERENCE = Default;
				SWIFT_VERSION = 4.0;
				TEST_TARGET_NAME = Buttons;
			};
			name = Release;
		};
		2D27FF5E1E5DFBDA003FE262 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
				CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
				DEVELOPMENT_TEAM = EQHXZ8M8AV;
				IBSC_MODULE = ButtonsWatchExtension;
				INFOPLIST_FILE = ButtonsWatch/Info.plist;
				PRODUCT_BUNDLE_IDENTIFIER = com.google.Buttons.watchkitapp;
				PRODUCT_NAME = "$(TARGET_NAME)";
				SDKROOT = watchos;
				SKIP_INSTALL = YES;
				SWIFT_VERSION = 3.0;
				TARGETED_DEVICE_FAMILY = 4;
				WATCHOS_DEPLOYMENT_TARGET = 3.0;
			};
			name = Debug;
		};
		2D27FF5F1E5DFBDA003FE262 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
				CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
				DEVELOPMENT_TEAM = EQHXZ8M8AV;
				IBSC_MODULE = ButtonsWatchExtension;
				INFOPLIST_FILE = ButtonsWatch/Info.plist;
				PRODUCT_BUNDLE_IDENTIFIER = com.google.Buttons.watchkitapp;
				PRODUCT_NAME = "$(TARGET_NAME)";
				SDKROOT = watchos;
				SKIP_INSTALL = YES;
				SWIFT_VERSION = 3.0;
				TARGETED_DEVICE_FAMILY = 4;
				WATCHOS_DEPLOYMENT_TARGET = 3.0;
			};
			name = Release;
		};
		2D27FF601E5DFBDA003FE262 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ASSETCATALOG_COMPILER_COMPLICATION_NAME = Complication;
				CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
				DEVELOPMENT_TEAM = EQHXZ8M8AV;
				INFOPLIST_FILE = "$(SRCROOT)/ButtonsWatchExtension/Info.plist";
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = com.google.Buttons.watchkitapp.watchkitextension;
				PRODUCT_NAME = "${TARGET_NAME}";
				SDKROOT = watchos;
				SKIP_INSTALL = YES;
				SWIFT_SWIFT3_OBJC_INFERENCE = Default;
				SWIFT_VERSION = 4.0;
				TARGETED_DEVICE_FAMILY = 4;
				WATCHOS_DEPLOYMENT_TARGET = 3.2;
			};
			name = Debug;
		};
		2D27FF611E5DFBDA003FE262 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ASSETCATALOG_COMPILER_COMPLICATION_NAME = Complication;
				CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
				DEVELOPMENT_TEAM = EQHXZ8M8AV;
				INFOPLIST_FILE = "$(SRCROOT)/ButtonsWatchExtension/Info.plist";
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = com.google.Buttons.watchkitapp.watchkitextension;
				PRODUCT_NAME = "${TARGET_NAME}";
				SDKROOT = watchos;
				SKIP_INSTALL = YES;
				SWIFT_SWIFT3_OBJC_INFERENCE = Default;
				SWIFT_VERSION = 4.0;
				TARGETED_DEVICE_FAMILY = 4;
				WATCHOS_DEPLOYMENT_TARGET = 3.2;
			};
			name = Release;
		};
		2D27FF8D1E5DFE32003FE262 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
				ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image";
				ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
				CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
				DEVELOPMENT_TEAM = EQHXZ8M8AV;
				INFOPLIST_FILE = ButtonsTV/Info.plist;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = com.google.ButtonsTV;
				PRODUCT_NAME = "$(TARGET_NAME)";
				SDKROOT = appletvos;
				SWIFT_VERSION = 3.0;
				TARGETED_DEVICE_FAMILY = 3;
				TVOS_DEPLOYMENT_TARGET = 10.0;
			};
			name = Debug;
		};
		2D27FF8E1E5DFE32003FE262 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
				ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image";
				ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
				CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
				DEVELOPMENT_TEAM = EQHXZ8M8AV;
				INFOPLIST_FILE = ButtonsTV/Info.plist;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = com.google.ButtonsTV;
				PRODUCT_NAME = "$(TARGET_NAME)";
				SDKROOT = appletvos;
				SWIFT_VERSION = 3.0;
				TARGETED_DEVICE_FAMILY = 3;
				TVOS_DEPLOYMENT_TARGET = 10.0;
			};
			name = Release;
		};
		2D27FF901E5DFE32003FE262 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
				BUNDLE_LOADER = "$(TEST_HOST)";
				CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
				DEVELOPMENT_TEAM = EQHXZ8M8AV;
				INFOPLIST_FILE = ButtonsTVTests/Info.plist;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = com.google.ButtonsTVTests;
				PRODUCT_NAME = "$(TARGET_NAME)";
				SDKROOT = appletvos;
				SWIFT_VERSION = 3.0;
				TEST_HOST = "$(BUILT_PRODUCTS_DIR)/ButtonsTV.app/ButtonsTV";
				TVOS_DEPLOYMENT_TARGET = 10.2;
			};
			name = Debug;
		};
		2D27FF911E5DFE32003FE262 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
				BUNDLE_LOADER = "$(TEST_HOST)";
				CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
				DEVELOPMENT_TEAM = EQHXZ8M8AV;
				INFOPLIST_FILE = ButtonsTVTests/Info.plist;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = com.google.ButtonsTVTests;
				PRODUCT_NAME = "$(TARGET_NAME)";
				SDKROOT = appletvos;
				SWIFT_VERSION = 3.0;
				TEST_HOST = "$(BUILT_PRODUCTS_DIR)/ButtonsTV.app/ButtonsTV";
				TVOS_DEPLOYMENT_TARGET = 10.2;
			};
			name = Release;
		};
		2D27FF931E5DFE32003FE262 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
				CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
				DEVELOPMENT_TEAM = EQHXZ8M8AV;
				INFOPLIST_FILE = ButtonsTVUITests/Info.plist;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = com.google.ButtonsTVUITests;
				PRODUCT_NAME = "$(TARGET_NAME)";
				SDKROOT = appletvos;
				SWIFT_VERSION = 3.0;
				TEST_TARGET_NAME = ButtonsTV;
				TVOS_DEPLOYMENT_TARGET = 10.2;
			};
			name = Debug;
		};
		2D27FF941E5DFE32003FE262 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
				CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
				DEVELOPMENT_TEAM = EQHXZ8M8AV;
				INFOPLIST_FILE = ButtonsTVUITests/Info.plist;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = com.google.ButtonsTVUITests;
				PRODUCT_NAME = "$(TARGET_NAME)";
				SDKROOT = appletvos;
				SWIFT_VERSION = 3.0;
				TEST_TARGET_NAME = ButtonsTV;
				TVOS_DEPLOYMENT_TARGET = 10.2;
			};
			name = Release;
		};
		2D61BD161F1D54E400C5978A /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
				CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
				CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
				CLANG_WARN_COMMA = YES;
				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
				CLANG_WARN_STRICT_PROTOTYPES = YES;
				CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
				CODE_SIGN_ENTITLEMENTS = ButtonsMac/ButtonsMac.entitlements;
				CODE_SIGN_IDENTITY = "-";
				COMBINE_HIDPI_IMAGES = YES;
				GCC_C_LANGUAGE_STANDARD = gnu11;
				INFOPLIST_FILE = ButtonsMac/Info.plist;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks";
				MACOSX_DEPLOYMENT_TARGET = 10.12;
				PRODUCT_BUNDLE_IDENTIFIER = me.google.ButtonsMac;
				PRODUCT_NAME = "$(TARGET_NAME)";
				SDKROOT = macosx;
				SWIFT_VERSION = 4.0;
			};
			name = Debug;
		};
		2D61BD171F1D54E400C5978A /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
				CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
				CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
				CLANG_WARN_COMMA = YES;
				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
				CLANG_WARN_STRICT_PROTOTYPES = YES;
				CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
				CODE_SIGN_ENTITLEMENTS = ButtonsMac/ButtonsMac.entitlements;
				CODE_SIGN_IDENTITY = "-";
				COMBINE_HIDPI_IMAGES = YES;
				GCC_C_LANGUAGE_STANDARD = gnu11;
				INFOPLIST_FILE = ButtonsMac/Info.plist;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks";
				MACOSX_DEPLOYMENT_TARGET = 10.12;
				PRODUCT_BUNDLE_IDENTIFIER = me.google.ButtonsMac;
				PRODUCT_NAME = "$(TARGET_NAME)";
				SDKROOT = macosx;
				SWIFT_VERSION = 4.0;
			};
			name = Release;
		};
		2D61BD251F1D57D000C5978A /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				BUNDLE_LOADER = "$(TEST_HOST)";
				CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
				CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
				CLANG_WARN_COMMA = YES;
				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
				CLANG_WARN_STRICT_PROTOTYPES = YES;
				CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
				CODE_SIGN_IDENTITY = "-";
				COMBINE_HIDPI_IMAGES = YES;
				GCC_C_LANGUAGE_STANDARD = gnu11;
				INFOPLIST_FILE = ButtonsMacTests/Info.plist;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks";
				MACOSX_DEPLOYMENT_TARGET = 10.12;
				PRODUCT_BUNDLE_IDENTIFIER = me.google.ButtonsMacTests;
				PRODUCT_NAME = "$(TARGET_NAME)";
				SDKROOT = macosx;
				SWIFT_VERSION = 4.0;
				TEST_HOST = "$(BUILT_PRODUCTS_DIR)/ButtonsMac.app/Contents/MacOS/ButtonsMac";
			};
			name = Debug;
		};
		2D61BD261F1D57D000C5978A /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				BUNDLE_LOADER = "$(TEST_HOST)";
				CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
				CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
				CLANG_WARN_COMMA = YES;
				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
				CLANG_WARN_STRICT_PROTOTYPES = YES;
				CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
				CODE_SIGN_IDENTITY = "-";
				COMBINE_HIDPI_IMAGES = YES;
				GCC_C_LANGUAGE_STANDARD = gnu11;
				INFOPLIST_FILE = ButtonsMacTests/Info.plist;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks";
				MACOSX_DEPLOYMENT_TARGET = 10.12;
				PRODUCT_BUNDLE_IDENTIFIER = me.google.ButtonsMacTests;
				PRODUCT_NAME = "$(TARGET_NAME)";
				SDKROOT = macosx;
				SWIFT_VERSION = 4.0;
				TEST_HOST = "$(BUILT_PRODUCTS_DIR)/ButtonsMac.app/Contents/MacOS/ButtonsMac";
			};
			name = Release;
		};
		2D61BD331F1D583700C5978A /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
				CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
				CLANG_WARN_COMMA = YES;
				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
				CLANG_WARN_STRICT_PROTOTYPES = YES;
				CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
				CODE_SIGN_IDENTITY = "-";
				COMBINE_HIDPI_IMAGES = YES;
				GCC_C_LANGUAGE_STANDARD = gnu11;
				INFOPLIST_FILE = ButtonsMacUITests/Info.plist;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks";
				MACOSX_DEPLOYMENT_TARGET = 10.12;
				PRODUCT_BUNDLE_IDENTIFIER = me.google.ButtonsMacUITests;
				PRODUCT_NAME = "$(TARGET_NAME)";
				SDKROOT = macosx;
				SWIFT_VERSION = 4.0;
				TEST_TARGET_NAME = ButtonsMac;
			};
			name = Debug;
		};
		2D61BD341F1D583700C5978A /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
				CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
				CLANG_WARN_COMMA = YES;
				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
				CLANG_WARN_STRICT_PROTOTYPES = YES;
				CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
				CODE_SIGN_IDENTITY = "-";
				COMBINE_HIDPI_IMAGES = YES;
				GCC_C_LANGUAGE_STANDARD = gnu11;
				INFOPLIST_FILE = ButtonsMacUITests/Info.plist;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks";
				MACOSX_DEPLOYMENT_TARGET = 10.12;
				PRODUCT_BUNDLE_IDENTIFIER = me.google.ButtonsMacUITests;
				PRODUCT_NAME = "$(TARGET_NAME)";
				SDKROOT = macosx;
				SWIFT_VERSION = 4.0;
				TEST_TARGET_NAME = ButtonsMac;
			};
			name = Release;
		};
		2DAAFFB01E5E085F0090F12F /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
				DEVELOPMENT_TEAM = EQHXZ8M8AV;
				INFOPLIST_FILE = ButtonsTVExtension/Info.plist;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = com.google.ButtonsTV.ButtonsTVExtension;
				PRODUCT_NAME = "$(TARGET_NAME)";
				SDKROOT = appletvos;
				SKIP_INSTALL = YES;
				SWIFT_VERSION = 3.0;
				TVOS_DEPLOYMENT_TARGET = 10.2;
			};
			name = Debug;
		};
		2DAAFFB11E5E085F0090F12F /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
				DEVELOPMENT_TEAM = EQHXZ8M8AV;
				INFOPLIST_FILE = ButtonsTVExtension/Info.plist;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = com.google.ButtonsTV.ButtonsTVExtension;
				PRODUCT_NAME = "$(TARGET_NAME)";
				SDKROOT = appletvos;
				SKIP_INSTALL = YES;
				SWIFT_VERSION = 3.0;
				TVOS_DEPLOYMENT_TARGET = 10.2;
			};
			name = Release;
		};
/* End XCBuildConfiguration section */

/* Begin XCConfigurationList section */
		2D07616A1E53C6B8006734D2 /* Build configuration list for PBXProject "Buttons" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				2D0761951E53C6B8006734D2 /* Debug */,
				2D0761961E53C6B8006734D2 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		2D0761971E53C6B8006734D2 /* Build configuration list for PBXNativeTarget "Buttons" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				2D0761981E53C6B8006734D2 /* Debug */,
				2D0761991E53C6B8006734D2 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		2D07619A1E53C6B8006734D2 /* Build configuration list for PBXNativeTarget "ButtonsTests" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				2D07619B1E53C6B8006734D2 /* Debug */,
				2D07619C1E53C6B8006734D2 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		2D07619D1E53C6B8006734D2 /* Build configuration list for PBXNativeTarget "ButtonsUITests" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				2D07619E1E53C6B8006734D2 /* Debug */,
				2D07619F1E53C6B8006734D2 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		2D27FF621E5DFBDA003FE262 /* Build configuration list for PBXNativeTarget "ButtonsWatchExtension" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				2D27FF601E5DFBDA003FE262 /* Debug */,
				2D27FF611E5DFBDA003FE262 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		2D27FF641E5DFBDA003FE262 /* Build configuration list for PBXNativeTarget "ButtonsWatch" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				2D27FF5E1E5DFBDA003FE262 /* Debug */,
				2D27FF5F1E5DFBDA003FE262 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		2D27FF8C1E5DFE32003FE262 /* Build configuration list for PBXNativeTarget "ButtonsTV" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				2D27FF8D1E5DFE32003FE262 /* Debug */,
				2D27FF8E1E5DFE32003FE262 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		2D27FF8F1E5DFE32003FE262 /* Build configuration list for PBXNativeTarget "ButtonsTVTests" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				2D27FF901E5DFE32003FE262 /* Debug */,
				2D27FF911E5DFE32003FE262 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		2D27FF921E5DFE32003FE262 /* Build configuration list for PBXNativeTarget "ButtonsTVUITests" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				2D27FF931E5DFE32003FE262 /* Debug */,
				2D27FF941E5DFE32003FE262 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		2D61BD181F1D54E400C5978A /* Build configuration list for PBXNativeTarget "ButtonsMac" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				2D61BD161F1D54E400C5978A /* Debug */,
				2D61BD171F1D54E400C5978A /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		2D61BD241F1D57D000C5978A /* Build configuration list for PBXNativeTarget "ButtonsMacTests" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				2D61BD251F1D57D000C5978A /* Debug */,
				2D61BD261F1D57D000C5978A /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		2D61BD321F1D583700C5978A /* Build configuration list for PBXNativeTarget "ButtonsMacUITests" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				2D61BD331F1D583700C5978A /* Debug */,
				2D61BD341F1D583700C5978A /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		2DAAFFB21E5E085F0090F12F /* Build configuration list for PBXNativeTarget "ButtonsTVExtension" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				2DAAFFB01E5E085F0090F12F /* Debug */,
				2DAAFFB11E5E085F0090F12F /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
/* End XCConfigurationList section */
	};
	rootObject = 2D0761671E53C6B8006734D2 /* Project object */;
}
