From 32752d7b0a67eb2e1e924cd96acd580abdcc7d1a Mon Sep 17 00:00:00 2001 From: Hugo Shaka Date: Wed, 16 Nov 2022 22:22:19 -0500 Subject: [PATCH 1/5] Adding Kubernetes ProvisionToken auth support --- api/proto/teleport/legacy/types/types.proto | 9 + api/types/provisioning.go | 42 + api/types/types.pb.go | 3035 +++++++++++-------- lib/auth/auth.go | 8 + lib/auth/bot.go | 4 +- lib/auth/join.go | 7 +- lib/auth/join_kubernetes.go | 75 + lib/auth/join_kubernetes_test.go | 153 + lib/auth/register.go | 6 + lib/kubernetestoken/token_source.go | 45 + lib/kubernetestoken/token_source_test.go | 101 + lib/kubernetestoken/token_validator.go | 143 + lib/kubernetestoken/token_validator_test.go | 221 ++ lib/service/service.go | 1 + lib/tbot/config/config.go | 1 + 15 files changed, 2540 insertions(+), 1311 deletions(-) create mode 100644 lib/auth/join_kubernetes.go create mode 100644 lib/auth/join_kubernetes_test.go create mode 100644 lib/kubernetestoken/token_source.go create mode 100644 lib/kubernetestoken/token_source_test.go create mode 100644 lib/kubernetestoken/token_validator.go create mode 100644 lib/kubernetestoken/token_validator_test.go diff --git a/api/proto/teleport/legacy/types/types.proto b/api/proto/teleport/legacy/types/types.proto index 03afe1acc359d..fd1cd9c87ec0e 100644 --- a/api/proto/teleport/legacy/types/types.proto +++ b/api/proto/teleport/legacy/types/types.proto @@ -1018,6 +1018,8 @@ message ProvisionTokenSpecV2 { (gogoproto.jsontag) = "suggested_agent_matcher_labels,omitempty", (gogoproto.customtype) = "Labels" ]; + // Kubernetes allows the configuration of options specific to the "kubernetes" join method. + ProvisionTokenSpecV2Kubernetes Kubernetes = 10 [(gogoproto.jsontag) = "kubernetes,omitempty"]; } message ProvisionTokenSpecV2GitHub { @@ -1062,6 +1064,13 @@ message ProvisionTokenSpecV2CircleCI { string OrganizationID = 2 [(gogoproto.jsontag) = "organization_id,omitempty"]; } +message ProvisionTokenSpecV2Kubernetes { + message Rule { + string ServiceAccount = 1 [(gogoproto.jsontag) = "service_account,omitempty"]; + } + repeated Rule Allow = 1 [(gogoproto.jsontag) = "allow,omitempty"]; +} + // StaticTokensV2 implements the StaticTokens interface. message StaticTokensV2 { option (gogoproto.goproto_stringer) = false; diff --git a/api/types/provisioning.go b/api/types/provisioning.go index 2a2aa6a660a3a..90a53b8c68a09 100644 --- a/api/types/provisioning.go +++ b/api/types/provisioning.go @@ -18,6 +18,7 @@ package types import ( "fmt" + "strings" "time" "github.com/gravitational/trace" @@ -47,6 +48,10 @@ const ( // join method. Documentation regarding the implementation of this can be // found in lib/circleci JoinMethodCircleCI JoinMethod = "circleci" + // JoinMethodKubernetes indicates that the node will join with the + // Kubernetes join method. Documentation regarding implementation can be + // found in lib/kubernetestoken + JoinMethodKubernetes JoinMethod = "kubernetes" ) var JoinMethods = []JoinMethod{ @@ -55,6 +60,7 @@ var JoinMethods = []JoinMethod{ JoinMethodIAM, JoinMethodGitHub, JoinMethodCircleCI, + JoinMethodKubernetes, } func ValidateJoinMethod(method JoinMethod) error { @@ -230,6 +236,17 @@ func (p *ProvisionTokenV2) CheckAndSetDefaults() error { if err := providerCfg.checkAndSetDefaults(); err != nil { return trace.Wrap(err) } + case JoinMethodKubernetes: + providerCfg := p.Spec.Kubernetes + if providerCfg == nil { + return trace.BadParameter( + `"kubernetes" configuration must be provided for the join method %q`, + JoinMethodKubernetes, + ) + } + if err := providerCfg.checkAndSetDefaults(); err != nil { + trace.Wrap(err) + } default: return trace.BadParameter("unknown join method %q", p.Spec.JoinMethod) } @@ -461,3 +478,28 @@ func (a *ProvisionTokenSpecV2CircleCI) checkAndSetDefaults() error { } return nil } + +func (a *ProvisionTokenSpecV2Kubernetes) checkAndSetDefaults() error { + if len(a.Allow) == 0 { + return trace.BadParameter( + "the %q join method requires defined kubernetes allow rules", + JoinMethodKubernetes, + ) + } + for _, allowRule := range a.Allow { + if allowRule.ServiceAccount == "" { + return trace.BadParameter( + "the %q join method requires kubernetes allow rules with non-empty service account name", + JoinMethodKubernetes, + ) + } + if len(strings.Split(allowRule.ServiceAccount, ":")) != 2 { + return trace.BadParameter( + `the %q join method service account rule format is "namespace:service_account", got %q instead`, + JoinMethodKubernetes, + allowRule.ServiceAccount, + ) + } + } + return nil +} diff --git a/api/types/types.pb.go b/api/types/types.pb.go index 80ca9f2a384c7..11d364e2351ed 100644 --- a/api/types/types.pb.go +++ b/api/types/types.pb.go @@ -488,7 +488,7 @@ func (x ClusterAuditConfigSpecV2_FIPSEndpointState) String() string { } func (ClusterAuditConfigSpecV2_FIPSEndpointState) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{57, 0} + return fileDescriptor_9198ee693835762e, []int{58, 0} } // TraceType is an identification of the checkpoint. @@ -542,7 +542,7 @@ func (x ConnectionDiagnosticTrace_TraceType) String() string { } func (ConnectionDiagnosticTrace_TraceType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{205, 0} + return fileDescriptor_9198ee693835762e, []int{206, 0} } // StatusType describes whether this was a success or a failure. @@ -571,7 +571,7 @@ func (x ConnectionDiagnosticTrace_StatusType) String() string { } func (ConnectionDiagnosticTrace_StatusType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{205, 1} + return fileDescriptor_9198ee693835762e, []int{206, 1} } type KeepAlive struct { @@ -1938,7 +1938,7 @@ type ServerSpecV2 struct { // Important: jsontag must not be "kubernetes_clusters", because a // different field with that jsontag existed in 4.4: // https://github.com/gravitational/teleport/issues/4862 - // DELETE IN 13.0.0. Deprecated, moved to KubernetesServerSpecV3. + // DELETE IN 12.0.0. Deprecated, moved to KubernetesServerSpecV3. KubernetesClusters []*KubernetesCluster `protobuf:"bytes,10,rep,name=KubernetesClusters,proto3" json:"kube_clusters,omitempty"` // PeerAddr is the address a proxy server is reachable at by its peer proxies. PeerAddr string `protobuf:"bytes,11,opt,name=PeerAddr,proto3" json:"peer_addr,omitempty"` @@ -3026,10 +3026,12 @@ type ProvisionTokenSpecV2 struct { // When an agent uses this token, the agent should monitor resources that match those labels. // For databases, this means adding the labels to `db_service.resources.labels`. // Currently, only node-join scripts create a configuration according to the suggestion. - SuggestedAgentMatcherLabels Labels `protobuf:"bytes,9,opt,name=SuggestedAgentMatcherLabels,proto3,customtype=Labels" json:"suggested_agent_matcher_labels,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + SuggestedAgentMatcherLabels Labels `protobuf:"bytes,9,opt,name=SuggestedAgentMatcherLabels,proto3,customtype=Labels" json:"suggested_agent_matcher_labels,omitempty"` + // Kubernetes allows the configuration of options specific to the "kubernetes" join method. + Kubernetes *ProvisionTokenSpecV2Kubernetes `protobuf:"bytes,10,opt,name=Kubernetes,proto3" json:"kubernetes,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *ProvisionTokenSpecV2) Reset() { *m = ProvisionTokenSpecV2{} } @@ -3253,6 +3255,86 @@ func (m *ProvisionTokenSpecV2CircleCI_Rule) XXX_DiscardUnknown() { var xxx_messageInfo_ProvisionTokenSpecV2CircleCI_Rule proto.InternalMessageInfo +type ProvisionTokenSpecV2Kubernetes struct { + Allow []*ProvisionTokenSpecV2Kubernetes_Rule `protobuf:"bytes,1,rep,name=Allow,proto3" json:"allow,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ProvisionTokenSpecV2Kubernetes) Reset() { *m = ProvisionTokenSpecV2Kubernetes{} } +func (m *ProvisionTokenSpecV2Kubernetes) String() string { return proto.CompactTextString(m) } +func (*ProvisionTokenSpecV2Kubernetes) ProtoMessage() {} +func (*ProvisionTokenSpecV2Kubernetes) Descriptor() ([]byte, []int) { + return fileDescriptor_9198ee693835762e, []int{52} +} +func (m *ProvisionTokenSpecV2Kubernetes) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ProvisionTokenSpecV2Kubernetes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ProvisionTokenSpecV2Kubernetes.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ProvisionTokenSpecV2Kubernetes) XXX_Merge(src proto.Message) { + xxx_messageInfo_ProvisionTokenSpecV2Kubernetes.Merge(m, src) +} +func (m *ProvisionTokenSpecV2Kubernetes) XXX_Size() int { + return m.Size() +} +func (m *ProvisionTokenSpecV2Kubernetes) XXX_DiscardUnknown() { + xxx_messageInfo_ProvisionTokenSpecV2Kubernetes.DiscardUnknown(m) +} + +var xxx_messageInfo_ProvisionTokenSpecV2Kubernetes proto.InternalMessageInfo + +type ProvisionTokenSpecV2Kubernetes_Rule struct { + ServiceAccount string `protobuf:"bytes,1,opt,name=ServiceAccount,proto3" json:"service_account,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ProvisionTokenSpecV2Kubernetes_Rule) Reset() { *m = ProvisionTokenSpecV2Kubernetes_Rule{} } +func (m *ProvisionTokenSpecV2Kubernetes_Rule) String() string { return proto.CompactTextString(m) } +func (*ProvisionTokenSpecV2Kubernetes_Rule) ProtoMessage() {} +func (*ProvisionTokenSpecV2Kubernetes_Rule) Descriptor() ([]byte, []int) { + return fileDescriptor_9198ee693835762e, []int{52, 0} +} +func (m *ProvisionTokenSpecV2Kubernetes_Rule) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ProvisionTokenSpecV2Kubernetes_Rule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ProvisionTokenSpecV2Kubernetes_Rule.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ProvisionTokenSpecV2Kubernetes_Rule) XXX_Merge(src proto.Message) { + xxx_messageInfo_ProvisionTokenSpecV2Kubernetes_Rule.Merge(m, src) +} +func (m *ProvisionTokenSpecV2Kubernetes_Rule) XXX_Size() int { + return m.Size() +} +func (m *ProvisionTokenSpecV2Kubernetes_Rule) XXX_DiscardUnknown() { + xxx_messageInfo_ProvisionTokenSpecV2Kubernetes_Rule.DiscardUnknown(m) +} + +var xxx_messageInfo_ProvisionTokenSpecV2Kubernetes_Rule proto.InternalMessageInfo + // StaticTokensV2 implements the StaticTokens interface. type StaticTokensV2 struct { // Kind is a resource kind @@ -3273,7 +3355,7 @@ type StaticTokensV2 struct { func (m *StaticTokensV2) Reset() { *m = StaticTokensV2{} } func (*StaticTokensV2) ProtoMessage() {} func (*StaticTokensV2) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{52} + return fileDescriptor_9198ee693835762e, []int{53} } func (m *StaticTokensV2) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3316,7 +3398,7 @@ func (m *StaticTokensSpecV2) Reset() { *m = StaticTokensSpecV2{} } func (m *StaticTokensSpecV2) String() string { return proto.CompactTextString(m) } func (*StaticTokensSpecV2) ProtoMessage() {} func (*StaticTokensSpecV2) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{53} + return fileDescriptor_9198ee693835762e, []int{54} } func (m *StaticTokensSpecV2) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3365,7 +3447,7 @@ type ClusterNameV2 struct { func (m *ClusterNameV2) Reset() { *m = ClusterNameV2{} } func (*ClusterNameV2) ProtoMessage() {} func (*ClusterNameV2) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{54} + return fileDescriptor_9198ee693835762e, []int{55} } func (m *ClusterNameV2) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3411,7 +3493,7 @@ func (m *ClusterNameSpecV2) Reset() { *m = ClusterNameSpecV2{} } func (m *ClusterNameSpecV2) String() string { return proto.CompactTextString(m) } func (*ClusterNameSpecV2) ProtoMessage() {} func (*ClusterNameSpecV2) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{55} + return fileDescriptor_9198ee693835762e, []int{56} } func (m *ClusterNameSpecV2) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3461,7 +3543,7 @@ func (m *ClusterAuditConfigV2) Reset() { *m = ClusterAuditConfigV2{} } func (m *ClusterAuditConfigV2) String() string { return proto.CompactTextString(m) } func (*ClusterAuditConfigV2) ProtoMessage() {} func (*ClusterAuditConfigV2) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{56} + return fileDescriptor_9198ee693835762e, []int{57} } func (m *ClusterAuditConfigV2) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3531,7 +3613,7 @@ func (m *ClusterAuditConfigSpecV2) Reset() { *m = ClusterAuditConfigSpec func (m *ClusterAuditConfigSpecV2) String() string { return proto.CompactTextString(m) } func (*ClusterAuditConfigSpecV2) ProtoMessage() {} func (*ClusterAuditConfigSpecV2) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{57} + return fileDescriptor_9198ee693835762e, []int{58} } func (m *ClusterAuditConfigSpecV2) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3581,7 +3663,7 @@ func (m *ClusterNetworkingConfigV2) Reset() { *m = ClusterNetworkingConf func (m *ClusterNetworkingConfigV2) String() string { return proto.CompactTextString(m) } func (*ClusterNetworkingConfigV2) ProtoMessage() {} func (*ClusterNetworkingConfigV2) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{58} + return fileDescriptor_9198ee693835762e, []int{59} } func (m *ClusterNetworkingConfigV2) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3650,7 +3732,7 @@ func (m *ClusterNetworkingConfigSpecV2) Reset() { *m = ClusterNetworking func (m *ClusterNetworkingConfigSpecV2) String() string { return proto.CompactTextString(m) } func (*ClusterNetworkingConfigSpecV2) ProtoMessage() {} func (*ClusterNetworkingConfigSpecV2) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{59} + return fileDescriptor_9198ee693835762e, []int{60} } func (m *ClusterNetworkingConfigSpecV2) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3694,7 +3776,7 @@ func (m *TunnelStrategyV1) Reset() { *m = TunnelStrategyV1{} } func (m *TunnelStrategyV1) String() string { return proto.CompactTextString(m) } func (*TunnelStrategyV1) ProtoMessage() {} func (*TunnelStrategyV1) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{60} + return fileDescriptor_9198ee693835762e, []int{61} } func (m *TunnelStrategyV1) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3779,7 +3861,7 @@ func (m *AgentMeshTunnelStrategy) Reset() { *m = AgentMeshTunnelStrategy func (m *AgentMeshTunnelStrategy) String() string { return proto.CompactTextString(m) } func (*AgentMeshTunnelStrategy) ProtoMessage() {} func (*AgentMeshTunnelStrategy) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{61} + return fileDescriptor_9198ee693835762e, []int{62} } func (m *AgentMeshTunnelStrategy) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3820,7 +3902,7 @@ func (m *ProxyPeeringTunnelStrategy) Reset() { *m = ProxyPeeringTunnelSt func (m *ProxyPeeringTunnelStrategy) String() string { return proto.CompactTextString(m) } func (*ProxyPeeringTunnelStrategy) ProtoMessage() {} func (*ProxyPeeringTunnelStrategy) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{62} + return fileDescriptor_9198ee693835762e, []int{63} } func (m *ProxyPeeringTunnelStrategy) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3870,7 +3952,7 @@ func (m *SessionRecordingConfigV2) Reset() { *m = SessionRecordingConfig func (m *SessionRecordingConfigV2) String() string { return proto.CompactTextString(m) } func (*SessionRecordingConfigV2) ProtoMessage() {} func (*SessionRecordingConfigV2) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{63} + return fileDescriptor_9198ee693835762e, []int{64} } func (m *SessionRecordingConfigV2) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3916,7 +3998,7 @@ func (m *SessionRecordingConfigSpecV2) Reset() { *m = SessionRecordingCo func (m *SessionRecordingConfigSpecV2) String() string { return proto.CompactTextString(m) } func (*SessionRecordingConfigSpecV2) ProtoMessage() {} func (*SessionRecordingConfigSpecV2) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{64} + return fileDescriptor_9198ee693835762e, []int{65} } func (m *SessionRecordingConfigSpecV2) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3965,7 +4047,7 @@ type AuthPreferenceV2 struct { func (m *AuthPreferenceV2) Reset() { *m = AuthPreferenceV2{} } func (*AuthPreferenceV2) ProtoMessage() {} func (*AuthPreferenceV2) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{65} + return fileDescriptor_9198ee693835762e, []int{66} } func (m *AuthPreferenceV2) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4036,7 +4118,7 @@ func (m *AuthPreferenceSpecV2) Reset() { *m = AuthPreferenceSpecV2{} } func (m *AuthPreferenceSpecV2) String() string { return proto.CompactTextString(m) } func (*AuthPreferenceSpecV2) ProtoMessage() {} func (*AuthPreferenceSpecV2) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{66} + return fileDescriptor_9198ee693835762e, []int{67} } func (m *AuthPreferenceSpecV2) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4087,7 +4169,7 @@ func (m *U2F) Reset() { *m = U2F{} } func (m *U2F) String() string { return proto.CompactTextString(m) } func (*U2F) ProtoMessage() {} func (*U2F) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{67} + return fileDescriptor_9198ee693835762e, []int{68} } func (m *U2F) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4155,7 +4237,7 @@ func (m *Webauthn) Reset() { *m = Webauthn{} } func (m *Webauthn) String() string { return proto.CompactTextString(m) } func (*Webauthn) ProtoMessage() {} func (*Webauthn) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{68} + return fileDescriptor_9198ee693835762e, []int{69} } func (m *Webauthn) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4205,7 +4287,7 @@ func (m *Namespace) Reset() { *m = Namespace{} } func (m *Namespace) String() string { return proto.CompactTextString(m) } func (*Namespace) ProtoMessage() {} func (*Namespace) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{69} + return fileDescriptor_9198ee693835762e, []int{70} } func (m *Namespace) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4245,7 +4327,7 @@ func (m *NamespaceSpec) Reset() { *m = NamespaceSpec{} } func (m *NamespaceSpec) String() string { return proto.CompactTextString(m) } func (*NamespaceSpec) ProtoMessage() {} func (*NamespaceSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{70} + return fileDescriptor_9198ee693835762e, []int{71} } func (m *NamespaceSpec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4293,7 +4375,7 @@ type UserTokenV3 struct { func (m *UserTokenV3) Reset() { *m = UserTokenV3{} } func (*UserTokenV3) ProtoMessage() {} func (*UserTokenV3) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{71} + return fileDescriptor_9198ee693835762e, []int{72} } func (m *UserTokenV3) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4340,7 +4422,7 @@ func (m *UserTokenSpecV3) Reset() { *m = UserTokenSpecV3{} } func (m *UserTokenSpecV3) String() string { return proto.CompactTextString(m) } func (*UserTokenSpecV3) ProtoMessage() {} func (*UserTokenSpecV3) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{72} + return fileDescriptor_9198ee693835762e, []int{73} } func (m *UserTokenSpecV3) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4388,7 +4470,7 @@ type UserTokenSecretsV3 struct { func (m *UserTokenSecretsV3) Reset() { *m = UserTokenSecretsV3{} } func (*UserTokenSecretsV3) ProtoMessage() {} func (*UserTokenSecretsV3) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{73} + return fileDescriptor_9198ee693835762e, []int{74} } func (m *UserTokenSecretsV3) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4433,7 +4515,7 @@ func (m *UserTokenSecretsSpecV3) Reset() { *m = UserTokenSecretsSpecV3{} func (m *UserTokenSecretsSpecV3) String() string { return proto.CompactTextString(m) } func (*UserTokenSecretsSpecV3) ProtoMessage() {} func (*UserTokenSecretsSpecV3) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{74} + return fileDescriptor_9198ee693835762e, []int{75} } func (m *UserTokenSecretsSpecV3) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4482,7 +4564,7 @@ type AccessRequestV3 struct { func (m *AccessRequestV3) Reset() { *m = AccessRequestV3{} } func (*AccessRequestV3) ProtoMessage() {} func (*AccessRequestV3) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{75} + return fileDescriptor_9198ee693835762e, []int{76} } func (m *AccessRequestV3) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4534,7 +4616,7 @@ func (m *AccessReviewThreshold) Reset() { *m = AccessReviewThreshold{} } func (m *AccessReviewThreshold) String() string { return proto.CompactTextString(m) } func (*AccessReviewThreshold) ProtoMessage() {} func (*AccessReviewThreshold) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{76} + return fileDescriptor_9198ee693835762e, []int{77} } func (m *AccessReviewThreshold) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4590,7 +4672,7 @@ func (m *AccessReview) Reset() { *m = AccessReview{} } func (m *AccessReview) String() string { return proto.CompactTextString(m) } func (*AccessReview) ProtoMessage() {} func (*AccessReview) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{77} + return fileDescriptor_9198ee693835762e, []int{78} } func (m *AccessReview) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4635,7 +4717,7 @@ func (m *AccessReviewSubmission) Reset() { *m = AccessReviewSubmission{} func (m *AccessReviewSubmission) String() string { return proto.CompactTextString(m) } func (*AccessReviewSubmission) ProtoMessage() {} func (*AccessReviewSubmission) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{78} + return fileDescriptor_9198ee693835762e, []int{79} } func (m *AccessReviewSubmission) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4678,7 +4760,7 @@ func (m *ThresholdIndexSet) Reset() { *m = ThresholdIndexSet{} } func (m *ThresholdIndexSet) String() string { return proto.CompactTextString(m) } func (*ThresholdIndexSet) ProtoMessage() {} func (*ThresholdIndexSet) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{79} + return fileDescriptor_9198ee693835762e, []int{80} } func (m *ThresholdIndexSet) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4721,7 +4803,7 @@ func (m *ThresholdIndexSets) Reset() { *m = ThresholdIndexSets{} } func (m *ThresholdIndexSets) String() string { return proto.CompactTextString(m) } func (*ThresholdIndexSets) ProtoMessage() {} func (*ThresholdIndexSets) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{80} + return fileDescriptor_9198ee693835762e, []int{81} } func (m *ThresholdIndexSets) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4814,7 +4896,7 @@ func (m *AccessRequestSpecV3) Reset() { *m = AccessRequestSpecV3{} } func (m *AccessRequestSpecV3) String() string { return proto.CompactTextString(m) } func (*AccessRequestSpecV3) ProtoMessage() {} func (*AccessRequestSpecV3) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{81} + return fileDescriptor_9198ee693835762e, []int{82} } func (m *AccessRequestSpecV3) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4860,7 +4942,7 @@ func (m *AccessRequestFilter) Reset() { *m = AccessRequestFilter{} } func (m *AccessRequestFilter) String() string { return proto.CompactTextString(m) } func (*AccessRequestFilter) ProtoMessage() {} func (*AccessRequestFilter) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{82} + return fileDescriptor_9198ee693835762e, []int{83} } func (m *AccessRequestFilter) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4908,7 +4990,7 @@ func (m *AccessCapabilities) Reset() { *m = AccessCapabilities{} } func (m *AccessCapabilities) String() string { return proto.CompactTextString(m) } func (*AccessCapabilities) ProtoMessage() {} func (*AccessCapabilities) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{83} + return fileDescriptor_9198ee693835762e, []int{84} } func (m *AccessCapabilities) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4960,7 +5042,7 @@ func (m *AccessCapabilitiesRequest) Reset() { *m = AccessCapabilitiesReq func (m *AccessCapabilitiesRequest) String() string { return proto.CompactTextString(m) } func (*AccessCapabilitiesRequest) ProtoMessage() {} func (*AccessCapabilitiesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{84} + return fileDescriptor_9198ee693835762e, []int{85} } func (m *AccessCapabilitiesRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5006,7 +5088,7 @@ func (m *ResourceID) Reset() { *m = ResourceID{} } func (m *ResourceID) String() string { return proto.CompactTextString(m) } func (*ResourceID) ProtoMessage() {} func (*ResourceID) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{85} + return fileDescriptor_9198ee693835762e, []int{86} } func (m *ResourceID) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5055,7 +5137,7 @@ type PluginDataV3 struct { func (m *PluginDataV3) Reset() { *m = PluginDataV3{} } func (*PluginDataV3) ProtoMessage() {} func (*PluginDataV3) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{86} + return fileDescriptor_9198ee693835762e, []int{87} } func (m *PluginDataV3) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5098,7 +5180,7 @@ func (m *PluginDataEntry) Reset() { *m = PluginDataEntry{} } func (m *PluginDataEntry) String() string { return proto.CompactTextString(m) } func (*PluginDataEntry) ProtoMessage() {} func (*PluginDataEntry) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{87} + return fileDescriptor_9198ee693835762e, []int{88} } func (m *PluginDataEntry) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5140,7 +5222,7 @@ func (m *PluginDataSpecV3) Reset() { *m = PluginDataSpecV3{} } func (m *PluginDataSpecV3) String() string { return proto.CompactTextString(m) } func (*PluginDataSpecV3) ProtoMessage() {} func (*PluginDataSpecV3) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{88} + return fileDescriptor_9198ee693835762e, []int{89} } func (m *PluginDataSpecV3) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5187,7 +5269,7 @@ func (m *PluginDataFilter) Reset() { *m = PluginDataFilter{} } func (m *PluginDataFilter) String() string { return proto.CompactTextString(m) } func (*PluginDataFilter) ProtoMessage() {} func (*PluginDataFilter) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{89} + return fileDescriptor_9198ee693835762e, []int{90} } func (m *PluginDataFilter) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5238,7 +5320,7 @@ func (m *PluginDataUpdateParams) Reset() { *m = PluginDataUpdateParams{} func (m *PluginDataUpdateParams) String() string { return proto.CompactTextString(m) } func (*PluginDataUpdateParams) ProtoMessage() {} func (*PluginDataUpdateParams) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{90} + return fileDescriptor_9198ee693835762e, []int{91} } func (m *PluginDataUpdateParams) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5287,7 +5369,7 @@ type RoleV5 struct { func (m *RoleV5) Reset() { *m = RoleV5{} } func (*RoleV5) ProtoMessage() {} func (*RoleV5) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{91} + return fileDescriptor_9198ee693835762e, []int{92} } func (m *RoleV5) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5334,7 +5416,7 @@ func (m *RoleSpecV5) Reset() { *m = RoleSpecV5{} } func (m *RoleSpecV5) String() string { return proto.CompactTextString(m) } func (*RoleSpecV5) ProtoMessage() {} func (*RoleSpecV5) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{92} + return fileDescriptor_9198ee693835762e, []int{93} } func (m *RoleSpecV5) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5440,7 +5522,7 @@ func (m *RoleOptions) Reset() { *m = RoleOptions{} } func (m *RoleOptions) String() string { return proto.CompactTextString(m) } func (*RoleOptions) ProtoMessage() {} func (*RoleOptions) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{93} + return fileDescriptor_9198ee693835762e, []int{94} } func (m *RoleOptions) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5486,7 +5568,7 @@ func (m *RecordSession) Reset() { *m = RecordSession{} } func (m *RecordSession) String() string { return proto.CompactTextString(m) } func (*RecordSession) ProtoMessage() {} func (*RecordSession) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{94} + return fileDescriptor_9198ee693835762e, []int{95} } func (m *RecordSession) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5536,7 +5618,7 @@ func (m *CertExtension) Reset() { *m = CertExtension{} } func (m *CertExtension) String() string { return proto.CompactTextString(m) } func (*CertExtension) ProtoMessage() {} func (*CertExtension) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{95} + return fileDescriptor_9198ee693835762e, []int{96} } func (m *CertExtension) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5625,7 +5707,7 @@ func (m *RoleConditions) Reset() { *m = RoleConditions{} } func (m *RoleConditions) String() string { return proto.CompactTextString(m) } func (*RoleConditions) ProtoMessage() {} func (*RoleConditions) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{96} + return fileDescriptor_9198ee693835762e, []int{97} } func (m *RoleConditions) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5678,7 +5760,7 @@ func (m *SessionRequirePolicy) Reset() { *m = SessionRequirePolicy{} } func (m *SessionRequirePolicy) String() string { return proto.CompactTextString(m) } func (*SessionRequirePolicy) ProtoMessage() {} func (*SessionRequirePolicy) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{97} + return fileDescriptor_9198ee693835762e, []int{98} } func (m *SessionRequirePolicy) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5726,7 +5808,7 @@ func (m *SessionJoinPolicy) Reset() { *m = SessionJoinPolicy{} } func (m *SessionJoinPolicy) String() string { return proto.CompactTextString(m) } func (*SessionJoinPolicy) ProtoMessage() {} func (*SessionJoinPolicy) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{98} + return fileDescriptor_9198ee693835762e, []int{99} } func (m *SessionJoinPolicy) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5791,7 +5873,7 @@ func (m *AccessRequestConditions) Reset() { *m = AccessRequestConditions func (m *AccessRequestConditions) String() string { return proto.CompactTextString(m) } func (*AccessRequestConditions) ProtoMessage() {} func (*AccessRequestConditions) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{99} + return fileDescriptor_9198ee693835762e, []int{100} } func (m *AccessRequestConditions) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5843,7 +5925,7 @@ func (m *AccessReviewConditions) Reset() { *m = AccessReviewConditions{} func (m *AccessReviewConditions) String() string { return proto.CompactTextString(m) } func (*AccessReviewConditions) ProtoMessage() {} func (*AccessReviewConditions) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{100} + return fileDescriptor_9198ee693835762e, []int{101} } func (m *AccessReviewConditions) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5889,7 +5971,7 @@ func (m *ClaimMapping) Reset() { *m = ClaimMapping{} } func (m *ClaimMapping) String() string { return proto.CompactTextString(m) } func (*ClaimMapping) ProtoMessage() {} func (*ClaimMapping) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{101} + return fileDescriptor_9198ee693835762e, []int{102} } func (m *ClaimMapping) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5935,7 +6017,7 @@ func (m *TraitMapping) Reset() { *m = TraitMapping{} } func (m *TraitMapping) String() string { return proto.CompactTextString(m) } func (*TraitMapping) ProtoMessage() {} func (*TraitMapping) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{102} + return fileDescriptor_9198ee693835762e, []int{103} } func (m *TraitMapping) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5984,7 +6066,7 @@ func (m *Rule) Reset() { *m = Rule{} } func (m *Rule) String() string { return proto.CompactTextString(m) } func (*Rule) ProtoMessage() {} func (*Rule) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{103} + return fileDescriptor_9198ee693835762e, []int{104} } func (m *Rule) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6032,7 +6114,7 @@ func (m *ImpersonateConditions) Reset() { *m = ImpersonateConditions{} } func (m *ImpersonateConditions) String() string { return proto.CompactTextString(m) } func (*ImpersonateConditions) ProtoMessage() {} func (*ImpersonateConditions) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{104} + return fileDescriptor_9198ee693835762e, []int{105} } func (m *ImpersonateConditions) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6074,7 +6156,7 @@ func (m *BoolValue) Reset() { *m = BoolValue{} } func (m *BoolValue) String() string { return proto.CompactTextString(m) } func (*BoolValue) ProtoMessage() {} func (*BoolValue) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{105} + return fileDescriptor_9198ee693835762e, []int{106} } func (m *BoolValue) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6123,7 +6205,7 @@ type UserV2 struct { func (m *UserV2) Reset() { *m = UserV2{} } func (*UserV2) ProtoMessage() {} func (*UserV2) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{106} + return fileDescriptor_9198ee693835762e, []int{107} } func (m *UserV2) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6187,7 +6269,7 @@ func (m *UserSpecV2) Reset() { *m = UserSpecV2{} } func (m *UserSpecV2) String() string { return proto.CompactTextString(m) } func (*UserSpecV2) ProtoMessage() {} func (*UserSpecV2) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{107} + return fileDescriptor_9198ee693835762e, []int{108} } func (m *UserSpecV2) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6232,7 +6314,7 @@ type ExternalIdentity struct { func (m *ExternalIdentity) Reset() { *m = ExternalIdentity{} } func (*ExternalIdentity) ProtoMessage() {} func (*ExternalIdentity) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{108} + return fileDescriptor_9198ee693835762e, []int{109} } func (m *ExternalIdentity) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6284,7 +6366,7 @@ func (m *LoginStatus) Reset() { *m = LoginStatus{} } func (m *LoginStatus) String() string { return proto.CompactTextString(m) } func (*LoginStatus) ProtoMessage() {} func (*LoginStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{109} + return fileDescriptor_9198ee693835762e, []int{110} } func (m *LoginStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6329,7 +6411,7 @@ type CreatedBy struct { func (m *CreatedBy) Reset() { *m = CreatedBy{} } func (*CreatedBy) ProtoMessage() {} func (*CreatedBy) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{110} + return fileDescriptor_9198ee693835762e, []int{111} } func (m *CreatedBy) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6378,7 +6460,7 @@ func (m *LocalAuthSecrets) Reset() { *m = LocalAuthSecrets{} } func (m *LocalAuthSecrets) String() string { return proto.CompactTextString(m) } func (*LocalAuthSecrets) ProtoMessage() {} func (*LocalAuthSecrets) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{111} + return fileDescriptor_9198ee693835762e, []int{112} } func (m *LocalAuthSecrets) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6434,7 +6516,7 @@ func (m *MFADevice) Reset() { *m = MFADevice{} } func (m *MFADevice) String() string { return proto.CompactTextString(m) } func (*MFADevice) ProtoMessage() {} func (*MFADevice) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{112} + return fileDescriptor_9198ee693835762e, []int{113} } func (m *MFADevice) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6532,7 +6614,7 @@ func (m *TOTPDevice) Reset() { *m = TOTPDevice{} } func (m *TOTPDevice) String() string { return proto.CompactTextString(m) } func (*TOTPDevice) ProtoMessage() {} func (*TOTPDevice) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{113} + return fileDescriptor_9198ee693835762e, []int{114} } func (m *TOTPDevice) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6578,7 +6660,7 @@ func (m *U2FDevice) Reset() { *m = U2FDevice{} } func (m *U2FDevice) String() string { return proto.CompactTextString(m) } func (*U2FDevice) ProtoMessage() {} func (*U2FDevice) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{114} + return fileDescriptor_9198ee693835762e, []int{115} } func (m *U2FDevice) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6645,7 +6727,7 @@ func (m *WebauthnDevice) Reset() { *m = WebauthnDevice{} } func (m *WebauthnDevice) String() string { return proto.CompactTextString(m) } func (*WebauthnDevice) ProtoMessage() {} func (*WebauthnDevice) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{115} + return fileDescriptor_9198ee693835762e, []int{116} } func (m *WebauthnDevice) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6688,7 +6770,7 @@ func (m *WebauthnLocalAuth) Reset() { *m = WebauthnLocalAuth{} } func (m *WebauthnLocalAuth) String() string { return proto.CompactTextString(m) } func (*WebauthnLocalAuth) ProtoMessage() {} func (*WebauthnLocalAuth) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{116} + return fileDescriptor_9198ee693835762e, []int{117} } func (m *WebauthnLocalAuth) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6734,7 +6816,7 @@ func (m *ConnectorRef) Reset() { *m = ConnectorRef{} } func (m *ConnectorRef) String() string { return proto.CompactTextString(m) } func (*ConnectorRef) ProtoMessage() {} func (*ConnectorRef) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{117} + return fileDescriptor_9198ee693835762e, []int{118} } func (m *ConnectorRef) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6776,7 +6858,7 @@ func (m *UserRef) Reset() { *m = UserRef{} } func (m *UserRef) String() string { return proto.CompactTextString(m) } func (*UserRef) ProtoMessage() {} func (*UserRef) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{118} + return fileDescriptor_9198ee693835762e, []int{119} } func (m *UserRef) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6826,7 +6908,7 @@ func (m *ReverseTunnelV2) Reset() { *m = ReverseTunnelV2{} } func (m *ReverseTunnelV2) String() string { return proto.CompactTextString(m) } func (*ReverseTunnelV2) ProtoMessage() {} func (*ReverseTunnelV2) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{119} + return fileDescriptor_9198ee693835762e, []int{120} } func (m *ReverseTunnelV2) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6873,7 +6955,7 @@ func (m *ReverseTunnelSpecV2) Reset() { *m = ReverseTunnelSpecV2{} } func (m *ReverseTunnelSpecV2) String() string { return proto.CompactTextString(m) } func (*ReverseTunnelSpecV2) ProtoMessage() {} func (*ReverseTunnelSpecV2) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{120} + return fileDescriptor_9198ee693835762e, []int{121} } func (m *ReverseTunnelSpecV2) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6922,7 +7004,7 @@ type TunnelConnectionV2 struct { func (m *TunnelConnectionV2) Reset() { *m = TunnelConnectionV2{} } func (*TunnelConnectionV2) ProtoMessage() {} func (*TunnelConnectionV2) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{121} + return fileDescriptor_9198ee693835762e, []int{122} } func (m *TunnelConnectionV2) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6970,7 +7052,7 @@ func (m *TunnelConnectionSpecV2) Reset() { *m = TunnelConnectionSpecV2{} func (m *TunnelConnectionSpecV2) String() string { return proto.CompactTextString(m) } func (*TunnelConnectionSpecV2) ProtoMessage() {} func (*TunnelConnectionSpecV2) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{122} + return fileDescriptor_9198ee693835762e, []int{123} } func (m *TunnelConnectionSpecV2) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7018,7 +7100,7 @@ func (m *SemaphoreFilter) Reset() { *m = SemaphoreFilter{} } func (m *SemaphoreFilter) String() string { return proto.CompactTextString(m) } func (*SemaphoreFilter) ProtoMessage() {} func (*SemaphoreFilter) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{123} + return fileDescriptor_9198ee693835762e, []int{124} } func (m *SemaphoreFilter) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7069,7 +7151,7 @@ func (m *AcquireSemaphoreRequest) Reset() { *m = AcquireSemaphoreRequest func (m *AcquireSemaphoreRequest) String() string { return proto.CompactTextString(m) } func (*AcquireSemaphoreRequest) ProtoMessage() {} func (*AcquireSemaphoreRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{124} + return fileDescriptor_9198ee693835762e, []int{125} } func (m *AcquireSemaphoreRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7117,7 +7199,7 @@ func (m *SemaphoreLease) Reset() { *m = SemaphoreLease{} } func (m *SemaphoreLease) String() string { return proto.CompactTextString(m) } func (*SemaphoreLease) ProtoMessage() {} func (*SemaphoreLease) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{125} + return fileDescriptor_9198ee693835762e, []int{126} } func (m *SemaphoreLease) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7163,7 +7245,7 @@ func (m *SemaphoreLeaseRef) Reset() { *m = SemaphoreLeaseRef{} } func (m *SemaphoreLeaseRef) String() string { return proto.CompactTextString(m) } func (*SemaphoreLeaseRef) ProtoMessage() {} func (*SemaphoreLeaseRef) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{126} + return fileDescriptor_9198ee693835762e, []int{127} } func (m *SemaphoreLeaseRef) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7212,7 +7294,7 @@ type SemaphoreV3 struct { func (m *SemaphoreV3) Reset() { *m = SemaphoreV3{} } func (*SemaphoreV3) ProtoMessage() {} func (*SemaphoreV3) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{127} + return fileDescriptor_9198ee693835762e, []int{128} } func (m *SemaphoreV3) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7254,7 +7336,7 @@ func (m *SemaphoreSpecV3) Reset() { *m = SemaphoreSpecV3{} } func (m *SemaphoreSpecV3) String() string { return proto.CompactTextString(m) } func (*SemaphoreSpecV3) ProtoMessage() {} func (*SemaphoreSpecV3) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{128} + return fileDescriptor_9198ee693835762e, []int{129} } func (m *SemaphoreSpecV3) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7303,7 +7385,7 @@ type WebSessionV2 struct { func (m *WebSessionV2) Reset() { *m = WebSessionV2{} } func (*WebSessionV2) ProtoMessage() {} func (*WebSessionV2) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{129} + return fileDescriptor_9198ee693835762e, []int{130} } func (m *WebSessionV2) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7367,7 +7449,7 @@ func (m *WebSessionSpecV2) Reset() { *m = WebSessionSpecV2{} } func (m *WebSessionSpecV2) String() string { return proto.CompactTextString(m) } func (*WebSessionSpecV2) ProtoMessage() {} func (*WebSessionSpecV2) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{130} + return fileDescriptor_9198ee693835762e, []int{131} } func (m *WebSessionSpecV2) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7409,7 +7491,7 @@ func (m *WebSessionFilter) Reset() { *m = WebSessionFilter{} } func (m *WebSessionFilter) String() string { return proto.CompactTextString(m) } func (*WebSessionFilter) ProtoMessage() {} func (*WebSessionFilter) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{131} + return fileDescriptor_9198ee693835762e, []int{132} } func (m *WebSessionFilter) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7458,7 +7540,7 @@ type RemoteClusterV3 struct { func (m *RemoteClusterV3) Reset() { *m = RemoteClusterV3{} } func (*RemoteClusterV3) ProtoMessage() {} func (*RemoteClusterV3) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{132} + return fileDescriptor_9198ee693835762e, []int{133} } func (m *RemoteClusterV3) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7502,7 +7584,7 @@ func (m *RemoteClusterStatusV3) Reset() { *m = RemoteClusterStatusV3{} } func (m *RemoteClusterStatusV3) String() string { return proto.CompactTextString(m) } func (*RemoteClusterStatusV3) ProtoMessage() {} func (*RemoteClusterStatusV3) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{133} + return fileDescriptor_9198ee693835762e, []int{134} } func (m *RemoteClusterStatusV3) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7552,7 +7634,7 @@ func (m *KubernetesCluster) Reset() { *m = KubernetesCluster{} } func (m *KubernetesCluster) String() string { return proto.CompactTextString(m) } func (*KubernetesCluster) ProtoMessage() {} func (*KubernetesCluster) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{134} + return fileDescriptor_9198ee693835762e, []int{135} } func (m *KubernetesCluster) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7601,7 +7683,7 @@ type KubernetesClusterV3 struct { func (m *KubernetesClusterV3) Reset() { *m = KubernetesClusterV3{} } func (*KubernetesClusterV3) ProtoMessage() {} func (*KubernetesClusterV3) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{135} + return fileDescriptor_9198ee693835762e, []int{136} } func (m *KubernetesClusterV3) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7652,7 +7734,7 @@ func (m *KubernetesClusterSpecV3) Reset() { *m = KubernetesClusterSpecV3 func (m *KubernetesClusterSpecV3) String() string { return proto.CompactTextString(m) } func (*KubernetesClusterSpecV3) ProtoMessage() {} func (*KubernetesClusterSpecV3) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{136} + return fileDescriptor_9198ee693835762e, []int{137} } func (m *KubernetesClusterSpecV3) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7700,7 +7782,7 @@ func (m *KubeAzure) Reset() { *m = KubeAzure{} } func (m *KubeAzure) String() string { return proto.CompactTextString(m) } func (*KubeAzure) ProtoMessage() {} func (*KubeAzure) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{137} + return fileDescriptor_9198ee693835762e, []int{138} } func (m *KubeAzure) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7746,7 +7828,7 @@ func (m *KubeAWS) Reset() { *m = KubeAWS{} } func (m *KubeAWS) String() string { return proto.CompactTextString(m) } func (*KubeAWS) ProtoMessage() {} func (*KubeAWS) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{138} + return fileDescriptor_9198ee693835762e, []int{139} } func (m *KubeAWS) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7792,7 +7874,7 @@ func (m *KubeGCP) Reset() { *m = KubeGCP{} } func (m *KubeGCP) String() string { return proto.CompactTextString(m) } func (*KubeGCP) ProtoMessage() {} func (*KubeGCP) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{139} + return fileDescriptor_9198ee693835762e, []int{140} } func (m *KubeGCP) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7834,7 +7916,7 @@ func (m *KubernetesClusterV3List) Reset() { *m = KubernetesClusterV3List func (m *KubernetesClusterV3List) String() string { return proto.CompactTextString(m) } func (*KubernetesClusterV3List) ProtoMessage() {} func (*KubernetesClusterV3List) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{140} + return fileDescriptor_9198ee693835762e, []int{141} } func (m *KubernetesClusterV3List) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7883,7 +7965,7 @@ type KubernetesServerV3 struct { func (m *KubernetesServerV3) Reset() { *m = KubernetesServerV3{} } func (*KubernetesServerV3) ProtoMessage() {} func (*KubernetesServerV3) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{141} + return fileDescriptor_9198ee693835762e, []int{142} } func (m *KubernetesServerV3) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7935,7 +8017,7 @@ func (m *KubernetesServerSpecV3) Reset() { *m = KubernetesServerSpecV3{} func (m *KubernetesServerSpecV3) String() string { return proto.CompactTextString(m) } func (*KubernetesServerSpecV3) ProtoMessage() {} func (*KubernetesServerSpecV3) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{142} + return fileDescriptor_9198ee693835762e, []int{143} } func (m *KubernetesServerSpecV3) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7987,7 +8069,7 @@ type WebTokenV3 struct { func (m *WebTokenV3) Reset() { *m = WebTokenV3{} } func (*WebTokenV3) ProtoMessage() {} func (*WebTokenV3) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{143} + return fileDescriptor_9198ee693835762e, []int{144} } func (m *WebTokenV3) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8031,7 +8113,7 @@ func (m *WebTokenSpecV3) Reset() { *m = WebTokenSpecV3{} } func (m *WebTokenSpecV3) String() string { return proto.CompactTextString(m) } func (*WebTokenSpecV3) ProtoMessage() {} func (*WebTokenSpecV3) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{144} + return fileDescriptor_9198ee693835762e, []int{145} } func (m *WebTokenSpecV3) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8075,7 +8157,7 @@ func (m *GetWebSessionRequest) Reset() { *m = GetWebSessionRequest{} } func (m *GetWebSessionRequest) String() string { return proto.CompactTextString(m) } func (*GetWebSessionRequest) ProtoMessage() {} func (*GetWebSessionRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{145} + return fileDescriptor_9198ee693835762e, []int{146} } func (m *GetWebSessionRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8119,7 +8201,7 @@ func (m *DeleteWebSessionRequest) Reset() { *m = DeleteWebSessionRequest func (m *DeleteWebSessionRequest) String() string { return proto.CompactTextString(m) } func (*DeleteWebSessionRequest) ProtoMessage() {} func (*DeleteWebSessionRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{146} + return fileDescriptor_9198ee693835762e, []int{147} } func (m *DeleteWebSessionRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8163,7 +8245,7 @@ func (m *GetWebTokenRequest) Reset() { *m = GetWebTokenRequest{} } func (m *GetWebTokenRequest) String() string { return proto.CompactTextString(m) } func (*GetWebTokenRequest) ProtoMessage() {} func (*GetWebTokenRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{147} + return fileDescriptor_9198ee693835762e, []int{148} } func (m *GetWebTokenRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8207,7 +8289,7 @@ func (m *DeleteWebTokenRequest) Reset() { *m = DeleteWebTokenRequest{} } func (m *DeleteWebTokenRequest) String() string { return proto.CompactTextString(m) } func (*DeleteWebTokenRequest) ProtoMessage() {} func (*DeleteWebTokenRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{148} + return fileDescriptor_9198ee693835762e, []int{149} } func (m *DeleteWebTokenRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8249,7 +8331,7 @@ func (m *ResourceRequest) Reset() { *m = ResourceRequest{} } func (m *ResourceRequest) String() string { return proto.CompactTextString(m) } func (*ResourceRequest) ProtoMessage() {} func (*ResourceRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{149} + return fileDescriptor_9198ee693835762e, []int{150} } func (m *ResourceRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8293,7 +8375,7 @@ func (m *ResourceWithSecretsRequest) Reset() { *m = ResourceWithSecretsR func (m *ResourceWithSecretsRequest) String() string { return proto.CompactTextString(m) } func (*ResourceWithSecretsRequest) ProtoMessage() {} func (*ResourceWithSecretsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{150} + return fileDescriptor_9198ee693835762e, []int{151} } func (m *ResourceWithSecretsRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8335,7 +8417,7 @@ func (m *ResourcesWithSecretsRequest) Reset() { *m = ResourcesWithSecret func (m *ResourcesWithSecretsRequest) String() string { return proto.CompactTextString(m) } func (*ResourcesWithSecretsRequest) ProtoMessage() {} func (*ResourcesWithSecretsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{151} + return fileDescriptor_9198ee693835762e, []int{152} } func (m *ResourcesWithSecretsRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8379,7 +8461,7 @@ func (m *ResourceInNamespaceRequest) Reset() { *m = ResourceInNamespaceR func (m *ResourceInNamespaceRequest) String() string { return proto.CompactTextString(m) } func (*ResourceInNamespaceRequest) ProtoMessage() {} func (*ResourceInNamespaceRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{152} + return fileDescriptor_9198ee693835762e, []int{153} } func (m *ResourceInNamespaceRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8421,7 +8503,7 @@ func (m *ResourcesInNamespaceRequest) Reset() { *m = ResourcesInNamespac func (m *ResourcesInNamespaceRequest) String() string { return proto.CompactTextString(m) } func (*ResourcesInNamespaceRequest) ProtoMessage() {} func (*ResourcesInNamespaceRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{153} + return fileDescriptor_9198ee693835762e, []int{154} } func (m *ResourcesInNamespaceRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8471,7 +8553,7 @@ func (m *OIDCConnectorV3) Reset() { *m = OIDCConnectorV3{} } func (m *OIDCConnectorV3) String() string { return proto.CompactTextString(m) } func (*OIDCConnectorV3) ProtoMessage() {} func (*OIDCConnectorV3) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{154} + return fileDescriptor_9198ee693835762e, []int{155} } func (m *OIDCConnectorV3) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8513,7 +8595,7 @@ func (m *OIDCConnectorV3List) Reset() { *m = OIDCConnectorV3List{} } func (m *OIDCConnectorV3List) String() string { return proto.CompactTextString(m) } func (*OIDCConnectorV3List) ProtoMessage() {} func (*OIDCConnectorV3List) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{155} + return fileDescriptor_9198ee693835762e, []int{156} } func (m *OIDCConnectorV3List) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8592,7 +8674,7 @@ func (m *OIDCConnectorSpecV3) Reset() { *m = OIDCConnectorSpecV3{} } func (m *OIDCConnectorSpecV3) String() string { return proto.CompactTextString(m) } func (*OIDCConnectorSpecV3) ProtoMessage() {} func (*OIDCConnectorSpecV3) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{156} + return fileDescriptor_9198ee693835762e, []int{157} } func (m *OIDCConnectorSpecV3) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8676,7 +8758,7 @@ func (m *OIDCAuthRequest) Reset() { *m = OIDCAuthRequest{} } func (m *OIDCAuthRequest) String() string { return proto.CompactTextString(m) } func (*OIDCAuthRequest) ProtoMessage() {} func (*OIDCAuthRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{157} + return fileDescriptor_9198ee693835762e, []int{158} } func (m *OIDCAuthRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8726,7 +8808,7 @@ func (m *SAMLConnectorV2) Reset() { *m = SAMLConnectorV2{} } func (m *SAMLConnectorV2) String() string { return proto.CompactTextString(m) } func (*SAMLConnectorV2) ProtoMessage() {} func (*SAMLConnectorV2) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{158} + return fileDescriptor_9198ee693835762e, []int{159} } func (m *SAMLConnectorV2) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8768,7 +8850,7 @@ func (m *SAMLConnectorV2List) Reset() { *m = SAMLConnectorV2List{} } func (m *SAMLConnectorV2List) String() string { return proto.CompactTextString(m) } func (*SAMLConnectorV2List) ProtoMessage() {} func (*SAMLConnectorV2List) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{159} + return fileDescriptor_9198ee693835762e, []int{160} } func (m *SAMLConnectorV2List) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8840,7 +8922,7 @@ func (m *SAMLConnectorSpecV2) Reset() { *m = SAMLConnectorSpecV2{} } func (m *SAMLConnectorSpecV2) String() string { return proto.CompactTextString(m) } func (*SAMLConnectorSpecV2) ProtoMessage() {} func (*SAMLConnectorSpecV2) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{160} + return fileDescriptor_9198ee693835762e, []int{161} } func (m *SAMLConnectorSpecV2) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8917,7 +8999,7 @@ func (m *SAMLAuthRequest) Reset() { *m = SAMLAuthRequest{} } func (m *SAMLAuthRequest) String() string { return proto.CompactTextString(m) } func (*SAMLAuthRequest) ProtoMessage() {} func (*SAMLAuthRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{161} + return fileDescriptor_9198ee693835762e, []int{162} } func (m *SAMLAuthRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8963,7 +9045,7 @@ func (m *AttributeMapping) Reset() { *m = AttributeMapping{} } func (m *AttributeMapping) String() string { return proto.CompactTextString(m) } func (*AttributeMapping) ProtoMessage() {} func (*AttributeMapping) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{162} + return fileDescriptor_9198ee693835762e, []int{163} } func (m *AttributeMapping) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9008,7 +9090,7 @@ func (m *AsymmetricKeyPair) Reset() { *m = AsymmetricKeyPair{} } func (m *AsymmetricKeyPair) String() string { return proto.CompactTextString(m) } func (*AsymmetricKeyPair) ProtoMessage() {} func (*AsymmetricKeyPair) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{163} + return fileDescriptor_9198ee693835762e, []int{164} } func (m *AsymmetricKeyPair) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9058,7 +9140,7 @@ func (m *GithubConnectorV3) Reset() { *m = GithubConnectorV3{} } func (m *GithubConnectorV3) String() string { return proto.CompactTextString(m) } func (*GithubConnectorV3) ProtoMessage() {} func (*GithubConnectorV3) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{164} + return fileDescriptor_9198ee693835762e, []int{165} } func (m *GithubConnectorV3) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9100,7 +9182,7 @@ func (m *GithubConnectorV3List) Reset() { *m = GithubConnectorV3List{} } func (m *GithubConnectorV3List) String() string { return proto.CompactTextString(m) } func (*GithubConnectorV3List) ProtoMessage() {} func (*GithubConnectorV3List) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{165} + return fileDescriptor_9198ee693835762e, []int{166} } func (m *GithubConnectorV3List) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9156,7 +9238,7 @@ func (m *GithubConnectorSpecV3) Reset() { *m = GithubConnectorSpecV3{} } func (m *GithubConnectorSpecV3) String() string { return proto.CompactTextString(m) } func (*GithubConnectorSpecV3) ProtoMessage() {} func (*GithubConnectorSpecV3) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{166} + return fileDescriptor_9198ee693835762e, []int{167} } func (m *GithubConnectorSpecV3) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9230,7 +9312,7 @@ func (m *GithubAuthRequest) Reset() { *m = GithubAuthRequest{} } func (m *GithubAuthRequest) String() string { return proto.CompactTextString(m) } func (*GithubAuthRequest) ProtoMessage() {} func (*GithubAuthRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{167} + return fileDescriptor_9198ee693835762e, []int{168} } func (m *GithubAuthRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9274,7 +9356,7 @@ func (m *SSOWarnings) Reset() { *m = SSOWarnings{} } func (m *SSOWarnings) String() string { return proto.CompactTextString(m) } func (*SSOWarnings) ProtoMessage() {} func (*SSOWarnings) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{168} + return fileDescriptor_9198ee693835762e, []int{169} } func (m *SSOWarnings) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9330,7 +9412,7 @@ func (m *CreateUserParams) Reset() { *m = CreateUserParams{} } func (m *CreateUserParams) String() string { return proto.CompactTextString(m) } func (*CreateUserParams) ProtoMessage() {} func (*CreateUserParams) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{169} + return fileDescriptor_9198ee693835762e, []int{170} } func (m *CreateUserParams) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9413,7 +9495,7 @@ func (m *SSODiagnosticInfo) Reset() { *m = SSODiagnosticInfo{} } func (m *SSODiagnosticInfo) String() string { return proto.CompactTextString(m) } func (*SSODiagnosticInfo) ProtoMessage() {} func (*SSODiagnosticInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{170} + return fileDescriptor_9198ee693835762e, []int{171} } func (m *SSODiagnosticInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9457,7 +9539,7 @@ func (m *GithubTokenInfo) Reset() { *m = GithubTokenInfo{} } func (m *GithubTokenInfo) String() string { return proto.CompactTextString(m) } func (*GithubTokenInfo) ProtoMessage() {} func (*GithubTokenInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{171} + return fileDescriptor_9198ee693835762e, []int{172} } func (m *GithubTokenInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9503,7 +9585,7 @@ func (m *GithubClaims) Reset() { *m = GithubClaims{} } func (m *GithubClaims) String() string { return proto.CompactTextString(m) } func (*GithubClaims) ProtoMessage() {} func (*GithubClaims) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{172} + return fileDescriptor_9198ee693835762e, []int{173} } func (m *GithubClaims) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9555,7 +9637,7 @@ func (m *TeamMapping) Reset() { *m = TeamMapping{} } func (m *TeamMapping) String() string { return proto.CompactTextString(m) } func (*TeamMapping) ProtoMessage() {} func (*TeamMapping) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{173} + return fileDescriptor_9198ee693835762e, []int{174} } func (m *TeamMapping) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9601,7 +9683,7 @@ func (m *TeamRolesMapping) Reset() { *m = TeamRolesMapping{} } func (m *TeamRolesMapping) String() string { return proto.CompactTextString(m) } func (*TeamRolesMapping) ProtoMessage() {} func (*TeamRolesMapping) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{174} + return fileDescriptor_9198ee693835762e, []int{175} } func (m *TeamRolesMapping) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9650,7 +9732,7 @@ type TrustedClusterV2 struct { func (m *TrustedClusterV2) Reset() { *m = TrustedClusterV2{} } func (*TrustedClusterV2) ProtoMessage() {} func (*TrustedClusterV2) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{175} + return fileDescriptor_9198ee693835762e, []int{176} } func (m *TrustedClusterV2) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9692,7 +9774,7 @@ func (m *TrustedClusterV2List) Reset() { *m = TrustedClusterV2List{} } func (m *TrustedClusterV2List) String() string { return proto.CompactTextString(m) } func (*TrustedClusterV2List) ProtoMessage() {} func (*TrustedClusterV2List) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{176} + return fileDescriptor_9198ee693835762e, []int{177} } func (m *TrustedClusterV2List) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9748,7 +9830,7 @@ func (m *TrustedClusterSpecV2) Reset() { *m = TrustedClusterSpecV2{} } func (m *TrustedClusterSpecV2) String() string { return proto.CompactTextString(m) } func (*TrustedClusterSpecV2) ProtoMessage() {} func (*TrustedClusterSpecV2) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{177} + return fileDescriptor_9198ee693835762e, []int{178} } func (m *TrustedClusterSpecV2) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9801,7 +9883,7 @@ func (m *LockV2) Reset() { *m = LockV2{} } func (m *LockV2) String() string { return proto.CompactTextString(m) } func (*LockV2) ProtoMessage() {} func (*LockV2) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{178} + return fileDescriptor_9198ee693835762e, []int{179} } func (m *LockV2) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9847,7 +9929,7 @@ func (m *LockSpecV2) Reset() { *m = LockSpecV2{} } func (m *LockSpecV2) String() string { return proto.CompactTextString(m) } func (*LockSpecV2) ProtoMessage() {} func (*LockSpecV2) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{179} + return fileDescriptor_9198ee693835762e, []int{180} } func (m *LockSpecV2) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9902,7 +9984,7 @@ type LockTarget struct { func (m *LockTarget) Reset() { *m = LockTarget{} } func (*LockTarget) ProtoMessage() {} func (*LockTarget) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{180} + return fileDescriptor_9198ee693835762e, []int{181} } func (m *LockTarget) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9946,7 +10028,7 @@ func (m *AddressCondition) Reset() { *m = AddressCondition{} } func (m *AddressCondition) String() string { return proto.CompactTextString(m) } func (*AddressCondition) ProtoMessage() {} func (*AddressCondition) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{181} + return fileDescriptor_9198ee693835762e, []int{182} } func (m *AddressCondition) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9989,7 +10071,7 @@ func (m *NetworkRestrictionsSpecV4) Reset() { *m = NetworkRestrictionsSp func (m *NetworkRestrictionsSpecV4) String() string { return proto.CompactTextString(m) } func (*NetworkRestrictionsSpecV4) ProtoMessage() {} func (*NetworkRestrictionsSpecV4) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{182} + return fileDescriptor_9198ee693835762e, []int{183} } func (m *NetworkRestrictionsSpecV4) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -10042,7 +10124,7 @@ func (m *NetworkRestrictionsV4) Reset() { *m = NetworkRestrictionsV4{} } func (m *NetworkRestrictionsV4) String() string { return proto.CompactTextString(m) } func (*NetworkRestrictionsV4) ProtoMessage() {} func (*NetworkRestrictionsV4) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{183} + return fileDescriptor_9198ee693835762e, []int{184} } func (m *NetworkRestrictionsV4) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -10086,7 +10168,7 @@ func (m *WindowsDesktopServiceV3) Reset() { *m = WindowsDesktopServiceV3 func (m *WindowsDesktopServiceV3) String() string { return proto.CompactTextString(m) } func (*WindowsDesktopServiceV3) ProtoMessage() {} func (*WindowsDesktopServiceV3) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{184} + return fileDescriptor_9198ee693835762e, []int{185} } func (m *WindowsDesktopServiceV3) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -10134,7 +10216,7 @@ func (m *WindowsDesktopServiceSpecV3) Reset() { *m = WindowsDesktopServi func (m *WindowsDesktopServiceSpecV3) String() string { return proto.CompactTextString(m) } func (*WindowsDesktopServiceSpecV3) ProtoMessage() {} func (*WindowsDesktopServiceSpecV3) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{185} + return fileDescriptor_9198ee693835762e, []int{186} } func (m *WindowsDesktopServiceSpecV3) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -10178,7 +10260,7 @@ func (m *WindowsDesktopFilter) Reset() { *m = WindowsDesktopFilter{} } func (m *WindowsDesktopFilter) String() string { return proto.CompactTextString(m) } func (*WindowsDesktopFilter) ProtoMessage() {} func (*WindowsDesktopFilter) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{186} + return fileDescriptor_9198ee693835762e, []int{187} } func (m *WindowsDesktopFilter) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -10222,7 +10304,7 @@ func (m *WindowsDesktopV3) Reset() { *m = WindowsDesktopV3{} } func (m *WindowsDesktopV3) String() string { return proto.CompactTextString(m) } func (*WindowsDesktopV3) ProtoMessage() {} func (*WindowsDesktopV3) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{187} + return fileDescriptor_9198ee693835762e, []int{188} } func (m *WindowsDesktopV3) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -10268,7 +10350,7 @@ func (m *WindowsDesktopSpecV3) Reset() { *m = WindowsDesktopSpecV3{} } func (m *WindowsDesktopSpecV3) String() string { return proto.CompactTextString(m) } func (*WindowsDesktopSpecV3) ProtoMessage() {} func (*WindowsDesktopSpecV3) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{188} + return fileDescriptor_9198ee693835762e, []int{189} } func (m *WindowsDesktopSpecV3) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -10341,7 +10423,7 @@ func (m *RegisterUsingTokenRequest) Reset() { *m = RegisterUsingTokenReq func (m *RegisterUsingTokenRequest) String() string { return proto.CompactTextString(m) } func (*RegisterUsingTokenRequest) ProtoMessage() {} func (*RegisterUsingTokenRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{189} + return fileDescriptor_9198ee693835762e, []int{190} } func (m *RegisterUsingTokenRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -10395,7 +10477,7 @@ func (m *RecoveryCodesV1) Reset() { *m = RecoveryCodesV1{} } func (m *RecoveryCodesV1) String() string { return proto.CompactTextString(m) } func (*RecoveryCodesV1) ProtoMessage() {} func (*RecoveryCodesV1) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{190} + return fileDescriptor_9198ee693835762e, []int{191} } func (m *RecoveryCodesV1) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -10440,7 +10522,7 @@ func (m *RecoveryCodesSpecV1) Reset() { *m = RecoveryCodesSpecV1{} } func (m *RecoveryCodesSpecV1) String() string { return proto.CompactTextString(m) } func (*RecoveryCodesSpecV1) ProtoMessage() {} func (*RecoveryCodesSpecV1) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{191} + return fileDescriptor_9198ee693835762e, []int{192} } func (m *RecoveryCodesSpecV1) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -10484,7 +10566,7 @@ func (m *RecoveryCode) Reset() { *m = RecoveryCode{} } func (m *RecoveryCode) String() string { return proto.CompactTextString(m) } func (*RecoveryCode) ProtoMessage() {} func (*RecoveryCode) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{192} + return fileDescriptor_9198ee693835762e, []int{193} } func (m *RecoveryCode) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -10524,7 +10606,7 @@ func (m *NullableSessionState) Reset() { *m = NullableSessionState{} } func (m *NullableSessionState) String() string { return proto.CompactTextString(m) } func (*NullableSessionState) ProtoMessage() {} func (*NullableSessionState) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{193} + return fileDescriptor_9198ee693835762e, []int{194} } func (m *NullableSessionState) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -10570,7 +10652,7 @@ func (m *SessionTrackerFilter) Reset() { *m = SessionTrackerFilter{} } func (m *SessionTrackerFilter) String() string { return proto.CompactTextString(m) } func (*SessionTrackerFilter) ProtoMessage() {} func (*SessionTrackerFilter) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{194} + return fileDescriptor_9198ee693835762e, []int{195} } func (m *SessionTrackerFilter) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -10614,7 +10696,7 @@ func (m *SessionTrackerV1) Reset() { *m = SessionTrackerV1{} } func (m *SessionTrackerV1) String() string { return proto.CompactTextString(m) } func (*SessionTrackerV1) ProtoMessage() {} func (*SessionTrackerV1) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{195} + return fileDescriptor_9198ee693835762e, []int{196} } func (m *SessionTrackerV1) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -10704,7 +10786,7 @@ func (m *SessionTrackerSpecV1) Reset() { *m = SessionTrackerSpecV1{} } func (m *SessionTrackerSpecV1) String() string { return proto.CompactTextString(m) } func (*SessionTrackerSpecV1) ProtoMessage() {} func (*SessionTrackerSpecV1) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{196} + return fileDescriptor_9198ee693835762e, []int{197} } func (m *SessionTrackerSpecV1) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -10751,7 +10833,7 @@ func (m *SessionTrackerPolicySet) Reset() { *m = SessionTrackerPolicySet func (m *SessionTrackerPolicySet) String() string { return proto.CompactTextString(m) } func (*SessionTrackerPolicySet) ProtoMessage() {} func (*SessionTrackerPolicySet) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{197} + return fileDescriptor_9198ee693835762e, []int{198} } func (m *SessionTrackerPolicySet) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -10799,7 +10881,7 @@ func (m *Participant) Reset() { *m = Participant{} } func (m *Participant) String() string { return proto.CompactTextString(m) } func (*Participant) ProtoMessage() {} func (*Participant) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{198} + return fileDescriptor_9198ee693835762e, []int{199} } func (m *Participant) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -10850,7 +10932,7 @@ func (m *InstallerV1) Reset() { *m = InstallerV1{} } func (m *InstallerV1) String() string { return proto.CompactTextString(m) } func (*InstallerV1) ProtoMessage() {} func (*InstallerV1) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{199} + return fileDescriptor_9198ee693835762e, []int{200} } func (m *InstallerV1) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -10892,7 +10974,7 @@ func (m *InstallerSpecV1) Reset() { *m = InstallerSpecV1{} } func (m *InstallerSpecV1) String() string { return proto.CompactTextString(m) } func (*InstallerSpecV1) ProtoMessage() {} func (*InstallerSpecV1) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{200} + return fileDescriptor_9198ee693835762e, []int{201} } func (m *InstallerSpecV1) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -10934,7 +11016,7 @@ func (m *InstallerV1List) Reset() { *m = InstallerV1List{} } func (m *InstallerV1List) String() string { return proto.CompactTextString(m) } func (*InstallerV1List) ProtoMessage() {} func (*InstallerV1List) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{201} + return fileDescriptor_9198ee693835762e, []int{202} } func (m *InstallerV1List) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -10978,7 +11060,7 @@ func (m *SortBy) Reset() { *m = SortBy{} } func (m *SortBy) String() string { return proto.CompactTextString(m) } func (*SortBy) ProtoMessage() {} func (*SortBy) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{202} + return fileDescriptor_9198ee693835762e, []int{203} } func (m *SortBy) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -11024,7 +11106,7 @@ func (m *ConnectionDiagnosticV1) Reset() { *m = ConnectionDiagnosticV1{} func (m *ConnectionDiagnosticV1) String() string { return proto.CompactTextString(m) } func (*ConnectionDiagnosticV1) ProtoMessage() {} func (*ConnectionDiagnosticV1) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{203} + return fileDescriptor_9198ee693835762e, []int{204} } func (m *ConnectionDiagnosticV1) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -11074,7 +11156,7 @@ func (m *ConnectionDiagnosticSpecV1) Reset() { *m = ConnectionDiagnostic func (m *ConnectionDiagnosticSpecV1) String() string { return proto.CompactTextString(m) } func (*ConnectionDiagnosticSpecV1) ProtoMessage() {} func (*ConnectionDiagnosticSpecV1) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{204} + return fileDescriptor_9198ee693835762e, []int{205} } func (m *ConnectionDiagnosticSpecV1) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -11120,7 +11202,7 @@ func (m *ConnectionDiagnosticTrace) Reset() { *m = ConnectionDiagnosticT func (m *ConnectionDiagnosticTrace) String() string { return proto.CompactTextString(m) } func (*ConnectionDiagnosticTrace) ProtoMessage() {} func (*ConnectionDiagnosticTrace) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{205} + return fileDescriptor_9198ee693835762e, []int{206} } func (m *ConnectionDiagnosticTrace) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -11162,7 +11244,7 @@ func (m *ClusterAlert) Reset() { *m = ClusterAlert{} } func (m *ClusterAlert) String() string { return proto.CompactTextString(m) } func (*ClusterAlert) ProtoMessage() {} func (*ClusterAlert) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{206} + return fileDescriptor_9198ee693835762e, []int{207} } func (m *ClusterAlert) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -11208,7 +11290,7 @@ func (m *ClusterAlertSpec) Reset() { *m = ClusterAlertSpec{} } func (m *ClusterAlertSpec) String() string { return proto.CompactTextString(m) } func (*ClusterAlertSpec) ProtoMessage() {} func (*ClusterAlertSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{207} + return fileDescriptor_9198ee693835762e, []int{208} } func (m *ClusterAlertSpec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -11254,7 +11336,7 @@ func (m *GetClusterAlertsRequest) Reset() { *m = GetClusterAlertsRequest func (m *GetClusterAlertsRequest) String() string { return proto.CompactTextString(m) } func (*GetClusterAlertsRequest) ProtoMessage() {} func (*GetClusterAlertsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_9198ee693835762e, []int{208} + return fileDescriptor_9198ee693835762e, []int{209} } func (m *GetClusterAlertsRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -11361,6 +11443,8 @@ func init() { proto.RegisterType((*ProvisionTokenSpecV2GitHub_Rule)(nil), "types.ProvisionTokenSpecV2GitHub.Rule") proto.RegisterType((*ProvisionTokenSpecV2CircleCI)(nil), "types.ProvisionTokenSpecV2CircleCI") proto.RegisterType((*ProvisionTokenSpecV2CircleCI_Rule)(nil), "types.ProvisionTokenSpecV2CircleCI.Rule") + proto.RegisterType((*ProvisionTokenSpecV2Kubernetes)(nil), "types.ProvisionTokenSpecV2Kubernetes") + proto.RegisterType((*ProvisionTokenSpecV2Kubernetes_Rule)(nil), "types.ProvisionTokenSpecV2Kubernetes.Rule") proto.RegisterType((*StaticTokensV2)(nil), "types.StaticTokensV2") proto.RegisterType((*StaticTokensSpecV2)(nil), "types.StaticTokensSpecV2") proto.RegisterType((*ClusterNameV2)(nil), "types.ClusterNameV2") @@ -11532,1006 +11616,1010 @@ func init() { func init() { proto.RegisterFile("teleport/legacy/types/types.proto", fileDescriptor_9198ee693835762e) } var fileDescriptor_9198ee693835762e = []byte{ - // 15983 bytes of a gzipped FileDescriptorProto + // 16037 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xbd, 0x6d, 0x6c, 0x1c, 0x49, 0x96, 0x20, 0xa6, 0xac, 0x2a, 0x92, 0xc5, 0xc7, 0x22, 0x59, 0x0c, 0x52, 0x12, 0xa5, 0x56, 0x37, 0xd5, 0xd9, 0xdd, 0x6a, 0xb5, 0xba, 0x5b, 0x1a, 0x51, 0xd3, 0x9a, 0xe9, 0xe9, 0xcf, 0x62, 0x55, - 0x51, 0x64, 0x8b, 0x22, 0xd9, 0x59, 0xfc, 0x98, 0xde, 0x99, 0xd9, 0x9c, 0x64, 0x55, 0x90, 0xcc, - 0x51, 0x55, 0x65, 0x6d, 0x66, 0x96, 0x24, 0xce, 0xdc, 0xe2, 0x6e, 0x61, 0xcf, 0x8d, 0x07, 0xeb, - 0x9b, 0xb9, 0xb1, 0xe7, 0x76, 0xe6, 0x8c, 0x3b, 0xdc, 0x79, 0xe0, 0x3b, 0xf8, 0xec, 0xdb, 0xc5, - 0x7a, 0xef, 0x87, 0x7d, 0x38, 0xc0, 0xf6, 0x02, 0xc6, 0x62, 0x6c, 0xc3, 0xbe, 0xf5, 0x2f, 0xc3, - 0x63, 0x83, 0xf6, 0xcd, 0x1e, 0xce, 0x80, 0x7e, 0x19, 0x30, 0x60, 0xe3, 0xfa, 0xbc, 0x80, 0x11, - 0x2f, 0x22, 0x32, 0x23, 0xb2, 0xb2, 0x8a, 0xc5, 0x96, 0xda, 0x5e, 0x35, 0xee, 0x8f, 0xc4, 0x7a, - 0xf1, 0xde, 0xcb, 0xf8, 0x78, 0xf1, 0xe2, 0xc5, 0x8b, 0x17, 0x2f, 0xe0, 0xc5, 0x90, 0x36, 0x69, - 0xc7, 0xf3, 0xc3, 0x1b, 0x4d, 0x7a, 0xe0, 0xd4, 0x8f, 0x6e, 0x84, 0x47, 0x1d, 0x1a, 0xf0, 0x7f, - 0xaf, 0x77, 0x7c, 0x2f, 0xf4, 0xc8, 0x08, 0xfe, 0xb8, 0x38, 0x77, 0xe0, 0x1d, 0x78, 0x08, 0xb9, - 0xc1, 0xfe, 0xe2, 0x85, 0x17, 0x17, 0x0e, 0x3c, 0xef, 0xa0, 0x49, 0x6f, 0xe0, 0xaf, 0xbd, 0xee, - 0xfe, 0x8d, 0xd0, 0x6d, 0xd1, 0x20, 0x74, 0x5a, 0x1d, 0x81, 0xf0, 0x5a, 0xf4, 0x01, 0x27, 0x0c, - 0x59, 0x49, 0xe8, 0x7a, 0xed, 0x1b, 0x0f, 0x6e, 0xaa, 0x3f, 0x05, 0xea, 0x9b, 0xe9, 0x75, 0x79, - 0xe8, 0x3b, 0x9d, 0x0e, 0xf5, 0xe3, 0x3f, 0x38, 0xba, 0xf9, 0xef, 0x67, 0x61, 0xfc, 0x2e, 0xa5, - 0x9d, 0x52, 0xd3, 0x7d, 0x40, 0xc9, 0x4b, 0x90, 0x5b, 0x77, 0x5a, 0x74, 0xde, 0xb8, 0x6c, 0x5c, - 0x1d, 0x5f, 0x9a, 0x7e, 0x7c, 0xbc, 0x30, 0x11, 0x50, 0xff, 0x01, 0xf5, 0xed, 0xb6, 0xd3, 0xa2, - 0x16, 0x16, 0x92, 0xd7, 0x61, 0x9c, 0xfd, 0x1f, 0x74, 0x9c, 0x3a, 0x9d, 0xcf, 0x20, 0xe6, 0xe4, - 0xe3, 0xe3, 0x85, 0xf1, 0xb6, 0x04, 0x5a, 0x71, 0x39, 0xb9, 0x02, 0x63, 0x6b, 0xd4, 0x09, 0xe8, - 0x6a, 0x65, 0x3e, 0x7b, 0xd9, 0xb8, 0x9a, 0x5d, 0x2a, 0x3c, 0x3e, 0x5e, 0xc8, 0x37, 0x19, 0xc8, - 0x76, 0x1b, 0x96, 0x2c, 0x24, 0xab, 0x30, 0x56, 0x7d, 0xd4, 0x71, 0x7d, 0x1a, 0xcc, 0xe7, 0x2e, - 0x1b, 0x57, 0x27, 0x16, 0x2f, 0x5e, 0xe7, 0x9d, 0x72, 0x5d, 0x76, 0xca, 0xf5, 0x2d, 0xd9, 0x29, - 0x4b, 0xb3, 0xbf, 0x3c, 0x5e, 0x38, 0xf3, 0xf8, 0x78, 0x61, 0x8c, 0x72, 0x92, 0xbf, 0xfe, 0xbf, - 0x2e, 0x18, 0x96, 0xa4, 0x27, 0xef, 0x42, 0x6e, 0xeb, 0xa8, 0x43, 0xe7, 0xc7, 0x2f, 0x1b, 0x57, - 0xa7, 0x16, 0x5f, 0xb8, 0xce, 0x87, 0x21, 0x6a, 0x64, 0xfc, 0x17, 0xc3, 0x5a, 0xca, 0x3f, 0x3e, - 0x5e, 0xc8, 0x31, 0x14, 0x0b, 0xa9, 0xc8, 0x9b, 0x30, 0xba, 0xe2, 0x05, 0xe1, 0x6a, 0x65, 0x1e, - 0xb0, 0x69, 0x67, 0x1f, 0x1f, 0x2f, 0xcc, 0x1c, 0x7a, 0x41, 0x68, 0xbb, 0x8d, 0x37, 0xbc, 0x96, - 0x1b, 0xd2, 0x56, 0x27, 0x3c, 0xb2, 0x04, 0x92, 0xb9, 0x07, 0x93, 0x1a, 0x3f, 0x32, 0x01, 0x63, - 0xdb, 0xeb, 0x77, 0xd7, 0x37, 0x76, 0xd7, 0x8b, 0x67, 0x48, 0x1e, 0x72, 0xeb, 0x1b, 0x95, 0x6a, - 0xd1, 0x20, 0x63, 0x90, 0x2d, 0x6d, 0x6e, 0x16, 0x33, 0xa4, 0x00, 0xf9, 0x4a, 0x69, 0xab, 0xb4, - 0x54, 0xaa, 0x55, 0x8b, 0x59, 0x32, 0x0b, 0xd3, 0xbb, 0xab, 0xeb, 0x95, 0x8d, 0xdd, 0x9a, 0x5d, - 0xa9, 0xd6, 0xee, 0x6e, 0x6d, 0x6c, 0x16, 0x73, 0x64, 0x0a, 0xe0, 0xee, 0xf6, 0x52, 0xd5, 0x5a, - 0xaf, 0x6e, 0x55, 0x6b, 0xc5, 0x11, 0xf3, 0x07, 0x59, 0xc8, 0xdf, 0xa3, 0xa1, 0xd3, 0x70, 0x42, - 0x87, 0x5c, 0xd2, 0x86, 0x08, 0x6b, 0xaf, 0x8c, 0xcd, 0x4b, 0xbd, 0x63, 0x33, 0xf2, 0xf8, 0x78, - 0xc1, 0x78, 0x53, 0x1d, 0x93, 0x77, 0x60, 0xa2, 0x42, 0x83, 0xba, 0xef, 0x76, 0x98, 0xdc, 0xe0, - 0xb8, 0x8c, 0x2f, 0x5d, 0x78, 0x7c, 0xbc, 0x70, 0xb6, 0x11, 0x83, 0x95, 0xb6, 0xaa, 0xd8, 0x64, - 0x15, 0x46, 0xd7, 0x9c, 0x3d, 0xda, 0x0c, 0xe6, 0x47, 0x2e, 0x67, 0xaf, 0x4e, 0x2c, 0x3e, 0x27, - 0xfa, 0x57, 0x56, 0xf0, 0x3a, 0x2f, 0xad, 0xb6, 0x43, 0xff, 0x68, 0x69, 0xee, 0xf1, 0xf1, 0x42, - 0xb1, 0x89, 0x00, 0xb5, 0xef, 0x38, 0x0a, 0xa9, 0xc5, 0x63, 0x3e, 0x7a, 0xe2, 0x98, 0x3f, 0xff, - 0xcb, 0xe3, 0x05, 0x83, 0x8d, 0x85, 0x18, 0xf3, 0x98, 0x9f, 0x3e, 0xfa, 0x97, 0x21, 0xb3, 0x5a, - 0x99, 0x1f, 0x43, 0x59, 0x2b, 0x3e, 0x3e, 0x5e, 0x28, 0x68, 0xc3, 0x96, 0x59, 0xad, 0x5c, 0x7c, - 0x1b, 0x26, 0x94, 0x3a, 0x92, 0x22, 0x64, 0xef, 0xd3, 0x23, 0xde, 0x9f, 0x16, 0xfb, 0x93, 0xcc, - 0xc1, 0xc8, 0x03, 0xa7, 0xd9, 0x15, 0x1d, 0x68, 0xf1, 0x1f, 0x5f, 0xcb, 0x7c, 0xd5, 0x30, 0xff, - 0x9d, 0x1c, 0xe4, 0x2d, 0x8f, 0xcf, 0x37, 0xf2, 0x1a, 0x8c, 0xd4, 0x42, 0x27, 0x94, 0x43, 0x31, - 0xfb, 0xf8, 0x78, 0x61, 0x9a, 0xcd, 0x45, 0xaa, 0x7c, 0x8f, 0x63, 0x30, 0xd4, 0xcd, 0x43, 0x27, - 0x90, 0x43, 0x82, 0xa8, 0x1d, 0x06, 0x50, 0x51, 0x11, 0x83, 0x5c, 0x81, 0xdc, 0x3d, 0xaf, 0x41, - 0xc5, 0xa8, 0x90, 0xc7, 0xc7, 0x0b, 0x53, 0x2d, 0xaf, 0xa1, 0x22, 0x62, 0x39, 0x79, 0x03, 0xc6, - 0xcb, 0x5d, 0xdf, 0xa7, 0x6d, 0x26, 0xaa, 0x39, 0x44, 0x9e, 0x7a, 0x7c, 0xbc, 0x00, 0x75, 0x0e, - 0x64, 0x93, 0x2b, 0x46, 0x60, 0x5d, 0x5d, 0x0b, 0x1d, 0x3f, 0xa4, 0x8d, 0xf9, 0x91, 0xa1, 0xba, - 0x9a, 0x4d, 0xaf, 0x99, 0x80, 0x93, 0x24, 0xbb, 0x5a, 0x70, 0x22, 0x2b, 0x30, 0x71, 0xc7, 0x77, - 0xea, 0x74, 0x93, 0xfa, 0xae, 0xd7, 0xc0, 0x31, 0xcc, 0x2e, 0x5d, 0x79, 0x7c, 0xbc, 0x70, 0xee, - 0x80, 0x81, 0xed, 0x0e, 0xc2, 0x63, 0xea, 0x4f, 0x8f, 0x17, 0xf2, 0x95, 0xae, 0x8f, 0xbd, 0x67, - 0xa9, 0xa4, 0xe4, 0xdb, 0x6c, 0x48, 0x82, 0x10, 0xbb, 0x96, 0x36, 0x70, 0xf4, 0x06, 0x57, 0xd1, - 0x14, 0x55, 0x3c, 0xd7, 0x74, 0x82, 0xd0, 0xf6, 0x39, 0x5d, 0xa2, 0x9e, 0x2a, 0x4b, 0xb2, 0x01, - 0xf9, 0x5a, 0xfd, 0x90, 0x36, 0xba, 0x4d, 0x3a, 0x9f, 0x47, 0xf6, 0xe7, 0x85, 0xe0, 0xca, 0xf1, - 0x94, 0xc5, 0x4b, 0x17, 0x05, 0x6f, 0x12, 0x08, 0x88, 0xd2, 0xf7, 0x11, 0x93, 0xaf, 0xe5, 0x7f, - 0xfe, 0x77, 0x17, 0xce, 0xfc, 0x95, 0xff, 0xe5, 0xf2, 0x19, 0xf3, 0x3f, 0xcd, 0x40, 0x31, 0xc9, - 0x84, 0xec, 0xc3, 0xe4, 0x76, 0xa7, 0xe1, 0x84, 0xb4, 0xdc, 0x74, 0x69, 0x3b, 0x0c, 0x50, 0x48, - 0x06, 0xb7, 0xe9, 0x65, 0xf1, 0xdd, 0xf9, 0x2e, 0x12, 0xda, 0x75, 0x4e, 0x99, 0x68, 0x95, 0xce, - 0x36, 0xfe, 0x4e, 0x0d, 0xf5, 0x74, 0x80, 0x12, 0x76, 0xba, 0xef, 0x70, 0x0d, 0xdf, 0xe7, 0x3b, - 0x82, 0xad, 0x10, 0xa0, 0x76, 0x63, 0xef, 0x08, 0x25, 0x73, 0x78, 0x01, 0x62, 0x24, 0x29, 0x02, - 0xc4, 0xc0, 0xe6, 0x3f, 0x37, 0x60, 0xca, 0xa2, 0x81, 0xd7, 0xf5, 0xeb, 0x74, 0x85, 0x3a, 0x0d, - 0xea, 0x33, 0xf1, 0xbf, 0xeb, 0xb6, 0x1b, 0x62, 0x4e, 0xa1, 0xf8, 0xdf, 0x77, 0xdb, 0xea, 0x14, - 0xc6, 0x72, 0xf2, 0x25, 0x18, 0xab, 0x75, 0xf7, 0x10, 0x95, 0xcf, 0xa9, 0x73, 0x38, 0x62, 0xdd, - 0x3d, 0x3b, 0x81, 0x2e, 0xd1, 0xc8, 0x0d, 0x18, 0xdb, 0xa1, 0x7e, 0x10, 0x6b, 0x3c, 0xd4, 0xec, - 0x0f, 0x38, 0x48, 0x25, 0x10, 0x58, 0xe4, 0x4e, 0xac, 0x75, 0xc5, 0x9a, 0x34, 0x9d, 0xd0, 0x75, - 0xb1, 0xa8, 0xb4, 0x04, 0x44, 0x15, 0x15, 0x89, 0x65, 0xfe, 0x24, 0x03, 0xc5, 0x8a, 0x13, 0x3a, - 0x7b, 0x4e, 0x20, 0xfa, 0x73, 0xe7, 0x16, 0xd3, 0xe3, 0x4a, 0x43, 0x51, 0x8f, 0xb3, 0x9a, 0x7f, - 0xe6, 0xe6, 0xbd, 0x92, 0x6c, 0xde, 0x04, 0x5b, 0x20, 0x45, 0xf3, 0xe2, 0x46, 0xbd, 0x77, 0x72, - 0xa3, 0x8a, 0xa2, 0x51, 0x79, 0xd9, 0xa8, 0xb8, 0x29, 0xe4, 0x3d, 0xc8, 0xd5, 0x3a, 0xb4, 0x2e, - 0x94, 0x88, 0xd4, 0xfd, 0x7a, 0xe3, 0x18, 0xc2, 0xce, 0xad, 0xa5, 0x82, 0x60, 0x93, 0x0b, 0x3a, - 0xb4, 0x6e, 0x21, 0x99, 0x32, 0x69, 0xfe, 0xeb, 0x51, 0x98, 0x4b, 0x23, 0x23, 0xef, 0xe9, 0x8b, - 0x13, 0xef, 0x9e, 0xe7, 0xfa, 0x2e, 0x4e, 0xf3, 0x86, 0xbe, 0x3c, 0x5d, 0x83, 0xfc, 0x26, 0x13, - 0xc8, 0xba, 0xd7, 0x14, 0x3d, 0xc7, 0xb4, 0x62, 0xbe, 0x23, 0x61, 0x86, 0x15, 0x95, 0x93, 0xe7, - 0x20, 0xbb, 0x6d, 0xad, 0x8a, 0xee, 0x1a, 0x7f, 0x7c, 0xbc, 0x90, 0xed, 0xfa, 0xee, 0xbc, 0x61, - 0x31, 0x28, 0xb9, 0x01, 0xa3, 0xe5, 0x52, 0x99, 0xfa, 0x21, 0x76, 0x53, 0x61, 0xe9, 0x3c, 0x93, - 0x96, 0xba, 0x63, 0xd7, 0xa9, 0x1f, 0x6a, 0x9f, 0x17, 0x68, 0xe4, 0x75, 0xc8, 0x96, 0x76, 0x6b, - 0xa2, 0x67, 0x40, 0xf4, 0x4c, 0x69, 0xb7, 0xb6, 0x34, 0x29, 0x3a, 0x22, 0xeb, 0x3c, 0x0c, 0x18, - 0xf7, 0xd2, 0x6e, 0x4d, 0x1d, 0xad, 0xd1, 0x01, 0xa3, 0x75, 0x15, 0xf2, 0xcc, 0xce, 0x60, 0x0b, - 0x3c, 0x2a, 0xc5, 0x71, 0x6e, 0x3e, 0x1d, 0x0a, 0x98, 0x15, 0x95, 0x92, 0x97, 0x22, 0xb3, 0x25, - 0x1f, 0xf3, 0x13, 0x66, 0x8b, 0x34, 0x56, 0xc8, 0x23, 0x98, 0xac, 0x1c, 0xb5, 0x9d, 0x96, 0x5b, - 0x17, 0x4b, 0xf8, 0x38, 0x2e, 0xe1, 0xd7, 0x07, 0x0c, 0xe3, 0x75, 0x8d, 0x80, 0xaf, 0xea, 0x52, - 0xf9, 0xce, 0x37, 0x78, 0x99, 0x9d, 0x5c, 0xe1, 0xe7, 0x0d, 0x4b, 0xff, 0x10, 0x9b, 0x4b, 0x52, - 0x45, 0xa2, 0x5d, 0x15, 0x8b, 0x9d, 0x04, 0xc7, 0x73, 0xc9, 0x17, 0x10, 0x75, 0x2e, 0x45, 0x8b, - 0xee, 0x7b, 0x90, 0xbd, 0x53, 0xde, 0x9c, 0x9f, 0x40, 0x1e, 0x44, 0xf0, 0xb8, 0x53, 0xde, 0x2c, - 0x37, 0xbd, 0x6e, 0xa3, 0xf6, 0xf1, 0xda, 0xd2, 0x79, 0xc1, 0x66, 0xf2, 0xa0, 0xde, 0xd1, 0x6a, - 0xc4, 0xe8, 0x48, 0x15, 0xf2, 0xb2, 0x95, 0xf3, 0x05, 0xe4, 0x31, 0x93, 0x68, 0xfc, 0xce, 0x2d, - 0x3e, 0xd7, 0x1a, 0xe2, 0xb7, 0x5a, 0x0b, 0x89, 0x43, 0x6e, 0xa1, 0x94, 0x3d, 0x3a, 0x5a, 0xad, - 0x04, 0xf3, 0x93, 0x97, 0xb3, 0x57, 0xc7, 0x51, 0x3c, 0x66, 0x3b, 0x0c, 0x66, 0xbb, 0x0d, 0xd5, - 0xd8, 0x89, 0x10, 0x2f, 0xee, 0x02, 0xe9, 0xed, 0xcc, 0x14, 0xf3, 0xe3, 0x75, 0xd5, 0xfc, 0x98, - 0x58, 0x3c, 0x2b, 0x2a, 0x58, 0xf6, 0x5a, 0x2d, 0xa7, 0xdd, 0x40, 0xda, 0x9d, 0x45, 0xd5, 0x2a, - 0x29, 0xc1, 0x54, 0x5c, 0xfb, 0x35, 0x37, 0x08, 0xc9, 0x0d, 0x18, 0x97, 0x10, 0xb6, 0xf2, 0x64, - 0x53, 0xdb, 0x69, 0xc5, 0x38, 0xe6, 0x9f, 0x64, 0x00, 0xe2, 0x92, 0x67, 0x54, 0x39, 0x7d, 0x45, - 0x53, 0x4e, 0x67, 0x93, 0x52, 0xdd, 0x57, 0x2d, 0x91, 0x0f, 0x60, 0x94, 0xd9, 0x69, 0x5d, 0x69, - 0x87, 0x9e, 0x4f, 0x92, 0x62, 0xe1, 0xce, 0xad, 0xa5, 0x29, 0x41, 0x3c, 0x1a, 0x20, 0xc4, 0x12, - 0x64, 0x8a, 0x5e, 0xfb, 0xa3, 0x91, 0x78, 0x30, 0x84, 0x46, 0xbb, 0xaa, 0xa8, 0x24, 0x23, 0x9e, - 0xc4, 0x52, 0x25, 0x29, 0x0a, 0xe9, 0x02, 0x57, 0x48, 0xbc, 0x53, 0xc7, 0x84, 0x42, 0x4a, 0xaa, - 0x23, 0xde, 0x81, 0x27, 0xaa, 0xa3, 0x4e, 0x72, 0xae, 0xe7, 0x50, 0x0c, 0xae, 0xa6, 0xf6, 0x4a, - 0xda, 0x2c, 0xbf, 0x7c, 0xd2, 0x2c, 0x4f, 0xce, 0xf1, 0x5b, 0xfd, 0x14, 0xe0, 0x59, 0x39, 0x25, - 0x9d, 0x87, 0x2a, 0x39, 0x2a, 0xc2, 0x77, 0xf8, 0x7c, 0x1e, 0xed, 0x3b, 0x9f, 0xcf, 0xa6, 0xce, - 0x67, 0x3e, 0x9b, 0xdf, 0x81, 0x91, 0xd2, 0x77, 0xbb, 0x3e, 0x15, 0x06, 0x63, 0x41, 0x7e, 0x93, - 0xc1, 0x22, 0x45, 0x30, 0xed, 0xb0, 0x9f, 0xaa, 0xa1, 0x8d, 0xe5, 0xec, 0xcb, 0x5b, 0x6b, 0x35, - 0x61, 0x0c, 0x92, 0x44, 0xb7, 0x6c, 0xad, 0x29, 0xd5, 0x0e, 0xb5, 0x56, 0x33, 0x2a, 0x72, 0x03, - 0x32, 0xa5, 0x0a, 0xee, 0x30, 0x27, 0x16, 0xc7, 0xe5, 0x67, 0x2b, 0x4b, 0x73, 0x82, 0xa4, 0xe0, - 0x68, 0x9b, 0x8e, 0x52, 0x85, 0x2c, 0xc1, 0xc8, 0xbd, 0xa3, 0xda, 0xc7, 0x6b, 0x42, 0xfb, 0xcd, - 0x4a, 0xb9, 0x66, 0xb0, 0x0d, 0x5c, 0xba, 0x82, 0xb8, 0xc6, 0xad, 0xa3, 0xe0, 0xb7, 0x9a, 0x6a, - 0x8d, 0x11, 0xed, 0xf3, 0x53, 0x20, 0xff, 0x81, 0x6a, 0xa0, 0x08, 0x59, 0x67, 0x1b, 0x61, 0x21, - 0x71, 0x46, 0x6c, 0x2e, 0xf5, 0x48, 0x5c, 0x24, 0x6f, 0xaf, 0xf1, 0xd1, 0xcf, 0xf4, 0x8c, 0xfe, - 0x84, 0xb2, 0xfc, 0xf1, 0x31, 0x8f, 0xfa, 0x22, 0xfb, 0x99, 0xfb, 0x82, 0x7c, 0x00, 0x85, 0x7b, - 0x4e, 0xdb, 0x39, 0xa0, 0x8d, 0xed, 0x80, 0x99, 0xbd, 0x39, 0xd4, 0xc2, 0xcc, 0x4e, 0x38, 0xdf, - 0xe2, 0x70, 0xbb, 0x1b, 0x68, 0x56, 0xad, 0xa5, 0x11, 0x90, 0x9b, 0x52, 0x76, 0x46, 0x52, 0x64, - 0x47, 0x2e, 0xd9, 0x23, 0x28, 0x3b, 0x42, 0x62, 0xcc, 0x9f, 0x8f, 0x60, 0x1b, 0xc9, 0x1b, 0x30, - 0x6a, 0xd1, 0x83, 0xd8, 0x3a, 0xc1, 0x5d, 0xae, 0x8f, 0x10, 0xb5, 0x63, 0x38, 0x0e, 0x2e, 0x7d, - 0xb4, 0x11, 0x1c, 0xba, 0xfb, 0xa1, 0xe8, 0x9d, 0x68, 0xe9, 0x13, 0x60, 0x65, 0xe9, 0x13, 0x10, - 0x6d, 0xe9, 0x13, 0x30, 0x36, 0xbf, 0xac, 0x4a, 0x4d, 0x74, 0x9a, 0xec, 0x61, 0xab, 0xa2, 0x08, - 0xaa, 0xaf, 0xad, 0x3c, 0x0c, 0x9b, 0xdc, 0x86, 0xf1, 0x52, 0xbd, 0xee, 0x75, 0x95, 0x6d, 0xe2, - 0xfc, 0xe3, 0xe3, 0x85, 0x39, 0x87, 0x03, 0x75, 0xa7, 0x46, 0x8c, 0x4a, 0x6a, 0x30, 0x51, 0x65, - 0x7b, 0x2b, 0xb7, 0xec, 0xd4, 0x0f, 0x65, 0x27, 0xc9, 0x59, 0xa2, 0x94, 0x44, 0xb6, 0xfe, 0x59, - 0x8a, 0xc0, 0x3a, 0x03, 0xaa, 0xbe, 0x03, 0x05, 0x97, 0x6c, 0xc1, 0x44, 0x8d, 0xd6, 0x7d, 0x1a, - 0xd6, 0x42, 0xcf, 0xa7, 0x89, 0x49, 0xaf, 0x94, 0x2c, 0xbd, 0x20, 0xb7, 0x77, 0x01, 0x02, 0xed, - 0x80, 0x41, 0x55, 0xae, 0x0a, 0x32, 0xb7, 0xd3, 0x5b, 0x9e, 0x7f, 0x54, 0x59, 0x12, 0x8a, 0x20, - 0x5e, 0x35, 0x38, 0x58, 0xb5, 0xd3, 0x19, 0xa4, 0xb1, 0xa7, 0xdb, 0xe9, 0x1c, 0x0b, 0x47, 0xaa, - 0x52, 0xc3, 0xf5, 0x5a, 0xa8, 0x85, 0xe9, 0xb8, 0x97, 0x11, 0xac, 0x8c, 0x54, 0x23, 0xc0, 0xd5, - 0x5e, 0x1b, 0x29, 0x81, 0x45, 0x3a, 0x40, 0xe4, 0xa8, 0x71, 0x5b, 0xaa, 0x49, 0x83, 0x40, 0x68, - 0x8b, 0x0b, 0x89, 0xc1, 0x8f, 0x11, 0x96, 0x5e, 0x11, 0xcc, 0x9f, 0x97, 0x62, 0x20, 0xb6, 0x66, - 0xac, 0x50, 0xf9, 0x4e, 0x0a, 0x6f, 0xf3, 0x7b, 0x5a, 0xcf, 0xb2, 0x51, 0xbf, 0x4b, 0x8f, 0x36, - 0x7d, 0xba, 0xef, 0x3e, 0x12, 0x42, 0x8a, 0xa3, 0x7e, 0x9f, 0x1e, 0xd9, 0x1d, 0x84, 0xaa, 0xa3, - 0x1e, 0xa1, 0x92, 0x2f, 0x43, 0xfe, 0xee, 0xbd, 0xda, 0x5d, 0x7a, 0xb4, 0x5a, 0x11, 0xab, 0x10, - 0x27, 0x6b, 0x05, 0x36, 0x23, 0xd5, 0x84, 0x25, 0xc2, 0x34, 0x97, 0x62, 0x09, 0x67, 0x5f, 0x2e, - 0x37, 0xbb, 0x41, 0x48, 0xfd, 0xd5, 0x8a, 0xfa, 0xe5, 0x3a, 0x07, 0x26, 0xe4, 0x2d, 0x42, 0x35, - 0xff, 0x67, 0x03, 0xa5, 0x9b, 0xbc, 0x0d, 0xb0, 0xda, 0x66, 0xdb, 0xc6, 0x3a, 0x8d, 0x18, 0xa0, - 0x6b, 0xca, 0x15, 0x50, 0x9d, 0x83, 0x82, 0xac, 0x7f, 0x3a, 0x33, 0xf4, 0xa7, 0xd9, 0x27, 0xe5, - 0x26, 0x54, 0x78, 0x29, 0xc5, 0x27, 0x7d, 0x01, 0x4d, 0x7c, 0x32, 0x46, 0x26, 0x57, 0x60, 0x6c, - 0xb5, 0x74, 0xaf, 0xd4, 0x0d, 0x0f, 0x71, 0x6e, 0xe5, 0xf9, 0xca, 0xee, 0x3a, 0x2d, 0xdb, 0xe9, - 0x86, 0x87, 0x96, 0x2c, 0x34, 0xff, 0xd8, 0x88, 0x45, 0x8b, 0x6d, 0x71, 0x15, 0x0f, 0x1e, 0x6e, - 0x71, 0x99, 0x09, 0xaf, 0x6e, 0x71, 0xd1, 0x97, 0x67, 0x01, 0x29, 0x77, 0x83, 0xd0, 0x6b, 0x55, - 0xdb, 0x8d, 0x8e, 0xe7, 0xb6, 0x43, 0xa4, 0xe2, 0x0d, 0x33, 0x1f, 0x1f, 0x2f, 0xbc, 0x50, 0xc7, - 0x52, 0x9b, 0x8a, 0x62, 0x3b, 0xc1, 0x25, 0x85, 0xfa, 0x09, 0xda, 0x6a, 0xfe, 0x37, 0x19, 0x4d, - 0x25, 0xb0, 0xea, 0x59, 0xb4, 0xd3, 0x74, 0xeb, 0x68, 0x98, 0xdf, 0xf1, 0xbd, 0x6e, 0x27, 0x1a, - 0x31, 0xac, 0x9e, 0x1f, 0x97, 0xda, 0x07, 0xac, 0x58, 0xe7, 0x9d, 0x42, 0x4d, 0x3e, 0x84, 0x02, - 0xd3, 0xce, 0xe2, 0x67, 0x30, 0x9f, 0x41, 0xad, 0x7e, 0x09, 0x9d, 0x15, 0x01, 0xf5, 0x23, 0x36, - 0x9a, 0x5a, 0x57, 0x29, 0x48, 0x03, 0xe6, 0xb7, 0x7c, 0xa7, 0x1d, 0xb8, 0x61, 0xb5, 0x5d, 0xf7, - 0x8f, 0x70, 0x35, 0xa9, 0xb6, 0x9d, 0xbd, 0x26, 0x6d, 0x60, 0x73, 0xf3, 0x4b, 0x57, 0x1f, 0x1f, - 0x2f, 0xbc, 0x1c, 0x72, 0x1c, 0x9b, 0x46, 0x48, 0x36, 0xe5, 0x58, 0x0a, 0xe7, 0xbe, 0x9c, 0xd8, - 0xea, 0x23, 0xbb, 0x15, 0x5d, 0xcd, 0xb9, 0x68, 0x97, 0x7a, 0x3e, 0x1a, 0x0d, 0x36, 0xcd, 0xd5, - 0x6a, 0xaa, 0x04, 0xe6, 0xff, 0x65, 0xc4, 0x4a, 0x8b, 0xbc, 0x0b, 0x13, 0x42, 0x1a, 0x15, 0xb9, - 0xb8, 0xc8, 0xd4, 0x9f, 0x14, 0xdd, 0xc4, 0xc8, 0xaa, 0xe8, 0xcc, 0x1a, 0x2f, 0x95, 0xd7, 0x14, - 0xd9, 0x40, 0x6b, 0xdc, 0xa9, 0x37, 0x93, 0x54, 0x12, 0x8d, 0x09, 0xc1, 0xd6, 0x5a, 0x4d, 0xef, - 0x15, 0x14, 0x82, 0xb0, 0x19, 0xa4, 0x74, 0x83, 0x82, 0xfc, 0xe4, 0x0d, 0xff, 0x1f, 0x8d, 0x34, - 0xdd, 0x48, 0x96, 0x60, 0x72, 0xd7, 0xf3, 0xef, 0xe3, 0xf8, 0x2a, 0x9d, 0x80, 0x23, 0xff, 0x50, - 0x16, 0x24, 0x1b, 0xa4, 0x93, 0xa8, 0x75, 0x53, 0x7a, 0x43, 0xaf, 0x5b, 0x82, 0x83, 0x46, 0xc0, - 0xc6, 0x21, 0xe2, 0x18, 0xcd, 0x0e, 0x1c, 0x87, 0xb8, 0x0a, 0x9a, 0x08, 0xab, 0xe8, 0xe6, 0x5f, - 0x31, 0x60, 0x42, 0x31, 0x5c, 0x99, 0x3a, 0xda, 0xf4, 0xbd, 0xef, 0xd0, 0x7a, 0xa8, 0x6b, 0xc2, - 0x0e, 0x07, 0x26, 0xd4, 0x51, 0x84, 0x9a, 0xd0, 0x80, 0x99, 0x53, 0x68, 0x40, 0xf3, 0x1f, 0x1a, - 0xc2, 0xa8, 0x19, 0x5a, 0xc7, 0xe8, 0xfa, 0x20, 0x73, 0x1a, 0xdd, 0xf7, 0x21, 0x8c, 0x58, 0xb4, - 0xe1, 0x06, 0xc2, 0x20, 0x99, 0x51, 0x0d, 0x28, 0x2c, 0x88, 0x6d, 0x38, 0x9f, 0xfd, 0x54, 0x6d, - 0x38, 0x2c, 0x37, 0x3f, 0x01, 0x88, 0xb1, 0xc9, 0x5d, 0x28, 0x0a, 0xb1, 0x76, 0xdb, 0x07, 0x9b, - 0x5e, 0xd3, 0xad, 0x0b, 0xa3, 0x76, 0x69, 0xe1, 0xf1, 0xf1, 0xc2, 0x73, 0xf5, 0xa8, 0xcc, 0xee, - 0x60, 0xa1, 0xc2, 0xaf, 0x87, 0xd0, 0xfc, 0x07, 0x06, 0x33, 0xd0, 0xc9, 0x0d, 0x80, 0xbb, 0xf4, - 0x28, 0x74, 0xf6, 0x96, 0xdd, 0xa6, 0x76, 0xaa, 0x75, 0x1f, 0xa1, 0xf6, 0xbe, 0xdb, 0xa4, 0x96, - 0x82, 0xc2, 0x36, 0xf6, 0x77, 0xfd, 0xbd, 0xb7, 0x10, 0x3d, 0x13, 0x6d, 0xb4, 0x66, 0xef, 0xfb, - 0x7b, 0x6f, 0x21, 0xb2, 0xb6, 0xfe, 0x09, 0x44, 0x62, 0xc2, 0x68, 0xc5, 0x6b, 0x39, 0xae, 0xdc, - 0xdc, 0x02, 0xdb, 0x21, 0x36, 0x10, 0x62, 0x89, 0x12, 0xb6, 0xb5, 0xab, 0x6d, 0xae, 0x8b, 0xf9, - 0x82, 0x5b, 0xbb, 0xa0, 0xd3, 0xb6, 0x18, 0xcc, 0xfc, 0x7d, 0x03, 0x26, 0x94, 0x7d, 0x07, 0xf9, - 0xb2, 0x38, 0x01, 0x30, 0xf0, 0xfc, 0xea, 0x5c, 0xef, 0xce, 0x84, 0x95, 0xf2, 0x4d, 0x79, 0xcb, - 0x6b, 0x50, 0x71, 0x1e, 0x10, 0x9b, 0xeb, 0x99, 0x61, 0xcc, 0xf5, 0xb7, 0x01, 0xf8, 0xf4, 0x43, - 0x31, 0x51, 0x16, 0x02, 0xe5, 0xbc, 0x4f, 0x1d, 0xf8, 0x18, 0xd9, 0xb4, 0xa0, 0xa0, 0x9a, 0xea, - 0x6c, 0xee, 0x0a, 0xaf, 0xa6, 0xd8, 0xe2, 0x2b, 0x73, 0x57, 0x70, 0xeb, 0xf5, 0xb2, 0xea, 0x24, - 0xe6, 0xef, 0x64, 0x20, 0x2f, 0x20, 0x8b, 0xcf, 0xa8, 0xf7, 0xe1, 0x2d, 0xcd, 0xfb, 0x30, 0x1b, - 0x59, 0xb5, 0x91, 0x2f, 0x6d, 0xf1, 0x04, 0x97, 0xe8, 0xdb, 0x50, 0x90, 0x5d, 0x80, 0x4e, 0x9c, - 0xd7, 0x60, 0x4c, 0x3a, 0xf5, 0xb9, 0x0b, 0x67, 0x5a, 0xe3, 0xb9, 0xb3, 0x68, 0xc9, 0x72, 0xf3, - 0x5f, 0x8d, 0x48, 0x5a, 0xfe, 0x25, 0xd6, 0x85, 0xa5, 0x46, 0xc3, 0x57, 0xbb, 0xd0, 0x69, 0x34, - 0x7c, 0x0b, 0xa1, 0x6c, 0xf0, 0x37, 0xbb, 0x7b, 0x4d, 0xb7, 0x8e, 0x38, 0xca, 0xac, 0xef, 0x20, - 0xd4, 0x66, 0xa8, 0xea, 0xe0, 0xc7, 0xc8, 0x9a, 0x47, 0x32, 0x3b, 0xd0, 0x23, 0xf9, 0x9b, 0x30, - 0x5e, 0x6e, 0x35, 0x34, 0xe7, 0x83, 0x99, 0xd2, 0x29, 0xd7, 0x23, 0x24, 0xee, 0x76, 0xb8, 0x24, - 0xfa, 0x68, 0xae, 0xde, 0x6a, 0xf4, 0xba, 0x1c, 0x62, 0x96, 0x9a, 0x4b, 0x71, 0xe4, 0x49, 0x5c, - 0x8a, 0xb7, 0x61, 0x7c, 0x3b, 0xa0, 0x5b, 0xdd, 0x76, 0x9b, 0x36, 0x71, 0x4f, 0x92, 0xe7, 0x8a, - 0xba, 0x1b, 0x50, 0x3b, 0x44, 0xa8, 0x5a, 0x81, 0x08, 0x55, 0x15, 0xab, 0xb1, 0x01, 0x62, 0xf5, - 0x65, 0xc8, 0x95, 0x3a, 0x1d, 0xe9, 0x6b, 0x8d, 0x76, 0xc6, 0x9d, 0x0e, 0xee, 0x1b, 0xa7, 0x9c, - 0x4e, 0x47, 0xf7, 0x9c, 0x22, 0x36, 0xa1, 0x40, 0xee, 0x76, 0xf7, 0xa8, 0xdf, 0xa6, 0x21, 0x0d, - 0x84, 0x7a, 0x0b, 0xe6, 0x01, 0x79, 0xcc, 0xcb, 0x23, 0xed, 0x24, 0x02, 0x5f, 0xec, 0xee, 0x77, - 0xf7, 0xa8, 0x2d, 0xd4, 0xa5, 0xb6, 0x6f, 0xe8, 0x65, 0x88, 0x8e, 0x4c, 0x4a, 0x7d, 0x94, 0x83, - 0x89, 0x58, 0xdf, 0x75, 0x28, 0xf5, 0x93, 0x52, 0x10, 0x21, 0x6a, 0xde, 0xcf, 0xc2, 0xb0, 0xde, - 0xcf, 0x1a, 0x4c, 0xe9, 0x23, 0xfd, 0x14, 0x1c, 0x17, 0x1f, 0xe5, 0xf2, 0xf9, 0xe2, 0xb8, 0xf9, - 0x83, 0x0c, 0x4c, 0x94, 0x3a, 0x9d, 0x67, 0xfc, 0x68, 0xe5, 0xab, 0x9a, 0xfe, 0x38, 0x17, 0xcb, - 0xc9, 0x29, 0x4e, 0x55, 0xfe, 0x20, 0x03, 0xd3, 0x09, 0x0a, 0xb5, 0xf6, 0xc6, 0x90, 0x47, 0x0d, - 0x99, 0x21, 0x8f, 0x1a, 0xb2, 0xfd, 0x8f, 0x1a, 0xd4, 0xd9, 0x99, 0x7b, 0x92, 0xd9, 0xf9, 0x2a, - 0x64, 0x4b, 0x9d, 0x4e, 0xd2, 0x4b, 0xd3, 0xe9, 0xec, 0xdc, 0xe2, 0xcb, 0xa8, 0xd3, 0xe9, 0x58, - 0x0c, 0x43, 0x93, 0xca, 0xd1, 0x21, 0xa5, 0xd2, 0x7c, 0x13, 0xc6, 0x91, 0x17, 0x2a, 0xdc, 0xcb, - 0x62, 0xa6, 0x72, 0x6d, 0xab, 0x7d, 0x8b, 0xcf, 0x4a, 0xf3, 0x5f, 0x31, 0x03, 0x8b, 0xfd, 0x7e, - 0x46, 0x65, 0x6c, 0x51, 0x93, 0xb1, 0xa2, 0x22, 0x63, 0xc3, 0x48, 0xd7, 0xbf, 0xc8, 0x62, 0x6f, - 0x09, 0xb9, 0x12, 0xce, 0x6a, 0x23, 0xc5, 0x59, 0xfd, 0x04, 0xeb, 0xcb, 0xfd, 0xa4, 0xdb, 0x3a, - 0x8b, 0x83, 0xf1, 0x52, 0xb2, 0xaa, 0x4f, 0xc5, 0x63, 0xbd, 0x02, 0x64, 0xb5, 0x1d, 0xd0, 0x7a, - 0xd7, 0xa7, 0xb5, 0xfb, 0x6e, 0x67, 0x87, 0xfa, 0xee, 0xfe, 0x91, 0xd8, 0xc9, 0xe3, 0x12, 0xe0, - 0x8a, 0x52, 0x3b, 0xb8, 0xef, 0x76, 0x98, 0x15, 0xe3, 0xee, 0x1f, 0x59, 0x29, 0x34, 0xe4, 0x03, - 0x18, 0xb3, 0xe8, 0x43, 0xdf, 0x0d, 0xa5, 0xab, 0x6c, 0x2a, 0x72, 0xf3, 0x20, 0x94, 0x9b, 0x63, - 0x3e, 0xff, 0xa1, 0x8e, 0xbf, 0x28, 0x27, 0x8b, 0xdc, 0x7d, 0xca, 0x5d, 0x62, 0x93, 0x71, 0x6b, - 0x4b, 0xbb, 0xb5, 0xa5, 0x99, 0x74, 0xdf, 0xf9, 0xe7, 0xe7, 0x0f, 0xfe, 0xe9, 0x08, 0x4e, 0xba, - 0x13, 0x62, 0x8d, 0x06, 0x9c, 0x56, 0xe8, 0x02, 0x90, 0x3d, 0x8d, 0x00, 0xec, 0x40, 0xa1, 0xc6, - 0xa6, 0xbe, 0x7e, 0x6c, 0x71, 0x29, 0xee, 0x91, 0xeb, 0x6a, 0xf1, 0xa0, 0x30, 0x23, 0x8d, 0x0f, - 0xb1, 0x93, 0x82, 0xc5, 0xc3, 0x97, 0x9e, 0x57, 0x18, 0xa7, 0x88, 0x54, 0xa4, 0xa3, 0xea, 0xbc, - 0xb3, 0x4e, 0x2d, 0x4c, 0xa3, 0x4f, 0x26, 0x4c, 0x63, 0x9f, 0x49, 0x98, 0x12, 0x01, 0x5e, 0xf9, - 0xd3, 0x04, 0x78, 0x5d, 0xfc, 0x00, 0x66, 0x7a, 0x7a, 0xf8, 0x34, 0x41, 0x52, 0x9f, 0x9f, 0x58, - 0xfe, 0x36, 0x28, 0xd3, 0x25, 0xcf, 0x76, 0x8d, 0x3e, 0xad, 0x87, 0xa8, 0xae, 0x85, 0x86, 0xf5, - 0x05, 0x2c, 0xe1, 0x3f, 0x47, 0x18, 0x79, 0x1f, 0xc6, 0x78, 0x90, 0x09, 0xf7, 0x2b, 0xc5, 0xd3, - 0x8c, 0x43, 0x45, 0xa4, 0x1f, 0xc7, 0x50, 0x7b, 0x55, 0x10, 0x99, 0x77, 0x60, 0x54, 0x04, 0xa9, - 0x0c, 0x9e, 0x17, 0x0b, 0x30, 0xb2, 0x13, 0xf7, 0x0c, 0x06, 0x16, 0xf0, 0x46, 0x58, 0x1c, 0x6e, - 0xfe, 0xae, 0x01, 0x53, 0x7a, 0x2b, 0xc9, 0x75, 0x18, 0x15, 0x51, 0x54, 0x06, 0x46, 0x51, 0xb1, - 0xd6, 0x8c, 0xf2, 0xf8, 0x29, 0x2d, 0x6a, 0x4a, 0x60, 0xb1, 0xe5, 0x42, 0x70, 0x10, 0x3e, 0x32, - 0x5c, 0x2e, 0x84, 0x90, 0x5a, 0xb2, 0x8c, 0xed, 0x4c, 0x2d, 0x1a, 0x74, 0x9b, 0xa1, 0xba, 0x33, - 0xf5, 0x11, 0x62, 0x89, 0x12, 0xb3, 0x0c, 0xa3, 0x5c, 0xcf, 0xb0, 0x59, 0x5b, 0x7d, 0x14, 0x52, - 0xbf, 0xed, 0x34, 0x75, 0xdf, 0x2b, 0x15, 0xd0, 0x84, 0x33, 0x20, 0x46, 0x36, 0x8f, 0x0d, 0x80, - 0x5a, 0x6d, 0xe5, 0x2e, 0x3d, 0xda, 0x74, 0x5c, 0x1f, 0x7d, 0x1f, 0x38, 0xa5, 0xef, 0x8a, 0x21, - 0x2f, 0x08, 0xdf, 0x07, 0x9f, 0xfe, 0xf7, 0xe9, 0x91, 0xe6, 0xfb, 0x90, 0xa8, 0xa8, 0x37, 0x7c, - 0xf7, 0x81, 0x13, 0x52, 0x46, 0x98, 0x41, 0x42, 0xae, 0x37, 0x38, 0x34, 0x41, 0xa9, 0x20, 0x93, - 0x6f, 0xc1, 0x54, 0xfc, 0x0b, 0x7d, 0x53, 0x59, 0xdc, 0x3f, 0x4b, 0xb1, 0xd2, 0x0b, 0x97, 0x5e, - 0x78, 0x7c, 0xbc, 0x70, 0x51, 0xe1, 0x9a, 0xf4, 0x5a, 0x25, 0x98, 0x99, 0xbf, 0x30, 0xd0, 0x69, - 0x26, 0x1b, 0x78, 0x05, 0x72, 0xd1, 0xd1, 0x58, 0x81, 0xfb, 0x57, 0x12, 0x1b, 0x6d, 0x2c, 0x27, - 0x2f, 0x41, 0x36, 0x6e, 0x09, 0xea, 0x71, 0xbd, 0x05, 0xac, 0x94, 0xdc, 0x81, 0xb1, 0xa1, 0xea, - 0x8c, 0x22, 0x9e, 0x52, 0x57, 0x49, 0x8d, 0xa3, 0xf0, 0xd1, 0xee, 0xd6, 0x17, 0x77, 0x14, 0x7e, - 0x9c, 0x81, 0x69, 0xd6, 0xaf, 0xa5, 0x6e, 0x78, 0xe8, 0xf9, 0x6e, 0x78, 0xf4, 0xcc, 0x7a, 0x0b, - 0xde, 0xd5, 0x2c, 0xb1, 0x8b, 0x52, 0xf7, 0xa9, 0x6d, 0x1b, 0xca, 0x69, 0xf0, 0x27, 0x23, 0x30, - 0x9b, 0x42, 0x45, 0xde, 0x10, 0x41, 0xd0, 0xb1, 0xe3, 0x11, 0x83, 0x9c, 0x3f, 0x3d, 0x5e, 0x28, - 0x48, 0xf4, 0xad, 0x38, 0xe8, 0x79, 0x51, 0xf7, 0x40, 0xf3, 0x9e, 0xc2, 0xe8, 0x59, 0xd5, 0x03, - 0xad, 0xfb, 0x9d, 0x5f, 0x83, 0x11, 0xcb, 0x6b, 0x52, 0xbe, 0x90, 0x8a, 0x98, 0x56, 0x9f, 0x01, - 0x34, 0x47, 0x1f, 0x03, 0x90, 0x15, 0x18, 0x63, 0x7f, 0xdc, 0x73, 0x3a, 0x68, 0x99, 0xc7, 0x67, - 0x7e, 0x02, 0xda, 0x71, 0xdb, 0x07, 0xea, 0x76, 0xa0, 0x49, 0xed, 0x96, 0xd3, 0xd1, 0x56, 0x36, - 0x8e, 0xa8, 0x6d, 0x2b, 0xf2, 0xfd, 0xb7, 0x15, 0xc6, 0x89, 0xdb, 0x8a, 0x06, 0x40, 0xcd, 0x3d, - 0x68, 0xbb, 0xed, 0x83, 0x52, 0xf3, 0x40, 0x84, 0x8a, 0xbf, 0xd6, 0x7f, 0x14, 0xae, 0xc7, 0xc8, - 0x28, 0xb8, 0xdc, 0x55, 0xc6, 0x61, 0xb6, 0xd3, 0x3c, 0xd0, 0x5c, 0x65, 0x11, 0x2a, 0x59, 0x07, - 0x28, 0xd5, 0x43, 0xf7, 0x01, 0x13, 0xe0, 0x40, 0x04, 0x2d, 0xc9, 0x0a, 0x97, 0x4b, 0x77, 0xe9, - 0x51, 0x8d, 0x86, 0xf1, 0x09, 0xaa, 0x83, 0xa8, 0x6c, 0x1e, 0xa8, 0x7d, 0xa8, 0x70, 0x20, 0x1d, - 0x38, 0x5b, 0x6a, 0x34, 0x5c, 0xd6, 0x02, 0xa7, 0xb9, 0xe5, 0xb3, 0xc1, 0x68, 0x20, 0xeb, 0x42, - 0x3a, 0xeb, 0xd7, 0x04, 0xeb, 0x17, 0x9d, 0x88, 0xca, 0x0e, 0x39, 0x59, 0xf2, 0x33, 0xe9, 0x8c, - 0xcd, 0x0d, 0x98, 0xd2, 0x9b, 0xae, 0x07, 0xb8, 0x17, 0x20, 0x6f, 0xd5, 0x4a, 0x76, 0x6d, 0xa5, - 0x74, 0xb3, 0x68, 0x90, 0x22, 0x14, 0xc4, 0xaf, 0x45, 0x7b, 0xf1, 0xad, 0xdb, 0xc5, 0x8c, 0x06, - 0x79, 0xeb, 0xe6, 0x62, 0x31, 0xfb, 0x51, 0x2e, 0x9f, 0x2d, 0xe6, 0x3e, 0xca, 0xe5, 0x73, 0xc5, - 0x91, 0x8f, 0x72, 0xf9, 0xb1, 0x62, 0xfe, 0xa3, 0x5c, 0x1e, 0x8a, 0x13, 0xe6, 0x1f, 0x19, 0x90, - 0x97, 0xf5, 0x26, 0xb7, 0x21, 0x5b, 0xab, 0xad, 0x24, 0x22, 0x97, 0xe2, 0xf5, 0x85, 0x6b, 0xd2, - 0x20, 0x38, 0x54, 0x35, 0x69, 0xad, 0xb6, 0xc2, 0xe8, 0xb6, 0xd6, 0x6a, 0x62, 0x79, 0x97, 0x74, - 0xb1, 0xda, 0xe6, 0x74, 0x29, 0xe1, 0x1c, 0xb7, 0x21, 0xfb, 0xd1, 0xee, 0x96, 0xd8, 0x6b, 0x48, - 0xba, 0x58, 0x93, 0x72, 0xba, 0xef, 0x3c, 0x54, 0xf5, 0x3b, 0x23, 0x30, 0x2d, 0x98, 0x50, 0x44, - 0x98, 0x2f, 0xb7, 0x2d, 0x2f, 0x0a, 0x09, 0x17, 0xcb, 0x2d, 0x83, 0x58, 0xa2, 0x84, 0x59, 0x07, - 0x6b, 0x5e, 0xdd, 0x69, 0x8a, 0x75, 0x1b, 0xad, 0x83, 0x26, 0x03, 0x58, 0x1c, 0x6e, 0xfe, 0xb1, - 0x01, 0xc5, 0x4d, 0xdf, 0x7b, 0xe0, 0x32, 0x35, 0xb3, 0xe5, 0xdd, 0xa7, 0xed, 0x9d, 0x9b, 0xe4, - 0x4d, 0x39, 0xd9, 0x8c, 0x68, 0x67, 0x3b, 0x82, 0x93, 0xed, 0xd3, 0xe3, 0x05, 0xa8, 0x1d, 0x05, - 0x21, 0x6d, 0xb1, 0x72, 0x39, 0xe1, 0x94, 0xc8, 0xfa, 0xcc, 0xf0, 0xd1, 0xba, 0x27, 0x44, 0xd6, - 0x2f, 0xc0, 0x08, 0x56, 0x47, 0x09, 0x98, 0x1c, 0x09, 0x19, 0xc0, 0xe2, 0x70, 0x45, 0x2b, 0xfd, - 0x24, 0xd3, 0xd3, 0x86, 0xc5, 0x2f, 0x54, 0xc4, 0xab, 0xde, 0xb8, 0xa1, 0x34, 0xf5, 0x27, 0x30, - 0x97, 0xec, 0x12, 0xf4, 0x3a, 0x94, 0x60, 0x5a, 0x87, 0x4b, 0x07, 0xc4, 0xf9, 0xd4, 0x6f, 0xed, - 0x2c, 0x5a, 0x49, 0x7c, 0xf3, 0xd7, 0x06, 0x8c, 0xe3, 0x9f, 0x56, 0xb7, 0x89, 0x67, 0x3a, 0xa5, - 0xdd, 0x9a, 0x08, 0xe5, 0x50, 0xcd, 0x38, 0xe7, 0x61, 0x60, 0x8b, 0xb8, 0x0f, 0x4d, 0xbf, 0x44, - 0xc8, 0x82, 0x94, 0x07, 0xae, 0xc8, 0xd3, 0xd7, 0x88, 0x94, 0x47, 0xb8, 0x04, 0x09, 0x52, 0x81, - 0x8c, 0xc7, 0x90, 0xbb, 0x35, 0x26, 0x7e, 0x62, 0x34, 0xf8, 0x31, 0x24, 0xa3, 0xf3, 0x9a, 0xfa, - 0x31, 0x24, 0x47, 0x23, 0x6f, 0xc2, 0x28, 0xfb, 0xb4, 0x25, 0x4f, 0x45, 0xd0, 0xfe, 0xc6, 0x3a, - 0xfa, 0x5a, 0x1c, 0x0d, 0x47, 0x32, 0xff, 0xf7, 0x91, 0x64, 0x07, 0x8a, 0xa5, 0xee, 0x94, 0x73, - 0xe3, 0x1d, 0x18, 0x29, 0x35, 0x9b, 0xde, 0x43, 0xa1, 0x25, 0xa4, 0x13, 0x24, 0xea, 0x3f, 0xbe, - 0x92, 0x39, 0x0c, 0x45, 0x0b, 0x1a, 0x63, 0x00, 0x52, 0x86, 0xf1, 0xd2, 0x6e, 0x6d, 0x75, 0xb5, - 0xb2, 0xb5, 0xb5, 0x26, 0x2e, 0x34, 0xbd, 0x22, 0xfb, 0xc7, 0x75, 0x1b, 0x76, 0x18, 0x36, 0xfb, - 0xdc, 0x77, 0x88, 0xe9, 0xc8, 0x7b, 0x00, 0x1f, 0x79, 0x6e, 0xfb, 0x1e, 0x0d, 0x0f, 0xbd, 0x86, - 0x68, 0xfc, 0xf3, 0x8f, 0x8f, 0x17, 0x26, 0xbe, 0xe3, 0xb9, 0x6d, 0xbb, 0x85, 0x60, 0x56, 0xf7, - 0x18, 0xc9, 0x52, 0xfe, 0x66, 0x3d, 0xbd, 0xe4, 0xf1, 0x23, 0xce, 0x91, 0xb8, 0xa7, 0xf7, 0xbc, - 0x9e, 0xd3, 0x4d, 0x89, 0x46, 0x5a, 0x30, 0x5d, 0xeb, 0x1e, 0x1c, 0x50, 0xa6, 0xd5, 0xc5, 0xee, - 0x77, 0x54, 0xec, 0xb9, 0xa2, 0xeb, 0x60, 0x7c, 0x27, 0xc2, 0xf6, 0x27, 0xc1, 0xd2, 0x1b, 0x4c, - 0x90, 0x7f, 0x75, 0xbc, 0x20, 0x2e, 0xea, 0x30, 0x23, 0x2d, 0x90, 0xf4, 0xbd, 0x4e, 0x95, 0x24, - 0x6f, 0xb2, 0x01, 0xa3, 0x77, 0xdc, 0x70, 0xa5, 0xbb, 0x27, 0xb6, 0xaf, 0x2f, 0x0e, 0x98, 0x34, - 0x1c, 0x91, 0xef, 0xe0, 0x0f, 0xdc, 0xf0, 0xb0, 0xab, 0x86, 0xe6, 0x08, 0x36, 0x64, 0x17, 0xf2, - 0x65, 0xd7, 0xaf, 0x37, 0x69, 0x79, 0x55, 0xac, 0xfa, 0x2f, 0x0d, 0x60, 0x29, 0x51, 0x79, 0xbf, - 0xd4, 0xf1, 0x57, 0xdd, 0x55, 0xad, 0x00, 0x89, 0x41, 0xfe, 0x5d, 0x03, 0x9e, 0x8b, 0x6a, 0x5f, - 0x3a, 0xa0, 0xed, 0xf0, 0x9e, 0x13, 0xd6, 0x0f, 0xa9, 0x1f, 0xc5, 0x47, 0x0f, 0xe8, 0xa5, 0xaf, - 0xf5, 0xf4, 0xd2, 0xd5, 0xb8, 0x97, 0x1c, 0xc6, 0xcc, 0x6e, 0x71, 0x6e, 0xbd, 0x7d, 0x36, 0xe8, - 0xab, 0xe6, 0x4f, 0x73, 0x70, 0xb1, 0x7f, 0x5f, 0x91, 0x8f, 0xa5, 0x00, 0x73, 0x35, 0x71, 0xe5, - 0xc4, 0xde, 0xbd, 0x7e, 0x92, 0x58, 0x5f, 0xfc, 0x45, 0x16, 0x72, 0xa8, 0x3b, 0x5e, 0x82, 0x6c, - 0xad, 0xbb, 0x27, 0x94, 0x06, 0x5f, 0x65, 0xb5, 0x11, 0x61, 0xa5, 0xe4, 0xab, 0x00, 0x16, 0xed, - 0x78, 0x81, 0x1b, 0x7a, 0xfe, 0x91, 0x1a, 0x69, 0xe3, 0x47, 0x50, 0xfd, 0xcc, 0x58, 0x42, 0xc9, - 0x0a, 0x4c, 0xc7, 0xbf, 0x36, 0x1e, 0xb6, 0xa9, 0x74, 0x0e, 0xe1, 0x46, 0x20, 0x26, 0xb7, 0x3d, - 0x56, 0xa6, 0xca, 0x58, 0x82, 0x8c, 0x2c, 0x42, 0x7e, 0xd7, 0xf3, 0xef, 0xef, 0xb3, 0x7e, 0xc8, - 0xc5, 0xb3, 0xe0, 0xa1, 0x80, 0xa9, 0xa3, 0x2d, 0xf1, 0xc8, 0x3b, 0x30, 0x51, 0x6d, 0x3f, 0x70, - 0x7d, 0xaf, 0xdd, 0xa2, 0xed, 0x50, 0x4c, 0x1e, 0xbe, 0xc1, 0x8d, 0xc1, 0x5a, 0xec, 0x5a, 0x0c, - 0x66, 0xe6, 0x6e, 0xa9, 0x1e, 0x7a, 0xbe, 0x88, 0xd7, 0xe7, 0xbd, 0xc9, 0x00, 0x5a, 0x6f, 0x32, - 0x00, 0xeb, 0x44, 0x8b, 0xee, 0x8b, 0x43, 0x21, 0xec, 0x44, 0x9f, 0xee, 0x6b, 0x81, 0x79, 0x74, - 0x9f, 0xcd, 0x62, 0x8b, 0xee, 0xa3, 0x8d, 0x9e, 0x8f, 0xeb, 0xef, 0xd3, 0xfd, 0x9e, 0xdd, 0x9d, - 0x40, 0x33, 0xff, 0x28, 0x03, 0x97, 0x06, 0xc9, 0x3b, 0xa9, 0xe9, 0x82, 0x71, 0x75, 0x88, 0x39, - 0x72, 0xa2, 0x68, 0x90, 0x2a, 0x4c, 0x6d, 0xf8, 0x07, 0x4e, 0xdb, 0xfd, 0x2e, 0xea, 0xb1, 0x28, - 0x4a, 0x80, 0x29, 0xac, 0x0b, 0x9e, 0x52, 0xa2, 0x3b, 0x07, 0x12, 0x44, 0x17, 0x1f, 0x08, 0x01, - 0xfb, 0xac, 0x51, 0x11, 0xb7, 0x61, 0xbc, 0xec, 0xb5, 0x43, 0xfa, 0x28, 0x4c, 0x04, 0x77, 0x71, - 0x60, 0x32, 0xb8, 0x4b, 0xa2, 0x9a, 0x7f, 0x2d, 0x03, 0x53, 0xdc, 0x9d, 0xc5, 0xd7, 0xca, 0x67, - 0xd6, 0x0e, 0x79, 0x47, 0xb3, 0x43, 0x64, 0x14, 0xa1, 0xda, 0xb4, 0xa1, 0xac, 0x90, 0x43, 0x20, - 0xbd, 0x34, 0xc4, 0x92, 0x4e, 0xd7, 0x61, 0x0c, 0x90, 0x9b, 0x71, 0xc0, 0x29, 0x5e, 0x3d, 0xae, - 0xdb, 0x68, 0x05, 0x06, 0x96, 0xc6, 0xc3, 0xfc, 0xdd, 0x0c, 0x4c, 0x2a, 0xfb, 0xc5, 0x67, 0xb6, - 0xe3, 0xbf, 0xa6, 0x75, 0xbc, 0x3c, 0x7b, 0x55, 0x5a, 0x36, 0x54, 0xbf, 0x77, 0x61, 0xa6, 0x87, - 0x24, 0xb9, 0xed, 0x36, 0x86, 0xd9, 0x76, 0xbf, 0xd1, 0x1b, 0xe5, 0xc8, 0xef, 0x7d, 0x46, 0x51, - 0x8e, 0x6a, 0x58, 0xe5, 0x8f, 0x33, 0x30, 0x27, 0x7e, 0x95, 0xba, 0x0d, 0x37, 0x2c, 0x7b, 0xed, - 0x7d, 0xf7, 0xe0, 0x99, 0x1d, 0x8b, 0x92, 0x36, 0x16, 0x0b, 0xfa, 0x58, 0x28, 0x0d, 0xec, 0x3f, - 0x24, 0xe6, 0xbf, 0x09, 0x30, 0xdf, 0x8f, 0x80, 0x5c, 0xd1, 0xbc, 0x26, 0xe8, 0xd6, 0x4b, 0x68, - 0x63, 0xee, 0x2f, 0x89, 0x23, 0xc0, 0x33, 0x43, 0x44, 0x80, 0xaf, 0x41, 0x11, 0x3f, 0x55, 0xa3, - 0x01, 0xeb, 0x84, 0x20, 0xbe, 0x74, 0x76, 0xf9, 0xf1, 0xf1, 0xc2, 0x25, 0x87, 0x95, 0xd9, 0x81, - 0x28, 0xb4, 0xbb, 0xbe, 0x6a, 0xab, 0xf4, 0x50, 0x92, 0x5f, 0x18, 0x30, 0x85, 0xc0, 0xea, 0x03, - 0xda, 0x0e, 0x91, 0x59, 0x4e, 0x1c, 0x19, 0x47, 0x66, 0x4a, 0x2d, 0xf4, 0xdd, 0xf6, 0x81, 0xb0, - 0x53, 0xf6, 0x84, 0x9d, 0xf2, 0x2e, 0xb7, 0xaf, 0xae, 0xd7, 0xbd, 0xd6, 0x8d, 0x03, 0xdf, 0x79, - 0xe0, 0x72, 0x57, 0x88, 0xd3, 0xbc, 0x11, 0x67, 0x17, 0xe8, 0xb8, 0x89, 0x7c, 0x01, 0x82, 0x15, - 0xda, 0x80, 0xbc, 0xa2, 0x14, 0x3f, 0x9b, 0xa8, 0x66, 0xa2, 0x46, 0xe4, 0x37, 0xe0, 0x3c, 0x0f, - 0x19, 0x64, 0x9a, 0xd8, 0x6d, 0x77, 0xbd, 0x6e, 0xb0, 0xe4, 0xd4, 0xef, 0x77, 0x3b, 0x81, 0x38, - 0x11, 0xc1, 0x96, 0xd7, 0xa3, 0x42, 0x7b, 0x8f, 0x97, 0x2a, 0x2c, 0xfb, 0x31, 0x20, 0x2b, 0x30, - 0xc3, 0x8b, 0x4a, 0xdd, 0xd0, 0xab, 0xd5, 0x9d, 0xa6, 0xdb, 0x3e, 0xc0, 0xc5, 0x36, 0xcf, 0x83, - 0xf5, 0x9c, 0x6e, 0xe8, 0xd9, 0x01, 0x87, 0x2b, 0xfc, 0x7a, 0x89, 0xc8, 0x2a, 0x33, 0x47, 0x9c, - 0xc6, 0x3d, 0xe7, 0x51, 0xd9, 0xe9, 0x38, 0x75, 0x37, 0xe4, 0x71, 0xdf, 0x59, 0x1e, 0x71, 0xe6, - 0x53, 0xa7, 0x61, 0xb7, 0x9c, 0x47, 0x76, 0x5d, 0x14, 0xea, 0xf6, 0x88, 0x46, 0x17, 0xb1, 0x72, - 0xdb, 0x11, 0xab, 0xf1, 0x24, 0x2b, 0xb7, 0xdd, 0x9f, 0x55, 0x4c, 0x27, 0x59, 0x6d, 0x39, 0xfe, - 0x01, 0x0d, 0xf9, 0x49, 0x02, 0x5c, 0x36, 0xae, 0x1a, 0x0a, 0xab, 0x10, 0xcb, 0x6c, 0x3c, 0x55, - 0x48, 0xb2, 0x52, 0xe8, 0x98, 0xe4, 0xed, 0xfa, 0x6e, 0x48, 0xd5, 0x16, 0x4e, 0x60, 0xb5, 0xb0, - 0xff, 0xf1, 0x2c, 0xa5, 0x5f, 0x13, 0x7b, 0x28, 0x63, 0x6e, 0x4a, 0x23, 0x0b, 0x3d, 0xdc, 0xd2, - 0x5b, 0xd9, 0x43, 0x19, 0x71, 0x53, 0xdb, 0x39, 0x89, 0xed, 0x54, 0xb8, 0xf5, 0x69, 0x68, 0x0f, - 0x25, 0x59, 0x67, 0x9d, 0x16, 0xd2, 0x36, 0x93, 0x68, 0x71, 0x92, 0x32, 0x85, 0x55, 0x7b, 0x59, - 0xb8, 0x03, 0x8b, 0xbe, 0x2c, 0xb6, 0x53, 0xce, 0x55, 0x92, 0xc4, 0xe4, 0x2f, 0xc1, 0xf4, 0x76, - 0x40, 0x97, 0x57, 0x37, 0x6b, 0x32, 0x44, 0x74, 0x7e, 0x1a, 0x9d, 0x84, 0x37, 0x4f, 0x50, 0x3a, - 0xd7, 0x55, 0x1a, 0xbc, 0xfd, 0xcf, 0xc7, 0xad, 0x1b, 0x50, 0x7b, 0xdf, 0xed, 0x04, 0x51, 0xb8, - 0xb6, 0x3a, 0x6e, 0x89, 0x4f, 0x99, 0x2b, 0x30, 0xd3, 0xc3, 0x86, 0x4c, 0x01, 0x30, 0xa0, 0xbd, - 0xbd, 0x5e, 0xab, 0x6e, 0x15, 0xcf, 0x90, 0x22, 0x14, 0xf0, 0x77, 0x75, 0xbd, 0xb4, 0xb4, 0x56, - 0xad, 0x14, 0x0d, 0x32, 0x03, 0x93, 0x08, 0xa9, 0xac, 0xd6, 0x38, 0x28, 0xf3, 0x51, 0x2e, 0x3f, - 0x52, 0x1c, 0xb5, 0x8a, 0x7c, 0xea, 0x86, 0x6c, 0x02, 0xe0, 0x9a, 0x62, 0xfe, 0xcd, 0x0c, 0x5c, - 0x90, 0xcb, 0x0a, 0x0d, 0x99, 0xd9, 0xec, 0xb6, 0x0f, 0x9e, 0xf1, 0xd5, 0x61, 0x59, 0x5b, 0x1d, - 0x5e, 0x4e, 0xac, 0xd4, 0x89, 0x56, 0x0e, 0x58, 0x22, 0x7e, 0x6f, 0x0c, 0x9e, 0x1f, 0x48, 0x45, - 0x3e, 0x66, 0xab, 0xb9, 0x4b, 0xdb, 0xe1, 0x6a, 0xa3, 0x49, 0xb7, 0xdc, 0x16, 0xf5, 0xba, 0xa1, - 0x38, 0xb9, 0x7b, 0xe9, 0xf1, 0xf1, 0xc2, 0x2c, 0xbf, 0xba, 0x6f, 0xbb, 0x8d, 0x26, 0xb5, 0x43, - 0x5e, 0xac, 0x89, 0x5b, 0x2f, 0x35, 0x63, 0x19, 0x25, 0x12, 0x59, 0x6d, 0x87, 0xd4, 0x7f, 0xe0, - 0xf0, 0x1b, 0xcc, 0x82, 0xe5, 0x7d, 0x4a, 0x3b, 0xb6, 0xc3, 0x4a, 0x6d, 0x57, 0x14, 0xeb, 0x2c, - 0x7b, 0xa8, 0xc9, 0xb2, 0xc2, 0xb2, 0xec, 0x75, 0xd9, 0x36, 0xf3, 0x91, 0x70, 0x5a, 0x88, 0xdb, - 0x20, 0x11, 0x4b, 0x7e, 0x19, 0xa8, 0xe5, 0x3c, 0xb2, 0x7a, 0x49, 0xc8, 0xb7, 0xe0, 0xac, 0x58, - 0x80, 0x98, 0x32, 0xf6, 0xbd, 0xa6, 0x6c, 0x71, 0x0e, 0x79, 0xbd, 0xfa, 0xf8, 0x78, 0xe1, 0xbc, - 0x58, 0xbe, 0xec, 0x3a, 0xc7, 0x48, 0x6d, 0x75, 0x3a, 0x17, 0xb2, 0xc5, 0x16, 0xe4, 0x44, 0x77, - 0xdc, 0xa3, 0x41, 0xe0, 0x1c, 0x48, 0x07, 0x07, 0x3f, 0x3e, 0x57, 0x3a, 0xd3, 0x6e, 0xf1, 0x72, - 0xab, 0x2f, 0x25, 0x59, 0x81, 0xa9, 0x5d, 0xba, 0xa7, 0x8e, 0xcf, 0x68, 0xa4, 0xaa, 0x8a, 0x0f, - 0xe9, 0x5e, 0xff, 0xc1, 0x49, 0xd0, 0x11, 0x17, 0x66, 0x30, 0x5e, 0x68, 0xcd, 0x0d, 0x42, 0xda, - 0xa6, 0x3e, 0x06, 0xe7, 0x8e, 0xa1, 0x32, 0x98, 0x8f, 0x2d, 0x64, 0xbd, 0x7c, 0xe9, 0xc5, 0xc7, - 0xc7, 0x0b, 0xcf, 0xf3, 0xd8, 0xa3, 0xa6, 0x80, 0xdb, 0x89, 0x3c, 0x1e, 0xbd, 0x5c, 0xc9, 0xb7, - 0x61, 0xda, 0xf2, 0xba, 0xa1, 0xdb, 0x3e, 0xa8, 0x85, 0xbe, 0x13, 0xd2, 0x03, 0xbe, 0x20, 0xc5, - 0x51, 0xc0, 0x89, 0x52, 0xb1, 0x6f, 0xe6, 0x40, 0x3b, 0x10, 0x50, 0x6d, 0x45, 0xd0, 0x09, 0xc8, - 0x6f, 0xc2, 0x14, 0x0f, 0x5f, 0x8c, 0x3e, 0x30, 0xae, 0x5d, 0x79, 0xd5, 0x0b, 0x77, 0x6e, 0xf2, - 0x7d, 0x1e, 0x0f, 0x83, 0x4c, 0xfb, 0x40, 0x82, 0x1b, 0xf9, 0x86, 0xe8, 0xac, 0x4d, 0xb7, 0x7d, - 0x10, 0x89, 0x31, 0x60, 0xcf, 0xbf, 0x19, 0x77, 0x49, 0x87, 0x55, 0x57, 0x8a, 0x71, 0x1f, 0x87, - 0x59, 0x2f, 0x1f, 0xf3, 0xd8, 0x80, 0x62, 0xb2, 0x82, 0xe4, 0xeb, 0x30, 0xce, 0x7d, 0x28, 0x34, - 0x38, 0x14, 0x59, 0x36, 0x64, 0xce, 0x9f, 0x08, 0xae, 0x13, 0x89, 0x1b, 0x70, 0xdc, 0x43, 0x43, - 0xd5, 0x53, 0x84, 0x95, 0x33, 0x56, 0xcc, 0x8c, 0x34, 0xa0, 0xc0, 0xeb, 0x40, 0x31, 0xb4, 0x5c, - 0xb8, 0xd2, 0x5f, 0x54, 0xc7, 0x5c, 0x14, 0x25, 0xf8, 0x63, 0x18, 0xa6, 0x68, 0x29, 0x47, 0xd0, - 0x3e, 0xa1, 0x71, 0x5d, 0x02, 0xc8, 0x4b, 0x42, 0xf3, 0x02, 0x9c, 0xef, 0x53, 0x67, 0xf3, 0x01, - 0xfa, 0x84, 0xfa, 0x7c, 0x91, 0x7c, 0x1d, 0xe6, 0x90, 0xb0, 0xec, 0xb5, 0xdb, 0xb4, 0x1e, 0xe2, - 0x24, 0x93, 0xde, 0xdf, 0xec, 0xd2, 0xcb, 0x8f, 0x8f, 0x17, 0x2e, 0xf3, 0xf6, 0xd6, 0x23, 0x04, - 0x3b, 0xe9, 0x08, 0x4e, 0xe5, 0x60, 0xfe, 0x2c, 0x03, 0xf3, 0x62, 0xde, 0x5a, 0xb4, 0xee, 0xf9, - 0x8d, 0x67, 0x7f, 0x9d, 0xa8, 0x6a, 0xeb, 0xc4, 0x4b, 0x51, 0x50, 0x72, 0x5a, 0x23, 0x07, 0x2c, - 0x13, 0x7f, 0x60, 0xc0, 0xa5, 0x41, 0x44, 0xac, 0x77, 0xa2, 0x40, 0xfe, 0xf1, 0x9e, 0x80, 0xfd, - 0x0e, 0xcc, 0xe2, 0x80, 0x96, 0x0f, 0x69, 0xfd, 0x7e, 0xb0, 0xe2, 0x05, 0x21, 0x9e, 0xe4, 0x65, - 0xb4, 0xd0, 0xbc, 0x25, 0xcf, 0xe3, 0xee, 0x46, 0xf4, 0xc9, 0x1a, 0xbf, 0x3a, 0x5e, 0x00, 0x06, - 0xe2, 0xa1, 0xf7, 0xcc, 0xd8, 0xe5, 0x52, 0x56, 0x47, 0x1e, 0x36, 0x06, 0x61, 0xde, 0xa7, 0x47, - 0x81, 0x95, 0xc6, 0x1a, 0x4f, 0x65, 0x4a, 0xdd, 0xf0, 0x70, 0xd3, 0xa7, 0xfb, 0xd4, 0xa7, 0xed, - 0x3a, 0xfd, 0x82, 0x9d, 0xca, 0xe8, 0x8d, 0x1b, 0x6a, 0x5f, 0xfe, 0x8f, 0xf3, 0x30, 0x97, 0x46, - 0xc6, 0xfa, 0x45, 0xd9, 0x0a, 0x26, 0xb3, 0x84, 0xfd, 0x1b, 0x06, 0x14, 0x6a, 0xb4, 0xee, 0xb5, - 0x1b, 0xcb, 0xe8, 0x04, 0x14, 0xbd, 0x63, 0xf3, 0xa5, 0x90, 0xc1, 0xed, 0xfd, 0x84, 0x77, 0xf0, - 0xd3, 0xe3, 0x85, 0x0f, 0x87, 0xdb, 0x81, 0xd5, 0x3d, 0xbc, 0xd2, 0x13, 0xe2, 0x9d, 0xd8, 0xe8, - 0x13, 0x78, 0x5c, 0xaf, 0x7d, 0x94, 0x2c, 0xc1, 0xa4, 0x98, 0xae, 0x9e, 0x7a, 0x8f, 0x03, 0x6f, - 0x5e, 0xd4, 0x65, 0x41, 0xcf, 0xad, 0x29, 0x8d, 0x84, 0xdc, 0x82, 0xec, 0xf6, 0xe2, 0xb2, 0x18, - 0x03, 0x19, 0x9d, 0xbe, 0xbd, 0xb8, 0x8c, 0x4e, 0x1e, 0x66, 0x38, 0x4f, 0x76, 0x17, 0x35, 0xe7, - 0xe5, 0xf6, 0xe2, 0x32, 0xb9, 0x05, 0x33, 0x16, 0xfd, 0xad, 0xae, 0xeb, 0x53, 0x31, 0x01, 0xee, - 0x2d, 0x97, 0x70, 0x2c, 0xf2, 0x32, 0xdd, 0x58, 0x6f, 0x39, 0xf9, 0xcb, 0x70, 0xb6, 0xe2, 0x06, - 0xa2, 0x5e, 0xfc, 0x50, 0xb1, 0x81, 0x41, 0x34, 0xa3, 0x7d, 0x44, 0xfe, 0x2b, 0xa9, 0x22, 0xff, - 0x62, 0x23, 0x62, 0x62, 0xf3, 0x13, 0xcb, 0x46, 0xf2, 0x92, 0x4b, 0xfa, 0x77, 0xc8, 0x77, 0x60, - 0x0a, 0x7d, 0x9a, 0x78, 0xce, 0x8a, 0x97, 0x36, 0xc7, 0xfa, 0x7c, 0xf9, 0x4b, 0xa9, 0x5f, 0xbe, - 0x88, 0x2e, 0x52, 0x1b, 0x4f, 0x6b, 0xf1, 0x82, 0xa7, 0xb6, 0x01, 0xd6, 0x38, 0x93, 0x8f, 0x60, - 0x5a, 0x58, 0x22, 0x1b, 0xfb, 0x5b, 0x87, 0xb4, 0xe2, 0x1c, 0x09, 0x37, 0x2f, 0x6e, 0x6e, 0x84, - 0xf9, 0x62, 0x7b, 0xfb, 0x76, 0x78, 0x48, 0xed, 0x86, 0xa3, 0xad, 0xd9, 0x09, 0x42, 0xf2, 0x3d, - 0x98, 0x58, 0xf3, 0xea, 0xcc, 0x08, 0x45, 0x75, 0x32, 0x8e, 0x7c, 0x3e, 0xc1, 0xec, 0x57, 0x1c, - 0x9c, 0xb0, 0x2c, 0x3e, 0x3d, 0x5e, 0x78, 0xe7, 0xb4, 0x92, 0xa6, 0x7c, 0xc0, 0x52, 0xbf, 0x46, - 0xca, 0x90, 0xdf, 0xa5, 0x7b, 0xac, 0xb5, 0xc9, 0xcc, 0x2d, 0x12, 0x2c, 0x3c, 0xef, 0xe2, 0x97, - 0xe6, 0x79, 0x17, 0x30, 0xe2, 0xc3, 0x0c, 0xf6, 0xcf, 0xa6, 0x13, 0x04, 0x0f, 0x3d, 0xbf, 0x81, - 0xf7, 0xa1, 0x27, 0xfa, 0x74, 0xfe, 0x62, 0x6a, 0xe7, 0x5f, 0xe2, 0x9d, 0xdf, 0x51, 0x38, 0xa8, - 0xb6, 0x54, 0x0f, 0x7b, 0xf2, 0x6d, 0x98, 0x12, 0x32, 0x78, 0x6f, 0xb9, 0x84, 0x53, 0xb9, 0xa0, - 0x85, 0x22, 0xe9, 0x85, 0xdc, 0x60, 0xf3, 0x39, 0x4c, 0x3a, 0x63, 0xec, 0xd6, 0xbe, 0x9a, 0xd1, - 0x29, 0xc1, 0xcf, 0xfc, 0xc7, 0x06, 0xce, 0x1d, 0x72, 0x0d, 0x83, 0xc2, 0x23, 0x7f, 0x36, 0x3a, - 0x83, 0x9c, 0x4e, 0xe2, 0xae, 0x20, 0x47, 0x21, 0x6f, 0xc0, 0xe8, 0xb2, 0x53, 0xa7, 0xa1, 0x3c, - 0x5d, 0x45, 0xe4, 0x7d, 0x84, 0xa8, 0x9e, 0x23, 0x8e, 0xc3, 0x96, 0xf5, 0x0a, 0x7d, 0xe0, 0xd6, - 0x69, 0x29, 0xce, 0xf3, 0x58, 0x2e, 0xf1, 0xa0, 0xe8, 0x71, 0xbe, 0xac, 0x37, 0xb0, 0xdc, 0x56, - 0x12, 0x41, 0xda, 0x75, 0x47, 0xe5, 0x95, 0xca, 0xc1, 0xfc, 0x3f, 0x8c, 0x78, 0x5c, 0xc9, 0xab, - 0x90, 0xb3, 0x36, 0xa3, 0xfa, 0xf3, 0x48, 0x9e, 0x44, 0xf5, 0x11, 0x81, 0x7c, 0x03, 0xce, 0x2a, - 0x7c, 0xb0, 0xcf, 0x69, 0x83, 0x55, 0x88, 0x37, 0xe6, 0x15, 0x0c, 0x35, 0x51, 0x6a, 0xe2, 0x70, - 0x8c, 0x44, 0x8d, 0xd2, 0x79, 0xa0, 0x0d, 0x13, 0x17, 0x54, 0x68, 0xdb, 0xe5, 0xbc, 0x95, 0xc6, - 0xaa, 0xbc, 0x1b, 0x88, 0x90, 0x6c, 0x6c, 0x1a, 0x07, 0x1e, 0x6d, 0x62, 0xfe, 0x4b, 0x43, 0x49, - 0x8e, 0xf8, 0x8c, 0xae, 0x7b, 0xb7, 0xb5, 0x75, 0x6f, 0x4e, 0x90, 0x46, 0xad, 0x62, 0x65, 0xa9, - 0xb6, 0xca, 0x34, 0x4c, 0x6a, 0x48, 0x78, 0x67, 0x66, 0x3b, 0xa0, 0x3e, 0x77, 0xe9, 0x7f, 0xb1, - 0xee, 0xcc, 0x44, 0xed, 0x1a, 0xea, 0x56, 0xc3, 0x3f, 0x33, 0xd0, 0xd5, 0xa3, 0x52, 0xb0, 0xde, - 0x60, 0x20, 0xb5, 0x37, 0xba, 0x01, 0xf5, 0x2d, 0x84, 0xf2, 0xc0, 0xf7, 0x35, 0x3d, 0xf0, 0xbd, - 0x69, 0x31, 0x18, 0xf9, 0x10, 0x46, 0xb6, 0x71, 0xe3, 0xaa, 0x87, 0x3d, 0x46, 0xfc, 0xb1, 0x90, - 0xcf, 0xb0, 0x2e, 0xfb, 0x53, 0x55, 0x10, 0x58, 0x46, 0x6a, 0x30, 0x56, 0xf6, 0x29, 0xa6, 0x41, - 0xcc, 0x0d, 0x1f, 0xba, 0x53, 0xe7, 0x24, 0xc9, 0xd0, 0x1d, 0xc1, 0xc9, 0xfc, 0x1b, 0x19, 0x20, - 0x71, 0x1b, 0x31, 0x51, 0x44, 0xf0, 0xcc, 0x0e, 0xfa, 0x07, 0xda, 0xa0, 0x3f, 0xdf, 0x33, 0xe8, - 0xbc, 0x79, 0x43, 0x8d, 0xfd, 0x1f, 0x1b, 0x70, 0x2e, 0x9d, 0x90, 0xbc, 0x04, 0xa3, 0x1b, 0x5b, - 0x9b, 0x32, 0x72, 0x56, 0x34, 0xc5, 0xeb, 0xa0, 0x7d, 0x6d, 0x89, 0x22, 0xf2, 0x26, 0x8c, 0x7e, - 0x6c, 0x95, 0xd9, 0xa2, 0xac, 0x5c, 0xba, 0xfd, 0x2d, 0xdf, 0xae, 0xeb, 0x3b, 0x7d, 0x81, 0xa4, - 0x8e, 0x6d, 0xf6, 0xa9, 0x8d, 0xed, 0x8f, 0x33, 0x30, 0x5d, 0xaa, 0xd7, 0x69, 0x10, 0xb0, 0xe5, - 0x89, 0x06, 0xe1, 0x33, 0x3b, 0xb0, 0xe9, 0x31, 0xb1, 0x5a, 0xdb, 0x86, 0x1a, 0xd5, 0x3f, 0x31, - 0xe0, 0xac, 0xa4, 0x7a, 0xe0, 0xd2, 0x87, 0x5b, 0x87, 0x3e, 0x0d, 0x0e, 0xbd, 0x66, 0x63, 0xe8, - 0x6b, 0xf1, 0x6c, 0x95, 0x76, 0x9b, 0x21, 0xf5, 0xd5, 0xf3, 0x9d, 0x7d, 0x84, 0x68, 0xab, 0x34, - 0x42, 0xc8, 0x0d, 0x18, 0x2b, 0x75, 0x3a, 0xbe, 0xf7, 0x80, 0x4f, 0xfb, 0x49, 0x11, 0xc9, 0xc4, - 0x41, 0x5a, 0xe4, 0x13, 0x07, 0xb1, 0x6a, 0x54, 0x68, 0x9b, 0xdf, 0x34, 0x9a, 0xe4, 0xd5, 0x68, - 0xd0, 0xb6, 0x6a, 0x03, 0x62, 0xb9, 0xf9, 0xa3, 0x1c, 0x14, 0xd4, 0x86, 0x10, 0x13, 0x46, 0x79, - 0x60, 0xaa, 0x1a, 0x60, 0xe8, 0x20, 0xc4, 0x12, 0x25, 0x71, 0x5c, 0x6e, 0xe6, 0xc4, 0xb8, 0xdc, - 0x5d, 0x98, 0xdc, 0xf4, 0xbd, 0x8e, 0x17, 0xd0, 0x06, 0xcf, 0x64, 0xcb, 0xb5, 0xd6, 0xac, 0x62, - 0x21, 0xb1, 0x3e, 0x47, 0x27, 0x36, 0x6e, 0x2a, 0x3a, 0x02, 0xdb, 0x4e, 0xe6, 0xb9, 0xd5, 0xf9, - 0xf0, 0xf3, 0x31, 0x27, 0x10, 0x77, 0xff, 0xa2, 0xf3, 0x31, 0x06, 0xd1, 0xcf, 0xc7, 0x18, 0x44, - 0x9d, 0x16, 0x23, 0x4f, 0x6b, 0x5a, 0x90, 0xbf, 0x61, 0xc0, 0x44, 0xa9, 0xdd, 0x16, 0xf1, 0xbe, - 0x27, 0x04, 0x3c, 0x7d, 0x53, 0x1c, 0x91, 0xbd, 0xf3, 0x99, 0x8e, 0xc8, 0xb6, 0x7c, 0xc7, 0x0d, - 0x03, 0x0c, 0x03, 0x8b, 0x3f, 0xa8, 0xc6, 0x91, 0x28, 0xf5, 0x20, 0xef, 0x40, 0x31, 0x92, 0xc7, - 0xd5, 0x76, 0x83, 0x3e, 0xa2, 0xc1, 0xfc, 0xd8, 0xe5, 0xec, 0xd5, 0x49, 0x9e, 0x98, 0x40, 0x3b, - 0xfb, 0x4b, 0x22, 0x9a, 0x3f, 0x36, 0xe0, 0x9c, 0x2a, 0x10, 0xb5, 0xee, 0x5e, 0xcb, 0x45, 0x53, - 0x95, 0x5c, 0x87, 0x71, 0x31, 0x5e, 0x91, 0x21, 0xd7, 0x9b, 0xfe, 0x38, 0x46, 0x21, 0x55, 0x36, - 0x44, 0x8c, 0x87, 0xf0, 0x38, 0xcc, 0x26, 0xa6, 0x1b, 0x2b, 0x5a, 0x9a, 0x17, 0x9d, 0x5d, 0xf4, - 0xf1, 0xb7, 0x3e, 0x76, 0x0c, 0x62, 0xbe, 0x0f, 0x33, 0x7a, 0x2d, 0x6b, 0x14, 0x6f, 0xae, 0xcb, - 0xa6, 0x19, 0xe9, 0x4d, 0x93, 0xe5, 0xe6, 0x2e, 0x90, 0x1e, 0xfa, 0x00, 0xcf, 0x79, 0x69, 0x28, - 0xe3, 0x10, 0xa4, 0x97, 0xb5, 0x07, 0x31, 0x4a, 0x04, 0x3e, 0xa1, 0x76, 0x37, 0x92, 0x9a, 0xff, - 0xed, 0x04, 0xcc, 0xa6, 0xa8, 0x8e, 0x13, 0x96, 0xf6, 0x05, 0x7d, 0xf2, 0x8c, 0x47, 0xb1, 0x84, - 0x72, 0xca, 0xbc, 0x2f, 0x93, 0x3e, 0x0f, 0x98, 0x2a, 0x83, 0x32, 0x41, 0x7f, 0x1e, 0xcb, 0xbb, - 0x1a, 0xee, 0x3b, 0xf2, 0xd4, 0xc2, 0x7d, 0x97, 0x60, 0x52, 0xb4, 0x4a, 0x4c, 0xe5, 0xd1, 0xd8, - 0xb9, 0xe0, 0xf3, 0x02, 0xbb, 0x67, 0x4a, 0xeb, 0x24, 0x9c, 0x47, 0xe0, 0x35, 0x1f, 0x50, 0xc1, - 0x63, 0x4c, 0xe5, 0x81, 0x05, 0xa9, 0x3c, 0x14, 0x12, 0xf2, 0x1f, 0x63, 0xc6, 0x18, 0x84, 0xa8, - 0xf3, 0x39, 0x3f, 0x68, 0x3e, 0x37, 0x9e, 0xce, 0x7c, 0x7e, 0x5e, 0xd6, 0x31, 0x7d, 0x5e, 0xa7, - 0x54, 0x8b, 0xfc, 0x87, 0x06, 0xcc, 0xf0, 0x98, 0x53, 0xb5, 0xb2, 0x03, 0xe3, 0x08, 0xeb, 0x4f, - 0xa7, 0xb2, 0x97, 0x02, 0xfc, 0x6c, 0x9f, 0xba, 0xf6, 0x56, 0x8a, 0xfc, 0x06, 0x40, 0x34, 0xa3, - 0x64, 0x6a, 0x81, 0x4b, 0x29, 0x5a, 0x20, 0x42, 0x8a, 0x73, 0x33, 0x84, 0x11, 0x9d, 0x96, 0x27, - 0x28, 0x82, 0x92, 0xbf, 0x0c, 0x73, 0x6c, 0xbe, 0x44, 0x10, 0x11, 0x21, 0x3f, 0x3f, 0x81, 0x5f, - 0xf9, 0x72, 0xff, 0xa5, 0xfd, 0x7a, 0x1a, 0x19, 0xbf, 0x8b, 0x19, 0xa7, 0xb9, 0x0b, 0x5b, 0xea, - 0x96, 0x2f, 0x8d, 0x02, 0xaf, 0x9c, 0x60, 0xed, 0x79, 0x8a, 0x82, 0x3e, 0xfa, 0xed, 0x82, 0x9c, - 0x0b, 0x5c, 0xbf, 0x05, 0x7a, 0xd8, 0x1d, 0x82, 0xc8, 0xc7, 0x40, 0xa2, 0x60, 0x4d, 0x0e, 0xa3, - 0xbe, 0xcc, 0xfa, 0x8a, 0x4e, 0x83, 0x38, 0xe8, 0xd3, 0x97, 0xc5, 0xaa, 0x90, 0xf4, 0x12, 0x13, - 0x0a, 0x73, 0xa2, 0xd1, 0x0c, 0x2a, 0x33, 0xea, 0x04, 0xf3, 0x53, 0xda, 0xfd, 0x83, 0xb8, 0x24, - 0xce, 0x87, 0xa7, 0xa4, 0xe5, 0xd1, 0xb6, 0xbd, 0x69, 0xec, 0xc8, 0x6d, 0x18, 0x5f, 0xf3, 0x0e, - 0xdc, 0xf6, 0x8a, 0x3c, 0xbd, 0x16, 0x27, 0x69, 0x4d, 0x06, 0xb4, 0x0f, 0xf5, 0x33, 0xe8, 0x18, - 0x95, 0x59, 0xb5, 0x15, 0xff, 0xc8, 0xea, 0xb6, 0xe7, 0x8b, 0xe8, 0xd2, 0x43, 0x73, 0xa6, 0xe1, - 0x1f, 0xd9, 0x7e, 0x57, 0x5b, 0xbe, 0x39, 0xd2, 0xc5, 0x3d, 0xb8, 0xd0, 0x77, 0xd0, 0x52, 0xae, - 0x7d, 0xde, 0xd0, 0xaf, 0x7d, 0x5e, 0xe8, 0xa7, 0xdc, 0x03, 0xf5, 0xea, 0xe7, 0xdf, 0x31, 0x12, - 0xda, 0x5c, 0x98, 0x5e, 0x3c, 0xdb, 0x7f, 0xbf, 0xe5, 0x2e, 0x83, 0x29, 0xda, 0xb8, 0xbe, 0xcf, - 0xc4, 0x26, 0x1f, 0xd3, 0xf7, 0xea, 0x7a, 0x81, 0x9a, 0xff, 0x09, 0x15, 0xbb, 0xf9, 0x7b, 0x19, - 0x20, 0xbc, 0x86, 0x65, 0xa7, 0xe3, 0xec, 0xb9, 0x4d, 0x37, 0x74, 0x29, 0x66, 0x35, 0x12, 0x2c, - 0x9c, 0xbd, 0x26, 0x55, 0xe3, 0xd4, 0x45, 0x34, 0x47, 0x54, 0x66, 0x27, 0x8d, 0xb4, 0x1e, 0xc2, - 0x3e, 0xa2, 0x98, 0x79, 0x12, 0x51, 0xfc, 0x36, 0x3c, 0x57, 0xea, 0x60, 0x1e, 0x36, 0xf9, 0x95, - 0x65, 0xcf, 0x97, 0x42, 0x24, 0x7d, 0x2f, 0x78, 0xca, 0xe8, 0x44, 0x68, 0x3d, 0x35, 0x1d, 0xc4, - 0xc2, 0xfc, 0xcf, 0x32, 0x70, 0xa1, 0xb7, 0x63, 0x44, 0xdb, 0xa2, 0xe1, 0x31, 0x4e, 0x18, 0x9e, - 0xb4, 0x7e, 0xcc, 0xa0, 0x74, 0x3e, 0xb5, 0x7e, 0xe4, 0x89, 0xd0, 0x3e, 0x63, 0x3f, 0xd6, 0x60, - 0x42, 0x9d, 0xc9, 0xb9, 0xcf, 0x3a, 0x93, 0x55, 0x2e, 0xe6, 0x43, 0x35, 0x3b, 0x17, 0x79, 0x33, - 0x2d, 0x5a, 0x90, 0xdf, 0xfb, 0xe5, 0x60, 0x3d, 0x50, 0x50, 0xee, 0x01, 0x33, 0xa9, 0x7b, 0x40, - 0x79, 0x85, 0x39, 0x9b, 0x76, 0x85, 0xd9, 0xfc, 0x61, 0x06, 0x0a, 0x9b, 0xcd, 0xee, 0x81, 0xdb, - 0xae, 0x38, 0xa1, 0xf3, 0xcc, 0x6e, 0x28, 0xdf, 0xd6, 0x36, 0x94, 0x51, 0x38, 0x6b, 0xd4, 0xb0, - 0xa1, 0x76, 0x93, 0x3f, 0x35, 0x60, 0x3a, 0x26, 0xe1, 0x5a, 0x6d, 0x05, 0x72, 0xec, 0x87, 0xb0, - 0x4f, 0x2f, 0xf7, 0x30, 0x46, 0xac, 0xeb, 0xd1, 0x5f, 0x62, 0x8b, 0xa7, 0xbf, 0x0f, 0x80, 0x1c, - 0x2e, 0x7e, 0x85, 0x67, 0xea, 0x3e, 0xfd, 0x53, 0x24, 0xff, 0xc8, 0x80, 0x62, 0xb2, 0x25, 0xe4, - 0x2e, 0x8c, 0x31, 0x4e, 0x6e, 0x94, 0xf5, 0xfb, 0xe5, 0x3e, 0x6d, 0xbe, 0x2e, 0xd0, 0x78, 0xf5, - 0xb0, 0xf3, 0x29, 0x87, 0x58, 0x92, 0xc3, 0x45, 0x0b, 0x0a, 0x2a, 0x56, 0x4a, 0xed, 0xde, 0xd0, - 0x55, 0xf9, 0xb9, 0xf4, 0x7e, 0x50, 0x6b, 0xfd, 0xb7, 0xb4, 0x5a, 0x0b, 0x25, 0x3e, 0xec, 0x9b, - 0x0f, 0x78, 0xe9, 0x9f, 0x4f, 0x07, 0x55, 0xce, 0xe4, 0x4c, 0xd2, 0x2f, 0xfd, 0x73, 0x18, 0xdb, - 0x89, 0xf2, 0xef, 0x09, 0x39, 0xc3, 0x9d, 0x68, 0x07, 0x21, 0xea, 0x52, 0xc6, 0x71, 0xcc, 0xbf, - 0x9d, 0x85, 0x73, 0x71, 0xf5, 0xf8, 0x0b, 0x18, 0x9b, 0x8e, 0xef, 0xb4, 0x82, 0x13, 0x66, 0xc0, - 0xd5, 0x9e, 0xaa, 0x61, 0xf6, 0x1c, 0x59, 0x35, 0xa5, 0x42, 0x66, 0xa2, 0x42, 0xb8, 0x85, 0xe7, - 0x15, 0x92, 0xd5, 0x20, 0x77, 0x21, 0x5b, 0xa3, 0xa1, 0x50, 0x22, 0x57, 0x7a, 0x7a, 0x55, 0xad, - 0xd7, 0xf5, 0x1a, 0x0d, 0xf9, 0x20, 0xf2, 0xdb, 0x1a, 0x54, 0xbb, 0xa3, 0xc8, 0x36, 0x63, 0xbb, - 0x30, 0x5a, 0x7d, 0xd4, 0xa1, 0xf5, 0x50, 0x64, 0xbc, 0x78, 0x6d, 0x30, 0x3f, 0x8e, 0xab, 0xe4, - 0xd5, 0xa0, 0x08, 0x50, 0x3b, 0x8b, 0xa3, 0x5c, 0xbc, 0x0d, 0x79, 0xf9, 0xf1, 0x53, 0xe5, 0x87, - 0x78, 0x1b, 0x26, 0x94, 0x8f, 0x9c, 0x4a, 0xe8, 0xff, 0xdc, 0x80, 0x51, 0xa6, 0xc2, 0x77, 0xde, - 0x7a, 0x46, 0x35, 0xd2, 0x2d, 0x4d, 0x23, 0xcd, 0x28, 0xd7, 0xa0, 0x71, 0x5e, 0xbe, 0x75, 0x82, - 0x2e, 0x3a, 0x36, 0x00, 0x62, 0x64, 0x72, 0x07, 0xc6, 0x44, 0x12, 0x3e, 0x11, 0xf8, 0xa2, 0xde, - 0xab, 0x96, 0x99, 0xb4, 0x23, 0x1b, 0xd7, 0xeb, 0x24, 0x37, 0x05, 0x92, 0x9a, 0x54, 0xe2, 0x3b, - 0x71, 0x6a, 0x2a, 0x0e, 0xc6, 0xa6, 0xec, 0xb5, 0xf9, 0xbd, 0x60, 0x25, 0x9f, 0x63, 0x9f, 0xab, - 0x22, 0x25, 0xe1, 0xd6, 0xca, 0x0e, 0x62, 0x72, 0x4e, 0x30, 0x49, 0xf7, 0x78, 0xfd, 0x27, 0xd3, - 0xfc, 0x46, 0xad, 0xac, 0xd8, 0x7b, 0x50, 0x58, 0xf6, 0xfc, 0x87, 0x8e, 0xcf, 0xef, 0x49, 0x61, - 0x33, 0x79, 0xb2, 0xd2, 0xc9, 0x7d, 0x0e, 0xe7, 0x37, 0xad, 0x3e, 0x3d, 0x5e, 0xc8, 0x2d, 0x79, - 0x5e, 0xd3, 0xd2, 0xd0, 0xc9, 0x06, 0x4c, 0xde, 0x73, 0x1e, 0x89, 0x33, 0xe8, 0xad, 0xad, 0x35, - 0x11, 0x50, 0xf7, 0xda, 0xe3, 0xe3, 0x85, 0x0b, 0x2d, 0xe7, 0x51, 0x74, 0xce, 0xd7, 0xff, 0xda, - 0x9e, 0x4e, 0x4f, 0x5c, 0x98, 0xda, 0xf4, 0xfc, 0x50, 0x7c, 0x84, 0xed, 0x68, 0xb2, 0x7d, 0x4e, - 0x31, 0x6f, 0xa4, 0x9e, 0x62, 0x5e, 0x60, 0xdb, 0x38, 0x7b, 0x3f, 0x22, 0xd7, 0x72, 0x1d, 0x68, - 0x8c, 0xc9, 0x7b, 0x30, 0x53, 0xa6, 0x7e, 0xe8, 0xee, 0xbb, 0x75, 0x27, 0xa4, 0xcb, 0x9e, 0xdf, - 0x72, 0x42, 0xe1, 0x4e, 0x43, 0x77, 0x4a, 0x9d, 0x72, 0x4e, 0x2d, 0x27, 0xb4, 0x7a, 0x31, 0xc9, - 0x37, 0xd2, 0x42, 0x14, 0x47, 0xe2, 0x40, 0xac, 0x94, 0x10, 0xc5, 0x7e, 0x81, 0x58, 0xbd, 0xc1, - 0x8a, 0x07, 0x83, 0x8e, 0xf2, 0xf3, 0x4b, 0x37, 0x45, 0xe8, 0xc0, 0xc9, 0x47, 0xf5, 0xd1, 0xb8, - 0xf5, 0x39, 0xb2, 0x5f, 0x84, 0xec, 0xd2, 0xe6, 0x32, 0x3a, 0xc8, 0xc4, 0xd1, 0x39, 0x6d, 0x1f, - 0x3a, 0xed, 0x3a, 0x5a, 0x66, 0x22, 0xe6, 0x46, 0x55, 0x78, 0x4b, 0x9b, 0xcb, 0xc4, 0x81, 0xd9, - 0x4d, 0xea, 0xb7, 0xdc, 0xf0, 0xeb, 0x37, 0x6f, 0x2a, 0x03, 0x95, 0xc7, 0xaa, 0xdd, 0x10, 0x55, - 0x5b, 0xe8, 0x20, 0x8a, 0xfd, 0xe8, 0xe6, 0xcd, 0xd4, 0xe1, 0x88, 0x2a, 0x96, 0xc6, 0x8b, 0x54, - 0x61, 0xea, 0x9e, 0xf3, 0x28, 0x0e, 0x95, 0x0a, 0x44, 0xb0, 0xf7, 0xf3, 0x52, 0xb0, 0xe2, 0x30, - 0x2b, 0x75, 0xbe, 0x25, 0x88, 0xc8, 0xbb, 0x30, 0x11, 0x8b, 0x57, 0x20, 0xc2, 0xe4, 0x30, 0x86, - 0x5d, 0x11, 0x4e, 0xcd, 0x3a, 0x54, 0xd0, 0xc9, 0x76, 0xe4, 0xa0, 0xe1, 0xe6, 0xb5, 0x48, 0xe0, - 0x77, 0x43, 0x75, 0xd0, 0x38, 0x58, 0xa2, 0x35, 0x6b, 0x3a, 0xda, 0xd2, 0xf0, 0xd8, 0x31, 0x4b, - 0xe7, 0xa2, 0xf8, 0x7d, 0x36, 0x7d, 0xaf, 0xd5, 0x09, 0xf1, 0xd8, 0x3c, 0xe1, 0xf7, 0xe9, 0x60, - 0x49, 0x8a, 0xdf, 0x87, 0x93, 0xa4, 0xc7, 0x87, 0x4c, 0x9e, 0x10, 0x1f, 0x42, 0x21, 0xb7, 0xe6, - 0xd5, 0xef, 0x63, 0xdc, 0xf6, 0xf8, 0xd2, 0xc7, 0x4c, 0x47, 0x34, 0xbd, 0xfa, 0xfd, 0xa7, 0x17, - 0xd7, 0x80, 0xec, 0xc9, 0x3a, 0x6b, 0x1f, 0x13, 0x1d, 0xf1, 0x69, 0xdc, 0x19, 0xc7, 0x67, 0xa9, - 0x5a, 0x19, 0x37, 0x46, 0xb8, 0xa4, 0xc9, 0xf1, 0xb0, 0x74, 0x72, 0x42, 0xa1, 0x58, 0xa1, 0xc1, - 0xfd, 0xd0, 0xeb, 0x94, 0x9b, 0x6e, 0x67, 0xcf, 0x73, 0xfc, 0x06, 0xee, 0x9b, 0xd3, 0x94, 0xc2, - 0xab, 0xa9, 0x4a, 0x61, 0xa6, 0xc1, 0xe9, 0xed, 0xba, 0x64, 0x60, 0xf5, 0xb0, 0x24, 0xdf, 0x80, - 0x29, 0x36, 0x23, 0xaa, 0x8f, 0x42, 0xda, 0xe6, 0xe2, 0x32, 0x83, 0xcb, 0xf9, 0x9c, 0x92, 0xb4, - 0x22, 0x2a, 0xe4, 0x82, 0x88, 0x1a, 0x82, 0x46, 0x04, 0xaa, 0x20, 0xea, 0xac, 0x48, 0x03, 0xe6, - 0xef, 0x39, 0x8f, 0x94, 0xfc, 0x90, 0x8a, 0x64, 0x13, 0x94, 0x4a, 0xcc, 0x9a, 0xcd, 0xa4, 0xf2, - 0x7e, 0x84, 0xd4, 0x47, 0xc8, 0xfb, 0x72, 0x22, 0xdf, 0x83, 0xf3, 0xa2, 0x59, 0x15, 0xcc, 0xc8, - 0xe4, 0xf9, 0x47, 0xb5, 0x43, 0x07, 0x43, 0x2b, 0x67, 0x4f, 0xa7, 0x45, 0x65, 0x87, 0x35, 0x24, - 0x1f, 0x3b, 0xe0, 0x8c, 0xac, 0x7e, 0x5f, 0x20, 0xdf, 0x86, 0x29, 0xee, 0x2e, 0x5d, 0xf1, 0x82, - 0x10, 0xb7, 0x9c, 0x73, 0x7d, 0xbe, 0x79, 0x25, 0xf5, 0x9b, 0x45, 0xee, 0x83, 0xe5, 0x31, 0x76, - 0xe8, 0x31, 0x4e, 0xf0, 0x23, 0xef, 0xc0, 0xc4, 0xa6, 0xdb, 0xae, 0xf1, 0xed, 0xda, 0xe6, 0xfc, - 0xd9, 0x78, 0xa9, 0xea, 0xb8, 0x6d, 0x5b, 0xee, 0xf6, 0x3a, 0x91, 0x66, 0x51, 0xb1, 0xc9, 0x2e, - 0x4c, 0xd4, 0x6a, 0x2b, 0xcb, 0x2e, 0x5b, 0x2b, 0x3b, 0x47, 0xf3, 0xe7, 0xfa, 0xd4, 0xed, 0xa5, - 0xd4, 0xba, 0x4d, 0x06, 0xc1, 0x21, 0xa6, 0x27, 0xb6, 0xeb, 0x5e, 0xe7, 0xc8, 0x52, 0x39, 0xa5, - 0x84, 0xc1, 0x9c, 0x7f, 0xca, 0x61, 0x30, 0xff, 0x65, 0x26, 0x31, 0xa3, 0xc8, 0x2a, 0x8c, 0x89, - 0x61, 0x10, 0x76, 0x49, 0x6f, 0x43, 0x9e, 0x4f, 0x6d, 0xc8, 0x98, 0x18, 0x58, 0x4b, 0xd2, 0x93, - 0x87, 0x8c, 0xd5, 0xbe, 0xd3, 0x6d, 0xca, 0xbc, 0xc6, 0xdf, 0xe2, 0x13, 0x06, 0x41, 0x9a, 0x6a, - 0xa8, 0x9c, 0x3e, 0xb8, 0x4e, 0x8f, 0xdd, 0x44, 0x1d, 0x21, 0xbf, 0x46, 0xee, 0xf3, 0x14, 0x24, - 0xd9, 0x28, 0xd8, 0x4a, 0xcf, 0x37, 0xf2, 0xd4, 0x3e, 0xc8, 0xbe, 0x62, 0xfe, 0xe7, 0x06, 0x4c, - 0x6a, 0x53, 0x92, 0xdc, 0x56, 0xc2, 0x0f, 0xe3, 0x38, 0x73, 0x0d, 0x27, 0xf5, 0xf9, 0xd2, 0xdb, - 0x22, 0xe6, 0x34, 0xd3, 0x9f, 0x2e, 0x35, 0x7d, 0xf4, 0x40, 0x7f, 0x40, 0x9c, 0xd2, 0x2c, 0xd7, - 0x27, 0xa5, 0xd9, 0x0f, 0xa7, 0x60, 0x4a, 0x37, 0xf4, 0xd8, 0xce, 0x0b, 0x5d, 0x8a, 0xd2, 0xdf, - 0xc5, 0x93, 0xf4, 0x21, 0x44, 0x7b, 0x0b, 0x14, 0x21, 0xe4, 0x15, 0x80, 0x28, 0x40, 0x45, 0xba, - 0xb4, 0xc4, 0x52, 0xa1, 0x14, 0x90, 0xdf, 0x04, 0x58, 0xf7, 0x1a, 0x34, 0xca, 0x0d, 0x39, 0xc0, - 0xad, 0xfe, 0x6a, 0xcf, 0xf5, 0xfc, 0xb3, 0x6d, 0xaf, 0x41, 0x7b, 0xef, 0xe2, 0x2b, 0x1c, 0xc9, - 0xd7, 0x60, 0xc4, 0xea, 0x36, 0xa9, 0x74, 0xe0, 0x4c, 0xc8, 0x49, 0xd2, 0x6d, 0x2a, 0x0f, 0x0a, - 0xf9, 0xdd, 0xe4, 0x69, 0x2a, 0x03, 0x90, 0x0f, 0x00, 0x98, 0xde, 0xc3, 0xa7, 0x08, 0x64, 0x56, - 0x24, 0x74, 0x4e, 0x29, 0x2a, 0x13, 0x93, 0xc5, 0x6b, 0x1f, 0x8f, 0x49, 0xc8, 0x06, 0x8c, 0x89, - 0x65, 0x54, 0x9c, 0x56, 0xbe, 0x90, 0xe6, 0x27, 0x57, 0x6c, 0x69, 0x91, 0x07, 0x10, 0xc1, 0xba, - 0xeb, 0x9a, 0x3b, 0xd7, 0xde, 0x85, 0x71, 0xc6, 0x9e, 0xbf, 0x90, 0x33, 0x16, 0xbb, 0xf2, 0x94, - 0x0a, 0x25, 0x1f, 0xc9, 0x89, 0x09, 0xc8, 0x37, 0x30, 0xdb, 0xa7, 0xe8, 0xea, 0x81, 0xc7, 0x2d, - 0x57, 0x7a, 0xba, 0x7a, 0xce, 0xe9, 0x74, 0x52, 0xb2, 0x37, 0x47, 0xfc, 0xc8, 0x41, 0x74, 0x39, - 0x78, 0x98, 0x54, 0x0b, 0xd7, 0x7a, 0x3e, 0x30, 0x2f, 0xef, 0xbb, 0xf6, 0xe6, 0xf8, 0xd4, 0xf8, - 0x92, 0x0e, 0x14, 0xe3, 0xd5, 0x48, 0x7c, 0x0b, 0x06, 0x7d, 0xeb, 0xcd, 0x9e, 0x6f, 0xa9, 0x03, - 0xd8, 0xf3, 0xb9, 0x1e, 0xee, 0xa4, 0x11, 0xbf, 0x00, 0x26, 0xbe, 0x37, 0x31, 0xe8, 0x7b, 0xaf, - 0xf4, 0x7c, 0x6f, 0xb6, 0xb1, 0xd7, 0xfb, 0x9d, 0x04, 0x4f, 0xf2, 0x2e, 0x4c, 0x4a, 0x08, 0xce, - 0x0f, 0x91, 0x89, 0x99, 0xbf, 0x5d, 0xb7, 0x87, 0x41, 0xbf, 0x7a, 0xb2, 0x4a, 0x15, 0x59, 0xa5, - 0xe6, 0xd2, 0x31, 0xa9, 0x51, 0x27, 0xa5, 0x42, 0x47, 0x26, 0x9f, 0xc0, 0xc4, 0x6a, 0x8b, 0x35, - 0xc4, 0x6b, 0x3b, 0x21, 0x45, 0x83, 0x2d, 0x3e, 0x3a, 0x52, 0x4a, 0x14, 0x51, 0xe5, 0x2f, 0x18, - 0xc4, 0x45, 0xaa, 0x51, 0xab, 0x50, 0xb0, 0xce, 0xe3, 0x4e, 0x55, 0x21, 0xc3, 0x81, 0x30, 0xcf, - 0x9e, 0x4f, 0x39, 0xbe, 0x51, 0xd8, 0xa3, 0xbd, 0xc3, 0x7d, 0xb5, 0xb6, 0x98, 0x10, 0x81, 0xbe, - 0x64, 0xa9, 0x3c, 0xc9, 0x7b, 0x30, 0x21, 0xb2, 0xd0, 0x94, 0xac, 0xf5, 0x60, 0xbe, 0x18, 0x3f, - 0x1e, 0x25, 0x13, 0xd6, 0xd8, 0x8e, 0x9f, 0x38, 0xc3, 0x8f, 0xf1, 0xc9, 0xd7, 0x61, 0x6e, 0xd7, - 0x6d, 0x37, 0xbc, 0x87, 0x81, 0x58, 0xa6, 0x84, 0xa2, 0x9b, 0x89, 0x23, 0x15, 0x1f, 0xf2, 0x72, - 0x5b, 0x5a, 0x2a, 0x3d, 0x8a, 0x2f, 0x95, 0x03, 0xf9, 0xed, 0x1e, 0xce, 0x5c, 0x82, 0xc8, 0x20, - 0x09, 0x5a, 0xec, 0x91, 0xa0, 0xde, 0xcf, 0x27, 0xc5, 0x29, 0xf5, 0x33, 0xc4, 0x03, 0xa2, 0xdb, - 0xe5, 0x1f, 0x79, 0x6e, 0x7b, 0x7e, 0x56, 0x7b, 0xe8, 0x39, 0x5a, 0xc5, 0x10, 0x8f, 0xbf, 0xb7, - 0x20, 0x1f, 0x7c, 0xd1, 0xcd, 0x86, 0xef, 0x78, 0x9a, 0x93, 0x2d, 0x85, 0x35, 0xf9, 0x04, 0x0a, - 0xec, 0xff, 0x68, 0x0b, 0x34, 0xa7, 0x1d, 0xf8, 0x2b, 0x98, 0xe2, 0x3b, 0x38, 0x46, 0x98, 0x26, - 0x27, 0x65, 0x77, 0xa4, 0xb1, 0x22, 0x6f, 0x03, 0x30, 0xd3, 0x4c, 0xa8, 0xe3, 0xb3, 0x71, 0x2e, - 0x23, 0xb4, 0xe0, 0x7a, 0x15, 0x71, 0x8c, 0xcc, 0xf6, 0x65, 0xec, 0x57, 0xad, 0xdb, 0xf0, 0xd8, - 0xdc, 0x38, 0x87, 0xb4, 0xb8, 0x2f, 0x43, 0xda, 0x80, 0xc3, 0x55, 0xe9, 0x50, 0xd0, 0xcd, 0x3f, - 0x33, 0x60, 0x2e, 0xad, 0x93, 0x4e, 0x48, 0x1b, 0x6a, 0x26, 0x62, 0x8e, 0xd0, 0x31, 0xc8, 0x63, - 0x8e, 0xa2, 0x48, 0xa3, 0x05, 0x18, 0xb9, 0xeb, 0xb6, 0x1b, 0xf2, 0x5c, 0x06, 0xd7, 0xe1, 0xfb, - 0x0c, 0x60, 0x71, 0x38, 0x43, 0xe0, 0x17, 0x7f, 0xd8, 0x42, 0x3d, 0xc2, 0x11, 0xf0, 0x9e, 0x8f, - 0xc5, 0xe1, 0x0c, 0x81, 0xad, 0xf7, 0x72, 0x7d, 0x42, 0x04, 0x66, 0x06, 0x04, 0x16, 0x87, 0x93, - 0x2b, 0x30, 0xb6, 0xd1, 0x5e, 0xa3, 0xce, 0x03, 0x2a, 0x0e, 0xfc, 0xd1, 0x91, 0xe9, 0xb5, 0xed, - 0x26, 0x83, 0x59, 0xb2, 0xd0, 0xfc, 0xa9, 0x01, 0x33, 0x3d, 0xe3, 0x73, 0x72, 0x66, 0xd4, 0xc1, - 0xd1, 0x15, 0xc3, 0xb4, 0x8f, 0x57, 0x3f, 0x97, 0x5e, 0x7d, 0xf3, 0x0f, 0x72, 0x70, 0xbe, 0xcf, - 0x72, 0x19, 0x47, 0x46, 0x19, 0x27, 0x46, 0x46, 0x7d, 0x93, 0x2d, 0x4f, 0x8e, 0xdb, 0x0a, 0xb6, - 0xbc, 0xb8, 0xc6, 0xf1, 0x21, 0x32, 0x96, 0xc9, 0xc4, 0x85, 0x2f, 0x0a, 0xbb, 0xe0, 0x42, 0x1d, - 0x29, 0xec, 0xd0, 0xeb, 0x39, 0x82, 0xd2, 0x99, 0xf5, 0xc4, 0x26, 0x65, 0xff, 0x82, 0xc4, 0x26, - 0xe9, 0x11, 0x01, 0xb9, 0xa7, 0x1a, 0x11, 0x90, 0x7e, 0xe6, 0x36, 0xf2, 0x24, 0x67, 0x97, 0x65, - 0x98, 0xac, 0x51, 0xc7, 0xaf, 0x1f, 0x96, 0x02, 0x3e, 0x48, 0x3c, 0xed, 0x3b, 0xae, 0x05, 0x01, - 0x16, 0xd8, 0x4e, 0xd0, 0x3b, 0x16, 0x1a, 0x8d, 0xf9, 0xd3, 0x8c, 0x1e, 0x52, 0xf5, 0x17, 0x51, - 0x5e, 0x5e, 0x83, 0x91, 0xdd, 0x43, 0xea, 0x4b, 0xeb, 0x1c, 0x2b, 0xf2, 0x90, 0x01, 0xd4, 0x8a, - 0x20, 0x06, 0x59, 0x86, 0xa9, 0x4d, 0xde, 0x7f, 0xb2, 0x53, 0x72, 0xb1, 0xdd, 0xd7, 0x11, 0x2b, - 0x64, 0x4a, 0xaf, 0x24, 0xa8, 0xcc, 0xef, 0x41, 0x41, 0xad, 0x34, 0x2a, 0x16, 0xf6, 0x5b, 0xcc, - 0x6c, 0xae, 0x58, 0x18, 0xc0, 0xe2, 0xf0, 0x13, 0xb3, 0x1e, 0xc7, 0xbd, 0x99, 0x3d, 0xa9, 0x37, - 0xd9, 0xc7, 0x51, 0x6e, 0x95, 0x8f, 0xe3, 0x6f, 0xf5, 0xe3, 0x21, 0x03, 0x58, 0x1c, 0xfe, 0x54, - 0x3f, 0xfe, 0x5f, 0x19, 0x22, 0x55, 0xd1, 0x5b, 0x30, 0x1e, 0x1f, 0x84, 0xc7, 0xb9, 0xe5, 0x66, - 0xe5, 0xa1, 0x4e, 0xa0, 0x07, 0xd6, 0x09, 0x20, 0xfb, 0xd4, 0x0e, 0xf5, 0xf7, 0xb4, 0xf8, 0xcb, - 0x07, 0x0c, 0xa0, 0x7e, 0x0a, 0x31, 0x4e, 0x33, 0xae, 0x37, 0x60, 0xac, 0x24, 0x1c, 0x32, 0x7c, - 0x40, 0x79, 0x8c, 0x69, 0x8f, 0xf7, 0x45, 0x62, 0x99, 0x3f, 0x37, 0xe0, 0x6c, 0xaa, 0x29, 0xc6, - 0xbe, 0xca, 0x6d, 0x3e, 0x45, 0xac, 0x93, 0x06, 0x1f, 0xc7, 0x38, 0x4d, 0x2c, 0xe9, 0xf0, 0x6d, - 0x31, 0x5f, 0x84, 0xf1, 0xc8, 0x11, 0x40, 0xe6, 0xe4, 0xd0, 0xa1, 0x6b, 0x5f, 0xee, 0x27, 0xff, - 0xdc, 0x80, 0x51, 0x56, 0x85, 0x67, 0xf6, 0x82, 0x62, 0xfa, 0x41, 0x0f, 0x6b, 0xd2, 0x50, 0xd7, - 0x12, 0x7f, 0x31, 0x0a, 0x10, 0x23, 0x93, 0x3d, 0x98, 0xda, 0x58, 0xad, 0x94, 0x57, 0x1b, 0xb4, - 0x1d, 0x62, 0xf8, 0x44, 0x22, 0x43, 0x53, 0x94, 0x89, 0x9b, 0x23, 0x1c, 0xc5, 0x3a, 0xc6, 0x73, - 0x1b, 0x75, 0xdb, 0x8d, 0xe8, 0xb4, 0x0c, 0x5d, 0x1a, 0x47, 0xf6, 0x8d, 0x5a, 0xe9, 0xde, 0x9a, - 0xf2, 0x8d, 0xcc, 0x90, 0xdf, 0x08, 0x9c, 0x56, 0xb3, 0xcf, 0x37, 0x74, 0x8e, 0xe4, 0x10, 0x8a, - 0x77, 0x70, 0x15, 0x53, 0xbe, 0x92, 0x1d, 0xfc, 0x95, 0x97, 0xc4, 0x57, 0x9e, 0xe3, 0xcb, 0x5f, - 0xfa, 0x77, 0x7a, 0xb8, 0xc6, 0x92, 0x9b, 0x3b, 0x51, 0x72, 0xff, 0xaa, 0x01, 0xa3, 0x7c, 0x99, - 0x8c, 0x5e, 0x8e, 0x4e, 0x5d, 0x88, 0x77, 0x9f, 0xce, 0x42, 0x5c, 0x44, 0xcd, 0xa5, 0xf9, 0x40, - 0x78, 0x19, 0xa9, 0x24, 0x9e, 0xa1, 0x96, 0xa7, 0x79, 0xb8, 0x37, 0xe0, 0x25, 0x71, 0x44, 0x2e, - 0x7f, 0x81, 0x5a, 0xe5, 0xc2, 0x31, 0xc8, 0x6a, 0x1c, 0x0c, 0x3a, 0x76, 0x62, 0x30, 0xa8, 0x0c, - 0xa0, 0x1d, 0x13, 0xc1, 0xa0, 0x7a, 0x08, 0xe8, 0x1a, 0x8c, 0x8b, 0x10, 0xd3, 0x25, 0xf9, 0x22, - 0xaa, 0xf4, 0xe4, 0x45, 0x70, 0xe5, 0xc1, 0x26, 0x0e, 0xb2, 0xf7, 0xb4, 0xb4, 0xe2, 0x11, 0x22, - 0xd9, 0x80, 0xf1, 0xf8, 0xe6, 0xa5, 0x9e, 0x75, 0x20, 0x82, 0x8b, 0x3b, 0x18, 0x32, 0x4e, 0x2d, - 0xe5, 0xa2, 0x65, 0xcc, 0xc3, 0xfc, 0x91, 0x01, 0xc5, 0xa4, 0xbc, 0xe0, 0x63, 0x8a, 0xf2, 0x82, - 0x6b, 0x14, 0x1a, 0xc6, 0x1f, 0x53, 0x8c, 0x6e, 0xc4, 0xea, 0x8f, 0xf8, 0x29, 0xe8, 0x64, 0x11, - 0xf2, 0x6c, 0xda, 0xb5, 0x13, 0xaf, 0x29, 0x76, 0x05, 0x4c, 0x0d, 0x31, 0x90, 0x78, 0xca, 0xac, - 0xfd, 0xa7, 0x59, 0x98, 0x50, 0x06, 0x8b, 0xbc, 0x06, 0xf9, 0xd5, 0x60, 0xcd, 0xab, 0xdf, 0xa7, - 0x0d, 0x71, 0x72, 0x39, 0xf9, 0xf8, 0x78, 0x61, 0xdc, 0x0d, 0xec, 0x26, 0x02, 0xad, 0xa8, 0x98, - 0x2c, 0xc1, 0x24, 0xff, 0x4b, 0x66, 0xbe, 0xc8, 0xc4, 0xa7, 0x2e, 0x1c, 0x59, 0xe6, 0xbc, 0x50, - 0xcd, 0x04, 0x8d, 0x84, 0x7c, 0x0b, 0x80, 0x03, 0xd8, 0xf8, 0x0e, 0x71, 0xc3, 0x44, 0x4e, 0xe0, - 0xb3, 0xe2, 0x03, 0xa1, 0xab, 0xb6, 0x10, 0x45, 0x41, 0x61, 0x48, 0xbe, 0xcd, 0xaf, 0xa1, 0x4a, - 0xe1, 0x3a, 0x39, 0x7c, 0xd9, 0x94, 0xb1, 0x4e, 0x8c, 0xbf, 0x9d, 0x1e, 0x6e, 0xac, 0xb2, 0x24, - 0x3f, 0x36, 0xe0, 0xa2, 0x45, 0xeb, 0xde, 0x03, 0xea, 0x1f, 0x95, 0x42, 0xc4, 0x52, 0xbf, 0x78, - 0x72, 0x6c, 0xf3, 0x2d, 0xf1, 0xc5, 0x57, 0x7d, 0xc1, 0x05, 0xef, 0x45, 0xb6, 0x3a, 0xa1, 0x3d, - 0xa0, 0x0a, 0x03, 0x3e, 0x69, 0xfe, 0x4f, 0x86, 0x32, 0x05, 0xc8, 0x3a, 0x26, 0x21, 0xe4, 0xc2, - 0x22, 0x3c, 0xdb, 0x91, 0x85, 0x27, 0xe1, 0x16, 0xdd, 0x5f, 0x7a, 0x4e, 0x1c, 0x32, 0xce, 0x46, - 0x22, 0x97, 0x48, 0x4e, 0xc8, 0x81, 0xe4, 0x43, 0xc8, 0xe1, 0x50, 0x9d, 0x9c, 0xa3, 0x59, 0x2e, - 0x35, 0x39, 0x36, 0x46, 0x58, 0x6b, 0xa4, 0x24, 0x5f, 0x12, 0xe1, 0x73, 0x59, 0xed, 0x9d, 0x10, - 0x06, 0x62, 0xf5, 0x88, 0xd6, 0x98, 0x38, 0xc2, 0x5d, 0x91, 0xd6, 0xdf, 0xcb, 0x40, 0x31, 0x39, - 0xf1, 0xc8, 0x07, 0x50, 0x90, 0xb7, 0x68, 0x57, 0x1c, 0x91, 0x50, 0xa3, 0x20, 0x12, 0x5a, 0x08, - 0xb8, 0x7d, 0xe8, 0x68, 0x99, 0xb7, 0x35, 0x02, 0xb6, 0x20, 0x6f, 0x89, 0x8b, 0x53, 0xca, 0x04, - 0x0a, 0xbd, 0xb0, 0x93, 0x78, 0x36, 0x40, 0xa2, 0x91, 0xb7, 0x20, 0xcb, 0xaf, 0x8f, 0xab, 0xe9, - 0x78, 0xef, 0x2d, 0x97, 0xf8, 0xbd, 0x55, 0x1e, 0xd7, 0xa2, 0x9f, 0x40, 0x30, 0x7c, 0xb2, 0xa6, - 0x5c, 0x4c, 0x1e, 0xd5, 0x72, 0xf3, 0x49, 0x70, 0xd4, 0xb8, 0x93, 0x6f, 0x28, 0xab, 0x69, 0xc9, - 0xcd, 0x7f, 0x90, 0x85, 0xf1, 0xe8, 0xfb, 0x84, 0x00, 0xda, 0x1b, 0x22, 0x40, 0x05, 0xff, 0x26, - 0x17, 0x20, 0x2f, 0x4d, 0x0c, 0x11, 0xa4, 0x32, 0x16, 0x08, 0xf3, 0x62, 0x1e, 0xa4, 0x2d, 0xc1, - 0xcd, 0x0b, 0x4b, 0xfe, 0x24, 0x37, 0x21, 0x32, 0x14, 0xfa, 0x59, 0x14, 0x39, 0x36, 0x60, 0x56, - 0x84, 0x46, 0xa6, 0x20, 0xe3, 0xf2, 0x4b, 0x31, 0xe3, 0x56, 0xc6, 0x6d, 0x90, 0x0f, 0x20, 0xef, - 0x34, 0x1a, 0xb4, 0x61, 0x3b, 0xd2, 0x45, 0x3c, 0x48, 0x68, 0xf2, 0x8c, 0x1b, 0xd7, 0xe8, 0x48, - 0x55, 0x0a, 0x49, 0x09, 0xc6, 0x9b, 0x0e, 0x3f, 0xc0, 0x6a, 0x0c, 0xb1, 0x3c, 0xc4, 0x1c, 0xf2, - 0x8c, 0x6c, 0x3b, 0xa0, 0x0d, 0xf2, 0x2a, 0xe4, 0xd8, 0x68, 0x8a, 0xf5, 0x20, 0x4a, 0xb2, 0xbe, - 0xb1, 0xb5, 0xc9, 0x3b, 0x6c, 0xe5, 0x8c, 0x85, 0x08, 0xe4, 0x65, 0xc8, 0x76, 0x17, 0xf7, 0x85, - 0xa6, 0x2f, 0xc6, 0x99, 0x05, 0x22, 0x34, 0x56, 0x4c, 0x6e, 0x41, 0xfe, 0xa1, 0x7e, 0xbf, 0xfc, - 0x6c, 0x62, 0x18, 0x23, 0xfc, 0x08, 0x71, 0x29, 0x0f, 0xa3, 0xfc, 0xde, 0xb3, 0xf9, 0x02, 0x40, - 0xfc, 0xe9, 0xde, 0x58, 0x22, 0xf3, 0x5b, 0x30, 0x1e, 0x7d, 0x92, 0x3c, 0x0f, 0x70, 0x9f, 0x1e, - 0xd9, 0x87, 0x4e, 0xbb, 0x21, 0x9e, 0x03, 0x2d, 0x58, 0xe3, 0xf7, 0xe9, 0xd1, 0x0a, 0x02, 0xc8, - 0x79, 0x18, 0xeb, 0xb0, 0x51, 0x95, 0x8f, 0x5e, 0x58, 0xa3, 0x9d, 0xee, 0x1e, 0x93, 0xd0, 0x79, - 0x18, 0x43, 0x27, 0x8a, 0x98, 0x68, 0x93, 0x96, 0xfc, 0x69, 0xfe, 0x9d, 0x0c, 0xa6, 0x19, 0x52, - 0xea, 0x49, 0x5e, 0x82, 0xc9, 0xba, 0x4f, 0x71, 0x39, 0xc2, 0x17, 0x53, 0xc4, 0x77, 0x0a, 0x31, - 0x70, 0xb5, 0x41, 0xae, 0xc0, 0x74, 0xfc, 0x0a, 0x87, 0x5d, 0xdf, 0x13, 0x19, 0x24, 0x0a, 0xd6, - 0x64, 0x47, 0x3e, 0xc3, 0x51, 0xde, 0xc3, 0xcb, 0x5c, 0x45, 0xf5, 0xce, 0x73, 0x28, 0x5f, 0xd4, - 0x18, 0xb7, 0xa6, 0x15, 0x38, 0x9e, 0xfc, 0x9c, 0x83, 0x51, 0xc7, 0x39, 0xe8, 0xba, 0xfc, 0x62, - 0x49, 0xc1, 0x12, 0xbf, 0xc8, 0xeb, 0x30, 0x13, 0xb8, 0x07, 0x6d, 0x27, 0xec, 0xfa, 0x22, 0xcf, - 0x13, 0xf5, 0x51, 0xa4, 0x26, 0xad, 0x62, 0x54, 0x50, 0xe6, 0x70, 0xf2, 0x26, 0x10, 0xf5, 0x7b, - 0xde, 0xde, 0x77, 0x68, 0x9d, 0x8b, 0x5a, 0xc1, 0x9a, 0x51, 0x4a, 0x36, 0xb0, 0x80, 0xbc, 0x08, - 0x05, 0x9f, 0x06, 0x68, 0x92, 0x61, 0xb7, 0x61, 0x16, 0x3e, 0x6b, 0x42, 0xc2, 0xee, 0xd2, 0x23, - 0x73, 0x09, 0x66, 0x7a, 0xe6, 0x23, 0x79, 0x93, 0x5b, 0xf7, 0x62, 0x7d, 0x2e, 0xf0, 0xcd, 0x0c, - 0xbe, 0xf0, 0xac, 0x2d, 0xcd, 0x02, 0xc9, 0x6c, 0x43, 0x41, 0xd5, 0xaf, 0x27, 0xe4, 0xe6, 0x38, - 0x87, 0x31, 0xe1, 0x5c, 0xf9, 0x8c, 0x3e, 0x3e, 0x5e, 0xc8, 0xb8, 0x0d, 0x8c, 0x04, 0xbf, 0x0a, - 0x79, 0x69, 0x25, 0xa8, 0x4f, 0x57, 0x0a, 0x83, 0xf2, 0xc8, 0x8a, 0x4a, 0xcd, 0x57, 0x61, 0x4c, - 0xa8, 0xd0, 0xc1, 0x0e, 0x2d, 0xf3, 0xfb, 0x19, 0x98, 0xb6, 0x28, 0x9b, 0xe0, 0xe2, 0x51, 0xc8, - 0x2f, 0xd8, 0x7b, 0x24, 0x5a, 0xdb, 0x06, 0xa4, 0xc2, 0xf9, 0x7d, 0x03, 0x66, 0x53, 0x70, 0x3f, - 0x53, 0x82, 0xd3, 0xdb, 0x30, 0x5e, 0x71, 0x9d, 0x66, 0xa9, 0xd1, 0x88, 0x62, 0xdb, 0xd1, 0x1a, - 0x6c, 0xb0, 0xe9, 0xe4, 0x30, 0xa8, 0xba, 0x98, 0x46, 0xa8, 0xe4, 0x9a, 0x10, 0x8a, 0x38, 0xfb, - 0xbc, 0x7c, 0xf1, 0x04, 0x78, 0x9d, 0xe2, 0xf7, 0x4e, 0xf0, 0x3e, 0x34, 0x07, 0xc6, 0xf1, 0x09, - 0xcf, 0xec, 0xd0, 0xa5, 0xdf, 0x87, 0x4e, 0x36, 0x6f, 0xa8, 0x6d, 0xe7, 0x8f, 0x32, 0x70, 0x2e, - 0x9d, 0xf0, 0xb3, 0xe6, 0xaa, 0xc5, 0x3c, 0x44, 0xca, 0xa3, 0x32, 0x98, 0xab, 0x96, 0x27, 0x2d, - 0x42, 0xfc, 0x18, 0x81, 0xec, 0xc3, 0xe4, 0x9a, 0x13, 0x84, 0x2b, 0xd4, 0xf1, 0xc3, 0x3d, 0xea, - 0x84, 0x43, 0x58, 0xb0, 0x2f, 0xcb, 0x17, 0xff, 0x70, 0x51, 0x3b, 0x94, 0x94, 0x09, 0x03, 0x4f, - 0x67, 0x1b, 0x09, 0x4a, 0x6e, 0x08, 0x41, 0xf9, 0x2d, 0x98, 0xae, 0xd1, 0x96, 0xd3, 0x39, 0xf4, - 0x7c, 0x2a, 0x7c, 0xf0, 0xd7, 0x61, 0x32, 0x02, 0xa5, 0x4a, 0x8b, 0x5e, 0xac, 0xe1, 0x2b, 0x1d, - 0x11, 0xab, 0x12, 0xbd, 0xd8, 0xfc, 0x9b, 0x19, 0x38, 0x5f, 0xaa, 0x8b, 0x93, 0x12, 0x51, 0x20, - 0x0f, 0x74, 0x3f, 0xe7, 0x6f, 0x93, 0x1b, 0x30, 0x7e, 0xcf, 0x79, 0xb4, 0x46, 0x9d, 0x80, 0x06, - 0x22, 0x53, 0x20, 0x37, 0xbf, 0x9c, 0x47, 0x76, 0xe4, 0xf6, 0xb2, 0x62, 0x1c, 0x75, 0xb3, 0x99, - 0x7b, 0xc2, 0xcd, 0xa6, 0x09, 0xa3, 0x2b, 0x5e, 0xb3, 0x21, 0x16, 0x27, 0x71, 0xfe, 0x71, 0x88, - 0x10, 0x4b, 0x94, 0x98, 0x7f, 0x66, 0xc0, 0x54, 0x54, 0x63, 0xac, 0xc2, 0xe7, 0xde, 0x25, 0x57, - 0x60, 0x0c, 0x3f, 0x14, 0x3d, 0x77, 0x8a, 0x8b, 0x46, 0x93, 0x81, 0x6c, 0xb7, 0x61, 0xc9, 0x42, - 0xb5, 0x27, 0x46, 0x9e, 0xac, 0x27, 0xcc, 0xff, 0x08, 0x8f, 0x56, 0xd4, 0x56, 0xb2, 0x95, 0x48, - 0xa9, 0x88, 0x31, 0x64, 0x45, 0x32, 0x4f, 0x6d, 0x48, 0xb2, 0x7d, 0x87, 0xe4, 0x07, 0x19, 0x98, - 0x88, 0x2a, 0xfb, 0x05, 0x4b, 0x24, 0x12, 0xb5, 0x6b, 0xa8, 0x8b, 0x22, 0x35, 0x45, 0x57, 0x88, - 0xfb, 0x18, 0x1f, 0xc2, 0xa8, 0x98, 0x4c, 0x46, 0xe2, 0x60, 0x33, 0x31, 0xba, 0x4b, 0x53, 0x82, - 0xf5, 0x28, 0x0e, 0x68, 0x60, 0x09, 0x3a, 0xbc, 0x89, 0xb3, 0x4b, 0xf7, 0xc4, 0x49, 0xdb, 0x33, - 0xbb, 0x46, 0xa5, 0xdf, 0xc4, 0x89, 0x1b, 0x36, 0xd4, 0xea, 0xf4, 0x6f, 0x8d, 0x40, 0x31, 0x49, - 0x72, 0x72, 0xaa, 0x96, 0xcd, 0xee, 0x9e, 0x78, 0xc3, 0x0e, 0x53, 0xb5, 0x74, 0xba, 0x7b, 0x16, - 0x83, 0x91, 0x2b, 0x90, 0xdb, 0xf4, 0xdd, 0x07, 0xd8, 0x6a, 0xf1, 0x84, 0x5f, 0xc7, 0x77, 0x1f, - 0xa8, 0x21, 0xe9, 0xac, 0x1c, 0x37, 0xb4, 0x6b, 0x35, 0x8c, 0x6e, 0x46, 0xc3, 0x5a, 0x6c, 0x68, - 0x9b, 0x41, 0x32, 0xeb, 0x98, 0x44, 0x63, 0x4b, 0xe5, 0x12, 0x75, 0x7c, 0x91, 0x56, 0x44, 0xa8, - 0x33, 0x5c, 0x2a, 0xf7, 0x10, 0xcc, 0xf3, 0xe5, 0x5b, 0x2a, 0x12, 0x69, 0x02, 0x51, 0x7e, 0xca, - 0x09, 0x7c, 0xf2, 0x1e, 0x4f, 0xbe, 0x79, 0x3b, 0xa7, 0xb2, 0xb6, 0xd5, 0xd9, 0x9c, 0xc2, 0xf7, - 0x69, 0xfa, 0x08, 0x37, 0xc5, 0x25, 0x53, 0x74, 0x64, 0xe4, 0x4f, 0x64, 0x26, 0xc3, 0xff, 0x81, - 0x5f, 0x42, 0x8d, 0xdc, 0x19, 0x31, 0x13, 0xf2, 0x3e, 0x4c, 0xa8, 0x31, 0xeb, 0x3c, 0xb2, 0xfa, - 0x12, 0xbf, 0xdc, 0xd9, 0x27, 0x65, 0xab, 0x4a, 0x40, 0xf6, 0xe0, 0x7c, 0xd9, 0x6b, 0x07, 0xdd, - 0x16, 0x6d, 0x68, 0x27, 0xc1, 0xab, 0x15, 0xdc, 0x60, 0x8e, 0xf3, 0x58, 0xd6, 0xba, 0x40, 0x11, - 0x21, 0xd2, 0x32, 0x6a, 0x44, 0xdf, 0x80, 0xf4, 0x63, 0x64, 0x7e, 0x49, 0x95, 0x44, 0x61, 0x18, - 0x0c, 0x94, 0x44, 0xf3, 0x67, 0xb8, 0x55, 0x68, 0x79, 0x21, 0x15, 0x16, 0xd2, 0x33, 0xab, 0x2b, - 0x63, 0x37, 0xf5, 0x88, 0x16, 0xf8, 0xa3, 0xb5, 0x8e, 0x63, 0xec, 0xdc, 0x8a, 0x15, 0x1b, 0x77, - 0x58, 0x4b, 0x37, 0xb5, 0x32, 0xad, 0xff, 0x9e, 0x01, 0x67, 0x53, 0x69, 0xc9, 0x75, 0x80, 0xd8, - 0x0e, 0x15, 0xbd, 0xc4, 0x1f, 0x3b, 0x88, 0xa0, 0x96, 0x82, 0x41, 0xbe, 0x99, 0xb4, 0x20, 0x4f, - 0x5e, 0x00, 0xe5, 0xab, 0x83, 0x53, 0xba, 0x05, 0x99, 0x62, 0x37, 0x9a, 0xbf, 0x9f, 0x85, 0x99, - 0x9e, 0x27, 0xf4, 0x4f, 0x88, 0x78, 0xb8, 0x9f, 0x78, 0xcd, 0x98, 0x1f, 0xa9, 0x5c, 0xeb, 0xf7, - 0x80, 0x7f, 0xca, 0xdb, 0xc6, 0xe8, 0x7a, 0x13, 0xef, 0x6c, 0x9c, 0xf0, 0xc4, 0x71, 0x90, 0xfe, - 0x76, 0xf6, 0xeb, 0x7d, 0xbf, 0xf6, 0x14, 0xde, 0xd0, 0xfe, 0x0b, 0xfc, 0x5c, 0xf0, 0xcf, 0x32, - 0x30, 0xdb, 0xd3, 0xe6, 0x67, 0x76, 0xd6, 0x7d, 0xa8, 0xad, 0xa0, 0x2f, 0xf4, 0x1b, 0xd3, 0xa1, - 0x2c, 0x95, 0x5f, 0x65, 0xe1, 0x7c, 0x1f, 0x4a, 0x72, 0x94, 0x14, 0x22, 0x6e, 0xb9, 0xdc, 0x1c, - 0xfc, 0xc1, 0xa7, 0xf2, 0x1c, 0xfb, 0x57, 0x79, 0x00, 0x6d, 0x1d, 0x73, 0xe8, 0x8a, 0x35, 0x9b, - 0x27, 0x2a, 0x8f, 0xa0, 0xc9, 0xc8, 0x59, 0x0e, 0x25, 0x1f, 0xc0, 0x48, 0xe9, 0xbb, 0x5d, 0x9f, - 0x26, 0x6e, 0x63, 0x31, 0x0c, 0x84, 0x2b, 0x57, 0xd7, 0xd8, 0x4f, 0xed, 0xea, 0x1a, 0x03, 0x90, - 0xaf, 0xf0, 0xe7, 0xd7, 0x73, 0x9a, 0x1b, 0x1d, 0xc9, 0x77, 0x6b, 0x71, 0xe2, 0x89, 0xde, 0x37, - 0xd8, 0x19, 0xe1, 0x9d, 0xf2, 0x66, 0xe2, 0xd1, 0x77, 0x8c, 0xe9, 0x2d, 0x6f, 0xc6, 0x84, 0x07, - 0x75, 0xf5, 0x35, 0x53, 0x46, 0xf1, 0xf9, 0x89, 0xfd, 0xbf, 0x9d, 0xe1, 0x51, 0xbf, 0xbc, 0x61, - 0x1f, 0x40, 0x41, 0x86, 0x26, 0x28, 0x6a, 0x0a, 0x95, 0x4a, 0x74, 0x03, 0x3d, 0x71, 0xb2, 0xa5, - 0x11, 0xc8, 0x14, 0x2e, 0xec, 0x37, 0x46, 0xc7, 0xa9, 0x07, 0x53, 0x11, 0x07, 0x8c, 0xa6, 0x4b, - 0xa6, 0x70, 0x89, 0x48, 0xc8, 0x2d, 0xc8, 0x6f, 0xd1, 0xb6, 0xd3, 0x0e, 0xa3, 0x4d, 0x14, 0x06, - 0x52, 0x84, 0x08, 0xd3, 0x57, 0xdc, 0x08, 0x91, 0x54, 0x61, 0xaa, 0xd6, 0xdd, 0x8b, 0xde, 0x25, - 0x5f, 0xad, 0x28, 0x2f, 0xe5, 0x5d, 0x08, 0x94, 0x92, 0xc4, 0xc3, 0x53, 0x3a, 0x91, 0xf9, 0x33, - 0x03, 0xc6, 0xc4, 0x40, 0x2a, 0xcf, 0xb6, 0x18, 0x43, 0x3c, 0xdb, 0x72, 0x1b, 0xc6, 0xc5, 0xbb, - 0x88, 0xfa, 0x93, 0x53, 0xe2, 0x09, 0xc5, 0xc4, 0x93, 0x53, 0x11, 0x6a, 0x94, 0x64, 0x2c, 0x3b, - 0x38, 0xc9, 0x98, 0xf9, 0xb7, 0x45, 0xcd, 0xee, 0x94, 0x37, 0xc9, 0x22, 0xe4, 0xd7, 0xbc, 0xba, - 0xa3, 0xac, 0x73, 0xa8, 0x76, 0x9a, 0x02, 0xa6, 0x76, 0x90, 0xc4, 0xd3, 0x9f, 0xd2, 0xca, 0x0c, - 0xff, 0x94, 0xd6, 0xb0, 0xf5, 0xa3, 0x29, 0x4a, 0x62, 0xe7, 0x16, 0xbe, 0x59, 0xf9, 0x11, 0x90, - 0x9e, 0x22, 0xa9, 0x29, 0x2e, 0xf6, 0xd3, 0x14, 0x3b, 0xb7, 0xac, 0x14, 0x2a, 0xf4, 0xc5, 0xc5, - 0xe0, 0x1a, 0xf5, 0x1f, 0x3c, 0xc3, 0x5a, 0x3a, 0xdd, 0x17, 0x97, 0x6c, 0xde, 0x50, 0x4a, 0xfa, - 0x9f, 0x66, 0xe0, 0x5c, 0x3a, 0xa1, 0xda, 0x16, 0x63, 0x40, 0x5b, 0xae, 0x42, 0x7e, 0xc5, 0x0b, - 0x42, 0xe5, 0x30, 0x1b, 0x5d, 0x06, 0x87, 0x02, 0x66, 0x45, 0xa5, 0xe4, 0x25, 0xb6, 0xd1, 0x0f, - 0xe2, 0xe9, 0x89, 0xfc, 0x30, 0xd6, 0xd5, 0x6d, 0x58, 0xa2, 0x48, 0x7b, 0x7b, 0x39, 0xd7, 0xff, - 0xed, 0xe5, 0x33, 0x27, 0xbe, 0xbd, 0x5c, 0x82, 0x31, 0x31, 0xfa, 0x09, 0x77, 0x73, 0x8a, 0xc8, - 0xe8, 0x09, 0x2e, 0x24, 0x1d, 0xd3, 0x28, 0xe8, 0x38, 0x5c, 0xad, 0xc8, 0xa8, 0x3f, 0xd4, 0x28, - 0xdc, 0xb1, 0xa8, 0x67, 0xd4, 0x88, 0x10, 0xcd, 0xef, 0x67, 0x00, 0x76, 0xe9, 0xde, 0xb3, 0x9d, - 0xf2, 0xf4, 0x2b, 0x9a, 0x84, 0x29, 0x67, 0x65, 0xc3, 0x67, 0x3c, 0xdd, 0xc0, 0x33, 0xab, 0xe1, - 0xf3, 0x9d, 0x46, 0x0f, 0xff, 0x66, 0xd2, 0x1f, 0xfe, 0x35, 0xf7, 0x60, 0xee, 0x0e, 0x0d, 0xe3, - 0x0d, 0x91, 0x74, 0x57, 0x0e, 0x66, 0xfb, 0x06, 0x8c, 0x0b, 0x7c, 0xfd, 0x25, 0x33, 0x19, 0x3e, - 0xee, 0x36, 0xac, 0x18, 0x81, 0x69, 0xa3, 0x0a, 0x6d, 0xd2, 0x90, 0x7e, 0xbe, 0x9f, 0xa9, 0x01, - 0xe1, 0x4d, 0xe1, 0xef, 0xc1, 0x0e, 0xf5, 0x85, 0x13, 0xfb, 0x67, 0x07, 0xce, 0x46, 0x75, 0x7f, - 0x9a, 0x7c, 0x6f, 0xb0, 0x2d, 0xa5, 0xc8, 0x30, 0x11, 0x73, 0x1c, 0x70, 0x5e, 0xf5, 0x08, 0x2e, - 0x4a, 0x82, 0x5d, 0x37, 0x3a, 0xf4, 0x1f, 0x8a, 0x96, 0xbc, 0x0b, 0x13, 0x0a, 0x8d, 0x48, 0xbe, - 0x83, 0x81, 0x35, 0x0f, 0xdd, 0xf0, 0xd0, 0x0e, 0x38, 0x5c, 0x0d, 0xac, 0x51, 0xd0, 0xcd, 0x6f, - 0xc0, 0x73, 0x51, 0x88, 0x64, 0xca, 0xa7, 0x13, 0xcc, 0x8d, 0xd3, 0x31, 0x5f, 0x8f, 0x9b, 0xb5, - 0xda, 0x8e, 0x6e, 0x8b, 0x49, 0xde, 0x44, 0x6d, 0x96, 0x68, 0xcc, 0x25, 0x25, 0x15, 0xb4, 0xd8, - 0x92, 0xc4, 0x00, 0xf3, 0x1d, 0xa5, 0xb2, 0x29, 0x0c, 0x35, 0x62, 0x23, 0x49, 0xfc, 0xfd, 0x0c, - 0x4c, 0x6f, 0xac, 0x56, 0xca, 0xd1, 0x89, 0xe5, 0x17, 0x2c, 0x1f, 0xab, 0xd6, 0xb6, 0xfe, 0xfa, - 0xc6, 0xdc, 0x86, 0xd9, 0x44, 0x37, 0xa0, 0xe9, 0xf0, 0x3e, 0x0f, 0x65, 0x8c, 0xc0, 0xd2, 0x6c, - 0x38, 0x97, 0xc6, 0x7e, 0xe7, 0x96, 0x95, 0xc0, 0x36, 0xff, 0x30, 0x9f, 0xe0, 0x2b, 0x54, 0xd8, - 0x1b, 0x30, 0xbe, 0x1a, 0x04, 0x5d, 0xea, 0x6f, 0x5b, 0x6b, 0xaa, 0xab, 0xc0, 0x45, 0xa0, 0xdd, - 0xf5, 0x9b, 0x56, 0x8c, 0x40, 0x5e, 0x83, 0xbc, 0xc8, 0x6a, 0x20, 0x75, 0x02, 0x46, 0x66, 0x45, - 0x49, 0x11, 0xac, 0xa8, 0x98, 0xbc, 0x05, 0x05, 0xfe, 0x37, 0x97, 0x36, 0xd1, 0xe1, 0x78, 0x2c, - 0x22, 0xd0, 0xb9, 0x74, 0x5a, 0x1a, 0x1a, 0xb9, 0x06, 0xd9, 0x52, 0xd9, 0x52, 0x1f, 0x30, 0x72, - 0xea, 0x3e, 0x7f, 0xc8, 0x4c, 0xdf, 0x44, 0x94, 0x2d, 0x66, 0xfd, 0xe1, 0x1b, 0x9b, 0x0d, 0x2a, - 0x9f, 0x97, 0x45, 0x09, 0xe8, 0x08, 0x58, 0x62, 0x31, 0x43, 0x18, 0xb9, 0x01, 0x63, 0x15, 0x37, - 0xe8, 0x34, 0x9d, 0x23, 0x91, 0x54, 0x91, 0x67, 0x69, 0xe3, 0x20, 0x55, 0x66, 0x04, 0x16, 0x79, - 0x0d, 0x46, 0x6a, 0x75, 0x0f, 0x9f, 0x9b, 0x8d, 0x22, 0x22, 0x03, 0x06, 0xd0, 0x72, 0x99, 0x31, - 0x00, 0x26, 0xcd, 0xe1, 0x77, 0xff, 0xc7, 0x95, 0xa4, 0x39, 0xc9, 0x3b, 0xff, 0x02, 0xa7, 0x37, - 0xf6, 0x1d, 0x9e, 0x66, 0xec, 0xfb, 0x1e, 0x9c, 0xbf, 0x83, 0xde, 0x1b, 0x66, 0x01, 0xb9, 0x75, - 0x2a, 0xec, 0xec, 0x6d, 0x6b, 0x55, 0xe4, 0x3b, 0x40, 0x6f, 0x1e, 0x77, 0xf0, 0xd8, 0x01, 0xc7, - 0x91, 0xaf, 0x9c, 0x27, 0x1e, 0x29, 0xec, 0xc7, 0x88, 0x7c, 0x1d, 0xe6, 0xd2, 0x8a, 0x44, 0xe6, - 0x03, 0xbc, 0xcf, 0x95, 0xfe, 0x01, 0xf5, 0x42, 0x55, 0x1a, 0x07, 0xb2, 0x06, 0x45, 0x0e, 0x2f, - 0x35, 0x5a, 0x6e, 0xbb, 0xda, 0x72, 0xdc, 0x26, 0xe6, 0x41, 0x10, 0xc9, 0x2c, 0x04, 0x57, 0x87, - 0x15, 0xda, 0x94, 0x95, 0x6a, 0x41, 0xad, 0x09, 0x4a, 0xf2, 0xd7, 0x0d, 0xb6, 0x9b, 0xe3, 0x97, - 0xde, 0xb7, 0xad, 0xb5, 0x40, 0xdc, 0xbc, 0xeb, 0xf7, 0xf0, 0xe3, 0xd6, 0x53, 0x7a, 0xf8, 0xb1, - 0xe0, 0x8b, 0x6f, 0xe2, 0x2c, 0xd2, 0x6a, 0x80, 0x49, 0xfb, 0x9b, 0x4d, 0xef, 0xe1, 0x76, 0xfb, - 0x01, 0xf5, 0xdd, 0x7d, 0x97, 0x36, 0x78, 0x23, 0xa7, 0x51, 0x83, 0xf3, 0xa4, 0xfd, 0xf8, 0x70, - 0x43, 0x37, 0x42, 0xe8, 0x69, 0x68, 0x2a, 0x07, 0xb6, 0xf1, 0x94, 0x21, 0x96, 0xfc, 0xe6, 0x41, - 0x31, 0xde, 0x78, 0xca, 0x78, 0x4c, 0x1b, 0xc5, 0x48, 0x15, 0x1e, 0x8d, 0x44, 0xc4, 0x73, 0xfd, - 0x0f, 0x79, 0xae, 0x91, 0x4b, 0xdd, 0xf0, 0x50, 0xea, 0xf0, 0xc5, 0xb4, 0x30, 0x51, 0x7e, 0x9c, - 0xad, 0x84, 0x89, 0xea, 0xc1, 0xa1, 0x32, 0xec, 0x24, 0x93, 0x1a, 0x76, 0xf2, 0x06, 0x8c, 0xe3, - 0x7b, 0x3b, 0x51, 0x3c, 0x5e, 0x5e, 0xf8, 0x2a, 0x19, 0x90, 0x67, 0x0c, 0x88, 0x11, 0xc8, 0x0d, - 0x00, 0xcc, 0x1b, 0xc8, 0x17, 0x78, 0x25, 0xad, 0x0b, 0xa6, 0x17, 0x14, 0x27, 0x04, 0x0a, 0x0a, - 0xb2, 0xaf, 0x59, 0xcb, 0xea, 0x91, 0x02, 0x67, 0x1f, 0xf8, 0xfb, 0x02, 0x3d, 0x46, 0x60, 0xcd, - 0x53, 0x86, 0x49, 0x28, 0x95, 0x62, 0xcf, 0x58, 0xaa, 0x48, 0x78, 0x5a, 0x2f, 0x83, 0x8f, 0x50, - 0xa7, 0x14, 0xc4, 0x69, 0x7d, 0x14, 0xa8, 0x64, 0xc5, 0x08, 0xe4, 0x2b, 0x30, 0x56, 0xa6, 0x7e, - 0xb8, 0xb5, 0xb5, 0x26, 0xde, 0xcc, 0x64, 0xfb, 0xf2, 0x3c, 0xa6, 0x9c, 0x08, 0xc3, 0xe6, 0xa7, - 0xc7, 0x0b, 0x93, 0xa1, 0xdb, 0xa2, 0xd7, 0x23, 0x17, 0xbd, 0xc4, 0x26, 0x4b, 0x50, 0xe4, 0x11, - 0x95, 0xb1, 0x21, 0x87, 0x6a, 0x26, 0x2f, 0xde, 0x6b, 0xe7, 0x69, 0x16, 0x1e, 0xd2, 0xbd, 0x28, - 0xe1, 0x46, 0x0f, 0x3e, 0xa9, 0xca, 0xe4, 0x36, 0x6a, 0x23, 0x21, 0xf6, 0x2c, 0x08, 0xc5, 0xac, - 0xb5, 0xb5, 0x97, 0x82, 0x94, 0x60, 0xb2, 0xec, 0xb5, 0x3a, 0x4e, 0xe8, 0x62, 0x5a, 0xc2, 0x23, - 0xa1, 0x51, 0xd0, 0x3b, 0x52, 0x57, 0x0b, 0xf4, 0xe7, 0x73, 0x94, 0x02, 0xb2, 0x0c, 0x53, 0x96, - 0xd7, 0x65, 0x83, 0x24, 0xb7, 0x34, 0x05, 0xe5, 0x41, 0x73, 0x56, 0xc2, 0x74, 0x9c, 0xd8, 0xbf, - 0x68, 0x37, 0x52, 0x35, 0x2a, 0xb2, 0x9e, 0xe2, 0x5b, 0x56, 0x35, 0x85, 0x9a, 0x76, 0xa3, 0x87, - 0x59, 0x8a, 0x5b, 0xfa, 0x16, 0x4c, 0xd4, 0x6a, 0x1b, 0x5b, 0x34, 0x08, 0x97, 0x9b, 0xde, 0x43, - 0x54, 0x14, 0x79, 0x91, 0x22, 0x2c, 0xf0, 0xec, 0x90, 0x06, 0xa1, 0xbd, 0xdf, 0xf4, 0x1e, 0x5a, - 0x2a, 0x16, 0xf9, 0x4d, 0xe5, 0x3d, 0x21, 0x5c, 0xf9, 0xa7, 0x4f, 0x5c, 0xf9, 0x13, 0x6f, 0x0d, - 0xb1, 0xf5, 0x3f, 0xf5, 0xad, 0x21, 0x86, 0x8e, 0xc1, 0xa5, 0x6c, 0x33, 0x56, 0x6a, 0x34, 0x7c, - 0x1a, 0x04, 0x62, 0x46, 0x2b, 0xaf, 0xa5, 0x39, 0xbc, 0x40, 0x0b, 0x2e, 0x55, 0x08, 0xc8, 0x0f, - 0x0c, 0x38, 0xab, 0xc6, 0xa7, 0xe1, 0x64, 0xc1, 0xc7, 0xdc, 0x67, 0xb0, 0xa6, 0x6f, 0x5e, 0x97, - 0x1a, 0xed, 0xba, 0x82, 0x76, 0xfd, 0xc1, 0xcd, 0xeb, 0xca, 0xbb, 0x20, 0x35, 0x49, 0x84, 0x0f, - 0x2b, 0x2e, 0xa4, 0xf2, 0x53, 0xb5, 0x93, 0x93, 0x42, 0x8a, 0x56, 0x5e, 0xad, 0x74, 0x6f, 0x2d, - 0x36, 0x55, 0xbe, 0x58, 0x91, 0x5f, 0x5a, 0xdb, 0x06, 0x44, 0x7e, 0x6d, 0xc3, 0x6c, 0xa2, 0x1b, - 0xa4, 0x95, 0xa7, 0x81, 0x93, 0x56, 0x5e, 0x82, 0xc6, 0x4a, 0x60, 0x9b, 0xff, 0x70, 0x2c, 0xc1, - 0x57, 0x9c, 0xf6, 0x9a, 0x30, 0xca, 0x8d, 0x38, 0x35, 0x01, 0x3e, 0x37, 0xf1, 0x2c, 0x51, 0x42, - 0x2e, 0x40, 0xb6, 0x56, 0xdb, 0x50, 0x9f, 0xe7, 0x08, 0x02, 0xcf, 0x62, 0x30, 0x36, 0x42, 0x78, - 0x90, 0xab, 0x64, 0xb9, 0x60, 0x1a, 0xcb, 0x42, 0x28, 0xeb, 0x6f, 0x69, 0x52, 0xe5, 0xe2, 0xfe, - 0x16, 0x26, 0x55, 0x6c, 0x48, 0x95, 0x61, 0xbe, 0x14, 0x04, 0xd4, 0xe7, 0x6f, 0xe4, 0xe1, 0xf9, - 0xa0, 0x2f, 0x96, 0x7d, 0xa1, 0x98, 0xf1, 0xa3, 0x4e, 0x3d, 0xb0, 0xfa, 0x22, 0x92, 0xab, 0x90, - 0x2f, 0x75, 0x1b, 0x2e, 0x6d, 0xd7, 0xb5, 0x7b, 0xb6, 0x8e, 0x80, 0x59, 0x51, 0x29, 0xf9, 0x18, - 0xce, 0x0a, 0x22, 0x69, 0xfb, 0x89, 0x1e, 0x18, 0x8b, 0x67, 0x8f, 0x34, 0x4b, 0xa4, 0xc5, 0x68, - 0x8b, 0x2e, 0x49, 0xa7, 0x24, 0x25, 0x28, 0x56, 0x31, 0xd2, 0xb1, 0x42, 0xb9, 0xab, 0xd4, 0xf3, - 0xc5, 0xeb, 0x54, 0x68, 0x44, 0xf2, 0x28, 0x48, 0xbb, 0x11, 0x15, 0x5a, 0x3d, 0xe8, 0xe4, 0x2e, - 0xcc, 0x26, 0x61, 0x4c, 0x07, 0x73, 0x7b, 0x11, 0xaf, 0x59, 0xf7, 0x70, 0x41, 0x2d, 0x9c, 0x46, - 0x45, 0xf6, 0x60, 0xa6, 0x14, 0x86, 0xbe, 0xbb, 0xd7, 0x0d, 0x69, 0xc2, 0x8a, 0x94, 0xa1, 0x02, - 0x51, 0xb9, 0xb4, 0x24, 0x9f, 0x13, 0xc2, 0x38, 0xeb, 0x44, 0x94, 0x91, 0x35, 0x69, 0xf5, 0xb2, - 0x23, 0x0d, 0x98, 0xaa, 0xb9, 0x07, 0x6d, 0xb7, 0x7d, 0x70, 0x97, 0x1e, 0x6d, 0x3a, 0xae, 0x2f, - 0xb2, 0x32, 0xc8, 0x90, 0x8c, 0x52, 0x70, 0xd4, 0x6a, 0xd1, 0xd0, 0xc7, 0xd5, 0x8d, 0x95, 0xe3, - 0xf5, 0x05, 0x83, 0xa9, 0xf1, 0x80, 0xd3, 0x61, 0xa8, 0x6e, 0xc7, 0x71, 0x35, 0x35, 0xae, 0xf3, - 0xd4, 0x2c, 0xf9, 0xc2, 0x90, 0x96, 0x7c, 0x13, 0x66, 0xaa, 0xed, 0xba, 0x7f, 0x84, 0x1e, 0x6b, - 0x59, 0xb9, 0xc9, 0x13, 0x2a, 0x27, 0x9f, 0x35, 0xbe, 0xe4, 0x48, 0x09, 0x4b, 0xab, 0x5e, 0x2f, - 0x63, 0x52, 0x13, 0x4f, 0x71, 0xad, 0x56, 0x36, 0x57, 0xdb, 0x6e, 0xe8, 0x62, 0x2a, 0x7a, 0xbe, - 0x3c, 0xbc, 0x22, 0x78, 0x3e, 0xcf, 0x2d, 0x36, 0xb7, 0xd1, 0xb1, 0x5d, 0x89, 0xd2, 0xf3, 0xd6, - 0x96, 0x4a, 0x6f, 0xfe, 0xdf, 0x63, 0x5c, 0x1b, 0xaa, 0x16, 0xd6, 0x39, 0x25, 0x35, 0xb3, 0x1a, - 0x86, 0x9b, 0xb0, 0xbc, 0x32, 0xa7, 0xb1, 0xbc, 0xb2, 0x27, 0x5b, 0x5e, 0xb9, 0x93, 0x2c, 0xaf, - 0x84, 0x69, 0x34, 0x72, 0x6a, 0xd3, 0x68, 0xf4, 0x14, 0xa6, 0xd1, 0xd8, 0xa9, 0x4c, 0x23, 0xcd, - 0xc6, 0xcb, 0x9f, 0x64, 0xe3, 0xfd, 0x6b, 0x43, 0xea, 0x59, 0x35, 0xa4, 0xd2, 0x16, 0xd7, 0x53, - 0x19, 0x52, 0xfd, 0xed, 0xa0, 0xe2, 0xff, 0xc7, 0x76, 0xd0, 0x5f, 0x82, 0x62, 0x52, 0x35, 0x9f, - 0x9c, 0x04, 0xe2, 0xa9, 0xdd, 0xd5, 0x66, 0x0b, 0x47, 0x52, 0x35, 0xb2, 0xad, 0xd5, 0xa6, 0xef, - 0x3e, 0x70, 0x42, 0x1a, 0xbf, 0xde, 0x84, 0x5b, 0xab, 0x0e, 0x87, 0xe2, 0x74, 0x55, 0x50, 0x22, - 0xab, 0x20, 0x93, 0x66, 0x15, 0x98, 0x3f, 0xcc, 0xc0, 0x0c, 0xbf, 0x5e, 0xfa, 0xec, 0x7b, 0xf4, - 0xde, 0xd7, 0x6c, 0x3d, 0x19, 0xb8, 0x93, 0x68, 0xdd, 0x00, 0x9f, 0xde, 0xb7, 0xe0, 0x6c, 0x4f, - 0x57, 0xa0, 0xbd, 0x57, 0x91, 0x17, 0x7b, 0x7b, 0x2c, 0xbe, 0xf9, 0xf4, 0x8f, 0xec, 0xdc, 0xb2, - 0x7a, 0x28, 0xcc, 0x3f, 0xcc, 0xf6, 0xf0, 0x17, 0xde, 0x3d, 0xd5, 0x5f, 0x67, 0x9c, 0xce, 0x5f, - 0x97, 0x19, 0xce, 0x5f, 0x97, 0x58, 0x16, 0xb2, 0xc3, 0x2c, 0x0b, 0x1f, 0xc3, 0xe4, 0x16, 0x75, - 0x5a, 0xc1, 0x96, 0x27, 0x12, 0x00, 0xf1, 0x94, 0x19, 0xf2, 0xde, 0x2e, 0x2b, 0x93, 0xe6, 0x4a, - 0x14, 0x80, 0x10, 0x32, 0x02, 0xa6, 0xca, 0x78, 0x46, 0x20, 0x4b, 0xe7, 0xa0, 0xda, 0xa0, 0x23, - 0x03, 0x6c, 0xd0, 0x1a, 0x14, 0x04, 0x5d, 0x9c, 0xf9, 0x42, 0x79, 0xc4, 0x9b, 0x3a, 0x2d, 0x84, - 0xcb, 0xaf, 0x47, 0x49, 0x77, 0xa3, 0xaf, 0x73, 0x3b, 0x49, 0x63, 0xc2, 0xba, 0xa0, 0xda, 0x6e, - 0x74, 0x3c, 0xb7, 0x8d, 0x5d, 0x30, 0x16, 0x77, 0x01, 0x15, 0x60, 0xde, 0x05, 0x0a, 0x92, 0xf9, - 0x4f, 0xf2, 0x72, 0x76, 0x7c, 0xbe, 0xde, 0x15, 0xdd, 0x5f, 0x92, 0x3d, 0xa5, 0xbf, 0x24, 0x77, - 0xd2, 0x5a, 0xaa, 0x2d, 0xf0, 0x23, 0xa7, 0x58, 0xe0, 0x47, 0x9f, 0xd8, 0xf7, 0x31, 0x76, 0xca, - 0x25, 0x3b, 0x21, 0xa8, 0xf9, 0x61, 0x04, 0x35, 0x75, 0x99, 0x1f, 0x7f, 0xf2, 0x65, 0x1e, 0x4e, - 0xbd, 0xcc, 0x2b, 0x4f, 0x15, 0x4d, 0x0c, 0xf5, 0x54, 0x91, 0x31, 0xc4, 0x53, 0x45, 0x5f, 0x28, - 0xdb, 0xe1, 0xdb, 0xe9, 0xb6, 0xc3, 0x60, 0x65, 0xfd, 0x8c, 0x5a, 0x0f, 0x3e, 0x76, 0xd0, 0xae, - 0xe3, 0xb3, 0x3d, 0x54, 0x40, 0x6e, 0xc0, 0x98, 0xbc, 0xfe, 0x6e, 0xc4, 0xdb, 0xd1, 0xde, 0x7b, - 0xef, 0x12, 0x8b, 0x6d, 0xb7, 0x24, 0xb1, 0xb8, 0x2a, 0xc6, 0x6f, 0xfa, 0x0a, 0x98, 0x76, 0xd3, - 0x57, 0xc0, 0xcc, 0xbf, 0x9f, 0x93, 0x93, 0x90, 0x6d, 0x07, 0x44, 0x76, 0xff, 0x9e, 0x97, 0xb4, - 0x8d, 0xd3, 0xbf, 0xa4, 0xfd, 0x19, 0x72, 0x07, 0x28, 0x49, 0x32, 0xb3, 0x43, 0x24, 0xc9, 0x7c, - 0x5b, 0xcb, 0x30, 0x99, 0x8b, 0x53, 0x9a, 0x31, 0xc1, 0x1c, 0x9c, 0x5b, 0xf2, 0xb6, 0x9a, 0x0a, - 0x72, 0x24, 0xbe, 0x55, 0x87, 0x94, 0x03, 0x92, 0x40, 0x46, 0xc6, 0xd8, 0xe8, 0x69, 0xf2, 0x68, - 0x8c, 0xfd, 0xff, 0x9a, 0x47, 0xa3, 0x0a, 0xa0, 0xa4, 0x7c, 0xe7, 0xde, 0xe9, 0x57, 0x58, 0x37, - 0x9d, 0x9c, 0xee, 0x5d, 0x21, 0x34, 0xff, 0xe5, 0x0c, 0xcc, 0xd4, 0x6a, 0x1b, 0x15, 0xd7, 0x39, - 0x68, 0x7b, 0x41, 0xe8, 0xd6, 0x57, 0xdb, 0xfb, 0x1e, 0xb3, 0x44, 0xa2, 0x09, 0xad, 0xe4, 0x74, - 0x88, 0x27, 0x73, 0x54, 0xcc, 0x2c, 0xdd, 0xaa, 0xef, 0x47, 0x8f, 0xc3, 0xa3, 0xa5, 0x4b, 0x19, - 0xc0, 0xe2, 0x70, 0xb6, 0xd8, 0xd7, 0xba, 0x3c, 0x77, 0x37, 0x3f, 0x30, 0xc0, 0xc5, 0x3e, 0xe0, - 0x20, 0x4b, 0x96, 0x11, 0xda, 0x2b, 0xb0, 0xc2, 0xf8, 0x3b, 0xaf, 0x65, 0xe3, 0x88, 0x8b, 0xb9, - 0xba, 0x12, 0xcb, 0x09, 0xde, 0xab, 0xed, 0x20, 0x5c, 0x3d, 0x5d, 0xea, 0x99, 0x03, 0x47, 0x70, - 0x16, 0xf7, 0xf0, 0xa7, 0xf5, 0xc4, 0x5c, 0x13, 0xc6, 0x85, 0x89, 0x79, 0x60, 0x52, 0xdc, 0x31, - 0xea, 0xd3, 0xcf, 0xa9, 0x5f, 0x20, 0x3f, 0x34, 0xe0, 0xf9, 0xd4, 0x92, 0x68, 0x76, 0x4f, 0x68, - 0x19, 0x51, 0x14, 0xa5, 0x81, 0xf9, 0xce, 0x5f, 0xef, 0xf7, 0x69, 0x3b, 0x45, 0x15, 0x0c, 0xfe, - 0x12, 0xf9, 0x27, 0x06, 0x9c, 0xd7, 0x30, 0x22, 0x75, 0x15, 0xe0, 0xb2, 0xd2, 0x57, 0xae, 0xbf, - 0xf3, 0x74, 0xe4, 0xfa, 0x25, 0xbd, 0x2d, 0xb1, 0x36, 0x55, 0xdb, 0xd0, 0xaf, 0x86, 0xe4, 0x01, - 0xcc, 0x60, 0x91, 0xf4, 0x0a, 0x31, 0x99, 0x15, 0xce, 0xa4, 0xb9, 0xb8, 0xda, 0xe5, 0x6e, 0x10, - 0x7a, 0x2d, 0x4c, 0x20, 0xbc, 0xf8, 0xab, 0xe3, 0x85, 0x49, 0x0d, 0x1d, 0x93, 0xb1, 0x61, 0x1d, - 0x22, 0xd7, 0x92, 0xdb, 0xde, 0xf7, 0xb4, 0xc7, 0xe4, 0x92, 0x9f, 0x20, 0xff, 0x85, 0x01, 0xf3, - 0x0c, 0xca, 0x9b, 0xb1, 0xec, 0x7b, 0xad, 0xa8, 0x5c, 0x1e, 0x53, 0xf6, 0xe9, 0xb6, 0xe6, 0xd3, - 0xe9, 0xb6, 0x57, 0xb0, 0xca, 0x5c, 0x27, 0xd8, 0xfb, 0xbe, 0xd7, 0x8a, 0xab, 0xaf, 0x65, 0x27, - 0xef, 0x57, 0x49, 0xf2, 0x3b, 0x06, 0x5c, 0xd0, 0x36, 0xe6, 0x6a, 0x0a, 0xb2, 0xf9, 0x69, 0xed, - 0x4c, 0x5b, 0x2d, 0x5a, 0xba, 0x2e, 0xe4, 0xff, 0x0a, 0xd6, 0x20, 0x5e, 0x2d, 0xb0, 0x2e, 0x76, - 0x8b, 0x63, 0x29, 0x55, 0xe8, 0xff, 0x15, 0xe2, 0xc2, 0x0c, 0x1e, 0xb2, 0x68, 0xc7, 0xe9, 0x73, - 0xfd, 0x8f, 0xd3, 0xaf, 0x88, 0x4f, 0xbf, 0x80, 0x69, 0x9e, 0xfa, 0x9f, 0xa9, 0xf7, 0x72, 0x25, - 0xbf, 0x0d, 0x17, 0x7a, 0x80, 0xd1, 0x6c, 0x3b, 0xdb, 0x77, 0xb6, 0xbd, 0xfe, 0xf8, 0x78, 0xe1, - 0xd5, 0xb4, 0xaf, 0xa5, 0xcd, 0xb4, 0xfe, 0x5f, 0x20, 0x0e, 0x40, 0x5c, 0x28, 0xd2, 0x9d, 0xa7, - 0x0b, 0xe8, 0xeb, 0x42, 0x3e, 0x14, 0x7c, 0xa6, 0xcb, 0x95, 0x3a, 0xa8, 0x4b, 0x5e, 0x8c, 0x44, - 0x28, 0x14, 0x94, 0x14, 0x57, 0x47, 0x98, 0xf7, 0xbc, 0xef, 0x47, 0x7e, 0x75, 0xbc, 0xa0, 0x61, - 0x33, 0x93, 0x56, 0xcd, 0x9d, 0xa5, 0x9a, 0xb4, 0x1a, 0x22, 0xf9, 0x47, 0x06, 0xcc, 0x31, 0x40, - 0x2c, 0x54, 0xa2, 0x51, 0xf3, 0x83, 0xa4, 0xfe, 0xf0, 0xe9, 0x48, 0xfd, 0x8b, 0x58, 0x47, 0x55, - 0xea, 0x7b, 0xba, 0x24, 0xb5, 0x72, 0x28, 0xed, 0xda, 0x79, 0x9e, 0x26, 0xed, 0x17, 0x86, 0x90, - 0x76, 0x3e, 0x00, 0x27, 0x4b, 0x7b, 0xdf, 0xaf, 0x90, 0x2d, 0x28, 0x08, 0x6b, 0x96, 0x77, 0xd8, - 0x0b, 0x5a, 0x46, 0x1d, 0xb5, 0x88, 0x6f, 0x31, 0x44, 0x06, 0xb0, 0x9e, 0x16, 0x6a, 0x5c, 0x48, - 0x1b, 0x66, 0xf9, 0x6f, 0x7d, 0x6b, 0xbe, 0xd0, 0x77, 0x6b, 0x7e, 0x55, 0xb4, 0xe8, 0xb2, 0xe0, - 0x9f, 0xd8, 0xa1, 0x2b, 0x1f, 0x4a, 0x63, 0x4c, 0x3a, 0x40, 0x34, 0x30, 0x9f, 0xb4, 0x97, 0x07, - 0x6f, 0xc8, 0x5f, 0x15, 0xdf, 0x5c, 0x48, 0x7e, 0x33, 0x39, 0x73, 0x53, 0x78, 0x13, 0x07, 0xa6, - 0x05, 0x94, 0xed, 0x5d, 0x51, 0xc3, 0xbf, 0xa8, 0xdd, 0x5b, 0x4d, 0x94, 0xf2, 0x2c, 0xe4, 0xf2, - 0x4b, 0x78, 0x41, 0x30, 0xa1, 0xd0, 0x93, 0xfc, 0xcc, 0x1f, 0x18, 0x3d, 0xdf, 0x60, 0x7b, 0x64, - 0xfc, 0xa1, 0xa4, 0xde, 0xc0, 0x3d, 0x32, 0xe7, 0x88, 0x7b, 0xf5, 0x18, 0x81, 0xd9, 0x36, 0xea, - 0x35, 0xe4, 0xac, 0x78, 0x64, 0x8c, 0x83, 0xe2, 0xad, 0xdb, 0x82, 0x8c, 0x4a, 0xca, 0xc6, 0x36, - 0x12, 0x46, 0x25, 0x89, 0x58, 0x24, 0xf3, 0x77, 0x32, 0xba, 0x94, 0x90, 0xab, 0x8a, 0x99, 0xad, - 0x5c, 0x84, 0x96, 0x66, 0xb6, 0x62, 0x5c, 0xff, 0x3d, 0x03, 0x66, 0x37, 0xfc, 0x03, 0xa7, 0xed, - 0x7e, 0x97, 0xa7, 0x49, 0xf1, 0xb0, 0x1b, 0xa3, 0x9b, 0x14, 0x9f, 0x6b, 0xba, 0x55, 0x4f, 0xf9, - 0x30, 0x1b, 0x58, 0x1c, 0x61, 0x2b, 0xad, 0x3e, 0x18, 0xe7, 0x89, 0x15, 0x53, 0xb2, 0xde, 0x72, - 0x74, 0x0e, 0x37, 0x7f, 0x94, 0x81, 0x09, 0x45, 0x62, 0xc9, 0x97, 0xa1, 0xa0, 0xf2, 0x51, 0xfd, - 0x2b, 0xea, 0x67, 0x2d, 0x0d, 0x0b, 0x1d, 0x2c, 0xd4, 0x69, 0x69, 0x0e, 0x16, 0x26, 0x97, 0x08, - 0x3d, 0xe5, 0x4e, 0xe4, 0x83, 0x94, 0x9d, 0xc8, 0xa9, 0x72, 0xdd, 0xbf, 0xdb, 0xbb, 0x1f, 0x19, - 0x3e, 0x35, 0xbd, 0xf9, 0x13, 0x03, 0x8a, 0xc9, 0x39, 0xf5, 0xb9, 0xf4, 0xca, 0x29, 0x7c, 0xd1, - 0x7f, 0x2d, 0x03, 0xc5, 0x2d, 0x9f, 0x6d, 0xfc, 0x1b, 0x32, 0x7a, 0xfd, 0x59, 0x0d, 0x09, 0x78, - 0x4f, 0x73, 0x13, 0x3f, 0x17, 0x2d, 0x03, 0x6a, 0xe3, 0x06, 0xdc, 0xd8, 0xce, 0xfd, 0xfc, 0xef, - 0x2e, 0x9c, 0x31, 0x3f, 0x81, 0xb9, 0x64, 0x77, 0xa0, 0xab, 0xb8, 0x04, 0xd3, 0x3a, 0x3c, 0x99, - 0xcc, 0x32, 0x49, 0x65, 0x25, 0xf1, 0xcd, 0x3f, 0xcd, 0x24, 0x79, 0x8b, 0xf0, 0x00, 0xa6, 0x74, - 0xda, 0xce, 0x5e, 0x33, 0xca, 0xb7, 0x27, 0x5e, 0x36, 0x44, 0x90, 0x25, 0xcb, 0x4e, 0x93, 0xd6, - 0x34, 0x8a, 0xc1, 0xce, 0xa6, 0xc7, 0x60, 0x93, 0xdb, 0x89, 0x98, 0x96, 0x5c, 0x7c, 0xab, 0xe6, - 0x21, 0xdd, 0xb3, 0xe3, 0xb8, 0x96, 0x44, 0x28, 0x4b, 0x19, 0xe6, 0xb4, 0x8c, 0x39, 0x92, 0x7e, - 0x24, 0x76, 0x6d, 0x86, 0x58, 0xc0, 0x89, 0x53, 0x91, 0xf1, 0x95, 0x63, 0xaf, 0xc9, 0x76, 0x62, - 0xc2, 0x03, 0xac, 0x3e, 0x00, 0x27, 0xd7, 0x1a, 0xe5, 0x52, 0x46, 0x93, 0xb2, 0x15, 0x5a, 0x7b, - 0x2a, 0x82, 0x23, 0x9a, 0xff, 0xa7, 0xc1, 0xe6, 0x7f, 0xfd, 0xfe, 0x17, 0x2c, 0xe1, 0x2a, 0x6b, - 0xd2, 0x80, 0xe8, 0x95, 0xff, 0xce, 0xe0, 0x29, 0x13, 0x85, 0xf8, 0xbc, 0x0d, 0xa3, 0x5b, 0x8e, - 0x7f, 0x40, 0x43, 0x91, 0xdc, 0x4f, 0xe5, 0xc2, 0x0b, 0xe2, 0xeb, 0xcc, 0x21, 0xfe, 0xb6, 0x04, - 0x81, 0xea, 0xba, 0xca, 0x0c, 0xe5, 0xba, 0x52, 0x1c, 0xa1, 0xd9, 0xa7, 0xe5, 0x08, 0x35, 0xff, - 0x9f, 0x0c, 0x6f, 0x8f, 0xa8, 0xd4, 0xb0, 0x8f, 0xeb, 0x5e, 0x81, 0x1c, 0x93, 0x03, 0xf5, 0x8d, - 0x64, 0x26, 0x2b, 0x2a, 0x1e, 0x2b, 0x67, 0xf3, 0x06, 0xf5, 0xbf, 0x9a, 0xe3, 0x17, 0x97, 0x08, - 0x75, 0xde, 0x20, 0x06, 0x5e, 0x32, 0xf3, 0x1a, 0x54, 0x9d, 0x0e, 0x6d, 0xaf, 0xa1, 0x5f, 0x32, - 0xf3, 0x1a, 0x98, 0xed, 0x29, 0x4a, 0xb5, 0xa7, 0x06, 0x4b, 0xb7, 0xf6, 0x1d, 0x9b, 0xa7, 0x78, - 0x53, 0x57, 0x80, 0x38, 0x2b, 0x5f, 0x15, 0xa6, 0xf4, 0x17, 0x0c, 0x44, 0x14, 0x0d, 0xde, 0x0e, - 0x4c, 0xbc, 0x7e, 0xa0, 0x7a, 0x7c, 0x75, 0x22, 0xb2, 0x04, 0x93, 0xda, 0xd5, 0x7e, 0xf5, 0x81, - 0x7a, 0x3d, 0x31, 0x80, 0xea, 0xf7, 0xd3, 0x48, 0x94, 0x8b, 0x35, 0x5f, 0x82, 0xa2, 0x98, 0x99, - 0x51, 0xba, 0x65, 0x3c, 0x5c, 0x5c, 0xad, 0x58, 0xea, 0x6c, 0xaa, 0xbb, 0x0d, 0xdf, 0x42, 0xa8, - 0xf9, 0x53, 0x03, 0x2e, 0xac, 0xd3, 0xf0, 0xa1, 0xe7, 0xdf, 0xb7, 0x68, 0x10, 0xfa, 0x2e, 0xcf, - 0xde, 0x8c, 0xf2, 0xf8, 0x65, 0xf2, 0xae, 0x7c, 0x96, 0x51, 0x57, 0x90, 0xc9, 0x6f, 0x2c, 0x4d, - 0x0a, 0xa1, 0x1c, 0xc1, 0xc0, 0x0d, 0xf9, 0x1c, 0xe3, 0xdb, 0xe2, 0x39, 0xc6, 0xcc, 0x60, 0xe2, - 0x68, 0x5e, 0x34, 0x68, 0x5b, 0x3e, 0xc3, 0xf8, 0x93, 0x0c, 0x9c, 0x4d, 0xa9, 0xd6, 0xce, 0x97, - 0x9f, 0x51, 0xe5, 0xb0, 0xa4, 0x29, 0x07, 0xf9, 0x5e, 0x6f, 0xdf, 0x8e, 0x4f, 0xd5, 0x15, 0x7f, - 0xcb, 0x80, 0xf3, 0xba, 0xf4, 0x88, 0xe0, 0xaa, 0x9d, 0x5b, 0xe4, 0x1d, 0x18, 0x5d, 0xa1, 0x4e, - 0x83, 0xca, 0xac, 0xa0, 0x67, 0x13, 0x0f, 0x3f, 0xf3, 0x42, 0xce, 0xf6, 0x4f, 0xf9, 0x54, 0x3e, - 0x63, 0x09, 0x12, 0x52, 0x11, 0x95, 0xe3, 0x66, 0xa9, 0x29, 0x6f, 0x74, 0xa5, 0x7d, 0x6a, 0xc0, - 0xd1, 0xec, 0xaf, 0x0c, 0x78, 0x6e, 0x00, 0x0d, 0x1b, 0x38, 0x36, 0xf4, 0xea, 0xc0, 0xe1, 0xc2, - 0x82, 0x50, 0xf2, 0x3e, 0x4c, 0x6f, 0x09, 0xb3, 0x56, 0x0e, 0x47, 0x26, 0x0e, 0xfd, 0x97, 0x16, - 0xaf, 0x2d, 0xc7, 0x25, 0x89, 0xac, 0x5d, 0x35, 0xcc, 0x0e, 0xbc, 0x6a, 0xa8, 0xde, 0xdc, 0xcb, - 0x0d, 0x7b, 0x73, 0xef, 0x93, 0xe4, 0xb3, 0x28, 0x22, 0xe5, 0x46, 0x7c, 0x6f, 0xd1, 0xe8, 0x7f, - 0x6f, 0x51, 0x86, 0x23, 0x64, 0x52, 0xaf, 0x44, 0xfd, 0xc8, 0x80, 0xa2, 0xce, 0xfb, 0x49, 0xc7, - 0xf3, 0x3d, 0x6d, 0x3c, 0x9f, 0x4b, 0x1f, 0xcf, 0xfe, 0x03, 0xd9, 0xf3, 0x04, 0xcc, 0x50, 0x03, - 0x68, 0xc2, 0x68, 0xc5, 0x6b, 0x39, 0x6e, 0x5b, 0x7d, 0x3d, 0xa4, 0x81, 0x10, 0x4b, 0x94, 0x0c, - 0x75, 0xcb, 0xd3, 0xfc, 0xe1, 0x08, 0x5c, 0xb0, 0xe8, 0x81, 0xcb, 0xac, 0xaa, 0xed, 0xc0, 0x6d, - 0x1f, 0x68, 0x17, 0xd6, 0xcc, 0x44, 0x87, 0x8b, 0x8c, 0x50, 0x0c, 0x12, 0xf5, 0xf7, 0x6b, 0x90, - 0x67, 0xaa, 0x5d, 0xe9, 0x73, 0xf4, 0x90, 0xe3, 0xe3, 0x5b, 0x5c, 0x18, 0x64, 0x31, 0xb9, 0x26, - 0x16, 0x1e, 0x25, 0x67, 0x1f, 0x5b, 0x78, 0x3e, 0x3d, 0x5e, 0x80, 0xda, 0x51, 0x10, 0x52, 0x34, - 0xf0, 0xc5, 0xe2, 0x13, 0x59, 0x62, 0xb9, 0x3e, 0x96, 0xd8, 0x3d, 0x98, 0x2b, 0x35, 0xb8, 0x52, - 0x73, 0x9a, 0x9b, 0xbe, 0xdb, 0xae, 0xbb, 0x1d, 0xa7, 0x29, 0x77, 0x17, 0x78, 0x4e, 0xe2, 0x44, - 0xe5, 0x76, 0x27, 0x42, 0xb0, 0x52, 0xc9, 0x58, 0x33, 0x2a, 0xeb, 0x35, 0xfe, 0xb6, 0x12, 0x3f, - 0xfc, 0xc0, 0x66, 0x34, 0xda, 0x01, 0x7f, 0x5c, 0xc9, 0x8a, 0x8a, 0xd1, 0x06, 0xc4, 0xc3, 0xe1, - 0xad, 0xb5, 0x5a, 0x1c, 0x3c, 0xcf, 0x53, 0x0a, 0xf1, 0x03, 0xe4, 0xb0, 0x19, 0xe0, 0x21, 0xb2, - 0x86, 0x17, 0xd3, 0xd5, 0x6a, 0x2b, 0x8c, 0x2e, 0xdf, 0x43, 0x17, 0x04, 0x87, 0x2a, 0x1d, 0xc7, - 0x23, 0x37, 0x00, 0x78, 0xc2, 0x14, 0x14, 0x88, 0xf1, 0xd8, 0x62, 0xf4, 0x11, 0xca, 0x2d, 0x46, - 0x05, 0x85, 0xbc, 0x0b, 0xb3, 0xd5, 0xf2, 0xa2, 0x74, 0x59, 0x55, 0xbc, 0x7a, 0x17, 0x8f, 0xfb, - 0x00, 0xbf, 0x87, 0x63, 0x48, 0xeb, 0x8b, 0x4c, 0x0a, 0xd2, 0xd0, 0xc8, 0x15, 0x18, 0x5b, 0xad, - 0xf0, 0xbe, 0x9f, 0x50, 0xf3, 0x66, 0x8a, 0x63, 0x74, 0x59, 0x48, 0x36, 0x62, 0x93, 0xa6, 0x70, - 0xa2, 0x49, 0x73, 0x61, 0x08, 0x73, 0x86, 0xa7, 0xd7, 0xe4, 0xc9, 0x99, 0xcb, 0x5e, 0x83, 0x06, - 0x3b, 0x37, 0xbf, 0x60, 0xe9, 0x35, 0x95, 0xb6, 0xe1, 0x34, 0xbf, 0x99, 0xaa, 0x12, 0xfe, 0x3d, - 0x4c, 0xaf, 0xd9, 0x83, 0x4b, 0xbe, 0x0a, 0x23, 0xf8, 0x53, 0xd8, 0x07, 0xb3, 0x29, 0x6c, 0x63, - 0xdb, 0xa0, 0xce, 0x9f, 0xc9, 0x41, 0x02, 0xb2, 0x0a, 0x63, 0x22, 0xad, 0xf5, 0x69, 0x92, 0xc4, - 0x89, 0x0c, 0xef, 0x7c, 0x90, 0x04, 0xbd, 0xd9, 0x80, 0x82, 0xfa, 0x41, 0x26, 0x9c, 0x2b, 0x4e, - 0x70, 0x48, 0x1b, 0xec, 0x97, 0xc8, 0xef, 0x8a, 0xc2, 0x79, 0x88, 0x50, 0x9b, 0xd5, 0xc3, 0x52, - 0x50, 0x98, 0x5a, 0x5a, 0x0d, 0xb6, 0x03, 0x51, 0x15, 0xb1, 0x67, 0x73, 0x71, 0xff, 0xdf, 0xb0, - 0x44, 0x91, 0xf9, 0x1b, 0x30, 0xb7, 0xde, 0x6d, 0x36, 0xd9, 0xfe, 0x4d, 0xe6, 0xff, 0x0a, 0x9d, - 0x90, 0x92, 0x25, 0x18, 0xc1, 0x3f, 0xc4, 0x43, 0x89, 0xb3, 0xfa, 0xcb, 0x51, 0x58, 0x84, 0xb1, - 0x37, 0x06, 0x5e, 0x77, 0x0b, 0xf5, 0x97, 0xc7, 0x38, 0xa9, 0xf9, 0xcb, 0xf8, 0xc1, 0xa6, 0x2d, - 0xdf, 0xa9, 0xdf, 0xa7, 0xfe, 0x29, 0x1f, 0xa6, 0xff, 0x48, 0x56, 0x42, 0x57, 0xf9, 0x69, 0x15, - 0x3e, 0xa9, 0x32, 0xe4, 0x5d, 0x98, 0x10, 0x7a, 0x5f, 0x49, 0xd2, 0x80, 0x37, 0x61, 0xe5, 0x5b, - 0x5e, 0x89, 0xc3, 0x64, 0x15, 0x1d, 0x57, 0x33, 0xbd, 0x29, 0x3b, 0x37, 0x3f, 0x8f, 0xd5, 0x4c, - 0xff, 0xc6, 0x00, 0xd1, 0xfd, 0x3e, 0x24, 0xfb, 0x56, 0xc8, 0xee, 0x6d, 0xf5, 0x5a, 0xb6, 0x11, - 0x1b, 0xfe, 0xf1, 0xb5, 0x6c, 0xd5, 0xf0, 0x8f, 0x50, 0xa3, 0x31, 0xc9, 0x9c, 0x30, 0x26, 0xef, - 0xcb, 0x31, 0xc9, 0xf6, 0x17, 0x8c, 0xd9, 0x01, 0xe3, 0x50, 0x8b, 0x67, 0x48, 0x6e, 0xa8, 0xfd, - 0x19, 0xbe, 0xb1, 0x2e, 0x66, 0x48, 0x52, 0xa1, 0x09, 0x4e, 0xea, 0xa6, 0x6f, 0x64, 0x78, 0xa6, - 0x27, 0x44, 0xbf, 0x7c, 0x0d, 0x0a, 0xa5, 0x30, 0x74, 0xea, 0x87, 0xb4, 0x51, 0x61, 0xea, 0x49, - 0xb9, 0x41, 0xea, 0x08, 0xb8, 0xea, 0x2c, 0x57, 0x71, 0x79, 0x46, 0x14, 0x27, 0x10, 0x61, 0x48, - 0x51, 0x46, 0x14, 0x06, 0xd1, 0x33, 0xa2, 0x30, 0x08, 0xdb, 0xe4, 0xae, 0xb6, 0x1f, 0xb8, 0xac, - 0x4f, 0xf2, 0xf1, 0x23, 0x34, 0x2e, 0x07, 0xa9, 0xca, 0x55, 0x60, 0x91, 0xb7, 0x15, 0xb3, 0x70, - 0x3c, 0xde, 0x9f, 0xf1, 0xbd, 0xb3, 0x2d, 0xad, 0x43, 0xd5, 0xe4, 0x8b, 0xec, 0xc4, 0xdb, 0x30, - 0x26, 0x5d, 0x22, 0x10, 0xef, 0xc9, 0x04, 0x65, 0xef, 0x3d, 0x21, 0x89, 0x8c, 0xef, 0x3f, 0x28, - 0x79, 0x6a, 0x27, 0x94, 0xf7, 0x1f, 0x94, 0x3c, 0xb5, 0xda, 0xfb, 0x0f, 0x4a, 0xc6, 0xda, 0x68, - 0x87, 0x5b, 0x38, 0x71, 0x87, 0xbb, 0x03, 0x85, 0x4d, 0xc7, 0x0f, 0x5d, 0x66, 0x2e, 0xb4, 0x43, - 0xfe, 0x82, 0x62, 0xec, 0x80, 0x51, 0x8a, 0x96, 0x5e, 0x90, 0xef, 0x20, 0x74, 0x14, 0x7c, 0x3d, - 0x81, 0x7e, 0x0c, 0x4f, 0x0f, 0x42, 0x9a, 0x7a, 0x92, 0x20, 0xa4, 0x7c, 0xf4, 0xe4, 0xf1, 0x74, - 0x1c, 0xf2, 0x15, 0xbd, 0x63, 0x9c, 0xec, 0x7d, 0xf4, 0x08, 0x7c, 0x13, 0x0a, 0xec, 0x6f, 0x7c, - 0xd5, 0xcd, 0xa5, 0xfc, 0x85, 0xc4, 0x38, 0xeb, 0x94, 0x3e, 0xa1, 0xf9, 0xd3, 0x6f, 0x35, 0x1a, - 0xf2, 0x09, 0x8c, 0x8c, 0x93, 0xde, 0x34, 0x8d, 0x1b, 0xf9, 0x00, 0x0a, 0xea, 0x73, 0x94, 0x78, - 0x79, 0x4b, 0x84, 0x91, 0x35, 0x04, 0xbc, 0x27, 0x29, 0x91, 0x4a, 0xc0, 0x96, 0xf9, 0x52, 0x87, - 0x2b, 0x48, 0xa2, 0x48, 0x7b, 0xa7, 0x47, 0x39, 0x4a, 0x34, 0xf2, 0x21, 0x14, 0x4a, 0x9d, 0x4e, - 0xac, 0x71, 0x66, 0x95, 0x7d, 0x7e, 0xa7, 0x63, 0xa7, 0x6a, 0x1d, 0x8d, 0x22, 0xa9, 0x98, 0xe7, - 0x4e, 0xa7, 0x98, 0xff, 0xcc, 0x80, 0xf3, 0x7d, 0xba, 0x2d, 0x4a, 0xc8, 0x63, 0x0c, 0x4e, 0xc8, - 0xc3, 0xa6, 0x9f, 0xbe, 0x39, 0xc3, 0xe9, 0x27, 0x4c, 0x15, 0xb5, 0xd1, 0xd2, 0x68, 0x49, 0x7f, - 0xce, 0x31, 0xfb, 0xb9, 0x3d, 0xe7, 0x68, 0x1e, 0x1b, 0x30, 0xa1, 0x08, 0x33, 0xb9, 0xac, 0xdc, - 0x01, 0x29, 0xf2, 0x0c, 0x8e, 0x0a, 0x87, 0x0c, 0x57, 0xe7, 0x28, 0x99, 0x99, 0x93, 0x5d, 0x54, - 0xf8, 0xae, 0xb1, 0x92, 0xb4, 0xa8, 0x95, 0xf0, 0x27, 0xe1, 0x3b, 0xc6, 0xdf, 0x02, 0x58, 0x73, - 0x82, 0xb0, 0x54, 0x0f, 0xdd, 0x07, 0x74, 0x08, 0xcd, 0x1d, 0xbf, 0x81, 0xe2, 0xe0, 0x73, 0xf9, - 0x8c, 0xac, 0xe7, 0x0d, 0x94, 0x88, 0xa1, 0xf9, 0xe7, 0x06, 0x4c, 0xac, 0xb6, 0x83, 0xd0, 0x69, - 0x36, 0x71, 0x69, 0xfd, 0x22, 0x65, 0xbb, 0x8d, 0xda, 0x35, 0x60, 0x39, 0x7f, 0x0b, 0xa6, 0x13, - 0x68, 0x6c, 0x4b, 0x58, 0xc3, 0xbb, 0x5c, 0xea, 0x96, 0x90, 0xdf, 0xee, 0xb2, 0x44, 0x89, 0x59, - 0x55, 0xc8, 0x76, 0x6e, 0xe2, 0x31, 0xc0, 0x22, 0x80, 0x2b, 0x41, 0xd2, 0x80, 0x25, 0xc9, 0x9a, - 0xec, 0xdc, 0xb4, 0x14, 0x2c, 0x73, 0x1d, 0x46, 0x6b, 0x9e, 0x1f, 0x2e, 0x1d, 0x71, 0x9b, 0xb1, - 0x42, 0x83, 0xba, 0xea, 0xe7, 0x77, 0xd1, 0xe3, 0x57, 0xb7, 0x44, 0x11, 0xdb, 0x31, 0x2e, 0xbb, - 0xb4, 0xd9, 0x50, 0xe3, 0xaf, 0xf6, 0x19, 0xc0, 0xe2, 0x70, 0x66, 0x57, 0x9f, 0x8b, 0xd3, 0x47, - 0xc6, 0x81, 0x5e, 0x4f, 0x6a, 0x33, 0x95, 0xb5, 0xfe, 0x7d, 0x51, 0x7f, 0x22, 0x46, 0xfb, 0xd2, - 0x80, 0xae, 0xfe, 0x43, 0x03, 0x2e, 0xf6, 0x27, 0x51, 0x63, 0xc7, 0x8c, 0x01, 0xb1, 0x63, 0xaf, - 0x24, 0xfd, 0xd2, 0x88, 0x26, 0xfc, 0xd2, 0xb1, 0x37, 0xba, 0x82, 0xa1, 0x7b, 0xf5, 0xe8, 0x39, - 0xae, 0xcb, 0x03, 0xea, 0x8c, 0x88, 0x7c, 0x98, 0x43, 0xa4, 0xb1, 0x04, 0xad, 0xf9, 0x2f, 0xb2, - 0x70, 0xa1, 0x2f, 0x05, 0x59, 0xd1, 0x9e, 0x34, 0xbf, 0x76, 0xd2, 0x17, 0xae, 0xe3, 0xbf, 0xa9, - 0x8f, 0x9c, 0x6f, 0x44, 0x19, 0x48, 0xf9, 0x33, 0xe7, 0xaf, 0x9f, 0xc8, 0x8b, 0xa3, 0x23, 0x33, - 0xe8, 0x4d, 0x46, 0x8a, 0x51, 0xf7, 0x34, 0x74, 0x5c, 0xf1, 0xa6, 0xb8, 0x8c, 0xba, 0xe7, 0x20, - 0x4b, 0x96, 0xc5, 0x01, 0x7d, 0xb9, 0xf4, 0x80, 0x3e, 0xf3, 0xef, 0x1b, 0x30, 0x1e, 0x55, 0x9b, - 0x5c, 0x84, 0x73, 0x5b, 0x56, 0xa9, 0x5c, 0xb5, 0xb7, 0x3e, 0xd9, 0xac, 0xda, 0xdb, 0xeb, 0xb5, - 0xcd, 0x6a, 0x79, 0x75, 0x79, 0xb5, 0x5a, 0x29, 0x9e, 0x21, 0x33, 0x30, 0xb9, 0xbd, 0x7e, 0x77, - 0x7d, 0x63, 0x77, 0xdd, 0xae, 0x5a, 0xd6, 0x86, 0x55, 0x34, 0xc8, 0x24, 0x8c, 0x5b, 0x4b, 0xa5, - 0xb2, 0xbd, 0xbe, 0x51, 0xa9, 0x16, 0x33, 0xa4, 0x08, 0x85, 0xf2, 0xc6, 0xfa, 0x7a, 0xb5, 0xbc, - 0xb5, 0xba, 0xb3, 0xba, 0xf5, 0x49, 0x31, 0x4b, 0x08, 0x4c, 0x21, 0xc2, 0xa6, 0xb5, 0xba, 0x5e, - 0x5e, 0xdd, 0x2c, 0xad, 0x15, 0x73, 0x0c, 0xc6, 0xf0, 0x15, 0xd8, 0x48, 0xc4, 0xe8, 0xee, 0xf6, - 0x52, 0xb5, 0x38, 0xca, 0x50, 0xd8, 0x5f, 0x0a, 0xca, 0x98, 0xf9, 0x1e, 0x0f, 0xa7, 0xe7, 0x5d, - 0x42, 0xce, 0x01, 0xa9, 0x6d, 0x95, 0xb6, 0xb6, 0x6b, 0x89, 0x4a, 0x4e, 0xc0, 0x58, 0x6d, 0xbb, - 0x5c, 0xae, 0xd6, 0x6a, 0x45, 0x83, 0x00, 0x8c, 0x2e, 0x97, 0x56, 0xd7, 0xaa, 0x95, 0x62, 0xc6, - 0xfc, 0xab, 0x06, 0x14, 0x84, 0x7d, 0x51, 0x6a, 0x52, 0x3f, 0x7c, 0xb2, 0xe9, 0xf2, 0xb6, 0xb6, - 0xc5, 0x88, 0x62, 0x1a, 0x15, 0xfe, 0xac, 0x38, 0x75, 0x92, 0xfc, 0xf7, 0x06, 0x14, 0x93, 0x88, - 0xe4, 0x7d, 0xc8, 0xd7, 0xe8, 0x03, 0xea, 0xbb, 0xe1, 0x91, 0x10, 0xb6, 0x39, 0xe9, 0xfc, 0x46, - 0x1c, 0x51, 0xc6, 0xdd, 0x18, 0x81, 0xf8, 0x65, 0x45, 0x34, 0xc3, 0xce, 0x19, 0x65, 0x87, 0x90, - 0x7d, 0x5a, 0x3b, 0x04, 0xf3, 0x9f, 0x1b, 0x70, 0xfe, 0x0e, 0x0d, 0xd5, 0x36, 0x45, 0x49, 0x92, - 0xbe, 0x34, 0x5c, 0xbb, 0x94, 0x96, 0xcc, 0xc3, 0x18, 0x16, 0xc9, 0x7b, 0x96, 0x96, 0xfc, 0x49, - 0x96, 0x60, 0x54, 0x4b, 0x12, 0x2b, 0xa7, 0x63, 0x9f, 0x6f, 0x5f, 0x57, 0x92, 0x54, 0x5a, 0x82, - 0xf2, 0xe2, 0xdb, 0x30, 0xf1, 0x19, 0x93, 0xbe, 0x5e, 0xfb, 0x00, 0xa6, 0xa5, 0x41, 0xb7, 0xb5, - 0x56, 0xc3, 0x95, 0x7b, 0x1a, 0x26, 0x76, 0xaa, 0xd6, 0xea, 0xf2, 0x27, 0xf6, 0xf2, 0xf6, 0xda, - 0x5a, 0xf1, 0x0c, 0x13, 0x63, 0x01, 0x28, 0x97, 0x8a, 0x06, 0x29, 0x40, 0x7e, 0x75, 0xbd, 0x56, - 0x2d, 0x6f, 0x5b, 0xd5, 0x62, 0xe6, 0xda, 0x22, 0x4c, 0xc5, 0x37, 0xb8, 0x50, 0x88, 0xc7, 0x20, - 0x6b, 0x95, 0x76, 0x8b, 0x67, 0x98, 0xa0, 0x6e, 0xde, 0x2d, 0xd7, 0x6e, 0xde, 0x2c, 0x1a, 0x4c, - 0x82, 0xef, 0x94, 0x37, 0xed, 0xbb, 0xf7, 0x6a, 0xc5, 0xcc, 0xb5, 0x2f, 0xc1, 0x0c, 0x7a, 0x94, - 0xd9, 0xfa, 0x43, 0xdb, 0xd4, 0xc7, 0xcf, 0x16, 0x58, 0xa7, 0x76, 0x1c, 0xdf, 0x09, 0x29, 0xff, - 0xe6, 0xbd, 0x6e, 0x33, 0x74, 0x3b, 0x4d, 0xfa, 0xa8, 0x68, 0x5c, 0x7b, 0x1b, 0xa6, 0x2d, 0xaf, - 0x1b, 0xba, 0xed, 0x83, 0x5a, 0xc8, 0x30, 0x0e, 0x8e, 0xc8, 0x59, 0x98, 0xd9, 0x5e, 0x2f, 0xdd, - 0x5b, 0x5a, 0xbd, 0xb3, 0xbd, 0xb1, 0x5d, 0xb3, 0xef, 0x95, 0xb6, 0xca, 0x2b, 0xc5, 0x33, 0xac, - 0xf6, 0xf7, 0x36, 0x6a, 0x5b, 0xb6, 0x55, 0x2d, 0x57, 0xd7, 0xb7, 0x8a, 0xc6, 0xb5, 0xdf, 0x35, - 0x60, 0x8a, 0x59, 0x2e, 0xe8, 0x1a, 0xdb, 0x46, 0x81, 0xb9, 0x0c, 0x97, 0xb6, 0x6b, 0x55, 0xcb, - 0xde, 0xda, 0xb8, 0x5b, 0x5d, 0xb7, 0xb7, 0x6b, 0xa5, 0x3b, 0x49, 0xad, 0xb0, 0x00, 0xcf, 0x29, - 0x18, 0x56, 0xb5, 0xbc, 0xb1, 0x53, 0xb5, 0xec, 0xcd, 0x52, 0xad, 0xb6, 0xbb, 0x61, 0x55, 0x8a, - 0x06, 0x53, 0x29, 0x29, 0x08, 0xf7, 0x96, 0x4b, 0xc5, 0x4c, 0x4f, 0xd9, 0x7a, 0x75, 0xb7, 0xb4, - 0x66, 0x2f, 0x6d, 0x6c, 0x15, 0xb3, 0xd7, 0x30, 0x0d, 0x28, 0x8e, 0x24, 0xdf, 0xdd, 0xe6, 0x21, - 0xb7, 0xbe, 0xb1, 0x5e, 0xe5, 0x73, 0x7c, 0xb3, 0xba, 0x5e, 0x59, 0x5d, 0xbf, 0xc3, 0xfb, 0xb8, - 0xb4, 0xb9, 0x69, 0x6d, 0xec, 0xb0, 0x59, 0xce, 0x3a, 0xb2, 0x52, 0x5d, 0x67, 0x35, 0xcb, 0x5e, - 0x33, 0x61, 0xa6, 0x4c, 0xfd, 0xb0, 0xfa, 0x28, 0xa4, 0x6d, 0x66, 0x82, 0x60, 0xdf, 0x4d, 0xc2, - 0x78, 0xf5, 0xeb, 0x5b, 0xd5, 0xf5, 0xda, 0xea, 0xc6, 0x7a, 0xf1, 0xcc, 0xb5, 0x4b, 0x09, 0x1c, - 0x39, 0x2c, 0xb5, 0xda, 0x4a, 0xf1, 0xcc, 0xb5, 0x6f, 0x42, 0x41, 0xf3, 0xdc, 0x9c, 0x87, 0x59, - 0xf5, 0xf7, 0x26, 0x6d, 0x37, 0xdc, 0xf6, 0x41, 0xf1, 0x4c, 0xb2, 0xc0, 0xea, 0xb6, 0xdb, 0xac, - 0x00, 0x1b, 0xaf, 0x16, 0x6c, 0x51, 0xbf, 0xe5, 0xb6, 0xd9, 0xac, 0x29, 0x66, 0xae, 0x5d, 0x87, - 0x49, 0x6d, 0x12, 0xb0, 0xef, 0xae, 0x6d, 0x08, 0x71, 0xb8, 0x57, 0xad, 0xac, 0x6e, 0xdf, 0x2b, - 0x8e, 0xb0, 0x66, 0xaf, 0xac, 0xde, 0x59, 0x29, 0xc2, 0xb5, 0x6f, 0xc2, 0x94, 0xb0, 0x5f, 0xef, - 0x2d, 0x97, 0x64, 0x45, 0x37, 0x96, 0x97, 0x85, 0xd6, 0xab, 0xd6, 0xb0, 0x4d, 0x06, 0xb9, 0x04, - 0xf3, 0xe2, 0x87, 0x5d, 0x5a, 0xaf, 0xd8, 0x2b, 0x25, 0xab, 0xb2, 0x5b, 0xb2, 0xaa, 0xf6, 0xdd, - 0xea, 0x27, 0xc5, 0x0c, 0x53, 0x9c, 0x2a, 0xc4, 0xde, 0xda, 0xd8, 0x2e, 0xaf, 0x14, 0xb3, 0x4b, - 0xef, 0xfd, 0xf2, 0x9f, 0xbd, 0x70, 0xe6, 0x97, 0xbf, 0x7e, 0xc1, 0xf8, 0xd3, 0x5f, 0xbf, 0x60, - 0xfc, 0x6f, 0xbf, 0x7e, 0xc1, 0xf8, 0x8d, 0xd7, 0x4f, 0x11, 0x4e, 0xb4, 0x37, 0x8a, 0x0a, 0xe4, - 0xd6, 0xff, 0x1b, 0x00, 0x00, 0xff, 0xff, 0x28, 0xca, 0x17, 0x7c, 0x58, 0xfa, 0x00, 0x00, + 0x51, 0x64, 0x8b, 0x5f, 0x9d, 0xc5, 0x8f, 0xe9, 0x9d, 0x99, 0xcd, 0x49, 0x56, 0x05, 0xc9, 0x1c, + 0x55, 0x55, 0xd6, 0x66, 0x66, 0x49, 0xe2, 0xee, 0x2d, 0xee, 0x16, 0xf6, 0xde, 0x78, 0xb0, 0xbe, + 0x99, 0x5b, 0x7b, 0x6e, 0x77, 0xcf, 0xb8, 0xc3, 0x9d, 0x17, 0xbe, 0x83, 0xcf, 0xbe, 0x5d, 0xac, + 0xf7, 0x7e, 0xd8, 0x87, 0x03, 0x6c, 0x2f, 0x60, 0x2c, 0xc6, 0x36, 0xec, 0x5b, 0xff, 0x32, 0x3c, + 0x36, 0x68, 0xdf, 0xee, 0xe1, 0x7e, 0xe8, 0x97, 0x01, 0x03, 0x36, 0xae, 0xd7, 0x0b, 0x18, 0xf1, + 0x22, 0x22, 0x33, 0x22, 0x2b, 0xab, 0x58, 0x6c, 0xa9, 0xed, 0x55, 0xc3, 0x7f, 0x24, 0xd6, 0x8b, + 0xf7, 0x5e, 0xc6, 0xc7, 0x8b, 0x17, 0x2f, 0x5e, 0xbc, 0x78, 0x01, 0x2f, 0x87, 0xb4, 0x49, 0x3b, + 0x9e, 0x1f, 0xde, 0x6a, 0xd2, 0x43, 0xa7, 0x7e, 0x7c, 0x2b, 0x3c, 0xee, 0xd0, 0x80, 0xff, 0x7b, + 0xb3, 0xe3, 0x7b, 0xa1, 0x47, 0x46, 0xf0, 0xc7, 0xe5, 0xb9, 0x43, 0xef, 0xd0, 0x43, 0xc8, 0x2d, + 0xf6, 0x17, 0x2f, 0xbc, 0xbc, 0x70, 0xe8, 0x79, 0x87, 0x4d, 0x7a, 0x0b, 0x7f, 0xed, 0x77, 0x0f, + 0x6e, 0x85, 0x6e, 0x8b, 0x06, 0xa1, 0xd3, 0xea, 0x08, 0x84, 0x37, 0xa2, 0x0f, 0x38, 0x61, 0xc8, + 0x4a, 0x42, 0xd7, 0x6b, 0xdf, 0x7a, 0x78, 0x5b, 0xfd, 0x29, 0x50, 0xdf, 0x4e, 0xaf, 0xcb, 0x23, + 0xdf, 0xe9, 0x74, 0xa8, 0x1f, 0xff, 0xc1, 0xd1, 0xcd, 0x7f, 0x3f, 0x0b, 0xe3, 0xf7, 0x29, 0xed, + 0x94, 0x9a, 0xee, 0x43, 0x4a, 0x5e, 0x81, 0xdc, 0x86, 0xd3, 0xa2, 0xf3, 0xc6, 0x55, 0xe3, 0xfa, + 0xf8, 0xd2, 0xf4, 0x93, 0x93, 0x85, 0x89, 0x80, 0xfa, 0x0f, 0xa9, 0x6f, 0xb7, 0x9d, 0x16, 0xb5, + 0xb0, 0x90, 0xbc, 0x09, 0xe3, 0xec, 0xff, 0xa0, 0xe3, 0xd4, 0xe9, 0x7c, 0x06, 0x31, 0x27, 0x9f, + 0x9c, 0x2c, 0x8c, 0xb7, 0x25, 0xd0, 0x8a, 0xcb, 0xc9, 0x35, 0x18, 0x5b, 0xa3, 0x4e, 0x40, 0x57, + 0x2b, 0xf3, 0xd9, 0xab, 0xc6, 0xf5, 0xec, 0x52, 0xe1, 0xc9, 0xc9, 0x42, 0xbe, 0xc9, 0x40, 0xb6, + 0xdb, 0xb0, 0x64, 0x21, 0x59, 0x85, 0xb1, 0xea, 0xe3, 0x8e, 0xeb, 0xd3, 0x60, 0x3e, 0x77, 0xd5, + 0xb8, 0x3e, 0xb1, 0x78, 0xf9, 0x26, 0xef, 0x94, 0x9b, 0xb2, 0x53, 0x6e, 0x6e, 0xcb, 0x4e, 0x59, + 0x9a, 0xfd, 0xd9, 0xc9, 0xc2, 0xb9, 0x27, 0x27, 0x0b, 0x63, 0x94, 0x93, 0xfc, 0xcd, 0xff, 0x75, + 0xc1, 0xb0, 0x24, 0x3d, 0x79, 0x1f, 0x72, 0xdb, 0xc7, 0x1d, 0x3a, 0x3f, 0x7e, 0xd5, 0xb8, 0x3e, + 0xb5, 0xf8, 0xd2, 0x4d, 0x3e, 0x0c, 0x51, 0x23, 0xe3, 0xbf, 0x18, 0xd6, 0x52, 0xfe, 0xc9, 0xc9, + 0x42, 0x8e, 0xa1, 0x58, 0x48, 0x45, 0xde, 0x86, 0xd1, 0x15, 0x2f, 0x08, 0x57, 0x2b, 0xf3, 0x80, + 0x4d, 0x3b, 0xff, 0xe4, 0x64, 0x61, 0xe6, 0xc8, 0x0b, 0x42, 0xdb, 0x6d, 0xbc, 0xe5, 0xb5, 0xdc, + 0x90, 0xb6, 0x3a, 0xe1, 0xb1, 0x25, 0x90, 0xcc, 0x7d, 0x98, 0xd4, 0xf8, 0x91, 0x09, 0x18, 0xdb, + 0xd9, 0xb8, 0xbf, 0xb1, 0xb9, 0xb7, 0x51, 0x3c, 0x47, 0xf2, 0x90, 0xdb, 0xd8, 0xac, 0x54, 0x8b, + 0x06, 0x19, 0x83, 0x6c, 0x69, 0x6b, 0xab, 0x98, 0x21, 0x05, 0xc8, 0x57, 0x4a, 0xdb, 0xa5, 0xa5, + 0x52, 0xad, 0x5a, 0xcc, 0x92, 0x59, 0x98, 0xde, 0x5b, 0xdd, 0xa8, 0x6c, 0xee, 0xd5, 0xec, 0x4a, + 0xb5, 0x76, 0x7f, 0x7b, 0x73, 0xab, 0x98, 0x23, 0x53, 0x00, 0xf7, 0x77, 0x96, 0xaa, 0xd6, 0x46, + 0x75, 0xbb, 0x5a, 0x2b, 0x8e, 0x98, 0x3f, 0xcc, 0x42, 0x7e, 0x9d, 0x86, 0x4e, 0xc3, 0x09, 0x1d, + 0x72, 0x45, 0x1b, 0x22, 0xac, 0xbd, 0x32, 0x36, 0xaf, 0xf4, 0x8e, 0xcd, 0xc8, 0x93, 0x93, 0x05, + 0xe3, 0x6d, 0x75, 0x4c, 0xde, 0x83, 0x89, 0x0a, 0x0d, 0xea, 0xbe, 0xdb, 0x61, 0x72, 0x83, 0xe3, + 0x32, 0xbe, 0x74, 0xe9, 0xc9, 0xc9, 0xc2, 0xf9, 0x46, 0x0c, 0x56, 0xda, 0xaa, 0x62, 0x93, 0x55, + 0x18, 0x5d, 0x73, 0xf6, 0x69, 0x33, 0x98, 0x1f, 0xb9, 0x9a, 0xbd, 0x3e, 0xb1, 0xf8, 0x82, 0xe8, + 0x5f, 0x59, 0xc1, 0x9b, 0xbc, 0xb4, 0xda, 0x0e, 0xfd, 0xe3, 0xa5, 0xb9, 0x27, 0x27, 0x0b, 0xc5, + 0x26, 0x02, 0xd4, 0xbe, 0xe3, 0x28, 0xa4, 0x16, 0x8f, 0xf9, 0xe8, 0xa9, 0x63, 0xfe, 0xe2, 0xcf, + 0x4e, 0x16, 0x0c, 0x36, 0x16, 0x62, 0xcc, 0x63, 0x7e, 0xfa, 0xe8, 0x5f, 0x85, 0xcc, 0x6a, 0x65, + 0x7e, 0x0c, 0x65, 0xad, 0xf8, 0xe4, 0x64, 0xa1, 0xa0, 0x0d, 0x5b, 0x66, 0xb5, 0x72, 0xf9, 0x5d, + 0x98, 0x50, 0xea, 0x48, 0x8a, 0x90, 0x7d, 0x40, 0x8f, 0x79, 0x7f, 0x5a, 0xec, 0x4f, 0x32, 0x07, + 0x23, 0x0f, 0x9d, 0x66, 0x57, 0x74, 0xa0, 0xc5, 0x7f, 0x7c, 0x2b, 0xf3, 0x4d, 0xc3, 0xfc, 0x77, + 0x72, 0x90, 0xb7, 0x3c, 0x3e, 0xdf, 0xc8, 0x1b, 0x30, 0x52, 0x0b, 0x9d, 0x50, 0x0e, 0xc5, 0xec, + 0x93, 0x93, 0x85, 0x69, 0x36, 0x17, 0xa9, 0xf2, 0x3d, 0x8e, 0xc1, 0x50, 0xb7, 0x8e, 0x9c, 0x40, + 0x0e, 0x09, 0xa2, 0x76, 0x18, 0x40, 0x45, 0x45, 0x0c, 0x72, 0x0d, 0x72, 0xeb, 0x5e, 0x83, 0x8a, + 0x51, 0x21, 0x4f, 0x4e, 0x16, 0xa6, 0x5a, 0x5e, 0x43, 0x45, 0xc4, 0x72, 0xf2, 0x16, 0x8c, 0x97, + 0xbb, 0xbe, 0x4f, 0xdb, 0x4c, 0x54, 0x73, 0x88, 0x3c, 0xf5, 0xe4, 0x64, 0x01, 0xea, 0x1c, 0xc8, + 0x26, 0x57, 0x8c, 0xc0, 0xba, 0xba, 0x16, 0x3a, 0x7e, 0x48, 0x1b, 0xf3, 0x23, 0x43, 0x75, 0x35, + 0x9b, 0x5e, 0x33, 0x01, 0x27, 0x49, 0x76, 0xb5, 0xe0, 0x44, 0x56, 0x60, 0xe2, 0x9e, 0xef, 0xd4, + 0xe9, 0x16, 0xf5, 0x5d, 0xaf, 0x81, 0x63, 0x98, 0x5d, 0xba, 0xf6, 0xe4, 0x64, 0xe1, 0xc2, 0x21, + 0x03, 0xdb, 0x1d, 0x84, 0xc7, 0xd4, 0x9f, 0x9f, 0x2c, 0xe4, 0x2b, 0x5d, 0x1f, 0x7b, 0xcf, 0x52, + 0x49, 0xc9, 0xf7, 0xd9, 0x90, 0x04, 0x21, 0x76, 0x2d, 0x6d, 0xe0, 0xe8, 0x0d, 0xae, 0xa2, 0x29, + 0xaa, 0x78, 0xa1, 0xe9, 0x04, 0xa1, 0xed, 0x73, 0xba, 0x44, 0x3d, 0x55, 0x96, 0x64, 0x13, 0xf2, + 0xb5, 0xfa, 0x11, 0x6d, 0x74, 0x9b, 0x74, 0x3e, 0x8f, 0xec, 0x2f, 0x0a, 0xc1, 0x95, 0xe3, 0x29, + 0x8b, 0x97, 0x2e, 0x0b, 0xde, 0x24, 0x10, 0x10, 0xa5, 0xef, 0x23, 0x26, 0xdf, 0xca, 0xff, 0xce, + 0xdf, 0x5f, 0x38, 0xf7, 0xd7, 0xfe, 0x97, 0xab, 0xe7, 0xcc, 0xff, 0x34, 0x03, 0xc5, 0x24, 0x13, + 0x72, 0x00, 0x93, 0x3b, 0x9d, 0x86, 0x13, 0xd2, 0x72, 0xd3, 0xa5, 0xed, 0x30, 0x40, 0x21, 0x19, + 0xdc, 0xa6, 0x57, 0xc5, 0x77, 0xe7, 0xbb, 0x48, 0x68, 0xd7, 0x39, 0x65, 0xa2, 0x55, 0x3a, 0xdb, + 0xf8, 0x3b, 0x35, 0xd4, 0xd3, 0x01, 0x4a, 0xd8, 0xd9, 0xbe, 0xc3, 0x35, 0x7c, 0x9f, 0xef, 0x08, + 0xb6, 0x42, 0x80, 0xda, 0x8d, 0xfd, 0x63, 0x94, 0xcc, 0xe1, 0x05, 0x88, 0x91, 0xa4, 0x08, 0x10, + 0x03, 0x9b, 0xff, 0xd2, 0x80, 0x29, 0x8b, 0x06, 0x5e, 0xd7, 0xaf, 0xd3, 0x15, 0xea, 0x34, 0xa8, + 0xcf, 0xc4, 0xff, 0xbe, 0xdb, 0x6e, 0x88, 0x39, 0x85, 0xe2, 0xff, 0xc0, 0x6d, 0xab, 0x53, 0x18, + 0xcb, 0xc9, 0xd7, 0x60, 0xac, 0xd6, 0xdd, 0x47, 0x54, 0x3e, 0xa7, 0x2e, 0xe0, 0x88, 0x75, 0xf7, + 0xed, 0x04, 0xba, 0x44, 0x23, 0xb7, 0x60, 0x6c, 0x97, 0xfa, 0x41, 0xac, 0xf1, 0x50, 0xb3, 0x3f, + 0xe4, 0x20, 0x95, 0x40, 0x60, 0x91, 0x7b, 0xb1, 0xd6, 0x15, 0x6b, 0xd2, 0x74, 0x42, 0xd7, 0xc5, + 0xa2, 0xd2, 0x12, 0x10, 0x55, 0x54, 0x24, 0x96, 0xf9, 0x9b, 0x19, 0x28, 0x56, 0x9c, 0xd0, 0xd9, + 0x77, 0x02, 0xd1, 0x9f, 0xbb, 0x77, 0x98, 0x1e, 0x57, 0x1a, 0x8a, 0x7a, 0x9c, 0xd5, 0xfc, 0x0b, + 0x37, 0xef, 0xb5, 0x64, 0xf3, 0x26, 0xd8, 0x02, 0x29, 0x9a, 0x17, 0x37, 0xea, 0x83, 0xd3, 0x1b, + 0x55, 0x14, 0x8d, 0xca, 0xcb, 0x46, 0xc5, 0x4d, 0x21, 0x1f, 0x40, 0xae, 0xd6, 0xa1, 0x75, 0xa1, + 0x44, 0xa4, 0xee, 0xd7, 0x1b, 0xc7, 0x10, 0x76, 0xef, 0x2c, 0x15, 0x04, 0x9b, 0x5c, 0xd0, 0xa1, + 0x75, 0x0b, 0xc9, 0x94, 0x49, 0xf3, 0x5f, 0x8f, 0xc2, 0x5c, 0x1a, 0x19, 0xf9, 0x40, 0x5f, 0x9c, + 0x78, 0xf7, 0xbc, 0xd0, 0x77, 0x71, 0x9a, 0x37, 0xf4, 0xe5, 0xe9, 0x06, 0xe4, 0xb7, 0x98, 0x40, + 0xd6, 0xbd, 0xa6, 0xe8, 0x39, 0xa6, 0x15, 0xf3, 0x1d, 0x09, 0x33, 0xac, 0xa8, 0x9c, 0xbc, 0x00, + 0xd9, 0x1d, 0x6b, 0x55, 0x74, 0xd7, 0xf8, 0x93, 0x93, 0x85, 0x6c, 0xd7, 0x77, 0xe7, 0x0d, 0x8b, + 0x41, 0xc9, 0x2d, 0x18, 0x2d, 0x97, 0xca, 0xd4, 0x0f, 0xb1, 0x9b, 0x0a, 0x4b, 0x17, 0x99, 0xb4, + 0xd4, 0x1d, 0xbb, 0x4e, 0xfd, 0x50, 0xfb, 0xbc, 0x40, 0x23, 0x6f, 0x42, 0xb6, 0xb4, 0x57, 0x13, + 0x3d, 0x03, 0xa2, 0x67, 0x4a, 0x7b, 0xb5, 0xa5, 0x49, 0xd1, 0x11, 0x59, 0xe7, 0x51, 0xc0, 0xb8, + 0x97, 0xf6, 0x6a, 0xea, 0x68, 0x8d, 0x0e, 0x18, 0xad, 0xeb, 0x90, 0x67, 0x76, 0x06, 0x5b, 0xe0, + 0x51, 0x29, 0x8e, 0x73, 0xf3, 0xe9, 0x48, 0xc0, 0xac, 0xa8, 0x94, 0xbc, 0x12, 0x99, 0x2d, 0xf9, + 0x98, 0x9f, 0x30, 0x5b, 0xa4, 0xb1, 0x42, 0x1e, 0xc3, 0x64, 0xe5, 0xb8, 0xed, 0xb4, 0xdc, 0xba, + 0x58, 0xc2, 0xc7, 0x71, 0x09, 0xbf, 0x39, 0x60, 0x18, 0x6f, 0x6a, 0x04, 0x7c, 0x55, 0x97, 0xca, + 0x77, 0xbe, 0xc1, 0xcb, 0xec, 0xe4, 0x0a, 0x3f, 0x6f, 0x58, 0xfa, 0x87, 0xd8, 0x5c, 0x92, 0x2a, + 0x12, 0xed, 0xaa, 0x58, 0xec, 0x24, 0x38, 0x9e, 0x4b, 0xbe, 0x80, 0xa8, 0x73, 0x29, 0x5a, 0x74, + 0x3f, 0x80, 0xec, 0xbd, 0xf2, 0xd6, 0xfc, 0x04, 0xf2, 0x20, 0x82, 0xc7, 0xbd, 0xf2, 0x56, 0xb9, + 0xe9, 0x75, 0x1b, 0xb5, 0x4f, 0xd7, 0x96, 0x2e, 0x0a, 0x36, 0x93, 0x87, 0xf5, 0x8e, 0x56, 0x23, + 0x46, 0x47, 0xaa, 0x90, 0x97, 0xad, 0x9c, 0x2f, 0x20, 0x8f, 0x99, 0x44, 0xe3, 0x77, 0xef, 0xf0, + 0xb9, 0xd6, 0x10, 0xbf, 0xd5, 0x5a, 0x48, 0x1c, 0x72, 0x07, 0xa5, 0xec, 0xf1, 0xf1, 0x6a, 0x25, + 0x98, 0x9f, 0xbc, 0x9a, 0xbd, 0x3e, 0x8e, 0xe2, 0x31, 0xdb, 0x61, 0x30, 0xdb, 0x6d, 0xa8, 0xc6, + 0x4e, 0x84, 0x78, 0x79, 0x0f, 0x48, 0x6f, 0x67, 0xa6, 0x98, 0x1f, 0x6f, 0xaa, 0xe6, 0xc7, 0xc4, + 0xe2, 0x79, 0x51, 0xc1, 0xb2, 0xd7, 0x6a, 0x39, 0xed, 0x06, 0xd2, 0xee, 0x2e, 0xaa, 0x56, 0x49, + 0x09, 0xa6, 0xe2, 0xda, 0xaf, 0xb9, 0x41, 0x48, 0x6e, 0xc1, 0xb8, 0x84, 0xb0, 0x95, 0x27, 0x9b, + 0xda, 0x4e, 0x2b, 0xc6, 0x31, 0xff, 0x38, 0x03, 0x10, 0x97, 0x3c, 0xa7, 0xca, 0xe9, 0x1b, 0x9a, + 0x72, 0x3a, 0x9f, 0x94, 0xea, 0xbe, 0x6a, 0x89, 0x7c, 0x04, 0xa3, 0xcc, 0x4e, 0xeb, 0x4a, 0x3b, + 0xf4, 0x62, 0x92, 0x14, 0x0b, 0x77, 0xef, 0x2c, 0x4d, 0x09, 0xe2, 0xd1, 0x00, 0x21, 0x96, 0x20, + 0x53, 0xf4, 0xda, 0x1f, 0x8e, 0xc4, 0x83, 0x21, 0x34, 0xda, 0x75, 0x45, 0x25, 0x19, 0xf1, 0x24, + 0x96, 0x2a, 0x49, 0x51, 0x48, 0x97, 0xb8, 0x42, 0xe2, 0x9d, 0x3a, 0x26, 0x14, 0x52, 0x52, 0x1d, + 0xf1, 0x0e, 0x3c, 0x55, 0x1d, 0x75, 0x92, 0x73, 0x3d, 0x87, 0x62, 0x70, 0x3d, 0xb5, 0x57, 0xd2, + 0x66, 0xf9, 0xd5, 0xd3, 0x66, 0x79, 0x72, 0x8e, 0xdf, 0xe9, 0xa7, 0x00, 0xcf, 0xcb, 0x29, 0xe9, + 0x3c, 0x52, 0xc9, 0x51, 0x11, 0xbe, 0xc7, 0xe7, 0xf3, 0x68, 0xdf, 0xf9, 0x7c, 0x3e, 0x75, 0x3e, + 0xf3, 0xd9, 0xfc, 0x1e, 0x8c, 0x94, 0x7e, 0xb9, 0xeb, 0x53, 0x61, 0x30, 0x16, 0xe4, 0x37, 0x19, + 0x2c, 0x52, 0x04, 0xd3, 0x0e, 0xfb, 0xa9, 0x1a, 0xda, 0x58, 0xce, 0xbe, 0xbc, 0xbd, 0x56, 0x13, + 0xc6, 0x20, 0x49, 0x74, 0xcb, 0xf6, 0x9a, 0x52, 0xed, 0x50, 0x6b, 0x35, 0xa3, 0x22, 0xb7, 0x20, + 0x53, 0xaa, 0xe0, 0x0e, 0x73, 0x62, 0x71, 0x5c, 0x7e, 0xb6, 0xb2, 0x34, 0x27, 0x48, 0x0a, 0x8e, + 0xb6, 0xe9, 0x28, 0x55, 0xc8, 0x12, 0x8c, 0xac, 0x1f, 0xd7, 0x3e, 0x5d, 0x13, 0xda, 0x6f, 0x56, + 0xca, 0x35, 0x83, 0x6d, 0xe2, 0xd2, 0x15, 0xc4, 0x35, 0x6e, 0x1d, 0x07, 0xbf, 0xd4, 0x54, 0x6b, + 0x8c, 0x68, 0x5f, 0x9e, 0x02, 0xf9, 0x0f, 0x54, 0x03, 0x45, 0xc8, 0x3a, 0xdb, 0x08, 0x0b, 0x89, + 0x33, 0x62, 0x73, 0xa9, 0x47, 0xe2, 0x22, 0x79, 0x7b, 0x83, 0x8f, 0x7e, 0xa6, 0x67, 0xf4, 0x27, + 0x94, 0xe5, 0x8f, 0x8f, 0x79, 0xd4, 0x17, 0xd9, 0x2f, 0xdc, 0x17, 0xe4, 0x23, 0x28, 0xac, 0x3b, + 0x6d, 0xe7, 0x90, 0x36, 0x76, 0x02, 0x66, 0xf6, 0xe6, 0x50, 0x0b, 0x33, 0x3b, 0xe1, 0x62, 0x8b, + 0xc3, 0xed, 0x6e, 0xa0, 0x59, 0xb5, 0x96, 0x46, 0x40, 0x6e, 0x4b, 0xd9, 0x19, 0x49, 0x91, 0x1d, + 0xb9, 0x64, 0x8f, 0xa0, 0xec, 0x08, 0x89, 0x31, 0x7f, 0x67, 0x04, 0xdb, 0x48, 0xde, 0x82, 0x51, + 0x8b, 0x1e, 0xc6, 0xd6, 0x09, 0xee, 0x72, 0x7d, 0x84, 0xa8, 0x1d, 0xc3, 0x71, 0x70, 0xe9, 0xa3, + 0x8d, 0xe0, 0xc8, 0x3d, 0x08, 0x45, 0xef, 0x44, 0x4b, 0x9f, 0x00, 0x2b, 0x4b, 0x9f, 0x80, 0x68, + 0x4b, 0x9f, 0x80, 0xb1, 0xf9, 0x65, 0x55, 0x6a, 0xa2, 0xd3, 0x64, 0x0f, 0x5b, 0x15, 0x45, 0x50, + 0x7d, 0x6d, 0xe5, 0x61, 0xd8, 0xe4, 0x2e, 0x8c, 0x97, 0xea, 0x75, 0xaf, 0xab, 0x6c, 0x13, 0xe7, + 0x9f, 0x9c, 0x2c, 0xcc, 0x39, 0x1c, 0xa8, 0x3b, 0x35, 0x62, 0x54, 0x52, 0x83, 0x89, 0x2a, 0xdb, + 0x5b, 0xb9, 0x65, 0xa7, 0x7e, 0x24, 0x3b, 0x49, 0xce, 0x12, 0xa5, 0x24, 0xb2, 0xf5, 0xcf, 0x53, + 0x04, 0xd6, 0x19, 0x50, 0xf5, 0x1d, 0x28, 0xb8, 0x64, 0x1b, 0x26, 0x6a, 0xb4, 0xee, 0xd3, 0xb0, + 0x16, 0x7a, 0x3e, 0x4d, 0x4c, 0x7a, 0xa5, 0x64, 0xe9, 0x25, 0xb9, 0xbd, 0x0b, 0x10, 0x68, 0x07, + 0x0c, 0xaa, 0x72, 0x55, 0x90, 0xb9, 0x9d, 0xde, 0xf2, 0xfc, 0xe3, 0xca, 0x92, 0x50, 0x04, 0xf1, + 0xaa, 0xc1, 0xc1, 0xaa, 0x9d, 0xce, 0x20, 0x8d, 0x7d, 0xdd, 0x4e, 0xe7, 0x58, 0x38, 0x52, 0x95, + 0x1a, 0xae, 0xd7, 0x42, 0x2d, 0x4c, 0xc7, 0xbd, 0x8c, 0x60, 0x65, 0xa4, 0x1a, 0x01, 0xae, 0xf6, + 0xda, 0x48, 0x09, 0x2c, 0xd2, 0x01, 0x22, 0x47, 0x8d, 0xdb, 0x52, 0x4d, 0x1a, 0x04, 0x42, 0x5b, + 0x5c, 0x4a, 0x0c, 0x7e, 0x8c, 0xb0, 0xf4, 0x9a, 0x60, 0xfe, 0xa2, 0x14, 0x03, 0xb1, 0x35, 0x63, + 0x85, 0xca, 0x77, 0x52, 0x78, 0x9b, 0xbf, 0xa2, 0xf5, 0x2c, 0x1b, 0xf5, 0xfb, 0xf4, 0x78, 0xcb, + 0xa7, 0x07, 0xee, 0x63, 0x21, 0xa4, 0x38, 0xea, 0x0f, 0xe8, 0xb1, 0xdd, 0x41, 0xa8, 0x3a, 0xea, + 0x11, 0x2a, 0xf9, 0x3a, 0xe4, 0xef, 0xaf, 0xd7, 0xee, 0xd3, 0xe3, 0xd5, 0x8a, 0x58, 0x85, 0x38, + 0x59, 0x2b, 0xb0, 0x19, 0xa9, 0x26, 0x2c, 0x11, 0xa6, 0xb9, 0x14, 0x4b, 0x38, 0xfb, 0x72, 0xb9, + 0xd9, 0x0d, 0x42, 0xea, 0xaf, 0x56, 0xd4, 0x2f, 0xd7, 0x39, 0x30, 0x21, 0x6f, 0x11, 0xaa, 0xf9, + 0x3f, 0x1b, 0x28, 0xdd, 0xe4, 0x5d, 0x80, 0xd5, 0x36, 0xdb, 0x36, 0xd6, 0x69, 0xc4, 0x00, 0x5d, + 0x53, 0xae, 0x80, 0xea, 0x1c, 0x14, 0x64, 0xfd, 0xd3, 0x99, 0xa1, 0x3f, 0xcd, 0x3e, 0x29, 0x37, + 0xa1, 0xc2, 0x4b, 0x29, 0x3e, 0xe9, 0x0b, 0x68, 0xe2, 0x93, 0x31, 0x32, 0xb9, 0x06, 0x63, 0xab, + 0xa5, 0xf5, 0x52, 0x37, 0x3c, 0xc2, 0xb9, 0x95, 0xe7, 0x2b, 0xbb, 0xeb, 0xb4, 0x6c, 0xa7, 0x1b, + 0x1e, 0x59, 0xb2, 0xd0, 0xfc, 0x23, 0x23, 0x16, 0x2d, 0xb6, 0xc5, 0x55, 0x3c, 0x78, 0xb8, 0xc5, + 0x65, 0x26, 0xbc, 0xba, 0xc5, 0x45, 0x5f, 0x9e, 0x05, 0xa4, 0xdc, 0x0d, 0x42, 0xaf, 0x55, 0x6d, + 0x37, 0x3a, 0x9e, 0xdb, 0x0e, 0x91, 0x8a, 0x37, 0xcc, 0x7c, 0x72, 0xb2, 0xf0, 0x52, 0x1d, 0x4b, + 0x6d, 0x2a, 0x8a, 0xed, 0x04, 0x97, 0x14, 0xea, 0xa7, 0x68, 0xab, 0xf9, 0xdf, 0x64, 0x34, 0x95, + 0xc0, 0xaa, 0x67, 0xd1, 0x4e, 0xd3, 0xad, 0xa3, 0x61, 0x7e, 0xcf, 0xf7, 0xba, 0x9d, 0x68, 0xc4, + 0xb0, 0x7a, 0x7e, 0x5c, 0x6a, 0x1f, 0xb2, 0x62, 0x9d, 0x77, 0x0a, 0x35, 0xf9, 0x18, 0x0a, 0x4c, + 0x3b, 0x8b, 0x9f, 0xc1, 0x7c, 0x06, 0xb5, 0xfa, 0x15, 0x74, 0x56, 0x04, 0xd4, 0x8f, 0xd8, 0x68, + 0x6a, 0x5d, 0xa5, 0x20, 0x0d, 0x98, 0xdf, 0xf6, 0x9d, 0x76, 0xe0, 0x86, 0xd5, 0x76, 0xdd, 0x3f, + 0xc6, 0xd5, 0xa4, 0xda, 0x76, 0xf6, 0x9b, 0xb4, 0x81, 0xcd, 0xcd, 0x2f, 0x5d, 0x7f, 0x72, 0xb2, + 0xf0, 0x6a, 0xc8, 0x71, 0x6c, 0x1a, 0x21, 0xd9, 0x94, 0x63, 0x29, 0x9c, 0xfb, 0x72, 0x62, 0xab, + 0x8f, 0xec, 0x56, 0x74, 0x35, 0xe7, 0xa2, 0x5d, 0xea, 0xc5, 0x68, 0x34, 0xd8, 0x34, 0x57, 0xab, + 0xa9, 0x12, 0x98, 0xff, 0xa7, 0x11, 0x2b, 0x2d, 0xf2, 0x3e, 0x4c, 0x08, 0x69, 0x54, 0xe4, 0xe2, + 0x32, 0x53, 0x7f, 0x52, 0x74, 0x13, 0x23, 0xab, 0xa2, 0x33, 0x6b, 0xbc, 0x54, 0x5e, 0x53, 0x64, + 0x03, 0xad, 0x71, 0xa7, 0xde, 0x4c, 0x52, 0x49, 0x34, 0x26, 0x04, 0xdb, 0x6b, 0x35, 0xbd, 0x57, + 0x50, 0x08, 0xc2, 0x66, 0x90, 0xd2, 0x0d, 0x0a, 0xf2, 0xd3, 0x37, 0xfc, 0x7f, 0x34, 0xd2, 0x74, + 0x23, 0x59, 0x82, 0xc9, 0x3d, 0xcf, 0x7f, 0x80, 0xe3, 0xab, 0x74, 0x02, 0x8e, 0xfc, 0x23, 0x59, + 0x90, 0x6c, 0x90, 0x4e, 0xa2, 0xd6, 0x4d, 0xe9, 0x0d, 0xbd, 0x6e, 0x09, 0x0e, 0x1a, 0x01, 0x1b, + 0x87, 0x88, 0x63, 0x34, 0x3b, 0x70, 0x1c, 0xe2, 0x2a, 0x68, 0x22, 0xac, 0xa2, 0x9b, 0x7f, 0xcd, + 0x80, 0x09, 0xc5, 0x70, 0x65, 0xea, 0x68, 0xcb, 0xf7, 0x7e, 0x40, 0xeb, 0xa1, 0xae, 0x09, 0x3b, + 0x1c, 0x98, 0x50, 0x47, 0x11, 0x6a, 0x42, 0x03, 0x66, 0xce, 0xa0, 0x01, 0xcd, 0x7f, 0x6c, 0x08, + 0xa3, 0x66, 0x68, 0x1d, 0xa3, 0xeb, 0x83, 0xcc, 0x59, 0x74, 0xdf, 0xc7, 0x30, 0x62, 0xd1, 0x86, + 0x1b, 0x08, 0x83, 0x64, 0x46, 0x35, 0xa0, 0xb0, 0x20, 0xb6, 0xe1, 0x7c, 0xf6, 0x53, 0xb5, 0xe1, + 0xb0, 0xdc, 0xfc, 0x0c, 0x20, 0xc6, 0x26, 0xf7, 0xa1, 0x28, 0xc4, 0xda, 0x6d, 0x1f, 0x6e, 0x79, + 0x4d, 0xb7, 0x2e, 0x8c, 0xda, 0xa5, 0x85, 0x27, 0x27, 0x0b, 0x2f, 0xd4, 0xa3, 0x32, 0xbb, 0x83, + 0x85, 0x0a, 0xbf, 0x1e, 0x42, 0xf3, 0x1f, 0x19, 0xcc, 0x40, 0x27, 0xb7, 0x00, 0xee, 0xd3, 0xe3, + 0xd0, 0xd9, 0x5f, 0x76, 0x9b, 0xda, 0xa9, 0xd6, 0x03, 0x84, 0xda, 0x07, 0x6e, 0x93, 0x5a, 0x0a, + 0x0a, 0xdb, 0xd8, 0xdf, 0xf7, 0xf7, 0xdf, 0x41, 0xf4, 0x4c, 0xb4, 0xd1, 0x9a, 0x7d, 0xe0, 0xef, + 0xbf, 0x83, 0xc8, 0xda, 0xfa, 0x27, 0x10, 0x89, 0x09, 0xa3, 0x15, 0xaf, 0xe5, 0xb8, 0x72, 0x73, + 0x0b, 0x6c, 0x87, 0xd8, 0x40, 0x88, 0x25, 0x4a, 0xd8, 0xd6, 0xae, 0xb6, 0xb5, 0x21, 0xe6, 0x0b, + 0x6e, 0xed, 0x82, 0x4e, 0xdb, 0x62, 0x30, 0xf3, 0xf7, 0x0c, 0x98, 0x50, 0xf6, 0x1d, 0xe4, 0xeb, + 0xe2, 0x04, 0xc0, 0xc0, 0xf3, 0xab, 0x0b, 0xbd, 0x3b, 0x13, 0x56, 0xca, 0x37, 0xe5, 0x2d, 0xaf, + 0x41, 0xc5, 0x79, 0x40, 0x6c, 0xae, 0x67, 0x86, 0x31, 0xd7, 0xdf, 0x05, 0xe0, 0xd3, 0x0f, 0xc5, + 0x44, 0x59, 0x08, 0x94, 0xf3, 0x3e, 0x75, 0xe0, 0x63, 0x64, 0xd3, 0x82, 0x82, 0x6a, 0xaa, 0xb3, + 0xb9, 0x2b, 0xbc, 0x9a, 0x62, 0x8b, 0xaf, 0xcc, 0x5d, 0xc1, 0xad, 0xd7, 0xcb, 0xaa, 0x93, 0x98, + 0xbf, 0x96, 0x81, 0xbc, 0x80, 0x2c, 0x3e, 0xa7, 0xde, 0x87, 0x77, 0x34, 0xef, 0xc3, 0x6c, 0x64, + 0xd5, 0x46, 0xbe, 0xb4, 0xc5, 0x53, 0x5c, 0xa2, 0xef, 0x42, 0x41, 0x76, 0x01, 0x3a, 0x71, 0xde, + 0x80, 0x31, 0xe9, 0xd4, 0xe7, 0x2e, 0x9c, 0x69, 0x8d, 0xe7, 0xee, 0xa2, 0x25, 0xcb, 0xcd, 0x3f, + 0x1f, 0x91, 0xb4, 0xfc, 0x4b, 0xac, 0x0b, 0x4b, 0x8d, 0x86, 0xaf, 0x76, 0xa1, 0xd3, 0x68, 0xf8, + 0x16, 0x42, 0xd9, 0xe0, 0x6f, 0x75, 0xf7, 0x9b, 0x6e, 0x1d, 0x71, 0x94, 0x59, 0xdf, 0x41, 0xa8, + 0xcd, 0x50, 0xd5, 0xc1, 0x8f, 0x91, 0x35, 0x8f, 0x64, 0x76, 0xa0, 0x47, 0xf2, 0x17, 0x61, 0xbc, + 0xdc, 0x6a, 0x68, 0xce, 0x07, 0x33, 0xa5, 0x53, 0x6e, 0x46, 0x48, 0xdc, 0xed, 0x70, 0x45, 0xf4, + 0xd1, 0x5c, 0xbd, 0xd5, 0xe8, 0x75, 0x39, 0xc4, 0x2c, 0x35, 0x97, 0xe2, 0xc8, 0xd3, 0xb8, 0x14, + 0xef, 0xc2, 0xf8, 0x4e, 0x40, 0xb7, 0xbb, 0xed, 0x36, 0x6d, 0xe2, 0x9e, 0x24, 0xcf, 0x15, 0x75, + 0x37, 0xa0, 0x76, 0x88, 0x50, 0xb5, 0x02, 0x11, 0xaa, 0x2a, 0x56, 0x63, 0x03, 0xc4, 0xea, 0xeb, + 0x90, 0x2b, 0x75, 0x3a, 0xd2, 0xd7, 0x1a, 0xed, 0x8c, 0x3b, 0x1d, 0xdc, 0x37, 0x4e, 0x39, 0x9d, + 0x8e, 0xee, 0x39, 0x45, 0x6c, 0x42, 0x81, 0xdc, 0xef, 0xee, 0x53, 0xbf, 0x4d, 0x43, 0x1a, 0x08, + 0xf5, 0x16, 0xcc, 0x03, 0xf2, 0x98, 0x97, 0x47, 0xda, 0x49, 0x04, 0xbe, 0xd8, 0x3d, 0xe8, 0xee, + 0x53, 0x5b, 0xa8, 0x4b, 0x6d, 0xdf, 0xd0, 0xcb, 0x10, 0x1d, 0x99, 0x94, 0xfa, 0x28, 0x07, 0x13, + 0xb1, 0xbe, 0xeb, 0x50, 0xea, 0x27, 0xa5, 0x20, 0x42, 0xd4, 0xbc, 0x9f, 0x85, 0x61, 0xbd, 0x9f, + 0x35, 0x98, 0xd2, 0x47, 0xfa, 0x19, 0x38, 0x2e, 0x3e, 0xc9, 0xe5, 0xf3, 0xc5, 0x71, 0xf3, 0x87, + 0x19, 0x98, 0x28, 0x75, 0x3a, 0xcf, 0xf9, 0xd1, 0xca, 0x37, 0x35, 0xfd, 0x71, 0x21, 0x96, 0x93, + 0x33, 0x9c, 0xaa, 0xfc, 0x7e, 0x06, 0xa6, 0x13, 0x14, 0x6a, 0xed, 0x8d, 0x21, 0x8f, 0x1a, 0x32, + 0x43, 0x1e, 0x35, 0x64, 0xfb, 0x1f, 0x35, 0xa8, 0xb3, 0x33, 0xf7, 0x34, 0xb3, 0xf3, 0x75, 0xc8, + 0x96, 0x3a, 0x9d, 0xa4, 0x97, 0xa6, 0xd3, 0xd9, 0xbd, 0xc3, 0x97, 0x51, 0xa7, 0xd3, 0xb1, 0x18, + 0x86, 0x26, 0x95, 0xa3, 0x43, 0x4a, 0xa5, 0xf9, 0x36, 0x8c, 0x23, 0x2f, 0x54, 0xb8, 0x57, 0xc5, + 0x4c, 0xe5, 0xda, 0x56, 0xfb, 0x16, 0x9f, 0x95, 0xe6, 0x9f, 0x33, 0x03, 0x8b, 0xfd, 0x7e, 0x4e, + 0x65, 0x6c, 0x51, 0x93, 0xb1, 0xa2, 0x22, 0x63, 0xc3, 0x48, 0xd7, 0xbf, 0xca, 0x62, 0x6f, 0x09, + 0xb9, 0x12, 0xce, 0x6a, 0x23, 0xc5, 0x59, 0xfd, 0x14, 0xeb, 0xcb, 0x83, 0xa4, 0xdb, 0x3a, 0x8b, + 0x83, 0xf1, 0x4a, 0xb2, 0xaa, 0xcf, 0xc4, 0x63, 0xbd, 0x02, 0x64, 0xb5, 0x1d, 0xd0, 0x7a, 0xd7, + 0xa7, 0xb5, 0x07, 0x6e, 0x67, 0x97, 0xfa, 0xee, 0xc1, 0xb1, 0xd8, 0xc9, 0xe3, 0x12, 0xe0, 0x8a, + 0x52, 0x3b, 0x78, 0xe0, 0x76, 0x98, 0x15, 0xe3, 0x1e, 0x1c, 0x5b, 0x29, 0x34, 0xe4, 0x23, 0x18, + 0xb3, 0xe8, 0x23, 0xdf, 0x0d, 0xa5, 0xab, 0x6c, 0x2a, 0x72, 0xf3, 0x20, 0x94, 0x9b, 0x63, 0x3e, + 0xff, 0xa1, 0x8e, 0xbf, 0x28, 0x27, 0x8b, 0xdc, 0x7d, 0xca, 0x5d, 0x62, 0x93, 0x71, 0x6b, 0x4b, + 0x7b, 0xb5, 0xa5, 0x99, 0x74, 0xdf, 0xf9, 0x97, 0xe7, 0x0f, 0xfe, 0xe9, 0x08, 0x4e, 0xba, 0x53, + 0x62, 0x8d, 0x06, 0x9c, 0x56, 0xe8, 0x02, 0x90, 0x3d, 0x8b, 0x00, 0xec, 0x42, 0xa1, 0xc6, 0xa6, + 0xbe, 0x7e, 0x6c, 0x71, 0x25, 0xee, 0x91, 0x9b, 0x6a, 0xf1, 0xa0, 0x30, 0x23, 0x8d, 0x0f, 0xb1, + 0x93, 0x82, 0xc5, 0xc3, 0x97, 0x5e, 0x54, 0x18, 0xa7, 0x88, 0x54, 0xa4, 0xa3, 0xea, 0xbc, 0xb3, + 0xce, 0x2c, 0x4c, 0xa3, 0x4f, 0x27, 0x4c, 0x63, 0x5f, 0x48, 0x98, 0x12, 0x01, 0x5e, 0xf9, 0xb3, + 0x04, 0x78, 0x5d, 0xfe, 0x08, 0x66, 0x7a, 0x7a, 0xf8, 0x2c, 0x41, 0x52, 0x5f, 0x9e, 0x58, 0xfe, + 0x2a, 0x28, 0xd3, 0x25, 0xcf, 0x76, 0x8d, 0x3e, 0xad, 0x87, 0xa8, 0xae, 0x85, 0x86, 0xf5, 0x05, + 0x2c, 0xe1, 0x3f, 0x47, 0x18, 0xf9, 0x10, 0xc6, 0x78, 0x90, 0x09, 0xf7, 0x2b, 0xc5, 0xd3, 0x8c, + 0x43, 0x45, 0xa4, 0x1f, 0xc7, 0x50, 0x7b, 0x55, 0x10, 0x99, 0xf7, 0x60, 0x54, 0x04, 0xa9, 0x0c, + 0x9e, 0x17, 0x0b, 0x30, 0xb2, 0x1b, 0xf7, 0x0c, 0x06, 0x16, 0xf0, 0x46, 0x58, 0x1c, 0x6e, 0xfe, + 0x86, 0x01, 0x53, 0x7a, 0x2b, 0xc9, 0x4d, 0x18, 0x15, 0x51, 0x54, 0x06, 0x46, 0x51, 0xb1, 0xd6, + 0x8c, 0xf2, 0xf8, 0x29, 0x2d, 0x6a, 0x4a, 0x60, 0xb1, 0xe5, 0x42, 0x70, 0x10, 0x3e, 0x32, 0x5c, + 0x2e, 0x84, 0x90, 0x5a, 0xb2, 0x8c, 0xed, 0x4c, 0x2d, 0x1a, 0x74, 0x9b, 0xa1, 0xba, 0x33, 0xf5, + 0x11, 0x62, 0x89, 0x12, 0xb3, 0x0c, 0xa3, 0x5c, 0xcf, 0xb0, 0x59, 0x5b, 0x7d, 0x1c, 0x52, 0xbf, + 0xed, 0x34, 0x75, 0xdf, 0x2b, 0x15, 0xd0, 0x84, 0x33, 0x20, 0x46, 0x36, 0x4f, 0x0c, 0x80, 0x5a, + 0x6d, 0xe5, 0x3e, 0x3d, 0xde, 0x72, 0x5c, 0x1f, 0x7d, 0x1f, 0x38, 0xa5, 0xef, 0x8b, 0x21, 0x2f, + 0x08, 0xdf, 0x07, 0x9f, 0xfe, 0x0f, 0xe8, 0xb1, 0xe6, 0xfb, 0x90, 0xa8, 0xa8, 0x37, 0x7c, 0xf7, + 0xa1, 0x13, 0x52, 0x46, 0x98, 0x41, 0x42, 0xae, 0x37, 0x38, 0x34, 0x41, 0xa9, 0x20, 0x93, 0xef, + 0xc1, 0x54, 0xfc, 0x0b, 0x7d, 0x53, 0x59, 0xdc, 0x3f, 0x4b, 0xb1, 0xd2, 0x0b, 0x97, 0x5e, 0x7a, + 0x72, 0xb2, 0x70, 0x59, 0xe1, 0x9a, 0xf4, 0x5a, 0x25, 0x98, 0x99, 0xbf, 0x6b, 0xa0, 0xd3, 0x4c, + 0x36, 0xf0, 0x1a, 0xe4, 0xa2, 0xa3, 0xb1, 0x02, 0xf7, 0xaf, 0x24, 0x36, 0xda, 0x58, 0x4e, 0x5e, + 0x81, 0x6c, 0xdc, 0x12, 0xd4, 0xe3, 0x7a, 0x0b, 0x58, 0x29, 0xb9, 0x07, 0x63, 0x43, 0xd5, 0x19, + 0x45, 0x3c, 0xa5, 0xae, 0x92, 0x1a, 0x47, 0xe1, 0x93, 0xbd, 0xed, 0xaf, 0xee, 0x28, 0xfc, 0x24, + 0x03, 0xd3, 0xac, 0x5f, 0x4b, 0xdd, 0xf0, 0xc8, 0xf3, 0xdd, 0xf0, 0xf8, 0xb9, 0xf5, 0x16, 0xbc, + 0xaf, 0x59, 0x62, 0x97, 0xa5, 0xee, 0x53, 0xdb, 0x36, 0x94, 0xd3, 0xe0, 0x8f, 0x47, 0x60, 0x36, + 0x85, 0x8a, 0xbc, 0x25, 0x82, 0xa0, 0x63, 0xc7, 0x23, 0x06, 0x39, 0x7f, 0x7e, 0xb2, 0x50, 0x90, + 0xe8, 0xdb, 0x71, 0xd0, 0xf3, 0xa2, 0xee, 0x81, 0xe6, 0x3d, 0x85, 0xd1, 0xb3, 0xaa, 0x07, 0x5a, + 0xf7, 0x3b, 0xbf, 0x01, 0x23, 0x96, 0xd7, 0xa4, 0x7c, 0x21, 0x15, 0x31, 0xad, 0x3e, 0x03, 0x68, + 0x8e, 0x3e, 0x06, 0x20, 0x2b, 0x30, 0xc6, 0xfe, 0x58, 0x77, 0x3a, 0x68, 0x99, 0xc7, 0x67, 0x7e, + 0x02, 0xda, 0x71, 0xdb, 0x87, 0xea, 0x76, 0xa0, 0x49, 0xed, 0x96, 0xd3, 0xd1, 0x56, 0x36, 0x8e, + 0xa8, 0x6d, 0x2b, 0xf2, 0xfd, 0xb7, 0x15, 0xc6, 0xa9, 0xdb, 0x8a, 0x06, 0x40, 0xcd, 0x3d, 0x6c, + 0xbb, 0xed, 0xc3, 0x52, 0xf3, 0x50, 0x84, 0x8a, 0xbf, 0xd1, 0x7f, 0x14, 0x6e, 0xc6, 0xc8, 0x28, + 0xb8, 0xdc, 0x55, 0xc6, 0x61, 0xb6, 0xd3, 0x3c, 0xd4, 0x5c, 0x65, 0x11, 0x2a, 0xd9, 0x00, 0x28, + 0xd5, 0x43, 0xf7, 0x21, 0x13, 0xe0, 0x40, 0x04, 0x2d, 0xc9, 0x0a, 0x97, 0x4b, 0xf7, 0xe9, 0x71, + 0x8d, 0x86, 0xf1, 0x09, 0xaa, 0x83, 0xa8, 0x6c, 0x1e, 0xa8, 0x7d, 0xa8, 0x70, 0x20, 0x1d, 0x38, + 0x5f, 0x6a, 0x34, 0x5c, 0xd6, 0x02, 0xa7, 0xb9, 0xed, 0xb3, 0xc1, 0x68, 0x20, 0xeb, 0x42, 0x3a, + 0xeb, 0x37, 0x04, 0xeb, 0x97, 0x9d, 0x88, 0xca, 0x0e, 0x39, 0x59, 0xf2, 0x33, 0xe9, 0x8c, 0xcd, + 0x4d, 0x98, 0xd2, 0x9b, 0xae, 0x07, 0xb8, 0x17, 0x20, 0x6f, 0xd5, 0x4a, 0x76, 0x6d, 0xa5, 0x74, + 0xbb, 0x68, 0x90, 0x22, 0x14, 0xc4, 0xaf, 0x45, 0x7b, 0xf1, 0x9d, 0xbb, 0xc5, 0x8c, 0x06, 0x79, + 0xe7, 0xf6, 0x62, 0x31, 0xfb, 0x49, 0x2e, 0x9f, 0x2d, 0xe6, 0x3e, 0xc9, 0xe5, 0x73, 0xc5, 0x91, + 0x4f, 0x72, 0xf9, 0xb1, 0x62, 0xfe, 0x93, 0x5c, 0x1e, 0x8a, 0x13, 0xe6, 0x1f, 0x1a, 0x90, 0x97, + 0xf5, 0x26, 0x77, 0x21, 0x5b, 0xab, 0xad, 0x24, 0x22, 0x97, 0xe2, 0xf5, 0x85, 0x6b, 0xd2, 0x20, + 0x38, 0x52, 0x35, 0x69, 0xad, 0xb6, 0xc2, 0xe8, 0xb6, 0xd7, 0x6a, 0x62, 0x79, 0x97, 0x74, 0xb1, + 0xda, 0xe6, 0x74, 0x29, 0xe1, 0x1c, 0x77, 0x21, 0xfb, 0xc9, 0xde, 0xb6, 0xd8, 0x6b, 0x48, 0xba, + 0x58, 0x93, 0x72, 0xba, 0x1f, 0x3c, 0x52, 0xf5, 0x3b, 0x23, 0x30, 0x2d, 0x98, 0x50, 0x44, 0x98, + 0x2f, 0xb7, 0x2d, 0x2f, 0x0a, 0x09, 0x17, 0xcb, 0x2d, 0x83, 0x58, 0xa2, 0x84, 0x59, 0x07, 0x6b, + 0x5e, 0xdd, 0x69, 0x8a, 0x75, 0x1b, 0xad, 0x83, 0x26, 0x03, 0x58, 0x1c, 0x6e, 0xfe, 0x91, 0x01, + 0xc5, 0x2d, 0xdf, 0x7b, 0xe8, 0x32, 0x35, 0xb3, 0xed, 0x3d, 0xa0, 0xed, 0xdd, 0xdb, 0xe4, 0x6d, + 0x39, 0xd9, 0x8c, 0x68, 0x67, 0x3b, 0x82, 0x93, 0xed, 0xf3, 0x93, 0x05, 0xa8, 0x1d, 0x07, 0x21, + 0x6d, 0xb1, 0x72, 0x39, 0xe1, 0x94, 0xc8, 0xfa, 0xcc, 0xf0, 0xd1, 0xba, 0xa7, 0x44, 0xd6, 0x2f, + 0xc0, 0x08, 0x56, 0x47, 0x09, 0x98, 0x1c, 0x09, 0x19, 0xc0, 0xe2, 0x70, 0x45, 0x2b, 0xfd, 0x66, + 0xa6, 0xa7, 0x0d, 0x8b, 0x5f, 0xa9, 0x88, 0x57, 0xbd, 0x71, 0x43, 0x69, 0xea, 0xcf, 0x60, 0x2e, + 0xd9, 0x25, 0xe8, 0x75, 0x28, 0xc1, 0xb4, 0x0e, 0x97, 0x0e, 0x88, 0x8b, 0xa9, 0xdf, 0xda, 0x5d, + 0xb4, 0x92, 0xf8, 0xe6, 0x9f, 0x1a, 0x30, 0x8e, 0x7f, 0x5a, 0xdd, 0x26, 0x9e, 0xe9, 0x94, 0xf6, + 0x6a, 0x22, 0x94, 0x43, 0x35, 0xe3, 0x9c, 0x47, 0x81, 0x2d, 0xe2, 0x3e, 0x34, 0xfd, 0x12, 0x21, + 0x0b, 0x52, 0x1e, 0xb8, 0x22, 0x4f, 0x5f, 0x23, 0x52, 0x1e, 0xe1, 0x12, 0x24, 0x48, 0x05, 0x32, + 0x1e, 0x43, 0xee, 0xd5, 0x98, 0xf8, 0x89, 0xd1, 0xe0, 0xc7, 0x90, 0x8c, 0xce, 0x6b, 0xea, 0xc7, + 0x90, 0x1c, 0x8d, 0xbc, 0x0d, 0xa3, 0xec, 0xd3, 0x96, 0x3c, 0x15, 0x41, 0xfb, 0x1b, 0xeb, 0xe8, + 0x6b, 0x71, 0x34, 0x1c, 0xc9, 0xfc, 0xd9, 0x68, 0xb2, 0x03, 0xc5, 0x52, 0x77, 0xc6, 0xb9, 0xf1, + 0x1e, 0x8c, 0x94, 0x9a, 0x4d, 0xef, 0x91, 0xd0, 0x12, 0xd2, 0x09, 0x12, 0xf5, 0x1f, 0x5f, 0xc9, + 0x1c, 0x86, 0xa2, 0x05, 0x8d, 0x31, 0x00, 0x29, 0xc3, 0x78, 0x69, 0xaf, 0xb6, 0xba, 0x5a, 0xd9, + 0xde, 0x5e, 0x13, 0x17, 0x9a, 0x5e, 0x93, 0xfd, 0xe3, 0xba, 0x0d, 0x3b, 0x0c, 0x9b, 0x7d, 0xee, + 0x3b, 0xc4, 0x74, 0xe4, 0x03, 0x80, 0x4f, 0x3c, 0xb7, 0xbd, 0x4e, 0xc3, 0x23, 0xaf, 0x21, 0x1a, + 0xff, 0xe2, 0x93, 0x93, 0x85, 0x89, 0x1f, 0x78, 0x6e, 0xdb, 0x6e, 0x21, 0x98, 0xd5, 0x3d, 0x46, + 0xb2, 0x94, 0xbf, 0x59, 0x4f, 0x2f, 0x79, 0xfc, 0x88, 0x73, 0x24, 0xee, 0xe9, 0x7d, 0xaf, 0xe7, + 0x74, 0x53, 0xa2, 0x91, 0x16, 0x4c, 0xd7, 0xba, 0x87, 0x87, 0x94, 0x69, 0x75, 0xb1, 0xfb, 0x1d, + 0x15, 0x7b, 0xae, 0xe8, 0x3a, 0x18, 0xdf, 0x89, 0xb0, 0xfd, 0x49, 0xb0, 0xf4, 0x16, 0x13, 0xe4, + 0x9f, 0x9f, 0x2c, 0x88, 0x8b, 0x3a, 0xcc, 0x48, 0x0b, 0x24, 0x7d, 0xaf, 0x53, 0x25, 0xc9, 0x9b, + 0x6c, 0xc2, 0xe8, 0x3d, 0x37, 0x5c, 0xe9, 0xee, 0x8b, 0xed, 0xeb, 0xcb, 0x03, 0x26, 0x0d, 0x47, + 0xe4, 0x3b, 0xf8, 0x43, 0x37, 0x3c, 0xea, 0xaa, 0xa1, 0x39, 0x82, 0x0d, 0xd9, 0x83, 0x7c, 0xd9, + 0xf5, 0xeb, 0x4d, 0x5a, 0x5e, 0x15, 0xab, 0xfe, 0x2b, 0x03, 0x58, 0x4a, 0x54, 0xde, 0x2f, 0x75, + 0xfc, 0x55, 0x77, 0x55, 0x2b, 0x40, 0x62, 0x90, 0x7f, 0xd7, 0x80, 0x17, 0xa2, 0xda, 0x97, 0x0e, + 0x69, 0x3b, 0x5c, 0x77, 0xc2, 0xfa, 0x11, 0xf5, 0xa3, 0xf8, 0xe8, 0x01, 0xbd, 0xf4, 0xad, 0x9e, + 0x5e, 0xba, 0x1e, 0xf7, 0x92, 0xc3, 0x98, 0xd9, 0x2d, 0xce, 0xad, 0xb7, 0xcf, 0x06, 0x7d, 0x95, + 0xd8, 0x00, 0xb1, 0xab, 0x5e, 0x04, 0x0c, 0xbe, 0x36, 0xa0, 0xc1, 0x31, 0xb2, 0x08, 0xd7, 0x89, + 0x7e, 0xab, 0x73, 0x35, 0xc6, 0x32, 0x7f, 0x9a, 0x83, 0xcb, 0xfd, 0x07, 0x83, 0x7c, 0x2a, 0x67, + 0x08, 0xd7, 0x43, 0xd7, 0x4e, 0x1d, 0xbe, 0x9b, 0xa7, 0xcd, 0x9b, 0xcb, 0xbf, 0x9b, 0x85, 0x1c, + 0x2a, 0xa7, 0x57, 0x20, 0x5b, 0xeb, 0xee, 0x0b, 0xad, 0xc4, 0x97, 0x71, 0x6d, 0xc8, 0x59, 0x29, + 0xf9, 0x26, 0x80, 0x45, 0x3b, 0x5e, 0xe0, 0x86, 0x9e, 0x7f, 0xac, 0x86, 0xf2, 0xf8, 0x11, 0x54, + 0x3f, 0x94, 0x96, 0x50, 0xb2, 0x02, 0xd3, 0xf1, 0xaf, 0xcd, 0x47, 0x6d, 0x2a, 0xbd, 0x4f, 0xb8, + 0xd3, 0x88, 0xc9, 0x6d, 0x8f, 0x95, 0xa9, 0x42, 0x9c, 0x20, 0x23, 0x8b, 0x90, 0xdf, 0xf3, 0xfc, + 0x07, 0x07, 0xac, 0x1f, 0x72, 0xf1, 0x34, 0x7b, 0x24, 0x60, 0xaa, 0x38, 0x49, 0x3c, 0xf2, 0x1e, + 0x4c, 0x54, 0xdb, 0x0f, 0x5d, 0xdf, 0x6b, 0xb7, 0x68, 0x3b, 0x14, 0xb3, 0x93, 0xef, 0xa0, 0x63, + 0xb0, 0x16, 0x1c, 0x17, 0x83, 0x99, 0x3d, 0x5d, 0xaa, 0x87, 0x9e, 0x2f, 0x2e, 0x04, 0xf0, 0xde, + 0x64, 0x00, 0xad, 0x37, 0x19, 0x80, 0x75, 0xa2, 0x45, 0x0f, 0xc4, 0xa9, 0x13, 0x76, 0xa2, 0x4f, + 0x0f, 0xb4, 0xc8, 0x3f, 0x7a, 0xc0, 0xd4, 0x84, 0x45, 0x0f, 0x70, 0x13, 0x90, 0x8f, 0xeb, 0xef, + 0xd3, 0x83, 0x9e, 0xed, 0xa3, 0x40, 0x33, 0xff, 0x30, 0x03, 0x57, 0x06, 0x4d, 0x28, 0x52, 0xd3, + 0x05, 0xe3, 0xfa, 0x10, 0x93, 0xf0, 0x54, 0xd1, 0x20, 0x55, 0x98, 0xda, 0xf4, 0x0f, 0x9d, 0xb6, + 0xfb, 0xcb, 0xa8, 0x28, 0xa3, 0x30, 0x04, 0xa6, 0x11, 0x2f, 0x79, 0x4a, 0x89, 0xee, 0x7d, 0x48, + 0x10, 0x5d, 0x7e, 0x28, 0x04, 0xec, 0x8b, 0x86, 0x5d, 0xdc, 0x85, 0xf1, 0xb2, 0xd7, 0x0e, 0xe9, + 0xe3, 0x30, 0x11, 0x3d, 0xc6, 0x81, 0xc9, 0xe8, 0x31, 0x89, 0x6a, 0xfe, 0xb1, 0x01, 0x2f, 0x0d, + 0x9e, 0x94, 0x64, 0x47, 0xef, 0xb6, 0x1b, 0x43, 0x4d, 0xe5, 0xd3, 0xe7, 0xd4, 0xba, 0x68, 0x71, + 0x15, 0xa6, 0x6a, 0xd4, 0x7f, 0xe8, 0xd6, 0xa9, 0xbe, 0xe6, 0x63, 0x07, 0x06, 0xbc, 0x24, 0x65, + 0xdd, 0x4f, 0x10, 0x99, 0x7f, 0x23, 0x03, 0x53, 0xdc, 0xf1, 0xc7, 0xad, 0x8a, 0xe7, 0xd6, 0x62, + 0x7b, 0x4f, 0xb3, 0xd8, 0x64, 0xbc, 0xa5, 0xda, 0xb4, 0xa1, 0xec, 0xb5, 0x23, 0x20, 0xbd, 0x34, + 0xc4, 0x92, 0xee, 0xe9, 0x61, 0x4c, 0xb5, 0xdb, 0x71, 0x68, 0x2e, 0x5e, 0xd2, 0xae, 0xdb, 0x68, + 0x2f, 0x07, 0x96, 0xc6, 0xc3, 0xfc, 0x8d, 0x0c, 0x4c, 0x2a, 0x3b, 0xeb, 0xe7, 0xb6, 0xe3, 0xbf, + 0xa5, 0x75, 0xbc, 0x3c, 0xa5, 0x56, 0x5a, 0x36, 0x54, 0xbf, 0x77, 0x61, 0xa6, 0x87, 0x24, 0xe9, + 0xa0, 0x30, 0x86, 0x71, 0x50, 0xbc, 0xd5, 0x1b, 0x0f, 0xca, 0x6f, 0xc8, 0x46, 0xf1, 0xa0, 0x6a, + 0x00, 0xea, 0x4f, 0x32, 0x30, 0x27, 0x7e, 0x95, 0xba, 0x0d, 0x37, 0x2c, 0x7b, 0xed, 0x03, 0xf7, + 0xf0, 0xb9, 0x1d, 0x8b, 0x92, 0x36, 0x16, 0x0b, 0xfa, 0x58, 0x28, 0x0d, 0xec, 0x3f, 0x24, 0xe6, + 0xbf, 0x09, 0x30, 0xdf, 0x8f, 0x80, 0x5c, 0xd3, 0xfc, 0x4b, 0xe8, 0x00, 0x4d, 0x2c, 0x2b, 0xdc, + 0xb3, 0x14, 0xc7, 0xca, 0x67, 0x86, 0x88, 0x95, 0x5f, 0x83, 0x22, 0x7e, 0xaa, 0x46, 0x03, 0xd6, + 0x09, 0x41, 0x7c, 0x3d, 0xef, 0xea, 0x93, 0x93, 0x85, 0x2b, 0x0e, 0x2b, 0xb3, 0x03, 0x51, 0x68, + 0x77, 0x7d, 0xd5, 0xaa, 0xeb, 0xa1, 0x24, 0xbf, 0x6b, 0xc0, 0x14, 0x02, 0xab, 0x0f, 0x69, 0x3b, + 0x44, 0x66, 0x39, 0x71, 0xb8, 0x1e, 0x19, 0x74, 0xb5, 0xd0, 0x77, 0xdb, 0x87, 0xc2, 0xa2, 0xdb, + 0x17, 0x16, 0xdd, 0xfb, 0xdc, 0x12, 0xbd, 0x59, 0xf7, 0x5a, 0xb7, 0x0e, 0x7d, 0xe7, 0xa1, 0xcb, + 0x9d, 0x46, 0x4e, 0xf3, 0x56, 0x9c, 0x87, 0xa1, 0xe3, 0x26, 0x32, 0x2b, 0x08, 0x56, 0x68, 0x2d, + 0xf3, 0x8a, 0x52, 0xfc, 0x6c, 0xa2, 0x9a, 0x89, 0x1a, 0x91, 0x5f, 0x80, 0x8b, 0x3c, 0xb8, 0x92, + 0x2d, 0x29, 0x6e, 0xbb, 0xeb, 0x75, 0x83, 0x25, 0xa7, 0xfe, 0xa0, 0xdb, 0x09, 0xc4, 0xd9, 0x11, + 0xb6, 0xbc, 0x1e, 0x15, 0xda, 0xfb, 0xbc, 0x54, 0x61, 0xd9, 0x8f, 0x01, 0x59, 0x81, 0x19, 0x5e, + 0x54, 0xea, 0x86, 0x5e, 0xad, 0xee, 0x34, 0xdd, 0xf6, 0x21, 0x5a, 0x0d, 0x79, 0x1e, 0xd6, 0xe8, + 0x74, 0x43, 0xcf, 0x0e, 0x38, 0x5c, 0xe1, 0xd7, 0x4b, 0x44, 0x56, 0x99, 0x5d, 0xe5, 0x34, 0xd6, + 0x9d, 0xc7, 0x65, 0xa7, 0xe3, 0xd4, 0xdd, 0x90, 0x47, 0xc8, 0x67, 0x79, 0x6c, 0x9e, 0x4f, 0x9d, + 0x86, 0xdd, 0x72, 0x1e, 0xdb, 0x75, 0x51, 0xa8, 0x1b, 0x56, 0x1a, 0x5d, 0xc4, 0xca, 0x6d, 0x47, + 0xac, 0xc6, 0x93, 0xac, 0xdc, 0x76, 0x7f, 0x56, 0x31, 0x9d, 0x64, 0xb5, 0xed, 0xf8, 0x87, 0x34, + 0xe4, 0x67, 0x2e, 0xcc, 0x5a, 0x36, 0x14, 0x56, 0x21, 0x96, 0xd9, 0x78, 0xfe, 0x92, 0x64, 0xa5, + 0xd0, 0x31, 0xc9, 0xdb, 0xf3, 0xdd, 0x90, 0xaa, 0x2d, 0x9c, 0xc0, 0x6a, 0x61, 0xff, 0xe3, 0xa9, + 0x53, 0xbf, 0x26, 0xf6, 0x50, 0xc6, 0xdc, 0x94, 0x46, 0x16, 0x7a, 0xb8, 0xa5, 0xb7, 0xb2, 0x87, + 0x32, 0xe2, 0xa6, 0xb6, 0x73, 0x12, 0xdb, 0xa9, 0x70, 0xeb, 0xd3, 0xd0, 0x1e, 0x4a, 0xb2, 0xc1, + 0x3a, 0x2d, 0xa4, 0x6d, 0x26, 0xd1, 0xe2, 0xcc, 0x69, 0x0a, 0xab, 0xf6, 0xaa, 0x70, 0x9c, 0x16, + 0x7d, 0x59, 0x6c, 0xa7, 0x9c, 0x40, 0x25, 0x89, 0xc9, 0x5f, 0x81, 0xe9, 0x9d, 0x80, 0x2e, 0xaf, + 0x6e, 0xd5, 0x64, 0x30, 0xed, 0xfc, 0x34, 0xba, 0x53, 0x6f, 0x9f, 0xa2, 0x74, 0x6e, 0xaa, 0x34, + 0x98, 0x27, 0x81, 0x8f, 0x5b, 0x37, 0xa0, 0xf6, 0x81, 0xdb, 0x09, 0xa2, 0xc0, 0x76, 0x75, 0xdc, + 0x12, 0x9f, 0x32, 0x57, 0x60, 0xa6, 0x87, 0x0d, 0x99, 0x02, 0x60, 0x40, 0x7b, 0x67, 0xa3, 0x56, + 0xdd, 0x2e, 0x9e, 0x23, 0x45, 0x28, 0xe0, 0xef, 0xea, 0x46, 0x69, 0x69, 0xad, 0x5a, 0x29, 0x1a, + 0x64, 0x06, 0x26, 0x11, 0x52, 0x59, 0xad, 0x71, 0x50, 0xe6, 0x93, 0x5c, 0x7e, 0xa4, 0x38, 0x6a, + 0x15, 0xf9, 0xd4, 0x0d, 0xd9, 0x04, 0xc0, 0x35, 0xc5, 0xfc, 0xdb, 0x19, 0xb8, 0x24, 0x97, 0x15, + 0x1a, 0x32, 0xfb, 0xdf, 0x6d, 0x1f, 0x3e, 0xe7, 0xab, 0xc3, 0xb2, 0xb6, 0x3a, 0xbc, 0x9a, 0x58, + 0xa9, 0x13, 0xad, 0x1c, 0xb0, 0x44, 0xfc, 0xd6, 0x18, 0xbc, 0x38, 0x90, 0x8a, 0x7c, 0xca, 0x56, + 0x73, 0x97, 0xb6, 0xc3, 0xd5, 0x46, 0x93, 0x6e, 0xbb, 0x2d, 0xea, 0x75, 0x43, 0x71, 0xc6, 0xf9, + 0xca, 0x93, 0x93, 0x85, 0x59, 0x9e, 0xe4, 0xc0, 0x76, 0x1b, 0x4d, 0x6a, 0x87, 0xbc, 0x58, 0x13, + 0xb7, 0x5e, 0x6a, 0xc6, 0x32, 0x4a, 0xb9, 0xb2, 0xda, 0x0e, 0xa9, 0xff, 0xd0, 0xe1, 0x77, 0xbd, + 0x05, 0xcb, 0x07, 0x94, 0x76, 0x6c, 0x87, 0x95, 0xda, 0xae, 0x28, 0xd6, 0x59, 0xf6, 0x50, 0x93, + 0x65, 0x85, 0x65, 0x99, 0x59, 0xc3, 0xeb, 0xce, 0x63, 0xe1, 0xde, 0x11, 0xf7, 0x66, 0x22, 0x96, + 0xfc, 0xda, 0x54, 0xcb, 0x79, 0x6c, 0xf5, 0x92, 0x90, 0xef, 0xc1, 0x79, 0xb1, 0x00, 0x31, 0x65, + 0xec, 0x7b, 0x4d, 0xd9, 0xe2, 0x1c, 0xf2, 0x7a, 0xfd, 0xc9, 0xc9, 0xc2, 0x45, 0xb1, 0x7c, 0xd9, + 0x75, 0x8e, 0x91, 0xda, 0xea, 0x74, 0x2e, 0x64, 0x9b, 0x2d, 0xc8, 0x89, 0xee, 0x58, 0xa7, 0x41, + 0xe0, 0x1c, 0x4a, 0x57, 0x10, 0x0f, 0x34, 0x50, 0x3a, 0xd3, 0x6e, 0xf1, 0x72, 0xab, 0x2f, 0x25, + 0x59, 0x81, 0xa9, 0x3d, 0xba, 0xaf, 0x8e, 0xcf, 0x68, 0xa4, 0xaa, 0x8a, 0x8f, 0xe8, 0x7e, 0xff, + 0xc1, 0x49, 0xd0, 0x11, 0x17, 0x66, 0x30, 0xb2, 0x6a, 0xcd, 0x0d, 0x42, 0xda, 0xa6, 0x3e, 0x86, + 0x31, 0x8f, 0xa1, 0x32, 0x98, 0x8f, 0x2d, 0x64, 0xbd, 0x7c, 0xe9, 0xe5, 0x27, 0x27, 0x0b, 0x2f, + 0xf2, 0x28, 0xad, 0xa6, 0x80, 0xdb, 0x89, 0x8c, 0x27, 0xbd, 0x5c, 0xc9, 0xf7, 0x61, 0xda, 0xf2, + 0xba, 0xa1, 0xdb, 0x3e, 0xac, 0x85, 0xbe, 0x13, 0xd2, 0x43, 0xbe, 0x20, 0xc5, 0xf1, 0xd2, 0x89, + 0x52, 0xe1, 0x00, 0xe0, 0x40, 0x3b, 0x10, 0x50, 0x6d, 0x45, 0xd0, 0x09, 0xc8, 0x2f, 0xc2, 0x14, + 0x0f, 0xf4, 0x8c, 0x3e, 0x30, 0xae, 0x5d, 0x0e, 0xd6, 0x0b, 0x77, 0x6f, 0xf3, 0xfd, 0x16, 0x0f, + 0x18, 0x4d, 0xfb, 0x40, 0x82, 0x1b, 0xf9, 0x8e, 0xe8, 0xac, 0x2d, 0xb7, 0x7d, 0x18, 0x89, 0x31, + 0x60, 0xcf, 0xbf, 0x1d, 0x77, 0x49, 0x87, 0x55, 0x57, 0x8a, 0x71, 0x1f, 0xd7, 0x62, 0x2f, 0x1f, + 0xf3, 0xc4, 0x80, 0x62, 0xb2, 0x82, 0xe4, 0xdb, 0x30, 0xce, 0xbd, 0x4d, 0x34, 0x38, 0x12, 0xf9, + 0x48, 0x64, 0x76, 0xa4, 0x08, 0xae, 0x13, 0x89, 0xbb, 0x82, 0xdc, 0x97, 0x45, 0xd5, 0xf3, 0x96, + 0x95, 0x73, 0x56, 0xcc, 0x8c, 0x34, 0xa0, 0xc0, 0xeb, 0x40, 0x31, 0x08, 0x5f, 0x1c, 0x3a, 0xbc, + 0xac, 0x8e, 0xb9, 0x28, 0x4a, 0xf0, 0xc7, 0x80, 0x55, 0xd1, 0x52, 0x8e, 0xa0, 0x7d, 0x42, 0xe3, + 0xba, 0x04, 0x90, 0x97, 0x84, 0xe6, 0x25, 0xb8, 0xd8, 0xa7, 0xce, 0xe6, 0x43, 0x74, 0x6e, 0xf5, + 0xf9, 0x22, 0xf9, 0x36, 0xcc, 0x21, 0x61, 0xd9, 0x6b, 0xb7, 0x69, 0x3d, 0xc4, 0x49, 0x26, 0xf7, + 0xcc, 0xd9, 0xa5, 0x57, 0x9f, 0x9c, 0x2c, 0x5c, 0xe5, 0xed, 0xad, 0x47, 0x08, 0x76, 0x72, 0xeb, + 0x9c, 0xca, 0xc1, 0xfc, 0xed, 0x0c, 0xcc, 0x8b, 0x79, 0x6b, 0xd1, 0xba, 0xe7, 0x37, 0x9e, 0xff, + 0x75, 0xa2, 0xaa, 0xad, 0x13, 0xaf, 0x44, 0xe1, 0xdb, 0x69, 0x8d, 0x1c, 0xb0, 0x4c, 0xfc, 0xbe, + 0x01, 0x57, 0x06, 0x11, 0xb1, 0xde, 0x89, 0xae, 0x3c, 0x8c, 0xf7, 0x5c, 0x6d, 0xe8, 0xc0, 0x2c, + 0x0e, 0x68, 0xf9, 0x88, 0xd6, 0x1f, 0x04, 0x2b, 0x5e, 0x10, 0xe2, 0x99, 0x67, 0x46, 0x0b, 0x62, + 0x5c, 0xf2, 0x3c, 0xee, 0x98, 0x45, 0xef, 0xb5, 0xf1, 0xf3, 0x93, 0x05, 0x60, 0x20, 0x7e, 0x49, + 0x81, 0x19, 0xbb, 0x5c, 0xca, 0xea, 0xc8, 0xc3, 0xc6, 0x70, 0xd5, 0x07, 0xf4, 0x38, 0xb0, 0xd2, + 0x58, 0xe3, 0xf9, 0x55, 0xa9, 0x1b, 0x1e, 0x6d, 0xf9, 0xf4, 0x80, 0xfa, 0xb4, 0x5d, 0xa7, 0x5f, + 0xb1, 0xf3, 0x2b, 0xbd, 0x71, 0x43, 0xed, 0xcb, 0xff, 0x69, 0x1e, 0xe6, 0xd2, 0xc8, 0x58, 0xbf, + 0x28, 0x5b, 0xc1, 0x64, 0x3e, 0xb5, 0x7f, 0xc3, 0x80, 0x42, 0x8d, 0xd6, 0xbd, 0x76, 0x63, 0x19, + 0xbd, 0x99, 0xa2, 0x77, 0x6c, 0xbe, 0x14, 0x32, 0xb8, 0x7d, 0x90, 0x70, 0x73, 0x7e, 0x7e, 0xb2, + 0xf0, 0xf1, 0x70, 0x3b, 0xb0, 0xba, 0x87, 0x97, 0x9f, 0x42, 0xbc, 0x3d, 0x1c, 0x7d, 0x02, 0x03, + 0x1b, 0xb4, 0x8f, 0x92, 0x25, 0x98, 0x14, 0xd3, 0xd5, 0x53, 0x6f, 0xbc, 0xe0, 0x1d, 0x95, 0xba, + 0x2c, 0xe8, 0xb9, 0x5f, 0xa6, 0x91, 0x90, 0x3b, 0x90, 0xdd, 0x59, 0x5c, 0x16, 0x63, 0x20, 0xe3, + 0xf8, 0x77, 0x16, 0x97, 0xd1, 0xc9, 0xc3, 0x0c, 0xe7, 0xc9, 0xee, 0xa2, 0xe6, 0x85, 0xdd, 0x59, + 0x5c, 0x26, 0x77, 0x60, 0xc6, 0xa2, 0xbf, 0xd4, 0x75, 0x7d, 0x2a, 0x26, 0xc0, 0xfa, 0x72, 0x09, + 0xc7, 0x22, 0x2f, 0x13, 0xb3, 0xf5, 0x96, 0x93, 0xbf, 0x0a, 0xe7, 0x2b, 0x6e, 0x20, 0xea, 0xc5, + 0x8f, 0x5f, 0x1b, 0x18, 0x6e, 0x34, 0xda, 0x47, 0xe4, 0xbf, 0x91, 0x2a, 0xf2, 0x2f, 0x37, 0x22, + 0x26, 0x36, 0x3f, 0xdb, 0x6d, 0x24, 0xaf, 0x03, 0xa5, 0x7f, 0x87, 0xfc, 0x00, 0xa6, 0xd0, 0xc7, + 0x88, 0x27, 0xd2, 0x78, 0xbd, 0x75, 0xac, 0xcf, 0x97, 0xbf, 0x96, 0xfa, 0xe5, 0xcb, 0xe8, 0xb2, + 0xb4, 0xf1, 0x5c, 0x1b, 0xaf, 0xc2, 0x6a, 0x1b, 0x60, 0x8d, 0x33, 0xf9, 0x04, 0xa6, 0x85, 0x25, + 0xb2, 0x79, 0xb0, 0x7d, 0x44, 0x2b, 0xce, 0xb1, 0xf0, 0x57, 0xe3, 0xe6, 0x46, 0x98, 0x2f, 0xb6, + 0x77, 0x60, 0x87, 0x47, 0xd4, 0x6e, 0x38, 0xda, 0x9a, 0x9d, 0x20, 0x24, 0xbf, 0x02, 0x13, 0x6b, + 0x5e, 0x9d, 0x19, 0xa1, 0xa8, 0x4e, 0xc6, 0x91, 0xcf, 0x67, 0x98, 0x27, 0x8c, 0x83, 0x13, 0x96, + 0xc5, 0xe7, 0x27, 0x0b, 0xef, 0x9d, 0x55, 0xd2, 0x94, 0x0f, 0x58, 0xea, 0xd7, 0x48, 0x19, 0xf2, + 0x7b, 0x74, 0x9f, 0xb5, 0x36, 0x99, 0xe3, 0x46, 0x82, 0xc5, 0x11, 0x82, 0xf8, 0xa5, 0x1d, 0x21, + 0x08, 0x18, 0xf1, 0x61, 0x06, 0xfb, 0x67, 0xcb, 0x09, 0x82, 0x47, 0x9e, 0xdf, 0xc0, 0x9b, 0xe3, + 0x13, 0x7d, 0x3a, 0x7f, 0x31, 0xb5, 0xf3, 0xaf, 0xf0, 0xce, 0xef, 0x28, 0x1c, 0x54, 0x5b, 0xaa, + 0x87, 0x3d, 0xf9, 0x3e, 0x4c, 0x09, 0x19, 0x5c, 0x5f, 0x2e, 0xe1, 0x54, 0x2e, 0x68, 0x41, 0x5b, + 0x7a, 0x21, 0x37, 0xd8, 0x7c, 0x0e, 0x93, 0xce, 0x18, 0xbb, 0x75, 0xa0, 0xe6, 0xbe, 0x4a, 0xf0, + 0x33, 0xff, 0xa9, 0x81, 0x73, 0x87, 0xdc, 0xc0, 0xf0, 0xf9, 0xc8, 0x31, 0x8f, 0xce, 0x20, 0xa7, + 0x93, 0xb8, 0x55, 0xc9, 0x51, 0xc8, 0x5b, 0x30, 0xba, 0xec, 0xd4, 0x69, 0x28, 0xcf, 0xa1, 0x11, + 0xf9, 0x00, 0x21, 0xaa, 0xe7, 0x88, 0xe3, 0xb0, 0x65, 0xbd, 0x42, 0xd1, 0x9d, 0x1d, 0x67, 0xc4, + 0x2c, 0x97, 0x78, 0xf8, 0xf8, 0x38, 0x5f, 0xd6, 0x1b, 0x94, 0x7b, 0xc2, 0x63, 0x04, 0xbb, 0xee, + 0xa8, 0xbc, 0x52, 0x39, 0x98, 0xff, 0xbb, 0x11, 0x8f, 0x2b, 0x79, 0x1d, 0x72, 0xd6, 0x56, 0x54, + 0x7f, 0x1e, 0xf3, 0x94, 0xa8, 0x3e, 0x22, 0x90, 0xef, 0xc0, 0x79, 0x85, 0x0f, 0xf6, 0x39, 0x6d, + 0xb0, 0x0a, 0xf1, 0xc6, 0xbc, 0x86, 0x41, 0x39, 0x4a, 0x4d, 0x1c, 0x8e, 0x91, 0xa8, 0x51, 0x3a, + 0x0f, 0xb4, 0x61, 0xe2, 0x82, 0x0a, 0x6d, 0xbb, 0x9c, 0xb7, 0xd2, 0x58, 0x95, 0x77, 0x03, 0x11, + 0x92, 0x8d, 0x4d, 0xe3, 0xc0, 0xe3, 0x72, 0xcc, 0x7f, 0x6d, 0x28, 0x69, 0x24, 0x9f, 0xd3, 0x75, + 0xef, 0xae, 0xb6, 0xee, 0xcd, 0x09, 0xd2, 0xa8, 0x55, 0xac, 0x2c, 0xd5, 0x56, 0x99, 0x86, 0x49, + 0x0d, 0x09, 0x6f, 0x17, 0xed, 0x04, 0xd4, 0xe7, 0x2e, 0xfd, 0xaf, 0xd6, 0xed, 0xa2, 0xa8, 0x5d, + 0x43, 0xdd, 0xff, 0xf8, 0x17, 0x06, 0xba, 0x7a, 0x54, 0x0a, 0xd6, 0x1b, 0x0c, 0xa4, 0xf6, 0x46, + 0x37, 0xa0, 0xbe, 0x85, 0x50, 0x7e, 0x45, 0x60, 0x4d, 0xbf, 0x22, 0xd0, 0xb4, 0x18, 0x8c, 0x7c, + 0x0c, 0x23, 0x3b, 0xb8, 0x71, 0xd5, 0x03, 0x44, 0x23, 0xfe, 0x58, 0xc8, 0x67, 0x58, 0x97, 0xfd, + 0xa9, 0x2a, 0x08, 0x2c, 0x23, 0x35, 0x18, 0x2b, 0xfb, 0x14, 0x13, 0x46, 0xe6, 0x86, 0x0f, 0x72, + 0xaa, 0x73, 0x92, 0x64, 0x90, 0x93, 0xe0, 0x64, 0xfe, 0xad, 0x0c, 0x90, 0xb8, 0x8d, 0x98, 0x52, + 0x23, 0x78, 0x6e, 0x07, 0xfd, 0x23, 0x6d, 0xd0, 0x5f, 0xec, 0x19, 0x74, 0xde, 0xbc, 0xa1, 0xc6, + 0xfe, 0x8f, 0x0c, 0xb8, 0x90, 0x4e, 0x48, 0x5e, 0x81, 0xd1, 0xcd, 0xed, 0x2d, 0x19, 0x63, 0x2c, + 0x9a, 0xe2, 0x75, 0xd0, 0xbe, 0xb6, 0x44, 0x11, 0x79, 0x1b, 0x46, 0x3f, 0xb5, 0xca, 0x6c, 0x51, + 0x56, 0xae, 0x27, 0xff, 0x92, 0x6f, 0xd7, 0xf5, 0x9d, 0xbe, 0x40, 0x52, 0xc7, 0x36, 0xfb, 0xcc, + 0xc6, 0xf6, 0x27, 0x19, 0x98, 0x2e, 0xd5, 0xeb, 0x34, 0x08, 0xd8, 0xf2, 0x44, 0x83, 0xf0, 0xb9, + 0x1d, 0xd8, 0xf4, 0xe8, 0x61, 0xad, 0x6d, 0x43, 0x8d, 0xea, 0x1f, 0x1b, 0x70, 0x5e, 0x52, 0x3d, + 0x74, 0xe9, 0xa3, 0xed, 0x23, 0x9f, 0x06, 0x47, 0x5e, 0xb3, 0x31, 0x74, 0x02, 0x01, 0xb6, 0x4a, + 0xbb, 0xcd, 0x90, 0xfa, 0xea, 0xf9, 0xce, 0x01, 0x42, 0xb4, 0x55, 0x1a, 0x21, 0xe4, 0x16, 0x8c, + 0x95, 0x3a, 0x1d, 0xdf, 0x7b, 0xc8, 0xa7, 0xfd, 0xa4, 0x88, 0xf9, 0xe2, 0x20, 0x2d, 0x46, 0x8c, + 0x83, 0x58, 0x35, 0x2a, 0xb4, 0xcd, 0xef, 0x64, 0x4d, 0xf2, 0x6a, 0x34, 0x68, 0x5b, 0xb5, 0x01, + 0xb1, 0xdc, 0xfc, 0x71, 0x0e, 0x0a, 0x6a, 0x43, 0x88, 0x09, 0xa3, 0x3c, 0x84, 0x57, 0x0d, 0xc5, + 0x74, 0x10, 0x62, 0x89, 0x92, 0x38, 0x82, 0x39, 0x73, 0x6a, 0x04, 0xf3, 0x1e, 0x4c, 0x6e, 0xf9, + 0x5e, 0xc7, 0x0b, 0x68, 0x83, 0xe7, 0xfc, 0xe5, 0x5a, 0x6b, 0x56, 0xb1, 0x90, 0x58, 0x9f, 0xa3, + 0x13, 0x1b, 0x37, 0x15, 0x1d, 0x81, 0x6d, 0x27, 0x33, 0x02, 0xeb, 0x7c, 0xf8, 0xf9, 0x98, 0x13, + 0x88, 0x5b, 0x92, 0xd1, 0xf9, 0x18, 0x83, 0xe8, 0xe7, 0x63, 0x0c, 0xa2, 0x4e, 0x8b, 0x91, 0x67, + 0x35, 0x2d, 0xc8, 0xdf, 0x32, 0x60, 0xa2, 0xd4, 0x6e, 0x8b, 0xc8, 0xe8, 0x53, 0x42, 0xc3, 0xbe, + 0x2b, 0x8e, 0xc8, 0xde, 0xfb, 0x42, 0x47, 0x64, 0xdb, 0xbe, 0xe3, 0x86, 0x01, 0x06, 0xcc, 0xc5, + 0x1f, 0x54, 0x03, 0x62, 0x94, 0x7a, 0x90, 0xf7, 0xa0, 0x18, 0xc9, 0xe3, 0x6a, 0xbb, 0x41, 0x1f, + 0xd3, 0x60, 0x7e, 0xec, 0x6a, 0xf6, 0xfa, 0x24, 0x4f, 0xe1, 0xa0, 0x9d, 0xfd, 0x25, 0x11, 0xcd, + 0x9f, 0x18, 0x70, 0x41, 0x15, 0x88, 0x5a, 0x77, 0xbf, 0xe5, 0xa2, 0xa9, 0x4a, 0x6e, 0xc2, 0xb8, + 0x18, 0xaf, 0xc8, 0x90, 0xeb, 0x4d, 0x14, 0x1d, 0xa3, 0x90, 0x2a, 0x1b, 0x22, 0xc6, 0x43, 0x78, + 0x1c, 0x66, 0x13, 0xd3, 0x8d, 0x15, 0x2d, 0xcd, 0x8b, 0xce, 0x2e, 0xfa, 0xf8, 0x5b, 0x1f, 0x3b, + 0x06, 0x31, 0x3f, 0x84, 0x19, 0xbd, 0x96, 0x35, 0x8a, 0x77, 0xfc, 0x65, 0xd3, 0x8c, 0xf4, 0xa6, + 0xc9, 0x72, 0x73, 0x0f, 0x48, 0x0f, 0x7d, 0x80, 0xe7, 0xbc, 0x34, 0x94, 0x71, 0x08, 0xd2, 0xcb, + 0xda, 0x83, 0x18, 0xa5, 0x4c, 0x9f, 0x50, 0xbb, 0x1b, 0x49, 0xcd, 0xff, 0x76, 0x02, 0x66, 0x53, + 0x54, 0xc7, 0x29, 0x4b, 0xfb, 0x82, 0x3e, 0x79, 0xc6, 0xa3, 0xa8, 0x4b, 0x39, 0x65, 0x3e, 0x94, + 0xe9, 0xb1, 0x07, 0x4c, 0x95, 0x41, 0x39, 0xb3, 0xbf, 0x8c, 0xe5, 0x5d, 0x0d, 0x8c, 0x1e, 0x79, + 0x66, 0x81, 0xd1, 0x4b, 0x30, 0x29, 0x5a, 0x25, 0xa6, 0xf2, 0x68, 0xec, 0x5c, 0xf0, 0x79, 0x81, + 0xdd, 0x33, 0xa5, 0x75, 0x12, 0xce, 0x23, 0xf0, 0x9a, 0x0f, 0xa9, 0xe0, 0x31, 0xa6, 0xf2, 0xc0, + 0x82, 0x54, 0x1e, 0x0a, 0x09, 0xf9, 0x8f, 0x31, 0xb7, 0x0e, 0x42, 0xd4, 0xf9, 0x9c, 0x1f, 0x34, + 0x9f, 0x1b, 0xcf, 0x66, 0x3e, 0xbf, 0x28, 0xeb, 0x98, 0x3e, 0xaf, 0x53, 0xaa, 0x45, 0xfe, 0x43, + 0x03, 0x66, 0x78, 0x74, 0xae, 0x5a, 0xd9, 0x81, 0x11, 0x97, 0xf5, 0x67, 0x53, 0xd9, 0x2b, 0x01, + 0x7e, 0xb6, 0x4f, 0x5d, 0x7b, 0x2b, 0x45, 0x7e, 0x01, 0x20, 0x9a, 0x51, 0x32, 0x09, 0xc3, 0x95, + 0x14, 0x2d, 0x10, 0x21, 0xc5, 0x59, 0x2c, 0xc2, 0x88, 0x4e, 0xcb, 0xa8, 0x14, 0x41, 0xc9, 0x5f, + 0x85, 0x39, 0x36, 0x5f, 0x22, 0x88, 0xb8, 0x4b, 0x30, 0x3f, 0x81, 0x5f, 0xf9, 0x7a, 0xff, 0xa5, + 0xfd, 0x66, 0x1a, 0x19, 0xbf, 0xb5, 0x1a, 0x27, 0x04, 0x0c, 0x5b, 0xea, 0x96, 0x2f, 0x8d, 0x02, + 0x2f, 0xe7, 0x60, 0xed, 0x79, 0x32, 0x87, 0x3e, 0xfa, 0xed, 0x92, 0x9c, 0x0b, 0x5c, 0xbf, 0x05, + 0x7a, 0xfc, 0x20, 0x82, 0xc8, 0xa7, 0x40, 0xa2, 0xb0, 0x56, 0x0e, 0xa3, 0xbe, 0xcc, 0x8f, 0x8b, + 0x4e, 0x83, 0x38, 0x3c, 0xd6, 0x97, 0xc5, 0xaa, 0x90, 0xf4, 0x12, 0x13, 0x0a, 0x73, 0xa2, 0xd1, + 0x0c, 0x2a, 0x73, 0x0f, 0x05, 0xf3, 0x53, 0xda, 0x4d, 0x8d, 0xb8, 0x24, 0xce, 0x1c, 0xa8, 0x24, + 0x30, 0xd2, 0xb6, 0xbd, 0x69, 0xec, 0xc8, 0x5d, 0x18, 0x5f, 0xf3, 0x0e, 0xdd, 0xf6, 0x8a, 0x3c, + 0xbd, 0x16, 0x27, 0x69, 0x4d, 0x06, 0xb4, 0x8f, 0xf4, 0x33, 0xe8, 0x18, 0x95, 0x59, 0xb5, 0x15, + 0xff, 0xd8, 0xea, 0xb6, 0xe7, 0x8b, 0xe8, 0xd2, 0x43, 0x73, 0xa6, 0xe1, 0x1f, 0xdb, 0x7e, 0x57, + 0x5b, 0xbe, 0x39, 0xd2, 0xe5, 0x7d, 0xb8, 0xd4, 0x77, 0xd0, 0x52, 0x2e, 0xc8, 0xde, 0xd2, 0x2f, + 0xc8, 0x5e, 0xea, 0xa7, 0xdc, 0x03, 0xf5, 0x92, 0xec, 0xdf, 0x33, 0x12, 0xda, 0x5c, 0x98, 0x5e, + 0xfc, 0x5d, 0x84, 0x7e, 0xcb, 0x5d, 0x06, 0x93, 0xd9, 0x71, 0x7d, 0x9f, 0x89, 0x4d, 0x3e, 0xa6, + 0xef, 0xd5, 0xf5, 0x02, 0x35, 0xff, 0x53, 0x2a, 0x76, 0xf3, 0xb7, 0x32, 0x40, 0x78, 0x0d, 0xcb, + 0x4e, 0xc7, 0xd9, 0x77, 0x9b, 0x6e, 0xe8, 0x52, 0xcc, 0xff, 0x24, 0x58, 0x38, 0xfb, 0x4d, 0xaa, + 0x46, 0xf4, 0x8b, 0x68, 0x8e, 0xa8, 0xcc, 0x4e, 0x1a, 0x69, 0x3d, 0x84, 0x7d, 0x44, 0x31, 0xf3, + 0x34, 0xa2, 0xf8, 0x7d, 0x78, 0xa1, 0xd4, 0xc1, 0x8c, 0x75, 0xf2, 0x2b, 0xcb, 0x9e, 0x2f, 0x85, + 0x48, 0xfa, 0x5e, 0xf0, 0x94, 0xd1, 0x89, 0xd0, 0x7a, 0x6a, 0x3a, 0x88, 0x85, 0xf9, 0x9f, 0x65, + 0xe0, 0x52, 0x6f, 0xc7, 0x88, 0xb6, 0x45, 0xc3, 0x63, 0x9c, 0x32, 0x3c, 0x69, 0xfd, 0x98, 0x41, + 0xe9, 0x7c, 0x66, 0xfd, 0xc8, 0x53, 0xc6, 0x7d, 0xc1, 0x7e, 0xac, 0xc1, 0x84, 0x3a, 0x93, 0x73, + 0x5f, 0x74, 0x26, 0xab, 0x5c, 0xcc, 0x47, 0x6a, 0x1e, 0x33, 0xf2, 0x76, 0x5a, 0xb4, 0x20, 0xbf, + 0x21, 0xcd, 0xc1, 0x7a, 0xa0, 0xa0, 0xdc, 0x03, 0x66, 0x52, 0xf7, 0x80, 0xf2, 0xb2, 0x77, 0x36, + 0xed, 0xb2, 0xb7, 0xf9, 0xa3, 0x0c, 0x14, 0xb6, 0x9a, 0xdd, 0x43, 0xb7, 0x5d, 0x71, 0x42, 0xe7, + 0xb9, 0xdd, 0x50, 0xbe, 0xab, 0x6d, 0x28, 0xa3, 0x70, 0xd6, 0xa8, 0x61, 0x43, 0xed, 0x26, 0x7f, + 0x6a, 0xc0, 0x74, 0x4c, 0xc2, 0xb5, 0xda, 0x0a, 0xe4, 0xd8, 0x0f, 0x61, 0x9f, 0x5e, 0xed, 0x61, + 0x8c, 0x58, 0x37, 0xa3, 0xbf, 0xc4, 0x16, 0x4f, 0x7f, 0x49, 0x01, 0x39, 0x5c, 0xfe, 0x06, 0xcf, + 0x69, 0x7e, 0xf6, 0x47, 0x5b, 0xfe, 0x89, 0x01, 0xc5, 0x64, 0x4b, 0xc8, 0x7d, 0x18, 0x63, 0x9c, + 0xdc, 0x28, 0x3f, 0xfa, 0xab, 0x7d, 0xda, 0x7c, 0x53, 0xa0, 0xf1, 0xea, 0x61, 0xe7, 0x53, 0x0e, + 0xb1, 0x24, 0x87, 0xcb, 0x16, 0x14, 0x54, 0xac, 0x94, 0xda, 0xbd, 0xa5, 0xab, 0xf2, 0x0b, 0xe9, + 0xfd, 0xa0, 0xd6, 0xfa, 0xef, 0x68, 0xb5, 0x16, 0x4a, 0x7c, 0xd8, 0xd7, 0x31, 0x30, 0x3d, 0x02, + 0x9f, 0x0e, 0xaa, 0x9c, 0xc9, 0x99, 0xa4, 0xa7, 0x47, 0xe0, 0x30, 0xb6, 0x13, 0xe5, 0xdf, 0x13, + 0x72, 0x86, 0x3b, 0xd1, 0x0e, 0x42, 0xd4, 0xa5, 0x8c, 0xe3, 0x98, 0x7f, 0x37, 0x0b, 0x17, 0xe2, + 0xea, 0xf1, 0xb7, 0x42, 0xb6, 0x1c, 0xdf, 0x69, 0x05, 0xa7, 0xcc, 0x80, 0xeb, 0x3d, 0x55, 0xc3, + 0x3c, 0x43, 0xb2, 0x6a, 0x4a, 0x85, 0xcc, 0x44, 0x85, 0x70, 0x0b, 0xcf, 0x2b, 0x24, 0xab, 0x41, + 0xee, 0x43, 0xb6, 0x46, 0x43, 0xa1, 0x44, 0xae, 0xf5, 0xf4, 0xaa, 0x5a, 0xaf, 0x9b, 0x35, 0x1a, + 0xf2, 0x41, 0xe4, 0xd7, 0x4e, 0xa8, 0x76, 0x9b, 0x93, 0x6d, 0xc6, 0xf6, 0x60, 0xb4, 0xfa, 0xb8, + 0x43, 0xeb, 0xa1, 0xc8, 0x0d, 0xf2, 0xc6, 0x60, 0x7e, 0x1c, 0x57, 0xc9, 0x40, 0x42, 0x11, 0xa0, + 0x76, 0x16, 0x47, 0xb9, 0x7c, 0x17, 0xf2, 0xf2, 0xe3, 0x67, 0xca, 0xa4, 0xf1, 0x2e, 0x4c, 0x28, + 0x1f, 0x39, 0x93, 0xd0, 0xff, 0x85, 0x01, 0xa3, 0x4c, 0x85, 0xef, 0xbe, 0xf3, 0x9c, 0x6a, 0xa4, + 0x3b, 0x9a, 0x46, 0x9a, 0x51, 0x2e, 0x8c, 0xe3, 0xbc, 0x7c, 0xe7, 0x14, 0x5d, 0x74, 0x62, 0x00, + 0xc4, 0xc8, 0xe4, 0x1e, 0x8c, 0x89, 0x74, 0x85, 0x22, 0xf0, 0x45, 0xbd, 0x81, 0x2e, 0x73, 0x8e, + 0x47, 0x36, 0xae, 0xd7, 0x49, 0x6e, 0x0a, 0x24, 0x35, 0xa9, 0xc4, 0xb7, 0x07, 0xd5, 0xa4, 0x25, + 0x8c, 0x4d, 0xd9, 0x6b, 0xf3, 0x1b, 0xd4, 0x4a, 0xe6, 0xcb, 0x3e, 0x77, 0x5e, 0x4a, 0xc2, 0xad, + 0x95, 0x1d, 0xc4, 0xe4, 0x82, 0x60, 0x92, 0xee, 0xf1, 0xfa, 0x4f, 0xa6, 0xf9, 0xdd, 0x63, 0x59, + 0xb1, 0x0f, 0xa0, 0xb0, 0xec, 0xf9, 0x8f, 0x1c, 0x9f, 0xdf, 0x28, 0xc3, 0x66, 0xf2, 0xb4, 0xae, + 0x93, 0x07, 0x1c, 0xce, 0xef, 0xa4, 0x7d, 0x7e, 0xb2, 0x90, 0x5b, 0xf2, 0xbc, 0xa6, 0xa5, 0xa1, + 0x93, 0x4d, 0x98, 0x5c, 0x77, 0x1e, 0x8b, 0x33, 0xe8, 0xed, 0xed, 0x35, 0x11, 0x50, 0xf7, 0xc6, + 0x93, 0x93, 0x85, 0x4b, 0x2d, 0xe7, 0x71, 0x74, 0xce, 0xd7, 0xff, 0x82, 0xa3, 0x4e, 0x4f, 0x5c, + 0x98, 0xda, 0xf2, 0xfc, 0x50, 0x7c, 0x84, 0xed, 0x68, 0xb2, 0x7d, 0x4e, 0x31, 0x6f, 0xa5, 0x9e, + 0x62, 0x5e, 0x62, 0xdb, 0x38, 0xfb, 0x20, 0x22, 0xd7, 0xb2, 0x42, 0x68, 0x8c, 0xc9, 0x07, 0x30, + 0x53, 0xa6, 0x7e, 0xe8, 0x1e, 0xb8, 0x75, 0x27, 0xa4, 0xcb, 0x9e, 0xdf, 0x72, 0x42, 0xe1, 0x4e, + 0x43, 0x77, 0x4a, 0x9d, 0x72, 0x4e, 0x2d, 0x27, 0xb4, 0x7a, 0x31, 0xc9, 0x77, 0xd2, 0x42, 0x14, + 0x47, 0xe2, 0x40, 0xac, 0x94, 0x10, 0xc5, 0x7e, 0x81, 0x58, 0xbd, 0xc1, 0x8a, 0x87, 0x83, 0x8e, + 0xf2, 0xf3, 0x4b, 0xb7, 0x45, 0xe8, 0xc0, 0xe9, 0x47, 0xf5, 0xd1, 0xb8, 0xf5, 0x39, 0xb2, 0x5f, + 0x84, 0xec, 0xd2, 0xd6, 0x32, 0x3a, 0xc8, 0xc4, 0xd1, 0x39, 0x6d, 0x1f, 0x39, 0xed, 0x3a, 0x5a, + 0x66, 0x22, 0xe6, 0x46, 0x55, 0x78, 0x4b, 0x5b, 0xcb, 0xc4, 0x81, 0xd9, 0x2d, 0xea, 0xb7, 0xdc, + 0xf0, 0xdb, 0xb7, 0x6f, 0x2b, 0x03, 0x95, 0xc7, 0xaa, 0xdd, 0x12, 0x55, 0x5b, 0xe8, 0x20, 0x8a, + 0xfd, 0xf8, 0xf6, 0xed, 0xd4, 0xe1, 0x88, 0x2a, 0x96, 0xc6, 0x8b, 0x54, 0x61, 0x6a, 0xdd, 0x79, + 0x1c, 0x87, 0x4a, 0x05, 0x22, 0xd8, 0xfb, 0x45, 0x29, 0x58, 0x71, 0x98, 0x95, 0x3a, 0xdf, 0x12, + 0x44, 0xe4, 0x7d, 0x98, 0x88, 0xc5, 0x2b, 0x10, 0x61, 0x72, 0x18, 0xc3, 0xae, 0x08, 0xa7, 0x66, + 0x1d, 0x2a, 0xe8, 0x64, 0x27, 0x72, 0xd0, 0x70, 0xf3, 0x5a, 0xa4, 0x3a, 0xbc, 0xa5, 0x3a, 0x68, + 0x1c, 0x2c, 0xd1, 0x9a, 0x35, 0x1d, 0x6d, 0x69, 0x78, 0xec, 0x98, 0xa5, 0x73, 0x51, 0xfc, 0x3e, + 0x5b, 0xbe, 0xd7, 0xea, 0x84, 0x78, 0x6c, 0x9e, 0xf0, 0xfb, 0x74, 0xb0, 0x24, 0xc5, 0xef, 0xc3, + 0x49, 0xd2, 0xe3, 0x43, 0x26, 0x4f, 0x89, 0x0f, 0xa1, 0x90, 0x5b, 0xf3, 0xea, 0x0f, 0x30, 0x6e, + 0x7b, 0x7c, 0xe9, 0x53, 0xa6, 0x23, 0x9a, 0x5e, 0xfd, 0xc1, 0xb3, 0x8b, 0x6b, 0x40, 0xf6, 0x64, + 0x83, 0xb5, 0x8f, 0x89, 0x8e, 0xf8, 0x34, 0xee, 0x8c, 0xe3, 0xb3, 0x54, 0xad, 0x8c, 0x1b, 0x23, + 0x5c, 0xd2, 0xe4, 0x78, 0x58, 0x3a, 0x39, 0xa1, 0x50, 0xac, 0xd0, 0xe0, 0x41, 0xe8, 0x75, 0xca, + 0x4d, 0xb7, 0xb3, 0xef, 0x39, 0x7e, 0x03, 0xf7, 0xcd, 0x69, 0x4a, 0xe1, 0xf5, 0x54, 0xa5, 0x30, + 0xd3, 0xe0, 0xf4, 0x76, 0x5d, 0x32, 0xb0, 0x7a, 0x58, 0x92, 0xef, 0xc0, 0x14, 0x9b, 0x11, 0xd5, + 0xc7, 0x21, 0x6d, 0x73, 0x71, 0x99, 0xc1, 0xe5, 0x7c, 0x4e, 0x49, 0xef, 0x11, 0x15, 0x72, 0x41, + 0x44, 0x0d, 0x41, 0x23, 0x02, 0x55, 0x10, 0x75, 0x56, 0xa4, 0x01, 0xf3, 0xeb, 0xce, 0x63, 0x25, + 0x93, 0xa6, 0x22, 0xd9, 0x04, 0xa5, 0x12, 0xf3, 0x8b, 0x33, 0xa9, 0x8c, 0xaf, 0xe1, 0xf6, 0x11, + 0xf2, 0xbe, 0x9c, 0xc8, 0xaf, 0xc0, 0x45, 0xd1, 0xac, 0x0a, 0xe6, 0xae, 0xf2, 0xfc, 0xe3, 0xda, + 0x91, 0x83, 0xa1, 0x95, 0xb3, 0x67, 0xd3, 0xa2, 0xb2, 0xc3, 0x1a, 0x92, 0x8f, 0x1d, 0x70, 0x46, + 0x56, 0xbf, 0x2f, 0x90, 0xef, 0xc3, 0x14, 0x77, 0x97, 0xae, 0x78, 0x41, 0x88, 0x5b, 0xce, 0xb9, + 0x3e, 0xdf, 0xbc, 0x96, 0xfa, 0xcd, 0x22, 0xf7, 0xc1, 0xf2, 0x18, 0x3b, 0xf4, 0x18, 0x27, 0xf8, + 0x91, 0xf7, 0x60, 0x62, 0xcb, 0x6d, 0xd7, 0xf8, 0x76, 0x6d, 0x6b, 0xfe, 0x7c, 0xbc, 0x54, 0x75, + 0xdc, 0xb6, 0x2d, 0x77, 0x7b, 0x9d, 0x48, 0xb3, 0xa8, 0xd8, 0x64, 0x0f, 0x26, 0x6a, 0xb5, 0x95, + 0x65, 0x97, 0xad, 0x95, 0x9d, 0xe3, 0xf9, 0x0b, 0x7d, 0xea, 0xf6, 0x4a, 0x6a, 0xdd, 0x26, 0x83, + 0xe0, 0x08, 0x13, 0x39, 0xdb, 0x75, 0xaf, 0x73, 0x6c, 0xa9, 0x9c, 0x52, 0xc2, 0x60, 0x2e, 0x3e, + 0xe3, 0x30, 0x98, 0xff, 0x32, 0x93, 0x98, 0x51, 0x64, 0x15, 0xc6, 0xc4, 0x30, 0x08, 0xbb, 0xa4, + 0xb7, 0x21, 0x2f, 0xa6, 0x36, 0x64, 0x4c, 0x0c, 0xac, 0x25, 0xe9, 0xc9, 0x23, 0xc6, 0xea, 0xc0, + 0xe9, 0x36, 0x65, 0x06, 0xe8, 0xef, 0xf1, 0x09, 0x83, 0x20, 0x4d, 0x35, 0x54, 0xce, 0x1e, 0x5c, + 0xa7, 0xc7, 0x6e, 0xa2, 0x8e, 0x90, 0x5f, 0x23, 0x0f, 0x78, 0xb2, 0x96, 0x6c, 0x14, 0x6c, 0xa5, + 0x67, 0x66, 0x79, 0x66, 0x1f, 0x64, 0x5f, 0x31, 0xff, 0x73, 0x03, 0x26, 0xb5, 0x29, 0x49, 0xee, + 0x2a, 0xe1, 0x87, 0x71, 0x9c, 0xb9, 0x86, 0x93, 0xfa, 0xd0, 0xeb, 0x5d, 0x11, 0x73, 0x9a, 0xe9, + 0x4f, 0x97, 0x9a, 0x68, 0x7b, 0xa0, 0x3f, 0x20, 0x4e, 0xfe, 0x96, 0xeb, 0x93, 0xfc, 0xed, 0x47, + 0x53, 0x30, 0xa5, 0x1b, 0x7a, 0x6c, 0xe7, 0x85, 0x2e, 0x45, 0xe9, 0xef, 0xe2, 0xe9, 0x0c, 0x11, + 0xa2, 0xbd, 0x9a, 0x8a, 0x10, 0xf2, 0x1a, 0x40, 0x14, 0xa0, 0x22, 0x5d, 0x5a, 0x62, 0xa9, 0x50, + 0x0a, 0xc8, 0x2f, 0x02, 0x6c, 0x78, 0x0d, 0x1a, 0x65, 0xd1, 0x1c, 0xe0, 0x56, 0x7f, 0xbd, 0x27, + 0x91, 0xc1, 0xf9, 0xb6, 0xd7, 0xa0, 0xbd, 0x59, 0x0b, 0x14, 0x8e, 0xe4, 0x5b, 0x30, 0x62, 0x75, + 0x9b, 0x54, 0x3a, 0x70, 0x26, 0xe4, 0x24, 0xe9, 0x36, 0x95, 0xa7, 0x97, 0xfc, 0x6e, 0xf2, 0x34, + 0x95, 0x01, 0xc8, 0x47, 0x3c, 0xc1, 0x01, 0x3e, 0xda, 0x20, 0xf3, 0x47, 0xa1, 0x73, 0x4a, 0x51, + 0x99, 0x98, 0x56, 0xbf, 0x27, 0x81, 0x01, 0x27, 0x21, 0x9b, 0x30, 0x26, 0x96, 0x51, 0x71, 0x5a, + 0xf9, 0x52, 0x9a, 0x9f, 0x5c, 0xb1, 0xa5, 0x45, 0xc6, 0x44, 0x04, 0xeb, 0xae, 0x6b, 0xee, 0x5c, + 0x7b, 0x1f, 0xc6, 0x19, 0x7b, 0xfe, 0x96, 0xd0, 0x58, 0xec, 0xca, 0x53, 0x2a, 0x94, 0x7c, 0x4e, + 0x28, 0x26, 0x20, 0xdf, 0xc1, 0xbc, 0xa8, 0xa2, 0xab, 0x07, 0x1e, 0xb7, 0x5c, 0xeb, 0xe9, 0xea, + 0x39, 0xa7, 0xd3, 0x49, 0xc9, 0x73, 0x1d, 0xf1, 0x23, 0x87, 0xd1, 0xe5, 0xe0, 0x61, 0x92, 0x52, + 0xdc, 0xe8, 0xf9, 0xc0, 0xbc, 0xbc, 0xef, 0xda, 0x9b, 0x0d, 0x55, 0xe3, 0x4b, 0x3a, 0x50, 0x8c, + 0x57, 0x23, 0xf1, 0x2d, 0x18, 0xf4, 0xad, 0xb7, 0x7b, 0xbe, 0xa5, 0x0e, 0x60, 0xcf, 0xe7, 0x7a, + 0xb8, 0x93, 0x46, 0xfc, 0x56, 0x9a, 0xf8, 0xde, 0xc4, 0xa0, 0xef, 0xbd, 0xd6, 0xf3, 0xbd, 0xd9, + 0xc6, 0x7e, 0xef, 0x77, 0x12, 0x3c, 0xc9, 0xfb, 0x30, 0x29, 0x21, 0x38, 0x3f, 0x44, 0xce, 0x6a, + 0xfe, 0xca, 0xdf, 0x3e, 0x06, 0xfd, 0xea, 0x69, 0x3d, 0x55, 0x64, 0x95, 0x9a, 0x4b, 0xc7, 0xa4, + 0x46, 0x9d, 0x94, 0x0a, 0x1d, 0x99, 0x7c, 0x06, 0x13, 0xab, 0x2d, 0xd6, 0x10, 0xaf, 0xed, 0x84, + 0x14, 0x0d, 0xb6, 0xf8, 0xe8, 0x48, 0x29, 0x51, 0x44, 0x95, 0xbf, 0xf5, 0x10, 0x17, 0xa9, 0x46, + 0xad, 0x42, 0xc1, 0x3a, 0x8f, 0x3b, 0x55, 0x85, 0x0c, 0x07, 0xc2, 0x3c, 0x7b, 0x31, 0xe5, 0xf8, + 0x46, 0x61, 0x8f, 0xf6, 0x0e, 0xf7, 0xd5, 0xda, 0x62, 0x42, 0x04, 0xfa, 0x92, 0xa5, 0xf2, 0x24, + 0x1f, 0xc0, 0x84, 0xc8, 0xd7, 0x53, 0xb2, 0x36, 0x82, 0xf9, 0x62, 0xfc, 0xcc, 0x96, 0x4c, 0xed, + 0x63, 0x3b, 0x7e, 0xe2, 0x0c, 0x3f, 0xc6, 0x27, 0xdf, 0x86, 0xb9, 0x3d, 0xb7, 0xdd, 0xf0, 0x1e, + 0x05, 0x62, 0x99, 0x12, 0x8a, 0x6e, 0x26, 0x8e, 0x54, 0x7c, 0xc4, 0xcb, 0x6d, 0x69, 0xa9, 0xf4, + 0x28, 0xbe, 0x54, 0x0e, 0xe4, 0x57, 0x7b, 0x38, 0x73, 0x09, 0x22, 0x83, 0x24, 0x68, 0xb1, 0x47, + 0x82, 0x7a, 0x3f, 0x9f, 0x14, 0xa7, 0xd4, 0xcf, 0x10, 0x0f, 0x88, 0x6e, 0x97, 0x7f, 0xe2, 0xb9, + 0xed, 0xf9, 0x59, 0xed, 0x49, 0xec, 0x68, 0x15, 0x43, 0x3c, 0xfe, 0x32, 0x85, 0x7c, 0x1a, 0x47, + 0x37, 0x1b, 0x7e, 0xe0, 0x69, 0x4e, 0xb6, 0x14, 0xd6, 0xe4, 0x33, 0x28, 0xb0, 0xff, 0xa3, 0x2d, + 0xd0, 0x9c, 0x76, 0xe0, 0xaf, 0x60, 0x8a, 0xef, 0xe0, 0x18, 0x61, 0x42, 0xa1, 0x94, 0xdd, 0x91, + 0xc6, 0x8a, 0xbc, 0x0b, 0xc0, 0x4c, 0x33, 0xa1, 0x8e, 0xcf, 0xc7, 0x59, 0x9f, 0xd0, 0x82, 0xeb, + 0x55, 0xc4, 0x31, 0x32, 0xdb, 0x97, 0xb1, 0x5f, 0xb5, 0x6e, 0xc3, 0x63, 0x73, 0xe3, 0x02, 0xd2, + 0xe2, 0xbe, 0x0c, 0x69, 0x03, 0x0e, 0x57, 0xa5, 0x43, 0x41, 0x37, 0xff, 0xcc, 0x80, 0xb9, 0xb4, + 0x4e, 0x3a, 0x25, 0xc1, 0xaa, 0x99, 0x88, 0x39, 0x42, 0xc7, 0x20, 0x8f, 0x39, 0x8a, 0x22, 0x8d, + 0x16, 0x60, 0xe4, 0xbe, 0xdb, 0x6e, 0xc8, 0x73, 0x19, 0x5c, 0x87, 0x1f, 0x30, 0x80, 0xc5, 0xe1, + 0x0c, 0x81, 0x5f, 0xfc, 0x61, 0x0b, 0xf5, 0x08, 0x47, 0xc0, 0x7b, 0x3e, 0x16, 0x87, 0x33, 0x04, + 0xb6, 0xde, 0xcb, 0xf5, 0x09, 0x11, 0x98, 0x19, 0x10, 0x58, 0x1c, 0x4e, 0xae, 0xc1, 0xd8, 0x66, + 0x7b, 0x8d, 0x3a, 0x0f, 0xa9, 0x38, 0xf0, 0x47, 0x47, 0xa6, 0xd7, 0xb6, 0x9b, 0x0c, 0x66, 0xc9, + 0x42, 0xf3, 0xa7, 0x06, 0xcc, 0xf4, 0x8c, 0xcf, 0xe9, 0x39, 0x64, 0x07, 0x47, 0x57, 0x0c, 0xd3, + 0x3e, 0x5e, 0xfd, 0x5c, 0x7a, 0xf5, 0xcd, 0xdf, 0xcf, 0xc1, 0xc5, 0x3e, 0xcb, 0x65, 0x1c, 0x19, + 0x65, 0x9c, 0x1a, 0x19, 0xf5, 0x5d, 0xb6, 0x3c, 0x39, 0x6e, 0x2b, 0xd8, 0xf6, 0xe2, 0x1a, 0xc7, + 0x87, 0xc8, 0x58, 0x26, 0x53, 0x3c, 0xbe, 0x2c, 0xec, 0x82, 0x4b, 0x75, 0xa4, 0xb0, 0x43, 0xaf, + 0xe7, 0x08, 0x4a, 0x67, 0xd6, 0x13, 0x9b, 0x94, 0xfd, 0x4b, 0x12, 0x9b, 0xa4, 0x47, 0x04, 0xe4, + 0x9e, 0x69, 0x44, 0x40, 0xfa, 0x99, 0xdb, 0xc8, 0xd3, 0x9c, 0x5d, 0x96, 0x61, 0xb2, 0x46, 0x1d, + 0xbf, 0x7e, 0x54, 0x0a, 0xf8, 0x20, 0xf1, 0x04, 0xf9, 0x22, 0x43, 0x0c, 0x2b, 0xb0, 0x9d, 0xa0, + 0x77, 0x2c, 0x34, 0x1a, 0xf3, 0xa7, 0x19, 0x3d, 0xa4, 0xea, 0x2f, 0xa3, 0xbc, 0xbc, 0x01, 0x23, + 0x7b, 0x47, 0xd4, 0x97, 0xd6, 0x39, 0x56, 0xe4, 0x11, 0x03, 0xa8, 0x15, 0x41, 0x0c, 0xb2, 0x0c, + 0x53, 0x5b, 0xbc, 0xff, 0x64, 0xa7, 0xe4, 0x62, 0xbb, 0xaf, 0x23, 0x56, 0xc8, 0x94, 0x5e, 0x49, + 0x50, 0x99, 0xbf, 0x02, 0x05, 0xb5, 0xd2, 0xa8, 0x58, 0xd8, 0x6f, 0x31, 0xb3, 0xb9, 0x62, 0x61, + 0x00, 0x8b, 0xc3, 0x4f, 0xcd, 0x0f, 0x1d, 0xf7, 0x66, 0xf6, 0xb4, 0xde, 0x64, 0x1f, 0x47, 0xb9, + 0x55, 0x3e, 0x8e, 0xbf, 0xd5, 0x8f, 0x87, 0x0c, 0x60, 0x71, 0xf8, 0x33, 0xfd, 0xf8, 0x7f, 0x65, + 0x88, 0x0c, 0x44, 0xef, 0xc0, 0x78, 0x7c, 0x10, 0x1e, 0x67, 0xe1, 0x9b, 0x95, 0x87, 0x3a, 0x81, + 0x1e, 0x58, 0x27, 0x80, 0xec, 0x53, 0xbb, 0xd4, 0xdf, 0xd7, 0xe2, 0x2f, 0x1f, 0x32, 0x80, 0xfa, + 0x29, 0xc4, 0x38, 0xcb, 0xb8, 0xde, 0x82, 0xb1, 0x92, 0x70, 0xc8, 0xf0, 0x01, 0xe5, 0x31, 0xa6, + 0x3d, 0xde, 0x17, 0x89, 0x65, 0xfe, 0x8e, 0x01, 0xe7, 0x53, 0x4d, 0x31, 0xf6, 0x55, 0x6e, 0xf3, + 0x29, 0x62, 0x9d, 0x34, 0xf8, 0x38, 0xc6, 0x59, 0x62, 0x49, 0x87, 0x6f, 0x8b, 0xf9, 0x32, 0x8c, + 0x47, 0x8e, 0x00, 0x32, 0x27, 0x87, 0x0e, 0x5d, 0xfb, 0x72, 0x3f, 0xf9, 0x17, 0x06, 0x8c, 0xb2, + 0x2a, 0x3c, 0xb7, 0x17, 0x14, 0xd3, 0x0f, 0x7a, 0x58, 0x93, 0x86, 0xba, 0x96, 0xf8, 0xbb, 0xa3, + 0x00, 0x31, 0x32, 0xd9, 0x87, 0xa9, 0xcd, 0xd5, 0x4a, 0x79, 0xb5, 0x41, 0xdb, 0x21, 0x86, 0x4f, + 0x24, 0x32, 0x34, 0x45, 0x39, 0xcb, 0x39, 0xc2, 0x71, 0xac, 0x63, 0x3c, 0xb7, 0x51, 0xb7, 0xdd, + 0x88, 0x4e, 0x4b, 0x35, 0xa6, 0x71, 0x64, 0xdf, 0xa8, 0x95, 0xd6, 0xd7, 0x94, 0x6f, 0x64, 0x86, + 0xfc, 0x46, 0xe0, 0xb4, 0x9a, 0x7d, 0xbe, 0xa1, 0x73, 0x24, 0x47, 0x50, 0xbc, 0x87, 0xab, 0x98, + 0xf2, 0x95, 0xec, 0xe0, 0xaf, 0xbc, 0x22, 0xbe, 0xf2, 0x02, 0x5f, 0xfe, 0xd2, 0xbf, 0xd3, 0xc3, + 0x35, 0x96, 0xdc, 0xdc, 0xa9, 0x92, 0xfb, 0xd7, 0x0d, 0x18, 0xe5, 0xcb, 0x64, 0xf4, 0xc6, 0x76, + 0xea, 0x42, 0xbc, 0xf7, 0x6c, 0x16, 0xe2, 0x22, 0x6a, 0x2e, 0xcd, 0x07, 0xc2, 0xcb, 0x48, 0x25, + 0xf1, 0x60, 0xb7, 0x3c, 0xcd, 0xc3, 0xbd, 0x01, 0x2f, 0x89, 0x23, 0x72, 0xf9, 0x5b, 0xdd, 0x2a, + 0x17, 0x8e, 0x41, 0x56, 0xe3, 0x60, 0xd0, 0xb1, 0x53, 0x83, 0x41, 0x65, 0x00, 0xed, 0x98, 0x08, + 0x06, 0xd5, 0x43, 0x40, 0xd7, 0x60, 0x5c, 0x84, 0x98, 0x2e, 0xc9, 0xb7, 0x63, 0xa5, 0x27, 0x2f, + 0x82, 0x2b, 0x4f, 0x5b, 0x71, 0x90, 0xbd, 0xaf, 0x25, 0x60, 0x8f, 0x10, 0xc9, 0x26, 0x8c, 0xc7, + 0x37, 0x2f, 0xf5, 0xac, 0x03, 0x11, 0x5c, 0xdc, 0xc1, 0x90, 0x71, 0x6a, 0x29, 0x17, 0x2d, 0x63, + 0x1e, 0xe6, 0x8f, 0x0d, 0x28, 0x26, 0xe5, 0x05, 0x9f, 0x9d, 0x94, 0x17, 0x5c, 0xa3, 0xd0, 0x30, + 0xfe, 0xec, 0x64, 0x74, 0x23, 0x56, 0x7f, 0xee, 0x50, 0x41, 0x27, 0x8b, 0x90, 0x67, 0xd3, 0xae, + 0x9d, 0x78, 0x77, 0xb2, 0x2b, 0x60, 0x6a, 0x88, 0x81, 0xc4, 0x53, 0x66, 0xed, 0x3f, 0xcf, 0xc2, + 0x84, 0x32, 0x58, 0xe4, 0x0d, 0xc8, 0xaf, 0x06, 0x6b, 0x5e, 0xfd, 0x01, 0x6d, 0x88, 0x93, 0xcb, + 0xc9, 0x27, 0x27, 0x0b, 0xe3, 0x6e, 0x60, 0x37, 0x11, 0x68, 0x45, 0xc5, 0x64, 0x09, 0x26, 0xf9, + 0x5f, 0x32, 0xf3, 0x45, 0x26, 0x3e, 0x75, 0xe1, 0xc8, 0x32, 0xe7, 0x85, 0x6a, 0x26, 0x68, 0x24, + 0xe4, 0x7b, 0x00, 0x1c, 0xc0, 0xc6, 0x77, 0x88, 0x1b, 0x26, 0x72, 0x02, 0x9f, 0x17, 0x1f, 0x08, + 0x5d, 0xb5, 0x85, 0x28, 0x0a, 0x0a, 0x43, 0xf2, 0x7d, 0x7e, 0x0d, 0x55, 0x0a, 0xd7, 0xe9, 0xe1, + 0xcb, 0xa6, 0x8c, 0x75, 0x62, 0xfc, 0xed, 0xf4, 0x70, 0x63, 0x95, 0x25, 0xf9, 0x89, 0x01, 0x97, + 0x2d, 0x5a, 0xf7, 0x1e, 0x52, 0xff, 0xb8, 0x14, 0x22, 0x96, 0xfa, 0xc5, 0xd3, 0x63, 0x9b, 0xef, + 0x88, 0x2f, 0xbe, 0xee, 0x0b, 0x2e, 0x78, 0x2f, 0xb2, 0xd5, 0x09, 0xed, 0x01, 0x55, 0x18, 0xf0, + 0x49, 0xf3, 0x7f, 0x32, 0x94, 0x29, 0x40, 0x36, 0x30, 0x9b, 0x22, 0x17, 0x16, 0xe1, 0xd9, 0x8e, + 0x2c, 0x3c, 0x09, 0xb7, 0xe8, 0xc1, 0xd2, 0x0b, 0xe2, 0x90, 0x71, 0x36, 0x12, 0xb9, 0x44, 0x96, + 0x45, 0x0e, 0x24, 0x1f, 0x43, 0x0e, 0x87, 0xea, 0xf4, 0x6c, 0xd6, 0x72, 0xa9, 0xc9, 0xb1, 0x31, + 0xc2, 0x5a, 0x23, 0x25, 0xf9, 0x9a, 0x08, 0x9f, 0xcb, 0x6a, 0x2f, 0xaa, 0x30, 0x10, 0xab, 0x47, + 0xb4, 0xc6, 0xc4, 0x11, 0xee, 0x8a, 0xb4, 0xfe, 0x56, 0x06, 0x8a, 0xc9, 0x89, 0x47, 0x3e, 0x82, + 0x82, 0xbc, 0x45, 0xbb, 0xe2, 0x88, 0x84, 0x1a, 0x05, 0x91, 0xd0, 0x42, 0xc0, 0xed, 0x23, 0x47, + 0xcb, 0x51, 0xae, 0x11, 0xb0, 0x05, 0x79, 0x5b, 0x5c, 0x9c, 0x52, 0x26, 0x50, 0xe8, 0x85, 0x9d, + 0xc4, 0x03, 0x0b, 0x12, 0x8d, 0xbc, 0x03, 0x59, 0x7e, 0x7d, 0x5c, 0x4d, 0x5c, 0xbc, 0xbe, 0x5c, + 0xe2, 0xf7, 0x56, 0x79, 0x5c, 0x8b, 0x7e, 0x02, 0xc1, 0xf0, 0xc9, 0x9a, 0x72, 0x31, 0x79, 0x54, + 0xcb, 0xcd, 0x27, 0xc1, 0x51, 0xe3, 0x4e, 0xbf, 0xa1, 0xac, 0x26, 0x70, 0x37, 0xff, 0x51, 0x16, + 0xc6, 0xa3, 0xef, 0x13, 0x02, 0x68, 0x6f, 0x88, 0x00, 0x15, 0xfc, 0x9b, 0x5c, 0x82, 0xbc, 0x34, + 0x31, 0x44, 0x90, 0xca, 0x58, 0x20, 0xcc, 0x8b, 0x79, 0x90, 0xb6, 0x04, 0x37, 0x2f, 0x2c, 0xf9, + 0x93, 0xdc, 0x86, 0xc8, 0x50, 0xe8, 0x67, 0x51, 0xe4, 0xd8, 0x80, 0x59, 0x11, 0x1a, 0x99, 0x82, + 0x8c, 0xcb, 0x2f, 0xc5, 0x8c, 0x5b, 0x19, 0xb7, 0x41, 0x3e, 0x82, 0xbc, 0xd3, 0x68, 0xd0, 0x86, + 0xed, 0x48, 0x17, 0xf1, 0x20, 0xa1, 0xc9, 0x33, 0x6e, 0x5c, 0xa3, 0x23, 0x55, 0x29, 0x24, 0x25, + 0x18, 0x6f, 0x3a, 0xfc, 0x00, 0xab, 0x31, 0xc4, 0xf2, 0x10, 0x73, 0xc8, 0x33, 0xb2, 0x9d, 0x80, + 0x36, 0xc8, 0xeb, 0x90, 0x63, 0xa3, 0x29, 0xd6, 0x83, 0x28, 0x1d, 0xfd, 0xe6, 0xf6, 0x16, 0xef, + 0xb0, 0x95, 0x73, 0x16, 0x22, 0x90, 0x57, 0x21, 0xdb, 0x5d, 0x3c, 0x10, 0x9a, 0xbe, 0x18, 0x67, + 0x16, 0x88, 0xd0, 0x58, 0x31, 0xb9, 0x03, 0xf9, 0x47, 0xfa, 0xfd, 0xf2, 0xf3, 0x89, 0x61, 0x8c, + 0xf0, 0x23, 0xc4, 0xa5, 0x3c, 0x8c, 0xf2, 0x7b, 0xcf, 0xe6, 0x4b, 0x00, 0xf1, 0xa7, 0x7b, 0x63, + 0x89, 0xcc, 0xef, 0xc1, 0x78, 0xf4, 0x49, 0xf2, 0x22, 0xc0, 0x03, 0x7a, 0x6c, 0x1f, 0x39, 0xed, + 0x86, 0x78, 0x38, 0xb5, 0x60, 0x8d, 0x3f, 0xa0, 0xc7, 0x2b, 0x08, 0x20, 0x17, 0x61, 0xac, 0xc3, + 0x46, 0x55, 0x3e, 0x0f, 0x62, 0x8d, 0x76, 0xba, 0xfb, 0x4c, 0x42, 0xe7, 0x61, 0x0c, 0x9d, 0x28, + 0x62, 0xa2, 0x4d, 0x5a, 0xf2, 0xa7, 0xf9, 0xf7, 0x32, 0x98, 0x66, 0x48, 0xa9, 0x27, 0x79, 0x05, + 0x26, 0xeb, 0x3e, 0xc5, 0xe5, 0x08, 0xdf, 0x96, 0x11, 0xdf, 0x29, 0xc4, 0xc0, 0xd5, 0x06, 0xb9, + 0x06, 0xd3, 0xf1, 0x7b, 0x25, 0x76, 0x7d, 0x5f, 0x64, 0x90, 0x28, 0x58, 0x93, 0x1d, 0xf9, 0x60, + 0x49, 0x79, 0x1f, 0x2f, 0x73, 0x15, 0xd5, 0x3b, 0xcf, 0xa1, 0x7c, 0x7b, 0x64, 0xdc, 0x9a, 0x56, + 0xe0, 0x78, 0xf2, 0x73, 0x01, 0x46, 0x1d, 0xe7, 0xb0, 0xeb, 0xf2, 0x8b, 0x25, 0x05, 0x4b, 0xfc, + 0x22, 0x6f, 0xc2, 0x4c, 0xe0, 0x1e, 0xb6, 0x9d, 0xb0, 0xeb, 0x8b, 0x3c, 0x4f, 0xd4, 0x47, 0x91, + 0x9a, 0xb4, 0x8a, 0x51, 0x41, 0x99, 0xc3, 0xc9, 0xdb, 0x40, 0xd4, 0xef, 0x79, 0xfb, 0x3f, 0xa0, + 0x75, 0x2e, 0x6a, 0x05, 0x6b, 0x46, 0x29, 0xd9, 0xc4, 0x02, 0xf2, 0x32, 0x14, 0x7c, 0x1a, 0xa0, + 0x49, 0x86, 0xdd, 0x86, 0x59, 0xf8, 0xac, 0x09, 0x09, 0xbb, 0x4f, 0x8f, 0xcd, 0x25, 0x98, 0xe9, + 0x99, 0x8f, 0xe4, 0x6d, 0x6e, 0xdd, 0x8b, 0xf5, 0xb9, 0xc0, 0x37, 0x33, 0xf8, 0x16, 0xb6, 0xb6, + 0x34, 0x0b, 0x24, 0xb3, 0x0d, 0x05, 0x55, 0xbf, 0x9e, 0x92, 0x9b, 0xe3, 0x02, 0xc6, 0x84, 0x73, + 0xe5, 0x33, 0xfa, 0xe4, 0x64, 0x21, 0xe3, 0x36, 0x30, 0x12, 0xfc, 0x3a, 0xe4, 0xa5, 0x95, 0xa0, + 0x3e, 0xf2, 0x29, 0x0c, 0xca, 0x63, 0x2b, 0x2a, 0x35, 0x5f, 0x87, 0x31, 0xa1, 0x42, 0x07, 0x3b, + 0xb4, 0xcc, 0x5f, 0xcf, 0xc0, 0xb4, 0x45, 0xd9, 0x04, 0x17, 0xcf, 0x67, 0x7e, 0xc5, 0x5e, 0x6e, + 0xd1, 0xda, 0x36, 0x20, 0x15, 0xce, 0xef, 0x19, 0x30, 0x9b, 0x82, 0xfb, 0x85, 0x12, 0x9c, 0xde, + 0x85, 0xf1, 0x8a, 0xeb, 0x34, 0x4b, 0x8d, 0x46, 0x14, 0xdb, 0x8e, 0xd6, 0x60, 0x83, 0x4d, 0x27, + 0x87, 0x41, 0xd5, 0xc5, 0x34, 0x42, 0x25, 0x37, 0x84, 0x50, 0xc4, 0x79, 0xfa, 0xe5, 0xdb, 0x30, + 0xc0, 0xeb, 0x14, 0xbf, 0x0c, 0x83, 0xf7, 0xa1, 0x39, 0x30, 0x8e, 0x4f, 0x78, 0x6e, 0x87, 0x2e, + 0xfd, 0x3e, 0x74, 0xb2, 0x79, 0x43, 0x6d, 0x3b, 0x7f, 0x9c, 0x81, 0x0b, 0xe9, 0x84, 0x5f, 0x34, + 0x57, 0x2d, 0xe6, 0x21, 0x52, 0x9e, 0xdf, 0xc1, 0x5c, 0xb5, 0x3c, 0x69, 0x11, 0xe2, 0xc7, 0x08, + 0xe4, 0x00, 0x26, 0xd7, 0x9c, 0x20, 0x5c, 0xa1, 0x8e, 0x1f, 0xee, 0x53, 0x27, 0x1c, 0xc2, 0x82, + 0x7d, 0x55, 0xbe, 0x8d, 0x88, 0x8b, 0xda, 0x91, 0xa4, 0x4c, 0x18, 0x78, 0x3a, 0xdb, 0x48, 0x50, + 0x72, 0x43, 0x08, 0xca, 0x2f, 0xc1, 0x74, 0x8d, 0xb6, 0x9c, 0xce, 0x91, 0xe7, 0x53, 0xe1, 0x83, + 0xbf, 0x09, 0x93, 0x11, 0x28, 0x55, 0x5a, 0xf4, 0x62, 0x0d, 0x5f, 0xe9, 0x88, 0x58, 0x95, 0xe8, + 0xc5, 0xe6, 0xdf, 0xce, 0xc0, 0xc5, 0x52, 0x5d, 0x9c, 0x94, 0x88, 0x02, 0x79, 0xa0, 0xfb, 0x25, + 0x7f, 0x9b, 0xdc, 0x82, 0xf1, 0x75, 0xe7, 0xf1, 0x1a, 0x75, 0x02, 0x1a, 0x88, 0x4c, 0x81, 0xdc, + 0xfc, 0x72, 0x1e, 0xdb, 0x91, 0xdb, 0xcb, 0x8a, 0x71, 0xd4, 0xcd, 0x66, 0xee, 0x29, 0x37, 0x9b, + 0x26, 0x8c, 0xae, 0x78, 0xcd, 0x86, 0x58, 0x9c, 0xc4, 0xf9, 0xc7, 0x11, 0x42, 0x2c, 0x51, 0x62, + 0xfe, 0x99, 0x01, 0x53, 0x51, 0x8d, 0xb1, 0x0a, 0x5f, 0x7a, 0x97, 0x5c, 0x83, 0x31, 0xfc, 0x50, + 0xf4, 0x30, 0x2c, 0x2e, 0x1a, 0x4d, 0x06, 0xb2, 0xdd, 0x86, 0x25, 0x0b, 0xd5, 0x9e, 0x18, 0x79, + 0xba, 0x9e, 0x30, 0xff, 0x23, 0x3c, 0x5a, 0x51, 0x5b, 0xc9, 0x56, 0x22, 0xa5, 0x22, 0xc6, 0x90, + 0x15, 0xc9, 0x3c, 0xb3, 0x21, 0xc9, 0xf6, 0x1d, 0x92, 0x1f, 0x66, 0x60, 0x22, 0xaa, 0xec, 0x57, + 0x2c, 0x91, 0x48, 0xd4, 0xae, 0xa1, 0x2e, 0x8a, 0xd4, 0x14, 0x5d, 0x21, 0xee, 0x63, 0x7c, 0x0c, + 0xa3, 0x62, 0x32, 0x19, 0x89, 0x83, 0xcd, 0xc4, 0xe8, 0x2e, 0x4d, 0x09, 0xd6, 0xa3, 0x38, 0xa0, + 0x81, 0x25, 0xe8, 0xf0, 0x26, 0xce, 0x1e, 0xdd, 0x17, 0x27, 0x6d, 0xcf, 0xed, 0x1a, 0x95, 0x7e, + 0x13, 0x27, 0x6e, 0xd8, 0x50, 0xab, 0xd3, 0xbf, 0x35, 0x02, 0xc5, 0x24, 0xc9, 0xe9, 0xa9, 0x5a, + 0xb6, 0xba, 0xfb, 0xe2, 0xb5, 0x3f, 0x4c, 0xd5, 0xd2, 0xe9, 0xee, 0x5b, 0x0c, 0x46, 0xae, 0x41, + 0x6e, 0xcb, 0x77, 0x1f, 0x62, 0xab, 0xc5, 0x63, 0x87, 0x1d, 0xdf, 0x7d, 0xa8, 0x86, 0xa4, 0xb3, + 0x72, 0xdc, 0xd0, 0xae, 0xd5, 0x30, 0xba, 0x19, 0x0d, 0x6b, 0xb1, 0xa1, 0x6d, 0x06, 0xc9, 0xac, + 0x63, 0x12, 0x8d, 0x2d, 0x95, 0x4b, 0xd4, 0xf1, 0x45, 0x5a, 0x11, 0xa1, 0xce, 0x70, 0xa9, 0xdc, + 0x47, 0x30, 0xcf, 0x97, 0x6f, 0xa9, 0x48, 0xa4, 0x09, 0x44, 0xf9, 0x29, 0x27, 0xf0, 0xe9, 0x7b, + 0x3c, 0xf9, 0x3a, 0xf0, 0x9c, 0xca, 0xda, 0x56, 0x67, 0x73, 0x0a, 0xdf, 0x67, 0xe9, 0x23, 0xdc, + 0x12, 0x97, 0x4c, 0xd1, 0x91, 0x91, 0x3f, 0x95, 0x99, 0x0c, 0xff, 0x07, 0x7e, 0x09, 0x35, 0x72, + 0x67, 0xc4, 0x4c, 0xc8, 0x87, 0x30, 0xa1, 0xc6, 0xac, 0xf3, 0xc8, 0xea, 0x2b, 0xfc, 0x72, 0x67, + 0x9f, 0x94, 0xad, 0x2a, 0x01, 0xd9, 0x87, 0x8b, 0x65, 0xaf, 0x1d, 0x74, 0x5b, 0xb4, 0xa1, 0x9d, + 0x04, 0xaf, 0x56, 0x70, 0x83, 0x39, 0xce, 0x63, 0x59, 0xeb, 0x02, 0x45, 0x84, 0x48, 0xcb, 0xa8, + 0x11, 0x7d, 0x03, 0xd2, 0x8f, 0x91, 0xf9, 0x35, 0x55, 0x12, 0x85, 0x61, 0x30, 0x50, 0x12, 0xcd, + 0xdf, 0xc6, 0xad, 0x42, 0xcb, 0x0b, 0xa9, 0xb0, 0x90, 0x9e, 0x5b, 0x5d, 0x19, 0xbb, 0xa9, 0x47, + 0xb4, 0xc0, 0x1f, 0xad, 0x75, 0x1c, 0x63, 0xf7, 0x4e, 0xac, 0xd8, 0xb8, 0xc3, 0x5a, 0xba, 0xa9, + 0x95, 0x69, 0xfd, 0x0f, 0x0c, 0x38, 0x9f, 0x4a, 0x4b, 0x6e, 0x02, 0xc4, 0x76, 0xa8, 0xe8, 0x25, + 0xfe, 0xd8, 0x41, 0x04, 0xb5, 0x14, 0x0c, 0xf2, 0xdd, 0xa4, 0x05, 0x79, 0xfa, 0x02, 0x28, 0xdf, + 0x67, 0x9c, 0xd2, 0x2d, 0xc8, 0x14, 0xbb, 0xd1, 0xfc, 0xbd, 0x2c, 0xcc, 0x28, 0x81, 0xcd, 0xbc, + 0xae, 0xa7, 0x44, 0x3c, 0x3c, 0x48, 0xbc, 0xfb, 0x9c, 0xd1, 0xde, 0x4a, 0xe9, 0xe1, 0x96, 0xf2, + 0x0a, 0x34, 0xba, 0xde, 0xc4, 0x3b, 0x1b, 0xa7, 0x3c, 0x06, 0x1d, 0xa4, 0xbf, 0x32, 0xfe, 0x66, + 0xdf, 0xaf, 0x3d, 0x83, 0xd7, 0xc6, 0xff, 0x12, 0x3f, 0xac, 0xfc, 0xdb, 0x19, 0x98, 0xed, 0x69, + 0xf3, 0x73, 0x3b, 0xeb, 0x3e, 0xd6, 0x56, 0xd0, 0x97, 0xfa, 0x8d, 0xe9, 0x50, 0x96, 0xca, 0xcf, + 0xb3, 0x70, 0xb1, 0x0f, 0x25, 0x39, 0x4e, 0x0a, 0x11, 0xb7, 0x5c, 0x6e, 0x0f, 0xfe, 0xe0, 0x33, + 0x79, 0xb8, 0xfe, 0x9b, 0x3c, 0x80, 0xb6, 0x8e, 0x39, 0x74, 0xc5, 0x9a, 0x1d, 0x3d, 0xfd, 0xc5, + 0xa1, 0xc9, 0xc8, 0x59, 0x0e, 0x25, 0x1f, 0xc1, 0x48, 0xe9, 0x97, 0xbb, 0x3e, 0x4d, 0xdc, 0xc6, + 0x62, 0x18, 0x08, 0x57, 0xae, 0xae, 0xb1, 0x9f, 0xda, 0xd5, 0x35, 0x06, 0x20, 0xdf, 0xe0, 0x0f, + 0xd5, 0xe7, 0x34, 0x37, 0x3a, 0x92, 0xef, 0xd5, 0xe2, 0xc4, 0x13, 0xbd, 0xaf, 0xd5, 0x33, 0xc2, + 0x7b, 0xe5, 0xad, 0xc4, 0xf3, 0xf8, 0x18, 0xd3, 0x5b, 0xde, 0x8a, 0x09, 0x0f, 0xeb, 0xea, 0xbb, + 0xaf, 0x8c, 0xe2, 0xcb, 0x13, 0xfb, 0x7f, 0x3b, 0xc3, 0xa3, 0x7e, 0x79, 0xc3, 0x3e, 0x82, 0x82, + 0x0c, 0x4d, 0x50, 0xd4, 0x14, 0x2a, 0x95, 0xe8, 0x06, 0x7a, 0xe2, 0x64, 0x4b, 0x23, 0x90, 0x29, + 0x5c, 0xd8, 0x6f, 0x8c, 0x8e, 0x53, 0x0f, 0xa6, 0x22, 0x0e, 0x18, 0x4d, 0x97, 0x4c, 0xe1, 0x12, + 0x91, 0x90, 0x3b, 0x90, 0xdf, 0xa6, 0x6d, 0xa7, 0x1d, 0x46, 0x9b, 0x28, 0x0c, 0xa4, 0x08, 0x11, + 0xa6, 0xaf, 0xb8, 0x11, 0x22, 0x3e, 0x00, 0xd5, 0xdd, 0x8f, 0x5e, 0x70, 0x5f, 0xad, 0x28, 0x6f, + 0x0a, 0x5e, 0x0a, 0x94, 0x92, 0xc4, 0x0b, 0x5a, 0x3a, 0x91, 0xf9, 0xdb, 0x06, 0x8c, 0x89, 0x81, + 0x54, 0x9e, 0x6d, 0x31, 0x86, 0x78, 0xb6, 0xe5, 0x2e, 0x8c, 0x8b, 0x57, 0xa4, 0xf4, 0xb7, 0xb3, + 0xc4, 0xa3, 0x53, 0x89, 0xb7, 0xb3, 0x22, 0xd4, 0x28, 0xc9, 0x58, 0x76, 0x70, 0x92, 0x31, 0xf3, + 0xef, 0x8a, 0x9a, 0xdd, 0x2b, 0x6f, 0x91, 0x45, 0xc8, 0xaf, 0x79, 0x75, 0x47, 0x59, 0xe7, 0x50, + 0xed, 0x34, 0x05, 0x4c, 0xed, 0x20, 0x89, 0xa7, 0xbf, 0x09, 0x96, 0x19, 0xfe, 0x4d, 0xb0, 0x61, + 0xeb, 0x47, 0x53, 0x94, 0xc4, 0xee, 0x1d, 0x7c, 0xdd, 0xf3, 0x13, 0x20, 0x3d, 0x45, 0x52, 0x53, + 0x5c, 0xee, 0xa7, 0x29, 0x76, 0xef, 0x58, 0x29, 0x54, 0xe8, 0x8b, 0x8b, 0xc1, 0x35, 0xea, 0x3f, + 0x7c, 0x8e, 0xb5, 0x74, 0xba, 0x2f, 0x2e, 0xd9, 0xbc, 0xa1, 0x94, 0xf4, 0x3f, 0xcf, 0xc0, 0x85, + 0x74, 0x42, 0xb5, 0x2d, 0xc6, 0x80, 0xb6, 0x5c, 0x87, 0xfc, 0x8a, 0x17, 0x84, 0xca, 0x61, 0x36, + 0xba, 0x0c, 0x8e, 0x04, 0xcc, 0x8a, 0x4a, 0xc9, 0x2b, 0x6c, 0xa3, 0x1f, 0xc4, 0xd3, 0x13, 0xf9, + 0x61, 0xac, 0xab, 0xdb, 0xb0, 0x44, 0x91, 0xf6, 0x4a, 0x75, 0xae, 0xff, 0x2b, 0xd5, 0xe7, 0x4e, + 0x7d, 0xa5, 0xba, 0x04, 0x63, 0x62, 0xf4, 0x13, 0xee, 0xe6, 0x14, 0x91, 0xd1, 0x13, 0x5c, 0x48, + 0x3a, 0xa6, 0x51, 0xd0, 0x71, 0xb8, 0x5a, 0x91, 0x51, 0x7f, 0xa8, 0x51, 0xb8, 0x63, 0x51, 0xcf, + 0xa8, 0x11, 0x21, 0x9a, 0xbf, 0x9e, 0x01, 0xd8, 0xa3, 0xfb, 0xcf, 0x77, 0xca, 0xd3, 0x6f, 0x68, + 0x12, 0xa6, 0x9c, 0x95, 0x0d, 0x9f, 0xf1, 0x74, 0x13, 0xcf, 0xac, 0x86, 0xcf, 0x77, 0x1a, 0x3d, + 0x91, 0x9c, 0x49, 0x7f, 0x22, 0xd9, 0xdc, 0x87, 0xb9, 0x7b, 0x34, 0x8c, 0x37, 0x44, 0xd2, 0x5d, + 0x39, 0x98, 0xed, 0x5b, 0x30, 0x2e, 0xf0, 0xf5, 0x97, 0xcc, 0x64, 0xf8, 0xb8, 0xdb, 0xb0, 0x62, + 0x04, 0xa6, 0x8d, 0x2a, 0xb4, 0x49, 0x43, 0xfa, 0xe5, 0x7e, 0xa6, 0x06, 0x84, 0x37, 0x85, 0xbf, + 0x9c, 0x3b, 0xd4, 0x17, 0x4e, 0xed, 0x9f, 0x5d, 0x38, 0x1f, 0xd5, 0xfd, 0x59, 0xf2, 0xbd, 0xc5, + 0xb6, 0x94, 0x22, 0xc3, 0x44, 0xcc, 0x71, 0xc0, 0x79, 0xd5, 0x63, 0xb8, 0x2c, 0x09, 0xf6, 0xdc, + 0xe8, 0xd0, 0x7f, 0x28, 0x5a, 0xf2, 0x3e, 0x4c, 0x28, 0x34, 0x22, 0xf9, 0x0e, 0x06, 0xd6, 0x3c, + 0x72, 0xc3, 0x23, 0x3b, 0xe0, 0x70, 0x35, 0xb0, 0x46, 0x41, 0x37, 0xbf, 0x03, 0x2f, 0x44, 0x21, + 0x92, 0x29, 0x9f, 0x4e, 0x30, 0x37, 0xce, 0xc6, 0x7c, 0x23, 0x6e, 0xd6, 0x6a, 0x3b, 0xba, 0x2d, + 0x26, 0x79, 0x13, 0xb5, 0x59, 0xa2, 0x31, 0x57, 0x94, 0x54, 0xd0, 0x62, 0x4b, 0x12, 0x03, 0xcc, + 0xf7, 0x94, 0xca, 0xa6, 0x30, 0xd4, 0x88, 0x8d, 0x24, 0xf1, 0xaf, 0x67, 0x60, 0x7a, 0x73, 0xb5, + 0x52, 0x8e, 0x4e, 0x2c, 0xbf, 0x62, 0xf9, 0x58, 0xb5, 0xb6, 0xf5, 0xd7, 0x37, 0xe6, 0x0e, 0xcc, + 0x26, 0xba, 0x01, 0x4d, 0x87, 0x0f, 0x79, 0x28, 0x63, 0x04, 0x96, 0x66, 0xc3, 0x85, 0x34, 0xf6, + 0xbb, 0x77, 0xac, 0x04, 0xb6, 0xf9, 0x07, 0xf9, 0x04, 0x5f, 0xa1, 0xc2, 0xde, 0x82, 0xf1, 0xd5, + 0x20, 0xe8, 0x52, 0x7f, 0xc7, 0x5a, 0x53, 0x5d, 0x05, 0x2e, 0x02, 0xed, 0xae, 0xdf, 0xb4, 0x62, + 0x04, 0xf2, 0x06, 0xe4, 0x45, 0x56, 0x03, 0xa9, 0x13, 0x30, 0x32, 0x2b, 0x4a, 0x8a, 0x60, 0x45, + 0xc5, 0xe4, 0x1d, 0x28, 0xf0, 0xbf, 0xb9, 0xb4, 0x89, 0x0e, 0xc7, 0x63, 0x11, 0x81, 0xce, 0xa5, + 0xd3, 0xd2, 0xd0, 0xc8, 0x0d, 0xc8, 0x96, 0xca, 0x96, 0xfa, 0x80, 0x91, 0x53, 0xf7, 0xf9, 0x43, + 0x66, 0xfa, 0x26, 0xa2, 0x6c, 0x31, 0xeb, 0x0f, 0xdf, 0xd8, 0x6c, 0x50, 0xf9, 0x4e, 0x2e, 0x4a, + 0x40, 0x47, 0xc0, 0x12, 0x8b, 0x19, 0xc2, 0xc8, 0x2d, 0x18, 0xab, 0xb8, 0x41, 0xa7, 0xe9, 0x1c, + 0x8b, 0xa4, 0x8a, 0x3c, 0x4b, 0x1b, 0x07, 0xa9, 0x32, 0x23, 0xb0, 0xc8, 0x1b, 0x30, 0x52, 0xab, + 0x7b, 0xf8, 0x6e, 0x6e, 0x14, 0x11, 0x19, 0x30, 0x80, 0x96, 0xcb, 0x8c, 0x01, 0x30, 0x69, 0x0e, + 0xbf, 0xfb, 0x3f, 0xae, 0x24, 0xcd, 0x49, 0xde, 0xf9, 0x17, 0x38, 0xbd, 0xb1, 0xef, 0xf0, 0x2c, + 0x63, 0xdf, 0xf7, 0xe1, 0xe2, 0x3d, 0xf4, 0xde, 0xe8, 0x0f, 0xbb, 0xee, 0x58, 0xab, 0x22, 0xdf, + 0x01, 0x7a, 0xf3, 0xb8, 0x83, 0xc7, 0x4e, 0xbc, 0x0b, 0x9b, 0x78, 0xa4, 0xb0, 0x1f, 0x23, 0xf2, + 0x6d, 0x98, 0x4b, 0x2b, 0x12, 0x99, 0x0f, 0xf0, 0x3e, 0x57, 0xfa, 0x07, 0xd4, 0x0b, 0x55, 0x69, + 0x1c, 0xc8, 0x1a, 0x14, 0x39, 0xbc, 0xd4, 0x68, 0xb9, 0xed, 0x6a, 0xcb, 0x71, 0x9b, 0x98, 0x07, + 0x41, 0x24, 0xb3, 0x10, 0x5c, 0x1d, 0x56, 0x68, 0x53, 0x56, 0xaa, 0x05, 0xb5, 0x26, 0x28, 0xc9, + 0xdf, 0x34, 0xd8, 0x6e, 0x8e, 0x5f, 0x7a, 0xdf, 0xb1, 0xd6, 0x02, 0x71, 0xf3, 0xae, 0xdf, 0xc3, + 0x8f, 0xdb, 0xcf, 0xe8, 0xe1, 0xc7, 0x82, 0x2f, 0xbe, 0x89, 0xb3, 0x48, 0xab, 0x01, 0x26, 0xed, + 0x6f, 0x36, 0xbd, 0x47, 0x3b, 0xed, 0x87, 0xd4, 0x77, 0x0f, 0x5c, 0xda, 0xe0, 0x8d, 0x9c, 0x46, + 0x0d, 0xce, 0x93, 0xf6, 0xe3, 0xc3, 0x0d, 0xdd, 0x08, 0xa1, 0xa7, 0xa1, 0xa9, 0x1c, 0xd8, 0xc6, + 0x53, 0x86, 0x58, 0xf2, 0x9b, 0x07, 0xc5, 0x78, 0xe3, 0x29, 0xe3, 0x31, 0x6d, 0x14, 0x23, 0x55, + 0x78, 0x34, 0x12, 0x11, 0xcf, 0xf5, 0x3f, 0xe4, 0xb9, 0x46, 0x2e, 0x75, 0xc3, 0x23, 0xa9, 0xc3, + 0x17, 0xd3, 0xc2, 0x44, 0xf9, 0x71, 0xb6, 0x12, 0x26, 0xaa, 0x07, 0x87, 0xca, 0xb0, 0x93, 0x4c, + 0x6a, 0xd8, 0xc9, 0x5b, 0x30, 0x8e, 0xef, 0xed, 0x44, 0xf1, 0x78, 0x79, 0xe1, 0xab, 0x64, 0x40, + 0x9e, 0x31, 0x20, 0x46, 0x20, 0xb7, 0x00, 0x30, 0x6f, 0x20, 0x5f, 0xe0, 0x95, 0xb4, 0x2e, 0x98, + 0x5e, 0x50, 0x9c, 0x10, 0x28, 0x28, 0xc8, 0xbe, 0x66, 0x2d, 0xab, 0x47, 0x0a, 0x9c, 0x7d, 0xe0, + 0x1f, 0x08, 0xf4, 0x18, 0x81, 0x35, 0x4f, 0x19, 0x26, 0xa1, 0x54, 0x8a, 0x3d, 0x63, 0xa9, 0x22, + 0xe1, 0x69, 0xbd, 0x0c, 0x3e, 0x42, 0x9d, 0x52, 0x10, 0xa7, 0xf5, 0x51, 0xa0, 0x92, 0x15, 0x23, + 0x90, 0x6f, 0xc0, 0x58, 0x99, 0xfa, 0xe1, 0xf6, 0xf6, 0x9a, 0x78, 0x33, 0x93, 0xed, 0xcb, 0xf3, + 0x98, 0x72, 0x22, 0x0c, 0x9b, 0x9f, 0x9f, 0x2c, 0x4c, 0x86, 0x6e, 0x8b, 0xde, 0x8c, 0x5c, 0xf4, + 0x12, 0x9b, 0x2c, 0x41, 0x91, 0x47, 0x54, 0xc6, 0x86, 0x1c, 0xaa, 0x99, 0xbc, 0x78, 0xd9, 0x9e, + 0xa7, 0x59, 0x78, 0x44, 0xf7, 0xa3, 0x84, 0x1b, 0x3d, 0xf8, 0xa4, 0x2a, 0x93, 0xdb, 0xa8, 0x8d, + 0x84, 0xd8, 0xb3, 0x20, 0x14, 0xb3, 0xd6, 0xd6, 0x5e, 0x0a, 0x52, 0x82, 0xc9, 0xb2, 0xd7, 0xea, + 0x38, 0xa1, 0x8b, 0x69, 0x09, 0x8f, 0x85, 0x46, 0x41, 0xef, 0x48, 0x5d, 0x2d, 0xd0, 0x9f, 0xcf, + 0x51, 0x0a, 0xc8, 0x32, 0x4c, 0x59, 0x5e, 0x97, 0x0d, 0x92, 0xdc, 0xd2, 0x14, 0x94, 0x97, 0xd9, + 0x59, 0x09, 0xd3, 0x71, 0x62, 0xff, 0xa2, 0xdd, 0x48, 0xd5, 0xa8, 0xc8, 0x46, 0x8a, 0x6f, 0x59, + 0xd5, 0x14, 0x6a, 0xda, 0x8d, 0x1e, 0x66, 0x29, 0x6e, 0xe9, 0x3b, 0x30, 0x51, 0xab, 0x6d, 0x6e, + 0xd3, 0x20, 0x5c, 0x6e, 0x7a, 0x8f, 0x50, 0x51, 0xe4, 0x45, 0x8a, 0xb0, 0xc0, 0xb3, 0x43, 0x1a, + 0x84, 0xf6, 0x41, 0xd3, 0x7b, 0x64, 0xa9, 0x58, 0xe4, 0x17, 0x95, 0xf7, 0x84, 0x70, 0xe5, 0x9f, + 0x3e, 0x75, 0xe5, 0x4f, 0xbc, 0x35, 0xc4, 0xd6, 0xff, 0xd4, 0xb7, 0x86, 0x18, 0x3a, 0x06, 0x97, + 0xb2, 0xcd, 0x58, 0xa9, 0xd1, 0xf0, 0x69, 0x10, 0x88, 0x19, 0xad, 0xbc, 0x96, 0xe6, 0xf0, 0x02, + 0x2d, 0xb8, 0x54, 0x21, 0x20, 0x3f, 0x34, 0xe0, 0xbc, 0x1a, 0x9f, 0x86, 0x93, 0x05, 0x5f, 0xa5, + 0x9f, 0xc1, 0x9a, 0xbe, 0x7d, 0x53, 0x6a, 0xb4, 0x9b, 0x0a, 0xda, 0xcd, 0x87, 0xb7, 0x6f, 0x2a, + 0xef, 0x82, 0xd4, 0x24, 0x11, 0x3e, 0xac, 0xb8, 0x90, 0xca, 0x4f, 0xd5, 0x4e, 0x4e, 0x0a, 0x29, + 0x5a, 0x79, 0xb5, 0xd2, 0xfa, 0x5a, 0x6c, 0xaa, 0x7c, 0xb5, 0x22, 0xbf, 0xb4, 0xb6, 0x0d, 0x88, + 0xfc, 0xda, 0x81, 0xd9, 0x44, 0x37, 0x48, 0x2b, 0x4f, 0x03, 0x27, 0xad, 0xbc, 0x04, 0x8d, 0x95, + 0xc0, 0x36, 0xff, 0xf1, 0x58, 0x82, 0xaf, 0x38, 0xed, 0x35, 0x61, 0x94, 0x1b, 0x71, 0x6a, 0x02, + 0x7c, 0x6e, 0xe2, 0x59, 0xa2, 0x84, 0x5c, 0x82, 0x6c, 0xad, 0xb6, 0xa9, 0x3e, 0xcf, 0x11, 0x04, + 0x9e, 0xc5, 0x60, 0x6c, 0x84, 0xf0, 0x20, 0x57, 0xc9, 0x72, 0xc1, 0x34, 0x96, 0x85, 0x50, 0xd6, + 0xdf, 0xd2, 0xa4, 0xca, 0xc5, 0xfd, 0x2d, 0x4c, 0xaa, 0xd8, 0x90, 0x2a, 0xc3, 0x7c, 0x29, 0x08, + 0xa8, 0xcf, 0xdf, 0xc8, 0xc3, 0xf3, 0x41, 0x5f, 0x2c, 0xfb, 0x42, 0x31, 0xe3, 0x47, 0x9d, 0x7a, + 0x60, 0xf5, 0x45, 0x24, 0xd7, 0x21, 0x5f, 0xea, 0x36, 0x5c, 0xda, 0xae, 0x6b, 0xf7, 0x6c, 0x1d, + 0x01, 0xb3, 0xa2, 0x52, 0xf2, 0x29, 0x9c, 0x17, 0x44, 0xd2, 0xf6, 0x13, 0x3d, 0x30, 0x16, 0xcf, + 0x1e, 0x69, 0x96, 0x48, 0x8b, 0xd1, 0x16, 0x5d, 0x92, 0x4e, 0x49, 0x4a, 0x50, 0xac, 0x62, 0xa4, + 0x63, 0x85, 0x72, 0x57, 0xa9, 0xe7, 0x8b, 0xd7, 0xa9, 0xd0, 0x88, 0xe4, 0x51, 0x90, 0x76, 0x23, + 0x2a, 0xb4, 0x7a, 0xd0, 0xc9, 0x7d, 0x98, 0x4d, 0xc2, 0x98, 0x0e, 0xe6, 0xf6, 0x22, 0x5e, 0xb3, + 0xee, 0xe1, 0x82, 0x5a, 0x38, 0x8d, 0x8a, 0xec, 0xc3, 0x4c, 0x29, 0x0c, 0x7d, 0x77, 0xbf, 0x1b, + 0xd2, 0x84, 0x15, 0x29, 0x43, 0x05, 0xa2, 0x72, 0x69, 0x49, 0xbe, 0x20, 0x84, 0x71, 0xd6, 0x89, + 0x28, 0x23, 0x6b, 0xd2, 0xea, 0x65, 0x47, 0x1a, 0x30, 0x55, 0x73, 0x0f, 0xdb, 0x6e, 0xfb, 0xf0, + 0x3e, 0x3d, 0xde, 0x72, 0x5c, 0x5f, 0x64, 0x65, 0x90, 0x21, 0x19, 0xa5, 0xe0, 0xb8, 0xd5, 0xa2, + 0xa1, 0x8f, 0xab, 0x1b, 0x2b, 0xc7, 0xeb, 0x0b, 0x06, 0x53, 0xe3, 0x01, 0xa7, 0xc3, 0x50, 0xdd, + 0x8e, 0xe3, 0x6a, 0x6a, 0x5c, 0xe7, 0xa9, 0x59, 0xf2, 0x85, 0x21, 0x2d, 0xf9, 0x26, 0xcc, 0x54, + 0xdb, 0x75, 0xff, 0x18, 0x3d, 0xd6, 0xb2, 0x72, 0x93, 0xa7, 0x54, 0x4e, 0x3e, 0x6b, 0x7c, 0xc5, + 0x91, 0x12, 0x96, 0x56, 0xbd, 0x5e, 0xc6, 0xa4, 0x26, 0x9e, 0xe2, 0x5a, 0xad, 0x6c, 0xad, 0xb6, + 0xdd, 0xd0, 0xc5, 0x54, 0xf4, 0x7c, 0x79, 0x78, 0x4d, 0xf0, 0x7c, 0x91, 0x5b, 0x6c, 0x6e, 0xa3, + 0x63, 0xbb, 0x12, 0xa5, 0xe7, 0xad, 0x2d, 0x95, 0xde, 0xfc, 0xbf, 0xc6, 0xb8, 0x36, 0x54, 0x2d, + 0xac, 0x0b, 0x4a, 0x6a, 0x66, 0x35, 0x0c, 0x37, 0x61, 0x79, 0x65, 0xce, 0x62, 0x79, 0x65, 0x4f, + 0xb7, 0xbc, 0x72, 0xa7, 0x59, 0x5e, 0x09, 0xd3, 0x68, 0xe4, 0xcc, 0xa6, 0xd1, 0xe8, 0x19, 0x4c, + 0xa3, 0xb1, 0x33, 0x99, 0x46, 0x9a, 0x8d, 0x97, 0x3f, 0xcd, 0xc6, 0xfb, 0xff, 0x0d, 0xa9, 0xe7, + 0xd5, 0x90, 0x4a, 0x5b, 0x5c, 0xcf, 0x64, 0x48, 0xf5, 0xb7, 0x83, 0x8a, 0xff, 0x2f, 0xdb, 0x41, + 0x7f, 0x05, 0x8a, 0x49, 0xd5, 0x7c, 0x7a, 0x12, 0x88, 0x67, 0x76, 0x57, 0x9b, 0x2d, 0x1c, 0x49, + 0xd5, 0xc8, 0xb6, 0x56, 0x5b, 0xbe, 0xfb, 0xd0, 0x09, 0x69, 0xfc, 0x7a, 0x13, 0x6e, 0xad, 0x3a, + 0x1c, 0x8a, 0xd3, 0x55, 0x41, 0x89, 0xac, 0x82, 0x4c, 0x9a, 0x55, 0x60, 0xfe, 0x28, 0x03, 0x33, + 0xfc, 0x7a, 0xe9, 0xf3, 0xef, 0xd1, 0xfb, 0x50, 0xb3, 0xf5, 0x64, 0xe0, 0x4e, 0xa2, 0x75, 0x03, + 0x7c, 0x7a, 0xdf, 0x83, 0xf3, 0x3d, 0x5d, 0x81, 0xf6, 0x5e, 0x45, 0x5e, 0xec, 0xed, 0xb1, 0xf8, + 0xe6, 0xd3, 0x3f, 0xb2, 0x7b, 0xc7, 0xea, 0xa1, 0x30, 0xff, 0x20, 0xdb, 0xc3, 0x5f, 0x78, 0xf7, + 0x54, 0x7f, 0x9d, 0x71, 0x36, 0x7f, 0x5d, 0x66, 0x38, 0x7f, 0x5d, 0x62, 0x59, 0xc8, 0x0e, 0xb3, + 0x2c, 0x7c, 0x0a, 0x93, 0xdb, 0xd4, 0x69, 0x05, 0xdb, 0x9e, 0x48, 0x00, 0xc4, 0x53, 0x66, 0xc8, + 0x7b, 0xbb, 0xac, 0x4c, 0x9a, 0x2b, 0x51, 0x00, 0x42, 0xc8, 0x08, 0x98, 0x2a, 0xe3, 0x19, 0x81, + 0x2c, 0x9d, 0x83, 0x6a, 0x83, 0x8e, 0x0c, 0xb0, 0x41, 0x6b, 0x50, 0x10, 0x74, 0x71, 0xe6, 0x0b, + 0xe5, 0x11, 0x6f, 0xea, 0xb4, 0x10, 0x2e, 0xbf, 0x1e, 0x25, 0xdd, 0x8d, 0xbe, 0xce, 0xed, 0x24, + 0x8d, 0x09, 0xeb, 0x82, 0x6a, 0xbb, 0xd1, 0xf1, 0xdc, 0x36, 0x76, 0xc1, 0x58, 0xdc, 0x05, 0x54, + 0x80, 0x79, 0x17, 0x28, 0x48, 0xe6, 0x3f, 0xcb, 0xcb, 0xd9, 0xf1, 0xe5, 0x7a, 0x57, 0x74, 0x7f, + 0x49, 0xf6, 0x8c, 0xfe, 0x92, 0xdc, 0x69, 0x6b, 0xa9, 0xb6, 0xc0, 0x8f, 0x9c, 0x61, 0x81, 0x1f, + 0x7d, 0x6a, 0xdf, 0xc7, 0xd8, 0x19, 0x97, 0xec, 0x84, 0xa0, 0xe6, 0x87, 0x11, 0xd4, 0xd4, 0x65, + 0x7e, 0xfc, 0xe9, 0x97, 0x79, 0x38, 0xf3, 0x32, 0xaf, 0x3c, 0x55, 0x34, 0x31, 0xd4, 0x53, 0x45, + 0xc6, 0x10, 0x4f, 0x15, 0x7d, 0xa5, 0x6c, 0x87, 0xef, 0xa7, 0xdb, 0x0e, 0x83, 0x95, 0xf5, 0x73, + 0x6a, 0x3d, 0xf8, 0xd8, 0x41, 0x7b, 0x8e, 0xcf, 0xf6, 0x50, 0x01, 0xb9, 0x05, 0x63, 0xf2, 0xfa, + 0xbb, 0x11, 0x6f, 0x47, 0x7b, 0xef, 0xbd, 0x4b, 0x2c, 0xb6, 0xdd, 0x92, 0xc4, 0xe2, 0xaa, 0x18, + 0xbf, 0xe9, 0x2b, 0x60, 0xda, 0x4d, 0x5f, 0x01, 0x33, 0xff, 0x61, 0x4e, 0x4e, 0x42, 0xb6, 0x1d, + 0x10, 0xd9, 0xfd, 0x7b, 0x5e, 0xd2, 0x36, 0xce, 0xfe, 0x92, 0xf6, 0x17, 0xc8, 0x1d, 0xa0, 0x24, + 0xc9, 0xcc, 0x0e, 0x91, 0x24, 0xf3, 0x5d, 0x2d, 0xc3, 0x64, 0x2e, 0x4e, 0x69, 0xc6, 0x04, 0x73, + 0x70, 0x6e, 0xc9, 0xbb, 0x6a, 0x2a, 0xc8, 0x91, 0xf8, 0x56, 0x1d, 0x52, 0x0e, 0x48, 0x02, 0x19, + 0x19, 0x63, 0xa3, 0x67, 0xc9, 0xa3, 0x31, 0xf6, 0xff, 0x69, 0x1e, 0x8d, 0x2a, 0x80, 0x92, 0xf2, + 0x9d, 0x7b, 0xa7, 0x5f, 0x63, 0xdd, 0x74, 0x7a, 0xba, 0x77, 0x85, 0xd0, 0xfc, 0xd7, 0x33, 0x30, + 0x53, 0xab, 0x6d, 0x56, 0x5c, 0xe7, 0xb0, 0xed, 0x05, 0xa1, 0x5b, 0x5f, 0x6d, 0x1f, 0x78, 0xcc, + 0x12, 0x89, 0x26, 0xb4, 0x92, 0xd3, 0x21, 0x9e, 0xcc, 0x51, 0x31, 0xb3, 0x74, 0xab, 0xbe, 0x1f, + 0x3d, 0x0e, 0x8f, 0x96, 0x2e, 0x65, 0x00, 0x8b, 0xc3, 0xd9, 0x62, 0x5f, 0xeb, 0xf2, 0xdc, 0xdd, + 0xfc, 0xc0, 0x00, 0x17, 0xfb, 0x80, 0x83, 0x2c, 0x59, 0x46, 0x68, 0xaf, 0xc0, 0x0a, 0xe3, 0xef, + 0xa2, 0x96, 0x8d, 0x23, 0x2e, 0xe6, 0xea, 0x4a, 0x2c, 0x27, 0x78, 0xaf, 0xb6, 0x83, 0x70, 0xf5, + 0x74, 0xa9, 0x67, 0x0e, 0x1c, 0xc3, 0x79, 0xdc, 0xc3, 0x9f, 0xd5, 0x13, 0x73, 0x43, 0x18, 0x17, + 0x26, 0xe6, 0x81, 0x49, 0x71, 0xc7, 0xa8, 0x4f, 0x3f, 0xa7, 0x7e, 0x81, 0xfc, 0xc8, 0x80, 0x17, + 0x53, 0x4b, 0xa2, 0xd9, 0x3d, 0xa1, 0x65, 0x44, 0x51, 0x94, 0x06, 0xe6, 0x3b, 0x7f, 0xb3, 0xdf, + 0xa7, 0xed, 0x14, 0x55, 0x30, 0xf8, 0x4b, 0xe4, 0x9f, 0x19, 0x70, 0x51, 0xc3, 0x88, 0xd4, 0x55, + 0x80, 0xcb, 0x4a, 0x5f, 0xb9, 0xfe, 0xc1, 0xb3, 0x91, 0xeb, 0x57, 0xf4, 0xb6, 0xc4, 0xda, 0x54, + 0x6d, 0x43, 0xbf, 0x1a, 0x92, 0x87, 0x30, 0x83, 0x45, 0xd2, 0x2b, 0xc4, 0x64, 0x56, 0x38, 0x93, + 0xe6, 0xe2, 0x6a, 0x97, 0xbb, 0x41, 0xe8, 0xb5, 0x30, 0x81, 0xf0, 0xe2, 0xcf, 0x4f, 0x16, 0x26, + 0x35, 0x74, 0x4c, 0xc6, 0x86, 0x75, 0x88, 0x5c, 0x4b, 0x6e, 0xfb, 0xc0, 0xd3, 0x1e, 0x93, 0x4b, + 0x7e, 0x82, 0xfc, 0x17, 0x06, 0xcc, 0x33, 0x28, 0x6f, 0xc6, 0xb2, 0xef, 0xb5, 0xa2, 0x72, 0x79, + 0x4c, 0xd9, 0xa7, 0xdb, 0x9a, 0xcf, 0xa6, 0xdb, 0x5e, 0xc3, 0x2a, 0x73, 0x9d, 0x60, 0x1f, 0xf8, + 0x5e, 0x2b, 0xae, 0xbe, 0x96, 0x9d, 0xbc, 0x5f, 0x25, 0xc9, 0xaf, 0x19, 0x70, 0x49, 0xdb, 0x98, + 0xab, 0x29, 0xc8, 0xe6, 0xa7, 0xb5, 0x33, 0x6d, 0xb5, 0x68, 0xe9, 0xa6, 0x90, 0xff, 0x6b, 0x58, + 0x83, 0x78, 0xb5, 0xc0, 0xba, 0xd8, 0x2d, 0x8e, 0xa5, 0x54, 0xa1, 0xff, 0x57, 0x88, 0x0b, 0x33, + 0x78, 0xc8, 0xa2, 0x1d, 0xa7, 0xcf, 0xf5, 0x3f, 0x4e, 0xbf, 0x26, 0x3e, 0xfd, 0x12, 0xa6, 0x79, + 0xea, 0x7f, 0xa6, 0xde, 0xcb, 0x95, 0xfc, 0x2a, 0x5c, 0xea, 0x01, 0x46, 0xb3, 0xed, 0x7c, 0xdf, + 0xd9, 0xf6, 0xe6, 0x93, 0x93, 0x85, 0xd7, 0xd3, 0xbe, 0x96, 0x36, 0xd3, 0xfa, 0x7f, 0x81, 0x38, + 0x00, 0x71, 0xa1, 0x48, 0x77, 0x9e, 0x2e, 0xa0, 0x6f, 0x0a, 0xf9, 0x50, 0xf0, 0x99, 0x2e, 0x57, + 0xea, 0xa0, 0x2e, 0x79, 0x31, 0x12, 0xa1, 0x50, 0x50, 0x52, 0x5c, 0x1d, 0x63, 0xde, 0xf3, 0xbe, + 0x1f, 0xf9, 0xf9, 0xc9, 0x82, 0x86, 0xcd, 0x4c, 0x5a, 0x35, 0x77, 0x96, 0x6a, 0xd2, 0x6a, 0x88, + 0xe4, 0x9f, 0x18, 0x30, 0xc7, 0x00, 0xb1, 0x50, 0x89, 0x46, 0xcd, 0x0f, 0x92, 0xfa, 0xa3, 0x67, + 0x23, 0xf5, 0x2f, 0x63, 0x1d, 0x55, 0xa9, 0xef, 0xe9, 0x92, 0xd4, 0xca, 0xa1, 0xb4, 0x6b, 0xe7, + 0x79, 0x9a, 0xb4, 0x5f, 0x1a, 0x42, 0xda, 0xf9, 0x00, 0x9c, 0x2e, 0xed, 0x7d, 0xbf, 0x42, 0xb6, + 0xa1, 0x20, 0xac, 0x59, 0xde, 0x61, 0x2f, 0x69, 0x19, 0x75, 0xd4, 0x22, 0xbe, 0xc5, 0x10, 0x19, + 0xc0, 0x7a, 0x5a, 0xa8, 0x71, 0x21, 0x6d, 0x98, 0xe5, 0xbf, 0xf5, 0xad, 0xf9, 0x42, 0xdf, 0xad, + 0xf9, 0x75, 0xd1, 0xa2, 0xab, 0x82, 0x7f, 0x62, 0x87, 0xae, 0x7c, 0x28, 0x8d, 0x31, 0xe9, 0x00, + 0xd1, 0xc0, 0x7c, 0xd2, 0x5e, 0x1d, 0xbc, 0x21, 0x7f, 0x5d, 0x7c, 0x73, 0x21, 0xf9, 0xcd, 0xe4, + 0xcc, 0x4d, 0xe1, 0x4d, 0x1c, 0x98, 0x16, 0x50, 0xb6, 0x77, 0x45, 0x0d, 0xff, 0xb2, 0x76, 0x6f, + 0x35, 0x51, 0xca, 0xb3, 0x90, 0xcb, 0x2f, 0xe1, 0x05, 0xc1, 0x84, 0x42, 0x4f, 0xf2, 0x33, 0x7f, + 0x68, 0xf4, 0x7c, 0x83, 0xed, 0x91, 0xf1, 0x87, 0x92, 0x7a, 0x03, 0xf7, 0xc8, 0x9c, 0x23, 0xee, + 0xd5, 0x63, 0x04, 0x66, 0xdb, 0xa8, 0xd7, 0x90, 0xb3, 0xe2, 0x91, 0x31, 0x0e, 0x8a, 0xb7, 0x6e, + 0x0b, 0x32, 0x2a, 0x29, 0x1b, 0xdb, 0x48, 0x18, 0x95, 0x24, 0x62, 0x91, 0xcc, 0x5f, 0xcb, 0xe8, + 0x52, 0x42, 0xae, 0x2b, 0x66, 0xb6, 0x72, 0x11, 0x5a, 0x9a, 0xd9, 0x8a, 0x71, 0xfd, 0x0f, 0x0c, + 0x98, 0xdd, 0xf4, 0x0f, 0x9d, 0xb6, 0xfb, 0xcb, 0x3c, 0x4d, 0x8a, 0x87, 0xdd, 0x18, 0xdd, 0xa4, + 0xf8, 0x52, 0xd3, 0xad, 0x7a, 0xca, 0x87, 0xd9, 0xc0, 0xe2, 0x08, 0x5b, 0x69, 0xf5, 0xc1, 0x38, + 0x4f, 0xac, 0x98, 0x92, 0xf5, 0x96, 0xa3, 0x73, 0xb8, 0xf9, 0xe3, 0x0c, 0x4c, 0x28, 0x12, 0x4b, + 0xbe, 0x0e, 0x05, 0x95, 0x8f, 0xea, 0x5f, 0x51, 0x3f, 0x6b, 0x69, 0x58, 0xe8, 0x60, 0xa1, 0x4e, + 0x4b, 0x73, 0xb0, 0x30, 0xb9, 0x44, 0xe8, 0x19, 0x77, 0x22, 0x1f, 0xa5, 0xec, 0x44, 0xce, 0x94, + 0xeb, 0xfe, 0xfd, 0xde, 0xfd, 0xc8, 0xf0, 0xa9, 0xe9, 0xcd, 0xdf, 0x34, 0xa0, 0x98, 0x9c, 0x53, + 0x5f, 0x4a, 0xaf, 0x9c, 0xc1, 0x17, 0xfd, 0x37, 0x32, 0x50, 0xdc, 0xf6, 0xd9, 0xc6, 0xbf, 0x21, + 0xa3, 0xd7, 0x9f, 0xd7, 0x90, 0x80, 0x0f, 0x34, 0x37, 0xf1, 0x0b, 0xd1, 0x32, 0xa0, 0x36, 0x6e, + 0xc0, 0x8d, 0xed, 0xdc, 0xef, 0xfc, 0xfd, 0x85, 0x73, 0xe6, 0x67, 0x30, 0x97, 0xec, 0x0e, 0x74, + 0x15, 0x97, 0x60, 0x5a, 0x87, 0x27, 0x93, 0x59, 0x26, 0xa9, 0xac, 0x24, 0xbe, 0xf9, 0x27, 0x99, + 0x24, 0x6f, 0x11, 0x1e, 0xc0, 0x94, 0x4e, 0xdb, 0xd9, 0x6f, 0x46, 0xf9, 0xf6, 0xc4, 0xcb, 0x86, + 0x08, 0xb2, 0x64, 0xd9, 0x59, 0xd2, 0x9a, 0x46, 0x31, 0xd8, 0xd9, 0xf4, 0x18, 0x6c, 0x72, 0x37, + 0x11, 0xd3, 0x92, 0x8b, 0x6f, 0xd5, 0x3c, 0xa2, 0xfb, 0x76, 0x1c, 0xd7, 0x92, 0x08, 0x65, 0x29, + 0xc3, 0x9c, 0x96, 0x31, 0x47, 0xd2, 0x8f, 0xc4, 0xae, 0xcd, 0x10, 0x0b, 0x38, 0x71, 0x2a, 0x32, + 0xbe, 0x72, 0xec, 0x35, 0xd9, 0x4e, 0x4c, 0x78, 0x80, 0xd5, 0x07, 0xe0, 0xe4, 0x5a, 0xa3, 0x5c, + 0xca, 0x68, 0x52, 0xb6, 0x42, 0x6b, 0x4f, 0x45, 0x70, 0x44, 0xf3, 0xff, 0x30, 0xd8, 0xfc, 0xaf, + 0x3f, 0xf8, 0x8a, 0x25, 0x5c, 0x65, 0x4d, 0x1a, 0x10, 0xbd, 0xf2, 0xdf, 0x19, 0x3c, 0x65, 0xa2, + 0x10, 0x9f, 0x77, 0x61, 0x74, 0xdb, 0xf1, 0x0f, 0x69, 0x28, 0x92, 0xfb, 0xa9, 0x5c, 0x78, 0x41, + 0x7c, 0x9d, 0x39, 0xc4, 0xdf, 0x96, 0x20, 0x50, 0x5d, 0x57, 0x99, 0xa1, 0x5c, 0x57, 0x8a, 0x23, + 0x34, 0xfb, 0xac, 0x1c, 0xa1, 0xe6, 0xff, 0x9d, 0xe1, 0xed, 0x11, 0x95, 0x1a, 0xf6, 0x71, 0xdd, + 0x6b, 0x90, 0x63, 0x72, 0xa0, 0xbe, 0x91, 0xcc, 0x64, 0x45, 0xc5, 0x63, 0xe5, 0x6c, 0xde, 0xa0, + 0xfe, 0x57, 0x73, 0xfc, 0xe2, 0x12, 0xa1, 0xce, 0x1b, 0xc4, 0xc0, 0x4b, 0x66, 0x5e, 0x83, 0xaa, + 0xd3, 0xa1, 0xed, 0x35, 0xf4, 0x4b, 0x66, 0x5e, 0x03, 0xb3, 0x3d, 0x45, 0xa9, 0xf6, 0xd4, 0x60, + 0xe9, 0xd6, 0x81, 0x63, 0xf3, 0x14, 0x6f, 0xea, 0x0a, 0x10, 0x67, 0xe5, 0xab, 0xc2, 0x94, 0xfe, + 0x82, 0x81, 0x88, 0xa2, 0xc1, 0xdb, 0x81, 0x89, 0xd7, 0x0f, 0x54, 0x8f, 0xaf, 0x4e, 0x44, 0x96, + 0x60, 0x52, 0xbb, 0xda, 0xaf, 0x3e, 0x50, 0xaf, 0x27, 0x06, 0x50, 0xfd, 0x7e, 0x1a, 0x89, 0x72, + 0xb1, 0xe6, 0x6b, 0x50, 0x14, 0x33, 0x33, 0x4a, 0xb7, 0x8c, 0x87, 0x8b, 0xab, 0x15, 0x4b, 0x9d, + 0x4d, 0x75, 0xb7, 0xe1, 0x5b, 0x08, 0x35, 0x7f, 0x6a, 0xc0, 0xa5, 0x0d, 0x1a, 0x3e, 0xf2, 0xfc, + 0x07, 0x16, 0x0d, 0x42, 0xdf, 0xe5, 0xd9, 0x9b, 0x51, 0x1e, 0xbf, 0x4e, 0xde, 0x97, 0xcf, 0x32, + 0xea, 0x0a, 0x32, 0xf9, 0x8d, 0xa5, 0x49, 0x21, 0x94, 0x23, 0x18, 0xb8, 0x21, 0x9f, 0x63, 0x7c, + 0x57, 0x3c, 0xc7, 0x98, 0x19, 0x4c, 0x1c, 0xcd, 0x8b, 0x06, 0x6d, 0xcb, 0x67, 0x18, 0x7f, 0x33, + 0x03, 0xe7, 0x53, 0xaa, 0xb5, 0xfb, 0xf5, 0xe7, 0x54, 0x39, 0x2c, 0x69, 0xca, 0x41, 0xbe, 0xd7, + 0xdb, 0xb7, 0xe3, 0x53, 0x75, 0xc5, 0xdf, 0x31, 0xe0, 0xa2, 0x2e, 0x3d, 0x22, 0xb8, 0x6a, 0xf7, + 0x0e, 0x79, 0x0f, 0x46, 0x57, 0xa8, 0xd3, 0xa0, 0x32, 0x2b, 0xe8, 0xf9, 0xc4, 0xc3, 0xcf, 0xbc, + 0x90, 0xb3, 0xfd, 0x13, 0x3e, 0x95, 0xcf, 0x59, 0x82, 0x84, 0x54, 0x44, 0xe5, 0xb8, 0x59, 0x6a, + 0xca, 0x1b, 0x5d, 0x69, 0x9f, 0x1a, 0x70, 0x34, 0xfb, 0x73, 0x03, 0x5e, 0x18, 0x40, 0xc3, 0x06, + 0x8e, 0x0d, 0xbd, 0x3a, 0x70, 0xb8, 0xb0, 0x20, 0x94, 0x7c, 0x08, 0xd3, 0xdb, 0xc2, 0xac, 0x95, + 0xc3, 0x91, 0x89, 0x43, 0xff, 0xa5, 0xc5, 0x6b, 0xcb, 0x71, 0x49, 0x22, 0x6b, 0x57, 0x0d, 0xb3, + 0x03, 0xaf, 0x1a, 0xaa, 0x37, 0xf7, 0x72, 0xc3, 0xde, 0xdc, 0xfb, 0x2c, 0xf9, 0x2c, 0x8a, 0x48, + 0xb9, 0x11, 0xdf, 0x5b, 0x34, 0xfa, 0xdf, 0x5b, 0x94, 0xe1, 0x08, 0x99, 0xd4, 0x2b, 0x51, 0x3f, + 0x36, 0xa0, 0xa8, 0xf3, 0x7e, 0xda, 0xf1, 0xfc, 0x40, 0x1b, 0xcf, 0x17, 0xd2, 0xc7, 0xb3, 0xff, + 0x40, 0xf6, 0x3c, 0x01, 0x33, 0xd4, 0x00, 0x9a, 0x30, 0x5a, 0xf1, 0x5a, 0x8e, 0xdb, 0x56, 0x5f, + 0x0f, 0x69, 0x20, 0xc4, 0x12, 0x25, 0x43, 0xdd, 0xf2, 0x34, 0x7f, 0x34, 0x02, 0x97, 0x2c, 0x7a, + 0xe8, 0x32, 0xab, 0x6a, 0x27, 0x70, 0xdb, 0x87, 0xda, 0x85, 0x35, 0x33, 0xd1, 0xe1, 0x22, 0x23, + 0x14, 0x83, 0x44, 0xfd, 0xfd, 0x06, 0xe4, 0x99, 0x6a, 0x57, 0xfa, 0x1c, 0x3d, 0xe4, 0xf8, 0xf8, + 0x16, 0x17, 0x06, 0x59, 0x4c, 0x6e, 0x88, 0x85, 0x47, 0xc9, 0xd9, 0xc7, 0x16, 0x9e, 0xcf, 0x4f, + 0x16, 0xa0, 0x76, 0x1c, 0x84, 0x14, 0x0d, 0x7c, 0xb1, 0xf8, 0x44, 0x96, 0x58, 0xae, 0x8f, 0x25, + 0xb6, 0x0e, 0x73, 0xa5, 0x06, 0x57, 0x6a, 0x4e, 0x73, 0xcb, 0x77, 0xdb, 0x75, 0xb7, 0xe3, 0x34, + 0xe5, 0xee, 0x02, 0xcf, 0x49, 0x9c, 0xa8, 0xdc, 0xee, 0x44, 0x08, 0x56, 0x2a, 0x19, 0x6b, 0x46, + 0x65, 0xa3, 0xc6, 0xdf, 0x56, 0xe2, 0x87, 0x1f, 0xd8, 0x8c, 0x46, 0x3b, 0xe0, 0x8f, 0x2b, 0x59, + 0x51, 0x31, 0xda, 0x80, 0x78, 0x38, 0xbc, 0xbd, 0x56, 0x8b, 0x83, 0xe7, 0x79, 0x4a, 0x21, 0x7e, + 0x80, 0x1c, 0x36, 0x03, 0x3c, 0x44, 0xd6, 0xf0, 0x62, 0xba, 0x5a, 0x6d, 0x85, 0xd1, 0xe5, 0x7b, + 0xe8, 0x82, 0xe0, 0x48, 0xa5, 0xe3, 0x78, 0xe4, 0x16, 0x00, 0x4f, 0x98, 0x82, 0x02, 0x31, 0x1e, + 0x5b, 0x8c, 0x3e, 0x42, 0xb9, 0xc5, 0xa8, 0xa0, 0x90, 0xf7, 0x61, 0xb6, 0x5a, 0x5e, 0x94, 0x2e, + 0xab, 0x8a, 0x57, 0xef, 0xe2, 0x71, 0x1f, 0xe0, 0xf7, 0x70, 0x0c, 0x69, 0x7d, 0x91, 0x49, 0x41, + 0x1a, 0x1a, 0xb9, 0x06, 0x63, 0xab, 0x15, 0xde, 0xf7, 0x13, 0x6a, 0xde, 0x4c, 0x71, 0x8c, 0x2e, + 0x0b, 0xc9, 0x66, 0x6c, 0xd2, 0x14, 0x4e, 0x35, 0x69, 0x2e, 0x0d, 0x61, 0xce, 0xf0, 0xf4, 0x9a, + 0x3c, 0x39, 0x73, 0xd9, 0x6b, 0xd0, 0x60, 0xf7, 0xf6, 0x57, 0x2c, 0xbd, 0xa6, 0xd2, 0x36, 0x9c, + 0xe6, 0xb7, 0x53, 0x55, 0xc2, 0xbf, 0x87, 0xe9, 0x35, 0x7b, 0x70, 0xc9, 0x37, 0x61, 0x04, 0x7f, + 0x0a, 0xfb, 0x60, 0x36, 0x85, 0x6d, 0x6c, 0x1b, 0xd4, 0xf9, 0x33, 0x39, 0x48, 0x40, 0x56, 0x61, + 0x4c, 0xa4, 0xb5, 0x3e, 0x4b, 0x92, 0x38, 0x91, 0xe1, 0x9d, 0x0f, 0x92, 0xa0, 0x37, 0x1b, 0x50, + 0x50, 0x3f, 0xc8, 0x84, 0x73, 0xc5, 0x09, 0x8e, 0x68, 0x83, 0xfd, 0x12, 0xf9, 0x5d, 0x51, 0x38, + 0x8f, 0x10, 0x6a, 0xb3, 0x7a, 0x58, 0x0a, 0x0a, 0x53, 0x4b, 0xab, 0xc1, 0x4e, 0x20, 0xaa, 0x22, + 0xf6, 0x6c, 0x2e, 0xee, 0xff, 0x1b, 0x96, 0x28, 0x32, 0x7f, 0x01, 0xe6, 0x36, 0xba, 0xcd, 0x26, + 0xdb, 0xbf, 0xc9, 0xfc, 0x5f, 0xa1, 0x13, 0x52, 0xb2, 0x04, 0x23, 0xf8, 0x87, 0x78, 0x28, 0x71, + 0x56, 0x7f, 0x39, 0x0a, 0x8b, 0x30, 0xf6, 0xc6, 0xc0, 0xeb, 0x6e, 0xa1, 0xfe, 0xf2, 0x18, 0x27, + 0x35, 0x7f, 0x16, 0x3f, 0xd8, 0xb4, 0xed, 0x3b, 0xf5, 0x07, 0xd4, 0x3f, 0xe3, 0xc3, 0xf4, 0x9f, + 0xc8, 0x4a, 0xe8, 0x2a, 0x3f, 0xad, 0xc2, 0xa7, 0x55, 0x86, 0xbc, 0x0f, 0x13, 0x42, 0xef, 0x2b, + 0x49, 0x1a, 0xf0, 0x26, 0xac, 0x7c, 0xcb, 0x2b, 0x71, 0x98, 0xac, 0xa2, 0xe3, 0x6a, 0xa6, 0x37, + 0x65, 0xf7, 0xf6, 0x97, 0xb1, 0x9a, 0xe9, 0xdf, 0x18, 0x20, 0xba, 0xbf, 0x0e, 0xc9, 0xbe, 0x15, + 0xb2, 0x7b, 0x57, 0xbd, 0x96, 0x6d, 0xc4, 0x86, 0x7f, 0x7c, 0x2d, 0x5b, 0x35, 0xfc, 0x23, 0xd4, + 0x68, 0x4c, 0x32, 0xa7, 0x8c, 0xc9, 0x87, 0x72, 0x4c, 0xb2, 0xfd, 0x05, 0x63, 0x76, 0xc0, 0x38, + 0xd4, 0xe2, 0x19, 0x92, 0x1b, 0x6a, 0x7f, 0x86, 0x6f, 0xac, 0x8b, 0x19, 0x92, 0x54, 0x68, 0x82, + 0x93, 0xba, 0xe9, 0x1b, 0x19, 0x9e, 0xe9, 0x29, 0xd1, 0x2f, 0xdf, 0x82, 0x42, 0x29, 0x0c, 0x9d, + 0xfa, 0x11, 0x6d, 0x54, 0x98, 0x7a, 0x52, 0x6e, 0x90, 0x3a, 0x02, 0xae, 0x3a, 0xcb, 0x55, 0x5c, + 0x9e, 0x11, 0xc5, 0x09, 0x44, 0x18, 0x52, 0x94, 0x11, 0x85, 0x41, 0xf4, 0x8c, 0x28, 0x0c, 0xc2, + 0x36, 0xb9, 0xab, 0xed, 0x87, 0x2e, 0xeb, 0x93, 0x7c, 0xfc, 0x08, 0x8d, 0xcb, 0x41, 0xaa, 0x72, + 0x15, 0x58, 0xe4, 0x5d, 0xc5, 0x2c, 0x1c, 0x8f, 0xf7, 0x67, 0x7c, 0xef, 0x6c, 0x4b, 0xeb, 0x50, + 0x35, 0xf9, 0x22, 0x3b, 0xf1, 0x2e, 0x8c, 0x49, 0x97, 0x08, 0xc4, 0x7b, 0x32, 0x41, 0xd9, 0x7b, + 0x4f, 0x48, 0x22, 0xe3, 0xfb, 0x0f, 0x4a, 0x9e, 0xda, 0x09, 0xe5, 0xfd, 0x07, 0x25, 0x4f, 0xad, + 0xf6, 0xfe, 0x83, 0x92, 0xb1, 0x36, 0xda, 0xe1, 0x16, 0x4e, 0xdd, 0xe1, 0xee, 0x42, 0x61, 0xcb, + 0xf1, 0x43, 0x97, 0x99, 0x0b, 0xed, 0x90, 0xbf, 0xa0, 0x18, 0x3b, 0x60, 0x94, 0xa2, 0xa5, 0x97, + 0xe4, 0x3b, 0x08, 0x1d, 0x05, 0x5f, 0x4f, 0xa0, 0x1f, 0xc3, 0xd3, 0x83, 0x90, 0xa6, 0x9e, 0x26, + 0x08, 0x29, 0x1f, 0x3d, 0x79, 0x3c, 0x1d, 0x87, 0x7c, 0x45, 0xef, 0x18, 0x27, 0x7b, 0x1f, 0x3d, + 0x02, 0xdf, 0x85, 0x02, 0xfb, 0x1b, 0x5f, 0x75, 0x73, 0x29, 0x7f, 0x21, 0x31, 0xce, 0x3a, 0xa5, + 0x4f, 0x68, 0xfe, 0xf4, 0x5b, 0x8d, 0x86, 0x7c, 0x02, 0x23, 0xe3, 0xa4, 0x37, 0x4d, 0xe3, 0x46, + 0x3e, 0x82, 0x82, 0xfa, 0x1c, 0x25, 0x5e, 0xde, 0x12, 0x61, 0x64, 0x0d, 0x01, 0xef, 0x49, 0x4a, + 0xa4, 0x12, 0xb0, 0x65, 0xbe, 0xd4, 0xe1, 0x0a, 0x92, 0x28, 0xd2, 0xde, 0xe9, 0x51, 0x8e, 0x12, + 0x8d, 0x7c, 0x0c, 0x85, 0x52, 0xa7, 0x13, 0x6b, 0x9c, 0x59, 0x65, 0x9f, 0xdf, 0xe9, 0xd8, 0xa9, + 0x5a, 0x47, 0xa3, 0x48, 0x2a, 0xe6, 0xb9, 0xb3, 0x29, 0xe6, 0x3f, 0x33, 0xe0, 0x62, 0x9f, 0x6e, + 0x8b, 0x12, 0xf2, 0x18, 0x83, 0x13, 0xf2, 0xb0, 0xe9, 0xa7, 0x6f, 0xce, 0x70, 0xfa, 0x09, 0x53, + 0x45, 0x6d, 0xb4, 0x34, 0x5a, 0xd2, 0x9f, 0x73, 0xcc, 0x7e, 0x69, 0xcf, 0x39, 0x9a, 0x27, 0x06, + 0x4c, 0x28, 0xc2, 0x4c, 0xae, 0x2a, 0x77, 0x40, 0x8a, 0x3c, 0x83, 0xa3, 0xc2, 0x21, 0xc3, 0xd5, + 0x39, 0x4a, 0x66, 0xe6, 0x74, 0x17, 0x15, 0xbe, 0x6b, 0xac, 0x24, 0x2d, 0x6a, 0x25, 0xfc, 0x49, + 0xf8, 0x8e, 0xf1, 0xf7, 0x00, 0xd6, 0x9c, 0x20, 0x2c, 0xd5, 0x43, 0xf7, 0x21, 0x1d, 0x42, 0x73, + 0xc7, 0x6f, 0xa0, 0x38, 0xf8, 0x5c, 0x3e, 0x23, 0xeb, 0x79, 0x03, 0x25, 0x62, 0x68, 0xfe, 0x85, + 0x01, 0x13, 0xab, 0xed, 0x20, 0x74, 0x9a, 0x4d, 0x5c, 0x5a, 0xbf, 0x4a, 0xd9, 0x6e, 0xa3, 0x76, + 0x0d, 0x58, 0xce, 0xdf, 0x81, 0xe9, 0x04, 0x1a, 0xdb, 0x12, 0xd6, 0xf0, 0x2e, 0x97, 0xba, 0x25, + 0xe4, 0xb7, 0xbb, 0x2c, 0x51, 0x62, 0x56, 0x15, 0xb2, 0xdd, 0xdb, 0x78, 0x0c, 0xb0, 0x08, 0xe0, + 0x4a, 0x90, 0x34, 0x60, 0x49, 0xb2, 0x26, 0xbb, 0xb7, 0x2d, 0x05, 0xcb, 0xdc, 0x80, 0xd1, 0x9a, + 0xe7, 0x87, 0x4b, 0xc7, 0xdc, 0x66, 0xac, 0xd0, 0xa0, 0xae, 0xfa, 0xf9, 0x5d, 0xf4, 0xf8, 0xd5, + 0x2d, 0x51, 0xc4, 0x76, 0x8c, 0xcb, 0x2e, 0x6d, 0x36, 0xd4, 0xf8, 0xab, 0x03, 0x06, 0xb0, 0x38, + 0x9c, 0xd9, 0xd5, 0x17, 0xe2, 0xf4, 0x91, 0x71, 0xa0, 0xd7, 0xd3, 0xda, 0x4c, 0x65, 0xad, 0x7f, + 0x5f, 0xd6, 0x9f, 0x88, 0xd1, 0xbe, 0x34, 0xa0, 0xab, 0xff, 0xc0, 0x80, 0xcb, 0xfd, 0x49, 0xd4, + 0xd8, 0x31, 0x63, 0x40, 0xec, 0xd8, 0x6b, 0x49, 0xbf, 0x34, 0xa2, 0x09, 0xbf, 0x74, 0xec, 0x8d, + 0xae, 0x60, 0xe8, 0x5e, 0x3d, 0x7a, 0x8e, 0xeb, 0xea, 0x80, 0x3a, 0x23, 0x22, 0x1f, 0xe6, 0x10, + 0x69, 0x2c, 0x41, 0x6b, 0xfe, 0xab, 0x2c, 0x5c, 0xea, 0x4b, 0x41, 0x56, 0xb4, 0x27, 0xcd, 0x6f, + 0x9c, 0xf6, 0x85, 0x9b, 0xf8, 0x6f, 0xea, 0x23, 0xe7, 0x9b, 0x51, 0x06, 0x52, 0xfe, 0xcc, 0xf9, + 0x9b, 0xa7, 0xf2, 0xe2, 0xe8, 0xc8, 0x0c, 0x7a, 0x93, 0x91, 0x62, 0xd4, 0x3d, 0x0d, 0x1d, 0x57, + 0xbc, 0x29, 0x2e, 0xa3, 0xee, 0x39, 0xc8, 0x92, 0x65, 0x71, 0x40, 0x5f, 0x2e, 0x3d, 0xa0, 0xcf, + 0xfc, 0x87, 0x06, 0x8c, 0x47, 0xd5, 0x26, 0x97, 0xe1, 0xc2, 0xb6, 0x55, 0x2a, 0x57, 0xed, 0xed, + 0xcf, 0xb6, 0xaa, 0xf6, 0xce, 0x46, 0x6d, 0xab, 0x5a, 0x5e, 0x5d, 0x5e, 0xad, 0x56, 0x8a, 0xe7, + 0xc8, 0x0c, 0x4c, 0xee, 0x6c, 0xdc, 0xdf, 0xd8, 0xdc, 0xdb, 0xb0, 0xab, 0x96, 0xb5, 0x69, 0x15, + 0x0d, 0x32, 0x09, 0xe3, 0xd6, 0x52, 0xa9, 0x6c, 0x6f, 0x6c, 0x56, 0xaa, 0xc5, 0x0c, 0x29, 0x42, + 0xa1, 0xbc, 0xb9, 0xb1, 0x51, 0x2d, 0x6f, 0xaf, 0xee, 0xae, 0x6e, 0x7f, 0x56, 0xcc, 0x12, 0x02, + 0x53, 0x88, 0xb0, 0x65, 0xad, 0x6e, 0x94, 0x57, 0xb7, 0x4a, 0x6b, 0xc5, 0x1c, 0x83, 0x31, 0x7c, + 0x05, 0x36, 0x12, 0x31, 0xba, 0xbf, 0xb3, 0x54, 0x2d, 0x8e, 0x32, 0x14, 0xf6, 0x97, 0x82, 0x32, + 0x66, 0x7e, 0xc0, 0xc3, 0xe9, 0x79, 0x97, 0x90, 0x0b, 0x40, 0x6a, 0xdb, 0xa5, 0xed, 0x9d, 0x5a, + 0xa2, 0x92, 0x13, 0x30, 0x56, 0xdb, 0x29, 0x97, 0xab, 0xb5, 0x5a, 0xd1, 0x20, 0x00, 0xa3, 0xcb, + 0xa5, 0xd5, 0xb5, 0x6a, 0xa5, 0x98, 0x31, 0xff, 0xba, 0x01, 0x05, 0x61, 0x5f, 0x94, 0x9a, 0xd4, + 0x0f, 0x9f, 0x6e, 0xba, 0xbc, 0xab, 0x6d, 0x31, 0xa2, 0x98, 0x46, 0x85, 0x3f, 0x2b, 0x4e, 0x9d, + 0x24, 0xff, 0xbd, 0x01, 0xc5, 0x24, 0x22, 0xf9, 0x10, 0xf2, 0x35, 0xfa, 0x90, 0xfa, 0x6e, 0x78, + 0x2c, 0x84, 0x6d, 0x4e, 0x3a, 0xbf, 0x11, 0x47, 0x94, 0x71, 0x37, 0x46, 0x20, 0x7e, 0x59, 0x11, + 0xcd, 0xb0, 0x73, 0x46, 0xd9, 0x21, 0x64, 0x9f, 0xd5, 0x0e, 0xc1, 0xfc, 0x97, 0x06, 0x5c, 0xbc, + 0x47, 0x43, 0xb5, 0x4d, 0x51, 0x92, 0xa4, 0xaf, 0x0d, 0xd7, 0x2e, 0xa5, 0x25, 0xf3, 0x30, 0x86, + 0x45, 0xf2, 0x9e, 0xa5, 0x25, 0x7f, 0x92, 0x25, 0x18, 0xd5, 0x92, 0xc4, 0xca, 0xe9, 0xd8, 0xe7, + 0xdb, 0x37, 0x95, 0x24, 0x95, 0x96, 0xa0, 0xbc, 0xfc, 0x2e, 0x4c, 0x7c, 0xc1, 0xa4, 0xaf, 0x37, + 0x3e, 0x82, 0x69, 0x69, 0xd0, 0x6d, 0xaf, 0xd5, 0x70, 0xe5, 0x9e, 0x86, 0x89, 0xdd, 0xaa, 0xb5, + 0xba, 0xfc, 0x99, 0xbd, 0xbc, 0xb3, 0xb6, 0x56, 0x3c, 0xc7, 0xc4, 0x58, 0x00, 0xca, 0xa5, 0xa2, + 0x41, 0x0a, 0x90, 0x5f, 0xdd, 0xa8, 0x55, 0xcb, 0x3b, 0x56, 0xb5, 0x98, 0xb9, 0xb1, 0x08, 0x53, + 0xf1, 0x0d, 0x2e, 0x14, 0xe2, 0x31, 0xc8, 0x5a, 0xa5, 0xbd, 0xe2, 0x39, 0x26, 0xa8, 0x5b, 0xf7, + 0xcb, 0xb5, 0xdb, 0xb7, 0x8b, 0x06, 0x93, 0xe0, 0x7b, 0xe5, 0x2d, 0xfb, 0xfe, 0x7a, 0xad, 0x98, + 0xb9, 0xf1, 0x35, 0x98, 0x41, 0x8f, 0x32, 0x5b, 0x7f, 0x68, 0x9b, 0xfa, 0xf8, 0xd9, 0x02, 0xeb, + 0xd4, 0x8e, 0xe3, 0x3b, 0x21, 0xe5, 0xdf, 0x5c, 0xef, 0x36, 0x43, 0xb7, 0xd3, 0xa4, 0x8f, 0x8b, + 0xc6, 0x8d, 0x77, 0x61, 0xda, 0xf2, 0xba, 0xa1, 0xdb, 0x3e, 0xac, 0x85, 0x0c, 0xe3, 0xf0, 0x98, + 0x9c, 0x87, 0x99, 0x9d, 0x8d, 0xd2, 0xfa, 0xd2, 0xea, 0xbd, 0x9d, 0xcd, 0x9d, 0x9a, 0xbd, 0x5e, + 0xda, 0x2e, 0xaf, 0x14, 0xcf, 0xb1, 0xda, 0xaf, 0x6f, 0xd6, 0xb6, 0x6d, 0xab, 0x5a, 0xae, 0x6e, + 0x6c, 0x17, 0x8d, 0x1b, 0xbf, 0x61, 0xc0, 0x14, 0xb3, 0x5c, 0xd0, 0x35, 0xb6, 0x83, 0x02, 0x73, + 0x15, 0xae, 0xec, 0xd4, 0xaa, 0x96, 0xbd, 0xbd, 0x79, 0xbf, 0xba, 0x61, 0xef, 0xd4, 0x4a, 0xf7, + 0x92, 0x5a, 0x61, 0x01, 0x5e, 0x50, 0x30, 0xac, 0x6a, 0x79, 0x73, 0xb7, 0x6a, 0xd9, 0x5b, 0xa5, + 0x5a, 0x6d, 0x6f, 0xd3, 0xaa, 0x14, 0x0d, 0xa6, 0x52, 0x52, 0x10, 0xd6, 0x97, 0x4b, 0xc5, 0x4c, + 0x4f, 0xd9, 0x46, 0x75, 0xaf, 0xb4, 0x66, 0x2f, 0x6d, 0x6e, 0x17, 0xb3, 0x37, 0x30, 0x0d, 0x28, + 0x8e, 0x24, 0xdf, 0xdd, 0xe6, 0x21, 0xb7, 0xb1, 0xb9, 0x51, 0xe5, 0x73, 0x7c, 0xab, 0xba, 0x51, + 0x59, 0xdd, 0xb8, 0xc7, 0xfb, 0xb8, 0xb4, 0xb5, 0x65, 0x6d, 0xee, 0xb2, 0x59, 0xce, 0x3a, 0xb2, + 0x52, 0xdd, 0x60, 0x35, 0xcb, 0xde, 0x30, 0x61, 0xa6, 0x4c, 0xfd, 0xb0, 0xfa, 0x38, 0xa4, 0x6d, + 0x66, 0x82, 0x60, 0xdf, 0x4d, 0xc2, 0x78, 0xf5, 0xdb, 0xdb, 0xd5, 0x8d, 0xda, 0xea, 0xe6, 0x46, + 0xf1, 0xdc, 0x8d, 0x2b, 0x09, 0x1c, 0x39, 0x2c, 0xb5, 0xda, 0x4a, 0xf1, 0xdc, 0x8d, 0xef, 0x42, + 0x41, 0xf3, 0xdc, 0x5c, 0x84, 0x59, 0xf5, 0xf7, 0x16, 0x6d, 0x37, 0xdc, 0xf6, 0x61, 0xf1, 0x5c, + 0xb2, 0xc0, 0xea, 0xb6, 0xdb, 0xac, 0x00, 0x1b, 0xaf, 0x16, 0x6c, 0x53, 0xbf, 0xe5, 0xb6, 0xd9, + 0xac, 0x29, 0x66, 0x6e, 0xdc, 0x84, 0x49, 0x6d, 0x12, 0xb0, 0xef, 0xae, 0x6d, 0x0a, 0x71, 0x58, + 0xaf, 0x56, 0x56, 0x77, 0xd6, 0x8b, 0x23, 0xac, 0xd9, 0x2b, 0xab, 0xf7, 0x56, 0x8a, 0x70, 0xe3, + 0xbb, 0x30, 0x25, 0xec, 0xd7, 0xf5, 0xe5, 0x92, 0xac, 0xe8, 0xe6, 0xf2, 0xb2, 0xd0, 0x7a, 0xd5, + 0x1a, 0xb6, 0xc9, 0x20, 0x57, 0x60, 0x5e, 0xfc, 0xb0, 0x4b, 0x1b, 0x15, 0x7b, 0xa5, 0x64, 0x55, + 0xf6, 0x4a, 0x56, 0xd5, 0xbe, 0x5f, 0xfd, 0xac, 0x98, 0x61, 0x8a, 0x53, 0x85, 0xd8, 0xdb, 0x9b, + 0x3b, 0xe5, 0x95, 0x62, 0x76, 0xe9, 0x83, 0x9f, 0xfd, 0x8b, 0x97, 0xce, 0xfd, 0xec, 0x4f, 0x5f, + 0x32, 0xfe, 0xe4, 0x4f, 0x5f, 0x32, 0xfe, 0xb7, 0x3f, 0x7d, 0xc9, 0xf8, 0x85, 0x37, 0xcf, 0x10, + 0x4e, 0xb4, 0x3f, 0x8a, 0x0a, 0xe4, 0xce, 0xff, 0x13, 0x00, 0x00, 0xff, 0xff, 0x2a, 0x21, 0x7e, + 0x88, 0x82, 0xfb, 0x00, 0x00, } func (m *KeepAlive) Marshal() (dAtA []byte, err error) { @@ -15699,6 +15787,18 @@ func (m *ProvisionTokenSpecV2) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } + if m.Kubernetes != nil { + { + size, err := m.Kubernetes.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x52 + } { size := m.SuggestedAgentMatcherLabels.Size() i -= size @@ -16001,6 +16101,81 @@ func (m *ProvisionTokenSpecV2CircleCI_Rule) MarshalToSizedBuffer(dAtA []byte) (i return len(dAtA) - i, nil } +func (m *ProvisionTokenSpecV2Kubernetes) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ProvisionTokenSpecV2Kubernetes) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ProvisionTokenSpecV2Kubernetes) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if len(m.Allow) > 0 { + for iNdEx := len(m.Allow) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Allow[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTypes(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *ProvisionTokenSpecV2Kubernetes_Rule) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ProvisionTokenSpecV2Kubernetes_Rule) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ProvisionTokenSpecV2Kubernetes_Rule) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if len(m.ServiceAccount) > 0 { + i -= len(m.ServiceAccount) + copy(dAtA[i:], m.ServiceAccount) + i = encodeVarintTypes(dAtA, i, uint64(len(m.ServiceAccount))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func (m *StaticTokensV2) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -17308,12 +17483,12 @@ func (m *UserTokenSpecV3) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } - n91, err91 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Created, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Created):]) - if err91 != nil { - return 0, err91 + n92, err92 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Created, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Created):]) + if err92 != nil { + return 0, err92 } - i -= n91 - i = encodeVarintTypes(dAtA, i, uint64(n91)) + i -= n92 + i = encodeVarintTypes(dAtA, i, uint64(n92)) i-- dAtA[i] = 0x22 if m.Usage != 0 { @@ -17430,12 +17605,12 @@ func (m *UserTokenSecretsSpecV3) MarshalToSizedBuffer(dAtA []byte) (int, error) i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } - n94, err94 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Created, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Created):]) - if err94 != nil { - return 0, err94 + n95, err95 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Created, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Created):]) + if err95 != nil { + return 0, err95 } - i -= n94 - i = encodeVarintTypes(dAtA, i, uint64(n94)) + i -= n95 + i = encodeVarintTypes(dAtA, i, uint64(n95)) i-- dAtA[i] = 0x1a if len(m.QRCode) > 0 { @@ -17599,20 +17774,20 @@ func (m *AccessReview) MarshalToSizedBuffer(dAtA []byte) (int, error) { copy(dAtA[i:], m.XXX_unrecognized) } if len(m.ThresholdIndexes) > 0 { - dAtA98 := make([]byte, len(m.ThresholdIndexes)*10) - var j97 int + dAtA99 := make([]byte, len(m.ThresholdIndexes)*10) + var j98 int for _, num := range m.ThresholdIndexes { for num >= 1<<7 { - dAtA98[j97] = uint8(uint64(num)&0x7f | 0x80) + dAtA99[j98] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j97++ + j98++ } - dAtA98[j97] = uint8(num) - j97++ + dAtA99[j98] = uint8(num) + j98++ } - i -= j97 - copy(dAtA[i:], dAtA98[:j97]) - i = encodeVarintTypes(dAtA, i, uint64(j97)) + i -= j98 + copy(dAtA[i:], dAtA99[:j98]) + i = encodeVarintTypes(dAtA, i, uint64(j98)) i-- dAtA[i] = 0x3a } @@ -17626,12 +17801,12 @@ func (m *AccessReview) MarshalToSizedBuffer(dAtA []byte) (int, error) { } i-- dAtA[i] = 0x32 - n100, err100 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Created, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Created):]) - if err100 != nil { - return 0, err100 + n101, err101 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Created, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Created):]) + if err101 != nil { + return 0, err101 } - i -= n100 - i = encodeVarintTypes(dAtA, i, uint64(n100)) + i -= n101 + i = encodeVarintTypes(dAtA, i, uint64(n101)) i-- dAtA[i] = 0x2a if len(m.Reason) > 0 { @@ -17734,20 +17909,20 @@ func (m *ThresholdIndexSet) MarshalToSizedBuffer(dAtA []byte) (int, error) { copy(dAtA[i:], m.XXX_unrecognized) } if len(m.Indexes) > 0 { - dAtA103 := make([]byte, len(m.Indexes)*10) - var j102 int + dAtA104 := make([]byte, len(m.Indexes)*10) + var j103 int for _, num := range m.Indexes { for num >= 1<<7 { - dAtA103[j102] = uint8(uint64(num)&0x7f | 0x80) + dAtA104[j103] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j102++ + j103++ } - dAtA103[j102] = uint8(num) - j102++ + dAtA104[j103] = uint8(num) + j103++ } - i -= j102 - copy(dAtA[i:], dAtA103[:j102]) - i = encodeVarintTypes(dAtA, i, uint64(j102)) + i -= j103 + copy(dAtA[i:], dAtA104[:j103]) + i = encodeVarintTypes(dAtA, i, uint64(j103)) i-- dAtA[i] = 0xa } @@ -17947,21 +18122,21 @@ func (m *AccessRequestSpecV3) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x32 } - n107, err107 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Expires, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Expires):]) - if err107 != nil { - return 0, err107 - } - i -= n107 - i = encodeVarintTypes(dAtA, i, uint64(n107)) - i-- - dAtA[i] = 0x2a - n108, err108 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Created, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Created):]) + n108, err108 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Expires, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Expires):]) if err108 != nil { return 0, err108 } i -= n108 i = encodeVarintTypes(dAtA, i, uint64(n108)) i-- + dAtA[i] = 0x2a + n109, err109 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Created, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Created):]) + if err109 != nil { + return 0, err109 + } + i -= n109 + i = encodeVarintTypes(dAtA, i, uint64(n109)) + i-- dAtA[i] = 0x22 if m.State != 0 { i = encodeVarintTypes(dAtA, i, uint64(m.State)) @@ -19902,12 +20077,12 @@ func (m *UserSpecV2) MarshalToSizedBuffer(dAtA []byte) (int, error) { } i-- dAtA[i] = 0x42 - n138, err138 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Expires, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Expires):]) - if err138 != nil { - return 0, err138 + n139, err139 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Expires, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Expires):]) + if err139 != nil { + return 0, err139 } - i -= n138 - i = encodeVarintTypes(dAtA, i, uint64(n138)) + i -= n139 + i = encodeVarintTypes(dAtA, i, uint64(n139)) i-- dAtA[i] = 0x3a { @@ -20049,29 +20224,29 @@ func (m *LoginStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } - n141, err141 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.RecoveryAttemptLockExpires, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.RecoveryAttemptLockExpires):]) - if err141 != nil { - return 0, err141 - } - i -= n141 - i = encodeVarintTypes(dAtA, i, uint64(n141)) - i-- - dAtA[i] = 0x2a - n142, err142 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.LockExpires, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.LockExpires):]) + n142, err142 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.RecoveryAttemptLockExpires, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.RecoveryAttemptLockExpires):]) if err142 != nil { return 0, err142 } i -= n142 i = encodeVarintTypes(dAtA, i, uint64(n142)) i-- - dAtA[i] = 0x22 - n143, err143 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.LockedTime, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.LockedTime):]) + dAtA[i] = 0x2a + n143, err143 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.LockExpires, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.LockExpires):]) if err143 != nil { return 0, err143 } i -= n143 i = encodeVarintTypes(dAtA, i, uint64(n143)) i-- + dAtA[i] = 0x22 + n144, err144 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.LockedTime, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.LockedTime):]) + if err144 != nil { + return 0, err144 + } + i -= n144 + i = encodeVarintTypes(dAtA, i, uint64(n144)) + i-- dAtA[i] = 0x1a if len(m.LockedMessage) > 0 { i -= len(m.LockedMessage) @@ -20127,12 +20302,12 @@ func (m *CreatedBy) MarshalToSizedBuffer(dAtA []byte) (int, error) { } i-- dAtA[i] = 0x1a - n145, err145 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Time, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Time):]) - if err145 != nil { - return 0, err145 + n146, err146 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Time, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Time):]) + if err146 != nil { + return 0, err146 } - i -= n145 - i = encodeVarintTypes(dAtA, i, uint64(n145)) + i -= n146 + i = encodeVarintTypes(dAtA, i, uint64(n146)) i-- dAtA[i] = 0x12 if m.Connector != nil { @@ -20250,21 +20425,21 @@ func (m *MFADevice) MarshalToSizedBuffer(dAtA []byte) (int, error) { } } } - n148, err148 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.LastUsed, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.LastUsed):]) - if err148 != nil { - return 0, err148 - } - i -= n148 - i = encodeVarintTypes(dAtA, i, uint64(n148)) - i-- - dAtA[i] = 0x3a - n149, err149 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.AddedAt, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.AddedAt):]) + n149, err149 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.LastUsed, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.LastUsed):]) if err149 != nil { return 0, err149 } i -= n149 i = encodeVarintTypes(dAtA, i, uint64(n149)) i-- + dAtA[i] = 0x3a + n150, err150 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.AddedAt, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.AddedAt):]) + if err150 != nil { + return 0, err150 + } + i -= n150 + i = encodeVarintTypes(dAtA, i, uint64(n150)) + i-- dAtA[i] = 0x32 if len(m.Id) > 0 { i -= len(m.Id) @@ -20860,12 +21035,12 @@ func (m *TunnelConnectionSpecV2) MarshalToSizedBuffer(dAtA []byte) (int, error) i-- dAtA[i] = 0x22 } - n158, err158 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.LastHeartbeat, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.LastHeartbeat):]) - if err158 != nil { - return 0, err158 + n159, err159 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.LastHeartbeat, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.LastHeartbeat):]) + if err159 != nil { + return 0, err159 } - i -= n158 - i = encodeVarintTypes(dAtA, i, uint64(n158)) + i -= n159 + i = encodeVarintTypes(dAtA, i, uint64(n159)) i-- dAtA[i] = 0x1a if len(m.ProxyName) > 0 { @@ -20957,12 +21132,12 @@ func (m *AcquireSemaphoreRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) i-- dAtA[i] = 0x2a } - n159, err159 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Expires, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Expires):]) - if err159 != nil { - return 0, err159 + n160, err160 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Expires, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Expires):]) + if err160 != nil { + return 0, err160 } - i -= n159 - i = encodeVarintTypes(dAtA, i, uint64(n159)) + i -= n160 + i = encodeVarintTypes(dAtA, i, uint64(n160)) i-- dAtA[i] = 0x22 if m.MaxLeases != 0 { @@ -21011,12 +21186,12 @@ func (m *SemaphoreLease) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } - n160, err160 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Expires, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Expires):]) - if err160 != nil { - return 0, err160 + n161, err161 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Expires, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Expires):]) + if err161 != nil { + return 0, err161 } - i -= n160 - i = encodeVarintTypes(dAtA, i, uint64(n160)) + i -= n161 + i = encodeVarintTypes(dAtA, i, uint64(n161)) i-- dAtA[i] = 0x2a if len(m.LeaseID) > 0 { @@ -21074,12 +21249,12 @@ func (m *SemaphoreLeaseRef) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x1a } - n161, err161 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Expires, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Expires):]) - if err161 != nil { - return 0, err161 + n162, err162 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Expires, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Expires):]) + if err162 != nil { + return 0, err162 } - i -= n161 - i = encodeVarintTypes(dAtA, i, uint64(n161)) + i -= n162 + i = encodeVarintTypes(dAtA, i, uint64(n162)) i-- dAtA[i] = 0x12 if len(m.LeaseID) > 0 { @@ -21305,29 +21480,29 @@ func (m *WebSessionSpecV2) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x48 } - n166, err166 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.LoginTime, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.LoginTime):]) - if err166 != nil { - return 0, err166 - } - i -= n166 - i = encodeVarintTypes(dAtA, i, uint64(n166)) - i-- - dAtA[i] = 0x42 - n167, err167 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Expires, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Expires):]) + n167, err167 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.LoginTime, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.LoginTime):]) if err167 != nil { return 0, err167 } i -= n167 i = encodeVarintTypes(dAtA, i, uint64(n167)) i-- - dAtA[i] = 0x3a - n168, err168 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.BearerTokenExpires, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.BearerTokenExpires):]) + dAtA[i] = 0x42 + n168, err168 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Expires, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Expires):]) if err168 != nil { return 0, err168 } i -= n168 i = encodeVarintTypes(dAtA, i, uint64(n168)) i-- + dAtA[i] = 0x3a + n169, err169 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.BearerTokenExpires, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.BearerTokenExpires):]) + if err169 != nil { + return 0, err169 + } + i -= n169 + i = encodeVarintTypes(dAtA, i, uint64(n169)) + i-- dAtA[i] = 0x32 if len(m.BearerToken) > 0 { i -= len(m.BearerToken) @@ -21493,12 +21668,12 @@ func (m *RemoteClusterStatusV3) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } - n171, err171 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.LastHeartbeat, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.LastHeartbeat):]) - if err171 != nil { - return 0, err171 + n172, err172 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.LastHeartbeat, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.LastHeartbeat):]) + if err172 != nil { + return 0, err172 } - i -= n171 - i = encodeVarintTypes(dAtA, i, uint64(n171)) + i -= n172 + i = encodeVarintTypes(dAtA, i, uint64(n172)) i-- dAtA[i] = 0x12 if len(m.Connection) > 0 { @@ -23748,12 +23923,12 @@ func (m *GithubAuthRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { dAtA[i] = 0x62 } if m.Expires != nil { - n200, err200 := github_com_gogo_protobuf_types.StdTimeMarshalTo(*m.Expires, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(*m.Expires):]) - if err200 != nil { - return 0, err200 + n201, err201 := github_com_gogo_protobuf_types.StdTimeMarshalTo(*m.Expires, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(*m.Expires):]) + if err201 != nil { + return 0, err201 } - i -= n200 - i = encodeVarintTypes(dAtA, i, uint64(n200)) + i -= n201 + i = encodeVarintTypes(dAtA, i, uint64(n201)) i-- dAtA[i] = 0x5a } @@ -24748,12 +24923,12 @@ func (m *LockSpecV2) MarshalToSizedBuffer(dAtA []byte) (int, error) { copy(dAtA[i:], m.XXX_unrecognized) } if m.Expires != nil { - n218, err218 := github_com_gogo_protobuf_types.StdTimeMarshalTo(*m.Expires, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(*m.Expires):]) - if err218 != nil { - return 0, err218 + n219, err219 := github_com_gogo_protobuf_types.StdTimeMarshalTo(*m.Expires, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(*m.Expires):]) + if err219 != nil { + return 0, err219 } - i -= n218 - i = encodeVarintTypes(dAtA, i, uint64(n218)) + i -= n219 + i = encodeVarintTypes(dAtA, i, uint64(n219)) i-- dAtA[i] = 0x1a } @@ -25275,12 +25450,12 @@ func (m *RegisterUsingTokenRequest) MarshalToSizedBuffer(dAtA []byte) (int, erro copy(dAtA[i:], m.XXX_unrecognized) } if m.Expires != nil { - n226, err226 := github_com_gogo_protobuf_types.StdTimeMarshalTo(*m.Expires, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(*m.Expires):]) - if err226 != nil { - return 0, err226 + n227, err227 := github_com_gogo_protobuf_types.StdTimeMarshalTo(*m.Expires, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(*m.Expires):]) + if err227 != nil { + return 0, err227 } - i -= n226 - i = encodeVarintTypes(dAtA, i, uint64(n226)) + i -= n227 + i = encodeVarintTypes(dAtA, i, uint64(n227)) i-- dAtA[i] = 0x62 } @@ -25460,12 +25635,12 @@ func (m *RecoveryCodesSpecV1) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } - n229, err229 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Created, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Created):]) - if err229 != nil { - return 0, err229 + n230, err230 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Created, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Created):]) + if err230 != nil { + return 0, err230 } - i -= n229 - i = encodeVarintTypes(dAtA, i, uint64(n229)) + i -= n230 + i = encodeVarintTypes(dAtA, i, uint64(n230)) i-- dAtA[i] = 0x12 if len(m.Codes) > 0 { @@ -25816,21 +25991,21 @@ func (m *SessionTrackerSpecV1) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x32 } - n233, err233 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Expires, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Expires):]) - if err233 != nil { - return 0, err233 - } - i -= n233 - i = encodeVarintTypes(dAtA, i, uint64(n233)) - i-- - dAtA[i] = 0x2a - n234, err234 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Created, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Created):]) + n234, err234 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Expires, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Expires):]) if err234 != nil { return 0, err234 } i -= n234 i = encodeVarintTypes(dAtA, i, uint64(n234)) i-- + dAtA[i] = 0x2a + n235, err235 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Created, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Created):]) + if err235 != nil { + return 0, err235 + } + i -= n235 + i = encodeVarintTypes(dAtA, i, uint64(n235)) + i-- dAtA[i] = 0x22 if m.State != 0 { i = encodeVarintTypes(dAtA, i, uint64(m.State)) @@ -25933,12 +26108,12 @@ func (m *Participant) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } - n235, err235 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.LastActive, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.LastActive):]) - if err235 != nil { - return 0, err235 + n236, err236 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.LastActive, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.LastActive):]) + if err236 != nil { + return 0, err236 } - i -= n235 - i = encodeVarintTypes(dAtA, i, uint64(n235)) + i -= n236 + i = encodeVarintTypes(dAtA, i, uint64(n236)) i-- dAtA[i] = 0x22 if len(m.Mode) > 0 { @@ -26379,12 +26554,12 @@ func (m *ClusterAlertSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } - n242, err242 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Created, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Created):]) - if err242 != nil { - return 0, err242 + n243, err243 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Created, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Created):]) + if err243 != nil { + return 0, err243 } - i -= n242 - i = encodeVarintTypes(dAtA, i, uint64(n242)) + i -= n243 + i = encodeVarintTypes(dAtA, i, uint64(n243)) i-- dAtA[i] = 0x1a if len(m.Message) > 0 { @@ -27893,6 +28068,10 @@ func (m *ProvisionTokenSpecV2) Size() (n int) { } l = m.SuggestedAgentMatcherLabels.Size() n += 1 + l + sovTypes(uint64(l)) + if m.Kubernetes != nil { + l = m.Kubernetes.Size() + n += 1 + l + sovTypes(uint64(l)) + } if m.XXX_unrecognized != nil { n += len(m.XXX_unrecognized) } @@ -28003,6 +28182,40 @@ func (m *ProvisionTokenSpecV2CircleCI_Rule) Size() (n int) { return n } +func (m *ProvisionTokenSpecV2Kubernetes) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Allow) > 0 { + for _, e := range m.Allow { + l = e.Size() + n += 1 + l + sovTypes(uint64(l)) + } + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *ProvisionTokenSpecV2Kubernetes_Rule) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.ServiceAccount) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + func (m *StaticTokensV2) Size() (n int) { if m == nil { return 0 @@ -42727,6 +42940,42 @@ func (m *ProvisionTokenSpecV2) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Kubernetes", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Kubernetes == nil { + m.Kubernetes = &ProvisionTokenSpecV2Kubernetes{} + } + if err := m.Kubernetes.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipTypes(dAtA[iNdEx:]) @@ -43373,6 +43622,174 @@ func (m *ProvisionTokenSpecV2CircleCI_Rule) Unmarshal(dAtA []byte) error { } return nil } +func (m *ProvisionTokenSpecV2Kubernetes) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ProvisionTokenSpecV2Kubernetes: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ProvisionTokenSpecV2Kubernetes: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Allow", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Allow = append(m.Allow, &ProvisionTokenSpecV2Kubernetes_Rule{}) + if err := m.Allow[len(m.Allow)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ProvisionTokenSpecV2Kubernetes_Rule) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Rule: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Rule: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ServiceAccount", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ServiceAccount = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *StaticTokensV2) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 diff --git a/lib/auth/auth.go b/lib/auth/auth.go index 60f063fe5c86d..5a3e7c490a62d 100644 --- a/lib/auth/auth.go +++ b/lib/auth/auth.go @@ -71,6 +71,7 @@ import ( "github.com/gravitational/teleport/lib/githubactions" "github.com/gravitational/teleport/lib/inventory" kubeutils "github.com/gravitational/teleport/lib/kube/utils" + "github.com/gravitational/teleport/lib/kubernetestoken" "github.com/gravitational/teleport/lib/limiter" "github.com/gravitational/teleport/lib/modules" "github.com/gravitational/teleport/lib/observability/metrics" @@ -285,6 +286,9 @@ func NewServer(cfg *InitConfig, opts ...ServerOption) (*Server, error) { ) } } + if as.kubernetesTokenValidator == nil { + as.kubernetesTokenValidator = &kubernetestoken.Validator{} + } oas, err := NewOIDCAuthService(&OIDCAuthServiceConfig{ Auth: &as, @@ -479,6 +483,10 @@ type Server struct { // the auth server. It can be overridden for the purpose of tests. circleCITokenValidate func(ctx context.Context, organizationID, token string) (*circleci.IDTokenClaims, error) + // kubernetesTokenValidator allows tokens from Kubernetes to be validated + // by the auth server. It can be overridden for the purpose of tests. + kubernetesTokenValidator kubernetesTokenValidator + // loadAllCAs tells tsh to load the host CAs for all clusters when trying to ssh into a node. loadAllCAs bool } diff --git a/lib/auth/bot.go b/lib/auth/bot.go index e859e4abfe174..22f14887b703c 100644 --- a/lib/auth/bot.go +++ b/lib/auth/bot.go @@ -272,7 +272,8 @@ func (s *Server) checkOrCreateBotToken(ctx context.Context, req *proto.CreateBot case types.JoinMethodToken, types.JoinMethodIAM, types.JoinMethodGitHub, - types.JoinMethodCircleCI: + types.JoinMethodCircleCI, + types.JoinMethodKubernetes: default: return nil, trace.BadParameter( "token %q has join method %q which is not supported for bots. Supported join methods are %v", @@ -281,6 +282,7 @@ func (s *Server) checkOrCreateBotToken(ctx context.Context, req *proto.CreateBot types.JoinMethodIAM, types.JoinMethodGitHub, types.JoinMethodCircleCI, + types.JoinMethodKubernetes, }) } return provisionToken, nil diff --git a/lib/auth/join.go b/lib/auth/join.go index 74e89d1c935d0..b24a3a6b831d7 100644 --- a/lib/auth/join.go +++ b/lib/auth/join.go @@ -117,6 +117,10 @@ func (a *Server) RegisterUsingToken(ctx context.Context, req *types.RegisterUsin if err := a.checkCircleCIJoinRequest(ctx, req); err != nil { return nil, trace.Wrap(err) } + case types.JoinMethodKubernetes: + if err := a.checkKubernetesJoinRequest(ctx, req); err != nil { + return nil, trace.Wrap(err) + } case types.JoinMethodToken: // carry on to common token checking logic default: @@ -162,7 +166,8 @@ func (a *Server) generateCerts(ctx context.Context, provisionToken types.Provisi renewable = true case types.JoinMethodIAM, types.JoinMethodGitHub, - types.JoinMethodCircleCI: + types.JoinMethodCircleCI, + types.JoinMethodKubernetes: shouldDeleteToken = false renewable = false default: diff --git a/lib/auth/join_kubernetes.go b/lib/auth/join_kubernetes.go new file mode 100644 index 0000000000000..f2444183fb737 --- /dev/null +++ b/lib/auth/join_kubernetes.go @@ -0,0 +1,75 @@ +/* +Copyright 2022 Gravitational, Inc. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package auth + +import ( + "context" + "fmt" + + "github.com/gravitational/trace" + "github.com/sirupsen/logrus" + v1 "k8s.io/api/authentication/v1" + + "github.com/gravitational/teleport/api/types" + "github.com/gravitational/teleport/lib/kubernetestoken" +) + +type kubernetesTokenValidator interface { + Validate(context.Context, string) (*v1.UserInfo, error) +} + +func (a *Server) checkKubernetesJoinRequest(ctx context.Context, req *types.RegisterUsingTokenRequest) error { + if req.IDToken == "" { + return trace.BadParameter("IDToken not provided for Kubernetes join request") + } + pt, err := a.GetToken(ctx, req.Token) + if err != nil { + return trace.Wrap(err) + } + + userInfo, err := a.kubernetesTokenValidator.Validate(ctx, req.IDToken) + if err != nil { + return trace.Wrap(err) + } + + log.WithFields(logrus.Fields{ + "userInfo": userInfo, + "token": pt.GetName(), + }).Info("Kubernetes workload trying to join cluster") + + // TODO: if pod extradata compare with node name? + + return trace.Wrap(checkKubernetesAllowRules(pt, userInfo)) +} + +func checkKubernetesAllowRules(pt types.ProvisionToken, userInfo *v1.UserInfo) error { + token, ok := pt.(*types.ProvisionTokenV2) + if !ok { + return trace.BadParameter("kubernetes join method only supports ProvisionTokenV2, '%T' was provided", pt) + } + + // If a single rule passes, accept the token + for _, rule := range token.Spec.Kubernetes.Allow { + if fmt.Sprintf("%s:%s", kubernetestoken.ServiceAccountNamePrefix, rule.ServiceAccount) != userInfo.Username { + continue + } + // All provided rules met. + return nil + } + + return trace.AccessDenied("kubernetes token user info did not match any allow rules") +} diff --git a/lib/auth/join_kubernetes_test.go b/lib/auth/join_kubernetes_test.go new file mode 100644 index 0000000000000..0d27aacb366fb --- /dev/null +++ b/lib/auth/join_kubernetes_test.go @@ -0,0 +1,153 @@ +/* +Copyright 2022 Gravitational, Inc. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package auth + +import ( + "context" + "testing" + "time" + + "github.com/gravitational/trace" + "github.com/stretchr/testify/require" + v1 "k8s.io/api/authentication/v1" + + "github.com/gravitational/teleport/api/types" + "github.com/gravitational/teleport/lib/auth/testauthority" +) + +type mockKubernetesTokenValidator struct { + tokens map[string]v1.UserInfo +} + +func (m *mockKubernetesTokenValidator) Validate(_ context.Context, token string) (*v1.UserInfo, error) { + userInfo, ok := m.tokens[token] + if !ok { + return nil, errMockInvalidToken + } + + return &userInfo, nil +} + +func TestAuth_RegisterUsingToken_Kubernetes(t *testing.T) { + // Test setup + + // Creating an auth server with mock Kubernetes token validator + tokens := map[string]v1.UserInfo{ + "matching-first-rule-token1": {Username: "system:serviceaccount:namespace1:service-account1"}, + "matching-second-rule-token2": {Username: "system:serviceaccount:namespace2:service-account2"}, + "user-token": {Username: "namespace1:service-account1"}, + } + + var withTokenValidator ServerOption = func(server *Server) error { + server.kubernetesTokenValidator = &mockKubernetesTokenValidator{tokens: tokens} + return nil + } + + ctx := context.Background() + p, err := newTestPack(ctx, t.TempDir(), withTokenValidator) + require.NoError(t, err) + auth := p.a + + // Creating and loading our two Kubernetes Provision tokens + pt1, err := types.NewProvisionTokenFromSpec("my-token-1", time.Now().Add(10*time.Minute), types.ProvisionTokenSpecV2{ + JoinMethod: types.JoinMethodKubernetes, + Roles: []types.SystemRole{types.RoleNode}, + Kubernetes: &types.ProvisionTokenSpecV2Kubernetes{ + Allow: []*types.ProvisionTokenSpecV2Kubernetes_Rule{ + {ServiceAccount: "namespace1:service-account1"}, + {ServiceAccount: "namespace1:service-account2"}, + }, + }, + }) + require.NoError(t, err) + pt2, err := types.NewProvisionTokenFromSpec("my-token-2", time.Now().Add(10*time.Minute), types.ProvisionTokenSpecV2{ + JoinMethod: types.JoinMethodKubernetes, + Roles: []types.SystemRole{types.RoleNode}, + Kubernetes: &types.ProvisionTokenSpecV2Kubernetes{ + Allow: []*types.ProvisionTokenSpecV2Kubernetes_Rule{ + {ServiceAccount: "namespace2:service-account1"}, + {ServiceAccount: "namespace2:service-account2"}, + }, + }, + }) + require.NoError(t, err) + require.NoError(t, auth.CreateToken(ctx, pt1)) + require.NoError(t, auth.CreateToken(ctx, pt2)) + + // Building a joinRequest builder + sshPrivateKey, sshPublicKey, err := testauthority.New().GenerateKeyPair() + require.NoError(t, err) + tlsPublicKey, err := PrivateKeyToPublicKeyTLS(sshPrivateKey) + require.NoError(t, err) + + newRequest := func(token, idToken string) *types.RegisterUsingTokenRequest { + return &types.RegisterUsingTokenRequest{ + Token: token, + HostID: "host-id", + Role: types.RoleNode, + IDToken: idToken, + PublicTLSKey: tlsPublicKey, + PublicSSHKey: sshPublicKey, + } + } + + tests := []struct { + name string + kubeToken string + provisionToken types.ProvisionToken + expectedErr error + }{ + { + "successful token join (first rule)", + "matching-first-rule-token1", + pt1, + nil, + }, + { + "successful token join (second rule)", + "matching-second-rule-token2", + pt2, + nil, + }, + { + "failed token join (wrong provisionToken)", + "matching-second-rule-token2", + pt1, + trace.AccessDenied("kubernetes token user info did not match any allow rules"), + }, + { + "failed token join (unknown kubeToken)", + "unknown", + pt1, + errMockInvalidToken, + }, + { + "failed token join (user token)", + "user-token", + pt1, + trace.AccessDenied("kubernetes token user info did not match any allow rules"), + }, + } + + // Doing the real test + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + _, err := auth.RegisterUsingToken(ctx, newRequest(tt.provisionToken.GetName(), tt.kubeToken)) + require.ErrorIs(t, err, tt.expectedErr) + }) + } +} diff --git a/lib/auth/register.go b/lib/auth/register.go index 32082927aef09..636d7a5b130dd 100644 --- a/lib/auth/register.go +++ b/lib/auth/register.go @@ -39,6 +39,7 @@ import ( "github.com/gravitational/teleport/lib/circleci" "github.com/gravitational/teleport/lib/defaults" "github.com/gravitational/teleport/lib/githubactions" + "github.com/gravitational/teleport/lib/kubernetestoken" "github.com/gravitational/teleport/lib/srv/alpnproxy/common" "github.com/gravitational/teleport/lib/tlsca" "github.com/gravitational/teleport/lib/utils" @@ -208,6 +209,11 @@ func Register(params RegisterParams) (*proto.Certs, error) { if err != nil { return nil, trace.Wrap(err) } + } else if params.JoinMethod == types.JoinMethodKubernetes { + params.IDToken, err = kubernetestoken.GetIDToken(os.Getenv, os.ReadFile) + if err != nil { + return nil, trace.Wrap(err) + } } type registerMethod struct { diff --git a/lib/kubernetestoken/token_source.go b/lib/kubernetestoken/token_source.go new file mode 100644 index 0000000000000..50f05328662a7 --- /dev/null +++ b/lib/kubernetestoken/token_source.go @@ -0,0 +1,45 @@ +/* +Copyright 2022 Gravitational, Inc. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package kubernetestoken + +import ( + "strings" + + "github.com/gravitational/trace" +) + +const kubernetesDefaultTokenPath = "/var/run/secrets/kubernetes.io/serviceaccount/token" + +type getEnvFunc func(key string) string +type readFileFunc func(name string) ([]byte, error) + +func GetIDToken(getEnv getEnvFunc, readFile readFileFunc) (string, error) { + // We check if we should use a custom location instead of the default one. This env var is not standard. + // This is useful when the operator wants to use a custom projected token, or another service account. + path := kubernetesDefaultTokenPath + if customPath := getEnv("KUBERNETES_TOKEN_PATH"); customPath != "" { + path = customPath + } + + token, err := readFile(path) + if err != nil { + return "", trace.Wrap(err) + } + + // Usually kubernetes tokens don't start or end with newlines, but better safe than sorry + return strings.TrimSpace(string(token)), nil +} diff --git a/lib/kubernetestoken/token_source_test.go b/lib/kubernetestoken/token_source_test.go new file mode 100644 index 0000000000000..0d0a67a613776 --- /dev/null +++ b/lib/kubernetestoken/token_source_test.go @@ -0,0 +1,101 @@ +/* +Copyright 2022 Gravitational, Inc. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package kubernetestoken + +import ( + "io/fs" + "syscall" + "testing" + + "github.com/stretchr/testify/require" +) + +func TestGetIDToken(t *testing.T) { + t.Parallel() + fakeGetEnv := func(env string) getEnvFunc { + return func(key string) string { + if key == "KUBERNETES_TOKEN_PATH" { + return env + } + return "" + } + } + + errNoFile := func(path string) error { + return &fs.PathError{ + Op: "open", + Path: path, + Err: syscall.ENOENT, + } + } + + fakeReadFile := func(content, contentPath string) readFileFunc { + return func(path string) ([]byte, error) { + if path == contentPath { + return []byte(content), nil + } + return []byte{}, errNoFile(path) + } + } + + tests := []struct { + name string + getEnv getEnvFunc + readFile readFileFunc + wantString string + assertError require.ErrorAssertionFunc + }{ + { + name: "default-token-no-var", + getEnv: fakeGetEnv(""), + readFile: fakeReadFile("foobarbizz", kubernetesDefaultTokenPath), + wantString: "foobarbizz", + assertError: require.NoError, + }, + { + name: "custom-token-with-var", + getEnv: fakeGetEnv("/custom"), + readFile: fakeReadFile("foobarbizz", "/custom"), + wantString: "foobarbizz", + assertError: require.NoError, + }, + { + name: "no-token-no-var", + getEnv: fakeGetEnv(""), + readFile: fakeReadFile("foobarbizz", "/custom"), + assertError: func(t require.TestingT, err error, i ...interface{}) { + require.ErrorContains(t, err, kubernetesDefaultTokenPath+": no such file") + }, + }, + { + name: "no-token-with-var", + getEnv: fakeGetEnv("/custom"), + readFile: fakeReadFile("foobarbizz", kubernetesDefaultTokenPath), + assertError: func(t require.TestingT, err error, i ...interface{}) { + require.ErrorContains(t, err, "/custom: no such file") + }, + }, + } + + for _, tt := range tests { + t.Run(t.Name(), func(t *testing.T) { + str, err := GetIDToken(tt.getEnv, tt.readFile) + require.Equal(t, tt.wantString, str) + tt.assertError(t, err) + }) + } +} diff --git a/lib/kubernetestoken/token_validator.go b/lib/kubernetestoken/token_validator.go new file mode 100644 index 0000000000000..b92f245003543 --- /dev/null +++ b/lib/kubernetestoken/token_validator.go @@ -0,0 +1,143 @@ +/* +Copyright 2022 Gravitational, Inc. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package kubernetestoken + +import ( + "context" + "strconv" + "strings" + "sync" + + "github.com/gravitational/trace" + v1 "k8s.io/api/authentication/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/version" + "k8s.io/client-go/kubernetes" + "k8s.io/client-go/rest" + "k8s.io/utils/strings/slices" +) + +const ( + serviceAccountGroup = "system:serviceaccounts" + ServiceAccountNamePrefix = "system:serviceaccount" + extraDataPodNameField = "authentication.kubernetes.io/pod-name" + // Kubernetes should support bound tokens on 1.20 and 1.21, + // but we can have an apiserver running 1.21 and kubelets running 1.19. + kubernetesBoundTokenSupportMinor = 22 +) + +type Validator struct { + mu sync.Mutex + // client is protected by mu and should only be accessed via the getProvider + // method. + client kubernetes.Interface +} + +// getClient allows the lazy initialisation of the Kubernetes client +func (v *Validator) getClient() (kubernetes.Interface, error) { + v.mu.Lock() + defer v.mu.Unlock() + if v.client != nil { + return v.client, nil + } + + config, err := rest.InClusterConfig() + if err != nil { + return nil, trace.WrapWithMessage(err, "failed to initialize in-cluster Kubernetes config") + } + client, err := kubernetes.NewForConfig(config) + if err != nil { + return nil, trace.WrapWithMessage(err, "failed to initialize in-cluster Kubernetes client") + } + + v.client = client + return client, nil +} + +// Validate uses the Kubernetes TokenReview API to validate a token and return its UserInfo +func (v *Validator) Validate(ctx context.Context, token string) (*v1.UserInfo, error) { + client, err := v.getClient() + if err != nil { + return nil, trace.Wrap(err) + } + + review := &v1.TokenReview{ + Spec: v1.TokenReviewSpec{ + Token: token, + }, + } + options := metav1.CreateOptions{} + + reviewResult, err := client.AuthenticationV1().TokenReviews().Create(ctx, review, options) + if err != nil { + return nil, trace.WrapWithMessage(err, "error during the Kubernetes TokenReview") + } + + if !reviewResult.Status.Authenticated { + return nil, trace.AccessDenied("kubernetes failed to validate token: %s", reviewResult.Status.Error) + } + + // Legacy tokens are long-lived and not bound to pods. We should not accept them if the cluster supports + // bound tokens. Bound token support is GA since 1.20 and volume projection is beta since 1.21. + // We can expect any 1.21+ cluster to use bound tokens. + kubeVersion, err := client.Discovery().ServerVersion() + if err != nil { + return nil, trace.WrapWithMessage(err, "error during the kubernetes version check") + } + + boundTokenSupport, err := kubernetesSupportsBoundTokens(kubeVersion) + if err != nil { + return nil, trace.Wrap(err) + } + + // Check the Username is a service account. + // A user token would not match rules anyway, but we can produce a more relevant error message here. + if !strings.HasPrefix(reviewResult.Status.User.Username, ServiceAccountNamePrefix) { + return nil, trace.BadParameter("token user is not a service account: %s", reviewResult.Status.User.Username) + } + + if !slices.Contains(reviewResult.Status.User.Groups, serviceAccountGroup) { + return nil, trace.BadParameter("token user '%s' does not belong to the '%s' group", reviewResult.Status.User.Username, serviceAccountGroup) + } + + // We know if the token is bound to a pod if its name is in the Extra userInfo. + // If the token is not bound while Kubernetes supports bound tokens we abort. + if _, ok := reviewResult.Status.User.Extra[extraDataPodNameField]; !ok && boundTokenSupport { + return nil, trace.BadParameter( + "legacy SA tokens are not accepted as kubernetes version %s supports bound tokens", + kubeVersion.GitVersion, + ) + } + + return &reviewResult.Status.User, nil +} + +func kubernetesSupportsBoundTokens(info *version.Info) (bool, error) { + major, err := strconv.Atoi(info.Major) + if err != nil { + return false, err + } + minor, err := strconv.Atoi(info.Minor) + if err != nil { + return false, err + } + + if major > 1 { + return true, nil + } + return minor >= kubernetesBoundTokenSupportMinor, nil +} diff --git a/lib/kubernetestoken/token_validator_test.go b/lib/kubernetestoken/token_validator_test.go new file mode 100644 index 0000000000000..557b71838b514 --- /dev/null +++ b/lib/kubernetestoken/token_validator_test.go @@ -0,0 +1,221 @@ +/* +Copyright 2022 Gravitational, Inc. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package kubernetestoken + +import ( + "context" + "testing" + + "github.com/gravitational/trace" + "github.com/stretchr/testify/require" + v1 "k8s.io/api/authentication/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/version" + "k8s.io/client-go/discovery" + fakediscovery "k8s.io/client-go/discovery/fake" + "k8s.io/client-go/kubernetes/fake" + ctest "k8s.io/client-go/testing" +) + +var userGroups = []string{"system:serviceaccounts", "system:serviceaccounts:namespace", "system:authenticated"} + +var boundTokenKubernetesVersion = version.Info{ + Major: "1", + Minor: "22", + GitVersion: "1.22", +} + +var legacyTokenKubernetesVersion = version.Info{ + Major: "1", + Minor: "19", + GitVersion: "1.19", +} + +// tokenReviewMock creates a testing.ReactionFunc validating the tokenReview request and answering it +func tokenReviewMock(t *testing.T, reviewResult *v1.TokenReview) func(ctest.Action) (bool, runtime.Object, error) { + return func(action ctest.Action) (bool, runtime.Object, error) { + createAction, ok := action.(ctest.CreateAction) + require.True(t, ok) + obj := createAction.GetObject() + reviewRequest, ok := obj.(*v1.TokenReview) + require.True(t, ok) + + require.Equal(t, reviewResult.Spec.Token, reviewRequest.Spec.Token) + return true, reviewResult, nil + } +} + +// newFakeClientset builds a fake clientSet reporting a specific Kubernetes version +// This is used to test version-specific behaviours. +func newFakeClientset(version *version.Info) *fakeClientSet { + cs := fakeClientSet{} + cs.discovery = fakediscovery.FakeDiscovery{ + Fake: &cs.Fake, + FakedServerVersion: version, + } + return &cs +} + +type fakeClientSet struct { + fake.Clientset + discovery fakediscovery.FakeDiscovery +} + +// Discovery overrides the default fake.Clientset Discovery method and returns our custom discovery mock instead +func (c fakeClientSet) Discovery() discovery.DiscoveryInterface { + return &c.discovery +} + +func TestIDTokenValidator_Validate(t *testing.T) { + tests := []struct { + token string + review *v1.TokenReview + kubeVersion *version.Info + expectedError error + }{ + { + token: "valid", + review: &v1.TokenReview{ + Spec: v1.TokenReviewSpec{ + Token: "valid", + }, + Status: v1.TokenReviewStatus{ + Authenticated: true, + User: v1.UserInfo{ + Username: "system:serviceaccount:namespace:my-service-account", + UID: "sa-uuid", + Groups: userGroups, + Extra: map[string]v1.ExtraValue{ + "authentication.kubernetes.io/pod-name": {"podA"}, + "authentication.kubernetes.io/pod-uid": {"podA-uuid"}, + }, + }, + }, + }, + kubeVersion: &boundTokenKubernetesVersion, + expectedError: nil, + }, + { + token: "valid-not-bound", + review: &v1.TokenReview{ + Spec: v1.TokenReviewSpec{ + Token: "valid-not-bound", + }, + Status: v1.TokenReviewStatus{ + Authenticated: true, + User: v1.UserInfo{ + Username: "system:serviceaccount:namespace:my-service-account", + UID: "sa-uuid", + Groups: userGroups, + Extra: nil, + }, + }, + }, + kubeVersion: &legacyTokenKubernetesVersion, + expectedError: nil, + }, + { + token: "valid-not-bound-on-modern-version", + review: &v1.TokenReview{ + Spec: v1.TokenReviewSpec{ + Token: "valid-not-bound-on-modern-version", + }, + Status: v1.TokenReviewStatus{ + Authenticated: true, + User: v1.UserInfo{ + Username: "system:serviceaccount:namespace:my-service-account", + UID: "sa-uuid", + Groups: userGroups, + Extra: nil, + }, + }, + }, + kubeVersion: &boundTokenKubernetesVersion, + expectedError: trace.BadParameter("legacy SA tokens are not accepted as kubernetes version 1.21 supports bound tokens"), + }, + { + token: "valid-but-not-serviceaccount", + review: &v1.TokenReview{ + Spec: v1.TokenReviewSpec{ + Token: "valid-but-not-serviceaccount", + }, + Status: v1.TokenReviewStatus{ + Authenticated: true, + User: v1.UserInfo{ + Username: "eve@example.com", + UID: "user-uuid", + Groups: []string{"system:authenticated", "some-other-group"}, + Extra: nil, + }, + }, + }, + kubeVersion: &boundTokenKubernetesVersion, + expectedError: trace.BadParameter("token user is not a service account: eve@example.com"), + }, + { + token: "valid-but-not-serviceaccount-group", + review: &v1.TokenReview{ + Spec: v1.TokenReviewSpec{ + Token: "valid-but-not-serviceaccount-group", + }, + Status: v1.TokenReviewStatus{ + Authenticated: true, + User: v1.UserInfo{ + Username: "system:serviceaccount:namespace:my-service-account", + UID: "user-uuid", + Groups: []string{"system:authenticated", "some-other-group"}, + Extra: nil, + }, + }, + }, + kubeVersion: &boundTokenKubernetesVersion, + expectedError: trace.BadParameter("token user 'system:serviceaccount:namespace:my-service-account' does not belong to the 'system:serviceaccounts' group"), + }, + { + token: "invalid-expired", + review: &v1.TokenReview{ + Spec: v1.TokenReviewSpec{ + Token: "invalid-expired", + }, + Status: v1.TokenReviewStatus{ + Authenticated: false, + Error: "[invalid bearer token, Token has been invalidated, unknown]", + }, + }, + kubeVersion: &boundTokenKubernetesVersion, + expectedError: trace.AccessDenied("kubernetes failed to validate token: [invalid bearer token, Token has been invalidated, unknown]"), + }, + } + + for _, tt := range tests { + tt := tt + t.Run(tt.token, func(t *testing.T) { + client := newFakeClientset(tt.kubeVersion) + client.AddReactor("create", "tokenreviews", tokenReviewMock(t, tt.review)) + v := Validator{ + client: client, + } + userInfo, err := v.Validate(context.Background(), tt.token) + if tt.expectedError == nil { + require.NoError(t, err) + require.Equal(t, tt.review.Status.User, *userInfo) + } else { + require.ErrorIs(t, err, tt.expectedError) + } + }) + } +} diff --git a/lib/service/service.go b/lib/service/service.go index a41e787081433..2395aa481af10 100644 --- a/lib/service/service.go +++ b/lib/service/service.go @@ -4936,6 +4936,7 @@ func readOrGenerateHostID(ctx context.Context, cfg *Config, kubeBackend kubernet types.JoinMethodUnspecified, types.JoinMethodIAM, types.JoinMethodCircleCI, + types.JoinMethodKubernetes, types.JoinMethodGitHub: // Checking error instead of the usual uuid.New() in case uuid generation // fails due to not enough randomness. It's been known to happen happen when diff --git a/lib/tbot/config/config.go b/lib/tbot/config/config.go index 5241099b37f49..46259189a0317 100644 --- a/lib/tbot/config/config.go +++ b/lib/tbot/config/config.go @@ -44,6 +44,7 @@ var SupportedJoinMethods = []string{ string(types.JoinMethodIAM), string(types.JoinMethodGitHub), string(types.JoinMethodCircleCI), + string(types.JoinMethodKubernetes), } var log = logrus.WithFields(logrus.Fields{ From ea4d1ebe29889e921c201fafb433ec3a54b61db6 Mon Sep 17 00:00:00 2001 From: Hugo Shaka Date: Tue, 29 Nov 2022 14:32:26 -0500 Subject: [PATCH 2/5] Update api/types/provisioning.go Co-authored-by: Noah Stride --- api/types/provisioning.go | 2 +- api/types/provisioning_test.go | 57 +++++++++++++++++++++ lib/kubernetestoken/token_validator_test.go | 6 +-- 3 files changed, 61 insertions(+), 4 deletions(-) diff --git a/api/types/provisioning.go b/api/types/provisioning.go index 90a53b8c68a09..96f0924f8d1cc 100644 --- a/api/types/provisioning.go +++ b/api/types/provisioning.go @@ -245,7 +245,7 @@ func (p *ProvisionTokenV2) CheckAndSetDefaults() error { ) } if err := providerCfg.checkAndSetDefaults(); err != nil { - trace.Wrap(err) + return trace.Wrap(err) } default: return trace.BadParameter("unknown join method %q", p.Spec.JoinMethod) diff --git a/api/types/provisioning_test.go b/api/types/provisioning_test.go index dea6600bc3570..4fae9a38e754d 100644 --- a/api/types/provisioning_test.go +++ b/api/types/provisioning_test.go @@ -331,6 +331,63 @@ func TestProvisionTokenV2_CheckAndSetDefaults(t *testing.T) { }, expectedErr: &trace.BadParameterError{}, }, + { + desc: "kubernetes valid", + token: &ProvisionTokenV2{ + Metadata: Metadata{ + Name: "test", + }, + Spec: ProvisionTokenSpecV2{ + Roles: []SystemRole{RoleNode}, + JoinMethod: JoinMethodKubernetes, + Kubernetes: &ProvisionTokenSpecV2Kubernetes{ + Allow: []*ProvisionTokenSpecV2Kubernetes_Rule{ + { + ServiceAccount: "namespace:my-service-account", + }, + }, + }, + }, + }, + }, + { + desc: "kubernetes wrong service account name", + token: &ProvisionTokenV2{ + Metadata: Metadata{ + Name: "test", + }, + Spec: ProvisionTokenSpecV2{ + Roles: []SystemRole{RoleNode}, + JoinMethod: JoinMethodKubernetes, + Kubernetes: &ProvisionTokenSpecV2Kubernetes{ + Allow: []*ProvisionTokenSpecV2Kubernetes_Rule{ + { + ServiceAccount: "my-service-account", + }, + }, + }, + }, + }, + expectedErr: &trace.BadParameterError{}, + }, + { + desc: "kubernetes allow rule blank", + token: &ProvisionTokenV2{ + Metadata: Metadata{ + Name: "test", + }, + Spec: ProvisionTokenSpecV2{ + Roles: []SystemRole{RoleNode}, + JoinMethod: JoinMethodKubernetes, + Kubernetes: &ProvisionTokenSpecV2Kubernetes{ + Allow: []*ProvisionTokenSpecV2Kubernetes_Rule{ + {}, + }, + }, + }, + }, + expectedErr: &trace.BadParameterError{}, + }, } for _, tc := range testcases { diff --git a/lib/kubernetestoken/token_validator_test.go b/lib/kubernetestoken/token_validator_test.go index 557b71838b514..f2906cc378d5b 100644 --- a/lib/kubernetestoken/token_validator_test.go +++ b/lib/kubernetestoken/token_validator_test.go @@ -60,7 +60,7 @@ func tokenReviewMock(t *testing.T, reviewResult *v1.TokenReview) func(ctest.Acti } // newFakeClientset builds a fake clientSet reporting a specific Kubernetes version -// This is used to test version-specific behaviours. +// This is used to test version-specific behaviors. func newFakeClientset(version *version.Info) *fakeClientSet { cs := fakeClientSet{} cs.discovery = fakediscovery.FakeDiscovery{ @@ -76,7 +76,7 @@ type fakeClientSet struct { } // Discovery overrides the default fake.Clientset Discovery method and returns our custom discovery mock instead -func (c fakeClientSet) Discovery() discovery.DiscoveryInterface { +func (c *fakeClientSet) Discovery() discovery.DiscoveryInterface { return &c.discovery } @@ -145,7 +145,7 @@ func TestIDTokenValidator_Validate(t *testing.T) { }, }, kubeVersion: &boundTokenKubernetesVersion, - expectedError: trace.BadParameter("legacy SA tokens are not accepted as kubernetes version 1.21 supports bound tokens"), + expectedError: trace.BadParameter("legacy SA tokens are not accepted as kubernetes version 1.22 supports bound tokens"), }, { token: "valid-but-not-serviceaccount", From b2e427a6450cdc94aacc04ed7d2cde3a32dc8600 Mon Sep 17 00:00:00 2001 From: Hugo Shaka Date: Thu, 1 Dec 2022 10:10:44 -0500 Subject: [PATCH 3/5] Apply suggestions from code review Co-authored-by: Isaiah Becker-Mayer --- lib/auth/join_kubernetes.go | 1 - lib/kubernetestoken/token_validator.go | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/auth/join_kubernetes.go b/lib/auth/join_kubernetes.go index f2444183fb737..dcbdb351a5629 100644 --- a/lib/auth/join_kubernetes.go +++ b/lib/auth/join_kubernetes.go @@ -51,7 +51,6 @@ func (a *Server) checkKubernetesJoinRequest(ctx context.Context, req *types.Regi "token": pt.GetName(), }).Info("Kubernetes workload trying to join cluster") - // TODO: if pod extradata compare with node name? return trace.Wrap(checkKubernetesAllowRules(pt, userInfo)) } diff --git a/lib/kubernetestoken/token_validator.go b/lib/kubernetestoken/token_validator.go index b92f245003543..ff329c65fd3bf 100644 --- a/lib/kubernetestoken/token_validator.go +++ b/lib/kubernetestoken/token_validator.go @@ -42,7 +42,7 @@ const ( type Validator struct { mu sync.Mutex - // client is protected by mu and should only be accessed via the getProvider + // client is protected by mu and should only be accessed via the getClient // method. client kubernetes.Interface } From 49a0ef53c58b76e44947133e76f081c1b5f02292 Mon Sep 17 00:00:00 2001 From: Hugo Shaka Date: Fri, 2 Dec 2022 10:19:44 -0500 Subject: [PATCH 4/5] Address nic's feedback and move tbot out of the PR --- api/proto/teleport/legacy/types/types.proto | 12 +++++++++++ api/types/types.pb.go | 12 +++++++++++ lib/auth/bot.go | 4 +--- lib/auth/join_kubernetes.go | 2 -- lib/kubernetestoken/token_source.go | 2 +- lib/kubernetestoken/token_validator.go | 22 ++++++++++----------- lib/tbot/config/config.go | 1 - tool/teleport/common/teleport.go | 2 +- 8 files changed, 38 insertions(+), 19 deletions(-) diff --git a/api/proto/teleport/legacy/types/types.proto b/api/proto/teleport/legacy/types/types.proto index fd1cd9c87ec0e..350cf88746464 100644 --- a/api/proto/teleport/legacy/types/types.proto +++ b/api/proto/teleport/legacy/types/types.proto @@ -1022,6 +1022,8 @@ message ProvisionTokenSpecV2 { ProvisionTokenSpecV2Kubernetes Kubernetes = 10 [(gogoproto.jsontag) = "kubernetes,omitempty"]; } +// ProvisionTokenSpecV2Github contains the GitHub-specific part of the +// ProvisionTokenSpecV2 message ProvisionTokenSpecV2GitHub { // Rule includes fields mapped from `lib/githubactions.IDToken` // Not all fields should be included, only ones that we expect to be useful @@ -1053,6 +1055,8 @@ message ProvisionTokenSpecV2GitHub { repeated Rule Allow = 1 [(gogoproto.jsontag) = "allow,omitempty"]; } +// ProvisionTokenSpecV2CircleCI contains the CircleCI-specific part of the +// ProvisionTokenSpecV2 message ProvisionTokenSpecV2CircleCI { message Rule { string ProjectID = 1 [(gogoproto.jsontag) = "project_id,omitempty"]; @@ -1064,10 +1068,18 @@ message ProvisionTokenSpecV2CircleCI { string OrganizationID = 2 [(gogoproto.jsontag) = "organization_id,omitempty"]; } +// ProvisionTokenSpecV2Kubernetes contains the Kubernetes-specific part of the +// ProvisionTokenSpecV2 message ProvisionTokenSpecV2Kubernetes { + // Rule is a set of properties the Kubernetes-issued token might have to be + // allowed to use this ProvisionToken message Rule { + // ServiceAccount is the namespaced name of the Kubernetes service account. + // Its format is "namespace:service-account". string ServiceAccount = 1 [(gogoproto.jsontag) = "service_account,omitempty"]; } + // Allow is a list of Rules, nodes using this token must match one + // allow rule to use this token. repeated Rule Allow = 1 [(gogoproto.jsontag) = "allow,omitempty"]; } diff --git a/api/types/types.pb.go b/api/types/types.pb.go index 11d364e2351ed..98c8adac080a9 100644 --- a/api/types/types.pb.go +++ b/api/types/types.pb.go @@ -3067,6 +3067,8 @@ func (m *ProvisionTokenSpecV2) XXX_DiscardUnknown() { var xxx_messageInfo_ProvisionTokenSpecV2 proto.InternalMessageInfo +// ProvisionTokenSpecV2Github contains the GitHub-specific part of the +// ProvisionTokenSpecV2 type ProvisionTokenSpecV2GitHub struct { // Allow is a list of TokenRules, nodes using this token must match one // allow rule to use this token. @@ -3171,6 +3173,8 @@ func (m *ProvisionTokenSpecV2GitHub_Rule) XXX_DiscardUnknown() { var xxx_messageInfo_ProvisionTokenSpecV2GitHub_Rule proto.InternalMessageInfo +// ProvisionTokenSpecV2CircleCI contains the CircleCI-specific part of the +// ProvisionTokenSpecV2 type ProvisionTokenSpecV2CircleCI struct { // Allow is a list of TokenRules, nodes using this token must match one // allow rule to use this token. @@ -3255,7 +3259,11 @@ func (m *ProvisionTokenSpecV2CircleCI_Rule) XXX_DiscardUnknown() { var xxx_messageInfo_ProvisionTokenSpecV2CircleCI_Rule proto.InternalMessageInfo +// ProvisionTokenSpecV2Kubernetes contains the Kubernetes-specific part of the +// ProvisionTokenSpecV2 type ProvisionTokenSpecV2Kubernetes struct { + // Allow is a list of Rules, nodes using this token must match one + // allow rule to use this token. Allow []*ProvisionTokenSpecV2Kubernetes_Rule `protobuf:"bytes,1,rep,name=Allow,proto3" json:"allow,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -3295,7 +3303,11 @@ func (m *ProvisionTokenSpecV2Kubernetes) XXX_DiscardUnknown() { var xxx_messageInfo_ProvisionTokenSpecV2Kubernetes proto.InternalMessageInfo +// Rule is a set of properties the Kubernetes-issued token might have to be +// allowed to use this ProvisionToken type ProvisionTokenSpecV2Kubernetes_Rule struct { + // ServiceAccount is the namespaced name of the Kubernetes service account. + // Its format is "namespace:service-account". ServiceAccount string `protobuf:"bytes,1,opt,name=ServiceAccount,proto3" json:"service_account,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` diff --git a/lib/auth/bot.go b/lib/auth/bot.go index 22f14887b703c..e859e4abfe174 100644 --- a/lib/auth/bot.go +++ b/lib/auth/bot.go @@ -272,8 +272,7 @@ func (s *Server) checkOrCreateBotToken(ctx context.Context, req *proto.CreateBot case types.JoinMethodToken, types.JoinMethodIAM, types.JoinMethodGitHub, - types.JoinMethodCircleCI, - types.JoinMethodKubernetes: + types.JoinMethodCircleCI: default: return nil, trace.BadParameter( "token %q has join method %q which is not supported for bots. Supported join methods are %v", @@ -282,7 +281,6 @@ func (s *Server) checkOrCreateBotToken(ctx context.Context, req *proto.CreateBot types.JoinMethodIAM, types.JoinMethodGitHub, types.JoinMethodCircleCI, - types.JoinMethodKubernetes, }) } return provisionToken, nil diff --git a/lib/auth/join_kubernetes.go b/lib/auth/join_kubernetes.go index dcbdb351a5629..0b5c8f6a97421 100644 --- a/lib/auth/join_kubernetes.go +++ b/lib/auth/join_kubernetes.go @@ -51,7 +51,6 @@ func (a *Server) checkKubernetesJoinRequest(ctx context.Context, req *types.Regi "token": pt.GetName(), }).Info("Kubernetes workload trying to join cluster") - return trace.Wrap(checkKubernetesAllowRules(pt, userInfo)) } @@ -66,7 +65,6 @@ func checkKubernetesAllowRules(pt types.ProvisionToken, userInfo *v1.UserInfo) e if fmt.Sprintf("%s:%s", kubernetestoken.ServiceAccountNamePrefix, rule.ServiceAccount) != userInfo.Username { continue } - // All provided rules met. return nil } diff --git a/lib/kubernetestoken/token_source.go b/lib/kubernetestoken/token_source.go index 50f05328662a7..321e07c8e4022 100644 --- a/lib/kubernetestoken/token_source.go +++ b/lib/kubernetestoken/token_source.go @@ -37,7 +37,7 @@ func GetIDToken(getEnv getEnvFunc, readFile readFileFunc) (string, error) { token, err := readFile(path) if err != nil { - return "", trace.Wrap(err) + return "", trace.ConvertSystemError(err) } // Usually kubernetes tokens don't start or end with newlines, but better safe than sorry diff --git a/lib/kubernetestoken/token_validator.go b/lib/kubernetestoken/token_validator.go index ff329c65fd3bf..51e5ffe1879ad 100644 --- a/lib/kubernetestoken/token_validator.go +++ b/lib/kubernetestoken/token_validator.go @@ -91,6 +91,16 @@ func (v *Validator) Validate(ctx context.Context, token string) (*v1.UserInfo, e return nil, trace.AccessDenied("kubernetes failed to validate token: %s", reviewResult.Status.Error) } + // Check the Username is a service account. + // A user token would not match rules anyway, but we can produce a more relevant error message here. + if !strings.HasPrefix(reviewResult.Status.User.Username, ServiceAccountNamePrefix) { + return nil, trace.BadParameter("token user is not a service account: %s", reviewResult.Status.User.Username) + } + + if !slices.Contains(reviewResult.Status.User.Groups, serviceAccountGroup) { + return nil, trace.BadParameter("token user '%s' does not belong to the '%s' group", reviewResult.Status.User.Username, serviceAccountGroup) + } + // Legacy tokens are long-lived and not bound to pods. We should not accept them if the cluster supports // bound tokens. Bound token support is GA since 1.20 and volume projection is beta since 1.21. // We can expect any 1.21+ cluster to use bound tokens. @@ -104,22 +114,12 @@ func (v *Validator) Validate(ctx context.Context, token string) (*v1.UserInfo, e return nil, trace.Wrap(err) } - // Check the Username is a service account. - // A user token would not match rules anyway, but we can produce a more relevant error message here. - if !strings.HasPrefix(reviewResult.Status.User.Username, ServiceAccountNamePrefix) { - return nil, trace.BadParameter("token user is not a service account: %s", reviewResult.Status.User.Username) - } - - if !slices.Contains(reviewResult.Status.User.Groups, serviceAccountGroup) { - return nil, trace.BadParameter("token user '%s' does not belong to the '%s' group", reviewResult.Status.User.Username, serviceAccountGroup) - } - // We know if the token is bound to a pod if its name is in the Extra userInfo. // If the token is not bound while Kubernetes supports bound tokens we abort. if _, ok := reviewResult.Status.User.Extra[extraDataPodNameField]; !ok && boundTokenSupport { return nil, trace.BadParameter( "legacy SA tokens are not accepted as kubernetes version %s supports bound tokens", - kubeVersion.GitVersion, + kubeVersion.String(), ) } diff --git a/lib/tbot/config/config.go b/lib/tbot/config/config.go index 46259189a0317..5241099b37f49 100644 --- a/lib/tbot/config/config.go +++ b/lib/tbot/config/config.go @@ -44,7 +44,6 @@ var SupportedJoinMethods = []string{ string(types.JoinMethodIAM), string(types.JoinMethodGitHub), string(types.JoinMethodCircleCI), - string(types.JoinMethodKubernetes), } var log = logrus.WithFields(logrus.Fields{ diff --git a/tool/teleport/common/teleport.go b/tool/teleport/common/teleport.go index 58836aeecf8a2..5dd395dbd677b 100644 --- a/tool/teleport/common/teleport.go +++ b/tool/teleport/common/teleport.go @@ -364,7 +364,7 @@ func Run(options Options) (app *kingpin.Application, executedCommand string, con dumpNodeConfigure.Flag("proxy", "Address of the proxy server.").StringVar(&dumpFlags.ProxyAddress) dumpNodeConfigure.Flag("labels", "Comma-separated list of labels to add to newly created nodes ex) env=staging,cloud=aws.").StringVar(&dumpFlags.NodeLabels) dumpNodeConfigure.Flag("ca-pin", "Comma-separated list of SKPI hashes for the CA used to verify the auth server.").StringVar(&dumpFlags.CAPin) - dumpNodeConfigure.Flag("join-method", "Method to use to join the cluster (token, iam, ec2)").Default("token").EnumVar(&dumpFlags.JoinMethod, "token", "iam", "ec2") + dumpNodeConfigure.Flag("join-method", "Method to use to join the cluster (token, iam, ec2, kubernetes)").Default("token").EnumVar(&dumpFlags.JoinMethod, "token", "iam", "ec2", "kubernetes") dumpNodeConfigure.Flag("node-name", "Name for the teleport node.").StringVar(&dumpFlags.NodeName) // parse CLI commands+flags: From 5da9d0d77cccf7e2e5bd967cc57822a68ab81be2 Mon Sep 17 00:00:00 2001 From: Hugo Shaka Date: Fri, 2 Dec 2022 14:37:39 -0500 Subject: [PATCH 5/5] Mention Kubernetes joinMethod in testplan --- .github/ISSUE_TEMPLATE/testplan.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/ISSUE_TEMPLATE/testplan.md b/.github/ISSUE_TEMPLATE/testplan.md index 6b61541ac252b..f65d41adc3309 100644 --- a/.github/ISSUE_TEMPLATE/testplan.md +++ b/.github/ISSUE_TEMPLATE/testplan.md @@ -402,6 +402,9 @@ connectors are accepted, invalid are rejected with sensible error messages. - [ ] EC2 Join method in IoT mode with node and auth in different AWS accounts - [ ] IAM Join method in IoT mode with node and auth in different AWS accounts +### Kubernetes Node Joining +- [ ] Join a Teleport node running in the same Kubernetes cluster via a Kubernetes ProvisionToken + ### Cloud Labels - [ ] Create an EC2 instance with [tags in instance metadata enabled](https://goteleport.com/docs/management/guides/ec2-tags/) and with tag `foo`: `bar`. Verify that a node running on the instance has label