diff options
author | Derrick <actown@users.noreply.github.com> | 2020-04-12 23:15:57 +0300 |
---|---|---|
committer | Derrick <actown@users.noreply.github.com> | 2020-04-12 23:15:57 +0300 |
commit | c8919d4338f6c11c317d963da535f04df0a8f06d (patch) | |
tree | 27bad0e41b9e8c0b9a80762939df8cbf95017815 | |
parent | 30e28d06aa466574cfd964cbfadeb6fa5ebb342f (diff) |
Update the mumble proto.
-rw-r--r-- | pkg/mumbleproto/Mumble.pb.go | 1557 | ||||
-rw-r--r-- | pkg/mumbleproto/Mumble.proto | 36 |
2 files changed, 1176 insertions, 417 deletions
diff --git a/pkg/mumbleproto/Mumble.pb.go b/pkg/mumbleproto/Mumble.pb.go index 965c6a1..df0fee0 100644 --- a/pkg/mumbleproto/Mumble.pb.go +++ b/pkg/mumbleproto/Mumble.pb.go @@ -1,46 +1,13 @@ -// Code generated by protoc-gen-go. +// Code generated by protoc-gen-go. DO NOT EDIT. // source: Mumble.proto -// DO NOT EDIT! - -/* -Package mumbleproto is a generated protocol buffer package. - -It is generated from these files: - Mumble.proto - -It has these top-level messages: - Version - UDPTunnel - Authenticate - Ping - Reject - ServerSync - ChannelRemove - ChannelState - UserRemove - UserState - BanList - TextMessage - PermissionDenied - ACL - QueryUsers - CryptSetup - ContextActionModify - ContextAction - UserList - VoiceTarget - PermissionQuery - CodecVersion - UserStats - RequestBlob - ServerConfig - SuggestConfig -*/ + package mumbleproto -import proto "github.com/golang/protobuf/proto" -import fmt "fmt" -import math "math" +import ( + fmt "fmt" + proto "github.com/golang/protobuf/proto" + math "math" +) // Reference imports to suppress errors if they are not otherwise used. var _ = proto.Marshal @@ -49,12 +16,15 @@ var _ = math.Inf // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. -const _ = proto.ProtoPackageIsVersion1 +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package type Reject_RejectType int32 const ( - // TODO ?? + // The rejection reason is unknown (details should be available + // in Reject.reason). Reject_None Reject_RejectType = 0 // The client attempted to connect with an incompatible version. Reject_WrongVersion Reject_RejectType = 1 @@ -86,6 +56,7 @@ var Reject_RejectType_name = map[int32]string{ 7: "NoCertificate", 8: "AuthenticatorFail", } + var Reject_RejectType_value = map[string]int32{ "None": 0, "WrongVersion": 1, @@ -103,9 +74,11 @@ func (x Reject_RejectType) Enum() *Reject_RejectType { *p = x return p } + func (x Reject_RejectType) String() string { return proto.EnumName(Reject_RejectType_name, int32(x)) } + func (x *Reject_RejectType) UnmarshalJSON(data []byte) error { value, err := proto.UnmarshalJSONEnum(Reject_RejectType_value, data, "Reject_RejectType") if err != nil { @@ -114,7 +87,10 @@ func (x *Reject_RejectType) UnmarshalJSON(data []byte) error { *x = Reject_RejectType(value) return nil } -func (Reject_RejectType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{4, 0} } + +func (Reject_RejectType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_56c09c2dce0fb003, []int{4, 0} +} type PermissionDenied_DenyType int32 @@ -138,8 +114,11 @@ const ( // Invalid username. PermissionDenied_UserName PermissionDenied_DenyType = 8 // Channel is full. - PermissionDenied_ChannelFull PermissionDenied_DenyType = 9 + PermissionDenied_ChannelFull PermissionDenied_DenyType = 9 + // Channels are nested too deply. PermissionDenied_NestingLimit PermissionDenied_DenyType = 10 + // Maximum channel count reached. + PermissionDenied_ChannelCountLimit PermissionDenied_DenyType = 11 ) var PermissionDenied_DenyType_name = map[int32]string{ @@ -154,7 +133,9 @@ var PermissionDenied_DenyType_name = map[int32]string{ 8: "UserName", 9: "ChannelFull", 10: "NestingLimit", + 11: "ChannelCountLimit", } + var PermissionDenied_DenyType_value = map[string]int32{ "Text": 0, "Permission": 1, @@ -167,6 +148,7 @@ var PermissionDenied_DenyType_value = map[string]int32{ "UserName": 8, "ChannelFull": 9, "NestingLimit": 10, + "ChannelCountLimit": 11, } func (x PermissionDenied_DenyType) Enum() *PermissionDenied_DenyType { @@ -174,9 +156,11 @@ func (x PermissionDenied_DenyType) Enum() *PermissionDenied_DenyType { *p = x return p } + func (x PermissionDenied_DenyType) String() string { return proto.EnumName(PermissionDenied_DenyType_name, int32(x)) } + func (x *PermissionDenied_DenyType) UnmarshalJSON(data []byte) error { value, err := proto.UnmarshalJSONEnum(PermissionDenied_DenyType_value, data, "PermissionDenied_DenyType") if err != nil { @@ -185,8 +169,9 @@ func (x *PermissionDenied_DenyType) UnmarshalJSON(data []byte) error { *x = PermissionDenied_DenyType(value) return nil } + func (PermissionDenied_DenyType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor0, []int{12, 0} + return fileDescriptor_56c09c2dce0fb003, []int{12, 0} } type ContextActionModify_Context int32 @@ -205,6 +190,7 @@ var ContextActionModify_Context_name = map[int32]string{ 2: "Channel", 4: "User", } + var ContextActionModify_Context_value = map[string]int32{ "Server": 1, "Channel": 2, @@ -216,9 +202,11 @@ func (x ContextActionModify_Context) Enum() *ContextActionModify_Context { *p = x return p } + func (x ContextActionModify_Context) String() string { return proto.EnumName(ContextActionModify_Context_name, int32(x)) } + func (x *ContextActionModify_Context) UnmarshalJSON(data []byte) error { value, err := proto.UnmarshalJSONEnum(ContextActionModify_Context_value, data, "ContextActionModify_Context") if err != nil { @@ -227,8 +215,9 @@ func (x *ContextActionModify_Context) UnmarshalJSON(data []byte) error { *x = ContextActionModify_Context(value) return nil } + func (ContextActionModify_Context) EnumDescriptor() ([]byte, []int) { - return fileDescriptor0, []int{16, 0} + return fileDescriptor_56c09c2dce0fb003, []int{16, 0} } type ContextActionModify_Operation int32 @@ -242,6 +231,7 @@ var ContextActionModify_Operation_name = map[int32]string{ 0: "Add", 1: "Remove", } + var ContextActionModify_Operation_value = map[string]int32{ "Add": 0, "Remove": 1, @@ -252,9 +242,11 @@ func (x ContextActionModify_Operation) Enum() *ContextActionModify_Operation { *p = x return p } + func (x ContextActionModify_Operation) String() string { return proto.EnumName(ContextActionModify_Operation_name, int32(x)) } + func (x *ContextActionModify_Operation) UnmarshalJSON(data []byte) error { value, err := proto.UnmarshalJSONEnum(ContextActionModify_Operation_value, data, "ContextActionModify_Operation") if err != nil { @@ -263,8 +255,9 @@ func (x *ContextActionModify_Operation) UnmarshalJSON(data []byte) error { *x = ContextActionModify_Operation(value) return nil } + func (ContextActionModify_Operation) EnumDescriptor() ([]byte, []int) { - return fileDescriptor0, []int{16, 1} + return fileDescriptor_56c09c2dce0fb003, []int{16, 1} } type Version struct { @@ -276,14 +269,36 @@ type Version struct { // Client OS name. Os *string `protobuf:"bytes,3,opt,name=os" json:"os,omitempty"` // Client OS version. - OsVersion *string `protobuf:"bytes,4,opt,name=os_version,json=osVersion" json:"os_version,omitempty"` - XXX_unrecognized []byte `json:"-"` + OsVersion *string `protobuf:"bytes,4,opt,name=os_version,json=osVersion" json:"os_version,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *Version) Reset() { *m = Version{} } -func (m *Version) String() string { return proto.CompactTextString(m) } -func (*Version) ProtoMessage() {} -func (*Version) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } +func (m *Version) Reset() { *m = Version{} } +func (m *Version) String() string { return proto.CompactTextString(m) } +func (*Version) ProtoMessage() {} +func (*Version) Descriptor() ([]byte, []int) { + return fileDescriptor_56c09c2dce0fb003, []int{0} +} + +func (m *Version) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Version.Unmarshal(m, b) +} +func (m *Version) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Version.Marshal(b, m, deterministic) +} +func (m *Version) XXX_Merge(src proto.Message) { + xxx_messageInfo_Version.Merge(m, src) +} +func (m *Version) XXX_Size() int { + return xxx_messageInfo_Version.Size(m) +} +func (m *Version) XXX_DiscardUnknown() { + xxx_messageInfo_Version.DiscardUnknown(m) +} + +var xxx_messageInfo_Version proto.InternalMessageInfo func (m *Version) GetCryptoModes() []string { if m != nil { @@ -323,14 +338,36 @@ func (m *Version) GetOsVersion() string { // Not used. Not even for tunneling UDP through TCP. type UDPTunnel struct { // Not used. - Packet []byte `protobuf:"bytes,1,req,name=packet" json:"packet,omitempty"` - XXX_unrecognized []byte `json:"-"` + Packet []byte `protobuf:"bytes,1,req,name=packet" json:"packet,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *UDPTunnel) Reset() { *m = UDPTunnel{} } +func (m *UDPTunnel) String() string { return proto.CompactTextString(m) } +func (*UDPTunnel) ProtoMessage() {} +func (*UDPTunnel) Descriptor() ([]byte, []int) { + return fileDescriptor_56c09c2dce0fb003, []int{1} } -func (m *UDPTunnel) Reset() { *m = UDPTunnel{} } -func (m *UDPTunnel) String() string { return proto.CompactTextString(m) } -func (*UDPTunnel) ProtoMessage() {} -func (*UDPTunnel) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} } +func (m *UDPTunnel) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UDPTunnel.Unmarshal(m, b) +} +func (m *UDPTunnel) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UDPTunnel.Marshal(b, m, deterministic) +} +func (m *UDPTunnel) XXX_Merge(src proto.Message) { + xxx_messageInfo_UDPTunnel.Merge(m, src) +} +func (m *UDPTunnel) XXX_Size() int { + return xxx_messageInfo_UDPTunnel.Size(m) +} +func (m *UDPTunnel) XXX_DiscardUnknown() { + xxx_messageInfo_UDPTunnel.DiscardUnknown(m) +} + +var xxx_messageInfo_UDPTunnel proto.InternalMessageInfo func (m *UDPTunnel) GetPacket() []byte { if m != nil { @@ -348,15 +385,37 @@ type Authenticate struct { // Additional access tokens for server ACL groups. Tokens []string `protobuf:"bytes,3,rep,name=tokens" json:"tokens,omitempty"` // A list of CELT bitstream version constants supported by the client. - CeltVersions []int32 `protobuf:"varint,4,rep,name=celt_versions,json=celtVersions" json:"celt_versions,omitempty"` - Opus *bool `protobuf:"varint,5,opt,name=opus,def=0" json:"opus,omitempty"` - XXX_unrecognized []byte `json:"-"` + CeltVersions []int32 `protobuf:"varint,4,rep,name=celt_versions,json=celtVersions" json:"celt_versions,omitempty"` + Opus *bool `protobuf:"varint,5,opt,name=opus,def=0" json:"opus,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Authenticate) Reset() { *m = Authenticate{} } +func (m *Authenticate) String() string { return proto.CompactTextString(m) } +func (*Authenticate) ProtoMessage() {} +func (*Authenticate) Descriptor() ([]byte, []int) { + return fileDescriptor_56c09c2dce0fb003, []int{2} } -func (m *Authenticate) Reset() { *m = Authenticate{} } -func (m *Authenticate) String() string { return proto.CompactTextString(m) } -func (*Authenticate) ProtoMessage() {} -func (*Authenticate) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} } +func (m *Authenticate) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Authenticate.Unmarshal(m, b) +} +func (m *Authenticate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Authenticate.Marshal(b, m, deterministic) +} +func (m *Authenticate) XXX_Merge(src proto.Message) { + xxx_messageInfo_Authenticate.Merge(m, src) +} +func (m *Authenticate) XXX_Size() int { + return xxx_messageInfo_Authenticate.Size(m) +} +func (m *Authenticate) XXX_DiscardUnknown() { + xxx_messageInfo_Authenticate.DiscardUnknown(m) +} + +var xxx_messageInfo_Authenticate proto.InternalMessageInfo const Default_Authenticate_Opus bool = false @@ -420,14 +479,36 @@ type Ping struct { // TCP ping average. TcpPingAvg *float32 `protobuf:"fixed32,10,opt,name=tcp_ping_avg,json=tcpPingAvg" json:"tcp_ping_avg,omitempty"` // TCP ping variance. - TcpPingVar *float32 `protobuf:"fixed32,11,opt,name=tcp_ping_var,json=tcpPingVar" json:"tcp_ping_var,omitempty"` - XXX_unrecognized []byte `json:"-"` + TcpPingVar *float32 `protobuf:"fixed32,11,opt,name=tcp_ping_var,json=tcpPingVar" json:"tcp_ping_var,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *Ping) Reset() { *m = Ping{} } -func (m *Ping) String() string { return proto.CompactTextString(m) } -func (*Ping) ProtoMessage() {} -func (*Ping) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} } +func (m *Ping) Reset() { *m = Ping{} } +func (m *Ping) String() string { return proto.CompactTextString(m) } +func (*Ping) ProtoMessage() {} +func (*Ping) Descriptor() ([]byte, []int) { + return fileDescriptor_56c09c2dce0fb003, []int{3} +} + +func (m *Ping) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Ping.Unmarshal(m, b) +} +func (m *Ping) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Ping.Marshal(b, m, deterministic) +} +func (m *Ping) XXX_Merge(src proto.Message) { + xxx_messageInfo_Ping.Merge(m, src) +} +func (m *Ping) XXX_Size() int { + return xxx_messageInfo_Ping.Size(m) +} +func (m *Ping) XXX_DiscardUnknown() { + xxx_messageInfo_Ping.DiscardUnknown(m) +} + +var xxx_messageInfo_Ping proto.InternalMessageInfo func (m *Ping) GetTimestamp() uint64 { if m != nil && m.Timestamp != nil { @@ -511,14 +592,36 @@ type Reject struct { // Rejection type. Type *Reject_RejectType `protobuf:"varint,1,opt,name=type,enum=mumbleproto.Reject_RejectType" json:"type,omitempty"` // Human readable rejection reason. - Reason *string `protobuf:"bytes,2,opt,name=reason" json:"reason,omitempty"` - XXX_unrecognized []byte `json:"-"` + Reason *string `protobuf:"bytes,2,opt,name=reason" json:"reason,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *Reject) Reset() { *m = Reject{} } -func (m *Reject) String() string { return proto.CompactTextString(m) } -func (*Reject) ProtoMessage() {} -func (*Reject) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4} } +func (m *Reject) Reset() { *m = Reject{} } +func (m *Reject) String() string { return proto.CompactTextString(m) } +func (*Reject) ProtoMessage() {} +func (*Reject) Descriptor() ([]byte, []int) { + return fileDescriptor_56c09c2dce0fb003, []int{4} +} + +func (m *Reject) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Reject.Unmarshal(m, b) +} +func (m *Reject) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Reject.Marshal(b, m, deterministic) +} +func (m *Reject) XXX_Merge(src proto.Message) { + xxx_messageInfo_Reject.Merge(m, src) +} +func (m *Reject) XXX_Size() int { + return xxx_messageInfo_Reject.Size(m) +} +func (m *Reject) XXX_DiscardUnknown() { + xxx_messageInfo_Reject.DiscardUnknown(m) +} + +var xxx_messageInfo_Reject proto.InternalMessageInfo func (m *Reject) GetType() Reject_RejectType { if m != nil && m.Type != nil { @@ -543,15 +646,37 @@ type ServerSync struct { MaxBandwidth *uint32 `protobuf:"varint,2,opt,name=max_bandwidth,json=maxBandwidth" json:"max_bandwidth,omitempty"` // Server welcome text. WelcomeText *string `protobuf:"bytes,3,opt,name=welcome_text,json=welcomeText" json:"welcome_text,omitempty"` - // Current user permissions TODO: Confirm?? - Permissions *uint64 `protobuf:"varint,4,opt,name=permissions" json:"permissions,omitempty"` - XXX_unrecognized []byte `json:"-"` + // Current user permissions in the root channel. + Permissions *uint64 `protobuf:"varint,4,opt,name=permissions" json:"permissions,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ServerSync) Reset() { *m = ServerSync{} } +func (m *ServerSync) String() string { return proto.CompactTextString(m) } +func (*ServerSync) ProtoMessage() {} +func (*ServerSync) Descriptor() ([]byte, []int) { + return fileDescriptor_56c09c2dce0fb003, []int{5} +} + +func (m *ServerSync) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ServerSync.Unmarshal(m, b) +} +func (m *ServerSync) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ServerSync.Marshal(b, m, deterministic) +} +func (m *ServerSync) XXX_Merge(src proto.Message) { + xxx_messageInfo_ServerSync.Merge(m, src) +} +func (m *ServerSync) XXX_Size() int { + return xxx_messageInfo_ServerSync.Size(m) +} +func (m *ServerSync) XXX_DiscardUnknown() { + xxx_messageInfo_ServerSync.DiscardUnknown(m) } -func (m *ServerSync) Reset() { *m = ServerSync{} } -func (m *ServerSync) String() string { return proto.CompactTextString(m) } -func (*ServerSync) ProtoMessage() {} -func (*ServerSync) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{5} } +var xxx_messageInfo_ServerSync proto.InternalMessageInfo func (m *ServerSync) GetSession() uint32 { if m != nil && m.Session != nil { @@ -584,14 +709,36 @@ func (m *ServerSync) GetPermissions() uint64 { // Sent by the client when it wants a channel removed. Sent by the server when // a channel has been removed and clients should be notified. type ChannelRemove struct { - ChannelId *uint32 `protobuf:"varint,1,req,name=channel_id,json=channelId" json:"channel_id,omitempty"` - XXX_unrecognized []byte `json:"-"` + ChannelId *uint32 `protobuf:"varint,1,req,name=channel_id,json=channelId" json:"channel_id,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ChannelRemove) Reset() { *m = ChannelRemove{} } +func (m *ChannelRemove) String() string { return proto.CompactTextString(m) } +func (*ChannelRemove) ProtoMessage() {} +func (*ChannelRemove) Descriptor() ([]byte, []int) { + return fileDescriptor_56c09c2dce0fb003, []int{6} +} + +func (m *ChannelRemove) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ChannelRemove.Unmarshal(m, b) +} +func (m *ChannelRemove) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ChannelRemove.Marshal(b, m, deterministic) +} +func (m *ChannelRemove) XXX_Merge(src proto.Message) { + xxx_messageInfo_ChannelRemove.Merge(m, src) +} +func (m *ChannelRemove) XXX_Size() int { + return xxx_messageInfo_ChannelRemove.Size(m) +} +func (m *ChannelRemove) XXX_DiscardUnknown() { + xxx_messageInfo_ChannelRemove.DiscardUnknown(m) } -func (m *ChannelRemove) Reset() { *m = ChannelRemove{} } -func (m *ChannelRemove) String() string { return proto.CompactTextString(m) } -func (*ChannelRemove) ProtoMessage() {} -func (*ChannelRemove) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{6} } +var xxx_messageInfo_ChannelRemove proto.InternalMessageInfo func (m *ChannelRemove) GetChannelId() uint32 { if m != nil && m.ChannelId != nil { @@ -629,14 +776,40 @@ type ChannelState struct { // Maximum number of users allowed in the channel. If this value is zero, // the maximum number of users allowed in the channel is given by the // server's "usersperchannel" setting. - MaxUsers *uint32 `protobuf:"varint,11,opt,name=max_users,json=maxUsers" json:"max_users,omitempty"` - XXX_unrecognized []byte `json:"-"` + MaxUsers *uint32 `protobuf:"varint,11,opt,name=max_users,json=maxUsers" json:"max_users,omitempty"` + // Whether this channel has enter restrictions (ACL denying ENTER) set + IsEnterRestricted *bool `protobuf:"varint,12,opt,name=is_enter_restricted,json=isEnterRestricted" json:"is_enter_restricted,omitempty"` + // Whether the receiver of this msg is considered to be able to enter this channel + CanEnter *bool `protobuf:"varint,13,opt,name=can_enter,json=canEnter" json:"can_enter,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ChannelState) Reset() { *m = ChannelState{} } +func (m *ChannelState) String() string { return proto.CompactTextString(m) } +func (*ChannelState) ProtoMessage() {} +func (*ChannelState) Descriptor() ([]byte, []int) { + return fileDescriptor_56c09c2dce0fb003, []int{7} +} + +func (m *ChannelState) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ChannelState.Unmarshal(m, b) +} +func (m *ChannelState) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ChannelState.Marshal(b, m, deterministic) +} +func (m *ChannelState) XXX_Merge(src proto.Message) { + xxx_messageInfo_ChannelState.Merge(m, src) +} +func (m *ChannelState) XXX_Size() int { + return xxx_messageInfo_ChannelState.Size(m) +} +func (m *ChannelState) XXX_DiscardUnknown() { + xxx_messageInfo_ChannelState.DiscardUnknown(m) } -func (m *ChannelState) Reset() { *m = ChannelState{} } -func (m *ChannelState) String() string { return proto.CompactTextString(m) } -func (*ChannelState) ProtoMessage() {} -func (*ChannelState) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7} } +var xxx_messageInfo_ChannelState proto.InternalMessageInfo const Default_ChannelState_Temporary bool = false const Default_ChannelState_Position int32 = 0 @@ -718,6 +891,20 @@ func (m *ChannelState) GetMaxUsers() uint32 { return 0 } +func (m *ChannelState) GetIsEnterRestricted() bool { + if m != nil && m.IsEnterRestricted != nil { + return *m.IsEnterRestricted + } + return false +} + +func (m *ChannelState) GetCanEnter() bool { + if m != nil && m.CanEnter != nil { + return *m.CanEnter + } + return false +} + // Used to communicate user leaving or being kicked. May be sent by the client // when it attempts to kick a user. Sent by the server when it informs the // clients that a user is not present anymore. @@ -731,14 +918,36 @@ type UserRemove struct { // Reason for the kick, stored as the ban reason if the user is banned. Reason *string `protobuf:"bytes,3,opt,name=reason" json:"reason,omitempty"` // True if the kick should result in a ban. - Ban *bool `protobuf:"varint,4,opt,name=ban" json:"ban,omitempty"` - XXX_unrecognized []byte `json:"-"` + Ban *bool `protobuf:"varint,4,opt,name=ban" json:"ban,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *UserRemove) Reset() { *m = UserRemove{} } -func (m *UserRemove) String() string { return proto.CompactTextString(m) } -func (*UserRemove) ProtoMessage() {} -func (*UserRemove) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8} } +func (m *UserRemove) Reset() { *m = UserRemove{} } +func (m *UserRemove) String() string { return proto.CompactTextString(m) } +func (*UserRemove) ProtoMessage() {} +func (*UserRemove) Descriptor() ([]byte, []int) { + return fileDescriptor_56c09c2dce0fb003, []int{8} +} + +func (m *UserRemove) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UserRemove.Unmarshal(m, b) +} +func (m *UserRemove) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UserRemove.Marshal(b, m, deterministic) +} +func (m *UserRemove) XXX_Merge(src proto.Message) { + xxx_messageInfo_UserRemove.Merge(m, src) +} +func (m *UserRemove) XXX_Size() int { + return xxx_messageInfo_UserRemove.Size(m) +} +func (m *UserRemove) XXX_DiscardUnknown() { + xxx_messageInfo_UserRemove.DiscardUnknown(m) +} + +var xxx_messageInfo_UserRemove proto.InternalMessageInfo func (m *UserRemove) GetSession() uint32 { if m != nil && m.Session != nil { @@ -796,9 +1005,14 @@ type UserState struct { SelfDeaf *bool `protobuf:"varint,10,opt,name=self_deaf,json=selfDeaf" json:"self_deaf,omitempty"` // User image if it is less than 128 bytes. Texture []byte `protobuf:"bytes,11,opt,name=texture" json:"texture,omitempty"` - // TODO ?? + // The positional audio plugin identifier. + // Positional audio information is only sent to users who share + // identical plugin contexts. + // + // This value is not trasmitted to clients. PluginContext []byte `protobuf:"bytes,12,opt,name=plugin_context,json=pluginContext" json:"plugin_context,omitempty"` - // TODO ?? + // The user's plugin-specific identity. + // This value is not transmitted to clients. PluginIdentity *string `protobuf:"bytes,13,opt,name=plugin_identity,json=pluginIdentity" json:"plugin_identity,omitempty"` // User comment if it is less than 128 bytes. Comment *string `protobuf:"bytes,14,opt,name=comment" json:"comment,omitempty"` @@ -811,14 +1025,38 @@ type UserState struct { // True if the user is a priority speaker. PrioritySpeaker *bool `protobuf:"varint,18,opt,name=priority_speaker,json=prioritySpeaker" json:"priority_speaker,omitempty"` // True if the user is currently recording. - Recording *bool `protobuf:"varint,19,opt,name=recording" json:"recording,omitempty"` - XXX_unrecognized []byte `json:"-"` + Recording *bool `protobuf:"varint,19,opt,name=recording" json:"recording,omitempty"` + // A list of temporary acces tokens to be respected when processing this request. + TemporaryAccessTokens []string `protobuf:"bytes,20,rep,name=temporary_access_tokens,json=temporaryAccessTokens" json:"temporary_access_tokens,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *UserState) Reset() { *m = UserState{} } +func (m *UserState) String() string { return proto.CompactTextString(m) } +func (*UserState) ProtoMessage() {} +func (*UserState) Descriptor() ([]byte, []int) { + return fileDescriptor_56c09c2dce0fb003, []int{9} +} + +func (m *UserState) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UserState.Unmarshal(m, b) +} +func (m *UserState) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UserState.Marshal(b, m, deterministic) +} +func (m *UserState) XXX_Merge(src proto.Message) { + xxx_messageInfo_UserState.Merge(m, src) +} +func (m *UserState) XXX_Size() int { + return xxx_messageInfo_UserState.Size(m) +} +func (m *UserState) XXX_DiscardUnknown() { + xxx_messageInfo_UserState.DiscardUnknown(m) } -func (m *UserState) Reset() { *m = UserState{} } -func (m *UserState) String() string { return proto.CompactTextString(m) } -func (*UserState) ProtoMessage() {} -func (*UserState) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{9} } +var xxx_messageInfo_UserState proto.InternalMessageInfo func (m *UserState) GetSession() uint32 { if m != nil && m.Session != nil { @@ -953,6 +1191,13 @@ func (m *UserState) GetRecording() bool { return false } +func (m *UserState) GetTemporaryAccessTokens() []string { + if m != nil { + return m.TemporaryAccessTokens + } + return nil +} + // Relays information on the bans. The client may send the BanList message to // either modify the list of bans or query them from the server. The server // sends this list only after a client queries for it. @@ -961,14 +1206,36 @@ type BanList struct { Bans []*BanList_BanEntry `protobuf:"bytes,1,rep,name=bans" json:"bans,omitempty"` // True if the server should return the list, false if it should replace old // ban list with the one provided. - Query *bool `protobuf:"varint,2,opt,name=query,def=0" json:"query,omitempty"` - XXX_unrecognized []byte `json:"-"` + Query *bool `protobuf:"varint,2,opt,name=query,def=0" json:"query,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *BanList) Reset() { *m = BanList{} } +func (m *BanList) String() string { return proto.CompactTextString(m) } +func (*BanList) ProtoMessage() {} +func (*BanList) Descriptor() ([]byte, []int) { + return fileDescriptor_56c09c2dce0fb003, []int{10} +} + +func (m *BanList) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_BanList.Unmarshal(m, b) +} +func (m *BanList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_BanList.Marshal(b, m, deterministic) +} +func (m *BanList) XXX_Merge(src proto.Message) { + xxx_messageInfo_BanList.Merge(m, src) +} +func (m *BanList) XXX_Size() int { + return xxx_messageInfo_BanList.Size(m) +} +func (m *BanList) XXX_DiscardUnknown() { + xxx_messageInfo_BanList.DiscardUnknown(m) } -func (m *BanList) Reset() { *m = BanList{} } -func (m *BanList) String() string { return proto.CompactTextString(m) } -func (*BanList) ProtoMessage() {} -func (*BanList) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{10} } +var xxx_messageInfo_BanList proto.InternalMessageInfo const Default_BanList_Query bool = false @@ -993,21 +1260,43 @@ type BanList_BanEntry struct { Mask *uint32 `protobuf:"varint,2,req,name=mask" json:"mask,omitempty"` // User name for identification purposes (does not affect the ban). Name *string `protobuf:"bytes,3,opt,name=name" json:"name,omitempty"` - // TODO ?? + // The certificate hash of the banned user. Hash *string `protobuf:"bytes,4,opt,name=hash" json:"hash,omitempty"` // Reason for the ban (does not affect the ban). Reason *string `protobuf:"bytes,5,opt,name=reason" json:"reason,omitempty"` // Ban start time. Start *string `protobuf:"bytes,6,opt,name=start" json:"start,omitempty"` // Ban duration in seconds. - Duration *uint32 `protobuf:"varint,7,opt,name=duration" json:"duration,omitempty"` - XXX_unrecognized []byte `json:"-"` + Duration *uint32 `protobuf:"varint,7,opt,name=duration" json:"duration,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *BanList_BanEntry) Reset() { *m = BanList_BanEntry{} } -func (m *BanList_BanEntry) String() string { return proto.CompactTextString(m) } -func (*BanList_BanEntry) ProtoMessage() {} -func (*BanList_BanEntry) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{10, 0} } +func (m *BanList_BanEntry) Reset() { *m = BanList_BanEntry{} } +func (m *BanList_BanEntry) String() string { return proto.CompactTextString(m) } +func (*BanList_BanEntry) ProtoMessage() {} +func (*BanList_BanEntry) Descriptor() ([]byte, []int) { + return fileDescriptor_56c09c2dce0fb003, []int{10, 0} +} + +func (m *BanList_BanEntry) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_BanList_BanEntry.Unmarshal(m, b) +} +func (m *BanList_BanEntry) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_BanList_BanEntry.Marshal(b, m, deterministic) +} +func (m *BanList_BanEntry) XXX_Merge(src proto.Message) { + xxx_messageInfo_BanList_BanEntry.Merge(m, src) +} +func (m *BanList_BanEntry) XXX_Size() int { + return xxx_messageInfo_BanList_BanEntry.Size(m) +} +func (m *BanList_BanEntry) XXX_DiscardUnknown() { + xxx_messageInfo_BanList_BanEntry.DiscardUnknown(m) +} + +var xxx_messageInfo_BanList_BanEntry proto.InternalMessageInfo func (m *BanList_BanEntry) GetAddress() []byte { if m != nil { @@ -1071,14 +1360,36 @@ type TextMessage struct { // identified by their channel_ids. TreeId []uint32 `protobuf:"varint,4,rep,name=tree_id,json=treeId" json:"tree_id,omitempty"` // The UTF-8 encoded message. May be HTML if the server allows. - Message *string `protobuf:"bytes,5,req,name=message" json:"message,omitempty"` - XXX_unrecognized []byte `json:"-"` + Message *string `protobuf:"bytes,5,req,name=message" json:"message,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *TextMessage) Reset() { *m = TextMessage{} } -func (m *TextMessage) String() string { return proto.CompactTextString(m) } -func (*TextMessage) ProtoMessage() {} -func (*TextMessage) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{11} } +func (m *TextMessage) Reset() { *m = TextMessage{} } +func (m *TextMessage) String() string { return proto.CompactTextString(m) } +func (*TextMessage) ProtoMessage() {} +func (*TextMessage) Descriptor() ([]byte, []int) { + return fileDescriptor_56c09c2dce0fb003, []int{11} +} + +func (m *TextMessage) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TextMessage.Unmarshal(m, b) +} +func (m *TextMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TextMessage.Marshal(b, m, deterministic) +} +func (m *TextMessage) XXX_Merge(src proto.Message) { + xxx_messageInfo_TextMessage.Merge(m, src) +} +func (m *TextMessage) XXX_Size() int { + return xxx_messageInfo_TextMessage.Size(m) +} +func (m *TextMessage) XXX_DiscardUnknown() { + xxx_messageInfo_TextMessage.DiscardUnknown(m) +} + +var xxx_messageInfo_TextMessage proto.InternalMessageInfo func (m *TextMessage) GetActor() uint32 { if m != nil && m.Actor != nil { @@ -1128,14 +1439,36 @@ type PermissionDenied struct { // Type of the denial. Type *PermissionDenied_DenyType `protobuf:"varint,5,opt,name=type,enum=mumbleproto.PermissionDenied_DenyType" json:"type,omitempty"` // The name that is invalid when type is UserName. - Name *string `protobuf:"bytes,6,opt,name=name" json:"name,omitempty"` - XXX_unrecognized []byte `json:"-"` + Name *string `protobuf:"bytes,6,opt,name=name" json:"name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PermissionDenied) Reset() { *m = PermissionDenied{} } +func (m *PermissionDenied) String() string { return proto.CompactTextString(m) } +func (*PermissionDenied) ProtoMessage() {} +func (*PermissionDenied) Descriptor() ([]byte, []int) { + return fileDescriptor_56c09c2dce0fb003, []int{12} +} + +func (m *PermissionDenied) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PermissionDenied.Unmarshal(m, b) +} +func (m *PermissionDenied) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PermissionDenied.Marshal(b, m, deterministic) +} +func (m *PermissionDenied) XXX_Merge(src proto.Message) { + xxx_messageInfo_PermissionDenied.Merge(m, src) +} +func (m *PermissionDenied) XXX_Size() int { + return xxx_messageInfo_PermissionDenied.Size(m) +} +func (m *PermissionDenied) XXX_DiscardUnknown() { + xxx_messageInfo_PermissionDenied.DiscardUnknown(m) } -func (m *PermissionDenied) Reset() { *m = PermissionDenied{} } -func (m *PermissionDenied) String() string { return proto.CompactTextString(m) } -func (*PermissionDenied) ProtoMessage() {} -func (*PermissionDenied) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{12} } +var xxx_messageInfo_PermissionDenied proto.InternalMessageInfo func (m *PermissionDenied) GetPermission() uint32 { if m != nil && m.Permission != nil { @@ -1189,14 +1522,36 @@ type ACL struct { // ACL specifications. Acls []*ACL_ChanACL `protobuf:"bytes,4,rep,name=acls" json:"acls,omitempty"` // True if the message is a query for ACLs instead of setting them. - Query *bool `protobuf:"varint,5,opt,name=query,def=0" json:"query,omitempty"` - XXX_unrecognized []byte `json:"-"` + Query *bool `protobuf:"varint,5,opt,name=query,def=0" json:"query,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ACL) Reset() { *m = ACL{} } +func (m *ACL) String() string { return proto.CompactTextString(m) } +func (*ACL) ProtoMessage() {} +func (*ACL) Descriptor() ([]byte, []int) { + return fileDescriptor_56c09c2dce0fb003, []int{13} +} + +func (m *ACL) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ACL.Unmarshal(m, b) +} +func (m *ACL) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ACL.Marshal(b, m, deterministic) +} +func (m *ACL) XXX_Merge(src proto.Message) { + xxx_messageInfo_ACL.Merge(m, src) +} +func (m *ACL) XXX_Size() int { + return xxx_messageInfo_ACL.Size(m) +} +func (m *ACL) XXX_DiscardUnknown() { + xxx_messageInfo_ACL.DiscardUnknown(m) } -func (m *ACL) Reset() { *m = ACL{} } -func (m *ACL) String() string { return proto.CompactTextString(m) } -func (*ACL) ProtoMessage() {} -func (*ACL) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{13} } +var xxx_messageInfo_ACL proto.InternalMessageInfo const Default_ACL_InheritAcls bool = true const Default_ACL_Query bool = false @@ -1251,14 +1606,36 @@ type ACL_ChanGroup struct { // has been inherited, identified by user_id. Remove []uint32 `protobuf:"varint,6,rep,name=remove" json:"remove,omitempty"` // Users inherited, identified by user_id. - InheritedMembers []uint32 `protobuf:"varint,7,rep,name=inherited_members,json=inheritedMembers" json:"inherited_members,omitempty"` - XXX_unrecognized []byte `json:"-"` + InheritedMembers []uint32 `protobuf:"varint,7,rep,name=inherited_members,json=inheritedMembers" json:"inherited_members,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *ACL_ChanGroup) Reset() { *m = ACL_ChanGroup{} } -func (m *ACL_ChanGroup) String() string { return proto.CompactTextString(m) } -func (*ACL_ChanGroup) ProtoMessage() {} -func (*ACL_ChanGroup) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{13, 0} } +func (m *ACL_ChanGroup) Reset() { *m = ACL_ChanGroup{} } +func (m *ACL_ChanGroup) String() string { return proto.CompactTextString(m) } +func (*ACL_ChanGroup) ProtoMessage() {} +func (*ACL_ChanGroup) Descriptor() ([]byte, []int) { + return fileDescriptor_56c09c2dce0fb003, []int{13, 0} +} + +func (m *ACL_ChanGroup) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ACL_ChanGroup.Unmarshal(m, b) +} +func (m *ACL_ChanGroup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ACL_ChanGroup.Marshal(b, m, deterministic) +} +func (m *ACL_ChanGroup) XXX_Merge(src proto.Message) { + xxx_messageInfo_ACL_ChanGroup.Merge(m, src) +} +func (m *ACL_ChanGroup) XXX_Size() int { + return xxx_messageInfo_ACL_ChanGroup.Size(m) +} +func (m *ACL_ChanGroup) XXX_DiscardUnknown() { + xxx_messageInfo_ACL_ChanGroup.DiscardUnknown(m) +} + +var xxx_messageInfo_ACL_ChanGroup proto.InternalMessageInfo const Default_ACL_ChanGroup_Inherited bool = true const Default_ACL_ChanGroup_Inherit bool = true @@ -1327,14 +1704,36 @@ type ACL_ChanACL struct { // Bit flag field of the permissions granted by this ACL. Grant *uint32 `protobuf:"varint,6,opt,name=grant" json:"grant,omitempty"` // Bit flag field of the permissions denied by this ACL. - Deny *uint32 `protobuf:"varint,7,opt,name=deny" json:"deny,omitempty"` - XXX_unrecognized []byte `json:"-"` + Deny *uint32 `protobuf:"varint,7,opt,name=deny" json:"deny,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *ACL_ChanACL) Reset() { *m = ACL_ChanACL{} } -func (m *ACL_ChanACL) String() string { return proto.CompactTextString(m) } -func (*ACL_ChanACL) ProtoMessage() {} -func (*ACL_ChanACL) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{13, 1} } +func (m *ACL_ChanACL) Reset() { *m = ACL_ChanACL{} } +func (m *ACL_ChanACL) String() string { return proto.CompactTextString(m) } +func (*ACL_ChanACL) ProtoMessage() {} +func (*ACL_ChanACL) Descriptor() ([]byte, []int) { + return fileDescriptor_56c09c2dce0fb003, []int{13, 1} +} + +func (m *ACL_ChanACL) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ACL_ChanACL.Unmarshal(m, b) +} +func (m *ACL_ChanACL) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ACL_ChanACL.Marshal(b, m, deterministic) +} +func (m *ACL_ChanACL) XXX_Merge(src proto.Message) { + xxx_messageInfo_ACL_ChanACL.Merge(m, src) +} +func (m *ACL_ChanACL) XXX_Size() int { + return xxx_messageInfo_ACL_ChanACL.Size(m) +} +func (m *ACL_ChanACL) XXX_DiscardUnknown() { + xxx_messageInfo_ACL_ChanACL.DiscardUnknown(m) +} + +var xxx_messageInfo_ACL_ChanACL proto.InternalMessageInfo const Default_ACL_ChanACL_ApplyHere bool = true const Default_ACL_ChanACL_ApplySubs bool = true @@ -1396,14 +1795,36 @@ type QueryUsers struct { // user_ids. Ids []uint32 `protobuf:"varint,1,rep,name=ids" json:"ids,omitempty"` // User names in the same order as ids. - Names []string `protobuf:"bytes,2,rep,name=names" json:"names,omitempty"` - XXX_unrecognized []byte `json:"-"` + Names []string `protobuf:"bytes,2,rep,name=names" json:"names,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *QueryUsers) Reset() { *m = QueryUsers{} } +func (m *QueryUsers) String() string { return proto.CompactTextString(m) } +func (*QueryUsers) ProtoMessage() {} +func (*QueryUsers) Descriptor() ([]byte, []int) { + return fileDescriptor_56c09c2dce0fb003, []int{14} +} + +func (m *QueryUsers) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_QueryUsers.Unmarshal(m, b) +} +func (m *QueryUsers) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_QueryUsers.Marshal(b, m, deterministic) +} +func (m *QueryUsers) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryUsers.Merge(m, src) +} +func (m *QueryUsers) XXX_Size() int { + return xxx_messageInfo_QueryUsers.Size(m) +} +func (m *QueryUsers) XXX_DiscardUnknown() { + xxx_messageInfo_QueryUsers.DiscardUnknown(m) } -func (m *QueryUsers) Reset() { *m = QueryUsers{} } -func (m *QueryUsers) String() string { return proto.CompactTextString(m) } -func (*QueryUsers) ProtoMessage() {} -func (*QueryUsers) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{14} } +var xxx_messageInfo_QueryUsers proto.InternalMessageInfo func (m *QueryUsers) GetIds() []uint32 { if m != nil { @@ -1429,14 +1850,36 @@ type CryptSetup struct { // Client nonce. ClientNonce []byte `protobuf:"bytes,2,opt,name=client_nonce,json=clientNonce" json:"client_nonce,omitempty"` // Server nonce. - ServerNonce []byte `protobuf:"bytes,3,opt,name=server_nonce,json=serverNonce" json:"server_nonce,omitempty"` - XXX_unrecognized []byte `json:"-"` + ServerNonce []byte `protobuf:"bytes,3,opt,name=server_nonce,json=serverNonce" json:"server_nonce,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *CryptSetup) Reset() { *m = CryptSetup{} } -func (m *CryptSetup) String() string { return proto.CompactTextString(m) } -func (*CryptSetup) ProtoMessage() {} -func (*CryptSetup) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{15} } +func (m *CryptSetup) Reset() { *m = CryptSetup{} } +func (m *CryptSetup) String() string { return proto.CompactTextString(m) } +func (*CryptSetup) ProtoMessage() {} +func (*CryptSetup) Descriptor() ([]byte, []int) { + return fileDescriptor_56c09c2dce0fb003, []int{15} +} + +func (m *CryptSetup) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CryptSetup.Unmarshal(m, b) +} +func (m *CryptSetup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CryptSetup.Marshal(b, m, deterministic) +} +func (m *CryptSetup) XXX_Merge(src proto.Message) { + xxx_messageInfo_CryptSetup.Merge(m, src) +} +func (m *CryptSetup) XXX_Size() int { + return xxx_messageInfo_CryptSetup.Size(m) +} +func (m *CryptSetup) XXX_DiscardUnknown() { + xxx_messageInfo_CryptSetup.DiscardUnknown(m) +} + +var xxx_messageInfo_CryptSetup proto.InternalMessageInfo func (m *CryptSetup) GetKey() []byte { if m != nil { @@ -1465,15 +1908,37 @@ type ContextActionModify struct { // The display name of the action. Text *string `protobuf:"bytes,2,opt,name=text" json:"text,omitempty"` // Context bit flags defining where the action should be displayed. - Context *uint32 `protobuf:"varint,3,opt,name=context" json:"context,omitempty"` - Operation *ContextActionModify_Operation `protobuf:"varint,4,opt,name=operation,enum=mumbleproto.ContextActionModify_Operation" json:"operation,omitempty"` - XXX_unrecognized []byte `json:"-"` + Context *uint32 `protobuf:"varint,3,opt,name=context" json:"context,omitempty"` + Operation *ContextActionModify_Operation `protobuf:"varint,4,opt,name=operation,enum=mumbleproto.ContextActionModify_Operation" json:"operation,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ContextActionModify) Reset() { *m = ContextActionModify{} } +func (m *ContextActionModify) String() string { return proto.CompactTextString(m) } +func (*ContextActionModify) ProtoMessage() {} +func (*ContextActionModify) Descriptor() ([]byte, []int) { + return fileDescriptor_56c09c2dce0fb003, []int{16} +} + +func (m *ContextActionModify) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ContextActionModify.Unmarshal(m, b) +} +func (m *ContextActionModify) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ContextActionModify.Marshal(b, m, deterministic) +} +func (m *ContextActionModify) XXX_Merge(src proto.Message) { + xxx_messageInfo_ContextActionModify.Merge(m, src) +} +func (m *ContextActionModify) XXX_Size() int { + return xxx_messageInfo_ContextActionModify.Size(m) +} +func (m *ContextActionModify) XXX_DiscardUnknown() { + xxx_messageInfo_ContextActionModify.DiscardUnknown(m) } -func (m *ContextActionModify) Reset() { *m = ContextActionModify{} } -func (m *ContextActionModify) String() string { return proto.CompactTextString(m) } -func (*ContextActionModify) ProtoMessage() {} -func (*ContextActionModify) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{16} } +var xxx_messageInfo_ContextActionModify proto.InternalMessageInfo func (m *ContextActionModify) GetAction() string { if m != nil && m.Action != nil { @@ -1510,14 +1975,36 @@ type ContextAction struct { // The target Channel for the action, identified by channel_id. ChannelId *uint32 `protobuf:"varint,2,opt,name=channel_id,json=channelId" json:"channel_id,omitempty"` // The action that should be executed. - Action *string `protobuf:"bytes,3,req,name=action" json:"action,omitempty"` - XXX_unrecognized []byte `json:"-"` + Action *string `protobuf:"bytes,3,req,name=action" json:"action,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *ContextAction) Reset() { *m = ContextAction{} } -func (m *ContextAction) String() string { return proto.CompactTextString(m) } -func (*ContextAction) ProtoMessage() {} -func (*ContextAction) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{17} } +func (m *ContextAction) Reset() { *m = ContextAction{} } +func (m *ContextAction) String() string { return proto.CompactTextString(m) } +func (*ContextAction) ProtoMessage() {} +func (*ContextAction) Descriptor() ([]byte, []int) { + return fileDescriptor_56c09c2dce0fb003, []int{17} +} + +func (m *ContextAction) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ContextAction.Unmarshal(m, b) +} +func (m *ContextAction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ContextAction.Marshal(b, m, deterministic) +} +func (m *ContextAction) XXX_Merge(src proto.Message) { + xxx_messageInfo_ContextAction.Merge(m, src) +} +func (m *ContextAction) XXX_Size() int { + return xxx_messageInfo_ContextAction.Size(m) +} +func (m *ContextAction) XXX_DiscardUnknown() { + xxx_messageInfo_ContextAction.DiscardUnknown(m) +} + +var xxx_messageInfo_ContextAction proto.InternalMessageInfo func (m *ContextAction) GetSession() uint32 { if m != nil && m.Session != nil { @@ -1543,14 +2030,36 @@ func (m *ContextAction) GetAction() string { // Lists the registered users. type UserList struct { // A list of registered users. - Users []*UserList_User `protobuf:"bytes,1,rep,name=users" json:"users,omitempty"` - XXX_unrecognized []byte `json:"-"` + Users []*UserList_User `protobuf:"bytes,1,rep,name=users" json:"users,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *UserList) Reset() { *m = UserList{} } -func (m *UserList) String() string { return proto.CompactTextString(m) } -func (*UserList) ProtoMessage() {} -func (*UserList) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{18} } +func (m *UserList) Reset() { *m = UserList{} } +func (m *UserList) String() string { return proto.CompactTextString(m) } +func (*UserList) ProtoMessage() {} +func (*UserList) Descriptor() ([]byte, []int) { + return fileDescriptor_56c09c2dce0fb003, []int{18} +} + +func (m *UserList) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UserList.Unmarshal(m, b) +} +func (m *UserList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UserList.Marshal(b, m, deterministic) +} +func (m *UserList) XXX_Merge(src proto.Message) { + xxx_messageInfo_UserList.Merge(m, src) +} +func (m *UserList) XXX_Size() int { + return xxx_messageInfo_UserList.Size(m) +} +func (m *UserList) XXX_DiscardUnknown() { + xxx_messageInfo_UserList.DiscardUnknown(m) +} + +var xxx_messageInfo_UserList proto.InternalMessageInfo func (m *UserList) GetUsers() []*UserList_User { if m != nil { @@ -1563,16 +2072,38 @@ type UserList_User struct { // Registered user ID. UserId *uint32 `protobuf:"varint,1,req,name=user_id,json=userId" json:"user_id,omitempty"` // Registered user name. - Name *string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"` - LastSeen *string `protobuf:"bytes,3,opt,name=last_seen,json=lastSeen" json:"last_seen,omitempty"` - LastChannel *uint32 `protobuf:"varint,4,opt,name=last_channel,json=lastChannel" json:"last_channel,omitempty"` - XXX_unrecognized []byte `json:"-"` + Name *string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"` + LastSeen *string `protobuf:"bytes,3,opt,name=last_seen,json=lastSeen" json:"last_seen,omitempty"` + LastChannel *uint32 `protobuf:"varint,4,opt,name=last_channel,json=lastChannel" json:"last_channel,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *UserList_User) Reset() { *m = UserList_User{} } +func (m *UserList_User) String() string { return proto.CompactTextString(m) } +func (*UserList_User) ProtoMessage() {} +func (*UserList_User) Descriptor() ([]byte, []int) { + return fileDescriptor_56c09c2dce0fb003, []int{18, 0} +} + +func (m *UserList_User) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UserList_User.Unmarshal(m, b) +} +func (m *UserList_User) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UserList_User.Marshal(b, m, deterministic) +} +func (m *UserList_User) XXX_Merge(src proto.Message) { + xxx_messageInfo_UserList_User.Merge(m, src) +} +func (m *UserList_User) XXX_Size() int { + return xxx_messageInfo_UserList_User.Size(m) +} +func (m *UserList_User) XXX_DiscardUnknown() { + xxx_messageInfo_UserList_User.DiscardUnknown(m) } -func (m *UserList_User) Reset() { *m = UserList_User{} } -func (m *UserList_User) String() string { return proto.CompactTextString(m) } -func (*UserList_User) ProtoMessage() {} -func (*UserList_User) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{18, 0} } +var xxx_messageInfo_UserList_User proto.InternalMessageInfo func (m *UserList_User) GetUserId() uint32 { if m != nil && m.UserId != nil { @@ -1610,14 +2141,36 @@ type VoiceTarget struct { // Voice target ID. Id *uint32 `protobuf:"varint,1,opt,name=id" json:"id,omitempty"` // The receivers that this voice target includes. - Targets []*VoiceTarget_Target `protobuf:"bytes,2,rep,name=targets" json:"targets,omitempty"` - XXX_unrecognized []byte `json:"-"` + Targets []*VoiceTarget_Target `protobuf:"bytes,2,rep,name=targets" json:"targets,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *VoiceTarget) Reset() { *m = VoiceTarget{} } +func (m *VoiceTarget) String() string { return proto.CompactTextString(m) } +func (*VoiceTarget) ProtoMessage() {} +func (*VoiceTarget) Descriptor() ([]byte, []int) { + return fileDescriptor_56c09c2dce0fb003, []int{19} +} + +func (m *VoiceTarget) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_VoiceTarget.Unmarshal(m, b) +} +func (m *VoiceTarget) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_VoiceTarget.Marshal(b, m, deterministic) +} +func (m *VoiceTarget) XXX_Merge(src proto.Message) { + xxx_messageInfo_VoiceTarget.Merge(m, src) +} +func (m *VoiceTarget) XXX_Size() int { + return xxx_messageInfo_VoiceTarget.Size(m) +} +func (m *VoiceTarget) XXX_DiscardUnknown() { + xxx_messageInfo_VoiceTarget.DiscardUnknown(m) } -func (m *VoiceTarget) Reset() { *m = VoiceTarget{} } -func (m *VoiceTarget) String() string { return proto.CompactTextString(m) } -func (*VoiceTarget) ProtoMessage() {} -func (*VoiceTarget) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{19} } +var xxx_messageInfo_VoiceTarget proto.InternalMessageInfo func (m *VoiceTarget) GetId() uint32 { if m != nil && m.Id != nil { @@ -1636,22 +2189,44 @@ func (m *VoiceTarget) GetTargets() []*VoiceTarget_Target { type VoiceTarget_Target struct { // Users that are included as targets. Session []uint32 `protobuf:"varint,1,rep,name=session" json:"session,omitempty"` - // Channels that are included as targets. + // Channel that is included as a target. ChannelId *uint32 `protobuf:"varint,2,opt,name=channel_id,json=channelId" json:"channel_id,omitempty"` - // TODO ?? + // ACL group that is included as a target. Group *string `protobuf:"bytes,3,opt,name=group" json:"group,omitempty"` // True if the voice should follow links from the specified channel. Links *bool `protobuf:"varint,4,opt,name=links,def=0" json:"links,omitempty"` // True if the voice should also be sent to children of the specific // channel. - Children *bool `protobuf:"varint,5,opt,name=children,def=0" json:"children,omitempty"` - XXX_unrecognized []byte `json:"-"` + Children *bool `protobuf:"varint,5,opt,name=children,def=0" json:"children,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *VoiceTarget_Target) Reset() { *m = VoiceTarget_Target{} } +func (m *VoiceTarget_Target) String() string { return proto.CompactTextString(m) } +func (*VoiceTarget_Target) ProtoMessage() {} +func (*VoiceTarget_Target) Descriptor() ([]byte, []int) { + return fileDescriptor_56c09c2dce0fb003, []int{19, 0} +} + +func (m *VoiceTarget_Target) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_VoiceTarget_Target.Unmarshal(m, b) +} +func (m *VoiceTarget_Target) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_VoiceTarget_Target.Marshal(b, m, deterministic) +} +func (m *VoiceTarget_Target) XXX_Merge(src proto.Message) { + xxx_messageInfo_VoiceTarget_Target.Merge(m, src) +} +func (m *VoiceTarget_Target) XXX_Size() int { + return xxx_messageInfo_VoiceTarget_Target.Size(m) +} +func (m *VoiceTarget_Target) XXX_DiscardUnknown() { + xxx_messageInfo_VoiceTarget_Target.DiscardUnknown(m) } -func (m *VoiceTarget_Target) Reset() { *m = VoiceTarget_Target{} } -func (m *VoiceTarget_Target) String() string { return proto.CompactTextString(m) } -func (*VoiceTarget_Target) ProtoMessage() {} -func (*VoiceTarget_Target) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{19, 0} } +var xxx_messageInfo_VoiceTarget_Target proto.InternalMessageInfo const Default_VoiceTarget_Target_Links bool = false const Default_VoiceTarget_Target_Children bool = false @@ -1701,14 +2276,36 @@ type PermissionQuery struct { Permissions *uint32 `protobuf:"varint,2,opt,name=permissions" json:"permissions,omitempty"` // True if the client should drop its current permission information for all // channels. - Flush *bool `protobuf:"varint,3,opt,name=flush,def=0" json:"flush,omitempty"` - XXX_unrecognized []byte `json:"-"` + Flush *bool `protobuf:"varint,3,opt,name=flush,def=0" json:"flush,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *PermissionQuery) Reset() { *m = PermissionQuery{} } -func (m *PermissionQuery) String() string { return proto.CompactTextString(m) } -func (*PermissionQuery) ProtoMessage() {} -func (*PermissionQuery) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{20} } +func (m *PermissionQuery) Reset() { *m = PermissionQuery{} } +func (m *PermissionQuery) String() string { return proto.CompactTextString(m) } +func (*PermissionQuery) ProtoMessage() {} +func (*PermissionQuery) Descriptor() ([]byte, []int) { + return fileDescriptor_56c09c2dce0fb003, []int{20} +} + +func (m *PermissionQuery) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PermissionQuery.Unmarshal(m, b) +} +func (m *PermissionQuery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PermissionQuery.Marshal(b, m, deterministic) +} +func (m *PermissionQuery) XXX_Merge(src proto.Message) { + xxx_messageInfo_PermissionQuery.Merge(m, src) +} +func (m *PermissionQuery) XXX_Size() int { + return xxx_messageInfo_PermissionQuery.Size(m) +} +func (m *PermissionQuery) XXX_DiscardUnknown() { + xxx_messageInfo_PermissionQuery.DiscardUnknown(m) +} + +var xxx_messageInfo_PermissionQuery proto.InternalMessageInfo const Default_PermissionQuery_Flush bool = false @@ -1741,15 +2338,37 @@ type CodecVersion struct { // The version of the CELT Beta codec. Beta *int32 `protobuf:"varint,2,req,name=beta" json:"beta,omitempty"` // True if the user should prefer Alpha over Beta. - PreferAlpha *bool `protobuf:"varint,3,req,name=prefer_alpha,json=preferAlpha,def=1" json:"prefer_alpha,omitempty"` - Opus *bool `protobuf:"varint,4,opt,name=opus,def=0" json:"opus,omitempty"` - XXX_unrecognized []byte `json:"-"` + PreferAlpha *bool `protobuf:"varint,3,req,name=prefer_alpha,json=preferAlpha,def=1" json:"prefer_alpha,omitempty"` + Opus *bool `protobuf:"varint,4,opt,name=opus,def=0" json:"opus,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *CodecVersion) Reset() { *m = CodecVersion{} } -func (m *CodecVersion) String() string { return proto.CompactTextString(m) } -func (*CodecVersion) ProtoMessage() {} -func (*CodecVersion) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{21} } +func (m *CodecVersion) Reset() { *m = CodecVersion{} } +func (m *CodecVersion) String() string { return proto.CompactTextString(m) } +func (*CodecVersion) ProtoMessage() {} +func (*CodecVersion) Descriptor() ([]byte, []int) { + return fileDescriptor_56c09c2dce0fb003, []int{21} +} + +func (m *CodecVersion) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CodecVersion.Unmarshal(m, b) +} +func (m *CodecVersion) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CodecVersion.Marshal(b, m, deterministic) +} +func (m *CodecVersion) XXX_Merge(src proto.Message) { + xxx_messageInfo_CodecVersion.Merge(m, src) +} +func (m *CodecVersion) XXX_Size() int { + return xxx_messageInfo_CodecVersion.Size(m) +} +func (m *CodecVersion) XXX_DiscardUnknown() { + xxx_messageInfo_CodecVersion.DiscardUnknown(m) +} + +var xxx_messageInfo_CodecVersion proto.InternalMessageInfo const Default_CodecVersion_PreferAlpha bool = true const Default_CodecVersion_Opus bool = false @@ -1820,15 +2439,37 @@ type UserStats struct { // Duration since last activity. Idlesecs *uint32 `protobuf:"varint,17,opt,name=idlesecs" json:"idlesecs,omitempty"` // True if the user has a strong certificate. - StrongCertificate *bool `protobuf:"varint,18,opt,name=strong_certificate,json=strongCertificate,def=0" json:"strong_certificate,omitempty"` - Opus *bool `protobuf:"varint,19,opt,name=opus,def=0" json:"opus,omitempty"` - XXX_unrecognized []byte `json:"-"` + StrongCertificate *bool `protobuf:"varint,18,opt,name=strong_certificate,json=strongCertificate,def=0" json:"strong_certificate,omitempty"` + Opus *bool `protobuf:"varint,19,opt,name=opus,def=0" json:"opus,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *UserStats) Reset() { *m = UserStats{} } +func (m *UserStats) String() string { return proto.CompactTextString(m) } +func (*UserStats) ProtoMessage() {} +func (*UserStats) Descriptor() ([]byte, []int) { + return fileDescriptor_56c09c2dce0fb003, []int{22} } -func (m *UserStats) Reset() { *m = UserStats{} } -func (m *UserStats) String() string { return proto.CompactTextString(m) } -func (*UserStats) ProtoMessage() {} -func (*UserStats) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{22} } +func (m *UserStats) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UserStats.Unmarshal(m, b) +} +func (m *UserStats) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UserStats.Marshal(b, m, deterministic) +} +func (m *UserStats) XXX_Merge(src proto.Message) { + xxx_messageInfo_UserStats.Merge(m, src) +} +func (m *UserStats) XXX_Size() int { + return xxx_messageInfo_UserStats.Size(m) +} +func (m *UserStats) XXX_DiscardUnknown() { + xxx_messageInfo_UserStats.DiscardUnknown(m) +} + +var xxx_messageInfo_UserStats proto.InternalMessageInfo const Default_UserStats_StatsOnly bool = false const Default_UserStats_StrongCertificate bool = false @@ -1975,14 +2616,36 @@ type UserStats_Stats struct { // The amount of packets never received. Lost *uint32 `protobuf:"varint,3,opt,name=lost" json:"lost,omitempty"` // The amount of nonce resyncs. - Resync *uint32 `protobuf:"varint,4,opt,name=resync" json:"resync,omitempty"` - XXX_unrecognized []byte `json:"-"` + Resync *uint32 `protobuf:"varint,4,opt,name=resync" json:"resync,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *UserStats_Stats) Reset() { *m = UserStats_Stats{} } +func (m *UserStats_Stats) String() string { return proto.CompactTextString(m) } +func (*UserStats_Stats) ProtoMessage() {} +func (*UserStats_Stats) Descriptor() ([]byte, []int) { + return fileDescriptor_56c09c2dce0fb003, []int{22, 0} +} + +func (m *UserStats_Stats) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UserStats_Stats.Unmarshal(m, b) +} +func (m *UserStats_Stats) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UserStats_Stats.Marshal(b, m, deterministic) +} +func (m *UserStats_Stats) XXX_Merge(src proto.Message) { + xxx_messageInfo_UserStats_Stats.Merge(m, src) +} +func (m *UserStats_Stats) XXX_Size() int { + return xxx_messageInfo_UserStats_Stats.Size(m) +} +func (m *UserStats_Stats) XXX_DiscardUnknown() { + xxx_messageInfo_UserStats_Stats.DiscardUnknown(m) } -func (m *UserStats_Stats) Reset() { *m = UserStats_Stats{} } -func (m *UserStats_Stats) String() string { return proto.CompactTextString(m) } -func (*UserStats_Stats) ProtoMessage() {} -func (*UserStats_Stats) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{22, 0} } +var xxx_messageInfo_UserStats_Stats proto.InternalMessageInfo func (m *UserStats_Stats) GetGood() uint32 { if m != nil && m.Good != nil { @@ -2026,14 +2689,36 @@ type RequestBlob struct { // sessions of the requested UserState comments. SessionComment []uint32 `protobuf:"varint,2,rep,name=session_comment,json=sessionComment" json:"session_comment,omitempty"` // channel_ids of the requested ChannelState descriptions. - ChannelDescription []uint32 `protobuf:"varint,3,rep,name=channel_description,json=channelDescription" json:"channel_description,omitempty"` - XXX_unrecognized []byte `json:"-"` + ChannelDescription []uint32 `protobuf:"varint,3,rep,name=channel_description,json=channelDescription" json:"channel_description,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *RequestBlob) Reset() { *m = RequestBlob{} } -func (m *RequestBlob) String() string { return proto.CompactTextString(m) } -func (*RequestBlob) ProtoMessage() {} -func (*RequestBlob) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{23} } +func (m *RequestBlob) Reset() { *m = RequestBlob{} } +func (m *RequestBlob) String() string { return proto.CompactTextString(m) } +func (*RequestBlob) ProtoMessage() {} +func (*RequestBlob) Descriptor() ([]byte, []int) { + return fileDescriptor_56c09c2dce0fb003, []int{23} +} + +func (m *RequestBlob) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_RequestBlob.Unmarshal(m, b) +} +func (m *RequestBlob) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_RequestBlob.Marshal(b, m, deterministic) +} +func (m *RequestBlob) XXX_Merge(src proto.Message) { + xxx_messageInfo_RequestBlob.Merge(m, src) +} +func (m *RequestBlob) XXX_Size() int { + return xxx_messageInfo_RequestBlob.Size(m) +} +func (m *RequestBlob) XXX_DiscardUnknown() { + xxx_messageInfo_RequestBlob.DiscardUnknown(m) +} + +var xxx_messageInfo_RequestBlob proto.InternalMessageInfo func (m *RequestBlob) GetSessionTexture() []uint32 { if m != nil { @@ -2070,14 +2755,36 @@ type ServerConfig struct { // Maximum image message length. ImageMessageLength *uint32 `protobuf:"varint,5,opt,name=image_message_length,json=imageMessageLength" json:"image_message_length,omitempty"` // The maximum number of users allowed on the server. - MaxUsers *uint32 `protobuf:"varint,6,opt,name=max_users,json=maxUsers" json:"max_users,omitempty"` - XXX_unrecognized []byte `json:"-"` + MaxUsers *uint32 `protobuf:"varint,6,opt,name=max_users,json=maxUsers" json:"max_users,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *ServerConfig) Reset() { *m = ServerConfig{} } -func (m *ServerConfig) String() string { return proto.CompactTextString(m) } -func (*ServerConfig) ProtoMessage() {} -func (*ServerConfig) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{24} } +func (m *ServerConfig) Reset() { *m = ServerConfig{} } +func (m *ServerConfig) String() string { return proto.CompactTextString(m) } +func (*ServerConfig) ProtoMessage() {} +func (*ServerConfig) Descriptor() ([]byte, []int) { + return fileDescriptor_56c09c2dce0fb003, []int{24} +} + +func (m *ServerConfig) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ServerConfig.Unmarshal(m, b) +} +func (m *ServerConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ServerConfig.Marshal(b, m, deterministic) +} +func (m *ServerConfig) XXX_Merge(src proto.Message) { + xxx_messageInfo_ServerConfig.Merge(m, src) +} +func (m *ServerConfig) XXX_Size() int { + return xxx_messageInfo_ServerConfig.Size(m) +} +func (m *ServerConfig) XXX_DiscardUnknown() { + xxx_messageInfo_ServerConfig.DiscardUnknown(m) +} + +var xxx_messageInfo_ServerConfig proto.InternalMessageInfo func (m *ServerConfig) GetMaxBandwidth() uint32 { if m != nil && m.MaxBandwidth != nil { @@ -2130,14 +2837,36 @@ type SuggestConfig struct { // server. Positional *bool `protobuf:"varint,2,opt,name=positional" json:"positional,omitempty"` // True if the administrator suggests push to talk to be used on this server. - PushToTalk *bool `protobuf:"varint,3,opt,name=push_to_talk,json=pushToTalk" json:"push_to_talk,omitempty"` - XXX_unrecognized []byte `json:"-"` + PushToTalk *bool `protobuf:"varint,3,opt,name=push_to_talk,json=pushToTalk" json:"push_to_talk,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SuggestConfig) Reset() { *m = SuggestConfig{} } +func (m *SuggestConfig) String() string { return proto.CompactTextString(m) } +func (*SuggestConfig) ProtoMessage() {} +func (*SuggestConfig) Descriptor() ([]byte, []int) { + return fileDescriptor_56c09c2dce0fb003, []int{25} +} + +func (m *SuggestConfig) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SuggestConfig.Unmarshal(m, b) +} +func (m *SuggestConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SuggestConfig.Marshal(b, m, deterministic) +} +func (m *SuggestConfig) XXX_Merge(src proto.Message) { + xxx_messageInfo_SuggestConfig.Merge(m, src) +} +func (m *SuggestConfig) XXX_Size() int { + return xxx_messageInfo_SuggestConfig.Size(m) +} +func (m *SuggestConfig) XXX_DiscardUnknown() { + xxx_messageInfo_SuggestConfig.DiscardUnknown(m) } -func (m *SuggestConfig) Reset() { *m = SuggestConfig{} } -func (m *SuggestConfig) String() string { return proto.CompactTextString(m) } -func (*SuggestConfig) ProtoMessage() {} -func (*SuggestConfig) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{25} } +var xxx_messageInfo_SuggestConfig proto.InternalMessageInfo func (m *SuggestConfig) GetVersion() uint32 { if m != nil && m.Version != nil { @@ -2161,6 +2890,10 @@ func (m *SuggestConfig) GetPushToTalk() bool { } func init() { + proto.RegisterEnum("mumbleproto.Reject_RejectType", Reject_RejectType_name, Reject_RejectType_value) + proto.RegisterEnum("mumbleproto.PermissionDenied_DenyType", PermissionDenied_DenyType_name, PermissionDenied_DenyType_value) + proto.RegisterEnum("mumbleproto.ContextActionModify_Context", ContextActionModify_Context_name, ContextActionModify_Context_value) + proto.RegisterEnum("mumbleproto.ContextActionModify_Operation", ContextActionModify_Operation_name, ContextActionModify_Operation_value) proto.RegisterType((*Version)(nil), "mumbleproto.Version") proto.RegisterType((*UDPTunnel)(nil), "mumbleproto.UDPTunnel") proto.RegisterType((*Authenticate)(nil), "mumbleproto.Authenticate") @@ -2193,165 +2926,169 @@ func init() { proto.RegisterType((*RequestBlob)(nil), "mumbleproto.RequestBlob") proto.RegisterType((*ServerConfig)(nil), "mumbleproto.ServerConfig") proto.RegisterType((*SuggestConfig)(nil), "mumbleproto.SuggestConfig") - proto.RegisterEnum("mumbleproto.Reject_RejectType", Reject_RejectType_name, Reject_RejectType_value) - proto.RegisterEnum("mumbleproto.PermissionDenied_DenyType", PermissionDenied_DenyType_name, PermissionDenied_DenyType_value) - proto.RegisterEnum("mumbleproto.ContextActionModify_Context", ContextActionModify_Context_name, ContextActionModify_Context_value) - proto.RegisterEnum("mumbleproto.ContextActionModify_Operation", ContextActionModify_Operation_name, ContextActionModify_Operation_value) } -var fileDescriptor0 = []byte{ - // 2439 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xdc, 0x58, 0xcd, 0x73, 0x23, 0x47, - 0x15, 0x67, 0xf4, 0x65, 0xe9, 0x49, 0xb2, 0xe5, 0xd9, 0x25, 0x08, 0xe7, 0x6b, 0x33, 0x81, 0x60, - 0x20, 0x65, 0x82, 0x2b, 0x97, 0xa4, 0x8a, 0x83, 0xd7, 0x4b, 0xf0, 0x16, 0xeb, 0x8d, 0x19, 0x3b, - 0x9b, 0x03, 0x87, 0x61, 0xac, 0x69, 0x4b, 0x83, 0x47, 0x33, 0xc3, 0xf4, 0xc8, 0x1b, 0x55, 0x71, - 0x04, 0xae, 0x50, 0xc5, 0x81, 0x1b, 0x7f, 0x00, 0x45, 0xa5, 0x8a, 0x3f, 0x80, 0x0b, 0x7f, 0x01, - 0xff, 0x00, 0x17, 0xae, 0xdc, 0xa8, 0xe2, 0xce, 0xfb, 0xe8, 0xf9, 0xb2, 0xb5, 0xd9, 0x70, 0xe5, - 0x22, 0xcd, 0xfb, 0xf5, 0xeb, 0xee, 0xd7, 0xaf, 0xdf, 0x67, 0xc3, 0xe8, 0x74, 0xb5, 0xbc, 0x8c, - 0xd4, 0x41, 0x9a, 0x25, 0x79, 0x62, 0x0f, 0x97, 0x4c, 0x31, 0xe1, 0xfc, 0xd6, 0x82, 0xad, 0x67, - 0x2a, 0xd3, 0x61, 0x12, 0xdb, 0x6f, 0xc1, 0x68, 0x96, 0xad, 0xd3, 0x3c, 0xf1, 0x96, 0x49, 0xa0, - 0xf4, 0xb4, 0xfb, 0xa0, 0xbd, 0x3f, 0x70, 0x87, 0x82, 0x9d, 0x12, 0x64, 0x4f, 0x61, 0xeb, 0x46, - 0xb8, 0xa7, 0xd6, 0x03, 0x6b, 0x7f, 0xec, 0x16, 0x24, 0x8d, 0x64, 0x2a, 0x52, 0xbe, 0x56, 0xd3, - 0x16, 0x8e, 0x0c, 0xdc, 0x82, 0xb4, 0xb7, 0xa1, 0x95, 0xe8, 0x69, 0x9b, 0x41, 0xfc, 0xb2, 0x5f, - 0x07, 0x48, 0xb4, 0x57, 0x2c, 0xd3, 0x61, 0x7c, 0x90, 0x68, 0x23, 0x85, 0xf3, 0x36, 0x0c, 0x3e, - 0x79, 0x74, 0x76, 0xb1, 0x8a, 0x63, 0x15, 0xd9, 0xaf, 0x40, 0x2f, 0xf5, 0x67, 0xd7, 0x2a, 0xc7, - 0xed, 0x5a, 0xfb, 0x23, 0xd7, 0x50, 0xce, 0x1f, 0x2d, 0x18, 0x1d, 0xad, 0xf2, 0x85, 0x8a, 0xf3, - 0x70, 0xe6, 0xe7, 0xca, 0xde, 0x83, 0xfe, 0x4a, 0xab, 0x2c, 0xf6, 0x97, 0x8a, 0x25, 0x1b, 0xb8, - 0x25, 0x4d, 0x63, 0xa9, 0xaf, 0xf5, 0xf3, 0x24, 0x0b, 0x8c, 0x6c, 0x25, 0x4d, 0x1b, 0xe4, 0xc9, - 0xb5, 0x8a, 0x49, 0x40, 0x3a, 0xad, 0xa1, 0xec, 0xb7, 0x61, 0x3c, 0x53, 0x51, 0x5e, 0x88, 0xa9, - 0x51, 0xce, 0xf6, 0x7e, 0xd7, 0x1d, 0x11, 0x68, 0x24, 0xd5, 0xf6, 0xd7, 0xa1, 0x93, 0xa4, 0x2b, - 0x52, 0x94, 0xb5, 0xdf, 0xff, 0xb0, 0x7b, 0xe5, 0x47, 0x5a, 0xb9, 0x0c, 0x39, 0x7f, 0x6b, 0x41, - 0xe7, 0x2c, 0x8c, 0xe7, 0xf6, 0x6b, 0x30, 0xc8, 0xc3, 0xa5, 0xd2, 0xb9, 0xbf, 0x4c, 0x59, 0xb2, - 0x8e, 0x5b, 0x01, 0xb6, 0x0d, 0x9d, 0x79, 0x92, 0x88, 0x58, 0x63, 0x97, 0xbf, 0x09, 0x8b, 0xf0, - 0x48, 0xac, 0x31, 0xc4, 0xe8, 0x9b, 0xb1, 0x44, 0xe7, 0xac, 0x2d, 0xc2, 0xf0, 0x9b, 0x44, 0xcf, - 0x94, 0x5e, 0xc7, 0x33, 0xde, 0x7f, 0xec, 0x1a, 0xca, 0x7e, 0x13, 0x86, 0xab, 0x20, 0xf5, 0x44, - 0x53, 0x7a, 0xda, 0xe3, 0x41, 0x40, 0xe8, 0x4c, 0x10, 0x62, 0xc8, 0x67, 0x15, 0xc3, 0x96, 0x30, - 0x20, 0x54, 0x30, 0x3c, 0x80, 0x11, 0xaf, 0x80, 0xf2, 0x7b, 0xfe, 0xcd, 0x7c, 0xda, 0x47, 0x8e, - 0x96, 0x2c, 0x81, 0xd0, 0xd1, 0xcd, 0xbc, 0xc1, 0x71, 0xe3, 0x67, 0xd3, 0x41, 0x83, 0xe3, 0x99, - 0x9f, 0x11, 0x07, 0x6f, 0x52, 0xac, 0x01, 0xc2, 0x41, 0xbb, 0x54, 0x6b, 0x94, 0x1c, 0xb4, 0xc6, - 0xb0, 0xc1, 0x81, 0x6b, 0x38, 0xbf, 0x6e, 0x41, 0xcf, 0x55, 0x3f, 0x57, 0xb3, 0xdc, 0x3e, 0x84, - 0x4e, 0xbe, 0x4e, 0xe5, 0x6e, 0xb7, 0x0f, 0xdf, 0x38, 0xa8, 0xd9, 0xf0, 0x81, 0xb0, 0x98, 0xbf, - 0x0b, 0xe4, 0x72, 0x99, 0x57, 0x14, 0xe4, 0x6b, 0x34, 0x32, 0xb9, 0x75, 0x43, 0x39, 0x9f, 0x5b, - 0x00, 0x15, 0xb3, 0xdd, 0x87, 0xce, 0xd3, 0x24, 0x56, 0x93, 0xaf, 0xd8, 0x13, 0x18, 0x7d, 0x9a, - 0x25, 0xb8, 0xb7, 0x5c, 0xf0, 0xc4, 0xb2, 0xef, 0xc1, 0xce, 0xe3, 0xf8, 0xc6, 0x8f, 0xc2, 0xe0, - 0x13, 0x63, 0x4d, 0x93, 0x96, 0xbd, 0x03, 0x43, 0x66, 0x23, 0xe8, 0xec, 0xd3, 0x49, 0xdb, 0xde, - 0x85, 0x31, 0x03, 0xe7, 0x2a, 0xbb, 0x61, 0xa8, 0x43, 0x50, 0x31, 0xe3, 0x71, 0x8c, 0x5f, 0x93, - 0x2e, 0xfa, 0x01, 0x08, 0xc3, 0x47, 0xab, 0x28, 0x9a, 0xf4, 0x88, 0xe5, 0x69, 0x72, 0xac, 0xb2, - 0x3c, 0xbc, 0x62, 0x1b, 0x9e, 0x6c, 0xd9, 0x5f, 0x85, 0xdd, 0x9a, 0x55, 0x27, 0xd9, 0x47, 0x7e, - 0x18, 0x4d, 0xfa, 0xce, 0xef, 0xac, 0x62, 0xea, 0x39, 0x5d, 0x30, 0xba, 0x9a, 0x56, 0xba, 0xee, - 0x84, 0x86, 0x24, 0xab, 0x5d, 0xfa, 0x9f, 0x79, 0x97, 0x7e, 0x1c, 0x3c, 0x0f, 0x83, 0x7c, 0x61, - 0xec, 0x6a, 0x84, 0xe0, 0xc3, 0x02, 0x23, 0x37, 0x7f, 0xae, 0xa2, 0x59, 0xb2, 0x54, 0x5e, 0xae, - 0x3e, 0xcb, 0x8d, 0x67, 0x0e, 0x0d, 0x76, 0x81, 0x10, 0x5e, 0xcd, 0x30, 0x55, 0xd9, 0x32, 0xd4, - 0x85, 0xed, 0x93, 0xd9, 0xd6, 0x21, 0xe7, 0x00, 0xc6, 0xc7, 0x0b, 0x9f, 0x7c, 0xd4, 0x55, 0xcb, - 0xe4, 0x46, 0x91, 0x57, 0xcf, 0x04, 0xf0, 0xc2, 0x80, 0xbd, 0x75, 0xec, 0x0e, 0x0c, 0xf2, 0x38, - 0x70, 0xfe, 0xd1, 0x82, 0x91, 0x99, 0x70, 0x9e, 0x93, 0x45, 0xdf, 0xe6, 0xb7, 0x1a, 0xfc, 0xe2, - 0xf8, 0x19, 0x2a, 0xc2, 0x1c, 0xc1, 0x50, 0xe4, 0x08, 0xec, 0xe3, 0x22, 0x34, 0x7f, 0xdb, 0xf7, - 0xa1, 0x1b, 0x85, 0xf1, 0xb5, 0xf8, 0xe8, 0xd8, 0x15, 0x82, 0xce, 0x80, 0x11, 0x6b, 0x96, 0x85, - 0x69, 0x4e, 0x9a, 0xea, 0xca, 0x29, 0x6b, 0x90, 0xfd, 0x2a, 0x0c, 0x98, 0xd5, 0xf3, 0x83, 0x00, - 0xdd, 0x84, 0xe6, 0xf6, 0x19, 0x38, 0x0a, 0x02, 0xd2, 0x92, 0x0c, 0x66, 0x7c, 0x3e, 0xf4, 0x12, - 0x1a, 0x1f, 0x32, 0x66, 0x8e, 0x8c, 0x91, 0x2a, 0x57, 0xcb, 0x34, 0xc9, 0xfc, 0x6c, 0xcd, 0x3e, - 0x52, 0xc6, 0x80, 0x0a, 0xc7, 0x73, 0xf6, 0xd3, 0x44, 0x87, 0x2c, 0x03, 0x79, 0x49, 0xf7, 0x43, - 0xeb, 0x3d, 0xb7, 0x84, 0xec, 0x6f, 0xc3, 0xa4, 0x26, 0x92, 0xb7, 0xf0, 0xf5, 0x82, 0x5d, 0x65, - 0xe4, 0xee, 0xd4, 0xf0, 0x13, 0x84, 0x49, 0x5c, 0xba, 0x5c, 0x0a, 0x6b, 0x9a, 0x9d, 0x05, 0xc5, - 0x45, 0x80, 0xcc, 0x4c, 0x3b, 0x57, 0x00, 0xf4, 0x61, 0x24, 0x6b, 0x58, 0x48, 0xab, 0x6e, 0x21, - 0xa8, 0x2b, 0x7f, 0x86, 0x96, 0x65, 0xd4, 0x2a, 0x44, 0xcd, 0x53, 0xda, 0x75, 0x4f, 0x41, 0x87, - 0x68, 0xa3, 0x2d, 0xf1, 0xfd, 0xf7, 0x5d, 0xfa, 0x74, 0xfe, 0xdc, 0xc1, 0xf0, 0x8c, 0x1b, 0xc9, - 0x25, 0xbe, 0xd8, 0x12, 0x37, 0xef, 0xb3, 0xe9, 0xf6, 0xbe, 0x06, 0x5b, 0x74, 0x24, 0xb2, 0x02, - 0x89, 0x6e, 0x3d, 0x22, 0xd1, 0x04, 0x9a, 0x16, 0xd2, 0xbd, 0x6d, 0x21, 0xb8, 0xd6, 0x72, 0x85, - 0x61, 0xb2, 0xc7, 0xc2, 0xf1, 0x37, 0x61, 0x81, 0xf2, 0xaf, 0x38, 0xa4, 0x21, 0x46, 0xdf, 0x14, - 0xfd, 0xf5, 0x2a, 0x4d, 0x31, 0x38, 0x6a, 0xb9, 0x24, 0xb7, 0xa4, 0x49, 0xa5, 0x5a, 0x45, 0x57, - 0x1e, 0x2f, 0x34, 0x30, 0x83, 0x08, 0x9c, 0xd2, 0x62, 0xc5, 0x20, 0xaf, 0x08, 0xd5, 0xe0, 0x23, - 0x5a, 0x15, 0x4f, 0x4e, 0xce, 0xb3, 0xca, 0x14, 0x5f, 0xc5, 0xc8, 0x2d, 0x48, 0xfb, 0x9b, 0xb0, - 0x9d, 0x46, 0xab, 0x79, 0x18, 0x7b, 0xb3, 0x24, 0x66, 0x07, 0x1b, 0x31, 0xc3, 0x58, 0xd0, 0x63, - 0x01, 0xed, 0x6f, 0xc1, 0x8e, 0x61, 0x0b, 0x03, 0xf2, 0xf7, 0x7c, 0x3d, 0x1d, 0xb3, 0x56, 0xcc, - 0xec, 0xc7, 0x06, 0xa5, 0x9d, 0xd0, 0x2f, 0x97, 0xe4, 0x0a, 0xdb, 0x92, 0x58, 0x0d, 0x49, 0xa7, - 0x65, 0x7b, 0xd9, 0x11, 0x6d, 0xd2, 0x37, 0xe7, 0x70, 0x19, 0x16, 0x5b, 0x9a, 0xf0, 0xde, 0x43, - 0x83, 0x9d, 0x18, 0x16, 0x23, 0xab, 0xb0, 0xec, 0x0a, 0x8b, 0xc1, 0x98, 0x05, 0xad, 0x32, 0xcd, - 0xc2, 0x24, 0xc3, 0xfd, 0x3d, 0x9d, 0x2a, 0xff, 0x5a, 0x65, 0x53, 0x9b, 0x35, 0xb0, 0x53, 0xe0, - 0xe7, 0x02, 0x53, 0x7e, 0xcb, 0xd4, 0x0c, 0x53, 0x29, 0xc6, 0xec, 0xe9, 0x3d, 0xe6, 0xa9, 0x00, - 0xe7, 0x37, 0x2d, 0xd8, 0xc2, 0xc8, 0xf3, 0x24, 0xc4, 0x7c, 0xf5, 0x7d, 0xe8, 0xa0, 0x05, 0x69, - 0xb4, 0x94, 0xf6, 0xfe, 0xf0, 0xf0, 0xf5, 0x46, 0x08, 0x37, 0x3c, 0xf4, 0xff, 0xc3, 0x38, 0xcf, - 0xd6, 0x2e, 0xb3, 0xe2, 0x15, 0x74, 0x7f, 0xb1, 0x52, 0xe8, 0x5d, 0xad, 0xba, 0x77, 0x09, 0xb6, - 0xf7, 0x27, 0x0b, 0xfa, 0x05, 0x3f, 0x69, 0x09, 0xbd, 0x98, 0x2f, 0x59, 0x2a, 0x85, 0x82, 0x64, - 0x3b, 0xf1, 0xf5, 0x35, 0x2e, 0x41, 0x8e, 0xc0, 0xdf, 0x1b, 0xed, 0xb0, 0xd0, 0x66, 0xa7, 0xa6, - 0xcd, 0xca, 0x2f, 0xba, 0x0d, 0xbf, 0x40, 0xeb, 0xc6, 0xfc, 0x9d, 0xe5, 0x6c, 0x7c, 0x03, 0x57, - 0x08, 0xb2, 0xb4, 0x60, 0x95, 0xf9, 0xec, 0xea, 0x92, 0x54, 0x4b, 0x9a, 0xea, 0xac, 0x21, 0x85, - 0xd6, 0x53, 0x14, 0xc9, 0x9f, 0xab, 0xca, 0x3f, 0xac, 0xba, 0x7f, 0xd4, 0xfc, 0xa9, 0xc5, 0xf1, - 0xa6, 0xf4, 0xa7, 0xa6, 0x33, 0xb4, 0x79, 0xb0, 0xe6, 0x0c, 0xe8, 0x44, 0x79, 0xa6, 0x94, 0x38, - 0x11, 0x8d, 0xf5, 0x88, 0xc4, 0x01, 0x5c, 0x71, 0x29, 0x5b, 0xe2, 0x11, 0x5a, 0x64, 0x3d, 0x86, - 0x74, 0x7e, 0xdf, 0x86, 0xc9, 0x59, 0x19, 0xd1, 0x1f, 0xa9, 0x38, 0x54, 0x81, 0xfd, 0x06, 0x40, - 0x15, 0xe5, 0x8d, 0x6c, 0x35, 0xe4, 0x96, 0x18, 0xad, 0xdb, 0x3e, 0x59, 0x93, 0xbf, 0xdd, 0x8c, - 0x07, 0x95, 0x26, 0x3b, 0x0d, 0x4d, 0x7e, 0x68, 0xf2, 0x7a, 0x97, 0xf3, 0xfa, 0x3b, 0x0d, 0xa3, - 0xb8, 0x2d, 0xdd, 0x01, 0xfe, 0xad, 0x6b, 0xf9, 0xbd, 0xb8, 0xc5, 0x5e, 0x75, 0x8b, 0xce, 0x5f, - 0xd1, 0x28, 0x0a, 0x36, 0xca, 0xec, 0xa4, 0x73, 0xcc, 0xec, 0x98, 0x7b, 0xab, 0xd5, 0x30, 0xaf, - 0x8f, 0x61, 0x70, 0xbe, 0xc2, 0x73, 0x51, 0x28, 0x93, 0x8c, 0x6e, 0x92, 0xd3, 0x53, 0x4a, 0xf1, - 0x6d, 0x02, 0x68, 0xe6, 0x45, 0x92, 0x3c, 0xc1, 0xbc, 0x8e, 0xf9, 0x7c, 0x0b, 0xda, 0x27, 0x1f, - 0xfc, 0x18, 0xb3, 0xf8, 0x7d, 0x98, 0x5c, 0x14, 0xc1, 0xdd, 0xcc, 0xc1, 0x5c, 0xfe, 0x0a, 0xd8, - 0xa7, 0xb4, 0x78, 0x3c, 0x6f, 0x26, 0xf4, 0x11, 0xf4, 0x69, 0x0b, 0x5e, 0xb5, 0x5f, 0xdb, 0x86, - 0x4b, 0x80, 0x01, 0x15, 0x1c, 0x4f, 0xb1, 0x12, 0xc4, 0x69, 0x4f, 0xc2, 0x65, 0x98, 0x4f, 0xc0, - 0xf9, 0x55, 0x17, 0xda, 0x47, 0xc7, 0x4f, 0x5e, 0x92, 0x4e, 0x31, 0x7a, 0x8c, 0xc2, 0x78, 0xa1, - 0xd0, 0x11, 0x3d, 0x7f, 0x16, 0x69, 0xe3, 0x1f, 0x9d, 0x3c, 0x5b, 0x29, 0x77, 0x68, 0x46, 0x8e, - 0x70, 0x00, 0xeb, 0xa6, 0xde, 0x3c, 0x4b, 0x56, 0xa9, 0xd4, 0xb7, 0xc3, 0xc3, 0xbd, 0x86, 0x86, - 0x71, 0xa7, 0x03, 0x92, 0xe8, 0x47, 0xc4, 0xe2, 0x1a, 0x4e, 0xfb, 0x5d, 0xe8, 0xf0, 0xa2, 0x1d, - 0x9e, 0x31, 0xdd, 0x38, 0x03, 0xff, 0x5d, 0xe6, 0xaa, 0x7c, 0xb4, 0xbb, 0xc1, 0x47, 0xff, 0x69, - 0xc1, 0xa0, 0xdc, 0xa0, 0xbc, 0x30, 0x8b, 0x2d, 0x51, 0xdc, 0xce, 0x81, 0x81, 0x91, 0x57, 0x05, - 0x8d, 0x63, 0x54, 0x30, 0x5a, 0xe5, 0x96, 0x21, 0xd8, 0xac, 0x0a, 0x8e, 0x02, 0xb4, 0xdf, 0x81, - 0xe2, 0xcc, 0x3e, 0x0a, 0x2a, 0xe9, 0xea, 0x96, 0x32, 0x68, 0x80, 0xd2, 0x19, 0xa5, 0xfa, 0x2e, - 0x7b, 0x08, 0x7d, 0x8a, 0x59, 0x72, 0x7e, 0x97, 0xfc, 0x6f, 0x28, 0xfb, 0xbb, 0xb0, 0x5b, 0x6e, - 0xef, 0x2d, 0xd5, 0xf2, 0x92, 0x72, 0xae, 0x94, 0x00, 0x93, 0x72, 0xe0, 0x54, 0xf0, 0xbd, 0xbf, - 0x63, 0x0f, 0x65, 0x74, 0x82, 0x35, 0x01, 0xf8, 0x69, 0x1a, 0xad, 0x3d, 0xe4, 0x91, 0x6a, 0xb5, - 0x3c, 0x0f, 0xe3, 0x27, 0x08, 0x57, 0x4c, 0x7a, 0x75, 0xd9, 0xbc, 0x3b, 0x61, 0x3a, 0x47, 0xb8, - 0xa9, 0x98, 0xf6, 0x66, 0xc5, 0xbc, 0x30, 0x77, 0x62, 0x78, 0xe1, 0xcb, 0x34, 0x71, 0x4b, 0x08, - 0x41, 0xfd, 0x38, 0x37, 0x3d, 0x81, 0x10, 0x92, 0x34, 0xe3, 0xb5, 0x09, 0x59, 0xfc, 0xed, 0xbc, - 0x0f, 0xf0, 0x13, 0xba, 0x40, 0x2e, 0x2e, 0x48, 0x6f, 0x61, 0x20, 0x81, 0x1b, 0xf5, 0x86, 0x9f, - 0xb4, 0x12, 0xdd, 0x9e, 0xe6, 0x30, 0x85, 0xeb, 0x33, 0xe1, 0x04, 0x00, 0xc7, 0xd4, 0x2c, 0x9e, - 0xab, 0x1c, 0x77, 0xc3, 0x59, 0xd7, 0x6a, 0xcd, 0x3a, 0x18, 0xb9, 0xf4, 0xc9, 0xc9, 0x29, 0x0a, - 0x29, 0x37, 0xc5, 0x49, 0x3c, 0x93, 0x46, 0x91, 0x92, 0x13, 0x63, 0x4f, 0x09, 0x22, 0x16, 0xcd, - 0x95, 0xae, 0x61, 0x69, 0x0b, 0x8b, 0x60, 0xcc, 0xe2, 0xfc, 0xc7, 0x82, 0x7b, 0x26, 0x8b, 0x1e, - 0xcd, 0x28, 0xb8, 0x62, 0x6b, 0x1a, 0x5e, 0xad, 0xe9, 0x2e, 0x7d, 0xa6, 0x8d, 0x7d, 0x19, 0x8a, - 0xce, 0xc7, 0x69, 0x58, 0x9a, 0x00, 0xfe, 0x96, 0xa4, 0x1a, 0x97, 0xe5, 0xef, 0xd8, 0x2d, 0x48, - 0xfb, 0x04, 0x06, 0x09, 0x06, 0x06, 0x89, 0xe2, 0x1d, 0x8e, 0x4a, 0xdf, 0x69, 0x78, 0xc0, 0x86, - 0xad, 0x0f, 0x3e, 0x2e, 0x66, 0xb8, 0xd5, 0x64, 0xe7, 0x5d, 0xb4, 0x0a, 0xb3, 0x28, 0x40, 0x4f, - 0xea, 0x77, 0x0c, 0x3d, 0x43, 0x31, 0x16, 0x8a, 0x1b, 0x2d, 0x8a, 0x50, 0x1c, 0x82, 0x3a, 0xce, - 0x03, 0x18, 0x94, 0xab, 0x50, 0xb4, 0xc1, 0x1a, 0x14, 0xe3, 0x16, 0x50, 0x03, 0x44, 0x16, 0x39, - 0xb1, 0x9c, 0x9f, 0x61, 0xc9, 0x5d, 0xdf, 0xfb, 0x0b, 0xaa, 0xaf, 0x97, 0x84, 0xe9, 0x4a, 0x53, - 0xed, 0xba, 0xa6, 0x9c, 0xbf, 0x58, 0x12, 0xae, 0x38, 0x5d, 0xbf, 0x07, 0x5d, 0x29, 0x35, 0xad, - 0x0d, 0x81, 0xa3, 0xe0, 0xe2, 0x0f, 0x57, 0x18, 0xf7, 0xb4, 0x1c, 0xa6, 0x6e, 0x95, 0x12, 0xb8, - 0x0a, 0xab, 0x2c, 0xfc, 0xbf, 0x55, 0x4b, 0xbb, 0x54, 0x84, 0xfb, 0x3a, 0xf7, 0xb4, 0x52, 0x45, - 0xf5, 0xd9, 0x27, 0xe0, 0x1c, 0x69, 0x2e, 0xc2, 0x69, 0xd0, 0x88, 0x6e, 0x8c, 0x7c, 0x48, 0x98, - 0xd1, 0xa1, 0xf3, 0x6f, 0x4c, 0xac, 0xcf, 0x92, 0x70, 0xa6, 0x2e, 0xfc, 0x6c, 0xae, 0x72, 0x7a, - 0x6d, 0x28, 0xfb, 0x09, 0xfc, 0xb2, 0x3f, 0xc0, 0xcc, 0xc8, 0x23, 0x62, 0xab, 0xc3, 0xc3, 0x37, - 0x1b, 0x07, 0xa9, 0x4d, 0x3d, 0x90, 0x3f, 0xb7, 0xe0, 0xdf, 0xfb, 0x83, 0x05, 0x3d, 0xb3, 0x6a, - 0x43, 0xd5, 0xed, 0xff, 0x41, 0xd5, 0xa5, 0x23, 0xb6, 0xeb, 0x8e, 0xf8, 0x6a, 0xd5, 0xb1, 0xd4, - 0x63, 0xa6, 0x34, 0x2e, 0x6f, 0x41, 0x7f, 0xb6, 0x08, 0x23, 0xac, 0x5e, 0xe2, 0x66, 0x4c, 0x2d, - 0x61, 0x27, 0x81, 0x9d, 0x2a, 0x9d, 0xb1, 0xa3, 0xbe, 0xac, 0x9f, 0xba, 0xd5, 0xd1, 0x89, 0x9c, - 0x75, 0x88, 0x64, 0xba, 0x8a, 0x56, 0x58, 0x00, 0xb5, 0x1b, 0x32, 0x31, 0xe6, 0xfc, 0x12, 0xbb, - 0xb7, 0x24, 0x50, 0xb3, 0xe2, 0xa9, 0x88, 0xca, 0x97, 0x28, 0x5d, 0xf8, 0x7c, 0xc1, 0x5d, 0x57, - 0x08, 0xba, 0xdf, 0x4b, 0x95, 0xfb, 0x5c, 0x6a, 0x75, 0x5d, 0xfe, 0xa6, 0x4c, 0x85, 0xb5, 0xf6, - 0x15, 0x9a, 0x83, 0x4c, 0x20, 0x8b, 0x2b, 0x83, 0xb3, 0x8c, 0x1c, 0xf1, 0xe4, 0xe2, 0x31, 0xa5, - 0x73, 0xf7, 0x31, 0xe5, 0xf3, 0x5e, 0xd5, 0x74, 0xe8, 0x2f, 0x30, 0xfb, 0x6f, 0x00, 0x68, 0x62, - 0xf1, 0x92, 0x38, 0xba, 0x55, 0x33, 0x0e, 0x78, 0xe0, 0x63, 0xc4, 0x31, 0xb0, 0x8e, 0x66, 0x55, - 0x92, 0x96, 0xc4, 0x38, 0x72, 0x1b, 0x98, 0xfd, 0x03, 0x18, 0x5e, 0x65, 0xc9, 0xd2, 0x93, 0xd0, - 0xc4, 0x32, 0x0d, 0x0f, 0x5f, 0xbb, 0xe3, 0x02, 0x2c, 0xd0, 0x01, 0xff, 0xba, 0x40, 0x13, 0x8e, - 0x99, 0xbf, 0x9c, 0x2e, 0x61, 0x8b, 0x6f, 0xf1, 0x4b, 0x4d, 0x97, 0x20, 0xf1, 0xff, 0xf3, 0x82, - 0x63, 0x1f, 0x54, 0xef, 0x85, 0x23, 0x56, 0xc2, 0xfd, 0xa6, 0xf7, 0xc9, 0x58, 0xf5, 0x8a, 0x78, - 0xe7, 0xd9, 0x6d, 0xbc, 0xe1, 0xd9, 0xad, 0x56, 0xeb, 0x6f, 0x4b, 0xef, 0x55, 0xd4, 0xfa, 0xd8, - 0x8c, 0x54, 0x6f, 0x1f, 0x3b, 0xe2, 0x03, 0x25, 0x40, 0xc5, 0x2d, 0x1a, 0x46, 0x18, 0x2b, 0xad, - 0x66, 0x9a, 0x3b, 0x23, 0x54, 0x5a, 0x85, 0x50, 0xfd, 0x1e, 0x06, 0x91, 0x8c, 0xee, 0x4a, 0xfd, - 0x5e, 0xd0, 0xf6, 0xfb, 0x60, 0xeb, 0x9c, 0xde, 0x78, 0xbc, 0x9a, 0x9d, 0x48, 0x4f, 0x54, 0x98, - 0xd8, 0xae, 0x30, 0xd4, 0x0a, 0xc0, 0xd2, 0xa6, 0xef, 0xdd, 0xb1, 0xe9, 0xbd, 0x9f, 0x42, 0x57, - 0xcc, 0xb9, 0x78, 0x02, 0xb4, 0x36, 0x3c, 0x01, 0xb6, 0x36, 0x3c, 0x01, 0xb6, 0x37, 0x3e, 0x01, - 0x76, 0xea, 0x4f, 0x80, 0xf4, 0x60, 0x34, 0x74, 0x15, 0x96, 0x60, 0x3a, 0x7f, 0x18, 0x25, 0x97, - 0xd4, 0x6c, 0x1a, 0x1f, 0xf1, 0x8a, 0xae, 0x55, 0xc2, 0xd8, 0xb6, 0x81, 0x2f, 0x4c, 0xf3, 0x5a, - 0x63, 0x2c, 0x9a, 0xce, 0x56, 0x83, 0xf1, 0xd8, 0xf4, 0x9e, 0xdf, 0x83, 0x7b, 0x45, 0xb8, 0xa9, - 0xbf, 0xb2, 0x48, 0x63, 0x62, 0x9b, 0xa1, 0x47, 0xd5, 0x88, 0xf3, 0x2f, 0x0b, 0x46, 0x62, 0xde, - 0x98, 0xc4, 0xae, 0xc2, 0xf9, 0xdd, 0xb7, 0x2a, 0xeb, 0x4b, 0xbc, 0x55, 0xb5, 0xee, 0xbe, 0x55, - 0x61, 0xe0, 0xf3, 0xa3, 0x28, 0x79, 0xee, 0x2d, 0xf2, 0x65, 0x24, 0xc1, 0x0b, 0xcb, 0x28, 0x42, - 0x4e, 0x10, 0xa0, 0x76, 0xdc, 0x74, 0x3c, 0x5e, 0xa4, 0xe2, 0x79, 0xbe, 0x30, 0xaa, 0x1a, 0x1b, - 0xf4, 0x09, 0x83, 0x98, 0xed, 0xee, 0x87, 0x4b, 0x62, 0xba, 0xc5, 0x2c, 0xcf, 0x0e, 0x36, 0x8f, - 0x9d, 0x36, 0x66, 0x34, 0x9e, 0x63, 0x7a, 0xb7, 0x9e, 0x63, 0xae, 0x61, 0x7c, 0xbe, 0x9a, 0xcf, - 0x51, 0xff, 0xe6, 0xb4, 0x2f, 0x7e, 0x38, 0xa7, 0x96, 0xcb, 0xbc, 0x06, 0xf9, 0x91, 0x04, 0x2d, - 0xb7, 0x86, 0x90, 0x93, 0xa1, 0xbd, 0x2c, 0xbc, 0x3c, 0xf1, 0x72, 0x3f, 0xba, 0x36, 0x27, 0x04, - 0xc2, 0x2e, 0x92, 0x0b, 0x44, 0x1e, 0xb6, 0x4e, 0xac, 0xff, 0x06, 0x00, 0x00, 0xff, 0xff, 0x32, - 0xa6, 0x1d, 0x72, 0xe3, 0x17, 0x00, 0x00, +func init() { proto.RegisterFile("Mumble.proto", fileDescriptor_56c09c2dce0fb003) } + +var fileDescriptor_56c09c2dce0fb003 = []byte{ + // 2540 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x58, 0xcd, 0x72, 0x24, 0x47, + 0x11, 0x76, 0xcf, 0xff, 0xe4, 0xcc, 0x48, 0xad, 0x5a, 0xd9, 0x1e, 0x64, 0xaf, 0x2d, 0xf7, 0x82, + 0x2d, 0x83, 0x43, 0x18, 0x85, 0x83, 0x08, 0x3b, 0x82, 0x83, 0x56, 0x6b, 0xa3, 0x0d, 0xa4, 0xf5, + 0xd2, 0x92, 0xd7, 0x07, 0x0e, 0x4d, 0xa9, 0xbb, 0x34, 0xd3, 0xa8, 0xa7, 0xab, 0xdd, 0x55, 0xad, + 0xdd, 0x89, 0xe0, 0x08, 0x5c, 0xf1, 0x8d, 0x1b, 0x0f, 0xe0, 0x83, 0x23, 0x78, 0x05, 0x9e, 0x80, + 0x03, 0x4f, 0x40, 0x70, 0xe3, 0x46, 0x04, 0x77, 0x22, 0xb3, 0xaa, 0xff, 0xb4, 0xb2, 0xd7, 0x5c, + 0xb9, 0xcc, 0x74, 0x7e, 0x99, 0x55, 0x95, 0x95, 0x95, 0x7f, 0x55, 0x30, 0x3d, 0x2d, 0x56, 0x17, + 0x89, 0xd8, 0xcf, 0x72, 0xa9, 0x25, 0x9b, 0xac, 0x88, 0x22, 0xc2, 0xfb, 0xa3, 0x03, 0xc3, 0x27, + 0x22, 0x57, 0xb1, 0x4c, 0xd9, 0x5b, 0x30, 0x0d, 0xf3, 0x75, 0xa6, 0x65, 0xb0, 0x92, 0x91, 0x50, + 0xf3, 0xfe, 0x6e, 0x77, 0x6f, 0xec, 0x4f, 0x0c, 0x76, 0x8a, 0x10, 0x9b, 0xc3, 0xf0, 0xda, 0x48, + 0xcf, 0x9d, 0x5d, 0x67, 0x6f, 0xe6, 0x97, 0x24, 0x72, 0x72, 0x91, 0x08, 0xae, 0xc4, 0xbc, 0xb3, + 0xeb, 0xec, 0x8d, 0xfd, 0x92, 0x64, 0x1b, 0xd0, 0x91, 0x6a, 0xde, 0x25, 0xb0, 0x23, 0x15, 0xbb, + 0x0b, 0x20, 0x55, 0x50, 0x4e, 0xd3, 0x23, 0x7c, 0x2c, 0x95, 0xd5, 0xc2, 0xbb, 0x07, 0xe3, 0xcf, + 0x1e, 0x3c, 0x3e, 0x2f, 0xd2, 0x54, 0x24, 0xec, 0x15, 0x18, 0x64, 0x3c, 0xbc, 0x12, 0x7a, 0xee, + 0xec, 0x76, 0xf6, 0xa6, 0xbe, 0xa5, 0xbc, 0x3f, 0x3b, 0x30, 0x3d, 0x2c, 0xf4, 0x52, 0xa4, 0x3a, + 0x0e, 0xb9, 0x16, 0x6c, 0x07, 0x46, 0x85, 0x12, 0x79, 0xca, 0x57, 0x82, 0x34, 0x1b, 0xfb, 0x15, + 0x8d, 0xbc, 0x8c, 0x2b, 0xf5, 0x54, 0xe6, 0x91, 0xd5, 0xad, 0xa2, 0x71, 0x01, 0x2d, 0xaf, 0x44, + 0x8a, 0x0a, 0xe2, 0x6e, 0x2d, 0xc5, 0xee, 0xc1, 0x2c, 0x14, 0x89, 0x2e, 0xd5, 0x54, 0xf3, 0xde, + 0x6e, 0x77, 0xaf, 0xef, 0x4f, 0x11, 0xb4, 0x9a, 0x2a, 0xf6, 0x3d, 0xe8, 0xc9, 0xac, 0x40, 0x43, + 0x39, 0x7b, 0xa3, 0x8f, 0xfa, 0x97, 0x3c, 0x51, 0xc2, 0x27, 0xc8, 0xfb, 0x6b, 0x07, 0x7a, 0x8f, + 0xe3, 0x74, 0xc1, 0x5e, 0x87, 0xb1, 0x8e, 0x57, 0x42, 0x69, 0xbe, 0xca, 0x48, 0xb3, 0x9e, 0x5f, + 0x03, 0x8c, 0x41, 0x6f, 0x21, 0xa5, 0x51, 0x6b, 0xe6, 0xd3, 0x37, 0x62, 0x09, 0xd7, 0x82, 0x2c, + 0x36, 0xf3, 0xe9, 0x9b, 0x30, 0xa9, 0x34, 0x59, 0x0b, 0x31, 0xa9, 0x34, 0xaa, 0x9e, 0x0b, 0xb5, + 0x4e, 0x43, 0x5a, 0x7f, 0xe6, 0x5b, 0x8a, 0xbd, 0x09, 0x93, 0x22, 0xca, 0x02, 0x63, 0x29, 0x35, + 0x1f, 0x10, 0x13, 0x8a, 0x28, 0x7b, 0x6c, 0x10, 0x14, 0xd0, 0x61, 0x2d, 0x30, 0x34, 0x02, 0x3a, + 0xac, 0x04, 0x76, 0x61, 0x4a, 0x33, 0xc4, 0xe9, 0x22, 0xe0, 0xd7, 0x8b, 0xf9, 0x68, 0xd7, 0xd9, + 0xeb, 0x98, 0x29, 0xe2, 0x74, 0x71, 0x78, 0xbd, 0x68, 0x49, 0x5c, 0xf3, 0x7c, 0x3e, 0x6e, 0x49, + 0x3c, 0xe1, 0x39, 0x4a, 0xd0, 0x22, 0xe5, 0x1c, 0x60, 0x24, 0x70, 0x95, 0x7a, 0x8e, 0x4a, 0x02, + 0xe7, 0x98, 0xb4, 0x24, 0x9e, 0xf0, 0xdc, 0xfb, 0x7d, 0x07, 0x06, 0xbe, 0xf8, 0x8d, 0x08, 0x35, + 0x3b, 0x80, 0x9e, 0x5e, 0x67, 0xe6, 0x6c, 0x37, 0x0e, 0xde, 0xd8, 0x6f, 0xf8, 0xf0, 0xbe, 0x11, + 0xb1, 0x7f, 0xe7, 0xeb, 0x4c, 0xf8, 0x24, 0x6b, 0x0c, 0xc4, 0x95, 0x4c, 0xed, 0xa9, 0x5b, 0xca, + 0xfb, 0xda, 0x01, 0xa8, 0x85, 0xd9, 0x08, 0x7a, 0x8f, 0x64, 0x2a, 0xdc, 0x97, 0x98, 0x0b, 0xd3, + 0xcf, 0x73, 0x99, 0x2e, 0xec, 0x01, 0xbb, 0x0e, 0xbb, 0x03, 0x9b, 0x0f, 0xd3, 0x6b, 0x9e, 0xc4, + 0xd1, 0x67, 0xd6, 0x9b, 0xdc, 0x0e, 0xdb, 0x84, 0x09, 0x89, 0x21, 0xf4, 0xf8, 0x73, 0xb7, 0xcb, + 0xb6, 0x60, 0x46, 0xc0, 0x99, 0xc8, 0xaf, 0x09, 0xea, 0x21, 0x54, 0x8e, 0x78, 0x98, 0x7e, 0xa6, + 0x84, 0xdb, 0x67, 0x1b, 0x00, 0x46, 0xe0, 0x93, 0x22, 0x49, 0xdc, 0x01, 0x8a, 0x3c, 0x92, 0x47, + 0x22, 0xd7, 0xf1, 0x25, 0xf9, 0xb0, 0x3b, 0x64, 0x2f, 0xc3, 0x56, 0xc3, 0xab, 0x65, 0xfe, 0x09, + 0x8f, 0x13, 0x77, 0xe4, 0x7d, 0xe9, 0x94, 0x43, 0xcf, 0xf0, 0x80, 0xe7, 0x30, 0x54, 0x42, 0x35, + 0x83, 0xd0, 0x92, 0xe8, 0xb5, 0x2b, 0xfe, 0x2c, 0xb8, 0xe0, 0x69, 0xf4, 0x34, 0x8e, 0xf4, 0xd2, + 0xfa, 0xd5, 0x74, 0xc5, 0x9f, 0xdd, 0x2f, 0x31, 0x0c, 0xf3, 0xa7, 0x22, 0x09, 0xe5, 0x4a, 0x04, + 0x5a, 0x3c, 0xd3, 0x36, 0x32, 0x27, 0x16, 0x3b, 0x17, 0xcf, 0x34, 0xdb, 0x85, 0x49, 0x26, 0xf2, + 0x55, 0xac, 0x4a, 0xdf, 0x47, 0xb7, 0x6d, 0x42, 0xde, 0x3e, 0xcc, 0x8e, 0x96, 0x1c, 0x63, 0xd4, + 0x17, 0x2b, 0x79, 0x2d, 0x30, 0xaa, 0x43, 0x03, 0x04, 0x71, 0x44, 0xd1, 0x3a, 0xf3, 0xc7, 0x16, + 0x79, 0x18, 0x79, 0x5f, 0x75, 0x61, 0x6a, 0x07, 0x9c, 0x69, 0xf4, 0xe8, 0x9b, 0xf2, 0x4e, 0x4b, + 0xde, 0x04, 0x7e, 0x2e, 0x52, 0x6d, 0xb7, 0x60, 0x29, 0x0c, 0x04, 0x8a, 0x71, 0xa3, 0x34, 0x7d, + 0xb3, 0x6d, 0xe8, 0x27, 0x71, 0x7a, 0x65, 0x62, 0x74, 0xe6, 0x1b, 0x02, 0xf7, 0x10, 0x09, 0x15, + 0xe6, 0x71, 0xa6, 0xd1, 0x52, 0x7d, 0xb3, 0xcb, 0x06, 0xc4, 0x5e, 0x83, 0x31, 0x89, 0x06, 0x3c, + 0x8a, 0xe6, 0x03, 0x1a, 0x3b, 0x22, 0xe0, 0x30, 0x8a, 0xd0, 0x4a, 0x86, 0x99, 0xd3, 0xfe, 0xe6, + 0x43, 0xe2, 0x4f, 0x08, 0xb3, 0x5b, 0xbe, 0x07, 0x63, 0x2d, 0x56, 0x99, 0xcc, 0x79, 0xbe, 0xa6, + 0x18, 0xa9, 0x72, 0x40, 0x8d, 0xb3, 0xbb, 0x30, 0xca, 0xa4, 0x8a, 0x49, 0x07, 0x8c, 0x92, 0xfe, + 0x47, 0xce, 0xfb, 0x7e, 0x05, 0xb1, 0x77, 0xc1, 0x6d, 0xa8, 0x14, 0x2c, 0xb9, 0x5a, 0x52, 0xa8, + 0x4c, 0xfd, 0xcd, 0x06, 0x7e, 0xcc, 0xd5, 0x12, 0xd5, 0xc5, 0xc3, 0xc5, 0xb4, 0xa6, 0x28, 0x58, + 0x66, 0xfe, 0x68, 0xc5, 0x9f, 0xa1, 0x9b, 0x29, 0xb6, 0x0f, 0x77, 0x62, 0x15, 0x88, 0x54, 0x8b, + 0x3c, 0xc8, 0x85, 0xd2, 0x79, 0x1c, 0x6a, 0x11, 0xcd, 0xa7, 0xa8, 0x95, 0xbf, 0x15, 0xab, 0x8f, + 0x91, 0xe3, 0x57, 0x0c, 0x9c, 0x2c, 0xe4, 0xa9, 0x19, 0x30, 0x9f, 0x91, 0xd4, 0x28, 0xe4, 0x29, + 0x89, 0x79, 0x97, 0x00, 0x38, 0xab, 0xdd, 0x66, 0xcb, 0xdd, 0x3a, 0x4d, 0x77, 0xdb, 0x86, 0x3e, + 0x0f, 0xb5, 0xcc, 0xed, 0x19, 0x19, 0xa2, 0x11, 0x76, 0xdd, 0x66, 0xd8, 0x31, 0x17, 0xba, 0x17, + 0xdc, 0x24, 0xfc, 0x91, 0x8f, 0x9f, 0xde, 0x3f, 0x7b, 0x30, 0xc6, 0x85, 0x8c, 0x47, 0x7c, 0xb3, + 0x5b, 0xdf, 0xbe, 0xce, 0x6d, 0xae, 0xf0, 0x2a, 0x0c, 0xd1, 0x3e, 0xe8, 0x52, 0x26, 0x55, 0x0e, + 0x90, 0x7c, 0x18, 0xdd, 0x70, 0xb7, 0xfe, 0x4d, 0x77, 0x63, 0xd0, 0x5b, 0x15, 0x5a, 0x50, 0xb2, + 0x1c, 0xf9, 0xf4, 0x8d, 0x58, 0x24, 0xf8, 0x25, 0xe5, 0xc7, 0x91, 0x4f, 0xdf, 0x58, 0x4a, 0x54, + 0x91, 0x65, 0xb9, 0x50, 0xca, 0x9c, 0xb8, 0x5f, 0xd1, 0x68, 0x52, 0x25, 0x92, 0xcb, 0x80, 0x26, + 0x1a, 0x5b, 0xa6, 0x48, 0x2e, 0x4f, 0x71, 0xb2, 0x92, 0x49, 0x33, 0x42, 0xcd, 0x7c, 0x80, 0xb3, + 0xce, 0x61, 0x88, 0x91, 0x58, 0xe4, 0x82, 0xce, 0x75, 0xea, 0x97, 0x24, 0xfb, 0x01, 0x6c, 0x64, + 0x49, 0xb1, 0x88, 0xd3, 0x20, 0x94, 0x29, 0x45, 0xeb, 0x94, 0x04, 0x66, 0x06, 0x3d, 0x32, 0x20, + 0x7b, 0x07, 0x36, 0xad, 0x58, 0x1c, 0x61, 0xf2, 0xd0, 0x6b, 0x3a, 0xd3, 0xb1, 0x6f, 0x47, 0x3f, + 0xb4, 0x28, 0xae, 0x14, 0xca, 0xd5, 0x0a, 0xe3, 0x6a, 0xc3, 0x54, 0x69, 0x4b, 0xe2, 0x6e, 0xc9, + 0xf9, 0x36, 0x8d, 0x35, 0xf1, 0x9b, 0x1a, 0x02, 0xc3, 0x36, 0x8e, 0xe9, 0xd2, 0xda, 0x13, 0x8b, + 0x1d, 0x5b, 0x11, 0xab, 0xab, 0x11, 0xd9, 0x32, 0x22, 0x16, 0x23, 0x91, 0x77, 0xc1, 0xcd, 0xf2, + 0x58, 0xe6, 0xb1, 0x5e, 0x07, 0x2a, 0x13, 0xfc, 0x4a, 0xe4, 0x73, 0x46, 0x16, 0xd8, 0x2c, 0xf1, + 0x33, 0x03, 0x63, 0xb1, 0xcc, 0x45, 0x28, 0xf3, 0x28, 0x4e, 0x17, 0xf3, 0x3b, 0x24, 0x53, 0x03, + 0xec, 0xa7, 0xf0, 0x6a, 0x15, 0x57, 0x01, 0x0f, 0x43, 0xa1, 0x54, 0x60, 0x8b, 0xf7, 0x36, 0x15, + 0xef, 0x97, 0x2b, 0xf6, 0x21, 0x71, 0xcf, 0x89, 0xe9, 0xfd, 0xa1, 0x03, 0xc3, 0xfb, 0x3c, 0x3d, + 0x89, 0x95, 0x66, 0x3f, 0x81, 0xde, 0x05, 0x4f, 0xd5, 0xdc, 0xd9, 0xed, 0xee, 0x4d, 0x0e, 0xee, + 0xb6, 0xea, 0x88, 0x95, 0xc1, 0xff, 0x8f, 0x53, 0x9d, 0xaf, 0x7d, 0x12, 0x65, 0xaf, 0x41, 0xff, + 0x8b, 0x42, 0xe4, 0x6b, 0xf2, 0xbe, 0x2a, 0xc4, 0x0d, 0xb6, 0xf3, 0x95, 0x03, 0xa3, 0x52, 0x1e, + 0xad, 0xcb, 0xa3, 0x88, 0x9c, 0xc3, 0xb4, 0x2b, 0x25, 0x49, 0xfe, 0xc5, 0xd5, 0xd5, 0xbc, 0x43, + 0x01, 0x44, 0xdf, 0xb7, 0xfa, 0x6f, 0x79, 0x0a, 0xbd, 0xc6, 0x29, 0xd4, 0xf1, 0xd4, 0x6f, 0xc5, + 0xd3, 0x36, 0xf4, 0x95, 0xe6, 0xb9, 0x26, 0xa7, 0x1d, 0xfb, 0x86, 0x40, 0x0f, 0x8d, 0x8a, 0x9c, + 0x53, 0xbe, 0x31, 0x95, 0xbd, 0xa2, 0xb1, 0xd9, 0x9b, 0x60, 0x7e, 0x3f, 0x15, 0x4a, 0xf1, 0x85, + 0xa8, 0xe3, 0xca, 0x69, 0xc6, 0x55, 0x23, 0x0e, 0x3b, 0x94, 0xf4, 0xaa, 0x38, 0x6c, 0x07, 0x51, + 0x97, 0x98, 0x8d, 0x20, 0x7a, 0x15, 0x86, 0x3a, 0x17, 0xc2, 0x04, 0x1f, 0xf2, 0x06, 0x48, 0x3e, + 0x8c, 0x70, 0xc6, 0x95, 0x59, 0x72, 0xde, 0xdf, 0xed, 0xa0, 0xd7, 0x59, 0x12, 0xcb, 0x82, 0xfb, + 0xb8, 0x2a, 0x2b, 0x0f, 0x44, 0x1a, 0x8b, 0x88, 0xbd, 0x01, 0x50, 0x97, 0x1a, 0xab, 0x5b, 0x03, + 0xb9, 0xa1, 0x46, 0xe7, 0x66, 0x2c, 0x37, 0xf4, 0xef, 0xb6, 0xf3, 0x48, 0x6d, 0xc9, 0x5e, 0xcb, + 0x92, 0x1f, 0xd9, 0xe6, 0xa2, 0x4f, 0xcd, 0xc5, 0xdb, 0x2d, 0xa7, 0xb8, 0xa9, 0xdd, 0xfe, 0x03, + 0x91, 0xae, 0x1b, 0x4d, 0x46, 0x79, 0x8a, 0x83, 0xfa, 0x14, 0xbd, 0xbf, 0x3b, 0x30, 0x2a, 0xc5, + 0xb0, 0xbd, 0x40, 0x9b, 0xbb, 0x2f, 0x61, 0x03, 0x50, 0xcf, 0xe6, 0x3a, 0x6c, 0x06, 0xe3, 0xb3, + 0x22, 0x13, 0x39, 0xa6, 0x40, 0xd3, 0x56, 0xd8, 0x0a, 0xf9, 0x08, 0xfb, 0x8c, 0x2e, 0x02, 0x38, + 0xf2, 0x5c, 0xca, 0x13, 0x99, 0x2e, 0xdc, 0x1e, 0x1b, 0x42, 0xf7, 0xf8, 0xc3, 0x5f, 0xb8, 0x7d, + 0xb6, 0x0d, 0xee, 0x79, 0xe9, 0xea, 0x76, 0x8c, 0x3b, 0x60, 0xaf, 0x00, 0x3b, 0xc5, 0xc9, 0xd3, + 0x45, 0xbb, 0xab, 0x98, 0xc2, 0x08, 0x97, 0xa0, 0x59, 0x47, 0x8d, 0x65, 0xa8, 0x0f, 0x19, 0x63, + 0xd7, 0xf3, 0x48, 0x28, 0x1d, 0xa7, 0x8b, 0x93, 0x78, 0x15, 0x6b, 0x17, 0xb0, 0x0d, 0xb1, 0x22, + 0x47, 0xb2, 0x48, 0xb5, 0x81, 0x27, 0xde, 0xef, 0xfa, 0xd0, 0x3d, 0x3c, 0x3a, 0x79, 0x41, 0xa9, + 0x67, 0xef, 0xc0, 0x34, 0x4e, 0x97, 0x22, 0x8f, 0x75, 0xc0, 0xc3, 0x44, 0xd9, 0xb0, 0xe9, 0xe9, + 0xbc, 0x10, 0xfe, 0xc4, 0x72, 0x0e, 0xc3, 0x44, 0xb1, 0x03, 0x18, 0x2c, 0x72, 0x59, 0x64, 0xa6, + 0xf7, 0x9e, 0x1c, 0xec, 0xb4, 0x0c, 0x7f, 0x78, 0x74, 0xb2, 0x8f, 0x5a, 0xfc, 0x1c, 0x45, 0x7c, + 0x2b, 0xc9, 0xde, 0x83, 0x1e, 0x4d, 0xda, 0xa3, 0x11, 0xf3, 0x5b, 0x47, 0x1c, 0x1e, 0x9d, 0xf8, + 0x24, 0x55, 0x87, 0x6e, 0xff, 0x96, 0xd0, 0xfd, 0x87, 0x03, 0xe3, 0x6a, 0x81, 0xea, 0x1c, 0x1d, + 0x72, 0x50, 0x13, 0x8d, 0x1e, 0x8c, 0xad, 0xbe, 0x22, 0x6a, 0x6d, 0xa3, 0x86, 0xd9, 0x1b, 0x30, + 0xb4, 0x04, 0x79, 0x5b, 0x29, 0x51, 0x82, 0xec, 0x6d, 0x28, 0xf7, 0xcc, 0x2f, 0x12, 0x61, 0xaa, + 0xdf, 0x0d, 0x63, 0x20, 0x03, 0xab, 0x23, 0xb6, 0x21, 0x7d, 0x0a, 0x1c, 0xfc, 0x34, 0xde, 0x4a, + 0xbd, 0x87, 0xe9, 0x4d, 0x2c, 0xc5, 0x7e, 0x04, 0x5b, 0xd5, 0xf2, 0xc1, 0x4a, 0xac, 0x2e, 0xb0, + 0x1f, 0x30, 0xed, 0x89, 0x5b, 0x31, 0x4e, 0x0d, 0xbe, 0xf3, 0x37, 0x07, 0x86, 0xd6, 0x26, 0xec, + 0x1e, 0x00, 0xcf, 0xb2, 0x64, 0x1d, 0x2c, 0x45, 0x6e, 0x3a, 0xe9, 0x6a, 0x3f, 0x84, 0x1f, 0x8b, + 0x5c, 0xd4, 0x42, 0xaa, 0xb8, 0x68, 0x9f, 0x9d, 0x11, 0x3a, 0x2b, 0x2e, 0x54, 0xdb, 0x30, 0xdd, + 0xdb, 0x0d, 0xf3, 0x8d, 0xa5, 0x78, 0x1b, 0xfa, 0x74, 0x98, 0x36, 0x9d, 0x19, 0xc2, 0xa0, 0x3c, + 0xd5, 0xf6, 0xbe, 0x62, 0x08, 0x53, 0x83, 0xd3, 0xb5, 0xcd, 0x64, 0xf4, 0xed, 0x7d, 0x00, 0xf0, + 0x4b, 0x3c, 0x40, 0xd3, 0xf8, 0xb8, 0xd0, 0x8d, 0x23, 0x93, 0xcf, 0x67, 0x3e, 0x7e, 0xe2, 0x4c, + 0x78, 0x7a, 0x8a, 0xb2, 0xd7, 0xd8, 0x37, 0x84, 0x17, 0x01, 0x1c, 0xe1, 0x45, 0xf6, 0x4c, 0xe8, + 0x22, 0xc3, 0x51, 0x57, 0x62, 0x4d, 0x36, 0x98, 0xfa, 0xf8, 0x49, 0xb5, 0x2e, 0x89, 0xb1, 0xd4, + 0xa5, 0x32, 0x0d, 0xcd, 0x25, 0x16, 0x6b, 0x1d, 0x61, 0x8f, 0x10, 0x42, 0x11, 0x45, 0x5d, 0xb8, + 0x15, 0xe9, 0x1a, 0x11, 0x83, 0x91, 0x88, 0xf7, 0x1f, 0x07, 0xee, 0xd8, 0xa2, 0x7c, 0x18, 0x62, + 0xce, 0x3d, 0x95, 0x51, 0x7c, 0xb9, 0xc6, 0xb3, 0xe4, 0x44, 0x5b, 0xff, 0xb2, 0x14, 0xee, 0x8f, + 0xaa, 0xba, 0xb9, 0xa0, 0xd0, 0xb7, 0xa9, 0xd1, 0x69, 0xd5, 0x9a, 0xcf, 0xfc, 0x92, 0x64, 0xc7, + 0x30, 0x96, 0x99, 0xb0, 0xc9, 0xbd, 0x47, 0xc9, 0xea, 0x87, 0xad, 0x08, 0xb8, 0x65, 0xe9, 0xfd, + 0x4f, 0xcb, 0x11, 0x7e, 0x3d, 0xd8, 0x7b, 0x0f, 0x86, 0x65, 0xef, 0x00, 0x30, 0x30, 0x77, 0x0b, + 0xd7, 0x61, 0x13, 0xe3, 0x2c, 0x98, 0x4e, 0x3a, 0x98, 0xb8, 0x28, 0x33, 0xf5, 0xbc, 0x5d, 0x18, + 0x57, 0xb3, 0x60, 0x12, 0x3a, 0x8c, 0x22, 0xf7, 0x25, 0x1c, 0x68, 0x3a, 0x44, 0xd7, 0xf1, 0x7e, + 0x0d, 0xb3, 0xd6, 0xda, 0xdf, 0xd2, 0xcc, 0xbd, 0x20, 0x7b, 0xd7, 0x96, 0xea, 0x36, 0x2d, 0xe5, + 0xfd, 0xc5, 0x31, 0x59, 0x8c, 0xaa, 0xf8, 0xfb, 0xd0, 0x37, 0x6d, 0xb0, 0x73, 0x4b, 0xe2, 0x28, + 0xa5, 0xe8, 0xc3, 0x37, 0x82, 0x3b, 0xca, 0x6c, 0xa6, 0xe9, 0x95, 0x26, 0x71, 0x95, 0x5e, 0x59, + 0xc6, 0x7f, 0xa7, 0x51, 0x8d, 0xf1, 0x82, 0xc0, 0x95, 0x0e, 0x94, 0x10, 0x65, 0x33, 0x3b, 0x42, + 0xe0, 0x4c, 0x08, 0x7a, 0x2d, 0x21, 0xa6, 0x55, 0xdd, 0x3a, 0xf9, 0x04, 0x31, 0x6b, 0x43, 0xef, + 0xdf, 0x0e, 0x4c, 0x9e, 0xc8, 0x38, 0x14, 0xe7, 0x3c, 0x5f, 0x08, 0xcd, 0x36, 0xa0, 0x53, 0xdd, + 0x75, 0x3a, 0x71, 0xc4, 0x3e, 0x84, 0xa1, 0x26, 0x8e, 0xf1, 0xd5, 0xc9, 0xc1, 0x9b, 0xad, 0x8d, + 0x34, 0x86, 0xee, 0x9b, 0x3f, 0xbf, 0x94, 0xdf, 0xf9, 0x93, 0x03, 0x03, 0x3b, 0x6b, 0xcb, 0xd4, + 0xdd, 0xff, 0xc1, 0xd4, 0x55, 0x20, 0x76, 0x9b, 0x81, 0xf8, 0x5a, 0x7d, 0x9b, 0x6a, 0xe6, 0x4c, + 0x73, 0xa9, 0x7a, 0x0b, 0x46, 0xe1, 0x32, 0x4e, 0xa2, 0x5c, 0xa4, 0xed, 0x9c, 0x5a, 0xc1, 0x9e, + 0x84, 0xcd, 0xba, 0xca, 0x51, 0xa0, 0xbe, 0xe8, 0xae, 0x77, 0xe3, 0xb6, 0x69, 0xf4, 0x6c, 0x42, + 0xa8, 0xd3, 0x65, 0x52, 0xa8, 0xa5, 0xcd, 0x35, 0xa5, 0x4e, 0x84, 0x79, 0xbf, 0x85, 0xe9, 0x91, + 0x8c, 0x44, 0x58, 0x3e, 0x63, 0x61, 0x57, 0x93, 0x64, 0x4b, 0x4e, 0x07, 0xdc, 0xf7, 0x0d, 0x81, + 0xe7, 0x7b, 0x21, 0x34, 0xa7, 0x0e, 0xac, 0xef, 0xd3, 0x37, 0x56, 0xaa, 0x2c, 0x17, 0x97, 0x22, + 0x0f, 0xcc, 0x00, 0xf4, 0xb8, 0x2a, 0x39, 0x1b, 0xce, 0x21, 0x0d, 0x2e, 0x1f, 0x7a, 0x7a, 0xcf, + 0x3f, 0xf4, 0x7c, 0x3d, 0xa8, 0xef, 0x30, 0xea, 0x5b, 0xdc, 0xfe, 0xfb, 0x00, 0x0a, 0x45, 0x02, + 0x99, 0x26, 0x37, 0x5a, 0xc9, 0x31, 0x31, 0x3e, 0x4d, 0x93, 0x35, 0xf3, 0x60, 0x1a, 0xd6, 0xb5, + 0xdb, 0x14, 0xc6, 0xa9, 0xdf, 0xc2, 0xd8, 0xcf, 0x60, 0x72, 0x99, 0xcb, 0x55, 0x60, 0x52, 0x13, + 0xe9, 0x34, 0x39, 0x78, 0xfd, 0xb9, 0x10, 0x20, 0x85, 0xf6, 0xe9, 0xd7, 0x07, 0x1c, 0x70, 0x44, + 0xf2, 0xd5, 0x70, 0x93, 0xb6, 0xe8, 0x14, 0xbf, 0xd3, 0x70, 0x93, 0x24, 0xfe, 0x7f, 0x5e, 0x97, + 0xd8, 0x7e, 0xfd, 0x96, 0x39, 0x25, 0x23, 0x6c, 0xb7, 0xa3, 0xcf, 0xf0, 0xea, 0x17, 0xce, 0xe7, + 0x9e, 0x04, 0x67, 0xb7, 0x3c, 0x09, 0x36, 0xae, 0x00, 0x1b, 0xe6, 0x2a, 0x57, 0x5e, 0x01, 0x5e, + 0x87, 0x71, 0xfd, 0x2e, 0xb3, 0x69, 0x62, 0xa0, 0x02, 0xb0, 0xe7, 0x95, 0x69, 0x12, 0xa7, 0x42, + 0x89, 0x50, 0xd1, 0x45, 0x6b, 0xe6, 0x37, 0x10, 0x6c, 0xeb, 0xe3, 0x28, 0x31, 0xdc, 0x2d, 0xd3, + 0xd6, 0x97, 0x34, 0xfb, 0x00, 0x98, 0xd2, 0xb9, 0x4c, 0x17, 0x41, 0xc3, 0x4f, 0xcc, 0x15, 0xab, + 0x74, 0xb1, 0x2d, 0x23, 0xd0, 0xe8, 0x0b, 0x2b, 0x9f, 0xbe, 0xf3, 0x9c, 0x4f, 0xef, 0xfc, 0x0a, + 0xfa, 0xc6, 0x9d, 0xcb, 0xe7, 0x49, 0xe7, 0x96, 0xe7, 0xc9, 0xce, 0x2d, 0xcf, 0x93, 0xdd, 0x5b, + 0x9f, 0x27, 0x7b, 0xcd, 0xe7, 0x49, 0xef, 0x4b, 0x07, 0x26, 0xbe, 0xf8, 0xa2, 0x10, 0x4a, 0xdf, + 0x4f, 0xe4, 0x05, 0xde, 0x5d, 0x6d, 0x8c, 0x04, 0xe5, 0x25, 0xd8, 0xa4, 0xb1, 0x0d, 0x0b, 0x9f, + 0xdb, 0xbb, 0x70, 0x43, 0xb0, 0xbc, 0xc3, 0x76, 0x5a, 0x82, 0x47, 0xf6, 0x2a, 0xfb, 0x63, 0xb8, + 0x53, 0xa6, 0x9b, 0xe6, 0x0b, 0x90, 0xb9, 0xaf, 0x30, 0xcb, 0x7a, 0x50, 0x73, 0xbc, 0x7f, 0x39, + 0x30, 0x35, 0xee, 0x7d, 0x24, 0xd3, 0xcb, 0x78, 0xf1, 0xfc, 0x3b, 0x9a, 0xf3, 0x1d, 0xde, 0xd1, + 0x3a, 0xcf, 0xbf, 0xa3, 0xdd, 0x05, 0xe0, 0x49, 0x22, 0x9f, 0x06, 0x4b, 0xbd, 0x4a, 0x4c, 0xf2, + 0xf2, 0xc7, 0x84, 0x1c, 0xeb, 0x55, 0x82, 0xb7, 0x7b, 0x7b, 0x11, 0x0a, 0x12, 0x91, 0x2e, 0xf4, + 0xd2, 0x9a, 0x6a, 0x66, 0xd1, 0x13, 0x02, 0xd9, 0xfb, 0xb0, 0x1d, 0xaf, 0x50, 0xe8, 0x86, 0xb0, + 0x79, 0xc5, 0x60, 0xc4, 0x3b, 0x6d, 0x8d, 0x68, 0x3d, 0x15, 0x0d, 0xda, 0x4f, 0x45, 0xde, 0x15, + 0xcc, 0xce, 0x8a, 0xc5, 0x42, 0x28, 0x6d, 0x77, 0xfb, 0xcd, 0x8f, 0xfa, 0x78, 0x13, 0xb3, 0x2f, + 0x55, 0x3c, 0x31, 0x49, 0xcb, 0x6f, 0x20, 0x18, 0x64, 0x59, 0xa1, 0x96, 0x81, 0x96, 0x81, 0xe6, + 0xc9, 0x95, 0xdd, 0x21, 0x20, 0x76, 0x2e, 0xcf, 0x79, 0x72, 0x75, 0xbf, 0x73, 0xec, 0xfc, 0x37, + 0x00, 0x00, 0xff, 0xff, 0x44, 0xa7, 0x15, 0x87, 0x7f, 0x18, 0x00, 0x00, } diff --git a/pkg/mumbleproto/Mumble.proto b/pkg/mumbleproto/Mumble.proto index 0233117..5efba03 100644 --- a/pkg/mumbleproto/Mumble.proto +++ b/pkg/mumbleproto/Mumble.proto @@ -1,3 +1,10 @@ +// Copyright 2005-2020 The Mumble Developers. All rights reserved. +// Use of this source code is governed by a BSD-style license +// that can be found in the LICENSE file at the root of the +// Mumble source tree or at <https://www.mumble.info/LICENSE>. + +syntax = "proto2"; + package mumbleproto; option optimize_for = SPEED; @@ -65,7 +72,8 @@ message Ping { // Sent by the server when it rejects the user connection. message Reject { enum RejectType { - // TODO ?? + // The rejection reason is unknown (details should be available + // in Reject.reason). None = 0; // The client attempted to connect with an incompatible version. WrongVersion = 1; @@ -100,7 +108,7 @@ message ServerSync { optional uint32 max_bandwidth = 2; // Server welcome text. optional string welcome_text = 3; - // Current user permissions TODO: Confirm?? + // Current user permissions in the root channel. optional uint64 permissions = 4; } @@ -140,6 +148,10 @@ message ChannelState { // the maximum number of users allowed in the channel is given by the // server's "usersperchannel" setting. optional uint32 max_users = 11; + // Whether this channel has enter restrictions (ACL denying ENTER) set + optional bool is_enter_restricted = 12; + // Whether the receiver of this msg is considered to be able to enter this channel + optional bool can_enter = 13; } // Used to communicate user leaving or being kicked. May be sent by the client @@ -186,9 +198,14 @@ message UserState { optional bool self_deaf = 10; // User image if it is less than 128 bytes. optional bytes texture = 11; - // TODO ?? + // The positional audio plugin identifier. + // Positional audio information is only sent to users who share + // identical plugin contexts. + // + // This value is not trasmitted to clients. optional bytes plugin_context = 12; - // TODO ?? + // The user's plugin-specific identity. + // This value is not transmitted to clients. optional string plugin_identity = 13; // User comment if it is less than 128 bytes. optional string comment = 14; @@ -202,6 +219,8 @@ message UserState { optional bool priority_speaker = 18; // True if the user is currently recording. optional bool recording = 19; + // A list of temporary acces tokens to be respected when processing this request. + repeated string temporary_access_tokens = 20; } // Relays information on the bans. The client may send the BanList message to @@ -215,7 +234,7 @@ message BanList { required uint32 mask = 2; // User name for identification purposes (does not affect the ban). optional string name = 3; - // TODO ?? + // The certificate hash of the banned user. optional string hash = 4; // Reason for the ban (does not affect the ban). optional string reason = 5; @@ -269,7 +288,10 @@ message PermissionDenied { UserName = 8; // Channel is full. ChannelFull = 9; + // Channels are nested too deply. NestingLimit = 10; + // Maximum channel count reached. + ChannelCountLimit = 11; } // The denied permission when type is Permission. optional uint32 permission = 1; @@ -409,9 +431,9 @@ message VoiceTarget { message Target { // Users that are included as targets. repeated uint32 session = 1; - // Channels that are included as targets. + // Channel that is included as a target. optional uint32 channel_id = 2; - // TODO ?? + // ACL group that is included as a target. optional string group = 3; // True if the voice should follow links from the specified channel. optional bool links = 4 [default = false]; |