diff --git a/api/types/events/events.pb.go b/api/types/events/events.pb.go index 15cefa9cfe90e..41bbe89c86548 100644 --- a/api/types/events/events.pb.go +++ b/api/types/events/events.pb.go @@ -51,7 +51,7 @@ func (m *Metadata) Reset() { *m = Metadata{} } func (m *Metadata) String() string { return proto.CompactTextString(m) } func (*Metadata) ProtoMessage() {} func (*Metadata) Descriptor() ([]byte, []int) { - return fileDescriptor_events_ae9aad9d10c424a6, []int{0} + return fileDescriptor_events_c05a46d3c928721e, []int{0} } func (m *Metadata) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -93,7 +93,7 @@ func (m *SessionMetadata) Reset() { *m = SessionMetadata{} } func (m *SessionMetadata) String() string { return proto.CompactTextString(m) } func (*SessionMetadata) ProtoMessage() {} func (*SessionMetadata) Descriptor() ([]byte, []int) { - return fileDescriptor_events_ae9aad9d10c424a6, []int{1} + return fileDescriptor_events_c05a46d3c928721e, []int{1} } func (m *SessionMetadata) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -139,7 +139,7 @@ func (m *UserMetadata) Reset() { *m = UserMetadata{} } func (m *UserMetadata) String() string { return proto.CompactTextString(m) } func (*UserMetadata) ProtoMessage() {} func (*UserMetadata) Descriptor() ([]byte, []int) { - return fileDescriptor_events_ae9aad9d10c424a6, []int{2} + return fileDescriptor_events_c05a46d3c928721e, []int{2} } func (m *UserMetadata) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -190,7 +190,7 @@ func (m *ServerMetadata) Reset() { *m = ServerMetadata{} } func (m *ServerMetadata) String() string { return proto.CompactTextString(m) } func (*ServerMetadata) ProtoMessage() {} func (*ServerMetadata) Descriptor() ([]byte, []int) { - return fileDescriptor_events_ae9aad9d10c424a6, []int{3} + return fileDescriptor_events_c05a46d3c928721e, []int{3} } func (m *ServerMetadata) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -236,7 +236,7 @@ func (m *ConnectionMetadata) Reset() { *m = ConnectionMetadata{} } func (m *ConnectionMetadata) String() string { return proto.CompactTextString(m) } func (*ConnectionMetadata) ProtoMessage() {} func (*ConnectionMetadata) Descriptor() ([]byte, []int) { - return fileDescriptor_events_ae9aad9d10c424a6, []int{4} + return fileDescriptor_events_c05a46d3c928721e, []int{4} } func (m *ConnectionMetadata) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -283,7 +283,7 @@ func (m *KubernetesClusterMetadata) Reset() { *m = KubernetesClusterMeta func (m *KubernetesClusterMetadata) String() string { return proto.CompactTextString(m) } func (*KubernetesClusterMetadata) ProtoMessage() {} func (*KubernetesClusterMetadata) Descriptor() ([]byte, []int) { - return fileDescriptor_events_ae9aad9d10c424a6, []int{5} + return fileDescriptor_events_c05a46d3c928721e, []int{5} } func (m *KubernetesClusterMetadata) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -334,7 +334,7 @@ func (m *KubernetesPodMetadata) Reset() { *m = KubernetesPodMetadata{} } func (m *KubernetesPodMetadata) String() string { return proto.CompactTextString(m) } func (*KubernetesPodMetadata) ProtoMessage() {} func (*KubernetesPodMetadata) Descriptor() ([]byte, []int) { - return fileDescriptor_events_ae9aad9d10c424a6, []int{6} + return fileDescriptor_events_c05a46d3c928721e, []int{6} } func (m *KubernetesPodMetadata) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -393,7 +393,7 @@ func (m *SessionStart) Reset() { *m = SessionStart{} } func (m *SessionStart) String() string { return proto.CompactTextString(m) } func (*SessionStart) ProtoMessage() {} func (*SessionStart) Descriptor() ([]byte, []int) { - return fileDescriptor_events_ae9aad9d10c424a6, []int{7} + return fileDescriptor_events_c05a46d3c928721e, []int{7} } func (m *SessionStart) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -446,7 +446,7 @@ func (m *SessionJoin) Reset() { *m = SessionJoin{} } func (m *SessionJoin) String() string { return proto.CompactTextString(m) } func (*SessionJoin) ProtoMessage() {} func (*SessionJoin) Descriptor() ([]byte, []int) { - return fileDescriptor_events_ae9aad9d10c424a6, []int{8} + return fileDescriptor_events_c05a46d3c928721e, []int{8} } func (m *SessionJoin) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -500,7 +500,7 @@ func (m *SessionPrint) Reset() { *m = SessionPrint{} } func (m *SessionPrint) String() string { return proto.CompactTextString(m) } func (*SessionPrint) ProtoMessage() {} func (*SessionPrint) Descriptor() ([]byte, []int) { - return fileDescriptor_events_ae9aad9d10c424a6, []int{9} + return fileDescriptor_events_c05a46d3c928721e, []int{9} } func (m *SessionPrint) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -555,7 +555,7 @@ func (m *SessionReject) Reset() { *m = SessionReject{} } func (m *SessionReject) String() string { return proto.CompactTextString(m) } func (*SessionReject) ProtoMessage() {} func (*SessionReject) Descriptor() ([]byte, []int) { - return fileDescriptor_events_ae9aad9d10c424a6, []int{10} + return fileDescriptor_events_c05a46d3c928721e, []int{10} } func (m *SessionReject) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -612,7 +612,7 @@ func (m *Resize) Reset() { *m = Resize{} } func (m *Resize) String() string { return proto.CompactTextString(m) } func (*Resize) ProtoMessage() {} func (*Resize) Descriptor() ([]byte, []int) { - return fileDescriptor_events_ae9aad9d10c424a6, []int{11} + return fileDescriptor_events_c05a46d3c928721e, []int{11} } func (m *Resize) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -681,7 +681,7 @@ func (m *SessionEnd) Reset() { *m = SessionEnd{} } func (m *SessionEnd) String() string { return proto.CompactTextString(m) } func (*SessionEnd) ProtoMessage() {} func (*SessionEnd) Descriptor() ([]byte, []int) { - return fileDescriptor_events_ae9aad9d10c424a6, []int{12} + return fileDescriptor_events_c05a46d3c928721e, []int{12} } func (m *SessionEnd) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -727,7 +727,7 @@ func (m *BPFMetadata) Reset() { *m = BPFMetadata{} } func (m *BPFMetadata) String() string { return proto.CompactTextString(m) } func (*BPFMetadata) ProtoMessage() {} func (*BPFMetadata) Descriptor() ([]byte, []int) { - return fileDescriptor_events_ae9aad9d10c424a6, []int{13} + return fileDescriptor_events_c05a46d3c928721e, []int{13} } func (m *BPFMetadata) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -773,7 +773,7 @@ func (m *Status) Reset() { *m = Status{} } func (m *Status) String() string { return proto.CompactTextString(m) } func (*Status) ProtoMessage() {} func (*Status) Descriptor() ([]byte, []int) { - return fileDescriptor_events_ae9aad9d10c424a6, []int{14} + return fileDescriptor_events_c05a46d3c928721e, []int{14} } func (m *Status) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -832,7 +832,7 @@ func (m *SessionCommand) Reset() { *m = SessionCommand{} } func (m *SessionCommand) String() string { return proto.CompactTextString(m) } func (*SessionCommand) ProtoMessage() {} func (*SessionCommand) Descriptor() ([]byte, []int) { - return fileDescriptor_events_ae9aad9d10c424a6, []int{15} + return fileDescriptor_events_c05a46d3c928721e, []int{15} } func (m *SessionCommand) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -888,7 +888,7 @@ func (m *SessionDisk) Reset() { *m = SessionDisk{} } func (m *SessionDisk) String() string { return proto.CompactTextString(m) } func (*SessionDisk) ProtoMessage() {} func (*SessionDisk) Descriptor() ([]byte, []int) { - return fileDescriptor_events_ae9aad9d10c424a6, []int{16} + return fileDescriptor_events_c05a46d3c928721e, []int{16} } func (m *SessionDisk) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -946,7 +946,7 @@ func (m *SessionNetwork) Reset() { *m = SessionNetwork{} } func (m *SessionNetwork) String() string { return proto.CompactTextString(m) } func (*SessionNetwork) ProtoMessage() {} func (*SessionNetwork) Descriptor() ([]byte, []int) { - return fileDescriptor_events_ae9aad9d10c424a6, []int{17} + return fileDescriptor_events_c05a46d3c928721e, []int{17} } func (m *SessionNetwork) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1000,7 +1000,7 @@ func (m *SessionData) Reset() { *m = SessionData{} } func (m *SessionData) String() string { return proto.CompactTextString(m) } func (*SessionData) ProtoMessage() {} func (*SessionData) Descriptor() ([]byte, []int) { - return fileDescriptor_events_ae9aad9d10c424a6, []int{18} + return fileDescriptor_events_c05a46d3c928721e, []int{18} } func (m *SessionData) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1050,7 +1050,7 @@ func (m *SessionLeave) Reset() { *m = SessionLeave{} } func (m *SessionLeave) String() string { return proto.CompactTextString(m) } func (*SessionLeave) ProtoMessage() {} func (*SessionLeave) Descriptor() ([]byte, []int) { - return fileDescriptor_events_ae9aad9d10c424a6, []int{19} + return fileDescriptor_events_c05a46d3c928721e, []int{19} } func (m *SessionLeave) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1090,17 +1090,19 @@ type UserLogin struct { // Method is the event field indicating how the login was performed Method string `protobuf:"bytes,4,opt,name=Method,proto3" json:"method,omitempty"` // IdentityAttributes is a map of user attributes received from identity provider - IdentityAttributes *Struct `protobuf:"bytes,5,opt,name=IdentityAttributes,casttype=Struct" json:"attributes,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + IdentityAttributes *Struct `protobuf:"bytes,5,opt,name=IdentityAttributes,casttype=Struct" json:"attributes,omitempty"` + // MFA is the MFA device used during the login. + MFADevice *MFADeviceMetadata `protobuf:"bytes,6,opt,name=MFADevice" json:"mfa_device,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *UserLogin) Reset() { *m = UserLogin{} } func (m *UserLogin) String() string { return proto.CompactTextString(m) } func (*UserLogin) ProtoMessage() {} func (*UserLogin) Descriptor() ([]byte, []int) { - return fileDescriptor_events_ae9aad9d10c424a6, []int{20} + return fileDescriptor_events_c05a46d3c928721e, []int{20} } func (m *UserLogin) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1150,7 +1152,7 @@ func (m *ResourceMetadata) Reset() { *m = ResourceMetadata{} } func (m *ResourceMetadata) String() string { return proto.CompactTextString(m) } func (*ResourceMetadata) ProtoMessage() {} func (*ResourceMetadata) Descriptor() ([]byte, []int) { - return fileDescriptor_events_ae9aad9d10c424a6, []int{21} + return fileDescriptor_events_c05a46d3c928721e, []int{21} } func (m *ResourceMetadata) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1200,7 +1202,7 @@ func (m *UserCreate) Reset() { *m = UserCreate{} } func (m *UserCreate) String() string { return proto.CompactTextString(m) } func (*UserCreate) ProtoMessage() {} func (*UserCreate) Descriptor() ([]byte, []int) { - return fileDescriptor_events_ae9aad9d10c424a6, []int{22} + return fileDescriptor_events_c05a46d3c928721e, []int{22} } func (m *UserCreate) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1246,7 +1248,7 @@ func (m *UserDelete) Reset() { *m = UserDelete{} } func (m *UserDelete) String() string { return proto.CompactTextString(m) } func (*UserDelete) ProtoMessage() {} func (*UserDelete) Descriptor() ([]byte, []int) { - return fileDescriptor_events_ae9aad9d10c424a6, []int{23} + return fileDescriptor_events_c05a46d3c928721e, []int{23} } func (m *UserDelete) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1290,7 +1292,7 @@ func (m *UserPasswordChange) Reset() { *m = UserPasswordChange{} } func (m *UserPasswordChange) String() string { return proto.CompactTextString(m) } func (*UserPasswordChange) ProtoMessage() {} func (*UserPasswordChange) Descriptor() ([]byte, []int) { - return fileDescriptor_events_ae9aad9d10c424a6, []int{24} + return fileDescriptor_events_c05a46d3c928721e, []int{24} } func (m *UserPasswordChange) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1351,7 +1353,7 @@ func (m *AccessRequestCreate) Reset() { *m = AccessRequestCreate{} } func (m *AccessRequestCreate) String() string { return proto.CompactTextString(m) } func (*AccessRequestCreate) ProtoMessage() {} func (*AccessRequestCreate) Descriptor() ([]byte, []int) { - return fileDescriptor_events_ae9aad9d10c424a6, []int{25} + return fileDescriptor_events_c05a46d3c928721e, []int{25} } func (m *AccessRequestCreate) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1401,7 +1403,7 @@ func (m *PortForward) Reset() { *m = PortForward{} } func (m *PortForward) String() string { return proto.CompactTextString(m) } func (*PortForward) ProtoMessage() {} func (*PortForward) Descriptor() ([]byte, []int) { - return fileDescriptor_events_ae9aad9d10c424a6, []int{26} + return fileDescriptor_events_c05a46d3c928721e, []int{26} } func (m *PortForward) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1449,7 +1451,7 @@ func (m *X11Forward) Reset() { *m = X11Forward{} } func (m *X11Forward) String() string { return proto.CompactTextString(m) } func (*X11Forward) ProtoMessage() {} func (*X11Forward) Descriptor() ([]byte, []int) { - return fileDescriptor_events_ae9aad9d10c424a6, []int{27} + return fileDescriptor_events_c05a46d3c928721e, []int{27} } func (m *X11Forward) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1495,7 +1497,7 @@ func (m *CommandMetadata) Reset() { *m = CommandMetadata{} } func (m *CommandMetadata) String() string { return proto.CompactTextString(m) } func (*CommandMetadata) ProtoMessage() {} func (*CommandMetadata) Descriptor() ([]byte, []int) { - return fileDescriptor_events_ae9aad9d10c424a6, []int{28} + return fileDescriptor_events_c05a46d3c928721e, []int{28} } func (m *CommandMetadata) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1552,7 +1554,7 @@ func (m *Exec) Reset() { *m = Exec{} } func (m *Exec) String() string { return proto.CompactTextString(m) } func (*Exec) ProtoMessage() {} func (*Exec) Descriptor() ([]byte, []int) { - return fileDescriptor_events_ae9aad9d10c424a6, []int{29} + return fileDescriptor_events_c05a46d3c928721e, []int{29} } func (m *Exec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1608,7 +1610,7 @@ func (m *SCP) Reset() { *m = SCP{} } func (m *SCP) String() string { return proto.CompactTextString(m) } func (*SCP) ProtoMessage() {} func (*SCP) Descriptor() ([]byte, []int) { - return fileDescriptor_events_ae9aad9d10c424a6, []int{30} + return fileDescriptor_events_c05a46d3c928721e, []int{30} } func (m *SCP) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1658,7 +1660,7 @@ func (m *Subsystem) Reset() { *m = Subsystem{} } func (m *Subsystem) String() string { return proto.CompactTextString(m) } func (*Subsystem) ProtoMessage() {} func (*Subsystem) Descriptor() ([]byte, []int) { - return fileDescriptor_events_ae9aad9d10c424a6, []int{31} + return fileDescriptor_events_c05a46d3c928721e, []int{31} } func (m *Subsystem) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1710,7 +1712,7 @@ func (m *ClientDisconnect) Reset() { *m = ClientDisconnect{} } func (m *ClientDisconnect) String() string { return proto.CompactTextString(m) } func (*ClientDisconnect) ProtoMessage() {} func (*ClientDisconnect) Descriptor() ([]byte, []int) { - return fileDescriptor_events_ae9aad9d10c424a6, []int{32} + return fileDescriptor_events_c05a46d3c928721e, []int{32} } func (m *ClientDisconnect) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1758,7 +1760,7 @@ func (m *AuthAttempt) Reset() { *m = AuthAttempt{} } func (m *AuthAttempt) String() string { return proto.CompactTextString(m) } func (*AuthAttempt) ProtoMessage() {} func (*AuthAttempt) Descriptor() ([]byte, []int) { - return fileDescriptor_events_ae9aad9d10c424a6, []int{33} + return fileDescriptor_events_c05a46d3c928721e, []int{33} } func (m *AuthAttempt) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1804,7 +1806,7 @@ func (m *ResetPasswordTokenCreate) Reset() { *m = ResetPasswordTokenCrea func (m *ResetPasswordTokenCreate) String() string { return proto.CompactTextString(m) } func (*ResetPasswordTokenCreate) ProtoMessage() {} func (*ResetPasswordTokenCreate) Descriptor() ([]byte, []int) { - return fileDescriptor_events_ae9aad9d10c424a6, []int{34} + return fileDescriptor_events_c05a46d3c928721e, []int{34} } func (m *ResetPasswordTokenCreate) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1850,7 +1852,7 @@ func (m *RoleCreate) Reset() { *m = RoleCreate{} } func (m *RoleCreate) String() string { return proto.CompactTextString(m) } func (*RoleCreate) ProtoMessage() {} func (*RoleCreate) Descriptor() ([]byte, []int) { - return fileDescriptor_events_ae9aad9d10c424a6, []int{35} + return fileDescriptor_events_c05a46d3c928721e, []int{35} } func (m *RoleCreate) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1896,7 +1898,7 @@ func (m *RoleDelete) Reset() { *m = RoleDelete{} } func (m *RoleDelete) String() string { return proto.CompactTextString(m) } func (*RoleDelete) ProtoMessage() {} func (*RoleDelete) Descriptor() ([]byte, []int) { - return fileDescriptor_events_ae9aad9d10c424a6, []int{36} + return fileDescriptor_events_c05a46d3c928721e, []int{36} } func (m *RoleDelete) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1942,7 +1944,7 @@ func (m *TrustedClusterCreate) Reset() { *m = TrustedClusterCreate{} } func (m *TrustedClusterCreate) String() string { return proto.CompactTextString(m) } func (*TrustedClusterCreate) ProtoMessage() {} func (*TrustedClusterCreate) Descriptor() ([]byte, []int) { - return fileDescriptor_events_ae9aad9d10c424a6, []int{37} + return fileDescriptor_events_c05a46d3c928721e, []int{37} } func (m *TrustedClusterCreate) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1988,7 +1990,7 @@ func (m *TrustedClusterDelete) Reset() { *m = TrustedClusterDelete{} } func (m *TrustedClusterDelete) String() string { return proto.CompactTextString(m) } func (*TrustedClusterDelete) ProtoMessage() {} func (*TrustedClusterDelete) Descriptor() ([]byte, []int) { - return fileDescriptor_events_ae9aad9d10c424a6, []int{38} + return fileDescriptor_events_c05a46d3c928721e, []int{38} } func (m *TrustedClusterDelete) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2035,7 +2037,7 @@ func (m *TrustedClusterTokenCreate) Reset() { *m = TrustedClusterTokenCr func (m *TrustedClusterTokenCreate) String() string { return proto.CompactTextString(m) } func (*TrustedClusterTokenCreate) ProtoMessage() {} func (*TrustedClusterTokenCreate) Descriptor() ([]byte, []int) { - return fileDescriptor_events_ae9aad9d10c424a6, []int{39} + return fileDescriptor_events_c05a46d3c928721e, []int{39} } func (m *TrustedClusterTokenCreate) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2081,7 +2083,7 @@ func (m *GithubConnectorCreate) Reset() { *m = GithubConnectorCreate{} } func (m *GithubConnectorCreate) String() string { return proto.CompactTextString(m) } func (*GithubConnectorCreate) ProtoMessage() {} func (*GithubConnectorCreate) Descriptor() ([]byte, []int) { - return fileDescriptor_events_ae9aad9d10c424a6, []int{40} + return fileDescriptor_events_c05a46d3c928721e, []int{40} } func (m *GithubConnectorCreate) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2127,7 +2129,7 @@ func (m *GithubConnectorDelete) Reset() { *m = GithubConnectorDelete{} } func (m *GithubConnectorDelete) String() string { return proto.CompactTextString(m) } func (*GithubConnectorDelete) ProtoMessage() {} func (*GithubConnectorDelete) Descriptor() ([]byte, []int) { - return fileDescriptor_events_ae9aad9d10c424a6, []int{41} + return fileDescriptor_events_c05a46d3c928721e, []int{41} } func (m *GithubConnectorDelete) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2173,7 +2175,7 @@ func (m *OIDCConnectorCreate) Reset() { *m = OIDCConnectorCreate{} } func (m *OIDCConnectorCreate) String() string { return proto.CompactTextString(m) } func (*OIDCConnectorCreate) ProtoMessage() {} func (*OIDCConnectorCreate) Descriptor() ([]byte, []int) { - return fileDescriptor_events_ae9aad9d10c424a6, []int{42} + return fileDescriptor_events_c05a46d3c928721e, []int{42} } func (m *OIDCConnectorCreate) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2219,7 +2221,7 @@ func (m *OIDCConnectorDelete) Reset() { *m = OIDCConnectorDelete{} } func (m *OIDCConnectorDelete) String() string { return proto.CompactTextString(m) } func (*OIDCConnectorDelete) ProtoMessage() {} func (*OIDCConnectorDelete) Descriptor() ([]byte, []int) { - return fileDescriptor_events_ae9aad9d10c424a6, []int{43} + return fileDescriptor_events_c05a46d3c928721e, []int{43} } func (m *OIDCConnectorDelete) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2265,7 +2267,7 @@ func (m *SAMLConnectorCreate) Reset() { *m = SAMLConnectorCreate{} } func (m *SAMLConnectorCreate) String() string { return proto.CompactTextString(m) } func (*SAMLConnectorCreate) ProtoMessage() {} func (*SAMLConnectorCreate) Descriptor() ([]byte, []int) { - return fileDescriptor_events_ae9aad9d10c424a6, []int{44} + return fileDescriptor_events_c05a46d3c928721e, []int{44} } func (m *SAMLConnectorCreate) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2311,7 +2313,7 @@ func (m *SAMLConnectorDelete) Reset() { *m = SAMLConnectorDelete{} } func (m *SAMLConnectorDelete) String() string { return proto.CompactTextString(m) } func (*SAMLConnectorDelete) ProtoMessage() {} func (*SAMLConnectorDelete) Descriptor() ([]byte, []int) { - return fileDescriptor_events_ae9aad9d10c424a6, []int{45} + return fileDescriptor_events_c05a46d3c928721e, []int{45} } func (m *SAMLConnectorDelete) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2375,7 +2377,7 @@ func (m *KubeRequest) Reset() { *m = KubeRequest{} } func (m *KubeRequest) String() string { return proto.CompactTextString(m) } func (*KubeRequest) ProtoMessage() {} func (*KubeRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_events_ae9aad9d10c424a6, []int{46} + return fileDescriptor_events_c05a46d3c928721e, []int{46} } func (m *KubeRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2427,7 +2429,7 @@ func (m *AppSessionStart) Reset() { *m = AppSessionStart{} } func (m *AppSessionStart) String() string { return proto.CompactTextString(m) } func (*AppSessionStart) ProtoMessage() {} func (*AppSessionStart) Descriptor() ([]byte, []int) { - return fileDescriptor_events_ae9aad9d10c424a6, []int{47} + return fileDescriptor_events_c05a46d3c928721e, []int{47} } func (m *AppSessionStart) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2482,7 +2484,7 @@ func (m *AppSessionChunk) Reset() { *m = AppSessionChunk{} } func (m *AppSessionChunk) String() string { return proto.CompactTextString(m) } func (*AppSessionChunk) ProtoMessage() {} func (*AppSessionChunk) Descriptor() ([]byte, []int) { - return fileDescriptor_events_ae9aad9d10c424a6, []int{48} + return fileDescriptor_events_c05a46d3c928721e, []int{48} } func (m *AppSessionChunk) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2532,7 +2534,7 @@ func (m *AppSessionRequest) Reset() { *m = AppSessionRequest{} } func (m *AppSessionRequest) String() string { return proto.CompactTextString(m) } func (*AppSessionRequest) ProtoMessage() {} func (*AppSessionRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_events_ae9aad9d10c424a6, []int{49} + return fileDescriptor_events_c05a46d3c928721e, []int{49} } func (m *AppSessionRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2582,7 +2584,7 @@ func (m *DatabaseMetadata) Reset() { *m = DatabaseMetadata{} } func (m *DatabaseMetadata) String() string { return proto.CompactTextString(m) } func (*DatabaseMetadata) ProtoMessage() {} func (*DatabaseMetadata) Descriptor() ([]byte, []int) { - return fileDescriptor_events_ae9aad9d10c424a6, []int{50} + return fileDescriptor_events_c05a46d3c928721e, []int{50} } func (m *DatabaseMetadata) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2636,7 +2638,7 @@ func (m *DatabaseSessionStart) Reset() { *m = DatabaseSessionStart{} } func (m *DatabaseSessionStart) String() string { return proto.CompactTextString(m) } func (*DatabaseSessionStart) ProtoMessage() {} func (*DatabaseSessionStart) Descriptor() ([]byte, []int) { - return fileDescriptor_events_ae9aad9d10c424a6, []int{51} + return fileDescriptor_events_c05a46d3c928721e, []int{51} } func (m *DatabaseSessionStart) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2686,7 +2688,7 @@ func (m *DatabaseSessionQuery) Reset() { *m = DatabaseSessionQuery{} } func (m *DatabaseSessionQuery) String() string { return proto.CompactTextString(m) } func (*DatabaseSessionQuery) ProtoMessage() {} func (*DatabaseSessionQuery) Descriptor() ([]byte, []int) { - return fileDescriptor_events_ae9aad9d10c424a6, []int{52} + return fileDescriptor_events_c05a46d3c928721e, []int{52} } func (m *DatabaseSessionQuery) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2734,7 +2736,7 @@ func (m *DatabaseSessionEnd) Reset() { *m = DatabaseSessionEnd{} } func (m *DatabaseSessionEnd) String() string { return proto.CompactTextString(m) } func (*DatabaseSessionEnd) ProtoMessage() {} func (*DatabaseSessionEnd) Descriptor() ([]byte, []int) { - return fileDescriptor_events_ae9aad9d10c424a6, []int{53} + return fileDescriptor_events_c05a46d3c928721e, []int{53} } func (m *DatabaseSessionEnd) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2763,6 +2765,144 @@ func (m *DatabaseSessionEnd) XXX_DiscardUnknown() { var xxx_messageInfo_DatabaseSessionEnd proto.InternalMessageInfo +// MFADeviceMetadata is a common MFA device metadata. +type MFADeviceMetadata struct { + // Name is the user-specified name of the MFA device. + DeviceName string `protobuf:"bytes,1,opt,name=DeviceName,proto3" json:"mfa_device_name"` + // ID is the UUID of the MFA device generated by Teleport. + DeviceID string `protobuf:"bytes,2,opt,name=DeviceID,proto3" json:"mfa_device_uuid"` + // Type is the type of this MFA device. + DeviceType string `protobuf:"bytes,3,opt,name=DeviceType,proto3" json:"mfa_device_type"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MFADeviceMetadata) Reset() { *m = MFADeviceMetadata{} } +func (m *MFADeviceMetadata) String() string { return proto.CompactTextString(m) } +func (*MFADeviceMetadata) ProtoMessage() {} +func (*MFADeviceMetadata) Descriptor() ([]byte, []int) { + return fileDescriptor_events_c05a46d3c928721e, []int{54} +} +func (m *MFADeviceMetadata) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MFADeviceMetadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MFADeviceMetadata.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalTo(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (dst *MFADeviceMetadata) XXX_Merge(src proto.Message) { + xxx_messageInfo_MFADeviceMetadata.Merge(dst, src) +} +func (m *MFADeviceMetadata) XXX_Size() int { + return m.Size() +} +func (m *MFADeviceMetadata) XXX_DiscardUnknown() { + xxx_messageInfo_MFADeviceMetadata.DiscardUnknown(m) +} + +var xxx_messageInfo_MFADeviceMetadata proto.InternalMessageInfo + +// MFADeviceAdd is emitted when a user adds an MFA device. +type MFADeviceAdd struct { + // Metadata is a common event metadata. + Metadata `protobuf:"bytes,1,opt,name=Metadata,embedded=Metadata" json:""` + // User is a common user event metadata. + UserMetadata `protobuf:"bytes,2,opt,name=User,embedded=User" json:""` + // Device is the new MFA device added by the user. + MFADeviceMetadata `protobuf:"bytes,3,opt,name=Device,embedded=Device" json:""` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MFADeviceAdd) Reset() { *m = MFADeviceAdd{} } +func (m *MFADeviceAdd) String() string { return proto.CompactTextString(m) } +func (*MFADeviceAdd) ProtoMessage() {} +func (*MFADeviceAdd) Descriptor() ([]byte, []int) { + return fileDescriptor_events_c05a46d3c928721e, []int{55} +} +func (m *MFADeviceAdd) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MFADeviceAdd) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MFADeviceAdd.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalTo(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (dst *MFADeviceAdd) XXX_Merge(src proto.Message) { + xxx_messageInfo_MFADeviceAdd.Merge(dst, src) +} +func (m *MFADeviceAdd) XXX_Size() int { + return m.Size() +} +func (m *MFADeviceAdd) XXX_DiscardUnknown() { + xxx_messageInfo_MFADeviceAdd.DiscardUnknown(m) +} + +var xxx_messageInfo_MFADeviceAdd proto.InternalMessageInfo + +// MFADeviceDelete is emitted when a user deletes an MFA device. +type MFADeviceDelete struct { + // Metadata is a common event metadata. + Metadata `protobuf:"bytes,1,opt,name=Metadata,embedded=Metadata" json:""` + // User is a common user event metadata. + UserMetadata `protobuf:"bytes,2,opt,name=User,embedded=User" json:""` + // Device is the MFA device deleted by the user. + MFADeviceMetadata `protobuf:"bytes,3,opt,name=Device,embedded=Device" json:""` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MFADeviceDelete) Reset() { *m = MFADeviceDelete{} } +func (m *MFADeviceDelete) String() string { return proto.CompactTextString(m) } +func (*MFADeviceDelete) ProtoMessage() {} +func (*MFADeviceDelete) Descriptor() ([]byte, []int) { + return fileDescriptor_events_c05a46d3c928721e, []int{56} +} +func (m *MFADeviceDelete) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MFADeviceDelete) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MFADeviceDelete.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalTo(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (dst *MFADeviceDelete) XXX_Merge(src proto.Message) { + xxx_messageInfo_MFADeviceDelete.Merge(dst, src) +} +func (m *MFADeviceDelete) XXX_Size() int { + return m.Size() +} +func (m *MFADeviceDelete) XXX_DiscardUnknown() { + xxx_messageInfo_MFADeviceDelete.DiscardUnknown(m) +} + +var xxx_messageInfo_MFADeviceDelete proto.InternalMessageInfo + // OneOf is a union of one of audit events submitted to the auth service type OneOf struct { // Event is one of the audit events @@ -2811,6 +2951,8 @@ type OneOf struct { // *OneOf_DatabaseSessionEnd // *OneOf_DatabaseSessionQuery // *OneOf_SessionUpload + // *OneOf_MFADeviceAdd + // *OneOf_MFADeviceDelete Event isOneOf_Event `protobuf_oneof:"Event"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -2821,7 +2963,7 @@ func (m *OneOf) Reset() { *m = OneOf{} } func (m *OneOf) String() string { return proto.CompactTextString(m) } func (*OneOf) ProtoMessage() {} func (*OneOf) Descriptor() ([]byte, []int) { - return fileDescriptor_events_ae9aad9d10c424a6, []int{54} + return fileDescriptor_events_c05a46d3c928721e, []int{57} } func (m *OneOf) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2985,6 +3127,12 @@ type OneOf_DatabaseSessionQuery struct { type OneOf_SessionUpload struct { SessionUpload *SessionUpload `protobuf:"bytes,43,opt,name=SessionUpload,oneof"` } +type OneOf_MFADeviceAdd struct { + MFADeviceAdd *MFADeviceAdd `protobuf:"bytes,44,opt,name=MFADeviceAdd,oneof"` +} +type OneOf_MFADeviceDelete struct { + MFADeviceDelete *MFADeviceDelete `protobuf:"bytes,45,opt,name=MFADeviceDelete,oneof"` +} func (*OneOf_UserLogin) isOneOf_Event() {} func (*OneOf_UserCreate) isOneOf_Event() {} @@ -3029,6 +3177,8 @@ func (*OneOf_DatabaseSessionStart) isOneOf_Event() {} func (*OneOf_DatabaseSessionEnd) isOneOf_Event() {} func (*OneOf_DatabaseSessionQuery) isOneOf_Event() {} func (*OneOf_SessionUpload) isOneOf_Event() {} +func (*OneOf_MFADeviceAdd) isOneOf_Event() {} +func (*OneOf_MFADeviceDelete) isOneOf_Event() {} func (m *OneOf) GetEvent() isOneOf_Event { if m != nil { @@ -3338,6 +3488,20 @@ func (m *OneOf) GetSessionUpload() *SessionUpload { return nil } +func (m *OneOf) GetMFADeviceAdd() *MFADeviceAdd { + if x, ok := m.GetEvent().(*OneOf_MFADeviceAdd); ok { + return x.MFADeviceAdd + } + return nil +} + +func (m *OneOf) GetMFADeviceDelete() *MFADeviceDelete { + if x, ok := m.GetEvent().(*OneOf_MFADeviceDelete); ok { + return x.MFADeviceDelete + } + return nil +} + // XXX_OneofFuncs is for the internal use of the proto package. func (*OneOf) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { return _OneOf_OneofMarshaler, _OneOf_OneofUnmarshaler, _OneOf_OneofSizer, []interface{}{ @@ -3384,6 +3548,8 @@ func (*OneOf) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, (*OneOf_DatabaseSessionEnd)(nil), (*OneOf_DatabaseSessionQuery)(nil), (*OneOf_SessionUpload)(nil), + (*OneOf_MFADeviceAdd)(nil), + (*OneOf_MFADeviceDelete)(nil), } } @@ -3606,6 +3772,16 @@ func _OneOf_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { if err := b.EncodeMessage(x.SessionUpload); err != nil { return err } + case *OneOf_MFADeviceAdd: + _ = b.EncodeVarint(44<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.MFADeviceAdd); err != nil { + return err + } + case *OneOf_MFADeviceDelete: + _ = b.EncodeVarint(45<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.MFADeviceDelete); err != nil { + return err + } case nil: default: return fmt.Errorf("OneOf.Event has unexpected type %T", x) @@ -3960,6 +4136,22 @@ func _OneOf_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) err := b.DecodeMessage(msg) m.Event = &OneOf_SessionUpload{msg} return true, err + case 44: // Event.MFADeviceAdd + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(MFADeviceAdd) + err := b.DecodeMessage(msg) + m.Event = &OneOf_MFADeviceAdd{msg} + return true, err + case 45: // Event.MFADeviceDelete + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(MFADeviceDelete) + err := b.DecodeMessage(msg) + m.Event = &OneOf_MFADeviceDelete{msg} + return true, err default: return false, nil } @@ -4184,6 +4376,16 @@ func _OneOf_OneofSizer(msg proto.Message) (n int) { n += 2 // tag and wire n += proto.SizeVarint(uint64(s)) n += s + case *OneOf_MFADeviceAdd: + s := proto.Size(x.MFADeviceAdd) + n += 2 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *OneOf_MFADeviceDelete: + s := proto.Size(x.MFADeviceDelete) + n += 2 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s case nil: default: panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) @@ -4208,7 +4410,7 @@ func (m *StreamStatus) Reset() { *m = StreamStatus{} } func (m *StreamStatus) String() string { return proto.CompactTextString(m) } func (*StreamStatus) ProtoMessage() {} func (*StreamStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_events_ae9aad9d10c424a6, []int{55} + return fileDescriptor_events_c05a46d3c928721e, []int{58} } func (m *StreamStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4256,7 +4458,7 @@ func (m *SessionUpload) Reset() { *m = SessionUpload{} } func (m *SessionUpload) String() string { return proto.CompactTextString(m) } func (*SessionUpload) ProtoMessage() {} func (*SessionUpload) Descriptor() ([]byte, []int) { - return fileDescriptor_events_ae9aad9d10c424a6, []int{56} + return fileDescriptor_events_c05a46d3c928721e, []int{59} } func (m *SessionUpload) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4341,6 +4543,9 @@ func init() { proto.RegisterType((*DatabaseSessionStart)(nil), "events.DatabaseSessionStart") proto.RegisterType((*DatabaseSessionQuery)(nil), "events.DatabaseSessionQuery") proto.RegisterType((*DatabaseSessionEnd)(nil), "events.DatabaseSessionEnd") + proto.RegisterType((*MFADeviceMetadata)(nil), "events.MFADeviceMetadata") + proto.RegisterType((*MFADeviceAdd)(nil), "events.MFADeviceAdd") + proto.RegisterType((*MFADeviceDelete)(nil), "events.MFADeviceDelete") proto.RegisterType((*OneOf)(nil), "events.OneOf") proto.RegisterType((*StreamStatus)(nil), "events.StreamStatus") proto.RegisterType((*SessionUpload)(nil), "events.SessionUpload") @@ -5709,6 +5914,16 @@ func (m *UserLogin) MarshalTo(dAtA []byte) (int, error) { } i += n64 } + if m.MFADevice != nil { + dAtA[i] = 0x32 + i++ + i = encodeVarintEvents(dAtA, i, uint64(m.MFADevice.Size())) + n65, err := m.MFADevice.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n65 + } if m.XXX_unrecognized != nil { i += copy(dAtA[i:], m.XXX_unrecognized) } @@ -5739,11 +5954,11 @@ func (m *ResourceMetadata) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintEvents(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(m.Expires))) - n65, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Expires, dAtA[i:]) + n66, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Expires, dAtA[i:]) if err != nil { return 0, err } - i += n65 + i += n66 if len(m.UpdatedBy) > 0 { dAtA[i] = 0x1a i++ @@ -5780,27 +5995,27 @@ func (m *UserCreate) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintEvents(dAtA, i, uint64(m.Metadata.Size())) - n66, err := m.Metadata.MarshalTo(dAtA[i:]) + n67, err := m.Metadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n66 + i += n67 dAtA[i] = 0x12 i++ i = encodeVarintEvents(dAtA, i, uint64(m.UserMetadata.Size())) - n67, err := m.UserMetadata.MarshalTo(dAtA[i:]) + n68, err := m.UserMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n67 + i += n68 dAtA[i] = 0x1a i++ i = encodeVarintEvents(dAtA, i, uint64(m.ResourceMetadata.Size())) - n68, err := m.ResourceMetadata.MarshalTo(dAtA[i:]) + n69, err := m.ResourceMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n68 + i += n69 if len(m.Roles) > 0 { for _, s := range m.Roles { dAtA[i] = 0x22 @@ -5846,27 +6061,27 @@ func (m *UserDelete) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintEvents(dAtA, i, uint64(m.Metadata.Size())) - n69, err := m.Metadata.MarshalTo(dAtA[i:]) + n70, err := m.Metadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n69 + i += n70 dAtA[i] = 0x12 i++ i = encodeVarintEvents(dAtA, i, uint64(m.UserMetadata.Size())) - n70, err := m.UserMetadata.MarshalTo(dAtA[i:]) + n71, err := m.UserMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n70 + i += n71 dAtA[i] = 0x1a i++ i = encodeVarintEvents(dAtA, i, uint64(m.ResourceMetadata.Size())) - n71, err := m.ResourceMetadata.MarshalTo(dAtA[i:]) + n72, err := m.ResourceMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n71 + i += n72 if m.XXX_unrecognized != nil { i += copy(dAtA[i:], m.XXX_unrecognized) } @@ -5891,19 +6106,19 @@ func (m *UserPasswordChange) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintEvents(dAtA, i, uint64(m.Metadata.Size())) - n72, err := m.Metadata.MarshalTo(dAtA[i:]) + n73, err := m.Metadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n72 + i += n73 dAtA[i] = 0x12 i++ i = encodeVarintEvents(dAtA, i, uint64(m.UserMetadata.Size())) - n73, err := m.UserMetadata.MarshalTo(dAtA[i:]) + n74, err := m.UserMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n73 + i += n74 if m.XXX_unrecognized != nil { i += copy(dAtA[i:], m.XXX_unrecognized) } @@ -5928,27 +6143,27 @@ func (m *AccessRequestCreate) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintEvents(dAtA, i, uint64(m.Metadata.Size())) - n74, err := m.Metadata.MarshalTo(dAtA[i:]) + n75, err := m.Metadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n74 + i += n75 dAtA[i] = 0x12 i++ i = encodeVarintEvents(dAtA, i, uint64(m.UserMetadata.Size())) - n75, err := m.UserMetadata.MarshalTo(dAtA[i:]) + n76, err := m.UserMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n75 + i += n76 dAtA[i] = 0x1a i++ i = encodeVarintEvents(dAtA, i, uint64(m.ResourceMetadata.Size())) - n76, err := m.ResourceMetadata.MarshalTo(dAtA[i:]) + n77, err := m.ResourceMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n76 + i += n77 if len(m.Roles) > 0 { for _, s := range m.Roles { dAtA[i] = 0x22 @@ -5992,11 +6207,11 @@ func (m *AccessRequestCreate) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x4a i++ i = encodeVarintEvents(dAtA, i, uint64(m.Annotations.Size())) - n77, err := m.Annotations.MarshalTo(dAtA[i:]) + n78, err := m.Annotations.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n77 + i += n78 } if m.XXX_unrecognized != nil { i += copy(dAtA[i:], m.XXX_unrecognized) @@ -6022,35 +6237,35 @@ func (m *PortForward) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintEvents(dAtA, i, uint64(m.Metadata.Size())) - n78, err := m.Metadata.MarshalTo(dAtA[i:]) + n79, err := m.Metadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n78 + i += n79 dAtA[i] = 0x12 i++ i = encodeVarintEvents(dAtA, i, uint64(m.UserMetadata.Size())) - n79, err := m.UserMetadata.MarshalTo(dAtA[i:]) + n80, err := m.UserMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n79 + i += n80 dAtA[i] = 0x1a i++ i = encodeVarintEvents(dAtA, i, uint64(m.ConnectionMetadata.Size())) - n80, err := m.ConnectionMetadata.MarshalTo(dAtA[i:]) + n81, err := m.ConnectionMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n80 + i += n81 dAtA[i] = 0x22 i++ i = encodeVarintEvents(dAtA, i, uint64(m.Status.Size())) - n81, err := m.Status.MarshalTo(dAtA[i:]) + n82, err := m.Status.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n81 + i += n82 if len(m.Addr) > 0 { dAtA[i] = 0x2a i++ @@ -6081,35 +6296,35 @@ func (m *X11Forward) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintEvents(dAtA, i, uint64(m.Metadata.Size())) - n82, err := m.Metadata.MarshalTo(dAtA[i:]) + n83, err := m.Metadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n82 + i += n83 dAtA[i] = 0x12 i++ i = encodeVarintEvents(dAtA, i, uint64(m.UserMetadata.Size())) - n83, err := m.UserMetadata.MarshalTo(dAtA[i:]) + n84, err := m.UserMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n83 + i += n84 dAtA[i] = 0x1a i++ i = encodeVarintEvents(dAtA, i, uint64(m.ConnectionMetadata.Size())) - n84, err := m.ConnectionMetadata.MarshalTo(dAtA[i:]) + n85, err := m.ConnectionMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n84 + i += n85 dAtA[i] = 0x22 i++ i = encodeVarintEvents(dAtA, i, uint64(m.Status.Size())) - n85, err := m.Status.MarshalTo(dAtA[i:]) + n86, err := m.Status.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n85 + i += n86 if m.XXX_unrecognized != nil { i += copy(dAtA[i:], m.XXX_unrecognized) } @@ -6173,67 +6388,67 @@ func (m *Exec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintEvents(dAtA, i, uint64(m.Metadata.Size())) - n86, err := m.Metadata.MarshalTo(dAtA[i:]) + n87, err := m.Metadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n86 + i += n87 dAtA[i] = 0x12 i++ i = encodeVarintEvents(dAtA, i, uint64(m.UserMetadata.Size())) - n87, err := m.UserMetadata.MarshalTo(dAtA[i:]) + n88, err := m.UserMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n87 + i += n88 dAtA[i] = 0x1a i++ i = encodeVarintEvents(dAtA, i, uint64(m.ConnectionMetadata.Size())) - n88, err := m.ConnectionMetadata.MarshalTo(dAtA[i:]) + n89, err := m.ConnectionMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n88 + i += n89 dAtA[i] = 0x22 i++ i = encodeVarintEvents(dAtA, i, uint64(m.SessionMetadata.Size())) - n89, err := m.SessionMetadata.MarshalTo(dAtA[i:]) + n90, err := m.SessionMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n89 + i += n90 dAtA[i] = 0x2a i++ i = encodeVarintEvents(dAtA, i, uint64(m.ServerMetadata.Size())) - n90, err := m.ServerMetadata.MarshalTo(dAtA[i:]) + n91, err := m.ServerMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n90 + i += n91 dAtA[i] = 0x32 i++ i = encodeVarintEvents(dAtA, i, uint64(m.CommandMetadata.Size())) - n91, err := m.CommandMetadata.MarshalTo(dAtA[i:]) + n92, err := m.CommandMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n91 + i += n92 dAtA[i] = 0x3a i++ i = encodeVarintEvents(dAtA, i, uint64(m.KubernetesClusterMetadata.Size())) - n92, err := m.KubernetesClusterMetadata.MarshalTo(dAtA[i:]) + n93, err := m.KubernetesClusterMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n92 + i += n93 dAtA[i] = 0x42 i++ i = encodeVarintEvents(dAtA, i, uint64(m.KubernetesPodMetadata.Size())) - n93, err := m.KubernetesPodMetadata.MarshalTo(dAtA[i:]) + n94, err := m.KubernetesPodMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n93 + i += n94 if m.XXX_unrecognized != nil { i += copy(dAtA[i:], m.XXX_unrecognized) } @@ -6258,51 +6473,51 @@ func (m *SCP) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintEvents(dAtA, i, uint64(m.Metadata.Size())) - n94, err := m.Metadata.MarshalTo(dAtA[i:]) + n95, err := m.Metadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n94 + i += n95 dAtA[i] = 0x12 i++ i = encodeVarintEvents(dAtA, i, uint64(m.UserMetadata.Size())) - n95, err := m.UserMetadata.MarshalTo(dAtA[i:]) + n96, err := m.UserMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n95 + i += n96 dAtA[i] = 0x1a i++ i = encodeVarintEvents(dAtA, i, uint64(m.ConnectionMetadata.Size())) - n96, err := m.ConnectionMetadata.MarshalTo(dAtA[i:]) + n97, err := m.ConnectionMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n96 + i += n97 dAtA[i] = 0x22 i++ i = encodeVarintEvents(dAtA, i, uint64(m.SessionMetadata.Size())) - n97, err := m.SessionMetadata.MarshalTo(dAtA[i:]) + n98, err := m.SessionMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n97 + i += n98 dAtA[i] = 0x2a i++ i = encodeVarintEvents(dAtA, i, uint64(m.ServerMetadata.Size())) - n98, err := m.ServerMetadata.MarshalTo(dAtA[i:]) + n99, err := m.ServerMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n98 + i += n99 dAtA[i] = 0x32 i++ i = encodeVarintEvents(dAtA, i, uint64(m.CommandMetadata.Size())) - n99, err := m.CommandMetadata.MarshalTo(dAtA[i:]) + n100, err := m.CommandMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n99 + i += n100 if len(m.Path) > 0 { dAtA[i] = 0x3a i++ @@ -6339,27 +6554,27 @@ func (m *Subsystem) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintEvents(dAtA, i, uint64(m.Metadata.Size())) - n100, err := m.Metadata.MarshalTo(dAtA[i:]) + n101, err := m.Metadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n100 + i += n101 dAtA[i] = 0x12 i++ i = encodeVarintEvents(dAtA, i, uint64(m.UserMetadata.Size())) - n101, err := m.UserMetadata.MarshalTo(dAtA[i:]) + n102, err := m.UserMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n101 + i += n102 dAtA[i] = 0x1a i++ i = encodeVarintEvents(dAtA, i, uint64(m.ConnectionMetadata.Size())) - n102, err := m.ConnectionMetadata.MarshalTo(dAtA[i:]) + n103, err := m.ConnectionMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n102 + i += n103 if len(m.Name) > 0 { dAtA[i] = 0x22 i++ @@ -6396,35 +6611,35 @@ func (m *ClientDisconnect) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintEvents(dAtA, i, uint64(m.Metadata.Size())) - n103, err := m.Metadata.MarshalTo(dAtA[i:]) + n104, err := m.Metadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n103 + i += n104 dAtA[i] = 0x12 i++ i = encodeVarintEvents(dAtA, i, uint64(m.UserMetadata.Size())) - n104, err := m.UserMetadata.MarshalTo(dAtA[i:]) + n105, err := m.UserMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n104 + i += n105 dAtA[i] = 0x1a i++ i = encodeVarintEvents(dAtA, i, uint64(m.ConnectionMetadata.Size())) - n105, err := m.ConnectionMetadata.MarshalTo(dAtA[i:]) + n106, err := m.ConnectionMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n105 + i += n106 dAtA[i] = 0x22 i++ i = encodeVarintEvents(dAtA, i, uint64(m.ServerMetadata.Size())) - n106, err := m.ServerMetadata.MarshalTo(dAtA[i:]) + n107, err := m.ServerMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n106 + i += n107 if len(m.Reason) > 0 { dAtA[i] = 0x2a i++ @@ -6455,35 +6670,35 @@ func (m *AuthAttempt) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintEvents(dAtA, i, uint64(m.Metadata.Size())) - n107, err := m.Metadata.MarshalTo(dAtA[i:]) + n108, err := m.Metadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n107 + i += n108 dAtA[i] = 0x12 i++ i = encodeVarintEvents(dAtA, i, uint64(m.UserMetadata.Size())) - n108, err := m.UserMetadata.MarshalTo(dAtA[i:]) + n109, err := m.UserMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n108 + i += n109 dAtA[i] = 0x1a i++ i = encodeVarintEvents(dAtA, i, uint64(m.ConnectionMetadata.Size())) - n109, err := m.ConnectionMetadata.MarshalTo(dAtA[i:]) + n110, err := m.ConnectionMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n109 + i += n110 dAtA[i] = 0x22 i++ i = encodeVarintEvents(dAtA, i, uint64(m.Status.Size())) - n110, err := m.Status.MarshalTo(dAtA[i:]) + n111, err := m.Status.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n110 + i += n111 if m.XXX_unrecognized != nil { i += copy(dAtA[i:], m.XXX_unrecognized) } @@ -6508,27 +6723,27 @@ func (m *ResetPasswordTokenCreate) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintEvents(dAtA, i, uint64(m.Metadata.Size())) - n111, err := m.Metadata.MarshalTo(dAtA[i:]) + n112, err := m.Metadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n111 + i += n112 dAtA[i] = 0x12 i++ i = encodeVarintEvents(dAtA, i, uint64(m.ResourceMetadata.Size())) - n112, err := m.ResourceMetadata.MarshalTo(dAtA[i:]) + n113, err := m.ResourceMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n112 + i += n113 dAtA[i] = 0x1a i++ i = encodeVarintEvents(dAtA, i, uint64(m.UserMetadata.Size())) - n113, err := m.UserMetadata.MarshalTo(dAtA[i:]) + n114, err := m.UserMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n113 + i += n114 if m.XXX_unrecognized != nil { i += copy(dAtA[i:], m.XXX_unrecognized) } @@ -6553,27 +6768,27 @@ func (m *RoleCreate) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintEvents(dAtA, i, uint64(m.Metadata.Size())) - n114, err := m.Metadata.MarshalTo(dAtA[i:]) + n115, err := m.Metadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n114 + i += n115 dAtA[i] = 0x12 i++ i = encodeVarintEvents(dAtA, i, uint64(m.ResourceMetadata.Size())) - n115, err := m.ResourceMetadata.MarshalTo(dAtA[i:]) + n116, err := m.ResourceMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n115 + i += n116 dAtA[i] = 0x1a i++ i = encodeVarintEvents(dAtA, i, uint64(m.UserMetadata.Size())) - n116, err := m.UserMetadata.MarshalTo(dAtA[i:]) + n117, err := m.UserMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n116 + i += n117 if m.XXX_unrecognized != nil { i += copy(dAtA[i:], m.XXX_unrecognized) } @@ -6598,27 +6813,27 @@ func (m *RoleDelete) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintEvents(dAtA, i, uint64(m.Metadata.Size())) - n117, err := m.Metadata.MarshalTo(dAtA[i:]) + n118, err := m.Metadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n117 + i += n118 dAtA[i] = 0x12 i++ i = encodeVarintEvents(dAtA, i, uint64(m.ResourceMetadata.Size())) - n118, err := m.ResourceMetadata.MarshalTo(dAtA[i:]) + n119, err := m.ResourceMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n118 + i += n119 dAtA[i] = 0x1a i++ i = encodeVarintEvents(dAtA, i, uint64(m.UserMetadata.Size())) - n119, err := m.UserMetadata.MarshalTo(dAtA[i:]) + n120, err := m.UserMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n119 + i += n120 if m.XXX_unrecognized != nil { i += copy(dAtA[i:], m.XXX_unrecognized) } @@ -6643,27 +6858,27 @@ func (m *TrustedClusterCreate) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintEvents(dAtA, i, uint64(m.Metadata.Size())) - n120, err := m.Metadata.MarshalTo(dAtA[i:]) + n121, err := m.Metadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n120 + i += n121 dAtA[i] = 0x12 i++ i = encodeVarintEvents(dAtA, i, uint64(m.ResourceMetadata.Size())) - n121, err := m.ResourceMetadata.MarshalTo(dAtA[i:]) + n122, err := m.ResourceMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n121 + i += n122 dAtA[i] = 0x1a i++ i = encodeVarintEvents(dAtA, i, uint64(m.UserMetadata.Size())) - n122, err := m.UserMetadata.MarshalTo(dAtA[i:]) + n123, err := m.UserMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n122 + i += n123 if m.XXX_unrecognized != nil { i += copy(dAtA[i:], m.XXX_unrecognized) } @@ -6688,27 +6903,27 @@ func (m *TrustedClusterDelete) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintEvents(dAtA, i, uint64(m.Metadata.Size())) - n123, err := m.Metadata.MarshalTo(dAtA[i:]) + n124, err := m.Metadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n123 + i += n124 dAtA[i] = 0x12 i++ i = encodeVarintEvents(dAtA, i, uint64(m.ResourceMetadata.Size())) - n124, err := m.ResourceMetadata.MarshalTo(dAtA[i:]) + n125, err := m.ResourceMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n124 + i += n125 dAtA[i] = 0x1a i++ i = encodeVarintEvents(dAtA, i, uint64(m.UserMetadata.Size())) - n125, err := m.UserMetadata.MarshalTo(dAtA[i:]) + n126, err := m.UserMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n125 + i += n126 if m.XXX_unrecognized != nil { i += copy(dAtA[i:], m.XXX_unrecognized) } @@ -6733,27 +6948,27 @@ func (m *TrustedClusterTokenCreate) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintEvents(dAtA, i, uint64(m.Metadata.Size())) - n126, err := m.Metadata.MarshalTo(dAtA[i:]) + n127, err := m.Metadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n126 + i += n127 dAtA[i] = 0x12 i++ i = encodeVarintEvents(dAtA, i, uint64(m.ResourceMetadata.Size())) - n127, err := m.ResourceMetadata.MarshalTo(dAtA[i:]) + n128, err := m.ResourceMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n127 + i += n128 dAtA[i] = 0x1a i++ i = encodeVarintEvents(dAtA, i, uint64(m.UserMetadata.Size())) - n128, err := m.UserMetadata.MarshalTo(dAtA[i:]) + n129, err := m.UserMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n128 + i += n129 if m.XXX_unrecognized != nil { i += copy(dAtA[i:], m.XXX_unrecognized) } @@ -6778,27 +6993,27 @@ func (m *GithubConnectorCreate) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintEvents(dAtA, i, uint64(m.Metadata.Size())) - n129, err := m.Metadata.MarshalTo(dAtA[i:]) + n130, err := m.Metadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n129 + i += n130 dAtA[i] = 0x12 i++ i = encodeVarintEvents(dAtA, i, uint64(m.ResourceMetadata.Size())) - n130, err := m.ResourceMetadata.MarshalTo(dAtA[i:]) + n131, err := m.ResourceMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n130 + i += n131 dAtA[i] = 0x1a i++ i = encodeVarintEvents(dAtA, i, uint64(m.UserMetadata.Size())) - n131, err := m.UserMetadata.MarshalTo(dAtA[i:]) + n132, err := m.UserMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n131 + i += n132 if m.XXX_unrecognized != nil { i += copy(dAtA[i:], m.XXX_unrecognized) } @@ -6823,27 +7038,27 @@ func (m *GithubConnectorDelete) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintEvents(dAtA, i, uint64(m.Metadata.Size())) - n132, err := m.Metadata.MarshalTo(dAtA[i:]) + n133, err := m.Metadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n132 + i += n133 dAtA[i] = 0x12 i++ i = encodeVarintEvents(dAtA, i, uint64(m.ResourceMetadata.Size())) - n133, err := m.ResourceMetadata.MarshalTo(dAtA[i:]) + n134, err := m.ResourceMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n133 + i += n134 dAtA[i] = 0x1a i++ i = encodeVarintEvents(dAtA, i, uint64(m.UserMetadata.Size())) - n134, err := m.UserMetadata.MarshalTo(dAtA[i:]) + n135, err := m.UserMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n134 + i += n135 if m.XXX_unrecognized != nil { i += copy(dAtA[i:], m.XXX_unrecognized) } @@ -6868,27 +7083,27 @@ func (m *OIDCConnectorCreate) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintEvents(dAtA, i, uint64(m.Metadata.Size())) - n135, err := m.Metadata.MarshalTo(dAtA[i:]) + n136, err := m.Metadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n135 + i += n136 dAtA[i] = 0x12 i++ i = encodeVarintEvents(dAtA, i, uint64(m.ResourceMetadata.Size())) - n136, err := m.ResourceMetadata.MarshalTo(dAtA[i:]) + n137, err := m.ResourceMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n136 + i += n137 dAtA[i] = 0x1a i++ i = encodeVarintEvents(dAtA, i, uint64(m.UserMetadata.Size())) - n137, err := m.UserMetadata.MarshalTo(dAtA[i:]) + n138, err := m.UserMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n137 + i += n138 if m.XXX_unrecognized != nil { i += copy(dAtA[i:], m.XXX_unrecognized) } @@ -6913,27 +7128,27 @@ func (m *OIDCConnectorDelete) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintEvents(dAtA, i, uint64(m.Metadata.Size())) - n138, err := m.Metadata.MarshalTo(dAtA[i:]) + n139, err := m.Metadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n138 + i += n139 dAtA[i] = 0x12 i++ i = encodeVarintEvents(dAtA, i, uint64(m.ResourceMetadata.Size())) - n139, err := m.ResourceMetadata.MarshalTo(dAtA[i:]) + n140, err := m.ResourceMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n139 + i += n140 dAtA[i] = 0x1a i++ i = encodeVarintEvents(dAtA, i, uint64(m.UserMetadata.Size())) - n140, err := m.UserMetadata.MarshalTo(dAtA[i:]) + n141, err := m.UserMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n140 + i += n141 if m.XXX_unrecognized != nil { i += copy(dAtA[i:], m.XXX_unrecognized) } @@ -6958,27 +7173,27 @@ func (m *SAMLConnectorCreate) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintEvents(dAtA, i, uint64(m.Metadata.Size())) - n141, err := m.Metadata.MarshalTo(dAtA[i:]) + n142, err := m.Metadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n141 + i += n142 dAtA[i] = 0x12 i++ i = encodeVarintEvents(dAtA, i, uint64(m.ResourceMetadata.Size())) - n142, err := m.ResourceMetadata.MarshalTo(dAtA[i:]) + n143, err := m.ResourceMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n142 + i += n143 dAtA[i] = 0x1a i++ i = encodeVarintEvents(dAtA, i, uint64(m.UserMetadata.Size())) - n143, err := m.UserMetadata.MarshalTo(dAtA[i:]) + n144, err := m.UserMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n143 + i += n144 if m.XXX_unrecognized != nil { i += copy(dAtA[i:], m.XXX_unrecognized) } @@ -7003,27 +7218,27 @@ func (m *SAMLConnectorDelete) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintEvents(dAtA, i, uint64(m.Metadata.Size())) - n144, err := m.Metadata.MarshalTo(dAtA[i:]) + n145, err := m.Metadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n144 + i += n145 dAtA[i] = 0x12 i++ i = encodeVarintEvents(dAtA, i, uint64(m.ResourceMetadata.Size())) - n145, err := m.ResourceMetadata.MarshalTo(dAtA[i:]) + n146, err := m.ResourceMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n145 + i += n146 dAtA[i] = 0x1a i++ i = encodeVarintEvents(dAtA, i, uint64(m.UserMetadata.Size())) - n146, err := m.UserMetadata.MarshalTo(dAtA[i:]) + n147, err := m.UserMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n146 + i += n147 if m.XXX_unrecognized != nil { i += copy(dAtA[i:], m.XXX_unrecognized) } @@ -7048,35 +7263,35 @@ func (m *KubeRequest) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintEvents(dAtA, i, uint64(m.Metadata.Size())) - n147, err := m.Metadata.MarshalTo(dAtA[i:]) + n148, err := m.Metadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n147 + i += n148 dAtA[i] = 0x12 i++ i = encodeVarintEvents(dAtA, i, uint64(m.UserMetadata.Size())) - n148, err := m.UserMetadata.MarshalTo(dAtA[i:]) + n149, err := m.UserMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n148 + i += n149 dAtA[i] = 0x1a i++ i = encodeVarintEvents(dAtA, i, uint64(m.ConnectionMetadata.Size())) - n149, err := m.ConnectionMetadata.MarshalTo(dAtA[i:]) + n150, err := m.ConnectionMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n149 + i += n150 dAtA[i] = 0x22 i++ i = encodeVarintEvents(dAtA, i, uint64(m.ServerMetadata.Size())) - n150, err := m.ServerMetadata.MarshalTo(dAtA[i:]) + n151, err := m.ServerMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n150 + i += n151 if len(m.RequestPath) > 0 { dAtA[i] = 0x2a i++ @@ -7121,11 +7336,11 @@ func (m *KubeRequest) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x62 i++ i = encodeVarintEvents(dAtA, i, uint64(m.KubernetesClusterMetadata.Size())) - n151, err := m.KubernetesClusterMetadata.MarshalTo(dAtA[i:]) + n152, err := m.KubernetesClusterMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n151 + i += n152 if m.XXX_unrecognized != nil { i += copy(dAtA[i:], m.XXX_unrecognized) } @@ -7150,43 +7365,43 @@ func (m *AppSessionStart) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintEvents(dAtA, i, uint64(m.Metadata.Size())) - n152, err := m.Metadata.MarshalTo(dAtA[i:]) + n153, err := m.Metadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n152 + i += n153 dAtA[i] = 0x12 i++ i = encodeVarintEvents(dAtA, i, uint64(m.UserMetadata.Size())) - n153, err := m.UserMetadata.MarshalTo(dAtA[i:]) + n154, err := m.UserMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n153 + i += n154 dAtA[i] = 0x1a i++ i = encodeVarintEvents(dAtA, i, uint64(m.SessionMetadata.Size())) - n154, err := m.SessionMetadata.MarshalTo(dAtA[i:]) + n155, err := m.SessionMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n154 + i += n155 dAtA[i] = 0x22 i++ i = encodeVarintEvents(dAtA, i, uint64(m.ServerMetadata.Size())) - n155, err := m.ServerMetadata.MarshalTo(dAtA[i:]) + n156, err := m.ServerMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n155 + i += n156 dAtA[i] = 0x2a i++ i = encodeVarintEvents(dAtA, i, uint64(m.ConnectionMetadata.Size())) - n156, err := m.ConnectionMetadata.MarshalTo(dAtA[i:]) + n157, err := m.ConnectionMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n156 + i += n157 if len(m.PublicAddr) > 0 { dAtA[i] = 0x3a i++ @@ -7217,43 +7432,43 @@ func (m *AppSessionChunk) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintEvents(dAtA, i, uint64(m.Metadata.Size())) - n157, err := m.Metadata.MarshalTo(dAtA[i:]) + n158, err := m.Metadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n157 + i += n158 dAtA[i] = 0x12 i++ i = encodeVarintEvents(dAtA, i, uint64(m.UserMetadata.Size())) - n158, err := m.UserMetadata.MarshalTo(dAtA[i:]) + n159, err := m.UserMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n158 + i += n159 dAtA[i] = 0x1a i++ i = encodeVarintEvents(dAtA, i, uint64(m.SessionMetadata.Size())) - n159, err := m.SessionMetadata.MarshalTo(dAtA[i:]) + n160, err := m.SessionMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n159 + i += n160 dAtA[i] = 0x22 i++ i = encodeVarintEvents(dAtA, i, uint64(m.ServerMetadata.Size())) - n160, err := m.ServerMetadata.MarshalTo(dAtA[i:]) + n161, err := m.ServerMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n160 + i += n161 dAtA[i] = 0x2a i++ i = encodeVarintEvents(dAtA, i, uint64(m.ConnectionMetadata.Size())) - n161, err := m.ConnectionMetadata.MarshalTo(dAtA[i:]) + n162, err := m.ConnectionMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n161 + i += n162 if len(m.SessionChunkID) > 0 { dAtA[i] = 0x32 i++ @@ -7284,11 +7499,11 @@ func (m *AppSessionRequest) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintEvents(dAtA, i, uint64(m.Metadata.Size())) - n162, err := m.Metadata.MarshalTo(dAtA[i:]) + n163, err := m.Metadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n162 + i += n163 if m.StatusCode != 0 { dAtA[i] = 0x10 i++ @@ -7387,59 +7602,59 @@ func (m *DatabaseSessionStart) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintEvents(dAtA, i, uint64(m.Metadata.Size())) - n163, err := m.Metadata.MarshalTo(dAtA[i:]) + n164, err := m.Metadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n163 + i += n164 dAtA[i] = 0x12 i++ i = encodeVarintEvents(dAtA, i, uint64(m.UserMetadata.Size())) - n164, err := m.UserMetadata.MarshalTo(dAtA[i:]) + n165, err := m.UserMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n164 + i += n165 dAtA[i] = 0x1a i++ i = encodeVarintEvents(dAtA, i, uint64(m.SessionMetadata.Size())) - n165, err := m.SessionMetadata.MarshalTo(dAtA[i:]) + n166, err := m.SessionMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n165 + i += n166 dAtA[i] = 0x22 i++ i = encodeVarintEvents(dAtA, i, uint64(m.ServerMetadata.Size())) - n166, err := m.ServerMetadata.MarshalTo(dAtA[i:]) + n167, err := m.ServerMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n166 + i += n167 dAtA[i] = 0x2a i++ i = encodeVarintEvents(dAtA, i, uint64(m.ConnectionMetadata.Size())) - n167, err := m.ConnectionMetadata.MarshalTo(dAtA[i:]) + n168, err := m.ConnectionMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n167 + i += n168 dAtA[i] = 0x32 i++ i = encodeVarintEvents(dAtA, i, uint64(m.Status.Size())) - n168, err := m.Status.MarshalTo(dAtA[i:]) + n169, err := m.Status.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n168 + i += n169 dAtA[i] = 0x3a i++ i = encodeVarintEvents(dAtA, i, uint64(m.DatabaseMetadata.Size())) - n169, err := m.DatabaseMetadata.MarshalTo(dAtA[i:]) + n170, err := m.DatabaseMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n169 + i += n170 if m.XXX_unrecognized != nil { i += copy(dAtA[i:], m.XXX_unrecognized) } @@ -7464,35 +7679,35 @@ func (m *DatabaseSessionQuery) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintEvents(dAtA, i, uint64(m.Metadata.Size())) - n170, err := m.Metadata.MarshalTo(dAtA[i:]) + n171, err := m.Metadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n170 + i += n171 dAtA[i] = 0x12 i++ i = encodeVarintEvents(dAtA, i, uint64(m.UserMetadata.Size())) - n171, err := m.UserMetadata.MarshalTo(dAtA[i:]) + n172, err := m.UserMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n171 + i += n172 dAtA[i] = 0x1a i++ i = encodeVarintEvents(dAtA, i, uint64(m.SessionMetadata.Size())) - n172, err := m.SessionMetadata.MarshalTo(dAtA[i:]) + n173, err := m.SessionMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n172 + i += n173 dAtA[i] = 0x22 i++ i = encodeVarintEvents(dAtA, i, uint64(m.DatabaseMetadata.Size())) - n173, err := m.DatabaseMetadata.MarshalTo(dAtA[i:]) + n174, err := m.DatabaseMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n173 + i += n174 if len(m.DatabaseQuery) > 0 { dAtA[i] = 0x2a i++ @@ -7523,35 +7738,164 @@ func (m *DatabaseSessionEnd) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintEvents(dAtA, i, uint64(m.Metadata.Size())) - n174, err := m.Metadata.MarshalTo(dAtA[i:]) + n175, err := m.Metadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n174 + i += n175 dAtA[i] = 0x12 i++ i = encodeVarintEvents(dAtA, i, uint64(m.UserMetadata.Size())) - n175, err := m.UserMetadata.MarshalTo(dAtA[i:]) + n176, err := m.UserMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n175 + i += n176 dAtA[i] = 0x1a i++ i = encodeVarintEvents(dAtA, i, uint64(m.SessionMetadata.Size())) - n176, err := m.SessionMetadata.MarshalTo(dAtA[i:]) + n177, err := m.SessionMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n176 + i += n177 dAtA[i] = 0x22 i++ i = encodeVarintEvents(dAtA, i, uint64(m.DatabaseMetadata.Size())) - n177, err := m.DatabaseMetadata.MarshalTo(dAtA[i:]) + n178, err := m.DatabaseMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n177 + i += n178 + if m.XXX_unrecognized != nil { + i += copy(dAtA[i:], m.XXX_unrecognized) + } + return i, nil +} + +func (m *MFADeviceMetadata) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MFADeviceMetadata) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.DeviceName) > 0 { + dAtA[i] = 0xa + i++ + i = encodeVarintEvents(dAtA, i, uint64(len(m.DeviceName))) + i += copy(dAtA[i:], m.DeviceName) + } + if len(m.DeviceID) > 0 { + dAtA[i] = 0x12 + i++ + i = encodeVarintEvents(dAtA, i, uint64(len(m.DeviceID))) + i += copy(dAtA[i:], m.DeviceID) + } + if len(m.DeviceType) > 0 { + dAtA[i] = 0x1a + i++ + i = encodeVarintEvents(dAtA, i, uint64(len(m.DeviceType))) + i += copy(dAtA[i:], m.DeviceType) + } + if m.XXX_unrecognized != nil { + i += copy(dAtA[i:], m.XXX_unrecognized) + } + return i, nil +} + +func (m *MFADeviceAdd) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MFADeviceAdd) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintEvents(dAtA, i, uint64(m.Metadata.Size())) + n179, err := m.Metadata.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n179 + dAtA[i] = 0x12 + i++ + i = encodeVarintEvents(dAtA, i, uint64(m.UserMetadata.Size())) + n180, err := m.UserMetadata.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n180 + dAtA[i] = 0x1a + i++ + i = encodeVarintEvents(dAtA, i, uint64(m.MFADeviceMetadata.Size())) + n181, err := m.MFADeviceMetadata.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n181 + if m.XXX_unrecognized != nil { + i += copy(dAtA[i:], m.XXX_unrecognized) + } + return i, nil +} + +func (m *MFADeviceDelete) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MFADeviceDelete) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintEvents(dAtA, i, uint64(m.Metadata.Size())) + n182, err := m.Metadata.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n182 + dAtA[i] = 0x12 + i++ + i = encodeVarintEvents(dAtA, i, uint64(m.UserMetadata.Size())) + n183, err := m.UserMetadata.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n183 + dAtA[i] = 0x1a + i++ + i = encodeVarintEvents(dAtA, i, uint64(m.MFADeviceMetadata.Size())) + n184, err := m.MFADeviceMetadata.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n184 if m.XXX_unrecognized != nil { i += copy(dAtA[i:], m.XXX_unrecognized) } @@ -7574,11 +7918,11 @@ func (m *OneOf) MarshalTo(dAtA []byte) (int, error) { var l int _ = l if m.Event != nil { - nn178, err := m.Event.MarshalTo(dAtA[i:]) + nn185, err := m.Event.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += nn178 + i += nn185 } if m.XXX_unrecognized != nil { i += copy(dAtA[i:], m.XXX_unrecognized) @@ -7592,11 +7936,11 @@ func (m *OneOf_UserLogin) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintEvents(dAtA, i, uint64(m.UserLogin.Size())) - n179, err := m.UserLogin.MarshalTo(dAtA[i:]) + n186, err := m.UserLogin.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n179 + i += n186 } return i, nil } @@ -7606,11 +7950,11 @@ func (m *OneOf_UserCreate) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintEvents(dAtA, i, uint64(m.UserCreate.Size())) - n180, err := m.UserCreate.MarshalTo(dAtA[i:]) + n187, err := m.UserCreate.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n180 + i += n187 } return i, nil } @@ -7620,11 +7964,11 @@ func (m *OneOf_UserDelete) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintEvents(dAtA, i, uint64(m.UserDelete.Size())) - n181, err := m.UserDelete.MarshalTo(dAtA[i:]) + n188, err := m.UserDelete.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n181 + i += n188 } return i, nil } @@ -7634,11 +7978,11 @@ func (m *OneOf_UserPasswordChange) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x22 i++ i = encodeVarintEvents(dAtA, i, uint64(m.UserPasswordChange.Size())) - n182, err := m.UserPasswordChange.MarshalTo(dAtA[i:]) + n189, err := m.UserPasswordChange.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n182 + i += n189 } return i, nil } @@ -7648,11 +7992,11 @@ func (m *OneOf_SessionStart) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x2a i++ i = encodeVarintEvents(dAtA, i, uint64(m.SessionStart.Size())) - n183, err := m.SessionStart.MarshalTo(dAtA[i:]) + n190, err := m.SessionStart.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n183 + i += n190 } return i, nil } @@ -7662,11 +8006,11 @@ func (m *OneOf_SessionJoin) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x32 i++ i = encodeVarintEvents(dAtA, i, uint64(m.SessionJoin.Size())) - n184, err := m.SessionJoin.MarshalTo(dAtA[i:]) + n191, err := m.SessionJoin.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n184 + i += n191 } return i, nil } @@ -7676,11 +8020,11 @@ func (m *OneOf_SessionPrint) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x3a i++ i = encodeVarintEvents(dAtA, i, uint64(m.SessionPrint.Size())) - n185, err := m.SessionPrint.MarshalTo(dAtA[i:]) + n192, err := m.SessionPrint.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n185 + i += n192 } return i, nil } @@ -7690,11 +8034,11 @@ func (m *OneOf_SessionReject) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x42 i++ i = encodeVarintEvents(dAtA, i, uint64(m.SessionReject.Size())) - n186, err := m.SessionReject.MarshalTo(dAtA[i:]) + n193, err := m.SessionReject.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n186 + i += n193 } return i, nil } @@ -7704,11 +8048,11 @@ func (m *OneOf_Resize) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x4a i++ i = encodeVarintEvents(dAtA, i, uint64(m.Resize.Size())) - n187, err := m.Resize.MarshalTo(dAtA[i:]) + n194, err := m.Resize.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n187 + i += n194 } return i, nil } @@ -7718,11 +8062,11 @@ func (m *OneOf_SessionEnd) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x52 i++ i = encodeVarintEvents(dAtA, i, uint64(m.SessionEnd.Size())) - n188, err := m.SessionEnd.MarshalTo(dAtA[i:]) + n195, err := m.SessionEnd.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n188 + i += n195 } return i, nil } @@ -7732,11 +8076,11 @@ func (m *OneOf_SessionCommand) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x5a i++ i = encodeVarintEvents(dAtA, i, uint64(m.SessionCommand.Size())) - n189, err := m.SessionCommand.MarshalTo(dAtA[i:]) + n196, err := m.SessionCommand.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n189 + i += n196 } return i, nil } @@ -7746,11 +8090,11 @@ func (m *OneOf_SessionDisk) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x62 i++ i = encodeVarintEvents(dAtA, i, uint64(m.SessionDisk.Size())) - n190, err := m.SessionDisk.MarshalTo(dAtA[i:]) + n197, err := m.SessionDisk.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n190 + i += n197 } return i, nil } @@ -7760,11 +8104,11 @@ func (m *OneOf_SessionNetwork) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x6a i++ i = encodeVarintEvents(dAtA, i, uint64(m.SessionNetwork.Size())) - n191, err := m.SessionNetwork.MarshalTo(dAtA[i:]) + n198, err := m.SessionNetwork.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n191 + i += n198 } return i, nil } @@ -7774,11 +8118,11 @@ func (m *OneOf_SessionData) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x72 i++ i = encodeVarintEvents(dAtA, i, uint64(m.SessionData.Size())) - n192, err := m.SessionData.MarshalTo(dAtA[i:]) + n199, err := m.SessionData.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n192 + i += n199 } return i, nil } @@ -7788,11 +8132,11 @@ func (m *OneOf_SessionLeave) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x7a i++ i = encodeVarintEvents(dAtA, i, uint64(m.SessionLeave.Size())) - n193, err := m.SessionLeave.MarshalTo(dAtA[i:]) + n200, err := m.SessionLeave.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n193 + i += n200 } return i, nil } @@ -7804,11 +8148,11 @@ func (m *OneOf_PortForward) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintEvents(dAtA, i, uint64(m.PortForward.Size())) - n194, err := m.PortForward.MarshalTo(dAtA[i:]) + n201, err := m.PortForward.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n194 + i += n201 } return i, nil } @@ -7820,11 +8164,11 @@ func (m *OneOf_X11Forward) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintEvents(dAtA, i, uint64(m.X11Forward.Size())) - n195, err := m.X11Forward.MarshalTo(dAtA[i:]) + n202, err := m.X11Forward.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n195 + i += n202 } return i, nil } @@ -7836,11 +8180,11 @@ func (m *OneOf_SCP) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintEvents(dAtA, i, uint64(m.SCP.Size())) - n196, err := m.SCP.MarshalTo(dAtA[i:]) + n203, err := m.SCP.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n196 + i += n203 } return i, nil } @@ -7852,11 +8196,11 @@ func (m *OneOf_Exec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintEvents(dAtA, i, uint64(m.Exec.Size())) - n197, err := m.Exec.MarshalTo(dAtA[i:]) + n204, err := m.Exec.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n197 + i += n204 } return i, nil } @@ -7868,11 +8212,11 @@ func (m *OneOf_Subsystem) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintEvents(dAtA, i, uint64(m.Subsystem.Size())) - n198, err := m.Subsystem.MarshalTo(dAtA[i:]) + n205, err := m.Subsystem.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n198 + i += n205 } return i, nil } @@ -7884,11 +8228,11 @@ func (m *OneOf_ClientDisconnect) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintEvents(dAtA, i, uint64(m.ClientDisconnect.Size())) - n199, err := m.ClientDisconnect.MarshalTo(dAtA[i:]) + n206, err := m.ClientDisconnect.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n199 + i += n206 } return i, nil } @@ -7900,11 +8244,11 @@ func (m *OneOf_AuthAttempt) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintEvents(dAtA, i, uint64(m.AuthAttempt.Size())) - n200, err := m.AuthAttempt.MarshalTo(dAtA[i:]) + n207, err := m.AuthAttempt.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n200 + i += n207 } return i, nil } @@ -7916,11 +8260,11 @@ func (m *OneOf_AccessRequestCreate) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintEvents(dAtA, i, uint64(m.AccessRequestCreate.Size())) - n201, err := m.AccessRequestCreate.MarshalTo(dAtA[i:]) + n208, err := m.AccessRequestCreate.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n201 + i += n208 } return i, nil } @@ -7932,11 +8276,11 @@ func (m *OneOf_ResetPasswordTokenCreate) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintEvents(dAtA, i, uint64(m.ResetPasswordTokenCreate.Size())) - n202, err := m.ResetPasswordTokenCreate.MarshalTo(dAtA[i:]) + n209, err := m.ResetPasswordTokenCreate.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n202 + i += n209 } return i, nil } @@ -7948,11 +8292,11 @@ func (m *OneOf_RoleCreate) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintEvents(dAtA, i, uint64(m.RoleCreate.Size())) - n203, err := m.RoleCreate.MarshalTo(dAtA[i:]) + n210, err := m.RoleCreate.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n203 + i += n210 } return i, nil } @@ -7964,11 +8308,11 @@ func (m *OneOf_RoleDelete) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintEvents(dAtA, i, uint64(m.RoleDelete.Size())) - n204, err := m.RoleDelete.MarshalTo(dAtA[i:]) + n211, err := m.RoleDelete.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n204 + i += n211 } return i, nil } @@ -7980,11 +8324,11 @@ func (m *OneOf_TrustedClusterCreate) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintEvents(dAtA, i, uint64(m.TrustedClusterCreate.Size())) - n205, err := m.TrustedClusterCreate.MarshalTo(dAtA[i:]) + n212, err := m.TrustedClusterCreate.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n205 + i += n212 } return i, nil } @@ -7996,11 +8340,11 @@ func (m *OneOf_TrustedClusterDelete) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintEvents(dAtA, i, uint64(m.TrustedClusterDelete.Size())) - n206, err := m.TrustedClusterDelete.MarshalTo(dAtA[i:]) + n213, err := m.TrustedClusterDelete.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n206 + i += n213 } return i, nil } @@ -8012,11 +8356,11 @@ func (m *OneOf_TrustedClusterTokenCreate) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintEvents(dAtA, i, uint64(m.TrustedClusterTokenCreate.Size())) - n207, err := m.TrustedClusterTokenCreate.MarshalTo(dAtA[i:]) + n214, err := m.TrustedClusterTokenCreate.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n207 + i += n214 } return i, nil } @@ -8028,11 +8372,11 @@ func (m *OneOf_GithubConnectorCreate) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintEvents(dAtA, i, uint64(m.GithubConnectorCreate.Size())) - n208, err := m.GithubConnectorCreate.MarshalTo(dAtA[i:]) + n215, err := m.GithubConnectorCreate.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n208 + i += n215 } return i, nil } @@ -8044,11 +8388,11 @@ func (m *OneOf_GithubConnectorDelete) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintEvents(dAtA, i, uint64(m.GithubConnectorDelete.Size())) - n209, err := m.GithubConnectorDelete.MarshalTo(dAtA[i:]) + n216, err := m.GithubConnectorDelete.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n209 + i += n216 } return i, nil } @@ -8060,11 +8404,11 @@ func (m *OneOf_OIDCConnectorCreate) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x2 i++ i = encodeVarintEvents(dAtA, i, uint64(m.OIDCConnectorCreate.Size())) - n210, err := m.OIDCConnectorCreate.MarshalTo(dAtA[i:]) + n217, err := m.OIDCConnectorCreate.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n210 + i += n217 } return i, nil } @@ -8076,11 +8420,11 @@ func (m *OneOf_OIDCConnectorDelete) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x2 i++ i = encodeVarintEvents(dAtA, i, uint64(m.OIDCConnectorDelete.Size())) - n211, err := m.OIDCConnectorDelete.MarshalTo(dAtA[i:]) + n218, err := m.OIDCConnectorDelete.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n211 + i += n218 } return i, nil } @@ -8092,11 +8436,11 @@ func (m *OneOf_SAMLConnectorCreate) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x2 i++ i = encodeVarintEvents(dAtA, i, uint64(m.SAMLConnectorCreate.Size())) - n212, err := m.SAMLConnectorCreate.MarshalTo(dAtA[i:]) + n219, err := m.SAMLConnectorCreate.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n212 + i += n219 } return i, nil } @@ -8108,11 +8452,11 @@ func (m *OneOf_SAMLConnectorDelete) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x2 i++ i = encodeVarintEvents(dAtA, i, uint64(m.SAMLConnectorDelete.Size())) - n213, err := m.SAMLConnectorDelete.MarshalTo(dAtA[i:]) + n220, err := m.SAMLConnectorDelete.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n213 + i += n220 } return i, nil } @@ -8124,11 +8468,11 @@ func (m *OneOf_KubeRequest) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x2 i++ i = encodeVarintEvents(dAtA, i, uint64(m.KubeRequest.Size())) - n214, err := m.KubeRequest.MarshalTo(dAtA[i:]) + n221, err := m.KubeRequest.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n214 + i += n221 } return i, nil } @@ -8140,11 +8484,11 @@ func (m *OneOf_AppSessionStart) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x2 i++ i = encodeVarintEvents(dAtA, i, uint64(m.AppSessionStart.Size())) - n215, err := m.AppSessionStart.MarshalTo(dAtA[i:]) + n222, err := m.AppSessionStart.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n215 + i += n222 } return i, nil } @@ -8156,11 +8500,11 @@ func (m *OneOf_AppSessionChunk) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x2 i++ i = encodeVarintEvents(dAtA, i, uint64(m.AppSessionChunk.Size())) - n216, err := m.AppSessionChunk.MarshalTo(dAtA[i:]) + n223, err := m.AppSessionChunk.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n216 + i += n223 } return i, nil } @@ -8172,11 +8516,11 @@ func (m *OneOf_AppSessionRequest) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x2 i++ i = encodeVarintEvents(dAtA, i, uint64(m.AppSessionRequest.Size())) - n217, err := m.AppSessionRequest.MarshalTo(dAtA[i:]) + n224, err := m.AppSessionRequest.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n217 + i += n224 } return i, nil } @@ -8188,11 +8532,11 @@ func (m *OneOf_DatabaseSessionStart) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x2 i++ i = encodeVarintEvents(dAtA, i, uint64(m.DatabaseSessionStart.Size())) - n218, err := m.DatabaseSessionStart.MarshalTo(dAtA[i:]) + n225, err := m.DatabaseSessionStart.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n218 + i += n225 } return i, nil } @@ -8204,11 +8548,11 @@ func (m *OneOf_DatabaseSessionEnd) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x2 i++ i = encodeVarintEvents(dAtA, i, uint64(m.DatabaseSessionEnd.Size())) - n219, err := m.DatabaseSessionEnd.MarshalTo(dAtA[i:]) + n226, err := m.DatabaseSessionEnd.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n219 + i += n226 } return i, nil } @@ -8220,11 +8564,11 @@ func (m *OneOf_DatabaseSessionQuery) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x2 i++ i = encodeVarintEvents(dAtA, i, uint64(m.DatabaseSessionQuery.Size())) - n220, err := m.DatabaseSessionQuery.MarshalTo(dAtA[i:]) + n227, err := m.DatabaseSessionQuery.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n220 + i += n227 } return i, nil } @@ -8236,11 +8580,43 @@ func (m *OneOf_SessionUpload) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x2 i++ i = encodeVarintEvents(dAtA, i, uint64(m.SessionUpload.Size())) - n221, err := m.SessionUpload.MarshalTo(dAtA[i:]) + n228, err := m.SessionUpload.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n221 + i += n228 + } + return i, nil +} +func (m *OneOf_MFADeviceAdd) MarshalTo(dAtA []byte) (int, error) { + i := 0 + if m.MFADeviceAdd != nil { + dAtA[i] = 0xe2 + i++ + dAtA[i] = 0x2 + i++ + i = encodeVarintEvents(dAtA, i, uint64(m.MFADeviceAdd.Size())) + n229, err := m.MFADeviceAdd.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n229 + } + return i, nil +} +func (m *OneOf_MFADeviceDelete) MarshalTo(dAtA []byte) (int, error) { + i := 0 + if m.MFADeviceDelete != nil { + dAtA[i] = 0xea + i++ + dAtA[i] = 0x2 + i++ + i = encodeVarintEvents(dAtA, i, uint64(m.MFADeviceDelete.Size())) + n230, err := m.MFADeviceDelete.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n230 } return i, nil } @@ -8273,11 +8649,11 @@ func (m *StreamStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintEvents(dAtA, i, uint64(github_com_gogo_protobuf_types.SizeOfStdTime(m.LastUploadTime))) - n222, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.LastUploadTime, dAtA[i:]) + n231, err := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.LastUploadTime, dAtA[i:]) if err != nil { return 0, err } - i += n222 + i += n231 if m.XXX_unrecognized != nil { i += copy(dAtA[i:], m.XXX_unrecognized) } @@ -8302,19 +8678,19 @@ func (m *SessionUpload) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintEvents(dAtA, i, uint64(m.Metadata.Size())) - n223, err := m.Metadata.MarshalTo(dAtA[i:]) + n232, err := m.Metadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n223 + i += n232 dAtA[i] = 0x12 i++ i = encodeVarintEvents(dAtA, i, uint64(m.SessionMetadata.Size())) - n224, err := m.SessionMetadata.MarshalTo(dAtA[i:]) + n233, err := m.SessionMetadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n224 + i += n233 if len(m.UID) > 0 { dAtA[i] = 0x22 i++ @@ -8888,6 +9264,10 @@ func (m *UserLogin) Size() (n int) { l = m.IdentityAttributes.Size() n += 1 + l + sovEvents(uint64(l)) } + if m.MFADevice != nil { + l = m.MFADevice.Size() + n += 1 + l + sovEvents(uint64(l)) + } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -9573,6 +9953,57 @@ func (m *DatabaseSessionEnd) Size() (n int) { return n } +func (m *MFADeviceMetadata) Size() (n int) { + var l int + _ = l + l = len(m.DeviceName) + if l > 0 { + n += 1 + l + sovEvents(uint64(l)) + } + l = len(m.DeviceID) + if l > 0 { + n += 1 + l + sovEvents(uint64(l)) + } + l = len(m.DeviceType) + if l > 0 { + n += 1 + l + sovEvents(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *MFADeviceAdd) Size() (n int) { + var l int + _ = l + l = m.Metadata.Size() + n += 1 + l + sovEvents(uint64(l)) + l = m.UserMetadata.Size() + n += 1 + l + sovEvents(uint64(l)) + l = m.MFADeviceMetadata.Size() + n += 1 + l + sovEvents(uint64(l)) + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *MFADeviceDelete) Size() (n int) { + var l int + _ = l + l = m.Metadata.Size() + n += 1 + l + sovEvents(uint64(l)) + l = m.UserMetadata.Size() + n += 1 + l + sovEvents(uint64(l)) + l = m.MFADeviceMetadata.Size() + n += 1 + l + sovEvents(uint64(l)) + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + func (m *OneOf) Size() (n int) { var l int _ = l @@ -9972,6 +10403,24 @@ func (m *OneOf_SessionUpload) Size() (n int) { } return n } +func (m *OneOf_MFADeviceAdd) Size() (n int) { + var l int + _ = l + if m.MFADeviceAdd != nil { + l = m.MFADeviceAdd.Size() + n += 2 + l + sovEvents(uint64(l)) + } + return n +} +func (m *OneOf_MFADeviceDelete) Size() (n int) { + var l int + _ = l + if m.MFADeviceDelete != nil { + l = m.MFADeviceDelete.Size() + n += 2 + l + sovEvents(uint64(l)) + } + return n +} func (m *StreamStatus) Size() (n int) { var l int _ = l @@ -14611,6 +15060,39 @@ func (m *UserLogin) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MFADevice", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvents + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthEvents + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.MFADevice == nil { + m.MFADevice = &MFADeviceMetadata{} + } + if err := m.MFADevice.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipEvents(dAtA[iNdEx:]) @@ -20182,10 +20664,471 @@ func (m *DatabaseSessionStart) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: DatabaseSessionStart: wiretype end group for non-group") + return fmt.Errorf("proto: DatabaseSessionStart: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DatabaseSessionStart: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Metadata", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvents + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthEvents + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Metadata.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UserMetadata", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvents + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthEvents + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.UserMetadata.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SessionMetadata", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvents + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthEvents + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.SessionMetadata.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ServerMetadata", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvents + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthEvents + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ServerMetadata.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ConnectionMetadata", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvents + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthEvents + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ConnectionMetadata.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvents + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthEvents + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DatabaseMetadata", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvents + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthEvents + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.DatabaseMetadata.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipEvents(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthEvents + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *DatabaseSessionQuery) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvents + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: DatabaseSessionQuery: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DatabaseSessionQuery: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Metadata", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvents + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthEvents + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Metadata.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UserMetadata", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvents + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthEvents + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.UserMetadata.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SessionMetadata", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvents + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthEvents + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.SessionMetadata.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DatabaseMetadata", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvents + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthEvents + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.DatabaseMetadata.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DatabaseQuery", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvents + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthEvents + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.DatabaseQuery = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipEvents(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthEvents + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *DatabaseSessionEnd) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvents + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: DatabaseSessionEnd: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: DatabaseSessionStart: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: DatabaseSessionEnd: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -20280,7 +21223,7 @@ func (m *DatabaseSessionStart) Unmarshal(dAtA []byte) error { iNdEx = postIndex case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ServerMetadata", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field DatabaseMetadata", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -20304,15 +21247,66 @@ func (m *DatabaseSessionStart) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.ServerMetadata.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.DatabaseMetadata.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 5: + default: + iNdEx = preIndex + skippy, err := skipEvents(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthEvents + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MFADeviceMetadata) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvents + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MFADeviceMetadata: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MFADeviceMetadata: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ConnectionMetadata", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field DeviceName", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowEvents @@ -20322,27 +21316,26 @@ func (m *DatabaseSessionStart) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= (int(b) & 0x7F) << shift + stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthEvents } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.ConnectionMetadata.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.DeviceName = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 6: + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field DeviceID", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowEvents @@ -20352,27 +21345,26 @@ func (m *DatabaseSessionStart) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= (int(b) & 0x7F) << shift + stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthEvents } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.DeviceID = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 7: + case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DatabaseMetadata", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field DeviceType", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowEvents @@ -20382,21 +21374,20 @@ func (m *DatabaseSessionStart) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= (int(b) & 0x7F) << shift + stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthEvents } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.DatabaseMetadata.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.DeviceType = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -20420,7 +21411,7 @@ func (m *DatabaseSessionStart) Unmarshal(dAtA []byte) error { } return nil } -func (m *DatabaseSessionQuery) Unmarshal(dAtA []byte) error { +func (m *MFADeviceAdd) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -20443,10 +21434,10 @@ func (m *DatabaseSessionQuery) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: DatabaseSessionQuery: wiretype end group for non-group") + return fmt.Errorf("proto: MFADeviceAdd: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: DatabaseSessionQuery: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MFADeviceAdd: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -20511,37 +21502,7 @@ func (m *DatabaseSessionQuery) Unmarshal(dAtA []byte) error { iNdEx = postIndex case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SessionMetadata", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowEvents - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthEvents - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.SessionMetadata.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DatabaseMetadata", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field MFADeviceMetadata", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -20565,39 +21526,10 @@ func (m *DatabaseSessionQuery) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.DatabaseMetadata.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.MFADeviceMetadata.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DatabaseQuery", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowEvents - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthEvents - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.DatabaseQuery = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipEvents(dAtA[iNdEx:]) @@ -20620,7 +21552,7 @@ func (m *DatabaseSessionQuery) Unmarshal(dAtA []byte) error { } return nil } -func (m *DatabaseSessionEnd) Unmarshal(dAtA []byte) error { +func (m *MFADeviceDelete) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -20643,10 +21575,10 @@ func (m *DatabaseSessionEnd) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: DatabaseSessionEnd: wiretype end group for non-group") + return fmt.Errorf("proto: MFADeviceDelete: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: DatabaseSessionEnd: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MFADeviceDelete: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -20711,37 +21643,7 @@ func (m *DatabaseSessionEnd) Unmarshal(dAtA []byte) error { iNdEx = postIndex case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SessionMetadata", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowEvents - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthEvents - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.SessionMetadata.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DatabaseMetadata", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field MFADeviceMetadata", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -20765,7 +21667,7 @@ func (m *DatabaseSessionEnd) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.DatabaseMetadata.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.MFADeviceMetadata.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -22196,6 +23098,70 @@ func (m *OneOf) Unmarshal(dAtA []byte) error { } m.Event = &OneOf_SessionUpload{v} iNdEx = postIndex + case 44: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MFADeviceAdd", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvents + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthEvents + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &MFADeviceAdd{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Event = &OneOf_MFADeviceAdd{v} + iNdEx = postIndex + case 45: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MFADeviceDelete", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvents + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthEvents + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + v := &MFADeviceDelete{} + if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.Event = &OneOf_MFADeviceDelete{v} + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipEvents(dAtA[iNdEx:]) @@ -22621,255 +23587,265 @@ var ( ErrIntOverflowEvents = fmt.Errorf("proto: integer overflow") ) -func init() { proto.RegisterFile("events.proto", fileDescriptor_events_ae9aad9d10c424a6) } +func init() { proto.RegisterFile("events.proto", fileDescriptor_events_c05a46d3c928721e) } -var fileDescriptor_events_ae9aad9d10c424a6 = []byte{ - // 3952 bytes of a gzipped FileDescriptorProto +var fileDescriptor_events_c05a46d3c928721e = []byte{ + // 4110 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x3c, 0x4d, 0x6f, 0x1c, 0x47, - 0x76, 0xf3, 0xcd, 0x99, 0x37, 0xa4, 0x44, 0x96, 0x28, 0xa9, 0x25, 0x4b, 0x6a, 0xa9, 0x65, 0xcb, - 0x54, 0x6c, 0x4b, 0x10, 0x97, 0x6b, 0x39, 0x9b, 0x0f, 0x9b, 0x43, 0x52, 0x3b, 0x13, 0x53, 0xe2, - 0x6c, 0x91, 0x5a, 0xec, 0x65, 0x4d, 0xf4, 0x4c, 0x97, 0xc8, 0x8e, 0x66, 0xba, 0x67, 0xbb, 0x7b, - 0x28, 0xd1, 0xa7, 0x7c, 0x5c, 0xf6, 0xe0, 0x00, 0xc1, 0xe6, 0x10, 0x04, 0x39, 0x24, 0x97, 0x1c, - 0x12, 0x04, 0x48, 0x90, 0x43, 0x90, 0xfb, 0x6e, 0x00, 0x03, 0xc1, 0x26, 0xc6, 0xe6, 0x9c, 0x4e, - 0x62, 0x20, 0x97, 0x01, 0xf2, 0x07, 0x82, 0x00, 0x09, 0xea, 0x55, 0xf5, 0x74, 0x75, 0x4f, 0x93, - 0xb2, 0x44, 0x2d, 0x04, 0x4a, 0xbc, 0x71, 0xde, 0x57, 0x75, 0xbd, 0x57, 0xf5, 0xaa, 0xde, 0x47, - 0x11, 0xa6, 0xd9, 0x1e, 0x73, 0x02, 0xff, 0xd6, 0xc0, 0x73, 0x03, 0x97, 0x54, 0xc4, 0xaf, 0x8b, - 0xf3, 0x3b, 0xee, 0x8e, 0x8b, 0xa0, 0xdb, 0xfc, 0x2f, 0x81, 0xbd, 0xa8, 0xef, 0xb8, 0xee, 0x4e, - 0x8f, 0xdd, 0xc6, 0x5f, 0x9d, 0xe1, 0xa3, 0xdb, 0x81, 0xdd, 0x67, 0x7e, 0x60, 0xf6, 0x07, 0x92, - 0xe0, 0x52, 0x9a, 0xc0, 0x0f, 0xbc, 0x61, 0x37, 0x10, 0x58, 0xe3, 0xc7, 0x05, 0xa8, 0xde, 0x67, - 0x81, 0x69, 0x99, 0x81, 0x49, 0x2e, 0x41, 0xb9, 0xe5, 0x58, 0xec, 0xa9, 0x96, 0xbf, 0x9a, 0x5f, - 0x28, 0x36, 0x2a, 0xa3, 0x50, 0x2f, 0x30, 0x9b, 0x0a, 0x20, 0xb9, 0x0c, 0xa5, 0xad, 0xfd, 0x01, - 0xd3, 0x0a, 0x57, 0xf3, 0x0b, 0xb5, 0x46, 0x6d, 0x14, 0xea, 0x65, 0xfc, 0x32, 0x8a, 0x60, 0x72, - 0x0d, 0x0a, 0xad, 0x55, 0xad, 0x88, 0xc8, 0xb9, 0x51, 0xa8, 0xcf, 0x0c, 0x6d, 0xeb, 0x7d, 0xb7, - 0x6f, 0x07, 0xac, 0x3f, 0x08, 0xf6, 0x69, 0xa1, 0xb5, 0x4a, 0x6e, 0x40, 0x69, 0xc5, 0xb5, 0x98, - 0x56, 0x42, 0x22, 0x32, 0x0a, 0xf5, 0x53, 0x5d, 0xd7, 0x62, 0x0a, 0x15, 0xe2, 0xc9, 0x27, 0x50, - 0xda, 0xb2, 0xfb, 0x4c, 0x2b, 0x5f, 0xcd, 0x2f, 0xd4, 0x17, 0x2f, 0xde, 0x12, 0x33, 0xb8, 0x15, - 0xcd, 0xe0, 0xd6, 0x56, 0x34, 0xc5, 0xc6, 0xec, 0x97, 0xa1, 0x9e, 0x1b, 0x85, 0x7a, 0x89, 0xcf, - 0xfa, 0x0f, 0xff, 0x5d, 0xcf, 0x53, 0xe4, 0x24, 0x8b, 0x50, 0x5f, 0xe9, 0x0d, 0xfd, 0x80, 0x79, - 0x0f, 0xcc, 0x3e, 0xd3, 0x2a, 0x38, 0xe0, 0xec, 0x28, 0xd4, 0xa7, 0xbb, 0x02, 0xbc, 0xed, 0x98, - 0x7d, 0x46, 0x55, 0x22, 0xe3, 0x23, 0x38, 0xbd, 0xc9, 0x7c, 0xdf, 0x76, 0x9d, 0xb1, 0x42, 0xde, - 0x81, 0x9a, 0x04, 0xb5, 0x56, 0x51, 0x29, 0xb5, 0xc6, 0xd4, 0x28, 0xd4, 0x8b, 0xbe, 0x6d, 0xd1, - 0x18, 0x63, 0xfc, 0x71, 0x1e, 0xa6, 0x1f, 0xfa, 0xcc, 0x53, 0x14, 0x59, 0xe2, 0xbf, 0x25, 0x4b, - 0x95, 0x7f, 0xe0, 0xd0, 0x67, 0x1e, 0x45, 0x28, 0xb9, 0x09, 0xe5, 0x75, 0x77, 0xc7, 0x76, 0xa4, - 0x26, 0xcf, 0x8c, 0x42, 0xfd, 0x74, 0x8f, 0x03, 0x14, 0x45, 0x08, 0x0a, 0xf2, 0x9b, 0x30, 0xdd, - 0xea, 0x0f, 0x98, 0xe7, 0xbb, 0x8e, 0x19, 0xb8, 0x9e, 0x54, 0xef, 0xc5, 0x51, 0xa8, 0x9f, 0xb3, - 0x15, 0xb8, 0xc2, 0x98, 0xa0, 0x37, 0xfe, 0xb6, 0x08, 0xa7, 0x36, 0x99, 0xb7, 0xa7, 0x7c, 0xdb, - 0x32, 0x9f, 0x26, 0x87, 0xf0, 0x49, 0xfb, 0x03, 0xb3, 0xcb, 0xe4, 0x67, 0x9e, 0x1f, 0x85, 0xfa, - 0x19, 0x27, 0x02, 0x2a, 0x22, 0xd3, 0xf4, 0xe4, 0x26, 0x54, 0x05, 0xa8, 0xb5, 0x2a, 0xe7, 0x30, - 0x33, 0x0a, 0xf5, 0x9a, 0x8f, 0xb0, 0x6d, 0xdb, 0xa2, 0x63, 0x34, 0x59, 0x8b, 0xc6, 0x6f, 0xba, - 0x7e, 0xc0, 0x85, 0xcb, 0x29, 0x5c, 0x1e, 0x85, 0xfa, 0x05, 0xc9, 0xb0, 0x2b, 0x51, 0xca, 0x90, - 0x29, 0x26, 0xf2, 0xab, 0x00, 0x02, 0xb2, 0x6c, 0x59, 0x9e, 0x5c, 0x3f, 0x17, 0x46, 0xa1, 0x7e, - 0x56, 0x8a, 0x30, 0x2d, 0x4b, 0x55, 0x82, 0x42, 0x4c, 0xfa, 0x30, 0x2d, 0x7e, 0xad, 0x9b, 0x1d, - 0xd6, 0xf3, 0xb5, 0xf2, 0xd5, 0xe2, 0x42, 0x7d, 0x71, 0xe1, 0x96, 0xdc, 0x63, 0x49, 0xed, 0xdc, - 0x52, 0x49, 0xd7, 0x9c, 0xc0, 0xdb, 0x6f, 0xe8, 0x72, 0x89, 0x9d, 0x97, 0x43, 0xf5, 0x10, 0xa7, - 0x6a, 0x5c, 0xe5, 0xb9, 0xf8, 0x31, 0xcc, 0x4d, 0xc8, 0x20, 0xb3, 0x50, 0x7c, 0xcc, 0xf6, 0x85, - 0x9e, 0x29, 0xff, 0x93, 0xcc, 0x43, 0x79, 0xcf, 0xec, 0x0d, 0xe5, 0x6e, 0xa2, 0xe2, 0xc7, 0x77, - 0x0a, 0x1f, 0xe5, 0x8d, 0x7f, 0xc8, 0x03, 0x59, 0x71, 0x1d, 0x87, 0x75, 0x03, 0x75, 0x29, 0x7e, - 0x08, 0xb5, 0x75, 0xb7, 0x6b, 0xf6, 0x50, 0x01, 0xc2, 0x60, 0xda, 0x28, 0xd4, 0xe7, 0xf9, 0xcc, - 0x6f, 0xf5, 0x38, 0x46, 0xf9, 0xa4, 0x98, 0x94, 0x6b, 0x8e, 0xb2, 0xbe, 0x1b, 0x30, 0x64, 0x2c, - 0xc4, 0x9a, 0x43, 0x46, 0x0f, 0x51, 0xaa, 0xe6, 0x62, 0x62, 0x72, 0x1b, 0xaa, 0x6d, 0xbe, 0xe5, - 0xba, 0x6e, 0x4f, 0x5a, 0x0d, 0x97, 0x2a, 0x6e, 0x43, 0x85, 0x65, 0x4c, 0x64, 0xfc, 0x5e, 0x01, - 0x2e, 0x7c, 0x3a, 0xec, 0x30, 0xcf, 0x61, 0x01, 0xf3, 0xe5, 0xde, 0x1a, 0xcf, 0xe0, 0x01, 0xcc, - 0x4d, 0x20, 0xe5, 0x4c, 0xae, 0x8e, 0x42, 0xfd, 0xd2, 0xe3, 0x31, 0x72, 0x5b, 0x6e, 0x52, 0x65, - 0x90, 0x49, 0x56, 0xd2, 0x84, 0xd3, 0x31, 0x90, 0x6f, 0x2c, 0x5f, 0x2b, 0x5c, 0x2d, 0x2e, 0xd4, - 0x1a, 0x57, 0x46, 0xa1, 0x7e, 0x51, 0x91, 0xc6, 0xb7, 0x9e, 0x6a, 0xb0, 0x34, 0x1b, 0xf9, 0x14, - 0x66, 0x63, 0xd0, 0x77, 0x3d, 0x77, 0x38, 0xf0, 0xb5, 0x22, 0x8a, 0xd2, 0x47, 0xa1, 0xfe, 0x96, - 0x22, 0x6a, 0x07, 0x91, 0x8a, 0xac, 0x09, 0x46, 0xe3, 0xbf, 0x8a, 0x70, 0x36, 0x06, 0xb6, 0x5d, - 0x6b, 0xac, 0x80, 0x0d, 0x55, 0x01, 0x6d, 0xd7, 0x42, 0xd7, 0x24, 0x14, 0x70, 0x6d, 0x14, 0xea, - 0x97, 0x95, 0x71, 0x06, 0xae, 0xb5, 0x9d, 0xda, 0x12, 0x93, 0xbc, 0xe4, 0x33, 0x38, 0x37, 0x01, - 0x14, 0x3b, 0x5a, 0xd8, 0xf9, 0xc6, 0x28, 0xd4, 0x8d, 0x0c, 0xa9, 0xe9, 0x0d, 0x7e, 0x80, 0x14, - 0x62, 0xc2, 0x79, 0x45, 0xed, 0xae, 0x13, 0x98, 0xb6, 0x23, 0x3d, 0xaa, 0x58, 0x0f, 0xef, 0x8e, - 0x42, 0xfd, 0xba, 0x6a, 0xb7, 0x88, 0x26, 0xfd, 0xf1, 0x07, 0xc9, 0x21, 0x16, 0x68, 0x19, 0xa8, - 0x56, 0xdf, 0xdc, 0x89, 0x8e, 0x89, 0x85, 0x51, 0xa8, 0xbf, 0x9d, 0x39, 0x86, 0xcd, 0xa9, 0x94, - 0x41, 0x0e, 0x94, 0x44, 0x28, 0x90, 0x18, 0xf7, 0xc0, 0xb5, 0x18, 0xce, 0xa1, 0x8c, 0xf2, 0x8d, - 0x51, 0xa8, 0x5f, 0x51, 0xe4, 0x3b, 0xae, 0xc5, 0xd2, 0x9f, 0x9f, 0xc1, 0x6d, 0xfc, 0x6f, 0x89, - 0x3b, 0x16, 0x3c, 0x02, 0x36, 0x03, 0xd3, 0x0b, 0xc8, 0x77, 0xe2, 0x93, 0x14, 0xad, 0x5a, 0x5f, - 0x9c, 0x8d, 0x9c, 0x4c, 0x04, 0x6f, 0x4c, 0x73, 0x67, 0xf2, 0x55, 0xa8, 0xe7, 0x47, 0xa1, 0x9e, - 0xa3, 0x55, 0x65, 0x77, 0x8b, 0x03, 0xa3, 0x80, 0x7c, 0xf3, 0x11, 0x9f, 0x7a, 0xa8, 0xa4, 0x78, - 0xc5, 0x51, 0xf2, 0x31, 0x4c, 0xc9, 0x6f, 0x40, 0x8b, 0xd4, 0x17, 0xcf, 0xc7, 0x7e, 0x2d, 0x71, - 0x94, 0xa5, 0xb8, 0x23, 0x2e, 0xf2, 0xeb, 0x50, 0x11, 0xee, 0x0a, 0xb5, 0x5d, 0x5f, 0x3c, 0x97, - 0xed, 0x17, 0x53, 0xec, 0x92, 0x87, 0x34, 0x01, 0x62, 0x57, 0x35, 0x3e, 0xae, 0xa5, 0x84, 0x49, - 0x27, 0x96, 0x92, 0xa2, 0xf0, 0x92, 0x0f, 0x61, 0x7a, 0x8b, 0x79, 0x7d, 0xdb, 0x31, 0x7b, 0x9b, - 0xf6, 0xe7, 0xd1, 0x89, 0x8d, 0x57, 0x04, 0xdf, 0xfe, 0x5c, 0xb5, 0x45, 0x82, 0x8e, 0xfc, 0x30, - 0xcb, 0xa9, 0x4c, 0xe1, 0x87, 0x5c, 0x8b, 0x3e, 0xe4, 0x40, 0x97, 0x94, 0xfa, 0x9e, 0x0c, 0x1f, - 0xf3, 0x3d, 0x98, 0x49, 0xec, 0x0d, 0xad, 0x8a, 0xa2, 0x2f, 0x4f, 0x8a, 0x56, 0x36, 0x7a, 0x4a, - 0x6c, 0x52, 0x02, 0x3f, 0x11, 0x5b, 0x8e, 0x1d, 0xd8, 0x66, 0x6f, 0xc5, 0xed, 0xf7, 0x4d, 0xc7, - 0xd2, 0x6a, 0xe8, 0x6a, 0xf0, 0x44, 0xb4, 0x05, 0x66, 0xbb, 0x2b, 0x50, 0xea, 0x89, 0x98, 0x64, - 0x32, 0xfe, 0xb2, 0x08, 0x75, 0x69, 0xc4, 0xdf, 0x72, 0x6d, 0xe7, 0x64, 0xf5, 0x1d, 0x65, 0xf5, - 0x65, 0xae, 0xa2, 0xca, 0xcb, 0x5a, 0x45, 0xc6, 0x17, 0x85, 0xb1, 0xab, 0x68, 0x7b, 0xb6, 0x73, - 0x34, 0x57, 0x71, 0x03, 0x60, 0x65, 0x77, 0xe8, 0x3c, 0x16, 0x37, 0xf5, 0x42, 0x7c, 0x53, 0xef, - 0xda, 0x54, 0xc1, 0xf0, 0xeb, 0xfa, 0x2a, 0x97, 0xcf, 0x2d, 0x33, 0xdd, 0xa8, 0x7d, 0x29, 0x24, - 0xe5, 0x3f, 0xa0, 0x08, 0x26, 0x3a, 0x94, 0x1b, 0xfb, 0x01, 0xf3, 0x51, 0xf3, 0x45, 0x71, 0x9d, - 0xef, 0x70, 0x00, 0x15, 0x70, 0xb2, 0x04, 0x73, 0xab, 0xac, 0x67, 0xee, 0xdf, 0xb7, 0x7b, 0x3d, - 0xdb, 0x67, 0x5d, 0xd7, 0xb1, 0x7c, 0x54, 0xb2, 0x1c, 0xae, 0xef, 0xd3, 0x49, 0x02, 0x62, 0x40, - 0x65, 0xe3, 0xd1, 0x23, 0x9f, 0x05, 0xa8, 0xbe, 0x62, 0x03, 0x46, 0xa1, 0x5e, 0x71, 0x11, 0x42, - 0x25, 0xc6, 0xf8, 0x45, 0x01, 0x66, 0xa4, 0x3a, 0x28, 0xfb, 0x6d, 0xd6, 0x7d, 0x35, 0xae, 0x33, - 0x5e, 0x7b, 0xc5, 0x23, 0xaf, 0xbd, 0xd2, 0x11, 0xd6, 0x9e, 0x01, 0x15, 0xca, 0x4c, 0x5f, 0xae, - 0xe0, 0x9a, 0xd0, 0x98, 0x87, 0x10, 0x2a, 0x31, 0xe4, 0x1a, 0x4c, 0xdd, 0x37, 0x9f, 0xda, 0xfd, - 0x61, 0x5f, 0xaa, 0x15, 0xa3, 0x90, 0xbe, 0xf9, 0x94, 0x46, 0x70, 0xe3, 0x6f, 0x4a, 0x5c, 0x0e, - 0xf7, 0x95, 0xc7, 0xd3, 0x15, 0xbc, 0x3c, 0x85, 0xc6, 0x86, 0x2d, 0xbf, 0x80, 0x61, 0xdf, 0x98, - 0x83, 0xc8, 0xf8, 0xab, 0x29, 0x1e, 0x54, 0xa1, 0xf6, 0xd7, 0x1c, 0xeb, 0x64, 0xd5, 0x1c, 0x65, - 0xd5, 0xac, 0xc2, 0xdc, 0x9a, 0xb3, 0x6b, 0x3a, 0x5d, 0x66, 0x51, 0xd6, 0x75, 0x3d, 0xcb, 0x76, - 0x76, 0x70, 0xe9, 0x54, 0x1b, 0xe7, 0x46, 0xa1, 0x4e, 0x98, 0x44, 0x6e, 0x7b, 0x11, 0x96, 0x4e, - 0x32, 0x90, 0x3b, 0x50, 0x6f, 0x39, 0x01, 0xf3, 0xcc, 0x6e, 0x60, 0xef, 0x31, 0x5c, 0x3d, 0xd5, - 0xc6, 0xe9, 0x51, 0xa8, 0xd7, 0xed, 0x18, 0x4c, 0x55, 0x1a, 0xb2, 0x04, 0xd3, 0x6d, 0xd3, 0x0b, - 0xec, 0xae, 0x3d, 0x30, 0x9d, 0xc0, 0xd7, 0xaa, 0x78, 0x97, 0xc0, 0x4c, 0xc7, 0x40, 0x81, 0xd3, - 0x04, 0x15, 0xf9, 0x21, 0xd4, 0xf0, 0xce, 0x8a, 0x59, 0x96, 0xda, 0x33, 0xb3, 0x2c, 0xd7, 0xe3, - 0x10, 0x18, 0xd5, 0xbe, 0xed, 0x73, 0xe6, 0x78, 0x2b, 0x60, 0xe2, 0x25, 0x96, 0x48, 0x7e, 0x00, - 0x53, 0x6b, 0x8e, 0x85, 0xc2, 0xe1, 0x99, 0xc2, 0x0d, 0x29, 0xfc, 0x5c, 0x2c, 0xdc, 0x1d, 0xa4, - 0x64, 0x47, 0xe2, 0xb2, 0x77, 0x59, 0xfd, 0x97, 0xb7, 0xcb, 0xa6, 0x7f, 0x09, 0xd7, 0xbd, 0x99, - 0x17, 0xb9, 0xee, 0x7d, 0x0e, 0xf5, 0x46, 0xfb, 0xde, 0x78, 0xc3, 0x5d, 0x80, 0x62, 0x5b, 0xa6, - 0xa4, 0x4a, 0xe2, 0x30, 0x18, 0xd8, 0x16, 0xe5, 0x30, 0x72, 0x13, 0xaa, 0x2b, 0x18, 0xa6, 0xca, - 0xe4, 0x4c, 0x49, 0x24, 0x67, 0xba, 0x08, 0xc3, 0xe4, 0x4c, 0x84, 0x26, 0xef, 0xc0, 0x54, 0xdb, - 0x73, 0x77, 0x3c, 0xb3, 0x2f, 0xe3, 0xb9, 0xfa, 0x28, 0xd4, 0xa7, 0x06, 0x02, 0x44, 0x23, 0x9c, - 0xf1, 0x47, 0x79, 0xa8, 0x6c, 0x06, 0x66, 0x30, 0xf4, 0x39, 0xc7, 0xe6, 0xb0, 0xdb, 0x65, 0xbe, - 0x8f, 0x63, 0x57, 0x05, 0x87, 0x2f, 0x40, 0x34, 0xc2, 0x91, 0x9b, 0x50, 0x5e, 0xf3, 0x3c, 0xd7, - 0x53, 0x33, 0x5c, 0x8c, 0x03, 0xd4, 0x0c, 0x17, 0x52, 0x90, 0xbb, 0x50, 0x17, 0x6e, 0xc2, 0xf7, - 0x79, 0xcc, 0x27, 0xbe, 0xe3, 0xec, 0x28, 0xd4, 0xe7, 0xfa, 0x02, 0xa4, 0xb0, 0xa8, 0x94, 0xc6, - 0x4f, 0x31, 0xb5, 0x85, 0x4b, 0x46, 0x2a, 0xe9, 0x4d, 0xbc, 0x03, 0x7f, 0x0b, 0x8a, 0x8d, 0xf6, - 0x3d, 0xe9, 0xb3, 0xce, 0x44, 0xac, 0xca, 0x52, 0x49, 0xf1, 0x71, 0x6a, 0x72, 0x09, 0x4a, 0x6d, - 0xbe, 0x7c, 0x2a, 0xb8, 0x3c, 0x30, 0x3d, 0x39, 0xe0, 0xeb, 0x07, 0xa1, 0x88, 0x35, 0x83, 0x5d, - 0x74, 0x3f, 0x32, 0x79, 0x39, 0x30, 0x83, 0x5d, 0x8a, 0x50, 0x8e, 0x5d, 0xf6, 0x76, 0xf6, 0xa4, - 0xa3, 0x41, 0xac, 0xe9, 0xed, 0xec, 0x51, 0x84, 0x92, 0xdb, 0x00, 0x94, 0x05, 0x43, 0xcf, 0xc1, - 0x3c, 0x2f, 0xf7, 0x2c, 0x65, 0xe1, 0xc0, 0x3c, 0x84, 0x6e, 0x77, 0x5d, 0x8b, 0x51, 0x85, 0xc4, - 0xf8, 0x8b, 0x38, 0x8c, 0x59, 0xb5, 0xfd, 0xc7, 0x27, 0x26, 0x7c, 0x0e, 0x13, 0x72, 0x23, 0x55, - 0x32, 0x8d, 0xa4, 0x43, 0xf9, 0x5e, 0xcf, 0xdc, 0xf1, 0xd1, 0x86, 0x65, 0x71, 0xb9, 0x7f, 0xc4, - 0x01, 0x54, 0xc0, 0x53, 0x76, 0xaa, 0x3e, 0xdb, 0x4e, 0xff, 0x16, 0xef, 0xb6, 0x07, 0x2c, 0x78, - 0xe2, 0x7a, 0x27, 0xa6, 0xfa, 0xa6, 0xa6, 0xba, 0x01, 0x53, 0x9b, 0x5e, 0x17, 0xd3, 0xaf, 0xc2, - 0x5a, 0xd3, 0xa3, 0x50, 0xaf, 0xfa, 0x5e, 0x17, 0xb3, 0xd6, 0x34, 0x42, 0x72, 0xba, 0x55, 0x3f, - 0x40, 0xba, 0xa9, 0x98, 0xce, 0xf2, 0x03, 0x49, 0x27, 0x91, 0x92, 0xae, 0xed, 0x7a, 0x81, 0x34, - 0xdc, 0x98, 0x6e, 0xe0, 0x7a, 0x01, 0x8d, 0x90, 0xe4, 0x3d, 0x80, 0xad, 0x95, 0xf6, 0xf7, 0x99, - 0x87, 0xea, 0x12, 0x7b, 0x11, 0xdd, 0xf5, 0x9e, 0x00, 0x51, 0x05, 0x6d, 0xfc, 0xb5, 0xb2, 0x0f, - 0xb9, 0x81, 0x4e, 0xd2, 0x09, 0x47, 0xb8, 0x4b, 0x2e, 0xc2, 0x2c, 0xc6, 0xd0, 0x5b, 0x9e, 0xe9, - 0xf8, 0x7d, 0x3b, 0x08, 0x98, 0x25, 0x7d, 0x2d, 0x46, 0xce, 0xc1, 0x53, 0x3a, 0x81, 0x27, 0xef, - 0xc3, 0x0c, 0xc2, 0x28, 0xeb, 0x32, 0x7b, 0x8f, 0x59, 0xb8, 0x06, 0x24, 0x83, 0xf7, 0x94, 0x26, - 0x91, 0xc6, 0x3f, 0xc5, 0x19, 0x85, 0x75, 0x66, 0xee, 0xb1, 0x13, 0x7b, 0x1d, 0xc1, 0x5e, 0xc6, - 0x57, 0x05, 0xa8, 0xf1, 0x19, 0x89, 0x9a, 0xdb, 0xab, 0x50, 0xe5, 0x52, 0x74, 0xc3, 0x92, 0x9a, - 0x3c, 0x35, 0xd6, 0x04, 0x42, 0x27, 0x34, 0x20, 0x6e, 0x63, 0xef, 0x43, 0xe5, 0x3e, 0x0b, 0x76, - 0x5d, 0x4b, 0xa6, 0xca, 0xe7, 0x47, 0xa1, 0x3e, 0xdb, 0x47, 0x88, 0x72, 0x6b, 0x92, 0x34, 0xe4, - 0x31, 0x90, 0x96, 0xc5, 0x9c, 0xc0, 0x0e, 0xf6, 0x97, 0x83, 0xc0, 0xb3, 0x3b, 0xc3, 0x80, 0xf9, - 0x52, 0x6f, 0xe7, 0x27, 0x2e, 0xe8, 0x9b, 0x58, 0x25, 0xc6, 0xec, 0xf8, 0xbc, 0x39, 0x26, 0x8f, - 0xc5, 0xfe, 0x4f, 0xa8, 0x57, 0x04, 0x0d, 0xcd, 0x10, 0x6b, 0x7c, 0x9d, 0x87, 0x59, 0xca, 0x7c, - 0x77, 0xe8, 0x75, 0x99, 0x92, 0xba, 0x2a, 0x29, 0x35, 0x0f, 0x8c, 0xa9, 0x53, 0x89, 0x76, 0xc4, - 0x93, 0x16, 0x4c, 0xad, 0x3d, 0x1d, 0xd8, 0x1e, 0xf3, 0xa5, 0x22, 0x0f, 0x8b, 0x1f, 0xce, 0xc8, - 0xf8, 0x61, 0x8a, 0x09, 0x16, 0x19, 0x30, 0x88, 0x1f, 0xe4, 0x43, 0xa8, 0x3d, 0x1c, 0x58, 0x66, - 0xc0, 0xac, 0xc6, 0xbe, 0xbc, 0x5c, 0x62, 0xd9, 0x6c, 0x28, 0x80, 0xdb, 0x9d, 0x7d, 0xb5, 0x6c, - 0x36, 0x26, 0x25, 0xd7, 0xa1, 0xb8, 0xb5, 0xb5, 0x2e, 0xf5, 0x8a, 0xe5, 0xec, 0x20, 0x50, 0x2b, - 0x6c, 0x1c, 0x6b, 0xfc, 0xa4, 0x00, 0xc0, 0xcd, 0xb7, 0xe2, 0x31, 0x33, 0x78, 0x35, 0x7b, 0xb0, - 0x01, 0xd5, 0x48, 0xcd, 0x72, 0xe9, 0x68, 0x11, 0x6f, 0x5a, 0xfd, 0xe9, 0xb1, 0x23, 0x3c, 0xbf, - 0x2d, 0x50, 0xb7, 0x87, 0xa9, 0xc0, 0x62, 0x54, 0xd9, 0xf7, 0x38, 0x80, 0x0a, 0x38, 0x79, 0x0f, - 0x6a, 0x72, 0xb7, 0xb8, 0x9e, 0xcc, 0x52, 0x89, 0x98, 0x22, 0x02, 0xd2, 0x18, 0x6f, 0xfc, 0x2c, - 0x2f, 0x94, 0xb2, 0xca, 0x7a, 0xec, 0xf8, 0x2a, 0xc5, 0xf8, 0x71, 0x1e, 0x08, 0x17, 0xd6, 0x36, - 0x7d, 0xff, 0x89, 0xeb, 0x59, 0x2b, 0xbb, 0xa6, 0xb3, 0xf3, 0x4a, 0xa6, 0x63, 0xfc, 0xa4, 0x04, - 0x67, 0x96, 0x45, 0x84, 0xc5, 0x7e, 0x34, 0x64, 0x7e, 0x70, 0xcc, 0xd7, 0xdb, 0xcd, 0xe4, 0x7a, - 0xc3, 0xe8, 0x10, 0xd7, 0x9b, 0x1a, 0x1d, 0x8a, 0x95, 0xf7, 0x36, 0xd4, 0xe4, 0x9c, 0x5b, 0xab, - 0x72, 0xe5, 0xe1, 0x89, 0x68, 0x5b, 0x34, 0x46, 0x90, 0x0f, 0x60, 0x5a, 0xfe, 0xe0, 0x8e, 0x31, - 0xca, 0xd9, 0xe1, 0x3a, 0xf6, 0x39, 0x80, 0x26, 0xd0, 0xe4, 0xdb, 0x50, 0xe3, 0x8b, 0x73, 0x07, - 0x3b, 0x2a, 0xa6, 0xe2, 0xde, 0x07, 0x2b, 0x02, 0xaa, 0x2e, 0x61, 0x4c, 0xc9, 0xbd, 0xad, 0x4c, - 0xd4, 0x56, 0x63, 0x6f, 0x2b, 0x12, 0xb5, 0xaa, 0xb7, 0x95, 0x29, 0xdb, 0xcf, 0xa0, 0xbe, 0xec, - 0x38, 0x6e, 0x60, 0xf2, 0x13, 0xc6, 0x97, 0x49, 0x96, 0x03, 0xdd, 0xec, 0x75, 0xac, 0xc8, 0xc7, - 0xf4, 0x99, 0x7e, 0x56, 0x15, 0x68, 0xfc, 0x59, 0x01, 0xea, 0xfc, 0x9a, 0x77, 0xcf, 0xf5, 0x9e, - 0x98, 0xde, 0xab, 0x89, 0x7d, 0x93, 0x27, 0x70, 0xf1, 0x08, 0x37, 0xa6, 0xf8, 0xfc, 0x2b, 0x3d, - 0xc7, 0xf9, 0xc7, 0x63, 0x51, 0x7e, 0x5d, 0x2e, 0xc7, 0x41, 0x10, 0x5e, 0x95, 0x11, 0x6a, 0xfc, - 0x4e, 0x01, 0xe0, 0x07, 0x77, 0xee, 0xbc, 0xc1, 0x0a, 0x32, 0xfe, 0x34, 0x0f, 0xa7, 0x65, 0x72, - 0x44, 0xe9, 0x69, 0x9a, 0x8a, 0x32, 0x51, 0xf9, 0x38, 0xe9, 0x23, 0x33, 0x50, 0x34, 0xc2, 0x91, - 0x45, 0xa8, 0xae, 0x3d, 0xb5, 0x03, 0x8c, 0x0f, 0x45, 0x16, 0x47, 0x24, 0x32, 0x25, 0x4c, 0xed, - 0xff, 0x88, 0xe8, 0xc8, 0x07, 0x51, 0xda, 0xa7, 0x18, 0x6f, 0x2a, 0xce, 0xb0, 0x96, 0x99, 0xfa, - 0x31, 0xfe, 0xbe, 0x04, 0xa5, 0xb5, 0xa7, 0xac, 0x7b, 0xcc, 0x4d, 0xa3, 0x5c, 0x83, 0x4b, 0x47, - 0xbc, 0x06, 0xbf, 0x48, 0xea, 0xf9, 0xe3, 0xd8, 0x9e, 0x95, 0xe4, 0xf0, 0x29, 0xcb, 0xa7, 0x87, - 0x8f, 0x2c, 0x7d, 0xfc, 0x2a, 0x17, 0xff, 0x58, 0x84, 0xe2, 0xe6, 0x4a, 0xfb, 0x64, 0xdd, 0xbc, - 0xd2, 0x75, 0x73, 0x78, 0x9e, 0xd0, 0x80, 0xca, 0xb2, 0xd0, 0x51, 0x35, 0x2e, 0x6b, 0x9a, 0x08, - 0xa1, 0x12, 0x63, 0x7c, 0x51, 0x80, 0xda, 0xe6, 0xb0, 0xe3, 0xef, 0xfb, 0x01, 0xeb, 0x1f, 0x73, - 0x6b, 0x5e, 0x92, 0xb1, 0x4d, 0x29, 0xd6, 0x06, 0xb6, 0x98, 0x8a, 0x88, 0xe6, 0x7a, 0xe4, 0x19, - 0x95, 0xdb, 0xf3, 0xd8, 0x33, 0x46, 0xfe, 0xf0, 0xef, 0x0a, 0x30, 0xbb, 0xd2, 0xb3, 0x99, 0x13, - 0xac, 0xda, 0xbe, 0xbc, 0x5b, 0x1f, 0x73, 0xad, 0x1c, 0x2d, 0xc2, 0xff, 0x06, 0xa5, 0x71, 0xe3, - 0x77, 0x0b, 0x50, 0x5f, 0x1e, 0x06, 0xbb, 0xcb, 0x01, 0x1e, 0x2e, 0x6f, 0xe4, 0x31, 0xff, 0x8b, - 0x3c, 0x68, 0x94, 0xf9, 0x2c, 0x88, 0x82, 0x95, 0x2d, 0xf7, 0x31, 0x73, 0x5e, 0x42, 0x94, 0xa0, - 0xde, 0xf6, 0x0b, 0x2f, 0x78, 0xdb, 0x8f, 0x94, 0x5a, 0x7c, 0xce, 0xa8, 0x87, 0xc7, 0x91, 0x3c, - 0x08, 0x78, 0x4d, 0xa6, 0xf1, 0x12, 0xc2, 0xe1, 0x57, 0x39, 0x8d, 0x7f, 0xce, 0xc3, 0xfc, 0x96, - 0xc7, 0x4f, 0x74, 0x4b, 0x1e, 0xec, 0xc7, 0xdc, 0x2e, 0x93, 0x13, 0x3a, 0xe6, 0x16, 0xfa, 0xd7, - 0x3c, 0x5c, 0x48, 0x4e, 0xe8, 0x75, 0xf0, 0x02, 0xff, 0x92, 0x87, 0xb3, 0xdf, 0xb5, 0x83, 0xdd, - 0x61, 0x67, 0x9c, 0x61, 0x7a, 0xfd, 0x66, 0x74, 0xcc, 0x57, 0xde, 0xcf, 0xf3, 0x70, 0x66, 0xa3, - 0xb5, 0xba, 0xf2, 0xba, 0x58, 0x68, 0x62, 0x3e, 0xaf, 0x81, 0x7d, 0x36, 0x97, 0xef, 0xaf, 0xbf, - 0x4e, 0xf6, 0x49, 0xcc, 0xe7, 0x98, 0xdb, 0xe7, 0xf7, 0x2b, 0x50, 0xe7, 0x01, 0xae, 0x4c, 0x52, - 0xbe, 0xd1, 0x57, 0xfe, 0x45, 0xa8, 0x4b, 0x35, 0x60, 0x6c, 0x59, 0x8e, 0x1f, 0xee, 0x79, 0x02, - 0xbc, 0x8d, 0x31, 0xa6, 0x4a, 0xc4, 0x43, 0xaf, 0xef, 0x33, 0xaf, 0xa3, 0xf6, 0x42, 0xec, 0x31, - 0xaf, 0x43, 0x11, 0x4a, 0xd6, 0xe3, 0x42, 0xd4, 0x72, 0xbb, 0x85, 0x8f, 0x74, 0x64, 0xc8, 0x8a, - 0xaf, 0x8e, 0x3c, 0x89, 0xdb, 0x36, 0x07, 0xb6, 0x78, 0xde, 0xa3, 0xbe, 0xee, 0x49, 0x73, 0x92, - 0x07, 0x30, 0x17, 0xc1, 0xe2, 0xd7, 0x36, 0xd5, 0x0c, 0x71, 0x59, 0xef, 0x6c, 0x26, 0x59, 0xc9, - 0xc7, 0x30, 0x1d, 0x01, 0x3f, 0xb5, 0xf1, 0x2d, 0x00, 0x17, 0xf5, 0xd6, 0x28, 0xd4, 0xcf, 0x8f, - 0x45, 0x3d, 0xb6, 0x13, 0xad, 0x61, 0x09, 0x06, 0x55, 0x00, 0xc6, 0x9f, 0x90, 0x21, 0x20, 0x55, - 0x64, 0x4b, 0x30, 0x90, 0x6f, 0xa3, 0x80, 0x81, 0xeb, 0xf8, 0x0c, 0x93, 0x7d, 0x75, 0x6c, 0x14, - 0xc0, 0x92, 0x97, 0x27, 0xe1, 0xa2, 0x1d, 0x24, 0x41, 0x46, 0x36, 0x00, 0xe2, 0xa4, 0x8c, 0xec, - 0x93, 0x7b, 0xee, 0x74, 0x91, 0x22, 0xc2, 0xf8, 0xbf, 0x02, 0x9c, 0x5e, 0x1e, 0x0c, 0x4e, 0x9e, - 0xd4, 0xbc, 0xac, 0x2e, 0x84, 0xdb, 0x00, 0xed, 0x61, 0xa7, 0x67, 0x77, 0x95, 0x96, 0x12, 0xec, - 0xf1, 0x19, 0x20, 0x54, 0x74, 0x95, 0x28, 0x24, 0xc6, 0x17, 0x45, 0xd5, 0x02, 0xf8, 0x94, 0xe0, - 0xc4, 0x02, 0xe5, 0x23, 0xb9, 0xc2, 0x53, 0xaa, 0x32, 0x65, 0xc7, 0x9d, 0xac, 0x1c, 0x45, 0xed, - 0xae, 0x5d, 0x8e, 0xda, 0xb6, 0x2d, 0x9a, 0xa2, 0x35, 0xfe, 0x3b, 0x0f, 0x73, 0xb1, 0x39, 0x5e, - 0xc6, 0xe1, 0x70, 0x1b, 0x40, 0x64, 0x0c, 0xc6, 0x59, 0xfd, 0x19, 0xb1, 0x22, 0x7c, 0x84, 0xca, - 0xae, 0xaf, 0x98, 0x64, 0x9c, 0xe2, 0x2b, 0x66, 0xa6, 0xf8, 0x6e, 0x42, 0x95, 0x9a, 0x4f, 0xbe, - 0x37, 0x64, 0xde, 0xbe, 0x4c, 0x7b, 0x61, 0x5e, 0xcb, 0x33, 0x9f, 0x6c, 0xff, 0x88, 0x03, 0xe9, - 0x18, 0x4d, 0x8c, 0x71, 0xa7, 0x82, 0x92, 0xc9, 0x11, 0x9d, 0x0a, 0x51, 0x7f, 0x82, 0xf1, 0x27, - 0x05, 0x98, 0x5d, 0x35, 0x03, 0xb3, 0x63, 0xfa, 0x71, 0xcb, 0xc0, 0x47, 0x70, 0x3a, 0x82, 0x71, - 0xf3, 0xd8, 0xe3, 0xd7, 0xca, 0xa7, 0x46, 0xa1, 0x0e, 0x56, 0x67, 0xdb, 0x17, 0x50, 0x9a, 0x26, - 0x23, 0xbf, 0x16, 0x4b, 0x1b, 0xbf, 0x62, 0x2d, 0xc4, 0x9b, 0xc0, 0xea, 0x6c, 0x0f, 0x24, 0x98, - 0x4e, 0x10, 0x92, 0xf7, 0xa1, 0x1e, 0xc1, 0x1e, 0xd2, 0x96, 0x9c, 0x3f, 0x7e, 0xb4, 0xd5, 0xd9, - 0x1e, 0x7a, 0x36, 0x55, 0xd1, 0xe4, 0x36, 0x4c, 0x47, 0x3f, 0x95, 0x1c, 0x20, 0xd6, 0x55, 0xac, - 0x8e, 0x78, 0x69, 0x9e, 0x20, 0x50, 0x19, 0x70, 0x87, 0x94, 0x13, 0x0c, 0xf8, 0x54, 0x3c, 0x41, - 0x60, 0xfc, 0xbc, 0x08, 0xf3, 0xf1, 0x04, 0x4f, 0x3c, 0xe4, 0xcb, 0xd9, 0x9f, 0x71, 0xb6, 0xad, - 0xf2, 0x1c, 0x55, 0xc7, 0x06, 0x54, 0x23, 0x53, 0xc8, 0x32, 0xc9, 0xf8, 0xaa, 0x98, 0x5e, 0xbe, - 0x69, 0xd5, 0x47, 0x78, 0xe3, 0xa7, 0x85, 0x09, 0x7b, 0x8a, 0x8d, 0x72, 0x2c, 0xed, 0xa9, 0x6a, - 0xa4, 0xf4, 0x62, 0x1a, 0x21, 0x8b, 0x30, 0x13, 0xfd, 0x2d, 0x3c, 0x4a, 0x59, 0xe9, 0x81, 0xec, - 0x48, 0x87, 0x92, 0x24, 0x31, 0xfe, 0xa0, 0x00, 0x24, 0xa5, 0xc5, 0x63, 0xfb, 0x92, 0xe5, 0x25, - 0xe8, 0xd0, 0xf8, 0xd9, 0x39, 0x28, 0x6f, 0x38, 0x6c, 0xe3, 0x11, 0xb9, 0xa3, 0x34, 0xb4, 0x49, - 0x1d, 0xcc, 0xa9, 0x73, 0x41, 0x44, 0x33, 0x47, 0x95, 0xb6, 0xb7, 0x25, 0xb5, 0x97, 0x49, 0xce, - 0x9f, 0xa8, 0x3c, 0x02, 0xd3, 0xcc, 0x51, 0xb5, 0xe7, 0x69, 0x49, 0x6d, 0xf6, 0x91, 0x53, 0x4f, - 0x70, 0x09, 0x4c, 0xc4, 0x25, 0x23, 0xb5, 0xf5, 0xac, 0xde, 0x9a, 0xf4, 0xf3, 0x9d, 0x49, 0x8a, - 0x66, 0x8e, 0x66, 0xf7, 0xe4, 0x24, 0x1e, 0x62, 0x4b, 0x97, 0x30, 0x9f, 0x32, 0x00, 0xe2, 0x9a, - 0x39, 0x9a, 0x7c, 0xb4, 0x7d, 0x37, 0xf1, 0x8a, 0x56, 0xfa, 0x81, 0x33, 0x29, 0x56, 0x8e, 0x6a, - 0xe6, 0x68, 0xea, 0xbd, 0x6d, 0xe2, 0x49, 0xa7, 0xf4, 0x04, 0xe9, 0x41, 0x11, 0xa7, 0x0c, 0x2a, - 0x9e, 0x7f, 0xfe, 0x46, 0xea, 0xfd, 0xa3, 0x2c, 0x89, 0x9e, 0x4d, 0x31, 0x0b, 0x64, 0x33, 0x47, - 0x53, 0xaf, 0x25, 0x17, 0xa2, 0x97, 0x7e, 0xb2, 0xab, 0xe4, 0x94, 0x12, 0xa9, 0xda, 0x9f, 0x73, - 0x2d, 0x45, 0x2f, 0x01, 0x97, 0xd4, 0x17, 0x5e, 0xf2, 0x2d, 0x0e, 0x49, 0x8d, 0xb2, 0xe6, 0x58, - 0xdc, 0x3a, 0xca, 0xfe, 0xf9, 0x24, 0xfd, 0xb0, 0x42, 0xbe, 0xb0, 0x39, 0x97, 0xe2, 0x94, 0xd8, - 0x66, 0x8e, 0xa6, 0x1f, 0x62, 0xdc, 0x4d, 0x34, 0xf5, 0xcb, 0xe8, 0x20, 0xad, 0x55, 0x8e, 0x52, - 0xb4, 0x8a, 0xed, 0xff, 0x9f, 0xa4, 0xbb, 0xcc, 0xb5, 0x99, 0xcc, 0xa1, 0x25, 0x56, 0x19, 0x3a, - 0xea, 0x4a, 0xbf, 0x9b, 0xe8, 0x63, 0xd6, 0x4e, 0x65, 0x0f, 0x6d, 0x06, 0xa6, 0x3a, 0xb4, 0xe8, - 0x78, 0x4e, 0x74, 0xd4, 0x6a, 0xa7, 0x33, 0x0d, 0x8a, 0x38, 0xc5, 0xa0, 0xa2, 0xfb, 0xf6, 0x6e, - 0xa2, 0x17, 0x47, 0x9b, 0x4d, 0x0e, 0xaa, 0xa0, 0xf8, 0xa0, 0x6a, 0xd7, 0xce, 0x92, 0xda, 0xa2, - 0xa2, 0xcd, 0x25, 0x0d, 0x14, 0x63, 0xb8, 0x81, 0x94, 0x56, 0x16, 0x1d, 0xcb, 0xdf, 0x1a, 0x41, - 0xf2, 0xfa, 0xf8, 0x0b, 0x57, 0xda, 0xcd, 0x1c, 0xc5, 0xc2, 0xb8, 0x21, 0x1a, 0x2b, 0xb4, 0x33, - 0x48, 0x31, 0x1d, 0x51, 0x70, 0x58, 0x33, 0x47, 0x45, 0xd3, 0xc5, 0x1d, 0xa5, 0xf6, 0xaa, 0xcd, - 0x27, 0x5d, 0xc4, 0x18, 0xc1, 0x5d, 0x44, 0x5c, 0xa1, 0xbd, 0x37, 0x59, 0x9f, 0xd4, 0xce, 0x26, - 0x7d, 0x55, 0x1a, 0xdf, 0xcc, 0xd1, 0xc9, 0x9a, 0xe6, 0xdd, 0x44, 0xc9, 0x4e, 0x3b, 0x97, 0x54, - 0x97, 0x82, 0xe2, 0xea, 0x52, 0x8b, 0x7b, 0x1b, 0x99, 0x8d, 0x70, 0xda, 0x79, 0x14, 0xf0, 0xd6, - 0x58, 0xc0, 0x24, 0x49, 0x33, 0x47, 0x33, 0x5b, 0xe8, 0x3e, 0x3b, 0xb8, 0x70, 0xa6, 0x69, 0x28, - 0xf5, 0xaa, 0xb2, 0xb9, 0x32, 0xe9, 0x9a, 0x39, 0x7a, 0x70, 0xf1, 0x6d, 0x49, 0xad, 0x61, 0x69, - 0x17, 0x92, 0xf6, 0x8d, 0x31, 0xdc, 0xbe, 0x4a, 0xad, 0x6b, 0x49, 0x2d, 0x19, 0x69, 0x17, 0x27, - 0xb9, 0x62, 0xa7, 0xaa, 0x94, 0x96, 0x68, 0x76, 0x85, 0x46, 0x7b, 0x0b, 0xf9, 0x2f, 0x45, 0xfc, - 0x59, 0x34, 0xcd, 0x1c, 0xcd, 0xae, 0xee, 0xd0, 0xec, 0x22, 0x89, 0x76, 0xe9, 0x30, 0x99, 0xe3, - 0xaf, 0xcb, 0x2e, 0xb0, 0x98, 0x87, 0xd4, 0x29, 0xb4, 0xcb, 0xc9, 0x44, 0xc2, 0x81, 0x84, 0xcd, - 0x1c, 0x3d, 0xa4, 0xda, 0xf1, 0xf0, 0x80, 0xa2, 0x81, 0x76, 0x25, 0xd9, 0x7b, 0x92, 0x49, 0xd4, - 0xcc, 0xd1, 0x03, 0x4a, 0x0e, 0x0f, 0x0f, 0xc8, 0xdc, 0x6b, 0xfa, 0xa1, 0x62, 0xc7, 0xfa, 0x38, - 0x20, 0xef, 0xbf, 0x91, 0x99, 0x3e, 0xd7, 0xae, 0x26, 0x57, 0x75, 0x06, 0x09, 0x5f, 0xd5, 0x59, - 0x89, 0xf7, 0x8d, 0xcc, 0xfc, 0xb5, 0x76, 0xed, 0x10, 0x81, 0xe3, 0x6f, 0xcc, 0xcc, 0x7c, 0x6f, - 0x64, 0x26, 0x90, 0x35, 0x23, 0x29, 0x30, 0x83, 0x84, 0x0b, 0xcc, 0x4a, 0x3d, 0x6f, 0x64, 0x66, - 0x70, 0xb5, 0xeb, 0x87, 0x08, 0x8c, 0xbf, 0x30, 0x2b, 0xf7, 0x7b, 0x37, 0x91, 0x42, 0xd5, 0xde, - 0x4e, 0xba, 0x14, 0x05, 0xc5, 0x5d, 0x8a, 0x9a, 0x6c, 0x5d, 0x99, 0xc8, 0x3a, 0x69, 0xef, 0x24, - 0x2f, 0x70, 0x29, 0x74, 0x33, 0x47, 0x27, 0xf2, 0x54, 0x2b, 0x13, 0x89, 0x13, 0xed, 0xc6, 0x41, - 0x42, 0x10, 0x9d, 0x14, 0x22, 0x52, 0x2d, 0xad, 0x8c, 0x70, 0x5f, 0x7b, 0x17, 0xc5, 0x5c, 0x98, - 0x14, 0x13, 0x4f, 0x27, 0x23, 0x49, 0x40, 0xb3, 0xa3, 0x45, 0x6d, 0x21, 0xb9, 0x6d, 0xb3, 0x68, - 0xf8, 0xb6, 0xcd, 0x8c, 0x34, 0xd7, 0xb3, 0xee, 0xda, 0xda, 0xcd, 0xe4, 0x9d, 0x6d, 0x92, 0x82, - 0xdf, 0xd9, 0x32, 0xee, 0xe8, 0x34, 0x3b, 0xfe, 0xd1, 0x7e, 0xe5, 0xd0, 0x2f, 0x44, 0x9a, 0x8c, - 0x2f, 0x14, 0xb1, 0x53, 0x7c, 0xad, 0x7a, 0x38, 0xe8, 0xb9, 0xa6, 0xa5, 0xbd, 0x97, 0x79, 0xad, - 0x12, 0x48, 0xe5, 0x5a, 0x25, 0x00, 0x8d, 0x29, 0x28, 0xaf, 0x71, 0x42, 0xe3, 0xcf, 0xf3, 0x30, - 0xbd, 0x19, 0x78, 0xcc, 0xec, 0xcb, 0x88, 0xef, 0x22, 0x54, 0x05, 0x4d, 0xf4, 0x5f, 0xe0, 0xe8, - 0xf8, 0x37, 0xb9, 0x01, 0xa7, 0xd6, 0x4d, 0x3f, 0x40, 0x4e, 0xe5, 0x5f, 0x72, 0xd0, 0x14, 0x94, - 0xac, 0x0b, 0x3a, 0xc1, 0x87, 0x4f, 0xa3, 0x8b, 0xcf, 0x7c, 0xda, 0x50, 0xe5, 0xf7, 0x7c, 0x7c, - 0xcf, 0x90, 0xe2, 0x35, 0x46, 0xf9, 0xd4, 0x5c, 0x8f, 0x14, 0xf4, 0x6c, 0x4c, 0xfc, 0xe7, 0x3b, - 0x79, 0xff, 0xff, 0x86, 0x41, 0xcc, 0xc4, 0xff, 0xcd, 0xbb, 0x0e, 0xc5, 0x87, 0xad, 0x55, 0xf5, - 0xf5, 0x44, 0xf2, 0x9f, 0x01, 0x72, 0x2c, 0x79, 0x77, 0x7c, 0x39, 0x7d, 0x48, 0xd7, 0x65, 0xb8, - 0x87, 0x4f, 0x99, 0x87, 0x5e, 0x8f, 0x2a, 0xa8, 0xc6, 0xec, 0x97, 0xff, 0x79, 0x25, 0xf7, 0xe5, - 0xd7, 0x57, 0xf2, 0x5f, 0x7d, 0x7d, 0x25, 0xff, 0x1f, 0x5f, 0x5f, 0xc9, 0x77, 0x2a, 0xa8, 0xac, - 0x6f, 0xfd, 0x7f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x57, 0xfe, 0xca, 0x43, 0x29, 0x51, 0x00, 0x00, + 0x76, 0xf3, 0xcd, 0x99, 0x37, 0xa4, 0x48, 0x96, 0x28, 0xa9, 0x25, 0xcb, 0x6a, 0xa9, 0x65, 0xcb, + 0x54, 0x2c, 0x8b, 0x10, 0xcd, 0xb5, 0x9c, 0xcd, 0x87, 0xcd, 0x21, 0xa9, 0x1d, 0xc6, 0x94, 0x48, + 0x17, 0xa9, 0xc5, 0x5e, 0xd6, 0x44, 0xcf, 0x74, 0x89, 0xec, 0x68, 0xa6, 0x7b, 0xb6, 0xbb, 0x87, + 0x12, 0x7d, 0xca, 0xc7, 0x65, 0x0f, 0x0e, 0x10, 0x6c, 0x0e, 0x41, 0x90, 0x43, 0x02, 0x04, 0x39, + 0x24, 0x08, 0x92, 0x20, 0x87, 0x20, 0x77, 0x67, 0x03, 0x03, 0xc1, 0x26, 0x8b, 0xcd, 0x39, 0x93, + 0xc4, 0x40, 0x2e, 0x03, 0xe4, 0x0f, 0x04, 0x01, 0xb2, 0xa8, 0x57, 0xd5, 0xdd, 0xd5, 0x3d, 0x4d, + 0xca, 0x12, 0xb5, 0x20, 0x28, 0xf1, 0x46, 0xbe, 0xaf, 0xae, 0x7a, 0xaf, 0xea, 0x55, 0xbd, 0x8f, + 0x1a, 0x18, 0x67, 0x7b, 0xcc, 0x09, 0xfc, 0xdb, 0x3d, 0xcf, 0x0d, 0x5c, 0x52, 0x11, 0xff, 0x5d, + 0x9a, 0xd9, 0x71, 0x77, 0x5c, 0x04, 0xcd, 0xf1, 0xbf, 0x04, 0xf6, 0x92, 0xbe, 0xe3, 0xba, 0x3b, + 0x1d, 0x36, 0x87, 0xff, 0xb5, 0xfa, 0x8f, 0xe6, 0x02, 0xbb, 0xcb, 0xfc, 0xc0, 0xec, 0xf6, 0x24, + 0xc1, 0xe5, 0x34, 0x81, 0x1f, 0x78, 0xfd, 0x76, 0x20, 0xb0, 0xc6, 0x0f, 0x0b, 0x50, 0xbd, 0xcf, + 0x02, 0xd3, 0x32, 0x03, 0x93, 0x5c, 0x86, 0xf2, 0xaa, 0x63, 0xb1, 0xa7, 0x5a, 0xfe, 0x6a, 0x7e, + 0xb6, 0xd8, 0xa8, 0x0c, 0x07, 0x7a, 0x81, 0xd9, 0x54, 0x00, 0xc9, 0x9b, 0x50, 0xda, 0xda, 0xef, + 0x31, 0xad, 0x70, 0x35, 0x3f, 0x5b, 0x6b, 0xd4, 0x86, 0x03, 0xbd, 0x8c, 0x23, 0xa3, 0x08, 0x26, + 0xd7, 0xa0, 0xb0, 0xba, 0xac, 0x15, 0x11, 0x39, 0x3d, 0x1c, 0xe8, 0x13, 0x7d, 0xdb, 0xba, 0xe5, + 0x76, 0xed, 0x80, 0x75, 0x7b, 0xc1, 0x3e, 0x2d, 0xac, 0x2e, 0x93, 0x1b, 0x50, 0x5a, 0x72, 0x2d, + 0xa6, 0x95, 0x90, 0x88, 0x0c, 0x07, 0xfa, 0x99, 0xb6, 0x6b, 0x31, 0x85, 0x0a, 0xf1, 0xe4, 0x63, + 0x28, 0x6d, 0xd9, 0x5d, 0xa6, 0x95, 0xaf, 0xe6, 0x67, 0xeb, 0xf3, 0x97, 0x6e, 0x8b, 0x19, 0xdc, + 0x0e, 0x67, 0x70, 0x7b, 0x2b, 0x9c, 0x62, 0x63, 0xea, 0xab, 0x81, 0x9e, 0x1b, 0x0e, 0xf4, 0x12, + 0x9f, 0xf5, 0xef, 0xff, 0x87, 0x9e, 0xa7, 0xc8, 0x49, 0xe6, 0xa1, 0xbe, 0xd4, 0xe9, 0xfb, 0x01, + 0xf3, 0x1e, 0x98, 0x5d, 0xa6, 0x55, 0xf0, 0x83, 0x53, 0xc3, 0x81, 0x3e, 0xde, 0x16, 0xe0, 0x6d, + 0xc7, 0xec, 0x32, 0xaa, 0x12, 0x19, 0x1f, 0xc2, 0xe4, 0x26, 0xf3, 0x7d, 0xdb, 0x75, 0x22, 0x85, + 0xbc, 0x0d, 0x35, 0x09, 0x5a, 0x5d, 0x46, 0xa5, 0xd4, 0x1a, 0x63, 0xc3, 0x81, 0x5e, 0xf4, 0x6d, + 0x8b, 0xc6, 0x18, 0xe3, 0x0f, 0xf3, 0x30, 0xfe, 0xd0, 0x67, 0x9e, 0xa2, 0xc8, 0x12, 0xff, 0x5f, + 0xb2, 0x54, 0xf9, 0x00, 0xfb, 0x3e, 0xf3, 0x28, 0x42, 0xc9, 0x4d, 0x28, 0xaf, 0xb9, 0x3b, 0xb6, + 0x23, 0x35, 0x79, 0x76, 0x38, 0xd0, 0x27, 0x3b, 0x1c, 0xa0, 0x28, 0x42, 0x50, 0x90, 0x5f, 0x87, + 0xf1, 0xd5, 0x6e, 0x8f, 0x79, 0xbe, 0xeb, 0x98, 0x81, 0xeb, 0x49, 0xf5, 0x5e, 0x1a, 0x0e, 0xf4, + 0xf3, 0xb6, 0x02, 0x57, 0x18, 0x13, 0xf4, 0xc6, 0xdf, 0x16, 0xe1, 0xcc, 0x26, 0xf3, 0xf6, 0x94, + 0xb1, 0x2d, 0xf2, 0x69, 0x72, 0x08, 0x9f, 0xb4, 0xdf, 0x33, 0xdb, 0x4c, 0x0e, 0xf3, 0xc2, 0x70, + 0xa0, 0x9f, 0x75, 0x42, 0xa0, 0x22, 0x32, 0x4d, 0x4f, 0x6e, 0x42, 0x55, 0x80, 0x56, 0x97, 0xe5, + 0x1c, 0x26, 0x86, 0x03, 0xbd, 0xe6, 0x23, 0x6c, 0xdb, 0xb6, 0x68, 0x84, 0x26, 0x2b, 0xe1, 0xf7, + 0x9b, 0xae, 0x1f, 0x70, 0xe1, 0x72, 0x0a, 0x6f, 0x0e, 0x07, 0xfa, 0x45, 0xc9, 0xb0, 0x2b, 0x51, + 0xca, 0x27, 0x53, 0x4c, 0xe4, 0x97, 0x01, 0x04, 0x64, 0xd1, 0xb2, 0x3c, 0xb9, 0x7e, 0x2e, 0x0e, + 0x07, 0xfa, 0x39, 0x29, 0xc2, 0xb4, 0x2c, 0x55, 0x09, 0x0a, 0x31, 0xe9, 0xc2, 0xb8, 0xf8, 0x6f, + 0xcd, 0x6c, 0xb1, 0x8e, 0xaf, 0x95, 0xaf, 0x16, 0x67, 0xeb, 0xf3, 0xb3, 0xb7, 0xe5, 0x1e, 0x4b, + 0x6a, 0xe7, 0xb6, 0x4a, 0xba, 0xe2, 0x04, 0xde, 0x7e, 0x43, 0x97, 0x4b, 0xec, 0x82, 0xfc, 0x54, + 0x07, 0x71, 0xaa, 0xc6, 0x55, 0x9e, 0x4b, 0x1f, 0xc1, 0xf4, 0x88, 0x0c, 0x32, 0x05, 0xc5, 0xc7, + 0x6c, 0x5f, 0xe8, 0x99, 0xf2, 0x3f, 0xc9, 0x0c, 0x94, 0xf7, 0xcc, 0x4e, 0x5f, 0xee, 0x26, 0x2a, + 0xfe, 0xf9, 0x76, 0xe1, 0xc3, 0xbc, 0xf1, 0x0f, 0x79, 0x20, 0x4b, 0xae, 0xe3, 0xb0, 0x76, 0xa0, + 0x2e, 0xc5, 0x0f, 0xa0, 0xb6, 0xe6, 0xb6, 0xcd, 0x0e, 0x2a, 0x40, 0x18, 0x4c, 0x1b, 0x0e, 0xf4, + 0x19, 0x3e, 0xf3, 0xdb, 0x1d, 0x8e, 0x51, 0x86, 0x14, 0x93, 0x72, 0xcd, 0x51, 0xd6, 0x75, 0x03, + 0x86, 0x8c, 0x85, 0x58, 0x73, 0xc8, 0xe8, 0x21, 0x4a, 0xd5, 0x5c, 0x4c, 0x4c, 0xe6, 0xa0, 0xba, + 0xc1, 0xb7, 0x5c, 0xdb, 0xed, 0x48, 0xab, 0xe1, 0x52, 0xc5, 0x6d, 0xa8, 0xb0, 0x44, 0x44, 0xc6, + 0xef, 0x14, 0xe0, 0xe2, 0x27, 0xfd, 0x16, 0xf3, 0x1c, 0x16, 0x30, 0x5f, 0xee, 0xad, 0x68, 0x06, + 0x0f, 0x60, 0x7a, 0x04, 0x29, 0x67, 0x72, 0x75, 0x38, 0xd0, 0x2f, 0x3f, 0x8e, 0x90, 0xdb, 0x72, + 0x93, 0x2a, 0x1f, 0x19, 0x65, 0x25, 0x4d, 0x98, 0x8c, 0x81, 0x7c, 0x63, 0xf9, 0x5a, 0xe1, 0x6a, + 0x71, 0xb6, 0xd6, 0xb8, 0x32, 0x1c, 0xe8, 0x97, 0x14, 0x69, 0x7c, 0xeb, 0xa9, 0x06, 0x4b, 0xb3, + 0x91, 0x4f, 0x60, 0x2a, 0x06, 0x7d, 0xc7, 0x73, 0xfb, 0x3d, 0x5f, 0x2b, 0xa2, 0x28, 0x7d, 0x38, + 0xd0, 0xdf, 0x50, 0x44, 0xed, 0x20, 0x52, 0x91, 0x35, 0xc2, 0x68, 0xfc, 0x77, 0x11, 0xce, 0xc5, + 0xc0, 0x0d, 0xd7, 0x8a, 0x14, 0xb0, 0xae, 0x2a, 0x60, 0xc3, 0xb5, 0xd0, 0x35, 0x09, 0x05, 0x5c, + 0x1b, 0x0e, 0xf4, 0x37, 0x95, 0xef, 0xf4, 0x5c, 0x6b, 0x3b, 0xb5, 0x25, 0x46, 0x79, 0xc9, 0x67, + 0x70, 0x7e, 0x04, 0x28, 0x76, 0xb4, 0xb0, 0xf3, 0x8d, 0xe1, 0x40, 0x37, 0x32, 0xa4, 0xa6, 0x37, + 0xf8, 0x01, 0x52, 0x88, 0x09, 0x17, 0x14, 0xb5, 0xbb, 0x4e, 0x60, 0xda, 0x8e, 0xf4, 0xa8, 0x62, + 0x3d, 0xbc, 0x33, 0x1c, 0xe8, 0xd7, 0x55, 0xbb, 0x85, 0x34, 0xe9, 0xc1, 0x1f, 0x24, 0x87, 0x58, + 0xa0, 0x65, 0xa0, 0x56, 0xbb, 0xe6, 0x4e, 0x78, 0x4c, 0xcc, 0x0e, 0x07, 0xfa, 0x5b, 0x99, 0xdf, + 0xb0, 0x39, 0x95, 0xf2, 0x91, 0x03, 0x25, 0x11, 0x0a, 0x24, 0xc6, 0x3d, 0x70, 0x2d, 0x86, 0x73, + 0x28, 0xa3, 0x7c, 0x63, 0x38, 0xd0, 0xaf, 0x28, 0xf2, 0x1d, 0xd7, 0x62, 0xe9, 0xe1, 0x67, 0x70, + 0x1b, 0xff, 0x57, 0xe2, 0x8e, 0x05, 0x8f, 0x80, 0xcd, 0xc0, 0xf4, 0x02, 0xf2, 0xed, 0xf8, 0x24, + 0x45, 0xab, 0xd6, 0xe7, 0xa7, 0x42, 0x27, 0x13, 0xc2, 0x1b, 0xe3, 0xdc, 0x99, 0xfc, 0x74, 0xa0, + 0xe7, 0x87, 0x03, 0x3d, 0x47, 0xab, 0xca, 0xee, 0x16, 0x07, 0x46, 0x01, 0xf9, 0x66, 0x42, 0x3e, + 0xf5, 0x50, 0x49, 0xf1, 0x8a, 0xa3, 0xe4, 0x23, 0x18, 0x93, 0x63, 0x40, 0x8b, 0xd4, 0xe7, 0x2f, + 0xc4, 0x7e, 0x2d, 0x71, 0x94, 0xa5, 0xb8, 0x43, 0x2e, 0xf2, 0xab, 0x50, 0x11, 0xee, 0x0a, 0xb5, + 0x5d, 0x9f, 0x3f, 0x9f, 0xed, 0x17, 0x53, 0xec, 0x92, 0x87, 0x34, 0x01, 0x62, 0x57, 0x15, 0x1d, + 0xd7, 0x52, 0xc2, 0xa8, 0x13, 0x4b, 0x49, 0x51, 0x78, 0xc9, 0x07, 0x30, 0xbe, 0xc5, 0xbc, 0xae, + 0xed, 0x98, 0x9d, 0x4d, 0xfb, 0xf3, 0xf0, 0xc4, 0xc6, 0x2b, 0x82, 0x6f, 0x7f, 0xae, 0xda, 0x22, + 0x41, 0x47, 0xbe, 0x9f, 0xe5, 0x54, 0xc6, 0x70, 0x20, 0xd7, 0xc2, 0x81, 0x1c, 0xe8, 0x92, 0x52, + 0xe3, 0xc9, 0xf0, 0x31, 0x9f, 0xc2, 0x44, 0x62, 0x6f, 0x68, 0x55, 0x14, 0xfd, 0xe6, 0xa8, 0x68, + 0x65, 0xa3, 0xa7, 0xc4, 0x26, 0x25, 0xf0, 0x13, 0x71, 0xd5, 0xb1, 0x03, 0xdb, 0xec, 0x2c, 0xb9, + 0xdd, 0xae, 0xe9, 0x58, 0x5a, 0x0d, 0x5d, 0x0d, 0x9e, 0x88, 0xb6, 0xc0, 0x6c, 0xb7, 0x05, 0x4a, + 0x3d, 0x11, 0x93, 0x4c, 0xc6, 0x5f, 0x14, 0xa1, 0x2e, 0x8d, 0xf8, 0x1b, 0xae, 0xed, 0x9c, 0xae, + 0xbe, 0xa3, 0xac, 0xbe, 0xcc, 0x55, 0x54, 0x79, 0x59, 0xab, 0xc8, 0xf8, 0xa2, 0x10, 0xb9, 0x8a, + 0x0d, 0xcf, 0x76, 0x8e, 0xe6, 0x2a, 0x6e, 0x00, 0x2c, 0xed, 0xf6, 0x9d, 0xc7, 0xe2, 0xa6, 0x5e, + 0x88, 0x6f, 0xea, 0x6d, 0x9b, 0x2a, 0x18, 0x7e, 0x5d, 0x5f, 0xe6, 0xf2, 0xb9, 0x65, 0xc6, 0x1b, + 0xb5, 0xaf, 0x84, 0xa4, 0xfc, 0x7b, 0x14, 0xc1, 0x44, 0x87, 0x72, 0x63, 0x3f, 0x60, 0x3e, 0x6a, + 0xbe, 0x28, 0xae, 0xf3, 0x2d, 0x0e, 0xa0, 0x02, 0x4e, 0x16, 0x60, 0x7a, 0x99, 0x75, 0xcc, 0xfd, + 0xfb, 0x76, 0xa7, 0x63, 0xfb, 0xac, 0xed, 0x3a, 0x96, 0x8f, 0x4a, 0x96, 0x9f, 0xeb, 0xfa, 0x74, + 0x94, 0x80, 0x18, 0x50, 0x59, 0x7f, 0xf4, 0xc8, 0x67, 0x01, 0xaa, 0xaf, 0xd8, 0x80, 0xe1, 0x40, + 0xaf, 0xb8, 0x08, 0xa1, 0x12, 0x63, 0xfc, 0xac, 0x00, 0x13, 0x52, 0x1d, 0x94, 0xfd, 0x26, 0x6b, + 0x1f, 0x8f, 0xeb, 0x8c, 0xd7, 0x5e, 0xf1, 0xc8, 0x6b, 0xaf, 0x74, 0x84, 0xb5, 0x67, 0x40, 0x85, + 0x32, 0xd3, 0x97, 0x2b, 0xb8, 0x26, 0x34, 0xe6, 0x21, 0x84, 0x4a, 0x0c, 0xb9, 0x06, 0x63, 0xf7, + 0xcd, 0xa7, 0x76, 0xb7, 0xdf, 0x95, 0x6a, 0xc5, 0x28, 0xa4, 0x6b, 0x3e, 0xa5, 0x21, 0xdc, 0xf8, + 0x9b, 0x12, 0x97, 0xc3, 0x7d, 0xe5, 0xc9, 0x74, 0x05, 0x2f, 0x4f, 0xa1, 0xb1, 0x61, 0xcb, 0x2f, + 0x60, 0xd8, 0xd7, 0xe6, 0x20, 0x32, 0xfe, 0x72, 0x8c, 0x07, 0x55, 0xa8, 0xfd, 0x15, 0xc7, 0x3a, + 0x5d, 0x35, 0x47, 0x59, 0x35, 0xcb, 0x30, 0xbd, 0xe2, 0xec, 0x9a, 0x4e, 0x9b, 0x59, 0x94, 0xb5, + 0x5d, 0xcf, 0xb2, 0x9d, 0x1d, 0x5c, 0x3a, 0xd5, 0xc6, 0xf9, 0xe1, 0x40, 0x27, 0x4c, 0x22, 0xb7, + 0xbd, 0x10, 0x4b, 0x47, 0x19, 0xc8, 0x1d, 0xa8, 0xaf, 0x3a, 0x01, 0xf3, 0xcc, 0x76, 0x60, 0xef, + 0x31, 0x5c, 0x3d, 0xd5, 0xc6, 0xe4, 0x70, 0xa0, 0xd7, 0xed, 0x18, 0x4c, 0x55, 0x1a, 0xb2, 0x00, + 0xe3, 0x1b, 0xa6, 0x17, 0xd8, 0x6d, 0xbb, 0x67, 0x3a, 0x81, 0xaf, 0x55, 0xf1, 0x2e, 0x81, 0x99, + 0x8e, 0x9e, 0x02, 0xa7, 0x09, 0x2a, 0xf2, 0x7d, 0xa8, 0xe1, 0x9d, 0x15, 0xb3, 0x2c, 0xb5, 0x67, + 0x66, 0x59, 0xae, 0xc7, 0x21, 0x30, 0xaa, 0x7d, 0xdb, 0xe7, 0xcc, 0xf1, 0x56, 0xc0, 0xc4, 0x4b, + 0x2c, 0x91, 0x7c, 0x0f, 0xc6, 0x56, 0x1c, 0x0b, 0x85, 0xc3, 0x33, 0x85, 0x1b, 0x52, 0xf8, 0xf9, + 0x58, 0xb8, 0xdb, 0x4b, 0xc9, 0x0e, 0xc5, 0x65, 0xef, 0xb2, 0xfa, 0x2f, 0x6e, 0x97, 0x8d, 0xff, + 0x02, 0xae, 0x7b, 0x13, 0x2f, 0x72, 0xdd, 0xfb, 0x1c, 0xea, 0x8d, 0x8d, 0x7b, 0xd1, 0x86, 0xbb, + 0x08, 0xc5, 0x0d, 0x99, 0x92, 0x2a, 0x89, 0xc3, 0xa0, 0x67, 0x5b, 0x94, 0xc3, 0xc8, 0x4d, 0xa8, + 0x2e, 0x61, 0x98, 0x2a, 0x93, 0x33, 0x25, 0x91, 0x9c, 0x69, 0x23, 0x0c, 0x93, 0x33, 0x21, 0x9a, + 0xbc, 0x0d, 0x63, 0x1b, 0x9e, 0xbb, 0xe3, 0x99, 0x5d, 0x19, 0xcf, 0xd5, 0x87, 0x03, 0x7d, 0xac, + 0x27, 0x40, 0x34, 0xc4, 0x19, 0x7f, 0x90, 0x87, 0xca, 0x66, 0x60, 0x06, 0x7d, 0x9f, 0x73, 0x6c, + 0xf6, 0xdb, 0x6d, 0xe6, 0xfb, 0xf8, 0xed, 0xaa, 0xe0, 0xf0, 0x05, 0x88, 0x86, 0x38, 0x72, 0x13, + 0xca, 0x2b, 0x9e, 0xe7, 0x7a, 0x6a, 0x86, 0x8b, 0x71, 0x80, 0x9a, 0xe1, 0x42, 0x0a, 0x72, 0x17, + 0xea, 0xc2, 0x4d, 0xf8, 0x3e, 0x8f, 0xf9, 0xc4, 0x38, 0xce, 0x0d, 0x07, 0xfa, 0x74, 0x57, 0x80, + 0x14, 0x16, 0x95, 0xd2, 0xf8, 0x12, 0x53, 0x5b, 0xb8, 0x64, 0xa4, 0x92, 0x5e, 0xc7, 0x3b, 0xf0, + 0xfb, 0x50, 0x6c, 0x6c, 0xdc, 0x93, 0x3e, 0xeb, 0x6c, 0xc8, 0xaa, 0x2c, 0x95, 0x14, 0x1f, 0xa7, + 0x26, 0x97, 0xa1, 0xb4, 0xc1, 0x97, 0x4f, 0x05, 0x97, 0x07, 0xa6, 0x27, 0x7b, 0x7c, 0xfd, 0x20, + 0x14, 0xb1, 0x66, 0xb0, 0x8b, 0xee, 0x47, 0x26, 0x2f, 0x7b, 0x66, 0xb0, 0x4b, 0x11, 0xca, 0xb1, + 0x8b, 0xde, 0xce, 0x9e, 0x74, 0x34, 0x88, 0x35, 0xbd, 0x9d, 0x3d, 0x8a, 0x50, 0x32, 0x07, 0x40, + 0x59, 0xd0, 0xf7, 0x1c, 0xcc, 0xf3, 0x72, 0xcf, 0x52, 0x16, 0x0e, 0xcc, 0x43, 0xe8, 0x76, 0xdb, + 0xb5, 0x18, 0x55, 0x48, 0x8c, 0x3f, 0x8f, 0xc3, 0x98, 0x65, 0xdb, 0x7f, 0x7c, 0x6a, 0xc2, 0xe7, + 0x30, 0x21, 0x37, 0x52, 0x25, 0xd3, 0x48, 0x3a, 0x94, 0xef, 0x75, 0xcc, 0x1d, 0x1f, 0x6d, 0x58, + 0x16, 0x97, 0xfb, 0x47, 0x1c, 0x40, 0x05, 0x3c, 0x65, 0xa7, 0xea, 0xb3, 0xed, 0xf4, 0xef, 0xf1, + 0x6e, 0x7b, 0xc0, 0x82, 0x27, 0xae, 0x77, 0x6a, 0xaa, 0x6f, 0x6a, 0xaa, 0x1b, 0x30, 0xb6, 0xe9, + 0xb5, 0x31, 0xfd, 0x2a, 0xac, 0x35, 0x3e, 0x1c, 0xe8, 0x55, 0xdf, 0x6b, 0x63, 0xd6, 0x9a, 0x86, + 0x48, 0x4e, 0xb7, 0xec, 0x07, 0x48, 0x37, 0x16, 0xd3, 0x59, 0x7e, 0x20, 0xe9, 0x24, 0x52, 0xd2, + 0x6d, 0xb8, 0x5e, 0x20, 0x0d, 0x17, 0xd1, 0xf5, 0x5c, 0x2f, 0xa0, 0x21, 0x92, 0xbc, 0x0b, 0xb0, + 0xb5, 0xb4, 0xf1, 0x5d, 0xe6, 0xa1, 0xba, 0xc4, 0x5e, 0x44, 0x77, 0xbd, 0x27, 0x40, 0x54, 0x41, + 0x1b, 0x7f, 0xa5, 0xec, 0x43, 0x6e, 0xa0, 0xd3, 0x74, 0xc2, 0x11, 0xee, 0x92, 0xf3, 0x30, 0x85, + 0x31, 0xf4, 0x96, 0x67, 0x3a, 0x7e, 0xd7, 0x0e, 0x02, 0x66, 0x49, 0x5f, 0x8b, 0x91, 0x73, 0xf0, + 0x94, 0x8e, 0xe0, 0xc9, 0x2d, 0x98, 0x40, 0x18, 0x65, 0x6d, 0x66, 0xef, 0x31, 0x0b, 0xd7, 0x80, + 0x64, 0xf0, 0x9e, 0xd2, 0x24, 0xd2, 0xf8, 0xe7, 0x38, 0xa3, 0xb0, 0xc6, 0xcc, 0x3d, 0x76, 0x6a, + 0xaf, 0x23, 0xd8, 0xcb, 0xf8, 0xb3, 0x22, 0xd4, 0xf8, 0x8c, 0x44, 0xcd, 0xed, 0x38, 0x54, 0xb9, + 0x10, 0xde, 0xb0, 0xa4, 0x26, 0xcf, 0x44, 0x9a, 0x40, 0xe8, 0x88, 0x06, 0xc4, 0x6d, 0xec, 0x16, + 0x54, 0xee, 0xb3, 0x60, 0xd7, 0xb5, 0x64, 0xaa, 0x7c, 0x66, 0x38, 0xd0, 0xa7, 0xba, 0x08, 0x51, + 0x6e, 0x4d, 0x92, 0x86, 0x3c, 0x06, 0xb2, 0x6a, 0x31, 0x27, 0xb0, 0x83, 0xfd, 0xc5, 0x20, 0xf0, + 0xec, 0x56, 0x3f, 0x60, 0xbe, 0xd4, 0xdb, 0x85, 0x91, 0x0b, 0xfa, 0x26, 0x56, 0x89, 0x31, 0x3b, + 0x3e, 0x63, 0x46, 0xe4, 0xb1, 0xd8, 0xff, 0x1d, 0xe8, 0x15, 0x41, 0x43, 0x33, 0xc4, 0x92, 0x4f, + 0xa1, 0x76, 0xff, 0xde, 0xe2, 0x32, 0xdb, 0xb3, 0xdb, 0x4c, 0x66, 0xd2, 0x2e, 0x46, 0x5a, 0x0c, + 0x11, 0x91, 0x4a, 0xb0, 0x92, 0xd5, 0x7d, 0x64, 0x6e, 0x5b, 0x08, 0x57, 0x2b, 0x59, 0x11, 0xb1, + 0xf1, 0x75, 0x1e, 0xa6, 0x28, 0xf3, 0xdd, 0xbe, 0x17, 0x73, 0x92, 0x1b, 0x50, 0x52, 0xca, 0x28, + 0x18, 0xa6, 0xa7, 0x72, 0xf7, 0x88, 0x27, 0xab, 0x30, 0xb6, 0xf2, 0xb4, 0x67, 0x7b, 0xcc, 0x97, + 0xb6, 0x39, 0x2c, 0x24, 0x39, 0x2b, 0x43, 0x92, 0x31, 0x26, 0x58, 0x64, 0x0c, 0x22, 0xfe, 0x21, + 0x1f, 0x40, 0xed, 0x61, 0xcf, 0x32, 0x03, 0x66, 0x35, 0xf6, 0xe5, 0x7d, 0x15, 0xc7, 0xdf, 0x17, + 0xc0, 0xed, 0xd6, 0xbe, 0x3a, 0xfe, 0x88, 0x94, 0x5c, 0x87, 0xe2, 0xd6, 0xd6, 0x9a, 0x34, 0x15, + 0x56, 0xc8, 0x83, 0x40, 0x2d, 0xda, 0x71, 0xac, 0xf1, 0xa3, 0x02, 0x00, 0x5f, 0x11, 0x4b, 0x1e, + 0x33, 0x83, 0xe3, 0xd9, 0xd6, 0x0d, 0xa8, 0x86, 0x6a, 0x96, 0xab, 0x51, 0x0b, 0x79, 0xd3, 0xea, + 0x4f, 0x7f, 0x3b, 0xc4, 0xf3, 0x0b, 0x08, 0x75, 0x3b, 0x98, 0x5d, 0x2c, 0x86, 0xcd, 0x02, 0x1e, + 0x07, 0x50, 0x01, 0x27, 0xef, 0x42, 0x4d, 0x6e, 0x40, 0xd7, 0x93, 0x89, 0x2f, 0x11, 0xa6, 0x84, + 0x40, 0x1a, 0xe3, 0x8d, 0x7f, 0xcc, 0x0b, 0xa5, 0x2c, 0xb3, 0x0e, 0x3b, 0xb9, 0x4a, 0x31, 0x7e, + 0x98, 0x07, 0xc2, 0x85, 0x6d, 0x98, 0xbe, 0xff, 0xc4, 0xf5, 0xac, 0xa5, 0x5d, 0xd3, 0xd9, 0x39, + 0x96, 0xe9, 0x18, 0x3f, 0x2a, 0xc1, 0xd9, 0x45, 0x11, 0xb4, 0xb1, 0x1f, 0xf4, 0x99, 0x1f, 0x9c, + 0xf0, 0xf5, 0x76, 0x33, 0xb9, 0xde, 0x30, 0xe0, 0xc4, 0xf5, 0xa6, 0x06, 0x9c, 0x62, 0xe5, 0xbd, + 0x05, 0x35, 0x39, 0xe7, 0xd5, 0x65, 0xb9, 0xf2, 0xf0, 0x90, 0xb5, 0x2d, 0x1a, 0x23, 0xc8, 0x7b, + 0x30, 0x2e, 0xff, 0xe1, 0xbe, 0x36, 0x4c, 0x03, 0xe2, 0x3a, 0xf6, 0x39, 0x80, 0x26, 0xd0, 0xe4, + 0x5b, 0x50, 0xe3, 0x8b, 0x73, 0x07, 0x9b, 0x34, 0xc6, 0xe2, 0x76, 0x0a, 0x2b, 0x04, 0xaa, 0x2e, + 0x21, 0xa2, 0xe4, 0x0e, 0x5c, 0xe6, 0x7e, 0xab, 0xb1, 0x03, 0x17, 0xb9, 0x5f, 0xd5, 0x81, 0xcb, + 0x2c, 0xf0, 0x67, 0x50, 0x5f, 0x74, 0x1c, 0x37, 0x30, 0xf9, 0xa1, 0xe5, 0xcb, 0xbc, 0xcd, 0x81, + 0x9e, 0xfb, 0x3a, 0x16, 0xf9, 0x63, 0xfa, 0x4c, 0xd7, 0xad, 0x0a, 0x34, 0xfe, 0xa4, 0x00, 0x75, + 0x7e, 0x73, 0xbc, 0xe7, 0x7a, 0x4f, 0x4c, 0xef, 0x78, 0xc2, 0xe9, 0xe4, 0xa1, 0x5e, 0x3c, 0xc2, + 0x25, 0x2c, 0x3e, 0x52, 0x4b, 0xcf, 0x71, 0xa4, 0xf2, 0xf0, 0x96, 0xdf, 0xc0, 0xcb, 0x71, 0x5c, + 0x85, 0xb7, 0x6f, 0x84, 0x1a, 0xbf, 0x55, 0x00, 0xf8, 0xde, 0x9d, 0x3b, 0xaf, 0xb1, 0x82, 0x8c, + 0x3f, 0xce, 0xc3, 0xa4, 0xcc, 0xb7, 0x28, 0x6d, 0x52, 0x63, 0x61, 0x72, 0x2b, 0x1f, 0xe7, 0x91, + 0x64, 0x52, 0x8b, 0x86, 0x38, 0x32, 0x0f, 0xd5, 0x95, 0xa7, 0x76, 0x80, 0x21, 0xa7, 0x48, 0x0c, + 0x89, 0xdc, 0xa8, 0x84, 0xa9, 0x2d, 0x25, 0x21, 0x1d, 0x79, 0x2f, 0xcc, 0x24, 0x15, 0xe3, 0x4d, + 0xc5, 0x19, 0x56, 0x32, 0xb3, 0x49, 0xc6, 0xdf, 0x97, 0xa0, 0xb4, 0xf2, 0x94, 0xb5, 0x4f, 0xb8, + 0x69, 0x94, 0x9b, 0x75, 0xe9, 0x88, 0x37, 0xeb, 0x17, 0xc9, 0x66, 0x7f, 0x14, 0xdb, 0xb3, 0x92, + 0xfc, 0x7c, 0xca, 0xf2, 0xe9, 0xcf, 0x87, 0x96, 0x3e, 0x79, 0xc5, 0x90, 0x1f, 0x17, 0xa1, 0xb8, + 0xb9, 0xb4, 0x71, 0xba, 0x6e, 0x8e, 0x75, 0xdd, 0x1c, 0x9e, 0x7a, 0x34, 0xa0, 0xb2, 0x28, 0x74, + 0x54, 0x8d, 0x2b, 0xa5, 0x26, 0x42, 0xa8, 0xc4, 0x18, 0x5f, 0x14, 0xa0, 0xb6, 0xd9, 0x6f, 0xf9, + 0xfb, 0x7e, 0xc0, 0xba, 0x27, 0xdc, 0x9a, 0x97, 0x65, 0x6c, 0x53, 0x8a, 0xb5, 0x81, 0x5d, 0xab, + 0x22, 0xa2, 0xb9, 0x1e, 0x7a, 0x46, 0xe5, 0xf6, 0x1c, 0x79, 0xc6, 0xd0, 0x1f, 0xfe, 0x5d, 0x01, + 0xa6, 0x96, 0x3a, 0x36, 0x73, 0x82, 0x65, 0xdb, 0x97, 0x77, 0xeb, 0x13, 0xae, 0x95, 0xa3, 0x25, + 0x0d, 0xbe, 0x41, 0xb5, 0xdd, 0xf8, 0xed, 0x02, 0xd4, 0x17, 0xfb, 0xc1, 0xee, 0x62, 0x80, 0x87, + 0xcb, 0x6b, 0x79, 0xcc, 0xff, 0x2c, 0x0f, 0x1a, 0x65, 0x3e, 0x0b, 0xc2, 0x60, 0x65, 0xcb, 0x7d, + 0xcc, 0x9c, 0x97, 0x10, 0x25, 0xa8, 0xb7, 0xfd, 0xc2, 0x0b, 0xde, 0xf6, 0x43, 0xa5, 0x16, 0x9f, + 0x33, 0xea, 0xe1, 0x71, 0x24, 0x0f, 0x02, 0x5e, 0x91, 0x69, 0xbc, 0x84, 0x70, 0xf8, 0x38, 0xa7, + 0xf1, 0x2f, 0x79, 0x98, 0xd9, 0xf2, 0xf8, 0x89, 0x6e, 0xc9, 0x83, 0xfd, 0x84, 0xdb, 0x65, 0x74, + 0x42, 0x27, 0xdc, 0x42, 0xff, 0x96, 0x87, 0x8b, 0xc9, 0x09, 0xbd, 0x0a, 0x5e, 0xe0, 0x5f, 0xf3, + 0x70, 0xee, 0x3b, 0x76, 0xb0, 0xdb, 0x6f, 0x45, 0x19, 0xa6, 0x57, 0x6f, 0x46, 0x27, 0x7c, 0xe5, + 0xfd, 0x24, 0x0f, 0x67, 0xd7, 0x57, 0x97, 0x97, 0x5e, 0x15, 0x0b, 0x8d, 0xcc, 0xe7, 0x15, 0xb0, + 0xcf, 0xe6, 0xe2, 0xfd, 0xb5, 0x57, 0xc9, 0x3e, 0x89, 0xf9, 0x9c, 0x70, 0xfb, 0xfc, 0x6e, 0x05, + 0xea, 0x3c, 0xc0, 0x95, 0x49, 0xca, 0xd7, 0xfa, 0xca, 0x3f, 0x0f, 0x75, 0xa9, 0x06, 0x8c, 0x2d, + 0xcb, 0xf1, 0x5b, 0x40, 0x4f, 0x80, 0xb7, 0x31, 0xc6, 0x54, 0x89, 0x78, 0xe8, 0xf5, 0x5d, 0xe6, + 0xb5, 0xd4, 0xf6, 0x8a, 0x3d, 0xe6, 0xb5, 0x28, 0x42, 0xc9, 0x5a, 0x5c, 0x88, 0x5a, 0xdc, 0x58, + 0xc5, 0x77, 0x3f, 0x32, 0x64, 0xc5, 0x87, 0x4c, 0x9e, 0xc4, 0x6d, 0x9b, 0x3d, 0x5b, 0xbc, 0x18, + 0x52, 0x1f, 0x0c, 0xa5, 0x39, 0xc9, 0x03, 0x98, 0x0e, 0x61, 0xf1, 0x03, 0x9e, 0x6a, 0x86, 0xb8, + 0xac, 0xa7, 0x3b, 0xa3, 0xac, 0xe4, 0x23, 0x18, 0x0f, 0x81, 0x9f, 0xd8, 0xf8, 0xbc, 0x80, 0x8b, + 0x7a, 0x63, 0x38, 0xd0, 0x2f, 0x44, 0xa2, 0x1e, 0xdb, 0x89, 0x6e, 0xb3, 0x04, 0x83, 0x2a, 0x00, + 0xe3, 0x4f, 0xc8, 0x10, 0x90, 0x2a, 0xb2, 0x25, 0x18, 0xc8, 0xb7, 0x50, 0x40, 0xcf, 0x75, 0x7c, + 0x86, 0xc9, 0xbe, 0x3a, 0xf6, 0x1e, 0x60, 0xc9, 0xcb, 0x93, 0x70, 0xd1, 0x61, 0x92, 0x20, 0x23, + 0xeb, 0x00, 0x71, 0x52, 0x46, 0xb6, 0xde, 0x3d, 0x77, 0xba, 0x48, 0x11, 0x61, 0xfc, 0x7f, 0x01, + 0x26, 0x17, 0x7b, 0xbd, 0xd3, 0x57, 0x3a, 0x2f, 0xab, 0xb1, 0x61, 0x0e, 0x60, 0xa3, 0xdf, 0xea, + 0xd8, 0x6d, 0xa5, 0x4b, 0x05, 0xdb, 0x86, 0x7a, 0x08, 0x15, 0x8d, 0x2a, 0x0a, 0x89, 0xf1, 0x45, + 0x51, 0xb5, 0x00, 0xbe, 0x4e, 0x38, 0xb5, 0x40, 0xf9, 0x48, 0xae, 0xf0, 0x8c, 0xaa, 0x4c, 0xd9, + 0xc4, 0x27, 0x2b, 0x47, 0x61, 0x07, 0x6d, 0x9b, 0xa3, 0xb6, 0x6d, 0x8b, 0xa6, 0x68, 0x8d, 0xff, + 0xc9, 0xc3, 0x74, 0x6c, 0x8e, 0x97, 0x71, 0x38, 0xcc, 0x01, 0x88, 0x8c, 0x41, 0x94, 0xd5, 0x9f, + 0x10, 0x2b, 0xc2, 0x47, 0xa8, 0x6c, 0x24, 0x8b, 0x49, 0xa2, 0x14, 0x5f, 0x31, 0x33, 0xc5, 0x77, + 0x13, 0xaa, 0xd4, 0x7c, 0xf2, 0x69, 0x9f, 0x79, 0xfb, 0x32, 0xed, 0x85, 0x79, 0x2d, 0xcf, 0x7c, + 0xb2, 0xfd, 0x03, 0x0e, 0xa4, 0x11, 0x9a, 0x18, 0x51, 0xf3, 0x83, 0x92, 0xc9, 0x11, 0xcd, 0x0f, + 0x61, 0xcb, 0x83, 0xf1, 0x47, 0x05, 0x98, 0x5a, 0x36, 0x03, 0xb3, 0x65, 0xfa, 0x71, 0xcb, 0xc0, + 0x87, 0x30, 0x19, 0xc2, 0xb8, 0x79, 0xec, 0xe8, 0x01, 0xf4, 0x99, 0xe1, 0x40, 0x07, 0xab, 0xb5, + 0xed, 0x0b, 0x28, 0x4d, 0x93, 0x91, 0x5f, 0x89, 0xa5, 0x45, 0x0f, 0x63, 0x0b, 0xf1, 0x26, 0xb0, + 0x5a, 0xdb, 0x3d, 0x09, 0xa6, 0x23, 0x84, 0xe4, 0x16, 0xd4, 0x43, 0xd8, 0x43, 0xba, 0x2a, 0xe7, + 0x8f, 0x83, 0xb6, 0x5a, 0xdb, 0x7d, 0xcf, 0xa6, 0x2a, 0x9a, 0xcc, 0xc1, 0x78, 0xf8, 0xaf, 0x92, + 0x03, 0xc4, 0xba, 0x8a, 0xd5, 0x12, 0x8f, 0xd7, 0x13, 0x04, 0x2a, 0x03, 0xee, 0x90, 0x72, 0x82, + 0x01, 0x5f, 0x9f, 0x27, 0x08, 0x8c, 0x9f, 0x14, 0x61, 0x26, 0x9e, 0xe0, 0xa9, 0x87, 0x7c, 0x39, + 0xfb, 0x33, 0xce, 0xb6, 0x55, 0x9e, 0xa3, 0xea, 0xd8, 0x80, 0x6a, 0x68, 0x0a, 0x59, 0x26, 0x89, + 0xae, 0x8a, 0xe9, 0xe5, 0x9b, 0x56, 0x7d, 0x88, 0x37, 0xbe, 0x2c, 0x8c, 0xd8, 0x53, 0x6c, 0x94, + 0x13, 0x69, 0x4f, 0x55, 0x23, 0xa5, 0x17, 0xd3, 0x08, 0x99, 0x87, 0x89, 0xf0, 0x6f, 0xe1, 0x51, + 0xca, 0x4a, 0x5b, 0x65, 0x4b, 0x3a, 0x94, 0x24, 0x89, 0xf1, 0x7b, 0x05, 0x20, 0x29, 0x2d, 0x9e, + 0xd8, 0xc7, 0x31, 0x2f, 0x41, 0x87, 0xc6, 0x5f, 0xe7, 0x61, 0x7a, 0xa4, 0x5f, 0x8b, 0xbc, 0x0f, + 0x20, 0x20, 0x4a, 0xef, 0x15, 0xf6, 0x5c, 0xc4, 0x3d, 0x5c, 0xc2, 0x47, 0x29, 0x64, 0x64, 0x0e, + 0xaa, 0xe2, 0xbf, 0xe8, 0x57, 0x23, 0xd2, 0x2c, 0xfd, 0xbe, 0x6d, 0xd1, 0x88, 0x28, 0xfe, 0x0a, + 0xfe, 0xec, 0x48, 0x31, 0x93, 0x25, 0xd8, 0xef, 0x45, 0x5f, 0xe1, 0x64, 0xc6, 0x97, 0x79, 0x18, + 0x8f, 0x06, 0xbc, 0x68, 0x1d, 0x97, 0xe9, 0x2a, 0xb2, 0xf5, 0xad, 0xf8, 0xac, 0xd6, 0xb7, 0x94, + 0x43, 0x90, 0xbd, 0x6e, 0xff, 0x94, 0x87, 0xc9, 0x88, 0xf6, 0x18, 0xdb, 0x9e, 0x8e, 0x3c, 0x91, + 0x1f, 0x5f, 0x80, 0xf2, 0xba, 0xc3, 0xd6, 0x1f, 0x91, 0x3b, 0x4a, 0x8f, 0xa5, 0x1c, 0xff, 0xb4, + 0x3a, 0x0e, 0x44, 0x34, 0x73, 0x54, 0xe9, 0xc4, 0x5c, 0x50, 0x7b, 0xe1, 0xe4, 0xd8, 0x89, 0xca, + 0x23, 0x30, 0xcd, 0x1c, 0x55, 0x7b, 0xe6, 0x16, 0xd4, 0x66, 0x31, 0x39, 0xee, 0x04, 0x97, 0xc0, + 0x84, 0x5c, 0x52, 0xbb, 0x6b, 0x59, 0xbd, 0x59, 0xe9, 0x17, 0x65, 0xa3, 0x14, 0xcd, 0x1c, 0xcd, + 0xee, 0xe9, 0x4a, 0xfc, 0x36, 0x80, 0x3c, 0x52, 0x66, 0x52, 0x1b, 0x18, 0x71, 0xcd, 0x1c, 0x4d, + 0xfe, 0x8e, 0xc0, 0xdd, 0xc4, 0xc3, 0x6e, 0x79, 0x8e, 0x9c, 0x4d, 0xb1, 0x72, 0x54, 0x33, 0x47, + 0x53, 0x4f, 0xc0, 0x13, 0xaf, 0x8c, 0xe5, 0x49, 0x92, 0xfe, 0x28, 0xe2, 0x94, 0x8f, 0x8a, 0x17, + 0xc9, 0xbf, 0x96, 0x7a, 0x92, 0x2b, 0x4b, 0xea, 0xe7, 0x52, 0xcc, 0x02, 0xd9, 0xcc, 0xd1, 0xd4, + 0x03, 0xde, 0xd9, 0xf0, 0xf1, 0xa9, 0xec, 0x4a, 0x3a, 0xa3, 0x64, 0x3a, 0xec, 0xcf, 0xb9, 0x96, + 0xc2, 0xc7, 0xa9, 0x0b, 0xea, 0xa3, 0x43, 0xf9, 0x3c, 0x8c, 0xa4, 0xbe, 0xb2, 0xe2, 0x58, 0xdc, + 0x3a, 0x8a, 0xff, 0xfd, 0x38, 0xfd, 0xd6, 0x47, 0x3e, 0xfa, 0x3a, 0x9f, 0xe2, 0x94, 0xd8, 0x66, + 0x8e, 0xa6, 0xdf, 0x06, 0xdd, 0x4d, 0xbc, 0x33, 0x91, 0xd1, 0x65, 0x5a, 0xab, 0x1c, 0xa5, 0x68, + 0x15, 0x5f, 0xa4, 0x7c, 0x9c, 0x7e, 0xf8, 0xa0, 0x4d, 0x64, 0x7e, 0x5a, 0x62, 0x95, 0x4f, 0x87, + 0x0f, 0x25, 0xee, 0x26, 0x5a, 0xeb, 0xb5, 0x33, 0xd9, 0x9f, 0x36, 0x03, 0x53, 0xfd, 0xb4, 0x68, + 0xc2, 0x4f, 0x34, 0x79, 0x6b, 0x93, 0x99, 0x06, 0x45, 0x9c, 0x62, 0x50, 0xd1, 0x10, 0x7e, 0x37, + 0xd1, 0xcb, 0xa5, 0x4d, 0x25, 0x3f, 0xaa, 0xa0, 0xf8, 0x47, 0xd5, 0xae, 0xaf, 0x05, 0xb5, 0xc5, + 0x49, 0x9b, 0x4e, 0x1a, 0x28, 0xc6, 0x70, 0x03, 0x29, 0xad, 0x50, 0x3a, 0xb6, 0x4f, 0x68, 0x04, + 0xc9, 0xeb, 0xd1, 0x08, 0x97, 0x36, 0x9a, 0x39, 0x8a, 0x8d, 0x15, 0x86, 0x68, 0xcc, 0xd1, 0xce, + 0x22, 0xc5, 0x78, 0x48, 0xc1, 0x61, 0xcd, 0x1c, 0x15, 0x4d, 0x3b, 0x77, 0x94, 0xda, 0xbd, 0x36, + 0x93, 0x74, 0x11, 0x11, 0x82, 0xbb, 0x88, 0xb8, 0xc2, 0x7f, 0x6f, 0xb4, 0xbe, 0xad, 0x9d, 0x4b, + 0x9e, 0x75, 0x69, 0x7c, 0x33, 0x47, 0x47, 0x6b, 0xe2, 0x77, 0x13, 0x25, 0x5f, 0xed, 0x7c, 0x52, + 0x5d, 0x0a, 0x8a, 0xab, 0x4b, 0x2d, 0x0e, 0xaf, 0x67, 0x36, 0x52, 0x6a, 0x17, 0x50, 0xc0, 0x1b, + 0x91, 0x80, 0x51, 0x92, 0x66, 0x8e, 0x66, 0xb6, 0x60, 0x7e, 0x76, 0x70, 0xe1, 0x55, 0xd3, 0x50, + 0xea, 0x55, 0x65, 0x73, 0x65, 0xd2, 0x35, 0x73, 0xf4, 0xe0, 0xe2, 0xed, 0x82, 0x5a, 0x03, 0xd5, + 0x2e, 0x26, 0xed, 0x1b, 0x63, 0xb8, 0x7d, 0x95, 0x5a, 0xe9, 0x82, 0x5a, 0x72, 0xd4, 0x2e, 0x8d, + 0x72, 0xc5, 0x4e, 0x55, 0x29, 0x4d, 0xd2, 0xec, 0x0a, 0x9f, 0xf6, 0x06, 0xf2, 0x5f, 0x0e, 0xf9, + 0xb3, 0x68, 0x9a, 0x39, 0x9a, 0x5d, 0x1d, 0xa4, 0xd9, 0x45, 0x36, 0xed, 0xf2, 0x61, 0x32, 0xa3, + 0xd1, 0x65, 0x17, 0xe8, 0xcc, 0x43, 0xea, 0x5c, 0xda, 0x9b, 0xc9, 0x44, 0xd4, 0x81, 0x84, 0xcd, + 0x1c, 0x3d, 0xa4, 0x5a, 0xf6, 0xf0, 0x80, 0xa2, 0x93, 0x76, 0x25, 0xd9, 0xbb, 0x94, 0x49, 0xd4, + 0xcc, 0xd1, 0x03, 0x4a, 0x56, 0x0f, 0x0f, 0xa8, 0xfc, 0x68, 0xfa, 0xa1, 0x62, 0x23, 0x7d, 0x1c, + 0x50, 0x37, 0x5a, 0xcf, 0x2c, 0xbf, 0x68, 0x57, 0x93, 0xab, 0x3a, 0x83, 0x84, 0xaf, 0xea, 0xac, + 0xc2, 0xcd, 0x7a, 0x66, 0xfd, 0x43, 0xbb, 0x76, 0x88, 0xc0, 0x68, 0x8c, 0x99, 0x95, 0x93, 0xf5, + 0xcc, 0x02, 0x84, 0x66, 0x24, 0x05, 0x66, 0x90, 0x70, 0x81, 0x59, 0xa5, 0x8b, 0xf5, 0xcc, 0x0a, + 0x80, 0x76, 0xfd, 0x10, 0x81, 0xf1, 0x08, 0xb3, 0x6a, 0x07, 0x77, 0x13, 0x29, 0x78, 0xed, 0xad, + 0xa4, 0x4b, 0x51, 0x50, 0xdc, 0xa5, 0xa8, 0xc9, 0xfa, 0xa5, 0x91, 0xac, 0xa5, 0xf6, 0x76, 0x32, + 0x00, 0x48, 0xa1, 0x9b, 0x39, 0x3a, 0x92, 0xe7, 0x5c, 0x1a, 0x49, 0xbc, 0x69, 0x37, 0x0e, 0x12, + 0x82, 0xe8, 0xa4, 0x10, 0x91, 0xaa, 0x5b, 0xcd, 0x48, 0x17, 0x69, 0xef, 0x24, 0x6f, 0x82, 0x23, + 0x04, 0xcd, 0x1c, 0xcd, 0x48, 0x32, 0xd1, 0xec, 0x6c, 0x83, 0x36, 0x9b, 0xdc, 0xb6, 0x59, 0x34, + 0x7c, 0xdb, 0x66, 0x66, 0x2a, 0xd6, 0xb2, 0x62, 0x35, 0xed, 0x66, 0xf2, 0xce, 0x36, 0x4a, 0xc1, + 0xef, 0x6c, 0x19, 0x31, 0x1e, 0xcd, 0x8e, 0x9f, 0xb5, 0x5f, 0x3a, 0x74, 0x84, 0x48, 0x93, 0x31, + 0x42, 0x11, 0x7b, 0xc7, 0xd7, 0xaa, 0x87, 0xbd, 0x8e, 0x6b, 0x5a, 0xda, 0xbb, 0x99, 0xd7, 0x2a, + 0x81, 0x54, 0xae, 0x55, 0x02, 0xc0, 0x2f, 0x00, 0x6a, 0x2c, 0xa3, 0xdd, 0x4a, 0x5e, 0x00, 0x54, + 0x1c, 0xbf, 0x00, 0x24, 0xe2, 0x9e, 0xa5, 0x91, 0x08, 0x42, 0x7b, 0x2f, 0xb9, 0x00, 0x52, 0x68, + 0xbe, 0x00, 0x52, 0xa0, 0xc6, 0x18, 0x94, 0x57, 0x38, 0xb1, 0xf1, 0xa7, 0x79, 0x18, 0xdf, 0x0c, + 0x3c, 0x66, 0x76, 0x65, 0xca, 0xe2, 0x12, 0x54, 0xc5, 0x20, 0xc3, 0x5f, 0x46, 0xa4, 0xd1, 0xff, + 0xe4, 0x06, 0x9c, 0x59, 0x33, 0xfd, 0x00, 0x39, 0x95, 0x9f, 0xa9, 0xa1, 0x29, 0x28, 0x59, 0x13, + 0x74, 0x82, 0x0f, 0x7f, 0x2e, 0xa0, 0xf8, 0xcc, 0xb7, 0x39, 0x55, 0x1e, 0x66, 0xe0, 0x83, 0x9c, + 0x14, 0xaf, 0x31, 0xcc, 0xc3, 0x88, 0xfa, 0x5e, 0x3c, 0x62, 0x5a, 0x1f, 0xf9, 0x35, 0x48, 0x19, + 0x80, 0x7c, 0xc3, 0x28, 0x7c, 0xe4, 0xb7, 0x24, 0xaf, 0x43, 0xf1, 0xe1, 0xea, 0xb2, 0xfa, 0xfc, + 0x27, 0xf9, 0x03, 0x99, 0x1c, 0x4b, 0xde, 0x89, 0x6e, 0xc7, 0x0f, 0xe9, 0x9a, 0xcc, 0x57, 0xe0, + 0xf3, 0xfe, 0xbe, 0xd7, 0xa1, 0x0a, 0xaa, 0x31, 0xf5, 0xd5, 0x7f, 0x5d, 0xc9, 0x7d, 0xf5, 0xf5, + 0x95, 0xfc, 0x4f, 0xbf, 0xbe, 0x92, 0xff, 0xcf, 0xaf, 0xaf, 0xe4, 0x5b, 0x15, 0x54, 0xd6, 0xfb, + 0x3f, 0x0f, 0x00, 0x00, 0xff, 0xff, 0xbc, 0x14, 0x76, 0xac, 0x3d, 0x54, 0x00, 0x00, } diff --git a/api/types/events/events.proto b/api/types/events/events.proto index c3e3cff37e0c2..11b586a3c94c7 100644 --- a/api/types/events/events.proto +++ b/api/types/events/events.proto @@ -522,6 +522,9 @@ message UserLogin { // IdentityAttributes is a map of user attributes received from identity provider google.protobuf.Struct IdentityAttributes = 5 [ (gogoproto.jsontag) = "attributes,omitempty", (gogoproto.casttype) = "Struct" ]; + + // MFA is the MFA device used during the login. + MFADeviceMetadata MFADevice = 6 [ (gogoproto.jsontag) = "mfa_device,omitempty" ]; } // ResourceMetadata is a common resource metadata @@ -1176,6 +1179,42 @@ message DatabaseSessionEnd { [ (gogoproto.nullable) = false, (gogoproto.embed) = true, (gogoproto.jsontag) = "" ]; } +// MFADeviceMetadata is a common MFA device metadata. +message MFADeviceMetadata { + // Name is the user-specified name of the MFA device. + string DeviceName = 1 [ (gogoproto.jsontag) = "mfa_device_name" ]; + // ID is the UUID of the MFA device generated by Teleport. + string DeviceID = 2 [ (gogoproto.jsontag) = "mfa_device_uuid" ]; + // Type is the type of this MFA device. + string DeviceType = 3 [ (gogoproto.jsontag) = "mfa_device_type" ]; +} + +// MFADeviceAdd is emitted when a user adds an MFA device. +message MFADeviceAdd { + // Metadata is a common event metadata. + Metadata Metadata = 1 + [ (gogoproto.nullable) = false, (gogoproto.embed) = true, (gogoproto.jsontag) = "" ]; + // User is a common user event metadata. + UserMetadata User = 2 + [ (gogoproto.nullable) = false, (gogoproto.embed) = true, (gogoproto.jsontag) = "" ]; + // Device is the new MFA device added by the user. + MFADeviceMetadata Device = 3 + [ (gogoproto.nullable) = false, (gogoproto.embed) = true, (gogoproto.jsontag) = "" ]; +} + +// MFADeviceDelete is emitted when a user deletes an MFA device. +message MFADeviceDelete { + // Metadata is a common event metadata. + Metadata Metadata = 1 + [ (gogoproto.nullable) = false, (gogoproto.embed) = true, (gogoproto.jsontag) = "" ]; + // User is a common user event metadata. + UserMetadata User = 2 + [ (gogoproto.nullable) = false, (gogoproto.embed) = true, (gogoproto.jsontag) = "" ]; + // Device is the MFA device deleted by the user. + MFADeviceMetadata Device = 3 + [ (gogoproto.nullable) = false, (gogoproto.embed) = true, (gogoproto.jsontag) = "" ]; +} + // OneOf is a union of one of audit events submitted to the auth service message OneOf { // Event is one of the audit events @@ -1223,6 +1262,8 @@ message OneOf { events.DatabaseSessionEnd DatabaseSessionEnd = 41; events.DatabaseSessionQuery DatabaseSessionQuery = 42; events.SessionUpload SessionUpload = 43; + events.MFADeviceAdd MFADeviceAdd = 44; + events.MFADeviceDelete MFADeviceDelete = 45; } } diff --git a/api/types/events/oneof.go b/api/types/events/oneof.go index 31d0bd2b8013e..09758208b2e46 100644 --- a/api/types/events/oneof.go +++ b/api/types/events/oneof.go @@ -205,6 +205,14 @@ func ToOneOf(in AuditEvent) (*OneOf, error) { out.Event = &OneOf_SessionUpload{ SessionUpload: e, } + case *MFADeviceAdd: + out.Event = &OneOf_MFADeviceAdd{ + MFADeviceAdd: e, + } + case *MFADeviceDelete: + out.Event = &OneOf_MFADeviceDelete{ + MFADeviceDelete: e, + } default: return nil, trace.BadParameter("event type %T is not supported", in) } @@ -299,6 +307,10 @@ func FromOneOf(in OneOf) (AuditEvent, error) { return e, nil } else if e := in.GetSessionUpload(); e != nil { return e, nil + } else if e := in.GetMFADeviceAdd(); e != nil { + return e, nil + } else if e := in.GetMFADeviceDelete(); e != nil { + return e, nil } else { if in.Event == nil { return nil, trace.BadParameter("failed to parse event, session record is corrupted") diff --git a/lib/auth/auth.go b/lib/auth/auth.go index 812bd2d1dc75c..d0118124fe5a5 100644 --- a/lib/auth/auth.go +++ b/lib/auth/auth.go @@ -903,7 +903,7 @@ func (a *Server) GetMFAAuthenticateChallenge(user string, password []byte) (*MFA ctx := context.TODO() err := a.WithUserLock(user, func() error { - return a.CheckPasswordWOToken(user, password) + return a.checkPasswordWOToken(user, password) }) if err != nil { return nil, trace.Wrap(err) @@ -933,15 +933,15 @@ func (a *Server) GetMFAAuthenticateChallenge(user string, password []byte) (*MFA return chal, nil } -func (a *Server) CheckU2FSignResponse(ctx context.Context, user string, response *u2f.AuthenticateChallengeResponse) error { +func (a *Server) CheckU2FSignResponse(ctx context.Context, user string, response *u2f.AuthenticateChallengeResponse) (*types.MFADevice, error) { // before trying to register a user, see U2F is actually setup on the backend cap, err := a.GetAuthPreference() if err != nil { - return trace.Wrap(err) + return nil, trace.Wrap(err) } _, err = cap.GetU2F() if err != nil { - return trace.Wrap(err) + return nil, trace.Wrap(err) } return a.checkU2F(ctx, user, *response, a.Identity) @@ -2060,24 +2060,26 @@ func (a *Server) mfaAuthChallenge(ctx context.Context, user string, u2fStorage u } func (a *Server) validateMFAAuthResponse(ctx context.Context, user string, resp *proto.MFAAuthenticateResponse, u2fStorage u2f.AuthenticationStorage) error { + var err error switch res := resp.Response.(type) { case *proto.MFAAuthenticateResponse_TOTP: - return a.checkOTP(user, res.TOTP.Code) + _, err = a.checkOTP(user, res.TOTP.Code) case *proto.MFAAuthenticateResponse_U2F: - return a.checkU2F(ctx, user, u2f.AuthenticateChallengeResponse{ + _, err = a.checkU2F(ctx, user, u2f.AuthenticateChallengeResponse{ KeyHandle: res.U2F.KeyHandle, ClientData: res.U2F.ClientData, SignatureData: res.U2F.Signature, }, u2fStorage) default: - return trace.BadParameter("unknown or missing MFAAuthenticateResponse type %T", resp.Response) + err = trace.BadParameter("unknown or missing MFAAuthenticateResponse type %T", resp.Response) } + return trace.Wrap(err) } -func (a *Server) checkU2F(ctx context.Context, user string, res u2f.AuthenticateChallengeResponse, u2fStorage u2f.AuthenticationStorage) error { +func (a *Server) checkU2F(ctx context.Context, user string, res u2f.AuthenticateChallengeResponse, u2fStorage u2f.AuthenticationStorage) (*types.MFADevice, error) { devs, err := a.GetMFADevices(ctx, user) if err != nil { - return trace.Wrap(err) + return nil, trace.Wrap(err) } for _, dev := range devs { u2fDev := dev.GetU2F() @@ -2098,11 +2100,11 @@ func (a *Server) checkU2F(ctx context.Context, user string, res u2f.Authenticate Clock: a.clock, }); err != nil { // Since key handles are unique, no need to check other devices. - return trace.AccessDenied("U2F response validation failed for device %q: %v", dev.GetName(), err) + return nil, trace.AccessDenied("U2F response validation failed for device %q: %v", dev.GetName(), err) } - return nil + return dev, nil } - return trace.AccessDenied("U2F response validation failed: no device matches the response") + return nil, trace.AccessDenied("U2F response validation failed: no device matches the response") } // WithClock is a functional server option that sets the server's clock diff --git a/lib/auth/auth_with_roles.go b/lib/auth/auth_with_roles.go index 35f5dafb7e707..a6031a5c2719e 100644 --- a/lib/auth/auth_with_roles.go +++ b/lib/auth/auth_with_roles.go @@ -778,7 +778,8 @@ func (a *ServerWithRoles) CheckPassword(user string, password []byte, otpToken s if err := a.currentUserAction(user); err != nil { return trace.Wrap(err) } - return a.authServer.CheckPassword(user, password, otpToken) + _, err := a.authServer.checkPassword(user, password, otpToken) + return trace.Wrap(err) } func (a *ServerWithRoles) PreAuthenticatedSignIn(user string) (services.WebSession, error) { diff --git a/lib/auth/grpcserver.go b/lib/auth/grpcserver.go index 62c3b2ca34c89..82db5d5e43db3 100644 --- a/lib/auth/grpcserver.go +++ b/lib/auth/grpcserver.go @@ -23,10 +23,10 @@ import ( "net" "time" - "github.com/golang/protobuf/ptypes/empty" "github.com/gravitational/teleport" "github.com/gravitational/teleport/api/client" "github.com/gravitational/teleport/api/client/proto" + "github.com/gravitational/teleport/api/constants" "github.com/gravitational/teleport/api/types" apievents "github.com/gravitational/teleport/api/types/events" "github.com/gravitational/teleport/lib/auth/u2f" @@ -36,6 +36,8 @@ import ( "github.com/gravitational/teleport/lib/services" "github.com/gravitational/teleport/lib/session" "github.com/gravitational/teleport/lib/utils" + + "github.com/golang/protobuf/ptypes/empty" "github.com/gravitational/trace" "github.com/gravitational/trace/trail" "github.com/jonboulle/clockwork" @@ -1356,6 +1358,24 @@ func (g *GRPCServer) AddMFADevice(stream proto.AuthService_AddMFADeviceServer) e return trail.ToGRPC(err) } + clusterName, err := actx.GetClusterName() + if err != nil { + return trail.ToGRPC(err) + } + if err := g.Emitter.EmitAuditEvent(g.Context, &apievents.MFADeviceAdd{ + Metadata: apievents.Metadata{ + Type: events.MFADeviceAddEvent, + Code: events.MFADeviceAddEventCode, + ClusterName: clusterName.GetClusterName(), + }, + UserMetadata: apievents.UserMetadata{ + User: actx.Identity.GetIdentity().Username, + }, + MFADeviceMetadata: mfaDeviceEventMetadata(dev), + }); err != nil { + return trail.ToGRPC(err) + } + // 6. send Ack if err := stream.Send(&proto.AddMFADeviceResponse{ Response: &proto.AddMFADeviceResponse_Ack{Ack: &proto.AddMFADeviceResponseAck{Device: dev}}, @@ -1576,6 +1596,25 @@ func (g *GRPCServer) DeleteMFADevice(stream proto.AuthService_DeleteMFADeviceSer if err := auth.DeleteMFADevice(ctx, user, d.Id); err != nil { return trail.ToGRPC(err) } + + clusterName, err := actx.GetClusterName() + if err != nil { + return trail.ToGRPC(err) + } + if err := g.Emitter.EmitAuditEvent(g.Context, &apievents.MFADeviceDelete{ + Metadata: apievents.Metadata{ + Type: events.MFADeviceDeleteEvent, + Code: events.MFADeviceDeleteEventCode, + ClusterName: clusterName.GetClusterName(), + }, + UserMetadata: apievents.UserMetadata{ + User: actx.Identity.GetIdentity().Username, + }, + MFADeviceMetadata: mfaDeviceEventMetadata(d), + }); err != nil { + return trail.ToGRPC(err) + } + // 4. send Ack if err := stream.Send(&proto.DeleteMFADeviceResponse{ Response: &proto.DeleteMFADeviceResponse_Ack{Ack: &proto.DeleteMFADeviceResponseAck{}}, @@ -1621,6 +1660,23 @@ func deleteMFADeviceAuthChallenge(gctx *grpcContext, stream proto.AuthService_De return nil } +func mfaDeviceEventMetadata(d *types.MFADevice) apievents.MFADeviceMetadata { + m := apievents.MFADeviceMetadata{ + DeviceName: d.Metadata.Name, + DeviceID: d.Id, + } + switch d.Device.(type) { + case *types.MFADevice_Totp: + m.DeviceType = string(constants.SecondFactorOTP) + case *types.MFADevice_U2F: + m.DeviceType = string(constants.SecondFactorU2F) + default: + m.DeviceType = "unknown" + log.Warningf("Unknown MFA device type %T when generating audit event metadata", d.Device) + } + return m +} + func (g *GRPCServer) GetMFADevices(ctx context.Context, req *proto.GetMFADevicesRequest) (*proto.GetMFADevicesResponse, error) { actx, err := g.authenticate(ctx) if err != nil { diff --git a/lib/auth/helpers.go b/lib/auth/helpers.go index deedaf32153a1..aa5d813a55907 100644 --- a/lib/auth/helpers.go +++ b/lib/auth/helpers.go @@ -372,6 +372,7 @@ func (a *TestAuthServer) NewTestTLSServer() (*TestTLSServer, error) { Authorizer: a.Authorizer, SessionService: a.SessionServer, AuditLog: a.AuditLog, + Emitter: a.AuthServer.emitter, } srv, err := NewTestTLSServer(TestTLSServerConfig{ APIConfig: apiConfig, diff --git a/lib/auth/methods.go b/lib/auth/methods.go index e6e07bc9f4efc..ecf6a581d63aa 100644 --- a/lib/auth/methods.go +++ b/lib/auth/methods.go @@ -85,7 +85,7 @@ type SessionCreds struct { // AuthenticateUser authenticates user based on the request type func (s *Server) AuthenticateUser(req AuthenticateUserRequest) error { - err := s.authenticateUser(context.TODO(), req) + mfaDev, err := s.authenticateUser(context.TODO(), req) event := &events.UserLogin{ Metadata: events.Metadata{ Type: events.UserLoginEvent, @@ -96,6 +96,10 @@ func (s *Server) AuthenticateUser(req AuthenticateUserRequest) error { }, Method: events.LoginMethodLocal, } + if mfaDev != nil { + m := mfaDeviceEventMetadata(mfaDev) + event.MFADevice = &m + } if err != nil { event.Code = events.UserLocalLoginFailureCode event.Status.Success = false @@ -110,41 +114,56 @@ func (s *Server) AuthenticateUser(req AuthenticateUserRequest) error { return err } -func (s *Server) authenticateUser(ctx context.Context, req AuthenticateUserRequest) error { +func (s *Server) authenticateUser(ctx context.Context, req AuthenticateUserRequest) (*types.MFADevice, error) { if err := req.CheckAndSetDefaults(); err != nil { - return trace.Wrap(err) + return nil, trace.Wrap(err) } authPreference, err := s.GetAuthPreference() if err != nil { - return trace.Wrap(err) + return nil, trace.Wrap(err) } switch { case req.U2F != nil: // authenticate using U2F - code checks challenge response // signed by U2F device of the user + var mfaDev *types.MFADevice err := s.WithUserLock(req.Username, func() error { - return s.CheckU2FSignResponse(ctx, req.Username, &req.U2F.SignResponse) + var err error + mfaDev, err = s.CheckU2FSignResponse(ctx, req.Username, &req.U2F.SignResponse) + return err }) if err != nil { // provide obscure message on purpose, while logging the real // error server side log.Debugf("Failed to authenticate: %v.", err) - return trace.AccessDenied("invalid U2F response") + return nil, trace.AccessDenied("invalid U2F response") } - return nil + if mfaDev == nil { + // provide obscure message on purpose, while logging the real + // error server side + log.Debugf("CheckU2FSignResponse returned no error and a nil MFA device.") + return nil, trace.AccessDenied("invalid U2F response") + } + return mfaDev, nil case req.OTP != nil: + var mfaDev *types.MFADevice err := s.WithUserLock(req.Username, func() error { - return s.CheckPassword(req.Username, req.OTP.Password, req.OTP.Token) + res, err := s.checkPassword(req.Username, req.OTP.Password, req.OTP.Token) + if err != nil { + return trace.Wrap(err) + } + mfaDev = res.mfaDev + return nil }) if err != nil { // provide obscure message on purpose, while logging the real // error server side log.Debugf("Failed to authenticate: %v.", err) - return trace.AccessDenied("invalid username, password or second factor") + return nil, trace.AccessDenied("invalid username, password or second factor") } - return nil + return mfaDev, nil case req.Pass != nil: // authenticate using password only, make sure // that auth preference does not require second factor @@ -157,31 +176,31 @@ func (s *Server) authenticateUser(ctx context.Context, req AuthenticateUserReque // registered. devs, err := s.GetMFADevices(ctx, req.Username) if err != nil && !trace.IsNotFound(err) { - return trace.Wrap(err) + return nil, trace.Wrap(err) } if len(devs) != 0 { log.Warningf("MFA bypass attempt by user %q, access denied.", req.Username) - return trace.AccessDenied("missing second factor authentication") + return nil, trace.AccessDenied("missing second factor authentication") } default: // Some form of MFA is required but none provided. Either client is // buggy (didn't send MFA response) or someone is trying to bypass // MFA. log.Warningf("MFA bypass attempt by user %q, access denied.", req.Username) - return trace.AccessDenied("missing second factor") + return nil, trace.AccessDenied("missing second factor") } err := s.WithUserLock(req.Username, func() error { - return s.CheckPasswordWOToken(req.Username, req.Pass.Password) + return s.checkPasswordWOToken(req.Username, req.Pass.Password) }) if err != nil { // provide obscure message on purpose, while logging the real // error server side log.Debugf("Failed to authenticate: %v.", err) - return trace.AccessDenied("invalid username or password") + return nil, trace.AccessDenied("invalid username or password") } - return nil + return nil, nil default: - return trace.AccessDenied("unsupported authentication method") + return nil, trace.AccessDenied("unsupported authentication method") } } diff --git a/lib/auth/password.go b/lib/auth/password.go index a3e1190d34490..8f1c2e04be8a9 100644 --- a/lib/auth/password.go +++ b/lib/auth/password.go @@ -92,29 +92,35 @@ func (s *Server) ChangePassword(req services.ChangePasswordReq) error { secondFactor := authPreference.GetSecondFactor() switch secondFactor { case constants.SecondFactorOff: - return s.CheckPasswordWOToken(userID, req.OldPassword) + return s.checkPasswordWOToken(userID, req.OldPassword) case constants.SecondFactorOTP: - return s.CheckPassword(userID, req.OldPassword, req.SecondFactorToken) + _, err := s.checkPassword(userID, req.OldPassword, req.SecondFactorToken) + return trace.Wrap(err) case constants.SecondFactorU2F: if req.U2FSignResponse == nil { return trace.AccessDenied("missing U2F sign response") } - return s.CheckU2FSignResponse(ctx, userID, req.U2FSignResponse) + _, err := s.CheckU2FSignResponse(ctx, userID, req.U2FSignResponse) + return trace.Wrap(err) case constants.SecondFactorOn: if req.SecondFactorToken != "" { - return s.CheckPassword(userID, req.OldPassword, req.SecondFactorToken) + _, err := s.checkPassword(userID, req.OldPassword, req.SecondFactorToken) + return trace.Wrap(err) } if req.U2FSignResponse != nil { - return s.CheckU2FSignResponse(ctx, userID, req.U2FSignResponse) + _, err := s.CheckU2FSignResponse(ctx, userID, req.U2FSignResponse) + return trace.Wrap(err) } return trace.AccessDenied("missing second factor authentication") case constants.SecondFactorOptional: if req.SecondFactorToken != "" { - return s.CheckPassword(userID, req.OldPassword, req.SecondFactorToken) + _, err := s.checkPassword(userID, req.OldPassword, req.SecondFactorToken) + return trace.Wrap(err) } if req.U2FSignResponse != nil { - return s.CheckU2FSignResponse(ctx, userID, req.U2FSignResponse) + _, err := s.CheckU2FSignResponse(ctx, userID, req.U2FSignResponse) + return trace.Wrap(err) } // Check that a user has no MFA devices registered. devs, err := s.GetMFADevices(ctx, userID) @@ -154,9 +160,9 @@ func (s *Server) ChangePassword(req services.ChangePasswordReq) error { return nil } -// CheckPasswordWOToken checks just password without checking OTP tokens +// checkPasswordWOToken checks just password without checking OTP tokens // used in case of SSH authentication, when token has been validated. -func (s *Server) CheckPasswordWOToken(user string, password []byte) error { +func (s *Server) checkPasswordWOToken(user string, password []byte) error { const errMsg = "invalid username or password" err := services.VerifyPassword(password) @@ -189,43 +195,50 @@ func (s *Server) CheckPasswordWOToken(user string, password []byte) error { return nil } -// CheckPassword checks the password and OTP token. Called by tsh or lib/web/*. -func (s *Server) CheckPassword(user string, password []byte, otpToken string) error { - err := s.CheckPasswordWOToken(user, password) +type checkPasswordResult struct { + mfaDev *types.MFADevice +} + +// checkPassword checks the password and OTP token. Called by tsh or lib/web/*. +func (s *Server) checkPassword(user string, password []byte, otpToken string) (*checkPasswordResult, error) { + err := s.checkPasswordWOToken(user, password) if err != nil { - return trace.Wrap(err) + return nil, trace.Wrap(err) } - err = s.checkOTP(user, otpToken) - return trace.Wrap(err) + mfaDev, err := s.checkOTP(user, otpToken) + if err != nil { + return nil, trace.Wrap(err) + } + return &checkPasswordResult{mfaDev: mfaDev}, nil } // checkOTP determines the type of OTP token used (for legacy HOTP support), fetches the // appropriate type from the backend, and checks if the token is valid. -func (s *Server) checkOTP(user string, otpToken string) error { +func (s *Server) checkOTP(user string, otpToken string) (*types.MFADevice, error) { var err error otpType, err := s.getOTPType(user) if err != nil { - return trace.Wrap(err) + return nil, trace.Wrap(err) } switch otpType { case teleport.HOTP: otp, err := s.GetHOTP(user) if err != nil { - return trace.Wrap(err) + return nil, trace.Wrap(err) } // look ahead n tokens to see if we can find a matching token if !otp.Scan(otpToken, defaults.HOTPFirstTokensRange) { - return trace.BadParameter("bad one time token") + return nil, trace.BadParameter("bad one time token") } // we need to upsert the hotp state again because the // counter was incremented if err := s.UpsertHOTP(user, otp); err != nil { - return trace.Wrap(err) + return nil, trace.Wrap(err) } case teleport.TOTP: ctx := context.TODO() @@ -233,16 +246,16 @@ func (s *Server) checkOTP(user string, otpToken string) error { // get the previously used token to mitigate token replay attacks usedToken, err := s.GetUsedTOTPToken(user) if err != nil { - return trace.Wrap(err) + return nil, trace.Wrap(err) } // we use a constant time compare function to mitigate timing attacks if subtle.ConstantTimeCompare([]byte(otpToken), []byte(usedToken)) == 1 { - return trace.BadParameter("previously used totp token") + return nil, trace.BadParameter("previously used totp token") } devs, err := s.GetMFADevices(ctx, user) if err != nil { - return trace.Wrap(err) + return nil, trace.Wrap(err) } for _, dev := range devs { @@ -255,12 +268,12 @@ func (s *Server) checkOTP(user string, otpToken string) error { log.WithError(err).Errorf("Using TOTP device %q", dev.GetName()) continue } - return nil + return dev, nil } - return trace.AccessDenied("invalid totp token") + return nil, trace.AccessDenied("invalid totp token") } - return nil + return nil, nil } // checkTOTP checks if the TOTP token is valid. diff --git a/lib/auth/password_test.go b/lib/auth/password_test.go index e3d45ce711748..9264a0b9852c7 100644 --- a/lib/auth/password_test.go +++ b/lib/auth/password_test.go @@ -121,7 +121,7 @@ func (s *PasswordSuite) TestTiming(c *C) { go func() { defer wg.Done() start := time.Now() - err := s.a.CheckPasswordWOToken(username, []byte(password)) + err := s.a.checkPasswordWOToken(username, []byte(password)) resCh <- res{ exists: true, elapsed: time.Since(start), @@ -132,7 +132,7 @@ func (s *PasswordSuite) TestTiming(c *C) { go func() { defer wg.Done() start := time.Now() - err := s.a.CheckPasswordWOToken("blah", []byte(password)) + err := s.a.checkPasswordWOToken("blah", []byte(password)) resCh <- res{ exists: false, elapsed: time.Since(start), @@ -167,7 +167,7 @@ func (s *PasswordSuite) TestUserNotFound(c *C) { username := "unknown-user" password := "barbaz" - err := s.a.CheckPasswordWOToken(username, []byte(password)) + err := s.a.checkPasswordWOToken(username, []byte(password)) c.Assert(err, NotNil) // Make sure the error is not a NotFound. That would be a username oracle. c.Assert(trace.IsBadParameter(err), Equals, true) @@ -259,7 +259,7 @@ func (s *PasswordSuite) TestChangePasswordWithToken(c *C) { c.Assert(err, IsNil) // password should be updated - err = s.a.CheckPasswordWOToken(username, password) + err = s.a.checkPasswordWOToken(username, password) c.Assert(err, IsNil) } @@ -296,7 +296,7 @@ func (s *PasswordSuite) TestChangePasswordWithTokenOTP(c *C) { }) c.Assert(err, IsNil) - err = s.a.CheckPasswordWOToken(username, password) + err = s.a.checkPasswordWOToken(username, password) c.Assert(err, IsNil) } diff --git a/lib/auth/resetpasswordtoken_test.go b/lib/auth/resetpasswordtoken_test.go index b4b19da079ac4..be017afaf49dc 100644 --- a/lib/auth/resetpasswordtoken_test.go +++ b/lib/auth/resetpasswordtoken_test.go @@ -73,7 +73,7 @@ func TestCreateResetPasswordToken(t *testing.T) { require.Empty(t, devs) // verify that password was reset - err = srv.Auth().CheckPasswordWOToken(username, []byte(pass)) + err = srv.Auth().checkPasswordWOToken(username, []byte(pass)) require.Error(t, err) // create another reset token for the same user diff --git a/lib/events/api.go b/lib/events/api.go index a454249d28b45..cf3323a901e28 100644 --- a/lib/events/api.go +++ b/lib/events/api.go @@ -365,6 +365,11 @@ const ( // KubeRequestEvent fires when a proxy handles a generic kubernetes // request. KubeRequestEvent = "kube.request" + + // MFADeviceAddEvent is an event type for users adding MFA devices. + MFADeviceAddEvent = "mfa.add" + // MFADeviceDeleteEvent is an event type for users deleting MFA devices. + MFADeviceDeleteEvent = "mfa.delete" ) const ( diff --git a/lib/events/codes.go b/lib/events/codes.go index cc71441286368..81ed2be9f6276 100644 --- a/lib/events/codes.go +++ b/lib/events/codes.go @@ -290,6 +290,10 @@ const ( UserDeleteCode = "T1004I" // UserPasswordChangeCode is an event code for when user changes their own password. UserPasswordChangeCode = "T1005I" + // MFADeviceAddEventCode is an event code for users adding MFA devices. + MFADeviceAddEventCode = "T1006I" + // MFADeviceDeleteEventCode is an event code for users deleting MFA devices. + MFADeviceDeleteEventCode = "T1007I" // SessionRejectedCode is an event code for when a user's attempt to create an // session/connection has been rejected.