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

/* Begin PBXBuildFile section */
		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 */; };
		30AD2E3C1CDD508700A28A0C /* Service.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30AD2E261CDD508700A28A0C /* Service.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 */; };
		30AD2E4D1CDD508D00A28A0C /* JSONTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30AD2E491CDD508D00A28A0C /* JSONTests.swift */; };
		30AD2E4E1CDD508D00A28A0C /* NSNumberTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30AD2E4A1CDD508D00A28A0C /* NSNumberTests.swift */; };
		30AD2E801CDD569200A28A0C /* Logging.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30AD2E791CDD569200A28A0C /* Logging.swift */; };
		30AD2E811CDD569200A28A0C /* Strings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30AD2E7A1CDD569200A28A0C /* Strings.swift */; };
		30AD2E821CDD569200A28A0C /* Threads.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30AD2E7B1CDD569200A28A0C /* Threads.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 */; };
		30AD2E8B1CDD56B700A28A0C /* NSNumber.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30AD2E881CDD56B700A28A0C /* NSNumber.swift */; };
		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 */; };
		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 */
		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>"; };
		30AD2E261CDD508700A28A0C /* Service.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Service.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>"; };
		30AD2E491CDD508D00A28A0C /* JSONTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = JSONTests.swift; sourceTree = "<group>"; };
		30AD2E4A1CDD508D00A28A0C /* NSNumberTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NSNumberTests.swift; 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>"; };
		30AD2E7B1CDD569200A28A0C /* Threads.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = Threads.swift; path = util/Threads.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>"; };
		30AD2E881CDD56B700A28A0C /* NSNumber.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = NSNumber.swift; path = util/NSNumber.swift; 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>"; };
		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 = (
				30AD2E1B1CDD508700A28A0C /* Batch.swift */,
				30AD2E1C1CDD508700A28A0C /* Blob.swift */,
				30AD2E1D1CDD508700A28A0C /* Collection.swift */,
				30AD2E1E1CDD508700A28A0C /* Database.swift */,
				30AD2E1F1CDD508700A28A0C /* Errors.swift */,
				30AD2E201CDD508700A28A0C /* Identifier.swift */,
				30AD2E211CDD508700A28A0C /* Info.plist */,
				30AD2E221CDD508700A28A0C /* Marshal.swift */,
				930DFCE11CEE46DE00738DB8 /* OAuth.swift */,
				30AD2E231CDD508700A28A0C /* Permissions.swift */,
				30AD2E901CDD593000A28A0C /* Principal.swift */,
				30AD2E241CDD508700A28A0C /* RowRange.swift */,
				30AD2E261CDD508700A28A0C /* Service.swift */,
				30AD2E271CDD508700A28A0C /* Stream.swift */,
				30AD2E291CDD508700A28A0C /* Syncbase.swift */,
				30AD2E281CDD508700A28A0C /* SyncbaseCore.h */,
				30AD2E2A1CDD508700A28A0C /* Syncgroup.swift */,
				30AD2E771CDD567D00A28A0C /* Util */,
				30AD2E2E1CDD508700A28A0C /* Vom.swift */,
				30AD2E2F1CDD508700A28A0C /* Watch.swift */,
			);
			path = Source;
			sourceTree = "<group>";
		};
		30AD2E461CDD508D00A28A0C /* Tests */ = {
			isa = PBXGroup;
			children = (
				30AD2E481CDD508D00A28A0C /* Info.plist */,
				30AD2E491CDD508D00A28A0C /* JSONTests.swift */,
				30AD2E4A1CDD508D00A28A0C /* NSNumberTests.swift */,
				30A1F52D1CE68465008FC205 /* BasicDatabaseTests.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 */,
				30AD2E881CDD56B700A28A0C /* NSNumber.swift */,
				30AD2E791CDD569200A28A0C /* Logging.swift */,
				30AD2E7A1CDD569200A28A0C /* Strings.swift */,
				30AD2E7B1CDD569200A28A0C /* Threads.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 = (
				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 */,
				30AD2E8B1CDD56B700A28A0C /* NSNumber.swift in Sources */,
				30AD2E451CDD508700A28A0C /* Watch.swift in Sources */,
				30AD2E821CDD569200A28A0C /* Threads.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 */,
				30AD2E3C1CDD508700A28A0C /* Service.swift in Sources */,
				30AD2E341CDD508700A28A0C /* Database.swift in Sources */,
				30AD2E311CDD508700A28A0C /* Batch.swift in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		30AD2E051CDD506700A28A0C /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				30A1F52E1CE68465008FC205 /* BasicDatabaseTests.swift in Sources */,
				30AD2E4D1CDD508D00A28A0C /* JSONTests.swift in Sources */,
				30AD2E4E1CDD508D00A28A0C /* NSNumberTests.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 */;
}
