diff --git a/cmd/sansshell-server/main.go b/cmd/sansshell-server/main.go index bd2391b4..6c2a60fd 100644 --- a/cmd/sansshell-server/main.go +++ b/cmd/sansshell-server/main.go @@ -102,6 +102,7 @@ func init() { fdbCLIEnvList.Target = &fdbserver.FDBCLIEnvList *fdbCLIEnvList.Target = append(*fdbCLIEnvList.Target, "") // To set a default flag.Var(&fdbCLIEnvList, "fdbcli-env-list", "List of environment variable names (separated by comma) to retain before fork/exec'ing fdbcli") + flag.StringVar(&fdbserver.FDBMoveOrchestrator, "fdb-move-orchestrator", "/usr/bin/fdb_move_orchestrator.py", "Path to python data movement script.") flag.StringVar(&mtlsFlags.ClientCertFile, "client-cert", mtlsFlags.ClientCertFile, "Path to this client's x509 cert, PEM format") flag.StringVar(&mtlsFlags.ClientKeyFile, "client-key", mtlsFlags.ClientKeyFile, "Path to this client's key") diff --git a/services/fdb/client/client.go b/services/fdb/client/client.go index c0d57249..bb2924de 100644 --- a/services/fdb/client/client.go +++ b/services/fdb/client/client.go @@ -26,6 +26,7 @@ import ( "path/filepath" "strconv" "strings" + "time" "github.com/google/subcommands" "google.golang.org/protobuf/types/known/durationpb" @@ -100,6 +101,7 @@ func (*fdbCmd) GetSubpackage(f *flag.FlagSet) *subcommands.Commander { c.Register(&fdbCLICmd{}, "") c.Register(&fdbConfCmd{}, "") c.Register(&fdbServerCmd{}, "") + c.Register(&fdbMoveDataCmd{}, "") return c } @@ -163,6 +165,7 @@ func (*fdbCLICmd) GetSubpackage(f *flag.FlagSet) *subcommands.Commander { c.Register(&fdbCLISnapshotCmd{}, "") c.Register(&fdbCLIStatusCmd{}, "") c.Register(&fdbCLISuspendCmd{}, "") + c.Register(&fdbCLITenantEmergencyMoveCmd{}, "") c.Register(&fdbCLIThrottleCmd{}, "") c.Register(&fdbCLITriggerddteaminfologCmd{}, "") c.Register(&fdbCLITssqCmd{}, "") @@ -2610,6 +2613,108 @@ func (r *fdbCLISuspendCmd) Execute(ctx context.Context, f *flag.FlagSet, args .. return subcommands.ExitSuccess } +type fdbCLITenantEmergencyMoveCmd struct { + req *pb.FDBCLITenantEmergencyMove +} + +func (*fdbCLITenantEmergencyMoveCmd) Name() string { return "tenant_emergency_move" } +func (*fdbCLITenantEmergencyMoveCmd) Synopsis() string { + return "Utility commands for handling offline emergency tenant movement." +} +func (p *fdbCLITenantEmergencyMoveCmd) Usage() string { + return `tenant_emergency_move start +tenant_emergency_move switch +tenant_emergency_move stop +tenant_emergency_move abort +tenant_emergency_move status +` +} + +func (r *fdbCLITenantEmergencyMoveCmd) SetFlags(f *flag.FlagSet) { + r.req = &pb.FDBCLITenantEmergencyMove{} +} + +func (r *fdbCLITenantEmergencyMoveCmd) Execute(ctx context.Context, f *flag.FlagSet, args ...interface{}) subcommands.ExitStatus { + req := args[1].(*pb.FDBCLIRequest) + + if f.NArg() < 2 || f.NArg() > 4 || anyEmpty(f.Args()) { + fmt.Fprintln(os.Stderr, "usage: ", r.Usage()) + return subcommands.ExitFailure + } + switch f.Arg(0) { + case "start": + if f.NArg() != 4 { + fmt.Fprintln(os.Stderr, "usage: ", r.Usage()) + return subcommands.ExitFailure + } + r.req.Request = &pb.FDBCLITenantEmergencyMove_Start{ + Start: &pb.FDBCLITenantEmergencyMoveStart{ + TenantGroup: f.Arg(1), + SourceCluster: f.Arg(2), + DestinationCluster: f.Arg(3), + }, + } + case "switch": + if f.NArg() != 4 { + fmt.Fprintln(os.Stderr, "usage: ", r.Usage()) + return subcommands.ExitFailure + } + r.req.Request = &pb.FDBCLITenantEmergencyMove_Switch{ + Switch: &pb.FDBCLITenantEmergencyMoveSwitch{ + TenantGroup: f.Arg(1), + SourceCluster: f.Arg(2), + DestinationCluster: f.Arg(3), + }, + } + case "finish": + if f.NArg() != 4 { + fmt.Fprintln(os.Stderr, "usage: ", r.Usage()) + return subcommands.ExitFailure + } + r.req.Request = &pb.FDBCLITenantEmergencyMove_Finish{ + Finish: &pb.FDBCLITenantEmergencyMoveFinish{ + TenantGroup: f.Arg(1), + SourceCluster: f.Arg(2), + DestinationCluster: f.Arg(3), + }, + } + case "abort": + if f.NArg() != 4 { + fmt.Fprintln(os.Stderr, "usage: ", r.Usage()) + return subcommands.ExitFailure + } + r.req.Request = &pb.FDBCLITenantEmergencyMove_Abort{ + Abort: &pb.FDBCLITenantEmergencyMoveAbort{ + TenantGroup: f.Arg(1), + SourceCluster: f.Arg(2), + DestinationCluster: f.Arg(3), + }, + } + case "status": + if f.NArg() != 2 { + fmt.Fprintln(os.Stderr, "usage: ", r.Usage()) + return subcommands.ExitFailure + } + r.req.Request = &pb.FDBCLITenantEmergencyMove_Status{ + Status: &pb.FDBCLITenantEmergencyMoveStatus{ + TenantGroup: f.Arg(1), + }, + } + default: + fmt.Fprintln(os.Stderr, "usage: ", r.Usage()) + return subcommands.ExitFailure + } + + req.Commands = append(req.Commands, + &pb.FDBCLICommand{ + Command: &pb.FDBCLICommand_TenantEmergencyMove{ + TenantEmergencyMove: r.req, + }, + }) + + return subcommands.ExitSuccess +} + type fdbCLIThrottleCmd struct { req *pb.FDBCLIThrottle } @@ -3461,3 +3566,196 @@ func (p *fdbServerVersionCmd) Execute(ctx context.Context, f *flag.FlagSet, args return retCode } + +const fdbMoveDataCLIPackage = "fdbmovedata" + +func (*fdbMoveDataCmd) GetSubpackage(f *flag.FlagSet) *subcommands.Commander { + c := client.SetupSubpackage(fdbMoveDataCLIPackage, f) + c.Register(&fdbMoveDataCopyCmd{}, "") + c.Register(&fdbMoveDataWaitCmd{}, "") + return c +} + +type fdbMoveDataCmd struct{} + +func (*fdbMoveDataCmd) Name() string { return fdbMoveDataCLIPackage } +func (*fdbMoveDataCmd) SetFlags(_ *flag.FlagSet) {} +func (r *fdbMoveDataCmd) Synopsis() string { + return "Copy data across two tenant groups in a metacluster.\n" + client.GenerateSynopsis(r.GetSubpackage(flag.NewFlagSet("", flag.ContinueOnError)), 4) +} +func (r *fdbMoveDataCmd) Usage() string { + return client.GenerateUsage(fdbMoveDataCLIPackage, r.Synopsis()) +} + +func (r *fdbMoveDataCmd) Execute(ctx context.Context, f *flag.FlagSet, args ...interface{}) subcommands.ExitStatus { + c := r.GetSubpackage(f) + return c.Execute(ctx, args...) +} + +type fdbMoveDataCopyCmd struct { + req *pb.FDBMoveDataCopyRequest +} + +func (*fdbMoveDataCopyCmd) Name() string { return "copy" } +func (*fdbMoveDataCopyCmd) Synopsis() string { + return "Initiate data copy across two tenant groups in a metacluster. Starts a long-running command on the server." +} +func (r *fdbMoveDataCopyCmd) Usage() string { + return "fdbmovedata copy [numProcs](default=10)" +} + +func (r *fdbMoveDataCopyCmd) SetFlags(f *flag.FlagSet) { + r.req = &pb.FDBMoveDataCopyRequest{} +} + +func (r *fdbMoveDataCopyCmd) Execute(ctx context.Context, f *flag.FlagSet, args ...interface{}) subcommands.ExitStatus { + state := args[0].(*util.ExecuteState) + c := pb.NewFDBMoveClientProxy(state.Conn) + + if f.NArg() < 4 || f.NArg() > 5 { + fmt.Fprintln(os.Stderr, "usage: ", r.Usage()) + return subcommands.ExitFailure + } + + clusterFile, tenantGroup, sourceCluster, destinationCluster := f.Arg(0), f.Arg(1), f.Arg(2), f.Arg(3) + // default number of processes is 10 + numProcs := int64(10) + var s int64 + var err error + if f.NArg() == 5 { + s, err = strconv.ParseInt(f.Arg(4), 10, 64) + if err != nil { + fmt.Fprintf(os.Stderr, "can't parse number of processes: %v\n", err) + return subcommands.ExitFailure + } + numProcs = s + } + + resp, err := c.FDBMoveDataCopyOneMany(ctx, &pb.FDBMoveDataCopyRequest{ + ClusterFile: clusterFile, + TenantGroup: tenantGroup, + SourceCluster: sourceCluster, + DestinationCluster: destinationCluster, + NumProcs: numProcs, + }) + if err != nil { + // Emit this to every error file as it's not specific to a given target. + for _, e := range state.Err { + fmt.Fprintf(e, "fdb move data copy error: %v\n", err) + } + + return subcommands.ExitFailure + } + + retCode := subcommands.ExitSuccess + for r := range resp { + if r.Error != nil { + fmt.Fprintf(state.Err[r.Index], "fdb move data copy error: %v\n", r.Error) + retCode = subcommands.ExitFailure + } + if r.Resp.Existing { + fmt.Fprintf(state.Out[r.Index], "An existing command is already running on the server.\n") + } + fmt.Fprintf(state.Out[r.Index], "Run fdbmovedata wait %d to wait for the process to complete\n", r.Resp.Id) + } + + return retCode +} + +type fdbMoveDataWaitCmd struct { + req *pb.FDBMoveDataWaitRequest + + // returnCode internally keeps track of the final status to return + returnCode subcommands.ExitStatus +} + +func (*fdbMoveDataWaitCmd) Name() string { return "wait" } +func (*fdbMoveDataWaitCmd) Synopsis() string { + return "Wait for data copy across two tenant groups in a metacluster to complete" +} +func (r *fdbMoveDataWaitCmd) Usage() string { + return "fdbmovedata wait " +} + +func (r *fdbMoveDataWaitCmd) SetFlags(f *flag.FlagSet) { + r.req = &pb.FDBMoveDataWaitRequest{} +} + +func (r *fdbMoveDataWaitCmd) printCommandOutput(state *util.ExecuteState, idx int, resp *pb.FDBMoveDataWaitResponse, err error) { + if err == io.EOF { + // Streaming commands may return EOF + return + } + if err != nil { + fmt.Fprintf(state.Err[idx], "Command execution failure - %v\n", err) + // If any target had errors it needs to be reported for that target but we still + // need to process responses off the channel. Final return code though should + // indicate something failed. + r.returnCode = subcommands.ExitFailure + return + } + if len(resp.Stderr) > 0 { + fmt.Fprintf(state.Err[idx], "%s", resp.Stderr) + } + fmt.Fprintf(state.Out[idx], "%s", resp.Stdout) + if resp.RetCode != 0 { + r.returnCode = subcommands.ExitFailure + } +} + +// This context detachment is temporary until we use go1.21 and context.WithoutCancel is available. +type noCancel struct { + ctx context.Context +} + +func (c noCancel) Deadline() (time.Time, bool) { return time.Time{}, false } +func (c noCancel) Done() <-chan struct{} { return nil } +func (c noCancel) Err() error { return nil } +func (c noCancel) Value(key interface{}) interface{} { return c.ctx.Value(key) } + +// WithoutCancel returns a context that is never canceled. +func WithoutCancel(ctx context.Context) context.Context { + return noCancel{ctx: ctx} +} + +func (r *fdbMoveDataWaitCmd) Execute(ctx context.Context, f *flag.FlagSet, args ...interface{}) subcommands.ExitStatus { + // Ignore the parent context timeout because we don't want to time out here. + ctx = WithoutCancel(ctx) + state := args[0].(*util.ExecuteState) + c := pb.NewFDBMoveClientProxy(state.Conn) + + if f.NArg() != 1 { + fmt.Fprintln(os.Stderr, "usage: ", r.Usage()) + return subcommands.ExitFailure + } + id, err := strconv.ParseInt(f.Arg(0), 10, 64) + if err != nil { + fmt.Fprintf(os.Stderr, "can't parse ID: %v\n", err) + return subcommands.ExitFailure + } + + resp, err := c.FDBMoveDataWaitOneMany(ctx, &pb.FDBMoveDataWaitRequest{ + Id: id, + }) + if err != nil { + // Emit this to every error file as it's not specific to a given target. + for _, e := range state.Err { + fmt.Fprintf(e, "fdb move data wait error: %v\n", err) + } + return subcommands.ExitFailure + } + + for { + rs, err := resp.Recv() + if err != nil { + if err == io.EOF { + return r.returnCode + } + fmt.Fprintf(os.Stderr, "Stream failure: %v\n", err) + return subcommands.ExitFailure + } + for _, res := range rs { + r.printCommandOutput(state, res.Index, res.Resp, res.Error) + } + } +} diff --git a/services/fdb/fdb.pb.go b/services/fdb/fdb.pb.go index 4832c80f..1b322343 100644 --- a/services/fdb/fdb.pb.go +++ b/services/fdb/fdb.pb.go @@ -15,8 +15,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.30.0 -// protoc v4.23.3 +// protoc-gen-go v1.31.0 +// protoc v4.23.4 // source: fdb.proto package fdb @@ -297,6 +297,250 @@ func (x *FdbConfResponse) GetValue() string { return "" } +type FDBMoveDataCopyRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ClusterFile string `protobuf:"bytes,1,opt,name=cluster_file,json=clusterFile,proto3" json:"cluster_file,omitempty"` + TenantGroup string `protobuf:"bytes,2,opt,name=tenant_group,json=tenantGroup,proto3" json:"tenant_group,omitempty"` + SourceCluster string `protobuf:"bytes,3,opt,name=source_cluster,json=sourceCluster,proto3" json:"source_cluster,omitempty"` + DestinationCluster string `protobuf:"bytes,4,opt,name=destination_cluster,json=destinationCluster,proto3" json:"destination_cluster,omitempty"` + NumProcs int64 `protobuf:"varint,5,opt,name=num_procs,json=numProcs,proto3" json:"num_procs,omitempty"` +} + +func (x *FDBMoveDataCopyRequest) Reset() { + *x = FDBMoveDataCopyRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_fdb_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FDBMoveDataCopyRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FDBMoveDataCopyRequest) ProtoMessage() {} + +func (x *FDBMoveDataCopyRequest) ProtoReflect() protoreflect.Message { + mi := &file_fdb_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FDBMoveDataCopyRequest.ProtoReflect.Descriptor instead. +func (*FDBMoveDataCopyRequest) Descriptor() ([]byte, []int) { + return file_fdb_proto_rawDescGZIP(), []int{5} +} + +func (x *FDBMoveDataCopyRequest) GetClusterFile() string { + if x != nil { + return x.ClusterFile + } + return "" +} + +func (x *FDBMoveDataCopyRequest) GetTenantGroup() string { + if x != nil { + return x.TenantGroup + } + return "" +} + +func (x *FDBMoveDataCopyRequest) GetSourceCluster() string { + if x != nil { + return x.SourceCluster + } + return "" +} + +func (x *FDBMoveDataCopyRequest) GetDestinationCluster() string { + if x != nil { + return x.DestinationCluster + } + return "" +} + +func (x *FDBMoveDataCopyRequest) GetNumProcs() int64 { + if x != nil { + return x.NumProcs + } + return 0 +} + +type FDBMoveDataCopyResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + Existing bool `protobuf:"varint,2,opt,name=existing,proto3" json:"existing,omitempty"` +} + +func (x *FDBMoveDataCopyResponse) Reset() { + *x = FDBMoveDataCopyResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_fdb_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FDBMoveDataCopyResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FDBMoveDataCopyResponse) ProtoMessage() {} + +func (x *FDBMoveDataCopyResponse) ProtoReflect() protoreflect.Message { + mi := &file_fdb_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FDBMoveDataCopyResponse.ProtoReflect.Descriptor instead. +func (*FDBMoveDataCopyResponse) Descriptor() ([]byte, []int) { + return file_fdb_proto_rawDescGZIP(), []int{6} +} + +func (x *FDBMoveDataCopyResponse) GetId() int64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *FDBMoveDataCopyResponse) GetExisting() bool { + if x != nil { + return x.Existing + } + return false +} + +type FDBMoveDataWaitRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` +} + +func (x *FDBMoveDataWaitRequest) Reset() { + *x = FDBMoveDataWaitRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_fdb_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FDBMoveDataWaitRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FDBMoveDataWaitRequest) ProtoMessage() {} + +func (x *FDBMoveDataWaitRequest) ProtoReflect() protoreflect.Message { + mi := &file_fdb_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FDBMoveDataWaitRequest.ProtoReflect.Descriptor instead. +func (*FDBMoveDataWaitRequest) Descriptor() ([]byte, []int) { + return file_fdb_proto_rawDescGZIP(), []int{7} +} + +func (x *FDBMoveDataWaitRequest) GetId() int64 { + if x != nil { + return x.Id + } + return 0 +} + +type FDBMoveDataWaitResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Stdout []byte `protobuf:"bytes,1,opt,name=stdout,proto3" json:"stdout,omitempty"` + Stderr []byte `protobuf:"bytes,2,opt,name=stderr,proto3" json:"stderr,omitempty"` + RetCode int32 `protobuf:"varint,3,opt,name=retCode,proto3" json:"retCode,omitempty"` +} + +func (x *FDBMoveDataWaitResponse) Reset() { + *x = FDBMoveDataWaitResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_fdb_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FDBMoveDataWaitResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FDBMoveDataWaitResponse) ProtoMessage() {} + +func (x *FDBMoveDataWaitResponse) ProtoReflect() protoreflect.Message { + mi := &file_fdb_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FDBMoveDataWaitResponse.ProtoReflect.Descriptor instead. +func (*FDBMoveDataWaitResponse) Descriptor() ([]byte, []int) { + return file_fdb_proto_rawDescGZIP(), []int{8} +} + +func (x *FDBMoveDataWaitResponse) GetStdout() []byte { + if x != nil { + return x.Stdout + } + return nil +} + +func (x *FDBMoveDataWaitResponse) GetStderr() []byte { + if x != nil { + return x.Stderr + } + return nil +} + +func (x *FDBMoveDataWaitResponse) GetRetCode() int32 { + if x != nil { + return x.RetCode + } + return 0 +} + type FDBCLIAdvanceversion struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -308,7 +552,7 @@ type FDBCLIAdvanceversion struct { func (x *FDBCLIAdvanceversion) Reset() { *x = FDBCLIAdvanceversion{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[5] + mi := &file_fdb_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -321,7 +565,7 @@ func (x *FDBCLIAdvanceversion) String() string { func (*FDBCLIAdvanceversion) ProtoMessage() {} func (x *FDBCLIAdvanceversion) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[5] + mi := &file_fdb_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -334,7 +578,7 @@ func (x *FDBCLIAdvanceversion) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIAdvanceversion.ProtoReflect.Descriptor instead. func (*FDBCLIAdvanceversion) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{5} + return file_fdb_proto_rawDescGZIP(), []int{9} } func (x *FDBCLIAdvanceversion) GetVersion() int64 { @@ -353,7 +597,7 @@ type FDBCLIBegin struct { func (x *FDBCLIBegin) Reset() { *x = FDBCLIBegin{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[6] + mi := &file_fdb_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -366,7 +610,7 @@ func (x *FDBCLIBegin) String() string { func (*FDBCLIBegin) ProtoMessage() {} func (x *FDBCLIBegin) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[6] + mi := &file_fdb_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -379,7 +623,7 @@ func (x *FDBCLIBegin) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIBegin.ProtoReflect.Descriptor instead. func (*FDBCLIBegin) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{6} + return file_fdb_proto_rawDescGZIP(), []int{10} } type FDBCLIBlobrangeStart struct { @@ -394,7 +638,7 @@ type FDBCLIBlobrangeStart struct { func (x *FDBCLIBlobrangeStart) Reset() { *x = FDBCLIBlobrangeStart{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[7] + mi := &file_fdb_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -407,7 +651,7 @@ func (x *FDBCLIBlobrangeStart) String() string { func (*FDBCLIBlobrangeStart) ProtoMessage() {} func (x *FDBCLIBlobrangeStart) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[7] + mi := &file_fdb_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -420,7 +664,7 @@ func (x *FDBCLIBlobrangeStart) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIBlobrangeStart.ProtoReflect.Descriptor instead. func (*FDBCLIBlobrangeStart) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{7} + return file_fdb_proto_rawDescGZIP(), []int{11} } func (x *FDBCLIBlobrangeStart) GetBeginKey() string { @@ -449,7 +693,7 @@ type FDBCLIBlobrangeStop struct { func (x *FDBCLIBlobrangeStop) Reset() { *x = FDBCLIBlobrangeStop{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[8] + mi := &file_fdb_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -462,7 +706,7 @@ func (x *FDBCLIBlobrangeStop) String() string { func (*FDBCLIBlobrangeStop) ProtoMessage() {} func (x *FDBCLIBlobrangeStop) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[8] + mi := &file_fdb_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -475,7 +719,7 @@ func (x *FDBCLIBlobrangeStop) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIBlobrangeStop.ProtoReflect.Descriptor instead. func (*FDBCLIBlobrangeStop) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{8} + return file_fdb_proto_rawDescGZIP(), []int{12} } func (x *FDBCLIBlobrangeStop) GetBeginKey() string { @@ -507,7 +751,7 @@ type FDBCLIBlobrange struct { func (x *FDBCLIBlobrange) Reset() { *x = FDBCLIBlobrange{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[9] + mi := &file_fdb_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -520,7 +764,7 @@ func (x *FDBCLIBlobrange) String() string { func (*FDBCLIBlobrange) ProtoMessage() {} func (x *FDBCLIBlobrange) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[9] + mi := &file_fdb_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -533,7 +777,7 @@ func (x *FDBCLIBlobrange) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIBlobrange.ProtoReflect.Descriptor instead. func (*FDBCLIBlobrange) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{9} + return file_fdb_proto_rawDescGZIP(), []int{13} } func (m *FDBCLIBlobrange) GetRequest() isFDBCLIBlobrange_Request { @@ -585,7 +829,7 @@ type FDBCLICacheRangeSet struct { func (x *FDBCLICacheRangeSet) Reset() { *x = FDBCLICacheRangeSet{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[10] + mi := &file_fdb_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -598,7 +842,7 @@ func (x *FDBCLICacheRangeSet) String() string { func (*FDBCLICacheRangeSet) ProtoMessage() {} func (x *FDBCLICacheRangeSet) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[10] + mi := &file_fdb_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -611,7 +855,7 @@ func (x *FDBCLICacheRangeSet) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLICacheRangeSet.ProtoReflect.Descriptor instead. func (*FDBCLICacheRangeSet) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{10} + return file_fdb_proto_rawDescGZIP(), []int{14} } func (x *FDBCLICacheRangeSet) GetBeginKey() string { @@ -640,7 +884,7 @@ type FDBCLICacheRangeClear struct { func (x *FDBCLICacheRangeClear) Reset() { *x = FDBCLICacheRangeClear{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[11] + mi := &file_fdb_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -653,7 +897,7 @@ func (x *FDBCLICacheRangeClear) String() string { func (*FDBCLICacheRangeClear) ProtoMessage() {} func (x *FDBCLICacheRangeClear) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[11] + mi := &file_fdb_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -666,7 +910,7 @@ func (x *FDBCLICacheRangeClear) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLICacheRangeClear.ProtoReflect.Descriptor instead. func (*FDBCLICacheRangeClear) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{11} + return file_fdb_proto_rawDescGZIP(), []int{15} } func (x *FDBCLICacheRangeClear) GetBeginKey() string { @@ -698,7 +942,7 @@ type FDBCLICacheRange struct { func (x *FDBCLICacheRange) Reset() { *x = FDBCLICacheRange{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[12] + mi := &file_fdb_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -711,7 +955,7 @@ func (x *FDBCLICacheRange) String() string { func (*FDBCLICacheRange) ProtoMessage() {} func (x *FDBCLICacheRange) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[12] + mi := &file_fdb_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -724,7 +968,7 @@ func (x *FDBCLICacheRange) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLICacheRange.ProtoReflect.Descriptor instead. func (*FDBCLICacheRange) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{12} + return file_fdb_proto_rawDescGZIP(), []int{16} } func (m *FDBCLICacheRange) GetRequest() isFDBCLICacheRange_Request { @@ -773,7 +1017,7 @@ type FDBCLIChangefeedList struct { func (x *FDBCLIChangefeedList) Reset() { *x = FDBCLIChangefeedList{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[13] + mi := &file_fdb_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -786,7 +1030,7 @@ func (x *FDBCLIChangefeedList) String() string { func (*FDBCLIChangefeedList) ProtoMessage() {} func (x *FDBCLIChangefeedList) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[13] + mi := &file_fdb_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -799,7 +1043,7 @@ func (x *FDBCLIChangefeedList) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIChangefeedList.ProtoReflect.Descriptor instead. func (*FDBCLIChangefeedList) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{13} + return file_fdb_proto_rawDescGZIP(), []int{17} } type FDBCLIChangefeedRegister struct { @@ -815,7 +1059,7 @@ type FDBCLIChangefeedRegister struct { func (x *FDBCLIChangefeedRegister) Reset() { *x = FDBCLIChangefeedRegister{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[14] + mi := &file_fdb_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -828,7 +1072,7 @@ func (x *FDBCLIChangefeedRegister) String() string { func (*FDBCLIChangefeedRegister) ProtoMessage() {} func (x *FDBCLIChangefeedRegister) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[14] + mi := &file_fdb_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -841,7 +1085,7 @@ func (x *FDBCLIChangefeedRegister) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIChangefeedRegister.ProtoReflect.Descriptor instead. func (*FDBCLIChangefeedRegister) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{14} + return file_fdb_proto_rawDescGZIP(), []int{18} } func (x *FDBCLIChangefeedRegister) GetRangeId() string { @@ -876,7 +1120,7 @@ type FDBCLIChangefeedStop struct { func (x *FDBCLIChangefeedStop) Reset() { *x = FDBCLIChangefeedStop{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[15] + mi := &file_fdb_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -889,7 +1133,7 @@ func (x *FDBCLIChangefeedStop) String() string { func (*FDBCLIChangefeedStop) ProtoMessage() {} func (x *FDBCLIChangefeedStop) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[15] + mi := &file_fdb_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -902,7 +1146,7 @@ func (x *FDBCLIChangefeedStop) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIChangefeedStop.ProtoReflect.Descriptor instead. func (*FDBCLIChangefeedStop) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{15} + return file_fdb_proto_rawDescGZIP(), []int{19} } func (x *FDBCLIChangefeedStop) GetRangeId() string { @@ -923,7 +1167,7 @@ type FDBCLIChangefeedDestroy struct { func (x *FDBCLIChangefeedDestroy) Reset() { *x = FDBCLIChangefeedDestroy{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[16] + mi := &file_fdb_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -936,7 +1180,7 @@ func (x *FDBCLIChangefeedDestroy) String() string { func (*FDBCLIChangefeedDestroy) ProtoMessage() {} func (x *FDBCLIChangefeedDestroy) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[16] + mi := &file_fdb_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -949,7 +1193,7 @@ func (x *FDBCLIChangefeedDestroy) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIChangefeedDestroy.ProtoReflect.Descriptor instead. func (*FDBCLIChangefeedDestroy) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{16} + return file_fdb_proto_rawDescGZIP(), []int{20} } func (x *FDBCLIChangefeedDestroy) GetRangeId() string { @@ -968,7 +1212,7 @@ type FDBCLIChangefeedStreamNoVersion struct { func (x *FDBCLIChangefeedStreamNoVersion) Reset() { *x = FDBCLIChangefeedStreamNoVersion{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[17] + mi := &file_fdb_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -981,7 +1225,7 @@ func (x *FDBCLIChangefeedStreamNoVersion) String() string { func (*FDBCLIChangefeedStreamNoVersion) ProtoMessage() {} func (x *FDBCLIChangefeedStreamNoVersion) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[17] + mi := &file_fdb_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -994,7 +1238,7 @@ func (x *FDBCLIChangefeedStreamNoVersion) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIChangefeedStreamNoVersion.ProtoReflect.Descriptor instead. func (*FDBCLIChangefeedStreamNoVersion) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{17} + return file_fdb_proto_rawDescGZIP(), []int{21} } type FDBCLIChangefeedStreamStartVersion struct { @@ -1008,7 +1252,7 @@ type FDBCLIChangefeedStreamStartVersion struct { func (x *FDBCLIChangefeedStreamStartVersion) Reset() { *x = FDBCLIChangefeedStreamStartVersion{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[18] + mi := &file_fdb_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1021,7 +1265,7 @@ func (x *FDBCLIChangefeedStreamStartVersion) String() string { func (*FDBCLIChangefeedStreamStartVersion) ProtoMessage() {} func (x *FDBCLIChangefeedStreamStartVersion) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[18] + mi := &file_fdb_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1034,7 +1278,7 @@ func (x *FDBCLIChangefeedStreamStartVersion) ProtoReflect() protoreflect.Message // Deprecated: Use FDBCLIChangefeedStreamStartVersion.ProtoReflect.Descriptor instead. func (*FDBCLIChangefeedStreamStartVersion) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{18} + return file_fdb_proto_rawDescGZIP(), []int{22} } func (x *FDBCLIChangefeedStreamStartVersion) GetStartVersion() int64 { @@ -1056,7 +1300,7 @@ type FDBCLIChangefeedStreamStartEndVersion struct { func (x *FDBCLIChangefeedStreamStartEndVersion) Reset() { *x = FDBCLIChangefeedStreamStartEndVersion{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[19] + mi := &file_fdb_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1069,7 +1313,7 @@ func (x *FDBCLIChangefeedStreamStartEndVersion) String() string { func (*FDBCLIChangefeedStreamStartEndVersion) ProtoMessage() {} func (x *FDBCLIChangefeedStreamStartEndVersion) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[19] + mi := &file_fdb_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1082,7 +1326,7 @@ func (x *FDBCLIChangefeedStreamStartEndVersion) ProtoReflect() protoreflect.Mess // Deprecated: Use FDBCLIChangefeedStreamStartEndVersion.ProtoReflect.Descriptor instead. func (*FDBCLIChangefeedStreamStartEndVersion) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{19} + return file_fdb_proto_rawDescGZIP(), []int{23} } func (x *FDBCLIChangefeedStreamStartEndVersion) GetStartVersion() int64 { @@ -1118,7 +1362,7 @@ type FDBCLIChangefeedStream struct { func (x *FDBCLIChangefeedStream) Reset() { *x = FDBCLIChangefeedStream{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[20] + mi := &file_fdb_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1131,7 +1375,7 @@ func (x *FDBCLIChangefeedStream) String() string { func (*FDBCLIChangefeedStream) ProtoMessage() {} func (x *FDBCLIChangefeedStream) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[20] + mi := &file_fdb_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1144,7 +1388,7 @@ func (x *FDBCLIChangefeedStream) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIChangefeedStream.ProtoReflect.Descriptor instead. func (*FDBCLIChangefeedStream) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{20} + return file_fdb_proto_rawDescGZIP(), []int{24} } func (x *FDBCLIChangefeedStream) GetRangeId() string { @@ -1216,7 +1460,7 @@ type FDBCLIChangefeedStreamPop struct { func (x *FDBCLIChangefeedStreamPop) Reset() { *x = FDBCLIChangefeedStreamPop{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[21] + mi := &file_fdb_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1229,7 +1473,7 @@ func (x *FDBCLIChangefeedStreamPop) String() string { func (*FDBCLIChangefeedStreamPop) ProtoMessage() {} func (x *FDBCLIChangefeedStreamPop) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[21] + mi := &file_fdb_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1242,7 +1486,7 @@ func (x *FDBCLIChangefeedStreamPop) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIChangefeedStreamPop.ProtoReflect.Descriptor instead. func (*FDBCLIChangefeedStreamPop) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{21} + return file_fdb_proto_rawDescGZIP(), []int{25} } func (x *FDBCLIChangefeedStreamPop) GetRangeId() string { @@ -1278,7 +1522,7 @@ type FDBCLIChangefeed struct { func (x *FDBCLIChangefeed) Reset() { *x = FDBCLIChangefeed{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[22] + mi := &file_fdb_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1291,7 +1535,7 @@ func (x *FDBCLIChangefeed) String() string { func (*FDBCLIChangefeed) ProtoMessage() {} func (x *FDBCLIChangefeed) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[22] + mi := &file_fdb_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1304,7 +1548,7 @@ func (x *FDBCLIChangefeed) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIChangefeed.ProtoReflect.Descriptor instead. func (*FDBCLIChangefeed) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{22} + return file_fdb_proto_rawDescGZIP(), []int{26} } func (m *FDBCLIChangefeed) GetRequest() isFDBCLIChangefeed_Request { @@ -1407,7 +1651,7 @@ type FDBCLIClear struct { func (x *FDBCLIClear) Reset() { *x = FDBCLIClear{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[23] + mi := &file_fdb_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1420,7 +1664,7 @@ func (x *FDBCLIClear) String() string { func (*FDBCLIClear) ProtoMessage() {} func (x *FDBCLIClear) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[23] + mi := &file_fdb_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1433,7 +1677,7 @@ func (x *FDBCLIClear) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIClear.ProtoReflect.Descriptor instead. func (*FDBCLIClear) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{23} + return file_fdb_proto_rawDescGZIP(), []int{27} } func (x *FDBCLIClear) GetKey() string { @@ -1455,7 +1699,7 @@ type FDBCLIClearrange struct { func (x *FDBCLIClearrange) Reset() { *x = FDBCLIClearrange{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[24] + mi := &file_fdb_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1468,7 +1712,7 @@ func (x *FDBCLIClearrange) String() string { func (*FDBCLIClearrange) ProtoMessage() {} func (x *FDBCLIClearrange) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[24] + mi := &file_fdb_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1481,7 +1725,7 @@ func (x *FDBCLIClearrange) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIClearrange.ProtoReflect.Descriptor instead. func (*FDBCLIClearrange) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{24} + return file_fdb_proto_rawDescGZIP(), []int{28} } func (x *FDBCLIClearrange) GetBeginKey() string { @@ -1507,7 +1751,7 @@ type FDBCLICommit struct { func (x *FDBCLICommit) Reset() { *x = FDBCLICommit{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[25] + mi := &file_fdb_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1520,7 +1764,7 @@ func (x *FDBCLICommit) String() string { func (*FDBCLICommit) ProtoMessage() {} func (x *FDBCLICommit) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[25] + mi := &file_fdb_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1533,7 +1777,7 @@ func (x *FDBCLICommit) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLICommit.ProtoReflect.Descriptor instead. func (*FDBCLICommit) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{25} + return file_fdb_proto_rawDescGZIP(), []int{29} } // See @@ -1561,7 +1805,7 @@ type FDBCLIConfigure struct { func (x *FDBCLIConfigure) Reset() { *x = FDBCLIConfigure{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[26] + mi := &file_fdb_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1574,7 +1818,7 @@ func (x *FDBCLIConfigure) String() string { func (*FDBCLIConfigure) ProtoMessage() {} func (x *FDBCLIConfigure) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[26] + mi := &file_fdb_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1587,7 +1831,7 @@ func (x *FDBCLIConfigure) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIConfigure.ProtoReflect.Descriptor instead. func (*FDBCLIConfigure) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{26} + return file_fdb_proto_rawDescGZIP(), []int{30} } func (x *FDBCLIConfigure) GetNewOrTss() *wrapperspb.StringValue { @@ -1685,7 +1929,7 @@ type FDBCLIConsistencycheck struct { func (x *FDBCLIConsistencycheck) Reset() { *x = FDBCLIConsistencycheck{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[27] + mi := &file_fdb_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1698,7 +1942,7 @@ func (x *FDBCLIConsistencycheck) String() string { func (*FDBCLIConsistencycheck) ProtoMessage() {} func (x *FDBCLIConsistencycheck) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[27] + mi := &file_fdb_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1711,7 +1955,7 @@ func (x *FDBCLIConsistencycheck) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIConsistencycheck.ProtoReflect.Descriptor instead. func (*FDBCLIConsistencycheck) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{27} + return file_fdb_proto_rawDescGZIP(), []int{31} } func (x *FDBCLIConsistencycheck) GetMode() *wrapperspb.BoolValue { @@ -1730,7 +1974,7 @@ type FDBCLICoordinatorsAuto struct { func (x *FDBCLICoordinatorsAuto) Reset() { *x = FDBCLICoordinatorsAuto{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[28] + mi := &file_fdb_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1743,7 +1987,7 @@ func (x *FDBCLICoordinatorsAuto) String() string { func (*FDBCLICoordinatorsAuto) ProtoMessage() {} func (x *FDBCLICoordinatorsAuto) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[28] + mi := &file_fdb_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1756,7 +2000,7 @@ func (x *FDBCLICoordinatorsAuto) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLICoordinatorsAuto.ProtoReflect.Descriptor instead. func (*FDBCLICoordinatorsAuto) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{28} + return file_fdb_proto_rawDescGZIP(), []int{32} } type FDBCLICoordinatorsAddresses struct { @@ -1770,7 +2014,7 @@ type FDBCLICoordinatorsAddresses struct { func (x *FDBCLICoordinatorsAddresses) Reset() { *x = FDBCLICoordinatorsAddresses{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[29] + mi := &file_fdb_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1783,7 +2027,7 @@ func (x *FDBCLICoordinatorsAddresses) String() string { func (*FDBCLICoordinatorsAddresses) ProtoMessage() {} func (x *FDBCLICoordinatorsAddresses) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[29] + mi := &file_fdb_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1796,7 +2040,7 @@ func (x *FDBCLICoordinatorsAddresses) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLICoordinatorsAddresses.ProtoReflect.Descriptor instead. func (*FDBCLICoordinatorsAddresses) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{29} + return file_fdb_proto_rawDescGZIP(), []int{33} } func (x *FDBCLICoordinatorsAddresses) GetAddresses() []string { @@ -1822,7 +2066,7 @@ type FDBCLICoordinators struct { func (x *FDBCLICoordinators) Reset() { *x = FDBCLICoordinators{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[30] + mi := &file_fdb_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1835,7 +2079,7 @@ func (x *FDBCLICoordinators) String() string { func (*FDBCLICoordinators) ProtoMessage() {} func (x *FDBCLICoordinators) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[30] + mi := &file_fdb_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1848,7 +2092,7 @@ func (x *FDBCLICoordinators) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLICoordinators.ProtoReflect.Descriptor instead. func (*FDBCLICoordinators) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{30} + return file_fdb_proto_rawDescGZIP(), []int{34} } func (m *FDBCLICoordinators) GetRequest() isFDBCLICoordinators_Request { @@ -1906,7 +2150,7 @@ type FDBCLICreatetenant struct { func (x *FDBCLICreatetenant) Reset() { *x = FDBCLICreatetenant{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[31] + mi := &file_fdb_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1919,7 +2163,7 @@ func (x *FDBCLICreatetenant) String() string { func (*FDBCLICreatetenant) ProtoMessage() {} func (x *FDBCLICreatetenant) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[31] + mi := &file_fdb_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1932,7 +2176,7 @@ func (x *FDBCLICreatetenant) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLICreatetenant.ProtoReflect.Descriptor instead. func (*FDBCLICreatetenant) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{31} + return file_fdb_proto_rawDescGZIP(), []int{35} } func (x *FDBCLICreatetenant) GetName() string { @@ -1951,7 +2195,7 @@ type FDBCLIDatadistributionOn struct { func (x *FDBCLIDatadistributionOn) Reset() { *x = FDBCLIDatadistributionOn{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[32] + mi := &file_fdb_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1964,7 +2208,7 @@ func (x *FDBCLIDatadistributionOn) String() string { func (*FDBCLIDatadistributionOn) ProtoMessage() {} func (x *FDBCLIDatadistributionOn) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[32] + mi := &file_fdb_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1977,7 +2221,7 @@ func (x *FDBCLIDatadistributionOn) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIDatadistributionOn.ProtoReflect.Descriptor instead. func (*FDBCLIDatadistributionOn) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{32} + return file_fdb_proto_rawDescGZIP(), []int{36} } type FDBCLIDatadistributionOff struct { @@ -1989,7 +2233,7 @@ type FDBCLIDatadistributionOff struct { func (x *FDBCLIDatadistributionOff) Reset() { *x = FDBCLIDatadistributionOff{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[33] + mi := &file_fdb_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2002,7 +2246,7 @@ func (x *FDBCLIDatadistributionOff) String() string { func (*FDBCLIDatadistributionOff) ProtoMessage() {} func (x *FDBCLIDatadistributionOff) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[33] + mi := &file_fdb_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2015,7 +2259,7 @@ func (x *FDBCLIDatadistributionOff) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIDatadistributionOff.ProtoReflect.Descriptor instead. func (*FDBCLIDatadistributionOff) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{33} + return file_fdb_proto_rawDescGZIP(), []int{37} } type FDBCLIDatadistributionEnable struct { @@ -2029,7 +2273,7 @@ type FDBCLIDatadistributionEnable struct { func (x *FDBCLIDatadistributionEnable) Reset() { *x = FDBCLIDatadistributionEnable{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[34] + mi := &file_fdb_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2042,7 +2286,7 @@ func (x *FDBCLIDatadistributionEnable) String() string { func (*FDBCLIDatadistributionEnable) ProtoMessage() {} func (x *FDBCLIDatadistributionEnable) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[34] + mi := &file_fdb_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2055,7 +2299,7 @@ func (x *FDBCLIDatadistributionEnable) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIDatadistributionEnable.ProtoReflect.Descriptor instead. func (*FDBCLIDatadistributionEnable) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{34} + return file_fdb_proto_rawDescGZIP(), []int{38} } func (x *FDBCLIDatadistributionEnable) GetOption() string { @@ -2076,7 +2320,7 @@ type FDBCLIDatadistributionDisable struct { func (x *FDBCLIDatadistributionDisable) Reset() { *x = FDBCLIDatadistributionDisable{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[35] + mi := &file_fdb_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2089,7 +2333,7 @@ func (x *FDBCLIDatadistributionDisable) String() string { func (*FDBCLIDatadistributionDisable) ProtoMessage() {} func (x *FDBCLIDatadistributionDisable) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[35] + mi := &file_fdb_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2102,7 +2346,7 @@ func (x *FDBCLIDatadistributionDisable) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIDatadistributionDisable.ProtoReflect.Descriptor instead. func (*FDBCLIDatadistributionDisable) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{35} + return file_fdb_proto_rawDescGZIP(), []int{39} } func (x *FDBCLIDatadistributionDisable) GetOption() string { @@ -2129,7 +2373,7 @@ type FDBCLIDatadistribution struct { func (x *FDBCLIDatadistribution) Reset() { *x = FDBCLIDatadistribution{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[36] + mi := &file_fdb_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2142,7 +2386,7 @@ func (x *FDBCLIDatadistribution) String() string { func (*FDBCLIDatadistribution) ProtoMessage() {} func (x *FDBCLIDatadistribution) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[36] + mi := &file_fdb_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2155,7 +2399,7 @@ func (x *FDBCLIDatadistribution) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIDatadistribution.ProtoReflect.Descriptor instead. func (*FDBCLIDatadistribution) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{36} + return file_fdb_proto_rawDescGZIP(), []int{40} } func (m *FDBCLIDatadistribution) GetRequest() isFDBCLIDatadistribution_Request { @@ -2230,7 +2474,7 @@ type FDBCLIDefaulttenant struct { func (x *FDBCLIDefaulttenant) Reset() { *x = FDBCLIDefaulttenant{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[37] + mi := &file_fdb_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2243,7 +2487,7 @@ func (x *FDBCLIDefaulttenant) String() string { func (*FDBCLIDefaulttenant) ProtoMessage() {} func (x *FDBCLIDefaulttenant) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[37] + mi := &file_fdb_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2256,7 +2500,7 @@ func (x *FDBCLIDefaulttenant) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIDefaulttenant.ProtoReflect.Descriptor instead. func (*FDBCLIDefaulttenant) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{37} + return file_fdb_proto_rawDescGZIP(), []int{41} } type FDBCLIDeletetenant struct { @@ -2270,7 +2514,7 @@ type FDBCLIDeletetenant struct { func (x *FDBCLIDeletetenant) Reset() { *x = FDBCLIDeletetenant{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[38] + mi := &file_fdb_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2283,7 +2527,7 @@ func (x *FDBCLIDeletetenant) String() string { func (*FDBCLIDeletetenant) ProtoMessage() {} func (x *FDBCLIDeletetenant) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[38] + mi := &file_fdb_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2296,7 +2540,7 @@ func (x *FDBCLIDeletetenant) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIDeletetenant.ProtoReflect.Descriptor instead. func (*FDBCLIDeletetenant) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{38} + return file_fdb_proto_rawDescGZIP(), []int{42} } func (x *FDBCLIDeletetenant) GetName() string { @@ -2319,7 +2563,7 @@ type FDBCLIExclude struct { func (x *FDBCLIExclude) Reset() { *x = FDBCLIExclude{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[39] + mi := &file_fdb_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2332,7 +2576,7 @@ func (x *FDBCLIExclude) String() string { func (*FDBCLIExclude) ProtoMessage() {} func (x *FDBCLIExclude) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[39] + mi := &file_fdb_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2345,7 +2589,7 @@ func (x *FDBCLIExclude) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIExclude.ProtoReflect.Descriptor instead. func (*FDBCLIExclude) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{39} + return file_fdb_proto_rawDescGZIP(), []int{43} } func (x *FDBCLIExclude) GetFailed() *wrapperspb.BoolValue { @@ -2378,7 +2622,7 @@ type FDBCLIExpensiveDataCheckInit struct { func (x *FDBCLIExpensiveDataCheckInit) Reset() { *x = FDBCLIExpensiveDataCheckInit{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[40] + mi := &file_fdb_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2391,7 +2635,7 @@ func (x *FDBCLIExpensiveDataCheckInit) String() string { func (*FDBCLIExpensiveDataCheckInit) ProtoMessage() {} func (x *FDBCLIExpensiveDataCheckInit) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[40] + mi := &file_fdb_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2404,7 +2648,7 @@ func (x *FDBCLIExpensiveDataCheckInit) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIExpensiveDataCheckInit.ProtoReflect.Descriptor instead. func (*FDBCLIExpensiveDataCheckInit) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{40} + return file_fdb_proto_rawDescGZIP(), []int{44} } type FDBCLIExpensiveDataCheckList struct { @@ -2416,7 +2660,7 @@ type FDBCLIExpensiveDataCheckList struct { func (x *FDBCLIExpensiveDataCheckList) Reset() { *x = FDBCLIExpensiveDataCheckList{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[41] + mi := &file_fdb_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2429,7 +2673,7 @@ func (x *FDBCLIExpensiveDataCheckList) String() string { func (*FDBCLIExpensiveDataCheckList) ProtoMessage() {} func (x *FDBCLIExpensiveDataCheckList) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[41] + mi := &file_fdb_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2442,7 +2686,7 @@ func (x *FDBCLIExpensiveDataCheckList) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIExpensiveDataCheckList.ProtoReflect.Descriptor instead. func (*FDBCLIExpensiveDataCheckList) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{41} + return file_fdb_proto_rawDescGZIP(), []int{45} } type FDBCLIExpensiveDataCheckAll struct { @@ -2454,7 +2698,7 @@ type FDBCLIExpensiveDataCheckAll struct { func (x *FDBCLIExpensiveDataCheckAll) Reset() { *x = FDBCLIExpensiveDataCheckAll{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[42] + mi := &file_fdb_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2467,7 +2711,7 @@ func (x *FDBCLIExpensiveDataCheckAll) String() string { func (*FDBCLIExpensiveDataCheckAll) ProtoMessage() {} func (x *FDBCLIExpensiveDataCheckAll) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[42] + mi := &file_fdb_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2480,7 +2724,7 @@ func (x *FDBCLIExpensiveDataCheckAll) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIExpensiveDataCheckAll.ProtoReflect.Descriptor instead. func (*FDBCLIExpensiveDataCheckAll) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{42} + return file_fdb_proto_rawDescGZIP(), []int{46} } type FDBCLIExpensiveDataCheckCheck struct { @@ -2494,7 +2738,7 @@ type FDBCLIExpensiveDataCheckCheck struct { func (x *FDBCLIExpensiveDataCheckCheck) Reset() { *x = FDBCLIExpensiveDataCheckCheck{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[43] + mi := &file_fdb_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2507,7 +2751,7 @@ func (x *FDBCLIExpensiveDataCheckCheck) String() string { func (*FDBCLIExpensiveDataCheckCheck) ProtoMessage() {} func (x *FDBCLIExpensiveDataCheckCheck) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[43] + mi := &file_fdb_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2520,7 +2764,7 @@ func (x *FDBCLIExpensiveDataCheckCheck) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIExpensiveDataCheckCheck.ProtoReflect.Descriptor instead. func (*FDBCLIExpensiveDataCheckCheck) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{43} + return file_fdb_proto_rawDescGZIP(), []int{47} } func (x *FDBCLIExpensiveDataCheckCheck) GetAddresses() []string { @@ -2547,7 +2791,7 @@ type FDBCLIExpensiveDataCheck struct { func (x *FDBCLIExpensiveDataCheck) Reset() { *x = FDBCLIExpensiveDataCheck{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[44] + mi := &file_fdb_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2560,7 +2804,7 @@ func (x *FDBCLIExpensiveDataCheck) String() string { func (*FDBCLIExpensiveDataCheck) ProtoMessage() {} func (x *FDBCLIExpensiveDataCheck) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[44] + mi := &file_fdb_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2573,7 +2817,7 @@ func (x *FDBCLIExpensiveDataCheck) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIExpensiveDataCheck.ProtoReflect.Descriptor instead. func (*FDBCLIExpensiveDataCheck) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{44} + return file_fdb_proto_rawDescGZIP(), []int{48} } func (m *FDBCLIExpensiveDataCheck) GetRequest() isFDBCLIExpensiveDataCheck_Request { @@ -2651,7 +2895,7 @@ type FDBCLIFileconfigure struct { func (x *FDBCLIFileconfigure) Reset() { *x = FDBCLIFileconfigure{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[45] + mi := &file_fdb_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2664,7 +2908,7 @@ func (x *FDBCLIFileconfigure) String() string { func (*FDBCLIFileconfigure) ProtoMessage() {} func (x *FDBCLIFileconfigure) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[45] + mi := &file_fdb_proto_msgTypes[49] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2677,7 +2921,7 @@ func (x *FDBCLIFileconfigure) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIFileconfigure.ProtoReflect.Descriptor instead. func (*FDBCLIFileconfigure) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{45} + return file_fdb_proto_rawDescGZIP(), []int{49} } func (x *FDBCLIFileconfigure) GetNew() *wrapperspb.BoolValue { @@ -2705,7 +2949,7 @@ type FDBCLIForceRecoveryWithDataLoss struct { func (x *FDBCLIForceRecoveryWithDataLoss) Reset() { *x = FDBCLIForceRecoveryWithDataLoss{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[46] + mi := &file_fdb_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2718,7 +2962,7 @@ func (x *FDBCLIForceRecoveryWithDataLoss) String() string { func (*FDBCLIForceRecoveryWithDataLoss) ProtoMessage() {} func (x *FDBCLIForceRecoveryWithDataLoss) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[46] + mi := &file_fdb_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2731,7 +2975,7 @@ func (x *FDBCLIForceRecoveryWithDataLoss) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIForceRecoveryWithDataLoss.ProtoReflect.Descriptor instead. func (*FDBCLIForceRecoveryWithDataLoss) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{46} + return file_fdb_proto_rawDescGZIP(), []int{50} } func (x *FDBCLIForceRecoveryWithDataLoss) GetDcid() string { @@ -2752,7 +2996,7 @@ type FDBCLIGet struct { func (x *FDBCLIGet) Reset() { *x = FDBCLIGet{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[47] + mi := &file_fdb_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2765,7 +3009,7 @@ func (x *FDBCLIGet) String() string { func (*FDBCLIGet) ProtoMessage() {} func (x *FDBCLIGet) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[47] + mi := &file_fdb_proto_msgTypes[51] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2778,7 +3022,7 @@ func (x *FDBCLIGet) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIGet.ProtoReflect.Descriptor instead. func (*FDBCLIGet) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{47} + return file_fdb_proto_rawDescGZIP(), []int{51} } func (x *FDBCLIGet) GetKey() string { @@ -2801,7 +3045,7 @@ type FDBCLIGetrange struct { func (x *FDBCLIGetrange) Reset() { *x = FDBCLIGetrange{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[48] + mi := &file_fdb_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2814,7 +3058,7 @@ func (x *FDBCLIGetrange) String() string { func (*FDBCLIGetrange) ProtoMessage() {} func (x *FDBCLIGetrange) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[48] + mi := &file_fdb_proto_msgTypes[52] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2827,7 +3071,7 @@ func (x *FDBCLIGetrange) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIGetrange.ProtoReflect.Descriptor instead. func (*FDBCLIGetrange) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{48} + return file_fdb_proto_rawDescGZIP(), []int{52} } func (x *FDBCLIGetrange) GetBeginKey() string { @@ -2864,7 +3108,7 @@ type FDBCLIGetrangekeys struct { func (x *FDBCLIGetrangekeys) Reset() { *x = FDBCLIGetrangekeys{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[49] + mi := &file_fdb_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2877,7 +3121,7 @@ func (x *FDBCLIGetrangekeys) String() string { func (*FDBCLIGetrangekeys) ProtoMessage() {} func (x *FDBCLIGetrangekeys) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[49] + mi := &file_fdb_proto_msgTypes[53] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2890,7 +3134,7 @@ func (x *FDBCLIGetrangekeys) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIGetrangekeys.ProtoReflect.Descriptor instead. func (*FDBCLIGetrangekeys) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{49} + return file_fdb_proto_rawDescGZIP(), []int{53} } func (x *FDBCLIGetrangekeys) GetBeginKey() string { @@ -2925,7 +3169,7 @@ type FDBCLIGettenant struct { func (x *FDBCLIGettenant) Reset() { *x = FDBCLIGettenant{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[50] + mi := &file_fdb_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2938,7 +3182,7 @@ func (x *FDBCLIGettenant) String() string { func (*FDBCLIGettenant) ProtoMessage() {} func (x *FDBCLIGettenant) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[50] + mi := &file_fdb_proto_msgTypes[54] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2951,7 +3195,7 @@ func (x *FDBCLIGettenant) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIGettenant.ProtoReflect.Descriptor instead. func (*FDBCLIGettenant) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{50} + return file_fdb_proto_rawDescGZIP(), []int{54} } func (x *FDBCLIGettenant) GetName() string { @@ -2970,7 +3214,7 @@ type FDBCLIGetversion struct { func (x *FDBCLIGetversion) Reset() { *x = FDBCLIGetversion{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[51] + mi := &file_fdb_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2983,7 +3227,7 @@ func (x *FDBCLIGetversion) String() string { func (*FDBCLIGetversion) ProtoMessage() {} func (x *FDBCLIGetversion) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[51] + mi := &file_fdb_proto_msgTypes[55] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2996,7 +3240,7 @@ func (x *FDBCLIGetversion) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIGetversion.ProtoReflect.Descriptor instead. func (*FDBCLIGetversion) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{51} + return file_fdb_proto_rawDescGZIP(), []int{55} } type FDBCLIHelp struct { @@ -3010,7 +3254,7 @@ type FDBCLIHelp struct { func (x *FDBCLIHelp) Reset() { *x = FDBCLIHelp{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[52] + mi := &file_fdb_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3023,7 +3267,7 @@ func (x *FDBCLIHelp) String() string { func (*FDBCLIHelp) ProtoMessage() {} func (x *FDBCLIHelp) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[52] + mi := &file_fdb_proto_msgTypes[56] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3036,7 +3280,7 @@ func (x *FDBCLIHelp) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIHelp.ProtoReflect.Descriptor instead. func (*FDBCLIHelp) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{52} + return file_fdb_proto_rawDescGZIP(), []int{56} } func (x *FDBCLIHelp) GetOptions() []string { @@ -3057,7 +3301,7 @@ type FDBCLIIncludeAddresses struct { func (x *FDBCLIIncludeAddresses) Reset() { *x = FDBCLIIncludeAddresses{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[53] + mi := &file_fdb_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3070,7 +3314,7 @@ func (x *FDBCLIIncludeAddresses) String() string { func (*FDBCLIIncludeAddresses) ProtoMessage() {} func (x *FDBCLIIncludeAddresses) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[53] + mi := &file_fdb_proto_msgTypes[57] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3083,7 +3327,7 @@ func (x *FDBCLIIncludeAddresses) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIIncludeAddresses.ProtoReflect.Descriptor instead. func (*FDBCLIIncludeAddresses) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{53} + return file_fdb_proto_rawDescGZIP(), []int{57} } func (x *FDBCLIIncludeAddresses) GetAddresses() []string { @@ -3109,7 +3353,7 @@ type FDBCLIInclude struct { func (x *FDBCLIInclude) Reset() { *x = FDBCLIInclude{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[54] + mi := &file_fdb_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3122,7 +3366,7 @@ func (x *FDBCLIInclude) String() string { func (*FDBCLIInclude) ProtoMessage() {} func (x *FDBCLIInclude) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[54] + mi := &file_fdb_proto_msgTypes[58] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3135,7 +3379,7 @@ func (x *FDBCLIInclude) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIInclude.ProtoReflect.Descriptor instead. func (*FDBCLIInclude) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{54} + return file_fdb_proto_rawDescGZIP(), []int{58} } func (x *FDBCLIInclude) GetFailed() *wrapperspb.BoolValue { @@ -3191,7 +3435,7 @@ type FDBCLIKillInit struct { func (x *FDBCLIKillInit) Reset() { *x = FDBCLIKillInit{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[55] + mi := &file_fdb_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3204,7 +3448,7 @@ func (x *FDBCLIKillInit) String() string { func (*FDBCLIKillInit) ProtoMessage() {} func (x *FDBCLIKillInit) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[55] + mi := &file_fdb_proto_msgTypes[59] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3217,7 +3461,7 @@ func (x *FDBCLIKillInit) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIKillInit.ProtoReflect.Descriptor instead. func (*FDBCLIKillInit) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{55} + return file_fdb_proto_rawDescGZIP(), []int{59} } type FDBCLIKillList struct { @@ -3229,7 +3473,7 @@ type FDBCLIKillList struct { func (x *FDBCLIKillList) Reset() { *x = FDBCLIKillList{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[56] + mi := &file_fdb_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3242,7 +3486,7 @@ func (x *FDBCLIKillList) String() string { func (*FDBCLIKillList) ProtoMessage() {} func (x *FDBCLIKillList) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[56] + mi := &file_fdb_proto_msgTypes[60] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3255,7 +3499,7 @@ func (x *FDBCLIKillList) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIKillList.ProtoReflect.Descriptor instead. func (*FDBCLIKillList) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{56} + return file_fdb_proto_rawDescGZIP(), []int{60} } type FDBCLIKillAll struct { @@ -3267,7 +3511,7 @@ type FDBCLIKillAll struct { func (x *FDBCLIKillAll) Reset() { *x = FDBCLIKillAll{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[57] + mi := &file_fdb_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3280,7 +3524,7 @@ func (x *FDBCLIKillAll) String() string { func (*FDBCLIKillAll) ProtoMessage() {} func (x *FDBCLIKillAll) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[57] + mi := &file_fdb_proto_msgTypes[61] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3293,7 +3537,7 @@ func (x *FDBCLIKillAll) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIKillAll.ProtoReflect.Descriptor instead. func (*FDBCLIKillAll) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{57} + return file_fdb_proto_rawDescGZIP(), []int{61} } type FDBCLIKillTargets struct { @@ -3307,7 +3551,7 @@ type FDBCLIKillTargets struct { func (x *FDBCLIKillTargets) Reset() { *x = FDBCLIKillTargets{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[58] + mi := &file_fdb_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3320,7 +3564,7 @@ func (x *FDBCLIKillTargets) String() string { func (*FDBCLIKillTargets) ProtoMessage() {} func (x *FDBCLIKillTargets) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[58] + mi := &file_fdb_proto_msgTypes[62] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3333,7 +3577,7 @@ func (x *FDBCLIKillTargets) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIKillTargets.ProtoReflect.Descriptor instead. func (*FDBCLIKillTargets) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{58} + return file_fdb_proto_rawDescGZIP(), []int{62} } func (x *FDBCLIKillTargets) GetAddresses() []string { @@ -3365,7 +3609,7 @@ type FDBCLIKill struct { func (x *FDBCLIKill) Reset() { *x = FDBCLIKill{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[59] + mi := &file_fdb_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3378,7 +3622,7 @@ func (x *FDBCLIKill) String() string { func (*FDBCLIKill) ProtoMessage() {} func (x *FDBCLIKill) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[59] + mi := &file_fdb_proto_msgTypes[63] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3391,7 +3635,7 @@ func (x *FDBCLIKill) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIKill.ProtoReflect.Descriptor instead. func (*FDBCLIKill) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{59} + return file_fdb_proto_rawDescGZIP(), []int{63} } func (m *FDBCLIKill) GetRequest() isFDBCLIKill_Request { @@ -3477,7 +3721,7 @@ type FDBCLIListtenants struct { func (x *FDBCLIListtenants) Reset() { *x = FDBCLIListtenants{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[60] + mi := &file_fdb_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3490,7 +3734,7 @@ func (x *FDBCLIListtenants) String() string { func (*FDBCLIListtenants) ProtoMessage() {} func (x *FDBCLIListtenants) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[60] + mi := &file_fdb_proto_msgTypes[64] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3503,7 +3747,7 @@ func (x *FDBCLIListtenants) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIListtenants.ProtoReflect.Descriptor instead. func (*FDBCLIListtenants) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{60} + return file_fdb_proto_rawDescGZIP(), []int{64} } func (x *FDBCLIListtenants) GetBegin() *wrapperspb.StringValue { @@ -3536,7 +3780,7 @@ type FDBCLILock struct { func (x *FDBCLILock) Reset() { *x = FDBCLILock{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[61] + mi := &file_fdb_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3549,7 +3793,7 @@ func (x *FDBCLILock) String() string { func (*FDBCLILock) ProtoMessage() {} func (x *FDBCLILock) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[61] + mi := &file_fdb_proto_msgTypes[65] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3562,7 +3806,7 @@ func (x *FDBCLILock) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLILock.ProtoReflect.Descriptor instead. func (*FDBCLILock) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{61} + return file_fdb_proto_rawDescGZIP(), []int{65} } type FDBCLIMaintenanceStatus struct { @@ -3574,7 +3818,7 @@ type FDBCLIMaintenanceStatus struct { func (x *FDBCLIMaintenanceStatus) Reset() { *x = FDBCLIMaintenanceStatus{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[62] + mi := &file_fdb_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3587,7 +3831,7 @@ func (x *FDBCLIMaintenanceStatus) String() string { func (*FDBCLIMaintenanceStatus) ProtoMessage() {} func (x *FDBCLIMaintenanceStatus) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[62] + mi := &file_fdb_proto_msgTypes[66] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3600,7 +3844,7 @@ func (x *FDBCLIMaintenanceStatus) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIMaintenanceStatus.ProtoReflect.Descriptor instead. func (*FDBCLIMaintenanceStatus) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{62} + return file_fdb_proto_rawDescGZIP(), []int{66} } type FDBCLIMaintenanceOn struct { @@ -3615,7 +3859,7 @@ type FDBCLIMaintenanceOn struct { func (x *FDBCLIMaintenanceOn) Reset() { *x = FDBCLIMaintenanceOn{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[63] + mi := &file_fdb_proto_msgTypes[67] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3628,7 +3872,7 @@ func (x *FDBCLIMaintenanceOn) String() string { func (*FDBCLIMaintenanceOn) ProtoMessage() {} func (x *FDBCLIMaintenanceOn) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[63] + mi := &file_fdb_proto_msgTypes[67] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3641,7 +3885,7 @@ func (x *FDBCLIMaintenanceOn) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIMaintenanceOn.ProtoReflect.Descriptor instead. func (*FDBCLIMaintenanceOn) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{63} + return file_fdb_proto_rawDescGZIP(), []int{67} } func (x *FDBCLIMaintenanceOn) GetZoneid() string { @@ -3667,7 +3911,7 @@ type FDBCLIMaintenanceOff struct { func (x *FDBCLIMaintenanceOff) Reset() { *x = FDBCLIMaintenanceOff{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[64] + mi := &file_fdb_proto_msgTypes[68] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3680,7 +3924,7 @@ func (x *FDBCLIMaintenanceOff) String() string { func (*FDBCLIMaintenanceOff) ProtoMessage() {} func (x *FDBCLIMaintenanceOff) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[64] + mi := &file_fdb_proto_msgTypes[68] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3693,7 +3937,7 @@ func (x *FDBCLIMaintenanceOff) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIMaintenanceOff.ProtoReflect.Descriptor instead. func (*FDBCLIMaintenanceOff) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{64} + return file_fdb_proto_rawDescGZIP(), []int{68} } type FDBCLIMaintenance struct { @@ -3712,7 +3956,7 @@ type FDBCLIMaintenance struct { func (x *FDBCLIMaintenance) Reset() { *x = FDBCLIMaintenance{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[65] + mi := &file_fdb_proto_msgTypes[69] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3725,7 +3969,7 @@ func (x *FDBCLIMaintenance) String() string { func (*FDBCLIMaintenance) ProtoMessage() {} func (x *FDBCLIMaintenance) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[65] + mi := &file_fdb_proto_msgTypes[69] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3738,7 +3982,7 @@ func (x *FDBCLIMaintenance) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIMaintenance.ProtoReflect.Descriptor instead. func (*FDBCLIMaintenance) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{65} + return file_fdb_proto_rawDescGZIP(), []int{69} } func (m *FDBCLIMaintenance) GetRequest() isFDBCLIMaintenance_Request { @@ -3800,7 +4044,7 @@ type FDBCLIOptionBlank struct { func (x *FDBCLIOptionBlank) Reset() { *x = FDBCLIOptionBlank{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[66] + mi := &file_fdb_proto_msgTypes[70] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3813,7 +4057,7 @@ func (x *FDBCLIOptionBlank) String() string { func (*FDBCLIOptionBlank) ProtoMessage() {} func (x *FDBCLIOptionBlank) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[66] + mi := &file_fdb_proto_msgTypes[70] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3826,7 +4070,7 @@ func (x *FDBCLIOptionBlank) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIOptionBlank.ProtoReflect.Descriptor instead. func (*FDBCLIOptionBlank) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{66} + return file_fdb_proto_rawDescGZIP(), []int{70} } type FDBCLIOptionArg struct { @@ -3842,7 +4086,7 @@ type FDBCLIOptionArg struct { func (x *FDBCLIOptionArg) Reset() { *x = FDBCLIOptionArg{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[67] + mi := &file_fdb_proto_msgTypes[71] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3855,7 +4099,7 @@ func (x *FDBCLIOptionArg) String() string { func (*FDBCLIOptionArg) ProtoMessage() {} func (x *FDBCLIOptionArg) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[67] + mi := &file_fdb_proto_msgTypes[71] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3868,7 +4112,7 @@ func (x *FDBCLIOptionArg) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIOptionArg.ProtoReflect.Descriptor instead. func (*FDBCLIOptionArg) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{67} + return file_fdb_proto_rawDescGZIP(), []int{71} } func (x *FDBCLIOptionArg) GetState() string { @@ -3907,7 +4151,7 @@ type FDBCLIOption struct { func (x *FDBCLIOption) Reset() { *x = FDBCLIOption{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[68] + mi := &file_fdb_proto_msgTypes[72] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3920,7 +4164,7 @@ func (x *FDBCLIOption) String() string { func (*FDBCLIOption) ProtoMessage() {} func (x *FDBCLIOption) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[68] + mi := &file_fdb_proto_msgTypes[72] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3933,7 +4177,7 @@ func (x *FDBCLIOption) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIOption.ProtoReflect.Descriptor instead. func (*FDBCLIOption) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{68} + return file_fdb_proto_rawDescGZIP(), []int{72} } func (m *FDBCLIOption) GetRequest() isFDBCLIOption_Request { @@ -3982,7 +4226,7 @@ type FDBCLIProfileActionClientDefault struct { func (x *FDBCLIProfileActionClientDefault) Reset() { *x = FDBCLIProfileActionClientDefault{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[69] + mi := &file_fdb_proto_msgTypes[73] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3995,7 +4239,7 @@ func (x *FDBCLIProfileActionClientDefault) String() string { func (*FDBCLIProfileActionClientDefault) ProtoMessage() {} func (x *FDBCLIProfileActionClientDefault) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[69] + mi := &file_fdb_proto_msgTypes[73] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4008,7 +4252,7 @@ func (x *FDBCLIProfileActionClientDefault) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIProfileActionClientDefault.ProtoReflect.Descriptor instead. func (*FDBCLIProfileActionClientDefault) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{69} + return file_fdb_proto_rawDescGZIP(), []int{73} } type FDBCLIProfileActionClientGet struct { @@ -4020,7 +4264,7 @@ type FDBCLIProfileActionClientGet struct { func (x *FDBCLIProfileActionClientGet) Reset() { *x = FDBCLIProfileActionClientGet{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[70] + mi := &file_fdb_proto_msgTypes[74] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4033,7 +4277,7 @@ func (x *FDBCLIProfileActionClientGet) String() string { func (*FDBCLIProfileActionClientGet) ProtoMessage() {} func (x *FDBCLIProfileActionClientGet) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[70] + mi := &file_fdb_proto_msgTypes[74] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4046,7 +4290,7 @@ func (x *FDBCLIProfileActionClientGet) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIProfileActionClientGet.ProtoReflect.Descriptor instead. func (*FDBCLIProfileActionClientGet) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{70} + return file_fdb_proto_rawDescGZIP(), []int{74} } type FDBCLIProfileActionClientSet struct { @@ -4069,7 +4313,7 @@ type FDBCLIProfileActionClientSet struct { func (x *FDBCLIProfileActionClientSet) Reset() { *x = FDBCLIProfileActionClientSet{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[71] + mi := &file_fdb_proto_msgTypes[75] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4082,7 +4326,7 @@ func (x *FDBCLIProfileActionClientSet) String() string { func (*FDBCLIProfileActionClientSet) ProtoMessage() {} func (x *FDBCLIProfileActionClientSet) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[71] + mi := &file_fdb_proto_msgTypes[75] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4095,7 +4339,7 @@ func (x *FDBCLIProfileActionClientSet) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIProfileActionClientSet.ProtoReflect.Descriptor instead. func (*FDBCLIProfileActionClientSet) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{71} + return file_fdb_proto_rawDescGZIP(), []int{75} } func (m *FDBCLIProfileActionClientSet) GetRate() isFDBCLIProfileActionClientSet_Rate { @@ -4187,7 +4431,7 @@ type FDBCLIProfileActionClient struct { func (x *FDBCLIProfileActionClient) Reset() { *x = FDBCLIProfileActionClient{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[72] + mi := &file_fdb_proto_msgTypes[76] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4200,7 +4444,7 @@ func (x *FDBCLIProfileActionClient) String() string { func (*FDBCLIProfileActionClient) ProtoMessage() {} func (x *FDBCLIProfileActionClient) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[72] + mi := &file_fdb_proto_msgTypes[76] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4213,7 +4457,7 @@ func (x *FDBCLIProfileActionClient) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIProfileActionClient.ProtoReflect.Descriptor instead. func (*FDBCLIProfileActionClient) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{72} + return file_fdb_proto_rawDescGZIP(), []int{76} } func (m *FDBCLIProfileActionClient) GetRequest() isFDBCLIProfileActionClient_Request { @@ -4262,7 +4506,7 @@ type FDBCLIProfileActionList struct { func (x *FDBCLIProfileActionList) Reset() { *x = FDBCLIProfileActionList{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[73] + mi := &file_fdb_proto_msgTypes[77] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4275,7 +4519,7 @@ func (x *FDBCLIProfileActionList) String() string { func (*FDBCLIProfileActionList) ProtoMessage() {} func (x *FDBCLIProfileActionList) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[73] + mi := &file_fdb_proto_msgTypes[77] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4288,7 +4532,7 @@ func (x *FDBCLIProfileActionList) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIProfileActionList.ProtoReflect.Descriptor instead. func (*FDBCLIProfileActionList) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{73} + return file_fdb_proto_rawDescGZIP(), []int{77} } type FDBCLIProfileActionFlow struct { @@ -4305,7 +4549,7 @@ type FDBCLIProfileActionFlow struct { func (x *FDBCLIProfileActionFlow) Reset() { *x = FDBCLIProfileActionFlow{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[74] + mi := &file_fdb_proto_msgTypes[78] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4318,7 +4562,7 @@ func (x *FDBCLIProfileActionFlow) String() string { func (*FDBCLIProfileActionFlow) ProtoMessage() {} func (x *FDBCLIProfileActionFlow) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[74] + mi := &file_fdb_proto_msgTypes[78] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4331,7 +4575,7 @@ func (x *FDBCLIProfileActionFlow) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIProfileActionFlow.ProtoReflect.Descriptor instead. func (*FDBCLIProfileActionFlow) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{74} + return file_fdb_proto_rawDescGZIP(), []int{78} } func (x *FDBCLIProfileActionFlow) GetDuration() uint32 { @@ -4359,7 +4603,7 @@ type FDBCLIProfileActionHeap struct { func (x *FDBCLIProfileActionHeap) Reset() { *x = FDBCLIProfileActionHeap{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[75] + mi := &file_fdb_proto_msgTypes[79] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4372,7 +4616,7 @@ func (x *FDBCLIProfileActionHeap) String() string { func (*FDBCLIProfileActionHeap) ProtoMessage() {} func (x *FDBCLIProfileActionHeap) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[75] + mi := &file_fdb_proto_msgTypes[79] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4385,7 +4629,7 @@ func (x *FDBCLIProfileActionHeap) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIProfileActionHeap.ProtoReflect.Descriptor instead. func (*FDBCLIProfileActionHeap) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{75} + return file_fdb_proto_rawDescGZIP(), []int{79} } func (x *FDBCLIProfileActionHeap) GetProcess() string { @@ -4412,7 +4656,7 @@ type FDBCLIProfile struct { func (x *FDBCLIProfile) Reset() { *x = FDBCLIProfile{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[76] + mi := &file_fdb_proto_msgTypes[80] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4425,7 +4669,7 @@ func (x *FDBCLIProfile) String() string { func (*FDBCLIProfile) ProtoMessage() {} func (x *FDBCLIProfile) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[76] + mi := &file_fdb_proto_msgTypes[80] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4438,7 +4682,7 @@ func (x *FDBCLIProfile) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIProfile.ProtoReflect.Descriptor instead. func (*FDBCLIProfile) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{76} + return file_fdb_proto_rawDescGZIP(), []int{80} } func (m *FDBCLIProfile) GetRequest() isFDBCLIProfile_Request { @@ -4516,7 +4760,7 @@ type FDBCLISet struct { func (x *FDBCLISet) Reset() { *x = FDBCLISet{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[77] + mi := &file_fdb_proto_msgTypes[81] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4529,7 +4773,7 @@ func (x *FDBCLISet) String() string { func (*FDBCLISet) ProtoMessage() {} func (x *FDBCLISet) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[77] + mi := &file_fdb_proto_msgTypes[81] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4542,7 +4786,7 @@ func (x *FDBCLISet) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLISet.ProtoReflect.Descriptor instead. func (*FDBCLISet) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{77} + return file_fdb_proto_rawDescGZIP(), []int{81} } func (x *FDBCLISet) GetKey() string { @@ -4571,7 +4815,7 @@ type FDBCLISetclassArg struct { func (x *FDBCLISetclassArg) Reset() { *x = FDBCLISetclassArg{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[78] + mi := &file_fdb_proto_msgTypes[82] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4584,7 +4828,7 @@ func (x *FDBCLISetclassArg) String() string { func (*FDBCLISetclassArg) ProtoMessage() {} func (x *FDBCLISetclassArg) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[78] + mi := &file_fdb_proto_msgTypes[82] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4597,7 +4841,7 @@ func (x *FDBCLISetclassArg) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLISetclassArg.ProtoReflect.Descriptor instead. func (*FDBCLISetclassArg) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{78} + return file_fdb_proto_rawDescGZIP(), []int{82} } func (x *FDBCLISetclassArg) GetAddress() string { @@ -4624,7 +4868,7 @@ type FDBCLISetclassList struct { func (x *FDBCLISetclassList) Reset() { *x = FDBCLISetclassList{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[79] + mi := &file_fdb_proto_msgTypes[83] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4637,7 +4881,7 @@ func (x *FDBCLISetclassList) String() string { func (*FDBCLISetclassList) ProtoMessage() {} func (x *FDBCLISetclassList) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[79] + mi := &file_fdb_proto_msgTypes[83] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4650,7 +4894,7 @@ func (x *FDBCLISetclassList) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLISetclassList.ProtoReflect.Descriptor instead. func (*FDBCLISetclassList) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{79} + return file_fdb_proto_rawDescGZIP(), []int{83} } type FDBCLISetclass struct { @@ -4668,7 +4912,7 @@ type FDBCLISetclass struct { func (x *FDBCLISetclass) Reset() { *x = FDBCLISetclass{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[80] + mi := &file_fdb_proto_msgTypes[84] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4681,7 +4925,7 @@ func (x *FDBCLISetclass) String() string { func (*FDBCLISetclass) ProtoMessage() {} func (x *FDBCLISetclass) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[80] + mi := &file_fdb_proto_msgTypes[84] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4694,7 +4938,7 @@ func (x *FDBCLISetclass) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLISetclass.ProtoReflect.Descriptor instead. func (*FDBCLISetclass) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{80} + return file_fdb_proto_rawDescGZIP(), []int{84} } func (m *FDBCLISetclass) GetRequest() isFDBCLISetclass_Request { @@ -4745,7 +4989,7 @@ type FDBCLISleep struct { func (x *FDBCLISleep) Reset() { *x = FDBCLISleep{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[81] + mi := &file_fdb_proto_msgTypes[85] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4758,7 +5002,7 @@ func (x *FDBCLISleep) String() string { func (*FDBCLISleep) ProtoMessage() {} func (x *FDBCLISleep) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[81] + mi := &file_fdb_proto_msgTypes[85] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4771,7 +5015,7 @@ func (x *FDBCLISleep) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLISleep.ProtoReflect.Descriptor instead. func (*FDBCLISleep) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{81} + return file_fdb_proto_rawDescGZIP(), []int{85} } func (x *FDBCLISleep) GetSeconds() uint32 { @@ -4793,7 +5037,7 @@ type FDBCLISnapshot struct { func (x *FDBCLISnapshot) Reset() { *x = FDBCLISnapshot{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[82] + mi := &file_fdb_proto_msgTypes[86] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4806,7 +5050,7 @@ func (x *FDBCLISnapshot) String() string { func (*FDBCLISnapshot) ProtoMessage() {} func (x *FDBCLISnapshot) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[82] + mi := &file_fdb_proto_msgTypes[86] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4819,7 +5063,7 @@ func (x *FDBCLISnapshot) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLISnapshot.ProtoReflect.Descriptor instead. func (*FDBCLISnapshot) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{82} + return file_fdb_proto_rawDescGZIP(), []int{86} } func (x *FDBCLISnapshot) GetCommand() string { @@ -4831,36 +5075,385 @@ func (x *FDBCLISnapshot) GetCommand() string { func (x *FDBCLISnapshot) GetOptions() []string { if x != nil { - return x.Options + return x.Options + } + return nil +} + +type FDBCLIStatus struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Style *wrapperspb.StringValue `protobuf:"bytes,1,opt,name=style,proto3" json:"style,omitempty"` +} + +func (x *FDBCLIStatus) Reset() { + *x = FDBCLIStatus{} + if protoimpl.UnsafeEnabled { + mi := &file_fdb_proto_msgTypes[87] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FDBCLIStatus) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FDBCLIStatus) ProtoMessage() {} + +func (x *FDBCLIStatus) ProtoReflect() protoreflect.Message { + mi := &file_fdb_proto_msgTypes[87] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FDBCLIStatus.ProtoReflect.Descriptor instead. +func (*FDBCLIStatus) Descriptor() ([]byte, []int) { + return file_fdb_proto_rawDescGZIP(), []int{87} +} + +func (x *FDBCLIStatus) GetStyle() *wrapperspb.StringValue { + if x != nil { + return x.Style + } + return nil +} + +type FDBCLISuspendInit struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *FDBCLISuspendInit) Reset() { + *x = FDBCLISuspendInit{} + if protoimpl.UnsafeEnabled { + mi := &file_fdb_proto_msgTypes[88] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FDBCLISuspendInit) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FDBCLISuspendInit) ProtoMessage() {} + +func (x *FDBCLISuspendInit) ProtoReflect() protoreflect.Message { + mi := &file_fdb_proto_msgTypes[88] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FDBCLISuspendInit.ProtoReflect.Descriptor instead. +func (*FDBCLISuspendInit) Descriptor() ([]byte, []int) { + return file_fdb_proto_rawDescGZIP(), []int{88} +} + +type FDBCLISuspendSuspend struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Seconds float64 `protobuf:"fixed64,1,opt,name=seconds,proto3" json:"seconds,omitempty"` + Addresses []string `protobuf:"bytes,2,rep,name=addresses,proto3" json:"addresses,omitempty"` +} + +func (x *FDBCLISuspendSuspend) Reset() { + *x = FDBCLISuspendSuspend{} + if protoimpl.UnsafeEnabled { + mi := &file_fdb_proto_msgTypes[89] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FDBCLISuspendSuspend) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FDBCLISuspendSuspend) ProtoMessage() {} + +func (x *FDBCLISuspendSuspend) ProtoReflect() protoreflect.Message { + mi := &file_fdb_proto_msgTypes[89] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FDBCLISuspendSuspend.ProtoReflect.Descriptor instead. +func (*FDBCLISuspendSuspend) Descriptor() ([]byte, []int) { + return file_fdb_proto_rawDescGZIP(), []int{89} +} + +func (x *FDBCLISuspendSuspend) GetSeconds() float64 { + if x != nil { + return x.Seconds + } + return 0 +} + +func (x *FDBCLISuspendSuspend) GetAddresses() []string { + if x != nil { + return x.Addresses + } + return nil +} + +type FDBCLISuspend struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Request: + // + // *FDBCLISuspend_Init + // *FDBCLISuspend_Suspend + Request isFDBCLISuspend_Request `protobuf_oneof:"request"` +} + +func (x *FDBCLISuspend) Reset() { + *x = FDBCLISuspend{} + if protoimpl.UnsafeEnabled { + mi := &file_fdb_proto_msgTypes[90] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FDBCLISuspend) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FDBCLISuspend) ProtoMessage() {} + +func (x *FDBCLISuspend) ProtoReflect() protoreflect.Message { + mi := &file_fdb_proto_msgTypes[90] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FDBCLISuspend.ProtoReflect.Descriptor instead. +func (*FDBCLISuspend) Descriptor() ([]byte, []int) { + return file_fdb_proto_rawDescGZIP(), []int{90} +} + +func (m *FDBCLISuspend) GetRequest() isFDBCLISuspend_Request { + if m != nil { + return m.Request + } + return nil +} + +func (x *FDBCLISuspend) GetInit() *FDBCLISuspendInit { + if x, ok := x.GetRequest().(*FDBCLISuspend_Init); ok { + return x.Init + } + return nil +} + +func (x *FDBCLISuspend) GetSuspend() *FDBCLISuspendSuspend { + if x, ok := x.GetRequest().(*FDBCLISuspend_Suspend); ok { + return x.Suspend + } + return nil +} + +type isFDBCLISuspend_Request interface { + isFDBCLISuspend_Request() +} + +type FDBCLISuspend_Init struct { + Init *FDBCLISuspendInit `protobuf:"bytes,1,opt,name=init,proto3,oneof"` +} + +type FDBCLISuspend_Suspend struct { + Suspend *FDBCLISuspendSuspend `protobuf:"bytes,2,opt,name=suspend,proto3,oneof"` +} + +func (*FDBCLISuspend_Init) isFDBCLISuspend_Request() {} + +func (*FDBCLISuspend_Suspend) isFDBCLISuspend_Request() {} + +type FDBCLITenantEmergencyMoveStart struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TenantGroup string `protobuf:"bytes,1,opt,name=tenant_group,json=tenantGroup,proto3" json:"tenant_group,omitempty"` + SourceCluster string `protobuf:"bytes,2,opt,name=source_cluster,json=sourceCluster,proto3" json:"source_cluster,omitempty"` + DestinationCluster string `protobuf:"bytes,3,opt,name=destination_cluster,json=destinationCluster,proto3" json:"destination_cluster,omitempty"` +} + +func (x *FDBCLITenantEmergencyMoveStart) Reset() { + *x = FDBCLITenantEmergencyMoveStart{} + if protoimpl.UnsafeEnabled { + mi := &file_fdb_proto_msgTypes[91] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FDBCLITenantEmergencyMoveStart) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FDBCLITenantEmergencyMoveStart) ProtoMessage() {} + +func (x *FDBCLITenantEmergencyMoveStart) ProtoReflect() protoreflect.Message { + mi := &file_fdb_proto_msgTypes[91] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FDBCLITenantEmergencyMoveStart.ProtoReflect.Descriptor instead. +func (*FDBCLITenantEmergencyMoveStart) Descriptor() ([]byte, []int) { + return file_fdb_proto_rawDescGZIP(), []int{91} +} + +func (x *FDBCLITenantEmergencyMoveStart) GetTenantGroup() string { + if x != nil { + return x.TenantGroup + } + return "" +} + +func (x *FDBCLITenantEmergencyMoveStart) GetSourceCluster() string { + if x != nil { + return x.SourceCluster + } + return "" +} + +func (x *FDBCLITenantEmergencyMoveStart) GetDestinationCluster() string { + if x != nil { + return x.DestinationCluster + } + return "" +} + +type FDBCLITenantEmergencyMoveSwitch struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TenantGroup string `protobuf:"bytes,1,opt,name=tenant_group,json=tenantGroup,proto3" json:"tenant_group,omitempty"` + SourceCluster string `protobuf:"bytes,2,opt,name=source_cluster,json=sourceCluster,proto3" json:"source_cluster,omitempty"` + DestinationCluster string `protobuf:"bytes,3,opt,name=destination_cluster,json=destinationCluster,proto3" json:"destination_cluster,omitempty"` +} + +func (x *FDBCLITenantEmergencyMoveSwitch) Reset() { + *x = FDBCLITenantEmergencyMoveSwitch{} + if protoimpl.UnsafeEnabled { + mi := &file_fdb_proto_msgTypes[92] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FDBCLITenantEmergencyMoveSwitch) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FDBCLITenantEmergencyMoveSwitch) ProtoMessage() {} + +func (x *FDBCLITenantEmergencyMoveSwitch) ProtoReflect() protoreflect.Message { + mi := &file_fdb_proto_msgTypes[92] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FDBCLITenantEmergencyMoveSwitch.ProtoReflect.Descriptor instead. +func (*FDBCLITenantEmergencyMoveSwitch) Descriptor() ([]byte, []int) { + return file_fdb_proto_rawDescGZIP(), []int{92} +} + +func (x *FDBCLITenantEmergencyMoveSwitch) GetTenantGroup() string { + if x != nil { + return x.TenantGroup + } + return "" +} + +func (x *FDBCLITenantEmergencyMoveSwitch) GetSourceCluster() string { + if x != nil { + return x.SourceCluster + } + return "" +} + +func (x *FDBCLITenantEmergencyMoveSwitch) GetDestinationCluster() string { + if x != nil { + return x.DestinationCluster } - return nil + return "" } -type FDBCLIStatus struct { +type FDBCLITenantEmergencyMoveFinish struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Style *wrapperspb.StringValue `protobuf:"bytes,1,opt,name=style,proto3" json:"style,omitempty"` + TenantGroup string `protobuf:"bytes,1,opt,name=tenant_group,json=tenantGroup,proto3" json:"tenant_group,omitempty"` + SourceCluster string `protobuf:"bytes,2,opt,name=source_cluster,json=sourceCluster,proto3" json:"source_cluster,omitempty"` + DestinationCluster string `protobuf:"bytes,3,opt,name=destination_cluster,json=destinationCluster,proto3" json:"destination_cluster,omitempty"` } -func (x *FDBCLIStatus) Reset() { - *x = FDBCLIStatus{} +func (x *FDBCLITenantEmergencyMoveFinish) Reset() { + *x = FDBCLITenantEmergencyMoveFinish{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[83] + mi := &file_fdb_proto_msgTypes[93] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FDBCLIStatus) String() string { +func (x *FDBCLITenantEmergencyMoveFinish) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FDBCLIStatus) ProtoMessage() {} +func (*FDBCLITenantEmergencyMoveFinish) ProtoMessage() {} -func (x *FDBCLIStatus) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[83] +func (x *FDBCLITenantEmergencyMoveFinish) ProtoReflect() protoreflect.Message { + mi := &file_fdb_proto_msgTypes[93] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4871,41 +5464,59 @@ func (x *FDBCLIStatus) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FDBCLIStatus.ProtoReflect.Descriptor instead. -func (*FDBCLIStatus) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{83} +// Deprecated: Use FDBCLITenantEmergencyMoveFinish.ProtoReflect.Descriptor instead. +func (*FDBCLITenantEmergencyMoveFinish) Descriptor() ([]byte, []int) { + return file_fdb_proto_rawDescGZIP(), []int{93} } -func (x *FDBCLIStatus) GetStyle() *wrapperspb.StringValue { +func (x *FDBCLITenantEmergencyMoveFinish) GetTenantGroup() string { if x != nil { - return x.Style + return x.TenantGroup } - return nil + return "" } -type FDBCLISuspendInit struct { +func (x *FDBCLITenantEmergencyMoveFinish) GetSourceCluster() string { + if x != nil { + return x.SourceCluster + } + return "" +} + +func (x *FDBCLITenantEmergencyMoveFinish) GetDestinationCluster() string { + if x != nil { + return x.DestinationCluster + } + return "" +} + +type FDBCLITenantEmergencyMoveAbort struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + TenantGroup string `protobuf:"bytes,1,opt,name=tenant_group,json=tenantGroup,proto3" json:"tenant_group,omitempty"` + SourceCluster string `protobuf:"bytes,2,opt,name=source_cluster,json=sourceCluster,proto3" json:"source_cluster,omitempty"` + DestinationCluster string `protobuf:"bytes,3,opt,name=destination_cluster,json=destinationCluster,proto3" json:"destination_cluster,omitempty"` } -func (x *FDBCLISuspendInit) Reset() { - *x = FDBCLISuspendInit{} +func (x *FDBCLITenantEmergencyMoveAbort) Reset() { + *x = FDBCLITenantEmergencyMoveAbort{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[84] + mi := &file_fdb_proto_msgTypes[94] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FDBCLISuspendInit) String() string { +func (x *FDBCLITenantEmergencyMoveAbort) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FDBCLISuspendInit) ProtoMessage() {} +func (*FDBCLITenantEmergencyMoveAbort) ProtoMessage() {} -func (x *FDBCLISuspendInit) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[84] +func (x *FDBCLITenantEmergencyMoveAbort) ProtoReflect() protoreflect.Message { + mi := &file_fdb_proto_msgTypes[94] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4916,37 +5527,57 @@ func (x *FDBCLISuspendInit) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FDBCLISuspendInit.ProtoReflect.Descriptor instead. -func (*FDBCLISuspendInit) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{84} +// Deprecated: Use FDBCLITenantEmergencyMoveAbort.ProtoReflect.Descriptor instead. +func (*FDBCLITenantEmergencyMoveAbort) Descriptor() ([]byte, []int) { + return file_fdb_proto_rawDescGZIP(), []int{94} } -type FDBCLISuspendSuspend struct { +func (x *FDBCLITenantEmergencyMoveAbort) GetTenantGroup() string { + if x != nil { + return x.TenantGroup + } + return "" +} + +func (x *FDBCLITenantEmergencyMoveAbort) GetSourceCluster() string { + if x != nil { + return x.SourceCluster + } + return "" +} + +func (x *FDBCLITenantEmergencyMoveAbort) GetDestinationCluster() string { + if x != nil { + return x.DestinationCluster + } + return "" +} + +type FDBCLITenantEmergencyMoveStatus struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Seconds float64 `protobuf:"fixed64,1,opt,name=seconds,proto3" json:"seconds,omitempty"` - Addresses []string `protobuf:"bytes,2,rep,name=addresses,proto3" json:"addresses,omitempty"` + TenantGroup string `protobuf:"bytes,1,opt,name=tenant_group,json=tenantGroup,proto3" json:"tenant_group,omitempty"` } -func (x *FDBCLISuspendSuspend) Reset() { - *x = FDBCLISuspendSuspend{} +func (x *FDBCLITenantEmergencyMoveStatus) Reset() { + *x = FDBCLITenantEmergencyMoveStatus{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[85] + mi := &file_fdb_proto_msgTypes[95] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FDBCLISuspendSuspend) String() string { +func (x *FDBCLITenantEmergencyMoveStatus) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FDBCLISuspendSuspend) ProtoMessage() {} +func (*FDBCLITenantEmergencyMoveStatus) ProtoMessage() {} -func (x *FDBCLISuspendSuspend) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[85] +func (x *FDBCLITenantEmergencyMoveStatus) ProtoReflect() protoreflect.Message { + mi := &file_fdb_proto_msgTypes[95] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4957,54 +5588,50 @@ func (x *FDBCLISuspendSuspend) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FDBCLISuspendSuspend.ProtoReflect.Descriptor instead. -func (*FDBCLISuspendSuspend) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{85} -} - -func (x *FDBCLISuspendSuspend) GetSeconds() float64 { - if x != nil { - return x.Seconds - } - return 0 +// Deprecated: Use FDBCLITenantEmergencyMoveStatus.ProtoReflect.Descriptor instead. +func (*FDBCLITenantEmergencyMoveStatus) Descriptor() ([]byte, []int) { + return file_fdb_proto_rawDescGZIP(), []int{95} } -func (x *FDBCLISuspendSuspend) GetAddresses() []string { +func (x *FDBCLITenantEmergencyMoveStatus) GetTenantGroup() string { if x != nil { - return x.Addresses + return x.TenantGroup } - return nil + return "" } -type FDBCLISuspend struct { +type FDBCLITenantEmergencyMove struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Types that are assignable to Request: // - // *FDBCLISuspend_Init - // *FDBCLISuspend_Suspend - Request isFDBCLISuspend_Request `protobuf_oneof:"request"` + // *FDBCLITenantEmergencyMove_Start + // *FDBCLITenantEmergencyMove_Switch + // *FDBCLITenantEmergencyMove_Finish + // *FDBCLITenantEmergencyMove_Abort + // *FDBCLITenantEmergencyMove_Status + Request isFDBCLITenantEmergencyMove_Request `protobuf_oneof:"request"` } -func (x *FDBCLISuspend) Reset() { - *x = FDBCLISuspend{} +func (x *FDBCLITenantEmergencyMove) Reset() { + *x = FDBCLITenantEmergencyMove{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[86] + mi := &file_fdb_proto_msgTypes[96] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FDBCLISuspend) String() string { +func (x *FDBCLITenantEmergencyMove) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FDBCLISuspend) ProtoMessage() {} +func (*FDBCLITenantEmergencyMove) ProtoMessage() {} -func (x *FDBCLISuspend) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[86] +func (x *FDBCLITenantEmergencyMove) ProtoReflect() protoreflect.Message { + mi := &file_fdb_proto_msgTypes[96] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5015,47 +5642,86 @@ func (x *FDBCLISuspend) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FDBCLISuspend.ProtoReflect.Descriptor instead. -func (*FDBCLISuspend) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{86} +// Deprecated: Use FDBCLITenantEmergencyMove.ProtoReflect.Descriptor instead. +func (*FDBCLITenantEmergencyMove) Descriptor() ([]byte, []int) { + return file_fdb_proto_rawDescGZIP(), []int{96} } -func (m *FDBCLISuspend) GetRequest() isFDBCLISuspend_Request { +func (m *FDBCLITenantEmergencyMove) GetRequest() isFDBCLITenantEmergencyMove_Request { if m != nil { return m.Request } return nil } -func (x *FDBCLISuspend) GetInit() *FDBCLISuspendInit { - if x, ok := x.GetRequest().(*FDBCLISuspend_Init); ok { - return x.Init +func (x *FDBCLITenantEmergencyMove) GetStart() *FDBCLITenantEmergencyMoveStart { + if x, ok := x.GetRequest().(*FDBCLITenantEmergencyMove_Start); ok { + return x.Start } return nil } -func (x *FDBCLISuspend) GetSuspend() *FDBCLISuspendSuspend { - if x, ok := x.GetRequest().(*FDBCLISuspend_Suspend); ok { - return x.Suspend +func (x *FDBCLITenantEmergencyMove) GetSwitch() *FDBCLITenantEmergencyMoveSwitch { + if x, ok := x.GetRequest().(*FDBCLITenantEmergencyMove_Switch); ok { + return x.Switch } return nil } -type isFDBCLISuspend_Request interface { - isFDBCLISuspend_Request() +func (x *FDBCLITenantEmergencyMove) GetFinish() *FDBCLITenantEmergencyMoveFinish { + if x, ok := x.GetRequest().(*FDBCLITenantEmergencyMove_Finish); ok { + return x.Finish + } + return nil } -type FDBCLISuspend_Init struct { - Init *FDBCLISuspendInit `protobuf:"bytes,1,opt,name=init,proto3,oneof"` +func (x *FDBCLITenantEmergencyMove) GetAbort() *FDBCLITenantEmergencyMoveAbort { + if x, ok := x.GetRequest().(*FDBCLITenantEmergencyMove_Abort); ok { + return x.Abort + } + return nil } -type FDBCLISuspend_Suspend struct { - Suspend *FDBCLISuspendSuspend `protobuf:"bytes,2,opt,name=suspend,proto3,oneof"` +func (x *FDBCLITenantEmergencyMove) GetStatus() *FDBCLITenantEmergencyMoveStatus { + if x, ok := x.GetRequest().(*FDBCLITenantEmergencyMove_Status); ok { + return x.Status + } + return nil } -func (*FDBCLISuspend_Init) isFDBCLISuspend_Request() {} +type isFDBCLITenantEmergencyMove_Request interface { + isFDBCLITenantEmergencyMove_Request() +} -func (*FDBCLISuspend_Suspend) isFDBCLISuspend_Request() {} +type FDBCLITenantEmergencyMove_Start struct { + Start *FDBCLITenantEmergencyMoveStart `protobuf:"bytes,1,opt,name=start,proto3,oneof"` +} + +type FDBCLITenantEmergencyMove_Switch struct { + Switch *FDBCLITenantEmergencyMoveSwitch `protobuf:"bytes,2,opt,name=switch,proto3,oneof"` +} + +type FDBCLITenantEmergencyMove_Finish struct { + Finish *FDBCLITenantEmergencyMoveFinish `protobuf:"bytes,3,opt,name=finish,proto3,oneof"` +} + +type FDBCLITenantEmergencyMove_Abort struct { + Abort *FDBCLITenantEmergencyMoveAbort `protobuf:"bytes,4,opt,name=abort,proto3,oneof"` +} + +type FDBCLITenantEmergencyMove_Status struct { + Status *FDBCLITenantEmergencyMoveStatus `protobuf:"bytes,5,opt,name=status,proto3,oneof"` +} + +func (*FDBCLITenantEmergencyMove_Start) isFDBCLITenantEmergencyMove_Request() {} + +func (*FDBCLITenantEmergencyMove_Switch) isFDBCLITenantEmergencyMove_Request() {} + +func (*FDBCLITenantEmergencyMove_Finish) isFDBCLITenantEmergencyMove_Request() {} + +func (*FDBCLITenantEmergencyMove_Abort) isFDBCLITenantEmergencyMove_Request() {} + +func (*FDBCLITenantEmergencyMove_Status) isFDBCLITenantEmergencyMove_Request() {} type FDBCLIThrottleActionOn struct { state protoimpl.MessageState @@ -5071,7 +5737,7 @@ type FDBCLIThrottleActionOn struct { func (x *FDBCLIThrottleActionOn) Reset() { *x = FDBCLIThrottleActionOn{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[87] + mi := &file_fdb_proto_msgTypes[97] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5084,7 +5750,7 @@ func (x *FDBCLIThrottleActionOn) String() string { func (*FDBCLIThrottleActionOn) ProtoMessage() {} func (x *FDBCLIThrottleActionOn) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[87] + mi := &file_fdb_proto_msgTypes[97] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5097,7 +5763,7 @@ func (x *FDBCLIThrottleActionOn) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIThrottleActionOn.ProtoReflect.Descriptor instead. func (*FDBCLIThrottleActionOn) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{87} + return file_fdb_proto_rawDescGZIP(), []int{97} } func (x *FDBCLIThrottleActionOn) GetTag() string { @@ -5141,7 +5807,7 @@ type FDBCLIThrottleActionOff struct { func (x *FDBCLIThrottleActionOff) Reset() { *x = FDBCLIThrottleActionOff{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[88] + mi := &file_fdb_proto_msgTypes[98] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5154,7 +5820,7 @@ func (x *FDBCLIThrottleActionOff) String() string { func (*FDBCLIThrottleActionOff) ProtoMessage() {} func (x *FDBCLIThrottleActionOff) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[88] + mi := &file_fdb_proto_msgTypes[98] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5167,7 +5833,7 @@ func (x *FDBCLIThrottleActionOff) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIThrottleActionOff.ProtoReflect.Descriptor instead. func (*FDBCLIThrottleActionOff) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{88} + return file_fdb_proto_rawDescGZIP(), []int{98} } func (x *FDBCLIThrottleActionOff) GetType() *wrapperspb.StringValue { @@ -5200,7 +5866,7 @@ type FDBCLIThrottleActionEnable struct { func (x *FDBCLIThrottleActionEnable) Reset() { *x = FDBCLIThrottleActionEnable{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[89] + mi := &file_fdb_proto_msgTypes[99] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5213,7 +5879,7 @@ func (x *FDBCLIThrottleActionEnable) String() string { func (*FDBCLIThrottleActionEnable) ProtoMessage() {} func (x *FDBCLIThrottleActionEnable) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[89] + mi := &file_fdb_proto_msgTypes[99] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5226,7 +5892,7 @@ func (x *FDBCLIThrottleActionEnable) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIThrottleActionEnable.ProtoReflect.Descriptor instead. func (*FDBCLIThrottleActionEnable) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{89} + return file_fdb_proto_rawDescGZIP(), []int{99} } type FDBCLIThrottleActionDisable struct { @@ -5238,7 +5904,7 @@ type FDBCLIThrottleActionDisable struct { func (x *FDBCLIThrottleActionDisable) Reset() { *x = FDBCLIThrottleActionDisable{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[90] + mi := &file_fdb_proto_msgTypes[100] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5251,7 +5917,7 @@ func (x *FDBCLIThrottleActionDisable) String() string { func (*FDBCLIThrottleActionDisable) ProtoMessage() {} func (x *FDBCLIThrottleActionDisable) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[90] + mi := &file_fdb_proto_msgTypes[100] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5264,7 +5930,7 @@ func (x *FDBCLIThrottleActionDisable) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIThrottleActionDisable.ProtoReflect.Descriptor instead. func (*FDBCLIThrottleActionDisable) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{90} + return file_fdb_proto_rawDescGZIP(), []int{100} } type FDBCLIThrottleActionList struct { @@ -5279,7 +5945,7 @@ type FDBCLIThrottleActionList struct { func (x *FDBCLIThrottleActionList) Reset() { *x = FDBCLIThrottleActionList{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[91] + mi := &file_fdb_proto_msgTypes[101] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5292,7 +5958,7 @@ func (x *FDBCLIThrottleActionList) String() string { func (*FDBCLIThrottleActionList) ProtoMessage() {} func (x *FDBCLIThrottleActionList) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[91] + mi := &file_fdb_proto_msgTypes[101] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5305,7 +5971,7 @@ func (x *FDBCLIThrottleActionList) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIThrottleActionList.ProtoReflect.Descriptor instead. func (*FDBCLIThrottleActionList) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{91} + return file_fdb_proto_rawDescGZIP(), []int{101} } func (x *FDBCLIThrottleActionList) GetType() *wrapperspb.StringValue { @@ -5340,7 +6006,7 @@ type FDBCLIThrottle struct { func (x *FDBCLIThrottle) Reset() { *x = FDBCLIThrottle{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[92] + mi := &file_fdb_proto_msgTypes[102] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5353,7 +6019,7 @@ func (x *FDBCLIThrottle) String() string { func (*FDBCLIThrottle) ProtoMessage() {} func (x *FDBCLIThrottle) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[92] + mi := &file_fdb_proto_msgTypes[102] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5366,7 +6032,7 @@ func (x *FDBCLIThrottle) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIThrottle.ProtoReflect.Descriptor instead. func (*FDBCLIThrottle) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{92} + return file_fdb_proto_rawDescGZIP(), []int{102} } func (m *FDBCLIThrottle) GetRequest() isFDBCLIThrottle_Request { @@ -5454,7 +6120,7 @@ type FDBCLITriggerddteaminfolog struct { func (x *FDBCLITriggerddteaminfolog) Reset() { *x = FDBCLITriggerddteaminfolog{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[93] + mi := &file_fdb_proto_msgTypes[103] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5467,7 +6133,7 @@ func (x *FDBCLITriggerddteaminfolog) String() string { func (*FDBCLITriggerddteaminfolog) ProtoMessage() {} func (x *FDBCLITriggerddteaminfolog) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[93] + mi := &file_fdb_proto_msgTypes[103] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5480,7 +6146,7 @@ func (x *FDBCLITriggerddteaminfolog) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLITriggerddteaminfolog.ProtoReflect.Descriptor instead. func (*FDBCLITriggerddteaminfolog) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{93} + return file_fdb_proto_rawDescGZIP(), []int{103} } type FDBCLITssqStart struct { @@ -5494,7 +6160,7 @@ type FDBCLITssqStart struct { func (x *FDBCLITssqStart) Reset() { *x = FDBCLITssqStart{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[94] + mi := &file_fdb_proto_msgTypes[104] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5507,7 +6173,7 @@ func (x *FDBCLITssqStart) String() string { func (*FDBCLITssqStart) ProtoMessage() {} func (x *FDBCLITssqStart) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[94] + mi := &file_fdb_proto_msgTypes[104] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5520,7 +6186,7 @@ func (x *FDBCLITssqStart) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLITssqStart.ProtoReflect.Descriptor instead. func (*FDBCLITssqStart) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{94} + return file_fdb_proto_rawDescGZIP(), []int{104} } func (x *FDBCLITssqStart) GetStorageUid() string { @@ -5541,7 +6207,7 @@ type FDBCLITssqStop struct { func (x *FDBCLITssqStop) Reset() { *x = FDBCLITssqStop{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[95] + mi := &file_fdb_proto_msgTypes[105] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5554,7 +6220,7 @@ func (x *FDBCLITssqStop) String() string { func (*FDBCLITssqStop) ProtoMessage() {} func (x *FDBCLITssqStop) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[95] + mi := &file_fdb_proto_msgTypes[105] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5567,7 +6233,7 @@ func (x *FDBCLITssqStop) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLITssqStop.ProtoReflect.Descriptor instead. func (*FDBCLITssqStop) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{95} + return file_fdb_proto_rawDescGZIP(), []int{105} } func (x *FDBCLITssqStop) GetStorageUid() string { @@ -5586,7 +6252,7 @@ type FDBCLITssqList struct { func (x *FDBCLITssqList) Reset() { *x = FDBCLITssqList{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[96] + mi := &file_fdb_proto_msgTypes[106] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5599,7 +6265,7 @@ func (x *FDBCLITssqList) String() string { func (*FDBCLITssqList) ProtoMessage() {} func (x *FDBCLITssqList) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[96] + mi := &file_fdb_proto_msgTypes[106] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5612,7 +6278,7 @@ func (x *FDBCLITssqList) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLITssqList.ProtoReflect.Descriptor instead. func (*FDBCLITssqList) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{96} + return file_fdb_proto_rawDescGZIP(), []int{106} } type FDBCLITssq struct { @@ -5631,7 +6297,7 @@ type FDBCLITssq struct { func (x *FDBCLITssq) Reset() { *x = FDBCLITssq{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[97] + mi := &file_fdb_proto_msgTypes[107] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5644,7 +6310,7 @@ func (x *FDBCLITssq) String() string { func (*FDBCLITssq) ProtoMessage() {} func (x *FDBCLITssq) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[97] + mi := &file_fdb_proto_msgTypes[107] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5657,7 +6323,7 @@ func (x *FDBCLITssq) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLITssq.ProtoReflect.Descriptor instead. func (*FDBCLITssq) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{97} + return file_fdb_proto_rawDescGZIP(), []int{107} } func (m *FDBCLITssq) GetRequest() isFDBCLITssq_Request { @@ -5721,7 +6387,7 @@ type FDBCLIUnlock struct { func (x *FDBCLIUnlock) Reset() { *x = FDBCLIUnlock{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[98] + mi := &file_fdb_proto_msgTypes[108] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5734,7 +6400,7 @@ func (x *FDBCLIUnlock) String() string { func (*FDBCLIUnlock) ProtoMessage() {} func (x *FDBCLIUnlock) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[98] + mi := &file_fdb_proto_msgTypes[108] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5747,7 +6413,7 @@ func (x *FDBCLIUnlock) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIUnlock.ProtoReflect.Descriptor instead. func (*FDBCLIUnlock) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{98} + return file_fdb_proto_rawDescGZIP(), []int{108} } func (x *FDBCLIUnlock) GetUid() string { @@ -5768,7 +6434,7 @@ type FDBCLIUsetenant struct { func (x *FDBCLIUsetenant) Reset() { *x = FDBCLIUsetenant{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[99] + mi := &file_fdb_proto_msgTypes[109] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5781,7 +6447,7 @@ func (x *FDBCLIUsetenant) String() string { func (*FDBCLIUsetenant) ProtoMessage() {} func (x *FDBCLIUsetenant) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[99] + mi := &file_fdb_proto_msgTypes[109] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5794,7 +6460,7 @@ func (x *FDBCLIUsetenant) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIUsetenant.ProtoReflect.Descriptor instead. func (*FDBCLIUsetenant) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{99} + return file_fdb_proto_rawDescGZIP(), []int{109} } func (x *FDBCLIUsetenant) GetName() string { @@ -5815,7 +6481,7 @@ type FDBCLIWritemode struct { func (x *FDBCLIWritemode) Reset() { *x = FDBCLIWritemode{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[100] + mi := &file_fdb_proto_msgTypes[110] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5828,7 +6494,7 @@ func (x *FDBCLIWritemode) String() string { func (*FDBCLIWritemode) ProtoMessage() {} func (x *FDBCLIWritemode) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[100] + mi := &file_fdb_proto_msgTypes[110] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5841,7 +6507,7 @@ func (x *FDBCLIWritemode) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIWritemode.ProtoReflect.Descriptor instead. func (*FDBCLIWritemode) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{100} + return file_fdb_proto_rawDescGZIP(), []int{110} } func (x *FDBCLIWritemode) GetMode() string { @@ -5860,7 +6526,7 @@ type FDBCLIVersionepochInfo struct { func (x *FDBCLIVersionepochInfo) Reset() { *x = FDBCLIVersionepochInfo{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[101] + mi := &file_fdb_proto_msgTypes[111] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5873,7 +6539,7 @@ func (x *FDBCLIVersionepochInfo) String() string { func (*FDBCLIVersionepochInfo) ProtoMessage() {} func (x *FDBCLIVersionepochInfo) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[101] + mi := &file_fdb_proto_msgTypes[111] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5886,7 +6552,7 @@ func (x *FDBCLIVersionepochInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIVersionepochInfo.ProtoReflect.Descriptor instead. func (*FDBCLIVersionepochInfo) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{101} + return file_fdb_proto_rawDescGZIP(), []int{111} } type FDBCLIVersionepochGet struct { @@ -5898,7 +6564,7 @@ type FDBCLIVersionepochGet struct { func (x *FDBCLIVersionepochGet) Reset() { *x = FDBCLIVersionepochGet{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[102] + mi := &file_fdb_proto_msgTypes[112] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5911,7 +6577,7 @@ func (x *FDBCLIVersionepochGet) String() string { func (*FDBCLIVersionepochGet) ProtoMessage() {} func (x *FDBCLIVersionepochGet) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[102] + mi := &file_fdb_proto_msgTypes[112] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5924,7 +6590,7 @@ func (x *FDBCLIVersionepochGet) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIVersionepochGet.ProtoReflect.Descriptor instead. func (*FDBCLIVersionepochGet) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{102} + return file_fdb_proto_rawDescGZIP(), []int{112} } type FDBCLIVersionepochDisable struct { @@ -5936,7 +6602,7 @@ type FDBCLIVersionepochDisable struct { func (x *FDBCLIVersionepochDisable) Reset() { *x = FDBCLIVersionepochDisable{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[103] + mi := &file_fdb_proto_msgTypes[113] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5949,7 +6615,7 @@ func (x *FDBCLIVersionepochDisable) String() string { func (*FDBCLIVersionepochDisable) ProtoMessage() {} func (x *FDBCLIVersionepochDisable) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[103] + mi := &file_fdb_proto_msgTypes[113] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5962,7 +6628,7 @@ func (x *FDBCLIVersionepochDisable) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIVersionepochDisable.ProtoReflect.Descriptor instead. func (*FDBCLIVersionepochDisable) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{103} + return file_fdb_proto_rawDescGZIP(), []int{113} } type FDBCLIVersionepochEnable struct { @@ -5974,7 +6640,7 @@ type FDBCLIVersionepochEnable struct { func (x *FDBCLIVersionepochEnable) Reset() { *x = FDBCLIVersionepochEnable{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[104] + mi := &file_fdb_proto_msgTypes[114] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5987,7 +6653,7 @@ func (x *FDBCLIVersionepochEnable) String() string { func (*FDBCLIVersionepochEnable) ProtoMessage() {} func (x *FDBCLIVersionepochEnable) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[104] + mi := &file_fdb_proto_msgTypes[114] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6000,7 +6666,7 @@ func (x *FDBCLIVersionepochEnable) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIVersionepochEnable.ProtoReflect.Descriptor instead. func (*FDBCLIVersionepochEnable) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{104} + return file_fdb_proto_rawDescGZIP(), []int{114} } type FDBCLIVersionepochCommit struct { @@ -6012,7 +6678,7 @@ type FDBCLIVersionepochCommit struct { func (x *FDBCLIVersionepochCommit) Reset() { *x = FDBCLIVersionepochCommit{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[105] + mi := &file_fdb_proto_msgTypes[115] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6025,7 +6691,7 @@ func (x *FDBCLIVersionepochCommit) String() string { func (*FDBCLIVersionepochCommit) ProtoMessage() {} func (x *FDBCLIVersionepochCommit) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[105] + mi := &file_fdb_proto_msgTypes[115] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6038,7 +6704,7 @@ func (x *FDBCLIVersionepochCommit) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIVersionepochCommit.ProtoReflect.Descriptor instead. func (*FDBCLIVersionepochCommit) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{105} + return file_fdb_proto_rawDescGZIP(), []int{115} } type FDBCLIVersionepochSet struct { @@ -6052,7 +6718,7 @@ type FDBCLIVersionepochSet struct { func (x *FDBCLIVersionepochSet) Reset() { *x = FDBCLIVersionepochSet{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[106] + mi := &file_fdb_proto_msgTypes[116] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6065,7 +6731,7 @@ func (x *FDBCLIVersionepochSet) String() string { func (*FDBCLIVersionepochSet) ProtoMessage() {} func (x *FDBCLIVersionepochSet) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[106] + mi := &file_fdb_proto_msgTypes[116] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6078,7 +6744,7 @@ func (x *FDBCLIVersionepochSet) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIVersionepochSet.ProtoReflect.Descriptor instead. func (*FDBCLIVersionepochSet) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{106} + return file_fdb_proto_rawDescGZIP(), []int{116} } func (x *FDBCLIVersionepochSet) GetEpoch() int64 { @@ -6107,7 +6773,7 @@ type FDBCLIVersionepoch struct { func (x *FDBCLIVersionepoch) Reset() { *x = FDBCLIVersionepoch{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[107] + mi := &file_fdb_proto_msgTypes[117] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6120,7 +6786,7 @@ func (x *FDBCLIVersionepoch) String() string { func (*FDBCLIVersionepoch) ProtoMessage() {} func (x *FDBCLIVersionepoch) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[107] + mi := &file_fdb_proto_msgTypes[117] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6133,7 +6799,7 @@ func (x *FDBCLIVersionepoch) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIVersionepoch.ProtoReflect.Descriptor instead. func (*FDBCLIVersionepoch) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{107} + return file_fdb_proto_rawDescGZIP(), []int{117} } func (m *FDBCLIVersionepoch) GetRequest() isFDBCLIVersionepoch_Request { @@ -6234,7 +6900,7 @@ type FDBCLIWaitconnected struct { func (x *FDBCLIWaitconnected) Reset() { *x = FDBCLIWaitconnected{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[108] + mi := &file_fdb_proto_msgTypes[118] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6247,7 +6913,7 @@ func (x *FDBCLIWaitconnected) String() string { func (*FDBCLIWaitconnected) ProtoMessage() {} func (x *FDBCLIWaitconnected) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[108] + mi := &file_fdb_proto_msgTypes[118] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6260,7 +6926,7 @@ func (x *FDBCLIWaitconnected) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIWaitconnected.ProtoReflect.Descriptor instead. func (*FDBCLIWaitconnected) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{108} + return file_fdb_proto_rawDescGZIP(), []int{118} } type FDBCLIWaitopen struct { @@ -6272,7 +6938,7 @@ type FDBCLIWaitopen struct { func (x *FDBCLIWaitopen) Reset() { *x = FDBCLIWaitopen{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[109] + mi := &file_fdb_proto_msgTypes[119] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6285,7 +6951,7 @@ func (x *FDBCLIWaitopen) String() string { func (*FDBCLIWaitopen) ProtoMessage() {} func (x *FDBCLIWaitopen) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[109] + mi := &file_fdb_proto_msgTypes[119] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6298,7 +6964,7 @@ func (x *FDBCLIWaitopen) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIWaitopen.ProtoReflect.Descriptor instead. func (*FDBCLIWaitopen) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{109} + return file_fdb_proto_rawDescGZIP(), []int{119} } // FDBCLICommand defines all of the fdbcli commands supported. @@ -6306,7 +6972,7 @@ func (*FDBCLIWaitopen) Descriptor() ([]byte, []int) { // session such as reset or rollback. // This message is broken out separately for ease of use since it has // gotten so large. -// NEXT: 49 +// NEXT: 50 type FDBCLICommand struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -6352,6 +7018,7 @@ type FDBCLICommand struct { // *FDBCLICommand_Sleep // *FDBCLICommand_Status // *FDBCLICommand_Suspend + // *FDBCLICommand_TenantEmergencyMove // *FDBCLICommand_Throttle // *FDBCLICommand_Triggerddteaminfolog // *FDBCLICommand_Tssq @@ -6368,7 +7035,7 @@ type FDBCLICommand struct { func (x *FDBCLICommand) Reset() { *x = FDBCLICommand{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[110] + mi := &file_fdb_proto_msgTypes[120] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6381,7 +7048,7 @@ func (x *FDBCLICommand) String() string { func (*FDBCLICommand) ProtoMessage() {} func (x *FDBCLICommand) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[110] + mi := &file_fdb_proto_msgTypes[120] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6394,7 +7061,7 @@ func (x *FDBCLICommand) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLICommand.ProtoReflect.Descriptor instead. func (*FDBCLICommand) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{110} + return file_fdb_proto_rawDescGZIP(), []int{120} } func (m *FDBCLICommand) GetCommand() isFDBCLICommand_Command { @@ -6670,6 +7337,13 @@ func (x *FDBCLICommand) GetSuspend() *FDBCLISuspend { return nil } +func (x *FDBCLICommand) GetTenantEmergencyMove() *FDBCLITenantEmergencyMove { + if x, ok := x.GetCommand().(*FDBCLICommand_TenantEmergencyMove); ok { + return x.TenantEmergencyMove + } + return nil +} + func (x *FDBCLICommand) GetThrottle() *FDBCLIThrottle { if x, ok := x.GetCommand().(*FDBCLICommand_Throttle); ok { return x.Throttle @@ -6897,6 +7571,10 @@ type FDBCLICommand_Suspend struct { Suspend *FDBCLISuspend `protobuf:"bytes,43,opt,name=suspend,proto3,oneof"` } +type FDBCLICommand_TenantEmergencyMove struct { + TenantEmergencyMove *FDBCLITenantEmergencyMove `protobuf:"bytes,49,opt,name=tenant_emergency_move,json=tenantEmergencyMove,proto3,oneof"` +} + type FDBCLICommand_Throttle struct { Throttle *FDBCLIThrottle `protobuf:"bytes,24,opt,name=throttle,proto3,oneof"` } @@ -7015,6 +7693,8 @@ func (*FDBCLICommand_Status) isFDBCLICommand_Command() {} func (*FDBCLICommand_Suspend) isFDBCLICommand_Command() {} +func (*FDBCLICommand_TenantEmergencyMove) isFDBCLICommand_Command() {} + func (*FDBCLICommand_Throttle) isFDBCLICommand_Command() {} func (*FDBCLICommand_Triggerddteaminfolog) isFDBCLICommand_Command() {} @@ -7044,7 +7724,7 @@ type FDBCLIUnknownAction struct { func (x *FDBCLIUnknownAction) Reset() { *x = FDBCLIUnknownAction{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[111] + mi := &file_fdb_proto_msgTypes[121] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7057,7 +7737,7 @@ func (x *FDBCLIUnknownAction) String() string { func (*FDBCLIUnknownAction) ProtoMessage() {} func (x *FDBCLIUnknownAction) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[111] + mi := &file_fdb_proto_msgTypes[121] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7070,7 +7750,7 @@ func (x *FDBCLIUnknownAction) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIUnknownAction.ProtoReflect.Descriptor instead. func (*FDBCLIUnknownAction) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{111} + return file_fdb_proto_rawDescGZIP(), []int{121} } // FDBCLIRequest defines the fdbcli command(s) to run. @@ -7123,7 +7803,7 @@ type FDBCLIRequest struct { func (x *FDBCLIRequest) Reset() { *x = FDBCLIRequest{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[112] + mi := &file_fdb_proto_msgTypes[122] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7136,7 +7816,7 @@ func (x *FDBCLIRequest) String() string { func (*FDBCLIRequest) ProtoMessage() {} func (x *FDBCLIRequest) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[112] + mi := &file_fdb_proto_msgTypes[122] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7149,7 +7829,7 @@ func (x *FDBCLIRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIRequest.ProtoReflect.Descriptor instead. func (*FDBCLIRequest) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{112} + return file_fdb_proto_rawDescGZIP(), []int{122} } func (x *FDBCLIRequest) GetConfig() *wrapperspb.StringValue { @@ -7276,7 +7956,7 @@ type Log struct { func (x *Log) Reset() { *x = Log{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[113] + mi := &file_fdb_proto_msgTypes[123] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7289,7 +7969,7 @@ func (x *Log) String() string { func (*Log) ProtoMessage() {} func (x *Log) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[113] + mi := &file_fdb_proto_msgTypes[123] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7302,7 +7982,7 @@ func (x *Log) ProtoReflect() protoreflect.Message { // Deprecated: Use Log.ProtoReflect.Descriptor instead. func (*Log) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{113} + return file_fdb_proto_rawDescGZIP(), []int{123} } func (x *Log) GetFilename() string { @@ -7332,7 +8012,7 @@ type FDBCLIResponseOutput struct { func (x *FDBCLIResponseOutput) Reset() { *x = FDBCLIResponseOutput{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[114] + mi := &file_fdb_proto_msgTypes[124] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7345,7 +8025,7 @@ func (x *FDBCLIResponseOutput) String() string { func (*FDBCLIResponseOutput) ProtoMessage() {} func (x *FDBCLIResponseOutput) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[114] + mi := &file_fdb_proto_msgTypes[124] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7358,7 +8038,7 @@ func (x *FDBCLIResponseOutput) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIResponseOutput.ProtoReflect.Descriptor instead. func (*FDBCLIResponseOutput) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{114} + return file_fdb_proto_rawDescGZIP(), []int{124} } func (x *FDBCLIResponseOutput) GetStdout() []byte { @@ -7397,7 +8077,7 @@ type FDBCLIResponse struct { func (x *FDBCLIResponse) Reset() { *x = FDBCLIResponse{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[115] + mi := &file_fdb_proto_msgTypes[125] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7410,7 +8090,7 @@ func (x *FDBCLIResponse) String() string { func (*FDBCLIResponse) ProtoMessage() {} func (x *FDBCLIResponse) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[115] + mi := &file_fdb_proto_msgTypes[125] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7423,7 +8103,7 @@ func (x *FDBCLIResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBCLIResponse.ProtoReflect.Descriptor instead. func (*FDBCLIResponse) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{115} + return file_fdb_proto_rawDescGZIP(), []int{125} } func (m *FDBCLIResponse) GetResponse() isFDBCLIResponse_Response { @@ -7476,7 +8156,7 @@ type FDBServerRequest struct { func (x *FDBServerRequest) Reset() { *x = FDBServerRequest{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[116] + mi := &file_fdb_proto_msgTypes[126] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7489,7 +8169,7 @@ func (x *FDBServerRequest) String() string { func (*FDBServerRequest) ProtoMessage() {} func (x *FDBServerRequest) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[116] + mi := &file_fdb_proto_msgTypes[126] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7502,7 +8182,7 @@ func (x *FDBServerRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBServerRequest.ProtoReflect.Descriptor instead. func (*FDBServerRequest) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{116} + return file_fdb_proto_rawDescGZIP(), []int{126} } func (x *FDBServerRequest) GetCommands() []*FDBServerCommand { @@ -7528,7 +8208,7 @@ type FDBServerCommand struct { func (x *FDBServerCommand) Reset() { *x = FDBServerCommand{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[117] + mi := &file_fdb_proto_msgTypes[127] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7541,7 +8221,7 @@ func (x *FDBServerCommand) String() string { func (*FDBServerCommand) ProtoMessage() {} func (x *FDBServerCommand) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[117] + mi := &file_fdb_proto_msgTypes[127] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7554,7 +8234,7 @@ func (x *FDBServerCommand) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBServerCommand.ProtoReflect.Descriptor instead. func (*FDBServerCommand) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{117} + return file_fdb_proto_rawDescGZIP(), []int{127} } func (m *FDBServerCommand) GetCommand() isFDBServerCommand_Command { @@ -7604,7 +8284,7 @@ type FDBServerVersion struct { func (x *FDBServerVersion) Reset() { *x = FDBServerVersion{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[118] + mi := &file_fdb_proto_msgTypes[128] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7617,7 +8297,7 @@ func (x *FDBServerVersion) String() string { func (*FDBServerVersion) ProtoMessage() {} func (x *FDBServerVersion) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[118] + mi := &file_fdb_proto_msgTypes[128] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7630,7 +8310,7 @@ func (x *FDBServerVersion) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBServerVersion.ProtoReflect.Descriptor instead. func (*FDBServerVersion) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{118} + return file_fdb_proto_rawDescGZIP(), []int{128} } type FDBServerUnknownAction struct { @@ -7642,7 +8322,7 @@ type FDBServerUnknownAction struct { func (x *FDBServerUnknownAction) Reset() { *x = FDBServerUnknownAction{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[119] + mi := &file_fdb_proto_msgTypes[129] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7655,7 +8335,7 @@ func (x *FDBServerUnknownAction) String() string { func (*FDBServerUnknownAction) ProtoMessage() {} func (x *FDBServerUnknownAction) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[119] + mi := &file_fdb_proto_msgTypes[129] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7668,7 +8348,7 @@ func (x *FDBServerUnknownAction) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBServerUnknownAction.ProtoReflect.Descriptor instead. func (*FDBServerUnknownAction) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{119} + return file_fdb_proto_rawDescGZIP(), []int{129} } type FDBServerResponse struct { @@ -7684,7 +8364,7 @@ type FDBServerResponse struct { func (x *FDBServerResponse) Reset() { *x = FDBServerResponse{} if protoimpl.UnsafeEnabled { - mi := &file_fdb_proto_msgTypes[120] + mi := &file_fdb_proto_msgTypes[130] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7697,7 +8377,7 @@ func (x *FDBServerResponse) String() string { func (*FDBServerResponse) ProtoMessage() {} func (x *FDBServerResponse) ProtoReflect() protoreflect.Message { - mi := &file_fdb_proto_msgTypes[120] + mi := &file_fdb_proto_msgTypes[130] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7710,7 +8390,7 @@ func (x *FDBServerResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use FDBServerResponse.ProtoReflect.Descriptor instead. func (*FDBServerResponse) Descriptor() ([]byte, []int) { - return file_fdb_proto_rawDescGZIP(), []int{120} + return file_fdb_proto_rawDescGZIP(), []int{130} } func (x *FDBServerResponse) GetStdout() []byte { @@ -7763,904 +8443,1013 @@ var file_fdb_proto_rawDesc = []byte{ 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x27, 0x0a, 0x0f, 0x46, 0x64, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x30, 0x0a, 0x14, 0x46, 0x44, 0x42, - 0x43, 0x4c, 0x49, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x0d, 0x0a, 0x0b, 0x46, - 0x44, 0x42, 0x43, 0x4c, 0x49, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x22, 0x4c, 0x0a, 0x14, 0x46, 0x44, - 0x42, 0x43, 0x4c, 0x49, 0x42, 0x6c, 0x6f, 0x62, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x74, 0x61, - 0x72, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x4b, 0x65, 0x79, 0x12, - 0x17, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x65, 0x6e, 0x64, 0x4b, 0x65, 0x79, 0x22, 0x4b, 0x0a, 0x13, 0x46, 0x44, 0x42, 0x43, - 0x4c, 0x49, 0x42, 0x6c, 0x6f, 0x62, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x74, 0x6f, 0x70, 0x12, - 0x1b, 0x0a, 0x09, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x4b, 0x65, 0x79, 0x12, 0x17, 0x0a, 0x07, - 0x65, 0x6e, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, - 0x6e, 0x64, 0x4b, 0x65, 0x79, 0x22, 0x7f, 0x0a, 0x0f, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x42, - 0x6c, 0x6f, 0x62, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x31, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, - 0x42, 0x43, 0x4c, 0x49, 0x42, 0x6c, 0x6f, 0x62, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x74, 0x61, - 0x72, 0x74, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x2e, 0x0a, 0x04, 0x73, - 0x74, 0x6f, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x46, 0x64, 0x62, 0x2e, - 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x42, 0x6c, 0x6f, 0x62, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x53, - 0x74, 0x6f, 0x70, 0x48, 0x00, 0x52, 0x04, 0x73, 0x74, 0x6f, 0x70, 0x42, 0x09, 0x0a, 0x07, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x4b, 0x0a, 0x13, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, - 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x65, 0x74, 0x12, 0x1b, 0x0a, - 0x09, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x4b, 0x65, 0x79, 0x12, 0x17, 0x0a, 0x07, 0x65, 0x6e, - 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x6e, 0x64, - 0x4b, 0x65, 0x79, 0x22, 0x4d, 0x0a, 0x15, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x43, 0x61, 0x63, - 0x68, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x12, 0x1b, 0x0a, 0x09, - 0x62, 0x65, 0x67, 0x69, 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x4b, 0x65, 0x79, 0x12, 0x17, 0x0a, 0x07, 0x65, 0x6e, 0x64, - 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x6e, 0x64, 0x4b, - 0x65, 0x79, 0x22, 0x7f, 0x0a, 0x10, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x43, 0x61, 0x63, 0x68, - 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x2c, 0x0a, 0x03, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, - 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x65, 0x74, 0x48, 0x00, 0x52, - 0x03, 0x73, 0x65, 0x74, 0x12, 0x32, 0x0a, 0x05, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, - 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x48, - 0x00, 0x52, 0x05, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x42, 0x09, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x22, 0x16, 0x0a, 0x14, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x43, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x5d, 0x0a, 0x18, 0x46, - 0x44, 0x42, 0x43, 0x4c, 0x49, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x52, - 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x61, 0x6e, 0x67, 0x65, + 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xd3, 0x01, 0x0a, 0x16, 0x46, 0x44, + 0x42, 0x4d, 0x6f, 0x76, 0x65, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x70, 0x79, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, + 0x66, 0x69, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x65, 0x6e, 0x61, 0x6e, + 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, + 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0d, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x12, 0x2f, 0x0a, 0x13, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, + 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x75, 0x6d, 0x5f, 0x70, 0x72, 0x6f, 0x63, 0x73, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6e, 0x75, 0x6d, 0x50, 0x72, 0x6f, 0x63, 0x73, 0x22, + 0x45, 0x0a, 0x17, 0x46, 0x44, 0x42, 0x4d, 0x6f, 0x76, 0x65, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, + 0x70, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, + 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x65, 0x78, + 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x22, 0x28, 0x0a, 0x16, 0x46, 0x44, 0x42, 0x4d, 0x6f, 0x76, + 0x65, 0x44, 0x61, 0x74, 0x61, 0x57, 0x61, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, + 0x22, 0x63, 0x0a, 0x17, 0x46, 0x44, 0x42, 0x4d, 0x6f, 0x76, 0x65, 0x44, 0x61, 0x74, 0x61, 0x57, + 0x61, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, + 0x74, 0x64, 0x6f, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x73, 0x74, 0x64, + 0x6f, 0x75, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x64, 0x65, 0x72, 0x72, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x06, 0x73, 0x74, 0x64, 0x65, 0x72, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x72, + 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x65, + 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x30, 0x0a, 0x14, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x41, + 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, + 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x0d, 0x0a, 0x0b, 0x46, 0x44, 0x42, 0x43, 0x4c, + 0x49, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x22, 0x4c, 0x0a, 0x14, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, + 0x42, 0x6c, 0x6f, 0x62, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1b, + 0x0a, 0x09, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x4b, 0x65, 0x79, 0x12, 0x17, 0x0a, 0x07, 0x65, + 0x6e, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x6e, + 0x64, 0x4b, 0x65, 0x79, 0x22, 0x4b, 0x0a, 0x13, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x42, 0x6c, + 0x6f, 0x62, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x74, 0x6f, 0x70, 0x12, 0x1b, 0x0a, 0x09, 0x62, + 0x65, 0x67, 0x69, 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x62, 0x65, 0x67, 0x69, 0x6e, 0x4b, 0x65, 0x79, 0x12, 0x17, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x5f, + 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x6e, 0x64, 0x4b, 0x65, + 0x79, 0x22, 0x7f, 0x0a, 0x0f, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x42, 0x6c, 0x6f, 0x62, 0x72, + 0x61, 0x6e, 0x67, 0x65, 0x12, 0x31, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, + 0x42, 0x6c, 0x6f, 0x62, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x48, 0x00, + 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x2e, 0x0a, 0x04, 0x73, 0x74, 0x6f, 0x70, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, + 0x4c, 0x49, 0x42, 0x6c, 0x6f, 0x62, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x74, 0x6f, 0x70, 0x48, + 0x00, 0x52, 0x04, 0x73, 0x74, 0x6f, 0x70, 0x42, 0x09, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x22, 0x4b, 0x0a, 0x13, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x43, 0x61, 0x63, 0x68, + 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x65, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x65, 0x67, + 0x69, 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x65, + 0x67, 0x69, 0x6e, 0x4b, 0x65, 0x79, 0x12, 0x17, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x5f, 0x6b, 0x65, + 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x6e, 0x64, 0x4b, 0x65, 0x79, 0x22, + 0x4d, 0x0a, 0x15, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x61, + 0x6e, 0x67, 0x65, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x65, 0x67, 0x69, + 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x65, 0x67, + 0x69, 0x6e, 0x4b, 0x65, 0x79, 0x12, 0x17, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x5f, 0x6b, 0x65, 0x79, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x6e, 0x64, 0x4b, 0x65, 0x79, 0x22, 0x7f, + 0x0a, 0x10, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x61, 0x6e, + 0x67, 0x65, 0x12, 0x2c, 0x0a, 0x03, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x18, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x43, 0x61, 0x63, 0x68, + 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x65, 0x74, 0x48, 0x00, 0x52, 0x03, 0x73, 0x65, 0x74, + 0x12, 0x32, 0x0a, 0x05, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x43, 0x61, 0x63, 0x68, + 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x48, 0x00, 0x52, 0x05, 0x63, + 0x6c, 0x65, 0x61, 0x72, 0x42, 0x09, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, + 0x16, 0x0a, 0x14, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, + 0x65, 0x65, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x5d, 0x0a, 0x18, 0x46, 0x44, 0x42, 0x43, 0x4c, + 0x49, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x52, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x64, 0x12, 0x14, + 0x0a, 0x05, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x62, + 0x65, 0x67, 0x69, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, 0x31, 0x0a, 0x14, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x53, 0x74, 0x6f, 0x70, 0x12, 0x19, + 0x0a, 0x08, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x64, 0x22, 0x34, 0x0a, 0x17, 0x46, 0x44, 0x42, + 0x43, 0x4c, 0x49, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x44, 0x65, 0x73, + 0x74, 0x72, 0x6f, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x64, 0x22, + 0x21, 0x0a, 0x1f, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, + 0x65, 0x65, 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4e, 0x6f, 0x56, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x22, 0x49, 0x0a, 0x22, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x74, 0x61, 0x72, + 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x6d, 0x0a, + 0x25, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, + 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x74, 0x61, 0x72, 0x74, 0x45, 0x6e, 0x64, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x65, + 0x6e, 0x64, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x0a, 0x65, 0x6e, 0x64, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xac, 0x02, 0x0a, + 0x16, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, + 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x61, 0x6e, 0x67, 0x65, - 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, 0x31, 0x0a, 0x14, 0x46, 0x44, - 0x42, 0x43, 0x4c, 0x49, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x53, 0x74, - 0x6f, 0x70, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x64, 0x22, 0x34, 0x0a, - 0x17, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, - 0x64, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x61, 0x6e, 0x67, - 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x61, 0x6e, 0x67, - 0x65, 0x49, 0x64, 0x22, 0x21, 0x0a, 0x1f, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x43, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4e, 0x6f, 0x56, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x49, 0x0a, 0x22, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x53, 0x74, 0x61, 0x72, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x22, 0x6d, 0x0a, 0x25, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x66, 0x65, 0x65, 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x74, 0x61, 0x72, 0x74, - 0x45, 0x6e, 0x64, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, - 0x1f, 0x0a, 0x0b, 0x65, 0x6e, 0x64, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x65, 0x6e, 0x64, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x22, 0xac, 0x02, 0x0a, 0x16, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x66, 0x65, 0x65, 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x19, 0x0a, 0x08, 0x72, - 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, - 0x61, 0x6e, 0x67, 0x65, 0x49, 0x64, 0x12, 0x45, 0x0a, 0x0a, 0x6e, 0x6f, 0x5f, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x46, 0x64, 0x62, - 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, - 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4e, 0x6f, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x48, 0x00, 0x52, 0x09, 0x6e, 0x6f, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x4e, 0x0a, - 0x0d, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, + 0x49, 0x64, 0x12, 0x45, 0x0a, 0x0a, 0x6e, 0x6f, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, + 0x43, 0x4c, 0x49, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x53, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x4e, 0x6f, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x09, + 0x6e, 0x6f, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x4e, 0x0a, 0x0d, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x27, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x43, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x74, 0x61, + 0x72, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0c, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x58, 0x0a, 0x11, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x53, 0x74, 0x61, 0x72, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, - 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x58, 0x0a, - 0x11, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, + 0x6d, 0x53, 0x74, 0x61, 0x72, 0x74, 0x45, 0x6e, 0x64, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x48, 0x00, 0x52, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x45, 0x6e, 0x64, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x50, 0x0a, 0x19, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x53, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x74, 0x61, 0x72, 0x74, 0x45, 0x6e, 0x64, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x45, 0x6e, 0x64, - 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, - 0x50, 0x0a, 0x19, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, - 0x65, 0x65, 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6f, 0x70, 0x12, 0x19, 0x0a, 0x08, - 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x72, 0x61, 0x6e, 0x67, 0x65, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x22, 0xe1, 0x02, 0x0a, 0x10, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x43, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x12, 0x2f, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, - 0x49, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x48, - 0x00, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x08, 0x72, 0x65, 0x67, 0x69, 0x73, - 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x46, 0x64, 0x62, 0x2e, - 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, - 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x08, 0x72, 0x65, 0x67, 0x69, - 0x73, 0x74, 0x65, 0x72, 0x12, 0x2f, 0x0a, 0x04, 0x73, 0x74, 0x6f, 0x70, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x53, 0x74, 0x6f, 0x70, 0x48, 0x00, 0x52, - 0x04, 0x73, 0x74, 0x6f, 0x70, 0x12, 0x38, 0x0a, 0x07, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, - 0x43, 0x4c, 0x49, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x44, 0x65, 0x73, - 0x74, 0x72, 0x6f, 0x79, 0x48, 0x00, 0x52, 0x07, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x12, - 0x35, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1b, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x43, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x48, 0x00, 0x52, 0x06, - 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x32, 0x0a, 0x03, 0x70, 0x6f, 0x70, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x50, 0x6f, 0x70, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6f, 0x70, 0x42, 0x09, 0x0a, 0x07, 0x72, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x1f, 0x0a, 0x0b, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x43, - 0x6c, 0x65, 0x61, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x22, 0x48, 0x0a, 0x10, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, - 0x43, 0x6c, 0x65, 0x61, 0x72, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x65, - 0x67, 0x69, 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, - 0x65, 0x67, 0x69, 0x6e, 0x4b, 0x65, 0x79, 0x12, 0x17, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x5f, 0x6b, - 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x6e, 0x64, 0x4b, 0x65, 0x79, - 0x22, 0x0e, 0x0a, 0x0c, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, - 0x22, 0xd3, 0x06, 0x0a, 0x0f, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x75, 0x72, 0x65, 0x12, 0x3a, 0x0a, 0x0a, 0x6e, 0x65, 0x77, 0x5f, 0x6f, 0x72, 0x5f, 0x74, - 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x6e, 0x65, 0x77, 0x4f, 0x72, 0x54, 0x73, 0x73, - 0x12, 0x45, 0x0a, 0x0f, 0x72, 0x65, 0x64, 0x75, 0x6e, 0x64, 0x61, 0x6e, 0x63, 0x79, 0x5f, 0x6d, - 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x72, 0x65, 0x64, 0x75, 0x6e, 0x64, 0x61, - 0x6e, 0x63, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x43, 0x0a, 0x0e, 0x73, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x5f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x73, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x12, 0x3d, 0x0a, 0x0b, - 0x67, 0x72, 0x76, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, - 0x0a, 0x67, 0x72, 0x76, 0x50, 0x72, 0x6f, 0x78, 0x69, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x0e, 0x63, - 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x69, 0x65, 0x73, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x52, 0x0d, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x50, 0x72, 0x6f, 0x78, 0x69, 0x65, 0x73, - 0x12, 0x3a, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x73, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x52, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x73, 0x12, 0x30, 0x0a, 0x04, - 0x6c, 0x6f, 0x67, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, - 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x6c, 0x6f, 0x67, 0x73, 0x12, 0x32, - 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x12, 0x56, 0x0a, 0x18, 0x70, 0x65, 0x72, 0x70, 0x65, 0x74, 0x75, 0x61, 0x6c, 0x5f, - 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x18, 0x09, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6f, 0x70, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x61, 0x6e, 0x67, + 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x61, 0x6e, 0x67, + 0x65, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xe1, 0x02, + 0x0a, 0x10, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, + 0x65, 0x64, 0x12, 0x2f, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x19, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x43, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x04, 0x6c, + 0x69, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x08, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, + 0x4c, 0x49, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x52, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x08, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, + 0x12, 0x2f, 0x0a, 0x04, 0x73, 0x74, 0x6f, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, + 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x66, 0x65, 0x65, 0x64, 0x53, 0x74, 0x6f, 0x70, 0x48, 0x00, 0x52, 0x04, 0x73, 0x74, 0x6f, + 0x70, 0x12, 0x38, 0x0a, 0x07, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, + 0x48, 0x00, 0x52, 0x07, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x12, 0x35, 0x0a, 0x06, 0x73, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x46, 0x64, + 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, + 0x65, 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x73, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x12, 0x32, 0x0a, 0x03, 0x70, 0x6f, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1e, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6f, 0x70, 0x48, + 0x00, 0x52, 0x03, 0x70, 0x6f, 0x70, 0x42, 0x09, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x22, 0x1f, 0x0a, 0x0b, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x43, 0x6c, 0x65, 0x61, 0x72, + 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, + 0x65, 0x79, 0x22, 0x48, 0x0a, 0x10, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x43, 0x6c, 0x65, 0x61, + 0x72, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x5f, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x65, 0x67, 0x69, 0x6e, + 0x4b, 0x65, 0x79, 0x12, 0x17, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x6e, 0x64, 0x4b, 0x65, 0x79, 0x22, 0x0e, 0x0a, 0x0c, + 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x22, 0xd3, 0x06, 0x0a, + 0x0f, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, + 0x12, 0x3a, 0x0a, 0x0a, 0x6e, 0x65, 0x77, 0x5f, 0x6f, 0x72, 0x5f, 0x74, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x52, 0x16, 0x70, 0x65, 0x72, 0x70, 0x65, 0x74, 0x75, 0x61, 0x6c, 0x53, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x57, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x12, 0x67, 0x0a, 0x21, 0x70, 0x65, - 0x72, 0x70, 0x65, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, - 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x08, 0x6e, 0x65, 0x77, 0x4f, 0x72, 0x54, 0x73, 0x73, 0x12, 0x45, 0x0a, 0x0f, + 0x72, 0x65, 0x64, 0x75, 0x6e, 0x64, 0x61, 0x6e, 0x63, 0x79, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x52, 0x1e, 0x70, 0x65, 0x72, 0x70, 0x65, 0x74, 0x75, 0x61, 0x6c, 0x53, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x57, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x6c, - 0x69, 0x74, 0x79, 0x12, 0x52, 0x0a, 0x16, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x6d, - 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x52, 0x14, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3d, 0x0a, 0x0b, 0x74, 0x65, 0x6e, 0x61, 0x6e, - 0x74, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x74, 0x65, 0x6e, 0x61, - 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x48, 0x0a, 0x16, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, - 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x63, 0x68, 0x65, 0x63, 0x6b, - 0x12, 0x2e, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, - 0x22, 0x18, 0x0a, 0x16, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, - 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x41, 0x75, 0x74, 0x6f, 0x22, 0x3b, 0x0a, 0x1b, 0x46, 0x44, - 0x42, 0x43, 0x4c, 0x49, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x73, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x22, 0xd4, 0x01, 0x0a, 0x12, 0x46, 0x44, 0x42, 0x43, - 0x4c, 0x49, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x31, - 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x46, - 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, - 0x61, 0x74, 0x6f, 0x72, 0x73, 0x41, 0x75, 0x74, 0x6f, 0x48, 0x00, 0x52, 0x04, 0x61, 0x75, 0x74, - 0x6f, 0x12, 0x40, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, - 0x49, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x48, 0x00, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x72, 0x65, 0x64, 0x75, 0x6e, 0x64, 0x61, 0x6e, 0x63, 0x79, 0x4d, + 0x6f, 0x64, 0x65, 0x12, 0x43, 0x0a, 0x0e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x65, + 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x12, 0x3d, 0x0a, 0x0b, 0x67, 0x72, 0x76, 0x5f, + 0x70, 0x72, 0x6f, 0x78, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x67, 0x72, 0x76, + 0x50, 0x72, 0x6f, 0x78, 0x69, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x0e, 0x63, 0x6f, 0x6d, 0x6d, 0x69, + 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x69, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x63, + 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x50, 0x72, 0x6f, 0x78, 0x69, 0x65, 0x73, 0x12, 0x3a, 0x0a, 0x09, + 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x72, + 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x73, 0x12, 0x30, 0x0a, 0x04, 0x6c, 0x6f, 0x67, 0x73, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x6c, 0x6f, 0x67, 0x73, 0x12, 0x32, 0x0a, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, + 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x56, + 0x0a, 0x18, 0x70, 0x65, 0x72, 0x70, 0x65, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x5f, 0x77, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x16, + 0x70, 0x65, 0x72, 0x70, 0x65, 0x74, 0x75, 0x61, 0x6c, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x57, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x12, 0x67, 0x0a, 0x21, 0x70, 0x65, 0x72, 0x70, 0x65, 0x74, + 0x75, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x77, 0x69, 0x67, 0x67, + 0x6c, 0x65, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x1e, 0x70, 0x65, 0x72, 0x70, 0x65, 0x74, 0x75, 0x61, 0x6c, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x57, 0x69, 0x67, 0x67, 0x6c, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x12, + 0x52, 0x0a, 0x16, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x6d, 0x69, 0x67, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x14, 0x73, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x3d, 0x0a, 0x0b, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x6d, 0x6f, + 0x64, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x42, 0x09, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x28, - 0x0a, 0x12, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x74, 0x65, - 0x6e, 0x61, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x1a, 0x0a, 0x18, 0x46, 0x44, 0x42, 0x43, + 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x4d, 0x6f, + 0x64, 0x65, 0x22, 0x48, 0x0a, 0x16, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x43, 0x6f, 0x6e, 0x73, + 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x2e, 0x0a, 0x04, + 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, + 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0x18, 0x0a, 0x16, + 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x6f, + 0x72, 0x73, 0x41, 0x75, 0x74, 0x6f, 0x22, 0x3b, 0x0a, 0x1b, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, + 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x65, 0x73, 0x22, 0xd4, 0x01, 0x0a, 0x12, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x43, 0x6f, + 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x31, 0x0a, 0x04, 0x61, 0x75, + 0x74, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, + 0x44, 0x42, 0x43, 0x4c, 0x49, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, + 0x73, 0x41, 0x75, 0x74, 0x6f, 0x48, 0x00, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x12, 0x40, 0x0a, + 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x20, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x43, 0x6f, 0x6f, + 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x65, 0x73, 0x48, 0x00, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, + 0x3e, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, + 0x09, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x28, 0x0a, 0x12, 0x46, 0x44, + 0x42, 0x43, 0x4c, 0x49, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x1a, 0x0a, 0x18, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x44, 0x61, + 0x74, 0x61, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x6e, + 0x22, 0x1b, 0x0a, 0x19, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x44, 0x61, 0x74, 0x61, 0x64, 0x69, + 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x66, 0x22, 0x36, 0x0a, + 0x1c, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x44, 0x61, 0x74, 0x61, 0x64, 0x69, 0x73, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x16, 0x0a, + 0x06, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x37, 0x0a, 0x1d, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x44, + 0x61, 0x74, 0x61, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x44, + 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x85, + 0x02, 0x0a, 0x16, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x44, 0x61, 0x74, 0x61, 0x64, 0x69, 0x73, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x0a, 0x02, 0x6f, 0x6e, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x44, 0x61, 0x74, 0x61, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x4f, 0x6e, 0x22, 0x1b, 0x0a, 0x19, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x44, 0x61, - 0x74, 0x61, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x66, - 0x66, 0x22, 0x36, 0x0a, 0x1c, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x44, 0x61, 0x74, 0x61, 0x64, + 0x6f, 0x6e, 0x4f, 0x6e, 0x48, 0x00, 0x52, 0x02, 0x6f, 0x6e, 0x12, 0x32, 0x0a, 0x03, 0x6f, 0x66, + 0x66, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, + 0x42, 0x43, 0x4c, 0x49, 0x44, 0x61, 0x74, 0x61, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x66, 0x48, 0x00, 0x52, 0x03, 0x6f, 0x66, 0x66, 0x12, 0x3b, + 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, + 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x44, 0x61, 0x74, 0x61, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x37, 0x0a, 0x1d, 0x46, 0x44, 0x42, - 0x43, 0x4c, 0x49, 0x44, 0x61, 0x74, 0x61, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x22, 0x85, 0x02, 0x0a, 0x16, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x44, 0x61, 0x74, - 0x61, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x0a, - 0x02, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x46, 0x64, 0x62, 0x2e, - 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x44, 0x61, 0x74, 0x61, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x6e, 0x48, 0x00, 0x52, 0x02, 0x6f, 0x6e, 0x12, 0x32, - 0x0a, 0x03, 0x6f, 0x66, 0x66, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x46, 0x64, - 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x44, 0x61, 0x74, 0x61, 0x64, 0x69, 0x73, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x66, 0x48, 0x00, 0x52, 0x03, 0x6f, - 0x66, 0x66, 0x12, 0x3b, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x44, - 0x61, 0x74, 0x61, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x45, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x48, 0x00, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, - 0x3e, 0x0a, 0x07, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x22, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x44, 0x61, 0x74, - 0x61, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x73, - 0x61, 0x62, 0x6c, 0x65, 0x48, 0x00, 0x52, 0x07, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x42, - 0x09, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x15, 0x0a, 0x13, 0x46, 0x44, - 0x42, 0x43, 0x4c, 0x49, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x74, 0x65, 0x6e, 0x61, 0x6e, - 0x74, 0x22, 0x28, 0x0a, 0x12, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x96, 0x01, 0x0a, 0x0d, - 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x12, 0x32, 0x0a, - 0x06, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x66, 0x61, 0x69, 0x6c, 0x65, - 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, - 0x33, 0x0a, 0x07, 0x6e, 0x6f, 0x5f, 0x77, 0x61, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x6e, 0x6f, - 0x57, 0x61, 0x69, 0x74, 0x22, 0x1e, 0x0a, 0x1c, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x45, 0x78, - 0x70, 0x65, 0x6e, 0x73, 0x69, 0x76, 0x65, 0x44, 0x61, 0x74, 0x61, 0x43, 0x68, 0x65, 0x63, 0x6b, - 0x49, 0x6e, 0x69, 0x74, 0x22, 0x1e, 0x0a, 0x1c, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x45, 0x78, - 0x70, 0x65, 0x6e, 0x73, 0x69, 0x76, 0x65, 0x44, 0x61, 0x74, 0x61, 0x43, 0x68, 0x65, 0x63, 0x6b, - 0x4c, 0x69, 0x73, 0x74, 0x22, 0x1d, 0x0a, 0x1b, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x45, 0x78, - 0x70, 0x65, 0x6e, 0x73, 0x69, 0x76, 0x65, 0x44, 0x61, 0x74, 0x61, 0x43, 0x68, 0x65, 0x63, 0x6b, - 0x41, 0x6c, 0x6c, 0x22, 0x3d, 0x0a, 0x1d, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x45, 0x78, 0x70, - 0x65, 0x6e, 0x73, 0x69, 0x76, 0x65, 0x44, 0x61, 0x74, 0x61, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x43, - 0x68, 0x65, 0x63, 0x6b, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x65, 0x73, 0x22, 0x89, 0x02, 0x0a, 0x18, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x45, 0x78, 0x70, - 0x65, 0x6e, 0x73, 0x69, 0x76, 0x65, 0x44, 0x61, 0x74, 0x61, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, - 0x37, 0x0a, 0x04, 0x69, 0x6e, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, - 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x45, 0x78, 0x70, 0x65, 0x6e, 0x73, + 0x65, 0x48, 0x00, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x3e, 0x0a, 0x07, 0x64, + 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x46, + 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x44, 0x61, 0x74, 0x61, 0x64, 0x69, 0x73, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, + 0x48, 0x00, 0x52, 0x07, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x15, 0x0a, 0x13, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, + 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x22, 0x28, 0x0a, + 0x12, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x74, 0x65, 0x6e, + 0x61, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x96, 0x01, 0x0a, 0x0d, 0x46, 0x44, 0x42, 0x43, + 0x4c, 0x49, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x12, 0x32, 0x0a, 0x06, 0x66, 0x61, 0x69, + 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x1c, 0x0a, + 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x33, 0x0a, 0x07, 0x6e, + 0x6f, 0x5f, 0x77, 0x61, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, + 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x6e, 0x6f, 0x57, 0x61, 0x69, 0x74, + 0x22, 0x1e, 0x0a, 0x1c, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x45, 0x78, 0x70, 0x65, 0x6e, 0x73, 0x69, 0x76, 0x65, 0x44, 0x61, 0x74, 0x61, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x49, 0x6e, 0x69, 0x74, - 0x48, 0x00, 0x52, 0x04, 0x69, 0x6e, 0x69, 0x74, 0x12, 0x37, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, - 0x43, 0x4c, 0x49, 0x45, 0x78, 0x70, 0x65, 0x6e, 0x73, 0x69, 0x76, 0x65, 0x44, 0x61, 0x74, 0x61, - 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x04, 0x6c, 0x69, 0x73, - 0x74, 0x12, 0x34, 0x0a, 0x03, 0x61, 0x6c, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, - 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x45, 0x78, 0x70, 0x65, 0x6e, - 0x73, 0x69, 0x76, 0x65, 0x44, 0x61, 0x74, 0x61, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x41, 0x6c, 0x6c, - 0x48, 0x00, 0x52, 0x03, 0x61, 0x6c, 0x6c, 0x12, 0x3a, 0x0a, 0x05, 0x63, 0x68, 0x65, 0x63, 0x6b, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, - 0x43, 0x4c, 0x49, 0x45, 0x78, 0x70, 0x65, 0x6e, 0x73, 0x69, 0x76, 0x65, 0x44, 0x61, 0x74, 0x61, - 0x43, 0x68, 0x65, 0x63, 0x6b, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x48, 0x00, 0x52, 0x05, 0x63, 0x68, - 0x65, 0x63, 0x6b, 0x42, 0x09, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x57, - 0x0a, 0x13, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x46, 0x69, 0x6c, 0x65, 0x63, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x75, 0x72, 0x65, 0x12, 0x2c, 0x0a, 0x03, 0x6e, 0x65, 0x77, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x03, - 0x6e, 0x65, 0x77, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x22, 0x35, 0x0a, 0x1f, 0x46, 0x44, 0x42, 0x43, 0x4c, - 0x49, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x57, 0x69, - 0x74, 0x68, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x6f, 0x73, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x63, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x63, 0x69, 0x64, 0x22, 0x1d, - 0x0a, 0x09, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x47, 0x65, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6b, - 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x22, 0x98, 0x01, - 0x0a, 0x0e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x47, 0x65, 0x74, 0x72, 0x61, 0x6e, 0x67, 0x65, - 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x4b, 0x65, 0x79, 0x12, 0x35, 0x0a, - 0x07, 0x65, 0x6e, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x22, 0x1e, 0x0a, 0x1c, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x45, 0x78, 0x70, 0x65, 0x6e, 0x73, + 0x69, 0x76, 0x65, 0x44, 0x61, 0x74, 0x61, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4c, 0x69, 0x73, 0x74, + 0x22, 0x1d, 0x0a, 0x1b, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x45, 0x78, 0x70, 0x65, 0x6e, 0x73, + 0x69, 0x76, 0x65, 0x44, 0x61, 0x74, 0x61, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x41, 0x6c, 0x6c, 0x22, + 0x3d, 0x0a, 0x1d, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x45, 0x78, 0x70, 0x65, 0x6e, 0x73, 0x69, + 0x76, 0x65, 0x44, 0x61, 0x74, 0x61, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x43, 0x68, 0x65, 0x63, 0x6b, + 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x22, 0x89, + 0x02, 0x0a, 0x18, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x45, 0x78, 0x70, 0x65, 0x6e, 0x73, 0x69, + 0x76, 0x65, 0x44, 0x61, 0x74, 0x61, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x37, 0x0a, 0x04, 0x69, + 0x6e, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x46, 0x64, 0x62, 0x2e, + 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x45, 0x78, 0x70, 0x65, 0x6e, 0x73, 0x69, 0x76, 0x65, 0x44, + 0x61, 0x74, 0x61, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x49, 0x6e, 0x69, 0x74, 0x48, 0x00, 0x52, 0x04, + 0x69, 0x6e, 0x69, 0x74, 0x12, 0x37, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x45, + 0x78, 0x70, 0x65, 0x6e, 0x73, 0x69, 0x76, 0x65, 0x44, 0x61, 0x74, 0x61, 0x43, 0x68, 0x65, 0x63, + 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x34, 0x0a, + 0x03, 0x61, 0x6c, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x46, 0x64, 0x62, + 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x45, 0x78, 0x70, 0x65, 0x6e, 0x73, 0x69, 0x76, 0x65, + 0x44, 0x61, 0x74, 0x61, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x41, 0x6c, 0x6c, 0x48, 0x00, 0x52, 0x03, + 0x61, 0x6c, 0x6c, 0x12, 0x3a, 0x0a, 0x05, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x45, + 0x78, 0x70, 0x65, 0x6e, 0x73, 0x69, 0x76, 0x65, 0x44, 0x61, 0x74, 0x61, 0x43, 0x68, 0x65, 0x63, + 0x6b, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x48, 0x00, 0x52, 0x05, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x42, + 0x09, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x57, 0x0a, 0x13, 0x46, 0x44, + 0x42, 0x43, 0x4c, 0x49, 0x46, 0x69, 0x6c, 0x65, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, + 0x65, 0x12, 0x2c, 0x0a, 0x03, 0x6e, 0x65, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x65, 0x6e, - 0x64, 0x4b, 0x65, 0x79, 0x12, 0x32, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0x9c, 0x01, 0x0a, 0x12, 0x46, 0x44, 0x42, - 0x43, 0x4c, 0x49, 0x47, 0x65, 0x74, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x6b, 0x65, 0x79, 0x73, 0x12, - 0x1b, 0x0a, 0x09, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x4b, 0x65, 0x79, 0x12, 0x35, 0x0a, 0x07, - 0x65, 0x6e, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x65, 0x6e, 0x64, - 0x4b, 0x65, 0x79, 0x12, 0x32, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0x25, 0x0a, 0x0f, 0x46, 0x44, 0x42, 0x43, 0x4c, - 0x49, 0x47, 0x65, 0x74, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x12, - 0x0a, 0x10, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x47, 0x65, 0x74, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x22, 0x26, 0x0a, 0x0a, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x48, 0x65, 0x6c, 0x70, - 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x36, 0x0a, 0x16, 0x46, 0x44, - 0x42, 0x43, 0x4c, 0x49, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x65, 0x73, 0x22, 0x9f, 0x01, 0x0a, 0x0d, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x49, 0x6e, 0x63, - 0x6c, 0x75, 0x64, 0x65, 0x12, 0x32, 0x0a, 0x06, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x52, 0x06, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x12, 0x0a, 0x03, 0x61, 0x6c, 0x6c, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x03, 0x61, 0x6c, 0x6c, 0x12, 0x3b, 0x0a, 0x09, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1b, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x49, 0x6e, 0x63, 0x6c, - 0x75, 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x48, 0x00, 0x52, 0x09, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x42, 0x09, 0x0a, 0x07, 0x72, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x22, 0x10, 0x0a, 0x0e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x4b, 0x69, - 0x6c, 0x6c, 0x49, 0x6e, 0x69, 0x74, 0x22, 0x10, 0x0a, 0x0e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, - 0x4b, 0x69, 0x6c, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x0f, 0x0a, 0x0d, 0x46, 0x44, 0x42, 0x43, - 0x4c, 0x49, 0x4b, 0x69, 0x6c, 0x6c, 0x41, 0x6c, 0x6c, 0x22, 0x31, 0x0a, 0x11, 0x46, 0x44, 0x42, - 0x43, 0x4c, 0x49, 0x4b, 0x69, 0x6c, 0x6c, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x12, 0x1c, - 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x22, 0xfa, 0x01, 0x0a, - 0x0a, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x4b, 0x69, 0x6c, 0x6c, 0x12, 0x29, 0x0a, 0x04, 0x69, - 0x6e, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x46, 0x64, 0x62, 0x2e, - 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x4b, 0x69, 0x6c, 0x6c, 0x49, 0x6e, 0x69, 0x74, 0x48, 0x00, - 0x52, 0x04, 0x69, 0x6e, 0x69, 0x74, 0x12, 0x29, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, - 0x49, 0x4b, 0x69, 0x6c, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x04, 0x6c, 0x69, 0x73, - 0x74, 0x12, 0x26, 0x0a, 0x03, 0x61, 0x6c, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, - 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x4b, 0x69, 0x6c, 0x6c, 0x41, - 0x6c, 0x6c, 0x48, 0x00, 0x52, 0x03, 0x61, 0x6c, 0x6c, 0x12, 0x32, 0x0a, 0x07, 0x74, 0x61, 0x72, - 0x67, 0x65, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x46, 0x64, 0x62, - 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x4b, 0x69, 0x6c, 0x6c, 0x54, 0x61, 0x72, 0x67, 0x65, - 0x74, 0x73, 0x48, 0x00, 0x52, 0x07, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x12, 0x2f, 0x0a, - 0x05, 0x73, 0x6c, 0x65, 0x65, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, - 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x73, 0x6c, 0x65, 0x65, 0x70, 0x42, 0x09, - 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xab, 0x01, 0x0a, 0x11, 0x46, 0x44, - 0x42, 0x43, 0x4c, 0x49, 0x4c, 0x69, 0x73, 0x74, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x73, 0x12, - 0x32, 0x0a, 0x05, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x03, 0x6e, 0x65, 0x77, 0x12, + 0x12, 0x0a, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, + 0x69, 0x6c, 0x65, 0x22, 0x35, 0x0a, 0x1f, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x46, 0x6f, 0x72, + 0x63, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x57, 0x69, 0x74, 0x68, 0x44, 0x61, + 0x74, 0x61, 0x4c, 0x6f, 0x73, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x63, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x63, 0x69, 0x64, 0x22, 0x1d, 0x0a, 0x09, 0x46, 0x44, + 0x42, 0x43, 0x4c, 0x49, 0x47, 0x65, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x22, 0x98, 0x01, 0x0a, 0x0e, 0x46, 0x44, + 0x42, 0x43, 0x4c, 0x49, 0x47, 0x65, 0x74, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x1b, 0x0a, 0x09, + 0x62, 0x65, 0x67, 0x69, 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x4b, 0x65, 0x79, 0x12, 0x35, 0x0a, 0x07, 0x65, 0x6e, 0x64, + 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x65, 0x6e, 0x64, 0x4b, 0x65, 0x79, + 0x12, 0x32, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x6c, + 0x69, 0x6d, 0x69, 0x74, 0x22, 0x9c, 0x01, 0x0a, 0x12, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x47, + 0x65, 0x74, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x6b, 0x65, 0x79, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x62, + 0x65, 0x67, 0x69, 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x62, 0x65, 0x67, 0x69, 0x6e, 0x4b, 0x65, 0x79, 0x12, 0x35, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x5f, + 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x65, 0x6e, 0x64, 0x4b, 0x65, 0x79, 0x12, + 0x32, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x62, 0x65, - 0x67, 0x69, 0x6e, 0x12, 0x2e, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x03, - 0x65, 0x6e, 0x64, 0x12, 0x32, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0x0c, 0x0a, 0x0a, 0x46, 0x44, 0x42, 0x43, 0x4c, - 0x49, 0x4c, 0x6f, 0x63, 0x6b, 0x22, 0x19, 0x0a, 0x17, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x4d, - 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x22, 0x47, 0x0a, 0x13, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x4d, 0x61, 0x69, 0x6e, 0x74, 0x65, - 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x4f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x7a, 0x6f, 0x6e, 0x65, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x7a, 0x6f, 0x6e, 0x65, 0x69, 0x64, 0x12, - 0x18, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x07, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x22, 0x16, 0x0a, 0x14, 0x46, 0x44, 0x42, - 0x43, 0x4c, 0x49, 0x4d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x4f, 0x66, - 0x66, 0x22, 0xb1, 0x01, 0x0a, 0x11, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x4d, 0x61, 0x69, 0x6e, - 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x36, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, - 0x42, 0x43, 0x4c, 0x49, 0x4d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, 0x00, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, - 0x2a, 0x0a, 0x02, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x46, 0x64, - 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x4d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, - 0x6e, 0x63, 0x65, 0x4f, 0x6e, 0x48, 0x00, 0x52, 0x02, 0x6f, 0x6e, 0x12, 0x2d, 0x0a, 0x03, 0x6f, - 0x66, 0x66, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, - 0x44, 0x42, 0x43, 0x4c, 0x49, 0x4d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, - 0x4f, 0x66, 0x66, 0x48, 0x00, 0x52, 0x03, 0x6f, 0x66, 0x66, 0x42, 0x09, 0x0a, 0x07, 0x72, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x13, 0x0a, 0x11, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x4f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x61, 0x6e, 0x6b, 0x22, 0x6f, 0x0a, 0x0f, 0x46, 0x44, - 0x42, 0x43, 0x4c, 0x49, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x72, 0x67, 0x12, 0x14, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x0a, 0x03, 0x61, - 0x72, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x03, 0x61, 0x72, 0x67, 0x22, 0x73, 0x0a, 0x0c, 0x46, - 0x44, 0x42, 0x43, 0x4c, 0x49, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x0a, 0x05, 0x62, - 0x6c, 0x61, 0x6e, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x46, 0x64, 0x62, - 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x61, - 0x6e, 0x6b, 0x48, 0x00, 0x52, 0x05, 0x62, 0x6c, 0x61, 0x6e, 0x6b, 0x12, 0x28, 0x0a, 0x03, 0x61, - 0x72, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, - 0x44, 0x42, 0x43, 0x4c, 0x49, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x72, 0x67, 0x48, 0x00, - 0x52, 0x03, 0x61, 0x72, 0x67, 0x42, 0x09, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x22, 0x22, 0x0a, 0x20, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, - 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x22, 0x1e, 0x0a, 0x1c, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x50, 0x72, - 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x47, 0x65, 0x74, 0x22, 0x88, 0x02, 0x0a, 0x1c, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x50, - 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x53, 0x65, 0x74, 0x12, 0x4a, 0x0a, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x46, 0x64, - 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x41, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, - 0x6c, 0x74, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x61, 0x74, - 0x65, 0x12, 0x1f, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x09, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x61, - 0x74, 0x65, 0x12, 0x4a, 0x0a, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x73, 0x69, - 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, - 0x44, 0x42, 0x43, 0x4c, 0x49, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x48, - 0x01, 0x52, 0x0b, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1f, - 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x04, 0x48, 0x01, 0x52, 0x09, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x42, - 0x06, 0x0a, 0x04, 0x72, 0x61, 0x74, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x22, - 0x94, 0x01, 0x0a, 0x19, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, - 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x35, 0x0a, - 0x03, 0x67, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x46, 0x64, 0x62, - 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x41, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x47, 0x65, 0x74, 0x48, 0x00, 0x52, - 0x03, 0x67, 0x65, 0x74, 0x12, 0x35, 0x0a, 0x03, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x21, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x50, 0x72, - 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x53, 0x65, 0x74, 0x48, 0x00, 0x52, 0x03, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x19, 0x0a, 0x17, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, - 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, - 0x74, 0x22, 0x53, 0x0a, 0x17, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x50, 0x72, 0x6f, 0x66, 0x69, - 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x12, 0x1a, 0x0a, 0x08, - 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, - 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x63, - 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, - 0x63, 0x65, 0x73, 0x73, 0x65, 0x73, 0x22, 0x33, 0x0a, 0x17, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, - 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, - 0x70, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x22, 0xf0, 0x01, 0x0a, 0x0d, - 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x38, 0x0a, - 0x06, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, - 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, - 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, - 0x06, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x32, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, - 0x4c, 0x49, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, - 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x04, 0x66, - 0x6c, 0x6f, 0x77, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x46, 0x64, 0x62, 0x2e, - 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x48, 0x00, 0x52, 0x04, 0x66, 0x6c, 0x6f, 0x77, 0x12, - 0x32, 0x0a, 0x04, 0x68, 0x65, 0x61, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, - 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x70, 0x48, 0x00, 0x52, 0x04, 0x68, - 0x65, 0x61, 0x70, 0x42, 0x09, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x33, - 0x0a, 0x09, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x53, 0x65, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6b, - 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x22, 0x43, 0x0a, 0x11, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x53, 0x65, 0x74, - 0x63, 0x6c, 0x61, 0x73, 0x73, 0x41, 0x72, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x22, 0x14, 0x0a, 0x12, 0x46, 0x44, 0x42, 0x43, - 0x4c, 0x49, 0x53, 0x65, 0x74, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x76, - 0x0a, 0x0e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x53, 0x65, 0x74, 0x63, 0x6c, 0x61, 0x73, 0x73, - 0x12, 0x2d, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, - 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x53, 0x65, 0x74, 0x63, 0x6c, - 0x61, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x12, - 0x2a, 0x0a, 0x03, 0x61, 0x72, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x46, - 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x53, 0x65, 0x74, 0x63, 0x6c, 0x61, 0x73, - 0x73, 0x41, 0x72, 0x67, 0x48, 0x00, 0x52, 0x03, 0x61, 0x72, 0x67, 0x42, 0x09, 0x0a, 0x07, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x27, 0x0a, 0x0b, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, - 0x53, 0x6c, 0x65, 0x65, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x22, - 0x44, 0x0a, 0x0e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, - 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x42, 0x0a, 0x0c, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x32, 0x0a, 0x05, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x18, 0x01, + 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x6c, 0x69, + 0x6d, 0x69, 0x74, 0x22, 0x25, 0x0a, 0x0f, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x47, 0x65, 0x74, + 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x12, 0x0a, 0x10, 0x46, 0x44, + 0x42, 0x43, 0x4c, 0x49, 0x47, 0x65, 0x74, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x26, + 0x0a, 0x0a, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x48, 0x65, 0x6c, 0x70, 0x12, 0x18, 0x0a, 0x07, + 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x6f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x36, 0x0a, 0x16, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, + 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, + 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x22, 0x9f, + 0x01, 0x0a, 0x0d, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, + 0x12, 0x32, 0x0a, 0x06, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x66, 0x61, + 0x69, 0x6c, 0x65, 0x64, 0x12, 0x12, 0x0a, 0x03, 0x61, 0x6c, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x08, 0x48, 0x00, 0x52, 0x03, 0x61, 0x6c, 0x6c, 0x12, 0x3b, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x46, 0x64, + 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x48, 0x00, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x65, 0x73, 0x42, 0x09, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x22, 0x10, 0x0a, 0x0e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x4b, 0x69, 0x6c, 0x6c, 0x49, 0x6e, + 0x69, 0x74, 0x22, 0x10, 0x0a, 0x0e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x4b, 0x69, 0x6c, 0x6c, + 0x4c, 0x69, 0x73, 0x74, 0x22, 0x0f, 0x0a, 0x0d, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x4b, 0x69, + 0x6c, 0x6c, 0x41, 0x6c, 0x6c, 0x22, 0x31, 0x0a, 0x11, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x4b, + 0x69, 0x6c, 0x6c, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x22, 0xfa, 0x01, 0x0a, 0x0a, 0x46, 0x44, 0x42, + 0x43, 0x4c, 0x49, 0x4b, 0x69, 0x6c, 0x6c, 0x12, 0x29, 0x0a, 0x04, 0x69, 0x6e, 0x69, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, + 0x4c, 0x49, 0x4b, 0x69, 0x6c, 0x6c, 0x49, 0x6e, 0x69, 0x74, 0x48, 0x00, 0x52, 0x04, 0x69, 0x6e, + 0x69, 0x74, 0x12, 0x29, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x13, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x4b, 0x69, 0x6c, + 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x26, 0x0a, + 0x03, 0x61, 0x6c, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x46, 0x64, 0x62, + 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x4b, 0x69, 0x6c, 0x6c, 0x41, 0x6c, 0x6c, 0x48, 0x00, + 0x52, 0x03, 0x61, 0x6c, 0x6c, 0x12, 0x32, 0x0a, 0x07, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, + 0x43, 0x4c, 0x49, 0x4b, 0x69, 0x6c, 0x6c, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x48, 0x00, + 0x52, 0x07, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x12, 0x2f, 0x0a, 0x05, 0x73, 0x6c, 0x65, + 0x65, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x73, 0x6c, 0x65, 0x65, 0x70, 0x42, 0x09, 0x0a, 0x07, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xab, 0x01, 0x0a, 0x11, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, + 0x4c, 0x69, 0x73, 0x74, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x73, 0x12, 0x32, 0x0a, 0x05, 0x62, + 0x65, 0x67, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x12, + 0x2e, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x12, + 0x32, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x6c, 0x69, + 0x6d, 0x69, 0x74, 0x22, 0x0c, 0x0a, 0x0a, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x4c, 0x6f, 0x63, + 0x6b, 0x22, 0x19, 0x0a, 0x17, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x4d, 0x61, 0x69, 0x6e, 0x74, + 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x47, 0x0a, 0x13, + 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x4d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, + 0x65, 0x4f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x7a, 0x6f, 0x6e, 0x65, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x7a, 0x6f, 0x6e, 0x65, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x73, + 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x73, 0x65, + 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x22, 0x16, 0x0a, 0x14, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x4d, + 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x4f, 0x66, 0x66, 0x22, 0xb1, 0x01, + 0x0a, 0x11, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x4d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, + 0x6e, 0x63, 0x65, 0x12, 0x36, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, + 0x4d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x48, 0x00, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2a, 0x0a, 0x02, 0x6f, + 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, + 0x42, 0x43, 0x4c, 0x49, 0x4d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x4f, + 0x6e, 0x48, 0x00, 0x52, 0x02, 0x6f, 0x6e, 0x12, 0x2d, 0x0a, 0x03, 0x6f, 0x66, 0x66, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, + 0x49, 0x4d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x4f, 0x66, 0x66, 0x48, + 0x00, 0x52, 0x03, 0x6f, 0x66, 0x66, 0x42, 0x09, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x22, 0x13, 0x0a, 0x11, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x4f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x42, 0x6c, 0x61, 0x6e, 0x6b, 0x22, 0x6f, 0x0a, 0x0f, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, + 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x72, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, + 0x16, 0x0a, 0x06, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x0a, 0x03, 0x61, 0x72, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x52, 0x05, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x22, 0x13, 0x0a, 0x11, 0x46, 0x44, 0x42, - 0x43, 0x4c, 0x49, 0x53, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x49, 0x6e, 0x69, 0x74, 0x22, 0x4e, - 0x0a, 0x14, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x53, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x53, - 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, - 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, - 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x22, 0x7f, - 0x0a, 0x0d, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x53, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x12, - 0x2c, 0x0a, 0x04, 0x69, 0x6e, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, - 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x53, 0x75, 0x73, 0x70, 0x65, 0x6e, - 0x64, 0x49, 0x6e, 0x69, 0x74, 0x48, 0x00, 0x52, 0x04, 0x69, 0x6e, 0x69, 0x74, 0x12, 0x35, 0x0a, - 0x07, 0x73, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, - 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x53, 0x75, 0x73, 0x70, 0x65, - 0x6e, 0x64, 0x53, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x48, 0x00, 0x52, 0x07, 0x73, 0x75, 0x73, - 0x70, 0x65, 0x6e, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, - 0xd0, 0x01, 0x0a, 0x16, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, - 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x61, - 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x74, 0x61, 0x67, 0x12, 0x30, 0x0a, 0x04, - 0x72, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, - 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x72, 0x61, 0x74, 0x65, 0x12, 0x38, - 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x75, 0x65, 0x52, 0x03, 0x61, 0x72, 0x67, 0x22, 0x73, 0x0a, 0x0c, 0x46, 0x44, 0x42, 0x43, 0x4c, + 0x49, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x0a, 0x05, 0x62, 0x6c, 0x61, 0x6e, 0x6b, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, + 0x43, 0x4c, 0x49, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x61, 0x6e, 0x6b, 0x48, 0x00, + 0x52, 0x05, 0x62, 0x6c, 0x61, 0x6e, 0x6b, 0x12, 0x28, 0x0a, 0x03, 0x61, 0x72, 0x67, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, + 0x49, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x72, 0x67, 0x48, 0x00, 0x52, 0x03, 0x61, 0x72, + 0x67, 0x42, 0x09, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x22, 0x0a, 0x20, + 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x41, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x22, 0x1e, 0x0a, 0x1c, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, + 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x47, 0x65, 0x74, + 0x22, 0x88, 0x02, 0x0a, 0x1c, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x50, 0x72, 0x6f, 0x66, 0x69, + 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, + 0x74, 0x12, 0x4a, 0x0a, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x72, 0x61, 0x74, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, + 0x42, 0x43, 0x4c, 0x49, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x48, 0x00, + 0x52, 0x0b, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x61, 0x74, 0x65, 0x12, 0x1f, 0x0a, + 0x0a, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x01, 0x48, 0x00, 0x52, 0x09, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x61, 0x74, 0x65, 0x12, 0x4a, + 0x0a, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, + 0x49, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x48, 0x01, 0x52, 0x0b, 0x64, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1f, 0x0a, 0x0a, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, + 0x52, 0x09, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x72, + 0x61, 0x74, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x22, 0x94, 0x01, 0x0a, 0x19, + 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x41, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x35, 0x0a, 0x03, 0x67, 0x65, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, + 0x43, 0x4c, 0x49, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x47, 0x65, 0x74, 0x48, 0x00, 0x52, 0x03, 0x67, 0x65, 0x74, + 0x12, 0x35, 0x0a, 0x03, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, + 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, + 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x74, + 0x48, 0x00, 0x52, 0x03, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x22, 0x19, 0x0a, 0x17, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x50, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x53, 0x0a, + 0x17, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x41, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, + 0x65, 0x73, 0x22, 0x33, 0x0a, 0x17, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x50, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x70, 0x12, 0x18, 0x0a, + 0x07, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x22, 0xf0, 0x01, 0x0a, 0x0d, 0x46, 0x44, 0x42, 0x43, + 0x4c, 0x49, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x38, 0x0a, 0x06, 0x63, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x46, 0x64, 0x62, 0x2e, + 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x41, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x06, 0x63, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x12, 0x32, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x50, 0x72, + 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x48, + 0x00, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x04, 0x66, 0x6c, 0x6f, 0x77, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, + 0x4c, 0x49, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x48, 0x00, 0x52, 0x04, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x32, 0x0a, 0x04, 0x68, + 0x65, 0x61, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x46, 0x64, 0x62, 0x2e, + 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x41, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x70, 0x48, 0x00, 0x52, 0x04, 0x68, 0x65, 0x61, 0x70, 0x42, + 0x09, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x33, 0x0a, 0x09, 0x46, 0x44, + 0x42, 0x43, 0x4c, 0x49, 0x53, 0x65, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, + 0x43, 0x0a, 0x11, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x53, 0x65, 0x74, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x41, 0x72, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, + 0x0a, 0x05, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, + 0x6c, 0x61, 0x73, 0x73, 0x22, 0x14, 0x0a, 0x12, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x53, 0x65, + 0x74, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x76, 0x0a, 0x0e, 0x46, 0x44, + 0x42, 0x43, 0x4c, 0x49, 0x53, 0x65, 0x74, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x2d, 0x0a, 0x04, + 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x46, 0x64, 0x62, + 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x53, 0x65, 0x74, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4c, + 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x03, 0x61, + 0x72, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, + 0x44, 0x42, 0x43, 0x4c, 0x49, 0x53, 0x65, 0x74, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x41, 0x72, 0x67, + 0x48, 0x00, 0x52, 0x03, 0x61, 0x72, 0x67, 0x42, 0x09, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x22, 0x27, 0x0a, 0x0b, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x53, 0x6c, 0x65, 0x65, + 0x70, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x07, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x22, 0x44, 0x0a, 0x0e, 0x46, + 0x44, 0x42, 0x43, 0x4c, 0x49, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x18, 0x0a, + 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x22, 0x42, 0x0a, 0x0c, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x32, 0x0a, 0x05, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, - 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x38, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, - 0x72, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, - 0x74, 0x79, 0x22, 0xb5, 0x01, 0x0a, 0x17, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x54, 0x68, 0x72, - 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x66, 0x12, 0x30, - 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, + 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, + 0x73, 0x74, 0x79, 0x6c, 0x65, 0x22, 0x13, 0x0a, 0x11, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x53, + 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x49, 0x6e, 0x69, 0x74, 0x22, 0x4e, 0x0a, 0x14, 0x46, 0x44, + 0x42, 0x43, 0x4c, 0x49, 0x53, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x53, 0x75, 0x73, 0x70, 0x65, + 0x6e, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x01, 0x52, 0x07, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x1c, 0x0a, 0x09, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x22, 0x7f, 0x0a, 0x0d, 0x46, 0x44, + 0x42, 0x43, 0x4c, 0x49, 0x53, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x12, 0x2c, 0x0a, 0x04, 0x69, + 0x6e, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x46, 0x64, 0x62, 0x2e, + 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x53, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x49, 0x6e, 0x69, + 0x74, 0x48, 0x00, 0x52, 0x04, 0x69, 0x6e, 0x69, 0x74, 0x12, 0x35, 0x0a, 0x07, 0x73, 0x75, 0x73, + 0x70, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x46, 0x64, 0x62, + 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x53, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x53, 0x75, + 0x73, 0x70, 0x65, 0x6e, 0x64, 0x48, 0x00, 0x52, 0x07, 0x73, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, + 0x42, 0x09, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x9b, 0x01, 0x0a, 0x1e, + 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x45, 0x6d, 0x65, 0x72, + 0x67, 0x65, 0x6e, 0x63, 0x79, 0x4d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x21, + 0x0a, 0x0c, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x2f, 0x0a, 0x13, 0x64, 0x65, 0x73, 0x74, + 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x22, 0x9c, 0x01, 0x0a, 0x1f, 0x46, 0x44, + 0x42, 0x43, 0x4c, 0x49, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x45, 0x6d, 0x65, 0x72, 0x67, 0x65, + 0x6e, 0x63, 0x79, 0x4d, 0x6f, 0x76, 0x65, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x21, 0x0a, + 0x0c, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x2f, 0x0a, 0x13, 0x64, 0x65, 0x73, 0x74, 0x69, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x22, 0x9c, 0x01, 0x0a, 0x1f, 0x46, 0x44, 0x42, + 0x43, 0x4c, 0x49, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x45, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x6e, + 0x63, 0x79, 0x4d, 0x6f, 0x76, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x12, 0x21, 0x0a, 0x0c, + 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, + 0x25, 0x0a, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x2f, 0x0a, 0x13, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x12, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x22, 0x9b, 0x01, 0x0a, 0x1e, 0x46, 0x44, 0x42, 0x43, + 0x4c, 0x49, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x45, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x6e, 0x63, + 0x79, 0x4d, 0x6f, 0x76, 0x65, 0x41, 0x62, 0x6f, 0x72, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x65, + 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x25, 0x0a, + 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x12, 0x2f, 0x0a, 0x13, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x12, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x22, 0x44, 0x0a, 0x1f, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x54, + 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x45, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x6e, 0x63, 0x79, 0x4d, 0x6f, + 0x76, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x65, 0x6e, 0x61, + 0x6e, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x22, 0xe0, 0x02, 0x0a, 0x19, + 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x45, 0x6d, 0x65, 0x72, + 0x67, 0x65, 0x6e, 0x63, 0x79, 0x4d, 0x6f, 0x76, 0x65, 0x12, 0x3b, 0x0a, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, + 0x44, 0x42, 0x43, 0x4c, 0x49, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x45, 0x6d, 0x65, 0x72, 0x67, + 0x65, 0x6e, 0x63, 0x79, 0x4d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x48, 0x00, 0x52, + 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x3e, 0x0a, 0x06, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, + 0x43, 0x4c, 0x49, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x45, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x6e, + 0x63, 0x79, 0x4d, 0x6f, 0x76, 0x65, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x48, 0x00, 0x52, 0x06, + 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x3e, 0x0a, 0x06, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, + 0x43, 0x4c, 0x49, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x45, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x6e, + 0x63, 0x79, 0x4d, 0x6f, 0x76, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x48, 0x00, 0x52, 0x06, + 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x12, 0x3b, 0x0a, 0x05, 0x61, 0x62, 0x6f, 0x72, 0x74, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, + 0x4c, 0x49, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x45, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x6e, 0x63, + 0x79, 0x4d, 0x6f, 0x76, 0x65, 0x41, 0x62, 0x6f, 0x72, 0x74, 0x48, 0x00, 0x52, 0x05, 0x61, 0x62, + 0x6f, 0x72, 0x74, 0x12, 0x3e, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, + 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x45, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x6e, 0x63, 0x79, 0x4d, + 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, 0x00, 0x52, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x42, 0x09, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xd0, + 0x01, 0x0a, 0x16, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, + 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x61, 0x67, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x74, 0x61, 0x67, 0x12, 0x30, 0x0a, 0x04, 0x72, + 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, + 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x72, 0x61, 0x74, 0x65, 0x12, 0x38, 0x0a, + 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x64, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x38, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, + 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, + 0x79, 0x22, 0xb5, 0x01, 0x0a, 0x17, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x54, 0x68, 0x72, 0x6f, + 0x74, 0x74, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x66, 0x12, 0x30, 0x0a, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, + 0x2e, 0x0a, 0x03, 0x74, 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, - 0x12, 0x2e, 0x0a, 0x03, 0x74, 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x03, 0x74, 0x61, 0x67, - 0x12, 0x38, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 0x1c, 0x0a, 0x1a, 0x46, 0x44, - 0x42, 0x43, 0x4c, 0x49, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x1d, 0x0a, 0x1b, 0x46, 0x44, 0x42, 0x43, - 0x4c, 0x49, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x80, 0x01, 0x0a, 0x18, 0x46, 0x44, 0x42, 0x43, - 0x4c, 0x49, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x4c, 0x69, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x32, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0xaa, 0x02, 0x0a, 0x0e, 0x46, - 0x44, 0x42, 0x43, 0x4c, 0x49, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x12, 0x2d, 0x0a, - 0x02, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x46, 0x64, 0x62, 0x2e, - 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x41, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x6e, 0x48, 0x00, 0x52, 0x02, 0x6f, 0x6e, 0x12, 0x30, 0x0a, 0x03, - 0x6f, 0x66, 0x66, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x46, 0x64, 0x62, 0x2e, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x03, 0x74, 0x61, 0x67, 0x12, + 0x38, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 0x1c, 0x0a, 0x1a, 0x46, 0x44, 0x42, + 0x43, 0x4c, 0x49, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x1d, 0x0a, 0x1b, 0x46, 0x44, 0x42, 0x43, 0x4c, + 0x49, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, + 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x80, 0x01, 0x0a, 0x18, 0x46, 0x44, 0x42, 0x43, 0x4c, + 0x49, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, + 0x69, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x32, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0xaa, 0x02, 0x0a, 0x0e, 0x46, 0x44, + 0x42, 0x43, 0x4c, 0x49, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x12, 0x2d, 0x0a, 0x02, + 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, + 0x44, 0x42, 0x43, 0x4c, 0x49, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x41, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x4f, 0x6e, 0x48, 0x00, 0x52, 0x02, 0x6f, 0x6e, 0x12, 0x30, 0x0a, 0x03, 0x6f, + 0x66, 0x66, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, + 0x44, 0x42, 0x43, 0x4c, 0x49, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x41, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x66, 0x48, 0x00, 0x52, 0x03, 0x6f, 0x66, 0x66, 0x12, 0x39, 0x0a, + 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, + 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, + 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x48, 0x00, + 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x3c, 0x0a, 0x07, 0x64, 0x69, 0x73, 0x61, + 0x62, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x41, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x66, 0x66, 0x48, 0x00, 0x52, 0x03, 0x6f, 0x66, 0x66, 0x12, 0x39, - 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, - 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x54, 0x68, 0x72, 0x6f, 0x74, - 0x74, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x48, - 0x00, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x3c, 0x0a, 0x07, 0x64, 0x69, 0x73, - 0x61, 0x62, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x46, 0x64, 0x62, - 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x41, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x48, 0x00, 0x52, 0x07, - 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x33, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, - 0x4c, 0x49, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x42, 0x09, 0x0a, 0x07, - 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x1c, 0x0a, 0x1a, 0x46, 0x44, 0x42, 0x43, 0x4c, - 0x49, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x64, 0x64, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x6e, - 0x66, 0x6f, 0x6c, 0x6f, 0x67, 0x22, 0x32, 0x0a, 0x0f, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x54, - 0x73, 0x73, 0x71, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x5f, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x55, 0x69, 0x64, 0x22, 0x31, 0x0a, 0x0e, 0x46, 0x44, 0x42, - 0x43, 0x4c, 0x49, 0x54, 0x73, 0x73, 0x71, 0x53, 0x74, 0x6f, 0x70, 0x12, 0x1f, 0x0a, 0x0b, 0x73, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x55, 0x69, 0x64, 0x22, 0x10, 0x0a, 0x0e, - 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x54, 0x73, 0x73, 0x71, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x9b, - 0x01, 0x0a, 0x0a, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x54, 0x73, 0x73, 0x71, 0x12, 0x2c, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x46, - 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x54, 0x73, 0x73, 0x71, 0x53, 0x74, 0x61, - 0x72, 0x74, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x29, 0x0a, 0x04, 0x73, - 0x74, 0x6f, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x46, 0x64, 0x62, 0x2e, - 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x54, 0x73, 0x73, 0x71, 0x53, 0x74, 0x6f, 0x70, 0x48, 0x00, - 0x52, 0x04, 0x73, 0x74, 0x6f, 0x70, 0x12, 0x29, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, - 0x49, 0x54, 0x73, 0x73, 0x71, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x04, 0x6c, 0x69, 0x73, - 0x74, 0x42, 0x09, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x20, 0x0a, 0x0c, - 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x10, 0x0a, 0x03, - 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x22, 0x25, - 0x0a, 0x0f, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x55, 0x73, 0x65, 0x74, 0x65, 0x6e, 0x61, 0x6e, - 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x25, 0x0a, 0x0f, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x57, - 0x72, 0x69, 0x74, 0x65, 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0x18, 0x0a, 0x16, - 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x70, 0x6f, - 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x17, 0x0a, 0x15, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, - 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x47, 0x65, 0x74, 0x22, - 0x1b, 0x0a, 0x19, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x65, 0x70, 0x6f, 0x63, 0x68, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x1a, 0x0a, 0x18, - 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x70, 0x6f, - 0x63, 0x68, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x1a, 0x0a, 0x18, 0x46, 0x44, 0x42, 0x43, - 0x4c, 0x49, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x43, 0x6f, - 0x6d, 0x6d, 0x69, 0x74, 0x22, 0x2d, 0x0a, 0x15, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x65, 0x74, 0x12, 0x14, 0x0a, - 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x65, 0x70, - 0x6f, 0x63, 0x68, 0x22, 0xe0, 0x02, 0x0a, 0x12, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x31, 0x0a, 0x04, 0x69, 0x6e, - 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, + 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x48, 0x00, 0x52, 0x07, 0x64, + 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x33, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, + 0x49, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, + 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x1c, 0x0a, 0x1a, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, + 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x64, 0x64, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x66, + 0x6f, 0x6c, 0x6f, 0x67, 0x22, 0x32, 0x0a, 0x0f, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x54, 0x73, + 0x73, 0x71, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x5f, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x55, 0x69, 0x64, 0x22, 0x31, 0x0a, 0x0e, 0x46, 0x44, 0x42, 0x43, + 0x4c, 0x49, 0x54, 0x73, 0x73, 0x71, 0x53, 0x74, 0x6f, 0x70, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x55, 0x69, 0x64, 0x22, 0x10, 0x0a, 0x0e, 0x46, + 0x44, 0x42, 0x43, 0x4c, 0x49, 0x54, 0x73, 0x73, 0x71, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x9b, 0x01, + 0x0a, 0x0a, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x54, 0x73, 0x73, 0x71, 0x12, 0x2c, 0x0a, 0x05, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x46, 0x64, + 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x54, 0x73, 0x73, 0x71, 0x53, 0x74, 0x61, 0x72, + 0x74, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x29, 0x0a, 0x04, 0x73, 0x74, + 0x6f, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, + 0x44, 0x42, 0x43, 0x4c, 0x49, 0x54, 0x73, 0x73, 0x71, 0x53, 0x74, 0x6f, 0x70, 0x48, 0x00, 0x52, + 0x04, 0x73, 0x74, 0x6f, 0x70, 0x12, 0x29, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, + 0x54, 0x73, 0x73, 0x71, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, + 0x42, 0x09, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x20, 0x0a, 0x0c, 0x46, + 0x44, 0x42, 0x43, 0x4c, 0x49, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x10, 0x0a, 0x03, 0x75, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x22, 0x25, 0x0a, + 0x0f, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x55, 0x73, 0x65, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x25, 0x0a, 0x0f, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x57, 0x72, + 0x69, 0x74, 0x65, 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0x18, 0x0a, 0x16, 0x46, + 0x44, 0x42, 0x43, 0x4c, 0x49, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x70, 0x6f, 0x63, + 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x17, 0x0a, 0x15, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x47, 0x65, 0x74, 0x22, 0x1b, + 0x0a, 0x19, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x65, + 0x70, 0x6f, 0x63, 0x68, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x1a, 0x0a, 0x18, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x70, 0x6f, 0x63, - 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x2e, 0x0a, - 0x03, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x46, 0x64, 0x62, - 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x70, - 0x6f, 0x63, 0x68, 0x47, 0x65, 0x74, 0x48, 0x00, 0x52, 0x03, 0x67, 0x65, 0x74, 0x12, 0x3a, 0x0a, - 0x07, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, - 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x56, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x48, 0x00, - 0x52, 0x07, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x37, 0x0a, 0x06, 0x65, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x46, 0x64, 0x62, 0x2e, + 0x68, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x1a, 0x0a, 0x18, 0x46, 0x44, 0x42, 0x43, 0x4c, + 0x49, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x43, 0x6f, 0x6d, + 0x6d, 0x69, 0x74, 0x22, 0x2d, 0x0a, 0x15, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x53, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, + 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x65, 0x70, 0x6f, + 0x63, 0x68, 0x22, 0xe0, 0x02, 0x0a, 0x12, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x31, 0x0a, 0x04, 0x69, 0x6e, 0x66, + 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, + 0x42, 0x43, 0x4c, 0x49, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x70, 0x6f, 0x63, 0x68, + 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x2e, 0x0a, 0x03, + 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x70, 0x6f, - 0x63, 0x68, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x48, 0x00, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x12, 0x37, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x56, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x43, 0x6f, 0x6d, 0x6d, 0x69, - 0x74, 0x48, 0x00, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x2e, 0x0a, 0x03, 0x73, - 0x65, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, + 0x63, 0x68, 0x47, 0x65, 0x74, 0x48, 0x00, 0x52, 0x03, 0x67, 0x65, 0x74, 0x12, 0x3a, 0x0a, 0x07, + 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, + 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x48, 0x00, 0x52, + 0x07, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x37, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x70, 0x6f, 0x63, - 0x68, 0x53, 0x65, 0x74, 0x48, 0x00, 0x52, 0x03, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x15, 0x0a, 0x13, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, - 0x57, 0x61, 0x69, 0x74, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x22, 0x10, 0x0a, - 0x0e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x57, 0x61, 0x69, 0x74, 0x6f, 0x70, 0x65, 0x6e, 0x22, - 0x80, 0x15, 0x0a, 0x0d, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, - 0x64, 0x12, 0x43, 0x0a, 0x0e, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x46, 0x64, 0x62, 0x2e, - 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0e, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x05, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x18, - 0x2f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, - 0x4c, 0x49, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x48, 0x00, 0x52, 0x05, 0x62, 0x65, 0x67, 0x69, 0x6e, - 0x12, 0x34, 0x0a, 0x09, 0x62, 0x6c, 0x6f, 0x62, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x29, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, - 0x42, 0x6c, 0x6f, 0x62, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x00, 0x52, 0x09, 0x62, 0x6c, 0x6f, - 0x62, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x38, 0x0a, 0x0b, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, - 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x46, 0x64, - 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x61, 0x6e, - 0x67, 0x65, 0x48, 0x00, 0x52, 0x0a, 0x63, 0x61, 0x63, 0x68, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, - 0x12, 0x37, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x18, 0x28, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, - 0x49, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0a, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x12, 0x28, 0x0a, 0x05, 0x63, 0x6c, 0x65, - 0x61, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, - 0x44, 0x42, 0x43, 0x4c, 0x49, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x48, 0x00, 0x52, 0x05, 0x63, 0x6c, - 0x65, 0x61, 0x72, 0x12, 0x37, 0x0a, 0x0a, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x72, 0x61, 0x6e, 0x67, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, - 0x42, 0x43, 0x4c, 0x49, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x00, - 0x52, 0x0a, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x2b, 0x0a, 0x06, - 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x30, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x46, - 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x48, - 0x00, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x34, 0x0a, 0x09, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x46, - 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, - 0x72, 0x65, 0x48, 0x00, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x12, - 0x49, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x63, 0x68, - 0x65, 0x63, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x46, 0x64, 0x62, 0x2e, - 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, - 0x79, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x48, 0x00, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, - 0x74, 0x65, 0x6e, 0x63, 0x79, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x3d, 0x0a, 0x0c, 0x63, 0x6f, - 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x17, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x43, 0x6f, 0x6f, - 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x48, 0x00, 0x52, 0x0c, 0x63, 0x6f, 0x6f, - 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x3d, 0x0a, 0x0c, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x17, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x12, 0x49, 0x0a, 0x10, 0x64, 0x61, 0x74, 0x61, - 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x2d, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x44, - 0x61, 0x74, 0x61, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x48, - 0x00, 0x52, 0x10, 0x64, 0x61, 0x74, 0x61, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x74, 0x65, - 0x6e, 0x61, 0x6e, 0x74, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x46, 0x64, 0x62, - 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x74, 0x65, - 0x6e, 0x61, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x74, - 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x12, 0x3d, 0x0a, 0x0c, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x74, - 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x46, 0x64, - 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x74, 0x65, - 0x6e, 0x61, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0c, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x74, 0x65, - 0x6e, 0x61, 0x6e, 0x74, 0x12, 0x2e, 0x0a, 0x07, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, - 0x4c, 0x49, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x48, 0x00, 0x52, 0x07, 0x65, 0x78, 0x63, - 0x6c, 0x75, 0x64, 0x65, 0x12, 0x51, 0x0a, 0x14, 0x65, 0x78, 0x70, 0x65, 0x6e, 0x73, 0x69, 0x76, - 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x18, 0x2c, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x45, - 0x78, 0x70, 0x65, 0x6e, 0x73, 0x69, 0x76, 0x65, 0x44, 0x61, 0x74, 0x61, 0x43, 0x68, 0x65, 0x63, - 0x6b, 0x48, 0x00, 0x52, 0x12, 0x65, 0x78, 0x70, 0x65, 0x6e, 0x73, 0x69, 0x76, 0x65, 0x44, 0x61, - 0x74, 0x61, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x40, 0x0a, 0x0d, 0x66, 0x69, 0x6c, 0x65, 0x63, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, - 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x46, 0x69, 0x6c, 0x65, 0x63, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x48, 0x00, 0x52, 0x0d, 0x66, 0x69, 0x6c, 0x65, - 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x12, 0x68, 0x0a, 0x1d, 0x66, 0x6f, 0x72, - 0x63, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x5f, 0x77, 0x69, 0x74, 0x68, - 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6c, 0x6f, 0x73, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x24, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x46, 0x6f, 0x72, - 0x63, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x57, 0x69, 0x74, 0x68, 0x44, 0x61, - 0x74, 0x61, 0x4c, 0x6f, 0x73, 0x73, 0x48, 0x00, 0x52, 0x19, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x52, - 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x57, 0x69, 0x74, 0x68, 0x44, 0x61, 0x74, 0x61, 0x4c, - 0x6f, 0x73, 0x73, 0x12, 0x22, 0x0a, 0x03, 0x67, 0x65, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0e, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x47, 0x65, 0x74, - 0x48, 0x00, 0x52, 0x03, 0x67, 0x65, 0x74, 0x12, 0x31, 0x0a, 0x08, 0x67, 0x65, 0x74, 0x72, 0x61, - 0x6e, 0x67, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x46, 0x64, 0x62, 0x2e, - 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x47, 0x65, 0x74, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x00, - 0x52, 0x08, 0x67, 0x65, 0x74, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x3d, 0x0a, 0x0c, 0x67, 0x65, - 0x74, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x17, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x47, 0x65, 0x74, - 0x72, 0x61, 0x6e, 0x67, 0x65, 0x6b, 0x65, 0x79, 0x73, 0x48, 0x00, 0x52, 0x0c, 0x67, 0x65, 0x74, - 0x72, 0x61, 0x6e, 0x67, 0x65, 0x6b, 0x65, 0x79, 0x73, 0x12, 0x34, 0x0a, 0x09, 0x67, 0x65, 0x74, - 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x46, - 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x47, 0x65, 0x74, 0x74, 0x65, 0x6e, 0x61, - 0x6e, 0x74, 0x48, 0x00, 0x52, 0x09, 0x67, 0x65, 0x74, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x12, - 0x37, 0x0a, 0x0a, 0x67, 0x65, 0x74, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0d, 0x20, + 0x68, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x48, 0x00, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x12, 0x37, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1d, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, + 0x48, 0x00, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x2e, 0x0a, 0x03, 0x73, 0x65, + 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, + 0x42, 0x43, 0x4c, 0x49, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x70, 0x6f, 0x63, 0x68, + 0x53, 0x65, 0x74, 0x48, 0x00, 0x52, 0x03, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x15, 0x0a, 0x13, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x57, + 0x61, 0x69, 0x74, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x22, 0x10, 0x0a, 0x0e, + 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x57, 0x61, 0x69, 0x74, 0x6f, 0x70, 0x65, 0x6e, 0x22, 0xd6, + 0x15, 0x0a, 0x0d, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, + 0x12, 0x43, 0x0a, 0x0e, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, + 0x44, 0x42, 0x43, 0x4c, 0x49, 0x41, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0e, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x05, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x18, 0x2f, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, + 0x49, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x48, 0x00, 0x52, 0x05, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x12, + 0x34, 0x0a, 0x09, 0x62, 0x6c, 0x6f, 0x62, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x29, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x42, + 0x6c, 0x6f, 0x62, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x00, 0x52, 0x09, 0x62, 0x6c, 0x6f, 0x62, + 0x72, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x38, 0x0a, 0x0b, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x72, + 0x61, 0x6e, 0x67, 0x65, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x46, 0x64, 0x62, + 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x61, 0x6e, 0x67, + 0x65, 0x48, 0x00, 0x52, 0x0a, 0x63, 0x61, 0x63, 0x68, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, + 0x37, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x18, 0x28, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, - 0x47, 0x65, 0x74, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0a, 0x67, 0x65, - 0x74, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x04, 0x68, 0x65, 0x6c, 0x70, - 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, - 0x43, 0x4c, 0x49, 0x48, 0x65, 0x6c, 0x70, 0x48, 0x00, 0x52, 0x04, 0x68, 0x65, 0x6c, 0x70, 0x12, - 0x2e, 0x0a, 0x07, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x12, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x49, 0x6e, 0x63, - 0x6c, 0x75, 0x64, 0x65, 0x48, 0x00, 0x52, 0x07, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x12, - 0x25, 0x0a, 0x04, 0x6b, 0x69, 0x6c, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, - 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x4b, 0x69, 0x6c, 0x6c, 0x48, 0x00, - 0x52, 0x04, 0x6b, 0x69, 0x6c, 0x6c, 0x12, 0x3a, 0x0a, 0x0b, 0x6c, 0x69, 0x73, 0x74, 0x74, 0x65, - 0x6e, 0x61, 0x6e, 0x74, 0x73, 0x18, 0x24, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x46, 0x64, - 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x4c, 0x69, 0x73, 0x74, 0x74, 0x65, 0x6e, 0x61, - 0x6e, 0x74, 0x73, 0x48, 0x00, 0x52, 0x0b, 0x6c, 0x69, 0x73, 0x74, 0x74, 0x65, 0x6e, 0x61, 0x6e, - 0x74, 0x73, 0x12, 0x25, 0x0a, 0x04, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0f, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x4c, 0x6f, 0x63, - 0x6b, 0x48, 0x00, 0x52, 0x04, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x3a, 0x0a, 0x0b, 0x6d, 0x61, 0x69, - 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, - 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x4d, 0x61, 0x69, 0x6e, 0x74, - 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x48, 0x00, 0x52, 0x0b, 0x6d, 0x61, 0x69, 0x6e, 0x74, 0x65, - 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x2b, 0x0a, 0x06, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, - 0x4c, 0x49, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x2e, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x13, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, - 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x48, 0x00, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, - 0x6c, 0x65, 0x12, 0x22, 0x0a, 0x03, 0x73, 0x65, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0e, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x53, 0x65, 0x74, 0x48, - 0x00, 0x52, 0x03, 0x73, 0x65, 0x74, 0x12, 0x31, 0x0a, 0x08, 0x73, 0x65, 0x74, 0x63, 0x6c, 0x61, - 0x73, 0x73, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, - 0x44, 0x42, 0x43, 0x4c, 0x49, 0x53, 0x65, 0x74, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x48, 0x00, 0x52, - 0x08, 0x73, 0x65, 0x74, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x31, 0x0a, 0x08, 0x73, 0x6e, 0x61, - 0x70, 0x73, 0x68, 0x6f, 0x74, 0x18, 0x27, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x46, 0x64, - 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, - 0x48, 0x00, 0x52, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x28, 0x0a, 0x05, - 0x73, 0x6c, 0x65, 0x65, 0x70, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x46, 0x64, - 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x53, 0x6c, 0x65, 0x65, 0x70, 0x48, 0x00, 0x52, - 0x05, 0x73, 0x6c, 0x65, 0x65, 0x70, 0x12, 0x2b, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, - 0x43, 0x4c, 0x49, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, 0x00, 0x52, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x2e, 0x0a, 0x07, 0x73, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x18, 0x2b, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0a, 0x63, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x66, 0x65, 0x65, 0x64, 0x12, 0x28, 0x0a, 0x05, 0x63, 0x6c, 0x65, 0x61, + 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, + 0x42, 0x43, 0x4c, 0x49, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x48, 0x00, 0x52, 0x05, 0x63, 0x6c, 0x65, + 0x61, 0x72, 0x12, 0x37, 0x0a, 0x0a, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x72, 0x61, 0x6e, 0x67, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, + 0x43, 0x4c, 0x49, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x00, 0x52, + 0x0a, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x2b, 0x0a, 0x06, 0x63, + 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x30, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x46, 0x64, + 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x48, 0x00, + 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x34, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x75, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x46, 0x64, + 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, + 0x65, 0x48, 0x00, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x12, 0x49, + 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x63, 0x68, 0x65, + 0x63, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, + 0x44, 0x42, 0x43, 0x4c, 0x49, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, + 0x63, 0x68, 0x65, 0x63, 0x6b, 0x48, 0x00, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, + 0x65, 0x6e, 0x63, 0x79, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x3d, 0x0a, 0x0c, 0x63, 0x6f, 0x6f, + 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x17, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x43, 0x6f, 0x6f, 0x72, + 0x64, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x48, 0x00, 0x52, 0x0c, 0x63, 0x6f, 0x6f, 0x72, + 0x64, 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x3d, 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, + 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x12, 0x49, 0x0a, 0x10, 0x64, 0x61, 0x74, 0x61, 0x64, + 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x2d, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1b, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x44, 0x61, + 0x74, 0x61, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, + 0x52, 0x10, 0x64, 0x61, 0x74, 0x61, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x74, 0x65, 0x6e, + 0x61, 0x6e, 0x74, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x46, 0x64, 0x62, 0x2e, + 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x74, 0x65, 0x6e, + 0x61, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x74, 0x65, + 0x6e, 0x61, 0x6e, 0x74, 0x12, 0x3d, 0x0a, 0x0c, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x74, 0x65, + 0x6e, 0x61, 0x6e, 0x74, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x46, 0x64, 0x62, + 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x74, 0x65, 0x6e, + 0x61, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0c, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x74, 0x65, 0x6e, + 0x61, 0x6e, 0x74, 0x12, 0x2e, 0x0a, 0x07, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, - 0x49, 0x53, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x48, 0x00, 0x52, 0x07, 0x73, 0x75, 0x73, 0x70, - 0x65, 0x6e, 0x64, 0x12, 0x31, 0x0a, 0x08, 0x74, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x18, - 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, - 0x4c, 0x49, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x48, 0x00, 0x52, 0x08, 0x74, 0x68, - 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x12, 0x55, 0x0a, 0x14, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, - 0x72, 0x64, 0x64, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x66, 0x6f, 0x6c, 0x6f, 0x67, 0x18, 0x19, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, - 0x49, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x64, 0x64, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x6e, - 0x66, 0x6f, 0x6c, 0x6f, 0x67, 0x48, 0x00, 0x52, 0x14, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, - 0x64, 0x64, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x66, 0x6f, 0x6c, 0x6f, 0x67, 0x12, 0x25, 0x0a, - 0x04, 0x74, 0x73, 0x73, 0x71, 0x18, 0x23, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x46, 0x64, - 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x54, 0x73, 0x73, 0x71, 0x48, 0x00, 0x52, 0x04, - 0x74, 0x73, 0x73, 0x71, 0x12, 0x2b, 0x0a, 0x06, 0x75, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x1a, + 0x49, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x48, 0x00, 0x52, 0x07, 0x65, 0x78, 0x63, 0x6c, + 0x75, 0x64, 0x65, 0x12, 0x51, 0x0a, 0x14, 0x65, 0x78, 0x70, 0x65, 0x6e, 0x73, 0x69, 0x76, 0x65, + 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x18, 0x2c, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1d, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x45, 0x78, + 0x70, 0x65, 0x6e, 0x73, 0x69, 0x76, 0x65, 0x44, 0x61, 0x74, 0x61, 0x43, 0x68, 0x65, 0x63, 0x6b, + 0x48, 0x00, 0x52, 0x12, 0x65, 0x78, 0x70, 0x65, 0x6e, 0x73, 0x69, 0x76, 0x65, 0x44, 0x61, 0x74, + 0x61, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x40, 0x0a, 0x0d, 0x66, 0x69, 0x6c, 0x65, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, + 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x46, 0x69, 0x6c, 0x65, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x48, 0x00, 0x52, 0x0d, 0x66, 0x69, 0x6c, 0x65, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x12, 0x68, 0x0a, 0x1d, 0x66, 0x6f, 0x72, 0x63, + 0x65, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, + 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6c, 0x6f, 0x73, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x24, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x46, 0x6f, 0x72, 0x63, + 0x65, 0x52, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x57, 0x69, 0x74, 0x68, 0x44, 0x61, 0x74, + 0x61, 0x4c, 0x6f, 0x73, 0x73, 0x48, 0x00, 0x52, 0x19, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x52, 0x65, + 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x57, 0x69, 0x74, 0x68, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x6f, + 0x73, 0x73, 0x12, 0x22, 0x0a, 0x03, 0x67, 0x65, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0e, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x47, 0x65, 0x74, 0x48, + 0x00, 0x52, 0x03, 0x67, 0x65, 0x74, 0x12, 0x31, 0x0a, 0x08, 0x67, 0x65, 0x74, 0x72, 0x61, 0x6e, + 0x67, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, + 0x44, 0x42, 0x43, 0x4c, 0x49, 0x47, 0x65, 0x74, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x00, 0x52, + 0x08, 0x67, 0x65, 0x74, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x3d, 0x0a, 0x0c, 0x67, 0x65, 0x74, + 0x72, 0x61, 0x6e, 0x67, 0x65, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x17, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x47, 0x65, 0x74, 0x72, + 0x61, 0x6e, 0x67, 0x65, 0x6b, 0x65, 0x79, 0x73, 0x48, 0x00, 0x52, 0x0c, 0x67, 0x65, 0x74, 0x72, + 0x61, 0x6e, 0x67, 0x65, 0x6b, 0x65, 0x79, 0x73, 0x12, 0x34, 0x0a, 0x09, 0x67, 0x65, 0x74, 0x74, + 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x46, 0x64, + 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x47, 0x65, 0x74, 0x74, 0x65, 0x6e, 0x61, 0x6e, + 0x74, 0x48, 0x00, 0x52, 0x09, 0x67, 0x65, 0x74, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x12, 0x37, + 0x0a, 0x0a, 0x67, 0x65, 0x74, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x47, + 0x65, 0x74, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0a, 0x67, 0x65, 0x74, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x04, 0x68, 0x65, 0x6c, 0x70, 0x18, + 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, + 0x4c, 0x49, 0x48, 0x65, 0x6c, 0x70, 0x48, 0x00, 0x52, 0x04, 0x68, 0x65, 0x6c, 0x70, 0x12, 0x2e, + 0x0a, 0x07, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x12, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x49, 0x6e, 0x63, 0x6c, + 0x75, 0x64, 0x65, 0x48, 0x00, 0x52, 0x07, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x12, 0x25, + 0x0a, 0x04, 0x6b, 0x69, 0x6c, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x46, + 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x4b, 0x69, 0x6c, 0x6c, 0x48, 0x00, 0x52, + 0x04, 0x6b, 0x69, 0x6c, 0x6c, 0x12, 0x3a, 0x0a, 0x0b, 0x6c, 0x69, 0x73, 0x74, 0x74, 0x65, 0x6e, + 0x61, 0x6e, 0x74, 0x73, 0x18, 0x24, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x46, 0x64, 0x62, + 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x4c, 0x69, 0x73, 0x74, 0x74, 0x65, 0x6e, 0x61, 0x6e, + 0x74, 0x73, 0x48, 0x00, 0x52, 0x0b, 0x6c, 0x69, 0x73, 0x74, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, + 0x73, 0x12, 0x25, 0x0a, 0x04, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0f, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x4c, 0x6f, 0x63, 0x6b, + 0x48, 0x00, 0x52, 0x04, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x3a, 0x0a, 0x0b, 0x6d, 0x61, 0x69, 0x6e, + 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, + 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x4d, 0x61, 0x69, 0x6e, 0x74, 0x65, + 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x48, 0x00, 0x52, 0x0b, 0x6d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, + 0x61, 0x6e, 0x63, 0x65, 0x12, 0x2b, 0x0a, 0x06, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, - 0x49, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x00, 0x52, 0x06, 0x75, 0x6e, 0x6c, 0x6f, 0x63, - 0x6b, 0x12, 0x34, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x18, 0x22, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, - 0x49, 0x55, 0x73, 0x65, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x09, 0x75, 0x73, - 0x65, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x09, 0x77, 0x72, 0x69, 0x74, 0x65, - 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x46, 0x64, 0x62, - 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x57, 0x72, 0x69, 0x74, 0x65, 0x6d, 0x6f, 0x64, 0x65, - 0x48, 0x00, 0x52, 0x09, 0x77, 0x72, 0x69, 0x74, 0x65, 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x3d, 0x0a, - 0x0c, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x2a, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, - 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x48, 0x00, 0x52, 0x0c, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x40, 0x0a, 0x0d, - 0x77, 0x61, 0x69, 0x74, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x25, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, - 0x57, 0x61, 0x69, 0x74, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x48, 0x00, 0x52, - 0x0d, 0x77, 0x61, 0x69, 0x74, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x12, 0x31, - 0x0a, 0x08, 0x77, 0x61, 0x69, 0x74, 0x6f, 0x70, 0x65, 0x6e, 0x18, 0x26, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x13, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x57, 0x61, 0x69, - 0x74, 0x6f, 0x70, 0x65, 0x6e, 0x48, 0x00, 0x52, 0x08, 0x77, 0x61, 0x69, 0x74, 0x6f, 0x70, 0x65, - 0x6e, 0x12, 0x34, 0x0a, 0x07, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x18, 0x1c, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x55, - 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x07, - 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x42, 0x09, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, - 0x6e, 0x64, 0x22, 0x15, 0x0a, 0x13, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x55, 0x6e, 0x6b, 0x6e, - 0x6f, 0x77, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xda, 0x07, 0x0a, 0x0d, 0x46, 0x44, - 0x42, 0x43, 0x4c, 0x49, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x34, 0x0a, 0x06, 0x63, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x12, 0x2c, 0x0a, 0x03, 0x6c, 0x6f, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x03, 0x6c, 0x6f, 0x67, 0x12, - 0x3f, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x63, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, - 0x12, 0x4e, 0x0a, 0x14, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, - 0x61, 0x74, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x12, 0x74, 0x6c, - 0x73, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x65, - 0x12, 0x3c, 0x0a, 0x0b, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x61, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x52, 0x09, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x3e, - 0x0a, 0x0c, 0x74, 0x6c, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x52, 0x0a, 0x74, 0x6c, 0x73, 0x4b, 0x65, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x3f, - 0x0a, 0x0c, 0x74, 0x6c, 0x73, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x52, 0x0b, 0x74, 0x6c, 0x73, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, - 0x46, 0x0a, 0x10, 0x74, 0x6c, 0x73, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x5f, 0x70, 0x65, - 0x65, 0x72, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x49, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x2e, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x13, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x50, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x48, 0x00, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, + 0x65, 0x12, 0x22, 0x0a, 0x03, 0x73, 0x65, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, + 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x53, 0x65, 0x74, 0x48, 0x00, + 0x52, 0x03, 0x73, 0x65, 0x74, 0x12, 0x31, 0x0a, 0x08, 0x73, 0x65, 0x74, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, + 0x42, 0x43, 0x4c, 0x49, 0x53, 0x65, 0x74, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x48, 0x00, 0x52, 0x08, + 0x73, 0x65, 0x74, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x31, 0x0a, 0x08, 0x73, 0x6e, 0x61, 0x70, + 0x73, 0x68, 0x6f, 0x74, 0x18, 0x27, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x46, 0x64, 0x62, + 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x48, + 0x00, 0x52, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x28, 0x0a, 0x05, 0x73, + 0x6c, 0x65, 0x65, 0x70, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x46, 0x64, 0x62, + 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x53, 0x6c, 0x65, 0x65, 0x70, 0x48, 0x00, 0x52, 0x05, + 0x73, 0x6c, 0x65, 0x65, 0x70, 0x12, 0x2b, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, + 0x4c, 0x49, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, 0x00, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x2e, 0x0a, 0x07, 0x73, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x18, 0x2b, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, + 0x53, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x48, 0x00, 0x52, 0x07, 0x73, 0x75, 0x73, 0x70, 0x65, + 0x6e, 0x64, 0x12, 0x54, 0x0a, 0x15, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x65, 0x6d, 0x65, + 0x72, 0x67, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x6d, 0x6f, 0x76, 0x65, 0x18, 0x31, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1e, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x54, 0x65, + 0x6e, 0x61, 0x6e, 0x74, 0x45, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x6e, 0x63, 0x79, 0x4d, 0x6f, 0x76, + 0x65, 0x48, 0x00, 0x52, 0x13, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x45, 0x6d, 0x65, 0x72, 0x67, + 0x65, 0x6e, 0x63, 0x79, 0x4d, 0x6f, 0x76, 0x65, 0x12, 0x31, 0x0a, 0x08, 0x74, 0x68, 0x72, 0x6f, + 0x74, 0x74, 0x6c, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x46, 0x64, 0x62, + 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x48, + 0x00, 0x52, 0x08, 0x74, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x12, 0x55, 0x0a, 0x14, 0x74, + 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x64, 0x64, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x66, 0x6f, + 0x6c, 0x6f, 0x67, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x46, 0x64, 0x62, 0x2e, + 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x64, 0x64, 0x74, + 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x66, 0x6f, 0x6c, 0x6f, 0x67, 0x48, 0x00, 0x52, 0x14, 0x74, 0x72, + 0x69, 0x67, 0x67, 0x65, 0x72, 0x64, 0x64, 0x74, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x66, 0x6f, 0x6c, + 0x6f, 0x67, 0x12, 0x25, 0x0a, 0x04, 0x74, 0x73, 0x73, 0x71, 0x18, 0x23, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0f, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x54, 0x73, 0x73, + 0x71, 0x48, 0x00, 0x52, 0x04, 0x74, 0x73, 0x73, 0x71, 0x12, 0x2b, 0x0a, 0x06, 0x75, 0x6e, 0x6c, + 0x6f, 0x63, 0x6b, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x46, 0x64, 0x62, 0x2e, + 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x00, 0x52, 0x06, + 0x75, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x34, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x74, 0x65, 0x6e, + 0x61, 0x6e, 0x74, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x46, 0x64, 0x62, 0x2e, + 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x55, 0x73, 0x65, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x48, + 0x00, 0x52, 0x09, 0x75, 0x73, 0x65, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x09, + 0x77, 0x72, 0x69, 0x74, 0x65, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x14, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x57, 0x72, 0x69, 0x74, + 0x65, 0x6d, 0x6f, 0x64, 0x65, 0x48, 0x00, 0x52, 0x09, 0x77, 0x72, 0x69, 0x74, 0x65, 0x6d, 0x6f, + 0x64, 0x65, 0x12, 0x3d, 0x0a, 0x0c, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x70, 0x6f, + 0x63, 0x68, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, + 0x44, 0x42, 0x43, 0x4c, 0x49, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x70, 0x6f, 0x63, + 0x68, 0x48, 0x00, 0x52, 0x0c, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x70, 0x6f, 0x63, + 0x68, 0x12, 0x40, 0x0a, 0x0d, 0x77, 0x61, 0x69, 0x74, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x65, 0x64, 0x18, 0x25, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, + 0x44, 0x42, 0x43, 0x4c, 0x49, 0x57, 0x61, 0x69, 0x74, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x65, 0x64, 0x48, 0x00, 0x52, 0x0d, 0x77, 0x61, 0x69, 0x74, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x65, 0x64, 0x12, 0x31, 0x0a, 0x08, 0x77, 0x61, 0x69, 0x74, 0x6f, 0x70, 0x65, 0x6e, 0x18, + 0x26, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, + 0x4c, 0x49, 0x57, 0x61, 0x69, 0x74, 0x6f, 0x70, 0x65, 0x6e, 0x48, 0x00, 0x52, 0x08, 0x77, 0x61, + 0x69, 0x74, 0x6f, 0x70, 0x65, 0x6e, 0x12, 0x34, 0x0a, 0x07, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, + 0x6e, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, + 0x42, 0x43, 0x4c, 0x49, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x48, 0x00, 0x52, 0x07, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x42, 0x09, 0x0a, 0x07, + 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x22, 0x15, 0x0a, 0x13, 0x46, 0x44, 0x42, 0x43, 0x4c, + 0x49, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xda, + 0x07, 0x0a, 0x0d, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x34, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2c, 0x0a, 0x03, 0x6c, 0x6f, 0x67, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x03, 0x6c, 0x6f, 0x67, 0x12, 0x3f, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x63, 0x65, 0x46, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x4e, 0x0a, 0x14, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, + 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x12, 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x65, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x3c, 0x0a, 0x0b, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x61, 0x5f, + 0x66, 0x69, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x74, 0x6c, 0x73, 0x43, 0x61, 0x46, + 0x69, 0x6c, 0x65, 0x12, 0x3e, 0x0a, 0x0c, 0x74, 0x6c, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x66, + 0x69, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x74, 0x6c, 0x73, 0x56, 0x65, 0x72, 0x69, - 0x66, 0x79, 0x50, 0x65, 0x65, 0x72, 0x73, 0x12, 0x37, 0x0a, 0x09, 0x64, 0x65, 0x62, 0x75, 0x67, - 0x5f, 0x74, 0x6c, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, - 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x64, 0x65, 0x62, 0x75, 0x67, 0x54, 0x6c, 0x73, - 0x12, 0x34, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x39, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x74, 0x6c, 0x73, 0x4b, 0x65, 0x79, 0x46, + 0x69, 0x6c, 0x65, 0x12, 0x3f, 0x0a, 0x0c, 0x74, 0x6c, 0x73, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, + 0x6f, 0x72, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x12, 0x37, 0x0a, 0x09, 0x6e, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0f, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x52, 0x08, 0x6e, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x34, 0x0a, 0x06, 0x6d, 0x65, - 0x6d, 0x6f, 0x72, 0x79, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, - 0x12, 0x3b, 0x0a, 0x0b, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, - 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x52, 0x0a, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x35, 0x0a, - 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, + 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x74, 0x6c, 0x73, 0x50, 0x61, 0x73, 0x73, + 0x77, 0x6f, 0x72, 0x64, 0x12, 0x46, 0x0a, 0x10, 0x74, 0x6c, 0x73, 0x5f, 0x76, 0x65, 0x72, 0x69, + 0x66, 0x79, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x74, 0x69, 0x6d, - 0x65, 0x6f, 0x75, 0x74, 0x12, 0x2e, 0x0a, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, - 0x18, 0x13, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, - 0x43, 0x4c, 0x49, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x08, 0x63, 0x6f, 0x6d, 0x6d, - 0x61, 0x6e, 0x64, 0x73, 0x4a, 0x04, 0x08, 0x0b, 0x10, 0x0c, 0x4a, 0x04, 0x08, 0x0c, 0x10, 0x0d, - 0x4a, 0x04, 0x08, 0x0d, 0x10, 0x0e, 0x22, 0x3d, 0x0a, 0x03, 0x4c, 0x6f, 0x67, 0x12, 0x1a, 0x0a, - 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x63, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x60, 0x0a, 0x14, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x16, 0x0a, - 0x06, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x73, - 0x74, 0x64, 0x6f, 0x75, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x64, 0x65, 0x72, 0x72, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x73, 0x74, 0x64, 0x65, 0x72, 0x72, 0x12, 0x18, 0x0a, - 0x07, 0x72, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, - 0x72, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x6f, 0x0a, 0x0e, 0x46, 0x44, 0x42, 0x43, 0x4c, - 0x49, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x46, 0x64, 0x62, 0x2e, - 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x1c, - 0x0a, 0x03, 0x6c, 0x6f, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x46, 0x64, - 0x62, 0x2e, 0x4c, 0x6f, 0x67, 0x48, 0x00, 0x52, 0x03, 0x6c, 0x6f, 0x67, 0x42, 0x0a, 0x0a, 0x08, - 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x45, 0x0a, 0x10, 0x46, 0x44, 0x42, 0x53, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x31, 0x0a, 0x08, - 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, - 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, - 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x22, - 0x89, 0x01, 0x0a, 0x10, 0x46, 0x44, 0x42, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6d, - 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x31, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x53, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x07, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x37, 0x0a, 0x07, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, - 0x77, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, - 0x44, 0x42, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x41, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x07, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, - 0x42, 0x09, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x22, 0x12, 0x0a, 0x10, 0x46, - 0x44, 0x42, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, - 0x18, 0x0a, 0x16, 0x46, 0x44, 0x42, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x55, 0x6e, 0x6b, 0x6e, - 0x6f, 0x77, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x5d, 0x0a, 0x11, 0x46, 0x44, 0x42, - 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, - 0x0a, 0x06, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, - 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x64, 0x65, 0x72, 0x72, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x73, 0x74, 0x64, 0x65, 0x72, 0x72, 0x12, 0x18, - 0x0a, 0x07, 0x72, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x07, 0x72, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x32, 0xa6, 0x01, 0x0a, 0x04, 0x43, 0x6f, 0x6e, - 0x66, 0x12, 0x30, 0x0a, 0x04, 0x52, 0x65, 0x61, 0x64, 0x12, 0x10, 0x2e, 0x46, 0x64, 0x62, 0x2e, - 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x46, 0x64, - 0x62, 0x2e, 0x46, 0x64, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x34, 0x0a, 0x05, 0x57, 0x72, 0x69, 0x74, 0x65, 0x12, 0x11, 0x2e, 0x46, - 0x64, 0x62, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x36, 0x0a, 0x06, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x12, 0x12, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, - 0x00, 0x32, 0x3c, 0x0a, 0x03, 0x43, 0x4c, 0x49, 0x12, 0x35, 0x0a, 0x06, 0x46, 0x44, 0x42, 0x43, - 0x4c, 0x49, 0x12, 0x12, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, - 0x43, 0x4c, 0x49, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x32, - 0x46, 0x0a, 0x06, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x3c, 0x0a, 0x09, 0x46, 0x44, 0x42, - 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x15, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, - 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, - 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x32, 0x5a, 0x30, 0x67, 0x69, 0x74, 0x68, 0x75, - 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x6e, 0x6f, 0x77, 0x66, 0x6c, 0x61, 0x6b, 0x65, 0x2d, - 0x4c, 0x61, 0x62, 0x73, 0x2f, 0x73, 0x61, 0x6e, 0x73, 0x73, 0x68, 0x65, 0x6c, 0x6c, 0x2f, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x66, 0x64, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x74, 0x6c, + 0x73, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x50, 0x65, 0x65, 0x72, 0x73, 0x12, 0x37, 0x0a, 0x09, + 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x74, 0x6c, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x64, 0x65, 0x62, + 0x75, 0x67, 0x54, 0x6c, 0x73, 0x12, 0x34, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x39, 0x0a, 0x09, 0x6c, + 0x6f, 0x67, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x6c, 0x6f, + 0x67, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x37, 0x0a, 0x09, 0x6e, 0x6f, 0x5f, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x6e, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x34, 0x0a, 0x06, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x6d, + 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x12, 0x3b, 0x0a, 0x0b, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x66, + 0x6c, 0x61, 0x67, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, + 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x46, 0x6c, 0x61, + 0x67, 0x73, 0x12, 0x35, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x12, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x2e, 0x0a, 0x08, 0x63, 0x6f, 0x6d, + 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x18, 0x13, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x46, 0x64, + 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, + 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x4a, 0x04, 0x08, 0x0b, 0x10, 0x0c, 0x4a, + 0x04, 0x08, 0x0c, 0x10, 0x0d, 0x4a, 0x04, 0x08, 0x0d, 0x10, 0x0e, 0x22, 0x3d, 0x0a, 0x03, 0x4c, + 0x6f, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, + 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x60, 0x0a, 0x14, 0x46, 0x44, + 0x42, 0x43, 0x4c, 0x49, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x06, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, + 0x64, 0x65, 0x72, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x73, 0x74, 0x64, 0x65, + 0x72, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x6f, 0x0a, 0x0e, + 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, + 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, + 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x12, 0x1c, 0x0a, 0x03, 0x6c, 0x6f, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x08, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x4c, 0x6f, 0x67, 0x48, 0x00, 0x52, 0x03, 0x6c, 0x6f, + 0x67, 0x42, 0x0a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x45, 0x0a, + 0x10, 0x46, 0x44, 0x42, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x31, 0x0a, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x53, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x08, 0x63, 0x6f, 0x6d, 0x6d, + 0x61, 0x6e, 0x64, 0x73, 0x22, 0x89, 0x01, 0x0a, 0x10, 0x46, 0x44, 0x42, 0x53, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x31, 0x0a, 0x07, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x46, 0x64, 0x62, + 0x2e, 0x46, 0x44, 0x42, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x48, 0x00, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x37, 0x0a, 0x07, + 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, + 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x55, 0x6e, 0x6b, + 0x6e, 0x6f, 0x77, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x07, 0x75, 0x6e, + 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x42, 0x09, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, + 0x22, 0x12, 0x0a, 0x10, 0x46, 0x44, 0x42, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x18, 0x0a, 0x16, 0x46, 0x44, 0x42, 0x53, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x5d, + 0x0a, 0x11, 0x46, 0x44, 0x42, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x06, 0x73, 0x74, 0x64, 0x6f, 0x75, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, + 0x74, 0x64, 0x65, 0x72, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x73, 0x74, 0x64, + 0x65, 0x72, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x32, 0xa6, 0x01, + 0x0a, 0x04, 0x43, 0x6f, 0x6e, 0x66, 0x12, 0x30, 0x0a, 0x04, 0x52, 0x65, 0x61, 0x64, 0x12, 0x10, + 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x14, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x64, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x34, 0x0a, 0x05, 0x57, 0x72, 0x69, 0x74, + 0x65, 0x12, 0x11, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x36, + 0x0a, 0x06, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x12, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, + 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x32, 0xa7, 0x01, 0x0a, 0x07, 0x46, 0x44, 0x42, 0x4d, 0x6f, + 0x76, 0x65, 0x12, 0x4c, 0x0a, 0x0f, 0x46, 0x44, 0x42, 0x4d, 0x6f, 0x76, 0x65, 0x44, 0x61, 0x74, + 0x61, 0x43, 0x6f, 0x70, 0x79, 0x12, 0x1b, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x4d, + 0x6f, 0x76, 0x65, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x70, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x4d, 0x6f, 0x76, 0x65, + 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x70, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x4e, 0x0a, 0x0f, 0x46, 0x44, 0x42, 0x4d, 0x6f, 0x76, 0x65, 0x44, 0x61, 0x74, 0x61, 0x57, + 0x61, 0x69, 0x74, 0x12, 0x1b, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x4d, 0x6f, 0x76, + 0x65, 0x44, 0x61, 0x74, 0x61, 0x57, 0x61, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1c, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x4d, 0x6f, 0x76, 0x65, 0x44, 0x61, + 0x74, 0x61, 0x57, 0x61, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, + 0x32, 0x3c, 0x0a, 0x03, 0x43, 0x4c, 0x49, 0x12, 0x35, 0x0a, 0x06, 0x46, 0x44, 0x42, 0x43, 0x4c, + 0x49, 0x12, 0x12, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, 0x4c, 0x49, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x43, + 0x4c, 0x49, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x32, 0x46, + 0x0a, 0x06, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x3c, 0x0a, 0x09, 0x46, 0x44, 0x42, 0x53, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x15, 0x2e, 0x46, 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x53, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x46, + 0x64, 0x62, 0x2e, 0x46, 0x44, 0x42, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x32, 0x5a, 0x30, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x6e, 0x6f, 0x77, 0x66, 0x6c, 0x61, 0x6b, 0x65, 0x2d, 0x4c, + 0x61, 0x62, 0x73, 0x2f, 0x73, 0x61, 0x6e, 0x73, 0x73, 0x68, 0x65, 0x6c, 0x6c, 0x2f, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x66, 0x64, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, } var ( @@ -8675,319 +9464,339 @@ func file_fdb_proto_rawDescGZIP() []byte { return file_fdb_proto_rawDescData } -var file_fdb_proto_msgTypes = make([]protoimpl.MessageInfo, 121) +var file_fdb_proto_msgTypes = make([]protoimpl.MessageInfo, 131) var file_fdb_proto_goTypes = []interface{}{ (*Location)(nil), // 0: Fdb.Location (*ReadRequest)(nil), // 1: Fdb.ReadRequest (*WriteRequest)(nil), // 2: Fdb.WriteRequest (*DeleteRequest)(nil), // 3: Fdb.DeleteRequest (*FdbConfResponse)(nil), // 4: Fdb.FdbConfResponse - (*FDBCLIAdvanceversion)(nil), // 5: Fdb.FDBCLIAdvanceversion - (*FDBCLIBegin)(nil), // 6: Fdb.FDBCLIBegin - (*FDBCLIBlobrangeStart)(nil), // 7: Fdb.FDBCLIBlobrangeStart - (*FDBCLIBlobrangeStop)(nil), // 8: Fdb.FDBCLIBlobrangeStop - (*FDBCLIBlobrange)(nil), // 9: Fdb.FDBCLIBlobrange - (*FDBCLICacheRangeSet)(nil), // 10: Fdb.FDBCLICacheRangeSet - (*FDBCLICacheRangeClear)(nil), // 11: Fdb.FDBCLICacheRangeClear - (*FDBCLICacheRange)(nil), // 12: Fdb.FDBCLICacheRange - (*FDBCLIChangefeedList)(nil), // 13: Fdb.FDBCLIChangefeedList - (*FDBCLIChangefeedRegister)(nil), // 14: Fdb.FDBCLIChangefeedRegister - (*FDBCLIChangefeedStop)(nil), // 15: Fdb.FDBCLIChangefeedStop - (*FDBCLIChangefeedDestroy)(nil), // 16: Fdb.FDBCLIChangefeedDestroy - (*FDBCLIChangefeedStreamNoVersion)(nil), // 17: Fdb.FDBCLIChangefeedStreamNoVersion - (*FDBCLIChangefeedStreamStartVersion)(nil), // 18: Fdb.FDBCLIChangefeedStreamStartVersion - (*FDBCLIChangefeedStreamStartEndVersion)(nil), // 19: Fdb.FDBCLIChangefeedStreamStartEndVersion - (*FDBCLIChangefeedStream)(nil), // 20: Fdb.FDBCLIChangefeedStream - (*FDBCLIChangefeedStreamPop)(nil), // 21: Fdb.FDBCLIChangefeedStreamPop - (*FDBCLIChangefeed)(nil), // 22: Fdb.FDBCLIChangefeed - (*FDBCLIClear)(nil), // 23: Fdb.FDBCLIClear - (*FDBCLIClearrange)(nil), // 24: Fdb.FDBCLIClearrange - (*FDBCLICommit)(nil), // 25: Fdb.FDBCLICommit - (*FDBCLIConfigure)(nil), // 26: Fdb.FDBCLIConfigure - (*FDBCLIConsistencycheck)(nil), // 27: Fdb.FDBCLIConsistencycheck - (*FDBCLICoordinatorsAuto)(nil), // 28: Fdb.FDBCLICoordinatorsAuto - (*FDBCLICoordinatorsAddresses)(nil), // 29: Fdb.FDBCLICoordinatorsAddresses - (*FDBCLICoordinators)(nil), // 30: Fdb.FDBCLICoordinators - (*FDBCLICreatetenant)(nil), // 31: Fdb.FDBCLICreatetenant - (*FDBCLIDatadistributionOn)(nil), // 32: Fdb.FDBCLIDatadistributionOn - (*FDBCLIDatadistributionOff)(nil), // 33: Fdb.FDBCLIDatadistributionOff - (*FDBCLIDatadistributionEnable)(nil), // 34: Fdb.FDBCLIDatadistributionEnable - (*FDBCLIDatadistributionDisable)(nil), // 35: Fdb.FDBCLIDatadistributionDisable - (*FDBCLIDatadistribution)(nil), // 36: Fdb.FDBCLIDatadistribution - (*FDBCLIDefaulttenant)(nil), // 37: Fdb.FDBCLIDefaulttenant - (*FDBCLIDeletetenant)(nil), // 38: Fdb.FDBCLIDeletetenant - (*FDBCLIExclude)(nil), // 39: Fdb.FDBCLIExclude - (*FDBCLIExpensiveDataCheckInit)(nil), // 40: Fdb.FDBCLIExpensiveDataCheckInit - (*FDBCLIExpensiveDataCheckList)(nil), // 41: Fdb.FDBCLIExpensiveDataCheckList - (*FDBCLIExpensiveDataCheckAll)(nil), // 42: Fdb.FDBCLIExpensiveDataCheckAll - (*FDBCLIExpensiveDataCheckCheck)(nil), // 43: Fdb.FDBCLIExpensiveDataCheckCheck - (*FDBCLIExpensiveDataCheck)(nil), // 44: Fdb.FDBCLIExpensiveDataCheck - (*FDBCLIFileconfigure)(nil), // 45: Fdb.FDBCLIFileconfigure - (*FDBCLIForceRecoveryWithDataLoss)(nil), // 46: Fdb.FDBCLIForceRecoveryWithDataLoss - (*FDBCLIGet)(nil), // 47: Fdb.FDBCLIGet - (*FDBCLIGetrange)(nil), // 48: Fdb.FDBCLIGetrange - (*FDBCLIGetrangekeys)(nil), // 49: Fdb.FDBCLIGetrangekeys - (*FDBCLIGettenant)(nil), // 50: Fdb.FDBCLIGettenant - (*FDBCLIGetversion)(nil), // 51: Fdb.FDBCLIGetversion - (*FDBCLIHelp)(nil), // 52: Fdb.FDBCLIHelp - (*FDBCLIIncludeAddresses)(nil), // 53: Fdb.FDBCLIIncludeAddresses - (*FDBCLIInclude)(nil), // 54: Fdb.FDBCLIInclude - (*FDBCLIKillInit)(nil), // 55: Fdb.FDBCLIKillInit - (*FDBCLIKillList)(nil), // 56: Fdb.FDBCLIKillList - (*FDBCLIKillAll)(nil), // 57: Fdb.FDBCLIKillAll - (*FDBCLIKillTargets)(nil), // 58: Fdb.FDBCLIKillTargets - (*FDBCLIKill)(nil), // 59: Fdb.FDBCLIKill - (*FDBCLIListtenants)(nil), // 60: Fdb.FDBCLIListtenants - (*FDBCLILock)(nil), // 61: Fdb.FDBCLILock - (*FDBCLIMaintenanceStatus)(nil), // 62: Fdb.FDBCLIMaintenanceStatus - (*FDBCLIMaintenanceOn)(nil), // 63: Fdb.FDBCLIMaintenanceOn - (*FDBCLIMaintenanceOff)(nil), // 64: Fdb.FDBCLIMaintenanceOff - (*FDBCLIMaintenance)(nil), // 65: Fdb.FDBCLIMaintenance - (*FDBCLIOptionBlank)(nil), // 66: Fdb.FDBCLIOptionBlank - (*FDBCLIOptionArg)(nil), // 67: Fdb.FDBCLIOptionArg - (*FDBCLIOption)(nil), // 68: Fdb.FDBCLIOption - (*FDBCLIProfileActionClientDefault)(nil), // 69: Fdb.FDBCLIProfileActionClientDefault - (*FDBCLIProfileActionClientGet)(nil), // 70: Fdb.FDBCLIProfileActionClientGet - (*FDBCLIProfileActionClientSet)(nil), // 71: Fdb.FDBCLIProfileActionClientSet - (*FDBCLIProfileActionClient)(nil), // 72: Fdb.FDBCLIProfileActionClient - (*FDBCLIProfileActionList)(nil), // 73: Fdb.FDBCLIProfileActionList - (*FDBCLIProfileActionFlow)(nil), // 74: Fdb.FDBCLIProfileActionFlow - (*FDBCLIProfileActionHeap)(nil), // 75: Fdb.FDBCLIProfileActionHeap - (*FDBCLIProfile)(nil), // 76: Fdb.FDBCLIProfile - (*FDBCLISet)(nil), // 77: Fdb.FDBCLISet - (*FDBCLISetclassArg)(nil), // 78: Fdb.FDBCLISetclassArg - (*FDBCLISetclassList)(nil), // 79: Fdb.FDBCLISetclassList - (*FDBCLISetclass)(nil), // 80: Fdb.FDBCLISetclass - (*FDBCLISleep)(nil), // 81: Fdb.FDBCLISleep - (*FDBCLISnapshot)(nil), // 82: Fdb.FDBCLISnapshot - (*FDBCLIStatus)(nil), // 83: Fdb.FDBCLIStatus - (*FDBCLISuspendInit)(nil), // 84: Fdb.FDBCLISuspendInit - (*FDBCLISuspendSuspend)(nil), // 85: Fdb.FDBCLISuspendSuspend - (*FDBCLISuspend)(nil), // 86: Fdb.FDBCLISuspend - (*FDBCLIThrottleActionOn)(nil), // 87: Fdb.FDBCLIThrottleActionOn - (*FDBCLIThrottleActionOff)(nil), // 88: Fdb.FDBCLIThrottleActionOff - (*FDBCLIThrottleActionEnable)(nil), // 89: Fdb.FDBCLIThrottleActionEnable - (*FDBCLIThrottleActionDisable)(nil), // 90: Fdb.FDBCLIThrottleActionDisable - (*FDBCLIThrottleActionList)(nil), // 91: Fdb.FDBCLIThrottleActionList - (*FDBCLIThrottle)(nil), // 92: Fdb.FDBCLIThrottle - (*FDBCLITriggerddteaminfolog)(nil), // 93: Fdb.FDBCLITriggerddteaminfolog - (*FDBCLITssqStart)(nil), // 94: Fdb.FDBCLITssqStart - (*FDBCLITssqStop)(nil), // 95: Fdb.FDBCLITssqStop - (*FDBCLITssqList)(nil), // 96: Fdb.FDBCLITssqList - (*FDBCLITssq)(nil), // 97: Fdb.FDBCLITssq - (*FDBCLIUnlock)(nil), // 98: Fdb.FDBCLIUnlock - (*FDBCLIUsetenant)(nil), // 99: Fdb.FDBCLIUsetenant - (*FDBCLIWritemode)(nil), // 100: Fdb.FDBCLIWritemode - (*FDBCLIVersionepochInfo)(nil), // 101: Fdb.FDBCLIVersionepochInfo - (*FDBCLIVersionepochGet)(nil), // 102: Fdb.FDBCLIVersionepochGet - (*FDBCLIVersionepochDisable)(nil), // 103: Fdb.FDBCLIVersionepochDisable - (*FDBCLIVersionepochEnable)(nil), // 104: Fdb.FDBCLIVersionepochEnable - (*FDBCLIVersionepochCommit)(nil), // 105: Fdb.FDBCLIVersionepochCommit - (*FDBCLIVersionepochSet)(nil), // 106: Fdb.FDBCLIVersionepochSet - (*FDBCLIVersionepoch)(nil), // 107: Fdb.FDBCLIVersionepoch - (*FDBCLIWaitconnected)(nil), // 108: Fdb.FDBCLIWaitconnected - (*FDBCLIWaitopen)(nil), // 109: Fdb.FDBCLIWaitopen - (*FDBCLICommand)(nil), // 110: Fdb.FDBCLICommand - (*FDBCLIUnknownAction)(nil), // 111: Fdb.FDBCLIUnknownAction - (*FDBCLIRequest)(nil), // 112: Fdb.FDBCLIRequest - (*Log)(nil), // 113: Fdb.Log - (*FDBCLIResponseOutput)(nil), // 114: Fdb.FDBCLIResponseOutput - (*FDBCLIResponse)(nil), // 115: Fdb.FDBCLIResponse - (*FDBServerRequest)(nil), // 116: Fdb.FDBServerRequest - (*FDBServerCommand)(nil), // 117: Fdb.FDBServerCommand - (*FDBServerVersion)(nil), // 118: Fdb.FDBServerVersion - (*FDBServerUnknownAction)(nil), // 119: Fdb.FDBServerUnknownAction - (*FDBServerResponse)(nil), // 120: Fdb.FDBServerResponse - (*wrapperspb.StringValue)(nil), // 121: google.protobuf.StringValue - (*wrapperspb.UInt32Value)(nil), // 122: google.protobuf.UInt32Value - (*wrapperspb.BoolValue)(nil), // 123: google.protobuf.BoolValue - (*durationpb.Duration)(nil), // 124: google.protobuf.Duration - (*wrapperspb.Int32Value)(nil), // 125: google.protobuf.Int32Value - (*emptypb.Empty)(nil), // 126: google.protobuf.Empty + (*FDBMoveDataCopyRequest)(nil), // 5: Fdb.FDBMoveDataCopyRequest + (*FDBMoveDataCopyResponse)(nil), // 6: Fdb.FDBMoveDataCopyResponse + (*FDBMoveDataWaitRequest)(nil), // 7: Fdb.FDBMoveDataWaitRequest + (*FDBMoveDataWaitResponse)(nil), // 8: Fdb.FDBMoveDataWaitResponse + (*FDBCLIAdvanceversion)(nil), // 9: Fdb.FDBCLIAdvanceversion + (*FDBCLIBegin)(nil), // 10: Fdb.FDBCLIBegin + (*FDBCLIBlobrangeStart)(nil), // 11: Fdb.FDBCLIBlobrangeStart + (*FDBCLIBlobrangeStop)(nil), // 12: Fdb.FDBCLIBlobrangeStop + (*FDBCLIBlobrange)(nil), // 13: Fdb.FDBCLIBlobrange + (*FDBCLICacheRangeSet)(nil), // 14: Fdb.FDBCLICacheRangeSet + (*FDBCLICacheRangeClear)(nil), // 15: Fdb.FDBCLICacheRangeClear + (*FDBCLICacheRange)(nil), // 16: Fdb.FDBCLICacheRange + (*FDBCLIChangefeedList)(nil), // 17: Fdb.FDBCLIChangefeedList + (*FDBCLIChangefeedRegister)(nil), // 18: Fdb.FDBCLIChangefeedRegister + (*FDBCLIChangefeedStop)(nil), // 19: Fdb.FDBCLIChangefeedStop + (*FDBCLIChangefeedDestroy)(nil), // 20: Fdb.FDBCLIChangefeedDestroy + (*FDBCLIChangefeedStreamNoVersion)(nil), // 21: Fdb.FDBCLIChangefeedStreamNoVersion + (*FDBCLIChangefeedStreamStartVersion)(nil), // 22: Fdb.FDBCLIChangefeedStreamStartVersion + (*FDBCLIChangefeedStreamStartEndVersion)(nil), // 23: Fdb.FDBCLIChangefeedStreamStartEndVersion + (*FDBCLIChangefeedStream)(nil), // 24: Fdb.FDBCLIChangefeedStream + (*FDBCLIChangefeedStreamPop)(nil), // 25: Fdb.FDBCLIChangefeedStreamPop + (*FDBCLIChangefeed)(nil), // 26: Fdb.FDBCLIChangefeed + (*FDBCLIClear)(nil), // 27: Fdb.FDBCLIClear + (*FDBCLIClearrange)(nil), // 28: Fdb.FDBCLIClearrange + (*FDBCLICommit)(nil), // 29: Fdb.FDBCLICommit + (*FDBCLIConfigure)(nil), // 30: Fdb.FDBCLIConfigure + (*FDBCLIConsistencycheck)(nil), // 31: Fdb.FDBCLIConsistencycheck + (*FDBCLICoordinatorsAuto)(nil), // 32: Fdb.FDBCLICoordinatorsAuto + (*FDBCLICoordinatorsAddresses)(nil), // 33: Fdb.FDBCLICoordinatorsAddresses + (*FDBCLICoordinators)(nil), // 34: Fdb.FDBCLICoordinators + (*FDBCLICreatetenant)(nil), // 35: Fdb.FDBCLICreatetenant + (*FDBCLIDatadistributionOn)(nil), // 36: Fdb.FDBCLIDatadistributionOn + (*FDBCLIDatadistributionOff)(nil), // 37: Fdb.FDBCLIDatadistributionOff + (*FDBCLIDatadistributionEnable)(nil), // 38: Fdb.FDBCLIDatadistributionEnable + (*FDBCLIDatadistributionDisable)(nil), // 39: Fdb.FDBCLIDatadistributionDisable + (*FDBCLIDatadistribution)(nil), // 40: Fdb.FDBCLIDatadistribution + (*FDBCLIDefaulttenant)(nil), // 41: Fdb.FDBCLIDefaulttenant + (*FDBCLIDeletetenant)(nil), // 42: Fdb.FDBCLIDeletetenant + (*FDBCLIExclude)(nil), // 43: Fdb.FDBCLIExclude + (*FDBCLIExpensiveDataCheckInit)(nil), // 44: Fdb.FDBCLIExpensiveDataCheckInit + (*FDBCLIExpensiveDataCheckList)(nil), // 45: Fdb.FDBCLIExpensiveDataCheckList + (*FDBCLIExpensiveDataCheckAll)(nil), // 46: Fdb.FDBCLIExpensiveDataCheckAll + (*FDBCLIExpensiveDataCheckCheck)(nil), // 47: Fdb.FDBCLIExpensiveDataCheckCheck + (*FDBCLIExpensiveDataCheck)(nil), // 48: Fdb.FDBCLIExpensiveDataCheck + (*FDBCLIFileconfigure)(nil), // 49: Fdb.FDBCLIFileconfigure + (*FDBCLIForceRecoveryWithDataLoss)(nil), // 50: Fdb.FDBCLIForceRecoveryWithDataLoss + (*FDBCLIGet)(nil), // 51: Fdb.FDBCLIGet + (*FDBCLIGetrange)(nil), // 52: Fdb.FDBCLIGetrange + (*FDBCLIGetrangekeys)(nil), // 53: Fdb.FDBCLIGetrangekeys + (*FDBCLIGettenant)(nil), // 54: Fdb.FDBCLIGettenant + (*FDBCLIGetversion)(nil), // 55: Fdb.FDBCLIGetversion + (*FDBCLIHelp)(nil), // 56: Fdb.FDBCLIHelp + (*FDBCLIIncludeAddresses)(nil), // 57: Fdb.FDBCLIIncludeAddresses + (*FDBCLIInclude)(nil), // 58: Fdb.FDBCLIInclude + (*FDBCLIKillInit)(nil), // 59: Fdb.FDBCLIKillInit + (*FDBCLIKillList)(nil), // 60: Fdb.FDBCLIKillList + (*FDBCLIKillAll)(nil), // 61: Fdb.FDBCLIKillAll + (*FDBCLIKillTargets)(nil), // 62: Fdb.FDBCLIKillTargets + (*FDBCLIKill)(nil), // 63: Fdb.FDBCLIKill + (*FDBCLIListtenants)(nil), // 64: Fdb.FDBCLIListtenants + (*FDBCLILock)(nil), // 65: Fdb.FDBCLILock + (*FDBCLIMaintenanceStatus)(nil), // 66: Fdb.FDBCLIMaintenanceStatus + (*FDBCLIMaintenanceOn)(nil), // 67: Fdb.FDBCLIMaintenanceOn + (*FDBCLIMaintenanceOff)(nil), // 68: Fdb.FDBCLIMaintenanceOff + (*FDBCLIMaintenance)(nil), // 69: Fdb.FDBCLIMaintenance + (*FDBCLIOptionBlank)(nil), // 70: Fdb.FDBCLIOptionBlank + (*FDBCLIOptionArg)(nil), // 71: Fdb.FDBCLIOptionArg + (*FDBCLIOption)(nil), // 72: Fdb.FDBCLIOption + (*FDBCLIProfileActionClientDefault)(nil), // 73: Fdb.FDBCLIProfileActionClientDefault + (*FDBCLIProfileActionClientGet)(nil), // 74: Fdb.FDBCLIProfileActionClientGet + (*FDBCLIProfileActionClientSet)(nil), // 75: Fdb.FDBCLIProfileActionClientSet + (*FDBCLIProfileActionClient)(nil), // 76: Fdb.FDBCLIProfileActionClient + (*FDBCLIProfileActionList)(nil), // 77: Fdb.FDBCLIProfileActionList + (*FDBCLIProfileActionFlow)(nil), // 78: Fdb.FDBCLIProfileActionFlow + (*FDBCLIProfileActionHeap)(nil), // 79: Fdb.FDBCLIProfileActionHeap + (*FDBCLIProfile)(nil), // 80: Fdb.FDBCLIProfile + (*FDBCLISet)(nil), // 81: Fdb.FDBCLISet + (*FDBCLISetclassArg)(nil), // 82: Fdb.FDBCLISetclassArg + (*FDBCLISetclassList)(nil), // 83: Fdb.FDBCLISetclassList + (*FDBCLISetclass)(nil), // 84: Fdb.FDBCLISetclass + (*FDBCLISleep)(nil), // 85: Fdb.FDBCLISleep + (*FDBCLISnapshot)(nil), // 86: Fdb.FDBCLISnapshot + (*FDBCLIStatus)(nil), // 87: Fdb.FDBCLIStatus + (*FDBCLISuspendInit)(nil), // 88: Fdb.FDBCLISuspendInit + (*FDBCLISuspendSuspend)(nil), // 89: Fdb.FDBCLISuspendSuspend + (*FDBCLISuspend)(nil), // 90: Fdb.FDBCLISuspend + (*FDBCLITenantEmergencyMoveStart)(nil), // 91: Fdb.FDBCLITenantEmergencyMoveStart + (*FDBCLITenantEmergencyMoveSwitch)(nil), // 92: Fdb.FDBCLITenantEmergencyMoveSwitch + (*FDBCLITenantEmergencyMoveFinish)(nil), // 93: Fdb.FDBCLITenantEmergencyMoveFinish + (*FDBCLITenantEmergencyMoveAbort)(nil), // 94: Fdb.FDBCLITenantEmergencyMoveAbort + (*FDBCLITenantEmergencyMoveStatus)(nil), // 95: Fdb.FDBCLITenantEmergencyMoveStatus + (*FDBCLITenantEmergencyMove)(nil), // 96: Fdb.FDBCLITenantEmergencyMove + (*FDBCLIThrottleActionOn)(nil), // 97: Fdb.FDBCLIThrottleActionOn + (*FDBCLIThrottleActionOff)(nil), // 98: Fdb.FDBCLIThrottleActionOff + (*FDBCLIThrottleActionEnable)(nil), // 99: Fdb.FDBCLIThrottleActionEnable + (*FDBCLIThrottleActionDisable)(nil), // 100: Fdb.FDBCLIThrottleActionDisable + (*FDBCLIThrottleActionList)(nil), // 101: Fdb.FDBCLIThrottleActionList + (*FDBCLIThrottle)(nil), // 102: Fdb.FDBCLIThrottle + (*FDBCLITriggerddteaminfolog)(nil), // 103: Fdb.FDBCLITriggerddteaminfolog + (*FDBCLITssqStart)(nil), // 104: Fdb.FDBCLITssqStart + (*FDBCLITssqStop)(nil), // 105: Fdb.FDBCLITssqStop + (*FDBCLITssqList)(nil), // 106: Fdb.FDBCLITssqList + (*FDBCLITssq)(nil), // 107: Fdb.FDBCLITssq + (*FDBCLIUnlock)(nil), // 108: Fdb.FDBCLIUnlock + (*FDBCLIUsetenant)(nil), // 109: Fdb.FDBCLIUsetenant + (*FDBCLIWritemode)(nil), // 110: Fdb.FDBCLIWritemode + (*FDBCLIVersionepochInfo)(nil), // 111: Fdb.FDBCLIVersionepochInfo + (*FDBCLIVersionepochGet)(nil), // 112: Fdb.FDBCLIVersionepochGet + (*FDBCLIVersionepochDisable)(nil), // 113: Fdb.FDBCLIVersionepochDisable + (*FDBCLIVersionepochEnable)(nil), // 114: Fdb.FDBCLIVersionepochEnable + (*FDBCLIVersionepochCommit)(nil), // 115: Fdb.FDBCLIVersionepochCommit + (*FDBCLIVersionepochSet)(nil), // 116: Fdb.FDBCLIVersionepochSet + (*FDBCLIVersionepoch)(nil), // 117: Fdb.FDBCLIVersionepoch + (*FDBCLIWaitconnected)(nil), // 118: Fdb.FDBCLIWaitconnected + (*FDBCLIWaitopen)(nil), // 119: Fdb.FDBCLIWaitopen + (*FDBCLICommand)(nil), // 120: Fdb.FDBCLICommand + (*FDBCLIUnknownAction)(nil), // 121: Fdb.FDBCLIUnknownAction + (*FDBCLIRequest)(nil), // 122: Fdb.FDBCLIRequest + (*Log)(nil), // 123: Fdb.Log + (*FDBCLIResponseOutput)(nil), // 124: Fdb.FDBCLIResponseOutput + (*FDBCLIResponse)(nil), // 125: Fdb.FDBCLIResponse + (*FDBServerRequest)(nil), // 126: Fdb.FDBServerRequest + (*FDBServerCommand)(nil), // 127: Fdb.FDBServerCommand + (*FDBServerVersion)(nil), // 128: Fdb.FDBServerVersion + (*FDBServerUnknownAction)(nil), // 129: Fdb.FDBServerUnknownAction + (*FDBServerResponse)(nil), // 130: Fdb.FDBServerResponse + (*wrapperspb.StringValue)(nil), // 131: google.protobuf.StringValue + (*wrapperspb.UInt32Value)(nil), // 132: google.protobuf.UInt32Value + (*wrapperspb.BoolValue)(nil), // 133: google.protobuf.BoolValue + (*durationpb.Duration)(nil), // 134: google.protobuf.Duration + (*wrapperspb.Int32Value)(nil), // 135: google.protobuf.Int32Value + (*emptypb.Empty)(nil), // 136: google.protobuf.Empty } var file_fdb_proto_depIdxs = []int32{ 0, // 0: Fdb.ReadRequest.location:type_name -> Fdb.Location 0, // 1: Fdb.WriteRequest.location:type_name -> Fdb.Location 0, // 2: Fdb.DeleteRequest.location:type_name -> Fdb.Location - 7, // 3: Fdb.FDBCLIBlobrange.start:type_name -> Fdb.FDBCLIBlobrangeStart - 8, // 4: Fdb.FDBCLIBlobrange.stop:type_name -> Fdb.FDBCLIBlobrangeStop - 10, // 5: Fdb.FDBCLICacheRange.set:type_name -> Fdb.FDBCLICacheRangeSet - 11, // 6: Fdb.FDBCLICacheRange.clear:type_name -> Fdb.FDBCLICacheRangeClear - 17, // 7: Fdb.FDBCLIChangefeedStream.no_version:type_name -> Fdb.FDBCLIChangefeedStreamNoVersion - 18, // 8: Fdb.FDBCLIChangefeedStream.start_version:type_name -> Fdb.FDBCLIChangefeedStreamStartVersion - 19, // 9: Fdb.FDBCLIChangefeedStream.start_end_version:type_name -> Fdb.FDBCLIChangefeedStreamStartEndVersion - 13, // 10: Fdb.FDBCLIChangefeed.list:type_name -> Fdb.FDBCLIChangefeedList - 14, // 11: Fdb.FDBCLIChangefeed.register:type_name -> Fdb.FDBCLIChangefeedRegister - 15, // 12: Fdb.FDBCLIChangefeed.stop:type_name -> Fdb.FDBCLIChangefeedStop - 16, // 13: Fdb.FDBCLIChangefeed.destroy:type_name -> Fdb.FDBCLIChangefeedDestroy - 20, // 14: Fdb.FDBCLIChangefeed.stream:type_name -> Fdb.FDBCLIChangefeedStream - 21, // 15: Fdb.FDBCLIChangefeed.pop:type_name -> Fdb.FDBCLIChangefeedStreamPop - 121, // 16: Fdb.FDBCLIConfigure.new_or_tss:type_name -> google.protobuf.StringValue - 121, // 17: Fdb.FDBCLIConfigure.redundancy_mode:type_name -> google.protobuf.StringValue - 121, // 18: Fdb.FDBCLIConfigure.storage_engine:type_name -> google.protobuf.StringValue - 122, // 19: Fdb.FDBCLIConfigure.grv_proxies:type_name -> google.protobuf.UInt32Value - 122, // 20: Fdb.FDBCLIConfigure.commit_proxies:type_name -> google.protobuf.UInt32Value - 122, // 21: Fdb.FDBCLIConfigure.resolvers:type_name -> google.protobuf.UInt32Value - 122, // 22: Fdb.FDBCLIConfigure.logs:type_name -> google.protobuf.UInt32Value - 122, // 23: Fdb.FDBCLIConfigure.count:type_name -> google.protobuf.UInt32Value - 122, // 24: Fdb.FDBCLIConfigure.perpetual_storage_wiggle:type_name -> google.protobuf.UInt32Value - 121, // 25: Fdb.FDBCLIConfigure.perpetual_storage_wiggle_locality:type_name -> google.protobuf.StringValue - 121, // 26: Fdb.FDBCLIConfigure.storage_migration_type:type_name -> google.protobuf.StringValue - 121, // 27: Fdb.FDBCLIConfigure.tenant_mode:type_name -> google.protobuf.StringValue - 123, // 28: Fdb.FDBCLIConsistencycheck.mode:type_name -> google.protobuf.BoolValue - 28, // 29: Fdb.FDBCLICoordinators.auto:type_name -> Fdb.FDBCLICoordinatorsAuto - 29, // 30: Fdb.FDBCLICoordinators.addresses:type_name -> Fdb.FDBCLICoordinatorsAddresses - 121, // 31: Fdb.FDBCLICoordinators.description:type_name -> google.protobuf.StringValue - 32, // 32: Fdb.FDBCLIDatadistribution.on:type_name -> Fdb.FDBCLIDatadistributionOn - 33, // 33: Fdb.FDBCLIDatadistribution.off:type_name -> Fdb.FDBCLIDatadistributionOff - 34, // 34: Fdb.FDBCLIDatadistribution.enable:type_name -> Fdb.FDBCLIDatadistributionEnable - 35, // 35: Fdb.FDBCLIDatadistribution.disable:type_name -> Fdb.FDBCLIDatadistributionDisable - 123, // 36: Fdb.FDBCLIExclude.failed:type_name -> google.protobuf.BoolValue - 123, // 37: Fdb.FDBCLIExclude.no_wait:type_name -> google.protobuf.BoolValue - 40, // 38: Fdb.FDBCLIExpensiveDataCheck.init:type_name -> Fdb.FDBCLIExpensiveDataCheckInit - 41, // 39: Fdb.FDBCLIExpensiveDataCheck.list:type_name -> Fdb.FDBCLIExpensiveDataCheckList - 42, // 40: Fdb.FDBCLIExpensiveDataCheck.all:type_name -> Fdb.FDBCLIExpensiveDataCheckAll - 43, // 41: Fdb.FDBCLIExpensiveDataCheck.check:type_name -> Fdb.FDBCLIExpensiveDataCheckCheck - 123, // 42: Fdb.FDBCLIFileconfigure.new:type_name -> google.protobuf.BoolValue - 121, // 43: Fdb.FDBCLIGetrange.end_key:type_name -> google.protobuf.StringValue - 122, // 44: Fdb.FDBCLIGetrange.limit:type_name -> google.protobuf.UInt32Value - 121, // 45: Fdb.FDBCLIGetrangekeys.end_key:type_name -> google.protobuf.StringValue - 122, // 46: Fdb.FDBCLIGetrangekeys.limit:type_name -> google.protobuf.UInt32Value - 123, // 47: Fdb.FDBCLIInclude.failed:type_name -> google.protobuf.BoolValue - 53, // 48: Fdb.FDBCLIInclude.addresses:type_name -> Fdb.FDBCLIIncludeAddresses - 55, // 49: Fdb.FDBCLIKill.init:type_name -> Fdb.FDBCLIKillInit - 56, // 50: Fdb.FDBCLIKill.list:type_name -> Fdb.FDBCLIKillList - 57, // 51: Fdb.FDBCLIKill.all:type_name -> Fdb.FDBCLIKillAll - 58, // 52: Fdb.FDBCLIKill.targets:type_name -> Fdb.FDBCLIKillTargets - 124, // 53: Fdb.FDBCLIKill.sleep:type_name -> google.protobuf.Duration - 121, // 54: Fdb.FDBCLIListtenants.begin:type_name -> google.protobuf.StringValue - 121, // 55: Fdb.FDBCLIListtenants.end:type_name -> google.protobuf.StringValue - 122, // 56: Fdb.FDBCLIListtenants.limit:type_name -> google.protobuf.UInt32Value - 62, // 57: Fdb.FDBCLIMaintenance.status:type_name -> Fdb.FDBCLIMaintenanceStatus - 63, // 58: Fdb.FDBCLIMaintenance.on:type_name -> Fdb.FDBCLIMaintenanceOn - 64, // 59: Fdb.FDBCLIMaintenance.off:type_name -> Fdb.FDBCLIMaintenanceOff - 121, // 60: Fdb.FDBCLIOptionArg.arg:type_name -> google.protobuf.StringValue - 66, // 61: Fdb.FDBCLIOption.blank:type_name -> Fdb.FDBCLIOptionBlank - 67, // 62: Fdb.FDBCLIOption.arg:type_name -> Fdb.FDBCLIOptionArg - 69, // 63: Fdb.FDBCLIProfileActionClientSet.default_rate:type_name -> Fdb.FDBCLIProfileActionClientDefault - 69, // 64: Fdb.FDBCLIProfileActionClientSet.default_size:type_name -> Fdb.FDBCLIProfileActionClientDefault - 70, // 65: Fdb.FDBCLIProfileActionClient.get:type_name -> Fdb.FDBCLIProfileActionClientGet - 71, // 66: Fdb.FDBCLIProfileActionClient.set:type_name -> Fdb.FDBCLIProfileActionClientSet - 72, // 67: Fdb.FDBCLIProfile.client:type_name -> Fdb.FDBCLIProfileActionClient - 73, // 68: Fdb.FDBCLIProfile.list:type_name -> Fdb.FDBCLIProfileActionList - 74, // 69: Fdb.FDBCLIProfile.flow:type_name -> Fdb.FDBCLIProfileActionFlow - 75, // 70: Fdb.FDBCLIProfile.heap:type_name -> Fdb.FDBCLIProfileActionHeap - 79, // 71: Fdb.FDBCLISetclass.list:type_name -> Fdb.FDBCLISetclassList - 78, // 72: Fdb.FDBCLISetclass.arg:type_name -> Fdb.FDBCLISetclassArg - 121, // 73: Fdb.FDBCLIStatus.style:type_name -> google.protobuf.StringValue - 84, // 74: Fdb.FDBCLISuspend.init:type_name -> Fdb.FDBCLISuspendInit - 85, // 75: Fdb.FDBCLISuspend.suspend:type_name -> Fdb.FDBCLISuspendSuspend - 122, // 76: Fdb.FDBCLIThrottleActionOn.rate:type_name -> google.protobuf.UInt32Value - 121, // 77: Fdb.FDBCLIThrottleActionOn.duration:type_name -> google.protobuf.StringValue - 121, // 78: Fdb.FDBCLIThrottleActionOn.priority:type_name -> google.protobuf.StringValue - 121, // 79: Fdb.FDBCLIThrottleActionOff.type:type_name -> google.protobuf.StringValue - 121, // 80: Fdb.FDBCLIThrottleActionOff.tag:type_name -> google.protobuf.StringValue - 121, // 81: Fdb.FDBCLIThrottleActionOff.priority:type_name -> google.protobuf.StringValue - 121, // 82: Fdb.FDBCLIThrottleActionList.type:type_name -> google.protobuf.StringValue - 122, // 83: Fdb.FDBCLIThrottleActionList.limit:type_name -> google.protobuf.UInt32Value - 87, // 84: Fdb.FDBCLIThrottle.on:type_name -> Fdb.FDBCLIThrottleActionOn - 88, // 85: Fdb.FDBCLIThrottle.off:type_name -> Fdb.FDBCLIThrottleActionOff - 89, // 86: Fdb.FDBCLIThrottle.enable:type_name -> Fdb.FDBCLIThrottleActionEnable - 90, // 87: Fdb.FDBCLIThrottle.disable:type_name -> Fdb.FDBCLIThrottleActionDisable - 91, // 88: Fdb.FDBCLIThrottle.list:type_name -> Fdb.FDBCLIThrottleActionList - 94, // 89: Fdb.FDBCLITssq.start:type_name -> Fdb.FDBCLITssqStart - 95, // 90: Fdb.FDBCLITssq.stop:type_name -> Fdb.FDBCLITssqStop - 96, // 91: Fdb.FDBCLITssq.list:type_name -> Fdb.FDBCLITssqList - 101, // 92: Fdb.FDBCLIVersionepoch.info:type_name -> Fdb.FDBCLIVersionepochInfo - 102, // 93: Fdb.FDBCLIVersionepoch.get:type_name -> Fdb.FDBCLIVersionepochGet - 103, // 94: Fdb.FDBCLIVersionepoch.disable:type_name -> Fdb.FDBCLIVersionepochDisable - 104, // 95: Fdb.FDBCLIVersionepoch.enable:type_name -> Fdb.FDBCLIVersionepochEnable - 105, // 96: Fdb.FDBCLIVersionepoch.commit:type_name -> Fdb.FDBCLIVersionepochCommit - 106, // 97: Fdb.FDBCLIVersionepoch.set:type_name -> Fdb.FDBCLIVersionepochSet - 5, // 98: Fdb.FDBCLICommand.advanceversion:type_name -> Fdb.FDBCLIAdvanceversion - 6, // 99: Fdb.FDBCLICommand.begin:type_name -> Fdb.FDBCLIBegin - 9, // 100: Fdb.FDBCLICommand.blobrange:type_name -> Fdb.FDBCLIBlobrange - 12, // 101: Fdb.FDBCLICommand.cache_range:type_name -> Fdb.FDBCLICacheRange - 22, // 102: Fdb.FDBCLICommand.changefeed:type_name -> Fdb.FDBCLIChangefeed - 23, // 103: Fdb.FDBCLICommand.clear:type_name -> Fdb.FDBCLIClear - 24, // 104: Fdb.FDBCLICommand.clearrange:type_name -> Fdb.FDBCLIClearrange - 25, // 105: Fdb.FDBCLICommand.commit:type_name -> Fdb.FDBCLICommit - 26, // 106: Fdb.FDBCLICommand.configure:type_name -> Fdb.FDBCLIConfigure - 27, // 107: Fdb.FDBCLICommand.consistencycheck:type_name -> Fdb.FDBCLIConsistencycheck - 30, // 108: Fdb.FDBCLICommand.coordinators:type_name -> Fdb.FDBCLICoordinators - 31, // 109: Fdb.FDBCLICommand.createtenant:type_name -> Fdb.FDBCLICreatetenant - 36, // 110: Fdb.FDBCLICommand.datadistribution:type_name -> Fdb.FDBCLIDatadistribution - 37, // 111: Fdb.FDBCLICommand.defaulttenant:type_name -> Fdb.FDBCLIDefaulttenant - 38, // 112: Fdb.FDBCLICommand.deletetenant:type_name -> Fdb.FDBCLIDeletetenant - 39, // 113: Fdb.FDBCLICommand.exclude:type_name -> Fdb.FDBCLIExclude - 44, // 114: Fdb.FDBCLICommand.expensive_data_check:type_name -> Fdb.FDBCLIExpensiveDataCheck - 45, // 115: Fdb.FDBCLICommand.fileconfigure:type_name -> Fdb.FDBCLIFileconfigure - 46, // 116: Fdb.FDBCLICommand.force_recovery_with_data_loss:type_name -> Fdb.FDBCLIForceRecoveryWithDataLoss - 47, // 117: Fdb.FDBCLICommand.get:type_name -> Fdb.FDBCLIGet - 48, // 118: Fdb.FDBCLICommand.getrange:type_name -> Fdb.FDBCLIGetrange - 49, // 119: Fdb.FDBCLICommand.getrangekeys:type_name -> Fdb.FDBCLIGetrangekeys - 50, // 120: Fdb.FDBCLICommand.gettenant:type_name -> Fdb.FDBCLIGettenant - 51, // 121: Fdb.FDBCLICommand.getversion:type_name -> Fdb.FDBCLIGetversion - 52, // 122: Fdb.FDBCLICommand.help:type_name -> Fdb.FDBCLIHelp - 54, // 123: Fdb.FDBCLICommand.include:type_name -> Fdb.FDBCLIInclude - 59, // 124: Fdb.FDBCLICommand.kill:type_name -> Fdb.FDBCLIKill - 60, // 125: Fdb.FDBCLICommand.listtenants:type_name -> Fdb.FDBCLIListtenants - 61, // 126: Fdb.FDBCLICommand.lock:type_name -> Fdb.FDBCLILock - 65, // 127: Fdb.FDBCLICommand.maintenance:type_name -> Fdb.FDBCLIMaintenance - 68, // 128: Fdb.FDBCLICommand.option:type_name -> Fdb.FDBCLIOption - 76, // 129: Fdb.FDBCLICommand.profile:type_name -> Fdb.FDBCLIProfile - 77, // 130: Fdb.FDBCLICommand.set:type_name -> Fdb.FDBCLISet - 80, // 131: Fdb.FDBCLICommand.setclass:type_name -> Fdb.FDBCLISetclass - 82, // 132: Fdb.FDBCLICommand.snapshot:type_name -> Fdb.FDBCLISnapshot - 81, // 133: Fdb.FDBCLICommand.sleep:type_name -> Fdb.FDBCLISleep - 83, // 134: Fdb.FDBCLICommand.status:type_name -> Fdb.FDBCLIStatus - 86, // 135: Fdb.FDBCLICommand.suspend:type_name -> Fdb.FDBCLISuspend - 92, // 136: Fdb.FDBCLICommand.throttle:type_name -> Fdb.FDBCLIThrottle - 93, // 137: Fdb.FDBCLICommand.triggerddteaminfolog:type_name -> Fdb.FDBCLITriggerddteaminfolog - 97, // 138: Fdb.FDBCLICommand.tssq:type_name -> Fdb.FDBCLITssq - 98, // 139: Fdb.FDBCLICommand.unlock:type_name -> Fdb.FDBCLIUnlock - 99, // 140: Fdb.FDBCLICommand.usetenant:type_name -> Fdb.FDBCLIUsetenant - 100, // 141: Fdb.FDBCLICommand.writemode:type_name -> Fdb.FDBCLIWritemode - 107, // 142: Fdb.FDBCLICommand.versionepoch:type_name -> Fdb.FDBCLIVersionepoch - 108, // 143: Fdb.FDBCLICommand.waitconnected:type_name -> Fdb.FDBCLIWaitconnected - 109, // 144: Fdb.FDBCLICommand.waitopen:type_name -> Fdb.FDBCLIWaitopen - 111, // 145: Fdb.FDBCLICommand.unknown:type_name -> Fdb.FDBCLIUnknownAction - 121, // 146: Fdb.FDBCLIRequest.config:type_name -> google.protobuf.StringValue - 123, // 147: Fdb.FDBCLIRequest.log:type_name -> google.protobuf.BoolValue - 121, // 148: Fdb.FDBCLIRequest.trace_format:type_name -> google.protobuf.StringValue - 121, // 149: Fdb.FDBCLIRequest.tls_certificate_file:type_name -> google.protobuf.StringValue - 121, // 150: Fdb.FDBCLIRequest.tls_ca_file:type_name -> google.protobuf.StringValue - 121, // 151: Fdb.FDBCLIRequest.tls_key_file:type_name -> google.protobuf.StringValue - 121, // 152: Fdb.FDBCLIRequest.tls_password:type_name -> google.protobuf.StringValue - 121, // 153: Fdb.FDBCLIRequest.tls_verify_peers:type_name -> google.protobuf.StringValue - 123, // 154: Fdb.FDBCLIRequest.debug_tls:type_name -> google.protobuf.BoolValue - 123, // 155: Fdb.FDBCLIRequest.version:type_name -> google.protobuf.BoolValue - 121, // 156: Fdb.FDBCLIRequest.log_group:type_name -> google.protobuf.StringValue - 123, // 157: Fdb.FDBCLIRequest.no_status:type_name -> google.protobuf.BoolValue - 121, // 158: Fdb.FDBCLIRequest.memory:type_name -> google.protobuf.StringValue - 123, // 159: Fdb.FDBCLIRequest.build_flags:type_name -> google.protobuf.BoolValue - 125, // 160: Fdb.FDBCLIRequest.timeout:type_name -> google.protobuf.Int32Value - 110, // 161: Fdb.FDBCLIRequest.commands:type_name -> Fdb.FDBCLICommand - 114, // 162: Fdb.FDBCLIResponse.output:type_name -> Fdb.FDBCLIResponseOutput - 113, // 163: Fdb.FDBCLIResponse.log:type_name -> Fdb.Log - 117, // 164: Fdb.FDBServerRequest.commands:type_name -> Fdb.FDBServerCommand - 118, // 165: Fdb.FDBServerCommand.version:type_name -> Fdb.FDBServerVersion - 119, // 166: Fdb.FDBServerCommand.unknown:type_name -> Fdb.FDBServerUnknownAction - 1, // 167: Fdb.Conf.Read:input_type -> Fdb.ReadRequest - 2, // 168: Fdb.Conf.Write:input_type -> Fdb.WriteRequest - 3, // 169: Fdb.Conf.Delete:input_type -> Fdb.DeleteRequest - 112, // 170: Fdb.CLI.FDBCLI:input_type -> Fdb.FDBCLIRequest - 116, // 171: Fdb.Server.FDBServer:input_type -> Fdb.FDBServerRequest - 4, // 172: Fdb.Conf.Read:output_type -> Fdb.FdbConfResponse - 126, // 173: Fdb.Conf.Write:output_type -> google.protobuf.Empty - 126, // 174: Fdb.Conf.Delete:output_type -> google.protobuf.Empty - 115, // 175: Fdb.CLI.FDBCLI:output_type -> Fdb.FDBCLIResponse - 120, // 176: Fdb.Server.FDBServer:output_type -> Fdb.FDBServerResponse - 172, // [172:177] is the sub-list for method output_type - 167, // [167:172] is the sub-list for method input_type - 167, // [167:167] is the sub-list for extension type_name - 167, // [167:167] is the sub-list for extension extendee - 0, // [0:167] is the sub-list for field type_name + 11, // 3: Fdb.FDBCLIBlobrange.start:type_name -> Fdb.FDBCLIBlobrangeStart + 12, // 4: Fdb.FDBCLIBlobrange.stop:type_name -> Fdb.FDBCLIBlobrangeStop + 14, // 5: Fdb.FDBCLICacheRange.set:type_name -> Fdb.FDBCLICacheRangeSet + 15, // 6: Fdb.FDBCLICacheRange.clear:type_name -> Fdb.FDBCLICacheRangeClear + 21, // 7: Fdb.FDBCLIChangefeedStream.no_version:type_name -> Fdb.FDBCLIChangefeedStreamNoVersion + 22, // 8: Fdb.FDBCLIChangefeedStream.start_version:type_name -> Fdb.FDBCLIChangefeedStreamStartVersion + 23, // 9: Fdb.FDBCLIChangefeedStream.start_end_version:type_name -> Fdb.FDBCLIChangefeedStreamStartEndVersion + 17, // 10: Fdb.FDBCLIChangefeed.list:type_name -> Fdb.FDBCLIChangefeedList + 18, // 11: Fdb.FDBCLIChangefeed.register:type_name -> Fdb.FDBCLIChangefeedRegister + 19, // 12: Fdb.FDBCLIChangefeed.stop:type_name -> Fdb.FDBCLIChangefeedStop + 20, // 13: Fdb.FDBCLIChangefeed.destroy:type_name -> Fdb.FDBCLIChangefeedDestroy + 24, // 14: Fdb.FDBCLIChangefeed.stream:type_name -> Fdb.FDBCLIChangefeedStream + 25, // 15: Fdb.FDBCLIChangefeed.pop:type_name -> Fdb.FDBCLIChangefeedStreamPop + 131, // 16: Fdb.FDBCLIConfigure.new_or_tss:type_name -> google.protobuf.StringValue + 131, // 17: Fdb.FDBCLIConfigure.redundancy_mode:type_name -> google.protobuf.StringValue + 131, // 18: Fdb.FDBCLIConfigure.storage_engine:type_name -> google.protobuf.StringValue + 132, // 19: Fdb.FDBCLIConfigure.grv_proxies:type_name -> google.protobuf.UInt32Value + 132, // 20: Fdb.FDBCLIConfigure.commit_proxies:type_name -> google.protobuf.UInt32Value + 132, // 21: Fdb.FDBCLIConfigure.resolvers:type_name -> google.protobuf.UInt32Value + 132, // 22: Fdb.FDBCLIConfigure.logs:type_name -> google.protobuf.UInt32Value + 132, // 23: Fdb.FDBCLIConfigure.count:type_name -> google.protobuf.UInt32Value + 132, // 24: Fdb.FDBCLIConfigure.perpetual_storage_wiggle:type_name -> google.protobuf.UInt32Value + 131, // 25: Fdb.FDBCLIConfigure.perpetual_storage_wiggle_locality:type_name -> google.protobuf.StringValue + 131, // 26: Fdb.FDBCLIConfigure.storage_migration_type:type_name -> google.protobuf.StringValue + 131, // 27: Fdb.FDBCLIConfigure.tenant_mode:type_name -> google.protobuf.StringValue + 133, // 28: Fdb.FDBCLIConsistencycheck.mode:type_name -> google.protobuf.BoolValue + 32, // 29: Fdb.FDBCLICoordinators.auto:type_name -> Fdb.FDBCLICoordinatorsAuto + 33, // 30: Fdb.FDBCLICoordinators.addresses:type_name -> Fdb.FDBCLICoordinatorsAddresses + 131, // 31: Fdb.FDBCLICoordinators.description:type_name -> google.protobuf.StringValue + 36, // 32: Fdb.FDBCLIDatadistribution.on:type_name -> Fdb.FDBCLIDatadistributionOn + 37, // 33: Fdb.FDBCLIDatadistribution.off:type_name -> Fdb.FDBCLIDatadistributionOff + 38, // 34: Fdb.FDBCLIDatadistribution.enable:type_name -> Fdb.FDBCLIDatadistributionEnable + 39, // 35: Fdb.FDBCLIDatadistribution.disable:type_name -> Fdb.FDBCLIDatadistributionDisable + 133, // 36: Fdb.FDBCLIExclude.failed:type_name -> google.protobuf.BoolValue + 133, // 37: Fdb.FDBCLIExclude.no_wait:type_name -> google.protobuf.BoolValue + 44, // 38: Fdb.FDBCLIExpensiveDataCheck.init:type_name -> Fdb.FDBCLIExpensiveDataCheckInit + 45, // 39: Fdb.FDBCLIExpensiveDataCheck.list:type_name -> Fdb.FDBCLIExpensiveDataCheckList + 46, // 40: Fdb.FDBCLIExpensiveDataCheck.all:type_name -> Fdb.FDBCLIExpensiveDataCheckAll + 47, // 41: Fdb.FDBCLIExpensiveDataCheck.check:type_name -> Fdb.FDBCLIExpensiveDataCheckCheck + 133, // 42: Fdb.FDBCLIFileconfigure.new:type_name -> google.protobuf.BoolValue + 131, // 43: Fdb.FDBCLIGetrange.end_key:type_name -> google.protobuf.StringValue + 132, // 44: Fdb.FDBCLIGetrange.limit:type_name -> google.protobuf.UInt32Value + 131, // 45: Fdb.FDBCLIGetrangekeys.end_key:type_name -> google.protobuf.StringValue + 132, // 46: Fdb.FDBCLIGetrangekeys.limit:type_name -> google.protobuf.UInt32Value + 133, // 47: Fdb.FDBCLIInclude.failed:type_name -> google.protobuf.BoolValue + 57, // 48: Fdb.FDBCLIInclude.addresses:type_name -> Fdb.FDBCLIIncludeAddresses + 59, // 49: Fdb.FDBCLIKill.init:type_name -> Fdb.FDBCLIKillInit + 60, // 50: Fdb.FDBCLIKill.list:type_name -> Fdb.FDBCLIKillList + 61, // 51: Fdb.FDBCLIKill.all:type_name -> Fdb.FDBCLIKillAll + 62, // 52: Fdb.FDBCLIKill.targets:type_name -> Fdb.FDBCLIKillTargets + 134, // 53: Fdb.FDBCLIKill.sleep:type_name -> google.protobuf.Duration + 131, // 54: Fdb.FDBCLIListtenants.begin:type_name -> google.protobuf.StringValue + 131, // 55: Fdb.FDBCLIListtenants.end:type_name -> google.protobuf.StringValue + 132, // 56: Fdb.FDBCLIListtenants.limit:type_name -> google.protobuf.UInt32Value + 66, // 57: Fdb.FDBCLIMaintenance.status:type_name -> Fdb.FDBCLIMaintenanceStatus + 67, // 58: Fdb.FDBCLIMaintenance.on:type_name -> Fdb.FDBCLIMaintenanceOn + 68, // 59: Fdb.FDBCLIMaintenance.off:type_name -> Fdb.FDBCLIMaintenanceOff + 131, // 60: Fdb.FDBCLIOptionArg.arg:type_name -> google.protobuf.StringValue + 70, // 61: Fdb.FDBCLIOption.blank:type_name -> Fdb.FDBCLIOptionBlank + 71, // 62: Fdb.FDBCLIOption.arg:type_name -> Fdb.FDBCLIOptionArg + 73, // 63: Fdb.FDBCLIProfileActionClientSet.default_rate:type_name -> Fdb.FDBCLIProfileActionClientDefault + 73, // 64: Fdb.FDBCLIProfileActionClientSet.default_size:type_name -> Fdb.FDBCLIProfileActionClientDefault + 74, // 65: Fdb.FDBCLIProfileActionClient.get:type_name -> Fdb.FDBCLIProfileActionClientGet + 75, // 66: Fdb.FDBCLIProfileActionClient.set:type_name -> Fdb.FDBCLIProfileActionClientSet + 76, // 67: Fdb.FDBCLIProfile.client:type_name -> Fdb.FDBCLIProfileActionClient + 77, // 68: Fdb.FDBCLIProfile.list:type_name -> Fdb.FDBCLIProfileActionList + 78, // 69: Fdb.FDBCLIProfile.flow:type_name -> Fdb.FDBCLIProfileActionFlow + 79, // 70: Fdb.FDBCLIProfile.heap:type_name -> Fdb.FDBCLIProfileActionHeap + 83, // 71: Fdb.FDBCLISetclass.list:type_name -> Fdb.FDBCLISetclassList + 82, // 72: Fdb.FDBCLISetclass.arg:type_name -> Fdb.FDBCLISetclassArg + 131, // 73: Fdb.FDBCLIStatus.style:type_name -> google.protobuf.StringValue + 88, // 74: Fdb.FDBCLISuspend.init:type_name -> Fdb.FDBCLISuspendInit + 89, // 75: Fdb.FDBCLISuspend.suspend:type_name -> Fdb.FDBCLISuspendSuspend + 91, // 76: Fdb.FDBCLITenantEmergencyMove.start:type_name -> Fdb.FDBCLITenantEmergencyMoveStart + 92, // 77: Fdb.FDBCLITenantEmergencyMove.switch:type_name -> Fdb.FDBCLITenantEmergencyMoveSwitch + 93, // 78: Fdb.FDBCLITenantEmergencyMove.finish:type_name -> Fdb.FDBCLITenantEmergencyMoveFinish + 94, // 79: Fdb.FDBCLITenantEmergencyMove.abort:type_name -> Fdb.FDBCLITenantEmergencyMoveAbort + 95, // 80: Fdb.FDBCLITenantEmergencyMove.status:type_name -> Fdb.FDBCLITenantEmergencyMoveStatus + 132, // 81: Fdb.FDBCLIThrottleActionOn.rate:type_name -> google.protobuf.UInt32Value + 131, // 82: Fdb.FDBCLIThrottleActionOn.duration:type_name -> google.protobuf.StringValue + 131, // 83: Fdb.FDBCLIThrottleActionOn.priority:type_name -> google.protobuf.StringValue + 131, // 84: Fdb.FDBCLIThrottleActionOff.type:type_name -> google.protobuf.StringValue + 131, // 85: Fdb.FDBCLIThrottleActionOff.tag:type_name -> google.protobuf.StringValue + 131, // 86: Fdb.FDBCLIThrottleActionOff.priority:type_name -> google.protobuf.StringValue + 131, // 87: Fdb.FDBCLIThrottleActionList.type:type_name -> google.protobuf.StringValue + 132, // 88: Fdb.FDBCLIThrottleActionList.limit:type_name -> google.protobuf.UInt32Value + 97, // 89: Fdb.FDBCLIThrottle.on:type_name -> Fdb.FDBCLIThrottleActionOn + 98, // 90: Fdb.FDBCLIThrottle.off:type_name -> Fdb.FDBCLIThrottleActionOff + 99, // 91: Fdb.FDBCLIThrottle.enable:type_name -> Fdb.FDBCLIThrottleActionEnable + 100, // 92: Fdb.FDBCLIThrottle.disable:type_name -> Fdb.FDBCLIThrottleActionDisable + 101, // 93: Fdb.FDBCLIThrottle.list:type_name -> Fdb.FDBCLIThrottleActionList + 104, // 94: Fdb.FDBCLITssq.start:type_name -> Fdb.FDBCLITssqStart + 105, // 95: Fdb.FDBCLITssq.stop:type_name -> Fdb.FDBCLITssqStop + 106, // 96: Fdb.FDBCLITssq.list:type_name -> Fdb.FDBCLITssqList + 111, // 97: Fdb.FDBCLIVersionepoch.info:type_name -> Fdb.FDBCLIVersionepochInfo + 112, // 98: Fdb.FDBCLIVersionepoch.get:type_name -> Fdb.FDBCLIVersionepochGet + 113, // 99: Fdb.FDBCLIVersionepoch.disable:type_name -> Fdb.FDBCLIVersionepochDisable + 114, // 100: Fdb.FDBCLIVersionepoch.enable:type_name -> Fdb.FDBCLIVersionepochEnable + 115, // 101: Fdb.FDBCLIVersionepoch.commit:type_name -> Fdb.FDBCLIVersionepochCommit + 116, // 102: Fdb.FDBCLIVersionepoch.set:type_name -> Fdb.FDBCLIVersionepochSet + 9, // 103: Fdb.FDBCLICommand.advanceversion:type_name -> Fdb.FDBCLIAdvanceversion + 10, // 104: Fdb.FDBCLICommand.begin:type_name -> Fdb.FDBCLIBegin + 13, // 105: Fdb.FDBCLICommand.blobrange:type_name -> Fdb.FDBCLIBlobrange + 16, // 106: Fdb.FDBCLICommand.cache_range:type_name -> Fdb.FDBCLICacheRange + 26, // 107: Fdb.FDBCLICommand.changefeed:type_name -> Fdb.FDBCLIChangefeed + 27, // 108: Fdb.FDBCLICommand.clear:type_name -> Fdb.FDBCLIClear + 28, // 109: Fdb.FDBCLICommand.clearrange:type_name -> Fdb.FDBCLIClearrange + 29, // 110: Fdb.FDBCLICommand.commit:type_name -> Fdb.FDBCLICommit + 30, // 111: Fdb.FDBCLICommand.configure:type_name -> Fdb.FDBCLIConfigure + 31, // 112: Fdb.FDBCLICommand.consistencycheck:type_name -> Fdb.FDBCLIConsistencycheck + 34, // 113: Fdb.FDBCLICommand.coordinators:type_name -> Fdb.FDBCLICoordinators + 35, // 114: Fdb.FDBCLICommand.createtenant:type_name -> Fdb.FDBCLICreatetenant + 40, // 115: Fdb.FDBCLICommand.datadistribution:type_name -> Fdb.FDBCLIDatadistribution + 41, // 116: Fdb.FDBCLICommand.defaulttenant:type_name -> Fdb.FDBCLIDefaulttenant + 42, // 117: Fdb.FDBCLICommand.deletetenant:type_name -> Fdb.FDBCLIDeletetenant + 43, // 118: Fdb.FDBCLICommand.exclude:type_name -> Fdb.FDBCLIExclude + 48, // 119: Fdb.FDBCLICommand.expensive_data_check:type_name -> Fdb.FDBCLIExpensiveDataCheck + 49, // 120: Fdb.FDBCLICommand.fileconfigure:type_name -> Fdb.FDBCLIFileconfigure + 50, // 121: Fdb.FDBCLICommand.force_recovery_with_data_loss:type_name -> Fdb.FDBCLIForceRecoveryWithDataLoss + 51, // 122: Fdb.FDBCLICommand.get:type_name -> Fdb.FDBCLIGet + 52, // 123: Fdb.FDBCLICommand.getrange:type_name -> Fdb.FDBCLIGetrange + 53, // 124: Fdb.FDBCLICommand.getrangekeys:type_name -> Fdb.FDBCLIGetrangekeys + 54, // 125: Fdb.FDBCLICommand.gettenant:type_name -> Fdb.FDBCLIGettenant + 55, // 126: Fdb.FDBCLICommand.getversion:type_name -> Fdb.FDBCLIGetversion + 56, // 127: Fdb.FDBCLICommand.help:type_name -> Fdb.FDBCLIHelp + 58, // 128: Fdb.FDBCLICommand.include:type_name -> Fdb.FDBCLIInclude + 63, // 129: Fdb.FDBCLICommand.kill:type_name -> Fdb.FDBCLIKill + 64, // 130: Fdb.FDBCLICommand.listtenants:type_name -> Fdb.FDBCLIListtenants + 65, // 131: Fdb.FDBCLICommand.lock:type_name -> Fdb.FDBCLILock + 69, // 132: Fdb.FDBCLICommand.maintenance:type_name -> Fdb.FDBCLIMaintenance + 72, // 133: Fdb.FDBCLICommand.option:type_name -> Fdb.FDBCLIOption + 80, // 134: Fdb.FDBCLICommand.profile:type_name -> Fdb.FDBCLIProfile + 81, // 135: Fdb.FDBCLICommand.set:type_name -> Fdb.FDBCLISet + 84, // 136: Fdb.FDBCLICommand.setclass:type_name -> Fdb.FDBCLISetclass + 86, // 137: Fdb.FDBCLICommand.snapshot:type_name -> Fdb.FDBCLISnapshot + 85, // 138: Fdb.FDBCLICommand.sleep:type_name -> Fdb.FDBCLISleep + 87, // 139: Fdb.FDBCLICommand.status:type_name -> Fdb.FDBCLIStatus + 90, // 140: Fdb.FDBCLICommand.suspend:type_name -> Fdb.FDBCLISuspend + 96, // 141: Fdb.FDBCLICommand.tenant_emergency_move:type_name -> Fdb.FDBCLITenantEmergencyMove + 102, // 142: Fdb.FDBCLICommand.throttle:type_name -> Fdb.FDBCLIThrottle + 103, // 143: Fdb.FDBCLICommand.triggerddteaminfolog:type_name -> Fdb.FDBCLITriggerddteaminfolog + 107, // 144: Fdb.FDBCLICommand.tssq:type_name -> Fdb.FDBCLITssq + 108, // 145: Fdb.FDBCLICommand.unlock:type_name -> Fdb.FDBCLIUnlock + 109, // 146: Fdb.FDBCLICommand.usetenant:type_name -> Fdb.FDBCLIUsetenant + 110, // 147: Fdb.FDBCLICommand.writemode:type_name -> Fdb.FDBCLIWritemode + 117, // 148: Fdb.FDBCLICommand.versionepoch:type_name -> Fdb.FDBCLIVersionepoch + 118, // 149: Fdb.FDBCLICommand.waitconnected:type_name -> Fdb.FDBCLIWaitconnected + 119, // 150: Fdb.FDBCLICommand.waitopen:type_name -> Fdb.FDBCLIWaitopen + 121, // 151: Fdb.FDBCLICommand.unknown:type_name -> Fdb.FDBCLIUnknownAction + 131, // 152: Fdb.FDBCLIRequest.config:type_name -> google.protobuf.StringValue + 133, // 153: Fdb.FDBCLIRequest.log:type_name -> google.protobuf.BoolValue + 131, // 154: Fdb.FDBCLIRequest.trace_format:type_name -> google.protobuf.StringValue + 131, // 155: Fdb.FDBCLIRequest.tls_certificate_file:type_name -> google.protobuf.StringValue + 131, // 156: Fdb.FDBCLIRequest.tls_ca_file:type_name -> google.protobuf.StringValue + 131, // 157: Fdb.FDBCLIRequest.tls_key_file:type_name -> google.protobuf.StringValue + 131, // 158: Fdb.FDBCLIRequest.tls_password:type_name -> google.protobuf.StringValue + 131, // 159: Fdb.FDBCLIRequest.tls_verify_peers:type_name -> google.protobuf.StringValue + 133, // 160: Fdb.FDBCLIRequest.debug_tls:type_name -> google.protobuf.BoolValue + 133, // 161: Fdb.FDBCLIRequest.version:type_name -> google.protobuf.BoolValue + 131, // 162: Fdb.FDBCLIRequest.log_group:type_name -> google.protobuf.StringValue + 133, // 163: Fdb.FDBCLIRequest.no_status:type_name -> google.protobuf.BoolValue + 131, // 164: Fdb.FDBCLIRequest.memory:type_name -> google.protobuf.StringValue + 133, // 165: Fdb.FDBCLIRequest.build_flags:type_name -> google.protobuf.BoolValue + 135, // 166: Fdb.FDBCLIRequest.timeout:type_name -> google.protobuf.Int32Value + 120, // 167: Fdb.FDBCLIRequest.commands:type_name -> Fdb.FDBCLICommand + 124, // 168: Fdb.FDBCLIResponse.output:type_name -> Fdb.FDBCLIResponseOutput + 123, // 169: Fdb.FDBCLIResponse.log:type_name -> Fdb.Log + 127, // 170: Fdb.FDBServerRequest.commands:type_name -> Fdb.FDBServerCommand + 128, // 171: Fdb.FDBServerCommand.version:type_name -> Fdb.FDBServerVersion + 129, // 172: Fdb.FDBServerCommand.unknown:type_name -> Fdb.FDBServerUnknownAction + 1, // 173: Fdb.Conf.Read:input_type -> Fdb.ReadRequest + 2, // 174: Fdb.Conf.Write:input_type -> Fdb.WriteRequest + 3, // 175: Fdb.Conf.Delete:input_type -> Fdb.DeleteRequest + 5, // 176: Fdb.FDBMove.FDBMoveDataCopy:input_type -> Fdb.FDBMoveDataCopyRequest + 7, // 177: Fdb.FDBMove.FDBMoveDataWait:input_type -> Fdb.FDBMoveDataWaitRequest + 122, // 178: Fdb.CLI.FDBCLI:input_type -> Fdb.FDBCLIRequest + 126, // 179: Fdb.Server.FDBServer:input_type -> Fdb.FDBServerRequest + 4, // 180: Fdb.Conf.Read:output_type -> Fdb.FdbConfResponse + 136, // 181: Fdb.Conf.Write:output_type -> google.protobuf.Empty + 136, // 182: Fdb.Conf.Delete:output_type -> google.protobuf.Empty + 6, // 183: Fdb.FDBMove.FDBMoveDataCopy:output_type -> Fdb.FDBMoveDataCopyResponse + 8, // 184: Fdb.FDBMove.FDBMoveDataWait:output_type -> Fdb.FDBMoveDataWaitResponse + 125, // 185: Fdb.CLI.FDBCLI:output_type -> Fdb.FDBCLIResponse + 130, // 186: Fdb.Server.FDBServer:output_type -> Fdb.FDBServerResponse + 180, // [180:187] is the sub-list for method output_type + 173, // [173:180] is the sub-list for method input_type + 173, // [173:173] is the sub-list for extension type_name + 173, // [173:173] is the sub-list for extension extendee + 0, // [0:173] is the sub-list for field type_name } func init() { file_fdb_proto_init() } @@ -9057,7 +9866,7 @@ func file_fdb_proto_init() { } } file_fdb_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FDBCLIAdvanceversion); i { + switch v := v.(*FDBMoveDataCopyRequest); i { case 0: return &v.state case 1: @@ -9069,7 +9878,7 @@ func file_fdb_proto_init() { } } file_fdb_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FDBCLIBegin); i { + switch v := v.(*FDBMoveDataCopyResponse); i { case 0: return &v.state case 1: @@ -9081,7 +9890,7 @@ func file_fdb_proto_init() { } } file_fdb_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FDBCLIBlobrangeStart); i { + switch v := v.(*FDBMoveDataWaitRequest); i { case 0: return &v.state case 1: @@ -9093,7 +9902,7 @@ func file_fdb_proto_init() { } } file_fdb_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FDBCLIBlobrangeStop); i { + switch v := v.(*FDBMoveDataWaitResponse); i { case 0: return &v.state case 1: @@ -9105,7 +9914,7 @@ func file_fdb_proto_init() { } } file_fdb_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FDBCLIBlobrange); i { + switch v := v.(*FDBCLIAdvanceversion); i { case 0: return &v.state case 1: @@ -9117,7 +9926,7 @@ func file_fdb_proto_init() { } } file_fdb_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FDBCLICacheRangeSet); i { + switch v := v.(*FDBCLIBegin); i { case 0: return &v.state case 1: @@ -9129,7 +9938,7 @@ func file_fdb_proto_init() { } } file_fdb_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FDBCLICacheRangeClear); i { + switch v := v.(*FDBCLIBlobrangeStart); i { case 0: return &v.state case 1: @@ -9141,7 +9950,7 @@ func file_fdb_proto_init() { } } file_fdb_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FDBCLICacheRange); i { + switch v := v.(*FDBCLIBlobrangeStop); i { case 0: return &v.state case 1: @@ -9153,7 +9962,7 @@ func file_fdb_proto_init() { } } file_fdb_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FDBCLIChangefeedList); i { + switch v := v.(*FDBCLIBlobrange); i { case 0: return &v.state case 1: @@ -9165,7 +9974,7 @@ func file_fdb_proto_init() { } } file_fdb_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FDBCLIChangefeedRegister); i { + switch v := v.(*FDBCLICacheRangeSet); i { case 0: return &v.state case 1: @@ -9177,7 +9986,7 @@ func file_fdb_proto_init() { } } file_fdb_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FDBCLIChangefeedStop); i { + switch v := v.(*FDBCLICacheRangeClear); i { case 0: return &v.state case 1: @@ -9189,7 +9998,7 @@ func file_fdb_proto_init() { } } file_fdb_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FDBCLIChangefeedDestroy); i { + switch v := v.(*FDBCLICacheRange); i { case 0: return &v.state case 1: @@ -9201,7 +10010,7 @@ func file_fdb_proto_init() { } } file_fdb_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FDBCLIChangefeedStreamNoVersion); i { + switch v := v.(*FDBCLIChangefeedList); i { case 0: return &v.state case 1: @@ -9213,7 +10022,7 @@ func file_fdb_proto_init() { } } file_fdb_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FDBCLIChangefeedStreamStartVersion); i { + switch v := v.(*FDBCLIChangefeedRegister); i { case 0: return &v.state case 1: @@ -9225,7 +10034,7 @@ func file_fdb_proto_init() { } } file_fdb_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FDBCLIChangefeedStreamStartEndVersion); i { + switch v := v.(*FDBCLIChangefeedStop); i { case 0: return &v.state case 1: @@ -9237,7 +10046,7 @@ func file_fdb_proto_init() { } } file_fdb_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FDBCLIChangefeedStream); i { + switch v := v.(*FDBCLIChangefeedDestroy); i { case 0: return &v.state case 1: @@ -9249,7 +10058,7 @@ func file_fdb_proto_init() { } } file_fdb_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FDBCLIChangefeedStreamPop); i { + switch v := v.(*FDBCLIChangefeedStreamNoVersion); i { case 0: return &v.state case 1: @@ -9261,7 +10070,7 @@ func file_fdb_proto_init() { } } file_fdb_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FDBCLIChangefeed); i { + switch v := v.(*FDBCLIChangefeedStreamStartVersion); i { case 0: return &v.state case 1: @@ -9273,7 +10082,7 @@ func file_fdb_proto_init() { } } file_fdb_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FDBCLIClear); i { + switch v := v.(*FDBCLIChangefeedStreamStartEndVersion); i { case 0: return &v.state case 1: @@ -9285,7 +10094,7 @@ func file_fdb_proto_init() { } } file_fdb_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FDBCLIClearrange); i { + switch v := v.(*FDBCLIChangefeedStream); i { case 0: return &v.state case 1: @@ -9297,7 +10106,7 @@ func file_fdb_proto_init() { } } file_fdb_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FDBCLICommit); i { + switch v := v.(*FDBCLIChangefeedStreamPop); i { case 0: return &v.state case 1: @@ -9309,6 +10118,54 @@ func file_fdb_proto_init() { } } file_fdb_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FDBCLIChangefeed); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_fdb_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FDBCLIClear); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_fdb_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FDBCLIClearrange); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_fdb_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FDBCLICommit); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_fdb_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLIConfigure); i { case 0: return &v.state @@ -9320,7 +10177,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLIConsistencycheck); i { case 0: return &v.state @@ -9332,7 +10189,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLICoordinatorsAuto); i { case 0: return &v.state @@ -9344,7 +10201,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLICoordinatorsAddresses); i { case 0: return &v.state @@ -9356,7 +10213,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLICoordinators); i { case 0: return &v.state @@ -9368,7 +10225,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLICreatetenant); i { case 0: return &v.state @@ -9380,7 +10237,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLIDatadistributionOn); i { case 0: return &v.state @@ -9392,7 +10249,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLIDatadistributionOff); i { case 0: return &v.state @@ -9404,7 +10261,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLIDatadistributionEnable); i { case 0: return &v.state @@ -9416,7 +10273,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLIDatadistributionDisable); i { case 0: return &v.state @@ -9428,7 +10285,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLIDatadistribution); i { case 0: return &v.state @@ -9440,7 +10297,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLIDefaulttenant); i { case 0: return &v.state @@ -9452,7 +10309,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLIDeletetenant); i { case 0: return &v.state @@ -9464,7 +10321,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLIExclude); i { case 0: return &v.state @@ -9476,7 +10333,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLIExpensiveDataCheckInit); i { case 0: return &v.state @@ -9488,7 +10345,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLIExpensiveDataCheckList); i { case 0: return &v.state @@ -9500,7 +10357,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLIExpensiveDataCheckAll); i { case 0: return &v.state @@ -9512,7 +10369,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLIExpensiveDataCheckCheck); i { case 0: return &v.state @@ -9524,7 +10381,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLIExpensiveDataCheck); i { case 0: return &v.state @@ -9536,7 +10393,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLIFileconfigure); i { case 0: return &v.state @@ -9548,7 +10405,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLIForceRecoveryWithDataLoss); i { case 0: return &v.state @@ -9560,7 +10417,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLIGet); i { case 0: return &v.state @@ -9572,7 +10429,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLIGetrange); i { case 0: return &v.state @@ -9584,7 +10441,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLIGetrangekeys); i { case 0: return &v.state @@ -9596,7 +10453,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLIGettenant); i { case 0: return &v.state @@ -9608,7 +10465,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLIGetversion); i { case 0: return &v.state @@ -9620,7 +10477,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLIHelp); i { case 0: return &v.state @@ -9632,7 +10489,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLIIncludeAddresses); i { case 0: return &v.state @@ -9644,7 +10501,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLIInclude); i { case 0: return &v.state @@ -9656,7 +10513,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLIKillInit); i { case 0: return &v.state @@ -9668,7 +10525,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLIKillList); i { case 0: return &v.state @@ -9680,7 +10537,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLIKillAll); i { case 0: return &v.state @@ -9692,7 +10549,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLIKillTargets); i { case 0: return &v.state @@ -9704,7 +10561,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLIKill); i { case 0: return &v.state @@ -9716,7 +10573,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLIListtenants); i { case 0: return &v.state @@ -9728,7 +10585,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLILock); i { case 0: return &v.state @@ -9740,7 +10597,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLIMaintenanceStatus); i { case 0: return &v.state @@ -9752,7 +10609,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLIMaintenanceOn); i { case 0: return &v.state @@ -9764,7 +10621,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLIMaintenanceOff); i { case 0: return &v.state @@ -9776,7 +10633,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLIMaintenance); i { case 0: return &v.state @@ -9788,7 +10645,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLIOptionBlank); i { case 0: return &v.state @@ -9800,7 +10657,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLIOptionArg); i { case 0: return &v.state @@ -9812,7 +10669,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLIOption); i { case 0: return &v.state @@ -9824,7 +10681,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLIProfileActionClientDefault); i { case 0: return &v.state @@ -9836,7 +10693,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLIProfileActionClientGet); i { case 0: return &v.state @@ -9848,7 +10705,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLIProfileActionClientSet); i { case 0: return &v.state @@ -9860,7 +10717,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLIProfileActionClient); i { case 0: return &v.state @@ -9872,7 +10729,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLIProfileActionList); i { case 0: return &v.state @@ -9884,7 +10741,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLIProfileActionFlow); i { case 0: return &v.state @@ -9896,7 +10753,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLIProfileActionHeap); i { case 0: return &v.state @@ -9908,7 +10765,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLIProfile); i { case 0: return &v.state @@ -9920,7 +10777,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLISet); i { case 0: return &v.state @@ -9932,7 +10789,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLISetclassArg); i { case 0: return &v.state @@ -9944,7 +10801,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLISetclassList); i { case 0: return &v.state @@ -9956,7 +10813,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLISetclass); i { case 0: return &v.state @@ -9968,7 +10825,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLISleep); i { case 0: return &v.state @@ -9980,7 +10837,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLISnapshot); i { case 0: return &v.state @@ -9992,7 +10849,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[87].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLIStatus); i { case 0: return &v.state @@ -10004,7 +10861,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[88].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLISuspendInit); i { case 0: return &v.state @@ -10016,7 +10873,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[89].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLISuspendSuspend); i { case 0: return &v.state @@ -10028,7 +10885,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[90].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLISuspend); i { case 0: return &v.state @@ -10040,7 +10897,79 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[87].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[91].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FDBCLITenantEmergencyMoveStart); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_fdb_proto_msgTypes[92].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FDBCLITenantEmergencyMoveSwitch); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_fdb_proto_msgTypes[93].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FDBCLITenantEmergencyMoveFinish); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_fdb_proto_msgTypes[94].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FDBCLITenantEmergencyMoveAbort); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_fdb_proto_msgTypes[95].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FDBCLITenantEmergencyMoveStatus); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_fdb_proto_msgTypes[96].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FDBCLITenantEmergencyMove); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_fdb_proto_msgTypes[97].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLIThrottleActionOn); i { case 0: return &v.state @@ -10052,7 +10981,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[88].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[98].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLIThrottleActionOff); i { case 0: return &v.state @@ -10064,7 +10993,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[89].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[99].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLIThrottleActionEnable); i { case 0: return &v.state @@ -10076,7 +11005,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[90].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[100].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLIThrottleActionDisable); i { case 0: return &v.state @@ -10088,7 +11017,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[91].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[101].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLIThrottleActionList); i { case 0: return &v.state @@ -10100,7 +11029,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[92].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[102].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLIThrottle); i { case 0: return &v.state @@ -10112,7 +11041,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[93].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[103].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLITriggerddteaminfolog); i { case 0: return &v.state @@ -10124,7 +11053,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[94].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[104].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLITssqStart); i { case 0: return &v.state @@ -10136,7 +11065,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[95].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[105].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLITssqStop); i { case 0: return &v.state @@ -10148,7 +11077,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[96].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[106].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLITssqList); i { case 0: return &v.state @@ -10160,7 +11089,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[97].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[107].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLITssq); i { case 0: return &v.state @@ -10172,7 +11101,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[98].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[108].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLIUnlock); i { case 0: return &v.state @@ -10184,7 +11113,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[99].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[109].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLIUsetenant); i { case 0: return &v.state @@ -10196,7 +11125,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[100].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[110].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLIWritemode); i { case 0: return &v.state @@ -10208,7 +11137,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[101].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[111].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLIVersionepochInfo); i { case 0: return &v.state @@ -10220,7 +11149,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[102].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[112].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLIVersionepochGet); i { case 0: return &v.state @@ -10232,7 +11161,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[103].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[113].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLIVersionepochDisable); i { case 0: return &v.state @@ -10244,7 +11173,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[104].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[114].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLIVersionepochEnable); i { case 0: return &v.state @@ -10256,7 +11185,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[105].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[115].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLIVersionepochCommit); i { case 0: return &v.state @@ -10268,7 +11197,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[106].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[116].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLIVersionepochSet); i { case 0: return &v.state @@ -10280,7 +11209,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[107].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[117].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLIVersionepoch); i { case 0: return &v.state @@ -10292,7 +11221,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[108].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[118].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLIWaitconnected); i { case 0: return &v.state @@ -10304,7 +11233,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[109].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[119].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLIWaitopen); i { case 0: return &v.state @@ -10316,7 +11245,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[110].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[120].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLICommand); i { case 0: return &v.state @@ -10328,7 +11257,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[111].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[121].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLIUnknownAction); i { case 0: return &v.state @@ -10340,7 +11269,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[112].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[122].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLIRequest); i { case 0: return &v.state @@ -10352,7 +11281,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[113].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[123].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Log); i { case 0: return &v.state @@ -10364,7 +11293,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[114].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[124].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLIResponseOutput); i { case 0: return &v.state @@ -10376,7 +11305,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[115].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[125].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBCLIResponse); i { case 0: return &v.state @@ -10388,7 +11317,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[116].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[126].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBServerRequest); i { case 0: return &v.state @@ -10400,7 +11329,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[117].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[127].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBServerCommand); i { case 0: return &v.state @@ -10412,7 +11341,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[118].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[128].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBServerVersion); i { case 0: return &v.state @@ -10424,7 +11353,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[119].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[129].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBServerUnknownAction); i { case 0: return &v.state @@ -10436,7 +11365,7 @@ func file_fdb_proto_init() { return nil } } - file_fdb_proto_msgTypes[120].Exporter = func(v interface{}, i int) interface{} { + file_fdb_proto_msgTypes[130].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FDBServerResponse); i { case 0: return &v.state @@ -10449,20 +11378,20 @@ func file_fdb_proto_init() { } } } - file_fdb_proto_msgTypes[9].OneofWrappers = []interface{}{ + file_fdb_proto_msgTypes[13].OneofWrappers = []interface{}{ (*FDBCLIBlobrange_Start)(nil), (*FDBCLIBlobrange_Stop)(nil), } - file_fdb_proto_msgTypes[12].OneofWrappers = []interface{}{ + file_fdb_proto_msgTypes[16].OneofWrappers = []interface{}{ (*FDBCLICacheRange_Set)(nil), (*FDBCLICacheRange_Clear)(nil), } - file_fdb_proto_msgTypes[20].OneofWrappers = []interface{}{ + file_fdb_proto_msgTypes[24].OneofWrappers = []interface{}{ (*FDBCLIChangefeedStream_NoVersion)(nil), (*FDBCLIChangefeedStream_StartVersion)(nil), (*FDBCLIChangefeedStream_StartEndVersion)(nil), } - file_fdb_proto_msgTypes[22].OneofWrappers = []interface{}{ + file_fdb_proto_msgTypes[26].OneofWrappers = []interface{}{ (*FDBCLIChangefeed_List)(nil), (*FDBCLIChangefeed_Register)(nil), (*FDBCLIChangefeed_Stop)(nil), @@ -10470,78 +11399,85 @@ func file_fdb_proto_init() { (*FDBCLIChangefeed_Stream)(nil), (*FDBCLIChangefeed_Pop)(nil), } - file_fdb_proto_msgTypes[30].OneofWrappers = []interface{}{ + file_fdb_proto_msgTypes[34].OneofWrappers = []interface{}{ (*FDBCLICoordinators_Auto)(nil), (*FDBCLICoordinators_Addresses)(nil), } - file_fdb_proto_msgTypes[36].OneofWrappers = []interface{}{ + file_fdb_proto_msgTypes[40].OneofWrappers = []interface{}{ (*FDBCLIDatadistribution_On)(nil), (*FDBCLIDatadistribution_Off)(nil), (*FDBCLIDatadistribution_Enable)(nil), (*FDBCLIDatadistribution_Disable)(nil), } - file_fdb_proto_msgTypes[44].OneofWrappers = []interface{}{ + file_fdb_proto_msgTypes[48].OneofWrappers = []interface{}{ (*FDBCLIExpensiveDataCheck_Init)(nil), (*FDBCLIExpensiveDataCheck_List)(nil), (*FDBCLIExpensiveDataCheck_All)(nil), (*FDBCLIExpensiveDataCheck_Check)(nil), } - file_fdb_proto_msgTypes[54].OneofWrappers = []interface{}{ + file_fdb_proto_msgTypes[58].OneofWrappers = []interface{}{ (*FDBCLIInclude_All)(nil), (*FDBCLIInclude_Addresses)(nil), } - file_fdb_proto_msgTypes[59].OneofWrappers = []interface{}{ + file_fdb_proto_msgTypes[63].OneofWrappers = []interface{}{ (*FDBCLIKill_Init)(nil), (*FDBCLIKill_List)(nil), (*FDBCLIKill_All)(nil), (*FDBCLIKill_Targets)(nil), } - file_fdb_proto_msgTypes[65].OneofWrappers = []interface{}{ + file_fdb_proto_msgTypes[69].OneofWrappers = []interface{}{ (*FDBCLIMaintenance_Status)(nil), (*FDBCLIMaintenance_On)(nil), (*FDBCLIMaintenance_Off)(nil), } - file_fdb_proto_msgTypes[68].OneofWrappers = []interface{}{ + file_fdb_proto_msgTypes[72].OneofWrappers = []interface{}{ (*FDBCLIOption_Blank)(nil), (*FDBCLIOption_Arg)(nil), } - file_fdb_proto_msgTypes[71].OneofWrappers = []interface{}{ + file_fdb_proto_msgTypes[75].OneofWrappers = []interface{}{ (*FDBCLIProfileActionClientSet_DefaultRate)(nil), (*FDBCLIProfileActionClientSet_ValueRate)(nil), (*FDBCLIProfileActionClientSet_DefaultSize)(nil), (*FDBCLIProfileActionClientSet_ValueSize)(nil), } - file_fdb_proto_msgTypes[72].OneofWrappers = []interface{}{ + file_fdb_proto_msgTypes[76].OneofWrappers = []interface{}{ (*FDBCLIProfileActionClient_Get)(nil), (*FDBCLIProfileActionClient_Set)(nil), } - file_fdb_proto_msgTypes[76].OneofWrappers = []interface{}{ + file_fdb_proto_msgTypes[80].OneofWrappers = []interface{}{ (*FDBCLIProfile_Client)(nil), (*FDBCLIProfile_List)(nil), (*FDBCLIProfile_Flow)(nil), (*FDBCLIProfile_Heap)(nil), } - file_fdb_proto_msgTypes[80].OneofWrappers = []interface{}{ + file_fdb_proto_msgTypes[84].OneofWrappers = []interface{}{ (*FDBCLISetclass_List)(nil), (*FDBCLISetclass_Arg)(nil), } - file_fdb_proto_msgTypes[86].OneofWrappers = []interface{}{ + file_fdb_proto_msgTypes[90].OneofWrappers = []interface{}{ (*FDBCLISuspend_Init)(nil), (*FDBCLISuspend_Suspend)(nil), } - file_fdb_proto_msgTypes[92].OneofWrappers = []interface{}{ + file_fdb_proto_msgTypes[96].OneofWrappers = []interface{}{ + (*FDBCLITenantEmergencyMove_Start)(nil), + (*FDBCLITenantEmergencyMove_Switch)(nil), + (*FDBCLITenantEmergencyMove_Finish)(nil), + (*FDBCLITenantEmergencyMove_Abort)(nil), + (*FDBCLITenantEmergencyMove_Status)(nil), + } + file_fdb_proto_msgTypes[102].OneofWrappers = []interface{}{ (*FDBCLIThrottle_On)(nil), (*FDBCLIThrottle_Off)(nil), (*FDBCLIThrottle_Enable)(nil), (*FDBCLIThrottle_Disable)(nil), (*FDBCLIThrottle_List)(nil), } - file_fdb_proto_msgTypes[97].OneofWrappers = []interface{}{ + file_fdb_proto_msgTypes[107].OneofWrappers = []interface{}{ (*FDBCLITssq_Start)(nil), (*FDBCLITssq_Stop)(nil), (*FDBCLITssq_List)(nil), } - file_fdb_proto_msgTypes[107].OneofWrappers = []interface{}{ + file_fdb_proto_msgTypes[117].OneofWrappers = []interface{}{ (*FDBCLIVersionepoch_Info)(nil), (*FDBCLIVersionepoch_Get)(nil), (*FDBCLIVersionepoch_Disable)(nil), @@ -10549,7 +11485,7 @@ func file_fdb_proto_init() { (*FDBCLIVersionepoch_Commit)(nil), (*FDBCLIVersionepoch_Set)(nil), } - file_fdb_proto_msgTypes[110].OneofWrappers = []interface{}{ + file_fdb_proto_msgTypes[120].OneofWrappers = []interface{}{ (*FDBCLICommand_Advanceversion)(nil), (*FDBCLICommand_Begin)(nil), (*FDBCLICommand_Blobrange)(nil), @@ -10588,6 +11524,7 @@ func file_fdb_proto_init() { (*FDBCLICommand_Sleep)(nil), (*FDBCLICommand_Status)(nil), (*FDBCLICommand_Suspend)(nil), + (*FDBCLICommand_TenantEmergencyMove)(nil), (*FDBCLICommand_Throttle)(nil), (*FDBCLICommand_Triggerddteaminfolog)(nil), (*FDBCLICommand_Tssq)(nil), @@ -10599,11 +11536,11 @@ func file_fdb_proto_init() { (*FDBCLICommand_Waitopen)(nil), (*FDBCLICommand_Unknown)(nil), } - file_fdb_proto_msgTypes[115].OneofWrappers = []interface{}{ + file_fdb_proto_msgTypes[125].OneofWrappers = []interface{}{ (*FDBCLIResponse_Output)(nil), (*FDBCLIResponse_Log)(nil), } - file_fdb_proto_msgTypes[117].OneofWrappers = []interface{}{ + file_fdb_proto_msgTypes[127].OneofWrappers = []interface{}{ (*FDBServerCommand_Version)(nil), (*FDBServerCommand_Unknown)(nil), } @@ -10613,9 +11550,9 @@ func file_fdb_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_fdb_proto_rawDesc, NumEnums: 0, - NumMessages: 121, + NumMessages: 131, NumExtensions: 0, - NumServices: 3, + NumServices: 4, }, GoTypes: file_fdb_proto_goTypes, DependencyIndexes: file_fdb_proto_depIdxs, diff --git a/services/fdb/fdb.proto b/services/fdb/fdb.proto index 7d969f34..7db16838 100644 --- a/services/fdb/fdb.proto +++ b/services/fdb/fdb.proto @@ -51,6 +51,34 @@ message DeleteRequest { Location location = 1; } message FdbConfResponse { string value = 1; } +service FDBMove { + rpc FDBMoveDataCopy(FDBMoveDataCopyRequest) returns (FDBMoveDataCopyResponse); + rpc FDBMoveDataWait(FDBMoveDataWaitRequest) returns (stream FDBMoveDataWaitResponse); +} + +message FDBMoveDataCopyRequest { + string cluster_file = 1; + string tenant_group = 2; + string source_cluster = 3; + string destination_cluster = 4; + int64 num_procs = 5; +} + +message FDBMoveDataCopyResponse { + int64 id = 1; + bool existing = 2; +} + +message FDBMoveDataWaitRequest { + int64 id = 1; +} + +message FDBMoveDataWaitResponse { + bytes stdout = 1; + bytes stderr = 2; + int32 retCode = 3; +} + service CLI { rpc FDBCLI(FDBCLIRequest) returns (stream FDBCLIResponse) {} } @@ -410,6 +438,45 @@ message FDBCLISuspend { } } +message FDBCLITenantEmergencyMoveStart { + string tenant_group = 1; + string source_cluster = 2; + string destination_cluster = 3; +} + +message FDBCLITenantEmergencyMoveSwitch { + string tenant_group = 1; + string source_cluster = 2; + string destination_cluster = 3; +} + +message FDBCLITenantEmergencyMoveFinish { + string tenant_group = 1; + string source_cluster = 2; + string destination_cluster = 3; +} + +message FDBCLITenantEmergencyMoveAbort { + string tenant_group = 1; + string source_cluster = 2; + string destination_cluster = 3; +} + + +message FDBCLITenantEmergencyMoveStatus { + string tenant_group = 1; +} + +message FDBCLITenantEmergencyMove { + oneof request { + FDBCLITenantEmergencyMoveStart start = 1; + FDBCLITenantEmergencyMoveSwitch switch = 2; + FDBCLITenantEmergencyMoveFinish finish = 3; + FDBCLITenantEmergencyMoveAbort abort = 4; + FDBCLITenantEmergencyMoveStatus status = 5; + } +} + message FDBCLIThrottleActionOn { string tag = 1; google.protobuf.UInt32Value rate = 2; @@ -496,7 +563,7 @@ message FDBCLIWaitopen {} // session such as reset or rollback. // This message is broken out separately for ease of use since it has // gotten so large. -// NEXT: 49 +// NEXT: 50 message FDBCLICommand { oneof command { // Does not include begin, commit, exit, help, reset, or rollback. @@ -538,6 +605,7 @@ message FDBCLICommand { FDBCLISleep sleep = 22; FDBCLIStatus status = 23; FDBCLISuspend suspend = 43; + FDBCLITenantEmergencyMove tenant_emergency_move = 49; FDBCLIThrottle throttle = 24; FDBCLITriggerddteaminfolog triggerddteaminfolog = 25; FDBCLITssq tssq = 35; diff --git a/services/fdb/fdb_grpc.pb.go b/services/fdb/fdb_grpc.pb.go index 198e073b..90258e47 100644 --- a/services/fdb/fdb_grpc.pb.go +++ b/services/fdb/fdb_grpc.pb.go @@ -16,7 +16,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.3.0 -// - protoc v4.23.3 +// - protoc v4.23.4 // source: fdb.proto package fdb @@ -202,6 +202,159 @@ var Conf_ServiceDesc = grpc.ServiceDesc{ Metadata: "fdb.proto", } +const ( + FDBMove_FDBMoveDataCopy_FullMethodName = "/Fdb.FDBMove/FDBMoveDataCopy" + FDBMove_FDBMoveDataWait_FullMethodName = "/Fdb.FDBMove/FDBMoveDataWait" +) + +// FDBMoveClient is the client API for FDBMove service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type FDBMoveClient interface { + FDBMoveDataCopy(ctx context.Context, in *FDBMoveDataCopyRequest, opts ...grpc.CallOption) (*FDBMoveDataCopyResponse, error) + FDBMoveDataWait(ctx context.Context, in *FDBMoveDataWaitRequest, opts ...grpc.CallOption) (FDBMove_FDBMoveDataWaitClient, error) +} + +type fDBMoveClient struct { + cc grpc.ClientConnInterface +} + +func NewFDBMoveClient(cc grpc.ClientConnInterface) FDBMoveClient { + return &fDBMoveClient{cc} +} + +func (c *fDBMoveClient) FDBMoveDataCopy(ctx context.Context, in *FDBMoveDataCopyRequest, opts ...grpc.CallOption) (*FDBMoveDataCopyResponse, error) { + out := new(FDBMoveDataCopyResponse) + err := c.cc.Invoke(ctx, FDBMove_FDBMoveDataCopy_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *fDBMoveClient) FDBMoveDataWait(ctx context.Context, in *FDBMoveDataWaitRequest, opts ...grpc.CallOption) (FDBMove_FDBMoveDataWaitClient, error) { + stream, err := c.cc.NewStream(ctx, &FDBMove_ServiceDesc.Streams[0], FDBMove_FDBMoveDataWait_FullMethodName, opts...) + if err != nil { + return nil, err + } + x := &fDBMoveFDBMoveDataWaitClient{stream} + if err := x.ClientStream.SendMsg(in); err != nil { + return nil, err + } + if err := x.ClientStream.CloseSend(); err != nil { + return nil, err + } + return x, nil +} + +type FDBMove_FDBMoveDataWaitClient interface { + Recv() (*FDBMoveDataWaitResponse, error) + grpc.ClientStream +} + +type fDBMoveFDBMoveDataWaitClient struct { + grpc.ClientStream +} + +func (x *fDBMoveFDBMoveDataWaitClient) Recv() (*FDBMoveDataWaitResponse, error) { + m := new(FDBMoveDataWaitResponse) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +// FDBMoveServer is the server API for FDBMove service. +// All implementations should embed UnimplementedFDBMoveServer +// for forward compatibility +type FDBMoveServer interface { + FDBMoveDataCopy(context.Context, *FDBMoveDataCopyRequest) (*FDBMoveDataCopyResponse, error) + FDBMoveDataWait(*FDBMoveDataWaitRequest, FDBMove_FDBMoveDataWaitServer) error +} + +// UnimplementedFDBMoveServer should be embedded to have forward compatible implementations. +type UnimplementedFDBMoveServer struct { +} + +func (UnimplementedFDBMoveServer) FDBMoveDataCopy(context.Context, *FDBMoveDataCopyRequest) (*FDBMoveDataCopyResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method FDBMoveDataCopy not implemented") +} +func (UnimplementedFDBMoveServer) FDBMoveDataWait(*FDBMoveDataWaitRequest, FDBMove_FDBMoveDataWaitServer) error { + return status.Errorf(codes.Unimplemented, "method FDBMoveDataWait not implemented") +} + +// UnsafeFDBMoveServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to FDBMoveServer will +// result in compilation errors. +type UnsafeFDBMoveServer interface { + mustEmbedUnimplementedFDBMoveServer() +} + +func RegisterFDBMoveServer(s grpc.ServiceRegistrar, srv FDBMoveServer) { + s.RegisterService(&FDBMove_ServiceDesc, srv) +} + +func _FDBMove_FDBMoveDataCopy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(FDBMoveDataCopyRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FDBMoveServer).FDBMoveDataCopy(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: FDBMove_FDBMoveDataCopy_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FDBMoveServer).FDBMoveDataCopy(ctx, req.(*FDBMoveDataCopyRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FDBMove_FDBMoveDataWait_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(FDBMoveDataWaitRequest) + if err := stream.RecvMsg(m); err != nil { + return err + } + return srv.(FDBMoveServer).FDBMoveDataWait(m, &fDBMoveFDBMoveDataWaitServer{stream}) +} + +type FDBMove_FDBMoveDataWaitServer interface { + Send(*FDBMoveDataWaitResponse) error + grpc.ServerStream +} + +type fDBMoveFDBMoveDataWaitServer struct { + grpc.ServerStream +} + +func (x *fDBMoveFDBMoveDataWaitServer) Send(m *FDBMoveDataWaitResponse) error { + return x.ServerStream.SendMsg(m) +} + +// FDBMove_ServiceDesc is the grpc.ServiceDesc for FDBMove service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var FDBMove_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "Fdb.FDBMove", + HandlerType: (*FDBMoveServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "FDBMoveDataCopy", + Handler: _FDBMove_FDBMoveDataCopy_Handler, + }, + }, + Streams: []grpc.StreamDesc{ + { + StreamName: "FDBMoveDataWait", + Handler: _FDBMove_FDBMoveDataWait_Handler, + ServerStreams: true, + }, + }, + Metadata: "fdb.proto", +} + const ( CLI_FDBCLI_FullMethodName = "/Fdb.CLI/FDBCLI" ) diff --git a/services/fdb/fdb_grpcproxy.pb.go b/services/fdb/fdb_grpcproxy.pb.go index 9486cebe..1f6e83ea 100644 --- a/services/fdb/fdb_grpcproxy.pb.go +++ b/services/fdb/fdb_grpcproxy.pb.go @@ -237,6 +237,179 @@ func (c *confClientProxy) DeleteOneMany(ctx context.Context, in *DeleteRequest, return ret, nil } +// FDBMoveClientProxy is the superset of FDBMoveClient which additionally includes the OneMany proxy methods +type FDBMoveClientProxy interface { + FDBMoveClient + FDBMoveDataCopyOneMany(ctx context.Context, in *FDBMoveDataCopyRequest, opts ...grpc.CallOption) (<-chan *FDBMoveDataCopyManyResponse, error) + FDBMoveDataWaitOneMany(ctx context.Context, in *FDBMoveDataWaitRequest, opts ...grpc.CallOption) (FDBMove_FDBMoveDataWaitClientProxy, error) +} + +// Embed the original client inside of this so we get the other generated methods automatically. +type fDBMoveClientProxy struct { + *fDBMoveClient +} + +// NewFDBMoveClientProxy creates a FDBMoveClientProxy for use in proxied connections. +// NOTE: This takes a proxy.Conn instead of a generic ClientConnInterface as the methods here are only valid in proxy.Conn contexts. +func NewFDBMoveClientProxy(cc *proxy.Conn) FDBMoveClientProxy { + return &fDBMoveClientProxy{NewFDBMoveClient(cc).(*fDBMoveClient)} +} + +// FDBMoveDataCopyManyResponse encapsulates a proxy data packet. +// It includes the target, index, response and possible error returned. +type FDBMoveDataCopyManyResponse struct { + Target string + // As targets can be duplicated this is the index into the slice passed to proxy.Conn. + Index int + Resp *FDBMoveDataCopyResponse + Error error +} + +// FDBMoveDataCopyOneMany provides the same API as FDBMoveDataCopy but sends the same request to N destinations at once. +// N can be a single destination. +// +// NOTE: The returned channel must be read until it closes in order to avoid leaking goroutines. +func (c *fDBMoveClientProxy) FDBMoveDataCopyOneMany(ctx context.Context, in *FDBMoveDataCopyRequest, opts ...grpc.CallOption) (<-chan *FDBMoveDataCopyManyResponse, error) { + conn := c.cc.(*proxy.Conn) + ret := make(chan *FDBMoveDataCopyManyResponse) + // If this is a single case we can just use Invoke and marshal it onto the channel once and be done. + if len(conn.Targets) == 1 { + go func() { + out := &FDBMoveDataCopyManyResponse{ + Target: conn.Targets[0], + Index: 0, + Resp: &FDBMoveDataCopyResponse{}, + } + err := conn.Invoke(ctx, "/Fdb.FDBMove/FDBMoveDataCopy", in, out.Resp, opts...) + if err != nil { + out.Error = err + } + // Send and close. + ret <- out + close(ret) + }() + return ret, nil + } + manyRet, err := conn.InvokeOneMany(ctx, "/Fdb.FDBMove/FDBMoveDataCopy", in, opts...) + if err != nil { + return nil, err + } + // A goroutine to retrive untyped responses and convert them to typed ones. + go func() { + for { + typedResp := &FDBMoveDataCopyManyResponse{ + Resp: &FDBMoveDataCopyResponse{}, + } + + resp, ok := <-manyRet + if !ok { + // All done so we can shut down. + close(ret) + return + } + typedResp.Target = resp.Target + typedResp.Index = resp.Index + typedResp.Error = resp.Error + if resp.Error == nil { + if err := resp.Resp.UnmarshalTo(typedResp.Resp); err != nil { + typedResp.Error = fmt.Errorf("can't decode any response - %v. Original Error - %v", err, resp.Error) + } + } + ret <- typedResp + } + }() + + return ret, nil +} + +// FDBMoveDataWaitManyResponse encapsulates a proxy data packet. +// It includes the target, index, response and possible error returned. +type FDBMoveDataWaitManyResponse struct { + Target string + // As targets can be duplicated this is the index into the slice passed to proxy.Conn. + Index int + Resp *FDBMoveDataWaitResponse + Error error +} + +type FDBMove_FDBMoveDataWaitClientProxy interface { + Recv() ([]*FDBMoveDataWaitManyResponse, error) + grpc.ClientStream +} + +type fDBMoveClientFDBMoveDataWaitClientProxy struct { + cc *proxy.Conn + directDone bool + grpc.ClientStream +} + +func (x *fDBMoveClientFDBMoveDataWaitClientProxy) Recv() ([]*FDBMoveDataWaitManyResponse, error) { + var ret []*FDBMoveDataWaitManyResponse + // If this is a direct connection the RecvMsg call is to a standard grpc.ClientStream + // and not our proxy based one. This means we need to receive a typed response and + // convert it into a single slice entry return. This ensures the OneMany style calls + // can be used by proxy with 1:N targets and non proxy with 1 target without client changes. + if x.cc.Direct() { + // Check if we're done. Just return EOF now. Any real error was already sent inside + // of a ManyResponse. + if x.directDone { + return nil, io.EOF + } + m := &FDBMoveDataWaitResponse{} + err := x.ClientStream.RecvMsg(m) + ret = append(ret, &FDBMoveDataWaitManyResponse{ + Resp: m, + Error: err, + Target: x.cc.Targets[0], + Index: 0, + }) + // An error means we're done so set things so a later call now gets an EOF. + if err != nil { + x.directDone = true + } + return ret, nil + } + + m := []*proxy.Ret{} + if err := x.ClientStream.RecvMsg(&m); err != nil { + return nil, err + } + for _, r := range m { + typedResp := &FDBMoveDataWaitManyResponse{ + Resp: &FDBMoveDataWaitResponse{}, + } + typedResp.Target = r.Target + typedResp.Index = r.Index + typedResp.Error = r.Error + if r.Error == nil { + if err := r.Resp.UnmarshalTo(typedResp.Resp); err != nil { + typedResp.Error = fmt.Errorf("can't decode any response - %v. Original Error - %v", err, r.Error) + } + } + ret = append(ret, typedResp) + } + return ret, nil +} + +// FDBMoveDataWaitOneMany provides the same API as FDBMoveDataWait but sends the same request to N destinations at once. +// N can be a single destination. +// +// NOTE: The returned channel must be read until it closes in order to avoid leaking goroutines. +func (c *fDBMoveClientProxy) FDBMoveDataWaitOneMany(ctx context.Context, in *FDBMoveDataWaitRequest, opts ...grpc.CallOption) (FDBMove_FDBMoveDataWaitClientProxy, error) { + stream, err := c.cc.NewStream(ctx, &FDBMove_ServiceDesc.Streams[0], "/Fdb.FDBMove/FDBMoveDataWait", opts...) + if err != nil { + return nil, err + } + x := &fDBMoveClientFDBMoveDataWaitClientProxy{c.cc.(*proxy.Conn), false, stream} + if err := x.ClientStream.SendMsg(in); err != nil { + return nil, err + } + if err := x.ClientStream.CloseSend(); err != nil { + return nil, err + } + return x, nil +} + // CLIClientProxy is the superset of CLIClient which additionally includes the OneMany proxy methods type CLIClientProxy interface { CLIClient diff --git a/services/fdb/server/fdbcli.go b/services/fdb/server/fdbcli.go index 6627e3f6..c373111f 100644 --- a/services/fdb/server/fdbcli.go +++ b/services/fdb/server/fdbcli.go @@ -468,6 +468,8 @@ func parseFDBCommand(req *pb.FDBCLICommand) (args []string, l []captureLogs, err args, l, err = parseFDBCLISleep(req.GetSleep()) case *pb.FDBCLICommand_Status: args, l, err = parseFDBCLIStatus(req.GetStatus()) + case *pb.FDBCLICommand_TenantEmergencyMove: + args, l, err = parseFDBCLITenantEmergencyMove(req.GetTenantEmergencyMove()) case *pb.FDBCLICommand_Throttle: args, l, err = parseFDBCLIThrottle(req.GetThrottle()) case *pb.FDBCLICommand_Triggerddteaminfolog: @@ -1169,6 +1171,35 @@ func parseFDBCLISuspend(req *pb.FDBCLISuspend) ([]string, []captureLogs, error) return args, nil, nil } +func parseFDBCLITenantEmergencyMove(req *pb.FDBCLITenantEmergencyMove) ([]string, []captureLogs, error) { + args := []string{"tenant", "emergency_move"} + + if req.Request == nil { + return nil, nil, status.Error(codes.InvalidArgument, "tenant_emergency_move requires request to be filled in") + } + + switch req.Request.(type) { + case *pb.FDBCLITenantEmergencyMove_Start: + startCmd := req.GetStart() + args = append(args, "start", startCmd.TenantGroup, startCmd.SourceCluster, startCmd.DestinationCluster) + case *pb.FDBCLITenantEmergencyMove_Switch: + switchCmd := req.GetSwitch() + args = append(args, "switch", switchCmd.TenantGroup, switchCmd.SourceCluster, switchCmd.DestinationCluster) + case *pb.FDBCLITenantEmergencyMove_Finish: + finishCmd := req.GetFinish() + args = append(args, "finish", finishCmd.TenantGroup, finishCmd.SourceCluster, finishCmd.DestinationCluster) + case *pb.FDBCLITenantEmergencyMove_Abort: + abortCmd := req.GetAbort() + args = append(args, "abort", abortCmd.TenantGroup, abortCmd.SourceCluster, abortCmd.DestinationCluster) + case *pb.FDBCLITenantEmergencyMove_Status: + statusCmd := req.GetStatus() + args = append(args, "status", statusCmd.TenantGroup) + default: + return nil, nil, status.Errorf(codes.InvalidArgument, "unknown request: %T", req.Request) + } + return args, nil, nil +} + func parseFDBCLIThrottle(req *pb.FDBCLIThrottle) ([]string, []captureLogs, error) { args := []string{"throttle"} diff --git a/services/fdb/server/fdbmovedata.go b/services/fdb/server/fdbmovedata.go new file mode 100644 index 00000000..19e7c03d --- /dev/null +++ b/services/fdb/server/fdbmovedata.go @@ -0,0 +1,190 @@ +/* Copyright (c) 2023 Snowflake Inc. All rights reserved. + + Licensed under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. +*/ + +package server + +import ( + "context" + "fmt" + "io" + "math/rand" + "os/exec" + "sync" + + "github.com/Snowflake-Labs/sansshell/services" + pb "github.com/Snowflake-Labs/sansshell/services/fdb" + "github.com/go-logr/logr" + "google.golang.org/grpc" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/status" +) + +var ( + // fdb_move_orchestrator binary location + // Will be checked into: + // https://github.com/apple/foundationdb/tree/snowflake/release-71.3/bindings/python/fdb/fdb_move_orchestrator.py + FDBMoveOrchestrator string + generateFDBMoveDataArgs = generateFDBMoveDataArgsImpl +) + +type fdbmovedata struct { + mu sync.Mutex + id int64 + cmd *exec.Cmd + stdout io.ReadCloser + stderr io.ReadCloser +} + +func generateFDBMoveDataArgsImpl(req *pb.FDBMoveDataCopyRequest) ([]string, error) { + command := []string{FDBMoveOrchestrator} + + var args []string + args = append(args, "--cluster", req.ClusterFile) + args = append(args, "--tenant-group", req.TenantGroup) + args = append(args, "--src-name", req.SourceCluster) + args = append(args, "--dst-name", req.DestinationCluster) + args = append(args, "--num-procs", fmt.Sprintf("%d", req.NumProcs)) + + command = append(command, args...) + return command, nil +} + +func (s *fdbmovedata) FDBMoveDataCopy(ctx context.Context, req *pb.FDBMoveDataCopyRequest) (*pb.FDBMoveDataCopyResponse, error) { + lockSuccess := s.mu.TryLock() + if !(lockSuccess) { + return nil, status.Errorf(codes.Internal, "Copy or Wait command already running") + } + defer s.mu.Unlock() + logger := logr.FromContextOrDiscard(ctx) + // The sansshell server should only run one copy command at a time + if !(s.cmd == nil) { + logger.Info("existing command already running. returning early") + logger.Info("command details", "cmd", s.cmd.String()) + logger.Info("command running with id", "id", s.id) + earlyresp := &pb.FDBMoveDataCopyResponse{ + Id: s.id, + Existing: true, + } + return earlyresp, nil + } + s.id = rand.Int63() + command, err := generateFDBMoveDataArgs(req) + if err != nil { + return nil, err + } + + // Add env vars for python and python bindings + cmd := exec.Command(command[0], command[1:]...) + cmd.Env = append(cmd.Environ(), "PYTHONPATH=/opt/rh/rh-python36/root/lib/python3.6/site-packages/") + cmd.Env = append(cmd.Environ(), "PATH=/opt/rh/rh-python36/root/bin") + cmd.Env = append(cmd.Environ(), "PYTHONUNBUFFERED=true") + + stdout, err := cmd.StdoutPipe() + if err != nil { + return nil, err + } + + stderr, err := cmd.StderrPipe() + if err != nil { + return nil, err + } + + logger.Info("executing local command", "cmd", cmd.String()) + logger.Info("command running with id", "id", s.id) + s.cmd = cmd + s.stdout = stdout + s.stderr = stderr + err = s.cmd.Start() + if err != nil { + s.cmd = nil + s.id = 0 + return nil, status.Errorf(codes.Internal, "error running fdbmovedata cmd (%+v): %v", command, err) + } + + resp := &pb.FDBMoveDataCopyResponse{ + Id: s.id, + Existing: false, + } + return resp, nil +} + +func (s *fdbmovedata) FDBMoveDataWait(req *pb.FDBMoveDataWaitRequest, stream pb.FDBMove_FDBMoveDataWaitServer) error { + s.mu.Lock() + defer s.mu.Unlock() + ctx := stream.Context() + logger := logr.FromContextOrDiscard(ctx) + if !(req.Id == s.id) { + logger.Info("Provided ID and stored ID do not match", "providedID", req.Id, "storedID", s.id) + return status.Errorf(codes.Internal, "Provided ID %d does not match stored ID %d", req.Id, s.id) + } + if s.cmd == nil { + logger.Info("No command running on the server") + return status.Errorf(codes.Internal, "No command running on the server") + } + wg := &sync.WaitGroup{} + + // Send stderr asynchronously + stderr := s.stderr + wg.Add(1) + go func() { + defer wg.Done() + for { + buf := make([]byte, 1024) + n, err := stderr.Read(buf) + if err != nil { + return + } + if err := stream.Send(&pb.FDBMoveDataWaitResponse{Stderr: buf[:n]}); err != nil { + return + } + } + }() + + // Send stdout asynchronously + stdout := s.stdout + wg.Add(1) + go func() { + defer wg.Done() + for { + buf := make([]byte, 1024) + n, err := stdout.Read(buf) + if err != nil { + return + } + if err := stream.Send(&pb.FDBMoveDataWaitResponse{Stdout: buf[:n]}); err != nil { + return + } + } + }() + wg.Wait() + err := s.cmd.Wait() + if exitErr, ok := err.(*exec.ExitError); ok { + return stream.Send(&pb.FDBMoveDataWaitResponse{RetCode: int32(exitErr.ExitCode())}) + } + // clear the cmd to allow another call + s.cmd = nil + s.id = 0 + return err +} + +// Register is called to expose this handler to the gRPC server +func (s *fdbmovedata) Register(gs *grpc.Server) { + pb.RegisterFDBMoveServer(gs, s) +} + +func init() { + services.RegisterSansShellService(&fdbmovedata{}) +} diff --git a/services/fdb/server/fdbmovedata_test.go b/services/fdb/server/fdbmovedata_test.go new file mode 100644 index 00000000..8d6ca990 --- /dev/null +++ b/services/fdb/server/fdbmovedata_test.go @@ -0,0 +1,181 @@ +/* Copyright (c) 2023 Snowflake Inc. All rights reserved. + + Licensed under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. +*/ + +package server + +import ( + "context" + "fmt" + "io" + + "strings" + "testing" + + pb "github.com/Snowflake-Labs/sansshell/services/fdb" + "github.com/Snowflake-Labs/sansshell/testing/testutil" + "google.golang.org/grpc" + "google.golang.org/grpc/credentials/insecure" + "google.golang.org/protobuf/proto" +) + +func TestFDBMoveData(t *testing.T) { + ctx := context.Background() + conn, err := grpc.DialContext(ctx, "bufnet", grpc.WithContextDialer(bufDialer), grpc.WithTransportCredentials(insecure.NewCredentials())) + testutil.FatalOnErr("grpc.DialContext(bufnet)", err, t) + t.Cleanup(func() { conn.Close() }) + + client := pb.NewFDBMoveClient(conn) + + savedGenerateFDBMoveDataArgs := generateFDBMoveDataArgs + t.Cleanup(func() { + generateFDBMoveDataArgs = savedGenerateFDBMoveDataArgs + }) + + bin := testutil.ResolvePath(t, "echo") + var commands []string + + generateFDBMoveDataArgs = func(req *pb.FDBMoveDataCopyRequest) ([]string, error) { + commands, err = savedGenerateFDBMoveDataArgs(req) + return []string{bin, strings.Join(commands, " ")}, err + } + + for _, tc := range []struct { + name string + reqCopy *pb.FDBMoveDataCopyRequest + outputWait []*pb.FDBMoveDataWaitResponse + }{ + { + name: "proper", + reqCopy: &pb.FDBMoveDataCopyRequest{ + ClusterFile: "1", + TenantGroup: "2", + SourceCluster: "3", + DestinationCluster: "4", + NumProcs: 5, + }, + outputWait: []*pb.FDBMoveDataWaitResponse{ + { + Stdout: []byte(" --cluster 1 --tenant-group 2 --src-name 3 --dst-name 4 --num-procs 5\n"), + }, + }, + }, + } { + tc := tc + t.Run(tc.name, func(t *testing.T) { + resp, err := client.FDBMoveDataCopy(ctx, tc.reqCopy) + testutil.FatalOnErr("fdbmovedata copy failed", err, t) + waitReq := &pb.FDBMoveDataWaitRequest{ + Id: resp.Id, + } + waitResp, err := client.FDBMoveDataWait(ctx, waitReq) + testutil.FatalOnErr("fdbmovedata wait failed", err, t) + for _, want := range tc.outputWait { + rs, err := waitResp.Recv() + if err != nil { + testutil.FatalOnErr("fdbmovedata wait recv failed", err, t) + } + if !(proto.Equal(want, rs)) { + t.Errorf("want: %v, got: %v", want, rs) + } + } + _, err = waitResp.Recv() + if err != io.EOF { + t.Error("unexpected") + } + }) + } + +} + +func TestFDBMoveDataDouble(t *testing.T) { + ctx := context.Background() + conn, err := grpc.DialContext(ctx, "bufnet", grpc.WithContextDialer(bufDialer), grpc.WithTransportCredentials(insecure.NewCredentials())) + testutil.FatalOnErr("grpc.DialContext(bufnet)", err, t) + t.Cleanup(func() { conn.Close() }) + + client1 := pb.NewFDBMoveClient(conn) + client2 := pb.NewFDBMoveClient(conn) + + savedGenerateFDBMoveDataArgs := generateFDBMoveDataArgs + t.Cleanup(func() { + generateFDBMoveDataArgs = savedGenerateFDBMoveDataArgs + }) + + sh := testutil.ResolvePath(t, "/bin/sh") + + generateFDBMoveDataArgs = func(req *pb.FDBMoveDataCopyRequest) ([]string, error) { + _, err = savedGenerateFDBMoveDataArgs(req) + return []string{sh, "-c", "/bin/sleep 1; echo done"}, err + } + for _, tc := range []struct { + name string + reqCopy *pb.FDBMoveDataCopyRequest + outputWait []*pb.FDBMoveDataWaitResponse + }{ + { + name: "double", + reqCopy: &pb.FDBMoveDataCopyRequest{ + ClusterFile: "1", + TenantGroup: "2", + SourceCluster: "3", + DestinationCluster: "4", + NumProcs: 5, + }, + outputWait: []*pb.FDBMoveDataWaitResponse{ + { + Stdout: []byte("done\n"), + }, + }, + }, + } { + tc := tc + t.Run(tc.name, func(t *testing.T) { + resp1, errCopy1 := client1.FDBMoveDataCopy(ctx, tc.reqCopy) + resp2, errCopy2 := client2.FDBMoveDataCopy(ctx, tc.reqCopy) + testutil.FatalOnErr("fdbmovedata copy1 failed", errCopy1, t) + testutil.FatalOnErr("fdbmovedata copy2 failed", errCopy2, t) + + if !(resp1.Id == resp2.Id) { + t.Errorf("want: %v, got: %v", resp1.Id, resp2.Id) + } + if !(resp2.Existing) { + t.Errorf("Expected resp2 to return an existing run") + } + + waitReq := &pb.FDBMoveDataWaitRequest{ + Id: resp1.Id, + } + waitResp1, err1 := client1.FDBMoveDataWait(ctx, waitReq) + testutil.FatalOnErr("fdbmovedata wait1 failed", err1, t) + for _, want1 := range tc.outputWait { + rs, err1 := waitResp1.Recv() + if err1 != io.EOF { + testutil.FatalOnErr("fdbmovedata wait1 failed", err1, t) + } + if !(proto.Equal(want1, rs)) { + t.Errorf("want: %v, got: %v", want1, rs) + } + } + waitResp2, err2 := client2.FDBMoveDataWait(ctx, waitReq) + testutil.FatalOnErr("fdbmovedata wait2 failed", err2, t) + + rs, err2 := waitResp2.Recv() + if err2 != io.EOF { + testutil.FatalOnNoErr(fmt.Sprintf("%v - resp %v", tc.name, rs), err2, t) + } + }) + } +} diff --git a/services/fdb/server/server_test.go b/services/fdb/server/server_test.go index 917c30a2..9d9c462c 100644 --- a/services/fdb/server/server_test.go +++ b/services/fdb/server/server_test.go @@ -52,6 +52,9 @@ func TestMain(m *testing.M) { fds := &fdbserver{} fds.Register(s) + fdbm := &fdbmovedata{} + fdbm.Register(s) + go func() { if err := s.Serve(lis); err != nil { log.Fatalf("Server exited with error: %v", err)