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

/* Begin PBXBuildFile section */
		06638D651D40387B006F3822 /* VOMTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06638D641D40387B006F3822 /* VOMTests.swift */; };
		06638D671D4044D5006F3822 /* MarshalTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06638D661D4044D5006F3822 /* MarshalTests.swift */; };
		30A1F52E1CE68465008FC205 /* BasicDatabaseTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30A1F52D1CE68465008FC205 /* BasicDatabaseTests.swift */; };
		30AD2E0A1CDD506700A28A0C /* SyncbaseCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 30AD2DFF1CDD506700A28A0C /* SyncbaseCore.framework */; };
		30AD2E311CDD508700A28A0C /* Batch.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30AD2E1B1CDD508700A28A0C /* Batch.swift */; };
		30AD2E321CDD508700A28A0C /* Blob.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30AD2E1C1CDD508700A28A0C /* Blob.swift */; };
		30AD2E331CDD508700A28A0C /* Collection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30AD2E1D1CDD508700A28A0C /* Collection.swift */; };
		30AD2E341CDD508700A28A0C /* Database.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30AD2E1E1CDD508700A28A0C /* Database.swift */; };
		30AD2E351CDD508700A28A0C /* Errors.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30AD2E1F1CDD508700A28A0C /* Errors.swift */; };
		30AD2E361CDD508700A28A0C /* Identifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30AD2E201CDD508700A28A0C /* Identifier.swift */; };
		30AD2E381CDD508700A28A0C /* Marshal.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30AD2E221CDD508700A28A0C /* Marshal.swift */; };
		30AD2E391CDD508700A28A0C /* Permissions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30AD2E231CDD508700A28A0C /* Permissions.swift */; };
		30AD2E3A1CDD508700A28A0C /* RowRange.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30AD2E241CDD508700A28A0C /* RowRange.swift */; };
		30AD2E3D1CDD508700A28A0C /* Stream.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30AD2E271CDD508700A28A0C /* Stream.swift */; };
		30AD2E3E1CDD508700A28A0C /* SyncbaseCore.h in Headers */ = {isa = PBXBuildFile; fileRef = 30AD2E281CDD508700A28A0C /* SyncbaseCore.h */; settings = {ATTRIBUTES = (Public, ); }; };
		30AD2E3F1CDD508700A28A0C /* Syncbase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30AD2E291CDD508700A28A0C /* Syncbase.swift */; };
		30AD2E401CDD508700A28A0C /* Syncgroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30AD2E2A1CDD508700A28A0C /* Syncgroup.swift */; };
		30AD2E441CDD508700A28A0C /* VOM.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30AD2E2E1CDD508700A28A0C /* VOM.swift */; };
		30AD2E451CDD508700A28A0C /* Watch.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30AD2E2F1CDD508700A28A0C /* Watch.swift */; };
		30AD2E801CDD569200A28A0C /* Logging.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30AD2E791CDD569200A28A0C /* Logging.swift */; };
		30AD2E811CDD569200A28A0C /* Strings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30AD2E7A1CDD569200A28A0C /* Strings.swift */; };
		30AD2E891CDD56B700A28A0C /* Exceptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 30AD2E861CDD56B700A28A0C /* Exceptions.h */; settings = {ATTRIBUTES = (Public, ); }; };
		30AD2E8A1CDD56B700A28A0C /* Exceptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 30AD2E871CDD56B700A28A0C /* Exceptions.m */; };
		30AD2E911CDD593000A28A0C /* Principal.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30AD2E901CDD593000A28A0C /* Principal.swift */; };
		30AD2E931CDD60A600A28A0C /* Types.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30AD2E921CDD60A600A28A0C /* Types.swift */; };
		30BCD5D01CEFA32900C76DA2 /* CoreBluetooth.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 30BCD5CF1CEFA32900C76DA2 /* CoreBluetooth.framework */; };
		30D45FC91CE14A8A004A59FA /* cgo_exports.h in Headers */ = {isa = PBXBuildFile; fileRef = 30D45FC41CE14A8A004A59FA /* cgo_exports.h */; settings = {ATTRIBUTES = (Public, ); }; };
		30D45FCA1CE14A8A004A59FA /* go_types.h in Headers */ = {isa = PBXBuildFile; fileRef = 30D45FC51CE14A8A004A59FA /* go_types.h */; settings = {ATTRIBUTES = (Public, ); }; };
		30D45FCD1CE14A8A004A59FA /* sbcore_arm64.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 30D45FC81CE14A8A004A59FA /* sbcore_arm64.a */; };
		930DFCE21CEE46DE00738DB8 /* OAuth.swift in Sources */ = {isa = PBXBuildFile; fileRef = 930DFCE11CEE46DE00738DB8 /* OAuth.swift */; };
		9351A4941CE46DB9009CC4F4 /* sbcore_amd64.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 9351A4931CE46DB9009CC4F4 /* sbcore_amd64.a */; };
		9374F6681D00FFE5004ECE59 /* TestHelpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9374F6661D00FF68004ECE59 /* TestHelpers.swift */; };
		93B3C8391D41D7B5005B20C8 /* BridgeTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93B3C8381D41D7B5005B20C8 /* BridgeTests.swift */; };
		93C462791D29D7BD00394BAB /* Neighborhood.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93C462781D29D7BD00394BAB /* Neighborhood.swift */; };
		93D3AD5C1CE4392A00A80CDA /* libleveldb_amd64.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 93D3AD581CE4392A00A80CDA /* libleveldb_amd64.a */; };
		93D3AD5D1CE4392A00A80CDA /* libleveldb_arm64.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 93D3AD591CE4392A00A80CDA /* libleveldb_arm64.a */; };
		93D3AD5E1CE4392A00A80CDA /* libsnappy_amd64.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 93D3AD5A1CE4392A00A80CDA /* libsnappy_amd64.a */; };
		93D3AD5F1CE4392A00A80CDA /* libsnappy_arm64.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 93D3AD5B1CE4392A00A80CDA /* libsnappy_arm64.a */; };
/* End PBXBuildFile section */

/* Begin PBXContainerItemProxy section */
		30AD2E0B1CDD506700A28A0C /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 30AD2DF61CDD506700A28A0C /* Project object */;
			proxyType = 1;
			remoteGlobalIDString = 30AD2DFE1CDD506700A28A0C;
			remoteInfo = SyncbaseCore;
		};
/* End PBXContainerItemProxy section */

/* Begin PBXFileReference section */
		06638D641D40387B006F3822 /* VOMTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = VOMTests.swift; sourceTree = "<group>"; };
		06638D661D4044D5006F3822 /* MarshalTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MarshalTests.swift; sourceTree = "<group>"; };
		30A1F52D1CE68465008FC205 /* BasicDatabaseTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BasicDatabaseTests.swift; sourceTree = "<group>"; };
		30AD2DFF1CDD506700A28A0C /* SyncbaseCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SyncbaseCore.framework; sourceTree = BUILT_PRODUCTS_DIR; };
		30AD2E091CDD506700A28A0C /* SyncbaseCoreTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = SyncbaseCoreTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
		30AD2E1B1CDD508700A28A0C /* Batch.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Batch.swift; sourceTree = "<group>"; };
		30AD2E1C1CDD508700A28A0C /* Blob.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Blob.swift; sourceTree = "<group>"; };
		30AD2E1D1CDD508700A28A0C /* Collection.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Collection.swift; sourceTree = "<group>"; };
		30AD2E1E1CDD508700A28A0C /* Database.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Database.swift; sourceTree = "<group>"; };
		30AD2E1F1CDD508700A28A0C /* Errors.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Errors.swift; sourceTree = "<group>"; };
		30AD2E201CDD508700A28A0C /* Identifier.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Identifier.swift; sourceTree = "<group>"; };
		30AD2E211CDD508700A28A0C /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
		30AD2E221CDD508700A28A0C /* Marshal.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Marshal.swift; sourceTree = "<group>"; };
		30AD2E231CDD508700A28A0C /* Permissions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Permissions.swift; sourceTree = "<group>"; };
		30AD2E241CDD508700A28A0C /* RowRange.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RowRange.swift; sourceTree = "<group>"; };
		30AD2E271CDD508700A28A0C /* Stream.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Stream.swift; sourceTree = "<group>"; };
		30AD2E281CDD508700A28A0C /* SyncbaseCore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SyncbaseCore.h; sourceTree = "<group>"; };
		30AD2E291CDD508700A28A0C /* Syncbase.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Syncbase.swift; sourceTree = "<group>"; };
		30AD2E2A1CDD508700A28A0C /* Syncgroup.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Syncgroup.swift; sourceTree = "<group>"; };
		30AD2E2E1CDD508700A28A0C /* VOM.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = VOM.swift; sourceTree = "<group>"; };
		30AD2E2F1CDD508700A28A0C /* Watch.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Watch.swift; sourceTree = "<group>"; };
		30AD2E481CDD508D00A28A0C /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
		30AD2E791CDD569200A28A0C /* Logging.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = Logging.swift; path = util/Logging.swift; sourceTree = "<group>"; };
		30AD2E7A1CDD569200A28A0C /* Strings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = Strings.swift; path = util/Strings.swift; sourceTree = "<group>"; };
		30AD2E861CDD56B700A28A0C /* Exceptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Exceptions.h; path = util/Exceptions.h; sourceTree = "<group>"; };
		30AD2E871CDD56B700A28A0C /* Exceptions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Exceptions.m; path = util/Exceptions.m; sourceTree = "<group>"; };
		30AD2E901CDD593000A28A0C /* Principal.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Principal.swift; sourceTree = "<group>"; };
		30AD2E921CDD60A600A28A0C /* Types.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = Types.swift; path = util/Types.swift; sourceTree = "<group>"; };
		30BCD5CF1CEFA32900C76DA2 /* CoreBluetooth.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreBluetooth.framework; path = System/Library/Frameworks/CoreBluetooth.framework; sourceTree = SDKROOT; };
		30D45FC41CE14A8A004A59FA /* cgo_exports.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cgo_exports.h; sourceTree = "<group>"; };
		30D45FC51CE14A8A004A59FA /* go_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = go_types.h; sourceTree = "<group>"; };
		30D45FC81CE14A8A004A59FA /* sbcore_arm64.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = sbcore_arm64.a; sourceTree = "<group>"; };
		930DFCE11CEE46DE00738DB8 /* OAuth.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OAuth.swift; sourceTree = "<group>"; };
		9351A4931CE46DB9009CC4F4 /* sbcore_amd64.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = sbcore_amd64.a; sourceTree = "<group>"; };
		9374F6661D00FF68004ECE59 /* TestHelpers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TestHelpers.swift; sourceTree = "<group>"; };
		93B3C8381D41D7B5005B20C8 /* BridgeTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BridgeTests.swift; sourceTree = "<group>"; };
		93C462781D29D7BD00394BAB /* Neighborhood.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Neighborhood.swift; sourceTree = "<group>"; };
		93D3AD581CE4392A00A80CDA /* libleveldb_amd64.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libleveldb_amd64.a; sourceTree = "<group>"; };
		93D3AD591CE4392A00A80CDA /* libleveldb_arm64.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libleveldb_arm64.a; sourceTree = "<group>"; };
		93D3AD5A1CE4392A00A80CDA /* libsnappy_amd64.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libsnappy_amd64.a; sourceTree = "<group>"; };
		93D3AD5B1CE4392A00A80CDA /* libsnappy_arm64.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libsnappy_arm64.a; sourceTree = "<group>"; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
		30AD2DFB1CDD506700A28A0C /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				30BCD5D01CEFA32900C76DA2 /* CoreBluetooth.framework in Frameworks */,
				30D45FCD1CE14A8A004A59FA /* sbcore_arm64.a in Frameworks */,
				93D3AD5E1CE4392A00A80CDA /* libsnappy_amd64.a in Frameworks */,
				93D3AD5F1CE4392A00A80CDA /* libsnappy_arm64.a in Frameworks */,
				93D3AD5C1CE4392A00A80CDA /* libleveldb_amd64.a in Frameworks */,
				93D3AD5D1CE4392A00A80CDA /* libleveldb_arm64.a in Frameworks */,
				9351A4941CE46DB9009CC4F4 /* sbcore_amd64.a in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		30AD2E061CDD506700A28A0C /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				30AD2E0A1CDD506700A28A0C /* SyncbaseCore.framework in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
		30AD2DF51CDD506700A28A0C = {
			isa = PBXGroup;
			children = (
				30AD2E191CDD508700A28A0C /* Source */,
				30BCD5D11CEFA32D00C76DA2 /* Frameworks */,
				30AD2E4F1CDD542000A28A0C /* Generated */,
				30AD2E461CDD508D00A28A0C /* Tests */,
				30AD2E001CDD506700A28A0C /* Products */,
			);
			sourceTree = "<group>";
		};
		30AD2E001CDD506700A28A0C /* Products */ = {
			isa = PBXGroup;
			children = (
				30AD2DFF1CDD506700A28A0C /* SyncbaseCore.framework */,
				30AD2E091CDD506700A28A0C /* SyncbaseCoreTests.xctest */,
			);
			name = Products;
			sourceTree = "<group>";
		};
		30AD2E191CDD508700A28A0C /* Source */ = {
			isa = PBXGroup;
			children = (
				30AD2E281CDD508700A28A0C /* SyncbaseCore.h */,
				30AD2E211CDD508700A28A0C /* Info.plist */,
				30AD2E1B1CDD508700A28A0C /* Batch.swift */,
				30AD2E1C1CDD508700A28A0C /* Blob.swift */,
				30AD2E1D1CDD508700A28A0C /* Collection.swift */,
				30AD2E1E1CDD508700A28A0C /* Database.swift */,
				30AD2E1F1CDD508700A28A0C /* Errors.swift */,
				30AD2E201CDD508700A28A0C /* Identifier.swift */,
				30AD2E221CDD508700A28A0C /* Marshal.swift */,
				93C462781D29D7BD00394BAB /* Neighborhood.swift */,
				930DFCE11CEE46DE00738DB8 /* OAuth.swift */,
				30AD2E231CDD508700A28A0C /* Permissions.swift */,
				30AD2E901CDD593000A28A0C /* Principal.swift */,
				30AD2E241CDD508700A28A0C /* RowRange.swift */,
				30AD2E271CDD508700A28A0C /* Stream.swift */,
				30AD2E291CDD508700A28A0C /* Syncbase.swift */,
				30AD2E2A1CDD508700A28A0C /* Syncgroup.swift */,
				30AD2E2E1CDD508700A28A0C /* VOM.swift */,
				30AD2E2F1CDD508700A28A0C /* Watch.swift */,
				30AD2E771CDD567D00A28A0C /* Util */,
			);
			path = Source;
			sourceTree = "<group>";
		};
		30AD2E461CDD508D00A28A0C /* Tests */ = {
			isa = PBXGroup;
			children = (
				30A1F52D1CE68465008FC205 /* BasicDatabaseTests.swift */,
				93B3C8381D41D7B5005B20C8 /* BridgeTests.swift */,
				30AD2E481CDD508D00A28A0C /* Info.plist */,
				9374F6661D00FF68004ECE59 /* TestHelpers.swift */,
				06638D641D40387B006F3822 /* VOMTests.swift */,
				06638D661D4044D5006F3822 /* MarshalTests.swift */,
			);
			path = Tests;
			sourceTree = "<group>";
		};
		30AD2E4F1CDD542000A28A0C /* Generated */ = {
			isa = PBXGroup;
			children = (
				30D45FC41CE14A8A004A59FA /* cgo_exports.h */,
				30D45FC51CE14A8A004A59FA /* go_types.h */,
				93D3AD581CE4392A00A80CDA /* libleveldb_amd64.a */,
				93D3AD591CE4392A00A80CDA /* libleveldb_arm64.a */,
				93D3AD5A1CE4392A00A80CDA /* libsnappy_amd64.a */,
				93D3AD5B1CE4392A00A80CDA /* libsnappy_arm64.a */,
				9351A4931CE46DB9009CC4F4 /* sbcore_amd64.a */,
				30D45FC81CE14A8A004A59FA /* sbcore_arm64.a */,
			);
			path = Generated;
			sourceTree = "<group>";
		};
		30AD2E771CDD567D00A28A0C /* Util */ = {
			isa = PBXGroup;
			children = (
				30AD2E861CDD56B700A28A0C /* Exceptions.h */,
				30AD2E871CDD56B700A28A0C /* Exceptions.m */,
				30AD2E791CDD569200A28A0C /* Logging.swift */,
				30AD2E7A1CDD569200A28A0C /* Strings.swift */,
				30AD2E921CDD60A600A28A0C /* Types.swift */,
			);
			name = Util;
			sourceTree = "<group>";
		};
		30BCD5D11CEFA32D00C76DA2 /* Frameworks */ = {
			isa = PBXGroup;
			children = (
				30BCD5CF1CEFA32900C76DA2 /* CoreBluetooth.framework */,
			);
			name = Frameworks;
			sourceTree = "<group>";
		};
/* End PBXGroup section */

/* Begin PBXHeadersBuildPhase section */
		30AD2DFC1CDD506700A28A0C /* Headers */ = {
			isa = PBXHeadersBuildPhase;
			buildActionMask = 2147483647;
			files = (
				30AD2E891CDD56B700A28A0C /* Exceptions.h in Headers */,
				30D45FC91CE14A8A004A59FA /* cgo_exports.h in Headers */,
				30D45FCA1CE14A8A004A59FA /* go_types.h in Headers */,
				30AD2E3E1CDD508700A28A0C /* SyncbaseCore.h in Headers */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXHeadersBuildPhase section */

/* Begin PBXNativeTarget section */
		30AD2DFE1CDD506700A28A0C /* SyncbaseCore */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 30AD2E131CDD506700A28A0C /* Build configuration list for PBXNativeTarget "SyncbaseCore" */;
			buildPhases = (
				30AD2DFA1CDD506700A28A0C /* Sources */,
				30AD2DFB1CDD506700A28A0C /* Frameworks */,
				30AD2DFC1CDD506700A28A0C /* Headers */,
				30AD2DFD1CDD506700A28A0C /* Resources */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = SyncbaseCore;
			productName = SyncbaseCore;
			productReference = 30AD2DFF1CDD506700A28A0C /* SyncbaseCore.framework */;
			productType = "com.apple.product-type.framework";
		};
		30AD2E081CDD506700A28A0C /* SyncbaseCoreTests */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 30AD2E161CDD506700A28A0C /* Build configuration list for PBXNativeTarget "SyncbaseCoreTests" */;
			buildPhases = (
				30AD2E051CDD506700A28A0C /* Sources */,
				30AD2E061CDD506700A28A0C /* Frameworks */,
				30AD2E071CDD506700A28A0C /* Resources */,
			);
			buildRules = (
			);
			dependencies = (
				30AD2E0C1CDD506700A28A0C /* PBXTargetDependency */,
			);
			name = SyncbaseCoreTests;
			productName = SyncbaseCoreTests;
			productReference = 30AD2E091CDD506700A28A0C /* SyncbaseCoreTests.xctest */;
			productType = "com.apple.product-type.bundle.unit-test";
		};
/* End PBXNativeTarget section */

/* Begin PBXProject section */
		30AD2DF61CDD506700A28A0C /* Project object */ = {
			isa = PBXProject;
			attributes = {
				LastSwiftUpdateCheck = 0730;
				LastUpgradeCheck = 0730;
				ORGANIZATIONNAME = "Google Inc.";
				TargetAttributes = {
					30AD2DFE1CDD506700A28A0C = {
						CreatedOnToolsVersion = 7.3;
					};
					30AD2E081CDD506700A28A0C = {
						CreatedOnToolsVersion = 7.3;
					};
				};
			};
			buildConfigurationList = 30AD2DF91CDD506700A28A0C /* Build configuration list for PBXProject "SyncbaseCore" */;
			compatibilityVersion = "Xcode 3.2";
			developmentRegion = English;
			hasScannedForEncodings = 0;
			knownRegions = (
				en,
			);
			mainGroup = 30AD2DF51CDD506700A28A0C;
			productRefGroup = 30AD2E001CDD506700A28A0C /* Products */;
			projectDirPath = "";
			projectRoot = "";
			targets = (
				30AD2DFE1CDD506700A28A0C /* SyncbaseCore */,
				30AD2E081CDD506700A28A0C /* SyncbaseCoreTests */,
			);
		};
/* End PBXProject section */

/* Begin PBXResourcesBuildPhase section */
		30AD2DFD1CDD506700A28A0C /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		30AD2E071CDD506700A28A0C /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXResourcesBuildPhase section */

/* Begin PBXSourcesBuildPhase section */
		30AD2DFA1CDD506700A28A0C /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				93C462791D29D7BD00394BAB /* Neighborhood.swift in Sources */,
				30AD2E391CDD508700A28A0C /* Permissions.swift in Sources */,
				30AD2E3A1CDD508700A28A0C /* RowRange.swift in Sources */,
				30AD2E911CDD593000A28A0C /* Principal.swift in Sources */,
				30AD2E931CDD60A600A28A0C /* Types.swift in Sources */,
				30AD2E8A1CDD56B700A28A0C /* Exceptions.m in Sources */,
				30AD2E331CDD508700A28A0C /* Collection.swift in Sources */,
				30AD2E3F1CDD508700A28A0C /* Syncbase.swift in Sources */,
				30AD2E401CDD508700A28A0C /* Syncgroup.swift in Sources */,
				30AD2E811CDD569200A28A0C /* Strings.swift in Sources */,
				30AD2E451CDD508700A28A0C /* Watch.swift in Sources */,
				30AD2E801CDD569200A28A0C /* Logging.swift in Sources */,
				30AD2E351CDD508700A28A0C /* Errors.swift in Sources */,
				930DFCE21CEE46DE00738DB8 /* OAuth.swift in Sources */,
				30AD2E361CDD508700A28A0C /* Identifier.swift in Sources */,
				30AD2E381CDD508700A28A0C /* Marshal.swift in Sources */,
				30AD2E3D1CDD508700A28A0C /* Stream.swift in Sources */,
				30AD2E321CDD508700A28A0C /* Blob.swift in Sources */,
				30AD2E441CDD508700A28A0C /* VOM.swift in Sources */,
				30AD2E341CDD508700A28A0C /* Database.swift in Sources */,
				30AD2E311CDD508700A28A0C /* Batch.swift in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		30AD2E051CDD506700A28A0C /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				06638D671D4044D5006F3822 /* MarshalTests.swift in Sources */,
				30A1F52E1CE68465008FC205 /* BasicDatabaseTests.swift in Sources */,
				93B3C8391D41D7B5005B20C8 /* BridgeTests.swift in Sources */,
				9374F6681D00FFE5004ECE59 /* TestHelpers.swift in Sources */,
				06638D651D40387B006F3822 /* VOMTests.swift in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXSourcesBuildPhase section */

/* Begin PBXTargetDependency section */
		30AD2E0C1CDD506700A28A0C /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			target = 30AD2DFE1CDD506700A28A0C /* SyncbaseCore */;
			targetProxy = 30AD2E0B1CDD506700A28A0C /* PBXContainerItemProxy */;
		};
/* End PBXTargetDependency section */

/* Begin XCBuildConfiguration section */
		30AD2E111CDD506700A28A0C /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				CLANG_ANALYZER_NONNULL = YES;
				CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
				CLANG_CXX_LIBRARY = "libc++";
				CLANG_ENABLE_MODULES = YES;
				CLANG_ENABLE_OBJC_ARC = YES;
				CLANG_WARN_BOOL_CONVERSION = YES;
				CLANG_WARN_CONSTANT_CONVERSION = YES;
				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
				CLANG_WARN_EMPTY_BODY = YES;
				CLANG_WARN_ENUM_CONVERSION = YES;
				CLANG_WARN_INT_CONVERSION = YES;
				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
				CLANG_WARN_UNREACHABLE_CODE = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
				COPY_PHASE_STRIP = NO;
				CURRENT_PROJECT_VERSION = 1;
				DEBUG_INFORMATION_FORMAT = dwarf;
				ENABLE_BITCODE = NO;
				ENABLE_STRICT_OBJC_MSGSEND = YES;
				ENABLE_TESTABILITY = YES;
				GCC_C_LANGUAGE_STANDARD = c11;
				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 = 9.0;
				LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks @loader_path/Frameworks";
				MTL_ENABLE_DEBUG_INFO = YES;
				ONLY_ACTIVE_ARCH = YES;
				OTHER_LDFLAGS = (
					"-ObjC",
					"-lc++",
				);
				SDKROOT = iphoneos;
				SWIFT_OPTIMIZATION_LEVEL = "-Onone";
				TARGETED_DEVICE_FAMILY = "1,2";
				VALID_ARCHS = arm64;
				VERSIONING_SYSTEM = "apple-generic";
				VERSION_INFO_PREFIX = "";
			};
			name = Debug;
		};
		30AD2E121CDD506700A28A0C /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				CLANG_ANALYZER_NONNULL = YES;
				CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
				CLANG_CXX_LIBRARY = "libc++";
				CLANG_ENABLE_MODULES = YES;
				CLANG_ENABLE_OBJC_ARC = YES;
				CLANG_WARN_BOOL_CONVERSION = YES;
				CLANG_WARN_CONSTANT_CONVERSION = YES;
				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
				CLANG_WARN_EMPTY_BODY = YES;
				CLANG_WARN_ENUM_CONVERSION = YES;
				CLANG_WARN_INT_CONVERSION = YES;
				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
				CLANG_WARN_UNREACHABLE_CODE = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
				COPY_PHASE_STRIP = NO;
				CURRENT_PROJECT_VERSION = 1;
				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
				ENABLE_BITCODE = NO;
				ENABLE_NS_ASSERTIONS = NO;
				ENABLE_STRICT_OBJC_MSGSEND = YES;
				GCC_C_LANGUAGE_STANDARD = c11;
				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 = 9.0;
				LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks @loader_path/Frameworks";
				MTL_ENABLE_DEBUG_INFO = NO;
				OTHER_LDFLAGS = (
					"-ObjC",
					"-lc++",
				);
				SDKROOT = iphoneos;
				TARGETED_DEVICE_FAMILY = "1,2";
				VALIDATE_PRODUCT = YES;
				VALID_ARCHS = arm64;
				VERSIONING_SYSTEM = "apple-generic";
				VERSION_INFO_PREFIX = "";
			};
			name = Release;
		};
		30AD2E141CDD506700A28A0C /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				CLANG_ENABLE_MODULES = YES;
				DEFINES_MODULE = YES;
				DYLIB_COMPATIBILITY_VERSION = 1;
				DYLIB_CURRENT_VERSION = 1;
				DYLIB_INSTALL_NAME_BASE = "@rpath";
				HEADER_SEARCH_PATHS = "";
				INFOPLIST_FILE = "$(SRCROOT)/Source/Info.plist";
				INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				LIBRARY_SEARCH_PATHS = (
					"$(inherited)",
					"$(PROJECT_DIR)/Generated",
					"\"$(SRCROOT)/../../../third_party/swift/google_signin_sdk_3_0_0\"",
				);
				PRODUCT_BUNDLE_IDENTIFIER = io.v.SyncbaseCore;
				PRODUCT_NAME = "$(TARGET_NAME)";
				SKIP_INSTALL = YES;
				SWIFT_OPTIMIZATION_LEVEL = "-Onone";
			};
			name = Debug;
		};
		30AD2E151CDD506700A28A0C /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				CLANG_ENABLE_MODULES = YES;
				DEFINES_MODULE = YES;
				DYLIB_COMPATIBILITY_VERSION = 1;
				DYLIB_CURRENT_VERSION = 1;
				DYLIB_INSTALL_NAME_BASE = "@rpath";
				HEADER_SEARCH_PATHS = "";
				INFOPLIST_FILE = "$(SRCROOT)/Source/Info.plist";
				INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				LIBRARY_SEARCH_PATHS = (
					"$(inherited)",
					"$(PROJECT_DIR)/Generated",
					"\"$(SRCROOT)/../../../third_party/swift/google_signin_sdk_3_0_0\"",
				);
				PRODUCT_BUNDLE_IDENTIFIER = io.v.SyncbaseCore;
				PRODUCT_NAME = "$(TARGET_NAME)";
				SKIP_INSTALL = YES;
			};
			name = Release;
		};
		30AD2E171CDD506700A28A0C /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				INFOPLIST_FILE = Tests/Info.plist;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = io.v.SyncbaseCoreTests;
				PRODUCT_NAME = "$(TARGET_NAME)";
			};
			name = Debug;
		};
		30AD2E181CDD506700A28A0C /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				INFOPLIST_FILE = Tests/Info.plist;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = io.v.SyncbaseCoreTests;
				PRODUCT_NAME = "$(TARGET_NAME)";
			};
			name = Release;
		};
/* End XCBuildConfiguration section */

/* Begin XCConfigurationList section */
		30AD2DF91CDD506700A28A0C /* Build configuration list for PBXProject "SyncbaseCore" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				30AD2E111CDD506700A28A0C /* Debug */,
				30AD2E121CDD506700A28A0C /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		30AD2E131CDD506700A28A0C /* Build configuration list for PBXNativeTarget "SyncbaseCore" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				30AD2E141CDD506700A28A0C /* Debug */,
				30AD2E151CDD506700A28A0C /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		30AD2E161CDD506700A28A0C /* Build configuration list for PBXNativeTarget "SyncbaseCoreTests" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				30AD2E171CDD506700A28A0C /* Debug */,
				30AD2E181CDD506700A28A0C /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
/* End XCConfigurationList section */
	};
	rootObject = 30AD2DF61CDD506700A28A0C /* Project object */;
}
