From 05e541cfb0417a2457bac7aea1b253cb4dce8af2 Mon Sep 17 00:00:00 2001 From: Raja Subramanian Date: Mon, 26 Aug 2024 12:40:00 +0530 Subject: [PATCH] Add grant for canSubscribeMetrics. (#795) * Add grant for canSubscribeMetrics. * Move can subscribe metrics to video grant. * generated protobuf * set CanSubscribeMetrics from permissions * generated protobuf --------- Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com> --- agent/token.go | 1 + auth/grants.go | 128 ++- auth/grants_test.go | 23 +- infra/link.pb.go | 16 +- infra/link_grpc.pb.go | 77 +- livekit/livekit_agent.pb.go | 50 +- livekit/livekit_agent_dispatch.pb.go | 20 +- livekit/livekit_analytics.pb.go | 28 +- livekit/livekit_egress.pb.go | 88 +- livekit/livekit_ingress.pb.go | 42 +- livekit/livekit_internal.pb.go | 18 +- livekit/livekit_metrics.pb.go | 16 +- livekit/livekit_models.pb.go | 1306 +++++++++++++------------- livekit/livekit_room.pb.go | 48 +- livekit/livekit_rtc.pb.go | 96 +- livekit/livekit_sip.pb.go | 64 +- livekit/livekit_webhook.pb.go | 8 +- protobufs/livekit_models.proto | 4 +- replay/cloud_replay.pb.go | 22 +- rpc/agent.pb.go | 12 +- rpc/agent.psrpc.go | 2 +- rpc/analytics.pb.go | 6 +- rpc/analytics_grpc.pb.go | 219 +++-- rpc/egress.pb.go | 14 +- rpc/egress.psrpc.go | 2 +- rpc/ingress.pb.go | 22 +- rpc/ingress.psrpc.go | 2 +- rpc/io.pb.go | 24 +- rpc/io.psrpc.go | 2 +- rpc/keepalive.pb.go | 8 +- rpc/keepalive.psrpc.go | 2 +- rpc/participant.pb.go | 6 +- rpc/participant.psrpc.go | 2 +- rpc/room.pb.go | 6 +- rpc/room.psrpc.go | 2 +- rpc/roommanager.pb.go | 6 +- rpc/roommanager.psrpc.go | 2 +- rpc/signal.pb.go | 10 +- rpc/signal.psrpc.go | 2 +- rpc/sip.pb.go | 10 +- rpc/sip.psrpc.go | 2 +- 41 files changed, 1289 insertions(+), 1129 deletions(-) diff --git a/agent/token.go b/agent/token.go index fd307eba..ff6822f7 100644 --- a/agent/token.go +++ b/agent/token.go @@ -17,6 +17,7 @@ func BuildAgentToken(apiKey, secret, roomName, participantIdentity, participantN CanPublishData: &permissions.CanPublishData, Hidden: permissions.Hidden, CanUpdateOwnMetadata: &permissions.CanUpdateMetadata, + CanSubscribeMetrics: &permissions.CanSubscribeMetrics, } at := auth.NewAccessToken(apiKey, secret). diff --git a/auth/grants.go b/auth/grants.go index b7fb58a0..c8a14df3 100644 --- a/auth/grants.go +++ b/auth/grants.go @@ -23,6 +23,42 @@ import ( "github.com/livekit/protocol/livekit" ) +type ClaimGrants struct { + Identity string `json:"-"` + Name string `json:"name,omitempty"` + Kind string `json:"kind,omitempty"` + Video *VideoGrant `json:"video,omitempty"` + SIP *SIPGrant `json:"sip,omitempty"` + // for verifying integrity of the message body + Sha256 string `json:"sha256,omitempty"` + Metadata string `json:"metadata,omitempty"` + // Key/value attributes to attach to the participant + Attributes map[string]string `json:"attributes,omitempty"` +} + +func (c *ClaimGrants) SetParticipantKind(kind livekit.ParticipantInfo_Kind) { + c.Kind = kindFromProto(kind) +} + +func (c *ClaimGrants) GetParticipantKind() livekit.ParticipantInfo_Kind { + return kindToProto(c.Kind) +} + +func (c *ClaimGrants) Clone() *ClaimGrants { + if c == nil { + return nil + } + + clone := *c + clone.Video = c.Video.Clone() + clone.SIP = c.SIP.Clone() + clone.Attributes = maps.Clone(c.Attributes) + + return &clone +} + +// ------------------------------------------------------------- + type VideoGrant struct { // actions on rooms RoomCreate bool `json:"roomCreate,omitempty"` @@ -57,48 +93,9 @@ type VideoGrant struct { // indicates that the holder can register as an Agent framework worker // it is also set on all participants that are joining as Agent Agent bool `json:"agent,omitempty"` -} -type SIPGrant struct { - // Admin grants access to all SIP features. - Admin bool `json:"admin,omitempty"` - - // Call allows making outbound SIP calls. - Call bool `json:"call,omitempty"` -} - -type ClaimGrants struct { - Identity string `json:"-"` - Name string `json:"name,omitempty"` - Kind string `json:"kind,omitempty"` - Video *VideoGrant `json:"video,omitempty"` - SIP *SIPGrant `json:"sip,omitempty"` - // for verifying integrity of the message body - Sha256 string `json:"sha256,omitempty"` - Metadata string `json:"metadata,omitempty"` - // Key/value attributes to attach to the participant - Attributes map[string]string `json:"attributes,omitempty"` -} - -func (c *ClaimGrants) SetParticipantKind(kind livekit.ParticipantInfo_Kind) { - c.Kind = kindFromProto(kind) -} - -func (c *ClaimGrants) GetParticipantKind() livekit.ParticipantInfo_Kind { - return kindToProto(c.Kind) -} - -func (c *ClaimGrants) Clone() *ClaimGrants { - if c == nil { - return nil - } - - clone := *c - clone.Video = c.Video.Clone() - clone.SIP = c.SIP.Clone() - clone.Attributes = maps.Clone(c.Attributes) - - return &clone + // if a participant can subscribe to metrics + CanSubscribeMetrics *bool `json:"canSubscribeMetrics,omitempty"` } func (v *VideoGrant) SetCanPublish(val bool) { @@ -124,6 +121,10 @@ func (v *VideoGrant) SetCanUpdateOwnMetadata(val bool) { v.CanUpdateOwnMetadata = &val } +func (v *VideoGrant) SetCanSubscribeMetrics(val bool) { + v.CanSubscribeMetrics = &val +} + func (v *VideoGrant) GetCanPublish() bool { if v.CanPublish == nil { return true @@ -181,6 +182,13 @@ func (v *VideoGrant) GetCanUpdateOwnMetadata() bool { return *v.CanUpdateOwnMetadata } +func (v *VideoGrant) GetCanSubscribeMetrics() bool { + if v.CanSubscribeMetrics == nil { + return false + } + return *v.CanSubscribeMetrics +} + func (v *VideoGrant) MatchesPermission(permission *livekit.ParticipantPermission) bool { if permission == nil { return false @@ -210,6 +218,9 @@ func (v *VideoGrant) MatchesPermission(permission *livekit.ParticipantPermission if !slices.Equal(v.GetCanPublishSources(), permission.CanPublishSources) { return false } + if v.GetCanSubscribeMetrics() != permission.CanSubscribeMetrics { + return false + } return true } @@ -227,20 +238,21 @@ func (v *VideoGrant) UpdateFromPermission(permission *livekit.ParticipantPermiss v.Hidden = permission.Hidden v.Recorder = permission.Recorder v.Agent = permission.Agent + v.SetCanSubscribeMetrics(permission.CanSubscribeMetrics) } func (v *VideoGrant) ToPermission() *livekit.ParticipantPermission { - pp := &livekit.ParticipantPermission{ - CanPublish: v.GetCanPublish(), - CanPublishData: v.GetCanPublishData(), - CanSubscribe: v.GetCanSubscribe(), - CanPublishSources: v.GetCanPublishSources(), - CanUpdateMetadata: v.GetCanUpdateOwnMetadata(), - Hidden: v.Hidden, - Recorder: v.Recorder, - Agent: v.Agent, - } - return pp + return &livekit.ParticipantPermission{ + CanPublish: v.GetCanPublish(), + CanPublishData: v.GetCanPublishData(), + CanSubscribe: v.GetCanSubscribe(), + CanPublishSources: v.GetCanPublishSources(), + CanUpdateMetadata: v.GetCanUpdateOwnMetadata(), + Hidden: v.Hidden, + Recorder: v.Recorder, + Agent: v.Agent, + CanSubscribeMetrics: v.GetCanSubscribeMetrics(), + } } func (v *VideoGrant) Clone() *VideoGrant { @@ -278,6 +290,16 @@ func (v *VideoGrant) Clone() *VideoGrant { return &clone } +// ---------------------------------------------------------------- + +type SIPGrant struct { + // Admin grants access to all SIP features. + Admin bool `json:"admin,omitempty"` + + // Call allows making outbound SIP calls. + Call bool `json:"call,omitempty"` +} + func (s *SIPGrant) Clone() *SIPGrant { if s == nil { return nil @@ -288,6 +310,8 @@ func (s *SIPGrant) Clone() *SIPGrant { return &clone } +// ------------------------------------------------------------------ + func sourceToString(source livekit.TrackSource) string { return strings.ToLower(source.String()) } diff --git a/auth/grants_test.go b/auth/grants_test.go index acc00998..c58e6e25 100644 --- a/auth/grants_test.go +++ b/auth/grants_test.go @@ -54,17 +54,18 @@ func TestGrants(t *testing.T) { tr := true fa := false video := &VideoGrant{ - RoomCreate: true, - RoomList: false, - RoomRecord: true, - RoomAdmin: false, - RoomJoin: true, - Room: "room", - CanPublish: &tr, - CanSubscribe: &fa, - CanPublishData: nil, - Hidden: true, - Recorder: false, + RoomCreate: true, + RoomList: false, + RoomRecord: true, + RoomAdmin: false, + RoomJoin: true, + Room: "room", + CanPublish: &tr, + CanSubscribe: &fa, + CanPublishData: nil, + Hidden: true, + Recorder: false, + CanSubscribeMetrics: &tr, } grants := &ClaimGrants{ Identity: "identity", diff --git a/infra/link.pb.go b/infra/link.pb.go index c53e392e..26df7f67 100644 --- a/infra/link.pb.go +++ b/infra/link.pb.go @@ -14,8 +14,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.2 -// protoc v4.23.4 +// protoc-gen-go v1.31.0 +// protoc v4.24.3 // source: infra/link.proto package infra @@ -375,7 +375,7 @@ func file_infra_link_proto_rawDescGZIP() []byte { } var file_infra_link_proto_msgTypes = make([]protoimpl.MessageInfo, 4) -var file_infra_link_proto_goTypes = []any{ +var file_infra_link_proto_goTypes = []interface{}{ (*WatchLocalLinksRequest)(nil), // 0: rpc.WatchLocalLinksRequest (*WatchLocalLinksResponse)(nil), // 1: rpc.WatchLocalLinksResponse (*SimulateLinkStateRequest)(nil), // 2: rpc.SimulateLinkStateRequest @@ -401,7 +401,7 @@ func file_infra_link_proto_init() { return } if !protoimpl.UnsafeEnabled { - file_infra_link_proto_msgTypes[0].Exporter = func(v any, i int) any { + file_infra_link_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WatchLocalLinksRequest); i { case 0: return &v.state @@ -413,7 +413,7 @@ func file_infra_link_proto_init() { return nil } } - file_infra_link_proto_msgTypes[1].Exporter = func(v any, i int) any { + file_infra_link_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WatchLocalLinksResponse); i { case 0: return &v.state @@ -425,7 +425,7 @@ func file_infra_link_proto_init() { return nil } } - file_infra_link_proto_msgTypes[2].Exporter = func(v any, i int) any { + file_infra_link_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SimulateLinkStateRequest); i { case 0: return &v.state @@ -437,7 +437,7 @@ func file_infra_link_proto_init() { return nil } } - file_infra_link_proto_msgTypes[3].Exporter = func(v any, i int) any { + file_infra_link_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SimulateLinkStateResponse); i { case 0: return &v.state @@ -450,7 +450,7 @@ func file_infra_link_proto_init() { } } } - file_infra_link_proto_msgTypes[2].OneofWrappers = []any{} + file_infra_link_proto_msgTypes[2].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/infra/link_grpc.pb.go b/infra/link_grpc.pb.go index 281cec95..832b0d43 100644 --- a/infra/link_grpc.pb.go +++ b/infra/link_grpc.pb.go @@ -14,8 +14,8 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: -// - protoc-gen-go-grpc v1.5.1 -// - protoc v4.23.4 +// - protoc-gen-go-grpc v1.3.0 +// - protoc v4.24.3 // source: infra/link.proto package infra @@ -29,8 +29,8 @@ import ( // This is a compile-time assertion to ensure that this generated file // is compatible with the grpc package it is being compiled against. -// Requires gRPC-Go v1.64.0 or later. -const _ = grpc.SupportPackageIsVersion9 +// Requires gRPC-Go v1.32.0 or later. +const _ = grpc.SupportPackageIsVersion7 const ( Link_WatchLocalLinks_FullMethodName = "/rpc.Link/WatchLocalLinks" @@ -41,7 +41,7 @@ const ( // // 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 LinkClient interface { - WatchLocalLinks(ctx context.Context, in *WatchLocalLinksRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[WatchLocalLinksResponse], error) + WatchLocalLinks(ctx context.Context, in *WatchLocalLinksRequest, opts ...grpc.CallOption) (Link_WatchLocalLinksClient, error) SimulateLinkState(ctx context.Context, in *SimulateLinkStateRequest, opts ...grpc.CallOption) (*SimulateLinkStateResponse, error) } @@ -53,13 +53,12 @@ func NewLinkClient(cc grpc.ClientConnInterface) LinkClient { return &linkClient{cc} } -func (c *linkClient) WatchLocalLinks(ctx context.Context, in *WatchLocalLinksRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[WatchLocalLinksResponse], error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - stream, err := c.cc.NewStream(ctx, &Link_ServiceDesc.Streams[0], Link_WatchLocalLinks_FullMethodName, cOpts...) +func (c *linkClient) WatchLocalLinks(ctx context.Context, in *WatchLocalLinksRequest, opts ...grpc.CallOption) (Link_WatchLocalLinksClient, error) { + stream, err := c.cc.NewStream(ctx, &Link_ServiceDesc.Streams[0], Link_WatchLocalLinks_FullMethodName, opts...) if err != nil { return nil, err } - x := &grpc.GenericClientStream[WatchLocalLinksRequest, WatchLocalLinksResponse]{ClientStream: stream} + x := &linkWatchLocalLinksClient{stream} if err := x.ClientStream.SendMsg(in); err != nil { return nil, err } @@ -69,13 +68,26 @@ func (c *linkClient) WatchLocalLinks(ctx context.Context, in *WatchLocalLinksReq return x, nil } -// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name. -type Link_WatchLocalLinksClient = grpc.ServerStreamingClient[WatchLocalLinksResponse] +type Link_WatchLocalLinksClient interface { + Recv() (*WatchLocalLinksResponse, error) + grpc.ClientStream +} + +type linkWatchLocalLinksClient struct { + grpc.ClientStream +} + +func (x *linkWatchLocalLinksClient) Recv() (*WatchLocalLinksResponse, error) { + m := new(WatchLocalLinksResponse) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} func (c *linkClient) SimulateLinkState(ctx context.Context, in *SimulateLinkStateRequest, opts ...grpc.CallOption) (*SimulateLinkStateResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(SimulateLinkStateResponse) - err := c.cc.Invoke(ctx, Link_SimulateLinkState_FullMethodName, in, out, cOpts...) + err := c.cc.Invoke(ctx, Link_SimulateLinkState_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -84,28 +96,24 @@ func (c *linkClient) SimulateLinkState(ctx context.Context, in *SimulateLinkStat // LinkServer is the server API for Link service. // All implementations must embed UnimplementedLinkServer -// for forward compatibility. +// for forward compatibility type LinkServer interface { - WatchLocalLinks(*WatchLocalLinksRequest, grpc.ServerStreamingServer[WatchLocalLinksResponse]) error + WatchLocalLinks(*WatchLocalLinksRequest, Link_WatchLocalLinksServer) error SimulateLinkState(context.Context, *SimulateLinkStateRequest) (*SimulateLinkStateResponse, error) mustEmbedUnimplementedLinkServer() } -// UnimplementedLinkServer must be embedded to have -// forward compatible implementations. -// -// NOTE: this should be embedded by value instead of pointer to avoid a nil -// pointer dereference when methods are called. -type UnimplementedLinkServer struct{} +// UnimplementedLinkServer must be embedded to have forward compatible implementations. +type UnimplementedLinkServer struct { +} -func (UnimplementedLinkServer) WatchLocalLinks(*WatchLocalLinksRequest, grpc.ServerStreamingServer[WatchLocalLinksResponse]) error { +func (UnimplementedLinkServer) WatchLocalLinks(*WatchLocalLinksRequest, Link_WatchLocalLinksServer) error { return status.Errorf(codes.Unimplemented, "method WatchLocalLinks not implemented") } func (UnimplementedLinkServer) SimulateLinkState(context.Context, *SimulateLinkStateRequest) (*SimulateLinkStateResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method SimulateLinkState not implemented") } func (UnimplementedLinkServer) mustEmbedUnimplementedLinkServer() {} -func (UnimplementedLinkServer) testEmbeddedByValue() {} // UnsafeLinkServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to LinkServer will @@ -115,13 +123,6 @@ type UnsafeLinkServer interface { } func RegisterLinkServer(s grpc.ServiceRegistrar, srv LinkServer) { - // If the following call pancis, it indicates UnimplementedLinkServer was - // embedded by pointer and is nil. This will cause panics if an - // unimplemented method is ever invoked, so we test this at initialization - // time to prevent it from happening at runtime later due to I/O. - if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { - t.testEmbeddedByValue() - } s.RegisterService(&Link_ServiceDesc, srv) } @@ -130,11 +131,21 @@ func _Link_WatchLocalLinks_Handler(srv interface{}, stream grpc.ServerStream) er if err := stream.RecvMsg(m); err != nil { return err } - return srv.(LinkServer).WatchLocalLinks(m, &grpc.GenericServerStream[WatchLocalLinksRequest, WatchLocalLinksResponse]{ServerStream: stream}) + return srv.(LinkServer).WatchLocalLinks(m, &linkWatchLocalLinksServer{stream}) +} + +type Link_WatchLocalLinksServer interface { + Send(*WatchLocalLinksResponse) error + grpc.ServerStream } -// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name. -type Link_WatchLocalLinksServer = grpc.ServerStreamingServer[WatchLocalLinksResponse] +type linkWatchLocalLinksServer struct { + grpc.ServerStream +} + +func (x *linkWatchLocalLinksServer) Send(m *WatchLocalLinksResponse) error { + return x.ServerStream.SendMsg(m) +} func _Link_SimulateLinkState_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(SimulateLinkStateRequest) diff --git a/livekit/livekit_agent.pb.go b/livekit/livekit_agent.pb.go index 111fb272..81cf6329 100644 --- a/livekit/livekit_agent.pb.go +++ b/livekit/livekit_agent.pb.go @@ -14,8 +14,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.2 -// protoc v4.23.4 +// protoc-gen-go v1.31.0 +// protoc v4.24.3 // source: livekit_agent.proto package livekit @@ -1622,7 +1622,7 @@ func file_livekit_agent_proto_rawDescGZIP() []byte { var file_livekit_agent_proto_enumTypes = make([]protoimpl.EnumInfo, 3) var file_livekit_agent_proto_msgTypes = make([]protoimpl.MessageInfo, 17) -var file_livekit_agent_proto_goTypes = []any{ +var file_livekit_agent_proto_goTypes = []interface{}{ (JobType)(0), // 0: livekit.JobType (WorkerStatus)(0), // 1: livekit.WorkerStatus (JobStatus)(0), // 2: livekit.JobStatus @@ -1691,7 +1691,7 @@ func file_livekit_agent_proto_init() { } file_livekit_models_proto_init() if !protoimpl.UnsafeEnabled { - file_livekit_agent_proto_msgTypes[0].Exporter = func(v any, i int) any { + file_livekit_agent_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Job); i { case 0: return &v.state @@ -1703,7 +1703,7 @@ func file_livekit_agent_proto_init() { return nil } } - file_livekit_agent_proto_msgTypes[1].Exporter = func(v any, i int) any { + file_livekit_agent_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*JobState); i { case 0: return &v.state @@ -1715,7 +1715,7 @@ func file_livekit_agent_proto_init() { return nil } } - file_livekit_agent_proto_msgTypes[2].Exporter = func(v any, i int) any { + file_livekit_agent_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WorkerMessage); i { case 0: return &v.state @@ -1727,7 +1727,7 @@ func file_livekit_agent_proto_init() { return nil } } - file_livekit_agent_proto_msgTypes[3].Exporter = func(v any, i int) any { + file_livekit_agent_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ServerMessage); i { case 0: return &v.state @@ -1739,7 +1739,7 @@ func file_livekit_agent_proto_init() { return nil } } - file_livekit_agent_proto_msgTypes[4].Exporter = func(v any, i int) any { + file_livekit_agent_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SimulateJobRequest); i { case 0: return &v.state @@ -1751,7 +1751,7 @@ func file_livekit_agent_proto_init() { return nil } } - file_livekit_agent_proto_msgTypes[5].Exporter = func(v any, i int) any { + file_livekit_agent_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WorkerPing); i { case 0: return &v.state @@ -1763,7 +1763,7 @@ func file_livekit_agent_proto_init() { return nil } } - file_livekit_agent_proto_msgTypes[6].Exporter = func(v any, i int) any { + file_livekit_agent_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WorkerPong); i { case 0: return &v.state @@ -1775,7 +1775,7 @@ func file_livekit_agent_proto_init() { return nil } } - file_livekit_agent_proto_msgTypes[7].Exporter = func(v any, i int) any { + file_livekit_agent_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RegisterWorkerRequest); i { case 0: return &v.state @@ -1787,7 +1787,7 @@ func file_livekit_agent_proto_init() { return nil } } - file_livekit_agent_proto_msgTypes[8].Exporter = func(v any, i int) any { + file_livekit_agent_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RegisterWorkerResponse); i { case 0: return &v.state @@ -1799,7 +1799,7 @@ func file_livekit_agent_proto_init() { return nil } } - file_livekit_agent_proto_msgTypes[9].Exporter = func(v any, i int) any { + file_livekit_agent_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MigrateJobRequest); i { case 0: return &v.state @@ -1811,7 +1811,7 @@ func file_livekit_agent_proto_init() { return nil } } - file_livekit_agent_proto_msgTypes[10].Exporter = func(v any, i int) any { + file_livekit_agent_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AvailabilityRequest); i { case 0: return &v.state @@ -1823,7 +1823,7 @@ func file_livekit_agent_proto_init() { return nil } } - file_livekit_agent_proto_msgTypes[11].Exporter = func(v any, i int) any { + file_livekit_agent_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AvailabilityResponse); i { case 0: return &v.state @@ -1835,7 +1835,7 @@ func file_livekit_agent_proto_init() { return nil } } - file_livekit_agent_proto_msgTypes[12].Exporter = func(v any, i int) any { + file_livekit_agent_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateJobStatus); i { case 0: return &v.state @@ -1847,7 +1847,7 @@ func file_livekit_agent_proto_init() { return nil } } - file_livekit_agent_proto_msgTypes[13].Exporter = func(v any, i int) any { + file_livekit_agent_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateWorkerStatus); i { case 0: return &v.state @@ -1859,7 +1859,7 @@ func file_livekit_agent_proto_init() { return nil } } - file_livekit_agent_proto_msgTypes[14].Exporter = func(v any, i int) any { + file_livekit_agent_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*JobAssignment); i { case 0: return &v.state @@ -1871,7 +1871,7 @@ func file_livekit_agent_proto_init() { return nil } } - file_livekit_agent_proto_msgTypes[15].Exporter = func(v any, i int) any { + file_livekit_agent_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*JobTermination); i { case 0: return &v.state @@ -1884,8 +1884,8 @@ func file_livekit_agent_proto_init() { } } } - file_livekit_agent_proto_msgTypes[0].OneofWrappers = []any{} - file_livekit_agent_proto_msgTypes[2].OneofWrappers = []any{ + file_livekit_agent_proto_msgTypes[0].OneofWrappers = []interface{}{} + file_livekit_agent_proto_msgTypes[2].OneofWrappers = []interface{}{ (*WorkerMessage_Register)(nil), (*WorkerMessage_Availability)(nil), (*WorkerMessage_UpdateWorker)(nil), @@ -1894,16 +1894,16 @@ func file_livekit_agent_proto_init() { (*WorkerMessage_SimulateJob)(nil), (*WorkerMessage_MigrateJob)(nil), } - file_livekit_agent_proto_msgTypes[3].OneofWrappers = []any{ + file_livekit_agent_proto_msgTypes[3].OneofWrappers = []interface{}{ (*ServerMessage_Register)(nil), (*ServerMessage_Availability)(nil), (*ServerMessage_Assignment)(nil), (*ServerMessage_Termination)(nil), (*ServerMessage_Pong)(nil), } - file_livekit_agent_proto_msgTypes[7].OneofWrappers = []any{} - file_livekit_agent_proto_msgTypes[13].OneofWrappers = []any{} - file_livekit_agent_proto_msgTypes[14].OneofWrappers = []any{} + file_livekit_agent_proto_msgTypes[7].OneofWrappers = []interface{}{} + file_livekit_agent_proto_msgTypes[13].OneofWrappers = []interface{}{} + file_livekit_agent_proto_msgTypes[14].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/livekit/livekit_agent_dispatch.pb.go b/livekit/livekit_agent_dispatch.pb.go index 23d3a14e..f79eeb04 100644 --- a/livekit/livekit_agent_dispatch.pb.go +++ b/livekit/livekit_agent_dispatch.pb.go @@ -14,8 +14,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.2 -// protoc v4.23.4 +// protoc-gen-go v1.31.0 +// protoc v4.24.3 // source: livekit_agent_dispatch.proto package livekit @@ -534,7 +534,7 @@ func file_livekit_agent_dispatch_proto_rawDescGZIP() []byte { } var file_livekit_agent_dispatch_proto_msgTypes = make([]protoimpl.MessageInfo, 7) -var file_livekit_agent_dispatch_proto_goTypes = []any{ +var file_livekit_agent_dispatch_proto_goTypes = []interface{}{ (*CreateAgentDispatchRequest)(nil), // 0: livekit.CreateAgentDispatchRequest (*RoomAgentDispatch)(nil), // 1: livekit.RoomAgentDispatch (*DeleteAgentDispatchRequest)(nil), // 2: livekit.DeleteAgentDispatchRequest @@ -568,7 +568,7 @@ func file_livekit_agent_dispatch_proto_init() { } file_livekit_agent_proto_init() if !protoimpl.UnsafeEnabled { - file_livekit_agent_dispatch_proto_msgTypes[0].Exporter = func(v any, i int) any { + file_livekit_agent_dispatch_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateAgentDispatchRequest); i { case 0: return &v.state @@ -580,7 +580,7 @@ func file_livekit_agent_dispatch_proto_init() { return nil } } - file_livekit_agent_dispatch_proto_msgTypes[1].Exporter = func(v any, i int) any { + file_livekit_agent_dispatch_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RoomAgentDispatch); i { case 0: return &v.state @@ -592,7 +592,7 @@ func file_livekit_agent_dispatch_proto_init() { return nil } } - file_livekit_agent_dispatch_proto_msgTypes[2].Exporter = func(v any, i int) any { + file_livekit_agent_dispatch_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteAgentDispatchRequest); i { case 0: return &v.state @@ -604,7 +604,7 @@ func file_livekit_agent_dispatch_proto_init() { return nil } } - file_livekit_agent_dispatch_proto_msgTypes[3].Exporter = func(v any, i int) any { + file_livekit_agent_dispatch_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListAgentDispatchRequesst); i { case 0: return &v.state @@ -616,7 +616,7 @@ func file_livekit_agent_dispatch_proto_init() { return nil } } - file_livekit_agent_dispatch_proto_msgTypes[4].Exporter = func(v any, i int) any { + file_livekit_agent_dispatch_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListAgentDispatchResponse); i { case 0: return &v.state @@ -628,7 +628,7 @@ func file_livekit_agent_dispatch_proto_init() { return nil } } - file_livekit_agent_dispatch_proto_msgTypes[5].Exporter = func(v any, i int) any { + file_livekit_agent_dispatch_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AgentDispatch); i { case 0: return &v.state @@ -640,7 +640,7 @@ func file_livekit_agent_dispatch_proto_init() { return nil } } - file_livekit_agent_dispatch_proto_msgTypes[6].Exporter = func(v any, i int) any { + file_livekit_agent_dispatch_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AgentDispatchState); i { case 0: return &v.state diff --git a/livekit/livekit_analytics.pb.go b/livekit/livekit_analytics.pb.go index 1a8a429f..c6c87808 100644 --- a/livekit/livekit_analytics.pb.go +++ b/livekit/livekit_analytics.pb.go @@ -14,8 +14,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.2 -// protoc v4.23.4 +// protoc-gen-go v1.31.0 +// protoc v4.24.3 // source: livekit_analytics.proto package livekit @@ -1557,7 +1557,7 @@ func file_livekit_analytics_proto_rawDescGZIP() []byte { var file_livekit_analytics_proto_enumTypes = make([]protoimpl.EnumInfo, 2) var file_livekit_analytics_proto_msgTypes = make([]protoimpl.MessageInfo, 10) -var file_livekit_analytics_proto_goTypes = []any{ +var file_livekit_analytics_proto_goTypes = []interface{}{ (StreamType)(0), // 0: livekit.StreamType (AnalyticsEventType)(0), // 1: livekit.AnalyticsEventType (*AnalyticsVideoLayer)(nil), // 2: livekit.AnalyticsVideoLayer @@ -1626,7 +1626,7 @@ func file_livekit_analytics_proto_init() { file_livekit_egress_proto_init() file_livekit_ingress_proto_init() if !protoimpl.UnsafeEnabled { - file_livekit_analytics_proto_msgTypes[0].Exporter = func(v any, i int) any { + file_livekit_analytics_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AnalyticsVideoLayer); i { case 0: return &v.state @@ -1638,7 +1638,7 @@ func file_livekit_analytics_proto_init() { return nil } } - file_livekit_analytics_proto_msgTypes[1].Exporter = func(v any, i int) any { + file_livekit_analytics_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AnalyticsStream); i { case 0: return &v.state @@ -1650,7 +1650,7 @@ func file_livekit_analytics_proto_init() { return nil } } - file_livekit_analytics_proto_msgTypes[2].Exporter = func(v any, i int) any { + file_livekit_analytics_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AnalyticsStat); i { case 0: return &v.state @@ -1662,7 +1662,7 @@ func file_livekit_analytics_proto_init() { return nil } } - file_livekit_analytics_proto_msgTypes[3].Exporter = func(v any, i int) any { + file_livekit_analytics_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AnalyticsStats); i { case 0: return &v.state @@ -1674,7 +1674,7 @@ func file_livekit_analytics_proto_init() { return nil } } - file_livekit_analytics_proto_msgTypes[4].Exporter = func(v any, i int) any { + file_livekit_analytics_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AnalyticsClientMeta); i { case 0: return &v.state @@ -1686,7 +1686,7 @@ func file_livekit_analytics_proto_init() { return nil } } - file_livekit_analytics_proto_msgTypes[5].Exporter = func(v any, i int) any { + file_livekit_analytics_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AnalyticsEvent); i { case 0: return &v.state @@ -1698,7 +1698,7 @@ func file_livekit_analytics_proto_init() { return nil } } - file_livekit_analytics_proto_msgTypes[6].Exporter = func(v any, i int) any { + file_livekit_analytics_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AnalyticsEvents); i { case 0: return &v.state @@ -1710,7 +1710,7 @@ func file_livekit_analytics_proto_init() { return nil } } - file_livekit_analytics_proto_msgTypes[7].Exporter = func(v any, i int) any { + file_livekit_analytics_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AnalyticsRoomParticipant); i { case 0: return &v.state @@ -1722,7 +1722,7 @@ func file_livekit_analytics_proto_init() { return nil } } - file_livekit_analytics_proto_msgTypes[8].Exporter = func(v any, i int) any { + file_livekit_analytics_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AnalyticsRoom); i { case 0: return &v.state @@ -1734,7 +1734,7 @@ func file_livekit_analytics_proto_init() { return nil } } - file_livekit_analytics_proto_msgTypes[9].Exporter = func(v any, i int) any { + file_livekit_analytics_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AnalyticsNodeRooms); i { case 0: return &v.state @@ -1747,7 +1747,7 @@ func file_livekit_analytics_proto_init() { } } } - file_livekit_analytics_proto_msgTypes[4].OneofWrappers = []any{} + file_livekit_analytics_proto_msgTypes[4].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/livekit/livekit_egress.pb.go b/livekit/livekit_egress.pb.go index be8ae59b..df7cfa72 100644 --- a/livekit/livekit_egress.pb.go +++ b/livekit/livekit_egress.pb.go @@ -14,8 +14,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.2 -// protoc v4.23.4 +// protoc-gen-go v1.31.0 +// protoc v4.24.3 // source: livekit_egress.proto package livekit @@ -4352,7 +4352,7 @@ func file_livekit_egress_proto_rawDescGZIP() []byte { var file_livekit_egress_proto_enumTypes = make([]protoimpl.EnumInfo, 8) var file_livekit_egress_proto_msgTypes = make([]protoimpl.MessageInfo, 30) -var file_livekit_egress_proto_goTypes = []any{ +var file_livekit_egress_proto_goTypes = []interface{}{ (EncodedFileType)(0), // 0: livekit.EncodedFileType (SegmentedFileProtocol)(0), // 1: livekit.SegmentedFileProtocol (SegmentedFileSuffix)(0), // 2: livekit.SegmentedFileSuffix @@ -4513,7 +4513,7 @@ func file_livekit_egress_proto_init() { } file_livekit_models_proto_init() if !protoimpl.UnsafeEnabled { - file_livekit_egress_proto_msgTypes[0].Exporter = func(v any, i int) any { + file_livekit_egress_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RoomCompositeEgressRequest); i { case 0: return &v.state @@ -4525,7 +4525,7 @@ func file_livekit_egress_proto_init() { return nil } } - file_livekit_egress_proto_msgTypes[1].Exporter = func(v any, i int) any { + file_livekit_egress_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WebEgressRequest); i { case 0: return &v.state @@ -4537,7 +4537,7 @@ func file_livekit_egress_proto_init() { return nil } } - file_livekit_egress_proto_msgTypes[2].Exporter = func(v any, i int) any { + file_livekit_egress_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ParticipantEgressRequest); i { case 0: return &v.state @@ -4549,7 +4549,7 @@ func file_livekit_egress_proto_init() { return nil } } - file_livekit_egress_proto_msgTypes[3].Exporter = func(v any, i int) any { + file_livekit_egress_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TrackCompositeEgressRequest); i { case 0: return &v.state @@ -4561,7 +4561,7 @@ func file_livekit_egress_proto_init() { return nil } } - file_livekit_egress_proto_msgTypes[4].Exporter = func(v any, i int) any { + file_livekit_egress_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TrackEgressRequest); i { case 0: return &v.state @@ -4573,7 +4573,7 @@ func file_livekit_egress_proto_init() { return nil } } - file_livekit_egress_proto_msgTypes[5].Exporter = func(v any, i int) any { + file_livekit_egress_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EncodedFileOutput); i { case 0: return &v.state @@ -4585,7 +4585,7 @@ func file_livekit_egress_proto_init() { return nil } } - file_livekit_egress_proto_msgTypes[6].Exporter = func(v any, i int) any { + file_livekit_egress_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SegmentedFileOutput); i { case 0: return &v.state @@ -4597,7 +4597,7 @@ func file_livekit_egress_proto_init() { return nil } } - file_livekit_egress_proto_msgTypes[7].Exporter = func(v any, i int) any { + file_livekit_egress_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DirectFileOutput); i { case 0: return &v.state @@ -4609,7 +4609,7 @@ func file_livekit_egress_proto_init() { return nil } } - file_livekit_egress_proto_msgTypes[8].Exporter = func(v any, i int) any { + file_livekit_egress_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ImageOutput); i { case 0: return &v.state @@ -4621,7 +4621,7 @@ func file_livekit_egress_proto_init() { return nil } } - file_livekit_egress_proto_msgTypes[9].Exporter = func(v any, i int) any { + file_livekit_egress_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*S3Upload); i { case 0: return &v.state @@ -4633,7 +4633,7 @@ func file_livekit_egress_proto_init() { return nil } } - file_livekit_egress_proto_msgTypes[10].Exporter = func(v any, i int) any { + file_livekit_egress_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GCPUpload); i { case 0: return &v.state @@ -4645,7 +4645,7 @@ func file_livekit_egress_proto_init() { return nil } } - file_livekit_egress_proto_msgTypes[11].Exporter = func(v any, i int) any { + file_livekit_egress_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AzureBlobUpload); i { case 0: return &v.state @@ -4657,7 +4657,7 @@ func file_livekit_egress_proto_init() { return nil } } - file_livekit_egress_proto_msgTypes[12].Exporter = func(v any, i int) any { + file_livekit_egress_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AliOSSUpload); i { case 0: return &v.state @@ -4669,7 +4669,7 @@ func file_livekit_egress_proto_init() { return nil } } - file_livekit_egress_proto_msgTypes[13].Exporter = func(v any, i int) any { + file_livekit_egress_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ProxyConfig); i { case 0: return &v.state @@ -4681,7 +4681,7 @@ func file_livekit_egress_proto_init() { return nil } } - file_livekit_egress_proto_msgTypes[14].Exporter = func(v any, i int) any { + file_livekit_egress_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StreamOutput); i { case 0: return &v.state @@ -4693,7 +4693,7 @@ func file_livekit_egress_proto_init() { return nil } } - file_livekit_egress_proto_msgTypes[15].Exporter = func(v any, i int) any { + file_livekit_egress_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EncodingOptions); i { case 0: return &v.state @@ -4705,7 +4705,7 @@ func file_livekit_egress_proto_init() { return nil } } - file_livekit_egress_proto_msgTypes[16].Exporter = func(v any, i int) any { + file_livekit_egress_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateLayoutRequest); i { case 0: return &v.state @@ -4717,7 +4717,7 @@ func file_livekit_egress_proto_init() { return nil } } - file_livekit_egress_proto_msgTypes[17].Exporter = func(v any, i int) any { + file_livekit_egress_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateStreamRequest); i { case 0: return &v.state @@ -4729,7 +4729,7 @@ func file_livekit_egress_proto_init() { return nil } } - file_livekit_egress_proto_msgTypes[18].Exporter = func(v any, i int) any { + file_livekit_egress_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListEgressRequest); i { case 0: return &v.state @@ -4741,7 +4741,7 @@ func file_livekit_egress_proto_init() { return nil } } - file_livekit_egress_proto_msgTypes[19].Exporter = func(v any, i int) any { + file_livekit_egress_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListEgressResponse); i { case 0: return &v.state @@ -4753,7 +4753,7 @@ func file_livekit_egress_proto_init() { return nil } } - file_livekit_egress_proto_msgTypes[20].Exporter = func(v any, i int) any { + file_livekit_egress_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StopEgressRequest); i { case 0: return &v.state @@ -4765,7 +4765,7 @@ func file_livekit_egress_proto_init() { return nil } } - file_livekit_egress_proto_msgTypes[21].Exporter = func(v any, i int) any { + file_livekit_egress_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EgressInfo); i { case 0: return &v.state @@ -4777,7 +4777,7 @@ func file_livekit_egress_proto_init() { return nil } } - file_livekit_egress_proto_msgTypes[22].Exporter = func(v any, i int) any { + file_livekit_egress_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StreamInfoList); i { case 0: return &v.state @@ -4789,7 +4789,7 @@ func file_livekit_egress_proto_init() { return nil } } - file_livekit_egress_proto_msgTypes[23].Exporter = func(v any, i int) any { + file_livekit_egress_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StreamInfo); i { case 0: return &v.state @@ -4801,7 +4801,7 @@ func file_livekit_egress_proto_init() { return nil } } - file_livekit_egress_proto_msgTypes[24].Exporter = func(v any, i int) any { + file_livekit_egress_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FileInfo); i { case 0: return &v.state @@ -4813,7 +4813,7 @@ func file_livekit_egress_proto_init() { return nil } } - file_livekit_egress_proto_msgTypes[25].Exporter = func(v any, i int) any { + file_livekit_egress_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SegmentsInfo); i { case 0: return &v.state @@ -4825,7 +4825,7 @@ func file_livekit_egress_proto_init() { return nil } } - file_livekit_egress_proto_msgTypes[26].Exporter = func(v any, i int) any { + file_livekit_egress_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ImagesInfo); i { case 0: return &v.state @@ -4837,7 +4837,7 @@ func file_livekit_egress_proto_init() { return nil } } - file_livekit_egress_proto_msgTypes[27].Exporter = func(v any, i int) any { + file_livekit_egress_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AutoParticipantEgress); i { case 0: return &v.state @@ -4849,7 +4849,7 @@ func file_livekit_egress_proto_init() { return nil } } - file_livekit_egress_proto_msgTypes[28].Exporter = func(v any, i int) any { + file_livekit_egress_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AutoTrackEgress); i { case 0: return &v.state @@ -4862,60 +4862,60 @@ func file_livekit_egress_proto_init() { } } } - file_livekit_egress_proto_msgTypes[0].OneofWrappers = []any{ + file_livekit_egress_proto_msgTypes[0].OneofWrappers = []interface{}{ (*RoomCompositeEgressRequest_File)(nil), (*RoomCompositeEgressRequest_Stream)(nil), (*RoomCompositeEgressRequest_Segments)(nil), (*RoomCompositeEgressRequest_Preset)(nil), (*RoomCompositeEgressRequest_Advanced)(nil), } - file_livekit_egress_proto_msgTypes[1].OneofWrappers = []any{ + file_livekit_egress_proto_msgTypes[1].OneofWrappers = []interface{}{ (*WebEgressRequest_File)(nil), (*WebEgressRequest_Stream)(nil), (*WebEgressRequest_Segments)(nil), (*WebEgressRequest_Preset)(nil), (*WebEgressRequest_Advanced)(nil), } - file_livekit_egress_proto_msgTypes[2].OneofWrappers = []any{ + file_livekit_egress_proto_msgTypes[2].OneofWrappers = []interface{}{ (*ParticipantEgressRequest_Preset)(nil), (*ParticipantEgressRequest_Advanced)(nil), } - file_livekit_egress_proto_msgTypes[3].OneofWrappers = []any{ + file_livekit_egress_proto_msgTypes[3].OneofWrappers = []interface{}{ (*TrackCompositeEgressRequest_File)(nil), (*TrackCompositeEgressRequest_Stream)(nil), (*TrackCompositeEgressRequest_Segments)(nil), (*TrackCompositeEgressRequest_Preset)(nil), (*TrackCompositeEgressRequest_Advanced)(nil), } - file_livekit_egress_proto_msgTypes[4].OneofWrappers = []any{ + file_livekit_egress_proto_msgTypes[4].OneofWrappers = []interface{}{ (*TrackEgressRequest_File)(nil), (*TrackEgressRequest_WebsocketUrl)(nil), } - file_livekit_egress_proto_msgTypes[5].OneofWrappers = []any{ + file_livekit_egress_proto_msgTypes[5].OneofWrappers = []interface{}{ (*EncodedFileOutput_S3)(nil), (*EncodedFileOutput_Gcp)(nil), (*EncodedFileOutput_Azure)(nil), (*EncodedFileOutput_AliOSS)(nil), } - file_livekit_egress_proto_msgTypes[6].OneofWrappers = []any{ + file_livekit_egress_proto_msgTypes[6].OneofWrappers = []interface{}{ (*SegmentedFileOutput_S3)(nil), (*SegmentedFileOutput_Gcp)(nil), (*SegmentedFileOutput_Azure)(nil), (*SegmentedFileOutput_AliOSS)(nil), } - file_livekit_egress_proto_msgTypes[7].OneofWrappers = []any{ + file_livekit_egress_proto_msgTypes[7].OneofWrappers = []interface{}{ (*DirectFileOutput_S3)(nil), (*DirectFileOutput_Gcp)(nil), (*DirectFileOutput_Azure)(nil), (*DirectFileOutput_AliOSS)(nil), } - file_livekit_egress_proto_msgTypes[8].OneofWrappers = []any{ + file_livekit_egress_proto_msgTypes[8].OneofWrappers = []interface{}{ (*ImageOutput_S3)(nil), (*ImageOutput_Gcp)(nil), (*ImageOutput_Azure)(nil), (*ImageOutput_AliOSS)(nil), } - file_livekit_egress_proto_msgTypes[21].OneofWrappers = []any{ + file_livekit_egress_proto_msgTypes[21].OneofWrappers = []interface{}{ (*EgressInfo_RoomComposite)(nil), (*EgressInfo_Web)(nil), (*EgressInfo_Participant)(nil), @@ -4925,11 +4925,11 @@ func file_livekit_egress_proto_init() { (*EgressInfo_File)(nil), (*EgressInfo_Segments)(nil), } - file_livekit_egress_proto_msgTypes[27].OneofWrappers = []any{ + file_livekit_egress_proto_msgTypes[27].OneofWrappers = []interface{}{ (*AutoParticipantEgress_Preset)(nil), (*AutoParticipantEgress_Advanced)(nil), } - file_livekit_egress_proto_msgTypes[28].OneofWrappers = []any{ + file_livekit_egress_proto_msgTypes[28].OneofWrappers = []interface{}{ (*AutoTrackEgress_S3)(nil), (*AutoTrackEgress_Gcp)(nil), (*AutoTrackEgress_Azure)(nil), diff --git a/livekit/livekit_ingress.pb.go b/livekit/livekit_ingress.pb.go index 85427d9a..e75330ab 100644 --- a/livekit/livekit_ingress.pb.go +++ b/livekit/livekit_ingress.pb.go @@ -14,8 +14,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.2 -// protoc v4.23.4 +// protoc-gen-go v1.31.0 +// protoc v4.24.3 // source: livekit_ingress.proto package livekit @@ -1726,7 +1726,7 @@ func file_livekit_ingress_proto_rawDescGZIP() []byte { var file_livekit_ingress_proto_enumTypes = make([]protoimpl.EnumInfo, 4) var file_livekit_ingress_proto_msgTypes = make([]protoimpl.MessageInfo, 13) -var file_livekit_ingress_proto_goTypes = []any{ +var file_livekit_ingress_proto_goTypes = []interface{}{ (IngressInput)(0), // 0: livekit.IngressInput (IngressAudioEncodingPreset)(0), // 1: livekit.IngressAudioEncodingPreset (IngressVideoEncodingPreset)(0), // 2: livekit.IngressVideoEncodingPreset @@ -1796,7 +1796,7 @@ func file_livekit_ingress_proto_init() { } file_livekit_models_proto_init() if !protoimpl.UnsafeEnabled { - file_livekit_ingress_proto_msgTypes[0].Exporter = func(v any, i int) any { + file_livekit_ingress_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateIngressRequest); i { case 0: return &v.state @@ -1808,7 +1808,7 @@ func file_livekit_ingress_proto_init() { return nil } } - file_livekit_ingress_proto_msgTypes[1].Exporter = func(v any, i int) any { + file_livekit_ingress_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IngressAudioOptions); i { case 0: return &v.state @@ -1820,7 +1820,7 @@ func file_livekit_ingress_proto_init() { return nil } } - file_livekit_ingress_proto_msgTypes[2].Exporter = func(v any, i int) any { + file_livekit_ingress_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IngressVideoOptions); i { case 0: return &v.state @@ -1832,7 +1832,7 @@ func file_livekit_ingress_proto_init() { return nil } } - file_livekit_ingress_proto_msgTypes[3].Exporter = func(v any, i int) any { + file_livekit_ingress_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IngressAudioEncodingOptions); i { case 0: return &v.state @@ -1844,7 +1844,7 @@ func file_livekit_ingress_proto_init() { return nil } } - file_livekit_ingress_proto_msgTypes[4].Exporter = func(v any, i int) any { + file_livekit_ingress_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IngressVideoEncodingOptions); i { case 0: return &v.state @@ -1856,7 +1856,7 @@ func file_livekit_ingress_proto_init() { return nil } } - file_livekit_ingress_proto_msgTypes[5].Exporter = func(v any, i int) any { + file_livekit_ingress_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IngressInfo); i { case 0: return &v.state @@ -1868,7 +1868,7 @@ func file_livekit_ingress_proto_init() { return nil } } - file_livekit_ingress_proto_msgTypes[6].Exporter = func(v any, i int) any { + file_livekit_ingress_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IngressState); i { case 0: return &v.state @@ -1880,7 +1880,7 @@ func file_livekit_ingress_proto_init() { return nil } } - file_livekit_ingress_proto_msgTypes[7].Exporter = func(v any, i int) any { + file_livekit_ingress_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*InputVideoState); i { case 0: return &v.state @@ -1892,7 +1892,7 @@ func file_livekit_ingress_proto_init() { return nil } } - file_livekit_ingress_proto_msgTypes[8].Exporter = func(v any, i int) any { + file_livekit_ingress_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*InputAudioState); i { case 0: return &v.state @@ -1904,7 +1904,7 @@ func file_livekit_ingress_proto_init() { return nil } } - file_livekit_ingress_proto_msgTypes[9].Exporter = func(v any, i int) any { + file_livekit_ingress_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateIngressRequest); i { case 0: return &v.state @@ -1916,7 +1916,7 @@ func file_livekit_ingress_proto_init() { return nil } } - file_livekit_ingress_proto_msgTypes[10].Exporter = func(v any, i int) any { + file_livekit_ingress_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListIngressRequest); i { case 0: return &v.state @@ -1928,7 +1928,7 @@ func file_livekit_ingress_proto_init() { return nil } } - file_livekit_ingress_proto_msgTypes[11].Exporter = func(v any, i int) any { + file_livekit_ingress_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListIngressResponse); i { case 0: return &v.state @@ -1940,7 +1940,7 @@ func file_livekit_ingress_proto_init() { return nil } } - file_livekit_ingress_proto_msgTypes[12].Exporter = func(v any, i int) any { + file_livekit_ingress_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteIngressRequest); i { case 0: return &v.state @@ -1953,17 +1953,17 @@ func file_livekit_ingress_proto_init() { } } } - file_livekit_ingress_proto_msgTypes[0].OneofWrappers = []any{} - file_livekit_ingress_proto_msgTypes[1].OneofWrappers = []any{ + file_livekit_ingress_proto_msgTypes[0].OneofWrappers = []interface{}{} + file_livekit_ingress_proto_msgTypes[1].OneofWrappers = []interface{}{ (*IngressAudioOptions_Preset)(nil), (*IngressAudioOptions_Options)(nil), } - file_livekit_ingress_proto_msgTypes[2].OneofWrappers = []any{ + file_livekit_ingress_proto_msgTypes[2].OneofWrappers = []interface{}{ (*IngressVideoOptions_Preset)(nil), (*IngressVideoOptions_Options)(nil), } - file_livekit_ingress_proto_msgTypes[5].OneofWrappers = []any{} - file_livekit_ingress_proto_msgTypes[9].OneofWrappers = []any{} + file_livekit_ingress_proto_msgTypes[5].OneofWrappers = []interface{}{} + file_livekit_ingress_proto_msgTypes[9].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/livekit/livekit_internal.pb.go b/livekit/livekit_internal.pb.go index 8d0d089c..dcaf766e 100644 --- a/livekit/livekit_internal.pb.go +++ b/livekit/livekit_internal.pb.go @@ -14,8 +14,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.2 -// protoc v4.23.4 +// protoc-gen-go v1.31.0 +// protoc v4.24.3 // source: livekit_internal.proto package livekit @@ -1319,7 +1319,7 @@ func file_livekit_internal_proto_rawDescGZIP() []byte { var file_livekit_internal_proto_enumTypes = make([]protoimpl.EnumInfo, 3) var file_livekit_internal_proto_msgTypes = make([]protoimpl.MessageInfo, 5) -var file_livekit_internal_proto_goTypes = []any{ +var file_livekit_internal_proto_goTypes = []interface{}{ (NodeType)(0), // 0: livekit.NodeType (NodeState)(0), // 1: livekit.NodeState (ICECandidateType)(0), // 2: livekit.ICECandidateType @@ -1366,7 +1366,7 @@ func file_livekit_internal_proto_init() { file_livekit_agent_dispatch_proto_init() file_livekit_room_proto_init() if !protoimpl.UnsafeEnabled { - file_livekit_internal_proto_msgTypes[0].Exporter = func(v any, i int) any { + file_livekit_internal_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Node); i { case 0: return &v.state @@ -1378,7 +1378,7 @@ func file_livekit_internal_proto_init() { return nil } } - file_livekit_internal_proto_msgTypes[1].Exporter = func(v any, i int) any { + file_livekit_internal_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NodeStats); i { case 0: return &v.state @@ -1390,7 +1390,7 @@ func file_livekit_internal_proto_init() { return nil } } - file_livekit_internal_proto_msgTypes[2].Exporter = func(v any, i int) any { + file_livekit_internal_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StartSession); i { case 0: return &v.state @@ -1402,7 +1402,7 @@ func file_livekit_internal_proto_init() { return nil } } - file_livekit_internal_proto_msgTypes[3].Exporter = func(v any, i int) any { + file_livekit_internal_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RoomInternal); i { case 0: return &v.state @@ -1414,7 +1414,7 @@ func file_livekit_internal_proto_init() { return nil } } - file_livekit_internal_proto_msgTypes[4].Exporter = func(v any, i int) any { + file_livekit_internal_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ICEConfig); i { case 0: return &v.state @@ -1427,7 +1427,7 @@ func file_livekit_internal_proto_init() { } } } - file_livekit_internal_proto_msgTypes[2].OneofWrappers = []any{} + file_livekit_internal_proto_msgTypes[2].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/livekit/livekit_metrics.pb.go b/livekit/livekit_metrics.pb.go index 83a662e4..65f626ad 100644 --- a/livekit/livekit_metrics.pb.go +++ b/livekit/livekit_metrics.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.2 -// protoc v4.23.4 +// protoc-gen-go v1.31.0 +// protoc v4.24.3 // source: livekit_metrics.proto package livekit @@ -498,7 +498,7 @@ func file_livekit_metrics_proto_rawDescGZIP() []byte { var file_livekit_metrics_proto_enumTypes = make([]protoimpl.EnumInfo, 1) var file_livekit_metrics_proto_msgTypes = make([]protoimpl.MessageInfo, 4) -var file_livekit_metrics_proto_goTypes = []any{ +var file_livekit_metrics_proto_goTypes = []interface{}{ (MetricLabel)(0), // 0: livekit.MetricLabel (*MetricsBatch)(nil), // 1: livekit.MetricsBatch (*TimeSeriesMetric)(nil), // 2: livekit.TimeSeriesMetric @@ -527,7 +527,7 @@ func file_livekit_metrics_proto_init() { return } if !protoimpl.UnsafeEnabled { - file_livekit_metrics_proto_msgTypes[0].Exporter = func(v any, i int) any { + file_livekit_metrics_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MetricsBatch); i { case 0: return &v.state @@ -539,7 +539,7 @@ func file_livekit_metrics_proto_init() { return nil } } - file_livekit_metrics_proto_msgTypes[1].Exporter = func(v any, i int) any { + file_livekit_metrics_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TimeSeriesMetric); i { case 0: return &v.state @@ -551,7 +551,7 @@ func file_livekit_metrics_proto_init() { return nil } } - file_livekit_metrics_proto_msgTypes[2].Exporter = func(v any, i int) any { + file_livekit_metrics_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MetricSample); i { case 0: return &v.state @@ -563,7 +563,7 @@ func file_livekit_metrics_proto_init() { return nil } } - file_livekit_metrics_proto_msgTypes[3].Exporter = func(v any, i int) any { + file_livekit_metrics_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EventMetric); i { case 0: return &v.state @@ -576,7 +576,7 @@ func file_livekit_metrics_proto_init() { } } } - file_livekit_metrics_proto_msgTypes[3].OneofWrappers = []any{} + file_livekit_metrics_proto_msgTypes[3].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/livekit/livekit_models.pb.go b/livekit/livekit_models.pb.go index 2bd71c0a..0f80a40f 100644 --- a/livekit/livekit_models.pb.go +++ b/livekit/livekit_models.pb.go @@ -14,8 +14,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.2 -// protoc v4.23.4 +// protoc-gen-go v1.31.0 +// protoc v4.24.3 // source: livekit_models.proto package livekit @@ -1305,6 +1305,8 @@ type ParticipantPermission struct { // // Deprecated: Marked as deprecated in livekit_models.proto. Agent bool `protobuf:"varint,11,opt,name=agent,proto3" json:"agent,omitempty"` + // if a participant can subscribe to metrics + CanSubscribeMetrics bool `protobuf:"varint,12,opt,name=can_subscribe_metrics,json=canSubscribeMetrics,proto3" json:"can_subscribe_metrics,omitempty"` } func (x *ParticipantPermission) Reset() { @@ -1397,6 +1399,13 @@ func (x *ParticipantPermission) GetAgent() bool { return false } +func (x *ParticipantPermission) GetCanSubscribeMetrics() bool { + if x != nil { + return x.CanSubscribeMetrics + } + return false +} + type ParticipantInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -4106,7 +4115,7 @@ var file_livekit_models_proto_rawDesc = []byte{ 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6d, 0x69, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x61, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x03, 0x6d, 0x61, 0x78, 0x22, 0xcf, 0x02, 0x0a, 0x15, 0x50, 0x61, 0x72, 0x74, 0x69, + 0x0d, 0x52, 0x03, 0x6d, 0x61, 0x78, 0x22, 0x83, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x61, 0x6e, 0x5f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x63, 0x61, 0x6e, 0x53, 0x75, 0x62, 0x73, @@ -4127,618 +4136,621 @@ var file_livekit_models_proto_rawDesc = []byte{ 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x63, 0x61, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, - 0x01, 0x52, 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x22, 0x8a, 0x06, 0x0a, 0x0f, 0x50, 0x61, 0x72, - 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x10, 0x0a, 0x03, - 0x73, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x69, 0x64, 0x12, 0x1a, - 0x0a, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x34, 0x0a, 0x05, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6c, 0x69, 0x76, 0x65, + 0x01, 0x52, 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x32, 0x0a, 0x15, 0x63, 0x61, 0x6e, 0x5f, + 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x63, 0x61, 0x6e, 0x53, 0x75, 0x62, 0x73, + 0x63, 0x72, 0x69, 0x62, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x22, 0x8a, 0x06, 0x0a, + 0x0f, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x10, 0x0a, 0x03, 0x73, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, + 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x34, + 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, + 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, + 0x61, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x06, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x54, + 0x72, 0x61, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x73, + 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1b, 0x0a, 0x09, + 0x6a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x08, 0x6a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x41, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x3e, 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x6d, 0x69, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6c, 0x69, + 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, + 0x74, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x70, 0x65, 0x72, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, + 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, + 0x21, 0x0a, 0x0c, 0x69, 0x73, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, + 0x65, 0x72, 0x12, 0x31, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x1d, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, + 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x4b, 0x69, 0x6e, 0x64, 0x52, + 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x48, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, - 0x6e, 0x66, 0x6f, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x12, 0x2a, 0x0a, 0x06, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x12, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x6b, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x12, 0x1a, 0x0a, 0x08, - 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1b, 0x0a, 0x09, 0x6a, 0x6f, 0x69, 0x6e, - 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6a, 0x6f, 0x69, - 0x6e, 0x65, 0x64, 0x41, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x12, 0x3e, 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, - 0x74, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x50, 0x65, 0x72, - 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x0c, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, - 0x73, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0b, 0x69, 0x73, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x12, 0x31, - 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6c, - 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, - 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x04, 0x6b, 0x69, 0x6e, - 0x64, 0x12, 0x48, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, - 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, - 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x2e, - 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, - 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x11, 0x64, - 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, - 0x18, 0x10, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, - 0x2e, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, - 0x6e, 0x52, 0x10, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52, 0x65, 0x61, - 0x73, 0x6f, 0x6e, 0x1a, 0x3d, 0x0a, 0x0f, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 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, 0x3a, 0x02, - 0x38, 0x01, 0x22, 0x3e, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x4a, - 0x4f, 0x49, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x4a, 0x4f, 0x49, 0x4e, - 0x45, 0x44, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x02, - 0x12, 0x10, 0x0a, 0x0c, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, - 0x10, 0x03, 0x22, 0x41, 0x0a, 0x04, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x54, - 0x41, 0x4e, 0x44, 0x41, 0x52, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x4e, 0x47, 0x52, - 0x45, 0x53, 0x53, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x45, 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, - 0x02, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x49, 0x50, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x41, 0x47, - 0x45, 0x4e, 0x54, 0x10, 0x04, 0x22, 0x33, 0x0a, 0x0a, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x22, 0x25, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x08, 0x0a, 0x04, 0x4e, - 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x47, 0x43, 0x4d, 0x10, 0x01, 0x12, 0x0a, - 0x0a, 0x06, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x10, 0x02, 0x22, 0x82, 0x01, 0x0a, 0x12, 0x53, - 0x69, 0x6d, 0x75, 0x6c, 0x63, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x63, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x69, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, - 0x0a, 0x03, 0x6d, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x69, 0x64, - 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, - 0x69, 0x64, 0x12, 0x2b, 0x0a, 0x06, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x56, 0x69, 0x64, - 0x65, 0x6f, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x06, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x22, - 0x9a, 0x05, 0x0a, 0x09, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x10, 0x0a, - 0x03, 0x73, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x69, 0x64, 0x12, - 0x26, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, - 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x54, 0x79, 0x70, - 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6d, - 0x75, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x6d, 0x75, 0x74, 0x65, - 0x64, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, - 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x6d, 0x75, 0x6c, 0x63, 0x61, 0x73, 0x74, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x09, 0x73, 0x69, 0x6d, 0x75, 0x6c, 0x63, 0x61, 0x73, 0x74, 0x12, 0x1f, 0x0a, - 0x0b, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x74, 0x78, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x0a, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x74, 0x78, 0x12, 0x2c, - 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, - 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x53, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x2b, 0x0a, 0x06, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6c, - 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4c, 0x61, 0x79, 0x65, - 0x72, 0x52, 0x06, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x69, 0x6d, - 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x69, - 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x69, 0x64, 0x18, 0x0c, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x69, 0x64, 0x12, 0x33, 0x0a, 0x06, 0x63, 0x6f, 0x64, 0x65, - 0x63, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, - 0x69, 0x74, 0x2e, 0x53, 0x69, 0x6d, 0x75, 0x6c, 0x63, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x64, 0x65, - 0x63, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x73, 0x12, 0x16, 0x0a, - 0x06, 0x73, 0x74, 0x65, 0x72, 0x65, 0x6f, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x73, - 0x74, 0x65, 0x72, 0x65, 0x6f, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, - 0x5f, 0x72, 0x65, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x64, 0x69, 0x73, 0x61, - 0x62, 0x6c, 0x65, 0x52, 0x65, 0x64, 0x12, 0x38, 0x0a, 0x0a, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x6c, 0x69, 0x76, - 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, - 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x2f, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6c, 0x69, 0x76, 0x65, - 0x6b, 0x69, 0x74, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x64, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x0a, 0x0e, 0x61, 0x75, 0x64, - 0x69, 0x6f, 0x5f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x13, 0x20, 0x03, 0x28, - 0x0e, 0x32, 0x1a, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x41, 0x75, 0x64, 0x69, - 0x6f, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x0d, 0x61, - 0x75, 0x64, 0x69, 0x6f, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x22, 0x99, 0x01, 0x0a, - 0x0a, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x2f, 0x0a, 0x07, 0x71, - 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x6c, - 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x51, 0x75, 0x61, 0x6c, - 0x69, 0x74, 0x79, 0x52, 0x07, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x14, 0x0a, 0x05, - 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x77, 0x69, 0x64, - 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x69, - 0x74, 0x72, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x62, 0x69, 0x74, - 0x72, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x73, 0x72, 0x63, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x04, 0x73, 0x73, 0x72, 0x63, 0x22, 0x98, 0x04, 0x0a, 0x0a, 0x44, 0x61, 0x74, - 0x61, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, - 0x44, 0x61, 0x74, 0x61, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x4b, 0x69, 0x6e, 0x64, 0x42, - 0x02, 0x18, 0x01, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x31, 0x0a, 0x14, 0x70, 0x61, 0x72, - 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, - 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, - 0x70, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x35, 0x0a, 0x16, - 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x15, 0x64, 0x65, - 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, - 0x69, 0x65, 0x73, 0x12, 0x29, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x13, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x55, 0x73, 0x65, 0x72, - 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x48, 0x00, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x3c, - 0x0a, 0x07, 0x73, 0x70, 0x65, 0x61, 0x6b, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x53, 0x70, 0x65, 0x61, 0x6b, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x02, 0x18, - 0x01, 0x48, 0x00, 0x52, 0x07, 0x73, 0x70, 0x65, 0x61, 0x6b, 0x65, 0x72, 0x12, 0x2d, 0x0a, 0x08, - 0x73, 0x69, 0x70, 0x5f, 0x64, 0x74, 0x6d, 0x66, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, - 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x69, 0x70, 0x44, 0x54, 0x4d, 0x46, - 0x48, 0x00, 0x52, 0x07, 0x73, 0x69, 0x70, 0x44, 0x74, 0x6d, 0x66, 0x12, 0x3e, 0x0a, 0x0d, 0x74, - 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0d, 0x74, 0x72, - 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x0a, 0x07, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6c, - 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x42, 0x61, - 0x74, 0x63, 0x68, 0x48, 0x00, 0x52, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x39, - 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x43, - 0x68, 0x61, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x0b, 0x63, 0x68, - 0x61, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x1f, 0x0a, 0x04, 0x4b, 0x69, 0x6e, - 0x64, 0x12, 0x0c, 0x0a, 0x08, 0x52, 0x45, 0x4c, 0x49, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x00, 0x12, - 0x09, 0x0a, 0x05, 0x4c, 0x4f, 0x53, 0x53, 0x59, 0x10, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x22, 0x47, 0x0a, 0x13, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x53, 0x70, 0x65, - 0x61, 0x6b, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x30, 0x0a, 0x08, 0x73, 0x70, - 0x65, 0x61, 0x6b, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6c, - 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x70, 0x65, 0x61, 0x6b, 0x65, 0x72, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x08, 0x73, 0x70, 0x65, 0x61, 0x6b, 0x65, 0x72, 0x73, 0x22, 0x4d, 0x0a, 0x0b, - 0x53, 0x70, 0x65, 0x61, 0x6b, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x73, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x69, 0x64, 0x12, 0x14, 0x0a, - 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x6c, 0x65, - 0x76, 0x65, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0x95, 0x03, 0x0a, 0x0a, - 0x55, 0x73, 0x65, 0x72, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x2b, 0x0a, 0x0f, 0x70, 0x61, - 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, - 0x70, 0x61, 0x6e, 0x74, 0x53, 0x69, 0x64, 0x12, 0x35, 0x0a, 0x14, 0x70, 0x61, 0x72, 0x74, 0x69, - 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x13, 0x70, 0x61, 0x72, 0x74, 0x69, - 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x18, - 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x2d, 0x0a, 0x10, 0x64, 0x65, 0x73, 0x74, - 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x64, 0x73, 0x12, 0x39, 0x0a, 0x16, 0x64, 0x65, 0x73, 0x74, 0x69, - 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, - 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x15, 0x64, 0x65, 0x73, - 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, - 0x65, 0x73, 0x12, 0x19, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x00, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x88, 0x01, 0x01, 0x12, 0x13, 0x0a, - 0x02, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x02, 0x69, 0x64, 0x88, - 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, - 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, - 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x48, 0x03, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, - 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x74, 0x6f, 0x70, 0x69, 0x63, - 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x69, 0x64, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x74, - 0x69, 0x6d, 0x65, 0x22, 0x33, 0x0a, 0x07, 0x53, 0x69, 0x70, 0x44, 0x54, 0x4d, 0x46, 0x12, 0x12, - 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x63, 0x6f, - 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x69, 0x67, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x64, 0x69, 0x67, 0x69, 0x74, 0x22, 0xaf, 0x01, 0x0a, 0x0d, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x48, 0x0a, 0x20, 0x74, 0x72, - 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, - 0x69, 0x70, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x1e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, - 0x64, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x74, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x5f, 0x69, 0x64, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x49, 0x64, 0x12, - 0x39, 0x0a, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x1d, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, - 0x52, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xa6, 0x01, 0x0a, 0x14, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x67, 0x6d, - 0x65, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, - 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, - 0x65, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x05, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, - 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, - 0x61, 0x67, 0x65, 0x22, 0xae, 0x01, 0x0a, 0x0b, 0x43, 0x68, 0x61, 0x74, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x02, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x12, 0x2a, 0x0a, 0x0e, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x0d, 0x65, 0x64, 0x69, - 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x88, 0x01, 0x01, 0x12, 0x18, 0x0a, - 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x64, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x22, 0x5b, 0x0a, 0x11, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, - 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x61, 0x72, - 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x53, - 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x5f, 0x73, 0x69, 0x64, 0x73, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x53, 0x69, 0x64, - 0x73, 0x22, 0x94, 0x02, 0x0a, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x35, 0x0a, 0x07, 0x65, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x1b, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x45, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, - 0x65, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x16, 0x0a, - 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, - 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x1d, - 0x0a, 0x0a, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x64, 0x65, 0x62, 0x75, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x25, 0x0a, - 0x0e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x22, 0x22, 0x0a, 0x07, 0x45, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x0c, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, - 0x05, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x10, 0x01, 0x22, 0xbc, 0x03, 0x0a, 0x0a, 0x43, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x29, 0x0a, 0x03, 0x73, 0x64, 0x6b, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x43, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x53, 0x44, 0x4b, 0x52, 0x03, 0x73, - 0x64, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x6f, 0x73, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x6f, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x6f, 0x73, 0x5f, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x73, - 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x72, - 0x6f, 0x77, 0x73, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x72, 0x6f, - 0x77, 0x73, 0x65, 0x72, 0x12, 0x27, 0x0a, 0x0f, 0x62, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x5f, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x62, - 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, - 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x22, 0x83, 0x01, 0x0a, 0x03, 0x53, 0x44, 0x4b, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, - 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x4a, 0x53, 0x10, 0x01, 0x12, 0x09, - 0x0a, 0x05, 0x53, 0x57, 0x49, 0x46, 0x54, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x41, 0x4e, 0x44, - 0x52, 0x4f, 0x49, 0x44, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x46, 0x4c, 0x55, 0x54, 0x54, 0x45, - 0x52, 0x10, 0x04, 0x12, 0x06, 0x0a, 0x02, 0x47, 0x4f, 0x10, 0x05, 0x12, 0x09, 0x0a, 0x05, 0x55, - 0x4e, 0x49, 0x54, 0x59, 0x10, 0x06, 0x12, 0x10, 0x0a, 0x0c, 0x52, 0x45, 0x41, 0x43, 0x54, 0x5f, - 0x4e, 0x41, 0x54, 0x49, 0x56, 0x45, 0x10, 0x07, 0x12, 0x08, 0x0a, 0x04, 0x52, 0x55, 0x53, 0x54, - 0x10, 0x08, 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x59, 0x54, 0x48, 0x4f, 0x4e, 0x10, 0x09, 0x12, 0x07, - 0x0a, 0x03, 0x43, 0x50, 0x50, 0x10, 0x0a, 0x22, 0xc9, 0x02, 0x0a, 0x13, 0x43, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x31, 0x0a, 0x05, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, - 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x76, 0x69, 0x64, - 0x65, 0x6f, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, + 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, + 0x46, 0x0a, 0x11, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x72, 0x65, + 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x6c, 0x69, 0x76, + 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52, + 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x10, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x1a, 0x3d, 0x0a, 0x0f, 0x41, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 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, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x3e, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, + 0x0b, 0x0a, 0x07, 0x4a, 0x4f, 0x49, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, + 0x4a, 0x4f, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x41, 0x43, 0x54, 0x49, + 0x56, 0x45, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, + 0x43, 0x54, 0x45, 0x44, 0x10, 0x03, 0x22, 0x41, 0x0a, 0x04, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x0c, + 0x0a, 0x08, 0x53, 0x54, 0x41, 0x4e, 0x44, 0x41, 0x52, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, + 0x49, 0x4e, 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x45, 0x47, 0x52, + 0x45, 0x53, 0x53, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x49, 0x50, 0x10, 0x03, 0x12, 0x09, + 0x0a, 0x05, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x10, 0x04, 0x22, 0x33, 0x0a, 0x0a, 0x45, 0x6e, 0x63, + 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x25, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x47, 0x43, 0x4d, + 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x10, 0x02, 0x22, 0x82, + 0x01, 0x0a, 0x12, 0x53, 0x69, 0x6d, 0x75, 0x6c, 0x63, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x64, 0x65, + 0x63, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x69, 0x6d, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x6d, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x12, 0x2b, 0x0a, 0x06, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, + 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, + 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x06, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x73, 0x22, 0x9a, 0x05, 0x0a, 0x09, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x73, 0x69, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x12, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x54, 0x72, 0x61, 0x63, + 0x6b, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x6d, 0x75, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, + 0x6d, 0x75, 0x74, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x6d, 0x75, 0x6c, 0x63, 0x61, 0x73, 0x74, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x73, 0x69, 0x6d, 0x75, 0x6c, 0x63, 0x61, 0x73, + 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x74, 0x78, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x44, + 0x74, 0x78, 0x12, 0x2c, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x54, 0x72, 0x61, + 0x63, 0x6b, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x12, 0x2b, 0x0a, 0x06, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x13, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, + 0x4c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x06, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x12, 0x1b, 0x0a, + 0x09, 0x6d, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x6d, 0x69, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x69, + 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x69, 0x64, 0x12, 0x33, 0x0a, 0x06, + 0x63, 0x6f, 0x64, 0x65, 0x63, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6c, + 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x69, 0x6d, 0x75, 0x6c, 0x63, 0x61, 0x73, 0x74, + 0x43, 0x6f, 0x64, 0x65, 0x63, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x63, 0x6f, 0x64, 0x65, 0x63, + 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x65, 0x72, 0x65, 0x6f, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x06, 0x73, 0x74, 0x65, 0x72, 0x65, 0x6f, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x69, 0x73, + 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, + 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x64, 0x12, 0x38, 0x0a, 0x0a, 0x65, 0x6e, + 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, + 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x18, 0x11, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x2f, 0x0a, 0x07, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, + 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x64, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x0a, + 0x0e, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x5f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, + 0x13, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, + 0x41, 0x75, 0x64, 0x69, 0x6f, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x52, 0x0d, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, + 0x22, 0x99, 0x01, 0x0a, 0x0a, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x12, + 0x2f, 0x0a, 0x07, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x15, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, + 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x07, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, + 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x18, + 0x0a, 0x07, 0x62, 0x69, 0x74, 0x72, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x07, 0x62, 0x69, 0x74, 0x72, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x73, 0x72, 0x63, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x73, 0x73, 0x72, 0x63, 0x22, 0x98, 0x04, 0x0a, + 0x0a, 0x44, 0x61, 0x74, 0x61, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x6b, + 0x69, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x6c, 0x69, 0x76, 0x65, + 0x6b, 0x69, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x4b, + 0x69, 0x6e, 0x64, 0x42, 0x02, 0x18, 0x01, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x31, 0x0a, + 0x14, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x70, 0x61, 0x72, + 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, + 0x12, 0x35, 0x0a, 0x16, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x15, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x29, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, + 0x55, 0x73, 0x65, 0x72, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x48, 0x00, 0x52, 0x04, 0x75, 0x73, + 0x65, 0x72, 0x12, 0x3c, 0x0a, 0x07, 0x73, 0x70, 0x65, 0x61, 0x6b, 0x65, 0x72, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x41, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x53, 0x70, 0x65, 0x61, 0x6b, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x07, 0x73, 0x70, 0x65, 0x61, 0x6b, 0x65, 0x72, + 0x12, 0x2d, 0x0a, 0x08, 0x73, 0x69, 0x70, 0x5f, 0x64, 0x74, 0x6d, 0x66, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x69, 0x70, + 0x44, 0x54, 0x4d, 0x46, 0x48, 0x00, 0x52, 0x07, 0x73, 0x69, 0x70, 0x44, 0x74, 0x6d, 0x66, 0x12, + 0x3e, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, + 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, + 0x52, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x31, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x15, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x73, 0x42, 0x61, 0x74, 0x63, 0x68, 0x48, 0x00, 0x52, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x73, 0x12, 0x39, 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, + 0x69, 0x74, 0x2e, 0x43, 0x68, 0x61, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, + 0x52, 0x0b, 0x63, 0x68, 0x61, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x1f, 0x0a, + 0x04, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x0c, 0x0a, 0x08, 0x52, 0x45, 0x4c, 0x49, 0x41, 0x42, 0x4c, + 0x45, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x4c, 0x4f, 0x53, 0x53, 0x59, 0x10, 0x01, 0x42, 0x07, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x47, 0x0a, 0x13, 0x41, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x53, 0x70, 0x65, 0x61, 0x6b, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x30, + 0x0a, 0x08, 0x73, 0x70, 0x65, 0x61, 0x6b, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x14, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x70, 0x65, 0x61, 0x6b, + 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x73, 0x70, 0x65, 0x61, 0x6b, 0x65, 0x72, 0x73, + 0x22, 0x4d, 0x0a, 0x0b, 0x53, 0x70, 0x65, 0x61, 0x6b, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x10, 0x0a, 0x03, 0x73, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x69, + 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, + 0x95, 0x03, 0x0a, 0x0a, 0x55, 0x73, 0x65, 0x72, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x2b, + 0x0a, 0x0f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x5f, 0x73, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0e, 0x70, 0x61, 0x72, + 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x53, 0x69, 0x64, 0x12, 0x35, 0x0a, 0x14, 0x70, + 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x13, 0x70, + 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x74, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x2d, 0x0a, 0x10, + 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0f, 0x64, 0x65, 0x73, 0x74, + 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x64, 0x73, 0x12, 0x39, 0x0a, 0x16, 0x64, + 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, + 0x15, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x88, 0x01, + 0x01, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, + 0x02, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, 0x52, 0x09, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x65, 0x6e, + 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x48, 0x03, 0x52, 0x07, + 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x74, + 0x6f, 0x70, 0x69, 0x63, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x69, 0x64, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x65, + 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x33, 0x0a, 0x07, 0x53, 0x69, 0x70, 0x44, 0x54, + 0x4d, 0x46, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x69, 0x67, 0x69, 0x74, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x69, 0x67, 0x69, 0x74, 0x22, 0xaf, 0x01, 0x0a, + 0x0d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x48, + 0x0a, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x64, 0x5f, 0x70, 0x61, + 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, + 0x72, 0x69, 0x62, 0x65, 0x64, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, + 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x63, + 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x63, + 0x6b, 0x49, 0x64, 0x12, 0x39, 0x0a, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, + 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xa6, + 0x01, 0x0a, 0x14, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, + 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x65, 0x6e, + 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x6c, + 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, + 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x22, 0xae, 0x01, 0x0a, 0x0b, 0x43, 0x68, 0x61, 0x74, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x2a, 0x0a, 0x0e, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, + 0x0d, 0x65, 0x64, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x88, 0x01, + 0x01, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x64, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x64, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x64, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x5b, 0x0a, 0x11, 0x50, 0x61, 0x72, 0x74, + 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x12, 0x27, 0x0a, + 0x0f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x5f, 0x73, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, + 0x61, 0x6e, 0x74, 0x53, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x5f, + 0x73, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x74, 0x72, 0x61, 0x63, + 0x6b, 0x53, 0x69, 0x64, 0x73, 0x22, 0x94, 0x02, 0x0a, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x35, 0x0a, 0x07, 0x65, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, + 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x45, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x07, 0x65, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x6f, 0x64, + 0x65, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, + 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x69, 0x6e, 0x66, 0x6f, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x65, 0x62, 0x75, 0x67, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x61, 0x67, 0x65, 0x6e, 0x74, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x22, 0x22, 0x0a, 0x07, 0x45, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x10, + 0x00, 0x12, 0x09, 0x0a, 0x05, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x10, 0x01, 0x22, 0xbc, 0x03, 0x0a, + 0x0a, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x29, 0x0a, 0x03, 0x73, + 0x64, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, + 0x69, 0x74, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x53, 0x44, + 0x4b, 0x52, 0x03, 0x73, 0x64, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x0e, 0x0a, 0x02, + 0x6f, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x6f, 0x73, 0x12, 0x1d, 0x0a, 0x0a, + 0x6f, 0x73, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x6f, 0x73, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x64, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x18, + 0x0a, 0x07, 0x62, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x62, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x12, 0x27, 0x0a, 0x0f, 0x62, 0x72, 0x6f, 0x77, + 0x73, 0x65, 0x72, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0e, 0x62, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x22, 0x83, 0x01, 0x0a, 0x03, 0x53, 0x44, 0x4b, 0x12, 0x0b, 0x0a, + 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x4a, 0x53, + 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x57, 0x49, 0x46, 0x54, 0x10, 0x02, 0x12, 0x0b, 0x0a, + 0x07, 0x41, 0x4e, 0x44, 0x52, 0x4f, 0x49, 0x44, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x46, 0x4c, + 0x55, 0x54, 0x54, 0x45, 0x52, 0x10, 0x04, 0x12, 0x06, 0x0a, 0x02, 0x47, 0x4f, 0x10, 0x05, 0x12, + 0x09, 0x0a, 0x05, 0x55, 0x4e, 0x49, 0x54, 0x59, 0x10, 0x06, 0x12, 0x10, 0x0a, 0x0c, 0x52, 0x45, + 0x41, 0x43, 0x54, 0x5f, 0x4e, 0x41, 0x54, 0x49, 0x56, 0x45, 0x10, 0x07, 0x12, 0x08, 0x0a, 0x04, + 0x52, 0x55, 0x53, 0x54, 0x10, 0x08, 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x59, 0x54, 0x48, 0x4f, 0x4e, + 0x10, 0x09, 0x12, 0x07, 0x0a, 0x03, 0x43, 0x50, 0x50, 0x10, 0x0a, 0x22, 0xc9, 0x02, 0x0a, 0x13, + 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x0a, 0x05, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x06, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x12, 0x49, 0x0a, 0x11, 0x72, 0x65, 0x73, 0x75, 0x6d, - 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x43, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, - 0x52, 0x10, 0x72, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x0f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5f, 0x63, - 0x6f, 0x64, 0x65, 0x63, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6c, 0x69, - 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x43, 0x6f, - 0x64, 0x65, 0x63, 0x73, 0x52, 0x0e, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x43, 0x6f, - 0x64, 0x65, 0x63, 0x73, 0x12, 0x3d, 0x0a, 0x0b, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x72, 0x65, - 0x6c, 0x61, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x6c, 0x69, 0x76, 0x65, - 0x6b, 0x69, 0x74, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x0a, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x52, 0x65, - 0x6c, 0x61, 0x79, 0x22, 0x5d, 0x0a, 0x12, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x47, 0x0a, 0x10, 0x68, 0x61, 0x72, - 0x64, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x43, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, - 0x67, 0x52, 0x0f, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x45, 0x6e, 0x63, 0x6f, 0x64, - 0x65, 0x72, 0x22, 0x62, 0x0a, 0x0e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x43, 0x6f, - 0x64, 0x65, 0x63, 0x73, 0x12, 0x26, 0x0a, 0x06, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x43, - 0x6f, 0x64, 0x65, 0x63, 0x52, 0x06, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x73, 0x12, 0x28, 0x0a, 0x07, - 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, - 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x43, 0x6f, 0x64, 0x65, 0x63, 0x52, 0x07, 0x70, - 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x22, 0xed, 0x02, 0x0a, 0x08, 0x52, 0x54, 0x50, 0x44, 0x72, - 0x69, 0x66, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, - 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, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x35, - 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 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, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x65, 0x6e, - 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x6e, - 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x0c, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, - 0x26, 0x0a, 0x0f, 0x72, 0x74, 0x70, 0x5f, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x74, 0x69, 0x63, - 0x6b, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x72, 0x74, 0x70, 0x43, 0x6c, 0x6f, - 0x63, 0x6b, 0x54, 0x69, 0x63, 0x6b, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x72, 0x69, 0x66, 0x74, - 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, - 0x64, 0x72, 0x69, 0x66, 0x74, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, - 0x64, 0x72, 0x69, 0x66, 0x74, 0x5f, 0x6d, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, - 0x64, 0x72, 0x69, 0x66, 0x74, 0x4d, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x6f, 0x63, 0x6b, - 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x63, 0x6c, 0x6f, - 0x63, 0x6b, 0x52, 0x61, 0x74, 0x65, 0x22, 0xc4, 0x0f, 0x0a, 0x08, 0x52, 0x54, 0x50, 0x53, 0x74, - 0x61, 0x74, 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, - 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, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x35, - 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 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, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x65, 0x6e, - 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x70, - 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, - 0x52, 0x0a, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, - 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x62, 0x79, 0x74, - 0x65, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x74, - 0x65, 0x73, 0x18, 0x27, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x69, 0x74, 0x72, 0x61, 0x74, 0x65, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x62, 0x69, 0x74, 0x72, 0x61, 0x74, 0x65, 0x12, - 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x6c, 0x6f, 0x73, 0x74, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x4c, 0x6f, - 0x73, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6c, 0x6f, 0x73, - 0x73, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0e, 0x70, 0x61, - 0x63, 0x6b, 0x65, 0x74, 0x4c, 0x6f, 0x73, 0x73, 0x52, 0x61, 0x74, 0x65, 0x12, 0x34, 0x0a, 0x16, - 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6c, 0x6f, 0x73, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x63, - 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x02, 0x52, 0x14, 0x70, 0x61, - 0x63, 0x6b, 0x65, 0x74, 0x4c, 0x6f, 0x73, 0x73, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, - 0x67, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x64, 0x75, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x70, - 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x12, - 0x32, 0x0a, 0x15, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, - 0x61, 0x74, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x01, 0x52, 0x13, - 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, - 0x61, 0x74, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x64, 0x75, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x62, 0x79, - 0x74, 0x65, 0x73, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x12, 0x34, 0x0a, 0x16, - 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x64, 0x75, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x18, 0x28, 0x20, 0x01, 0x28, 0x04, 0x52, 0x14, 0x68, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x42, 0x79, 0x74, 0x65, 0x73, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x74, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x62, 0x69, 0x74, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x64, 0x75, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x62, - 0x69, 0x74, 0x72, 0x61, 0x74, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x12, - 0x27, 0x0a, 0x0f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x70, 0x61, 0x64, 0x64, 0x69, - 0x6e, 0x67, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, - 0x73, 0x50, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x2e, 0x0a, 0x13, 0x70, 0x61, 0x63, 0x6b, - 0x65, 0x74, 0x5f, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, - 0x10, 0x20, 0x01, 0x28, 0x01, 0x52, 0x11, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x50, 0x61, 0x64, - 0x64, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x74, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, - 0x73, 0x5f, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x11, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x0c, 0x62, 0x79, 0x74, 0x65, 0x73, 0x50, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x30, 0x0a, - 0x14, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x70, 0x61, - 0x64, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x29, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x68, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x42, 0x79, 0x74, 0x65, 0x73, 0x50, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x12, - 0x27, 0x0a, 0x0f, 0x62, 0x69, 0x74, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x70, 0x61, 0x64, 0x64, 0x69, - 0x6e, 0x67, 0x18, 0x12, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0e, 0x62, 0x69, 0x74, 0x72, 0x61, 0x74, - 0x65, 0x50, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x2f, 0x0a, 0x14, 0x70, 0x61, 0x63, 0x6b, - 0x65, 0x74, 0x73, 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x6f, 0x66, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x18, 0x13, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x4f, - 0x75, 0x74, 0x4f, 0x66, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x72, 0x61, - 0x6d, 0x65, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x66, 0x72, 0x61, 0x6d, 0x65, - 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, - 0x15, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x52, 0x61, 0x74, 0x65, - 0x12, 0x25, 0x0a, 0x0e, 0x6a, 0x69, 0x74, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x75, 0x72, 0x72, 0x65, - 0x6e, 0x74, 0x18, 0x16, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0d, 0x6a, 0x69, 0x74, 0x74, 0x65, 0x72, - 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x6a, 0x69, 0x74, 0x74, 0x65, - 0x72, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x17, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x6a, 0x69, 0x74, - 0x74, 0x65, 0x72, 0x4d, 0x61, 0x78, 0x12, 0x48, 0x0a, 0x0d, 0x67, 0x61, 0x70, 0x5f, 0x68, 0x69, - 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x18, 0x18, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, - 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x52, 0x54, 0x50, 0x53, 0x74, 0x61, 0x74, 0x73, - 0x2e, 0x47, 0x61, 0x70, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x52, 0x0c, 0x67, 0x61, 0x70, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, - 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x05, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x61, 0x63, 0x6b, 0x5f, 0x61, - 0x63, 0x6b, 0x73, 0x18, 0x25, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6e, 0x61, 0x63, 0x6b, 0x41, - 0x63, 0x6b, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x6e, 0x61, 0x63, 0x6b, 0x5f, 0x6d, 0x69, 0x73, 0x73, - 0x65, 0x73, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6e, 0x61, 0x63, 0x6b, 0x4d, 0x69, - 0x73, 0x73, 0x65, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x6e, 0x61, 0x63, 0x6b, 0x5f, 0x72, 0x65, 0x70, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x26, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x6e, 0x61, 0x63, - 0x6b, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6c, 0x69, - 0x73, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x70, 0x6c, 0x69, 0x73, 0x12, 0x35, 0x0a, - 0x08, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x70, 0x6c, 0x69, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x6c, 0x61, 0x73, - 0x74, 0x50, 0x6c, 0x69, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x69, 0x72, 0x73, 0x18, 0x1d, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x04, 0x66, 0x69, 0x72, 0x73, 0x12, 0x35, 0x0a, 0x08, 0x6c, 0x61, 0x73, 0x74, - 0x5f, 0x66, 0x69, 0x72, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x6c, 0x61, 0x73, 0x74, 0x46, 0x69, 0x72, 0x12, - 0x1f, 0x0a, 0x0b, 0x72, 0x74, 0x74, 0x5f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x1f, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x72, 0x74, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, - 0x12, 0x17, 0x0a, 0x07, 0x72, 0x74, 0x74, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x20, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x06, 0x72, 0x74, 0x74, 0x4d, 0x61, 0x78, 0x12, 0x1d, 0x0a, 0x0a, 0x6b, 0x65, 0x79, - 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6b, - 0x65, 0x79, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x40, 0x0a, 0x0e, 0x6c, 0x61, 0x73, 0x74, - 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0c, 0x6c, 0x61, - 0x73, 0x74, 0x4b, 0x65, 0x79, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x5f, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x70, 0x6c, 0x69, 0x73, 0x18, 0x23, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x6b, 0x50, 0x6c, - 0x69, 0x73, 0x12, 0x49, 0x0a, 0x13, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x5f, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x70, 0x6c, 0x69, 0x18, 0x24, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x10, 0x6c, 0x61, 0x73, - 0x74, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x6b, 0x50, 0x6c, 0x69, 0x12, 0x34, 0x0a, - 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x64, 0x72, 0x69, 0x66, 0x74, 0x18, 0x2c, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x52, 0x54, - 0x50, 0x44, 0x72, 0x69, 0x66, 0x74, 0x52, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x44, 0x72, - 0x69, 0x66, 0x74, 0x12, 0x3b, 0x0a, 0x10, 0x6e, 0x74, 0x70, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x5f, 0x64, 0x72, 0x69, 0x66, 0x74, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, - 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x52, 0x54, 0x50, 0x44, 0x72, 0x69, 0x66, 0x74, - 0x52, 0x0e, 0x6e, 0x74, 0x70, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x72, 0x69, 0x66, 0x74, - 0x12, 0x43, 0x0a, 0x14, 0x72, 0x65, 0x62, 0x61, 0x73, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x5f, 0x64, 0x72, 0x69, 0x66, 0x74, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, - 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x52, 0x54, 0x50, 0x44, 0x72, 0x69, 0x66, - 0x74, 0x52, 0x12, 0x72, 0x65, 0x62, 0x61, 0x73, 0x65, 0x64, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x44, 0x72, 0x69, 0x66, 0x74, 0x12, 0x45, 0x0a, 0x15, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, - 0x64, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x64, 0x72, 0x69, 0x66, 0x74, 0x18, 0x2f, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x52, - 0x54, 0x50, 0x44, 0x72, 0x69, 0x66, 0x74, 0x52, 0x13, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, - 0x64, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x72, 0x69, 0x66, 0x74, 0x1a, 0x3f, 0x0a, 0x11, - 0x47, 0x61, 0x70, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, - 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xf0, 0x01, - 0x0a, 0x15, 0x52, 0x54, 0x43, 0x50, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x74, 0x70, 0x5f, 0x74, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, - 0x72, 0x74, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x2a, 0x0a, 0x11, - 0x72, 0x74, 0x70, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x65, 0x78, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x72, 0x74, 0x70, 0x54, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x45, 0x78, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x6e, 0x74, 0x70, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x0c, 0x6e, 0x74, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x0e, 0x0a, - 0x02, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x61, 0x74, 0x12, 0x1f, 0x0a, - 0x0b, 0x61, 0x74, 0x5f, 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x0a, 0x61, 0x74, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x65, 0x64, 0x12, 0x18, - 0x0a, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x07, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x63, 0x74, 0x65, - 0x74, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x73, - 0x22, 0xce, 0x03, 0x0a, 0x11, 0x52, 0x54, 0x50, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x65, - 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, - 0x12, 0x36, 0x0a, 0x17, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x5f, 0x73, 0x70, 0x61, 0x74, 0x69, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x15, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x4c, 0x61, 0x79, 0x65, - 0x72, 0x53, 0x70, 0x61, 0x74, 0x69, 0x61, 0x6c, 0x12, 0x24, 0x0a, 0x0e, 0x70, 0x72, 0x65, 0x5f, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x0c, 0x70, 0x72, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2e, - 0x0a, 0x13, 0x65, 0x78, 0x74, 0x5f, 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x65, 0x78, 0x74, - 0x46, 0x69, 0x72, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x3f, - 0x0a, 0x1c, 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x19, 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x53, 0x74, 0x61, 0x72, 0x74, - 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, - 0x36, 0x0a, 0x0a, 0x72, 0x74, 0x70, 0x5f, 0x6d, 0x75, 0x6e, 0x67, 0x65, 0x72, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x52, 0x54, - 0x50, 0x4d, 0x75, 0x6e, 0x67, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x09, 0x72, 0x74, - 0x70, 0x4d, 0x75, 0x6e, 0x67, 0x65, 0x72, 0x12, 0x38, 0x0a, 0x0a, 0x76, 0x70, 0x38, 0x5f, 0x6d, - 0x75, 0x6e, 0x67, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6c, 0x69, - 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x56, 0x50, 0x38, 0x4d, 0x75, 0x6e, 0x67, 0x65, 0x72, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x09, 0x76, 0x70, 0x38, 0x4d, 0x75, 0x6e, 0x67, 0x65, - 0x72, 0x12, 0x4e, 0x0a, 0x13, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, - 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x52, 0x54, 0x43, 0x50, 0x53, 0x65, 0x6e, - 0x64, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x11, - 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x5f, 0x6d, 0x75, 0x6e, 0x67, 0x65, - 0x72, 0x22, 0xc7, 0x02, 0x0a, 0x0e, 0x52, 0x54, 0x50, 0x4d, 0x75, 0x6e, 0x67, 0x65, 0x72, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x12, 0x37, 0x0a, 0x18, 0x65, 0x78, 0x74, 0x5f, 0x6c, 0x61, 0x73, 0x74, - 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x15, 0x65, 0x78, 0x74, 0x4c, 0x61, 0x73, 0x74, 0x53, - 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x44, 0x0a, - 0x1f, 0x65, 0x78, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x5f, 0x6c, 0x61, 0x73, 0x74, - 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x1b, 0x65, 0x78, 0x74, 0x53, 0x65, 0x63, 0x6f, 0x6e, - 0x64, 0x4c, 0x61, 0x73, 0x74, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x12, 0x65, 0x78, 0x74, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x10, 0x65, 0x78, 0x74, 0x4c, 0x61, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x12, 0x39, 0x0a, 0x19, 0x65, 0x78, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x5f, - 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x16, 0x65, 0x78, 0x74, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x4c, - 0x61, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1f, 0x0a, 0x0b, - 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x12, 0x2c, 0x0a, - 0x12, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x61, 0x72, - 0x6b, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x73, 0x65, 0x63, 0x6f, 0x6e, - 0x64, 0x4c, 0x61, 0x73, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x22, 0x98, 0x02, 0x0a, 0x0e, - 0x56, 0x50, 0x38, 0x4d, 0x75, 0x6e, 0x67, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2d, - 0x0a, 0x13, 0x65, 0x78, 0x74, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x70, 0x69, 0x63, 0x74, 0x75, - 0x72, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x65, 0x78, 0x74, - 0x4c, 0x61, 0x73, 0x74, 0x50, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x49, 0x64, 0x12, 0x26, 0x0a, - 0x0f, 0x70, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x69, 0x64, 0x5f, 0x75, 0x73, 0x65, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x70, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x49, - 0x64, 0x55, 0x73, 0x65, 0x64, 0x12, 0x27, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x74, 0x6c, - 0x30, 0x5f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x54, 0x6c, 0x30, 0x50, 0x69, 0x63, 0x49, 0x64, 0x78, 0x12, 0x27, - 0x0a, 0x10, 0x74, 0x6c, 0x30, 0x5f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x78, 0x5f, 0x75, 0x73, - 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, 0x30, 0x50, 0x69, 0x63, - 0x49, 0x64, 0x78, 0x55, 0x73, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x69, 0x64, 0x5f, 0x75, - 0x73, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x74, 0x69, 0x64, 0x55, 0x73, - 0x65, 0x64, 0x12, 0x20, 0x0a, 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x69, - 0x64, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x4b, 0x65, - 0x79, 0x49, 0x64, 0x78, 0x12, 0x20, 0x0a, 0x0c, 0x6b, 0x65, 0x79, 0x5f, 0x69, 0x64, 0x78, 0x5f, - 0x75, 0x73, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x6b, 0x65, 0x79, 0x49, - 0x64, 0x78, 0x55, 0x73, 0x65, 0x64, 0x22, 0x43, 0x0a, 0x0c, 0x54, 0x69, 0x6d, 0x65, 0x64, 0x56, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x6e, 0x69, 0x78, 0x5f, 0x6d, - 0x69, 0x63, 0x72, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, 0x6e, 0x69, 0x78, - 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x63, 0x6b, 0x73, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x69, 0x63, 0x6b, 0x73, 0x2a, 0x2f, 0x0a, 0x0a, 0x41, - 0x75, 0x64, 0x69, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x63, 0x12, 0x0e, 0x0a, 0x0a, 0x44, 0x45, 0x46, - 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x41, 0x43, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x4f, 0x50, 0x55, - 0x53, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x41, 0x43, 0x10, 0x02, 0x2a, 0x56, 0x0a, 0x0a, - 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x63, 0x12, 0x0e, 0x0a, 0x0a, 0x44, 0x45, - 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x56, 0x43, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x48, 0x32, - 0x36, 0x34, 0x5f, 0x42, 0x41, 0x53, 0x45, 0x4c, 0x49, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x0d, 0x0a, - 0x09, 0x48, 0x32, 0x36, 0x34, 0x5f, 0x4d, 0x41, 0x49, 0x4e, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, - 0x48, 0x32, 0x36, 0x34, 0x5f, 0x48, 0x49, 0x47, 0x48, 0x10, 0x03, 0x12, 0x07, 0x0a, 0x03, 0x56, - 0x50, 0x38, 0x10, 0x04, 0x2a, 0x29, 0x0a, 0x0a, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x64, - 0x65, 0x63, 0x12, 0x0e, 0x0a, 0x0a, 0x49, 0x43, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, - 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x43, 0x5f, 0x4a, 0x50, 0x45, 0x47, 0x10, 0x01, 0x2a, - 0x2b, 0x0a, 0x09, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x09, 0x0a, 0x05, - 0x41, 0x55, 0x44, 0x49, 0x4f, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x56, 0x49, 0x44, 0x45, 0x4f, - 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x41, 0x54, 0x41, 0x10, 0x02, 0x2a, 0x60, 0x0a, 0x0b, - 0x54, 0x72, 0x61, 0x63, 0x6b, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, - 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x41, 0x4d, 0x45, - 0x52, 0x41, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x4d, 0x49, 0x43, 0x52, 0x4f, 0x50, 0x48, 0x4f, - 0x4e, 0x45, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x43, 0x52, 0x45, 0x45, 0x4e, 0x5f, 0x53, - 0x48, 0x41, 0x52, 0x45, 0x10, 0x03, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x43, 0x52, 0x45, 0x45, 0x4e, - 0x5f, 0x53, 0x48, 0x41, 0x52, 0x45, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x10, 0x04, 0x2a, 0x36, - 0x0a, 0x0c, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x07, - 0x0a, 0x03, 0x4c, 0x4f, 0x57, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x45, 0x44, 0x49, 0x55, - 0x4d, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x48, 0x49, 0x47, 0x48, 0x10, 0x02, 0x12, 0x07, 0x0a, - 0x03, 0x4f, 0x46, 0x46, 0x10, 0x03, 0x2a, 0x40, 0x0a, 0x11, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x08, 0x0a, 0x04, 0x50, - 0x4f, 0x4f, 0x52, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x47, 0x4f, 0x4f, 0x44, 0x10, 0x01, 0x12, - 0x0d, 0x0a, 0x09, 0x45, 0x58, 0x43, 0x45, 0x4c, 0x4c, 0x45, 0x4e, 0x54, 0x10, 0x02, 0x12, 0x08, - 0x0a, 0x04, 0x4c, 0x4f, 0x53, 0x54, 0x10, 0x03, 0x2a, 0x3b, 0x0a, 0x13, 0x43, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, - 0x09, 0x0a, 0x05, 0x55, 0x4e, 0x53, 0x45, 0x54, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x49, - 0x53, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x45, 0x4e, 0x41, 0x42, - 0x4c, 0x45, 0x44, 0x10, 0x02, 0x2a, 0xec, 0x01, 0x0a, 0x10, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, - 0x6e, 0x65, 0x63, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x0e, 0x55, 0x4e, - 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x10, 0x00, 0x12, 0x14, - 0x0a, 0x10, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x49, 0x4e, 0x49, 0x54, 0x49, 0x41, 0x54, - 0x45, 0x44, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x44, 0x55, 0x50, 0x4c, 0x49, 0x43, 0x41, 0x54, - 0x45, 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, - 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x53, 0x48, 0x55, 0x54, 0x44, 0x4f, 0x57, 0x4e, 0x10, - 0x03, 0x12, 0x17, 0x0a, 0x13, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x49, 0x50, 0x41, 0x4e, 0x54, - 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x44, 0x10, 0x04, 0x12, 0x10, 0x0a, 0x0c, 0x52, 0x4f, - 0x4f, 0x4d, 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, - 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4d, 0x49, 0x53, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x10, 0x06, - 0x12, 0x10, 0x0a, 0x0c, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x55, 0x52, 0x45, - 0x10, 0x07, 0x12, 0x0d, 0x0a, 0x09, 0x4d, 0x49, 0x47, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, - 0x08, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x49, 0x47, 0x4e, 0x41, 0x4c, 0x5f, 0x43, 0x4c, 0x4f, 0x53, - 0x45, 0x10, 0x09, 0x12, 0x0f, 0x0a, 0x0b, 0x52, 0x4f, 0x4f, 0x4d, 0x5f, 0x43, 0x4c, 0x4f, 0x53, - 0x45, 0x44, 0x10, 0x0a, 0x2a, 0x89, 0x01, 0x0a, 0x0f, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x6e, 0x65, - 0x63, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x0a, 0x52, 0x52, 0x5f, 0x55, - 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x52, 0x52, 0x5f, 0x53, - 0x49, 0x47, 0x4e, 0x41, 0x4c, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, - 0x45, 0x44, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x52, 0x52, 0x5f, 0x50, 0x55, 0x42, 0x4c, 0x49, - 0x53, 0x48, 0x45, 0x52, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x12, 0x18, 0x0a, - 0x14, 0x52, 0x52, 0x5f, 0x53, 0x55, 0x42, 0x53, 0x43, 0x52, 0x49, 0x42, 0x45, 0x52, 0x5f, 0x46, - 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x03, 0x12, 0x17, 0x0a, 0x13, 0x52, 0x52, 0x5f, 0x53, 0x57, - 0x49, 0x54, 0x43, 0x48, 0x5f, 0x43, 0x41, 0x4e, 0x44, 0x49, 0x44, 0x41, 0x54, 0x45, 0x10, 0x04, - 0x2a, 0x54, 0x0a, 0x11, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, - 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x53, 0x45, 0x5f, 0x43, 0x4f, 0x44, 0x45, - 0x43, 0x5f, 0x55, 0x4e, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, - 0x15, 0x0a, 0x11, 0x53, 0x45, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x4b, 0x5f, 0x4e, 0x4f, 0x54, 0x46, - 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x02, 0x2a, 0xa3, 0x01, 0x0a, 0x11, 0x41, 0x75, 0x64, 0x69, 0x6f, - 0x54, 0x72, 0x61, 0x63, 0x6b, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x0d, 0x0a, 0x09, - 0x54, 0x46, 0x5f, 0x53, 0x54, 0x45, 0x52, 0x45, 0x4f, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x54, - 0x46, 0x5f, 0x4e, 0x4f, 0x5f, 0x44, 0x54, 0x58, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x54, 0x46, - 0x5f, 0x41, 0x55, 0x54, 0x4f, 0x5f, 0x47, 0x41, 0x49, 0x4e, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, - 0x4f, 0x4c, 0x10, 0x02, 0x12, 0x18, 0x0a, 0x14, 0x54, 0x46, 0x5f, 0x45, 0x43, 0x48, 0x4f, 0x5f, - 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x03, 0x12, 0x18, - 0x0a, 0x14, 0x54, 0x46, 0x5f, 0x4e, 0x4f, 0x49, 0x53, 0x45, 0x5f, 0x53, 0x55, 0x50, 0x50, 0x52, - 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x04, 0x12, 0x22, 0x0a, 0x1e, 0x54, 0x46, 0x5f, 0x45, - 0x4e, 0x48, 0x41, 0x4e, 0x43, 0x45, 0x44, 0x5f, 0x4e, 0x4f, 0x49, 0x53, 0x45, 0x5f, 0x43, 0x41, - 0x4e, 0x43, 0x45, 0x4c, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x05, 0x42, 0x46, 0x5a, 0x23, - 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6c, 0x69, 0x76, 0x65, 0x6b, - 0x69, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x6c, 0x69, 0x76, 0x65, - 0x6b, 0x69, 0x74, 0xaa, 0x02, 0x0d, 0x4c, 0x69, 0x76, 0x65, 0x4b, 0x69, 0x74, 0x2e, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0xea, 0x02, 0x0e, 0x4c, 0x69, 0x76, 0x65, 0x4b, 0x69, 0x74, 0x3a, 0x3a, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x05, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, + 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x12, 0x49, 0x0a, 0x11, 0x72, + 0x65, 0x73, 0x75, 0x6d, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, + 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x65, 0x74, + 0x74, 0x69, 0x6e, 0x67, 0x52, 0x10, 0x72, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x0f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, + 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x17, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, + 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x63, 0x73, 0x52, 0x0e, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, + 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x63, 0x73, 0x12, 0x3d, 0x0a, 0x0b, 0x66, 0x6f, 0x72, 0x63, + 0x65, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, + 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x0a, 0x66, 0x6f, 0x72, + 0x63, 0x65, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x22, 0x5d, 0x0a, 0x12, 0x56, 0x69, 0x64, 0x65, 0x6f, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x47, 0x0a, + 0x10, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x65, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, + 0x74, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x65, + 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x0f, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x45, + 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x22, 0x62, 0x0a, 0x0e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, + 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x63, 0x73, 0x12, 0x26, 0x0a, 0x06, 0x63, 0x6f, 0x64, 0x65, + 0x63, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, + 0x69, 0x74, 0x2e, 0x43, 0x6f, 0x64, 0x65, 0x63, 0x52, 0x06, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x73, + 0x12, 0x28, 0x0a, 0x07, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x0e, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x43, 0x6f, 0x64, 0x65, + 0x63, 0x52, 0x07, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x22, 0xed, 0x02, 0x0a, 0x08, 0x52, + 0x54, 0x50, 0x44, 0x72, 0x69, 0x66, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x5f, 0x74, 0x69, 0x6d, 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, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 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, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x64, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x23, + 0x0a, 0x0d, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x12, 0x26, 0x0a, 0x0f, 0x72, 0x74, 0x70, 0x5f, 0x63, 0x6c, 0x6f, 0x63, 0x6b, + 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x72, 0x74, + 0x70, 0x43, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x69, 0x63, 0x6b, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x64, + 0x72, 0x69, 0x66, 0x74, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x0c, 0x64, 0x72, 0x69, 0x66, 0x74, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, + 0x12, 0x19, 0x0a, 0x08, 0x64, 0x72, 0x69, 0x66, 0x74, 0x5f, 0x6d, 0x73, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x01, 0x52, 0x07, 0x64, 0x72, 0x69, 0x66, 0x74, 0x4d, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x63, + 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x01, 0x52, + 0x09, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x61, 0x74, 0x65, 0x22, 0xc4, 0x0f, 0x0a, 0x08, 0x52, + 0x54, 0x50, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x5f, 0x74, 0x69, 0x6d, 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, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 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, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x64, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x12, + 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x61, 0x74, 0x65, + 0x12, 0x14, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x27, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x68, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x69, 0x74, + 0x72, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x62, 0x69, 0x74, 0x72, + 0x61, 0x74, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x6c, + 0x6f, 0x73, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x65, + 0x74, 0x73, 0x4c, 0x6f, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, + 0x5f, 0x6c, 0x6f, 0x73, 0x73, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x01, + 0x52, 0x0e, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x4c, 0x6f, 0x73, 0x73, 0x52, 0x61, 0x74, 0x65, + 0x12, 0x34, 0x0a, 0x16, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6c, 0x6f, 0x73, 0x73, 0x5f, + 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x14, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x4c, 0x6f, 0x73, 0x73, 0x50, 0x65, 0x72, 0x63, + 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, + 0x73, 0x5f, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x10, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x65, 0x12, 0x32, 0x0a, 0x15, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x64, 0x75, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x01, 0x52, 0x13, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x65, 0x52, 0x61, 0x74, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x62, 0x79, 0x74, 0x65, 0x73, + 0x5f, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x0e, 0x62, 0x79, 0x74, 0x65, 0x73, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, + 0x12, 0x34, 0x0a, 0x16, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, + 0x5f, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x18, 0x28, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x14, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x42, 0x79, 0x74, 0x65, 0x73, 0x44, 0x75, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x62, 0x69, 0x74, 0x72, 0x61, 0x74, + 0x65, 0x5f, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x01, 0x52, 0x10, 0x62, 0x69, 0x74, 0x72, 0x61, 0x74, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x70, + 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x70, 0x61, + 0x63, 0x6b, 0x65, 0x74, 0x73, 0x50, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x2e, 0x0a, 0x13, + 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, + 0x61, 0x74, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x01, 0x52, 0x11, 0x70, 0x61, 0x63, 0x6b, 0x65, + 0x74, 0x50, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x74, 0x65, 0x12, 0x23, 0x0a, 0x0d, + 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x11, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0c, 0x62, 0x79, 0x74, 0x65, 0x73, 0x50, 0x61, 0x64, 0x64, 0x69, 0x6e, + 0x67, 0x12, 0x30, 0x0a, 0x14, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x74, 0x65, + 0x73, 0x5f, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x29, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x12, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x42, 0x79, 0x74, 0x65, 0x73, 0x50, 0x61, 0x64, 0x64, + 0x69, 0x6e, 0x67, 0x12, 0x27, 0x0a, 0x0f, 0x62, 0x69, 0x74, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x70, + 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x12, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0e, 0x62, 0x69, + 0x74, 0x72, 0x61, 0x74, 0x65, 0x50, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x2f, 0x0a, 0x14, + 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x6f, 0x66, 0x5f, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x70, 0x61, 0x63, 0x6b, + 0x65, 0x74, 0x73, 0x4f, 0x75, 0x74, 0x4f, 0x66, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, + 0x06, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x66, + 0x72, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x5f, 0x72, + 0x61, 0x74, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, + 0x52, 0x61, 0x74, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6a, 0x69, 0x74, 0x74, 0x65, 0x72, 0x5f, 0x63, + 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x16, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0d, 0x6a, 0x69, + 0x74, 0x74, 0x65, 0x72, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x6a, + 0x69, 0x74, 0x74, 0x65, 0x72, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x17, 0x20, 0x01, 0x28, 0x01, 0x52, + 0x09, 0x6a, 0x69, 0x74, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x78, 0x12, 0x48, 0x0a, 0x0d, 0x67, 0x61, + 0x70, 0x5f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x18, 0x18, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x52, 0x54, 0x50, 0x53, + 0x74, 0x61, 0x74, 0x73, 0x2e, 0x47, 0x61, 0x70, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, + 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x67, 0x61, 0x70, 0x48, 0x69, 0x73, 0x74, 0x6f, + 0x67, 0x72, 0x61, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x18, 0x19, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x61, + 0x63, 0x6b, 0x5f, 0x61, 0x63, 0x6b, 0x73, 0x18, 0x25, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6e, + 0x61, 0x63, 0x6b, 0x41, 0x63, 0x6b, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x6e, 0x61, 0x63, 0x6b, 0x5f, + 0x6d, 0x69, 0x73, 0x73, 0x65, 0x73, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6e, 0x61, + 0x63, 0x6b, 0x4d, 0x69, 0x73, 0x73, 0x65, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x6e, 0x61, 0x63, 0x6b, + 0x5f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x26, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0c, 0x6e, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x12, 0x0a, + 0x04, 0x70, 0x6c, 0x69, 0x73, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x70, 0x6c, 0x69, + 0x73, 0x12, 0x35, 0x0a, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x70, 0x6c, 0x69, 0x18, 0x1c, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, + 0x07, 0x6c, 0x61, 0x73, 0x74, 0x50, 0x6c, 0x69, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x69, 0x72, 0x73, + 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x66, 0x69, 0x72, 0x73, 0x12, 0x35, 0x0a, 0x08, + 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x69, 0x72, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x6c, 0x61, 0x73, 0x74, + 0x46, 0x69, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x74, 0x74, 0x5f, 0x63, 0x75, 0x72, 0x72, 0x65, + 0x6e, 0x74, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x72, 0x74, 0x74, 0x43, 0x75, 0x72, + 0x72, 0x65, 0x6e, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x74, 0x74, 0x5f, 0x6d, 0x61, 0x78, 0x18, + 0x20, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, 0x74, 0x74, 0x4d, 0x61, 0x78, 0x12, 0x1d, 0x0a, + 0x0a, 0x6b, 0x65, 0x79, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x21, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x09, 0x6b, 0x65, 0x79, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x40, 0x0a, 0x0e, + 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x18, 0x22, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x52, 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x4b, 0x65, 0x79, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x12, 0x26, + 0x0a, 0x0f, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x70, 0x6c, 0x69, + 0x73, 0x18, 0x23, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4c, 0x6f, + 0x63, 0x6b, 0x50, 0x6c, 0x69, 0x73, 0x12, 0x49, 0x0a, 0x13, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x5f, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x70, 0x6c, 0x69, 0x18, 0x24, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, + 0x10, 0x6c, 0x61, 0x73, 0x74, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x6b, 0x50, 0x6c, + 0x69, 0x12, 0x34, 0x0a, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x64, 0x72, 0x69, 0x66, + 0x74, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, + 0x74, 0x2e, 0x52, 0x54, 0x50, 0x44, 0x72, 0x69, 0x66, 0x74, 0x52, 0x0b, 0x70, 0x61, 0x63, 0x6b, + 0x65, 0x74, 0x44, 0x72, 0x69, 0x66, 0x74, 0x12, 0x3b, 0x0a, 0x10, 0x6e, 0x74, 0x70, 0x5f, 0x72, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x64, 0x72, 0x69, 0x66, 0x74, 0x18, 0x2d, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x11, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x52, 0x54, 0x50, 0x44, + 0x72, 0x69, 0x66, 0x74, 0x52, 0x0e, 0x6e, 0x74, 0x70, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x44, + 0x72, 0x69, 0x66, 0x74, 0x12, 0x43, 0x0a, 0x14, 0x72, 0x65, 0x62, 0x61, 0x73, 0x65, 0x64, 0x5f, + 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x64, 0x72, 0x69, 0x66, 0x74, 0x18, 0x2e, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x52, 0x54, 0x50, + 0x44, 0x72, 0x69, 0x66, 0x74, 0x52, 0x12, 0x72, 0x65, 0x62, 0x61, 0x73, 0x65, 0x64, 0x52, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x44, 0x72, 0x69, 0x66, 0x74, 0x12, 0x45, 0x0a, 0x15, 0x72, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x64, 0x72, 0x69, + 0x66, 0x74, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, + 0x69, 0x74, 0x2e, 0x52, 0x54, 0x50, 0x44, 0x72, 0x69, 0x66, 0x74, 0x52, 0x13, 0x72, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x64, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x72, 0x69, 0x66, 0x74, + 0x1a, 0x3f, 0x0a, 0x11, 0x47, 0x61, 0x70, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, + 0x01, 0x22, 0xf0, 0x01, 0x0a, 0x15, 0x52, 0x54, 0x43, 0x50, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, + 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x72, + 0x74, 0x70, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0c, 0x72, 0x74, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x12, 0x2a, 0x0a, 0x11, 0x72, 0x74, 0x70, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x5f, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x72, 0x74, 0x70, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x45, 0x78, 0x74, 0x12, 0x23, 0x0a, 0x0d, + 0x6e, 0x74, 0x70, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0c, 0x6e, 0x74, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x61, + 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x74, 0x5f, 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x65, 0x64, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x61, 0x74, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, + 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x16, 0x0a, 0x06, + 0x6f, 0x63, 0x74, 0x65, 0x74, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6f, 0x63, + 0x74, 0x65, 0x74, 0x73, 0x22, 0xce, 0x03, 0x0a, 0x11, 0x52, 0x54, 0x50, 0x46, 0x6f, 0x72, 0x77, + 0x61, 0x72, 0x64, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x65, 0x64, 0x12, 0x36, 0x0a, 0x17, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x5f, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x73, 0x70, 0x61, 0x74, 0x69, 0x61, 0x6c, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x15, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x4c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x70, 0x61, 0x74, 0x69, 0x61, 0x6c, 0x12, 0x24, 0x0a, 0x0e, + 0x70, 0x72, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x65, 0x78, 0x74, 0x5f, 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x11, 0x65, 0x78, 0x74, 0x46, 0x69, 0x72, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x12, 0x3f, 0x0a, 0x1c, 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x19, 0x64, 0x75, 0x6d, 0x6d, 0x79, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x4f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x12, 0x36, 0x0a, 0x0a, 0x72, 0x74, 0x70, 0x5f, 0x6d, 0x75, 0x6e, 0x67, 0x65, + 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, + 0x74, 0x2e, 0x52, 0x54, 0x50, 0x4d, 0x75, 0x6e, 0x67, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x52, 0x09, 0x72, 0x74, 0x70, 0x4d, 0x75, 0x6e, 0x67, 0x65, 0x72, 0x12, 0x38, 0x0a, 0x0a, 0x76, + 0x70, 0x38, 0x5f, 0x6d, 0x75, 0x6e, 0x67, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x17, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x56, 0x50, 0x38, 0x4d, 0x75, 0x6e, + 0x67, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x09, 0x76, 0x70, 0x38, 0x4d, + 0x75, 0x6e, 0x67, 0x65, 0x72, 0x12, 0x4e, 0x0a, 0x13, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f, + 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x52, 0x54, 0x43, + 0x50, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x52, 0x11, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x5f, 0x6d, + 0x75, 0x6e, 0x67, 0x65, 0x72, 0x22, 0xc7, 0x02, 0x0a, 0x0e, 0x52, 0x54, 0x50, 0x4d, 0x75, 0x6e, + 0x67, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x37, 0x0a, 0x18, 0x65, 0x78, 0x74, 0x5f, + 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x15, 0x65, 0x78, 0x74, 0x4c, + 0x61, 0x73, 0x74, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x12, 0x44, 0x0a, 0x1f, 0x65, 0x78, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x5f, + 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x1b, 0x65, 0x78, 0x74, 0x53, + 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x4c, 0x61, 0x73, 0x74, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, + 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x12, 0x65, 0x78, 0x74, 0x5f, 0x6c, + 0x61, 0x73, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x10, 0x65, 0x78, 0x74, 0x4c, 0x61, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x39, 0x0a, 0x19, 0x65, 0x78, 0x74, 0x5f, 0x73, 0x65, 0x63, + 0x6f, 0x6e, 0x64, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x16, 0x65, 0x78, 0x74, 0x53, 0x65, 0x63, + 0x6f, 0x6e, 0x64, 0x4c, 0x61, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, + 0x72, 0x12, 0x2c, 0x0a, 0x12, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x5f, 0x6c, 0x61, 0x73, 0x74, + 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x73, + 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x4c, 0x61, 0x73, 0x74, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x72, 0x22, + 0x98, 0x02, 0x0a, 0x0e, 0x56, 0x50, 0x38, 0x4d, 0x75, 0x6e, 0x67, 0x65, 0x72, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x12, 0x2d, 0x0a, 0x13, 0x65, 0x78, 0x74, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x70, + 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x10, 0x65, 0x78, 0x74, 0x4c, 0x61, 0x73, 0x74, 0x50, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x49, + 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x70, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x69, 0x64, 0x5f, + 0x75, 0x73, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x70, 0x69, 0x63, 0x74, + 0x75, 0x72, 0x65, 0x49, 0x64, 0x55, 0x73, 0x65, 0x64, 0x12, 0x27, 0x0a, 0x10, 0x6c, 0x61, 0x73, + 0x74, 0x5f, 0x74, 0x6c, 0x30, 0x5f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x78, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x54, 0x6c, 0x30, 0x50, 0x69, 0x63, 0x49, + 0x64, 0x78, 0x12, 0x27, 0x0a, 0x10, 0x74, 0x6c, 0x30, 0x5f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, + 0x78, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x6c, + 0x30, 0x50, 0x69, 0x63, 0x49, 0x64, 0x78, 0x55, 0x73, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x74, + 0x69, 0x64, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x74, + 0x69, 0x64, 0x55, 0x73, 0x65, 0x64, 0x12, 0x20, 0x0a, 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6b, + 0x65, 0x79, 0x5f, 0x69, 0x64, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6c, 0x61, + 0x73, 0x74, 0x4b, 0x65, 0x79, 0x49, 0x64, 0x78, 0x12, 0x20, 0x0a, 0x0c, 0x6b, 0x65, 0x79, 0x5f, + 0x69, 0x64, 0x78, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, + 0x6b, 0x65, 0x79, 0x49, 0x64, 0x78, 0x55, 0x73, 0x65, 0x64, 0x22, 0x43, 0x0a, 0x0c, 0x54, 0x69, + 0x6d, 0x65, 0x64, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x6e, + 0x69, 0x78, 0x5f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, + 0x75, 0x6e, 0x69, 0x78, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x63, + 0x6b, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x69, 0x63, 0x6b, 0x73, 0x2a, + 0x2f, 0x0a, 0x0a, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x63, 0x12, 0x0e, 0x0a, + 0x0a, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x41, 0x43, 0x10, 0x00, 0x12, 0x08, 0x0a, + 0x04, 0x4f, 0x50, 0x55, 0x53, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x41, 0x43, 0x10, 0x02, + 0x2a, 0x56, 0x0a, 0x0a, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x63, 0x12, 0x0e, + 0x0a, 0x0a, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x56, 0x43, 0x10, 0x00, 0x12, 0x11, + 0x0a, 0x0d, 0x48, 0x32, 0x36, 0x34, 0x5f, 0x42, 0x41, 0x53, 0x45, 0x4c, 0x49, 0x4e, 0x45, 0x10, + 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x48, 0x32, 0x36, 0x34, 0x5f, 0x4d, 0x41, 0x49, 0x4e, 0x10, 0x02, + 0x12, 0x0d, 0x0a, 0x09, 0x48, 0x32, 0x36, 0x34, 0x5f, 0x48, 0x49, 0x47, 0x48, 0x10, 0x03, 0x12, + 0x07, 0x0a, 0x03, 0x56, 0x50, 0x38, 0x10, 0x04, 0x2a, 0x29, 0x0a, 0x0a, 0x49, 0x6d, 0x61, 0x67, + 0x65, 0x43, 0x6f, 0x64, 0x65, 0x63, 0x12, 0x0e, 0x0a, 0x0a, 0x49, 0x43, 0x5f, 0x44, 0x45, 0x46, + 0x41, 0x55, 0x4c, 0x54, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x43, 0x5f, 0x4a, 0x50, 0x45, + 0x47, 0x10, 0x01, 0x2a, 0x2b, 0x0a, 0x09, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x09, 0x0a, 0x05, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x56, + 0x49, 0x44, 0x45, 0x4f, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x41, 0x54, 0x41, 0x10, 0x02, + 0x2a, 0x60, 0x0a, 0x0b, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, + 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, + 0x43, 0x41, 0x4d, 0x45, 0x52, 0x41, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x4d, 0x49, 0x43, 0x52, + 0x4f, 0x50, 0x48, 0x4f, 0x4e, 0x45, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x43, 0x52, 0x45, + 0x45, 0x4e, 0x5f, 0x53, 0x48, 0x41, 0x52, 0x45, 0x10, 0x03, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x43, + 0x52, 0x45, 0x45, 0x4e, 0x5f, 0x53, 0x48, 0x41, 0x52, 0x45, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x4f, + 0x10, 0x04, 0x2a, 0x36, 0x0a, 0x0c, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x51, 0x75, 0x61, 0x6c, 0x69, + 0x74, 0x79, 0x12, 0x07, 0x0a, 0x03, 0x4c, 0x4f, 0x57, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x4d, + 0x45, 0x44, 0x49, 0x55, 0x4d, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x48, 0x49, 0x47, 0x48, 0x10, + 0x02, 0x12, 0x07, 0x0a, 0x03, 0x4f, 0x46, 0x46, 0x10, 0x03, 0x2a, 0x40, 0x0a, 0x11, 0x43, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x12, + 0x08, 0x0a, 0x04, 0x50, 0x4f, 0x4f, 0x52, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x47, 0x4f, 0x4f, + 0x44, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x45, 0x58, 0x43, 0x45, 0x4c, 0x4c, 0x45, 0x4e, 0x54, + 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x4c, 0x4f, 0x53, 0x54, 0x10, 0x03, 0x2a, 0x3b, 0x0a, 0x13, + 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x65, 0x74, 0x74, + 0x69, 0x6e, 0x67, 0x12, 0x09, 0x0a, 0x05, 0x55, 0x4e, 0x53, 0x45, 0x54, 0x10, 0x00, 0x12, 0x0c, + 0x0a, 0x08, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, + 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x2a, 0xec, 0x01, 0x0a, 0x10, 0x44, 0x69, + 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x12, + 0x0a, 0x0e, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, + 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x49, 0x4e, 0x49, + 0x54, 0x49, 0x41, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x44, 0x55, 0x50, 0x4c, + 0x49, 0x43, 0x41, 0x54, 0x45, 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x10, 0x02, + 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x53, 0x48, 0x55, 0x54, 0x44, + 0x4f, 0x57, 0x4e, 0x10, 0x03, 0x12, 0x17, 0x0a, 0x13, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x49, + 0x50, 0x41, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x44, 0x10, 0x04, 0x12, 0x10, + 0x0a, 0x0c, 0x52, 0x4f, 0x4f, 0x4d, 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x05, + 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4d, 0x49, 0x53, 0x4d, 0x41, 0x54, + 0x43, 0x48, 0x10, 0x06, 0x12, 0x10, 0x0a, 0x0c, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x46, 0x41, 0x49, + 0x4c, 0x55, 0x52, 0x45, 0x10, 0x07, 0x12, 0x0d, 0x0a, 0x09, 0x4d, 0x49, 0x47, 0x52, 0x41, 0x54, + 0x49, 0x4f, 0x4e, 0x10, 0x08, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x49, 0x47, 0x4e, 0x41, 0x4c, 0x5f, + 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x10, 0x09, 0x12, 0x0f, 0x0a, 0x0b, 0x52, 0x4f, 0x4f, 0x4d, 0x5f, + 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x44, 0x10, 0x0a, 0x2a, 0x89, 0x01, 0x0a, 0x0f, 0x52, 0x65, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x0a, + 0x52, 0x52, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, + 0x52, 0x52, 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x41, 0x4c, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, + 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x52, 0x52, 0x5f, 0x50, + 0x55, 0x42, 0x4c, 0x49, 0x53, 0x48, 0x45, 0x52, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, + 0x02, 0x12, 0x18, 0x0a, 0x14, 0x52, 0x52, 0x5f, 0x53, 0x55, 0x42, 0x53, 0x43, 0x52, 0x49, 0x42, + 0x45, 0x52, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x03, 0x12, 0x17, 0x0a, 0x13, 0x52, + 0x52, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x43, 0x41, 0x4e, 0x44, 0x49, 0x44, 0x41, + 0x54, 0x45, 0x10, 0x04, 0x2a, 0x54, 0x0a, 0x11, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x45, 0x5f, + 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x53, 0x45, 0x5f, + 0x43, 0x4f, 0x44, 0x45, 0x43, 0x5f, 0x55, 0x4e, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, + 0x44, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x45, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x4b, 0x5f, + 0x4e, 0x4f, 0x54, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x02, 0x2a, 0xa3, 0x01, 0x0a, 0x11, 0x41, + 0x75, 0x64, 0x69, 0x6f, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x46, 0x5f, 0x53, 0x54, 0x45, 0x52, 0x45, 0x4f, 0x10, 0x00, 0x12, + 0x0d, 0x0a, 0x09, 0x54, 0x46, 0x5f, 0x4e, 0x4f, 0x5f, 0x44, 0x54, 0x58, 0x10, 0x01, 0x12, 0x18, + 0x0a, 0x14, 0x54, 0x46, 0x5f, 0x41, 0x55, 0x54, 0x4f, 0x5f, 0x47, 0x41, 0x49, 0x4e, 0x5f, 0x43, + 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x10, 0x02, 0x12, 0x18, 0x0a, 0x14, 0x54, 0x46, 0x5f, 0x45, + 0x43, 0x48, 0x4f, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, + 0x10, 0x03, 0x12, 0x18, 0x0a, 0x14, 0x54, 0x46, 0x5f, 0x4e, 0x4f, 0x49, 0x53, 0x45, 0x5f, 0x53, + 0x55, 0x50, 0x50, 0x52, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x04, 0x12, 0x22, 0x0a, 0x1e, + 0x54, 0x46, 0x5f, 0x45, 0x4e, 0x48, 0x41, 0x4e, 0x43, 0x45, 0x44, 0x5f, 0x4e, 0x4f, 0x49, 0x53, + 0x45, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x05, + 0x42, 0x46, 0x5a, 0x23, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6c, + 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, + 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0xaa, 0x02, 0x0d, 0x4c, 0x69, 0x76, 0x65, 0x4b, 0x69, + 0x74, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0xea, 0x02, 0x0e, 0x4c, 0x69, 0x76, 0x65, 0x4b, 0x69, + 0x74, 0x3a, 0x3a, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -4755,7 +4767,7 @@ func file_livekit_models_proto_rawDescGZIP() []byte { var file_livekit_models_proto_enumTypes = make([]protoimpl.EnumInfo, 18) var file_livekit_models_proto_msgTypes = make([]protoimpl.MessageInfo, 32) -var file_livekit_models_proto_goTypes = []any{ +var file_livekit_models_proto_goTypes = []interface{}{ (AudioCodec)(0), // 0: livekit.AudioCodec (VideoCodec)(0), // 1: livekit.VideoCodec (ImageCodec)(0), // 2: livekit.ImageCodec @@ -4877,7 +4889,7 @@ func file_livekit_models_proto_init() { } file_livekit_metrics_proto_init() if !protoimpl.UnsafeEnabled { - file_livekit_models_proto_msgTypes[0].Exporter = func(v any, i int) any { + file_livekit_models_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Room); i { case 0: return &v.state @@ -4889,7 +4901,7 @@ func file_livekit_models_proto_init() { return nil } } - file_livekit_models_proto_msgTypes[1].Exporter = func(v any, i int) any { + file_livekit_models_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Codec); i { case 0: return &v.state @@ -4901,7 +4913,7 @@ func file_livekit_models_proto_init() { return nil } } - file_livekit_models_proto_msgTypes[2].Exporter = func(v any, i int) any { + file_livekit_models_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PlayoutDelay); i { case 0: return &v.state @@ -4913,7 +4925,7 @@ func file_livekit_models_proto_init() { return nil } } - file_livekit_models_proto_msgTypes[3].Exporter = func(v any, i int) any { + file_livekit_models_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ParticipantPermission); i { case 0: return &v.state @@ -4925,7 +4937,7 @@ func file_livekit_models_proto_init() { return nil } } - file_livekit_models_proto_msgTypes[4].Exporter = func(v any, i int) any { + file_livekit_models_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ParticipantInfo); i { case 0: return &v.state @@ -4937,7 +4949,7 @@ func file_livekit_models_proto_init() { return nil } } - file_livekit_models_proto_msgTypes[5].Exporter = func(v any, i int) any { + file_livekit_models_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Encryption); i { case 0: return &v.state @@ -4949,7 +4961,7 @@ func file_livekit_models_proto_init() { return nil } } - file_livekit_models_proto_msgTypes[6].Exporter = func(v any, i int) any { + file_livekit_models_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SimulcastCodecInfo); i { case 0: return &v.state @@ -4961,7 +4973,7 @@ func file_livekit_models_proto_init() { return nil } } - file_livekit_models_proto_msgTypes[7].Exporter = func(v any, i int) any { + file_livekit_models_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TrackInfo); i { case 0: return &v.state @@ -4973,7 +4985,7 @@ func file_livekit_models_proto_init() { return nil } } - file_livekit_models_proto_msgTypes[8].Exporter = func(v any, i int) any { + file_livekit_models_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VideoLayer); i { case 0: return &v.state @@ -4985,7 +4997,7 @@ func file_livekit_models_proto_init() { return nil } } - file_livekit_models_proto_msgTypes[9].Exporter = func(v any, i int) any { + file_livekit_models_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DataPacket); i { case 0: return &v.state @@ -4997,7 +5009,7 @@ func file_livekit_models_proto_init() { return nil } } - file_livekit_models_proto_msgTypes[10].Exporter = func(v any, i int) any { + file_livekit_models_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActiveSpeakerUpdate); i { case 0: return &v.state @@ -5009,7 +5021,7 @@ func file_livekit_models_proto_init() { return nil } } - file_livekit_models_proto_msgTypes[11].Exporter = func(v any, i int) any { + file_livekit_models_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SpeakerInfo); i { case 0: return &v.state @@ -5021,7 +5033,7 @@ func file_livekit_models_proto_init() { return nil } } - file_livekit_models_proto_msgTypes[12].Exporter = func(v any, i int) any { + file_livekit_models_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UserPacket); i { case 0: return &v.state @@ -5033,7 +5045,7 @@ func file_livekit_models_proto_init() { return nil } } - file_livekit_models_proto_msgTypes[13].Exporter = func(v any, i int) any { + file_livekit_models_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SipDTMF); i { case 0: return &v.state @@ -5045,7 +5057,7 @@ func file_livekit_models_proto_init() { return nil } } - file_livekit_models_proto_msgTypes[14].Exporter = func(v any, i int) any { + file_livekit_models_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Transcription); i { case 0: return &v.state @@ -5057,7 +5069,7 @@ func file_livekit_models_proto_init() { return nil } } - file_livekit_models_proto_msgTypes[15].Exporter = func(v any, i int) any { + file_livekit_models_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TranscriptionSegment); i { case 0: return &v.state @@ -5069,7 +5081,7 @@ func file_livekit_models_proto_init() { return nil } } - file_livekit_models_proto_msgTypes[16].Exporter = func(v any, i int) any { + file_livekit_models_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ChatMessage); i { case 0: return &v.state @@ -5081,7 +5093,7 @@ func file_livekit_models_proto_init() { return nil } } - file_livekit_models_proto_msgTypes[17].Exporter = func(v any, i int) any { + file_livekit_models_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ParticipantTracks); i { case 0: return &v.state @@ -5093,7 +5105,7 @@ func file_livekit_models_proto_init() { return nil } } - file_livekit_models_proto_msgTypes[18].Exporter = func(v any, i int) any { + file_livekit_models_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ServerInfo); i { case 0: return &v.state @@ -5105,7 +5117,7 @@ func file_livekit_models_proto_init() { return nil } } - file_livekit_models_proto_msgTypes[19].Exporter = func(v any, i int) any { + file_livekit_models_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ClientInfo); i { case 0: return &v.state @@ -5117,7 +5129,7 @@ func file_livekit_models_proto_init() { return nil } } - file_livekit_models_proto_msgTypes[20].Exporter = func(v any, i int) any { + file_livekit_models_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ClientConfiguration); i { case 0: return &v.state @@ -5129,7 +5141,7 @@ func file_livekit_models_proto_init() { return nil } } - file_livekit_models_proto_msgTypes[21].Exporter = func(v any, i int) any { + file_livekit_models_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VideoConfiguration); i { case 0: return &v.state @@ -5141,7 +5153,7 @@ func file_livekit_models_proto_init() { return nil } } - file_livekit_models_proto_msgTypes[22].Exporter = func(v any, i int) any { + file_livekit_models_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DisabledCodecs); i { case 0: return &v.state @@ -5153,7 +5165,7 @@ func file_livekit_models_proto_init() { return nil } } - file_livekit_models_proto_msgTypes[23].Exporter = func(v any, i int) any { + file_livekit_models_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RTPDrift); i { case 0: return &v.state @@ -5165,7 +5177,7 @@ func file_livekit_models_proto_init() { return nil } } - file_livekit_models_proto_msgTypes[24].Exporter = func(v any, i int) any { + file_livekit_models_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RTPStats); i { case 0: return &v.state @@ -5177,7 +5189,7 @@ func file_livekit_models_proto_init() { return nil } } - file_livekit_models_proto_msgTypes[25].Exporter = func(v any, i int) any { + file_livekit_models_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RTCPSenderReportState); i { case 0: return &v.state @@ -5189,7 +5201,7 @@ func file_livekit_models_proto_init() { return nil } } - file_livekit_models_proto_msgTypes[26].Exporter = func(v any, i int) any { + file_livekit_models_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RTPForwarderState); i { case 0: return &v.state @@ -5201,7 +5213,7 @@ func file_livekit_models_proto_init() { return nil } } - file_livekit_models_proto_msgTypes[27].Exporter = func(v any, i int) any { + file_livekit_models_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RTPMungerState); i { case 0: return &v.state @@ -5213,7 +5225,7 @@ func file_livekit_models_proto_init() { return nil } } - file_livekit_models_proto_msgTypes[28].Exporter = func(v any, i int) any { + file_livekit_models_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VP8MungerState); i { case 0: return &v.state @@ -5225,7 +5237,7 @@ func file_livekit_models_proto_init() { return nil } } - file_livekit_models_proto_msgTypes[29].Exporter = func(v any, i int) any { + file_livekit_models_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TimedVersion); i { case 0: return &v.state @@ -5238,7 +5250,7 @@ func file_livekit_models_proto_init() { } } } - file_livekit_models_proto_msgTypes[9].OneofWrappers = []any{ + file_livekit_models_proto_msgTypes[9].OneofWrappers = []interface{}{ (*DataPacket_User)(nil), (*DataPacket_Speaker)(nil), (*DataPacket_SipDtmf)(nil), @@ -5246,9 +5258,9 @@ func file_livekit_models_proto_init() { (*DataPacket_Metrics)(nil), (*DataPacket_ChatMessage)(nil), } - file_livekit_models_proto_msgTypes[12].OneofWrappers = []any{} - file_livekit_models_proto_msgTypes[16].OneofWrappers = []any{} - file_livekit_models_proto_msgTypes[26].OneofWrappers = []any{ + file_livekit_models_proto_msgTypes[12].OneofWrappers = []interface{}{} + file_livekit_models_proto_msgTypes[16].OneofWrappers = []interface{}{} + file_livekit_models_proto_msgTypes[26].OneofWrappers = []interface{}{ (*RTPForwarderState_Vp8Munger)(nil), } type x struct{} diff --git a/livekit/livekit_room.pb.go b/livekit/livekit_room.pb.go index e5743d3d..4d06d801 100644 --- a/livekit/livekit_room.pb.go +++ b/livekit/livekit_room.pb.go @@ -14,8 +14,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.2 -// protoc v4.23.4 +// protoc-gen-go v1.31.0 +// protoc v4.24.3 // source: livekit_room.proto package livekit @@ -1560,7 +1560,7 @@ func file_livekit_room_proto_rawDescGZIP() []byte { } var file_livekit_room_proto_msgTypes = make([]protoimpl.MessageInfo, 21) -var file_livekit_room_proto_goTypes = []any{ +var file_livekit_room_proto_goTypes = []interface{}{ (*CreateRoomRequest)(nil), // 0: livekit.CreateRoomRequest (*RoomEgress)(nil), // 1: livekit.RoomEgress (*RoomAgent)(nil), // 2: livekit.RoomAgent @@ -1647,7 +1647,7 @@ func file_livekit_room_proto_init() { file_livekit_egress_proto_init() file_livekit_agent_dispatch_proto_init() if !protoimpl.UnsafeEnabled { - file_livekit_room_proto_msgTypes[0].Exporter = func(v any, i int) any { + file_livekit_room_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateRoomRequest); i { case 0: return &v.state @@ -1659,7 +1659,7 @@ func file_livekit_room_proto_init() { return nil } } - file_livekit_room_proto_msgTypes[1].Exporter = func(v any, i int) any { + file_livekit_room_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RoomEgress); i { case 0: return &v.state @@ -1671,7 +1671,7 @@ func file_livekit_room_proto_init() { return nil } } - file_livekit_room_proto_msgTypes[2].Exporter = func(v any, i int) any { + file_livekit_room_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RoomAgent); i { case 0: return &v.state @@ -1683,7 +1683,7 @@ func file_livekit_room_proto_init() { return nil } } - file_livekit_room_proto_msgTypes[3].Exporter = func(v any, i int) any { + file_livekit_room_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListRoomsRequest); i { case 0: return &v.state @@ -1695,7 +1695,7 @@ func file_livekit_room_proto_init() { return nil } } - file_livekit_room_proto_msgTypes[4].Exporter = func(v any, i int) any { + file_livekit_room_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListRoomsResponse); i { case 0: return &v.state @@ -1707,7 +1707,7 @@ func file_livekit_room_proto_init() { return nil } } - file_livekit_room_proto_msgTypes[5].Exporter = func(v any, i int) any { + file_livekit_room_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteRoomRequest); i { case 0: return &v.state @@ -1719,7 +1719,7 @@ func file_livekit_room_proto_init() { return nil } } - file_livekit_room_proto_msgTypes[6].Exporter = func(v any, i int) any { + file_livekit_room_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteRoomResponse); i { case 0: return &v.state @@ -1731,7 +1731,7 @@ func file_livekit_room_proto_init() { return nil } } - file_livekit_room_proto_msgTypes[7].Exporter = func(v any, i int) any { + file_livekit_room_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListParticipantsRequest); i { case 0: return &v.state @@ -1743,7 +1743,7 @@ func file_livekit_room_proto_init() { return nil } } - file_livekit_room_proto_msgTypes[8].Exporter = func(v any, i int) any { + file_livekit_room_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListParticipantsResponse); i { case 0: return &v.state @@ -1755,7 +1755,7 @@ func file_livekit_room_proto_init() { return nil } } - file_livekit_room_proto_msgTypes[9].Exporter = func(v any, i int) any { + file_livekit_room_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RoomParticipantIdentity); i { case 0: return &v.state @@ -1767,7 +1767,7 @@ func file_livekit_room_proto_init() { return nil } } - file_livekit_room_proto_msgTypes[10].Exporter = func(v any, i int) any { + file_livekit_room_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RemoveParticipantResponse); i { case 0: return &v.state @@ -1779,7 +1779,7 @@ func file_livekit_room_proto_init() { return nil } } - file_livekit_room_proto_msgTypes[11].Exporter = func(v any, i int) any { + file_livekit_room_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MuteRoomTrackRequest); i { case 0: return &v.state @@ -1791,7 +1791,7 @@ func file_livekit_room_proto_init() { return nil } } - file_livekit_room_proto_msgTypes[12].Exporter = func(v any, i int) any { + file_livekit_room_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MuteRoomTrackResponse); i { case 0: return &v.state @@ -1803,7 +1803,7 @@ func file_livekit_room_proto_init() { return nil } } - file_livekit_room_proto_msgTypes[13].Exporter = func(v any, i int) any { + file_livekit_room_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateParticipantRequest); i { case 0: return &v.state @@ -1815,7 +1815,7 @@ func file_livekit_room_proto_init() { return nil } } - file_livekit_room_proto_msgTypes[14].Exporter = func(v any, i int) any { + file_livekit_room_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateSubscriptionsRequest); i { case 0: return &v.state @@ -1827,7 +1827,7 @@ func file_livekit_room_proto_init() { return nil } } - file_livekit_room_proto_msgTypes[15].Exporter = func(v any, i int) any { + file_livekit_room_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateSubscriptionsResponse); i { case 0: return &v.state @@ -1839,7 +1839,7 @@ func file_livekit_room_proto_init() { return nil } } - file_livekit_room_proto_msgTypes[16].Exporter = func(v any, i int) any { + file_livekit_room_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SendDataRequest); i { case 0: return &v.state @@ -1851,7 +1851,7 @@ func file_livekit_room_proto_init() { return nil } } - file_livekit_room_proto_msgTypes[17].Exporter = func(v any, i int) any { + file_livekit_room_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SendDataResponse); i { case 0: return &v.state @@ -1863,7 +1863,7 @@ func file_livekit_room_proto_init() { return nil } } - file_livekit_room_proto_msgTypes[18].Exporter = func(v any, i int) any { + file_livekit_room_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateRoomMetadataRequest); i { case 0: return &v.state @@ -1875,7 +1875,7 @@ func file_livekit_room_proto_init() { return nil } } - file_livekit_room_proto_msgTypes[19].Exporter = func(v any, i int) any { + file_livekit_room_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RoomConfiguration); i { case 0: return &v.state @@ -1888,7 +1888,7 @@ func file_livekit_room_proto_init() { } } } - file_livekit_room_proto_msgTypes[16].OneofWrappers = []any{} + file_livekit_room_proto_msgTypes[16].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/livekit/livekit_rtc.pb.go b/livekit/livekit_rtc.pb.go index d05a84cb..da9ced39 100644 --- a/livekit/livekit_rtc.pb.go +++ b/livekit/livekit_rtc.pb.go @@ -14,8 +14,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.2 -// protoc v4.23.4 +// protoc-gen-go v1.31.0 +// protoc v4.24.3 // source: livekit_rtc.proto package livekit @@ -4281,7 +4281,7 @@ func file_livekit_rtc_proto_rawDescGZIP() []byte { var file_livekit_rtc_proto_enumTypes = make([]protoimpl.EnumInfo, 5) var file_livekit_rtc_proto_msgTypes = make([]protoimpl.MessageInfo, 43) -var file_livekit_rtc_proto_goTypes = []any{ +var file_livekit_rtc_proto_goTypes = []interface{}{ (SignalTarget)(0), // 0: livekit.SignalTarget (StreamState)(0), // 1: livekit.StreamState (CandidateProtocol)(0), // 2: livekit.CandidateProtocol @@ -4445,7 +4445,7 @@ func file_livekit_rtc_proto_init() { } file_livekit_models_proto_init() if !protoimpl.UnsafeEnabled { - file_livekit_rtc_proto_msgTypes[0].Exporter = func(v any, i int) any { + file_livekit_rtc_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SignalRequest); i { case 0: return &v.state @@ -4457,7 +4457,7 @@ func file_livekit_rtc_proto_init() { return nil } } - file_livekit_rtc_proto_msgTypes[1].Exporter = func(v any, i int) any { + file_livekit_rtc_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SignalResponse); i { case 0: return &v.state @@ -4469,7 +4469,7 @@ func file_livekit_rtc_proto_init() { return nil } } - file_livekit_rtc_proto_msgTypes[2].Exporter = func(v any, i int) any { + file_livekit_rtc_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SimulcastCodec); i { case 0: return &v.state @@ -4481,7 +4481,7 @@ func file_livekit_rtc_proto_init() { return nil } } - file_livekit_rtc_proto_msgTypes[3].Exporter = func(v any, i int) any { + file_livekit_rtc_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AddTrackRequest); i { case 0: return &v.state @@ -4493,7 +4493,7 @@ func file_livekit_rtc_proto_init() { return nil } } - file_livekit_rtc_proto_msgTypes[4].Exporter = func(v any, i int) any { + file_livekit_rtc_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TrickleRequest); i { case 0: return &v.state @@ -4505,7 +4505,7 @@ func file_livekit_rtc_proto_init() { return nil } } - file_livekit_rtc_proto_msgTypes[5].Exporter = func(v any, i int) any { + file_livekit_rtc_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MuteTrackRequest); i { case 0: return &v.state @@ -4517,7 +4517,7 @@ func file_livekit_rtc_proto_init() { return nil } } - file_livekit_rtc_proto_msgTypes[6].Exporter = func(v any, i int) any { + file_livekit_rtc_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*JoinResponse); i { case 0: return &v.state @@ -4529,7 +4529,7 @@ func file_livekit_rtc_proto_init() { return nil } } - file_livekit_rtc_proto_msgTypes[7].Exporter = func(v any, i int) any { + file_livekit_rtc_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ReconnectResponse); i { case 0: return &v.state @@ -4541,7 +4541,7 @@ func file_livekit_rtc_proto_init() { return nil } } - file_livekit_rtc_proto_msgTypes[8].Exporter = func(v any, i int) any { + file_livekit_rtc_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TrackPublishedResponse); i { case 0: return &v.state @@ -4553,7 +4553,7 @@ func file_livekit_rtc_proto_init() { return nil } } - file_livekit_rtc_proto_msgTypes[9].Exporter = func(v any, i int) any { + file_livekit_rtc_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TrackUnpublishedResponse); i { case 0: return &v.state @@ -4565,7 +4565,7 @@ func file_livekit_rtc_proto_init() { return nil } } - file_livekit_rtc_proto_msgTypes[10].Exporter = func(v any, i int) any { + file_livekit_rtc_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SessionDescription); i { case 0: return &v.state @@ -4577,7 +4577,7 @@ func file_livekit_rtc_proto_init() { return nil } } - file_livekit_rtc_proto_msgTypes[11].Exporter = func(v any, i int) any { + file_livekit_rtc_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ParticipantUpdate); i { case 0: return &v.state @@ -4589,7 +4589,7 @@ func file_livekit_rtc_proto_init() { return nil } } - file_livekit_rtc_proto_msgTypes[12].Exporter = func(v any, i int) any { + file_livekit_rtc_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateSubscription); i { case 0: return &v.state @@ -4601,7 +4601,7 @@ func file_livekit_rtc_proto_init() { return nil } } - file_livekit_rtc_proto_msgTypes[13].Exporter = func(v any, i int) any { + file_livekit_rtc_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateTrackSettings); i { case 0: return &v.state @@ -4613,7 +4613,7 @@ func file_livekit_rtc_proto_init() { return nil } } - file_livekit_rtc_proto_msgTypes[14].Exporter = func(v any, i int) any { + file_livekit_rtc_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateLocalAudioTrack); i { case 0: return &v.state @@ -4625,7 +4625,7 @@ func file_livekit_rtc_proto_init() { return nil } } - file_livekit_rtc_proto_msgTypes[15].Exporter = func(v any, i int) any { + file_livekit_rtc_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateLocalVideoTrack); i { case 0: return &v.state @@ -4637,7 +4637,7 @@ func file_livekit_rtc_proto_init() { return nil } } - file_livekit_rtc_proto_msgTypes[16].Exporter = func(v any, i int) any { + file_livekit_rtc_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LeaveRequest); i { case 0: return &v.state @@ -4649,7 +4649,7 @@ func file_livekit_rtc_proto_init() { return nil } } - file_livekit_rtc_proto_msgTypes[17].Exporter = func(v any, i int) any { + file_livekit_rtc_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateVideoLayers); i { case 0: return &v.state @@ -4661,7 +4661,7 @@ func file_livekit_rtc_proto_init() { return nil } } - file_livekit_rtc_proto_msgTypes[18].Exporter = func(v any, i int) any { + file_livekit_rtc_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateParticipantMetadata); i { case 0: return &v.state @@ -4673,7 +4673,7 @@ func file_livekit_rtc_proto_init() { return nil } } - file_livekit_rtc_proto_msgTypes[19].Exporter = func(v any, i int) any { + file_livekit_rtc_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ICEServer); i { case 0: return &v.state @@ -4685,7 +4685,7 @@ func file_livekit_rtc_proto_init() { return nil } } - file_livekit_rtc_proto_msgTypes[20].Exporter = func(v any, i int) any { + file_livekit_rtc_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SpeakersChanged); i { case 0: return &v.state @@ -4697,7 +4697,7 @@ func file_livekit_rtc_proto_init() { return nil } } - file_livekit_rtc_proto_msgTypes[21].Exporter = func(v any, i int) any { + file_livekit_rtc_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RoomUpdate); i { case 0: return &v.state @@ -4709,7 +4709,7 @@ func file_livekit_rtc_proto_init() { return nil } } - file_livekit_rtc_proto_msgTypes[22].Exporter = func(v any, i int) any { + file_livekit_rtc_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ConnectionQualityInfo); i { case 0: return &v.state @@ -4721,7 +4721,7 @@ func file_livekit_rtc_proto_init() { return nil } } - file_livekit_rtc_proto_msgTypes[23].Exporter = func(v any, i int) any { + file_livekit_rtc_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ConnectionQualityUpdate); i { case 0: return &v.state @@ -4733,7 +4733,7 @@ func file_livekit_rtc_proto_init() { return nil } } - file_livekit_rtc_proto_msgTypes[24].Exporter = func(v any, i int) any { + file_livekit_rtc_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StreamStateInfo); i { case 0: return &v.state @@ -4745,7 +4745,7 @@ func file_livekit_rtc_proto_init() { return nil } } - file_livekit_rtc_proto_msgTypes[25].Exporter = func(v any, i int) any { + file_livekit_rtc_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StreamStateUpdate); i { case 0: return &v.state @@ -4757,7 +4757,7 @@ func file_livekit_rtc_proto_init() { return nil } } - file_livekit_rtc_proto_msgTypes[26].Exporter = func(v any, i int) any { + file_livekit_rtc_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SubscribedQuality); i { case 0: return &v.state @@ -4769,7 +4769,7 @@ func file_livekit_rtc_proto_init() { return nil } } - file_livekit_rtc_proto_msgTypes[27].Exporter = func(v any, i int) any { + file_livekit_rtc_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SubscribedCodec); i { case 0: return &v.state @@ -4781,7 +4781,7 @@ func file_livekit_rtc_proto_init() { return nil } } - file_livekit_rtc_proto_msgTypes[28].Exporter = func(v any, i int) any { + file_livekit_rtc_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SubscribedQualityUpdate); i { case 0: return &v.state @@ -4793,7 +4793,7 @@ func file_livekit_rtc_proto_init() { return nil } } - file_livekit_rtc_proto_msgTypes[29].Exporter = func(v any, i int) any { + file_livekit_rtc_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TrackPermission); i { case 0: return &v.state @@ -4805,7 +4805,7 @@ func file_livekit_rtc_proto_init() { return nil } } - file_livekit_rtc_proto_msgTypes[30].Exporter = func(v any, i int) any { + file_livekit_rtc_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SubscriptionPermission); i { case 0: return &v.state @@ -4817,7 +4817,7 @@ func file_livekit_rtc_proto_init() { return nil } } - file_livekit_rtc_proto_msgTypes[31].Exporter = func(v any, i int) any { + file_livekit_rtc_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SubscriptionPermissionUpdate); i { case 0: return &v.state @@ -4829,7 +4829,7 @@ func file_livekit_rtc_proto_init() { return nil } } - file_livekit_rtc_proto_msgTypes[32].Exporter = func(v any, i int) any { + file_livekit_rtc_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SyncState); i { case 0: return &v.state @@ -4841,7 +4841,7 @@ func file_livekit_rtc_proto_init() { return nil } } - file_livekit_rtc_proto_msgTypes[33].Exporter = func(v any, i int) any { + file_livekit_rtc_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DataChannelInfo); i { case 0: return &v.state @@ -4853,7 +4853,7 @@ func file_livekit_rtc_proto_init() { return nil } } - file_livekit_rtc_proto_msgTypes[34].Exporter = func(v any, i int) any { + file_livekit_rtc_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SimulateScenario); i { case 0: return &v.state @@ -4865,7 +4865,7 @@ func file_livekit_rtc_proto_init() { return nil } } - file_livekit_rtc_proto_msgTypes[35].Exporter = func(v any, i int) any { + file_livekit_rtc_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Ping); i { case 0: return &v.state @@ -4877,7 +4877,7 @@ func file_livekit_rtc_proto_init() { return nil } } - file_livekit_rtc_proto_msgTypes[36].Exporter = func(v any, i int) any { + file_livekit_rtc_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Pong); i { case 0: return &v.state @@ -4889,7 +4889,7 @@ func file_livekit_rtc_proto_init() { return nil } } - file_livekit_rtc_proto_msgTypes[37].Exporter = func(v any, i int) any { + file_livekit_rtc_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RegionSettings); i { case 0: return &v.state @@ -4901,7 +4901,7 @@ func file_livekit_rtc_proto_init() { return nil } } - file_livekit_rtc_proto_msgTypes[38].Exporter = func(v any, i int) any { + file_livekit_rtc_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RegionInfo); i { case 0: return &v.state @@ -4913,7 +4913,7 @@ func file_livekit_rtc_proto_init() { return nil } } - file_livekit_rtc_proto_msgTypes[39].Exporter = func(v any, i int) any { + file_livekit_rtc_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SubscriptionResponse); i { case 0: return &v.state @@ -4925,7 +4925,7 @@ func file_livekit_rtc_proto_init() { return nil } } - file_livekit_rtc_proto_msgTypes[40].Exporter = func(v any, i int) any { + file_livekit_rtc_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RequestResponse); i { case 0: return &v.state @@ -4937,7 +4937,7 @@ func file_livekit_rtc_proto_init() { return nil } } - file_livekit_rtc_proto_msgTypes[41].Exporter = func(v any, i int) any { + file_livekit_rtc_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TrackSubscribed); i { case 0: return &v.state @@ -4950,7 +4950,7 @@ func file_livekit_rtc_proto_init() { } } } - file_livekit_rtc_proto_msgTypes[0].OneofWrappers = []any{ + file_livekit_rtc_proto_msgTypes[0].OneofWrappers = []interface{}{ (*SignalRequest_Offer)(nil), (*SignalRequest_Answer)(nil), (*SignalRequest_Trickle)(nil), @@ -4969,7 +4969,7 @@ func file_livekit_rtc_proto_init() { (*SignalRequest_UpdateAudioTrack)(nil), (*SignalRequest_UpdateVideoTrack)(nil), } - file_livekit_rtc_proto_msgTypes[1].OneofWrappers = []any{ + file_livekit_rtc_proto_msgTypes[1].OneofWrappers = []interface{}{ (*SignalResponse_Join)(nil), (*SignalResponse_Answer)(nil), (*SignalResponse_Offer)(nil), @@ -4993,7 +4993,7 @@ func file_livekit_rtc_proto_init() { (*SignalResponse_RequestResponse)(nil), (*SignalResponse_TrackSubscribed)(nil), } - file_livekit_rtc_proto_msgTypes[34].OneofWrappers = []any{ + file_livekit_rtc_proto_msgTypes[34].OneofWrappers = []interface{}{ (*SimulateScenario_SpeakerUpdate)(nil), (*SimulateScenario_NodeFailure)(nil), (*SimulateScenario_Migration)(nil), diff --git a/livekit/livekit_sip.pb.go b/livekit/livekit_sip.pb.go index 72a50232..28799a50 100644 --- a/livekit/livekit_sip.pb.go +++ b/livekit/livekit_sip.pb.go @@ -14,8 +14,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.2 -// protoc v4.23.4 +// protoc-gen-go v1.31.0 +// protoc v4.24.3 // source: livekit_sip.proto package livekit @@ -2572,7 +2572,7 @@ func file_livekit_sip_proto_rawDescGZIP() []byte { var file_livekit_sip_proto_enumTypes = make([]protoimpl.EnumInfo, 2) var file_livekit_sip_proto_msgTypes = make([]protoimpl.MessageInfo, 35) -var file_livekit_sip_proto_goTypes = []any{ +var file_livekit_sip_proto_goTypes = []interface{}{ (SIPTransport)(0), // 0: livekit.SIPTransport (SIPTrunkInfo_TrunkKind)(0), // 1: livekit.SIPTrunkInfo.TrunkKind (*CreateSIPTrunkRequest)(nil), // 2: livekit.CreateSIPTrunkRequest @@ -2674,7 +2674,7 @@ func file_livekit_sip_proto_init() { return } if !protoimpl.UnsafeEnabled { - file_livekit_sip_proto_msgTypes[0].Exporter = func(v any, i int) any { + file_livekit_sip_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateSIPTrunkRequest); i { case 0: return &v.state @@ -2686,7 +2686,7 @@ func file_livekit_sip_proto_init() { return nil } } - file_livekit_sip_proto_msgTypes[1].Exporter = func(v any, i int) any { + file_livekit_sip_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SIPTrunkInfo); i { case 0: return &v.state @@ -2698,7 +2698,7 @@ func file_livekit_sip_proto_init() { return nil } } - file_livekit_sip_proto_msgTypes[2].Exporter = func(v any, i int) any { + file_livekit_sip_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateSIPInboundTrunkRequest); i { case 0: return &v.state @@ -2710,7 +2710,7 @@ func file_livekit_sip_proto_init() { return nil } } - file_livekit_sip_proto_msgTypes[3].Exporter = func(v any, i int) any { + file_livekit_sip_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SIPInboundTrunkInfo); i { case 0: return &v.state @@ -2722,7 +2722,7 @@ func file_livekit_sip_proto_init() { return nil } } - file_livekit_sip_proto_msgTypes[4].Exporter = func(v any, i int) any { + file_livekit_sip_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateSIPOutboundTrunkRequest); i { case 0: return &v.state @@ -2734,7 +2734,7 @@ func file_livekit_sip_proto_init() { return nil } } - file_livekit_sip_proto_msgTypes[5].Exporter = func(v any, i int) any { + file_livekit_sip_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SIPOutboundTrunkInfo); i { case 0: return &v.state @@ -2746,7 +2746,7 @@ func file_livekit_sip_proto_init() { return nil } } - file_livekit_sip_proto_msgTypes[6].Exporter = func(v any, i int) any { + file_livekit_sip_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetSIPInboundTrunkRequest); i { case 0: return &v.state @@ -2758,7 +2758,7 @@ func file_livekit_sip_proto_init() { return nil } } - file_livekit_sip_proto_msgTypes[7].Exporter = func(v any, i int) any { + file_livekit_sip_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetSIPInboundTrunkResponse); i { case 0: return &v.state @@ -2770,7 +2770,7 @@ func file_livekit_sip_proto_init() { return nil } } - file_livekit_sip_proto_msgTypes[8].Exporter = func(v any, i int) any { + file_livekit_sip_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetSIPOutboundTrunkRequest); i { case 0: return &v.state @@ -2782,7 +2782,7 @@ func file_livekit_sip_proto_init() { return nil } } - file_livekit_sip_proto_msgTypes[9].Exporter = func(v any, i int) any { + file_livekit_sip_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetSIPOutboundTrunkResponse); i { case 0: return &v.state @@ -2794,7 +2794,7 @@ func file_livekit_sip_proto_init() { return nil } } - file_livekit_sip_proto_msgTypes[10].Exporter = func(v any, i int) any { + file_livekit_sip_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListSIPTrunkRequest); i { case 0: return &v.state @@ -2806,7 +2806,7 @@ func file_livekit_sip_proto_init() { return nil } } - file_livekit_sip_proto_msgTypes[11].Exporter = func(v any, i int) any { + file_livekit_sip_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListSIPTrunkResponse); i { case 0: return &v.state @@ -2818,7 +2818,7 @@ func file_livekit_sip_proto_init() { return nil } } - file_livekit_sip_proto_msgTypes[12].Exporter = func(v any, i int) any { + file_livekit_sip_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListSIPInboundTrunkRequest); i { case 0: return &v.state @@ -2830,7 +2830,7 @@ func file_livekit_sip_proto_init() { return nil } } - file_livekit_sip_proto_msgTypes[13].Exporter = func(v any, i int) any { + file_livekit_sip_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListSIPInboundTrunkResponse); i { case 0: return &v.state @@ -2842,7 +2842,7 @@ func file_livekit_sip_proto_init() { return nil } } - file_livekit_sip_proto_msgTypes[14].Exporter = func(v any, i int) any { + file_livekit_sip_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListSIPOutboundTrunkRequest); i { case 0: return &v.state @@ -2854,7 +2854,7 @@ func file_livekit_sip_proto_init() { return nil } } - file_livekit_sip_proto_msgTypes[15].Exporter = func(v any, i int) any { + file_livekit_sip_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListSIPOutboundTrunkResponse); i { case 0: return &v.state @@ -2866,7 +2866,7 @@ func file_livekit_sip_proto_init() { return nil } } - file_livekit_sip_proto_msgTypes[16].Exporter = func(v any, i int) any { + file_livekit_sip_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteSIPTrunkRequest); i { case 0: return &v.state @@ -2878,7 +2878,7 @@ func file_livekit_sip_proto_init() { return nil } } - file_livekit_sip_proto_msgTypes[17].Exporter = func(v any, i int) any { + file_livekit_sip_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SIPDispatchRuleDirect); i { case 0: return &v.state @@ -2890,7 +2890,7 @@ func file_livekit_sip_proto_init() { return nil } } - file_livekit_sip_proto_msgTypes[18].Exporter = func(v any, i int) any { + file_livekit_sip_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SIPDispatchRuleIndividual); i { case 0: return &v.state @@ -2902,7 +2902,7 @@ func file_livekit_sip_proto_init() { return nil } } - file_livekit_sip_proto_msgTypes[19].Exporter = func(v any, i int) any { + file_livekit_sip_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SIPDispatchRuleCallee); i { case 0: return &v.state @@ -2914,7 +2914,7 @@ func file_livekit_sip_proto_init() { return nil } } - file_livekit_sip_proto_msgTypes[20].Exporter = func(v any, i int) any { + file_livekit_sip_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SIPDispatchRule); i { case 0: return &v.state @@ -2926,7 +2926,7 @@ func file_livekit_sip_proto_init() { return nil } } - file_livekit_sip_proto_msgTypes[21].Exporter = func(v any, i int) any { + file_livekit_sip_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateSIPDispatchRuleRequest); i { case 0: return &v.state @@ -2938,7 +2938,7 @@ func file_livekit_sip_proto_init() { return nil } } - file_livekit_sip_proto_msgTypes[22].Exporter = func(v any, i int) any { + file_livekit_sip_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SIPDispatchRuleInfo); i { case 0: return &v.state @@ -2950,7 +2950,7 @@ func file_livekit_sip_proto_init() { return nil } } - file_livekit_sip_proto_msgTypes[23].Exporter = func(v any, i int) any { + file_livekit_sip_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListSIPDispatchRuleRequest); i { case 0: return &v.state @@ -2962,7 +2962,7 @@ func file_livekit_sip_proto_init() { return nil } } - file_livekit_sip_proto_msgTypes[24].Exporter = func(v any, i int) any { + file_livekit_sip_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListSIPDispatchRuleResponse); i { case 0: return &v.state @@ -2974,7 +2974,7 @@ func file_livekit_sip_proto_init() { return nil } } - file_livekit_sip_proto_msgTypes[25].Exporter = func(v any, i int) any { + file_livekit_sip_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteSIPDispatchRuleRequest); i { case 0: return &v.state @@ -2986,7 +2986,7 @@ func file_livekit_sip_proto_init() { return nil } } - file_livekit_sip_proto_msgTypes[26].Exporter = func(v any, i int) any { + file_livekit_sip_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateSIPParticipantRequest); i { case 0: return &v.state @@ -2998,7 +2998,7 @@ func file_livekit_sip_proto_init() { return nil } } - file_livekit_sip_proto_msgTypes[27].Exporter = func(v any, i int) any { + file_livekit_sip_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SIPParticipantInfo); i { case 0: return &v.state @@ -3011,7 +3011,7 @@ func file_livekit_sip_proto_init() { } } } - file_livekit_sip_proto_msgTypes[20].OneofWrappers = []any{ + file_livekit_sip_proto_msgTypes[20].OneofWrappers = []interface{}{ (*SIPDispatchRule_DispatchRuleDirect)(nil), (*SIPDispatchRule_DispatchRuleIndividual)(nil), (*SIPDispatchRule_DispatchRuleCallee)(nil), diff --git a/livekit/livekit_webhook.pb.go b/livekit/livekit_webhook.pb.go index b4f0f0f4..819d2007 100644 --- a/livekit/livekit_webhook.pb.go +++ b/livekit/livekit_webhook.pb.go @@ -14,8 +14,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.2 -// protoc v4.23.4 +// protoc-gen-go v1.31.0 +// protoc v4.24.3 // source: livekit_webhook.proto package livekit @@ -207,7 +207,7 @@ func file_livekit_webhook_proto_rawDescGZIP() []byte { } var file_livekit_webhook_proto_msgTypes = make([]protoimpl.MessageInfo, 1) -var file_livekit_webhook_proto_goTypes = []any{ +var file_livekit_webhook_proto_goTypes = []interface{}{ (*WebhookEvent)(nil), // 0: livekit.WebhookEvent (*Room)(nil), // 1: livekit.Room (*ParticipantInfo)(nil), // 2: livekit.ParticipantInfo @@ -237,7 +237,7 @@ func file_livekit_webhook_proto_init() { file_livekit_egress_proto_init() file_livekit_ingress_proto_init() if !protoimpl.UnsafeEnabled { - file_livekit_webhook_proto_msgTypes[0].Exporter = func(v any, i int) any { + file_livekit_webhook_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WebhookEvent); i { case 0: return &v.state diff --git a/protobufs/livekit_models.proto b/protobufs/livekit_models.proto index e6654951..245e7309 100644 --- a/protobufs/livekit_models.proto +++ b/protobufs/livekit_models.proto @@ -90,8 +90,10 @@ message ParticipantPermission { // indicates that participant is an agent // deprecated: use ParticipantInfo.kind instead bool agent = 11 [deprecated=true]; + // if a participant can subscribe to metrics + bool can_subscribe_metrics = 12; - // NEXT_ID: 12 + // NEXT_ID: 13 } message ParticipantInfo { diff --git a/replay/cloud_replay.pb.go b/replay/cloud_replay.pb.go index e9c71b39..d725274a 100644 --- a/replay/cloud_replay.pb.go +++ b/replay/cloud_replay.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.2 -// protoc v5.27.3 +// protoc-gen-go v1.31.0 +// protoc v4.24.3 // source: cloud_replay.proto package replay @@ -491,7 +491,7 @@ func file_cloud_replay_proto_rawDescGZIP() []byte { } var file_cloud_replay_proto_msgTypes = make([]protoimpl.MessageInfo, 8) -var file_cloud_replay_proto_goTypes = []any{ +var file_cloud_replay_proto_goTypes = []interface{}{ (*ListReplaysRequest)(nil), // 0: replay.ListReplaysRequest (*ListReplaysResponse)(nil), // 1: replay.ListReplaysResponse (*ReplayInfo)(nil), // 2: replay.ReplayInfo @@ -527,7 +527,7 @@ func file_cloud_replay_proto_init() { return } if !protoimpl.UnsafeEnabled { - file_cloud_replay_proto_msgTypes[0].Exporter = func(v any, i int) any { + file_cloud_replay_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListReplaysRequest); i { case 0: return &v.state @@ -539,7 +539,7 @@ func file_cloud_replay_proto_init() { return nil } } - file_cloud_replay_proto_msgTypes[1].Exporter = func(v any, i int) any { + file_cloud_replay_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListReplaysResponse); i { case 0: return &v.state @@ -551,7 +551,7 @@ func file_cloud_replay_proto_init() { return nil } } - file_cloud_replay_proto_msgTypes[2].Exporter = func(v any, i int) any { + file_cloud_replay_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ReplayInfo); i { case 0: return &v.state @@ -563,7 +563,7 @@ func file_cloud_replay_proto_init() { return nil } } - file_cloud_replay_proto_msgTypes[3].Exporter = func(v any, i int) any { + file_cloud_replay_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LoadReplayRequest); i { case 0: return &v.state @@ -575,7 +575,7 @@ func file_cloud_replay_proto_init() { return nil } } - file_cloud_replay_proto_msgTypes[4].Exporter = func(v any, i int) any { + file_cloud_replay_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LoadReplayResponse); i { case 0: return &v.state @@ -587,7 +587,7 @@ func file_cloud_replay_proto_init() { return nil } } - file_cloud_replay_proto_msgTypes[5].Exporter = func(v any, i int) any { + file_cloud_replay_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RoomSeekRequest); i { case 0: return &v.state @@ -599,7 +599,7 @@ func file_cloud_replay_proto_init() { return nil } } - file_cloud_replay_proto_msgTypes[6].Exporter = func(v any, i int) any { + file_cloud_replay_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CloseReplayRequest); i { case 0: return &v.state @@ -611,7 +611,7 @@ func file_cloud_replay_proto_init() { return nil } } - file_cloud_replay_proto_msgTypes[7].Exporter = func(v any, i int) any { + file_cloud_replay_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteReplayRequest); i { case 0: return &v.state diff --git a/rpc/agent.pb.go b/rpc/agent.pb.go index 40ad4198..21541a20 100644 --- a/rpc/agent.pb.go +++ b/rpc/agent.pb.go @@ -14,8 +14,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.2 -// protoc v4.23.4 +// protoc-gen-go v1.31.0 +// protoc v4.24.3 // source: rpc/agent.proto package rpc @@ -255,7 +255,7 @@ func file_rpc_agent_proto_rawDescGZIP() []byte { } var file_rpc_agent_proto_msgTypes = make([]protoimpl.MessageInfo, 3) -var file_rpc_agent_proto_goTypes = []any{ +var file_rpc_agent_proto_goTypes = []interface{}{ (*CheckEnabledRequest)(nil), // 0: rpc.CheckEnabledRequest (*CheckEnabledResponse)(nil), // 1: rpc.CheckEnabledResponse (*JobRequestResponse)(nil), // 2: rpc.JobRequestResponse @@ -284,7 +284,7 @@ func file_rpc_agent_proto_init() { return } if !protoimpl.UnsafeEnabled { - file_rpc_agent_proto_msgTypes[0].Exporter = func(v any, i int) any { + file_rpc_agent_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CheckEnabledRequest); i { case 0: return &v.state @@ -296,7 +296,7 @@ func file_rpc_agent_proto_init() { return nil } } - file_rpc_agent_proto_msgTypes[1].Exporter = func(v any, i int) any { + file_rpc_agent_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CheckEnabledResponse); i { case 0: return &v.state @@ -308,7 +308,7 @@ func file_rpc_agent_proto_init() { return nil } } - file_rpc_agent_proto_msgTypes[2].Exporter = func(v any, i int) any { + file_rpc_agent_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*JobRequestResponse); i { case 0: return &v.state diff --git a/rpc/agent.psrpc.go b/rpc/agent.psrpc.go index c832e71d..b1b3c8ac 100644 --- a/rpc/agent.psrpc.go +++ b/rpc/agent.psrpc.go @@ -1,4 +1,4 @@ -// Code generated by protoc-gen-psrpc v0.5.1, DO NOT EDIT. +// Code generated by protoc-gen-psrpc v0.5.0, DO NOT EDIT. // source: rpc/agent.proto package rpc diff --git a/rpc/analytics.pb.go b/rpc/analytics.pb.go index 185473e7..335447ee 100644 --- a/rpc/analytics.pb.go +++ b/rpc/analytics.pb.go @@ -14,8 +14,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.2 -// protoc v4.23.4 +// protoc-gen-go v1.31.0 +// protoc v4.24.3 // source: rpc/analytics.proto package rpc @@ -64,7 +64,7 @@ var file_rpc_analytics_proto_rawDesc = []byte{ 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } -var file_rpc_analytics_proto_goTypes = []any{ +var file_rpc_analytics_proto_goTypes = []interface{}{ (*livekit.AnalyticsStats)(nil), // 0: livekit.AnalyticsStats (*livekit.AnalyticsEvents)(nil), // 1: livekit.AnalyticsEvents (*livekit.AnalyticsNodeRooms)(nil), // 2: livekit.AnalyticsNodeRooms diff --git a/rpc/analytics_grpc.pb.go b/rpc/analytics_grpc.pb.go index 6217bb43..0c5e0aab 100644 --- a/rpc/analytics_grpc.pb.go +++ b/rpc/analytics_grpc.pb.go @@ -14,8 +14,8 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: -// - protoc-gen-go-grpc v1.5.1 -// - protoc v4.23.4 +// - protoc-gen-go-grpc v1.3.0 +// - protoc v4.24.3 // source: rpc/analytics.proto package rpc @@ -31,8 +31,8 @@ import ( // This is a compile-time assertion to ensure that this generated file // is compatible with the grpc package it is being compiled against. -// Requires gRPC-Go v1.64.0 or later. -const _ = grpc.SupportPackageIsVersion9 +// Requires gRPC-Go v1.32.0 or later. +const _ = grpc.SupportPackageIsVersion7 const ( AnalyticsRecorderService_IngestStats_FullMethodName = "/livekit.AnalyticsRecorderService/IngestStats" @@ -44,9 +44,9 @@ const ( // // 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 AnalyticsRecorderServiceClient interface { - IngestStats(ctx context.Context, opts ...grpc.CallOption) (grpc.ClientStreamingClient[livekit.AnalyticsStats, emptypb.Empty], error) - IngestEvents(ctx context.Context, opts ...grpc.CallOption) (grpc.ClientStreamingClient[livekit.AnalyticsEvents, emptypb.Empty], error) - IngestNodeRoomStates(ctx context.Context, opts ...grpc.CallOption) (grpc.ClientStreamingClient[livekit.AnalyticsNodeRooms, emptypb.Empty], error) + IngestStats(ctx context.Context, opts ...grpc.CallOption) (AnalyticsRecorderService_IngestStatsClient, error) + IngestEvents(ctx context.Context, opts ...grpc.CallOption) (AnalyticsRecorderService_IngestEventsClient, error) + IngestNodeRoomStates(ctx context.Context, opts ...grpc.CallOption) (AnalyticsRecorderService_IngestNodeRoomStatesClient, error) } type analyticsRecorderServiceClient struct { @@ -57,74 +57,133 @@ func NewAnalyticsRecorderServiceClient(cc grpc.ClientConnInterface) AnalyticsRec return &analyticsRecorderServiceClient{cc} } -func (c *analyticsRecorderServiceClient) IngestStats(ctx context.Context, opts ...grpc.CallOption) (grpc.ClientStreamingClient[livekit.AnalyticsStats, emptypb.Empty], error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - stream, err := c.cc.NewStream(ctx, &AnalyticsRecorderService_ServiceDesc.Streams[0], AnalyticsRecorderService_IngestStats_FullMethodName, cOpts...) +func (c *analyticsRecorderServiceClient) IngestStats(ctx context.Context, opts ...grpc.CallOption) (AnalyticsRecorderService_IngestStatsClient, error) { + stream, err := c.cc.NewStream(ctx, &AnalyticsRecorderService_ServiceDesc.Streams[0], AnalyticsRecorderService_IngestStats_FullMethodName, opts...) if err != nil { return nil, err } - x := &grpc.GenericClientStream[livekit.AnalyticsStats, emptypb.Empty]{ClientStream: stream} + x := &analyticsRecorderServiceIngestStatsClient{stream} return x, nil } -// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name. -type AnalyticsRecorderService_IngestStatsClient = grpc.ClientStreamingClient[livekit.AnalyticsStats, emptypb.Empty] +type AnalyticsRecorderService_IngestStatsClient interface { + Send(*livekit.AnalyticsStats) error + CloseAndRecv() (*emptypb.Empty, error) + grpc.ClientStream +} + +type analyticsRecorderServiceIngestStatsClient struct { + grpc.ClientStream +} + +func (x *analyticsRecorderServiceIngestStatsClient) Send(m *livekit.AnalyticsStats) error { + return x.ClientStream.SendMsg(m) +} + +func (x *analyticsRecorderServiceIngestStatsClient) CloseAndRecv() (*emptypb.Empty, error) { + if err := x.ClientStream.CloseSend(); err != nil { + return nil, err + } + m := new(emptypb.Empty) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} -func (c *analyticsRecorderServiceClient) IngestEvents(ctx context.Context, opts ...grpc.CallOption) (grpc.ClientStreamingClient[livekit.AnalyticsEvents, emptypb.Empty], error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - stream, err := c.cc.NewStream(ctx, &AnalyticsRecorderService_ServiceDesc.Streams[1], AnalyticsRecorderService_IngestEvents_FullMethodName, cOpts...) +func (c *analyticsRecorderServiceClient) IngestEvents(ctx context.Context, opts ...grpc.CallOption) (AnalyticsRecorderService_IngestEventsClient, error) { + stream, err := c.cc.NewStream(ctx, &AnalyticsRecorderService_ServiceDesc.Streams[1], AnalyticsRecorderService_IngestEvents_FullMethodName, opts...) if err != nil { return nil, err } - x := &grpc.GenericClientStream[livekit.AnalyticsEvents, emptypb.Empty]{ClientStream: stream} + x := &analyticsRecorderServiceIngestEventsClient{stream} return x, nil } -// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name. -type AnalyticsRecorderService_IngestEventsClient = grpc.ClientStreamingClient[livekit.AnalyticsEvents, emptypb.Empty] +type AnalyticsRecorderService_IngestEventsClient interface { + Send(*livekit.AnalyticsEvents) error + CloseAndRecv() (*emptypb.Empty, error) + grpc.ClientStream +} + +type analyticsRecorderServiceIngestEventsClient struct { + grpc.ClientStream +} + +func (x *analyticsRecorderServiceIngestEventsClient) Send(m *livekit.AnalyticsEvents) error { + return x.ClientStream.SendMsg(m) +} + +func (x *analyticsRecorderServiceIngestEventsClient) CloseAndRecv() (*emptypb.Empty, error) { + if err := x.ClientStream.CloseSend(); err != nil { + return nil, err + } + m := new(emptypb.Empty) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} -func (c *analyticsRecorderServiceClient) IngestNodeRoomStates(ctx context.Context, opts ...grpc.CallOption) (grpc.ClientStreamingClient[livekit.AnalyticsNodeRooms, emptypb.Empty], error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - stream, err := c.cc.NewStream(ctx, &AnalyticsRecorderService_ServiceDesc.Streams[2], AnalyticsRecorderService_IngestNodeRoomStates_FullMethodName, cOpts...) +func (c *analyticsRecorderServiceClient) IngestNodeRoomStates(ctx context.Context, opts ...grpc.CallOption) (AnalyticsRecorderService_IngestNodeRoomStatesClient, error) { + stream, err := c.cc.NewStream(ctx, &AnalyticsRecorderService_ServiceDesc.Streams[2], AnalyticsRecorderService_IngestNodeRoomStates_FullMethodName, opts...) if err != nil { return nil, err } - x := &grpc.GenericClientStream[livekit.AnalyticsNodeRooms, emptypb.Empty]{ClientStream: stream} + x := &analyticsRecorderServiceIngestNodeRoomStatesClient{stream} return x, nil } -// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name. -type AnalyticsRecorderService_IngestNodeRoomStatesClient = grpc.ClientStreamingClient[livekit.AnalyticsNodeRooms, emptypb.Empty] +type AnalyticsRecorderService_IngestNodeRoomStatesClient interface { + Send(*livekit.AnalyticsNodeRooms) error + CloseAndRecv() (*emptypb.Empty, error) + grpc.ClientStream +} + +type analyticsRecorderServiceIngestNodeRoomStatesClient struct { + grpc.ClientStream +} + +func (x *analyticsRecorderServiceIngestNodeRoomStatesClient) Send(m *livekit.AnalyticsNodeRooms) error { + return x.ClientStream.SendMsg(m) +} + +func (x *analyticsRecorderServiceIngestNodeRoomStatesClient) CloseAndRecv() (*emptypb.Empty, error) { + if err := x.ClientStream.CloseSend(); err != nil { + return nil, err + } + m := new(emptypb.Empty) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} // AnalyticsRecorderServiceServer is the server API for AnalyticsRecorderService service. // All implementations must embed UnimplementedAnalyticsRecorderServiceServer -// for forward compatibility. +// for forward compatibility type AnalyticsRecorderServiceServer interface { - IngestStats(grpc.ClientStreamingServer[livekit.AnalyticsStats, emptypb.Empty]) error - IngestEvents(grpc.ClientStreamingServer[livekit.AnalyticsEvents, emptypb.Empty]) error - IngestNodeRoomStates(grpc.ClientStreamingServer[livekit.AnalyticsNodeRooms, emptypb.Empty]) error + IngestStats(AnalyticsRecorderService_IngestStatsServer) error + IngestEvents(AnalyticsRecorderService_IngestEventsServer) error + IngestNodeRoomStates(AnalyticsRecorderService_IngestNodeRoomStatesServer) error mustEmbedUnimplementedAnalyticsRecorderServiceServer() } -// UnimplementedAnalyticsRecorderServiceServer must be embedded to have -// forward compatible implementations. -// -// NOTE: this should be embedded by value instead of pointer to avoid a nil -// pointer dereference when methods are called. -type UnimplementedAnalyticsRecorderServiceServer struct{} +// UnimplementedAnalyticsRecorderServiceServer must be embedded to have forward compatible implementations. +type UnimplementedAnalyticsRecorderServiceServer struct { +} -func (UnimplementedAnalyticsRecorderServiceServer) IngestStats(grpc.ClientStreamingServer[livekit.AnalyticsStats, emptypb.Empty]) error { +func (UnimplementedAnalyticsRecorderServiceServer) IngestStats(AnalyticsRecorderService_IngestStatsServer) error { return status.Errorf(codes.Unimplemented, "method IngestStats not implemented") } -func (UnimplementedAnalyticsRecorderServiceServer) IngestEvents(grpc.ClientStreamingServer[livekit.AnalyticsEvents, emptypb.Empty]) error { +func (UnimplementedAnalyticsRecorderServiceServer) IngestEvents(AnalyticsRecorderService_IngestEventsServer) error { return status.Errorf(codes.Unimplemented, "method IngestEvents not implemented") } -func (UnimplementedAnalyticsRecorderServiceServer) IngestNodeRoomStates(grpc.ClientStreamingServer[livekit.AnalyticsNodeRooms, emptypb.Empty]) error { +func (UnimplementedAnalyticsRecorderServiceServer) IngestNodeRoomStates(AnalyticsRecorderService_IngestNodeRoomStatesServer) error { return status.Errorf(codes.Unimplemented, "method IngestNodeRoomStates not implemented") } func (UnimplementedAnalyticsRecorderServiceServer) mustEmbedUnimplementedAnalyticsRecorderServiceServer() { } -func (UnimplementedAnalyticsRecorderServiceServer) testEmbeddedByValue() {} // UnsafeAnalyticsRecorderServiceServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to AnalyticsRecorderServiceServer will @@ -134,36 +193,86 @@ type UnsafeAnalyticsRecorderServiceServer interface { } func RegisterAnalyticsRecorderServiceServer(s grpc.ServiceRegistrar, srv AnalyticsRecorderServiceServer) { - // If the following call pancis, it indicates UnimplementedAnalyticsRecorderServiceServer was - // embedded by pointer and is nil. This will cause panics if an - // unimplemented method is ever invoked, so we test this at initialization - // time to prevent it from happening at runtime later due to I/O. - if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { - t.testEmbeddedByValue() - } s.RegisterService(&AnalyticsRecorderService_ServiceDesc, srv) } func _AnalyticsRecorderService_IngestStats_Handler(srv interface{}, stream grpc.ServerStream) error { - return srv.(AnalyticsRecorderServiceServer).IngestStats(&grpc.GenericServerStream[livekit.AnalyticsStats, emptypb.Empty]{ServerStream: stream}) + return srv.(AnalyticsRecorderServiceServer).IngestStats(&analyticsRecorderServiceIngestStatsServer{stream}) +} + +type AnalyticsRecorderService_IngestStatsServer interface { + SendAndClose(*emptypb.Empty) error + Recv() (*livekit.AnalyticsStats, error) + grpc.ServerStream +} + +type analyticsRecorderServiceIngestStatsServer struct { + grpc.ServerStream } -// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name. -type AnalyticsRecorderService_IngestStatsServer = grpc.ClientStreamingServer[livekit.AnalyticsStats, emptypb.Empty] +func (x *analyticsRecorderServiceIngestStatsServer) SendAndClose(m *emptypb.Empty) error { + return x.ServerStream.SendMsg(m) +} + +func (x *analyticsRecorderServiceIngestStatsServer) Recv() (*livekit.AnalyticsStats, error) { + m := new(livekit.AnalyticsStats) + if err := x.ServerStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} func _AnalyticsRecorderService_IngestEvents_Handler(srv interface{}, stream grpc.ServerStream) error { - return srv.(AnalyticsRecorderServiceServer).IngestEvents(&grpc.GenericServerStream[livekit.AnalyticsEvents, emptypb.Empty]{ServerStream: stream}) + return srv.(AnalyticsRecorderServiceServer).IngestEvents(&analyticsRecorderServiceIngestEventsServer{stream}) +} + +type AnalyticsRecorderService_IngestEventsServer interface { + SendAndClose(*emptypb.Empty) error + Recv() (*livekit.AnalyticsEvents, error) + grpc.ServerStream } -// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name. -type AnalyticsRecorderService_IngestEventsServer = grpc.ClientStreamingServer[livekit.AnalyticsEvents, emptypb.Empty] +type analyticsRecorderServiceIngestEventsServer struct { + grpc.ServerStream +} + +func (x *analyticsRecorderServiceIngestEventsServer) SendAndClose(m *emptypb.Empty) error { + return x.ServerStream.SendMsg(m) +} + +func (x *analyticsRecorderServiceIngestEventsServer) Recv() (*livekit.AnalyticsEvents, error) { + m := new(livekit.AnalyticsEvents) + if err := x.ServerStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} func _AnalyticsRecorderService_IngestNodeRoomStates_Handler(srv interface{}, stream grpc.ServerStream) error { - return srv.(AnalyticsRecorderServiceServer).IngestNodeRoomStates(&grpc.GenericServerStream[livekit.AnalyticsNodeRooms, emptypb.Empty]{ServerStream: stream}) + return srv.(AnalyticsRecorderServiceServer).IngestNodeRoomStates(&analyticsRecorderServiceIngestNodeRoomStatesServer{stream}) +} + +type AnalyticsRecorderService_IngestNodeRoomStatesServer interface { + SendAndClose(*emptypb.Empty) error + Recv() (*livekit.AnalyticsNodeRooms, error) + grpc.ServerStream } -// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name. -type AnalyticsRecorderService_IngestNodeRoomStatesServer = grpc.ClientStreamingServer[livekit.AnalyticsNodeRooms, emptypb.Empty] +type analyticsRecorderServiceIngestNodeRoomStatesServer struct { + grpc.ServerStream +} + +func (x *analyticsRecorderServiceIngestNodeRoomStatesServer) SendAndClose(m *emptypb.Empty) error { + return x.ServerStream.SendMsg(m) +} + +func (x *analyticsRecorderServiceIngestNodeRoomStatesServer) Recv() (*livekit.AnalyticsNodeRooms, error) { + m := new(livekit.AnalyticsNodeRooms) + if err := x.ServerStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} // AnalyticsRecorderService_ServiceDesc is the grpc.ServiceDesc for AnalyticsRecorderService service. // It's only intended for direct use with grpc.RegisterService, diff --git a/rpc/egress.pb.go b/rpc/egress.pb.go index be81e73b..aa442eed 100644 --- a/rpc/egress.pb.go +++ b/rpc/egress.pb.go @@ -14,8 +14,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.2 -// protoc v4.23.4 +// protoc-gen-go v1.31.0 +// protoc v4.24.3 // source: rpc/egress.proto package rpc @@ -361,7 +361,7 @@ func file_rpc_egress_proto_rawDescGZIP() []byte { } var file_rpc_egress_proto_msgTypes = make([]protoimpl.MessageInfo, 3) -var file_rpc_egress_proto_goTypes = []any{ +var file_rpc_egress_proto_goTypes = []interface{}{ (*StartEgressRequest)(nil), // 0: rpc.StartEgressRequest (*ListActiveEgressRequest)(nil), // 1: rpc.ListActiveEgressRequest (*ListActiveEgressResponse)(nil), // 2: rpc.ListActiveEgressResponse @@ -401,7 +401,7 @@ func file_rpc_egress_proto_init() { return } if !protoimpl.UnsafeEnabled { - file_rpc_egress_proto_msgTypes[0].Exporter = func(v any, i int) any { + file_rpc_egress_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StartEgressRequest); i { case 0: return &v.state @@ -413,7 +413,7 @@ func file_rpc_egress_proto_init() { return nil } } - file_rpc_egress_proto_msgTypes[1].Exporter = func(v any, i int) any { + file_rpc_egress_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListActiveEgressRequest); i { case 0: return &v.state @@ -425,7 +425,7 @@ func file_rpc_egress_proto_init() { return nil } } - file_rpc_egress_proto_msgTypes[2].Exporter = func(v any, i int) any { + file_rpc_egress_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListActiveEgressResponse); i { case 0: return &v.state @@ -438,7 +438,7 @@ func file_rpc_egress_proto_init() { } } } - file_rpc_egress_proto_msgTypes[0].OneofWrappers = []any{ + file_rpc_egress_proto_msgTypes[0].OneofWrappers = []interface{}{ (*StartEgressRequest_RoomComposite)(nil), (*StartEgressRequest_Web)(nil), (*StartEgressRequest_Participant)(nil), diff --git a/rpc/egress.psrpc.go b/rpc/egress.psrpc.go index 22295735..1db6fa5f 100644 --- a/rpc/egress.psrpc.go +++ b/rpc/egress.psrpc.go @@ -1,4 +1,4 @@ -// Code generated by protoc-gen-psrpc v0.5.1, DO NOT EDIT. +// Code generated by protoc-gen-psrpc v0.5.0, DO NOT EDIT. // source: rpc/egress.proto package rpc diff --git a/rpc/ingress.pb.go b/rpc/ingress.pb.go index aced1803..7cefd34d 100644 --- a/rpc/ingress.pb.go +++ b/rpc/ingress.pb.go @@ -14,8 +14,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.2 -// protoc v4.23.4 +// protoc-gen-go v1.31.0 +// protoc v4.24.3 // source: rpc/ingress.proto package rpc @@ -614,7 +614,7 @@ func file_rpc_ingress_proto_rawDescGZIP() []byte { } var file_rpc_ingress_proto_msgTypes = make([]protoimpl.MessageInfo, 9) -var file_rpc_ingress_proto_goTypes = []any{ +var file_rpc_ingress_proto_goTypes = []interface{}{ (*ListActiveIngressRequest)(nil), // 0: rpc.ListActiveIngressRequest (*ListActiveIngressResponse)(nil), // 1: rpc.ListActiveIngressResponse (*DeleteWHIPResourceRequest)(nil), // 2: rpc.DeleteWHIPResourceRequest @@ -662,7 +662,7 @@ func file_rpc_ingress_proto_init() { return } if !protoimpl.UnsafeEnabled { - file_rpc_ingress_proto_msgTypes[0].Exporter = func(v any, i int) any { + file_rpc_ingress_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListActiveIngressRequest); i { case 0: return &v.state @@ -674,7 +674,7 @@ func file_rpc_ingress_proto_init() { return nil } } - file_rpc_ingress_proto_msgTypes[1].Exporter = func(v any, i int) any { + file_rpc_ingress_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListActiveIngressResponse); i { case 0: return &v.state @@ -686,7 +686,7 @@ func file_rpc_ingress_proto_init() { return nil } } - file_rpc_ingress_proto_msgTypes[2].Exporter = func(v any, i int) any { + file_rpc_ingress_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteWHIPResourceRequest); i { case 0: return &v.state @@ -698,7 +698,7 @@ func file_rpc_ingress_proto_init() { return nil } } - file_rpc_ingress_proto_msgTypes[3].Exporter = func(v any, i int) any { + file_rpc_ingress_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ICERestartWHIPResourceRequest); i { case 0: return &v.state @@ -710,7 +710,7 @@ func file_rpc_ingress_proto_init() { return nil } } - file_rpc_ingress_proto_msgTypes[4].Exporter = func(v any, i int) any { + file_rpc_ingress_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ICERestartWHIPResourceResponse); i { case 0: return &v.state @@ -722,7 +722,7 @@ func file_rpc_ingress_proto_init() { return nil } } - file_rpc_ingress_proto_msgTypes[5].Exporter = func(v any, i int) any { + file_rpc_ingress_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StartIngressRequest); i { case 0: return &v.state @@ -734,7 +734,7 @@ func file_rpc_ingress_proto_init() { return nil } } - file_rpc_ingress_proto_msgTypes[6].Exporter = func(v any, i int) any { + file_rpc_ingress_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IngressSession); i { case 0: return &v.state @@ -746,7 +746,7 @@ func file_rpc_ingress_proto_init() { return nil } } - file_rpc_ingress_proto_msgTypes[7].Exporter = func(v any, i int) any { + file_rpc_ingress_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*KillIngressSessionRequest); i { case 0: return &v.state diff --git a/rpc/ingress.psrpc.go b/rpc/ingress.psrpc.go index dee7cf64..22ab63ba 100644 --- a/rpc/ingress.psrpc.go +++ b/rpc/ingress.psrpc.go @@ -1,4 +1,4 @@ -// Code generated by protoc-gen-psrpc v0.5.1, DO NOT EDIT. +// Code generated by protoc-gen-psrpc v0.5.0, DO NOT EDIT. // source: rpc/ingress.proto package rpc diff --git a/rpc/io.pb.go b/rpc/io.pb.go index d7c4e0b5..aeb5a3a3 100644 --- a/rpc/io.pb.go +++ b/rpc/io.pb.go @@ -14,8 +14,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.2 -// protoc v4.23.4 +// protoc-gen-go v1.31.0 +// protoc v4.24.3 // source: rpc/io.proto package rpc @@ -1082,7 +1082,7 @@ func file_rpc_io_proto_rawDescGZIP() []byte { var file_rpc_io_proto_enumTypes = make([]protoimpl.EnumInfo, 1) var file_rpc_io_proto_msgTypes = make([]protoimpl.MessageInfo, 14) -var file_rpc_io_proto_goTypes = []any{ +var file_rpc_io_proto_goTypes = []interface{}{ (SIPDispatchResult)(0), // 0: rpc.SIPDispatchResult (*GetEgressRequest)(nil), // 1: rpc.GetEgressRequest (*UpdateMetricsRequest)(nil), // 2: rpc.UpdateMetricsRequest @@ -1148,7 +1148,7 @@ func file_rpc_io_proto_init() { return } if !protoimpl.UnsafeEnabled { - file_rpc_io_proto_msgTypes[0].Exporter = func(v any, i int) any { + file_rpc_io_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetEgressRequest); i { case 0: return &v.state @@ -1160,7 +1160,7 @@ func file_rpc_io_proto_init() { return nil } } - file_rpc_io_proto_msgTypes[1].Exporter = func(v any, i int) any { + file_rpc_io_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateMetricsRequest); i { case 0: return &v.state @@ -1172,7 +1172,7 @@ func file_rpc_io_proto_init() { return nil } } - file_rpc_io_proto_msgTypes[2].Exporter = func(v any, i int) any { + file_rpc_io_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetIngressInfoRequest); i { case 0: return &v.state @@ -1184,7 +1184,7 @@ func file_rpc_io_proto_init() { return nil } } - file_rpc_io_proto_msgTypes[3].Exporter = func(v any, i int) any { + file_rpc_io_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetIngressInfoResponse); i { case 0: return &v.state @@ -1196,7 +1196,7 @@ func file_rpc_io_proto_init() { return nil } } - file_rpc_io_proto_msgTypes[4].Exporter = func(v any, i int) any { + file_rpc_io_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateIngressStateRequest); i { case 0: return &v.state @@ -1208,7 +1208,7 @@ func file_rpc_io_proto_init() { return nil } } - file_rpc_io_proto_msgTypes[5].Exporter = func(v any, i int) any { + file_rpc_io_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetSIPTrunkAuthenticationRequest); i { case 0: return &v.state @@ -1220,7 +1220,7 @@ func file_rpc_io_proto_init() { return nil } } - file_rpc_io_proto_msgTypes[6].Exporter = func(v any, i int) any { + file_rpc_io_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetSIPTrunkAuthenticationResponse); i { case 0: return &v.state @@ -1232,7 +1232,7 @@ func file_rpc_io_proto_init() { return nil } } - file_rpc_io_proto_msgTypes[7].Exporter = func(v any, i int) any { + file_rpc_io_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EvaluateSIPDispatchRulesRequest); i { case 0: return &v.state @@ -1244,7 +1244,7 @@ func file_rpc_io_proto_init() { return nil } } - file_rpc_io_proto_msgTypes[8].Exporter = func(v any, i int) any { + file_rpc_io_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EvaluateSIPDispatchRulesResponse); i { case 0: return &v.state diff --git a/rpc/io.psrpc.go b/rpc/io.psrpc.go index 066bb014..39984e1b 100644 --- a/rpc/io.psrpc.go +++ b/rpc/io.psrpc.go @@ -1,4 +1,4 @@ -// Code generated by protoc-gen-psrpc v0.5.1, DO NOT EDIT. +// Code generated by protoc-gen-psrpc v0.5.0, DO NOT EDIT. // source: rpc/io.proto package rpc diff --git a/rpc/keepalive.pb.go b/rpc/keepalive.pb.go index 5023a3e7..8c2a356d 100644 --- a/rpc/keepalive.pb.go +++ b/rpc/keepalive.pb.go @@ -14,8 +14,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.2 -// protoc v4.23.4 +// protoc-gen-go v1.31.0 +// protoc v4.24.3 // source: rpc/keepalive.proto package rpc @@ -114,7 +114,7 @@ func file_rpc_keepalive_proto_rawDescGZIP() []byte { } var file_rpc_keepalive_proto_msgTypes = make([]protoimpl.MessageInfo, 1) -var file_rpc_keepalive_proto_goTypes = []any{ +var file_rpc_keepalive_proto_goTypes = []interface{}{ (*KeepalivePing)(nil), // 0: rpc.KeepalivePing } var file_rpc_keepalive_proto_depIdxs = []int32{ @@ -133,7 +133,7 @@ func file_rpc_keepalive_proto_init() { return } if !protoimpl.UnsafeEnabled { - file_rpc_keepalive_proto_msgTypes[0].Exporter = func(v any, i int) any { + file_rpc_keepalive_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*KeepalivePing); i { case 0: return &v.state diff --git a/rpc/keepalive.psrpc.go b/rpc/keepalive.psrpc.go index 47dc201d..e984de3c 100644 --- a/rpc/keepalive.psrpc.go +++ b/rpc/keepalive.psrpc.go @@ -1,4 +1,4 @@ -// Code generated by protoc-gen-psrpc v0.5.1, DO NOT EDIT. +// Code generated by protoc-gen-psrpc v0.5.0, DO NOT EDIT. // source: rpc/keepalive.proto package rpc diff --git a/rpc/participant.pb.go b/rpc/participant.pb.go index 1daa1fb4..9339f180 100644 --- a/rpc/participant.pb.go +++ b/rpc/participant.pb.go @@ -14,8 +14,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.2 -// protoc v4.23.4 +// protoc-gen-go v1.31.0 +// protoc v4.24.3 // source: rpc/participant.proto package rpc @@ -81,7 +81,7 @@ var file_rpc_participant_proto_rawDesc = []byte{ 0x6c, 0x2f, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } -var file_rpc_participant_proto_goTypes = []any{ +var file_rpc_participant_proto_goTypes = []interface{}{ (*livekit.RoomParticipantIdentity)(nil), // 0: livekit.RoomParticipantIdentity (*livekit.MuteRoomTrackRequest)(nil), // 1: livekit.MuteRoomTrackRequest (*livekit.UpdateParticipantRequest)(nil), // 2: livekit.UpdateParticipantRequest diff --git a/rpc/participant.psrpc.go b/rpc/participant.psrpc.go index 45005b37..79078a4c 100644 --- a/rpc/participant.psrpc.go +++ b/rpc/participant.psrpc.go @@ -1,4 +1,4 @@ -// Code generated by protoc-gen-psrpc v0.5.1, DO NOT EDIT. +// Code generated by protoc-gen-psrpc v0.5.0, DO NOT EDIT. // source: rpc/participant.proto package rpc diff --git a/rpc/room.pb.go b/rpc/room.pb.go index 7ea2be17..6e71fae8 100644 --- a/rpc/room.pb.go +++ b/rpc/room.pb.go @@ -14,8 +14,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.2 -// protoc v4.23.4 +// protoc-gen-go v1.31.0 +// protoc v4.24.3 // source: rpc/room.proto package rpc @@ -66,7 +66,7 @@ var file_rpc_room_proto_rawDesc = []byte{ 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } -var file_rpc_room_proto_goTypes = []any{ +var file_rpc_room_proto_goTypes = []interface{}{ (*livekit.DeleteRoomRequest)(nil), // 0: livekit.DeleteRoomRequest (*livekit.SendDataRequest)(nil), // 1: livekit.SendDataRequest (*livekit.UpdateRoomMetadataRequest)(nil), // 2: livekit.UpdateRoomMetadataRequest diff --git a/rpc/room.psrpc.go b/rpc/room.psrpc.go index 4b054ce6..5eeff858 100644 --- a/rpc/room.psrpc.go +++ b/rpc/room.psrpc.go @@ -1,4 +1,4 @@ -// Code generated by protoc-gen-psrpc v0.5.1, DO NOT EDIT. +// Code generated by protoc-gen-psrpc v0.5.0, DO NOT EDIT. // source: rpc/room.proto package rpc diff --git a/rpc/roommanager.pb.go b/rpc/roommanager.pb.go index 6fe283ea..f62dab3f 100644 --- a/rpc/roommanager.pb.go +++ b/rpc/roommanager.pb.go @@ -14,8 +14,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.2 -// protoc v4.23.4 +// protoc-gen-go v1.31.0 +// protoc v4.24.3 // source: rpc/roommanager.proto package rpc @@ -55,7 +55,7 @@ var file_rpc_roommanager_proto_rawDesc = []byte{ 0x74, 0x6f, 0x33, } -var file_rpc_roommanager_proto_goTypes = []any{ +var file_rpc_roommanager_proto_goTypes = []interface{}{ (*livekit.CreateRoomRequest)(nil), // 0: livekit.CreateRoomRequest (*livekit.Room)(nil), // 1: livekit.Room } diff --git a/rpc/roommanager.psrpc.go b/rpc/roommanager.psrpc.go index 57a28168..5dc01721 100644 --- a/rpc/roommanager.psrpc.go +++ b/rpc/roommanager.psrpc.go @@ -1,4 +1,4 @@ -// Code generated by protoc-gen-psrpc v0.5.1, DO NOT EDIT. +// Code generated by protoc-gen-psrpc v0.5.0, DO NOT EDIT. // source: rpc/roommanager.proto package rpc diff --git a/rpc/signal.pb.go b/rpc/signal.pb.go index 7ff67d40..6a7ed297 100644 --- a/rpc/signal.pb.go +++ b/rpc/signal.pb.go @@ -14,8 +14,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.2 -// protoc v4.23.4 +// protoc-gen-go v1.31.0 +// protoc v4.24.3 // source: rpc/signal.proto package rpc @@ -221,7 +221,7 @@ func file_rpc_signal_proto_rawDescGZIP() []byte { } var file_rpc_signal_proto_msgTypes = make([]protoimpl.MessageInfo, 2) -var file_rpc_signal_proto_goTypes = []any{ +var file_rpc_signal_proto_goTypes = []interface{}{ (*RelaySignalRequest)(nil), // 0: rpc.RelaySignalRequest (*RelaySignalResponse)(nil), // 1: rpc.RelaySignalResponse (*livekit.StartSession)(nil), // 2: livekit.StartSession @@ -247,7 +247,7 @@ func file_rpc_signal_proto_init() { return } if !protoimpl.UnsafeEnabled { - file_rpc_signal_proto_msgTypes[0].Exporter = func(v any, i int) any { + file_rpc_signal_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RelaySignalRequest); i { case 0: return &v.state @@ -259,7 +259,7 @@ func file_rpc_signal_proto_init() { return nil } } - file_rpc_signal_proto_msgTypes[1].Exporter = func(v any, i int) any { + file_rpc_signal_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RelaySignalResponse); i { case 0: return &v.state diff --git a/rpc/signal.psrpc.go b/rpc/signal.psrpc.go index 8cc328da..bbded3c0 100644 --- a/rpc/signal.psrpc.go +++ b/rpc/signal.psrpc.go @@ -1,4 +1,4 @@ -// Code generated by protoc-gen-psrpc v0.5.1, DO NOT EDIT. +// Code generated by protoc-gen-psrpc v0.5.0, DO NOT EDIT. // source: rpc/signal.proto package rpc diff --git a/rpc/sip.pb.go b/rpc/sip.pb.go index 49d3c9f9..e979ccca 100644 --- a/rpc/sip.pb.go +++ b/rpc/sip.pb.go @@ -14,8 +14,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.2 -// protoc v4.23.4 +// protoc-gen-go v1.31.0 +// protoc v4.24.3 // source: rpc/sip.proto package rpc @@ -431,7 +431,7 @@ func file_rpc_sip_proto_rawDescGZIP() []byte { } var file_rpc_sip_proto_msgTypes = make([]protoimpl.MessageInfo, 5) -var file_rpc_sip_proto_goTypes = []any{ +var file_rpc_sip_proto_goTypes = []interface{}{ (*InternalCreateSIPParticipantRequest)(nil), // 0: rpc.InternalCreateSIPParticipantRequest (*InternalCreateSIPParticipantResponse)(nil), // 1: rpc.InternalCreateSIPParticipantResponse nil, // 2: rpc.InternalCreateSIPParticipantRequest.ParticipantAttributesEntry @@ -459,7 +459,7 @@ func file_rpc_sip_proto_init() { return } if !protoimpl.UnsafeEnabled { - file_rpc_sip_proto_msgTypes[0].Exporter = func(v any, i int) any { + file_rpc_sip_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*InternalCreateSIPParticipantRequest); i { case 0: return &v.state @@ -471,7 +471,7 @@ func file_rpc_sip_proto_init() { return nil } } - file_rpc_sip_proto_msgTypes[1].Exporter = func(v any, i int) any { + file_rpc_sip_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*InternalCreateSIPParticipantResponse); i { case 0: return &v.state diff --git a/rpc/sip.psrpc.go b/rpc/sip.psrpc.go index 1b8ec1c8..4a5b9840 100644 --- a/rpc/sip.psrpc.go +++ b/rpc/sip.psrpc.go @@ -1,4 +1,4 @@ -// Code generated by protoc-gen-psrpc v0.5.1, DO NOT EDIT. +// Code generated by protoc-gen-psrpc v0.5.0, DO NOT EDIT. // source: rpc/sip.proto package rpc