diff --git a/protobuf/video/sfu/models/models.pb.go b/protobuf/video/sfu/models/models.pb.go index 520898a2..8887eff2 100644 --- a/protobuf/video/sfu/models/models.pb.go +++ b/protobuf/video/sfu/models/models.pb.go @@ -629,6 +629,129 @@ func (WebsocketReconnectStrategy) EnumDescriptor() ([]byte, []int) { return file_video_sfu_models_models_proto_rawDescGZIP(), []int{9} } +// AndroidThermalState is reported by the Android API. The full list of values is documented here +// https://developer.android.com/reference/android/os/PowerManager.html#getCurrentThermalStatus() +type AndroidThermalState int32 + +const ( + AndroidThermalState_ANDROID_THERMAL_STATE_UNSPECIFIED AndroidThermalState = 0 + AndroidThermalState_ANDROID_THERMAL_STATE_NONE AndroidThermalState = 1 + AndroidThermalState_ANDROID_THERMAL_STATE_LIGHT AndroidThermalState = 2 + AndroidThermalState_ANDROID_THERMAL_STATE_MODERATE AndroidThermalState = 3 + AndroidThermalState_ANDROID_THERMAL_STATE_SEVERE AndroidThermalState = 4 + AndroidThermalState_ANDROID_THERMAL_STATE_CRITICAL AndroidThermalState = 5 + AndroidThermalState_ANDROID_THERMAL_STATE_EMERGENCY AndroidThermalState = 6 + AndroidThermalState_ANDROID_THERMAL_STATE_SHUTDOWN AndroidThermalState = 7 +) + +// Enum value maps for AndroidThermalState. +var ( + AndroidThermalState_name = map[int32]string{ + 0: "ANDROID_THERMAL_STATE_UNSPECIFIED", + 1: "ANDROID_THERMAL_STATE_NONE", + 2: "ANDROID_THERMAL_STATE_LIGHT", + 3: "ANDROID_THERMAL_STATE_MODERATE", + 4: "ANDROID_THERMAL_STATE_SEVERE", + 5: "ANDROID_THERMAL_STATE_CRITICAL", + 6: "ANDROID_THERMAL_STATE_EMERGENCY", + 7: "ANDROID_THERMAL_STATE_SHUTDOWN", + } + AndroidThermalState_value = map[string]int32{ + "ANDROID_THERMAL_STATE_UNSPECIFIED": 0, + "ANDROID_THERMAL_STATE_NONE": 1, + "ANDROID_THERMAL_STATE_LIGHT": 2, + "ANDROID_THERMAL_STATE_MODERATE": 3, + "ANDROID_THERMAL_STATE_SEVERE": 4, + "ANDROID_THERMAL_STATE_CRITICAL": 5, + "ANDROID_THERMAL_STATE_EMERGENCY": 6, + "ANDROID_THERMAL_STATE_SHUTDOWN": 7, + } +) + +func (x AndroidThermalState) Enum() *AndroidThermalState { + p := new(AndroidThermalState) + *p = x + return p +} + +func (x AndroidThermalState) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (AndroidThermalState) Descriptor() protoreflect.EnumDescriptor { + return file_video_sfu_models_models_proto_enumTypes[10].Descriptor() +} + +func (AndroidThermalState) Type() protoreflect.EnumType { + return &file_video_sfu_models_models_proto_enumTypes[10] +} + +func (x AndroidThermalState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use AndroidThermalState.Descriptor instead. +func (AndroidThermalState) EnumDescriptor() ([]byte, []int) { + return file_video_sfu_models_models_proto_rawDescGZIP(), []int{10} +} + +// AppleThermalState is the thermal state as reported by Apple devices when available or applicable to the platform. +// The full list of states (enum) is available here: https://developer.apple.com/documentation/foundation/processinfo/thermalstate +type AppleThermalState int32 + +const ( + AppleThermalState_APPLE_THERMAL_STATE_UNSPECIFIED AppleThermalState = 0 + AppleThermalState_APPLE_THERMAL_STATE_NOMINAL AppleThermalState = 1 + AppleThermalState_APPLE_THERMAL_STATE_FAIR AppleThermalState = 2 + AppleThermalState_APPLE_THERMAL_STATE_SERIOUS AppleThermalState = 3 + AppleThermalState_APPLE_THERMAL_STATE_CRITICAL AppleThermalState = 4 +) + +// Enum value maps for AppleThermalState. +var ( + AppleThermalState_name = map[int32]string{ + 0: "APPLE_THERMAL_STATE_UNSPECIFIED", + 1: "APPLE_THERMAL_STATE_NOMINAL", + 2: "APPLE_THERMAL_STATE_FAIR", + 3: "APPLE_THERMAL_STATE_SERIOUS", + 4: "APPLE_THERMAL_STATE_CRITICAL", + } + AppleThermalState_value = map[string]int32{ + "APPLE_THERMAL_STATE_UNSPECIFIED": 0, + "APPLE_THERMAL_STATE_NOMINAL": 1, + "APPLE_THERMAL_STATE_FAIR": 2, + "APPLE_THERMAL_STATE_SERIOUS": 3, + "APPLE_THERMAL_STATE_CRITICAL": 4, + } +) + +func (x AppleThermalState) Enum() *AppleThermalState { + p := new(AppleThermalState) + *p = x + return p +} + +func (x AppleThermalState) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (AppleThermalState) Descriptor() protoreflect.EnumDescriptor { + return file_video_sfu_models_models_proto_enumTypes[11].Descriptor() +} + +func (AppleThermalState) Type() protoreflect.EnumType { + return &file_video_sfu_models_models_proto_enumTypes[11] +} + +func (x AppleThermalState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use AppleThermalState.Descriptor instead. +func (AppleThermalState) EnumDescriptor() ([]byte, []int) { + return file_video_sfu_models_models_proto_rawDescGZIP(), []int{11} +} + // CallState is the current state of the call // as seen by an SFU. type CallState struct { @@ -1958,6 +2081,180 @@ func (x *CallGrants) GetCanScreenshare() bool { return false } +type InputDevices struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AvailableDevices []string `protobuf:"bytes,1,rep,name=available_devices,json=availableDevices,proto3" json:"available_devices,omitempty"` + CurrentDevice string `protobuf:"bytes,2,opt,name=current_device,json=currentDevice,proto3" json:"current_device,omitempty"` + IsPermitted bool `protobuf:"varint,3,opt,name=is_permitted,json=isPermitted,proto3" json:"is_permitted,omitempty"` +} + +func (x *InputDevices) Reset() { + *x = InputDevices{} + if protoimpl.UnsafeEnabled { + mi := &file_video_sfu_models_models_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *InputDevices) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*InputDevices) ProtoMessage() {} + +func (x *InputDevices) ProtoReflect() protoreflect.Message { + mi := &file_video_sfu_models_models_proto_msgTypes[18] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use InputDevices.ProtoReflect.Descriptor instead. +func (*InputDevices) Descriptor() ([]byte, []int) { + return file_video_sfu_models_models_proto_rawDescGZIP(), []int{18} +} + +func (x *InputDevices) GetAvailableDevices() []string { + if x != nil { + return x.AvailableDevices + } + return nil +} + +func (x *InputDevices) GetCurrentDevice() string { + if x != nil { + return x.CurrentDevice + } + return "" +} + +func (x *InputDevices) GetIsPermitted() bool { + if x != nil { + return x.IsPermitted + } + return false +} + +type AndroidState struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ThermalState AndroidThermalState `protobuf:"varint,1,opt,name=thermal_state,json=thermalState,proto3,enum=stream.video.sfu.models.AndroidThermalState" json:"thermal_state,omitempty"` + IsPowerSaverMode bool `protobuf:"varint,2,opt,name=is_power_saver_mode,json=isPowerSaverMode,proto3" json:"is_power_saver_mode,omitempty"` +} + +func (x *AndroidState) Reset() { + *x = AndroidState{} + if protoimpl.UnsafeEnabled { + mi := &file_video_sfu_models_models_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AndroidState) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AndroidState) ProtoMessage() {} + +func (x *AndroidState) ProtoReflect() protoreflect.Message { + mi := &file_video_sfu_models_models_proto_msgTypes[19] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AndroidState.ProtoReflect.Descriptor instead. +func (*AndroidState) Descriptor() ([]byte, []int) { + return file_video_sfu_models_models_proto_rawDescGZIP(), []int{19} +} + +func (x *AndroidState) GetThermalState() AndroidThermalState { + if x != nil { + return x.ThermalState + } + return AndroidThermalState_ANDROID_THERMAL_STATE_UNSPECIFIED +} + +func (x *AndroidState) GetIsPowerSaverMode() bool { + if x != nil { + return x.IsPowerSaverMode + } + return false +} + +type AppleState struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ThermalState AppleThermalState `protobuf:"varint,1,opt,name=thermal_state,json=thermalState,proto3,enum=stream.video.sfu.models.AppleThermalState" json:"thermal_state,omitempty"` + // https://developer.apple.com/documentation/foundation/processinfo/1617047-islowpowermodeenabled + IsLowPowerModeEnabled bool `protobuf:"varint,2,opt,name=is_low_power_mode_enabled,json=isLowPowerModeEnabled,proto3" json:"is_low_power_mode_enabled,omitempty"` +} + +func (x *AppleState) Reset() { + *x = AppleState{} + if protoimpl.UnsafeEnabled { + mi := &file_video_sfu_models_models_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AppleState) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AppleState) ProtoMessage() {} + +func (x *AppleState) ProtoReflect() protoreflect.Message { + mi := &file_video_sfu_models_models_proto_msgTypes[20] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AppleState.ProtoReflect.Descriptor instead. +func (*AppleState) Descriptor() ([]byte, []int) { + return file_video_sfu_models_models_proto_rawDescGZIP(), []int{20} +} + +func (x *AppleState) GetThermalState() AppleThermalState { + if x != nil { + return x.ThermalState + } + return AppleThermalState_APPLE_THERMAL_STATE_UNSPECIFIED +} + +func (x *AppleState) GetIsLowPowerModeEnabled() bool { + if x != nil { + return x.IsLowPowerModeEnabled + } + return false +} + var File_video_sfu_models_models_proto protoreflect.FileDescriptor var file_video_sfu_models_models_proto_rawDesc = []byte{ @@ -2164,155 +2461,213 @@ var file_video_sfu_models_models_proto_rawDesc = []byte{ 0x63, 0x61, 0x6e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x61, 0x6e, 0x5f, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x73, 0x68, 0x61, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x63, 0x61, 0x6e, 0x53, 0x63, 0x72, - 0x65, 0x65, 0x6e, 0x73, 0x68, 0x61, 0x72, 0x65, 0x2a, 0x49, 0x0a, 0x08, 0x50, 0x65, 0x65, 0x72, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x23, 0x0a, 0x1f, 0x50, 0x45, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x53, 0x48, 0x45, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, - 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x50, 0x45, 0x45, - 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x55, 0x42, 0x53, 0x43, 0x52, 0x49, 0x42, 0x45, - 0x52, 0x10, 0x01, 0x2a, 0x93, 0x01, 0x0a, 0x11, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x22, 0x0a, 0x1e, 0x43, 0x4f, 0x4e, - 0x4e, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x51, 0x55, 0x41, 0x4c, 0x49, 0x54, 0x59, 0x5f, - 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1b, 0x0a, - 0x17, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x51, 0x55, 0x41, 0x4c, - 0x49, 0x54, 0x59, 0x5f, 0x50, 0x4f, 0x4f, 0x52, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x43, 0x4f, - 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x51, 0x55, 0x41, 0x4c, 0x49, 0x54, 0x59, - 0x5f, 0x47, 0x4f, 0x4f, 0x44, 0x10, 0x02, 0x12, 0x20, 0x0a, 0x1c, 0x43, 0x4f, 0x4e, 0x4e, 0x45, - 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x51, 0x55, 0x41, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x45, 0x58, - 0x43, 0x45, 0x4c, 0x4c, 0x45, 0x4e, 0x54, 0x10, 0x03, 0x2a, 0x77, 0x0a, 0x0c, 0x56, 0x69, 0x64, - 0x65, 0x6f, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x21, 0x0a, 0x1d, 0x56, 0x49, 0x44, - 0x45, 0x4f, 0x5f, 0x51, 0x55, 0x41, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x4c, 0x4f, 0x57, 0x5f, 0x55, - 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, - 0x56, 0x49, 0x44, 0x45, 0x4f, 0x5f, 0x51, 0x55, 0x41, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x4d, 0x49, - 0x44, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x56, 0x49, 0x44, 0x45, 0x4f, 0x5f, 0x51, 0x55, 0x41, - 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x48, 0x49, 0x47, 0x48, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x56, - 0x49, 0x44, 0x45, 0x4f, 0x5f, 0x51, 0x55, 0x41, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x4f, 0x46, 0x46, - 0x10, 0x03, 0x2a, 0x93, 0x01, 0x0a, 0x09, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x41, 0x43, 0x4b, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, - 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, - 0x54, 0x52, 0x41, 0x43, 0x4b, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x4f, - 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x52, 0x41, 0x43, 0x4b, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x56, 0x49, 0x44, 0x45, 0x4f, 0x10, 0x02, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x52, 0x41, 0x43, - 0x4b, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x43, 0x52, 0x45, 0x45, 0x4e, 0x5f, 0x53, 0x48, - 0x41, 0x52, 0x45, 0x10, 0x03, 0x12, 0x21, 0x0a, 0x1d, 0x54, 0x52, 0x41, 0x43, 0x4b, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x53, 0x43, 0x52, 0x45, 0x45, 0x4e, 0x5f, 0x53, 0x48, 0x41, 0x52, 0x45, - 0x5f, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x10, 0x04, 0x2a, 0x91, 0x06, 0x0a, 0x09, 0x45, 0x72, 0x72, - 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, - 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, - 0x10, 0x00, 0x12, 0x26, 0x0a, 0x22, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x43, 0x4f, 0x44, 0x45, - 0x5f, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x53, 0x48, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x4b, 0x5f, 0x4e, - 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x64, 0x12, 0x26, 0x0a, 0x22, 0x45, 0x52, - 0x52, 0x4f, 0x52, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x53, 0x48, - 0x5f, 0x54, 0x52, 0x41, 0x43, 0x4b, 0x53, 0x5f, 0x4d, 0x49, 0x53, 0x4d, 0x41, 0x54, 0x43, 0x48, - 0x10, 0x65, 0x12, 0x29, 0x0a, 0x25, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x43, 0x4f, 0x44, 0x45, - 0x5f, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x53, 0x48, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x4b, 0x5f, 0x4f, - 0x55, 0x54, 0x5f, 0x4f, 0x46, 0x5f, 0x4f, 0x52, 0x44, 0x45, 0x52, 0x10, 0x66, 0x12, 0x32, 0x0a, - 0x2e, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x50, 0x55, 0x42, 0x4c, - 0x49, 0x53, 0x48, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x4b, 0x5f, 0x56, 0x49, 0x44, 0x45, 0x4f, 0x5f, - 0x4c, 0x41, 0x59, 0x45, 0x52, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, - 0x67, 0x12, 0x19, 0x0a, 0x15, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x5f, - 0x4c, 0x49, 0x56, 0x45, 0x5f, 0x45, 0x4e, 0x44, 0x45, 0x44, 0x10, 0x68, 0x12, 0x25, 0x0a, 0x20, - 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, - 0x43, 0x49, 0x50, 0x41, 0x4e, 0x54, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, - 0x10, 0xc8, 0x01, 0x12, 0x29, 0x0a, 0x24, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x43, 0x4f, 0x44, + 0x65, 0x65, 0x6e, 0x73, 0x68, 0x61, 0x72, 0x65, 0x22, 0x85, 0x01, 0x0a, 0x0c, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x61, 0x76, 0x61, + 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x44, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, + 0x74, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, + 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x21, 0x0a, + 0x0c, 0x69, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, + 0x22, 0x90, 0x01, 0x0a, 0x0c, 0x41, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x12, 0x51, 0x0a, 0x0d, 0x74, 0x68, 0x65, 0x72, 0x6d, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, + 0x6c, 0x73, 0x2e, 0x41, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x54, 0x68, 0x65, 0x72, 0x6d, 0x61, + 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0c, 0x74, 0x68, 0x65, 0x72, 0x6d, 0x61, 0x6c, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x12, 0x2d, 0x0a, 0x13, 0x69, 0x73, 0x5f, 0x70, 0x6f, 0x77, 0x65, 0x72, + 0x5f, 0x73, 0x61, 0x76, 0x65, 0x72, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x10, 0x69, 0x73, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x53, 0x61, 0x76, 0x65, 0x72, 0x4d, + 0x6f, 0x64, 0x65, 0x22, 0x97, 0x01, 0x0a, 0x0a, 0x41, 0x70, 0x70, 0x6c, 0x65, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x12, 0x4f, 0x0a, 0x0d, 0x74, 0x68, 0x65, 0x72, 0x6d, 0x61, 0x6c, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x73, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, + 0x65, 0x6c, 0x73, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x65, 0x54, 0x68, 0x65, 0x72, 0x6d, 0x61, 0x6c, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0c, 0x74, 0x68, 0x65, 0x72, 0x6d, 0x61, 0x6c, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x12, 0x38, 0x0a, 0x19, 0x69, 0x73, 0x5f, 0x6c, 0x6f, 0x77, 0x5f, 0x70, 0x6f, + 0x77, 0x65, 0x72, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x69, 0x73, 0x4c, 0x6f, 0x77, 0x50, 0x6f, 0x77, + 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x2a, 0x49, 0x0a, + 0x08, 0x50, 0x65, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x23, 0x0a, 0x1f, 0x50, 0x45, 0x45, + 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x53, 0x48, 0x45, 0x52, + 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x18, + 0x0a, 0x14, 0x50, 0x45, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x55, 0x42, 0x53, + 0x43, 0x52, 0x49, 0x42, 0x45, 0x52, 0x10, 0x01, 0x2a, 0x93, 0x01, 0x0a, 0x11, 0x43, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x22, + 0x0a, 0x1e, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x51, 0x55, 0x41, + 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, + 0x5f, 0x51, 0x55, 0x41, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x50, 0x4f, 0x4f, 0x52, 0x10, 0x01, 0x12, + 0x1b, 0x0a, 0x17, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x51, 0x55, + 0x41, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x47, 0x4f, 0x4f, 0x44, 0x10, 0x02, 0x12, 0x20, 0x0a, 0x1c, + 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x51, 0x55, 0x41, 0x4c, 0x49, + 0x54, 0x59, 0x5f, 0x45, 0x58, 0x43, 0x45, 0x4c, 0x4c, 0x45, 0x4e, 0x54, 0x10, 0x03, 0x2a, 0x77, + 0x0a, 0x0c, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x21, + 0x0a, 0x1d, 0x56, 0x49, 0x44, 0x45, 0x4f, 0x5f, 0x51, 0x55, 0x41, 0x4c, 0x49, 0x54, 0x59, 0x5f, + 0x4c, 0x4f, 0x57, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, + 0x00, 0x12, 0x15, 0x0a, 0x11, 0x56, 0x49, 0x44, 0x45, 0x4f, 0x5f, 0x51, 0x55, 0x41, 0x4c, 0x49, + 0x54, 0x59, 0x5f, 0x4d, 0x49, 0x44, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x56, 0x49, 0x44, 0x45, + 0x4f, 0x5f, 0x51, 0x55, 0x41, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x48, 0x49, 0x47, 0x48, 0x10, 0x02, + 0x12, 0x15, 0x0a, 0x11, 0x56, 0x49, 0x44, 0x45, 0x4f, 0x5f, 0x51, 0x55, 0x41, 0x4c, 0x49, 0x54, + 0x59, 0x5f, 0x4f, 0x46, 0x46, 0x10, 0x03, 0x2a, 0x93, 0x01, 0x0a, 0x09, 0x54, 0x72, 0x61, 0x63, + 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x52, 0x41, 0x43, 0x4b, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, + 0x00, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x52, 0x41, 0x43, 0x4b, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x41, 0x55, 0x44, 0x49, 0x4f, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x52, 0x41, 0x43, 0x4b, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x49, 0x44, 0x45, 0x4f, 0x10, 0x02, 0x12, 0x1b, 0x0a, + 0x17, 0x54, 0x52, 0x41, 0x43, 0x4b, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x43, 0x52, 0x45, + 0x45, 0x4e, 0x5f, 0x53, 0x48, 0x41, 0x52, 0x45, 0x10, 0x03, 0x12, 0x21, 0x0a, 0x1d, 0x54, 0x52, + 0x41, 0x43, 0x4b, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x43, 0x52, 0x45, 0x45, 0x4e, 0x5f, + 0x53, 0x48, 0x41, 0x52, 0x45, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x10, 0x04, 0x2a, 0x91, 0x06, + 0x0a, 0x09, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x45, + 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, + 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x26, 0x0a, 0x22, 0x45, 0x52, 0x52, 0x4f, 0x52, + 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x53, 0x48, 0x5f, 0x54, 0x52, + 0x41, 0x43, 0x4b, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x64, 0x12, + 0x26, 0x0a, 0x22, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x50, 0x55, + 0x42, 0x4c, 0x49, 0x53, 0x48, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x4b, 0x53, 0x5f, 0x4d, 0x49, 0x53, + 0x4d, 0x41, 0x54, 0x43, 0x48, 0x10, 0x65, 0x12, 0x29, 0x0a, 0x25, 0x45, 0x52, 0x52, 0x4f, 0x52, + 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x53, 0x48, 0x5f, 0x54, 0x52, + 0x41, 0x43, 0x4b, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x4f, 0x46, 0x5f, 0x4f, 0x52, 0x44, 0x45, 0x52, + 0x10, 0x66, 0x12, 0x32, 0x0a, 0x2e, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x43, 0x4f, 0x44, 0x45, + 0x5f, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x53, 0x48, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x4b, 0x5f, 0x56, + 0x49, 0x44, 0x45, 0x4f, 0x5f, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x46, + 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x67, 0x12, 0x19, 0x0a, 0x15, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, + 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x4c, 0x49, 0x56, 0x45, 0x5f, 0x45, 0x4e, 0x44, 0x45, 0x44, 0x10, + 0x68, 0x12, 0x25, 0x0a, 0x20, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x5f, + 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x49, 0x50, 0x41, 0x4e, 0x54, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, + 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0xc8, 0x01, 0x12, 0x29, 0x0a, 0x24, 0x45, 0x52, 0x52, 0x4f, + 0x52, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x49, 0x50, 0x41, + 0x4e, 0x54, 0x5f, 0x4d, 0x49, 0x47, 0x52, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x4f, 0x55, 0x54, + 0x10, 0xc9, 0x01, 0x12, 0x2c, 0x0a, 0x27, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x49, 0x50, 0x41, 0x4e, 0x54, 0x5f, 0x4d, 0x49, - 0x47, 0x52, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x4f, 0x55, 0x54, 0x10, 0xc9, 0x01, 0x12, 0x2c, - 0x0a, 0x27, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x50, 0x41, 0x52, - 0x54, 0x49, 0x43, 0x49, 0x50, 0x41, 0x4e, 0x54, 0x5f, 0x4d, 0x49, 0x47, 0x52, 0x41, 0x54, 0x49, - 0x4f, 0x4e, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0xca, 0x01, 0x12, 0x25, 0x0a, 0x20, - 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, - 0x43, 0x49, 0x50, 0x41, 0x4e, 0x54, 0x5f, 0x4d, 0x49, 0x47, 0x52, 0x41, 0x54, 0x49, 0x4e, 0x47, - 0x10, 0xcb, 0x01, 0x12, 0x2c, 0x0a, 0x27, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x43, 0x4f, 0x44, - 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x49, 0x50, 0x41, 0x4e, 0x54, 0x5f, 0x52, 0x45, - 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0xcc, - 0x01, 0x12, 0x33, 0x0a, 0x2e, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x5f, - 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x49, 0x50, 0x41, 0x4e, 0x54, 0x5f, 0x4d, 0x45, 0x44, 0x49, - 0x41, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x46, 0x41, 0x49, 0x4c, - 0x55, 0x52, 0x45, 0x10, 0xcd, 0x01, 0x12, 0x1e, 0x0a, 0x19, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, - 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x43, 0x41, 0x4c, 0x4c, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, - 0x55, 0x4e, 0x44, 0x10, 0xac, 0x02, 0x12, 0x29, 0x0a, 0x24, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, - 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x5f, 0x56, 0x41, 0x4c, - 0x49, 0x44, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x90, - 0x03, 0x12, 0x1f, 0x0a, 0x1a, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x5f, - 0x55, 0x4e, 0x41, 0x55, 0x54, 0x48, 0x45, 0x4e, 0x54, 0x49, 0x43, 0x41, 0x54, 0x45, 0x44, 0x10, - 0x91, 0x03, 0x12, 0x21, 0x0a, 0x1c, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x43, 0x4f, 0x44, 0x45, - 0x5f, 0x50, 0x45, 0x52, 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x45, 0x4e, 0x49, - 0x45, 0x44, 0x10, 0x93, 0x03, 0x12, 0x21, 0x0a, 0x1c, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x43, - 0x4f, 0x44, 0x45, 0x5f, 0x54, 0x4f, 0x4f, 0x5f, 0x4d, 0x41, 0x4e, 0x59, 0x5f, 0x52, 0x45, 0x51, - 0x55, 0x45, 0x53, 0x54, 0x53, 0x10, 0xad, 0x03, 0x12, 0x25, 0x0a, 0x20, 0x45, 0x52, 0x52, 0x4f, - 0x52, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, - 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0xf4, 0x03, 0x12, - 0x21, 0x0a, 0x1c, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x46, - 0x55, 0x5f, 0x53, 0x48, 0x55, 0x54, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x10, - 0xd8, 0x04, 0x12, 0x18, 0x0a, 0x13, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x43, 0x4f, 0x44, 0x45, - 0x5f, 0x53, 0x46, 0x55, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x10, 0xbc, 0x05, 0x2a, 0xea, 0x01, 0x0a, - 0x07, 0x53, 0x64, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x14, 0x53, 0x44, 0x4b, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, - 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x44, 0x4b, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, - 0x45, 0x41, 0x43, 0x54, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x44, 0x4b, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x41, 0x4e, 0x47, 0x55, 0x4c, 0x41, 0x52, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, - 0x53, 0x44, 0x4b, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x4e, 0x44, 0x52, 0x4f, 0x49, 0x44, - 0x10, 0x03, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x44, 0x4b, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, - 0x4f, 0x53, 0x10, 0x04, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x44, 0x4b, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x46, 0x4c, 0x55, 0x54, 0x54, 0x45, 0x52, 0x10, 0x05, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x44, - 0x4b, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x45, 0x41, 0x43, 0x54, 0x5f, 0x4e, 0x41, 0x54, - 0x49, 0x56, 0x45, 0x10, 0x06, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x44, 0x4b, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x55, 0x4e, 0x49, 0x54, 0x59, 0x10, 0x07, 0x12, 0x0f, 0x0a, 0x0b, 0x53, 0x44, 0x4b, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x4f, 0x10, 0x08, 0x12, 0x1d, 0x0a, 0x19, 0x53, 0x44, - 0x4b, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x4c, 0x41, 0x49, 0x4e, 0x5f, 0x4a, 0x41, 0x56, - 0x41, 0x53, 0x43, 0x52, 0x49, 0x50, 0x54, 0x10, 0x09, 0x2a, 0xbb, 0x01, 0x0a, 0x14, 0x54, 0x72, - 0x61, 0x63, 0x6b, 0x55, 0x6e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x52, 0x65, 0x61, 0x73, - 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x22, 0x54, 0x52, 0x41, 0x43, 0x4b, 0x5f, 0x55, 0x4e, 0x50, 0x55, - 0x42, 0x4c, 0x49, 0x53, 0x48, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, - 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x25, 0x0a, 0x21, 0x54, 0x52, - 0x41, 0x43, 0x4b, 0x5f, 0x55, 0x4e, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x53, 0x48, 0x5f, 0x52, 0x45, - 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x4d, 0x55, 0x54, 0x45, 0x44, 0x10, - 0x01, 0x12, 0x2d, 0x0a, 0x29, 0x54, 0x52, 0x41, 0x43, 0x4b, 0x5f, 0x55, 0x4e, 0x50, 0x55, 0x42, - 0x4c, 0x49, 0x53, 0x48, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x50, 0x45, 0x52, 0x4d, - 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x56, 0x4f, 0x4b, 0x45, 0x44, 0x10, 0x02, - 0x12, 0x25, 0x0a, 0x21, 0x54, 0x52, 0x41, 0x43, 0x4b, 0x5f, 0x55, 0x4e, 0x50, 0x55, 0x42, 0x4c, - 0x49, 0x53, 0x48, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x52, - 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x03, 0x2a, 0x6e, 0x0a, 0x0c, 0x47, 0x6f, 0x41, 0x77, 0x61, - 0x79, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x1a, 0x47, 0x4f, 0x5f, 0x41, 0x57, - 0x41, 0x59, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, - 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x20, 0x0a, 0x1c, 0x47, 0x4f, 0x5f, 0x41, 0x57, - 0x41, 0x59, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x53, 0x48, 0x55, 0x54, 0x54, 0x49, - 0x4e, 0x47, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x01, 0x12, 0x1c, 0x0a, 0x18, 0x47, 0x4f, 0x5f, - 0x41, 0x57, 0x41, 0x59, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x42, 0x41, - 0x4c, 0x41, 0x4e, 0x43, 0x45, 0x10, 0x02, 0x2a, 0xb6, 0x01, 0x0a, 0x0f, 0x43, 0x61, 0x6c, 0x6c, - 0x45, 0x6e, 0x64, 0x65, 0x64, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x1d, 0x43, - 0x41, 0x4c, 0x4c, 0x5f, 0x45, 0x4e, 0x44, 0x45, 0x44, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, - 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1b, - 0x0a, 0x17, 0x43, 0x41, 0x4c, 0x4c, 0x5f, 0x45, 0x4e, 0x44, 0x45, 0x44, 0x5f, 0x52, 0x45, 0x41, - 0x53, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x44, 0x45, 0x44, 0x10, 0x01, 0x12, 0x20, 0x0a, 0x1c, 0x43, - 0x41, 0x4c, 0x4c, 0x5f, 0x45, 0x4e, 0x44, 0x45, 0x44, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, - 0x5f, 0x4c, 0x49, 0x56, 0x45, 0x5f, 0x45, 0x4e, 0x44, 0x45, 0x44, 0x10, 0x02, 0x12, 0x1c, 0x0a, - 0x18, 0x43, 0x41, 0x4c, 0x4c, 0x5f, 0x45, 0x4e, 0x44, 0x45, 0x44, 0x5f, 0x52, 0x45, 0x41, 0x53, - 0x4f, 0x4e, 0x5f, 0x4b, 0x49, 0x43, 0x4b, 0x45, 0x44, 0x10, 0x03, 0x12, 0x23, 0x0a, 0x1f, 0x43, - 0x41, 0x4c, 0x4c, 0x5f, 0x45, 0x4e, 0x44, 0x45, 0x44, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, - 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x44, 0x45, 0x44, 0x10, 0x04, - 0x2a, 0xf1, 0x01, 0x0a, 0x1a, 0x57, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, - 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x12, - 0x2c, 0x0a, 0x28, 0x57, 0x45, 0x42, 0x53, 0x4f, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x45, 0x43, + 0x47, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0xca, + 0x01, 0x12, 0x25, 0x0a, 0x20, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x5f, + 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x49, 0x50, 0x41, 0x4e, 0x54, 0x5f, 0x4d, 0x49, 0x47, 0x52, + 0x41, 0x54, 0x49, 0x4e, 0x47, 0x10, 0xcb, 0x01, 0x12, 0x2c, 0x0a, 0x27, 0x45, 0x52, 0x52, 0x4f, + 0x52, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x49, 0x50, 0x41, + 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x46, 0x41, 0x49, + 0x4c, 0x45, 0x44, 0x10, 0xcc, 0x01, 0x12, 0x33, 0x0a, 0x2e, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, + 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x49, 0x50, 0x41, 0x4e, 0x54, + 0x5f, 0x4d, 0x45, 0x44, 0x49, 0x41, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x50, 0x4f, 0x52, 0x54, + 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x55, 0x52, 0x45, 0x10, 0xcd, 0x01, 0x12, 0x1e, 0x0a, 0x19, 0x45, + 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x43, 0x41, 0x4c, 0x4c, 0x5f, 0x4e, + 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0xac, 0x02, 0x12, 0x29, 0x0a, 0x24, 0x45, + 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, + 0x54, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x46, 0x41, 0x49, + 0x4c, 0x45, 0x44, 0x10, 0x90, 0x03, 0x12, 0x1f, 0x0a, 0x1a, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, + 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x41, 0x55, 0x54, 0x48, 0x45, 0x4e, 0x54, 0x49, 0x43, + 0x41, 0x54, 0x45, 0x44, 0x10, 0x91, 0x03, 0x12, 0x21, 0x0a, 0x1c, 0x45, 0x52, 0x52, 0x4f, 0x52, + 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x50, 0x45, 0x52, 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, + 0x5f, 0x44, 0x45, 0x4e, 0x49, 0x45, 0x44, 0x10, 0x93, 0x03, 0x12, 0x21, 0x0a, 0x1c, 0x45, 0x52, + 0x52, 0x4f, 0x52, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x54, 0x4f, 0x4f, 0x5f, 0x4d, 0x41, 0x4e, + 0x59, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x53, 0x10, 0xad, 0x03, 0x12, 0x25, 0x0a, + 0x20, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x45, + 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x45, 0x52, 0x52, 0x4f, + 0x52, 0x10, 0xf4, 0x03, 0x12, 0x21, 0x0a, 0x1c, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x43, 0x4f, + 0x44, 0x45, 0x5f, 0x53, 0x46, 0x55, 0x5f, 0x53, 0x48, 0x55, 0x54, 0x54, 0x49, 0x4e, 0x47, 0x5f, + 0x44, 0x4f, 0x57, 0x4e, 0x10, 0xd8, 0x04, 0x12, 0x18, 0x0a, 0x13, 0x45, 0x52, 0x52, 0x4f, 0x52, + 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x46, 0x55, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x10, 0xbc, + 0x05, 0x2a, 0xea, 0x01, 0x0a, 0x07, 0x53, 0x64, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, + 0x14, 0x53, 0x44, 0x4b, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, + 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x44, 0x4b, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x52, 0x45, 0x41, 0x43, 0x54, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x53, + 0x44, 0x4b, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x4e, 0x47, 0x55, 0x4c, 0x41, 0x52, 0x10, + 0x02, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x44, 0x4b, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x4e, + 0x44, 0x52, 0x4f, 0x49, 0x44, 0x10, 0x03, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x44, 0x4b, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4f, 0x53, 0x10, 0x04, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x44, 0x4b, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x4c, 0x55, 0x54, 0x54, 0x45, 0x52, 0x10, 0x05, 0x12, + 0x19, 0x0a, 0x15, 0x53, 0x44, 0x4b, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x45, 0x41, 0x43, + 0x54, 0x5f, 0x4e, 0x41, 0x54, 0x49, 0x56, 0x45, 0x10, 0x06, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x44, + 0x4b, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x49, 0x54, 0x59, 0x10, 0x07, 0x12, 0x0f, + 0x0a, 0x0b, 0x53, 0x44, 0x4b, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x4f, 0x10, 0x08, 0x12, + 0x1d, 0x0a, 0x19, 0x53, 0x44, 0x4b, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x4c, 0x41, 0x49, + 0x4e, 0x5f, 0x4a, 0x41, 0x56, 0x41, 0x53, 0x43, 0x52, 0x49, 0x50, 0x54, 0x10, 0x09, 0x2a, 0xbb, + 0x01, 0x0a, 0x14, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x55, 0x6e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, + 0x68, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x22, 0x54, 0x52, 0x41, 0x43, 0x4b, + 0x5f, 0x55, 0x4e, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x53, 0x48, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, + 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x25, 0x0a, 0x21, 0x54, 0x52, 0x41, 0x43, 0x4b, 0x5f, 0x55, 0x4e, 0x50, 0x55, 0x42, 0x4c, 0x49, + 0x53, 0x48, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x4d, + 0x55, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x2d, 0x0a, 0x29, 0x54, 0x52, 0x41, 0x43, 0x4b, 0x5f, + 0x55, 0x4e, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x53, 0x48, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, + 0x5f, 0x50, 0x45, 0x52, 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x56, 0x4f, + 0x4b, 0x45, 0x44, 0x10, 0x02, 0x12, 0x25, 0x0a, 0x21, 0x54, 0x52, 0x41, 0x43, 0x4b, 0x5f, 0x55, + 0x4e, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x53, 0x48, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, + 0x4d, 0x4f, 0x44, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x03, 0x2a, 0x6e, 0x0a, 0x0c, + 0x47, 0x6f, 0x41, 0x77, 0x61, 0x79, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x1a, + 0x47, 0x4f, 0x5f, 0x41, 0x57, 0x41, 0x59, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x55, + 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x20, 0x0a, 0x1c, + 0x47, 0x4f, 0x5f, 0x41, 0x57, 0x41, 0x59, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x53, + 0x48, 0x55, 0x54, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x01, 0x12, 0x1c, + 0x0a, 0x18, 0x47, 0x4f, 0x5f, 0x41, 0x57, 0x41, 0x59, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, + 0x5f, 0x52, 0x45, 0x42, 0x41, 0x4c, 0x41, 0x4e, 0x43, 0x45, 0x10, 0x02, 0x2a, 0xb6, 0x01, 0x0a, + 0x0f, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, 0x65, 0x64, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, + 0x12, 0x21, 0x0a, 0x1d, 0x43, 0x41, 0x4c, 0x4c, 0x5f, 0x45, 0x4e, 0x44, 0x45, 0x44, 0x5f, 0x52, + 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, + 0x44, 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x43, 0x41, 0x4c, 0x4c, 0x5f, 0x45, 0x4e, 0x44, 0x45, + 0x44, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x44, 0x45, 0x44, 0x10, 0x01, + 0x12, 0x20, 0x0a, 0x1c, 0x43, 0x41, 0x4c, 0x4c, 0x5f, 0x45, 0x4e, 0x44, 0x45, 0x44, 0x5f, 0x52, + 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x4c, 0x49, 0x56, 0x45, 0x5f, 0x45, 0x4e, 0x44, 0x45, 0x44, + 0x10, 0x02, 0x12, 0x1c, 0x0a, 0x18, 0x43, 0x41, 0x4c, 0x4c, 0x5f, 0x45, 0x4e, 0x44, 0x45, 0x44, + 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x4b, 0x49, 0x43, 0x4b, 0x45, 0x44, 0x10, 0x03, + 0x12, 0x23, 0x0a, 0x1f, 0x43, 0x41, 0x4c, 0x4c, 0x5f, 0x45, 0x4e, 0x44, 0x45, 0x44, 0x5f, 0x52, + 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, + 0x44, 0x45, 0x44, 0x10, 0x04, 0x2a, 0xf1, 0x01, 0x0a, 0x1a, 0x57, 0x65, 0x62, 0x73, 0x6f, 0x63, + 0x6b, 0x65, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x53, 0x74, 0x72, 0x61, + 0x74, 0x65, 0x67, 0x79, 0x12, 0x2c, 0x0a, 0x28, 0x57, 0x45, 0x42, 0x53, 0x4f, 0x43, 0x4b, 0x45, + 0x54, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x53, 0x54, 0x52, 0x41, + 0x54, 0x45, 0x47, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x2b, 0x0a, 0x27, 0x57, 0x45, 0x42, 0x53, 0x4f, 0x43, 0x4b, 0x45, 0x54, 0x5f, + 0x52, 0x45, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x53, 0x54, 0x52, 0x41, 0x54, 0x45, + 0x47, 0x59, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x10, 0x01, 0x12, + 0x25, 0x0a, 0x21, 0x57, 0x45, 0x42, 0x53, 0x4f, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x53, 0x54, 0x52, 0x41, 0x54, 0x45, 0x47, 0x59, 0x5f, - 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x2b, 0x0a, - 0x27, 0x57, 0x45, 0x42, 0x53, 0x4f, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x4e, - 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x53, 0x54, 0x52, 0x41, 0x54, 0x45, 0x47, 0x59, 0x5f, 0x44, 0x49, - 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x10, 0x01, 0x12, 0x25, 0x0a, 0x21, 0x57, 0x45, - 0x42, 0x53, 0x4f, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, - 0x54, 0x5f, 0x53, 0x54, 0x52, 0x41, 0x54, 0x45, 0x47, 0x59, 0x5f, 0x46, 0x41, 0x53, 0x54, 0x10, - 0x02, 0x12, 0x27, 0x0a, 0x23, 0x57, 0x45, 0x42, 0x53, 0x4f, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, - 0x45, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x53, 0x54, 0x52, 0x41, 0x54, 0x45, 0x47, - 0x59, 0x5f, 0x52, 0x45, 0x4a, 0x4f, 0x49, 0x4e, 0x10, 0x03, 0x12, 0x28, 0x0a, 0x24, 0x57, 0x45, - 0x42, 0x53, 0x4f, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, - 0x54, 0x5f, 0x53, 0x54, 0x52, 0x41, 0x54, 0x45, 0x47, 0x59, 0x5f, 0x4d, 0x49, 0x47, 0x52, 0x41, - 0x54, 0x45, 0x10, 0x04, 0x42, 0x65, 0x42, 0x0b, 0x53, 0x66, 0x75, 0x4d, 0x6f, 0x64, 0x65, 0x6c, - 0x73, 0x56, 0x31, 0x50, 0x01, 0x5a, 0x37, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, - 0x6d, 0x2f, 0x47, 0x65, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2f, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x76, 0x69, - 0x64, 0x65, 0x6f, 0x2f, 0x73, 0x66, 0x75, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0xaa, 0x02, - 0x1a, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x76, 0x31, - 0x2e, 0x53, 0x66, 0x75, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x46, 0x41, 0x53, 0x54, 0x10, 0x02, 0x12, 0x27, 0x0a, 0x23, 0x57, 0x45, 0x42, 0x53, 0x4f, 0x43, + 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x53, 0x54, + 0x52, 0x41, 0x54, 0x45, 0x47, 0x59, 0x5f, 0x52, 0x45, 0x4a, 0x4f, 0x49, 0x4e, 0x10, 0x03, 0x12, + 0x28, 0x0a, 0x24, 0x57, 0x45, 0x42, 0x53, 0x4f, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x45, 0x43, + 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x53, 0x54, 0x52, 0x41, 0x54, 0x45, 0x47, 0x59, 0x5f, + 0x4d, 0x49, 0x47, 0x52, 0x41, 0x54, 0x45, 0x10, 0x04, 0x2a, 0xb0, 0x02, 0x0a, 0x13, 0x41, 0x6e, + 0x64, 0x72, 0x6f, 0x69, 0x64, 0x54, 0x68, 0x65, 0x72, 0x6d, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x12, 0x25, 0x0a, 0x21, 0x41, 0x4e, 0x44, 0x52, 0x4f, 0x49, 0x44, 0x5f, 0x54, 0x48, 0x45, + 0x52, 0x4d, 0x41, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, + 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1e, 0x0a, 0x1a, 0x41, 0x4e, 0x44, 0x52, + 0x4f, 0x49, 0x44, 0x5f, 0x54, 0x48, 0x45, 0x52, 0x4d, 0x41, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x45, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x1f, 0x0a, 0x1b, 0x41, 0x4e, 0x44, 0x52, + 0x4f, 0x49, 0x44, 0x5f, 0x54, 0x48, 0x45, 0x52, 0x4d, 0x41, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x45, 0x5f, 0x4c, 0x49, 0x47, 0x48, 0x54, 0x10, 0x02, 0x12, 0x22, 0x0a, 0x1e, 0x41, 0x4e, 0x44, + 0x52, 0x4f, 0x49, 0x44, 0x5f, 0x54, 0x48, 0x45, 0x52, 0x4d, 0x41, 0x4c, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x45, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x52, 0x41, 0x54, 0x45, 0x10, 0x03, 0x12, 0x20, 0x0a, + 0x1c, 0x41, 0x4e, 0x44, 0x52, 0x4f, 0x49, 0x44, 0x5f, 0x54, 0x48, 0x45, 0x52, 0x4d, 0x41, 0x4c, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x53, 0x45, 0x56, 0x45, 0x52, 0x45, 0x10, 0x04, 0x12, + 0x22, 0x0a, 0x1e, 0x41, 0x4e, 0x44, 0x52, 0x4f, 0x49, 0x44, 0x5f, 0x54, 0x48, 0x45, 0x52, 0x4d, + 0x41, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x43, 0x52, 0x49, 0x54, 0x49, 0x43, 0x41, + 0x4c, 0x10, 0x05, 0x12, 0x23, 0x0a, 0x1f, 0x41, 0x4e, 0x44, 0x52, 0x4f, 0x49, 0x44, 0x5f, 0x54, + 0x48, 0x45, 0x52, 0x4d, 0x41, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x4d, 0x45, + 0x52, 0x47, 0x45, 0x4e, 0x43, 0x59, 0x10, 0x06, 0x12, 0x22, 0x0a, 0x1e, 0x41, 0x4e, 0x44, 0x52, + 0x4f, 0x49, 0x44, 0x5f, 0x54, 0x48, 0x45, 0x52, 0x4d, 0x41, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x45, 0x5f, 0x53, 0x48, 0x55, 0x54, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x07, 0x2a, 0xba, 0x01, 0x0a, + 0x11, 0x41, 0x70, 0x70, 0x6c, 0x65, 0x54, 0x68, 0x65, 0x72, 0x6d, 0x61, 0x6c, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x12, 0x23, 0x0a, 0x1f, 0x41, 0x50, 0x50, 0x4c, 0x45, 0x5f, 0x54, 0x48, 0x45, 0x52, + 0x4d, 0x41, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, + 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x41, 0x50, 0x50, 0x4c, 0x45, + 0x5f, 0x54, 0x48, 0x45, 0x52, 0x4d, 0x41, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4e, + 0x4f, 0x4d, 0x49, 0x4e, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x1c, 0x0a, 0x18, 0x41, 0x50, 0x50, 0x4c, + 0x45, 0x5f, 0x54, 0x48, 0x45, 0x52, 0x4d, 0x41, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, + 0x46, 0x41, 0x49, 0x52, 0x10, 0x02, 0x12, 0x1f, 0x0a, 0x1b, 0x41, 0x50, 0x50, 0x4c, 0x45, 0x5f, + 0x54, 0x48, 0x45, 0x52, 0x4d, 0x41, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x53, 0x45, + 0x52, 0x49, 0x4f, 0x55, 0x53, 0x10, 0x03, 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x50, 0x50, 0x4c, 0x45, + 0x5f, 0x54, 0x48, 0x45, 0x52, 0x4d, 0x41, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x43, + 0x52, 0x49, 0x54, 0x49, 0x43, 0x41, 0x4c, 0x10, 0x04, 0x42, 0x65, 0x42, 0x0b, 0x53, 0x66, 0x75, + 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x56, 0x31, 0x50, 0x01, 0x5a, 0x37, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x47, 0x65, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2f, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x73, 0x66, 0x75, 0x2f, 0x6d, 0x6f, 0x64, + 0x65, 0x6c, 0x73, 0xaa, 0x02, 0x1a, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x56, 0x69, 0x64, + 0x65, 0x6f, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x66, 0x75, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x73, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2327,8 +2682,8 @@ func file_video_sfu_models_models_proto_rawDescGZIP() []byte { return file_video_sfu_models_models_proto_rawDescData } -var file_video_sfu_models_models_proto_enumTypes = make([]protoimpl.EnumInfo, 10) -var file_video_sfu_models_models_proto_msgTypes = make([]protoimpl.MessageInfo, 18) +var file_video_sfu_models_models_proto_enumTypes = make([]protoimpl.EnumInfo, 12) +var file_video_sfu_models_models_proto_msgTypes = make([]protoimpl.MessageInfo, 21) var file_video_sfu_models_models_proto_goTypes = []interface{}{ (PeerType)(0), // 0: stream.video.sfu.models.PeerType (ConnectionQuality)(0), // 1: stream.video.sfu.models.ConnectionQuality @@ -2340,56 +2695,63 @@ var file_video_sfu_models_models_proto_goTypes = []interface{}{ (GoAwayReason)(0), // 7: stream.video.sfu.models.GoAwayReason (CallEndedReason)(0), // 8: stream.video.sfu.models.CallEndedReason (WebsocketReconnectStrategy)(0), // 9: stream.video.sfu.models.WebsocketReconnectStrategy - (*CallState)(nil), // 10: stream.video.sfu.models.CallState - (*ParticipantCount)(nil), // 11: stream.video.sfu.models.ParticipantCount - (*Pin)(nil), // 12: stream.video.sfu.models.Pin - (*Participant)(nil), // 13: stream.video.sfu.models.Participant - (*StreamQuality)(nil), // 14: stream.video.sfu.models.StreamQuality - (*VideoDimension)(nil), // 15: stream.video.sfu.models.VideoDimension - (*VideoLayer)(nil), // 16: stream.video.sfu.models.VideoLayer - (*Codec)(nil), // 17: stream.video.sfu.models.Codec - (*ICETrickle)(nil), // 18: stream.video.sfu.models.ICETrickle - (*TrackInfo)(nil), // 19: stream.video.sfu.models.TrackInfo - (*Error)(nil), // 20: stream.video.sfu.models.Error - (*ClientDetails)(nil), // 21: stream.video.sfu.models.ClientDetails - (*Sdk)(nil), // 22: stream.video.sfu.models.Sdk - (*OS)(nil), // 23: stream.video.sfu.models.OS - (*Browser)(nil), // 24: stream.video.sfu.models.Browser - (*Device)(nil), // 25: stream.video.sfu.models.Device - (*Call)(nil), // 26: stream.video.sfu.models.Call - (*CallGrants)(nil), // 27: stream.video.sfu.models.CallGrants - (*timestamppb.Timestamp)(nil), // 28: google.protobuf.Timestamp - (*structpb.Struct)(nil), // 29: google.protobuf.Struct + (AndroidThermalState)(0), // 10: stream.video.sfu.models.AndroidThermalState + (AppleThermalState)(0), // 11: stream.video.sfu.models.AppleThermalState + (*CallState)(nil), // 12: stream.video.sfu.models.CallState + (*ParticipantCount)(nil), // 13: stream.video.sfu.models.ParticipantCount + (*Pin)(nil), // 14: stream.video.sfu.models.Pin + (*Participant)(nil), // 15: stream.video.sfu.models.Participant + (*StreamQuality)(nil), // 16: stream.video.sfu.models.StreamQuality + (*VideoDimension)(nil), // 17: stream.video.sfu.models.VideoDimension + (*VideoLayer)(nil), // 18: stream.video.sfu.models.VideoLayer + (*Codec)(nil), // 19: stream.video.sfu.models.Codec + (*ICETrickle)(nil), // 20: stream.video.sfu.models.ICETrickle + (*TrackInfo)(nil), // 21: stream.video.sfu.models.TrackInfo + (*Error)(nil), // 22: stream.video.sfu.models.Error + (*ClientDetails)(nil), // 23: stream.video.sfu.models.ClientDetails + (*Sdk)(nil), // 24: stream.video.sfu.models.Sdk + (*OS)(nil), // 25: stream.video.sfu.models.OS + (*Browser)(nil), // 26: stream.video.sfu.models.Browser + (*Device)(nil), // 27: stream.video.sfu.models.Device + (*Call)(nil), // 28: stream.video.sfu.models.Call + (*CallGrants)(nil), // 29: stream.video.sfu.models.CallGrants + (*InputDevices)(nil), // 30: stream.video.sfu.models.InputDevices + (*AndroidState)(nil), // 31: stream.video.sfu.models.AndroidState + (*AppleState)(nil), // 32: stream.video.sfu.models.AppleState + (*timestamppb.Timestamp)(nil), // 33: google.protobuf.Timestamp + (*structpb.Struct)(nil), // 34: google.protobuf.Struct } var file_video_sfu_models_models_proto_depIdxs = []int32{ - 13, // 0: stream.video.sfu.models.CallState.participants:type_name -> stream.video.sfu.models.Participant - 28, // 1: stream.video.sfu.models.CallState.started_at:type_name -> google.protobuf.Timestamp - 11, // 2: stream.video.sfu.models.CallState.participant_count:type_name -> stream.video.sfu.models.ParticipantCount - 12, // 3: stream.video.sfu.models.CallState.pins:type_name -> stream.video.sfu.models.Pin + 15, // 0: stream.video.sfu.models.CallState.participants:type_name -> stream.video.sfu.models.Participant + 33, // 1: stream.video.sfu.models.CallState.started_at:type_name -> google.protobuf.Timestamp + 13, // 2: stream.video.sfu.models.CallState.participant_count:type_name -> stream.video.sfu.models.ParticipantCount + 14, // 3: stream.video.sfu.models.CallState.pins:type_name -> stream.video.sfu.models.Pin 3, // 4: stream.video.sfu.models.Participant.published_tracks:type_name -> stream.video.sfu.models.TrackType - 28, // 5: stream.video.sfu.models.Participant.joined_at:type_name -> google.protobuf.Timestamp + 33, // 5: stream.video.sfu.models.Participant.joined_at:type_name -> google.protobuf.Timestamp 1, // 6: stream.video.sfu.models.Participant.connection_quality:type_name -> stream.video.sfu.models.ConnectionQuality - 29, // 7: stream.video.sfu.models.Participant.custom:type_name -> google.protobuf.Struct + 34, // 7: stream.video.sfu.models.Participant.custom:type_name -> google.protobuf.Struct 2, // 8: stream.video.sfu.models.StreamQuality.video_quality:type_name -> stream.video.sfu.models.VideoQuality - 15, // 9: stream.video.sfu.models.VideoLayer.video_dimension:type_name -> stream.video.sfu.models.VideoDimension + 17, // 9: stream.video.sfu.models.VideoLayer.video_dimension:type_name -> stream.video.sfu.models.VideoDimension 2, // 10: stream.video.sfu.models.VideoLayer.quality:type_name -> stream.video.sfu.models.VideoQuality 0, // 11: stream.video.sfu.models.ICETrickle.peer_type:type_name -> stream.video.sfu.models.PeerType 3, // 12: stream.video.sfu.models.TrackInfo.track_type:type_name -> stream.video.sfu.models.TrackType - 16, // 13: stream.video.sfu.models.TrackInfo.layers:type_name -> stream.video.sfu.models.VideoLayer + 18, // 13: stream.video.sfu.models.TrackInfo.layers:type_name -> stream.video.sfu.models.VideoLayer 4, // 14: stream.video.sfu.models.Error.code:type_name -> stream.video.sfu.models.ErrorCode - 22, // 15: stream.video.sfu.models.ClientDetails.sdk:type_name -> stream.video.sfu.models.Sdk - 23, // 16: stream.video.sfu.models.ClientDetails.os:type_name -> stream.video.sfu.models.OS - 24, // 17: stream.video.sfu.models.ClientDetails.browser:type_name -> stream.video.sfu.models.Browser - 25, // 18: stream.video.sfu.models.ClientDetails.device:type_name -> stream.video.sfu.models.Device + 24, // 15: stream.video.sfu.models.ClientDetails.sdk:type_name -> stream.video.sfu.models.Sdk + 25, // 16: stream.video.sfu.models.ClientDetails.os:type_name -> stream.video.sfu.models.OS + 26, // 17: stream.video.sfu.models.ClientDetails.browser:type_name -> stream.video.sfu.models.Browser + 27, // 18: stream.video.sfu.models.ClientDetails.device:type_name -> stream.video.sfu.models.Device 5, // 19: stream.video.sfu.models.Sdk.type:type_name -> stream.video.sfu.models.SdkType - 29, // 20: stream.video.sfu.models.Call.custom:type_name -> google.protobuf.Struct - 28, // 21: stream.video.sfu.models.Call.created_at:type_name -> google.protobuf.Timestamp - 28, // 22: stream.video.sfu.models.Call.updated_at:type_name -> google.protobuf.Timestamp - 23, // [23:23] is the sub-list for method output_type - 23, // [23:23] is the sub-list for method input_type - 23, // [23:23] is the sub-list for extension type_name - 23, // [23:23] is the sub-list for extension extendee - 0, // [0:23] is the sub-list for field type_name + 34, // 20: stream.video.sfu.models.Call.custom:type_name -> google.protobuf.Struct + 33, // 21: stream.video.sfu.models.Call.created_at:type_name -> google.protobuf.Timestamp + 33, // 22: stream.video.sfu.models.Call.updated_at:type_name -> google.protobuf.Timestamp + 10, // 23: stream.video.sfu.models.AndroidState.thermal_state:type_name -> stream.video.sfu.models.AndroidThermalState + 11, // 24: stream.video.sfu.models.AppleState.thermal_state:type_name -> stream.video.sfu.models.AppleThermalState + 25, // [25:25] is the sub-list for method output_type + 25, // [25:25] is the sub-list for method input_type + 25, // [25:25] is the sub-list for extension type_name + 25, // [25:25] is the sub-list for extension extendee + 0, // [0:25] is the sub-list for field type_name } func init() { file_video_sfu_models_models_proto_init() } @@ -2614,14 +2976,50 @@ func file_video_sfu_models_models_proto_init() { return nil } } + file_video_sfu_models_models_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InputDevices); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_video_sfu_models_models_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AndroidState); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_video_sfu_models_models_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AppleState); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_video_sfu_models_models_proto_rawDesc, - NumEnums: 10, - NumMessages: 18, + NumEnums: 12, + NumMessages: 21, NumExtensions: 0, NumServices: 0, }, diff --git a/protobuf/video/sfu/models/models.proto b/protobuf/video/sfu/models/models.proto index cb8dddbf..20bfb555 100644 --- a/protobuf/video/sfu/models/models.proto +++ b/protobuf/video/sfu/models/models.proto @@ -285,3 +285,44 @@ enum WebsocketReconnectStrategy { // SDK should migrate to a new SFU instance WEBSOCKET_RECONNECT_STRATEGY_MIGRATE = 4; }; + +message InputDevices { + repeated string available_devices = 1; + string current_device = 2; + bool is_permitted = 3; +} + +message AndroidState { + AndroidThermalState thermal_state = 1; + bool is_power_saver_mode = 2; +} + +message AppleState { + AppleThermalState thermal_state = 1; + + // https://developer.apple.com/documentation/foundation/processinfo/1617047-islowpowermodeenabled + bool is_low_power_mode_enabled = 2; +} + +// AndroidThermalState is reported by the Android API. The full list of values is documented here +// https://developer.android.com/reference/android/os/PowerManager.html#getCurrentThermalStatus() +enum AndroidThermalState { + ANDROID_THERMAL_STATE_UNSPECIFIED = 0; + ANDROID_THERMAL_STATE_NONE = 1; + ANDROID_THERMAL_STATE_LIGHT = 2; + ANDROID_THERMAL_STATE_MODERATE = 3; + ANDROID_THERMAL_STATE_SEVERE = 4; + ANDROID_THERMAL_STATE_CRITICAL = 5; + ANDROID_THERMAL_STATE_EMERGENCY = 6; + ANDROID_THERMAL_STATE_SHUTDOWN = 7; +} + +// AppleThermalState is the thermal state as reported by Apple devices when available or applicable to the platform. +// The full list of states (enum) is available here: https://developer.apple.com/documentation/foundation/processinfo/thermalstate +enum AppleThermalState { + APPLE_THERMAL_STATE_UNSPECIFIED = 0; + APPLE_THERMAL_STATE_NOMINAL = 1; + APPLE_THERMAL_STATE_FAIR = 2; + APPLE_THERMAL_STATE_SERIOUS = 3; + APPLE_THERMAL_STATE_CRITICAL = 4; +} \ No newline at end of file diff --git a/protobuf/video/sfu/models/models_vtproto.pb.go b/protobuf/video/sfu/models/models_vtproto.pb.go index 3b935a52..237f2294 100644 --- a/protobuf/video/sfu/models/models_vtproto.pb.go +++ b/protobuf/video/sfu/models/models_vtproto.pb.go @@ -1282,6 +1282,161 @@ func (m *CallGrants) MarshalToSizedBufferVT(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *InputDevices) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *InputDevices) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *InputDevices) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.IsPermitted { + i-- + if m.IsPermitted { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x18 + } + if len(m.CurrentDevice) > 0 { + i -= len(m.CurrentDevice) + copy(dAtA[i:], m.CurrentDevice) + i = encodeVarint(dAtA, i, uint64(len(m.CurrentDevice))) + i-- + dAtA[i] = 0x12 + } + if len(m.AvailableDevices) > 0 { + for iNdEx := len(m.AvailableDevices) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.AvailableDevices[iNdEx]) + copy(dAtA[i:], m.AvailableDevices[iNdEx]) + i = encodeVarint(dAtA, i, uint64(len(m.AvailableDevices[iNdEx]))) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *AndroidState) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *AndroidState) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *AndroidState) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.IsPowerSaverMode { + i-- + if m.IsPowerSaverMode { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x10 + } + if m.ThermalState != 0 { + i = encodeVarint(dAtA, i, uint64(m.ThermalState)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *AppleState) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *AppleState) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *AppleState) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.IsLowPowerModeEnabled { + i-- + if m.IsLowPowerModeEnabled { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x10 + } + if m.ThermalState != 0 { + i = encodeVarint(dAtA, i, uint64(m.ThermalState)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + func encodeVarint(dAtA []byte, offset int, v uint64) int { offset -= sov(v) base := offset @@ -1832,6 +1987,67 @@ func (m *CallGrants) SizeVT() (n int) { return n } +func (m *InputDevices) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.AvailableDevices) > 0 { + for _, s := range m.AvailableDevices { + l = len(s) + n += 1 + l + sov(uint64(l)) + } + } + l = len(m.CurrentDevice) + if l > 0 { + n += 1 + l + sov(uint64(l)) + } + if m.IsPermitted { + n += 2 + } + if m.unknownFields != nil { + n += len(m.unknownFields) + } + return n +} + +func (m *AndroidState) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.ThermalState != 0 { + n += 1 + sov(uint64(m.ThermalState)) + } + if m.IsPowerSaverMode { + n += 2 + } + if m.unknownFields != nil { + n += len(m.unknownFields) + } + return n +} + +func (m *AppleState) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.ThermalState != 0 { + n += 1 + sov(uint64(m.ThermalState)) + } + if m.IsLowPowerModeEnabled { + n += 2 + } + if m.unknownFields != nil { + n += len(m.unknownFields) + } + return n +} + func sov(x uint64) (n int) { return (bits.Len64(x|1) + 6) / 7 } @@ -4959,6 +5175,321 @@ func (m *CallGrants) UnmarshalVT(dAtA []byte) error { } return nil } +func (m *InputDevices) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: InputDevices: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: InputDevices: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AvailableDevices", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.AvailableDevices = append(m.AvailableDevices, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CurrentDevice", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.CurrentDevice = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IsPermitted", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.IsPermitted = bool(v != 0) + default: + iNdEx = preIndex + skippy, err := skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *AndroidState) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: AndroidState: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AndroidState: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ThermalState", wireType) + } + m.ThermalState = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ThermalState |= AndroidThermalState(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IsPowerSaverMode", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.IsPowerSaverMode = bool(v != 0) + default: + iNdEx = preIndex + skippy, err := skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *AppleState) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: AppleState: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AppleState: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ThermalState", wireType) + } + m.ThermalState = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ThermalState |= AppleThermalState(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IsLowPowerModeEnabled", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.IsLowPowerModeEnabled = bool(v != 0) + default: + iNdEx = preIndex + skippy, err := skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func skip(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0 diff --git a/protobuf/video/sfu/signal_rpc/signal.pb.go b/protobuf/video/sfu/signal_rpc/signal.pb.go index b8da7f15..a16ac066 100644 --- a/protobuf/video/sfu/signal_rpc/signal.pb.go +++ b/protobuf/video/sfu/signal_rpc/signal.pb.go @@ -214,12 +214,19 @@ type SendStatsRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - SessionId string `protobuf:"bytes,1,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"` - SubscriberStats string `protobuf:"bytes,2,opt,name=subscriber_stats,json=subscriberStats,proto3" json:"subscriber_stats,omitempty"` - PublisherStats string `protobuf:"bytes,3,opt,name=publisher_stats,json=publisherStats,proto3" json:"publisher_stats,omitempty"` - WebrtcVersion string `protobuf:"bytes,4,opt,name=webrtc_version,json=webrtcVersion,proto3" json:"webrtc_version,omitempty"` - Sdk string `protobuf:"bytes,5,opt,name=sdk,proto3" json:"sdk,omitempty"` - SdkVersion string `protobuf:"bytes,6,opt,name=sdk_version,json=sdkVersion,proto3" json:"sdk_version,omitempty"` + SessionId string `protobuf:"bytes,1,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"` + SubscriberStats string `protobuf:"bytes,2,opt,name=subscriber_stats,json=subscriberStats,proto3" json:"subscriber_stats,omitempty"` + PublisherStats string `protobuf:"bytes,3,opt,name=publisher_stats,json=publisherStats,proto3" json:"publisher_stats,omitempty"` + WebrtcVersion string `protobuf:"bytes,4,opt,name=webrtc_version,json=webrtcVersion,proto3" json:"webrtc_version,omitempty"` + Sdk string `protobuf:"bytes,5,opt,name=sdk,proto3" json:"sdk,omitempty"` + SdkVersion string `protobuf:"bytes,6,opt,name=sdk_version,json=sdkVersion,proto3" json:"sdk_version,omitempty"` + AudioDevices *models.InputDevices `protobuf:"bytes,7,opt,name=audio_devices,json=audioDevices,proto3" json:"audio_devices,omitempty"` + VideoDevices *models.InputDevices `protobuf:"bytes,8,opt,name=video_devices,json=videoDevices,proto3" json:"video_devices,omitempty"` + // Types that are assignable to DeviceState: + // + // *SendStatsRequest_Android + // *SendStatsRequest_Apple + DeviceState isSendStatsRequest_DeviceState `protobuf_oneof:"device_state"` } func (x *SendStatsRequest) Reset() { @@ -296,6 +303,57 @@ func (x *SendStatsRequest) GetSdkVersion() string { return "" } +func (x *SendStatsRequest) GetAudioDevices() *models.InputDevices { + if x != nil { + return x.AudioDevices + } + return nil +} + +func (x *SendStatsRequest) GetVideoDevices() *models.InputDevices { + if x != nil { + return x.VideoDevices + } + return nil +} + +func (m *SendStatsRequest) GetDeviceState() isSendStatsRequest_DeviceState { + if m != nil { + return m.DeviceState + } + return nil +} + +func (x *SendStatsRequest) GetAndroid() *models.AndroidState { + if x, ok := x.GetDeviceState().(*SendStatsRequest_Android); ok { + return x.Android + } + return nil +} + +func (x *SendStatsRequest) GetApple() *models.AppleState { + if x, ok := x.GetDeviceState().(*SendStatsRequest_Apple); ok { + return x.Apple + } + return nil +} + +type isSendStatsRequest_DeviceState interface { + isSendStatsRequest_DeviceState() +} + +type SendStatsRequest_Android struct { + Android *models.AndroidState `protobuf:"bytes,9,opt,name=android,proto3,oneof"` +} + +type SendStatsRequest_Apple struct { + Apple *models.AppleState `protobuf:"bytes,10,opt,name=apple,proto3,oneof"` +} + +func (*SendStatsRequest_Android) isSendStatsRequest_DeviceState() {} + +func (*SendStatsRequest_Apple) isSendStatsRequest_DeviceState() {} + type SendStatsResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1189,7 +1247,7 @@ var file_video_sfu_signal_rpc_signal_proto_rawDesc = []byte{ 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x45, 0x72, 0x72, - 0x6f, 0x72, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0xdf, 0x01, 0x0a, 0x10, 0x53, 0x65, + 0x6f, 0x72, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x87, 0x04, 0x0a, 0x10, 0x53, 0x65, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x29, 0x0a, @@ -1203,187 +1261,205 @@ var file_video_sfu_signal_rpc_signal_proto_rawDesc = []byte{ 0x63, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x64, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x64, 0x6b, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x64, 0x6b, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x73, 0x64, 0x6b, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x49, 0x0a, 0x11, 0x53, - 0x65, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x34, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1e, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, - 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, - 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x72, 0x0a, 0x11, 0x49, 0x43, 0x45, 0x52, 0x65, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x3e, 0x0a, 0x09, 0x70, 0x65, - 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, - 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, - 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, - 0x52, 0x08, 0x70, 0x65, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x4a, 0x0a, 0x12, 0x49, 0x43, - 0x45, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x34, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1e, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, - 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, - 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x82, 0x01, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x4d, 0x75, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, - 0x64, 0x12, 0x48, 0x0a, 0x0b, 0x6d, 0x75, 0x74, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, - 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, - 0x2e, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x4d, 0x75, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, - 0x0a, 0x6d, 0x75, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x22, 0x50, 0x0a, 0x18, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x75, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, - 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, - 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x69, 0x0a, - 0x0e, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x4d, 0x75, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, - 0x41, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, - 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x54, 0x72, - 0x61, 0x63, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x75, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x05, 0x6d, 0x75, 0x74, 0x65, 0x64, 0x22, 0x28, 0x0a, 0x10, 0x41, 0x75, 0x64, 0x69, - 0x6f, 0x4d, 0x75, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, - 0x6d, 0x75, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x6d, 0x75, 0x74, - 0x65, 0x64, 0x22, 0x28, 0x0a, 0x10, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4d, 0x75, 0x74, 0x65, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x75, 0x74, 0x65, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x6d, 0x75, 0x74, 0x65, 0x64, 0x22, 0x86, 0x01, 0x0a, - 0x1a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x49, 0x0a, 0x06, 0x74, 0x72, - 0x61, 0x63, 0x6b, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x73, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x73, 0x69, - 0x67, 0x6e, 0x61, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x06, 0x74, - 0x72, 0x61, 0x63, 0x6b, 0x73, 0x22, 0x53, 0x0a, 0x1b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, - 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, - 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x45, 0x72, - 0x72, 0x6f, 0x72, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0xdc, 0x01, 0x0a, 0x18, 0x54, - 0x72, 0x61, 0x63, 0x6b, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, - 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, - 0x41, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, - 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x54, 0x72, - 0x61, 0x63, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, + 0x0a, 0x73, 0x64, 0x6b, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x4a, 0x0a, 0x0d, 0x61, + 0x75, 0x64, 0x69, 0x6f, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, + 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x52, 0x0c, 0x61, 0x75, 0x64, 0x69, 0x6f, + 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x0d, 0x76, 0x69, 0x64, 0x65, 0x6f, + 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, + 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, + 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x44, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x73, 0x52, 0x0c, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x07, 0x61, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, + 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x41, + 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x07, 0x61, + 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x12, 0x3b, 0x0a, 0x05, 0x61, 0x70, 0x70, 0x6c, 0x65, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, - 0x56, 0x69, 0x64, 0x65, 0x6f, 0x44, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x09, - 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x84, 0x01, 0x0a, 0x11, 0x53, 0x65, - 0x6e, 0x64, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x3e, 0x0a, 0x09, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, - 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x50, 0x65, 0x65, - 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x70, 0x65, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x10, 0x0a, 0x03, 0x73, 0x64, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x64, - 0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, - 0x22, 0x4a, 0x0a, 0x12, 0x53, 0x65, 0x6e, 0x64, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, + 0x41, 0x70, 0x70, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x05, 0x61, 0x70, + 0x70, 0x6c, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x22, 0x49, 0x0a, 0x11, 0x53, 0x65, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, + 0x73, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x72, + 0x0a, 0x11, 0x49, 0x43, 0x45, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x49, 0x64, 0x12, 0x3e, 0x0a, 0x09, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, - 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x4a, 0x0a, 0x12, - 0x49, 0x43, 0x45, 0x54, 0x72, 0x69, 0x63, 0x6b, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x34, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, - 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x45, 0x72, 0x72, 0x6f, - 0x72, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x82, 0x01, 0x0a, 0x13, 0x53, 0x65, 0x74, - 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x10, 0x0a, 0x03, 0x73, 0x64, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, - 0x64, 0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, - 0x64, 0x12, 0x3a, 0x0a, 0x06, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, - 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x54, 0x72, 0x61, 0x63, - 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x22, 0x9e, 0x01, - 0x0a, 0x14, 0x53, 0x65, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x64, 0x70, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x64, 0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x63, 0x65, 0x5f, 0x72, - 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x63, - 0x65, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x34, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x50, 0x65, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x70, 0x65, 0x65, 0x72, 0x54, 0x79, + 0x70, 0x65, 0x22, 0x4a, 0x0a, 0x12, 0x49, 0x43, 0x45, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, - 0x73, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x32, 0x9e, - 0x08, 0x0a, 0x0c, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, - 0x6b, 0x0a, 0x0c, 0x53, 0x65, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x12, - 0x2c, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, - 0x66, 0x75, 0x2e, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x50, 0x75, 0x62, - 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, - 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, - 0x2e, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, - 0x73, 0x68, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x65, 0x0a, 0x0a, - 0x53, 0x65, 0x6e, 0x64, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x12, 0x2a, 0x2e, 0x73, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x73, 0x69, - 0x67, 0x6e, 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, - 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, - 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x5e, 0x0a, 0x0a, 0x49, 0x63, 0x65, 0x54, 0x72, 0x69, 0x63, 0x6b, 0x6c, - 0x65, 0x12, 0x23, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, - 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x49, 0x43, 0x45, 0x54, - 0x72, 0x69, 0x63, 0x6b, 0x6c, 0x65, 0x1a, 0x2b, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, - 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, - 0x2e, 0x49, 0x43, 0x45, 0x54, 0x72, 0x69, 0x63, 0x6b, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x80, 0x01, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x75, - 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x33, 0x2e, 0x73, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x73, - 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x75, 0x62, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x34, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, - 0x73, 0x66, 0x75, 0x2e, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x77, 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x4d, 0x75, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x30, 0x2e, 0x73, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x73, 0x69, - 0x67, 0x6e, 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x75, 0x74, 0x65, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x73, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, - 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x75, 0x74, + 0x73, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x82, + 0x01, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x75, 0x74, 0x65, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x48, 0x0a, 0x0b, 0x6d, 0x75, 0x74, + 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, + 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, + 0x75, 0x2e, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x4d, 0x75, + 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x6d, 0x75, 0x74, 0x65, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x73, 0x22, 0x50, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x75, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x65, 0x0a, 0x0a, 0x49, 0x63, 0x65, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x2a, 0x2e, + 0x34, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, + 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, + 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x05, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x69, 0x0a, 0x0e, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x4d, 0x75, + 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x41, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x63, 0x6b, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x73, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, + 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x52, + 0x09, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x75, + 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x6d, 0x75, 0x74, 0x65, 0x64, + 0x22, 0x28, 0x0a, 0x10, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x4d, 0x75, 0x74, 0x65, 0x43, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x75, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x05, 0x6d, 0x75, 0x74, 0x65, 0x64, 0x22, 0x28, 0x0a, 0x10, 0x56, 0x69, + 0x64, 0x65, 0x6f, 0x4d, 0x75, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x12, 0x14, + 0x0a, 0x05, 0x6d, 0x75, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x6d, + 0x75, 0x74, 0x65, 0x64, 0x22, 0x86, 0x01, 0x0a, 0x1a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, + 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x49, 0x64, 0x12, 0x49, 0x0a, 0x06, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, + 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x2e, 0x54, 0x72, 0x61, + 0x63, 0x6b, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, + 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x06, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x22, 0x53, 0x0a, + 0x1b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x05, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, + 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x05, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x22, 0xdc, 0x01, 0x0a, 0x18, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x53, 0x75, 0x62, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, + 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x41, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x63, 0x6b, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x73, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, + 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x52, + 0x09, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x69, + 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, - 0x2e, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x2e, 0x49, 0x43, 0x45, 0x52, 0x65, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x73, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x73, 0x69, 0x67, - 0x6e, 0x61, 0x6c, 0x2e, 0x49, 0x43, 0x45, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, 0x09, 0x53, 0x65, 0x6e, 0x64, 0x53, 0x74, - 0x61, 0x74, 0x73, 0x12, 0x29, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, - 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x2e, 0x53, 0x65, - 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, + 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x44, 0x69, 0x6d, + 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, + 0x6e, 0x22, 0x84, 0x01, 0x0a, 0x11, 0x53, 0x65, 0x6e, 0x64, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x09, 0x70, 0x65, 0x65, 0x72, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x73, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, + 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x70, + 0x65, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x64, 0x70, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x64, 0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x4a, 0x0a, 0x12, 0x53, 0x65, 0x6e, 0x64, + 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, + 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, + 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, + 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x05, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x22, 0x4a, 0x0a, 0x12, 0x49, 0x43, 0x45, 0x54, 0x72, 0x69, 0x63, 0x6b, + 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x05, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, + 0x65, 0x6c, 0x73, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x22, 0x82, 0x01, 0x0a, 0x13, 0x53, 0x65, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, + 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x64, 0x70, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x64, 0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x3a, 0x0a, 0x06, 0x74, 0x72, 0x61, + 0x63, 0x6b, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, + 0x65, 0x6c, 0x73, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x74, + 0x72, 0x61, 0x63, 0x6b, 0x73, 0x22, 0x9e, 0x01, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x50, 0x75, 0x62, + 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, + 0x0a, 0x03, 0x73, 0x64, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x64, 0x70, + 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, + 0x1f, 0x0a, 0x0b, 0x69, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x12, 0x34, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1e, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, + 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, + 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x32, 0x9e, 0x08, 0x0a, 0x0c, 0x53, 0x69, 0x67, 0x6e, 0x61, + 0x6c, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x6b, 0x0a, 0x0c, 0x53, 0x65, 0x74, 0x50, 0x75, + 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x12, 0x2c, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x73, 0x69, 0x67, 0x6e, 0x61, + 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, + 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x2e, + 0x53, 0x65, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x65, 0x0a, 0x0a, 0x53, 0x65, 0x6e, 0x64, 0x41, 0x6e, 0x73, 0x77, + 0x65, 0x72, 0x12, 0x2a, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, + 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x6e, + 0x64, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, - 0x75, 0x2e, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x53, 0x74, 0x61, - 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x89, 0x01, 0x0a, 0x16, 0x53, - 0x74, 0x61, 0x72, 0x74, 0x4e, 0x6f, 0x69, 0x73, 0x65, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x36, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, + 0x75, 0x2e, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x41, 0x6e, 0x73, + 0x77, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5e, 0x0a, 0x0a, 0x49, + 0x63, 0x65, 0x54, 0x72, 0x69, 0x63, 0x6b, 0x6c, 0x65, 0x12, 0x23, 0x2e, 0x73, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, + 0x65, 0x6c, 0x73, 0x2e, 0x49, 0x43, 0x45, 0x54, 0x72, 0x69, 0x63, 0x6b, 0x6c, 0x65, 0x1a, 0x2b, + 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, + 0x75, 0x2e, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x2e, 0x49, 0x43, 0x45, 0x54, 0x72, 0x69, 0x63, + 0x6b, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x80, 0x01, 0x0a, 0x13, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x12, 0x33, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, + 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x2e, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x73, 0x69, 0x67, 0x6e, + 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x77, + 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x75, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x73, 0x12, 0x30, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, + 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x4d, 0x75, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, + 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x2e, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x75, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x65, 0x0a, 0x0a, 0x49, 0x63, 0x65, 0x52, 0x65, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x2a, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x2e, - 0x53, 0x74, 0x61, 0x72, 0x74, 0x4e, 0x6f, 0x69, 0x73, 0x65, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, - 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, + 0x49, 0x43, 0x45, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x2b, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, + 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x2e, 0x49, 0x43, 0x45, 0x52, + 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, + 0x0a, 0x09, 0x53, 0x65, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x29, 0x2e, 0x73, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x73, + 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, + 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, + 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x89, 0x01, 0x0a, 0x16, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4e, 0x6f, 0x69, 0x73, + 0x65, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x36, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4e, 0x6f, 0x69, 0x73, 0x65, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x86, 0x01, 0x0a, 0x15, 0x53, 0x74, 0x6f, 0x70, 0x4e, - 0x6f, 0x69, 0x73, 0x65, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x35, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, - 0x73, 0x66, 0x75, 0x2e, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x4e, - 0x6f, 0x69, 0x73, 0x65, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x73, 0x69, 0x67, 0x6e, 0x61, - 0x6c, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x4e, 0x6f, 0x69, 0x73, 0x65, 0x43, 0x61, 0x6e, 0x63, 0x65, - 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, - 0x69, 0x42, 0x0b, 0x53, 0x66, 0x75, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x56, 0x31, 0x50, 0x01, - 0x5a, 0x3b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x47, 0x65, 0x74, - 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x73, - 0x66, 0x75, 0x2f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x5f, 0x72, 0x70, 0x63, 0xaa, 0x02, 0x1a, - 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x76, 0x31, 0x2e, - 0x53, 0x66, 0x75, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, + 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x2e, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x4e, 0x6f, 0x69, 0x73, 0x65, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, + 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x86, + 0x01, 0x0a, 0x15, 0x53, 0x74, 0x6f, 0x70, 0x4e, 0x6f, 0x69, 0x73, 0x65, 0x43, 0x61, 0x6e, 0x63, + 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x35, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x73, 0x69, 0x67, 0x6e, + 0x61, 0x6c, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x4e, 0x6f, 0x69, 0x73, 0x65, 0x43, 0x61, 0x6e, 0x63, + 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x36, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, + 0x66, 0x75, 0x2e, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x4e, 0x6f, + 0x69, 0x73, 0x65, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x69, 0x42, 0x0b, 0x53, 0x66, 0x75, 0x53, 0x69, + 0x67, 0x6e, 0x61, 0x6c, 0x56, 0x31, 0x50, 0x01, 0x5a, 0x3b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x47, 0x65, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2f, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x73, 0x66, 0x75, 0x2f, 0x73, 0x69, 0x67, 0x6e, 0x61, + 0x6c, 0x5f, 0x72, 0x70, 0x63, 0xaa, 0x02, 0x1a, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x56, + 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x66, 0x75, 0x2e, 0x53, 0x69, 0x67, 0x6e, + 0x61, 0x6c, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1422,53 +1498,60 @@ var file_video_sfu_signal_rpc_signal_proto_goTypes = []interface{}{ (*SetPublisherRequest)(nil), // 19: stream.video.sfu.signal.SetPublisherRequest (*SetPublisherResponse)(nil), // 20: stream.video.sfu.signal.SetPublisherResponse (*models.Error)(nil), // 21: stream.video.sfu.models.Error - (models.PeerType)(0), // 22: stream.video.sfu.models.PeerType - (models.TrackType)(0), // 23: stream.video.sfu.models.TrackType - (*models.VideoDimension)(nil), // 24: stream.video.sfu.models.VideoDimension - (*models.TrackInfo)(nil), // 25: stream.video.sfu.models.TrackInfo - (*models.ICETrickle)(nil), // 26: stream.video.sfu.models.ICETrickle + (*models.InputDevices)(nil), // 22: stream.video.sfu.models.InputDevices + (*models.AndroidState)(nil), // 23: stream.video.sfu.models.AndroidState + (*models.AppleState)(nil), // 24: stream.video.sfu.models.AppleState + (models.PeerType)(0), // 25: stream.video.sfu.models.PeerType + (models.TrackType)(0), // 26: stream.video.sfu.models.TrackType + (*models.VideoDimension)(nil), // 27: stream.video.sfu.models.VideoDimension + (*models.TrackInfo)(nil), // 28: stream.video.sfu.models.TrackInfo + (*models.ICETrickle)(nil), // 29: stream.video.sfu.models.ICETrickle } var file_video_sfu_signal_rpc_signal_proto_depIdxs = []int32{ 21, // 0: stream.video.sfu.signal.StartNoiseCancellationResponse.error:type_name -> stream.video.sfu.models.Error 21, // 1: stream.video.sfu.signal.StopNoiseCancellationResponse.error:type_name -> stream.video.sfu.models.Error - 21, // 2: stream.video.sfu.signal.SendStatsResponse.error:type_name -> stream.video.sfu.models.Error - 22, // 3: stream.video.sfu.signal.ICERestartRequest.peer_type:type_name -> stream.video.sfu.models.PeerType - 21, // 4: stream.video.sfu.signal.ICERestartResponse.error:type_name -> stream.video.sfu.models.Error - 10, // 5: stream.video.sfu.signal.UpdateMuteStatesRequest.mute_states:type_name -> stream.video.sfu.signal.TrackMuteState - 21, // 6: stream.video.sfu.signal.UpdateMuteStatesResponse.error:type_name -> stream.video.sfu.models.Error - 23, // 7: stream.video.sfu.signal.TrackMuteState.track_type:type_name -> stream.video.sfu.models.TrackType - 15, // 8: stream.video.sfu.signal.UpdateSubscriptionsRequest.tracks:type_name -> stream.video.sfu.signal.TrackSubscriptionDetails - 21, // 9: stream.video.sfu.signal.UpdateSubscriptionsResponse.error:type_name -> stream.video.sfu.models.Error - 23, // 10: stream.video.sfu.signal.TrackSubscriptionDetails.track_type:type_name -> stream.video.sfu.models.TrackType - 24, // 11: stream.video.sfu.signal.TrackSubscriptionDetails.dimension:type_name -> stream.video.sfu.models.VideoDimension - 22, // 12: stream.video.sfu.signal.SendAnswerRequest.peer_type:type_name -> stream.video.sfu.models.PeerType - 21, // 13: stream.video.sfu.signal.SendAnswerResponse.error:type_name -> stream.video.sfu.models.Error - 21, // 14: stream.video.sfu.signal.ICETrickleResponse.error:type_name -> stream.video.sfu.models.Error - 25, // 15: stream.video.sfu.signal.SetPublisherRequest.tracks:type_name -> stream.video.sfu.models.TrackInfo - 21, // 16: stream.video.sfu.signal.SetPublisherResponse.error:type_name -> stream.video.sfu.models.Error - 19, // 17: stream.video.sfu.signal.SignalServer.SetPublisher:input_type -> stream.video.sfu.signal.SetPublisherRequest - 16, // 18: stream.video.sfu.signal.SignalServer.SendAnswer:input_type -> stream.video.sfu.signal.SendAnswerRequest - 26, // 19: stream.video.sfu.signal.SignalServer.IceTrickle:input_type -> stream.video.sfu.models.ICETrickle - 13, // 20: stream.video.sfu.signal.SignalServer.UpdateSubscriptions:input_type -> stream.video.sfu.signal.UpdateSubscriptionsRequest - 8, // 21: stream.video.sfu.signal.SignalServer.UpdateMuteStates:input_type -> stream.video.sfu.signal.UpdateMuteStatesRequest - 6, // 22: stream.video.sfu.signal.SignalServer.IceRestart:input_type -> stream.video.sfu.signal.ICERestartRequest - 4, // 23: stream.video.sfu.signal.SignalServer.SendStats:input_type -> stream.video.sfu.signal.SendStatsRequest - 0, // 24: stream.video.sfu.signal.SignalServer.StartNoiseCancellation:input_type -> stream.video.sfu.signal.StartNoiseCancellationRequest - 2, // 25: stream.video.sfu.signal.SignalServer.StopNoiseCancellation:input_type -> stream.video.sfu.signal.StopNoiseCancellationRequest - 20, // 26: stream.video.sfu.signal.SignalServer.SetPublisher:output_type -> stream.video.sfu.signal.SetPublisherResponse - 17, // 27: stream.video.sfu.signal.SignalServer.SendAnswer:output_type -> stream.video.sfu.signal.SendAnswerResponse - 18, // 28: stream.video.sfu.signal.SignalServer.IceTrickle:output_type -> stream.video.sfu.signal.ICETrickleResponse - 14, // 29: stream.video.sfu.signal.SignalServer.UpdateSubscriptions:output_type -> stream.video.sfu.signal.UpdateSubscriptionsResponse - 9, // 30: stream.video.sfu.signal.SignalServer.UpdateMuteStates:output_type -> stream.video.sfu.signal.UpdateMuteStatesResponse - 7, // 31: stream.video.sfu.signal.SignalServer.IceRestart:output_type -> stream.video.sfu.signal.ICERestartResponse - 5, // 32: stream.video.sfu.signal.SignalServer.SendStats:output_type -> stream.video.sfu.signal.SendStatsResponse - 1, // 33: stream.video.sfu.signal.SignalServer.StartNoiseCancellation:output_type -> stream.video.sfu.signal.StartNoiseCancellationResponse - 3, // 34: stream.video.sfu.signal.SignalServer.StopNoiseCancellation:output_type -> stream.video.sfu.signal.StopNoiseCancellationResponse - 26, // [26:35] is the sub-list for method output_type - 17, // [17:26] is the sub-list for method input_type - 17, // [17:17] is the sub-list for extension type_name - 17, // [17:17] is the sub-list for extension extendee - 0, // [0:17] is the sub-list for field type_name + 22, // 2: stream.video.sfu.signal.SendStatsRequest.audio_devices:type_name -> stream.video.sfu.models.InputDevices + 22, // 3: stream.video.sfu.signal.SendStatsRequest.video_devices:type_name -> stream.video.sfu.models.InputDevices + 23, // 4: stream.video.sfu.signal.SendStatsRequest.android:type_name -> stream.video.sfu.models.AndroidState + 24, // 5: stream.video.sfu.signal.SendStatsRequest.apple:type_name -> stream.video.sfu.models.AppleState + 21, // 6: stream.video.sfu.signal.SendStatsResponse.error:type_name -> stream.video.sfu.models.Error + 25, // 7: stream.video.sfu.signal.ICERestartRequest.peer_type:type_name -> stream.video.sfu.models.PeerType + 21, // 8: stream.video.sfu.signal.ICERestartResponse.error:type_name -> stream.video.sfu.models.Error + 10, // 9: stream.video.sfu.signal.UpdateMuteStatesRequest.mute_states:type_name -> stream.video.sfu.signal.TrackMuteState + 21, // 10: stream.video.sfu.signal.UpdateMuteStatesResponse.error:type_name -> stream.video.sfu.models.Error + 26, // 11: stream.video.sfu.signal.TrackMuteState.track_type:type_name -> stream.video.sfu.models.TrackType + 15, // 12: stream.video.sfu.signal.UpdateSubscriptionsRequest.tracks:type_name -> stream.video.sfu.signal.TrackSubscriptionDetails + 21, // 13: stream.video.sfu.signal.UpdateSubscriptionsResponse.error:type_name -> stream.video.sfu.models.Error + 26, // 14: stream.video.sfu.signal.TrackSubscriptionDetails.track_type:type_name -> stream.video.sfu.models.TrackType + 27, // 15: stream.video.sfu.signal.TrackSubscriptionDetails.dimension:type_name -> stream.video.sfu.models.VideoDimension + 25, // 16: stream.video.sfu.signal.SendAnswerRequest.peer_type:type_name -> stream.video.sfu.models.PeerType + 21, // 17: stream.video.sfu.signal.SendAnswerResponse.error:type_name -> stream.video.sfu.models.Error + 21, // 18: stream.video.sfu.signal.ICETrickleResponse.error:type_name -> stream.video.sfu.models.Error + 28, // 19: stream.video.sfu.signal.SetPublisherRequest.tracks:type_name -> stream.video.sfu.models.TrackInfo + 21, // 20: stream.video.sfu.signal.SetPublisherResponse.error:type_name -> stream.video.sfu.models.Error + 19, // 21: stream.video.sfu.signal.SignalServer.SetPublisher:input_type -> stream.video.sfu.signal.SetPublisherRequest + 16, // 22: stream.video.sfu.signal.SignalServer.SendAnswer:input_type -> stream.video.sfu.signal.SendAnswerRequest + 29, // 23: stream.video.sfu.signal.SignalServer.IceTrickle:input_type -> stream.video.sfu.models.ICETrickle + 13, // 24: stream.video.sfu.signal.SignalServer.UpdateSubscriptions:input_type -> stream.video.sfu.signal.UpdateSubscriptionsRequest + 8, // 25: stream.video.sfu.signal.SignalServer.UpdateMuteStates:input_type -> stream.video.sfu.signal.UpdateMuteStatesRequest + 6, // 26: stream.video.sfu.signal.SignalServer.IceRestart:input_type -> stream.video.sfu.signal.ICERestartRequest + 4, // 27: stream.video.sfu.signal.SignalServer.SendStats:input_type -> stream.video.sfu.signal.SendStatsRequest + 0, // 28: stream.video.sfu.signal.SignalServer.StartNoiseCancellation:input_type -> stream.video.sfu.signal.StartNoiseCancellationRequest + 2, // 29: stream.video.sfu.signal.SignalServer.StopNoiseCancellation:input_type -> stream.video.sfu.signal.StopNoiseCancellationRequest + 20, // 30: stream.video.sfu.signal.SignalServer.SetPublisher:output_type -> stream.video.sfu.signal.SetPublisherResponse + 17, // 31: stream.video.sfu.signal.SignalServer.SendAnswer:output_type -> stream.video.sfu.signal.SendAnswerResponse + 18, // 32: stream.video.sfu.signal.SignalServer.IceTrickle:output_type -> stream.video.sfu.signal.ICETrickleResponse + 14, // 33: stream.video.sfu.signal.SignalServer.UpdateSubscriptions:output_type -> stream.video.sfu.signal.UpdateSubscriptionsResponse + 9, // 34: stream.video.sfu.signal.SignalServer.UpdateMuteStates:output_type -> stream.video.sfu.signal.UpdateMuteStatesResponse + 7, // 35: stream.video.sfu.signal.SignalServer.IceRestart:output_type -> stream.video.sfu.signal.ICERestartResponse + 5, // 36: stream.video.sfu.signal.SignalServer.SendStats:output_type -> stream.video.sfu.signal.SendStatsResponse + 1, // 37: stream.video.sfu.signal.SignalServer.StartNoiseCancellation:output_type -> stream.video.sfu.signal.StartNoiseCancellationResponse + 3, // 38: stream.video.sfu.signal.SignalServer.StopNoiseCancellation:output_type -> stream.video.sfu.signal.StopNoiseCancellationResponse + 30, // [30:39] is the sub-list for method output_type + 21, // [21:30] is the sub-list for method input_type + 21, // [21:21] is the sub-list for extension type_name + 21, // [21:21] is the sub-list for extension extendee + 0, // [0:21] is the sub-list for field type_name } func init() { file_video_sfu_signal_rpc_signal_proto_init() } @@ -1730,6 +1813,10 @@ func file_video_sfu_signal_rpc_signal_proto_init() { } } } + file_video_sfu_signal_rpc_signal_proto_msgTypes[4].OneofWrappers = []interface{}{ + (*SendStatsRequest_Android)(nil), + (*SendStatsRequest_Apple)(nil), + } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/protobuf/video/sfu/signal_rpc/signal.proto b/protobuf/video/sfu/signal_rpc/signal.proto index 1a769aa7..2ba7bd9c 100644 --- a/protobuf/video/sfu/signal_rpc/signal.proto +++ b/protobuf/video/sfu/signal_rpc/signal.proto @@ -58,6 +58,13 @@ message SendStatsRequest { string webrtc_version = 4; string sdk = 5; string sdk_version = 6; + + models.InputDevices audio_devices = 7; + models.InputDevices video_devices = 8; + oneof device_state { + models.AndroidState android = 9; + models.AppleState apple = 10; + } } message SendStatsResponse { diff --git a/protobuf/video/sfu/signal_rpc/signal.twirp.go b/protobuf/video/sfu/signal_rpc/signal.twirp.go index 279b032b..b9fe88ce 100644 --- a/protobuf/video/sfu/signal_rpc/signal.twirp.go +++ b/protobuf/video/sfu/signal_rpc/signal.twirp.go @@ -3327,64 +3327,70 @@ func callClientError(ctx context.Context, h *twirp.ClientHooks, err twirp.Error) } var twirpFileDescriptor0 = []byte{ - // 941 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x57, 0x6f, 0x6f, 0xdb, 0x44, - 0x18, 0xd7, 0x35, 0x6b, 0x69, 0x9e, 0x8c, 0x2e, 0xbb, 0x0d, 0x1a, 0x19, 0xba, 0x31, 0x23, 0xb4, - 0xae, 0x80, 0x43, 0xbb, 0x31, 0x24, 0x10, 0x93, 0xba, 0xae, 0x82, 0x4c, 0x02, 0x55, 0x76, 0xd7, - 0x17, 0xbc, 0x20, 0x72, 0xec, 0x27, 0xed, 0x29, 0x89, 0x6d, 0xee, 0xce, 0xad, 0xf6, 0x0e, 0x4d, - 0x68, 0x12, 0x5f, 0xa2, 0x1f, 0x80, 0xcf, 0x84, 0xc4, 0x57, 0x41, 0xbe, 0xbb, 0xfc, 0x73, 0xed, - 0x34, 0x69, 0x5e, 0xe5, 0x72, 0x7e, 0xfe, 0xfc, 0x9e, 0xdf, 0xef, 0xb9, 0xc7, 0x67, 0x78, 0x74, - 0xce, 0x42, 0x8c, 0x9b, 0xa2, 0x9b, 0x36, 0x05, 0x3b, 0x8d, 0xfc, 0x7e, 0x9b, 0x27, 0x81, 0x59, - 0x3a, 0x09, 0x8f, 0x65, 0x4c, 0x37, 0x85, 0xe4, 0xe8, 0x0f, 0x1c, 0x65, 0xe9, 0x88, 0x6e, 0xea, - 0xe8, 0xc7, 0xd6, 0xd6, 0xd8, 0x77, 0x10, 0x87, 0xd8, 0x17, 0xe6, 0x47, 0xfb, 0xd9, 0x2f, 0x60, - 0xcb, 0x93, 0x3e, 0x97, 0xbf, 0xc6, 0x4c, 0xe0, 0x81, 0x1f, 0x05, 0xd8, 0xef, 0xfb, 0x92, 0xc5, - 0x91, 0x8b, 0x7f, 0xa4, 0x28, 0x24, 0xdd, 0x02, 0x10, 0x28, 0x04, 0x8b, 0xa3, 0x36, 0x0b, 0x1b, - 0xe4, 0x33, 0xb2, 0x5d, 0x75, 0xab, 0x66, 0xa7, 0x15, 0xda, 0x27, 0xf0, 0xa0, 0xcc, 0x5f, 0x24, - 0x71, 0x24, 0x90, 0x3e, 0x83, 0x55, 0xe4, 0x3c, 0xe6, 0xca, 0xb7, 0xb6, 0xf7, 0xc0, 0xb9, 0x82, - 0xd4, 0x00, 0x3a, 0xcc, 0xac, 0x5c, 0x6d, 0x6c, 0xff, 0x08, 0x9f, 0x7a, 0x32, 0x4e, 0x6e, 0x0a, - 0xeb, 0x4d, 0x56, 0x56, 0xa1, 0xfb, 0x52, 0xa8, 0xfe, 0x23, 0x50, 0xf7, 0x30, 0x0a, 0x3d, 0xe9, - 0x4b, 0x31, 0x1f, 0x14, 0xfa, 0x04, 0xea, 0x22, 0xed, 0x88, 0x80, 0xb3, 0x0e, 0xf2, 0xb6, 0xc8, - 0x3c, 0x1b, 0x2b, 0xca, 0xe8, 0xce, 0x78, 0x5f, 0x05, 0xa4, 0x8f, 0xe1, 0x4e, 0x92, 0x76, 0xfa, - 0x4c, 0x9c, 0x8d, 0x2c, 0x2b, 0xca, 0x72, 0x63, 0xb4, 0xad, 0x0d, 0xbf, 0x80, 0x8d, 0x0b, 0xec, - 0x70, 0x19, 0xb4, 0xcf, 0x91, 0x67, 0x79, 0x1a, 0xb7, 0x94, 0xdd, 0x87, 0x7a, 0xf7, 0x44, 0x6f, - 0xd2, 0x3a, 0x54, 0x44, 0xd8, 0x6b, 0xac, 0xaa, 0x67, 0xd9, 0x92, 0x3e, 0x84, 0x9a, 0x08, 0x7b, - 0x23, 0xaf, 0x35, 0xf5, 0x04, 0x44, 0xd8, 0x33, 0x2e, 0x76, 0x0b, 0xee, 0x4e, 0x14, 0xb8, 0x14, - 0x59, 0x1c, 0xee, 0xb6, 0x0e, 0x0e, 0x5d, 0x14, 0x59, 0x7f, 0xcc, 0x49, 0xd6, 0x0b, 0xa8, 0x26, - 0x88, 0xbc, 0x2d, 0xdf, 0x26, 0xa8, 0x58, 0xda, 0xd8, 0x7b, 0x54, 0x9a, 0xed, 0x08, 0x91, 0x1f, - 0xbf, 0x4d, 0xd0, 0x5d, 0x4f, 0xcc, 0xca, 0x7e, 0x0d, 0x74, 0x32, 0xe7, 0x52, 0xf8, 0xdf, 0x11, - 0xd8, 0x7c, 0x93, 0x84, 0xbe, 0xc4, 0x5f, 0x52, 0x89, 0x19, 0x23, 0x38, 0xaf, 0xe6, 0x3f, 0x43, - 0x6d, 0x90, 0x4a, 0x54, 0x1a, 0x62, 0x26, 0x62, 0x65, 0xbb, 0xb6, 0xf7, 0xd8, 0x29, 0x39, 0xa3, - 0xce, 0x31, 0xf7, 0x83, 0xde, 0x28, 0x89, 0x0b, 0x83, 0x51, 0x3e, 0xfb, 0x08, 0x1a, 0x57, 0x31, - 0xe4, 0xcb, 0xba, 0xb5, 0x48, 0x59, 0x0c, 0x36, 0xa6, 0xf3, 0xd1, 0x7d, 0x00, 0x99, 0xed, 0x68, - 0xd6, 0x89, 0x62, 0xdd, 0x2e, 0x0d, 0xa6, 0x9c, 0x15, 0xed, 0x55, 0x39, 0x5c, 0xd2, 0xfb, 0xb0, - 0x9a, 0x81, 0x0e, 0x95, 0x66, 0xeb, 0xae, 0xfe, 0x63, 0x6f, 0x43, 0x7d, 0x3f, 0x0d, 0x59, 0x9c, - 0xa5, 0x3a, 0x38, 0xf3, 0xa3, 0x53, 0x0c, 0xc7, 0x96, 0x24, 0x67, 0x79, 0x92, 0x25, 0x2a, 0xb4, - 0x9c, 0x8a, 0xf9, 0x9e, 0x80, 0xa5, 0x19, 0xf1, 0xf4, 0xe9, 0x49, 0xb2, 0x73, 0x5d, 0x22, 0xcc, - 0x4a, 0x5e, 0x98, 0x16, 0xac, 0x29, 0xd0, 0x43, 0x4d, 0x76, 0x67, 0x6b, 0x32, 0x99, 0xe2, 0x15, - 0x4a, 0x9f, 0xf5, 0x85, 0x6b, 0x02, 0xd8, 0x1e, 0x7c, 0x52, 0x88, 0x63, 0x29, 0x71, 0xfe, 0x25, - 0xd0, 0x28, 0xcb, 0x4c, 0x37, 0xe1, 0x83, 0x54, 0x20, 0x1f, 0x77, 0xdc, 0x5a, 0xf6, 0xb7, 0x15, - 0x5e, 0x57, 0xf4, 0xb4, 0xbe, 0x95, 0x9b, 0xe8, 0x7b, 0x08, 0xd5, 0x90, 0x0d, 0x30, 0x1a, 0xcd, - 0x9a, 0xc2, 0x76, 0x36, 0x11, 0x94, 0x92, 0xaf, 0x86, 0xe6, 0xee, 0xd8, 0xd3, 0xfe, 0x8b, 0xe8, - 0xf1, 0xb2, 0x1f, 0x89, 0x0b, 0xe4, 0x43, 0xcd, 0xa6, 0x0e, 0x3d, 0x59, 0xf8, 0xd0, 0xeb, 0x31, - 0x97, 0x98, 0xba, 0xb3, 0x65, 0x8e, 0x90, 0x4a, 0xfe, 0xed, 0xf0, 0x1a, 0xe8, 0x24, 0x8a, 0xa5, - 0x14, 0xd3, 0x13, 0xe7, 0x98, 0xb3, 0xa0, 0xd7, 0xc7, 0x25, 0x63, 0xbd, 0x23, 0x70, 0xcf, 0x43, - 0x79, 0x34, 0x1c, 0xf6, 0x43, 0x82, 0x4c, 0x81, 0xa4, 0xac, 0xc0, 0x2b, 0x8a, 0x7f, 0x9f, 0x6b, - 0xf3, 0x6b, 0xd4, 0x6e, 0x45, 0xdd, 0x78, 0xd4, 0xd7, 0x97, 0x04, 0xee, 0x4f, 0x83, 0x30, 0x35, - 0x2d, 0x8c, 0xe2, 0x21, 0xd4, 0x58, 0x80, 0x6d, 0xae, 0xa7, 0xb1, 0x92, 0x61, 0xdd, 0x05, 0x16, - 0xa0, 0x99, 0xcf, 0x37, 0x63, 0x69, 0xef, 0x72, 0x1d, 0x6e, 0x7b, 0xea, 0x90, 0x7a, 0xc8, 0xcf, - 0x91, 0xd3, 0x1e, 0xdc, 0x9e, 0x04, 0x4c, 0xbf, 0x2a, 0x3d, 0xd4, 0x05, 0xe4, 0x5a, 0x5f, 0xcf, - 0x69, 0x6d, 0x58, 0x40, 0x80, 0x71, 0xef, 0xd0, 0x9d, 0x19, 0xce, 0xb9, 0x36, 0xb7, 0xbe, 0x9c, - 0xcb, 0xd6, 0xa4, 0xf9, 0x1d, 0xa0, 0x15, 0xa0, 0x69, 0x2b, 0xfa, 0x79, 0x29, 0x33, 0xe3, 0xde, - 0x9b, 0x11, 0xbf, 0xa0, 0x41, 0xff, 0x24, 0x70, 0xaf, 0x60, 0x7c, 0xd1, 0xa7, 0xa5, 0x41, 0xca, - 0x87, 0xae, 0xf5, 0x6c, 0x31, 0x27, 0x03, 0xe1, 0x02, 0xea, 0xf9, 0x57, 0x1b, 0xfd, 0xe6, 0x9a, - 0x48, 0x57, 0xde, 0xc4, 0xd6, 0xee, 0x02, 0x1e, 0x63, 0x09, 0x5b, 0xe3, 0x26, 0xdc, 0x99, 0x45, - 0xdb, 0xf4, 0xed, 0x65, 0x36, 0xc5, 0xf9, 0x5b, 0x47, 0x07, 0xaa, 0xa3, 0xab, 0x14, 0x7d, 0x32, - 0x53, 0xfc, 0xc9, 0xfb, 0xa4, 0xb5, 0x33, 0x8f, 0xa9, 0xc9, 0xf1, 0x37, 0x81, 0x8f, 0x8b, 0xef, - 0xdf, 0xf4, 0x79, 0x79, 0x98, 0x59, 0x17, 0x7e, 0xeb, 0xbb, 0x85, 0xfd, 0x0c, 0x96, 0xf7, 0x04, - 0x3e, 0x2a, 0xbc, 0x74, 0xd3, 0x6f, 0x67, 0x84, 0x2c, 0xbf, 0xe3, 0x5b, 0xcf, 0x17, 0x75, 0xd3, - 0x40, 0x5e, 0xb2, 0x97, 0x35, 0xaf, 0x9b, 0xea, 0x11, 0x71, 0xb2, 0x7b, 0x44, 0x7e, 0xfb, 0xe1, - 0x94, 0xc9, 0xb3, 0xb4, 0xe3, 0x04, 0xf1, 0xa0, 0xf9, 0x13, 0x4a, 0x4f, 0x45, 0x6d, 0xaa, 0x0f, - 0xa0, 0x20, 0xee, 0xeb, 0x45, 0x27, 0xed, 0x36, 0x8b, 0x3e, 0xb3, 0xfe, 0x59, 0xb1, 0xb4, 0xbd, - 0x7e, 0xad, 0x39, 0xe7, 0xbb, 0x8e, 0xd7, 0x4d, 0x1d, 0x1d, 0xbd, 0xb3, 0xa6, 0x7c, 0x9f, 0xfe, - 0x1f, 0x00, 0x00, 0xff, 0xff, 0x9b, 0x77, 0xa7, 0x3b, 0xa2, 0x0d, 0x00, 0x00, + // 1030 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x57, 0x6d, 0x6f, 0xdb, 0x36, + 0x10, 0x9e, 0xe2, 0xbc, 0xd8, 0xe7, 0xd4, 0x75, 0xd9, 0x6e, 0x31, 0xb4, 0xa5, 0x5d, 0x35, 0x14, + 0x4d, 0xb3, 0x4d, 0x5e, 0xd2, 0xae, 0x03, 0x56, 0xac, 0x80, 0xf3, 0x82, 0xd5, 0x01, 0x36, 0x04, + 0x52, 0x9a, 0x0f, 0xfb, 0x30, 0x43, 0x96, 0xce, 0x89, 0x60, 0x5b, 0xd2, 0x48, 0xca, 0x41, 0xbf, + 0x0d, 0xc5, 0xd0, 0x61, 0x7f, 0xa2, 0x3f, 0x60, 0xbf, 0x69, 0x3f, 0x66, 0x10, 0x49, 0xf9, 0x2d, + 0x92, 0x63, 0xc7, 0x9f, 0x4c, 0x53, 0xcf, 0xf3, 0xdc, 0xf1, 0xee, 0x78, 0x24, 0xe1, 0xf1, 0xc0, + 0xf7, 0x30, 0xac, 0xb3, 0x4e, 0x5c, 0x67, 0xfe, 0x45, 0xe0, 0xf4, 0x5a, 0x34, 0x72, 0xd5, 0xd0, + 0x8c, 0x68, 0xc8, 0x43, 0xb2, 0xc5, 0x38, 0x45, 0xa7, 0x6f, 0x0a, 0xa4, 0xc9, 0x3a, 0xb1, 0x29, + 0x3f, 0xeb, 0xdb, 0x23, 0x6e, 0x3f, 0xf4, 0xb0, 0xc7, 0xd4, 0x8f, 0xe4, 0x19, 0xaf, 0x61, 0xdb, + 0xe6, 0x0e, 0xe5, 0xbf, 0x86, 0x3e, 0xc3, 0x43, 0x27, 0x70, 0xb1, 0xd7, 0x73, 0xb8, 0x1f, 0x06, + 0x16, 0xfe, 0x11, 0x23, 0xe3, 0x64, 0x1b, 0x80, 0x21, 0x63, 0x7e, 0x18, 0xb4, 0x7c, 0xaf, 0xa6, + 0x7d, 0xa9, 0xed, 0x94, 0xac, 0x92, 0x9a, 0x69, 0x7a, 0xc6, 0x39, 0x3c, 0xcc, 0xe3, 0xb3, 0x28, + 0x0c, 0x18, 0x92, 0x17, 0xb0, 0x86, 0x94, 0x86, 0x54, 0x70, 0xcb, 0xfb, 0x0f, 0xcd, 0x6b, 0x9e, + 0x2a, 0x87, 0x8e, 0x13, 0x94, 0x25, 0xc1, 0xc6, 0x4f, 0xf0, 0x85, 0xcd, 0xc3, 0xe8, 0xb6, 0x6e, + 0xbd, 0x4d, 0x96, 0x95, 0x49, 0x5f, 0xca, 0xab, 0xbf, 0x57, 0xa1, 0x6a, 0x63, 0xe0, 0xd9, 0xdc, + 0xe1, 0x6c, 0x3e, 0x57, 0xc8, 0x33, 0xa8, 0xb2, 0xb8, 0xcd, 0x5c, 0xea, 0xb7, 0x91, 0xb6, 0x58, + 0xc2, 0xac, 0xad, 0x08, 0xd0, 0xdd, 0xd1, 0xbc, 0x10, 0x24, 0x4f, 0xe1, 0x6e, 0x14, 0xb7, 0x7b, + 0x3e, 0xbb, 0x1c, 0x22, 0x0b, 0x02, 0x59, 0x19, 0x4e, 0x4b, 0xe0, 0x13, 0xa8, 0x5c, 0x61, 0x9b, + 0x72, 0xb7, 0x35, 0x40, 0x9a, 0xd8, 0xa9, 0xad, 0x0a, 0xdc, 0x1d, 0x39, 0x7b, 0x2e, 0x27, 0x49, + 0x15, 0x0a, 0xcc, 0xeb, 0xd6, 0xd6, 0xc4, 0xb7, 0x64, 0x48, 0x1e, 0x41, 0x99, 0x79, 0xdd, 0x21, + 0x6b, 0x5d, 0x7c, 0x01, 0xe6, 0x75, 0x53, 0xca, 0x09, 0xdc, 0x71, 0x62, 0xcf, 0x0f, 0x5b, 0x1e, + 0x0e, 0x7c, 0x17, 0x59, 0x6d, 0x43, 0xc4, 0xe7, 0x49, 0x6e, 0x7c, 0x9a, 0x41, 0x14, 0xf3, 0x23, + 0x09, 0xb6, 0x36, 0x05, 0x57, 0xfd, 0x4b, 0xb4, 0x04, 0x7c, 0xa8, 0x55, 0x5c, 0x48, 0x4b, 0x7c, + 0x4e, 0xb5, 0x1a, 0xb0, 0xe1, 0x04, 0x1e, 0x0d, 0x7d, 0xaf, 0x56, 0xba, 0x41, 0xa5, 0x21, 0x71, + 0x49, 0xa4, 0xf0, 0xcd, 0x27, 0x56, 0xca, 0x23, 0xaf, 0x60, 0xcd, 0x89, 0xa2, 0x1e, 0xd6, 0x40, + 0x08, 0x7c, 0x95, 0x2f, 0x90, 0xa0, 0x52, 0xba, 0xe4, 0x1c, 0x54, 0x60, 0x53, 0xae, 0x42, 0xe4, + 0x05, 0x8d, 0x26, 0xdc, 0x1b, 0x2b, 0x84, 0xa5, 0x8a, 0x8a, 0xc2, 0xbd, 0xe6, 0xe1, 0xb1, 0x85, + 0x2c, 0xd9, 0x47, 0x73, 0x16, 0xd5, 0x6b, 0x28, 0x45, 0x88, 0xb4, 0xc5, 0xdf, 0x45, 0x28, 0xaa, + 0xa9, 0xb2, 0xff, 0x38, 0xd7, 0xda, 0x29, 0x22, 0x3d, 0x7b, 0x17, 0xa1, 0x55, 0x8c, 0xd4, 0xc8, + 0x38, 0x01, 0x32, 0x6e, 0x73, 0x29, 0xff, 0xdf, 0x6b, 0xb0, 0xf5, 0x36, 0xf2, 0x1c, 0x8e, 0xbf, + 0xc4, 0x5c, 0xc6, 0x6d, 0xde, 0xbd, 0xf1, 0x06, 0xca, 0xfd, 0x98, 0xab, 0x98, 0x26, 0xc5, 0x5e, + 0xd8, 0x29, 0xef, 0x3f, 0x35, 0x73, 0x7a, 0x99, 0x79, 0x46, 0x1d, 0xb7, 0x3b, 0x34, 0x62, 0x41, + 0x7f, 0x68, 0xcf, 0x38, 0x85, 0xda, 0x75, 0x1f, 0xa6, 0x97, 0xb5, 0xba, 0xc8, 0xb2, 0x7c, 0xa8, + 0x4c, 0xda, 0x23, 0x0d, 0x00, 0x9e, 0xcc, 0xc8, 0xa8, 0x6b, 0x22, 0xea, 0x46, 0xae, 0x98, 0x20, + 0x8b, 0xb0, 0x97, 0x78, 0x3a, 0x24, 0x0f, 0x60, 0x2d, 0x71, 0xda, 0x13, 0x39, 0x2b, 0x5a, 0xf2, + 0x8f, 0xb1, 0x03, 0xd5, 0x46, 0xb2, 0x71, 0x12, 0x53, 0x87, 0x97, 0x4e, 0x70, 0x81, 0xde, 0x08, + 0xa9, 0x4d, 0x21, 0xcf, 0x13, 0x43, 0x99, 0xc8, 0x09, 0xcd, 0x0f, 0x1a, 0xe8, 0x32, 0x22, 0xb6, + 0xec, 0x32, 0x51, 0xd2, 0xff, 0x72, 0x12, 0xb3, 0x32, 0x9d, 0x98, 0x26, 0xac, 0x0b, 0xa7, 0xd3, + 0x9c, 0xec, 0xcd, 0xce, 0xc9, 0xb8, 0x89, 0x23, 0xe4, 0x8e, 0xdf, 0x63, 0x96, 0x12, 0x30, 0x6c, + 0xf8, 0x3c, 0xd3, 0x8f, 0xa5, 0x92, 0xf3, 0x9f, 0x06, 0xb5, 0x3c, 0xcb, 0x64, 0x0b, 0x36, 0x62, + 0x86, 0x74, 0x54, 0x71, 0xeb, 0xc9, 0xdf, 0xa6, 0x77, 0xd3, 0xa2, 0x27, 0xf3, 0x5b, 0xb8, 0x4d, + 0x7e, 0x8f, 0xa1, 0xe4, 0xf9, 0x7d, 0x0c, 0x86, 0x3d, 0x39, 0xb3, 0x9c, 0x95, 0x82, 0xc8, 0xe4, + 0x51, 0x0a, 0xb7, 0x46, 0x4c, 0xe3, 0x2f, 0x4d, 0xb6, 0x97, 0x46, 0xc0, 0xae, 0x90, 0xa6, 0x39, + 0x9b, 0xd8, 0xf4, 0xda, 0xc2, 0x9b, 0x5e, 0x1e, 0x07, 0x91, 0x5a, 0x77, 0x32, 0x9c, 0x0a, 0x48, + 0x61, 0xfa, 0x14, 0x3d, 0x01, 0x32, 0xee, 0xc5, 0x52, 0x19, 0x93, 0x1d, 0xe7, 0x8c, 0xfa, 0x6e, + 0xb7, 0x87, 0x4b, 0x6a, 0xbd, 0xd7, 0xe0, 0xbe, 0x8d, 0xfc, 0x34, 0x3d, 0x14, 0xd3, 0x00, 0xa9, + 0x05, 0x6a, 0x79, 0x0b, 0xbc, 0x96, 0xf1, 0x1f, 0xa7, 0xca, 0xfc, 0x86, 0x6c, 0x37, 0x83, 0x4e, + 0x38, 0xac, 0xeb, 0x8f, 0x1a, 0x3c, 0x98, 0x74, 0x42, 0xad, 0x69, 0x61, 0x2f, 0x1e, 0x41, 0x39, + 0x39, 0x58, 0xa8, 0xec, 0xc6, 0x22, 0x0d, 0x45, 0x0b, 0x7c, 0x17, 0x55, 0x7f, 0xbe, 0x5d, 0x94, + 0xf6, 0x3f, 0x16, 0x61, 0xd3, 0x16, 0x9b, 0xd4, 0x46, 0x3a, 0x40, 0x4a, 0xba, 0xb0, 0x39, 0xee, + 0x30, 0xf9, 0x26, 0x77, 0x53, 0x67, 0x04, 0x57, 0xff, 0x76, 0x4e, 0xb4, 0x8a, 0x02, 0x02, 0x8c, + 0x6a, 0x87, 0xec, 0xce, 0x20, 0x4f, 0x95, 0xb9, 0xfe, 0xf5, 0x5c, 0x58, 0x65, 0xe6, 0x77, 0x80, + 0xa6, 0x8b, 0xaa, 0xac, 0x48, 0xfe, 0x99, 0x3e, 0xaa, 0xbd, 0x19, 0xfa, 0x19, 0x05, 0xfa, 0xa7, + 0x06, 0xf7, 0x33, 0xda, 0x17, 0x79, 0x9e, 0x2b, 0x92, 0xdf, 0x74, 0xf5, 0x17, 0x8b, 0x91, 0x94, + 0x0b, 0x57, 0x50, 0x9d, 0x3e, 0xda, 0xc8, 0x77, 0x37, 0x28, 0x5d, 0x3b, 0x89, 0xf5, 0xbd, 0x05, + 0x18, 0xa3, 0x14, 0x36, 0x47, 0x45, 0xb8, 0x3b, 0x2b, 0x6c, 0x93, 0xb7, 0x97, 0xd9, 0x21, 0x9e, + 0xbe, 0x75, 0xb4, 0xa1, 0x34, 0xbc, 0x4a, 0x91, 0x67, 0x33, 0x93, 0x3f, 0x7e, 0xef, 0xd6, 0x77, + 0xe7, 0x81, 0x2a, 0x1b, 0xff, 0x68, 0xf0, 0x59, 0xf6, 0x3b, 0x85, 0xbc, 0xcc, 0x97, 0x99, 0xf5, + 0x30, 0xd2, 0x7f, 0x58, 0x98, 0xa7, 0x7c, 0xf9, 0xa0, 0xc1, 0xa7, 0x99, 0x8f, 0x13, 0xf2, 0xfd, + 0x0c, 0xc9, 0xfc, 0xb7, 0x90, 0xfe, 0x72, 0x51, 0x9a, 0x74, 0xe4, 0xc0, 0x3f, 0x28, 0xdb, 0x9d, + 0x58, 0xb6, 0x88, 0xf3, 0xbd, 0x53, 0xed, 0xb7, 0x57, 0x17, 0x3e, 0xbf, 0x8c, 0xdb, 0xa6, 0x1b, + 0xf6, 0xeb, 0x3f, 0x23, 0xb7, 0x85, 0x6a, 0x5d, 0x3c, 0x14, 0xdd, 0xb0, 0x27, 0x07, 0xed, 0xb8, + 0x53, 0xcf, 0x7a, 0x8e, 0xfe, 0xbb, 0xa2, 0x4b, 0xbc, 0x3c, 0xd6, 0xcc, 0xc1, 0x9e, 0x69, 0x77, + 0x62, 0x53, 0xaa, 0xb7, 0xd7, 0x05, 0xf7, 0xf9, 0xff, 0x01, 0x00, 0x00, 0xff, 0xff, 0x42, 0x3d, + 0x2c, 0xc8, 0xca, 0x0e, 0x00, 0x00, } diff --git a/protobuf/video/sfu/signal_rpc/signal_vtproto.pb.go b/protobuf/video/sfu/signal_rpc/signal_vtproto.pb.go index 46e5ea54..c9262a64 100644 --- a/protobuf/video/sfu/signal_rpc/signal_vtproto.pb.go +++ b/protobuf/video/sfu/signal_rpc/signal_vtproto.pb.go @@ -240,6 +240,62 @@ func (m *SendStatsRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if vtmsg, ok := m.DeviceState.(interface { + MarshalToVT([]byte) (int, error) + SizeVT() int + }); ok { + { + size := vtmsg.SizeVT() + i -= size + if _, err := vtmsg.MarshalToVT(dAtA[i:]); err != nil { + return 0, err + } + } + } + if m.VideoDevices != nil { + if marshalto, ok := interface{}(m.VideoDevices).(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := marshalto.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarint(dAtA, i, uint64(size)) + } else { + encoded, err := proto.Marshal(m.VideoDevices) + if err != nil { + return 0, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = encodeVarint(dAtA, i, uint64(len(encoded))) + } + i-- + dAtA[i] = 0x42 + } + if m.AudioDevices != nil { + if marshalto, ok := interface{}(m.AudioDevices).(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := marshalto.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarint(dAtA, i, uint64(size)) + } else { + encoded, err := proto.Marshal(m.AudioDevices) + if err != nil { + return 0, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = encodeVarint(dAtA, i, uint64(len(encoded))) + } + i-- + dAtA[i] = 0x3a + } if len(m.SdkVersion) > 0 { i -= len(m.SdkVersion) copy(dAtA[i:], m.SdkVersion) @@ -285,6 +341,68 @@ func (m *SendStatsRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *SendStatsRequest_Android) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *SendStatsRequest_Android) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Android != nil { + if marshalto, ok := interface{}(m.Android).(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := marshalto.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarint(dAtA, i, uint64(size)) + } else { + encoded, err := proto.Marshal(m.Android) + if err != nil { + return 0, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = encodeVarint(dAtA, i, uint64(len(encoded))) + } + i-- + dAtA[i] = 0x4a + } + return len(dAtA) - i, nil +} +func (m *SendStatsRequest_Apple) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *SendStatsRequest_Apple) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Apple != nil { + if marshalto, ok := interface{}(m.Apple).(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := marshalto.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarint(dAtA, i, uint64(size)) + } else { + encoded, err := proto.Marshal(m.Apple) + if err != nil { + return 0, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = encodeVarint(dAtA, i, uint64(len(encoded))) + } + i-- + dAtA[i] = 0x52 + } + return len(dAtA) - i, nil +} func (m *SendStatsResponse) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil @@ -1291,12 +1409,71 @@ func (m *SendStatsRequest) SizeVT() (n int) { if l > 0 { n += 1 + l + sov(uint64(l)) } + if m.AudioDevices != nil { + if size, ok := interface{}(m.AudioDevices).(interface { + SizeVT() int + }); ok { + l = size.SizeVT() + } else { + l = proto.Size(m.AudioDevices) + } + n += 1 + l + sov(uint64(l)) + } + if m.VideoDevices != nil { + if size, ok := interface{}(m.VideoDevices).(interface { + SizeVT() int + }); ok { + l = size.SizeVT() + } else { + l = proto.Size(m.VideoDevices) + } + n += 1 + l + sov(uint64(l)) + } + if vtmsg, ok := m.DeviceState.(interface{ SizeVT() int }); ok { + n += vtmsg.SizeVT() + } if m.unknownFields != nil { n += len(m.unknownFields) } return n } +func (m *SendStatsRequest_Android) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Android != nil { + if size, ok := interface{}(m.Android).(interface { + SizeVT() int + }); ok { + l = size.SizeVT() + } else { + l = proto.Size(m.Android) + } + n += 1 + l + sov(uint64(l)) + } + return n +} +func (m *SendStatsRequest_Apple) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Apple != nil { + if size, ok := interface{}(m.Apple).(interface { + SizeVT() int + }); ok { + l = size.SizeVT() + } else { + l = proto.Size(m.Apple) + } + n += 1 + l + sov(uint64(l)) + } + return n +} func (m *SendStatsResponse) SizeVT() (n int) { if m == nil { return 0 @@ -2244,6 +2421,208 @@ func (m *SendStatsRequest) UnmarshalVT(dAtA []byte) error { } m.SdkVersion = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AudioDevices", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.AudioDevices == nil { + m.AudioDevices = &models.InputDevices{} + } + if unmarshal, ok := interface{}(m.AudioDevices).(interface { + UnmarshalVT([]byte) error + }); ok { + if err := unmarshal.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.AudioDevices); err != nil { + return err + } + } + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field VideoDevices", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.VideoDevices == nil { + m.VideoDevices = &models.InputDevices{} + } + if unmarshal, ok := interface{}(m.VideoDevices).(interface { + UnmarshalVT([]byte) error + }); ok { + if err := unmarshal.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.VideoDevices); err != nil { + return err + } + } + iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Android", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.DeviceState.(*SendStatsRequest_Android); ok { + if unmarshal, ok := interface{}(oneof.Android).(interface { + UnmarshalVT([]byte) error + }); ok { + if err := unmarshal.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], oneof.Android); err != nil { + return err + } + } + } else { + v := &models.AndroidState{} + if unmarshal, ok := interface{}(v).(interface { + UnmarshalVT([]byte) error + }); ok { + if err := unmarshal.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], v); err != nil { + return err + } + } + m.DeviceState = &SendStatsRequest_Android{v} + } + iNdEx = postIndex + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Apple", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.DeviceState.(*SendStatsRequest_Apple); ok { + if unmarshal, ok := interface{}(oneof.Apple).(interface { + UnmarshalVT([]byte) error + }); ok { + if err := unmarshal.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], oneof.Apple); err != nil { + return err + } + } + } else { + v := &models.AppleState{} + if unmarshal, ok := interface{}(v).(interface { + UnmarshalVT([]byte) error + }); ok { + if err := unmarshal.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], v); err != nil { + return err + } + } + m.DeviceState = &SendStatsRequest_Apple{v} + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skip(dAtA[iNdEx:])