diff --git a/api/client/webclient/webconfig.go b/api/client/webclient/webconfig.go index 85dcb5bbd3ea0..ce28f24865ef5 100644 --- a/api/client/webclient/webconfig.go +++ b/api/client/webclient/webconfig.go @@ -82,6 +82,8 @@ type WebConfig struct { IsTeam bool `json:"isTeam"` // IsIGSEnabled is true if [Features.IdentityGovernance] = true IsIGSEnabled bool `json:"isIgsEnabled"` + // IsPolicyEnabled is true if [Features.Policy] = true + IsPolicyEnabled bool `json:"isPolicyEnabled"` // featureLimits define limits for features. // Typically used with feature teasers if feature is not enabled for the // product type eg: Team product contains teasers to upgrade to Enterprise. diff --git a/api/gen/proto/go/usageevents/v1/usageevents.pb.go b/api/gen/proto/go/usageevents/v1/usageevents.pb.go index 8367a0cb4c57c..73c5c5f33079a 100644 --- a/api/gen/proto/go/usageevents/v1/usageevents.pb.go +++ b/api/gen/proto/go/usageevents/v1/usageevents.pb.go @@ -229,6 +229,7 @@ const ( CTA_CTA_ACCESS_MONITORING CTA = 9 CTA_CTA_EXTERNAL_AUDIT_STORAGE CTA = 10 CTA_CTA_OKTA_USER_SYNC CTA = 11 + CTA_CTA_ENTRA_ID CTA = 12 ) var CTA_name = map[int32]string{ @@ -244,6 +245,7 @@ var CTA_name = map[int32]string{ 9: "CTA_ACCESS_MONITORING", 10: "CTA_EXTERNAL_AUDIT_STORAGE", 11: "CTA_OKTA_USER_SYNC", + 12: "CTA_ENTRA_ID", } var CTA_value = map[string]int32{ @@ -259,6 +261,7 @@ var CTA_value = map[string]int32{ "CTA_ACCESS_MONITORING": 9, "CTA_EXTERNAL_AUDIT_STORAGE": 10, "CTA_OKTA_USER_SYNC": 11, + "CTA_ENTRA_ID": 12, } func (x CTA) String() string { @@ -293,6 +296,7 @@ const ( IntegrationEnrollKind_INTEGRATION_ENROLL_KIND_MACHINE_ID_JENKINS IntegrationEnrollKind = 16 IntegrationEnrollKind_INTEGRATION_ENROLL_KIND_MACHINE_ID_ANSIBLE IntegrationEnrollKind = 17 IntegrationEnrollKind_INTEGRATION_ENROLL_KIND_SERVICENOW IntegrationEnrollKind = 18 + IntegrationEnrollKind_INTEGRATION_ENROLL_KIND_ENTRA_ID IntegrationEnrollKind = 19 ) var IntegrationEnrollKind_name = map[int32]string{ @@ -315,6 +319,7 @@ var IntegrationEnrollKind_name = map[int32]string{ 16: "INTEGRATION_ENROLL_KIND_MACHINE_ID_JENKINS", 17: "INTEGRATION_ENROLL_KIND_MACHINE_ID_ANSIBLE", 18: "INTEGRATION_ENROLL_KIND_SERVICENOW", + 19: "INTEGRATION_ENROLL_KIND_ENTRA_ID", } var IntegrationEnrollKind_value = map[string]int32{ @@ -337,6 +342,7 @@ var IntegrationEnrollKind_value = map[string]int32{ "INTEGRATION_ENROLL_KIND_MACHINE_ID_JENKINS": 16, "INTEGRATION_ENROLL_KIND_MACHINE_ID_ANSIBLE": 17, "INTEGRATION_ENROLL_KIND_SERVICENOW": 18, + "INTEGRATION_ENROLL_KIND_ENTRA_ID": 19, } func (x IntegrationEnrollKind) String() string { @@ -5004,307 +5010,308 @@ func init() { } var fileDescriptor_94cf2ca1c69fd564 = []byte{ - // 4789 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x7c, 0xdb, 0x6f, 0xe3, 0x48, - 0x76, 0xb7, 0x28, 0xf7, 0xb5, 0xba, 0xdb, 0xcd, 0xae, 0x6e, 0xdb, 0xb2, 0xdd, 0x6e, 0xbb, 0xd5, - 0x77, 0xf7, 0xac, 0x3d, 0xed, 0x99, 0x9d, 0xe9, 0xdd, 0x99, 0xef, 0x9b, 0xd0, 0x14, 0x6d, 0xb1, - 0x2d, 0x89, 0x9a, 0x22, 0xd5, 0xbd, 0x9e, 0xc5, 0xa2, 0x40, 0x8b, 0x65, 0x37, 0xd1, 0x92, 0xe8, - 0x21, 0x29, 0x7b, 0x9c, 0x20, 0xd8, 0xcd, 0x15, 0x41, 0x66, 0x37, 0x48, 0x80, 0x20, 0x48, 0x30, - 0x40, 0x90, 0x20, 0x17, 0xe4, 0x21, 0xc0, 0x3e, 0x05, 0xfb, 0x9a, 0xbc, 0xe5, 0x31, 0x40, 0x90, - 0xa7, 0xbc, 0x04, 0xf3, 0x0f, 0xe4, 0x29, 0x01, 0x12, 0x24, 0x48, 0x50, 0x17, 0x4a, 0x94, 0x44, - 0x89, 0x9c, 0x49, 0x0f, 0x16, 0x70, 0xbf, 0x89, 0x55, 0xe7, 0xf2, 0xab, 0x53, 0xa7, 0x4e, 0x15, - 0xeb, 0x1c, 0x0a, 0x3c, 0x0a, 0x49, 0x8b, 0x1c, 0x7a, 0x7e, 0xb8, 0xde, 0x0d, 0xec, 0x03, 0x42, - 0x8e, 0x48, 0x27, 0x0c, 0xd6, 0x8f, 0x9e, 0xc4, 0x1f, 0xd7, 0x0e, 0x7d, 0x2f, 0xf4, 0xe0, 0x5c, - 0x44, 0xba, 0x16, 0xef, 0x3b, 0x7a, 0x52, 0x5c, 0x05, 0xb0, 0xa1, 0x6f, 0xda, 0x9d, 0x0e, 0xf1, - 0xd5, 0x96, 0xdb, 0x7c, 0xa5, 0xd1, 0x1e, 0x78, 0x03, 0x9c, 0xb5, 0x5b, 0xc4, 0x0f, 0x0b, 0xd2, - 0x8a, 0xf4, 0xf0, 0x22, 0xe2, 0x0f, 0xc5, 0x2d, 0xf0, 0xb0, 0xa1, 0x1b, 0x9d, 0x3d, 0xcf, 0xf6, - 0x1d, 0xd5, 0x6b, 0x1f, 0xb6, 0x48, 0x48, 0xb6, 0x3d, 0xcb, 0x2b, 0xd9, 0xc1, 0x4b, 0xde, 0xd8, - 0x97, 0xb0, 0x00, 0x2e, 0x74, 0x03, 0xe2, 0x77, 0xec, 0x36, 0x11, 0x42, 0x7a, 0xcf, 0xc5, 0x7b, - 0xe0, 0x4e, 0x4f, 0x8e, 0xe2, 0x38, 0x5b, 0xae, 0x1f, 0x84, 0x88, 0x04, 0x5e, 0xd7, 0x6f, 0x92, - 0xbe, 0x88, 0xe2, 0x6a, 0x4c, 0xdd, 0x30, 0x59, 0xc5, 0x0e, 0xe3, 0x80, 0x8b, 0x1f, 0x81, 0xdb, - 0x3d, 0x5a, 0x93, 0x84, 0xaa, 0x4f, 0x1c, 0xd2, 0x09, 0x5d, 0xbb, 0x65, 0x76, 0xf7, 0xda, 0x6e, - 0x98, 0x8e, 0x29, 0x2e, 0xe0, 0xe3, 0x2e, 0x09, 0x42, 0xd7, 0xeb, 0x74, 0x6c, 0xd7, 0x27, 0x59, - 0x05, 0xfc, 0x32, 0xb8, 0xd7, 0x13, 0x80, 0xc8, 0x81, 0x1b, 0x50, 0x80, 0x2f, 0xed, 0x56, 0x8b, - 0x74, 0x0e, 0xb2, 0x0a, 0x81, 0xf3, 0xe0, 0x42, 0x7b, 0xdf, 0xc6, 0xe1, 0xc9, 0x21, 0x29, 0xe4, - 0x59, 0xdf, 0xf9, 0xf6, 0xbe, 0x6d, 0x9d, 0x1c, 0x12, 0xb8, 0x04, 0x40, 0xcb, 0x3b, 0x70, 0x3b, - 0x78, 0xbf, 0xe5, 0x1d, 0x17, 0xa6, 0x58, 0xe7, 0x45, 0xd6, 0xb2, 0xd5, 0xf2, 0x8e, 0x39, 0x7e, - 0x44, 0x9a, 0xde, 0x11, 0xf1, 0x4f, 0x54, 0xcf, 0x21, 0x81, 0xea, 0x75, 0x42, 0xb7, 0xd3, 0x25, - 0x19, 0x27, 0xe5, 0x03, 0xb0, 0x34, 0x22, 0xe0, 0xf0, 0x24, 0x23, 0xf3, 0x87, 0xe0, 0xd6, 0x10, - 0x73, 0xdd, 0x77, 0x3b, 0x61, 0x46, 0xee, 0x22, 0x90, 0x4b, 0x6e, 0xc0, 0x98, 0xab, 0x24, 0xb4, - 0x1d, 0x3b, 0xb4, 0xe1, 0x34, 0xc8, 0xbb, 0x8e, 0xa0, 0xcc, 0xbb, 0x4e, 0xd1, 0x06, 0x85, 0x88, - 0x26, 0xf2, 0x81, 0x1e, 0xad, 0x06, 0x2e, 0xf8, 0xa2, 0x8d, 0x71, 0x4c, 0x6f, 0x3c, 0x5a, 0x1b, - 0xe3, 0xef, 0x6b, 0xc3, 0x42, 0x50, 0x8f, 0xb5, 0xf8, 0x0a, 0xc0, 0xa8, 0xd7, 0x0c, 0xc9, 0xa1, - 0x19, 0xda, 0x61, 0x37, 0x80, 0x1f, 0x81, 0x73, 0x01, 0xfb, 0x25, 0x44, 0x3f, 0x48, 0x15, 0xcd, - 0x19, 0x91, 0x60, 0xa3, 0x6b, 0x89, 0xf8, 0xbe, 0xe7, 0x8b, 0x09, 0xe5, 0x0f, 0xc5, 0x3f, 0x97, - 0xc0, 0x6c, 0x43, 0x8f, 0xb1, 0xf8, 0x21, 0x71, 0xb8, 0xa9, 0x34, 0x70, 0xa1, 0x2d, 0x86, 0xc6, - 0x74, 0x5e, 0xca, 0x30, 0x9c, 0xc8, 0x16, 0xa8, 0xc7, 0x0a, 0xd5, 0x1e, 0xf0, 0x3c, 0x13, 0xf2, - 0x38, 0x03, 0xf0, 0x68, 0xd4, 0x11, 0xf8, 0xe2, 0x7f, 0x4b, 0x60, 0xa5, 0x0f, 0x33, 0x32, 0x9a, - 0x49, 0x5a, 0xa4, 0x49, 0x57, 0xc8, 0x6b, 0x05, 0x5c, 0x8d, 0x4d, 0x23, 0x87, 0xfc, 0x24, 0xf3, - 0x34, 0xf6, 0xc5, 0x45, 0x22, 0x62, 0xe3, 0x9f, 0xfa, 0xfa, 0xe3, 0xff, 0x8d, 0x3c, 0x0d, 0x42, - 0x11, 0x81, 0xde, 0x09, 0xc9, 0x81, 0x6f, 0xd3, 0x91, 0x2b, 0x2f, 0x4c, 0x43, 0x2f, 0xa9, 0xaa, - 0xd7, 0xe9, 0x90, 0x66, 0x78, 0xea, 0xed, 0xf0, 0xb3, 0x7c, 0xdc, 0x0f, 0x4a, 0x76, 0x68, 0xef, - 0xd9, 0x01, 0x41, 0x25, 0x53, 0xeb, 0xf8, 0x5e, 0xab, 0x75, 0xda, 0xc7, 0x0f, 0x9f, 0x82, 0x42, - 0xc0, 0x9c, 0x9e, 0x38, 0x38, 0x92, 0x1c, 0xe0, 0xa6, 0xd7, 0xed, 0x84, 0x85, 0x33, 0x2b, 0xd2, - 0xc3, 0x29, 0x34, 0x1b, 0xf5, 0x47, 0x50, 0x02, 0x95, 0xf6, 0x16, 0xff, 0x43, 0x02, 0x37, 0xfb, - 0x96, 0xdb, 0xe9, 0xee, 0x11, 0x6d, 0xe7, 0x0d, 0xb1, 0x5a, 0xf1, 0x19, 0x28, 0x34, 0x74, 0xd5, - 0x6e, 0xb5, 0x2c, 0x4f, 0x61, 0xf1, 0x22, 0xb6, 0x21, 0xac, 0x81, 0xa9, 0xa6, 0x18, 0xf1, 0xf4, - 0xc6, 0xcd, 0xb1, 0xd2, 0x55, 0x4b, 0x41, 0x94, 0xb0, 0xf8, 0x93, 0xb3, 0x71, 0x3b, 0x96, 0xc8, - 0x61, 0xcb, 0x3b, 0x31, 0x89, 0x7f, 0xe4, 0x36, 0xc9, 0xa9, 0xf7, 0xbe, 0x03, 0x70, 0xc5, 0x61, - 0x03, 0xc6, 0x6d, 0x12, 0xbe, 0xf4, 0x1c, 0xe6, 0x72, 0xd3, 0x1b, 0x9b, 0x63, 0x65, 0x4d, 0x32, - 0xd4, 0x1a, 0x6f, 0xaa, 0x32, 0x49, 0xe8, 0xb2, 0x13, 0x7b, 0x82, 0x36, 0xb8, 0x24, 0x14, 0xb1, - 0x23, 0xc8, 0x59, 0xa6, 0xe6, 0x17, 0xfe, 0x2f, 0x6a, 0xe8, 0xd9, 0x05, 0x01, 0xa7, 0xf7, 0xbb, - 0x88, 0xc1, 0xe5, 0x38, 0x00, 0xb8, 0x04, 0xe6, 0x4b, 0x5a, 0xbd, 0x62, 0xec, 0xe2, 0xaa, 0x66, - 0x95, 0x8d, 0x12, 0x6e, 0xd4, 0xcc, 0xba, 0xa6, 0xea, 0x5b, 0xba, 0x56, 0x92, 0x73, 0x70, 0x16, - 0xc0, 0xc1, 0x6e, 0xa5, 0x61, 0x19, 0xb2, 0x04, 0x0b, 0xe0, 0xc6, 0x60, 0x7b, 0x55, 0xa9, 0x35, - 0x94, 0x8a, 0x9c, 0x2f, 0x12, 0x00, 0xfa, 0xaa, 0xe1, 0x22, 0x98, 0x13, 0x74, 0xd6, 0x6e, 0x5d, - 0x1b, 0x12, 0x7e, 0x0b, 0x2c, 0xc4, 0x3b, 0xf5, 0x9a, 0x69, 0x29, 0x95, 0x0a, 0x36, 0x55, 0xa4, - 0xd7, 0x2d, 0x59, 0x82, 0x0b, 0x60, 0x36, 0xde, 0xaf, 0x54, 0x95, 0x4f, 0x8c, 0x1a, 0xd6, 0x54, - 0x53, 0xce, 0x17, 0xbf, 0x38, 0x03, 0xee, 0xf6, 0xc7, 0xaf, 0xfa, 0xc4, 0x0e, 0x49, 0xf4, 0x74, - 0xa2, 0x7a, 0x9d, 0x7d, 0xf7, 0xe0, 0xd4, 0xfb, 0xa5, 0x07, 0xae, 0x34, 0xd9, 0x48, 0x07, 0xfd, - 0xf2, 0x59, 0x06, 0x87, 0x19, 0x6f, 0xb0, 0x35, 0xfe, 0x3b, 0xf2, 0xcf, 0x66, 0xec, 0xa9, 0xf8, - 0x97, 0x12, 0xb8, 0x1c, 0xef, 0xa6, 0xde, 0xa3, 0x1a, 0xb5, 0x2d, 0x7d, 0x3b, 0xd9, 0x7b, 0x46, - 0xba, 0x95, 0x17, 0x26, 0xd6, 0xd4, 0x0d, 0x6c, 0x9a, 0x55, 0x59, 0xa2, 0xf3, 0x9f, 0xdc, 0xad, - 0xe9, 0xaa, 0x26, 0xe7, 0x93, 0xd9, 0x51, 0xc9, 0x64, 0x2e, 0x30, 0x05, 0xe7, 0xc1, 0x4c, 0x02, - 0xfb, 0x8e, 0x29, 0x9f, 0x29, 0xfe, 0x97, 0x04, 0x96, 0x13, 0xf6, 0x4b, 0xf1, 0x5e, 0x70, 0xea, - 0x03, 0xff, 0xaf, 0xe4, 0xe3, 0x8b, 0x23, 0x1a, 0x3e, 0x9f, 0xb9, 0xae, 0x4f, 0xaa, 0x56, 0xc5, - 0x3c, 0xf5, 0x36, 0xf8, 0x9d, 0x3c, 0x78, 0x12, 0x0f, 0x90, 0xc1, 0xab, 0xd0, 0x3b, 0xa4, 0xdb, - 0xe0, 0x11, 0x29, 0xb9, 0x3e, 0x69, 0x86, 0x9e, 0x7f, 0x62, 0x79, 0x5e, 0x2b, 0xd0, 0x3b, 0x41, - 0x68, 0xbf, 0x01, 0xa7, 0x81, 0xcf, 0xf3, 0x60, 0x2d, 0xcd, 0x20, 0x3d, 0x17, 0x39, 0xf5, 0xd6, - 0xf8, 0xeb, 0x3c, 0xb8, 0xdf, 0xb7, 0x86, 0xd2, 0x0d, 0xbd, 0xe8, 0x77, 0xec, 0x08, 0x79, 0xea, - 0x77, 0x90, 0x07, 0xe0, 0x6a, 0xf2, 0x71, 0x7a, 0xda, 0x1f, 0x3c, 0x46, 0xff, 0x28, 0x0f, 0xee, - 0xf4, 0xcd, 0xa5, 0xa9, 0x1b, 0x6c, 0xd5, 0x74, 0xde, 0xa4, 0x77, 0xd1, 0x7f, 0x97, 0xc0, 0xfc, - 0xf0, 0x89, 0x8b, 0x6e, 0x54, 0x6f, 0xd8, 0xc0, 0xf9, 0xc9, 0xa1, 0xe6, 0x39, 0xa7, 0x3f, 0x46, - 0xfc, 0x66, 0x1e, 0x3c, 0x9a, 0xb0, 0x8d, 0xea, 0x4a, 0xb5, 0xee, 0xb5, 0xdc, 0xe6, 0xc9, 0xa9, - 0x37, 0xc4, 0xff, 0x48, 0xa0, 0xd8, 0x37, 0x44, 0xdd, 0x77, 0x3b, 0x4d, 0xf7, 0xd0, 0x6e, 0x05, - 0x6f, 0xce, 0x76, 0xf1, 0x9f, 0x12, 0x58, 0xea, 0x5b, 0xc0, 0x22, 0x41, 0x28, 0xae, 0x9e, 0xde, - 0x84, 0xc8, 0xf7, 0x6f, 0x12, 0x28, 0xc4, 0x02, 0x80, 0x48, 0x3d, 0x38, 0xa7, 0x7e, 0xdc, 0x8b, - 0x34, 0xee, 0x89, 0x78, 0x47, 0x8e, 0x91, 0xd7, 0x8a, 0xa7, 0x47, 0x96, 0xa9, 0x43, 0x0c, 0x74, - 0x9a, 0xf6, 0x51, 0x9c, 0xe0, 0x36, 0x7d, 0x05, 0x19, 0xe4, 0xa6, 0x1b, 0x66, 0x2b, 0x46, 0xf2, - 0x16, 0x58, 0x1d, 0x22, 0x79, 0xee, 0x92, 0xe3, 0x92, 0xd7, 0xec, 0xb6, 0x49, 0x27, 0xb4, 0x07, - 0xaf, 0x6c, 0x8a, 0x7f, 0x23, 0x81, 0x19, 0x25, 0x08, 0x5c, 0xea, 0x7b, 0x6c, 0x0a, 0x7a, 0xbe, - 0xf7, 0x00, 0x5c, 0x6d, 0x7a, 0x9d, 0x23, 0xe2, 0x07, 0x8c, 0x07, 0xf7, 0xae, 0xee, 0xa7, 0xe3, - 0xcd, 0xba, 0x03, 0x6f, 0x83, 0xcb, 0xa1, 0x17, 0xda, 0x2d, 0x1c, 0x7a, 0xaf, 0x48, 0x87, 0x5f, - 0x4d, 0x4f, 0xa1, 0x4b, 0xac, 0xcd, 0x62, 0x4d, 0xf0, 0x0e, 0xb8, 0x72, 0xe8, 0x7b, 0xed, 0xc3, - 0x30, 0xa2, 0x99, 0x62, 0x34, 0x97, 0x79, 0xa3, 0x20, 0x7a, 0x0c, 0xae, 0x35, 0x7b, 0x18, 0x22, - 0x42, 0x7e, 0x72, 0x90, 0xfb, 0x1d, 0x9c, 0xb8, 0xf8, 0x8f, 0x12, 0xb8, 0xc1, 0x71, 0x6b, 0x9f, - 0x91, 0x66, 0xf7, 0x6b, 0xc0, 0x5e, 0x02, 0xa0, 0xe3, 0x39, 0x44, 0x9c, 0x50, 0x38, 0xe8, 0x8b, - 0xb4, 0x85, 0x1d, 0x4e, 0x46, 0x46, 0x35, 0x95, 0x61, 0x54, 0x67, 0xb2, 0x8e, 0xea, 0xec, 0x98, - 0x51, 0x3d, 0x05, 0x0b, 0x7c, 0x50, 0x35, 0x72, 0xac, 0xc6, 0xe0, 0xf6, 0xf2, 0x2d, 0x4d, 0x3b, - 0x24, 0x07, 0x9e, 0x7f, 0x12, 0xe5, 0x5b, 0xa2, 0xe7, 0xe2, 0x4f, 0x25, 0x70, 0x9d, 0xb3, 0x2a, - 0xcd, 0x26, 0x09, 0x02, 0x44, 0x3e, 0xed, 0x92, 0x20, 0xa4, 0x18, 0x23, 0xff, 0xe5, 0xf7, 0x3f, - 0x9c, 0xf1, 0x72, 0xd4, 0xc8, 0x2e, 0x54, 0x7e, 0x2e, 0x33, 0xf8, 0x85, 0x04, 0x2e, 0x47, 0x88, - 0x69, 0x33, 0x9c, 0x05, 0xe7, 0x6c, 0xf6, 0x4b, 0x60, 0x14, 0x4f, 0x3f, 0x1f, 0x74, 0x77, 0x01, - 0xe4, 0x86, 0xac, 0xb8, 0x41, 0x38, 0x36, 0x83, 0xf5, 0x7d, 0x20, 0xf7, 0xa9, 0xf8, 0x9a, 0x83, - 0xdb, 0x23, 0xb1, 0x6b, 0x7c, 0x9c, 0x18, 0x55, 0xd1, 0x8f, 0x5e, 0x83, 0xc2, 0x1b, 0x87, 0xce, - 0x37, 0x27, 0xbc, 0x44, 0x68, 0xec, 0x7d, 0x7d, 0xc2, 0x6d, 0x30, 0x1b, 0xef, 0x6f, 0xef, 0x45, - 0x27, 0xbc, 0x6f, 0x54, 0xc5, 0xeb, 0x36, 0x51, 0x82, 0x8a, 0xd7, 0x6d, 0xa8, 0x5f, 0x8c, 0xab, - 0xd8, 0xf6, 0xed, 0x4e, 0x18, 0x58, 0x5e, 0x23, 0x20, 0x3e, 0x5c, 0x03, 0xd7, 0x59, 0x60, 0xc2, - 0xbe, 0xd7, 0x22, 0x01, 0x3e, 0xa0, 0x7d, 0x84, 0xbb, 0xde, 0x59, 0x74, 0x8d, 0x75, 0xd1, 0xd0, - 0x1e, 0x6c, 0xf3, 0x0e, 0xf8, 0x36, 0xb8, 0xc1, 0xe9, 0x43, 0xdf, 0x76, 0xc3, 0x3e, 0x43, 0x9e, - 0x31, 0x40, 0xd6, 0x67, 0xb1, 0x2e, 0xc1, 0x51, 0xfc, 0x83, 0xa9, 0xb8, 0x72, 0x44, 0x8e, 0x5c, - 0x72, 0xfc, 0x9a, 0x67, 0x09, 0x3e, 0x05, 0xf3, 0x8e, 0x7d, 0x12, 0xe0, 0x43, 0x3b, 0x08, 0x71, - 0x87, 0x7c, 0x16, 0x62, 0xbb, 0xeb, 0xb8, 0x21, 0xa6, 0x13, 0x25, 0xa0, 0xcd, 0x50, 0x82, 0xba, - 0x4d, 0x43, 0xde, 0x67, 0xa1, 0x42, 0x7b, 0x4b, 0x14, 0xc2, 0x16, 0x58, 0x6e, 0x33, 0x93, 0x07, - 0x2f, 0xdd, 0x43, 0xec, 0x93, 0x4f, 0xbb, 0xae, 0x4f, 0xe8, 0x06, 0x16, 0xe0, 0xe6, 0x4b, 0xbb, - 0x73, 0x40, 0x1c, 0xb6, 0xc6, 0x2f, 0xa0, 0xa5, 0x3e, 0x19, 0x8a, 0x51, 0xa9, 0x9c, 0x08, 0x3e, - 0x05, 0x05, 0x9f, 0x0d, 0x0d, 0xef, 0x53, 0x21, 0xa4, 0xd3, 0x3c, 0xe9, 0x09, 0x38, 0xc3, 0x04, - 0xcc, 0xf2, 0xfe, 0xad, 0xa8, 0x3b, 0xe2, 0xfc, 0x10, 0x2c, 0x0a, 0x4e, 0xc7, 0x3e, 0xc1, 0xde, - 0x3e, 0x6e, 0x7b, 0x9d, 0xf0, 0x65, 0x8f, 0xf9, 0x2c, 0x63, 0x9e, 0xe3, 0x24, 0x25, 0xfb, 0xc4, - 0xd8, 0xaf, 0xd2, 0xfe, 0x88, 0xfb, 0x3b, 0x60, 0xbe, 0xd3, 0xa5, 0xc0, 0x28, 0xa7, 0x4f, 0xda, - 0xde, 0x11, 0x71, 0xb0, 0x80, 0x5a, 0x38, 0xc7, 0x46, 0x3e, 0xcb, 0x09, 0x8c, 0x7d, 0xc4, 0xbb, - 0xb9, 0x8b, 0x05, 0xc5, 0xdf, 0x97, 0x46, 0x27, 0xe6, 0x35, 0x3b, 0x1e, 0x7c, 0x02, 0x66, 0x6c, - 0xd6, 0x8f, 0x5b, 0x6e, 0x10, 0x62, 0x31, 0x50, 0xd7, 0x11, 0x09, 0x6d, 0x68, 0x0f, 0xe9, 0xd7, - 0x9d, 0xe2, 0x8f, 0x25, 0x30, 0x1f, 0x4b, 0x96, 0xf2, 0x74, 0xd7, 0xb8, 0xc8, 0x08, 0x37, 0xc1, - 0x99, 0x57, 0x6e, 0x87, 0xcb, 0x9b, 0xde, 0x58, 0x1b, 0x8b, 0x72, 0x44, 0xe2, 0x8e, 0xdb, 0x71, - 0x10, 0xe3, 0x85, 0x8b, 0xe0, 0x62, 0x37, 0x20, 0x3e, 0x66, 0x05, 0x06, 0x53, 0xfd, 0x02, 0x83, - 0x9a, 0xdd, 0x26, 0x45, 0x8f, 0x1e, 0x95, 0x46, 0xb8, 0x59, 0xd2, 0x9d, 0xef, 0x96, 0xb5, 0x11, - 0x5b, 0x6d, 0x64, 0x47, 0x91, 0xb0, 0x56, 0x7d, 0xb0, 0x92, 0xa0, 0x30, 0x3a, 0xb8, 0x7e, 0x33, - 0x3a, 0xff, 0x59, 0x02, 0xd7, 0x7b, 0x55, 0x34, 0x6c, 0x6d, 0x72, 0x3d, 0x99, 0x76, 0xf5, 0xd8, - 0x3d, 0x0c, 0xf6, 0x7c, 0xf7, 0xc0, 0xed, 0x88, 0xd9, 0xed, 0xdd, 0xc3, 0x18, 0xac, 0x15, 0xde, - 0x03, 0xd3, 0xcd, 0x96, 0xd7, 0x75, 0xf0, 0xa1, 0xef, 0x1d, 0xb9, 0x0e, 0xf1, 0x85, 0xb1, 0xaf, - 0xb0, 0xd6, 0xba, 0x68, 0x84, 0x06, 0xb8, 0xe0, 0x88, 0xd7, 0x55, 0xb6, 0x74, 0x2e, 0x6d, 0xbc, - 0x93, 0x7a, 0x00, 0x26, 0x4e, 0xf4, 0x86, 0xdb, 0x1f, 0x5d, 0x24, 0xa4, 0xf8, 0x1c, 0x2c, 0x8c, - 0xa7, 0x83, 0x73, 0xe0, 0xbc, 0xb3, 0x17, 0x1f, 0xdd, 0x39, 0x67, 0x8f, 0x8d, 0x6b, 0x19, 0x5c, - 0x72, 0xf6, 0x30, 0xab, 0x81, 0x6a, 0x7a, 0x2d, 0x31, 0x26, 0xe0, 0xec, 0xd5, 0x45, 0x4b, 0xf1, - 0x5f, 0x25, 0xb0, 0xb0, 0x45, 0xec, 0xb0, 0xeb, 0x13, 0x44, 0x9a, 0x5e, 0xbb, 0x4d, 0x3a, 0x4e, - 0xec, 0x18, 0x35, 0xe0, 0x56, 0xd2, 0xa0, 0x5b, 0xc1, 0xef, 0x82, 0xf3, 0xfb, 0x9c, 0x55, 0xb8, - 0xee, 0xca, 0xd8, 0x31, 0x46, 0x2a, 0x22, 0x06, 0xf8, 0x19, 0x58, 0x12, 0x3f, 0xb1, 0x3f, 0xa0, - 0x17, 0xc7, 0x5e, 0x1b, 0xa6, 0x37, 0xde, 0x4d, 0x95, 0x38, 0xc0, 0x2c, 0xde, 0x1f, 0x16, 0xf7, - 0xc7, 0x77, 0x16, 0x8f, 0xc1, 0x0d, 0x4b, 0xd9, 0xe6, 0x27, 0x61, 0xf2, 0x71, 0x97, 0xf8, 0xe2, - 0xfa, 0x60, 0x19, 0xf0, 0x63, 0x12, 0xa6, 0xe7, 0x5a, 0x5e, 0xed, 0x32, 0x85, 0x00, 0x6b, 0xaa, - 0xd1, 0x96, 0x3e, 0x01, 0x71, 0x0e, 0x48, 0x74, 0xb4, 0xe2, 0x04, 0x1a, 0x6d, 0xa1, 0xa7, 0x64, - 0x37, 0xc0, 0x41, 0x97, 0xc5, 0x03, 0x11, 0x72, 0x2f, 0xba, 0x81, 0xc9, 0x1b, 0x8a, 0x5b, 0xe0, - 0xa6, 0x49, 0x9a, 0x5d, 0xdf, 0x0d, 0x4f, 0x10, 0x1b, 0xd2, 0x36, 0x09, 0x11, 0x09, 0xba, 0x2d, - 0xb1, 0x08, 0x21, 0x38, 0x13, 0x33, 0x33, 0xfb, 0x4d, 0xdb, 0x68, 0xcc, 0x17, 0xf1, 0x9f, 0xfd, - 0x2e, 0xda, 0xe0, 0x7a, 0x2f, 0x6f, 0xb4, 0x45, 0xc2, 0xe6, 0x4b, 0xce, 0x3e, 0xea, 0x99, 0x52, - 0x92, 0x67, 0x8e, 0x2c, 0x87, 0xfc, 0xe8, 0x72, 0x28, 0xfe, 0xd3, 0x7b, 0xe0, 0x6a, 0x83, 0xda, - 0x9b, 0x89, 0x36, 0x3a, 0xc4, 0xd8, 0x87, 0x0d, 0x70, 0xb5, 0xeb, 0xe2, 0x3d, 0x56, 0x2a, 0x87, - 0x9b, 0xf4, 0xad, 0x28, 0x35, 0xac, 0x8e, 0x56, 0xd6, 0x95, 0x73, 0xe8, 0x4a, 0xd7, 0x8d, 0xb5, - 0xc2, 0x2f, 0x24, 0xf0, 0xa8, 0xeb, 0x62, 0x8f, 0x57, 0x8e, 0x61, 0x71, 0xb8, 0x24, 0xf8, 0xc0, - 0xc3, 0xa1, 0x87, 0x9d, 0xa8, 0xb4, 0x4e, 0x68, 0xe4, 0x2f, 0x93, 0xca, 0x04, 0x8d, 0xd9, 0xea, - 0xf3, 0xca, 0x39, 0x74, 0xa7, 0xeb, 0xa6, 0xd2, 0xc2, 0xcf, 0x25, 0x70, 0x27, 0x86, 0xce, 0x76, - 0x1c, 0xbc, 0xef, 0xfa, 0x6c, 0x17, 0x10, 0x36, 0xe4, 0xb8, 0xf8, 0x1a, 0xff, 0x30, 0x1d, 0xd7, - 0xf8, 0x7a, 0xbf, 0x72, 0x0e, 0xdd, 0xea, 0x41, 0x4a, 0x24, 0x1b, 0xb6, 0x55, 0x02, 0x9a, 0x96, - 0x1d, 0xf6, 0x66, 0xe7, 0x6c, 0x56, 0x5b, 0xa5, 0x14, 0x17, 0x0e, 0xd8, 0x6a, 0x3c, 0x2d, 0xfc, - 0x75, 0x09, 0xac, 0xc4, 0xd0, 0x05, 0x24, 0xc4, 0xcd, 0x5e, 0x1d, 0x22, 0x0e, 0x58, 0x09, 0x20, - 0xdb, 0xce, 0x2f, 0x6d, 0x7c, 0x37, 0x1d, 0xd4, 0xb8, 0x2a, 0xc6, 0x72, 0x0e, 0xdd, 0xec, 0xa1, - 0x49, 0x20, 0x82, 0xbf, 0x2b, 0x81, 0xbb, 0x31, 0x18, 0xbe, 0xc8, 0x39, 0xd2, 0xc3, 0x08, 0x2f, - 0x46, 0x8c, 0xa0, 0x9c, 0x67, 0x50, 0xfe, 0x7f, 0x3a, 0x94, 0x49, 0xe5, 0x8c, 0xe5, 0x1c, 0x5a, - 0xe9, 0xc1, 0x19, 0x43, 0x18, 0x59, 0xc6, 0x17, 0x05, 0x82, 0xb8, 0x49, 0xe3, 0x09, 0x6e, 0x8a, - 0x02, 0x45, 0x31, 0x5d, 0x17, 0x52, 0x2d, 0x93, 0x52, 0xde, 0xc8, 0x2d, 0x33, 0x9e, 0x08, 0x7e, - 0x06, 0x6e, 0x26, 0xa1, 0x38, 0x3c, 0x11, 0x08, 0x2e, 0x32, 0x04, 0xef, 0x65, 0x47, 0x10, 0xaf, - 0x8f, 0x2c, 0xe7, 0x50, 0x61, 0x44, 0xbb, 0x20, 0x80, 0xbf, 0x04, 0x96, 0x46, 0x35, 0x1f, 0xfa, - 0x6e, 0x27, 0x14, 0xaa, 0x01, 0x53, 0xfd, 0x7e, 0x56, 0xd5, 0x43, 0xd5, 0x95, 0xe5, 0x1c, 0x9a, - 0x1f, 0xd2, 0xdd, 0xa7, 0x80, 0x2d, 0x30, 0xdf, 0x75, 0xb1, 0x23, 0x42, 0x26, 0xdd, 0x5f, 0xfc, - 0x90, 0x38, 0x98, 0x09, 0x2f, 0x5c, 0x62, 0x8a, 0xd7, 0x33, 0x64, 0xec, 0xe3, 0x35, 0x8a, 0xe5, - 0x1c, 0x9a, 0xed, 0xba, 0x89, 0xd5, 0x8b, 0x9f, 0x73, 0xf7, 0xeb, 0xa9, 0xeb, 0x2d, 0xcd, 0x20, - 0x4a, 0xd4, 0x08, 0xcd, 0x97, 0x99, 0xe6, 0xef, 0x64, 0xd0, 0x9c, 0x5c, 0x76, 0xc8, 0x3d, 0x2f, - 0xa5, 0x34, 0xf1, 0x87, 0xcc, 0xf1, 0x7a, 0x60, 0x44, 0x71, 0x4b, 0xc0, 0xeb, 0x54, 0x04, 0x90, - 0x2b, 0x0c, 0xc8, 0xb7, 0xbf, 0x56, 0x95, 0x0b, 0xf7, 0xb9, 0x09, 0x55, 0x49, 0xbf, 0xc5, 0x03, - 0x68, 0x1f, 0x81, 0x38, 0xba, 0xf4, 0xd7, 0x25, 0x07, 0x31, 0xcd, 0x40, 0x3c, 0xcd, 0x02, 0x22, - 0xa9, 0x98, 0xa0, 0x9c, 0x43, 0xcb, 0x31, 0x1c, 0x89, 0xf5, 0x06, 0x7f, 0xc8, 0xa3, 0xe7, 0x28, - 0x94, 0x66, 0x74, 0x8b, 0x8e, 0xdb, 0x61, 0x2b, 0x10, 0x80, 0xae, 0x32, 0x40, 0xff, 0xef, 0x2b, - 0x00, 0x1a, 0x4d, 0xef, 0x97, 0x73, 0xe8, 0xee, 0x28, 0xaa, 0x3e, 0x5d, 0xd8, 0x12, 0x19, 0xce, - 0xbf, 0x93, 0xc0, 0xd3, 0xc1, 0x79, 0x62, 0xc9, 0x61, 0x6c, 0xb3, 0xec, 0x30, 0x76, 0xa2, 0xf4, - 0x30, 0x0e, 0x3d, 0xaf, 0x15, 0x60, 0x97, 0x67, 0xcc, 0x05, 0x52, 0x99, 0x21, 0x7d, 0x96, 0x69, - 0xfe, 0x32, 0x25, 0xe1, 0xcb, 0x39, 0xf4, 0x24, 0x3e, 0xa9, 0xd9, 0x32, 0xf7, 0x3f, 0x93, 0xc0, - 0xbb, 0x99, 0xc6, 0xd0, 0x37, 0x37, 0xc7, 0x7f, 0x8d, 0xe1, 0xdf, 0xfe, 0xda, 0xf8, 0x07, 0x93, - 0x20, 0xe5, 0x1c, 0x5a, 0x4b, 0x03, 0x3f, 0x94, 0x36, 0xf9, 0x63, 0x09, 0x3c, 0x8e, 0x23, 0xb7, - 0xbb, 0xf4, 0xe4, 0xd1, 0x3b, 0x6d, 0xc7, 0x0a, 0x1e, 0x39, 0x60, 0xc8, 0x00, 0x7f, 0x94, 0x01, - 0xf0, 0xa4, 0xb4, 0x76, 0x39, 0x87, 0xee, 0xf7, 0x81, 0x4e, 0x4c, 0x80, 0xff, 0x95, 0x04, 0xd6, - 0x53, 0x3c, 0xd7, 0xb5, 0xdb, 0xf8, 0x90, 0x25, 0xc3, 0x04, 0xc8, 0xeb, 0x0c, 0xe4, 0xe6, 0xd7, - 0xf1, 0xdf, 0xc1, 0xbc, 0x5a, 0x39, 0x87, 0x1e, 0x4d, 0x70, 0x62, 0xdd, 0x6e, 0xc7, 0x93, 0x70, - 0xbf, 0x27, 0x81, 0xfb, 0x71, 0xa8, 0x87, 0xbd, 0x5c, 0xd5, 0xc8, 0xbc, 0xdf, 0x60, 0x08, 0x3f, - 0xc8, 0x80, 0x70, 0x5c, 0xc2, 0xab, 0x9c, 0x43, 0xc5, 0x3e, 0xb4, 0xb1, 0x69, 0xb1, 0x5f, 0x95, - 0xc0, 0xed, 0x38, 0xa6, 0x90, 0x04, 0x21, 0x45, 0xd3, 0x19, 0x88, 0xc7, 0x33, 0xa9, 0xbb, 0xdf, - 0x84, 0xec, 0x53, 0x39, 0x87, 0x96, 0xfa, 0x48, 0x92, 0xd2, 0x53, 0x3e, 0x58, 0x8c, 0x63, 0x88, - 0xce, 0xb9, 0xd1, 0x3e, 0x34, 0x9b, 0x92, 0x72, 0x19, 0x97, 0xfe, 0xe1, 0xdb, 0xee, 0x98, 0xd4, - 0x50, 0x0b, 0x14, 0xba, 0x2e, 0x3d, 0x84, 0xd9, 0x21, 0xc1, 0x1d, 0x72, 0xcc, 0x2e, 0xc8, 0xc4, - 0x8e, 0x3b, 0x97, 0xf2, 0xca, 0x3d, 0x36, 0xf1, 0x52, 0xce, 0xa1, 0x1b, 0x5d, 0x77, 0xb4, 0x13, - 0x9e, 0xb0, 0x4d, 0x7e, 0x58, 0x5b, 0x60, 0x1f, 0x45, 0x2a, 0x0b, 0xa9, 0x16, 0x9e, 0x90, 0xce, - 0xe1, 0x03, 0x4d, 0x26, 0x80, 0x3f, 0x04, 0xcb, 0x49, 0x03, 0x65, 0xe9, 0x1e, 0xa1, 0x7c, 0x3e, - 0x75, 0x83, 0x99, 0x98, 0x2a, 0x2a, 0xe7, 0xd0, 0xc2, 0xf0, 0xa8, 0xfb, 0x24, 0xf0, 0x4f, 0x79, - 0x08, 0x19, 0x46, 0xc0, 0xaf, 0xc4, 0xe2, 0xe9, 0x24, 0x81, 0x66, 0x81, 0xa1, 0x51, 0xb3, 0xa2, - 0x99, 0x90, 0x95, 0x2a, 0xe7, 0xd0, 0xbd, 0x21, 0x60, 0xc9, 0xd4, 0xf0, 0x2f, 0x24, 0xb0, 0x16, - 0x77, 0x41, 0xb7, 0x7f, 0xa9, 0x82, 0xed, 0xe3, 0x00, 0x7b, 0xae, 0xd3, 0x8c, 0x96, 0x85, 0xf0, - 0xca, 0xc5, 0xd4, 0x57, 0x88, 0x6c, 0x9f, 0x06, 0x94, 0x73, 0xe8, 0x61, 0xdf, 0x4b, 0xe3, 0xb4, - 0xc7, 0x81, 0xe1, 0x3a, 0xcd, 0x81, 0xcf, 0x08, 0x7e, 0x2c, 0x81, 0x7b, 0xc9, 0x47, 0x06, 0x27, - 0xc0, 0x84, 0x5d, 0xff, 0x08, 0x78, 0x37, 0x33, 0x1f, 0xa1, 0x92, 0x2b, 0xf6, 0x07, 0x8f, 0x50, - 0x3d, 0x1a, 0x27, 0x88, 0xd7, 0xa7, 0x87, 0xdc, 0xad, 0xe9, 0x7e, 0x1b, 0x7a, 0x98, 0xe7, 0x59, - 0xf8, 0x2c, 0x0a, 0x14, 0x4b, 0xa9, 0x4b, 0x37, 0xb9, 0x04, 0x5c, 0x78, 0x74, 0x72, 0x79, 0xf8, - 0x0f, 0xc0, 0x35, 0x9b, 0x25, 0x7c, 0x70, 0x3f, 0xdd, 0x52, 0xb8, 0xc5, 0x34, 0x8d, 0xbf, 0x20, - 0x4c, 0x4c, 0x4e, 0x96, 0x73, 0x48, 0xb6, 0x87, 0x3a, 0xa2, 0x90, 0x18, 0x77, 0x01, 0x61, 0x59, - 0x76, 0x3c, 0x16, 0x23, 0x5b, 0x4e, 0x5d, 0xb0, 0x13, 0x2e, 0x15, 0x79, 0x48, 0x9c, 0x74, 0xeb, - 0x28, 0x8e, 0xca, 0x09, 0x20, 0x7a, 0xb7, 0x00, 0x1c, 0xc7, 0x4a, 0xea, 0x3c, 0x4f, 0xbe, 0x6b, - 0xe4, 0xf3, 0x9c, 0x72, 0x1f, 0xf9, 0x6b, 0x12, 0x0b, 0x22, 0xd1, 0x7b, 0xe3, 0xa7, 0xf1, 0x8f, - 0xe0, 0xa2, 0x57, 0xc6, 0xdb, 0x59, 0xdf, 0x5e, 0xc7, 0x7d, 0x42, 0x37, 0xf0, 0xf6, 0x9a, 0x40, - 0x04, 0x3f, 0x01, 0x62, 0xb2, 0x30, 0x89, 0x72, 0xb5, 0x85, 0x22, 0xd3, 0xfa, 0xad, 0x94, 0x69, - 0x1f, 0xcc, 0xed, 0x96, 0x73, 0xe8, 0xaa, 0x3d, 0xd8, 0x0e, 0xdb, 0x60, 0x4e, 0xc8, 0xa6, 0x01, - 0x2a, 0x9e, 0xe2, 0x2d, 0xdc, 0x49, 0xb9, 0xa3, 0x1c, 0x9f, 0x69, 0x2d, 0xe7, 0xd0, 0x8c, 0x9d, - 0xd4, 0x0b, 0xf7, 0xc0, 0x4c, 0xff, 0x96, 0x84, 0x07, 0x46, 0x3e, 0x9d, 0x77, 0x99, 0xb2, 0xb7, - 0xc6, 0x2a, 0x4b, 0xb8, 0xc5, 0x2d, 0xe7, 0xd0, 0x75, 0x3f, 0xe1, 0x72, 0xf7, 0x18, 0xdc, 0x1c, - 0x73, 0x8d, 0xc8, 0x55, 0xdd, 0x4b, 0x19, 0xd7, 0xf8, 0xab, 0x4f, 0x1a, 0xf0, 0xf7, 0xc7, 0x5f, - 0x8c, 0xee, 0x01, 0x31, 0x6a, 0x2c, 0x72, 0x03, 0x3e, 0x4f, 0x22, 0x17, 0xee, 0xa7, 0x0c, 0x2e, - 0x21, 0xf1, 0x4c, 0x07, 0x67, 0x27, 0xe4, 0xa3, 0x2b, 0xe0, 0x4a, 0x4f, 0x07, 0x9b, 0xa5, 0x07, - 0x4c, 0xf6, 0xbd, 0x54, 0xd9, 0x94, 0xb8, 0x9c, 0x43, 0x97, 0xed, 0x78, 0xca, 0x78, 0x17, 0xc0, - 0x78, 0x1a, 0x83, 0xcf, 0x48, 0xe1, 0x61, 0x4a, 0xc5, 0xc8, 0x70, 0xca, 0x96, 0x45, 0x93, 0xe1, - 0x34, 0xee, 0x90, 0xe8, 0x2e, 0x4b, 0x2e, 0x16, 0x1e, 0x65, 0x16, 0xcd, 0xb3, 0x91, 0x83, 0xa2, - 0x45, 0x86, 0x72, 0x48, 0xb4, 0xc3, 0x72, 0x3b, 0x85, 0xd5, 0xcc, 0xa2, 0x79, 0x32, 0x68, 0x50, - 0xb4, 0x48, 0x10, 0xb5, 0xc0, 0x7c, 0x5c, 0x34, 0x4f, 0x38, 0x45, 0x76, 0x79, 0x9c, 0x72, 0x2f, - 0x90, 0x9c, 0xb3, 0x2d, 0xe7, 0xd0, 0xac, 0x9d, 0x9c, 0xcd, 0x4d, 0xd6, 0x26, 0x4c, 0xf5, 0xd6, - 0x57, 0xd4, 0xd6, 0x33, 0xd8, 0x88, 0x36, 0x61, 0xb6, 0x64, 0x6d, 0xc2, 0x7a, 0xdf, 0xfa, 0x8a, - 0xda, 0x7a, 0x36, 0x1c, 0xd1, 0x26, 0x2c, 0xd9, 0x06, 0x0b, 0x71, 0x6d, 0x2c, 0x9f, 0x1a, 0xd0, - 0xdd, 0xb2, 0x1b, 0x10, 0xbf, 0xb0, 0x96, 0x59, 0x5d, 0x3c, 0xab, 0x3b, 0xa8, 0x6e, 0x20, 0xdf, - 0xfb, 0xdb, 0x12, 0x28, 0xc6, 0x0f, 0x08, 0xa4, 0xb9, 0xc1, 0x5f, 0x89, 0x3b, 0xf1, 0x6b, 0x96, - 0xc2, 0x7a, 0xea, 0x9d, 0x6c, 0x6a, 0x39, 0x2d, 0xbf, 0x93, 0xed, 0x91, 0x35, 0x47, 0xc9, 0xe0, - 0x2b, 0x30, 0x97, 0x70, 0xc3, 0x42, 0xdc, 0x26, 0x29, 0xbc, 0x9d, 0x7a, 0xc4, 0x1e, 0x53, 0xcc, - 0xca, 0x8f, 0xd8, 0x43, 0x9d, 0x6e, 0x93, 0x0c, 0x2b, 0x8b, 0x8e, 0x9b, 0x9e, 0x43, 0x0a, 0x4f, - 0x32, 0x2b, 0x1b, 0x2a, 0x20, 0x1d, 0x54, 0xd6, 0xef, 0x84, 0xdf, 0x07, 0xd7, 0x42, 0xfb, 0x40, - 0xec, 0x43, 0x84, 0x6e, 0x88, 0xfe, 0x49, 0x61, 0x23, 0x65, 0x2f, 0x4a, 0x4a, 0xad, 0xd0, 0xbd, - 0x28, 0xb4, 0x0f, 0xe2, 0xed, 0x30, 0x04, 0x0b, 0x81, 0x48, 0x86, 0x60, 0x9f, 0x49, 0xc2, 0x07, - 0x84, 0x5d, 0x64, 0x77, 0x5b, 0x61, 0xe1, 0x9d, 0x94, 0x2b, 0xa9, 0x49, 0x79, 0x94, 0x72, 0x0e, - 0xcd, 0x05, 0xc9, 0xfd, 0xc3, 0xcb, 0x42, 0xa4, 0x72, 0xc5, 0x92, 0x7f, 0x37, 0xb3, 0x9f, 0xc6, - 0x0b, 0x00, 0x06, 0xfd, 0x74, 0xa0, 0x34, 0x20, 0x59, 0x9b, 0x58, 0x84, 0xdf, 0xfe, 0x8a, 0xda, - 0x92, 0x16, 0xe1, 0x40, 0xbe, 0x7b, 0x0f, 0xcc, 0x44, 0x8e, 0x71, 0x82, 0xf7, 0x49, 0xd8, 0x7c, - 0x29, 0xf6, 0xc0, 0xf7, 0x52, 0x76, 0xa4, 0x84, 0x64, 0x12, 0xdd, 0x91, 0x9c, 0x84, 0x1c, 0xd3, - 0x4f, 0x86, 0x6e, 0xf3, 0x84, 0x03, 0xf6, 0xf5, 0xf2, 0x77, 0xfc, 0xc2, 0xfb, 0x99, 0x2f, 0xcf, - 0xc6, 0x7f, 0x07, 0x35, 0x78, 0xa5, 0x97, 0x48, 0x07, 0x7f, 0x34, 0xf4, 0x66, 0xff, 0xaa, 0xbb, - 0x47, 0x30, 0x79, 0x35, 0xf4, 0x9a, 0xf0, 0x34, 0xf3, 0x05, 0xe7, 0xe8, 0xe7, 0xa9, 0x83, 0x17, - 0x9c, 0xac, 0xff, 0x55, 0xfc, 0xf5, 0x60, 0xf3, 0x3c, 0x38, 0xcb, 0x24, 0x3d, 0x3b, 0x73, 0x21, - 0x2f, 0x4f, 0x51, 0xe2, 0xde, 0x11, 0x92, 0x3a, 0x74, 0x74, 0xdb, 0xcc, 0x5e, 0x18, 0x56, 0xff, - 0xf6, 0x6a, 0xff, 0x53, 0xff, 0xe8, 0x94, 0x03, 0x6f, 0x83, 0xa5, 0x92, 0x6e, 0xaa, 0xc6, 0x73, - 0x0d, 0x61, 0xa4, 0x99, 0x46, 0x03, 0xa9, 0xc3, 0x1f, 0xea, 0xdd, 0x04, 0x85, 0x51, 0x12, 0x53, - 0x43, 0xcf, 0x35, 0x24, 0x4b, 0x70, 0x05, 0xdc, 0x1c, 0xed, 0xdd, 0x69, 0x6c, 0x6a, 0xa8, 0xa6, - 0x59, 0x9a, 0x29, 0xe7, 0xe1, 0x3b, 0x60, 0x7d, 0x94, 0xa2, 0xa4, 0x58, 0xca, 0xa6, 0x62, 0x6a, - 0xb8, 0x6e, 0x98, 0xd6, 0x36, 0xd2, 0x4c, 0x6c, 0x6a, 0x95, 0x2d, 0x5c, 0x36, 0x4c, 0x4b, 0x2b, - 0xc9, 0x53, 0xf0, 0x6d, 0xf0, 0xd6, 0x04, 0xa6, 0xea, 0xae, 0xf9, 0x71, 0x65, 0x80, 0xe3, 0x0c, - 0xdc, 0x00, 0x6b, 0x93, 0x38, 0x8c, 0xda, 0xb6, 0x51, 0xda, 0x1c, 0xe0, 0x39, 0x0b, 0x1f, 0x83, - 0x07, 0x59, 0xa0, 0xa1, 0x92, 0x29, 0x9f, 0x83, 0x0f, 0xc1, 0xdd, 0x54, 0x48, 0x94, 0xf2, 0x3c, - 0xbc, 0x0f, 0x8a, 0xa3, 0x94, 0x4a, 0xbd, 0x5e, 0xd1, 0x55, 0xc5, 0xd2, 0x8d, 0x1a, 0x2e, 0x5b, - 0x56, 0x5d, 0xbe, 0x00, 0xef, 0x81, 0xdb, 0x93, 0xe9, 0x2c, 0xb5, 0x2e, 0x5f, 0x4c, 0x26, 0x7b, - 0xa1, 0xd7, 0x4a, 0xc6, 0x0b, 0x13, 0x97, 0x34, 0x73, 0xc7, 0x32, 0xea, 0x32, 0x80, 0x6f, 0x81, - 0x87, 0x13, 0xf0, 0x99, 0x1f, 0x57, 0xf8, 0x9c, 0x31, 0x8c, 0x97, 0x52, 0x0c, 0xdc, 0x1f, 0xba, - 0x56, 0x32, 0xcb, 0xfa, 0x96, 0x25, 0x5f, 0x86, 0xef, 0x82, 0xb7, 0x33, 0xc9, 0x8f, 0x9b, 0xf8, - 0x4a, 0x8a, 0x1e, 0xa4, 0x95, 0xf4, 0xc1, 0xa9, 0x9f, 0xce, 0x3a, 0x29, 0xdb, 0x6a, 0x5d, 0xbe, - 0x9a, 0x69, 0x52, 0x28, 0xa5, 0x9c, 0xd9, 0x3c, 0x94, 0xfa, 0x1a, 0xfc, 0x00, 0xbc, 0xff, 0x55, - 0xcc, 0x23, 0xd6, 0x43, 0x45, 0x33, 0x4d, 0x19, 0xc2, 0x6f, 0x81, 0x47, 0x59, 0x98, 0x95, 0x4f, - 0x1a, 0x48, 0x93, 0xaf, 0xc3, 0x07, 0xe0, 0xce, 0x04, 0xf2, 0xd2, 0x6e, 0x4d, 0xa9, 0x1a, 0xa5, - 0x4d, 0xf9, 0x46, 0x8a, 0x8b, 0xab, 0x8a, 0x69, 0x2a, 0xb5, 0x12, 0x52, 0xf0, 0x8e, 0xb6, 0x6b, - 0xd6, 0x15, 0x55, 0x33, 0xe5, 0x99, 0x94, 0x59, 0xeb, 0xf3, 0xc4, 0xe7, 0x60, 0x16, 0x3e, 0x05, - 0xef, 0x4e, 0xe0, 0xd2, 0x2a, 0x8a, 0x69, 0xe9, 0xaa, 0xa9, 0x29, 0x48, 0x2d, 0x0f, 0x70, 0xce, - 0x65, 0x9a, 0x6f, 0xc1, 0xaf, 0xa8, 0x65, 0x4d, 0x2e, 0xa4, 0x58, 0x8b, 0x73, 0x54, 0xb5, 0xaa, - 0x81, 0x76, 0x4b, 0x9b, 0xf2, 0x7c, 0x26, 0x05, 0xcc, 0xb2, 0x98, 0x2b, 0x58, 0x48, 0x19, 0x0c, - 0xe7, 0x50, 0x2b, 0x0d, 0xd3, 0x1a, 0x72, 0xde, 0x45, 0xb8, 0x0a, 0xee, 0xa7, 0x7a, 0x17, 0x9f, - 0xc5, 0x9b, 0x70, 0x0d, 0xac, 0x66, 0xf2, 0x2f, 0x4e, 0xbf, 0x94, 0x32, 0x99, 0x7d, 0xfa, 0xaa, - 0xae, 0x22, 0xc3, 0x34, 0xb6, 0x2c, 0xf9, 0x16, 0x7c, 0x0f, 0x6c, 0x4c, 0x9a, 0x4c, 0x43, 0xdd, - 0x41, 0x86, 0xa2, 0x96, 0x87, 0xe2, 0xdc, 0x72, 0x8a, 0xef, 0x47, 0xb1, 0x51, 0xb1, 0x2a, 0x8a, - 0x29, 0xaf, 0xa4, 0xac, 0x29, 0xb3, 0x66, 0xbc, 0xd8, 0xaa, 0x28, 0x3b, 0x9a, 0x7c, 0x7b, 0x8c, - 0x5c, 0x43, 0x8d, 0x59, 0xb7, 0x64, 0xe2, 0x3a, 0x32, 0xbe, 0xb7, 0x2b, 0x17, 0xc7, 0xb8, 0x62, - 0x9c, 0xba, 0xac, 0x6f, 0x97, 0xb1, 0xf2, 0x5c, 0xd1, 0x2b, 0xca, 0xa6, 0x5e, 0xd1, 0xad, 0x5d, - 0xf9, 0x0e, 0x7c, 0x1f, 0xbc, 0x93, 0xc2, 0xc5, 0x56, 0x88, 0xae, 0x62, 0xa4, 0x6d, 0xeb, 0xa6, - 0x85, 0x58, 0xe8, 0x94, 0xef, 0x26, 0x47, 0x61, 0x53, 0xa9, 0x56, 0xe2, 0x21, 0x56, 0xbe, 0x07, - 0x8b, 0xe0, 0xd6, 0x28, 0x9d, 0xa6, 0x6e, 0xf0, 0x4f, 0xd2, 0x6b, 0xaa, 0x26, 0xdf, 0x1f, 0xe3, - 0x74, 0x86, 0x3a, 0x1c, 0x86, 0x71, 0xcd, 0xa8, 0x61, 0xa5, 0x24, 0x3f, 0x80, 0x77, 0xc1, 0xca, - 0xa4, 0x7d, 0x91, 0x7d, 0xaa, 0xfc, 0x30, 0xd9, 0xf7, 0xe3, 0x3b, 0x80, 0xf2, 0xc2, 0xc4, 0xaa, - 0x51, 0x33, 0x8d, 0x8a, 0x26, 0x3f, 0x5a, 0xfd, 0x33, 0x09, 0x4c, 0x0f, 0xfe, 0xd3, 0x0d, 0x5c, - 0x06, 0x8b, 0x3d, 0x09, 0xa6, 0xa5, 0x58, 0x0d, 0x73, 0x68, 0xfb, 0x5e, 0x04, 0x73, 0xc3, 0x04, - 0x66, 0x43, 0x55, 0x69, 0xa4, 0x92, 0x12, 0x3b, 0x77, 0xf4, 0x7a, 0x5d, 0x2b, 0xc9, 0x79, 0x38, - 0x0f, 0x66, 0x86, 0x3b, 0x35, 0x84, 0x0c, 0x24, 0x4f, 0x25, 0xf1, 0x29, 0x9b, 0x06, 0x62, 0x3b, - 0xf1, 0xea, 0x4f, 0xf3, 0x60, 0x4a, 0xb5, 0x14, 0x78, 0x1d, 0x5c, 0x55, 0x2d, 0x65, 0xf4, 0x3f, - 0x05, 0x68, 0xa3, 0xd2, 0xb0, 0xca, 0x74, 0x60, 0x35, 0x4d, 0xb5, 0x0c, 0x7a, 0x8e, 0x98, 0x03, - 0xd7, 0x59, 0xbb, 0x6a, 0xe9, 0xcf, 0xe9, 0xf1, 0xc2, 0x34, 0x75, 0xa3, 0x46, 0x8f, 0x0f, 0xbd, - 0x0e, 0x0a, 0x19, 0x23, 0xed, 0xe3, 0x86, 0x66, 0x5a, 0xa6, 0x3c, 0x15, 0x75, 0xd4, 0x91, 0x56, - 0xd5, 0x1b, 0x55, 0x6c, 0x36, 0xea, 0x75, 0x03, 0x59, 0xf2, 0x99, 0xa8, 0xc3, 0x42, 0x74, 0x49, - 0x97, 0x70, 0x49, 0x7b, 0xae, 0xd3, 0x58, 0x78, 0x36, 0xd2, 0xdd, 0xa8, 0x6f, 0x23, 0xa5, 0xa4, - 0xe1, 0x4d, 0xa5, 0x56, 0xd3, 0x90, 0x7c, 0x2e, 0x62, 0xd8, 0xd4, 0x2b, 0x15, 0xbd, 0xb6, 0x8d, - 0xcd, 0x46, 0xb5, 0xaa, 0xa0, 0x5d, 0xf9, 0x7c, 0x34, 0x02, 0xa1, 0xbb, 0xa2, 0x9b, 0x96, 0x7c, - 0x81, 0x7d, 0x79, 0xde, 0x6f, 0xac, 0x1a, 0x35, 0xdd, 0x32, 0x90, 0x5e, 0xdb, 0x96, 0x2f, 0xb2, - 0x6f, 0xda, 0x2d, 0x05, 0x6b, 0xdf, 0xb3, 0x34, 0x54, 0x53, 0x2a, 0x58, 0x69, 0x94, 0x74, 0x0b, - 0x9b, 0x96, 0x81, 0x94, 0x6d, 0x4d, 0x06, 0x11, 0x00, 0x63, 0x87, 0xa2, 0x30, 0xa9, 0xed, 0x76, - 0x6b, 0xaa, 0x7c, 0x69, 0xf5, 0x8f, 0xce, 0x81, 0x99, 0xc4, 0x02, 0x4b, 0xba, 0x37, 0xe8, 0x35, - 0x4b, 0xdb, 0xe6, 0x5e, 0x8d, 0xb5, 0x1a, 0x32, 0x2a, 0x15, 0xbc, 0xa3, 0xd7, 0x86, 0xbf, 0xb6, - 0xbf, 0x0d, 0x96, 0xc6, 0x11, 0x9a, 0x15, 0x45, 0xdd, 0x91, 0x25, 0xea, 0x92, 0xe3, 0x48, 0xa8, - 0x9b, 0x19, 0x7a, 0x49, 0x95, 0xf3, 0xf4, 0xb4, 0x31, 0x8e, 0xaa, 0xae, 0x6c, 0x6b, 0xa8, 0xd4, - 0xb0, 0x76, 0xe5, 0xa9, 0x49, 0xfa, 0xb4, 0xaa, 0xa2, 0x57, 0xe4, 0x33, 0xf4, 0x68, 0x38, 0x8e, - 0xe4, 0x99, 0x8e, 0x14, 0xf9, 0x2c, 0xbc, 0x03, 0x96, 0xc7, 0x51, 0x30, 0xf7, 0x42, 0x25, 0xf9, - 0x1c, 0x5d, 0xc7, 0xe3, 0x88, 0xaa, 0x8a, 0x65, 0x69, 0xa8, 0x6a, 0x98, 0x96, 0x7c, 0x7e, 0xd2, - 0xf0, 0xaa, 0x26, 0xb6, 0x34, 0xa5, 0x6a, 0xca, 0x17, 0x26, 0x51, 0x19, 0x75, 0x73, 0x5b, 0xab, - 0xe9, 0x9a, 0x7c, 0x71, 0x12, 0x74, 0x3a, 0x79, 0x32, 0x98, 0x38, 0x38, 0xa5, 0xba, 0x25, 0x5f, - 0x9a, 0x8c, 0x5b, 0x2d, 0xeb, 0x35, 0x0d, 0xeb, 0x25, 0xf9, 0x32, 0xfc, 0x36, 0x78, 0x92, 0x4e, - 0x87, 0xb7, 0x75, 0xab, 0xdc, 0xd8, 0x64, 0xeb, 0x83, 0xae, 0x8b, 0x2b, 0x70, 0x1d, 0x3c, 0xce, - 0xc0, 0xa6, 0xea, 0x48, 0xad, 0x68, 0xaa, 0x2e, 0x4f, 0xd3, 0x58, 0x93, 0x4d, 0x4f, 0x45, 0xd9, - 0x94, 0xaf, 0xd2, 0xfd, 0x2c, 0x03, 0xf9, 0x33, 0xad, 0xb6, 0xa3, 0xd7, 0x4c, 0x59, 0xce, 0x48, - 0xaf, 0xd4, 0x4c, 0x7d, 0xb3, 0xa2, 0xc9, 0xd7, 0x26, 0x99, 0x87, 0xee, 0x7c, 0xba, 0xaa, 0xd5, - 0x8c, 0x17, 0x32, 0x5c, 0xfd, 0x08, 0x9c, 0x17, 0x17, 0xa5, 0x74, 0x9d, 0x6e, 0x69, 0x8a, 0x45, - 0xf7, 0xf6, 0x91, 0x18, 0x17, 0x75, 0x0c, 0xaf, 0x7a, 0x69, 0xf5, 0x4f, 0x24, 0xb0, 0x38, 0xa1, - 0x60, 0x93, 0xda, 0x25, 0x62, 0x46, 0x9a, 0x6a, 0x54, 0xab, 0x5a, 0xad, 0xc4, 0x31, 0x25, 0xc6, - 0xd3, 0x55, 0x70, 0x7f, 0x32, 0x79, 0xcd, 0xb0, 0x38, 0xad, 0x44, 0xc7, 0x38, 0x99, 0xb6, 0x64, - 0xd4, 0x34, 0x39, 0xbf, 0xf9, 0x83, 0xbf, 0xff, 0xf2, 0x96, 0xf4, 0x0f, 0x5f, 0xde, 0x92, 0xfe, - 0xe5, 0xcb, 0x5b, 0xd2, 0x27, 0xc6, 0x81, 0x1b, 0xbe, 0xec, 0xee, 0xad, 0x35, 0xbd, 0xf6, 0xfa, - 0x81, 0x6f, 0x1f, 0xb9, 0x3c, 0x91, 0x66, 0xb7, 0xd6, 0x7b, 0xff, 0x39, 0x68, 0x1f, 0xba, 0xeb, - 0x07, 0xa4, 0xb3, 0xce, 0x8a, 0x6b, 0xd7, 0x0f, 0xbc, 0xa1, 0x3f, 0x21, 0xfc, 0x20, 0xf6, 0x78, - 0xf4, 0x64, 0xef, 0x1c, 0x23, 0x7b, 0xe7, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x4a, 0x6c, 0x77, - 0xb8, 0xb4, 0x50, 0x00, 0x00, + // 4806 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x7c, 0xdb, 0x8f, 0xdb, 0x48, + 0x76, 0xb7, 0xa8, 0xf6, 0xf5, 0xb8, 0xdd, 0xa6, 0xcb, 0x76, 0x5b, 0x6d, 0xbb, 0x7d, 0x91, 0xef, + 0xed, 0xd9, 0xee, 0x71, 0xcf, 0xec, 0x8c, 0x77, 0x67, 0xbe, 0x6f, 0xc2, 0xa6, 0xd8, 0x2d, 0xba, + 0x25, 0x51, 0x53, 0xa4, 0xec, 0xed, 0x59, 0x2c, 0x0a, 0x6c, 0xb1, 0xba, 0x4d, 0x58, 0x2d, 0xf6, + 0x90, 0x54, 0x7b, 0x3a, 0x41, 0xb0, 0x9b, 0x2b, 0x82, 0xcc, 0x6e, 0x90, 0x00, 0x41, 0x10, 0x60, + 0x80, 0x20, 0x41, 0x2e, 0xc8, 0x43, 0x80, 0x3c, 0x05, 0xfb, 0x98, 0xec, 0x5b, 0x1e, 0x03, 0x04, + 0x79, 0xca, 0x4b, 0x30, 0xff, 0x40, 0x9e, 0x12, 0x20, 0x41, 0x82, 0x04, 0x55, 0x45, 0x4a, 0x94, + 0x44, 0x89, 0x9c, 0x89, 0x07, 0x0b, 0xb4, 0xdf, 0xc4, 0xaa, 0x73, 0xf9, 0xd5, 0xa9, 0x53, 0xa7, + 0x8a, 0x75, 0x0e, 0x05, 0x0f, 0x43, 0xda, 0xa1, 0xfb, 0x9e, 0x1f, 0xae, 0xf4, 0x02, 0x7b, 0x97, + 0xd2, 0x03, 0xda, 0x0d, 0x83, 0x95, 0x83, 0xc7, 0xc9, 0xc7, 0xe5, 0x7d, 0xdf, 0x0b, 0x3d, 0x74, + 0x39, 0x26, 0x5d, 0x4e, 0xf6, 0x1d, 0x3c, 0x2e, 0x2f, 0x01, 0x6a, 0xe9, 0x6b, 0x76, 0xb7, 0x4b, + 0x7d, 0xb5, 0xe3, 0xb6, 0x5f, 0x6a, 0xac, 0x07, 0x5d, 0x84, 0xe3, 0x76, 0x87, 0xfa, 0x61, 0x49, + 0xba, 0x29, 0x3d, 0x38, 0x8d, 0xc5, 0x43, 0x79, 0x1d, 0x1e, 0xb4, 0x74, 0xa3, 0xbb, 0xed, 0xd9, + 0xbe, 0xa3, 0x7a, 0x7b, 0xfb, 0x1d, 0x1a, 0xd2, 0x0d, 0xcf, 0xf2, 0x2a, 0x76, 0xf0, 0x42, 0x34, + 0x0e, 0x24, 0x5c, 0x81, 0x53, 0xbd, 0x80, 0xfa, 0x5d, 0x7b, 0x8f, 0x46, 0x42, 0xfa, 0xcf, 0xe5, + 0xbb, 0x70, 0xbb, 0x2f, 0x47, 0x71, 0x9c, 0x75, 0xd7, 0x0f, 0x42, 0x4c, 0x03, 0xaf, 0xe7, 0xb7, + 0xe9, 0x40, 0x44, 0x79, 0x29, 0xa1, 0x6e, 0x94, 0xac, 0x66, 0x87, 0x49, 0xc0, 0xe5, 0x8f, 0xe0, + 0x56, 0x9f, 0xd6, 0xa4, 0xa1, 0xea, 0x53, 0x87, 0x76, 0x43, 0xd7, 0xee, 0x98, 0xbd, 0xed, 0x3d, + 0x37, 0xcc, 0xc6, 0x94, 0x14, 0xf0, 0x71, 0x8f, 0x06, 0xa1, 0xeb, 0x75, 0xbb, 0xb6, 0xeb, 0xd3, + 0xbc, 0x02, 0x7e, 0x19, 0xee, 0xf6, 0x05, 0x60, 0xba, 0xeb, 0x06, 0x0c, 0xe0, 0x0b, 0xbb, 0xd3, + 0xa1, 0xdd, 0xdd, 0xbc, 0x42, 0xd0, 0x02, 0x9c, 0xda, 0xdb, 0xb1, 0x49, 0x78, 0xb8, 0x4f, 0x4b, + 0x45, 0xde, 0x77, 0x72, 0x6f, 0xc7, 0xb6, 0x0e, 0xf7, 0x29, 0x5a, 0x04, 0xe8, 0x78, 0xbb, 0x6e, + 0x97, 0xec, 0x74, 0xbc, 0x57, 0xa5, 0x19, 0xde, 0x79, 0x9a, 0xb7, 0xac, 0x77, 0xbc, 0x57, 0x02, + 0x3f, 0xa6, 0x6d, 0xef, 0x80, 0xfa, 0x87, 0xaa, 0xe7, 0xd0, 0x40, 0xf5, 0xba, 0xa1, 0xdb, 0xed, + 0xd1, 0x9c, 0x93, 0xf2, 0x01, 0x2c, 0x8e, 0x09, 0xd8, 0x3f, 0xcc, 0xc9, 0xfc, 0x21, 0x5c, 0x1f, + 0x61, 0x6e, 0xfa, 0x6e, 0x37, 0xcc, 0xc9, 0x5d, 0x06, 0xb9, 0xe2, 0x06, 0x9c, 0xb9, 0x4e, 0x43, + 0xdb, 0xb1, 0x43, 0x1b, 0xcd, 0x41, 0xd1, 0x75, 0x22, 0xca, 0xa2, 0xeb, 0x94, 0x6d, 0x28, 0xc5, + 0x34, 0xb1, 0x0f, 0xf4, 0x69, 0x35, 0x38, 0xe5, 0x47, 0x6d, 0x9c, 0x63, 0x6e, 0xf5, 0xe1, 0xf2, + 0x04, 0x7f, 0x5f, 0x1e, 0x15, 0x82, 0xfb, 0xac, 0xe5, 0x97, 0x80, 0xe2, 0x5e, 0x33, 0xa4, 0xfb, + 0x66, 0x68, 0x87, 0xbd, 0x00, 0x7d, 0x04, 0x27, 0x02, 0xfe, 0x2b, 0x12, 0x7d, 0x3f, 0x53, 0xb4, + 0x60, 0xc4, 0x11, 0x1b, 0x5b, 0x4b, 0xd4, 0xf7, 0x3d, 0x3f, 0x9a, 0x50, 0xf1, 0x50, 0xfe, 0x33, + 0x09, 0xe6, 0x5b, 0x7a, 0x82, 0xc5, 0x0f, 0xa9, 0x23, 0x4c, 0xa5, 0xc1, 0xa9, 0xbd, 0x68, 0x68, + 0x5c, 0xe7, 0x99, 0x1c, 0xc3, 0x89, 0x6d, 0x81, 0xfb, 0xac, 0x48, 0xed, 0x03, 0x2f, 0x72, 0x21, + 0x8f, 0x72, 0x00, 0x8f, 0x47, 0x1d, 0x83, 0x2f, 0xff, 0xb7, 0x04, 0x37, 0x07, 0x30, 0x63, 0xa3, + 0x99, 0xb4, 0x43, 0xdb, 0x6c, 0x85, 0xbc, 0x56, 0xc0, 0xf5, 0xc4, 0x34, 0x0a, 0xc8, 0x8f, 0x73, + 0x4f, 0xe3, 0x40, 0x5c, 0x2c, 0x22, 0x31, 0xfe, 0x99, 0xaf, 0x3f, 0xfe, 0xdf, 0x28, 0xb2, 0x20, + 0x14, 0x13, 0xe8, 0xdd, 0x90, 0xee, 0xfa, 0x36, 0x1b, 0xb9, 0xf2, 0xdc, 0x34, 0xf4, 0x8a, 0xaa, + 0x7a, 0xdd, 0x2e, 0x6d, 0x87, 0x47, 0xde, 0x0e, 0x3f, 0x2d, 0x26, 0xfd, 0xa0, 0x62, 0x87, 0xf6, + 0xb6, 0x1d, 0x50, 0x5c, 0x31, 0xb5, 0xae, 0xef, 0x75, 0x3a, 0x47, 0x7d, 0xfc, 0xe8, 0x09, 0x94, + 0x02, 0xee, 0xf4, 0xd4, 0x21, 0xb1, 0xe4, 0x80, 0xb4, 0xbd, 0x5e, 0x37, 0x2c, 0x1d, 0xbb, 0x29, + 0x3d, 0x98, 0xc1, 0xf3, 0x71, 0x7f, 0x0c, 0x25, 0x50, 0x59, 0x6f, 0xf9, 0x3f, 0x24, 0xb8, 0x36, + 0xb0, 0xdc, 0x66, 0x6f, 0x9b, 0x6a, 0x9b, 0x6f, 0x88, 0xd5, 0xca, 0x4f, 0xa1, 0xd4, 0xd2, 0x55, + 0xbb, 0xd3, 0xb1, 0x3c, 0x85, 0xc7, 0x8b, 0xc4, 0x86, 0xb0, 0x0c, 0x33, 0xed, 0x68, 0xc4, 0x73, + 0xab, 0xd7, 0x26, 0x4a, 0x57, 0x2d, 0x05, 0x33, 0xc2, 0xf2, 0x4f, 0x8e, 0x27, 0xed, 0x58, 0xa1, + 0xfb, 0x1d, 0xef, 0xd0, 0xa4, 0xfe, 0x81, 0xdb, 0xa6, 0x47, 0xde, 0xfb, 0x76, 0xe1, 0xac, 0xc3, + 0x07, 0x4c, 0xf6, 0x68, 0xf8, 0xc2, 0x73, 0xb8, 0xcb, 0xcd, 0xad, 0xae, 0x4d, 0x94, 0x35, 0xcd, + 0x50, 0xcb, 0xa2, 0xa9, 0xce, 0x25, 0xe1, 0x59, 0x27, 0xf1, 0x84, 0x6c, 0x38, 0x13, 0x29, 0xe2, + 0x47, 0x90, 0xe3, 0x5c, 0xcd, 0x2f, 0xfc, 0x5f, 0xd4, 0xb0, 0xb3, 0x0b, 0x06, 0xa7, 0xff, 0xbb, + 0x4c, 0x60, 0x36, 0x09, 0x00, 0x2d, 0xc2, 0x42, 0x45, 0x6b, 0xd6, 0x8c, 0x2d, 0x52, 0xd7, 0xac, + 0xaa, 0x51, 0x21, 0xad, 0x86, 0xd9, 0xd4, 0x54, 0x7d, 0x5d, 0xd7, 0x2a, 0x72, 0x01, 0xcd, 0x03, + 0x1a, 0xee, 0x56, 0x5a, 0x96, 0x21, 0x4b, 0xa8, 0x04, 0x17, 0x87, 0xdb, 0xeb, 0x4a, 0xa3, 0xa5, + 0xd4, 0xe4, 0x62, 0x99, 0x02, 0x0c, 0x54, 0xa3, 0xab, 0x70, 0x39, 0xa2, 0xb3, 0xb6, 0x9a, 0xda, + 0x88, 0xf0, 0xeb, 0x70, 0x25, 0xd9, 0xa9, 0x37, 0x4c, 0x4b, 0xa9, 0xd5, 0x88, 0xa9, 0x62, 0xbd, + 0x69, 0xc9, 0x12, 0xba, 0x02, 0xf3, 0xc9, 0x7e, 0xa5, 0xae, 0x7c, 0x62, 0x34, 0x88, 0xa6, 0x9a, + 0x72, 0xb1, 0xfc, 0xc5, 0x31, 0xb8, 0x33, 0x18, 0xbf, 0xea, 0x53, 0x3b, 0xa4, 0xf1, 0xd3, 0xa1, + 0xea, 0x75, 0x77, 0xdc, 0xdd, 0x23, 0xef, 0x97, 0x1e, 0x9c, 0x6d, 0xf3, 0x91, 0x0e, 0xfb, 0xe5, + 0xd3, 0x1c, 0x0e, 0x33, 0xd9, 0x60, 0xcb, 0xe2, 0x77, 0xec, 0x9f, 0xed, 0xc4, 0x53, 0xf9, 0x2f, + 0x24, 0x98, 0x4d, 0x76, 0x33, 0xef, 0x51, 0x8d, 0xc6, 0xba, 0xbe, 0x91, 0xee, 0x3d, 0x63, 0xdd, + 0xca, 0x73, 0x93, 0x68, 0xea, 0x2a, 0x31, 0xcd, 0xba, 0x2c, 0xb1, 0xf9, 0x4f, 0xef, 0xd6, 0x74, + 0x55, 0x93, 0x8b, 0xe9, 0xec, 0xb8, 0x62, 0x72, 0x17, 0x98, 0x41, 0x0b, 0x70, 0x29, 0x85, 0x7d, + 0xd3, 0x94, 0x8f, 0x95, 0xff, 0x4b, 0x82, 0x1b, 0x29, 0xfb, 0x65, 0xf4, 0x5e, 0x70, 0xe4, 0x03, + 0xff, 0xaf, 0x14, 0x93, 0x8b, 0x23, 0x1e, 0xbe, 0x98, 0xb9, 0x9e, 0x4f, 0xeb, 0x56, 0xcd, 0x3c, + 0xf2, 0x36, 0xf8, 0x9d, 0x22, 0x3c, 0x4e, 0x06, 0xc8, 0xe0, 0x65, 0xe8, 0xed, 0xb3, 0x6d, 0xf0, + 0x80, 0x56, 0x5c, 0x9f, 0xb6, 0x43, 0xcf, 0x3f, 0xb4, 0x3c, 0xaf, 0x13, 0xe8, 0xdd, 0x20, 0xb4, + 0xdf, 0x80, 0xd3, 0xc0, 0xe7, 0x45, 0x58, 0xce, 0x32, 0x48, 0xdf, 0x45, 0x8e, 0xbc, 0x35, 0xfe, + 0xaa, 0x08, 0xf7, 0x06, 0xd6, 0x50, 0x7a, 0xa1, 0x17, 0xff, 0x4e, 0x1c, 0x21, 0x8f, 0xfc, 0x0e, + 0x72, 0x1f, 0xce, 0xa5, 0x1f, 0xa7, 0xe7, 0xfc, 0xe1, 0x63, 0xf4, 0x8f, 0x8a, 0x70, 0x7b, 0x60, + 0x2e, 0x4d, 0x5d, 0xe5, 0xab, 0xa6, 0xfb, 0x26, 0xbd, 0x8b, 0xfe, 0xbb, 0x04, 0x0b, 0xa3, 0x27, + 0x2e, 0xb6, 0x51, 0xbd, 0x61, 0x03, 0x17, 0x27, 0x87, 0x86, 0xe7, 0x1c, 0xfd, 0x18, 0xf1, 0x9b, + 0x45, 0x78, 0x38, 0x65, 0x1b, 0xd5, 0x95, 0x7a, 0xd3, 0xeb, 0xb8, 0xed, 0xc3, 0x23, 0x6f, 0x88, + 0xff, 0x91, 0xa0, 0x3c, 0x30, 0x44, 0xd3, 0x77, 0xbb, 0x6d, 0x77, 0xdf, 0xee, 0x04, 0x6f, 0xce, + 0x76, 0xf1, 0x9f, 0x12, 0x2c, 0x0e, 0x2c, 0x60, 0xd1, 0x20, 0x8c, 0xae, 0x9e, 0xde, 0x84, 0xc8, + 0xf7, 0x6f, 0x12, 0x94, 0x12, 0x01, 0x20, 0x4a, 0x3d, 0x38, 0x47, 0x7e, 0xdc, 0x57, 0x59, 0xdc, + 0x8b, 0xe2, 0x1d, 0x7d, 0x85, 0xbd, 0x4e, 0x32, 0x3d, 0x72, 0x83, 0x39, 0xc4, 0x50, 0xa7, 0x69, + 0x1f, 0x24, 0x09, 0x6e, 0xb1, 0x57, 0x90, 0x61, 0x6e, 0xb6, 0x61, 0x76, 0x12, 0x24, 0x6f, 0xc1, + 0xd2, 0x08, 0xc9, 0x33, 0x97, 0xbe, 0xaa, 0x78, 0xed, 0xde, 0x1e, 0xed, 0x86, 0xf6, 0xf0, 0x95, + 0x4d, 0xf9, 0x6f, 0x24, 0xb8, 0xa4, 0x04, 0x81, 0xcb, 0x7c, 0x8f, 0x4f, 0x41, 0xdf, 0xf7, 0xee, + 0xc3, 0xb9, 0xb6, 0xd7, 0x3d, 0xa0, 0x7e, 0xc0, 0x79, 0x48, 0xff, 0xea, 0x7e, 0x2e, 0xd9, 0xac, + 0x3b, 0xe8, 0x16, 0xcc, 0x86, 0x5e, 0x68, 0x77, 0x48, 0xe8, 0xbd, 0xa4, 0x5d, 0x71, 0x35, 0x3d, + 0x83, 0xcf, 0xf0, 0x36, 0x8b, 0x37, 0xa1, 0xdb, 0x70, 0x76, 0xdf, 0xf7, 0xf6, 0xf6, 0xc3, 0x98, + 0x66, 0x86, 0xd3, 0xcc, 0x8a, 0xc6, 0x88, 0xe8, 0x11, 0x9c, 0x6f, 0xf7, 0x31, 0xc4, 0x84, 0xe2, + 0xe4, 0x20, 0x0f, 0x3a, 0x04, 0x71, 0xf9, 0x1f, 0x25, 0xb8, 0x28, 0x70, 0x6b, 0x9f, 0xd1, 0x76, + 0xef, 0x6b, 0xc0, 0x5e, 0x04, 0xe8, 0x7a, 0x0e, 0x8d, 0x4e, 0x28, 0x02, 0xf4, 0x69, 0xd6, 0xc2, + 0x0f, 0x27, 0x63, 0xa3, 0x9a, 0xc9, 0x31, 0xaa, 0x63, 0x79, 0x47, 0x75, 0x7c, 0xc2, 0xa8, 0x9e, + 0xc0, 0x15, 0x31, 0xa8, 0x06, 0x7d, 0xa5, 0x26, 0xe0, 0xf6, 0xf3, 0x2d, 0x6d, 0x3b, 0xa4, 0xbb, + 0x9e, 0x7f, 0x18, 0xe7, 0x5b, 0xe2, 0xe7, 0xf2, 0x5f, 0x4b, 0x70, 0x41, 0xb0, 0x2a, 0xed, 0x36, + 0x0d, 0x02, 0x4c, 0x3f, 0xed, 0xd1, 0x20, 0x64, 0x18, 0x63, 0xff, 0x15, 0xf7, 0x3f, 0x82, 0x71, + 0x36, 0x6e, 0xe4, 0x17, 0x2a, 0x3f, 0x97, 0x19, 0xfc, 0x42, 0x82, 0xd9, 0x18, 0x31, 0x6b, 0x46, + 0xf3, 0x70, 0xc2, 0xe6, 0xbf, 0x22, 0x8c, 0xd1, 0xd3, 0xcf, 0x07, 0xdd, 0x1d, 0x40, 0xc2, 0x90, + 0x35, 0x37, 0x08, 0x27, 0x66, 0xb0, 0xbe, 0x0f, 0xf2, 0x80, 0x4a, 0xac, 0x39, 0xb4, 0x31, 0x16, + 0xbb, 0x26, 0xc7, 0x89, 0x71, 0x15, 0x83, 0xe8, 0x35, 0x2c, 0xbc, 0xb5, 0xef, 0x7c, 0x73, 0xc2, + 0x2b, 0x94, 0xc5, 0xde, 0xd7, 0x27, 0xdc, 0x86, 0xf9, 0x64, 0xff, 0xde, 0x76, 0x7c, 0xc2, 0xfb, + 0x46, 0x55, 0xbc, 0x6e, 0x13, 0xa5, 0xa8, 0x78, 0xdd, 0x86, 0xfa, 0xc5, 0xa4, 0x8a, 0x0d, 0xdf, + 0xee, 0x86, 0x81, 0xe5, 0xb5, 0x02, 0xea, 0xa3, 0x65, 0xb8, 0xc0, 0x03, 0x13, 0xf1, 0xbd, 0x0e, + 0x0d, 0xc8, 0x2e, 0xeb, 0xa3, 0xc2, 0xf5, 0x8e, 0xe3, 0xf3, 0xbc, 0x8b, 0x85, 0xf6, 0x60, 0x43, + 0x74, 0xa0, 0xb7, 0xe1, 0xa2, 0xa0, 0x0f, 0x7d, 0xdb, 0x0d, 0x07, 0x0c, 0x45, 0xce, 0x80, 0x78, + 0x9f, 0xc5, 0xbb, 0x22, 0x8e, 0xf2, 0x1f, 0xcc, 0x24, 0x95, 0x63, 0x7a, 0xe0, 0xd2, 0x57, 0xaf, + 0x79, 0x96, 0xd0, 0x13, 0x58, 0x70, 0xec, 0xc3, 0x80, 0xec, 0xdb, 0x41, 0x48, 0xba, 0xf4, 0xb3, + 0x90, 0xd8, 0x3d, 0xc7, 0x0d, 0x09, 0x9b, 0xa8, 0x08, 0xda, 0x25, 0x46, 0xd0, 0xb4, 0x59, 0xc8, + 0xfb, 0x2c, 0x54, 0x58, 0x6f, 0x85, 0x41, 0x58, 0x87, 0x1b, 0x7b, 0xdc, 0xe4, 0xc1, 0x0b, 0x77, + 0x9f, 0xf8, 0xf4, 0xd3, 0x9e, 0xeb, 0x53, 0xb6, 0x81, 0x05, 0xa4, 0xfd, 0xc2, 0xee, 0xee, 0x52, + 0x87, 0xaf, 0xf1, 0x53, 0x78, 0x71, 0x40, 0x86, 0x13, 0x54, 0xaa, 0x20, 0x42, 0x4f, 0xa0, 0xe4, + 0xf3, 0xa1, 0x91, 0x1d, 0x26, 0x84, 0x76, 0xdb, 0x87, 0x7d, 0x01, 0xc7, 0xb8, 0x80, 0x79, 0xd1, + 0xbf, 0x1e, 0x77, 0xc7, 0x9c, 0x1f, 0xc2, 0xd5, 0x88, 0xd3, 0xb1, 0x0f, 0x89, 0xb7, 0x43, 0xf6, + 0xbc, 0x6e, 0xf8, 0xa2, 0xcf, 0x7c, 0x9c, 0x33, 0x5f, 0x16, 0x24, 0x15, 0xfb, 0xd0, 0xd8, 0xa9, + 0xb3, 0xfe, 0x98, 0xfb, 0x3b, 0xb0, 0xd0, 0xed, 0x31, 0x60, 0x8c, 0xd3, 0xa7, 0x7b, 0xde, 0x01, + 0x75, 0x48, 0x04, 0xb5, 0x74, 0x82, 0x8f, 0x7c, 0x5e, 0x10, 0x18, 0x3b, 0x58, 0x74, 0x0b, 0x17, + 0x0b, 0xca, 0xbf, 0x2f, 0x8d, 0x4f, 0xcc, 0x6b, 0x76, 0x3c, 0xf4, 0x18, 0x2e, 0xd9, 0xbc, 0x9f, + 0x74, 0xdc, 0x20, 0x24, 0xd1, 0x40, 0x5d, 0x27, 0x4a, 0x68, 0x23, 0x7b, 0x44, 0xbf, 0xee, 0x94, + 0x7f, 0x2c, 0xc1, 0x42, 0x22, 0x59, 0x2a, 0xd2, 0x5d, 0x93, 0x22, 0x23, 0x5a, 0x83, 0x63, 0x2f, + 0xdd, 0xae, 0x90, 0x37, 0xb7, 0xba, 0x3c, 0x11, 0xe5, 0x98, 0xc4, 0x4d, 0xb7, 0xeb, 0x60, 0xce, + 0x8b, 0xae, 0xc2, 0xe9, 0x5e, 0x40, 0x7d, 0xc2, 0x0b, 0x0c, 0x66, 0x06, 0x05, 0x06, 0x0d, 0x7b, + 0x8f, 0x96, 0x3d, 0x76, 0x54, 0x1a, 0xe3, 0xe6, 0x49, 0x77, 0xb1, 0x5b, 0x36, 0xc6, 0x6c, 0xb5, + 0x9a, 0x1f, 0x45, 0xca, 0x5a, 0xf5, 0xe1, 0x66, 0x8a, 0xc2, 0xf8, 0xe0, 0xfa, 0xcd, 0xe8, 0xfc, + 0x67, 0x09, 0x2e, 0xf4, 0xab, 0x68, 0xf8, 0xda, 0x14, 0x7a, 0x72, 0xed, 0xea, 0x89, 0x7b, 0x18, + 0xe2, 0xf9, 0xee, 0xae, 0xdb, 0x8d, 0x66, 0xb7, 0x7f, 0x0f, 0x63, 0xf0, 0x56, 0x74, 0x17, 0xe6, + 0xda, 0x1d, 0xaf, 0xe7, 0x90, 0x7d, 0xdf, 0x3b, 0x70, 0x1d, 0xea, 0x47, 0xc6, 0x3e, 0xcb, 0x5b, + 0x9b, 0x51, 0x23, 0x32, 0xe0, 0x94, 0x13, 0xbd, 0xae, 0xf2, 0xa5, 0x73, 0x66, 0xf5, 0x9d, 0xcc, + 0x03, 0x30, 0x75, 0xe2, 0x37, 0xdc, 0xc1, 0xe8, 0x62, 0x21, 0xe5, 0x67, 0x70, 0x65, 0x32, 0x1d, + 0xba, 0x0c, 0x27, 0x9d, 0xed, 0xe4, 0xe8, 0x4e, 0x38, 0xdb, 0x7c, 0x5c, 0x37, 0xe0, 0x8c, 0xb3, + 0x4d, 0x78, 0x0d, 0x54, 0xdb, 0xeb, 0x44, 0x63, 0x02, 0x67, 0xbb, 0x19, 0xb5, 0x94, 0xff, 0x55, + 0x82, 0x2b, 0xeb, 0xd4, 0x0e, 0x7b, 0x3e, 0xc5, 0xb4, 0xed, 0xed, 0xed, 0xd1, 0xae, 0x93, 0x38, + 0x46, 0x0d, 0xb9, 0x95, 0x34, 0xec, 0x56, 0xe8, 0xbb, 0x70, 0x72, 0x47, 0xb0, 0x46, 0xae, 0x7b, + 0x73, 0xe2, 0x18, 0x63, 0x15, 0x31, 0x03, 0xfa, 0x0c, 0x16, 0xa3, 0x9f, 0xc4, 0x1f, 0xd2, 0x4b, + 0x12, 0xaf, 0x0d, 0x73, 0xab, 0xef, 0x66, 0x4a, 0x1c, 0x62, 0x8e, 0xde, 0x1f, 0xae, 0xee, 0x4c, + 0xee, 0x2c, 0xbf, 0x82, 0x8b, 0x96, 0xb2, 0x21, 0x4e, 0xc2, 0xf4, 0xe3, 0x1e, 0xf5, 0xa3, 0xeb, + 0x83, 0x1b, 0x20, 0x8e, 0x49, 0x84, 0x9d, 0x6b, 0x45, 0xb5, 0xcb, 0x0c, 0x06, 0xde, 0xd4, 0x60, + 0x2d, 0x03, 0x02, 0xea, 0xec, 0xd2, 0xf8, 0x68, 0x25, 0x08, 0x34, 0xd6, 0xc2, 0x4e, 0xc9, 0x6e, + 0x40, 0x82, 0x1e, 0x8f, 0x07, 0x51, 0xc8, 0x3d, 0xed, 0x06, 0xa6, 0x68, 0x28, 0xaf, 0xc3, 0x35, + 0x93, 0xb6, 0x7b, 0xbe, 0x1b, 0x1e, 0x62, 0x3e, 0xa4, 0x0d, 0x1a, 0x62, 0x1a, 0xf4, 0x3a, 0xd1, + 0x22, 0x44, 0x70, 0x2c, 0x61, 0x66, 0xfe, 0x9b, 0xb5, 0xb1, 0x98, 0x1f, 0xc5, 0x7f, 0xfe, 0xbb, + 0x6c, 0xc3, 0x85, 0x7e, 0xde, 0x68, 0x9d, 0x86, 0xed, 0x17, 0x82, 0x7d, 0xdc, 0x33, 0xa5, 0x34, + 0xcf, 0x1c, 0x5b, 0x0e, 0xc5, 0xf1, 0xe5, 0x50, 0xfe, 0xa7, 0xf7, 0xe0, 0x5c, 0x8b, 0xd9, 0x9b, + 0x8b, 0x36, 0xba, 0xd4, 0xd8, 0x41, 0x2d, 0x38, 0xd7, 0x73, 0xc9, 0x36, 0x2f, 0x95, 0x23, 0x6d, + 0xf6, 0x56, 0x94, 0x19, 0x56, 0xc7, 0x2b, 0xeb, 0xaa, 0x05, 0x7c, 0xb6, 0xe7, 0x26, 0x5a, 0xd1, + 0x17, 0x12, 0x3c, 0xec, 0xb9, 0xc4, 0x13, 0x95, 0x63, 0x24, 0x3a, 0x5c, 0x52, 0xb2, 0xeb, 0x91, + 0xd0, 0x23, 0x4e, 0x5c, 0x5a, 0x17, 0x69, 0x14, 0x2f, 0x93, 0xca, 0x14, 0x8d, 0xf9, 0xea, 0xf3, + 0xaa, 0x05, 0x7c, 0xbb, 0xe7, 0x66, 0xd2, 0xa2, 0xcf, 0x25, 0xb8, 0x9d, 0x40, 0x67, 0x3b, 0x0e, + 0xd9, 0x71, 0x7d, 0xbe, 0x0b, 0x44, 0x36, 0x14, 0xb8, 0xc4, 0x1a, 0xff, 0x30, 0x1b, 0xd7, 0xe4, + 0x7a, 0xbf, 0x6a, 0x01, 0x5f, 0xef, 0x43, 0x4a, 0x25, 0x1b, 0xb5, 0x55, 0x0a, 0x9a, 0x8e, 0x1d, + 0xf6, 0x67, 0xe7, 0x78, 0x5e, 0x5b, 0x65, 0x14, 0x17, 0x0e, 0xd9, 0x6a, 0x32, 0x2d, 0xfa, 0x75, + 0x09, 0x6e, 0x26, 0xd0, 0x05, 0x34, 0x24, 0xed, 0x7e, 0x1d, 0x22, 0x09, 0x78, 0x09, 0x20, 0xdf, + 0xce, 0xcf, 0xac, 0x7e, 0x37, 0x1b, 0xd4, 0xa4, 0x2a, 0xc6, 0x6a, 0x01, 0x5f, 0xeb, 0xa3, 0x49, + 0x21, 0x42, 0xbf, 0x2b, 0xc1, 0x9d, 0x04, 0x0c, 0x3f, 0xca, 0x39, 0xb2, 0xc3, 0x88, 0x28, 0x46, + 0x8c, 0xa1, 0x9c, 0xe4, 0x50, 0xfe, 0x7f, 0x36, 0x94, 0x69, 0xe5, 0x8c, 0xd5, 0x02, 0xbe, 0xd9, + 0x87, 0x33, 0x81, 0x30, 0xb6, 0x8c, 0x1f, 0x15, 0x08, 0x92, 0x36, 0x8b, 0x27, 0xa4, 0x1d, 0x15, + 0x28, 0x46, 0xd3, 0x75, 0x2a, 0xd3, 0x32, 0x19, 0xe5, 0x8d, 0xc2, 0x32, 0x93, 0x89, 0xd0, 0x67, + 0x70, 0x2d, 0x0d, 0xc5, 0xfe, 0x61, 0x84, 0xe0, 0x34, 0x47, 0xf0, 0x5e, 0x7e, 0x04, 0xc9, 0xfa, + 0xc8, 0x6a, 0x01, 0x97, 0xc6, 0xb4, 0x47, 0x04, 0xe8, 0x97, 0x60, 0x71, 0x5c, 0xf3, 0xbe, 0xef, + 0x76, 0xc3, 0x48, 0x35, 0x70, 0xd5, 0xef, 0xe7, 0x55, 0x3d, 0x52, 0x5d, 0x59, 0x2d, 0xe0, 0x85, + 0x11, 0xdd, 0x03, 0x0a, 0xd4, 0x81, 0x85, 0x9e, 0x4b, 0x9c, 0x28, 0x64, 0xb2, 0xfd, 0xc5, 0x0f, + 0xa9, 0x43, 0xb8, 0xf0, 0xd2, 0x19, 0xae, 0x78, 0x25, 0x47, 0xc6, 0x3e, 0x59, 0xa3, 0x58, 0x2d, + 0xe0, 0xf9, 0x9e, 0x9b, 0x5a, 0xbd, 0xf8, 0xb9, 0x70, 0xbf, 0xbe, 0xba, 0xfe, 0xd2, 0x0c, 0xe2, + 0x44, 0x4d, 0xa4, 0x79, 0x96, 0x6b, 0xfe, 0x4e, 0x0e, 0xcd, 0xe9, 0x65, 0x87, 0xc2, 0xf3, 0x32, + 0x4a, 0x13, 0x7f, 0xc8, 0x1d, 0xaf, 0x0f, 0x26, 0x2a, 0x6e, 0x09, 0x44, 0x9d, 0x4a, 0x04, 0xe4, + 0x2c, 0x07, 0xf2, 0xed, 0xaf, 0x55, 0xe5, 0x22, 0x7c, 0x6e, 0x4a, 0x55, 0xd2, 0x6f, 0x89, 0x00, + 0x3a, 0x40, 0x10, 0x1d, 0x5d, 0x06, 0xeb, 0x52, 0x80, 0x98, 0xe3, 0x20, 0x9e, 0xe4, 0x01, 0x91, + 0x56, 0x4c, 0x50, 0x2d, 0xe0, 0x1b, 0x09, 0x1c, 0xa9, 0xf5, 0x06, 0x7f, 0x28, 0xa2, 0xe7, 0x38, + 0x94, 0x76, 0x7c, 0x8b, 0x4e, 0xf6, 0xc2, 0x4e, 0x10, 0x01, 0x3a, 0xc7, 0x01, 0xfd, 0xbf, 0xaf, + 0x00, 0x68, 0x3c, 0xbd, 0x5f, 0x2d, 0xe0, 0x3b, 0xe3, 0xa8, 0x06, 0x74, 0x61, 0x27, 0xca, 0x70, + 0xfe, 0x4c, 0x82, 0x27, 0xc3, 0xf3, 0xc4, 0x93, 0xc3, 0xc4, 0xe6, 0xd9, 0x61, 0xe2, 0xc4, 0xe9, + 0x61, 0x12, 0x7a, 0x5e, 0x27, 0x20, 0xae, 0xc8, 0x98, 0x47, 0x48, 0x65, 0x8e, 0xf4, 0x69, 0xae, + 0xf9, 0xcb, 0x95, 0x84, 0xaf, 0x16, 0xf0, 0xe3, 0xe4, 0xa4, 0xe6, 0xcb, 0xdc, 0xff, 0x54, 0x82, + 0x77, 0x73, 0x8d, 0x61, 0x60, 0x6e, 0x81, 0xff, 0x3c, 0xc7, 0xbf, 0xf1, 0xb5, 0xf1, 0x0f, 0x27, + 0x41, 0xaa, 0x05, 0xbc, 0x9c, 0x05, 0x7e, 0x24, 0x6d, 0xf2, 0x47, 0x12, 0x3c, 0x4a, 0x22, 0xb7, + 0x7b, 0xec, 0xe4, 0xd1, 0x3f, 0x6d, 0x27, 0x0a, 0x1e, 0x05, 0x60, 0xc4, 0x01, 0x7f, 0x94, 0x03, + 0xf0, 0xb4, 0xb4, 0x76, 0xb5, 0x80, 0xef, 0x0d, 0x80, 0x4e, 0x4d, 0x80, 0xff, 0xa5, 0x04, 0x2b, + 0x19, 0x9e, 0xeb, 0xda, 0x7b, 0x64, 0x9f, 0x27, 0xc3, 0x22, 0x90, 0x17, 0x38, 0xc8, 0xb5, 0xaf, + 0xe3, 0xbf, 0xc3, 0x79, 0xb5, 0x6a, 0x01, 0x3f, 0x9c, 0xe2, 0xc4, 0xba, 0xbd, 0x97, 0x4c, 0xc2, + 0xfd, 0x9e, 0x04, 0xf7, 0x92, 0x50, 0xf7, 0xfb, 0xb9, 0xaa, 0xb1, 0x79, 0xbf, 0xc8, 0x11, 0x7e, + 0x90, 0x03, 0xe1, 0xa4, 0x84, 0x57, 0xb5, 0x80, 0xcb, 0x03, 0x68, 0x13, 0xd3, 0x62, 0xbf, 0x2a, + 0xc1, 0xad, 0x24, 0xa6, 0x90, 0x06, 0x21, 0x43, 0xd3, 0x1d, 0x8a, 0xc7, 0x97, 0x32, 0x77, 0xbf, + 0x29, 0xd9, 0xa7, 0x6a, 0x01, 0x2f, 0x0e, 0x90, 0xa4, 0xa5, 0xa7, 0x7c, 0xb8, 0x9a, 0xc4, 0x10, + 0x9f, 0x73, 0xe3, 0x7d, 0x68, 0x3e, 0x23, 0xe5, 0x32, 0x29, 0xfd, 0x23, 0xb6, 0xdd, 0x09, 0xa9, + 0xa1, 0x0e, 0x94, 0x7a, 0x2e, 0x3b, 0x84, 0xd9, 0x21, 0x25, 0x5d, 0xfa, 0x8a, 0x5f, 0x90, 0x45, + 0x3b, 0xee, 0xe5, 0x8c, 0x57, 0xee, 0x89, 0x89, 0x97, 0x6a, 0x01, 0x5f, 0xec, 0xb9, 0xe3, 0x9d, + 0xe8, 0x90, 0x6f, 0xf2, 0xa3, 0xda, 0x02, 0xfb, 0x20, 0x56, 0x59, 0xca, 0xb4, 0xf0, 0x94, 0x74, + 0x8e, 0x18, 0x68, 0x3a, 0x01, 0xfa, 0x21, 0xdc, 0x48, 0x1b, 0x28, 0x4f, 0xf7, 0x44, 0xca, 0x17, + 0x32, 0x37, 0x98, 0xa9, 0xa9, 0xa2, 0x6a, 0x01, 0x5f, 0x19, 0x1d, 0xf5, 0x80, 0x04, 0xfd, 0x89, + 0x08, 0x21, 0xa3, 0x08, 0xc4, 0x95, 0x58, 0x32, 0x9d, 0x14, 0xa1, 0xb9, 0xc2, 0xd1, 0xa8, 0x79, + 0xd1, 0x4c, 0xc9, 0x4a, 0x55, 0x0b, 0xf8, 0xee, 0x08, 0xb0, 0x74, 0x6a, 0xf4, 0xe7, 0x12, 0x2c, + 0x27, 0x5d, 0xd0, 0x1d, 0x5c, 0xaa, 0x10, 0xfb, 0x55, 0x40, 0x3c, 0xd7, 0x69, 0xc7, 0xcb, 0x22, + 0xf2, 0xca, 0xab, 0x99, 0xaf, 0x10, 0xf9, 0x3e, 0x0d, 0xa8, 0x16, 0xf0, 0x83, 0x81, 0x97, 0x26, + 0x69, 0x5f, 0x05, 0x86, 0xeb, 0xb4, 0x87, 0x3e, 0x23, 0xf8, 0xb1, 0x04, 0x77, 0xd3, 0x8f, 0x0c, + 0x4e, 0x40, 0x28, 0xbf, 0xfe, 0x89, 0xe0, 0x5d, 0xcb, 0x7d, 0x84, 0x4a, 0xaf, 0xd8, 0x1f, 0x3e, + 0x42, 0xf5, 0x69, 0x9c, 0x20, 0x59, 0x9f, 0x1e, 0x0a, 0xb7, 0x66, 0xfb, 0x6d, 0xe8, 0x11, 0x91, + 0x67, 0x11, 0xb3, 0x18, 0xa1, 0x58, 0xcc, 0x5c, 0xba, 0xe9, 0x25, 0xe0, 0x91, 0x47, 0xa7, 0x97, + 0x87, 0xff, 0x00, 0xce, 0xdb, 0x3c, 0xe1, 0x43, 0x06, 0xe9, 0x96, 0xd2, 0x75, 0xae, 0x69, 0xf2, + 0x05, 0x61, 0x6a, 0x72, 0xb2, 0x5a, 0xc0, 0xb2, 0x3d, 0xd2, 0x11, 0x87, 0xc4, 0xa4, 0x0b, 0x44, + 0x96, 0xe5, 0xc7, 0xe3, 0x68, 0x64, 0x37, 0x32, 0x17, 0xec, 0x94, 0x4b, 0x45, 0x11, 0x12, 0xa7, + 0xdd, 0x3a, 0x46, 0x47, 0xe5, 0x14, 0x10, 0xfd, 0x5b, 0x00, 0x81, 0xe3, 0x66, 0xe6, 0x3c, 0x4f, + 0xbf, 0x6b, 0x14, 0xf3, 0x9c, 0x71, 0x1f, 0xf9, 0x6b, 0x12, 0x0f, 0x22, 0xf1, 0x7b, 0xe3, 0xa7, + 0xc9, 0x8f, 0xe0, 0xe2, 0x57, 0xc6, 0x5b, 0x79, 0xdf, 0x5e, 0x27, 0x7d, 0x42, 0x37, 0xf4, 0xf6, + 0x9a, 0x42, 0x84, 0x3e, 0x81, 0x68, 0xb2, 0x08, 0x8d, 0x73, 0xb5, 0xa5, 0x32, 0xd7, 0xfa, 0xad, + 0x8c, 0x69, 0x1f, 0xce, 0xed, 0x56, 0x0b, 0xf8, 0x9c, 0x3d, 0xdc, 0x8e, 0xf6, 0xe0, 0x72, 0x24, + 0x9b, 0x05, 0xa8, 0x64, 0x8a, 0xb7, 0x74, 0x3b, 0xe3, 0x8e, 0x72, 0x72, 0xa6, 0xb5, 0x5a, 0xc0, + 0x97, 0xec, 0xb4, 0x5e, 0xb4, 0x0d, 0x97, 0x06, 0xb7, 0x24, 0x22, 0x30, 0x8a, 0xe9, 0xbc, 0xc3, + 0x95, 0xbd, 0x35, 0x51, 0x59, 0xca, 0x2d, 0x6e, 0xb5, 0x80, 0x2f, 0xf8, 0x29, 0x97, 0xbb, 0xaf, + 0xe0, 0xda, 0x84, 0x6b, 0x44, 0xa1, 0xea, 0x6e, 0xc6, 0xb8, 0x26, 0x5f, 0x7d, 0xb2, 0x80, 0xbf, + 0x33, 0xf9, 0x62, 0x74, 0x1b, 0xa2, 0x51, 0x93, 0x28, 0x37, 0xe0, 0x8b, 0x24, 0x72, 0xe9, 0x5e, + 0xc6, 0xe0, 0x52, 0x12, 0xcf, 0x6c, 0x70, 0x76, 0x4a, 0x3e, 0xba, 0x06, 0x67, 0xfb, 0x3a, 0xf8, + 0x2c, 0xdd, 0xe7, 0xb2, 0xef, 0x66, 0xca, 0x66, 0xc4, 0xd5, 0x02, 0x9e, 0xb5, 0x93, 0x29, 0xe3, + 0x2d, 0x40, 0xc9, 0x34, 0x86, 0x98, 0x91, 0xd2, 0x83, 0x8c, 0x8a, 0x91, 0xd1, 0x94, 0x2d, 0x8f, + 0x26, 0xa3, 0x69, 0xdc, 0x11, 0xd1, 0x3d, 0x9e, 0x5c, 0x2c, 0x3d, 0xcc, 0x2d, 0x5a, 0x64, 0x23, + 0x87, 0x45, 0x47, 0x19, 0xca, 0x11, 0xd1, 0x0e, 0xcf, 0xed, 0x94, 0x96, 0x72, 0x8b, 0x16, 0xc9, + 0xa0, 0x61, 0xd1, 0x51, 0x82, 0xa8, 0x03, 0x0b, 0x49, 0xd1, 0x22, 0xe1, 0x14, 0xdb, 0xe5, 0x51, + 0xc6, 0xbd, 0x40, 0x7a, 0xce, 0xb6, 0x5a, 0xc0, 0xf3, 0x76, 0x7a, 0x36, 0x37, 0x5d, 0x5b, 0x64, + 0xaa, 0xb7, 0xbe, 0xa2, 0xb6, 0xbe, 0xc1, 0xc6, 0xb4, 0x45, 0x66, 0x4b, 0xd7, 0x16, 0x59, 0xef, + 0x5b, 0x5f, 0x51, 0x5b, 0xdf, 0x86, 0x63, 0xda, 0x22, 0x4b, 0xee, 0xc1, 0x95, 0xa4, 0x36, 0x9e, + 0x4f, 0x0d, 0xd8, 0x6e, 0xd9, 0x0b, 0xa8, 0x5f, 0x5a, 0xce, 0xad, 0x2e, 0x99, 0xd5, 0x1d, 0x56, + 0x37, 0x94, 0xef, 0xfd, 0x6d, 0x09, 0xca, 0xc9, 0x03, 0x02, 0x6d, 0xaf, 0x8a, 0x57, 0xe2, 0x6e, + 0xf2, 0x9a, 0xa5, 0xb4, 0x92, 0x79, 0x27, 0x9b, 0x59, 0x4e, 0x2b, 0xee, 0x64, 0xfb, 0x64, 0xed, + 0x71, 0x32, 0xf4, 0x12, 0x2e, 0xa7, 0xdc, 0xb0, 0x50, 0xb7, 0x4d, 0x4b, 0x6f, 0x67, 0x1e, 0xb1, + 0x27, 0x14, 0xb3, 0x8a, 0x23, 0xf6, 0x48, 0xa7, 0xdb, 0xa6, 0xa3, 0xca, 0xe2, 0xe3, 0xa6, 0xe7, + 0xd0, 0xd2, 0xe3, 0xdc, 0xca, 0x46, 0x0a, 0x48, 0x87, 0x95, 0x0d, 0x3a, 0xd1, 0xf7, 0xe1, 0x7c, + 0x68, 0xef, 0x46, 0xfb, 0x10, 0x65, 0x1b, 0xa2, 0x7f, 0x58, 0x5a, 0xcd, 0xd8, 0x8b, 0xd2, 0x52, + 0x2b, 0x6c, 0x2f, 0x0a, 0xed, 0xdd, 0x64, 0x3b, 0x0a, 0xe1, 0x4a, 0x10, 0x25, 0x43, 0x88, 0xcf, + 0x25, 0x91, 0x5d, 0xca, 0x2f, 0xb2, 0x7b, 0x9d, 0xb0, 0xf4, 0x4e, 0xc6, 0x95, 0xd4, 0xb4, 0x3c, + 0x4a, 0xb5, 0x80, 0x2f, 0x07, 0xe9, 0xfd, 0xa3, 0xcb, 0x22, 0x4a, 0xe5, 0x46, 0x4b, 0xfe, 0xdd, + 0xdc, 0x7e, 0x9a, 0x2c, 0x00, 0x18, 0xf6, 0xd3, 0xa1, 0xd2, 0x80, 0x74, 0x6d, 0xd1, 0x22, 0xfc, + 0xf6, 0x57, 0xd4, 0x96, 0xb6, 0x08, 0x87, 0xf2, 0xdd, 0xdb, 0x70, 0x29, 0x76, 0x8c, 0x43, 0xb2, + 0x43, 0xc3, 0xf6, 0x8b, 0x68, 0x0f, 0x7c, 0x2f, 0x63, 0x47, 0x4a, 0x49, 0x26, 0xb1, 0x1d, 0xc9, + 0x49, 0xc9, 0x31, 0xfd, 0x64, 0xe4, 0x36, 0x2f, 0x72, 0xc0, 0x81, 0x5e, 0xf1, 0x8e, 0x5f, 0x7a, + 0x3f, 0xf7, 0xe5, 0xd9, 0xe4, 0xef, 0xa0, 0x86, 0xaf, 0xf4, 0x52, 0xe9, 0xd0, 0x8f, 0x46, 0xde, + 0xec, 0x5f, 0xf6, 0xb6, 0x29, 0xa1, 0x2f, 0x47, 0x5e, 0x13, 0x9e, 0xe4, 0xbe, 0xe0, 0x1c, 0xff, + 0x3c, 0x75, 0xf8, 0x82, 0x93, 0xf7, 0xbf, 0x4c, 0xbe, 0x1e, 0xac, 0x9d, 0x84, 0xe3, 0x5c, 0xd2, + 0xd3, 0x63, 0xa7, 0x8a, 0xf2, 0x0c, 0x23, 0xee, 0x1f, 0x21, 0x99, 0x43, 0xc7, 0xb7, 0xcd, 0xfc, + 0x85, 0x61, 0xe9, 0xef, 0xce, 0x0d, 0x3e, 0xf5, 0x8f, 0x4f, 0x39, 0xe8, 0x16, 0x2c, 0x56, 0x74, + 0x53, 0x35, 0x9e, 0x69, 0x98, 0x60, 0xcd, 0x34, 0x5a, 0x58, 0x1d, 0xfd, 0x50, 0xef, 0x1a, 0x94, + 0xc6, 0x49, 0x4c, 0x0d, 0x3f, 0xd3, 0xb0, 0x2c, 0xa1, 0x9b, 0x70, 0x6d, 0xbc, 0x77, 0xb3, 0xb5, + 0xa6, 0xe1, 0x86, 0x66, 0x69, 0xa6, 0x5c, 0x44, 0xef, 0xc0, 0xca, 0x38, 0x45, 0x45, 0xb1, 0x94, + 0x35, 0xc5, 0xd4, 0x48, 0xd3, 0x30, 0xad, 0x0d, 0xac, 0x99, 0xc4, 0xd4, 0x6a, 0xeb, 0xa4, 0x6a, + 0x98, 0x96, 0x56, 0x91, 0x67, 0xd0, 0xdb, 0xf0, 0xd6, 0x14, 0xa6, 0xfa, 0x96, 0xf9, 0x71, 0x6d, + 0x88, 0xe3, 0x18, 0x5a, 0x85, 0xe5, 0x69, 0x1c, 0x46, 0x63, 0xc3, 0xa8, 0xac, 0x0d, 0xf1, 0x1c, + 0x47, 0x8f, 0xe0, 0x7e, 0x1e, 0x68, 0xb8, 0x62, 0xca, 0x27, 0xd0, 0x03, 0xb8, 0x93, 0x09, 0x89, + 0x51, 0x9e, 0x44, 0xf7, 0xa0, 0x3c, 0x4e, 0xa9, 0x34, 0x9b, 0x35, 0x5d, 0x55, 0x2c, 0xdd, 0x68, + 0x90, 0xaa, 0x65, 0x35, 0xe5, 0x53, 0xe8, 0x2e, 0xdc, 0x9a, 0x4e, 0x67, 0xa9, 0x4d, 0xf9, 0x74, + 0x3a, 0xd9, 0x73, 0xbd, 0x51, 0x31, 0x9e, 0x9b, 0xa4, 0xa2, 0x99, 0x9b, 0x96, 0xd1, 0x94, 0x01, + 0xbd, 0x05, 0x0f, 0xa6, 0xe0, 0x33, 0x3f, 0xae, 0x89, 0x39, 0xe3, 0x18, 0xcf, 0x64, 0x18, 0x78, + 0x30, 0x74, 0xad, 0x62, 0x56, 0xf5, 0x75, 0x4b, 0x9e, 0x45, 0xef, 0xc2, 0xdb, 0xb9, 0xe4, 0x27, + 0x4d, 0x7c, 0x36, 0x43, 0x0f, 0xd6, 0x2a, 0xfa, 0xf0, 0xd4, 0xcf, 0xe5, 0x9d, 0x94, 0x0d, 0xb5, + 0x29, 0x9f, 0xcb, 0x35, 0x29, 0x8c, 0x52, 0xce, 0x6d, 0x1e, 0x46, 0x7d, 0x1e, 0x7d, 0x00, 0xef, + 0x7f, 0x15, 0xf3, 0x44, 0xeb, 0xa1, 0xa6, 0x99, 0xa6, 0x8c, 0xd0, 0xb7, 0xe0, 0x61, 0x1e, 0x66, + 0xe5, 0x93, 0x16, 0xd6, 0xe4, 0x0b, 0xe8, 0x3e, 0xdc, 0x9e, 0x42, 0x5e, 0xd9, 0x6a, 0x28, 0x75, + 0xa3, 0xb2, 0x26, 0x5f, 0xcc, 0x70, 0x71, 0x55, 0x31, 0x4d, 0xa5, 0x51, 0xc1, 0x0a, 0xd9, 0xd4, + 0xb6, 0xcc, 0xa6, 0xa2, 0x6a, 0xa6, 0x7c, 0x29, 0x63, 0xd6, 0x06, 0x3c, 0xc9, 0x39, 0x98, 0x47, + 0x4f, 0xe0, 0xdd, 0x29, 0x5c, 0x5a, 0x4d, 0x31, 0x2d, 0x5d, 0x35, 0x35, 0x05, 0xab, 0xd5, 0x21, + 0xce, 0xcb, 0xb9, 0xe6, 0x3b, 0xe2, 0x57, 0xd4, 0xaa, 0x26, 0x97, 0x32, 0xac, 0x25, 0x38, 0xea, + 0x5a, 0xdd, 0xc0, 0x5b, 0x95, 0x35, 0x79, 0x21, 0x97, 0x02, 0x6e, 0x59, 0x22, 0x14, 0x5c, 0xc9, + 0x18, 0x8c, 0xe0, 0x50, 0x6b, 0x2d, 0xd3, 0x1a, 0x71, 0xde, 0xab, 0x68, 0x09, 0xee, 0x65, 0x7a, + 0x97, 0x98, 0xc5, 0x6b, 0x68, 0x19, 0x96, 0x72, 0xf9, 0x97, 0xa0, 0x5f, 0xcc, 0x98, 0xcc, 0x01, + 0x7d, 0x5d, 0x57, 0xb1, 0x61, 0x1a, 0xeb, 0x96, 0x7c, 0x1d, 0xbd, 0x07, 0xab, 0xd3, 0x26, 0xd3, + 0x50, 0x37, 0xb1, 0xa1, 0xa8, 0xd5, 0x91, 0x38, 0x77, 0x23, 0xc3, 0xf7, 0xe3, 0xd8, 0xa8, 0x58, + 0x35, 0xc5, 0x94, 0x6f, 0x66, 0xac, 0x29, 0xb3, 0x61, 0x3c, 0x5f, 0xaf, 0x29, 0x9b, 0x9a, 0x7c, + 0x6b, 0x82, 0x5c, 0x43, 0x4d, 0x58, 0xb7, 0x62, 0x92, 0x26, 0x36, 0xbe, 0xb7, 0x25, 0x97, 0x27, + 0xb8, 0x62, 0x92, 0xba, 0xaa, 0x6f, 0x54, 0x89, 0xf2, 0x4c, 0xd1, 0x6b, 0xca, 0x9a, 0x5e, 0xd3, + 0xad, 0x2d, 0xf9, 0x36, 0x7a, 0x1f, 0xde, 0xc9, 0xe0, 0xe2, 0x2b, 0x44, 0x57, 0x09, 0xd6, 0x36, + 0x74, 0xd3, 0xc2, 0x3c, 0x74, 0xca, 0x77, 0xd2, 0xa3, 0xb0, 0xa9, 0xd4, 0x6b, 0xc9, 0x10, 0x2b, + 0xdf, 0x45, 0x65, 0xb8, 0x3e, 0x4e, 0xa7, 0xa9, 0xab, 0xe2, 0x93, 0xf4, 0x86, 0xaa, 0xc9, 0xf7, + 0x26, 0x38, 0x9d, 0xa1, 0x8e, 0x86, 0x61, 0xd2, 0x30, 0x1a, 0x44, 0xa9, 0xc8, 0xf7, 0xd1, 0x1d, + 0xb8, 0x39, 0x6d, 0x5f, 0xe4, 0x9f, 0x2a, 0x3f, 0x48, 0xf7, 0xfd, 0xe4, 0x0e, 0xa0, 0x3c, 0x37, + 0x89, 0x6a, 0x34, 0x4c, 0xa3, 0xa6, 0xc9, 0x0f, 0x97, 0xfe, 0x54, 0x82, 0xb9, 0xe1, 0x7f, 0xba, + 0x41, 0x37, 0xe0, 0x6a, 0x5f, 0x82, 0x69, 0x29, 0x56, 0xcb, 0x1c, 0xd9, 0xbe, 0xaf, 0xc2, 0xe5, + 0x51, 0x02, 0xb3, 0xa5, 0xaa, 0x2c, 0x52, 0x49, 0xa9, 0x9d, 0x9b, 0x7a, 0xb3, 0xa9, 0x55, 0xe4, + 0x22, 0x5a, 0x80, 0x4b, 0xa3, 0x9d, 0x1a, 0xc6, 0x06, 0x96, 0x67, 0xd2, 0xf8, 0x94, 0x35, 0x03, + 0xf3, 0x9d, 0x78, 0xe9, 0x67, 0x45, 0x98, 0x51, 0x2d, 0x05, 0x5d, 0x80, 0x73, 0xaa, 0xa5, 0x8c, + 0xff, 0xa7, 0x00, 0x6b, 0x54, 0x5a, 0x56, 0x95, 0x0d, 0xac, 0xa1, 0xa9, 0x96, 0xc1, 0xce, 0x11, + 0x97, 0xe1, 0x02, 0x6f, 0x57, 0x2d, 0xfd, 0x19, 0x3b, 0x5e, 0x98, 0xa6, 0x6e, 0x34, 0xd8, 0xf1, + 0xa1, 0xdf, 0xc1, 0x20, 0x13, 0xac, 0x7d, 0xdc, 0xd2, 0x4c, 0xcb, 0x94, 0x67, 0xe2, 0x8e, 0x26, + 0xd6, 0xea, 0x7a, 0xab, 0x4e, 0xcc, 0x56, 0xb3, 0x69, 0x60, 0x4b, 0x3e, 0x16, 0x77, 0x58, 0x98, + 0x2d, 0xe9, 0x0a, 0xa9, 0x68, 0xcf, 0x74, 0x16, 0x0b, 0x8f, 0xc7, 0xba, 0x5b, 0xcd, 0x0d, 0xac, + 0x54, 0x34, 0xb2, 0xa6, 0x34, 0x1a, 0x1a, 0x96, 0x4f, 0xc4, 0x0c, 0x6b, 0x7a, 0xad, 0xa6, 0x37, + 0x36, 0x88, 0xd9, 0xaa, 0xd7, 0x15, 0xbc, 0x25, 0x9f, 0x8c, 0x47, 0x10, 0xe9, 0xae, 0xe9, 0xa6, + 0x25, 0x9f, 0xe2, 0x5f, 0x9e, 0x0f, 0x1a, 0xeb, 0x46, 0x43, 0xb7, 0x0c, 0xac, 0x37, 0x36, 0xe4, + 0xd3, 0xfc, 0x9b, 0x76, 0x4b, 0x21, 0xda, 0xf7, 0x2c, 0x0d, 0x37, 0x94, 0x1a, 0x51, 0x5a, 0x15, + 0xdd, 0x22, 0xa6, 0x65, 0x60, 0x65, 0x43, 0x93, 0x21, 0x06, 0x60, 0x6c, 0x32, 0x14, 0x26, 0xb3, + 0xdd, 0x56, 0x43, 0x95, 0xcf, 0x20, 0x19, 0x66, 0x39, 0x5f, 0xc3, 0xc2, 0x0a, 0xd1, 0x2b, 0xf2, + 0xec, 0xd2, 0xdf, 0x9e, 0x80, 0x4b, 0xa9, 0x25, 0x97, 0x6c, 0xb7, 0xd0, 0x1b, 0x96, 0xb6, 0x21, + 0xfc, 0x9c, 0x68, 0x0d, 0x6c, 0xd4, 0x6a, 0x64, 0x53, 0x6f, 0x8c, 0x7e, 0x7f, 0x7f, 0x0b, 0x16, + 0x27, 0x11, 0x9a, 0x35, 0x45, 0xdd, 0x94, 0x25, 0xe6, 0xa4, 0x93, 0x48, 0x98, 0xe3, 0x19, 0x7a, + 0x45, 0x95, 0x8b, 0xec, 0xfc, 0x31, 0x89, 0xaa, 0xa9, 0x6c, 0x68, 0xb8, 0xd2, 0xb2, 0xb6, 0xe4, + 0x99, 0x69, 0xfa, 0xb4, 0xba, 0xa2, 0xd7, 0xe4, 0x63, 0xec, 0xb0, 0x38, 0x89, 0xe4, 0xa9, 0x8e, + 0x15, 0xf9, 0x38, 0xba, 0x0d, 0x37, 0x26, 0x51, 0x70, 0x87, 0xc3, 0x15, 0xf9, 0x04, 0x5b, 0xd9, + 0x93, 0x88, 0xea, 0x8a, 0x65, 0x69, 0xb8, 0x6e, 0x98, 0x96, 0x7c, 0x72, 0xda, 0xf0, 0xea, 0x26, + 0xb1, 0x34, 0xa5, 0x6e, 0xca, 0xa7, 0xa6, 0x51, 0x19, 0x4d, 0x73, 0x43, 0x6b, 0xe8, 0x9a, 0x7c, + 0x7a, 0x1a, 0x74, 0x36, 0x9d, 0x32, 0x4c, 0x1d, 0x9c, 0x52, 0x5f, 0x97, 0xcf, 0x4c, 0xc7, 0xad, + 0x56, 0xf5, 0x86, 0xc6, 0x27, 0x1f, 0x7d, 0x1b, 0x1e, 0x67, 0xd3, 0x91, 0x0d, 0xdd, 0xaa, 0xb6, + 0xd6, 0xf8, 0x8a, 0x61, 0x2b, 0xe5, 0x2c, 0x5a, 0x81, 0x47, 0x39, 0xd8, 0x54, 0x1d, 0xab, 0x35, + 0x4d, 0xd5, 0xe5, 0x39, 0x16, 0x7d, 0xf2, 0xe9, 0xa9, 0x29, 0x6b, 0xf2, 0x39, 0xb6, 0xc3, 0xe5, + 0x20, 0x7f, 0xaa, 0x35, 0x36, 0xf5, 0x86, 0x29, 0xcb, 0x39, 0xe9, 0x95, 0x86, 0xa9, 0xaf, 0xd5, + 0x34, 0xf9, 0xfc, 0x34, 0xf3, 0xb0, 0xbd, 0x50, 0x57, 0xb5, 0x86, 0xf1, 0x5c, 0x46, 0xd3, 0x26, + 0xac, 0xbf, 0x82, 0x2e, 0x2c, 0x7d, 0x04, 0x27, 0xa3, 0x0b, 0x56, 0xb6, 0xbe, 0xd7, 0x35, 0xc5, + 0x62, 0x67, 0x82, 0xb1, 0xd8, 0x18, 0x77, 0x8c, 0x46, 0x0b, 0x69, 0xe9, 0x8f, 0x25, 0xb8, 0x3a, + 0xa5, 0xd0, 0x93, 0x59, 0x2f, 0x66, 0xc6, 0x9a, 0x6a, 0xd4, 0xeb, 0x5a, 0xa3, 0x22, 0x10, 0xa5, + 0xc6, 0xe1, 0x25, 0xb8, 0x37, 0x9d, 0xbc, 0x61, 0x58, 0x82, 0x56, 0x62, 0x96, 0x98, 0x4e, 0x5b, + 0x31, 0x1a, 0x9a, 0x5c, 0x5c, 0xfb, 0xc1, 0xdf, 0x7f, 0x79, 0x5d, 0xfa, 0x87, 0x2f, 0xaf, 0x4b, + 0xff, 0xf2, 0xe5, 0x75, 0xe9, 0x13, 0x63, 0xd7, 0x0d, 0x5f, 0xf4, 0xb6, 0x97, 0xdb, 0xde, 0xde, + 0xca, 0xae, 0x6f, 0x1f, 0xb8, 0x22, 0x01, 0x67, 0x77, 0x56, 0xfa, 0xff, 0x55, 0x68, 0xef, 0xbb, + 0x2b, 0xbb, 0xb4, 0xbb, 0xc2, 0x8b, 0x72, 0x57, 0x76, 0xbd, 0x91, 0x3f, 0x2f, 0xfc, 0x20, 0xf1, + 0x78, 0xf0, 0x78, 0xfb, 0x04, 0x27, 0x7b, 0xe7, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x4e, 0xa0, + 0xc8, 0x4e, 0xec, 0x50, 0x00, 0x00, } func (m *UIBannerClickEvent) Marshal() (dAtA []byte, err error) { diff --git a/api/proto/teleport/usageevents/v1/usageevents.proto b/api/proto/teleport/usageevents/v1/usageevents.proto index 4b4b0439df38d..bc4f73bc83460 100644 --- a/api/proto/teleport/usageevents/v1/usageevents.proto +++ b/api/proto/teleport/usageevents/v1/usageevents.proto @@ -241,6 +241,7 @@ enum CTA { CTA_ACCESS_MONITORING = 9; CTA_EXTERNAL_AUDIT_STORAGE = 10; CTA_OKTA_USER_SYNC = 11; + CTA_ENTRA_ID = 12; } // UIDiscoverDeployServiceEvent is emitted after the user installs a Teleport Agent. @@ -563,6 +564,7 @@ enum IntegrationEnrollKind { INTEGRATION_ENROLL_KIND_MACHINE_ID_JENKINS = 16; INTEGRATION_ENROLL_KIND_MACHINE_ID_ANSIBLE = 17; INTEGRATION_ENROLL_KIND_SERVICENOW = 18; + INTEGRATION_ENROLL_KIND_ENTRA_ID = 19; } // IntegrationEnrollMetadata contains common metadata diff --git a/gen/proto/go/prehog/v1alpha/teleport.pb.go b/gen/proto/go/prehog/v1alpha/teleport.pb.go index a3532320c7ef6..f7fe7f0162500 100644 --- a/gen/proto/go/prehog/v1alpha/teleport.pb.go +++ b/gen/proto/go/prehog/v1alpha/teleport.pb.go @@ -430,6 +430,7 @@ const ( CTA_CTA_ACCESS_MONITORING CTA = 9 CTA_CTA_EXTERNAL_AUDIT_STORAGE CTA = 10 CTA_CTA_OKTA_USER_SYNC CTA = 11 + CTA_CTA_ENTRA_ID CTA = 12 ) // Enum value maps for CTA. @@ -447,6 +448,7 @@ var ( 9: "CTA_ACCESS_MONITORING", 10: "CTA_EXTERNAL_AUDIT_STORAGE", 11: "CTA_OKTA_USER_SYNC", + 12: "CTA_ENTRA_ID", } CTA_value = map[string]int32{ "CTA_UNSPECIFIED": 0, @@ -461,6 +463,7 @@ var ( "CTA_ACCESS_MONITORING": 9, "CTA_EXTERNAL_AUDIT_STORAGE": 10, "CTA_OKTA_USER_SYNC": 11, + "CTA_ENTRA_ID": 12, } ) @@ -519,6 +522,7 @@ const ( IntegrationEnrollKind_INTEGRATION_ENROLL_KIND_MACHINE_ID_AZURE IntegrationEnrollKind = 20 IntegrationEnrollKind_INTEGRATION_ENROLL_KIND_MACHINE_ID_SPACELIFT IntegrationEnrollKind = 21 IntegrationEnrollKind_INTEGRATION_ENROLL_KIND_MACHINE_ID_KUBERNETES IntegrationEnrollKind = 22 + IntegrationEnrollKind_INTEGRATION_ENROLL_KIND_ENTRA_ID IntegrationEnrollKind = 23 ) // Enum value maps for IntegrationEnrollKind. @@ -547,6 +551,7 @@ var ( 20: "INTEGRATION_ENROLL_KIND_MACHINE_ID_AZURE", 21: "INTEGRATION_ENROLL_KIND_MACHINE_ID_SPACELIFT", 22: "INTEGRATION_ENROLL_KIND_MACHINE_ID_KUBERNETES", + 23: "INTEGRATION_ENROLL_KIND_ENTRA_ID", } IntegrationEnrollKind_value = map[string]int32{ "INTEGRATION_ENROLL_KIND_UNSPECIFIED": 0, @@ -572,6 +577,7 @@ var ( "INTEGRATION_ENROLL_KIND_MACHINE_ID_AZURE": 20, "INTEGRATION_ENROLL_KIND_MACHINE_ID_SPACELIFT": 21, "INTEGRATION_ENROLL_KIND_MACHINE_ID_KUBERNETES": 22, + "INTEGRATION_ENROLL_KIND_ENTRA_ID": 23, } ) @@ -9997,7 +10003,7 @@ var file_prehog_v1alpha_teleport_proto_rawDesc = []byte{ 0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x03, 0x12, 0x1b, 0x0a, 0x17, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x56, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x41, 0x42, 0x4f, 0x52, 0x54, 0x45, - 0x44, 0x10, 0x04, 0x2a, 0xaf, 0x02, 0x0a, 0x03, 0x43, 0x54, 0x41, 0x12, 0x13, 0x0a, 0x0f, 0x43, + 0x44, 0x10, 0x04, 0x2a, 0xc1, 0x02, 0x0a, 0x03, 0x43, 0x54, 0x41, 0x12, 0x13, 0x0a, 0x0f, 0x43, 0x54, 0x41, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x43, 0x54, 0x41, 0x5f, 0x41, 0x55, 0x54, 0x48, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x4f, 0x52, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x43, 0x54, 0x41, 0x5f, @@ -10016,133 +10022,136 @@ var file_prehog_v1alpha_teleport_proto_rawDesc = []byte{ 0x1a, 0x43, 0x54, 0x41, 0x5f, 0x45, 0x58, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x54, 0x5f, 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, 0x10, 0x0a, 0x12, 0x16, 0x0a, 0x12, 0x43, 0x54, 0x41, 0x5f, 0x4f, 0x4b, 0x54, 0x41, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x53, - 0x59, 0x4e, 0x43, 0x10, 0x0b, 0x2a, 0xdc, 0x07, 0x0a, 0x15, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, 0x4b, 0x69, 0x6e, 0x64, 0x12, - 0x27, 0x0a, 0x23, 0x49, 0x4e, 0x54, 0x45, 0x47, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, - 0x4e, 0x52, 0x4f, 0x4c, 0x4c, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, - 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x21, 0x0a, 0x1d, 0x49, 0x4e, 0x54, 0x45, - 0x47, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x52, 0x4f, 0x4c, 0x4c, 0x5f, 0x4b, - 0x49, 0x4e, 0x44, 0x5f, 0x53, 0x4c, 0x41, 0x43, 0x4b, 0x10, 0x01, 0x12, 0x24, 0x0a, 0x20, 0x49, - 0x4e, 0x54, 0x45, 0x47, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x52, 0x4f, 0x4c, - 0x4c, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x57, 0x53, 0x5f, 0x4f, 0x49, 0x44, 0x43, 0x10, - 0x02, 0x12, 0x25, 0x0a, 0x21, 0x49, 0x4e, 0x54, 0x45, 0x47, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, - 0x5f, 0x45, 0x4e, 0x52, 0x4f, 0x4c, 0x4c, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x50, 0x41, 0x47, - 0x45, 0x52, 0x44, 0x55, 0x54, 0x59, 0x10, 0x03, 0x12, 0x21, 0x0a, 0x1d, 0x49, 0x4e, 0x54, 0x45, - 0x47, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x52, 0x4f, 0x4c, 0x4c, 0x5f, 0x4b, - 0x49, 0x4e, 0x44, 0x5f, 0x45, 0x4d, 0x41, 0x49, 0x4c, 0x10, 0x04, 0x12, 0x20, 0x0a, 0x1c, 0x49, - 0x4e, 0x54, 0x45, 0x47, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x52, 0x4f, 0x4c, - 0x4c, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x4a, 0x49, 0x52, 0x41, 0x10, 0x05, 0x12, 0x23, 0x0a, - 0x1f, 0x49, 0x4e, 0x54, 0x45, 0x47, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x52, - 0x4f, 0x4c, 0x4c, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x52, 0x44, - 0x10, 0x06, 0x12, 0x26, 0x0a, 0x22, 0x49, 0x4e, 0x54, 0x45, 0x47, 0x52, 0x41, 0x54, 0x49, 0x4f, - 0x4e, 0x5f, 0x45, 0x4e, 0x52, 0x4f, 0x4c, 0x4c, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x4d, 0x41, - 0x54, 0x54, 0x45, 0x52, 0x4d, 0x4f, 0x53, 0x54, 0x10, 0x07, 0x12, 0x24, 0x0a, 0x20, 0x49, 0x4e, + 0x59, 0x4e, 0x43, 0x10, 0x0b, 0x12, 0x10, 0x0a, 0x0c, 0x43, 0x54, 0x41, 0x5f, 0x45, 0x4e, 0x54, + 0x52, 0x41, 0x5f, 0x49, 0x44, 0x10, 0x0c, 0x2a, 0x82, 0x08, 0x0a, 0x15, 0x49, 0x6e, 0x74, 0x65, + 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, 0x4b, 0x69, 0x6e, + 0x64, 0x12, 0x27, 0x0a, 0x23, 0x49, 0x4e, 0x54, 0x45, 0x47, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, + 0x5f, 0x45, 0x4e, 0x52, 0x4f, 0x4c, 0x4c, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x55, 0x4e, 0x53, + 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x21, 0x0a, 0x1d, 0x49, 0x4e, 0x54, 0x45, 0x47, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x52, 0x4f, 0x4c, 0x4c, - 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x4d, 0x53, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x53, 0x10, 0x08, - 0x12, 0x24, 0x0a, 0x20, 0x49, 0x4e, 0x54, 0x45, 0x47, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, - 0x45, 0x4e, 0x52, 0x4f, 0x4c, 0x4c, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x4f, 0x50, 0x53, 0x47, - 0x45, 0x4e, 0x49, 0x45, 0x10, 0x09, 0x12, 0x20, 0x0a, 0x1c, 0x49, 0x4e, 0x54, 0x45, 0x47, 0x52, - 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x52, 0x4f, 0x4c, 0x4c, 0x5f, 0x4b, 0x49, 0x4e, - 0x44, 0x5f, 0x4f, 0x4b, 0x54, 0x41, 0x10, 0x0a, 0x12, 0x20, 0x0a, 0x1c, 0x49, 0x4e, 0x54, 0x45, - 0x47, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x52, 0x4f, 0x4c, 0x4c, 0x5f, 0x4b, - 0x49, 0x4e, 0x44, 0x5f, 0x4a, 0x41, 0x4d, 0x46, 0x10, 0x0b, 0x12, 0x26, 0x0a, 0x22, 0x49, 0x4e, + 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x53, 0x4c, 0x41, 0x43, 0x4b, 0x10, 0x01, 0x12, 0x24, 0x0a, + 0x20, 0x49, 0x4e, 0x54, 0x45, 0x47, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x52, + 0x4f, 0x4c, 0x4c, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x57, 0x53, 0x5f, 0x4f, 0x49, 0x44, + 0x43, 0x10, 0x02, 0x12, 0x25, 0x0a, 0x21, 0x49, 0x4e, 0x54, 0x45, 0x47, 0x52, 0x41, 0x54, 0x49, + 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x52, 0x4f, 0x4c, 0x4c, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x50, + 0x41, 0x47, 0x45, 0x52, 0x44, 0x55, 0x54, 0x59, 0x10, 0x03, 0x12, 0x21, 0x0a, 0x1d, 0x49, 0x4e, 0x54, 0x45, 0x47, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x52, 0x4f, 0x4c, 0x4c, - 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x4d, 0x41, 0x43, 0x48, 0x49, 0x4e, 0x45, 0x5f, 0x49, 0x44, - 0x10, 0x0c, 0x12, 0x35, 0x0a, 0x31, 0x49, 0x4e, 0x54, 0x45, 0x47, 0x52, 0x41, 0x54, 0x49, 0x4f, - 0x4e, 0x5f, 0x45, 0x4e, 0x52, 0x4f, 0x4c, 0x4c, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x4d, 0x41, - 0x43, 0x48, 0x49, 0x4e, 0x45, 0x5f, 0x49, 0x44, 0x5f, 0x47, 0x49, 0x54, 0x48, 0x55, 0x42, 0x5f, - 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x53, 0x10, 0x0d, 0x12, 0x2f, 0x0a, 0x2b, 0x49, 0x4e, 0x54, - 0x45, 0x47, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x52, 0x4f, 0x4c, 0x4c, 0x5f, - 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x4d, 0x41, 0x43, 0x48, 0x49, 0x4e, 0x45, 0x5f, 0x49, 0x44, 0x5f, - 0x43, 0x49, 0x52, 0x43, 0x4c, 0x45, 0x43, 0x49, 0x10, 0x0e, 0x12, 0x2d, 0x0a, 0x29, 0x49, 0x4e, + 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x45, 0x4d, 0x41, 0x49, 0x4c, 0x10, 0x04, 0x12, 0x20, 0x0a, + 0x1c, 0x49, 0x4e, 0x54, 0x45, 0x47, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x52, + 0x4f, 0x4c, 0x4c, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x4a, 0x49, 0x52, 0x41, 0x10, 0x05, 0x12, + 0x23, 0x0a, 0x1f, 0x49, 0x4e, 0x54, 0x45, 0x47, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, + 0x4e, 0x52, 0x4f, 0x4c, 0x4c, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, + 0x52, 0x44, 0x10, 0x06, 0x12, 0x26, 0x0a, 0x22, 0x49, 0x4e, 0x54, 0x45, 0x47, 0x52, 0x41, 0x54, + 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x52, 0x4f, 0x4c, 0x4c, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, + 0x4d, 0x41, 0x54, 0x54, 0x45, 0x52, 0x4d, 0x4f, 0x53, 0x54, 0x10, 0x07, 0x12, 0x24, 0x0a, 0x20, + 0x49, 0x4e, 0x54, 0x45, 0x47, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x52, 0x4f, + 0x4c, 0x4c, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x4d, 0x53, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x53, + 0x10, 0x08, 0x12, 0x24, 0x0a, 0x20, 0x49, 0x4e, 0x54, 0x45, 0x47, 0x52, 0x41, 0x54, 0x49, 0x4f, + 0x4e, 0x5f, 0x45, 0x4e, 0x52, 0x4f, 0x4c, 0x4c, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x4f, 0x50, + 0x53, 0x47, 0x45, 0x4e, 0x49, 0x45, 0x10, 0x09, 0x12, 0x20, 0x0a, 0x1c, 0x49, 0x4e, 0x54, 0x45, + 0x47, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x52, 0x4f, 0x4c, 0x4c, 0x5f, 0x4b, + 0x49, 0x4e, 0x44, 0x5f, 0x4f, 0x4b, 0x54, 0x41, 0x10, 0x0a, 0x12, 0x20, 0x0a, 0x1c, 0x49, 0x4e, 0x54, 0x45, 0x47, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x52, 0x4f, 0x4c, 0x4c, - 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x4d, 0x41, 0x43, 0x48, 0x49, 0x4e, 0x45, 0x5f, 0x49, 0x44, - 0x5f, 0x47, 0x49, 0x54, 0x4c, 0x41, 0x42, 0x10, 0x0f, 0x12, 0x2e, 0x0a, 0x2a, 0x49, 0x4e, 0x54, - 0x45, 0x47, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x52, 0x4f, 0x4c, 0x4c, 0x5f, - 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x4d, 0x41, 0x43, 0x48, 0x49, 0x4e, 0x45, 0x5f, 0x49, 0x44, 0x5f, - 0x4a, 0x45, 0x4e, 0x4b, 0x49, 0x4e, 0x53, 0x10, 0x10, 0x12, 0x2e, 0x0a, 0x2a, 0x49, 0x4e, 0x54, - 0x45, 0x47, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x52, 0x4f, 0x4c, 0x4c, 0x5f, - 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x4d, 0x41, 0x43, 0x48, 0x49, 0x4e, 0x45, 0x5f, 0x49, 0x44, 0x5f, - 0x41, 0x4e, 0x53, 0x49, 0x42, 0x4c, 0x45, 0x10, 0x11, 0x12, 0x2a, 0x0a, 0x26, 0x49, 0x4e, 0x54, - 0x45, 0x47, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x52, 0x4f, 0x4c, 0x4c, 0x5f, - 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x4d, 0x41, 0x43, 0x48, 0x49, 0x4e, 0x45, 0x5f, 0x49, 0x44, 0x5f, - 0x41, 0x57, 0x53, 0x10, 0x12, 0x12, 0x2a, 0x0a, 0x26, 0x49, 0x4e, 0x54, 0x45, 0x47, 0x52, 0x41, - 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x52, 0x4f, 0x4c, 0x4c, 0x5f, 0x4b, 0x49, 0x4e, 0x44, - 0x5f, 0x4d, 0x41, 0x43, 0x48, 0x49, 0x4e, 0x45, 0x5f, 0x49, 0x44, 0x5f, 0x47, 0x43, 0x50, 0x10, - 0x13, 0x12, 0x2c, 0x0a, 0x28, 0x49, 0x4e, 0x54, 0x45, 0x47, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, - 0x5f, 0x45, 0x4e, 0x52, 0x4f, 0x4c, 0x4c, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x4d, 0x41, 0x43, - 0x48, 0x49, 0x4e, 0x45, 0x5f, 0x49, 0x44, 0x5f, 0x41, 0x5a, 0x55, 0x52, 0x45, 0x10, 0x14, 0x12, - 0x30, 0x0a, 0x2c, 0x49, 0x4e, 0x54, 0x45, 0x47, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, - 0x4e, 0x52, 0x4f, 0x4c, 0x4c, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x4d, 0x41, 0x43, 0x48, 0x49, - 0x4e, 0x45, 0x5f, 0x49, 0x44, 0x5f, 0x53, 0x50, 0x41, 0x43, 0x45, 0x4c, 0x49, 0x46, 0x54, 0x10, - 0x15, 0x12, 0x31, 0x0a, 0x2d, 0x49, 0x4e, 0x54, 0x45, 0x47, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, + 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x4a, 0x41, 0x4d, 0x46, 0x10, 0x0b, 0x12, 0x26, 0x0a, 0x22, + 0x49, 0x4e, 0x54, 0x45, 0x47, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x52, 0x4f, + 0x4c, 0x4c, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x4d, 0x41, 0x43, 0x48, 0x49, 0x4e, 0x45, 0x5f, + 0x49, 0x44, 0x10, 0x0c, 0x12, 0x35, 0x0a, 0x31, 0x49, 0x4e, 0x54, 0x45, 0x47, 0x52, 0x41, 0x54, + 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x52, 0x4f, 0x4c, 0x4c, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, + 0x4d, 0x41, 0x43, 0x48, 0x49, 0x4e, 0x45, 0x5f, 0x49, 0x44, 0x5f, 0x47, 0x49, 0x54, 0x48, 0x55, + 0x42, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x53, 0x10, 0x0d, 0x12, 0x2f, 0x0a, 0x2b, 0x49, + 0x4e, 0x54, 0x45, 0x47, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x52, 0x4f, 0x4c, + 0x4c, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x4d, 0x41, 0x43, 0x48, 0x49, 0x4e, 0x45, 0x5f, 0x49, + 0x44, 0x5f, 0x43, 0x49, 0x52, 0x43, 0x4c, 0x45, 0x43, 0x49, 0x10, 0x0e, 0x12, 0x2d, 0x0a, 0x29, + 0x49, 0x4e, 0x54, 0x45, 0x47, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x52, 0x4f, + 0x4c, 0x4c, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x4d, 0x41, 0x43, 0x48, 0x49, 0x4e, 0x45, 0x5f, + 0x49, 0x44, 0x5f, 0x47, 0x49, 0x54, 0x4c, 0x41, 0x42, 0x10, 0x0f, 0x12, 0x2e, 0x0a, 0x2a, 0x49, + 0x4e, 0x54, 0x45, 0x47, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x52, 0x4f, 0x4c, + 0x4c, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x4d, 0x41, 0x43, 0x48, 0x49, 0x4e, 0x45, 0x5f, 0x49, + 0x44, 0x5f, 0x4a, 0x45, 0x4e, 0x4b, 0x49, 0x4e, 0x53, 0x10, 0x10, 0x12, 0x2e, 0x0a, 0x2a, 0x49, + 0x4e, 0x54, 0x45, 0x47, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x52, 0x4f, 0x4c, + 0x4c, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x4d, 0x41, 0x43, 0x48, 0x49, 0x4e, 0x45, 0x5f, 0x49, + 0x44, 0x5f, 0x41, 0x4e, 0x53, 0x49, 0x42, 0x4c, 0x45, 0x10, 0x11, 0x12, 0x2a, 0x0a, 0x26, 0x49, + 0x4e, 0x54, 0x45, 0x47, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x52, 0x4f, 0x4c, + 0x4c, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x4d, 0x41, 0x43, 0x48, 0x49, 0x4e, 0x45, 0x5f, 0x49, + 0x44, 0x5f, 0x41, 0x57, 0x53, 0x10, 0x12, 0x12, 0x2a, 0x0a, 0x26, 0x49, 0x4e, 0x54, 0x45, 0x47, + 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x52, 0x4f, 0x4c, 0x4c, 0x5f, 0x4b, 0x49, + 0x4e, 0x44, 0x5f, 0x4d, 0x41, 0x43, 0x48, 0x49, 0x4e, 0x45, 0x5f, 0x49, 0x44, 0x5f, 0x47, 0x43, + 0x50, 0x10, 0x13, 0x12, 0x2c, 0x0a, 0x28, 0x49, 0x4e, 0x54, 0x45, 0x47, 0x52, 0x41, 0x54, 0x49, + 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x52, 0x4f, 0x4c, 0x4c, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x4d, + 0x41, 0x43, 0x48, 0x49, 0x4e, 0x45, 0x5f, 0x49, 0x44, 0x5f, 0x41, 0x5a, 0x55, 0x52, 0x45, 0x10, + 0x14, 0x12, 0x30, 0x0a, 0x2c, 0x49, 0x4e, 0x54, 0x45, 0x47, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x52, 0x4f, 0x4c, 0x4c, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x4d, 0x41, 0x43, - 0x48, 0x49, 0x4e, 0x45, 0x5f, 0x49, 0x44, 0x5f, 0x4b, 0x55, 0x42, 0x45, 0x52, 0x4e, 0x45, 0x54, - 0x45, 0x53, 0x10, 0x16, 0x2a, 0x88, 0x01, 0x0a, 0x12, 0x45, 0x64, 0x69, 0x74, 0x6f, 0x72, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, 0x20, 0x45, - 0x44, 0x49, 0x54, 0x4f, 0x52, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, - 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, - 0x00, 0x12, 0x25, 0x0a, 0x21, 0x45, 0x44, 0x49, 0x54, 0x4f, 0x52, 0x5f, 0x43, 0x48, 0x41, 0x4e, - 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x52, 0x4f, 0x4c, 0x45, 0x5f, 0x47, - 0x52, 0x41, 0x4e, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x25, 0x0a, 0x21, 0x45, 0x44, 0x49, 0x54, - 0x4f, 0x52, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, - 0x5f, 0x52, 0x4f, 0x4c, 0x45, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x44, 0x10, 0x02, 0x2a, - 0x3f, 0x0a, 0x07, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x46, 0x45, - 0x41, 0x54, 0x55, 0x52, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, - 0x44, 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x46, 0x45, 0x41, 0x54, 0x55, 0x52, 0x45, 0x5f, 0x54, - 0x52, 0x55, 0x53, 0x54, 0x45, 0x44, 0x5f, 0x44, 0x45, 0x56, 0x49, 0x43, 0x45, 0x53, 0x10, 0x01, - 0x2a, 0xa0, 0x01, 0x0a, 0x1b, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x63, 0x6f, - 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x2d, 0x0a, 0x29, 0x46, 0x45, 0x41, 0x54, 0x55, 0x52, 0x45, 0x5f, 0x52, 0x45, 0x43, 0x4f, - 0x4d, 0x4d, 0x45, 0x4e, 0x44, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, - 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, - 0x2a, 0x0a, 0x26, 0x46, 0x45, 0x41, 0x54, 0x55, 0x52, 0x45, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x4d, - 0x4d, 0x45, 0x4e, 0x44, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, - 0x5f, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x01, 0x12, 0x26, 0x0a, 0x22, 0x46, - 0x45, 0x41, 0x54, 0x55, 0x52, 0x45, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x4d, 0x4d, 0x45, 0x4e, 0x44, - 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x44, 0x4f, 0x4e, - 0x45, 0x10, 0x02, 0x2a, 0x82, 0x01, 0x0a, 0x0c, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x4c, - 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1d, 0x0a, 0x19, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x5f, - 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, - 0x44, 0x10, 0x00, 0x12, 0x28, 0x0a, 0x24, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x5f, 0x4c, - 0x49, 0x4d, 0x49, 0x54, 0x5f, 0x44, 0x45, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x54, 0x52, 0x55, 0x53, - 0x54, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x4a, 0x41, 0x4d, 0x46, 0x10, 0x01, 0x12, 0x29, 0x0a, - 0x25, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x5f, 0x44, - 0x45, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x54, 0x52, 0x55, 0x53, 0x54, 0x5f, 0x54, 0x45, 0x41, 0x4d, - 0x5f, 0x55, 0x53, 0x41, 0x47, 0x45, 0x10, 0x02, 0x32, 0xb4, 0x02, 0x0a, 0x18, 0x54, 0x65, 0x6c, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x5b, 0x0a, 0x0b, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x12, 0x22, 0x2e, 0x70, 0x72, 0x65, 0x68, 0x6f, 0x67, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x70, 0x72, 0x65, 0x68, 0x6f, - 0x67, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x88, - 0x02, 0x01, 0x12, 0x5b, 0x0a, 0x0c, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x73, 0x12, 0x23, 0x2e, 0x70, 0x72, 0x65, 0x68, 0x6f, 0x67, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x70, 0x72, 0x65, 0x68, 0x6f, 0x67, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x5e, 0x0a, 0x0d, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x54, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x12, 0x24, 0x2e, 0x70, 0x72, 0x65, 0x68, 0x6f, 0x67, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x2e, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x54, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x70, 0x72, 0x65, 0x68, 0x6f, 0x67, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x54, 0x65, 0x6c, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, - 0xc9, 0x01, 0x0a, 0x12, 0x63, 0x6f, 0x6d, 0x2e, 0x70, 0x72, 0x65, 0x68, 0x6f, 0x67, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x42, 0x0d, 0x54, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x4b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, - 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x72, 0x61, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x2f, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x2f, 0x70, 0x72, 0x65, 0x68, 0x6f, 0x67, 0x2f, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x3b, 0x70, 0x72, 0x65, 0x68, 0x6f, 0x67, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0xa2, 0x02, 0x03, 0x50, 0x58, 0x58, 0xaa, 0x02, 0x0e, 0x50, 0x72, 0x65, - 0x68, 0x6f, 0x67, 0x2e, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0xca, 0x02, 0x0e, 0x50, 0x72, - 0x65, 0x68, 0x6f, 0x67, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0xe2, 0x02, 0x1a, 0x50, - 0x72, 0x65, 0x68, 0x6f, 0x67, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x5c, 0x47, 0x50, - 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0f, 0x50, 0x72, 0x65, 0x68, - 0x6f, 0x67, 0x3a, 0x3a, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x48, 0x49, 0x4e, 0x45, 0x5f, 0x49, 0x44, 0x5f, 0x53, 0x50, 0x41, 0x43, 0x45, 0x4c, 0x49, 0x46, + 0x54, 0x10, 0x15, 0x12, 0x31, 0x0a, 0x2d, 0x49, 0x4e, 0x54, 0x45, 0x47, 0x52, 0x41, 0x54, 0x49, + 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x52, 0x4f, 0x4c, 0x4c, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x4d, + 0x41, 0x43, 0x48, 0x49, 0x4e, 0x45, 0x5f, 0x49, 0x44, 0x5f, 0x4b, 0x55, 0x42, 0x45, 0x52, 0x4e, + 0x45, 0x54, 0x45, 0x53, 0x10, 0x16, 0x12, 0x24, 0x0a, 0x20, 0x49, 0x4e, 0x54, 0x45, 0x47, 0x52, + 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x52, 0x4f, 0x4c, 0x4c, 0x5f, 0x4b, 0x49, 0x4e, + 0x44, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x41, 0x5f, 0x49, 0x44, 0x10, 0x17, 0x2a, 0x88, 0x01, 0x0a, + 0x12, 0x45, 0x64, 0x69, 0x74, 0x6f, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, 0x20, 0x45, 0x44, 0x49, 0x54, 0x4f, 0x52, 0x5f, 0x43, 0x48, + 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, + 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x25, 0x0a, 0x21, 0x45, 0x44, 0x49, + 0x54, 0x4f, 0x52, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, + 0x53, 0x5f, 0x52, 0x4f, 0x4c, 0x45, 0x5f, 0x47, 0x52, 0x41, 0x4e, 0x54, 0x45, 0x44, 0x10, 0x01, + 0x12, 0x25, 0x0a, 0x21, 0x45, 0x44, 0x49, 0x54, 0x4f, 0x52, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, + 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x52, 0x4f, 0x4c, 0x45, 0x5f, 0x52, 0x45, + 0x4d, 0x4f, 0x56, 0x45, 0x44, 0x10, 0x02, 0x2a, 0x3f, 0x0a, 0x07, 0x46, 0x65, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x46, 0x45, 0x41, 0x54, 0x55, 0x52, 0x45, 0x5f, 0x55, 0x4e, + 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x46, + 0x45, 0x41, 0x54, 0x55, 0x52, 0x45, 0x5f, 0x54, 0x52, 0x55, 0x53, 0x54, 0x45, 0x44, 0x5f, 0x44, + 0x45, 0x56, 0x49, 0x43, 0x45, 0x53, 0x10, 0x01, 0x2a, 0xa0, 0x01, 0x0a, 0x1b, 0x46, 0x65, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2d, 0x0a, 0x29, 0x46, 0x45, 0x41, 0x54, + 0x55, 0x52, 0x45, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x4d, 0x4d, 0x45, 0x4e, 0x44, 0x41, 0x54, 0x49, + 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, + 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x2a, 0x0a, 0x26, 0x46, 0x45, 0x41, 0x54, 0x55, + 0x52, 0x45, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x4d, 0x4d, 0x45, 0x4e, 0x44, 0x41, 0x54, 0x49, 0x4f, + 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x45, + 0x44, 0x10, 0x01, 0x12, 0x26, 0x0a, 0x22, 0x46, 0x45, 0x41, 0x54, 0x55, 0x52, 0x45, 0x5f, 0x52, + 0x45, 0x43, 0x4f, 0x4d, 0x4d, 0x45, 0x4e, 0x44, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, + 0x41, 0x54, 0x55, 0x53, 0x5f, 0x44, 0x4f, 0x4e, 0x45, 0x10, 0x02, 0x2a, 0x82, 0x01, 0x0a, 0x0c, + 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1d, 0x0a, 0x19, + 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x5f, 0x55, 0x4e, + 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x28, 0x0a, 0x24, 0x4c, + 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, 0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x5f, 0x44, 0x45, 0x56, + 0x49, 0x43, 0x45, 0x5f, 0x54, 0x52, 0x55, 0x53, 0x54, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x4a, + 0x41, 0x4d, 0x46, 0x10, 0x01, 0x12, 0x29, 0x0a, 0x25, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, 0x45, + 0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x5f, 0x44, 0x45, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x54, 0x52, + 0x55, 0x53, 0x54, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x55, 0x53, 0x41, 0x47, 0x45, 0x10, 0x02, + 0x32, 0xb4, 0x02, 0x0a, 0x18, 0x54, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x5b, 0x0a, + 0x0b, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x22, 0x2e, 0x70, + 0x72, 0x65, 0x68, 0x6f, 0x67, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x75, + 0x62, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x23, 0x2e, 0x70, 0x72, 0x65, 0x68, 0x6f, 0x67, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x88, 0x02, 0x01, 0x12, 0x5b, 0x0a, 0x0c, 0x53, 0x75, + 0x62, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x23, 0x2e, 0x70, 0x72, 0x65, + 0x68, 0x6f, 0x67, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x53, 0x75, 0x62, 0x6d, + 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x24, 0x2e, 0x70, 0x72, 0x65, 0x68, 0x6f, 0x67, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5e, 0x0a, 0x0d, 0x48, 0x65, 0x6c, 0x6c, 0x6f, + 0x54, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x24, 0x2e, 0x70, 0x72, 0x65, 0x68, 0x6f, + 0x67, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x54, + 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, + 0x2e, 0x70, 0x72, 0x65, 0x68, 0x6f, 0x67, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x2e, + 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x54, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0xc9, 0x01, 0x0a, 0x12, 0x63, 0x6f, 0x6d, 0x2e, + 0x70, 0x72, 0x65, 0x68, 0x6f, 0x67, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x42, 0x0d, + 0x54, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, + 0x4b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x72, 0x61, 0x76, + 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x2f, + 0x70, 0x72, 0x65, 0x68, 0x6f, 0x67, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x3b, 0x70, + 0x72, 0x65, 0x68, 0x6f, 0x67, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0xa2, 0x02, 0x03, 0x50, + 0x58, 0x58, 0xaa, 0x02, 0x0e, 0x50, 0x72, 0x65, 0x68, 0x6f, 0x67, 0x2e, 0x56, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0xca, 0x02, 0x0e, 0x50, 0x72, 0x65, 0x68, 0x6f, 0x67, 0x5c, 0x56, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0xe2, 0x02, 0x1a, 0x50, 0x72, 0x65, 0x68, 0x6f, 0x67, 0x5c, 0x56, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0xea, 0x02, 0x0f, 0x50, 0x72, 0x65, 0x68, 0x6f, 0x67, 0x3a, 0x3a, 0x56, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/gen/proto/ts/prehog/v1alpha/teleport_pb.ts b/gen/proto/ts/prehog/v1alpha/teleport_pb.ts index 16fa17e3dcc62..ae0ce02e01801 100644 --- a/gen/proto/ts/prehog/v1alpha/teleport_pb.ts +++ b/gen/proto/ts/prehog/v1alpha/teleport_pb.ts @@ -3229,7 +3229,11 @@ export enum CTA { /** * @generated from protobuf enum value: CTA_OKTA_USER_SYNC = 11; */ - CTA_OKTA_USER_SYNC = 11 + CTA_OKTA_USER_SYNC = 11, + /** + * @generated from protobuf enum value: CTA_ENTRA_ID = 12; + */ + CTA_ENTRA_ID = 12 } /** * IntegrationEnrollKind represents the types of integration that @@ -3329,7 +3333,11 @@ export enum IntegrationEnrollKind { /** * @generated from protobuf enum value: INTEGRATION_ENROLL_KIND_MACHINE_ID_KUBERNETES = 22; */ - MACHINE_ID_KUBERNETES = 22 + MACHINE_ID_KUBERNETES = 22, + /** + * @generated from protobuf enum value: INTEGRATION_ENROLL_KIND_ENTRA_ID = 23; + */ + ENTRA_ID = 23 } /** * EditorChangeStatus is the possible value of an EditorChangeEvent event status diff --git a/lib/integrations/azureoidc/accessgraph.go b/lib/integrations/azureoidc/accessgraph.go index dff023f4cc710..f84ca992243fc 100644 --- a/lib/integrations/azureoidc/accessgraph.go +++ b/lib/integrations/azureoidc/accessgraph.go @@ -50,8 +50,8 @@ type adSingleSignOn struct { CurrentSingleSignOnMode singleSignOnMode `json:"currentSingleSignOnMode"` } -// tagInfoCache is the format for the file produced by CreateTAGCacheFile. -type tagInfoCache struct { +// TAGInfoCache is the format for the file produced by CreateTAGCacheFile. +type TAGInfoCache struct { AppSsoSettingsCache []*types.PluginEntraIDAppSSOSettings `json:"app_sso_settings_cache"` } @@ -121,7 +121,7 @@ func CreateTAGCacheFile(ctx context.Context) error { return trace.Wrap(err) } - cache := &tagInfoCache{} + cache := &TAGInfoCache{} for _, app := range appResp.GetValue() { appID := app.GetAppId() diff --git a/lib/integrations/azureoidc/private.go b/lib/integrations/azureoidc/private.go index 0ffa09c1f075f..932bc5c61d6fe 100644 --- a/lib/integrations/azureoidc/private.go +++ b/lib/integrations/azureoidc/private.go @@ -129,20 +129,22 @@ func exchangeToken(ctx context.Context, tenantID string, token msalToken) (strin // getPrivateAPIToken uses the azure CLI token cache to exchange a refresh token // for an access token authenticated to the "private" Azure API. func getPrivateAPIToken(ctx context.Context, tenantID string) (string, error) { + var err error tokens, err := getRefreshTokens() if err != nil { return "", trace.Wrap(err) } for _, token := range tokens { + var tokenStr string slog.DebugContext(ctx, "trying token", "client_id", token.ClientID) - token, err := exchangeToken(ctx, tenantID, token) + tokenStr, err = exchangeToken(ctx, tenantID, token) if err != nil { slog.DebugContext(ctx, "error exchanging token", "err", err) } else { - return token, nil + return tokenStr, nil } } - return "", trace.Errorf("no viable token") + return "", trace.Wrap(err, "no viable token") } // privateAPIGet invokes GET on the given endpoint of the "private" main.iam.ad.ext.azure.com azure API. diff --git a/lib/integrations/azureoidc/provision.go b/lib/integrations/azureoidc/provision.go index 60010faa9461a..8bf2b53cead44 100644 --- a/lib/integrations/azureoidc/provision.go +++ b/lib/integrations/azureoidc/provision.go @@ -18,8 +18,11 @@ package azureoidc import ( "bytes" + "context" "encoding/json" + "fmt" "os" + "os/exec" "os/user" "path/filepath" @@ -54,6 +57,20 @@ func createGraphClient() (*msgraphsdk.GraphServiceClient, error) { return msgraphsdk.NewGraphServiceClient(adapter), nil } +// EnsureAZLogin invokes `az login` and waits for the command to successfully complete. +// In Azure Cloud Shell, this has the effect of retrieving on-behalf-of user credentials +// which we need to read SSO information (see [CreateTAGCacheFile] and ./private.go), +// as well as prompting the user to choose the desired Azure subscription / directory tenant. +func EnsureAZLogin(ctx context.Context) error { + fmt.Println("We will execute `az login` to acquire the necessary permissions and allow you to choose the desired Entra ID tenant.") + fmt.Println("Please follow the instructions below.") + cmd := exec.CommandContext(ctx, "az", "login", "--only-show-errors") + cmd.Stdin = os.Stdin + cmd.Stdout = os.Stdout + cmd.Stderr = os.Stderr + return trace.Wrap(cmd.Run()) +} + func getAzureDir() (string, error) { usr, err := user.Current() if err != nil { @@ -67,7 +84,8 @@ type azureCLIProfile struct { } type azureCLISubscription struct { - TenantID string `json:"tenantID"` + TenantID string `json:"tenantID"` + IsDefault bool `json:"isDefault"` } // getTenantID infers the Azure tenant ID from the Azure CLI profiles. @@ -87,14 +105,14 @@ func getTenantID() (string, error) { var profile azureCLIProfile if err := json.Unmarshal(payload, &profile); err != nil { - return "", trace.Wrap(err) - } - if len(profile.Subscriptions) == 0 { - return "", trace.BadParameter("subscription not found") + return "", trace.Wrap(err, "failed to parse Azure profile") } - // Users are expected to run this in the Azure Cloud Shell, - // where they are by default authenticated to only one subscription. - return profile.Subscriptions[0].TenantID, nil + for _, subscription := range profile.Subscriptions { + if subscription.IsDefault { + return subscription.TenantID, nil + } + } + return "", trace.NotFound("subscription not found") } diff --git a/lib/web/apiserver.go b/lib/web/apiserver.go index e088936cc5966..4a3ec9ee7172f 100644 --- a/lib/web/apiserver.go +++ b/lib/web/apiserver.go @@ -1707,6 +1707,8 @@ func (h *Handler) getWebConfig(w http.ResponseWriter, r *http.Request, p httprou // TODO(mcbattirola): remove isTeam when it is no longer used isTeam := clusterFeatures.GetProductType() == proto.ProductType_PRODUCT_TYPE_TEAM + policy := clusterFeatures.GetPolicy() + webCfg := webclient.WebConfig{ Edition: modules.GetModules().BuildType(), Auth: authSettings, @@ -1723,6 +1725,7 @@ func (h *Handler) getWebConfig(w http.ResponseWriter, r *http.Request, p httprou HideInaccessibleFeatures: clusterFeatures.GetFeatureHiding(), CustomTheme: clusterFeatures.GetCustomTheme(), IsIGSEnabled: clusterFeatures.GetIdentityGovernance(), + IsPolicyEnabled: policy != nil && policy.Enabled, FeatureLimits: webclient.FeatureLimits{ AccessListCreateLimit: int(clusterFeatures.GetAccessList().GetCreateLimit()), AccessMonitoringMaxReportRangeLimit: int(clusterFeatures.GetAccessMonitoring().GetMaxReportRangeLimit()), diff --git a/lib/web/integrations_azureoidc.go b/lib/web/integrations_azureoidc.go index a83179fc56d54..4392028857afb 100644 --- a/lib/web/integrations_azureoidc.go +++ b/lib/web/integrations_azureoidc.go @@ -54,17 +54,6 @@ func (h *Handler) azureOIDCConfigure(w http.ResponseWriter, r *http.Request, p h return nil, trace.Wrap(err) } - integrationName := queryParams.Get("integrationName") - if len(integrationName) == 0 { - return nil, trace.BadParameter("integrationName must be specified") - } - // Ensure the integration name is valid. - _, err = h.GetProxyClient().GetIntegration(ctx, integrationName) - // NotFound error is ignored to prevent disclosure of whether the integration exists in a public/no-auth endpoint. - if err != nil && !trace.IsNotFound(err) { - return nil, trace.Wrap(err) - } - // The script must execute the following command: argsList := []string{ "integration", "configure", "azure-oidc", diff --git a/lib/web/integrations_azureoidc_test.go b/lib/web/integrations_azureoidc_test.go index a81106c0084d4..1a96497c80d22 100644 --- a/lib/web/integrations_azureoidc_test.go +++ b/lib/web/integrations_azureoidc_test.go @@ -59,7 +59,6 @@ func TestAzureOIDCConfigureScript(t *testing.T) { { name: "valid", reqQuery: url.Values{ - "integrationName": []string{"myintegration"}, "authConnectorName": []string{"myconnector"}, "accessGraph": []string{"true"}, }, @@ -72,7 +71,6 @@ func TestAzureOIDCConfigureScript(t *testing.T) { { name: "valid without accessGraph", reqQuery: url.Values{ - "integrationName": []string{"myintegration"}, "authConnectorName": []string{"myconnector"}, }, errCheck: require.NoError, @@ -80,14 +78,6 @@ func TestAzureOIDCConfigureScript(t *testing.T) { `--proxy-public-addr=` + proxyAddr + ` ` + `--auth-connector-name=myconnector`, }, - { - name: "integrationName invalid", - reqQuery: url.Values{ - "integrationName": []string{"myintegration;"}, - "authConnectorName": []string{"myconnector"}, - }, - errCheck: isBadParamErrFn, - }, { name: "authConnectorName invalid", reqQuery: url.Values{ @@ -96,13 +86,6 @@ func TestAzureOIDCConfigureScript(t *testing.T) { }, errCheck: isBadParamErrFn, }, - { - name: "integrationName missing", - reqQuery: url.Values{ - "authConnectorName": []string{"myconnector"}, - }, - errCheck: isBadParamErrFn, - }, { name: "authConnectorName missing", reqQuery: url.Values{ diff --git a/proto/prehog/v1alpha/teleport.proto b/proto/prehog/v1alpha/teleport.proto index cf06f2b2a684f..ab95d650edf72 100644 --- a/proto/prehog/v1alpha/teleport.proto +++ b/proto/prehog/v1alpha/teleport.proto @@ -766,6 +766,7 @@ enum CTA { CTA_ACCESS_MONITORING = 9; CTA_EXTERNAL_AUDIT_STORAGE = 10; CTA_OKTA_USER_SYNC = 11; + CTA_ENTRA_ID = 12; } // a request forwarded to a kube cluster's API server (other than exec and @@ -1020,6 +1021,7 @@ enum IntegrationEnrollKind { INTEGRATION_ENROLL_KIND_MACHINE_ID_AZURE = 20; INTEGRATION_ENROLL_KIND_MACHINE_ID_SPACELIFT = 21; INTEGRATION_ENROLL_KIND_MACHINE_ID_KUBERNETES = 22; + INTEGRATION_ENROLL_KIND_ENTRA_ID = 23; } // IntegrationEnrollMetadata contains common metadata diff --git a/tool/teleport/common/integration_configure.go b/tool/teleport/common/integration_configure.go index fe642f1117fd0..5b96eb20d9e0d 100644 --- a/tool/teleport/common/integration_configure.go +++ b/tool/teleport/common/integration_configure.go @@ -224,6 +224,12 @@ func onIntegrationConfAzureOIDCCmd(ctx context.Context, params config.Integratio // Ensure we print output to the user. LogLevel at this point was set to Error. utils.InitLogger(utils.LoggingForDaemon, slog.LevelInfo) + if err := azureoidc.EnsureAZLogin(ctx); err != nil { + return trace.Wrap(err) + } + + fmt.Println("Teleport is setting up the Azure integration. This may take a few minutes.") + appID, tenantID, err := azureoidc.SetupEnterpriseApp(ctx, params.ProxyPublicAddr, params.AuthConnectorName) if err != nil { return trace.Wrap(err) diff --git a/web/packages/design/src/assets/images/icons/entra-id.svg b/web/packages/design/src/assets/images/icons/entra-id.svg new file mode 100644 index 0000000000000..0ed35fb73bcf4 --- /dev/null +++ b/web/packages/design/src/assets/images/icons/entra-id.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/web/packages/teleport/src/Integrations/IntegrationList.tsx b/web/packages/teleport/src/Integrations/IntegrationList.tsx index 8e20ac6a18719..55fc9d3cbfde8 100644 --- a/web/packages/teleport/src/Integrations/IntegrationList.tsx +++ b/web/packages/teleport/src/Integrations/IntegrationList.tsx @@ -21,7 +21,7 @@ import styled from 'styled-components'; import { Link as InternalRouteLink } from 'react-router-dom'; import { Box, Flex, Image } from 'design'; -import { AWSIcon } from 'design/SVGIcon'; +import { AWSIcon, AzureIcon } from 'design/SVGIcon'; import slackIcon from 'design/assets/images/icons/slack.svg'; import openaiIcon from 'design/assets/images/icons/openai.svg'; import jamfIcon from 'design/assets/images/icons/jamf.svg'; @@ -34,6 +34,7 @@ import servicenowIcon from 'design/assets/images/icons/servicenow.svg'; import discordIcon from 'design/assets/images/icons/discord.svg'; import emailIcon from 'design/assets/images/icons/email.svg'; import msteamIcon from 'design/assets/images/icons/msteams.svg'; +import entraIdIcon from 'design/assets/images/icons/entra-id.svg'; import Table, { Cell } from 'design/DataTable'; import { MenuButton, MenuItem } from 'shared/components/MenuAction'; import { ToolTipInfo } from 'shared/components/ToolTip'; @@ -325,6 +326,10 @@ const IconCell = ({ item }: { item: IntegrationLike }) => { formattedText = 'Microsoft Teams'; icon = ; break; + case 'entra-id': + formattedText = 'Microsoft Entra ID'; + icon = ; + break; } } else { // Default is integration. @@ -338,6 +343,14 @@ const IconCell = ({ item }: { item: IntegrationLike }) => { ); break; + case IntegrationKind.AzureOidc: + formattedText = 'Azure OIDC'; + icon = ( + + + + ); + break; } } diff --git a/web/packages/teleport/src/Integrations/fixtures.ts b/web/packages/teleport/src/Integrations/fixtures.ts index 6733f044e2145..029fca37725d9 100644 --- a/web/packages/teleport/src/Integrations/fixtures.ts +++ b/web/packages/teleport/src/Integrations/fixtures.ts @@ -132,6 +132,14 @@ export const plugins: Plugin[] = [ statusCode: IntegrationStatusCode.Running, spec: {}, }, + { + resourceType: 'plugin', + name: 'entra-id', + details: '', + kind: 'entra-id', + statusCode: IntegrationStatusCode.Running, + spec: {}, + }, ]; export const integrations: Integration[] = [ diff --git a/web/packages/teleport/src/components/ButtonLockedFeature/ButtonLockedFeature.tsx b/web/packages/teleport/src/components/ButtonLockedFeature/ButtonLockedFeature.tsx index 0ab8a7afd798a..54137445f009e 100644 --- a/web/packages/teleport/src/components/ButtonLockedFeature/ButtonLockedFeature.tsx +++ b/web/packages/teleport/src/components/ButtonLockedFeature/ButtonLockedFeature.tsx @@ -33,6 +33,7 @@ export type Props = { noIcon?: boolean; event?: CtaEvent; textLink?: boolean; + url?: string; [index: string]: any; }; @@ -41,6 +42,7 @@ export function ButtonLockedFeature({ noIcon = false, event, textLink = false, + url, ...rest }: Props) { const ctx = useTeleport(); @@ -56,7 +58,7 @@ export function ButtonLockedFeature({ return ( @@ -69,7 +71,7 @@ export function ButtonLockedFeature({ > = ({ export enum BadgeTitle { LackingPermissions = 'Lacking Permissions', LackingEnterpriseLicense = 'Enterprise Only', + LackingIgs = 'Teleport Identity Only', } diff --git a/web/packages/teleport/src/config.ts b/web/packages/teleport/src/config.ts index d52c6cc2fc86c..e6c75475df641 100644 --- a/web/packages/teleport/src/config.ts +++ b/web/packages/teleport/src/config.ts @@ -83,6 +83,9 @@ const cfg = { // access list, and access monitoring. isIgsEnabled: false, + // isPolicyEnabled refers to the Teleport Policy product + isPolicyEnabled: false, + configDir: '$HOME/.config', baseUrl: window.location.origin, diff --git a/web/packages/teleport/src/services/integrations/types.ts b/web/packages/teleport/src/services/integrations/types.ts index e0305162f5036..6d55ea28d279a 100644 --- a/web/packages/teleport/src/services/integrations/types.ts +++ b/web/packages/teleport/src/services/integrations/types.ts @@ -140,7 +140,8 @@ export type PluginKind = | 'opsgenie' | 'okta' | 'servicenow' - | 'jamf'; + | 'jamf' + | 'entra-id'; export type PluginOktaSpec = { // scimBearerToken is the plain text of the bearer token that Okta will use diff --git a/web/packages/teleport/src/services/sales/index.ts b/web/packages/teleport/src/services/sales/index.ts index 8cb3ba32a8f64..e4750fa1b0e22 100644 --- a/web/packages/teleport/src/services/sales/index.ts +++ b/web/packages/teleport/src/services/sales/index.ts @@ -26,6 +26,8 @@ const UPGRADE_TEAM_URL = 'https://goteleport.com/r/upgrade-team'; const UPGRADE_COMMUNITY_URL = 'https://goteleport.com/r/upgrade-community'; // UPGRADE_IGS_URL is enterprise upgrading to enterprise with Identity Governance & Security const UPGRADE_IGS_URL = 'https://goteleport.com/r/upgrade-igs'; +// UPGRADE_POLICY_URL is enterprise upgrading to enterprise with Policy +export const UPGRADE_POLICY_URL = 'https://goteleport.com/r/upgrade-policy'; function getParams( version: string, @@ -40,12 +42,15 @@ function getParams( export function getSalesURL( version: string, isEnterprise: boolean, - event?: CtaEvent + event?: CtaEvent, + url?: string ) { - let url = UPGRADE_COMMUNITY_URL; - if (isEnterprise) { - // TODO(mcbattirola): remove isTeam when it is no longer used - url = cfg.isTeam ? UPGRADE_TEAM_URL : UPGRADE_IGS_URL; + if (!url) { + url = UPGRADE_COMMUNITY_URL; + if (isEnterprise) { + // TODO(mcbattirola): remove isTeam when it is no longer used + url = cfg.isTeam ? UPGRADE_TEAM_URL : UPGRADE_IGS_URL; + } } const params = getParams(version, isEnterprise, event); return `${url}?${params}`; diff --git a/web/packages/teleport/src/services/userEvent/types.ts b/web/packages/teleport/src/services/userEvent/types.ts index 1213a20f9f97f..94e056ee8566b 100644 --- a/web/packages/teleport/src/services/userEvent/types.ts +++ b/web/packages/teleport/src/services/userEvent/types.ts @@ -74,6 +74,7 @@ export enum IntegrationEnrollKind { MachineIDAzure = 'INTEGRATION_ENROLL_KIND_MACHINE_ID_AZURE', MachineIDSpacelift = 'INTEGRATION_ENROLL_KIND_MACHINE_ID_SPACELIFT', MachineIDKubernetes = 'INTEGRATION_ENROLL_KIND_MACHINE_ID_KUBERNETES', + EntraId = 'INTEGRATION_ENROLL_KIND_ENTRA_ID', } // These constants should match the constant defined in backend found in: @@ -256,6 +257,7 @@ export enum CtaEvent { CTA_ACCESS_MONITORING = 9, CTA_EXTERNAL_AUDIT_STORAGE = 10, CTA_OKTA_USER_SYNC = 11, + CTA_ENTRA_ID = 12, } export enum Feature {