From 1c2fe03d3a645ad73b819352894e62e8797f35d7 Mon Sep 17 00:00:00 2001 From: Rafael Franzke Date: Fri, 13 Jan 2023 13:52:53 +0100 Subject: [PATCH] Improve `ServiceAccount` Signing Key Rotation Procedure (#7313) * Add `lastInitiationFinishedTime` and `lastCompletionTriggeredTime` to API So far, it was not possible to get to know when the initiation has been finished nor when the completion has been triggered. This was only done for those rotation structs which feature a 'Phase' field (for the other's it's useless, hence not added). * [make generate] * Make use of new fields * Drop assumptions about "old service account secrets" Earlier, the code implicitly assumed that all secrets except the first on in the `ServiceAccount.secrets[]` list are old. However, this is not true when the user interferes while the rotation is running. This commit improves the code to REALLY check whether the secret is old by comparing its creation timestamp with the timestamp when the last rotation initiation has finished. All secrets created after this time have definitely been signed with the new key, all others not or not necessarily. * Address PR review feedback --- .../templates/customresouredefintion.yaml | 12 + docs/api-reference/core.md | 102 +- ...0-crd-operator.gardener.cloud_gardens.yaml | 12 + pkg/api/core/shoot/warnings.go | 16 +- pkg/api/core/shoot/warnings_test.go | 54 +- pkg/apis/core/types_shoot.go | 70 +- pkg/apis/core/v1alpha1/generated.pb.go | 1734 ++++++++++------- pkg/apis/core/v1alpha1/generated.proto | 42 +- pkg/apis/core/v1alpha1/types_common.go | 4 - pkg/apis/core/v1alpha1/types_shoot.go | 88 +- .../core/v1alpha1/zz_generated.conversion.go | 18 +- .../core/v1alpha1/zz_generated.deepcopy.go | 36 +- pkg/apis/core/v1beta1/generated.pb.go | 1695 +++++++++------- pkg/apis/core/v1beta1/generated.proto | 42 +- pkg/apis/core/v1beta1/types_common.go | 4 - pkg/apis/core/v1beta1/types_shoot.go | 88 +- .../core/v1beta1/zz_generated.conversion.go | 18 +- .../core/v1beta1/zz_generated.deepcopy.go | 36 +- pkg/apis/core/zz_generated.deepcopy.go | 24 + .../controller/shoot/shoot/reconciler.go | 36 +- pkg/openapi/openapi_generated.go | 96 +- pkg/operation/botanist/secrets.go | 41 +- pkg/operation/botanist/secrets_test.go | 62 +- pkg/operator/controller/garden/reconciler.go | 12 +- .../rotation/certificate_authorities.go | 8 + .../internal/rotation/etcd_encryption_key.go | 8 + .../internal/rotation/service_account_key.go | 8 + .../rotation/certificate_authorities.go | 8 + 28 files changed, 2688 insertions(+), 1686 deletions(-) diff --git a/charts/gardener/operator/templates/customresouredefintion.yaml b/charts/gardener/operator/templates/customresouredefintion.yaml index 2ea2a397424..20bd1f1d0fd 100644 --- a/charts/gardener/operator/templates/customresouredefintion.yaml +++ b/charts/gardener/operator/templates/customresouredefintion.yaml @@ -295,6 +295,18 @@ spec: successfully completed. format: date-time type: string + lastCompletionTriggeredTime: + description: LastCompletionTriggeredTime is the recent + time when the certificate authority credential rotation + completion was triggered. + format: date-time + type: string + lastInitiationFinishedTime: + description: LastInitiationFinishedTime is the recent + time when the certificate authority credential rotation + initiation was completed. + format: date-time + type: string lastInitiationTime: description: LastInitiationTime is the most recent time when the certificate authority credential rotation was diff --git a/docs/api-reference/core.md b/docs/api-reference/core.md index bf0bac810d0..bee1c3874f9 100644 --- a/docs/api-reference/core.md +++ b/docs/api-reference/core.md @@ -2315,6 +2315,21 @@ CredentialsRotationPhase +lastCompletionTime
+ + +Kubernetes meta/v1.Time + + + + +(Optional) +

LastCompletionTime is the most recent time when the certificate authority credential rotation was successfully +completed.

+ + + + lastInitiationTime
@@ -2329,7 +2344,7 @@ Kubernetes meta/v1.Time -lastCompletionTime
+lastInitiationFinishedTime
Kubernetes meta/v1.Time @@ -2338,10 +2353,25 @@ Kubernetes meta/v1.Time (Optional) -

LastCompletionTime is the most recent time when the certificate authority credential rotation was successfully +

LastInitiationFinishedTime is the recent time when the certificate authority credential rotation initiation was completed.

+ + +lastCompletionTriggeredTime
+ +
+Kubernetes meta/v1.Time + + + + +(Optional) +

LastCompletionTriggeredTime is the recent time when the certificate authority credential rotation completion was +triggered.

+ +

CRI @@ -9437,6 +9467,21 @@ CredentialsRotationPhase +lastCompletionTime
+ + +Kubernetes meta/v1.Time + + + + +(Optional) +

LastCompletionTime is the most recent time when the ETCD encryption key credential rotation was successfully +completed.

+ + + + lastInitiationTime
@@ -9451,7 +9496,7 @@ Kubernetes meta/v1.Time -lastCompletionTime
+lastInitiationFinishedTime
Kubernetes meta/v1.Time @@ -9460,10 +9505,25 @@ Kubernetes meta/v1.Time (Optional) -

LastCompletionTime is the most recent time when the ETCD encryption key credential rotation was successfully +

LastInitiationFinishedTime is the recent time when the certificate authority credential rotation initiation was completed.

+ + +lastCompletionTriggeredTime
+ +
+Kubernetes meta/v1.Time + + + + +(Optional) +

LastCompletionTriggeredTime is the recent time when the certificate authority credential rotation completion was +triggered.

+ +

ShootKubeconfigRotation @@ -9749,6 +9809,21 @@ CredentialsRotationPhase +lastCompletionTime
+ + +Kubernetes meta/v1.Time + + + + +(Optional) +

LastCompletionTime is the most recent time when the service account key credential rotation was successfully +completed.

+ + + + lastInitiationTime
@@ -9763,7 +9838,7 @@ Kubernetes meta/v1.Time -lastCompletionTime
+lastInitiationFinishedTime
Kubernetes meta/v1.Time @@ -9772,10 +9847,25 @@ Kubernetes meta/v1.Time (Optional) -

LastCompletionTime is the most recent time when the service account key credential rotation was successfully +

LastInitiationFinishedTime is the recent time when the certificate authority credential rotation initiation was completed.

+ + +lastCompletionTriggeredTime
+ +
+Kubernetes meta/v1.Time + + + + +(Optional) +

LastCompletionTriggeredTime is the recent time when the certificate authority credential rotation completion was +triggered.

+ +

ShootSpec diff --git a/example/operator/10-crd-operator.gardener.cloud_gardens.yaml b/example/operator/10-crd-operator.gardener.cloud_gardens.yaml index 2ea2a397424..20bd1f1d0fd 100644 --- a/example/operator/10-crd-operator.gardener.cloud_gardens.yaml +++ b/example/operator/10-crd-operator.gardener.cloud_gardens.yaml @@ -295,6 +295,18 @@ spec: successfully completed. format: date-time type: string + lastCompletionTriggeredTime: + description: LastCompletionTriggeredTime is the recent + time when the certificate authority credential rotation + completion was triggered. + format: date-time + type: string + lastInitiationFinishedTime: + description: LastInitiationFinishedTime is the recent + time when the certificate authority credential rotation + initiation was completed. + format: date-time + type: string lastInitiationTime: description: LastInitiationTime is the most recent time when the certificate authority credential rotation was diff --git a/pkg/api/core/shoot/warnings.go b/pkg/api/core/shoot/warnings.go index 3927d9f2664..847e090739e 100644 --- a/pkg/api/core/shoot/warnings.go +++ b/pkg/api/core/shoot/warnings.go @@ -111,13 +111,13 @@ func getWarningsForIncompleteCredentialsRotation(shoot *core.Shoot, credentialsR // Only consider credentials for which completion must be triggered explicitly by the user. Credentials which are // rotated in "one phase" are excluded. - if rotation.CertificateAuthorities != nil && completionDue(rotation.CertificateAuthorities.LastInitiationTime, rotation.CertificateAuthorities.LastCompletionTime, recommendedCompletionInterval) { + if rotation.CertificateAuthorities != nil && completionDue(rotation.CertificateAuthorities.LastInitiationFinishedTime, rotation.CertificateAuthorities.LastCompletionTriggeredTime, recommendedCompletionInterval) { warnings = append(warnings, completionWarning("certificate authorities", recommendedCompletionInterval)) } - if rotation.ETCDEncryptionKey != nil && completionDue(rotation.ETCDEncryptionKey.LastInitiationTime, rotation.ETCDEncryptionKey.LastCompletionTime, recommendedCompletionInterval) { + if rotation.ETCDEncryptionKey != nil && completionDue(rotation.ETCDEncryptionKey.LastInitiationFinishedTime, rotation.ETCDEncryptionKey.LastCompletionTriggeredTime, recommendedCompletionInterval) { warnings = append(warnings, completionWarning("ETCD encryption key", recommendedCompletionInterval)) } - if rotation.ServiceAccountKey != nil && completionDue(rotation.ServiceAccountKey.LastInitiationTime, rotation.ServiceAccountKey.LastCompletionTime, recommendedCompletionInterval) { + if rotation.ServiceAccountKey != nil && completionDue(rotation.ServiceAccountKey.LastInitiationFinishedTime, rotation.ServiceAccountKey.LastCompletionTriggeredTime, recommendedCompletionInterval) { warnings = append(warnings, completionWarning("ServiceAccount token signing key", recommendedCompletionInterval)) } @@ -128,14 +128,14 @@ func initiationDue(lastInitiationTime *metav1.Time, threshold time.Duration) boo return lastInitiationTime == nil || isOldEnough(lastInitiationTime.Time, threshold) } -func completionDue(lastInitiationTime, lastCompletionTime *metav1.Time, threshold time.Duration) bool { - if lastInitiationTime == nil { +func completionDue(lastInitiationFinishedTime, lastCompletionTriggeredTime *metav1.Time, threshold time.Duration) bool { + if lastInitiationFinishedTime == nil { return false } - if lastCompletionTime != nil && lastCompletionTime.Time.UTC().After(lastInitiationTime.Time.UTC()) { + if lastCompletionTriggeredTime != nil && lastCompletionTriggeredTime.Time.UTC().After(lastInitiationFinishedTime.Time.UTC()) { return false } - return isOldEnough(lastInitiationTime.Time, threshold) + return isOldEnough(lastInitiationFinishedTime.Time, threshold) } func isOldEnough(t time.Time, threshold time.Duration) bool { @@ -143,7 +143,7 @@ func isOldEnough(t time.Time, threshold time.Duration) bool { } func completionWarning(credentials string, recommendedCompletionInterval time.Duration) string { - return fmt.Sprintf("the %s rotation was initiated more than %s ago and should be completed", credentials, recommendedCompletionInterval) + return fmt.Sprintf("the %s rotation initiation was finished more than %s ago and should be completed", credentials, recommendedCompletionInterval) } func getWarningsForPSPAdmissionPlugin(shoot *core.Shoot) string { diff --git a/pkg/api/core/shoot/warnings_test.go b/pkg/api/core/shoot/warnings_test.go index b8701572f1c..e8284087a02 100644 --- a/pkg/api/core/shoot/warnings_test.go +++ b/pkg/api/core/shoot/warnings_test.go @@ -114,22 +114,22 @@ var _ = Describe("Warnings", func() { rotation.CertificateAuthorities.LastInitiationTime = &metav1.Time{Time: time.Now().Add(-credentialsRotationInterval / 2)} }, ), - Entry("ca completion is due (never completed yet)", ContainElement(ContainSubstring("the certificate authorities rotation was initiated more than")), nil, + Entry("ca completion is due (never completed yet)", ContainElement(ContainSubstring("the certificate authorities rotation initiation was finished more than")), nil, func(rotation *core.ShootCredentialsRotation) { - rotation.CertificateAuthorities.LastInitiationTime = &metav1.Time{Time: time.Now().Add(-credentialsRotationInterval / 2)} - rotation.CertificateAuthorities.LastCompletionTime = nil + rotation.CertificateAuthorities.LastInitiationFinishedTime = &metav1.Time{Time: time.Now().Add(-credentialsRotationInterval / 2)} + rotation.CertificateAuthorities.LastCompletionTriggeredTime = nil }, ), - Entry("ca completion is due (current rotation not completed)", ContainElement(ContainSubstring("the certificate authorities rotation was initiated more than")), nil, + Entry("ca completion is due (current rotation not completed)", ContainElement(ContainSubstring("the certificate authorities rotation initiation was finished more than")), nil, func(rotation *core.ShootCredentialsRotation) { - rotation.CertificateAuthorities.LastInitiationTime = &metav1.Time{Time: time.Now().Add(-credentialsRotationInterval / 2)} - rotation.CertificateAuthorities.LastCompletionTime = &metav1.Time{Time: time.Now().Add(-credentialsRotationInterval)} + rotation.CertificateAuthorities.LastInitiationFinishedTime = &metav1.Time{Time: time.Now().Add(-credentialsRotationInterval / 2)} + rotation.CertificateAuthorities.LastCompletionTriggeredTime = &metav1.Time{Time: time.Now().Add(-credentialsRotationInterval)} }, ), - Entry("ca completion is not due (current rotation not completed)", Not(ContainElement(ContainSubstring("the certificate authorities rotation was initiated more than"))), nil, + Entry("ca completion is not due (current rotation not completed)", Not(ContainElement(ContainSubstring("the certificate authorities rotation initiation was finished more than"))), nil, func(rotation *core.ShootCredentialsRotation) { - rotation.CertificateAuthorities.LastInitiationTime = &metav1.Time{Time: time.Now().Add(-credentialsRotationInterval / 2)} - rotation.CertificateAuthorities.LastCompletionTime = &metav1.Time{Time: time.Now().Add(-credentialsRotationInterval / 3)} + rotation.CertificateAuthorities.LastInitiationFinishedTime = &metav1.Time{Time: time.Now().Add(-credentialsRotationInterval / 2)} + rotation.CertificateAuthorities.LastCompletionTriggeredTime = &metav1.Time{Time: time.Now().Add(-credentialsRotationInterval / 3)} }, ), @@ -148,22 +148,22 @@ var _ = Describe("Warnings", func() { rotation.ETCDEncryptionKey.LastInitiationTime = &metav1.Time{Time: time.Now().Add(-credentialsRotationInterval / 2)} }, ), - Entry("etcdEncryptionKey completion is due (never completed yet)", ContainElement(ContainSubstring("the ETCD encryption key rotation was initiated more than")), nil, + Entry("etcdEncryptionKey completion is due (never completed yet)", ContainElement(ContainSubstring("the ETCD encryption key rotation initiation was finished more than")), nil, func(rotation *core.ShootCredentialsRotation) { - rotation.ETCDEncryptionKey.LastInitiationTime = &metav1.Time{Time: time.Now().Add(-credentialsRotationInterval / 2)} - rotation.ETCDEncryptionKey.LastCompletionTime = nil + rotation.ETCDEncryptionKey.LastInitiationFinishedTime = &metav1.Time{Time: time.Now().Add(-credentialsRotationInterval / 2)} + rotation.ETCDEncryptionKey.LastCompletionTriggeredTime = nil }, ), - Entry("etcdEncryptionKey completion is due (current rotation not completed)", ContainElement(ContainSubstring("the ETCD encryption key rotation was initiated more than")), nil, + Entry("etcdEncryptionKey completion is due (current rotation not completed)", ContainElement(ContainSubstring("the ETCD encryption key rotation initiation was finished more than")), nil, func(rotation *core.ShootCredentialsRotation) { - rotation.ETCDEncryptionKey.LastInitiationTime = &metav1.Time{Time: time.Now().Add(-credentialsRotationInterval / 2)} - rotation.ETCDEncryptionKey.LastCompletionTime = &metav1.Time{Time: time.Now().Add(-credentialsRotationInterval)} + rotation.ETCDEncryptionKey.LastInitiationFinishedTime = &metav1.Time{Time: time.Now().Add(-credentialsRotationInterval / 2)} + rotation.ETCDEncryptionKey.LastCompletionTriggeredTime = &metav1.Time{Time: time.Now().Add(-credentialsRotationInterval)} }, ), - Entry("etcdEncryptionKey completion is not due (current rotation not completed)", Not(ContainElement(ContainSubstring("the ETCD encryption key rotation was initiated more than"))), nil, + Entry("etcdEncryptionKey completion is not due (current rotation not completed)", Not(ContainElement(ContainSubstring("the ETCD encryption key rotation initiation was finished more than"))), nil, func(rotation *core.ShootCredentialsRotation) { - rotation.ETCDEncryptionKey.LastInitiationTime = &metav1.Time{Time: time.Now().Add(-credentialsRotationInterval / 2)} - rotation.ETCDEncryptionKey.LastCompletionTime = &metav1.Time{Time: time.Now().Add(-credentialsRotationInterval / 3)} + rotation.ETCDEncryptionKey.LastInitiationFinishedTime = &metav1.Time{Time: time.Now().Add(-credentialsRotationInterval / 2)} + rotation.ETCDEncryptionKey.LastCompletionTriggeredTime = &metav1.Time{Time: time.Now().Add(-credentialsRotationInterval / 3)} }, ), @@ -237,22 +237,22 @@ var _ = Describe("Warnings", func() { rotation.ServiceAccountKey.LastInitiationTime = &metav1.Time{Time: time.Now().Add(-credentialsRotationInterval / 2)} }, ), - Entry("serviceAccountKey completion is due (never completed yet)", ContainElement(ContainSubstring("the ServiceAccount token signing key rotation was initiated more than")), nil, + Entry("serviceAccountKey completion is due (never completed yet)", ContainElement(ContainSubstring("the ServiceAccount token signing key rotation initiation was finished more than")), nil, func(rotation *core.ShootCredentialsRotation) { - rotation.ServiceAccountKey.LastInitiationTime = &metav1.Time{Time: time.Now().Add(-credentialsRotationInterval / 2)} - rotation.ServiceAccountKey.LastCompletionTime = nil + rotation.ServiceAccountKey.LastInitiationFinishedTime = &metav1.Time{Time: time.Now().Add(-credentialsRotationInterval / 2)} + rotation.ServiceAccountKey.LastCompletionTriggeredTime = nil }, ), - Entry("serviceAccountKey completion is due (current rotation not completed)", ContainElement(ContainSubstring("the ServiceAccount token signing key rotation was initiated more than")), nil, + Entry("serviceAccountKey completion is due (current rotation not completed)", ContainElement(ContainSubstring("the ServiceAccount token signing key rotation initiation was finished more than")), nil, func(rotation *core.ShootCredentialsRotation) { - rotation.ServiceAccountKey.LastInitiationTime = &metav1.Time{Time: time.Now().Add(-credentialsRotationInterval / 2)} - rotation.ServiceAccountKey.LastCompletionTime = &metav1.Time{Time: time.Now().Add(-credentialsRotationInterval)} + rotation.ServiceAccountKey.LastInitiationFinishedTime = &metav1.Time{Time: time.Now().Add(-credentialsRotationInterval / 2)} + rotation.ServiceAccountKey.LastCompletionTriggeredTime = &metav1.Time{Time: time.Now().Add(-credentialsRotationInterval)} }, ), - Entry("serviceAccountKey completion is not due (current rotation not completed)", Not(ContainElement(ContainSubstring("the ServiceAccount token signing key rotation was initiated more than"))), nil, + Entry("serviceAccountKey completion is not due (current rotation not completed)", Not(ContainElement(ContainSubstring("the ServiceAccount token signing key rotation initiation was finished more than"))), nil, func(rotation *core.ShootCredentialsRotation) { - rotation.ServiceAccountKey.LastInitiationTime = &metav1.Time{Time: time.Now().Add(-credentialsRotationInterval / 2)} - rotation.ServiceAccountKey.LastCompletionTime = &metav1.Time{Time: time.Now().Add(-credentialsRotationInterval / 3)} + rotation.ServiceAccountKey.LastInitiationFinishedTime = &metav1.Time{Time: time.Now().Add(-credentialsRotationInterval / 2)} + rotation.ServiceAccountKey.LastCompletionTriggeredTime = &metav1.Time{Time: time.Now().Add(-credentialsRotationInterval / 3)} }, ), diff --git a/pkg/apis/core/types_shoot.go b/pkg/apis/core/types_shoot.go index ad7edf07d63..0f5736e9ef4 100644 --- a/pkg/apis/core/types_shoot.go +++ b/pkg/apis/core/types_shoot.go @@ -198,9 +198,15 @@ type CARotation struct { Phase CredentialsRotationPhase // LastInitiationTime is the most recent time when the certificate authority credential rotation was initiated. LastInitiationTime *metav1.Time + // LastInitiationFinishedTime is the recent time when the certificate authority credential rotation initiation was + // completed. + LastInitiationFinishedTime *metav1.Time // LastCompletionTime is the most recent time when the certificate authority credential rotation was successfully // completed. LastCompletionTime *metav1.Time + // LastCompletionTriggeredTime is the recent time when the certificate authority credential rotation completion was + // triggered. + LastCompletionTriggeredTime *metav1.Time } // ShootKubeconfigRotation contains information about the kubeconfig credential rotation. @@ -233,9 +239,15 @@ type ShootServiceAccountKeyRotation struct { Phase CredentialsRotationPhase // LastInitiationTime is the most recent time when the service account key credential rotation was initiated. LastInitiationTime *metav1.Time + // LastInitiationFinishedTime is the recent time when the certificate authority credential rotation initiation was + // completed. + LastInitiationFinishedTime *metav1.Time // LastCompletionTime is the most recent time when the service account key credential rotation was successfully // completed. LastCompletionTime *metav1.Time + // LastCompletionTriggeredTime is the recent time when the certificate authority credential rotation completion was + // triggered. + LastCompletionTriggeredTime *metav1.Time } // ShootETCDEncryptionKeyRotation contains information about the ETCD encryption key credential rotation. @@ -244,9 +256,15 @@ type ShootETCDEncryptionKeyRotation struct { Phase CredentialsRotationPhase // LastInitiationTime is the most recent time when the ETCD encryption key credential rotation was initiated. LastInitiationTime *metav1.Time + // LastInitiationFinishedTime is the recent time when the certificate authority credential rotation initiation was + // completed. + LastInitiationFinishedTime *metav1.Time // LastCompletionTime is the most recent time when the ETCD encryption key credential rotation was successfully // completed. LastCompletionTime *metav1.Time + // LastCompletionTriggeredTime is the recent time when the certificate authority credential rotation completion was + // triggered. + LastCompletionTriggeredTime *metav1.Time } // CredentialsRotationPhase is a string alias. @@ -272,10 +290,6 @@ type ShootAdvertisedAddress struct { URL string } -////////////////////////////////////////////////////////////////////////////////////////////////// -// Addons relevant types // -////////////////////////////////////////////////////////////////////////////////////////////////// - // Addons is a collection of configuration for specific addons which are managed by the Gardener. type Addons struct { // KubernetesDashboard holds configuration settings for the kubernetes dashboard addon. @@ -318,10 +332,6 @@ type NginxIngress struct { ExternalTrafficPolicy *corev1.ServiceExternalTrafficPolicyType } -////////////////////////////////////////////////////////////////////////////////////////////////// -// ControlPlane relevant types // -////////////////////////////////////////////////////////////////////////////////////////////////// - // ControlPlane holds information about the general settings for the control plane of a shoot. type ControlPlane struct { // HighAvailability holds the configuration settings for high availability of the @@ -329,10 +339,6 @@ type ControlPlane struct { HighAvailability *HighAvailability } -////////////////////////////////////////////////////////////////////////////////////////////////// -// DNS relevant types // -////////////////////////////////////////////////////////////////////////////////////////////////// - // DNS holds information about the provider, the hosted zone id and the domain. type DNS struct { // Domain is the external available domain of the Shoot cluster. This domain will be written into the @@ -372,10 +378,6 @@ type DNSIncludeExclude struct { // DefaultDomain is the default value in the Shoot's '.spec.dns.domain' when '.spec.dns.provider' is 'unmanaged' const DefaultDomain = "cluster.local" -////////////////////////////////////////////////////////////////////////////////////////////////// -// Extension relevant types // -////////////////////////////////////////////////////////////////////////////////////////////////// - // Extension contains type and provider information for Shoot extensions. type Extension struct { // Type is the type of the extension resource. @@ -386,10 +388,6 @@ type Extension struct { Disabled *bool } -////////////////////////////////////////////////////////////////////////////////////////////////// -// NamedResourceReference relevant types // -////////////////////////////////////////////////////////////////////////////////////////////////// - // NamedResourceReference is a named reference to a resource. type NamedResourceReference struct { // Name of the resource reference. @@ -398,10 +396,6 @@ type NamedResourceReference struct { ResourceRef autoscalingv1.CrossVersionObjectReference } -////////////////////////////////////////////////////////////////////////////////////////////////// -// Hibernation relevant types // -////////////////////////////////////////////////////////////////////////////////////////////////// - // Hibernation contains information whether the Shoot is suspended or not. type Hibernation struct { // Enabled specifies whether the Shoot needs to be hibernated or not. If it is true, the Shoot's desired state is to be hibernated. @@ -423,10 +417,6 @@ type HibernationSchedule struct { Location *string } -////////////////////////////////////////////////////////////////////////////////////////////////// -// Kubernetes relevant types // -////////////////////////////////////////////////////////////////////////////////////////////////// - // Kubernetes contains the version and configuration variables for the Shoot control plane. type Kubernetes struct { // AllowPrivilegedContainers indicates whether privileged containers are allowed in the Shoot. @@ -917,10 +907,6 @@ type KubeletConfigReserved struct { PID *resource.Quantity } -////////////////////////////////////////////////////////////////////////////////////////////////// -// Networking relevant types // -////////////////////////////////////////////////////////////////////////////////////////////////// - // Networking defines networking parameters for the shoot cluster. type Networking struct { // Type identifies the type of the networking plugin. This field is immutable. @@ -942,10 +928,6 @@ const ( DefaultServiceNetworkCIDR = "100.64.0.0/13" ) -////////////////////////////////////////////////////////////////////////////////////////////////// -// Maintenance relevant types // -////////////////////////////////////////////////////////////////////////////////////////////////// - const ( // MaintenanceTimeWindowDurationMinimum is the minimum duration for a maintenance time window. MaintenanceTimeWindowDurationMinimum = 30 * time.Minute @@ -984,10 +966,6 @@ type MaintenanceTimeWindow struct { End string } -////////////////////////////////////////////////////////////////////////////////////////////////// -// Monitoring relevant types // -////////////////////////////////////////////////////////////////////////////////////////////////// - // Monitoring contains information about the monitoring configuration for the shoot. type Monitoring struct { // Alerting contains information about the alerting configuration for the shoot cluster. @@ -1000,10 +978,6 @@ type Alerting struct { EmailReceivers []string } -////////////////////////////////////////////////////////////////////////////////////////////////// -// Provider relevant types // -////////////////////////////////////////////////////////////////////////////////////////////////// - // Provider contains provider-specific information that are handed-over to the provider-specific // extension controller. type Provider struct { @@ -1190,10 +1164,6 @@ type SSHAccess struct { Enabled bool } -////////////////////////////////////////////////////////////////////////////////////////////////// -// System components relevant types // -////////////////////////////////////////////////////////////////////////////////////////////////// - // SystemComponents contains the settings of system components in the control or data plane of the Shoot cluster. type SystemComponents struct { // CoreDNS contains the settings of the Core DNS components running in the data plane of the Shoot cluster. @@ -1249,10 +1219,6 @@ type NodeLocalDNS struct { DisableForwardToUpstreamDNS *bool `json:"disableForwardToUpstreamDNS,omitempty" protobuf:"varint,4,opt,name=disableForwardToUpstreamDNS"` } -////////////////////////////////////////////////////////////////////////////////////////////////// -// Other/miscellaneous constants and types // -////////////////////////////////////////////////////////////////////////////////////////////////// - const ( // ShootEventImageVersionMaintenance indicates that a maintenance operation regarding the image version has been performed. ShootEventImageVersionMaintenance = "MachineImageVersionMaintenance" diff --git a/pkg/apis/core/v1alpha1/generated.pb.go b/pkg/apis/core/v1alpha1/generated.pb.go index 98642b2cba3..e5e2c58a14e 100644 --- a/pkg/apis/core/v1alpha1/generated.pb.go +++ b/pkg/apis/core/v1alpha1/generated.pb.go @@ -4773,712 +4773,718 @@ func init() { } var fileDescriptor_f1caaec5647a9dbf = []byte{ - // 11266 bytes of a gzipped FileDescriptorProto + // 11363 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xbd, 0x6b, 0x6c, 0x25, 0xc9, - 0x75, 0x18, 0xac, 0xbe, 0x7c, 0x1f, 0x3e, 0x86, 0xac, 0x79, 0x2c, 0x77, 0x76, 0x76, 0xee, 0xa8, - 0xb5, 0xd2, 0xb7, 0xfb, 0x49, 0xe6, 0x78, 0x77, 0x25, 0x79, 0x77, 0xbd, 0x2f, 0xde, 0x7b, 0x39, - 0x33, 0x57, 0x43, 0x72, 0xb8, 0x75, 0x67, 0x76, 0xa5, 0x95, 0x21, 0xa9, 0xd9, 0x5d, 0xbc, 0xec, - 0x65, 0xdf, 0xee, 0xbb, 0xdd, 0x7d, 0x39, 0xe4, 0xac, 0x2c, 0xd9, 0x8a, 0x6c, 0x45, 0x12, 0xa2, - 0x24, 0x10, 0x02, 0x09, 0x2b, 0x41, 0x96, 0x0c, 0x27, 0x50, 0x80, 0x38, 0x32, 0x04, 0x48, 0x41, - 0x1e, 0xc8, 0x0f, 0xe5, 0x87, 0x15, 0x39, 0x50, 0x9c, 0xc0, 0x09, 0x14, 0x23, 0xa1, 0x22, 0xc6, - 0x89, 0x9d, 0x20, 0x46, 0x12, 0x04, 0xf9, 0x91, 0x81, 0x13, 0x04, 0xf5, 0xe8, 0xea, 0xea, 0x17, - 0x1f, 0xdd, 0x33, 0x94, 0x36, 0xce, 0x2f, 0xf2, 0xd6, 0xa9, 0x3a, 0xa7, 0xba, 0x1e, 0xa7, 0xce, - 0x39, 0x75, 0xea, 0x1c, 0x68, 0x76, 0xed, 0x70, 0x73, 0xb0, 0xbe, 0x60, 0x7a, 0xbd, 0xcb, 0x5d, - 0xc3, 0xb7, 0x88, 0x4b, 0xfc, 0xf8, 0x9f, 0xfe, 0x56, 0xf7, 0xb2, 0xd1, 0xb7, 0x83, 0xcb, 0xa6, - 0xe7, 0x93, 0xcb, 0xdb, 0x8f, 0x1b, 0x4e, 0x7f, 0xd3, 0x78, 0xfc, 0x72, 0x97, 0x02, 0x8d, 0x90, - 0x58, 0x0b, 0x7d, 0xdf, 0x0b, 0x3d, 0xf4, 0x64, 0x8c, 0x64, 0x21, 0x6a, 0x1b, 0xff, 0xd3, 0xdf, - 0xea, 0x2e, 0x50, 0x24, 0x0b, 0x14, 0xc9, 0x42, 0x84, 0xe4, 0x7c, 0xe3, 0x58, 0x94, 0xd7, 0x49, - 0x98, 0x25, 0x7c, 0xfe, 0xe7, 0x54, 0x1c, 0x5e, 0xd7, 0xbb, 0xcc, 0x8a, 0xd7, 0x07, 0x1b, 0xec, - 0x17, 0xfb, 0xc1, 0xfe, 0x13, 0xd5, 0x1f, 0xdb, 0x7a, 0x2a, 0x58, 0xb0, 0x3d, 0x8a, 0xf8, 0xb2, - 0x31, 0x08, 0xbd, 0xc0, 0x34, 0x1c, 0xdb, 0xed, 0x5e, 0xde, 0xce, 0x62, 0xd6, 0x95, 0xaa, 0xa2, - 0x0b, 0x07, 0xd6, 0xf1, 0xd7, 0x0d, 0x33, 0xaf, 0xce, 0x7b, 0xe3, 0x3a, 0x3d, 0xc3, 0xdc, 0xb4, - 0x5d, 0xe2, 0xef, 0x46, 0x1f, 0x77, 0xd9, 0x27, 0x81, 0x37, 0xf0, 0x4d, 0x72, 0xac, 0x56, 0xc1, - 0xe5, 0x1e, 0x09, 0x8d, 0x3c, 0x5a, 0x97, 0x8b, 0x5a, 0xf9, 0x03, 0x37, 0xb4, 0x7b, 0x59, 0x32, - 0xef, 0x3f, 0xac, 0x41, 0x60, 0x6e, 0x92, 0x9e, 0x91, 0x69, 0xf7, 0x64, 0x51, 0xbb, 0x41, 0x68, - 0x3b, 0x97, 0x6d, 0x37, 0x0c, 0x42, 0x3f, 0xdd, 0x48, 0x7f, 0x02, 0x46, 0x16, 0x2d, 0xcb, 0x73, - 0xd1, 0x63, 0x30, 0x46, 0x5c, 0x63, 0xdd, 0x21, 0xd6, 0xbc, 0x76, 0x49, 0x7b, 0x74, 0xbc, 0x71, - 0xea, 0xfb, 0x7b, 0xf5, 0xb7, 0xed, 0xef, 0xd5, 0xc7, 0x96, 0x78, 0x31, 0x8e, 0xe0, 0xfa, 0x97, - 0x6a, 0x30, 0xca, 0x1a, 0x05, 0xe8, 0x8b, 0x1a, 0x9c, 0xde, 0x1a, 0xac, 0x13, 0xdf, 0x25, 0x21, - 0x09, 0x5a, 0x46, 0xb0, 0xb9, 0xee, 0x19, 0x3e, 0x47, 0x31, 0xf9, 0xc4, 0xb5, 0x85, 0x12, 0x4b, - 0x70, 0xe1, 0x7a, 0x16, 0x5f, 0xe3, 0x81, 0xfd, 0xbd, 0xfa, 0xe9, 0x1c, 0x00, 0xce, 0xa3, 0x8e, - 0x6e, 0xc3, 0x94, 0xdb, 0xb5, 0xdd, 0x9d, 0xb6, 0xdb, 0xf5, 0x49, 0x10, 0xcc, 0xd7, 0x58, 0x6f, - 0x16, 0x4b, 0xf5, 0x66, 0x55, 0x41, 0xd4, 0x98, 0xdd, 0xdf, 0xab, 0x4f, 0xa9, 0x25, 0x38, 0x41, - 0x48, 0xff, 0x1d, 0x0d, 0x4e, 0x2d, 0x5a, 0x3d, 0x3b, 0x08, 0x6c, 0xcf, 0x5d, 0x73, 0x06, 0x5d, - 0xdb, 0x45, 0x97, 0x60, 0xd8, 0x35, 0x7a, 0x84, 0x0d, 0xc9, 0x44, 0x63, 0x4a, 0x8c, 0xea, 0xf0, - 0xaa, 0xd1, 0x23, 0x98, 0x41, 0xd0, 0x4b, 0x30, 0x6a, 0x7a, 0xee, 0x86, 0xdd, 0x15, 0x1d, 0xfd, - 0xb9, 0x05, 0x3e, 0x93, 0x0b, 0xea, 0x4c, 0xb2, 0xfe, 0x89, 0x15, 0xb0, 0x80, 0x8d, 0xdb, 0x4b, - 0x3b, 0x21, 0x71, 0x29, 0x99, 0x06, 0xec, 0xef, 0xd5, 0x47, 0x9b, 0x0c, 0x01, 0x16, 0x88, 0xd0, - 0xa3, 0x30, 0x6e, 0xd9, 0x01, 0x9f, 0xce, 0x21, 0x36, 0x9d, 0x53, 0xfb, 0x7b, 0xf5, 0xf1, 0x96, - 0x28, 0xc3, 0x12, 0xaa, 0x5f, 0x81, 0xf1, 0x45, 0x87, 0xf8, 0xa1, 0xed, 0x76, 0xd1, 0x33, 0x30, - 0x43, 0x7a, 0x86, 0xed, 0x60, 0x62, 0x12, 0x7b, 0x9b, 0xf8, 0xc1, 0xbc, 0x76, 0x69, 0xe8, 0xd1, - 0x89, 0x06, 0xda, 0xdf, 0xab, 0xcf, 0x2c, 0x25, 0x20, 0x38, 0x55, 0x53, 0xff, 0x94, 0x06, 0x93, - 0x8b, 0x03, 0xcb, 0x0e, 0x79, 0x4f, 0x50, 0x00, 0x93, 0x06, 0xfd, 0xb9, 0xe6, 0x39, 0xb6, 0xb9, - 0x2b, 0x16, 0xc4, 0x8b, 0xa5, 0xa6, 0x60, 0x31, 0xc6, 0xd3, 0x38, 0xb5, 0xbf, 0x57, 0x9f, 0x54, - 0x0a, 0xb0, 0x4a, 0x45, 0xdf, 0x04, 0x15, 0x86, 0x3e, 0x04, 0x53, 0x7c, 0x3c, 0x56, 0x8c, 0x3e, - 0x26, 0x1b, 0xa2, 0x13, 0xef, 0x50, 0x86, 0x37, 0xa2, 0xb4, 0x70, 0x63, 0xfd, 0x35, 0x62, 0x86, - 0x98, 0x6c, 0x10, 0x9f, 0xb8, 0x26, 0xe1, 0x33, 0xdd, 0x54, 0x1a, 0xe3, 0x04, 0x2a, 0xfd, 0xc7, - 0x1a, 0xcc, 0x2e, 0x6e, 0x1b, 0xb6, 0x63, 0xac, 0xdb, 0x8e, 0x1d, 0xee, 0xbe, 0xea, 0xb9, 0xe4, - 0x08, 0x53, 0x7d, 0x0b, 0x1e, 0x18, 0xb8, 0x06, 0x6f, 0xe7, 0x90, 0x15, 0x3e, 0xb9, 0x37, 0x77, - 0xfb, 0x84, 0x2e, 0x52, 0x3a, 0xd4, 0x0f, 0xed, 0xef, 0xd5, 0x1f, 0xb8, 0x95, 0x5f, 0x05, 0x17, - 0xb5, 0x45, 0x18, 0xce, 0x29, 0xa0, 0x97, 0x3d, 0x67, 0xd0, 0x13, 0x58, 0x87, 0x18, 0xd6, 0xf3, - 0xfb, 0x7b, 0xf5, 0x73, 0xb7, 0x72, 0x6b, 0xe0, 0x82, 0x96, 0xfa, 0x0f, 0x6a, 0x30, 0xd5, 0x30, - 0xcc, 0xad, 0x41, 0xbf, 0x31, 0x30, 0xb7, 0x48, 0x88, 0x3e, 0x06, 0xe3, 0x94, 0xc7, 0x59, 0x46, - 0x68, 0x88, 0x91, 0xfc, 0xf9, 0xc2, 0x85, 0xca, 0x66, 0x91, 0xd6, 0x8e, 0xc7, 0x76, 0x85, 0x84, - 0x46, 0x03, 0x89, 0x31, 0x81, 0xb8, 0x0c, 0x4b, 0xac, 0xa8, 0x0b, 0xc3, 0x41, 0x9f, 0x98, 0x62, - 0x1b, 0x2c, 0x95, 0x5a, 0x2c, 0x6a, 0x97, 0x3b, 0x7d, 0x62, 0xc6, 0xd3, 0x40, 0x7f, 0x61, 0x46, - 0x00, 0x79, 0x30, 0x1a, 0x84, 0x46, 0x38, 0x08, 0xd8, 0xe6, 0x98, 0x7c, 0xe2, 0x6a, 0x75, 0x52, - 0x0c, 0x5d, 0x63, 0x46, 0x10, 0x1b, 0xe5, 0xbf, 0xb1, 0x20, 0xa3, 0xff, 0x48, 0x83, 0x59, 0xb5, - 0xfa, 0xb2, 0x1d, 0x84, 0xe8, 0x97, 0x32, 0x03, 0xba, 0x70, 0xb4, 0x01, 0xa5, 0xad, 0xd9, 0x70, - 0xce, 0x0a, 0x72, 0xe3, 0x51, 0x89, 0x32, 0x98, 0x1b, 0x30, 0x62, 0x87, 0xa4, 0xc7, 0x17, 0x56, - 0x59, 0xee, 0xa7, 0xf6, 0xb9, 0x31, 0x2d, 0xa8, 0x8d, 0xb4, 0x29, 0x5e, 0xcc, 0xd1, 0xeb, 0x1f, - 0x83, 0x33, 0x6a, 0xad, 0x35, 0xdf, 0xdb, 0xb6, 0x2d, 0xe2, 0xd3, 0xcd, 0x10, 0xee, 0xf6, 0x33, - 0x9b, 0x81, 0x2e, 0x2e, 0xcc, 0x20, 0xe8, 0x5d, 0x30, 0xea, 0x93, 0xae, 0xed, 0xb9, 0x6c, 0xc2, - 0x27, 0xe2, 0xc1, 0xc3, 0xac, 0x14, 0x0b, 0xa8, 0xfe, 0x9f, 0x6a, 0xc9, 0xc1, 0xa3, 0x13, 0x89, - 0x6e, 0xc3, 0x78, 0x5f, 0x90, 0x12, 0x83, 0xd7, 0xae, 0xfc, 0x85, 0x51, 0xdf, 0xe3, 0x71, 0x8d, - 0x4a, 0xb0, 0x24, 0x86, 0x6c, 0x98, 0x89, 0xfe, 0x6f, 0x56, 0xe0, 0xda, 0x8c, 0xa7, 0xae, 0x25, - 0x10, 0xe1, 0x14, 0x62, 0x74, 0x13, 0x26, 0x02, 0x62, 0xfa, 0x84, 0xf2, 0x25, 0xb1, 0x52, 0x73, - 0x99, 0x57, 0x27, 0xaa, 0x24, 0x98, 0xd7, 0x9c, 0xe8, 0xfe, 0x84, 0x04, 0xe0, 0x18, 0x11, 0xba, - 0x00, 0xc3, 0x01, 0x21, 0xd6, 0xfc, 0x30, 0x1b, 0xf4, 0x71, 0xb6, 0x35, 0x08, 0xb1, 0x30, 0x2b, - 0xd5, 0x7f, 0x73, 0x18, 0x50, 0x76, 0x61, 0xab, 0x5f, 0xcd, 0x4b, 0xc4, 0xa0, 0x57, 0xf9, 0x6a, - 0xb1, 0x47, 0x52, 0x88, 0xd1, 0x1b, 0x30, 0xed, 0x18, 0x41, 0x78, 0xa3, 0x4f, 0x05, 0x95, 0x68, - 0x75, 0x4c, 0x3e, 0xd1, 0x28, 0x35, 0xbd, 0xcb, 0x2a, 0xa6, 0xc6, 0xdc, 0xfe, 0x5e, 0x7d, 0x3a, - 0x51, 0x84, 0x93, 0xb4, 0xd0, 0x16, 0x4c, 0xd0, 0x82, 0x25, 0xdf, 0xf7, 0x7c, 0x31, 0xe4, 0xcf, - 0x97, 0x26, 0xcc, 0xb0, 0x34, 0xa6, 0xe9, 0x4c, 0xc8, 0x9f, 0x38, 0xc6, 0x8f, 0x3e, 0x00, 0xc8, - 0x5b, 0x0f, 0x88, 0xbf, 0x4d, 0xac, 0xab, 0x5c, 0x2e, 0xa3, 0x9f, 0x4b, 0xe7, 0x65, 0xa8, 0x71, - 0x5e, 0xcc, 0x21, 0xba, 0x91, 0xa9, 0x81, 0x73, 0x5a, 0xa1, 0x2d, 0x40, 0x52, 0xb6, 0x93, 0xd3, - 0x3e, 0x3f, 0x72, 0xf4, 0x45, 0x73, 0x8e, 0x12, 0xbb, 0x9a, 0x41, 0x81, 0x73, 0xd0, 0xea, 0xbf, - 0x5b, 0x83, 0x49, 0xbe, 0x48, 0x96, 0xdc, 0xd0, 0xdf, 0x3d, 0x81, 0xa3, 0x61, 0x23, 0x71, 0x34, - 0xb4, 0x2a, 0x6c, 0x75, 0xd6, 0xe3, 0xc2, 0x93, 0xc1, 0x4d, 0x9d, 0x0c, 0x57, 0x2a, 0x53, 0x3a, - 0xf8, 0x60, 0xf8, 0x97, 0x1a, 0x9c, 0x52, 0x6a, 0x9f, 0xc0, 0xb9, 0x40, 0x92, 0xe7, 0xc2, 0x8b, - 0x55, 0x3f, 0xb0, 0xe0, 0x58, 0x30, 0x13, 0xdf, 0xc5, 0x58, 0xf6, 0x13, 0x00, 0xeb, 0x8c, 0xa7, - 0xac, 0xc6, 0x42, 0x92, 0x9c, 0xf5, 0x86, 0x84, 0x60, 0xa5, 0x96, 0x64, 0x56, 0xb5, 0x5c, 0x66, - 0xf5, 0xc7, 0x43, 0x30, 0x97, 0x19, 0xeb, 0x2c, 0x03, 0xd1, 0x7e, 0x5a, 0x0c, 0xa4, 0xf6, 0x53, - 0x61, 0x20, 0x43, 0xa5, 0x18, 0xc8, 0xa3, 0x30, 0x4e, 0xc7, 0x94, 0xcd, 0x0d, 0x3f, 0x1a, 0x98, - 0xca, 0xd0, 0x11, 0x65, 0x58, 0x42, 0x91, 0x0f, 0xa8, 0x67, 0x77, 0x79, 0xb3, 0x4e, 0x68, 0xf8, - 0xe1, 0x4d, 0xbb, 0x47, 0x04, 0xab, 0xf9, 0xff, 0x8f, 0xb6, 0x52, 0x69, 0x0b, 0xce, 0x71, 0x56, - 0x32, 0x98, 0x70, 0x0e, 0x76, 0xfd, 0x3b, 0x35, 0x80, 0xe6, 0x22, 0xf6, 0x42, 0xde, 0xd9, 0x17, - 0x60, 0xa4, 0xbf, 0x69, 0x04, 0xd1, 0x2a, 0x7a, 0x2c, 0x5a, 0x82, 0x6b, 0xb4, 0xf0, 0xee, 0x5e, - 0x7d, 0xbe, 0xe9, 0x13, 0x8b, 0xb8, 0xa1, 0x6d, 0x38, 0x41, 0xd4, 0x88, 0xc1, 0x30, 0x6f, 0x47, - 0xbf, 0x81, 0x0e, 0x63, 0xdb, 0xb5, 0x43, 0x9b, 0x41, 0xd9, 0x37, 0x0c, 0x95, 0xfb, 0x86, 0xe5, - 0x0c, 0x26, 0x9c, 0x83, 0x3d, 0xa2, 0xd9, 0xf4, 0x7a, 0x7d, 0x87, 0x48, 0x9a, 0xb5, 0xf2, 0x34, - 0x93, 0x98, 0x70, 0x0e, 0x76, 0xfd, 0x1f, 0x69, 0x30, 0xd4, 0xc4, 0x6d, 0xf4, 0xee, 0x84, 0x6a, - 0xf2, 0x80, 0xaa, 0x9a, 0xdc, 0xdd, 0xab, 0x8f, 0x35, 0x71, 0x5b, 0xd1, 0x52, 0xbe, 0xa0, 0xc1, - 0x9c, 0xe9, 0xb9, 0xa1, 0x41, 0x7b, 0x81, 0xf9, 0x39, 0x1e, 0xf1, 0x8b, 0x72, 0x52, 0x79, 0x33, - 0x85, 0xad, 0xf1, 0xa0, 0xe8, 0xc1, 0x5c, 0x1a, 0x12, 0xe0, 0x2c, 0x69, 0xfd, 0x5f, 0x69, 0x30, - 0xd5, 0x74, 0xbc, 0x81, 0xb5, 0xe6, 0x7b, 0x1b, 0xb6, 0x43, 0xde, 0x22, 0xba, 0x88, 0xda, 0xe5, - 0xa2, 0x13, 0x87, 0xa9, 0x06, 0x6a, 0xc5, 0xb7, 0x8a, 0x6a, 0xa0, 0xf6, 0xb9, 0xe0, 0x0c, 0xf8, - 0xca, 0x58, 0xf2, 0xd3, 0xd8, 0x29, 0xf0, 0x28, 0x8c, 0x9b, 0x46, 0x63, 0xe0, 0x5a, 0x8e, 0xd4, - 0x0d, 0x68, 0x37, 0x9b, 0x8b, 0xbc, 0x0c, 0x4b, 0x28, 0x7a, 0x03, 0x20, 0xb6, 0xee, 0x88, 0x89, - 0xb8, 0x5a, 0xd1, 0xa4, 0xd4, 0x21, 0x61, 0x68, 0xbb, 0xdd, 0x20, 0x9e, 0xfd, 0x18, 0x86, 0x15, - 0x72, 0xe8, 0x13, 0x30, 0x2d, 0x86, 0xb9, 0xdd, 0x33, 0xba, 0x42, 0x93, 0x2e, 0x3b, 0x56, 0x2b, - 0x0a, 0xa6, 0xc6, 0x59, 0x41, 0x79, 0x5a, 0x2d, 0x0d, 0x70, 0x92, 0x1c, 0xba, 0x03, 0x53, 0x3d, - 0xd5, 0x3c, 0x30, 0x5c, 0xe1, 0xb4, 0x56, 0x6c, 0x05, 0x8d, 0x33, 0x82, 0xfa, 0x54, 0xc2, 0xb2, - 0x90, 0xa0, 0x95, 0xa3, 0xe2, 0x8c, 0xdc, 0x2f, 0x15, 0x67, 0x03, 0xc6, 0xb8, 0x96, 0x17, 0xcc, - 0x8f, 0xb2, 0x2f, 0xfc, 0xc5, 0x52, 0x5f, 0xc8, 0x35, 0xc6, 0xd8, 0x66, 0xc9, 0x7f, 0x07, 0x38, - 0x42, 0x8e, 0x6e, 0xc3, 0x14, 0x3d, 0xbf, 0x3a, 0xc4, 0x21, 0x66, 0xe8, 0xf9, 0xf3, 0x63, 0x15, - 0x4c, 0x82, 0x1d, 0x05, 0x11, 0x37, 0x14, 0xa9, 0x25, 0x38, 0x41, 0x48, 0xaa, 0xc1, 0xe3, 0x85, - 0x6a, 0xf0, 0x36, 0x4c, 0x6e, 0x2b, 0x16, 0x9b, 0x09, 0x36, 0x0c, 0x2f, 0x94, 0xea, 0x59, 0x6c, - 0xbf, 0x69, 0x9c, 0x16, 0x94, 0x26, 0x55, 0x5b, 0x8f, 0x4a, 0x48, 0xdf, 0x1b, 0x87, 0xb9, 0xa6, - 0x33, 0x08, 0x42, 0xe2, 0x2f, 0x0a, 0xb3, 0x3b, 0xf1, 0xd1, 0xa7, 0x34, 0x38, 0xc7, 0xfe, 0x6d, - 0x79, 0xb7, 0xdd, 0x16, 0x71, 0x8c, 0xdd, 0xc5, 0x0d, 0x5a, 0xc3, 0xb2, 0x8e, 0xc7, 0x88, 0x5a, - 0x03, 0x21, 0x32, 0x31, 0xdb, 0x53, 0x27, 0x17, 0x23, 0x2e, 0xa0, 0x84, 0x3e, 0xaf, 0xc1, 0x83, - 0x39, 0xa0, 0x16, 0x71, 0x48, 0x18, 0x9d, 0x98, 0xc7, 0xed, 0xc7, 0xc3, 0xfb, 0x7b, 0xf5, 0x07, - 0x3b, 0x45, 0x48, 0x71, 0x31, 0x3d, 0x7a, 0x1c, 0x9e, 0xcf, 0x81, 0x5e, 0x31, 0x6c, 0x67, 0xe0, - 0x47, 0x42, 0xc3, 0x71, 0xbb, 0x73, 0x71, 0x7f, 0xaf, 0x7e, 0xbe, 0x53, 0x88, 0x15, 0x1f, 0x40, - 0x11, 0x7d, 0x12, 0xce, 0x4a, 0xe8, 0x2d, 0xd7, 0x25, 0xc4, 0x22, 0x16, 0x93, 0x25, 0x86, 0x4b, - 0x75, 0xe5, 0xc1, 0xfd, 0xbd, 0xfa, 0xd9, 0x4e, 0x1e, 0x42, 0x9c, 0x4f, 0x07, 0x75, 0xe1, 0xe1, - 0x18, 0x10, 0xda, 0x8e, 0x7d, 0x87, 0x4b, 0x39, 0x9b, 0x3e, 0x09, 0x36, 0x3d, 0xc7, 0x62, 0xfc, - 0x42, 0x6b, 0xbc, 0x7d, 0x7f, 0xaf, 0xfe, 0x70, 0xe7, 0xa0, 0x8a, 0xf8, 0x60, 0x3c, 0xc8, 0x82, - 0xa9, 0xc0, 0x34, 0xdc, 0xb6, 0x1b, 0x12, 0x7f, 0xdb, 0x70, 0xe6, 0x47, 0x4b, 0x7d, 0x20, 0xdf, - 0xa3, 0x0a, 0x1e, 0x9c, 0xc0, 0x8a, 0x9e, 0x82, 0x71, 0xb2, 0xd3, 0x37, 0x5c, 0x8b, 0x70, 0xc6, - 0x30, 0xd1, 0xb8, 0x40, 0x8f, 0xa4, 0x25, 0x51, 0x76, 0x77, 0xaf, 0x3e, 0x15, 0xfd, 0xbf, 0xe2, - 0x59, 0x04, 0xcb, 0xda, 0xe8, 0xe3, 0x70, 0xa6, 0x67, 0xec, 0xac, 0x7a, 0x16, 0x61, 0x7c, 0x2e, - 0x88, 0x84, 0xba, 0xf1, 0x52, 0xfd, 0x9c, 0xdf, 0xdf, 0xab, 0x9f, 0x59, 0xc9, 0xc1, 0x87, 0x73, - 0xa9, 0xd0, 0x69, 0xe8, 0x19, 0x3b, 0x57, 0x7d, 0xc3, 0x24, 0x1b, 0x03, 0xe7, 0x26, 0xf1, 0x7b, - 0xb6, 0xcb, 0xe5, 0x66, 0x62, 0x7a, 0xae, 0x45, 0x79, 0x89, 0xf6, 0xe8, 0x08, 0x9f, 0x86, 0x95, - 0x83, 0x2a, 0xe2, 0x83, 0xf1, 0xa0, 0xf7, 0xc2, 0x94, 0xdd, 0x75, 0x3d, 0x9f, 0xdc, 0x34, 0x6c, - 0x37, 0x0c, 0xe6, 0x81, 0x59, 0x95, 0xd9, 0xb0, 0xb6, 0x95, 0x72, 0x9c, 0xa8, 0xa5, 0xef, 0x0d, - 0xc1, 0x44, 0xd3, 0x73, 0x2d, 0x9b, 0x89, 0xec, 0x8f, 0x27, 0xec, 0x81, 0x0f, 0xab, 0x8c, 0xf0, - 0xee, 0x5e, 0x7d, 0x5a, 0x56, 0x54, 0x38, 0xe3, 0xd3, 0x52, 0x19, 0xe7, 0xea, 0xdf, 0xdb, 0x93, - 0x4a, 0xf4, 0xdd, 0xbd, 0xfa, 0x29, 0xd9, 0x2c, 0xa9, 0x57, 0xa3, 0x6d, 0x2e, 0x6b, 0xdf, 0xf4, - 0x0d, 0x37, 0xb0, 0x2b, 0xc8, 0xf7, 0x52, 0x8b, 0x5a, 0xce, 0x60, 0xc3, 0x39, 0x14, 0xd0, 0x6b, - 0x30, 0x43, 0x4b, 0x6f, 0xf5, 0x2d, 0x23, 0x24, 0xca, 0x9e, 0x3c, 0x96, 0x7c, 0x2f, 0x68, 0xce, - 0x2c, 0x27, 0x30, 0xe1, 0x14, 0x66, 0x6e, 0x3f, 0x35, 0x02, 0xcf, 0x65, 0xdb, 0x2d, 0x61, 0x3f, - 0xa5, 0xa5, 0x58, 0x40, 0xd1, 0x63, 0x30, 0xd6, 0x23, 0x41, 0x60, 0x74, 0x09, 0xdb, 0x3f, 0x13, - 0xf1, 0x31, 0xb9, 0xc2, 0x8b, 0x71, 0x04, 0x47, 0xef, 0x81, 0x11, 0xd3, 0xb3, 0x48, 0x30, 0x3f, - 0xc6, 0x66, 0x98, 0x6a, 0x1a, 0x23, 0x4d, 0x5a, 0x70, 0x77, 0xaf, 0x3e, 0xc1, 0x74, 0x4e, 0xfa, - 0x0b, 0xf3, 0x4a, 0xfa, 0x6f, 0x50, 0xd1, 0x35, 0x25, 0xac, 0x17, 0x5d, 0x82, 0xf0, 0x69, 0x65, - 0xea, 0xc5, 0xc9, 0x59, 0x50, 0xf5, 0x2f, 0x53, 0xc5, 0xc1, 0x73, 0x43, 0xdf, 0x73, 0xd6, 0x1c, - 0xc3, 0x25, 0xe8, 0x33, 0x1a, 0xcc, 0x6e, 0xda, 0xdd, 0x4d, 0xf5, 0xee, 0x46, 0x1c, 0x6c, 0xe5, - 0x64, 0xfc, 0x6b, 0x29, 0x64, 0x8d, 0x33, 0xfb, 0x7b, 0xf5, 0xd9, 0x74, 0x29, 0xce, 0x10, 0xd5, - 0x3f, 0x5b, 0x83, 0x33, 0xa2, 0x6b, 0x0e, 0x3d, 0x6a, 0xfa, 0x8e, 0xb7, 0xdb, 0x23, 0xee, 0x49, - 0xdc, 0xb3, 0x44, 0x32, 0x49, 0xad, 0x50, 0x26, 0xe9, 0x65, 0xa6, 0x68, 0xa8, 0xcc, 0x14, 0xc9, - 0x95, 0x7c, 0xc8, 0x34, 0xfd, 0x89, 0x06, 0xf3, 0x79, 0x63, 0x71, 0x02, 0xba, 0x90, 0x9b, 0xd4, - 0x85, 0xda, 0xa5, 0xd5, 0xdb, 0x74, 0xdf, 0x0b, 0x74, 0xa2, 0x3f, 0xa9, 0xc1, 0xb9, 0xb8, 0x7a, - 0xdb, 0x0d, 0x42, 0xc3, 0x71, 0xb8, 0x51, 0xe3, 0xfe, 0x4f, 0xfc, 0xeb, 0x09, 0xa5, 0xf6, 0x46, - 0xc5, 0x6f, 0x55, 0x3b, 0x5f, 0x68, 0x50, 0xdd, 0x4d, 0x19, 0x54, 0x5f, 0xba, 0x97, 0x44, 0x0f, - 0xb6, 0xad, 0xfe, 0x67, 0x0d, 0xce, 0xe7, 0x37, 0x3c, 0x81, 0x75, 0xd5, 0x4f, 0xae, 0xab, 0xeb, - 0xf7, 0xf0, 0xb3, 0x0b, 0x56, 0xd6, 0xb7, 0x6b, 0x45, 0x9f, 0xcb, 0xf4, 0xee, 0x0d, 0x38, 0x45, - 0x95, 0xa1, 0x20, 0x14, 0x36, 0xc0, 0xe3, 0xdd, 0x87, 0x47, 0x16, 0xa3, 0x53, 0x38, 0x89, 0x03, - 0xa7, 0x91, 0xa2, 0x55, 0x18, 0xa3, 0x0a, 0x10, 0xc5, 0x5f, 0x3b, 0x3a, 0x7e, 0x79, 0x24, 0x75, - 0x78, 0x5b, 0x1c, 0x21, 0x41, 0xbf, 0x04, 0xd3, 0x96, 0xdc, 0x54, 0x87, 0x5c, 0x84, 0xa5, 0xb1, - 0x32, 0x73, 0x6d, 0x4b, 0x6d, 0x8d, 0x93, 0xc8, 0xf4, 0xff, 0xa5, 0xc1, 0x85, 0x83, 0x16, 0x17, - 0xf2, 0x01, 0xcc, 0x48, 0xc6, 0xe0, 0xfe, 0x10, 0x65, 0x0d, 0xba, 0x52, 0x54, 0x89, 0x37, 0xa9, - 0x2c, 0x0a, 0xb0, 0x42, 0x25, 0xe7, 0xb2, 0xad, 0x76, 0x9f, 0x2e, 0xdb, 0xf4, 0x3f, 0xd5, 0x54, - 0x76, 0xa4, 0x4e, 0xee, 0x5b, 0x8e, 0x1d, 0xa9, 0x9d, 0x2f, 0xb4, 0xb6, 0xfd, 0x41, 0x0d, 0x2e, - 0xe5, 0x37, 0x51, 0x4e, 0xe0, 0x17, 0x61, 0xb4, 0xcf, 0xdd, 0x56, 0x86, 0xd8, 0x09, 0xf9, 0x28, - 0x65, 0x2e, 0xdc, 0xa7, 0xe4, 0xee, 0x5e, 0xfd, 0x7c, 0x1e, 0xb7, 0x17, 0xde, 0x28, 0xa2, 0x1d, - 0xb2, 0x53, 0xe6, 0x06, 0x2e, 0x04, 0x3e, 0x79, 0x44, 0xfe, 0x62, 0xac, 0x13, 0xe7, 0xc8, 0x06, - 0x86, 0x4f, 0x69, 0x30, 0x93, 0x58, 0xd3, 0xc1, 0xfc, 0x08, 0x5b, 0xa5, 0xe5, 0xee, 0x3b, 0x12, - 0xbb, 0x25, 0x3e, 0xc0, 0x13, 0xc5, 0x01, 0x4e, 0x51, 0x4c, 0xb1, 0x5a, 0x75, 0x58, 0xdf, 0x7a, - 0xac, 0x56, 0xed, 0x7d, 0x01, 0xab, 0xfd, 0x5a, 0xad, 0xe8, 0x73, 0x19, 0xab, 0xdd, 0x81, 0x89, - 0xc8, 0x89, 0x30, 0x62, 0x19, 0x57, 0x2b, 0x77, 0x8a, 0xe3, 0x8b, 0xef, 0xf6, 0xa3, 0x92, 0x00, - 0xc7, 0xc4, 0xd0, 0xaf, 0x69, 0x00, 0xf1, 0xd4, 0x88, 0x8d, 0x75, 0xeb, 0x1e, 0x0e, 0x88, 0x22, - 0xdf, 0xcc, 0xd0, 0x7d, 0xad, 0xac, 0x0b, 0x85, 0xb0, 0xfe, 0xad, 0x21, 0x40, 0xd9, 0xce, 0x53, - 0xc1, 0x73, 0xcb, 0x76, 0xad, 0xb4, 0x6e, 0x70, 0xdd, 0x76, 0x2d, 0xcc, 0x20, 0x47, 0x10, 0x4d, - 0x9f, 0x83, 0x53, 0x5d, 0xc7, 0x5b, 0x37, 0x1c, 0x67, 0x57, 0x78, 0x26, 0x0a, 0x0f, 0xb7, 0xd3, - 0xf4, 0x78, 0xba, 0x9a, 0x04, 0xe1, 0x74, 0x5d, 0xd4, 0x87, 0x59, 0x9f, 0x6a, 0xb5, 0xa6, 0xed, - 0x30, 0x2d, 0xca, 0x1b, 0x84, 0x25, 0xcd, 0x26, 0x4c, 0xd0, 0xc7, 0x29, 0x5c, 0x38, 0x83, 0x1d, - 0xbd, 0x13, 0xc6, 0xfa, 0xbe, 0xdd, 0x33, 0xfc, 0x5d, 0xa6, 0xa7, 0x8d, 0x37, 0x26, 0xe9, 0x39, - 0xb7, 0xc6, 0x8b, 0x70, 0x04, 0x43, 0xbf, 0x0c, 0x13, 0x8e, 0xbd, 0x41, 0xcc, 0x5d, 0xd3, 0x21, - 0xc2, 0xce, 0xb1, 0x76, 0x8f, 0x16, 0xcd, 0x72, 0x84, 0x57, 0x5c, 0x25, 0x46, 0x3f, 0x71, 0x4c, - 0x51, 0xff, 0x5c, 0x0d, 0x1e, 0x3a, 0xa0, 0x25, 0xc2, 0x74, 0x4d, 0x8b, 0x2f, 0x13, 0xf3, 0xf7, - 0x5e, 0xbe, 0x0c, 0x45, 0xe1, 0xdd, 0xbd, 0xfa, 0x3b, 0x0e, 0x40, 0xd0, 0xa1, 0x0b, 0x88, 0x74, - 0x77, 0x71, 0x8c, 0x06, 0xb5, 0x61, 0xd4, 0x8a, 0x4d, 0x7a, 0x13, 0x8d, 0xc7, 0x29, 0x9f, 0xe5, - 0x46, 0xb7, 0xa3, 0x62, 0x13, 0x08, 0xd0, 0x32, 0x8c, 0xf1, 0x5b, 0x43, 0x22, 0x78, 0xf6, 0x13, - 0x4c, 0xbf, 0xe5, 0x45, 0x47, 0x45, 0x16, 0xa1, 0xd0, 0xff, 0xa7, 0x06, 0x63, 0x4d, 0xcf, 0x27, - 0xad, 0xd5, 0x0e, 0xba, 0x03, 0x93, 0x8a, 0x57, 0xb2, 0x60, 0x5f, 0x65, 0xb7, 0x33, 0x43, 0xb9, - 0x18, 0xa3, 0x8b, 0xfc, 0x19, 0x65, 0x01, 0x56, 0x89, 0x21, 0x9f, 0x0e, 0xfa, 0x6d, 0xdf, 0x0e, - 0x29, 0xe5, 0x4a, 0x37, 0x51, 0x9c, 0x32, 0x8e, 0x90, 0xf1, 0x85, 0x20, 0x7f, 0xe2, 0x98, 0x8c, - 0xbe, 0x46, 0x77, 0x6e, 0xba, 0x9f, 0xe8, 0x19, 0x18, 0xee, 0x79, 0x56, 0x34, 0xf3, 0xef, 0x8a, - 0xf6, 0xe5, 0x8a, 0x67, 0xd1, 0xd1, 0x3d, 0x97, 0x6d, 0xc1, 0x0c, 0x65, 0xac, 0x8d, 0xbe, 0x0a, - 0xb3, 0x69, 0xfa, 0xe8, 0x19, 0x98, 0x31, 0xbd, 0x5e, 0xcf, 0x73, 0x3b, 0x83, 0x8d, 0x0d, 0x7b, - 0x87, 0x24, 0x5c, 0x4d, 0x9b, 0x09, 0x08, 0x4e, 0xd5, 0xd4, 0xbf, 0xaa, 0xc1, 0x10, 0x9d, 0x19, - 0x1d, 0x46, 0x2d, 0xaf, 0x67, 0xd8, 0xae, 0xe8, 0x15, 0x73, 0x84, 0x6d, 0xb1, 0x12, 0x2c, 0x20, - 0xe8, 0x75, 0x98, 0x88, 0x24, 0x9e, 0x6a, 0x1e, 0x0f, 0xad, 0xd5, 0x8e, 0x74, 0x0f, 0x93, 0x3c, - 0x38, 0x2a, 0x09, 0x70, 0x4c, 0x45, 0x37, 0x60, 0xae, 0xb5, 0xda, 0x69, 0xbb, 0xa6, 0x33, 0xb0, - 0xc8, 0xd2, 0x0e, 0xfb, 0x43, 0x99, 0x80, 0xcd, 0x4b, 0xc4, 0x87, 0x32, 0x26, 0x20, 0x2a, 0xe1, - 0x08, 0x46, 0xab, 0x11, 0xde, 0x42, 0xf8, 0x83, 0xb2, 0x6a, 0x02, 0x09, 0x8e, 0x60, 0xfa, 0x1f, - 0xd6, 0x60, 0x52, 0xe9, 0x10, 0xea, 0xc1, 0x18, 0xff, 0xde, 0xc8, 0x2d, 0xeb, 0x4a, 0xd9, 0x6f, - 0x4c, 0x76, 0x9b, 0x93, 0xe7, 0x43, 0x1a, 0xe0, 0x88, 0x86, 0xca, 0xd1, 0x6a, 0x07, 0x70, 0xb4, - 0x05, 0x00, 0xee, 0x75, 0xc6, 0x7c, 0x0a, 0xf8, 0xb6, 0x64, 0x87, 0x46, 0x47, 0x96, 0x62, 0xa5, - 0x06, 0xba, 0x20, 0x78, 0xbf, 0xe2, 0x98, 0xa6, 0xf0, 0xfd, 0x2e, 0x8c, 0xdc, 0xf1, 0x5c, 0x12, - 0x88, 0xbb, 0xa8, 0x7b, 0xf5, 0x85, 0x13, 0xf4, 0x70, 0x7f, 0x95, 0x22, 0xc6, 0x1c, 0xbf, 0xfe, - 0x0d, 0x0d, 0xa0, 0x65, 0x84, 0x06, 0xbf, 0x38, 0x39, 0x82, 0x53, 0xef, 0x85, 0xc4, 0x99, 0x35, - 0x9e, 0xf1, 0x72, 0x1c, 0x0e, 0xec, 0x3b, 0xd1, 0xf7, 0x4b, 0x81, 0x98, 0x63, 0xef, 0xd8, 0x77, - 0x08, 0x66, 0x70, 0xf4, 0x6e, 0x98, 0x20, 0xae, 0xe9, 0xef, 0xf6, 0x43, 0xe1, 0x9b, 0x37, 0xce, - 0x37, 0xe9, 0x52, 0x54, 0x88, 0x63, 0xb8, 0xfe, 0x38, 0x24, 0xd5, 0x9a, 0xc3, 0x7b, 0xa9, 0xdf, - 0xd5, 0x60, 0x76, 0x69, 0xa7, 0x6f, 0xfb, 0xcc, 0xd1, 0x97, 0xf8, 0x54, 0x45, 0x40, 0x8f, 0xc1, - 0xd8, 0x36, 0xff, 0x57, 0xb4, 0x94, 0x7a, 0x98, 0xa8, 0x81, 0x23, 0x38, 0xda, 0x80, 0x19, 0xc2, - 0x9a, 0x33, 0x31, 0xc0, 0x08, 0xcb, 0x78, 0x2e, 0x70, 0x47, 0xf2, 0x04, 0x16, 0x9c, 0xc2, 0x8a, - 0x3a, 0x30, 0x63, 0x3a, 0x46, 0x10, 0xd8, 0x1b, 0xb6, 0x19, 0xfb, 0xb3, 0x4c, 0x34, 0xde, 0xcd, - 0x38, 0x43, 0x02, 0x72, 0x77, 0xaf, 0x7e, 0x56, 0xf4, 0x33, 0x09, 0xc0, 0x29, 0x14, 0xfa, 0x9b, - 0x35, 0x98, 0x5e, 0xda, 0xe9, 0x7b, 0xc1, 0xc0, 0x27, 0xac, 0xea, 0x09, 0x68, 0x37, 0x8f, 0xc1, - 0xd8, 0xa6, 0xe1, 0x5a, 0x0e, 0xf1, 0xc5, 0xca, 0x90, 0x63, 0x7b, 0x8d, 0x17, 0xe3, 0x08, 0x8e, - 0x3e, 0x0e, 0x10, 0x98, 0x9b, 0xc4, 0x1a, 0xb0, 0x23, 0x86, 0x2b, 0xb8, 0xcb, 0xa5, 0x16, 0x78, - 0xe2, 0x23, 0x3b, 0x12, 0xa7, 0xd8, 0x77, 0xf2, 0x37, 0x56, 0xe8, 0xe9, 0x7f, 0xa8, 0xc1, 0x5c, - 0xa2, 0xdd, 0x09, 0xc8, 0xec, 0xdd, 0xa4, 0xcc, 0xde, 0xa8, 0xfe, 0xb1, 0x05, 0xa2, 0xfa, 0xe7, - 0x6a, 0xf0, 0x40, 0xc1, 0xa0, 0x64, 0x2e, 0x85, 0xb5, 0x93, 0xba, 0x14, 0xde, 0x86, 0xc9, 0xd0, - 0x73, 0x84, 0xe7, 0x55, 0x34, 0x06, 0xe5, 0xae, 0x7c, 0x6f, 0x4a, 0x3c, 0xf1, 0x95, 0x6f, 0x5c, - 0x16, 0x60, 0x95, 0x90, 0xfe, 0x3d, 0x0d, 0x26, 0xa4, 0x7d, 0xe0, 0x08, 0x1e, 0xda, 0x27, 0xe8, - 0xeb, 0x7c, 0xf4, 0x17, 0x2b, 0xff, 0xa4, 0x06, 0xe7, 0x24, 0xee, 0x48, 0x98, 0xeb, 0x84, 0x94, - 0x77, 0x1c, 0xae, 0x5f, 0x5c, 0x10, 0x7c, 0x52, 0xe1, 0xd5, 0x0a, 0x27, 0xa7, 0x07, 0xdb, 0xc0, - 0xef, 0x7b, 0x41, 0xc4, 0xae, 0xf9, 0xc1, 0xc6, 0x8b, 0x70, 0x04, 0x43, 0xab, 0x30, 0x12, 0x50, - 0x7a, 0x42, 0x71, 0x38, 0xe6, 0x68, 0xb0, 0x13, 0x87, 0xf5, 0x17, 0x73, 0x34, 0xe8, 0x0d, 0x55, - 0x5f, 0xe4, 0xca, 0xfb, 0x07, 0x8e, 0xb7, 0x18, 0xd8, 0x43, 0xbc, 0x05, 0xfa, 0x25, 0x56, 0x34, - 0x22, 0x39, 0xee, 0xe0, 0x79, 0x2a, 0xa3, 0xbe, 0x0c, 0xb3, 0xe2, 0x5e, 0x99, 0x2f, 0x1b, 0xd7, - 0x24, 0xe8, 0xa9, 0xc4, 0xca, 0x78, 0x24, 0x75, 0x57, 0x77, 0x26, 0x5d, 0x3f, 0x5e, 0x31, 0x7a, - 0x00, 0xe3, 0x57, 0x45, 0x27, 0xd1, 0x79, 0xa8, 0xd9, 0xd1, 0x5c, 0x80, 0xc0, 0x51, 0x6b, 0xb7, - 0x70, 0xcd, 0xb6, 0xe4, 0x79, 0x55, 0x2b, 0x3c, 0x55, 0x95, 0xa3, 0x69, 0xe8, 0xe0, 0xa3, 0x49, - 0xff, 0xf7, 0x35, 0x38, 0x13, 0x51, 0x8d, 0xbe, 0xb1, 0x25, 0x2e, 0x3a, 0x0e, 0x39, 0xbb, 0x0f, - 0xd7, 0x37, 0x6f, 0xc0, 0x30, 0xe3, 0x81, 0xa5, 0x2e, 0x40, 0x24, 0x42, 0xda, 0x1d, 0xcc, 0x10, - 0xa1, 0x5f, 0x86, 0x51, 0xc7, 0x58, 0x27, 0x4e, 0xe4, 0xd3, 0x53, 0x4e, 0x3d, 0xcf, 0xfb, 0x5e, - 0x6e, 0x39, 0x0a, 0xb8, 0x5b, 0xae, 0xb4, 0x8a, 0xf3, 0x42, 0x2c, 0x88, 0x9e, 0x7f, 0x1a, 0x26, - 0x95, 0x6a, 0x68, 0x16, 0x86, 0xb6, 0x08, 0xbf, 0x02, 0x9b, 0xc0, 0xf4, 0x5f, 0x74, 0x06, 0x46, - 0xb6, 0x0d, 0x67, 0x20, 0xc6, 0x04, 0xf3, 0x1f, 0xcf, 0xd4, 0x9e, 0xd2, 0xf4, 0x6f, 0x69, 0x30, - 0x79, 0xcd, 0x5e, 0x27, 0x3e, 0xbf, 0x1d, 0x66, 0xd2, 0x6a, 0xe2, 0xcd, 0xe0, 0x64, 0xde, 0x7b, - 0x41, 0xb4, 0x0b, 0x13, 0xe2, 0xb4, 0x91, 0x5e, 0x84, 0xd7, 0x4a, 0xde, 0xb5, 0x49, 0xda, 0x82, - 0x8b, 0xab, 0x6f, 0x1d, 0x22, 0x12, 0x38, 0xa6, 0xa6, 0xbf, 0x01, 0xa7, 0x73, 0x1a, 0xa1, 0x3a, - 0xdb, 0xc0, 0x7e, 0x28, 0x16, 0x46, 0xb4, 0x23, 0xfd, 0x10, 0xf3, 0x72, 0xf4, 0x20, 0x0c, 0x11, - 0x37, 0xf2, 0x3a, 0x1e, 0xdb, 0xdf, 0xab, 0x0f, 0x2d, 0xb9, 0x16, 0xa6, 0x65, 0x94, 0x51, 0x39, - 0x5e, 0x42, 0x32, 0x61, 0x8c, 0x6a, 0x59, 0x94, 0x61, 0x09, 0xd5, 0xbf, 0xae, 0x41, 0xe6, 0x22, - 0x10, 0x7d, 0x5e, 0x83, 0xd9, 0x8d, 0xd4, 0xfe, 0xa9, 0x74, 0x01, 0x99, 0xde, 0x8c, 0x8d, 0x79, - 0x31, 0x22, 0x99, 0x6d, 0x8d, 0x33, 0x84, 0xf5, 0xbf, 0x37, 0x0c, 0x0f, 0x5f, 0xf3, 0x7c, 0xfb, - 0x8e, 0xe7, 0x86, 0x86, 0xb3, 0xe6, 0x59, 0xb1, 0x27, 0x90, 0xe0, 0xcb, 0xbf, 0xa6, 0xc1, 0x03, - 0x66, 0x7f, 0xc0, 0x5d, 0x59, 0x23, 0x07, 0x8d, 0x35, 0xe2, 0xdb, 0x5e, 0x59, 0x87, 0x20, 0xf6, - 0xc4, 0xad, 0xb9, 0x76, 0x2b, 0x0f, 0x25, 0x2e, 0xa2, 0xc5, 0xfc, 0x92, 0x2c, 0xef, 0xb6, 0xcb, - 0x3a, 0xd7, 0x09, 0xd9, 0x70, 0xde, 0x89, 0x67, 0xa1, 0xa4, 0x5f, 0x52, 0x2b, 0x17, 0x23, 0x2e, - 0xa0, 0x84, 0x3e, 0x09, 0x67, 0x6d, 0xde, 0x39, 0x4c, 0x0c, 0xcb, 0x76, 0x49, 0x10, 0x30, 0xef, - 0x9c, 0x2a, 0x8e, 0x37, 0xed, 0x3c, 0x84, 0x38, 0x9f, 0x0e, 0xfa, 0x08, 0x40, 0xb0, 0xeb, 0x9a, - 0x62, 0xfc, 0x47, 0x4a, 0x51, 0xe5, 0xa2, 0xa0, 0xc4, 0x82, 0x15, 0x8c, 0x54, 0x09, 0x09, 0xe5, - 0xaa, 0x1c, 0x65, 0x4e, 0x3c, 0x4c, 0x09, 0x89, 0xd7, 0x50, 0x0c, 0xd7, 0x7f, 0x5b, 0x83, 0x31, - 0xf1, 0xf2, 0x15, 0xbd, 0x2b, 0xa5, 0x8b, 0x4b, 0xee, 0x93, 0xd2, 0xc7, 0xef, 0xb0, 0xeb, 0x14, - 0x61, 0x89, 0x11, 0xd2, 0x44, 0x39, 0x55, 0x4e, 0x50, 0x8e, 0xed, 0x3a, 0x89, 0x6b, 0x95, 0xc8, - 0xd6, 0xa3, 0x50, 0xa3, 0xfb, 0x71, 0x2e, 0xd3, 0xea, 0x08, 0x32, 0xc3, 0x09, 0xfa, 0x2b, 0xfc, - 0xb3, 0x29, 0x60, 0xcf, 0x9c, 0x17, 0xd7, 0xda, 0x1d, 0xe2, 0x6f, 0xcb, 0x5d, 0x48, 0xb9, 0x46, - 0xec, 0x9c, 0x2a, 0x7a, 0x51, 0x85, 0x6b, 0x5c, 0x4f, 0x21, 0x8b, 0xb9, 0x46, 0x1a, 0x82, 0x33, - 0x84, 0xd1, 0xe7, 0x34, 0x98, 0x35, 0x92, 0xcf, 0x9c, 0x23, 0xc6, 0x5e, 0xee, 0x65, 0x4e, 0xea, - 0xcd, 0x74, 0xdc, 0x99, 0x14, 0x20, 0xc0, 0x19, 0xba, 0xe8, 0xbd, 0x30, 0x65, 0xf4, 0xed, 0xc5, - 0x81, 0x65, 0x53, 0x61, 0x27, 0x7a, 0xf1, 0xca, 0x24, 0xf0, 0xc5, 0xb5, 0xb6, 0x2c, 0xc7, 0x89, - 0x5a, 0xf2, 0x79, 0xb2, 0x18, 0xca, 0xe1, 0xaa, 0xcf, 0x93, 0xc5, 0x28, 0xc6, 0xcf, 0x93, 0xc5, - 0xe0, 0xa9, 0x54, 0xd0, 0x87, 0xe1, 0x41, 0x7e, 0x26, 0x36, 0x8c, 0xc0, 0x36, 0x17, 0x07, 0xe1, - 0x26, 0x71, 0xc3, 0x48, 0xcb, 0xe5, 0xb6, 0x61, 0xe6, 0xa5, 0xb8, 0x54, 0x54, 0x09, 0x17, 0xb7, - 0x47, 0x1e, 0x80, 0x67, 0x5b, 0xa6, 0xf8, 0x20, 0x6e, 0x40, 0x2e, 0xa7, 0x52, 0xdc, 0x68, 0xb7, - 0x9a, 0xe2, 0x7b, 0x18, 0xaf, 0x88, 0x7f, 0x63, 0x85, 0x04, 0xfa, 0xb2, 0x06, 0xd3, 0x62, 0xa1, - 0x0b, 0xa2, 0x63, 0x6c, 0x09, 0x7c, 0xb8, 0xf4, 0x82, 0x4c, 0xad, 0xfa, 0x05, 0xac, 0x62, 0xe7, - 0x52, 0x8d, 0x74, 0x9e, 0x4e, 0xc0, 0x70, 0xb2, 0x23, 0xe8, 0x4b, 0x1a, 0x9c, 0x09, 0x88, 0xbf, - 0x6d, 0x9b, 0x64, 0xd1, 0x34, 0xbd, 0x81, 0x1b, 0xcd, 0xf3, 0x78, 0x85, 0x97, 0xa2, 0x9d, 0x1c, - 0x84, 0xdc, 0x65, 0x2f, 0x0f, 0x82, 0x73, 0x3b, 0x80, 0xfe, 0x82, 0x06, 0xa7, 0x6e, 0x1b, 0xa1, - 0xb9, 0xd9, 0x34, 0xcc, 0x4d, 0x66, 0xfe, 0xe1, 0x5e, 0x7a, 0x65, 0x77, 0xce, 0x2b, 0x49, 0x5c, - 0xfc, 0x12, 0x24, 0x55, 0x88, 0xd3, 0x14, 0x51, 0x08, 0xe3, 0x3e, 0x79, 0x7d, 0x40, 0x02, 0xe6, - 0xcb, 0xa7, 0x1d, 0x5f, 0xdf, 0xc8, 0x9b, 0x34, 0x2c, 0x30, 0x72, 0x79, 0x28, 0xfa, 0x85, 0x25, - 0x25, 0xd4, 0x85, 0x87, 0xf9, 0xf2, 0x5d, 0x74, 0x3d, 0x77, 0xb7, 0xe7, 0x0d, 0x82, 0xd4, 0x16, - 0x98, 0x64, 0x5b, 0x80, 0xb9, 0x2b, 0x2e, 0x1d, 0x54, 0x11, 0x1f, 0x8c, 0x07, 0x7d, 0x10, 0xc6, - 0xc9, 0x36, 0x71, 0xc3, 0x9b, 0x37, 0x97, 0xe7, 0xa7, 0x4a, 0x9d, 0x91, 0xec, 0x13, 0x96, 0x04, - 0x0e, 0x2c, 0xb1, 0xa1, 0x3e, 0x8c, 0x39, 0x5e, 0xb7, 0x6b, 0xbb, 0xdd, 0xf9, 0xe9, 0x0a, 0x4b, - 0x29, 0x31, 0x6e, 0xcb, 0x1c, 0x21, 0x17, 0x9e, 0xc5, 0x0f, 0x1c, 0x91, 0x39, 0xff, 0x22, 0xa0, - 0xec, 0x36, 0x38, 0x4c, 0x6a, 0x1f, 0x57, 0xa5, 0xf6, 0x2f, 0x68, 0x70, 0x26, 0x8f, 0x20, 0x3d, - 0xec, 0xb7, 0x89, 0xbf, 0xee, 0x05, 0x91, 0x0f, 0xdc, 0x08, 0x3f, 0xec, 0x5f, 0x8e, 0x0a, 0x71, - 0x0c, 0x47, 0x6d, 0x38, 0xbd, 0x19, 0x86, 0xfd, 0x45, 0xd3, 0x24, 0x41, 0x20, 0x6b, 0x30, 0x6a, - 0x23, 0x3c, 0x3c, 0xc7, 0xb5, 0x9b, 0x37, 0xd7, 0x52, 0x60, 0x9c, 0xd7, 0x46, 0xff, 0xae, 0x06, - 0x67, 0x73, 0x57, 0x0e, 0xc2, 0x70, 0x8e, 0x39, 0xba, 0xba, 0x2b, 0x83, 0xd0, 0x08, 0x6d, 0xb7, - 0xdb, 0x76, 0x37, 0x1c, 0xbb, 0xbb, 0x19, 0x8a, 0xee, 0x31, 0x99, 0x6d, 0x25, 0xb7, 0x06, 0x2e, - 0x68, 0x49, 0x3b, 0xde, 0x33, 0x76, 0x32, 0x08, 0x95, 0x8e, 0xaf, 0x64, 0xc1, 0x38, 0xaf, 0x8d, - 0xfe, 0xd5, 0x11, 0x78, 0x88, 0x76, 0x3c, 0x96, 0x1e, 0x56, 0x0c, 0xd7, 0xe8, 0xfe, 0x8c, 0x9e, - 0xd2, 0xdf, 0xd2, 0xe0, 0x81, 0xcd, 0x7c, 0xd9, 0x5e, 0x08, 0x30, 0xb8, 0x9c, 0x16, 0x76, 0x90, - 0xbe, 0xc0, 0x77, 0xef, 0x81, 0x55, 0x70, 0x51, 0xaf, 0xd0, 0x8b, 0x30, 0xeb, 0x7a, 0x16, 0x69, - 0xb6, 0x5b, 0x78, 0xc5, 0x08, 0xb6, 0x3a, 0x91, 0xd9, 0x7c, 0x84, 0xdf, 0xb5, 0xae, 0xa6, 0x60, - 0x38, 0x53, 0x1b, 0x6d, 0x03, 0xea, 0x7b, 0xd6, 0xd2, 0xb6, 0x6d, 0x46, 0x1e, 0xb9, 0xe5, 0xef, - 0x77, 0xd9, 0x33, 0xbb, 0xb5, 0x0c, 0x36, 0x9c, 0x43, 0x81, 0x69, 0x27, 0xb4, 0x33, 0x2b, 0x9e, - 0x6b, 0x87, 0x9e, 0xcf, 0x5c, 0xa9, 0x2b, 0x09, 0xe9, 0x6c, 0xa5, 0xaf, 0xe6, 0x62, 0xc4, 0x05, - 0x94, 0xf4, 0xff, 0xa6, 0xc1, 0x29, 0xba, 0x2e, 0xd6, 0x7c, 0x6f, 0x67, 0xf7, 0x67, 0x72, 0x49, - 0x3e, 0x26, 0x6e, 0x11, 0xb9, 0x5e, 0x7d, 0x56, 0xb9, 0x41, 0x9c, 0x60, 0x9d, 0x8e, 0x2f, 0x0d, - 0x55, 0xdb, 0xc2, 0x50, 0xb1, 0x6d, 0x41, 0xff, 0x72, 0x8d, 0x0b, 0xcc, 0x91, 0x6a, 0xff, 0xb3, - 0xb9, 0x15, 0x7f, 0x01, 0xa6, 0x69, 0xd9, 0x8a, 0xb1, 0xb3, 0xd6, 0x7a, 0xd9, 0x73, 0x22, 0x7f, - 0x76, 0xe6, 0x9e, 0x76, 0x5d, 0x05, 0xe0, 0x64, 0x3d, 0xf4, 0x0c, 0x8c, 0xf5, 0xf9, 0xdb, 0x39, - 0x61, 0x6b, 0xb8, 0xc4, 0x6f, 0xda, 0x58, 0xd1, 0xdd, 0xbd, 0xfa, 0x5c, 0x6c, 0xcd, 0x16, 0x85, - 0x38, 0x6a, 0xa0, 0xbf, 0x79, 0x06, 0x18, 0x72, 0x87, 0x84, 0x3f, 0x93, 0x83, 0xf2, 0x38, 0x4c, - 0x9a, 0xfd, 0x41, 0xf3, 0x4a, 0xe7, 0xa5, 0x81, 0x17, 0x1a, 0xe2, 0x26, 0x91, 0x09, 0xd0, 0xcd, - 0xb5, 0x5b, 0x51, 0x31, 0x56, 0xeb, 0x50, 0x06, 0x61, 0xf6, 0x07, 0x82, 0xe9, 0xae, 0xa9, 0x2e, - 0x5a, 0x8c, 0x41, 0x34, 0xd7, 0x6e, 0x25, 0x60, 0x38, 0x53, 0x1b, 0xfd, 0x8a, 0x06, 0x53, 0x44, - 0x6c, 0xde, 0x6b, 0x86, 0x6f, 0x09, 0xde, 0x50, 0x5e, 0xfc, 0x91, 0xa3, 0x1b, 0xb1, 0x04, 0xae, - 0x7a, 0x2c, 0x29, 0x34, 0x70, 0x82, 0x22, 0xd3, 0x02, 0xc4, 0x6f, 0x3a, 0xd1, 0x9e, 0x95, 0xe6, - 0x16, 0x23, 0x42, 0x0b, 0x28, 0xaa, 0x84, 0x8b, 0xdb, 0xa3, 0xbf, 0xa5, 0xc1, 0x39, 0x09, 0xb5, - 0x5d, 0xbb, 0x37, 0xe8, 0x61, 0x62, 0x3a, 0x86, 0xdd, 0x13, 0x2a, 0xc1, 0x07, 0xef, 0xdd, 0x97, - 0x26, 0xf1, 0x73, 0x96, 0x95, 0x0f, 0xc3, 0x05, 0x7d, 0x42, 0x5f, 0xd7, 0xe0, 0x52, 0x04, 0x5a, - 0xa3, 0x8a, 0xf9, 0xc0, 0x27, 0xf1, 0x8b, 0x0a, 0x31, 0x26, 0x63, 0xa5, 0x38, 0xe8, 0x23, 0xfb, - 0x7b, 0xf5, 0x4b, 0x4b, 0x87, 0xe0, 0xc6, 0x87, 0x52, 0x4f, 0xac, 0x98, 0x8e, 0xb7, 0x11, 0x0a, - 0x1d, 0xe2, 0xbe, 0xad, 0x18, 0x4a, 0x03, 0x27, 0x28, 0xa2, 0xdf, 0xd1, 0xe0, 0x01, 0xb5, 0x40, - 0x5d, 0x30, 0x5c, 0x79, 0xf8, 0xd0, 0xbd, 0xeb, 0x4d, 0x8a, 0x00, 0x37, 0xd7, 0x15, 0x00, 0x71, - 0x51, 0xb7, 0x28, 0xfb, 0xee, 0xb1, 0xc5, 0xc9, 0x15, 0x8c, 0x11, 0xce, 0xbe, 0xf9, 0x7a, 0x0d, - 0x70, 0x04, 0xa3, 0xca, 0x7b, 0xdf, 0xb3, 0xd6, 0x6c, 0x2b, 0x58, 0xb6, 0x7b, 0x76, 0xc8, 0x34, - 0x80, 0x21, 0x3e, 0x1e, 0x6b, 0x9e, 0xb5, 0xd6, 0x6e, 0xf1, 0x72, 0x9c, 0xa8, 0xc5, 0x9e, 0x07, - 0xda, 0x3d, 0xa3, 0x4b, 0xd6, 0x06, 0x8e, 0xb3, 0xe6, 0x7b, 0xcc, 0xa4, 0xd3, 0x22, 0x86, 0xe5, - 0xd8, 0x2e, 0x29, 0x29, 0xf1, 0xb3, 0x2d, 0xd7, 0x2e, 0x42, 0x8a, 0x8b, 0xe9, 0xa1, 0x05, 0x80, - 0x0d, 0xc3, 0x76, 0x3a, 0xb7, 0x8d, 0xfe, 0x0d, 0x97, 0xa9, 0x05, 0xe3, 0x5c, 0x6f, 0xbe, 0x22, - 0x4b, 0xb1, 0x52, 0x83, 0x2d, 0x28, 0xca, 0x0c, 0x31, 0xe1, 0x31, 0x18, 0xe6, 0x67, 0xee, 0xd5, - 0x82, 0x8a, 0x30, 0xf2, 0x01, 0xbc, 0xae, 0xd0, 0xc0, 0x09, 0x8a, 0xe8, 0xd7, 0x35, 0x98, 0x09, - 0x76, 0x83, 0x90, 0xf4, 0x64, 0x27, 0x4e, 0xdd, 0xf3, 0x4e, 0x30, 0x7b, 0x57, 0x27, 0x41, 0x05, - 0xa7, 0xa8, 0x22, 0x03, 0x1e, 0x62, 0x03, 0x7b, 0xb5, 0x79, 0xcd, 0xee, 0x6e, 0xca, 0x77, 0x7f, - 0x6b, 0xc4, 0x37, 0x89, 0x1b, 0xce, 0xcf, 0xb2, 0xa5, 0x53, 0xdf, 0xdf, 0xab, 0x3f, 0xd4, 0x2e, - 0xae, 0x86, 0x0f, 0xc2, 0x81, 0x3e, 0x02, 0xe7, 0x05, 0x78, 0xd9, 0xbb, 0x9d, 0xa1, 0x30, 0xc7, - 0x28, 0xb0, 0xc7, 0x98, 0xed, 0xc2, 0x5a, 0xf8, 0x00, 0x0c, 0x54, 0xbf, 0x08, 0x88, 0xcf, 0xec, - 0xd5, 0x44, 0xae, 0x9f, 0x60, 0x1e, 0xb1, 0x75, 0xc0, 0xf4, 0x8b, 0x4e, 0x16, 0x8c, 0xf3, 0xda, - 0xa0, 0xe7, 0xa4, 0x8b, 0xfe, 0x2e, 0x2d, 0x78, 0x69, 0xad, 0x33, 0x7f, 0x9a, 0xf5, 0xef, 0xb4, - 0xe2, 0x79, 0x1f, 0x81, 0x70, 0xba, 0x2e, 0x95, 0x32, 0xa2, 0xa2, 0xc6, 0xc0, 0x0f, 0xc2, 0xf9, - 0x33, 0xac, 0x31, 0x93, 0x32, 0xb0, 0x0a, 0xc0, 0xc9, 0x7a, 0xe8, 0x19, 0x98, 0x09, 0x88, 0x69, - 0x7a, 0xbd, 0x7e, 0x8b, 0x6c, 0x18, 0x03, 0x27, 0x9c, 0x3f, 0xcb, 0x7a, 0xcf, 0x67, 0x30, 0x01, - 0xc1, 0xa9, 0x9a, 0x68, 0x17, 0x4e, 0xcb, 0x78, 0x0d, 0xcb, 0x5e, 0x77, 0xc5, 0xd8, 0x61, 0x62, - 0xfb, 0xb9, 0xc3, 0x37, 0xe1, 0x42, 0x74, 0x07, 0xb9, 0xf0, 0xd2, 0xc0, 0x70, 0x43, 0x3b, 0xdc, - 0xe5, 0xc3, 0xd5, 0xcc, 0xa2, 0xc3, 0x79, 0x34, 0xd0, 0x32, 0x9c, 0x49, 0x15, 0x5f, 0xb1, 0x1d, - 0x12, 0xcc, 0x3f, 0xc0, 0x3e, 0x9b, 0x59, 0x66, 0x9a, 0x39, 0x70, 0x9c, 0xdb, 0x0a, 0xdd, 0x80, - 0xb3, 0x7d, 0xdf, 0x0b, 0x89, 0x19, 0x5e, 0xa7, 0x72, 0x8a, 0x23, 0x3e, 0x30, 0x98, 0x9f, 0x67, - 0x63, 0xc1, 0x6c, 0xf5, 0x6b, 0x79, 0x15, 0x70, 0x7e, 0x3b, 0xf4, 0xa6, 0x06, 0x17, 0x83, 0xd0, - 0x27, 0x46, 0xcf, 0x76, 0xbb, 0x4d, 0xcf, 0x75, 0x09, 0xe3, 0x94, 0x6d, 0x2b, 0x76, 0x3c, 0x7d, - 0xb0, 0x14, 0xab, 0xd2, 0xf7, 0xf7, 0xea, 0x17, 0x3b, 0x07, 0x62, 0xc6, 0x87, 0x50, 0xd6, 0xf7, - 0x6a, 0x5c, 0x07, 0xcf, 0xb0, 0x7f, 0xba, 0x08, 0x7b, 0xa4, 0xe7, 0xf9, 0xbb, 0x8b, 0x51, 0x54, - 0x40, 0x61, 0x1a, 0x67, 0x8b, 0x70, 0x25, 0x09, 0xc2, 0xe9, 0xba, 0x54, 0x44, 0x63, 0x9b, 0xe5, - 0x4a, 0x27, 0x6e, 0x5f, 0x8b, 0x45, 0xb4, 0x76, 0x0a, 0x86, 0x33, 0xb5, 0x51, 0x13, 0xe6, 0x44, - 0x59, 0x9b, 0x2a, 0x3a, 0xc1, 0x15, 0x9f, 0x44, 0xd2, 0x2f, 0xd5, 0x18, 0xe6, 0xda, 0x69, 0x20, - 0xce, 0xd6, 0xa7, 0x5f, 0x41, 0x7f, 0xa8, 0xbd, 0x18, 0x8e, 0xbf, 0x62, 0x35, 0x09, 0xc2, 0xe9, - 0xba, 0x91, 0x26, 0x9a, 0xe8, 0xc2, 0x48, 0xfc, 0x15, 0xab, 0x29, 0x18, 0xce, 0xd4, 0xd6, 0xff, - 0xf5, 0x30, 0xbc, 0xe3, 0x08, 0x52, 0x13, 0xea, 0xe5, 0x0f, 0xf7, 0xf1, 0xf7, 0xce, 0xd1, 0xa6, - 0xa7, 0x5f, 0x30, 0x3d, 0xc7, 0xa7, 0x77, 0xd4, 0xe9, 0x0c, 0x8a, 0xa6, 0xf3, 0xf8, 0x24, 0x8f, - 0x3e, 0xfd, 0xbd, 0xfc, 0xe9, 0x2f, 0x39, 0xaa, 0x87, 0x2e, 0x97, 0x7e, 0xc1, 0x72, 0x29, 0x39, - 0xaa, 0x47, 0x58, 0x5e, 0xff, 0x66, 0x18, 0x1e, 0x39, 0x8a, 0xf8, 0x56, 0x72, 0x7d, 0xe5, 0x70, - 0x9d, 0xfb, 0xba, 0xbe, 0x8a, 0xdc, 0xeb, 0xef, 0xe3, 0xfa, 0xca, 0x21, 0x79, 0xbf, 0xd7, 0x57, - 0xd1, 0xa8, 0xde, 0xaf, 0xf5, 0x55, 0x34, 0xaa, 0x47, 0x58, 0x5f, 0xff, 0x3d, 0x7d, 0x3e, 0x48, - 0x91, 0xad, 0x0d, 0x43, 0x66, 0x7f, 0x50, 0x92, 0x49, 0x31, 0x57, 0x8a, 0xe6, 0xda, 0x2d, 0x4c, - 0x71, 0x20, 0x0c, 0xa3, 0x7c, 0xfd, 0x94, 0x64, 0x41, 0xcc, 0xe1, 0x9b, 0x2f, 0x49, 0x2c, 0x30, - 0xd1, 0xa1, 0x22, 0xfd, 0x4d, 0xd2, 0x23, 0xbe, 0xe1, 0x74, 0x42, 0xcf, 0x37, 0xba, 0x65, 0xb9, - 0x0d, 0x1b, 0xaa, 0xa5, 0x14, 0x2e, 0x9c, 0xc1, 0x4e, 0x07, 0xa4, 0x6f, 0x5b, 0x25, 0xf9, 0x0b, - 0x1b, 0x90, 0xb5, 0x76, 0x0b, 0x53, 0x1c, 0xfa, 0x6f, 0x4f, 0x80, 0x12, 0x8f, 0x08, 0x7d, 0x18, - 0x1e, 0x34, 0x1c, 0xc7, 0xbb, 0xbd, 0xe6, 0xdb, 0xdb, 0xb6, 0x43, 0xba, 0xc4, 0x92, 0xf2, 0x4c, - 0x20, 0x3c, 0x6e, 0x98, 0xda, 0xb2, 0x58, 0x54, 0x09, 0x17, 0xb7, 0xa7, 0x4a, 0xd4, 0x9c, 0x99, - 0x0e, 0xff, 0x52, 0xe9, 0x46, 0x3e, 0x13, 0x4c, 0x86, 0x6f, 0xa8, 0x4c, 0x31, 0xce, 0xd2, 0x45, - 0xbf, 0xaa, 0x71, 0x13, 0x99, 0xbc, 0x13, 0x10, 0x93, 0x76, 0xed, 0x5e, 0x5d, 0x26, 0xc6, 0xc6, - 0xb6, 0xf8, 0xda, 0x21, 0x49, 0x11, 0x7d, 0x43, 0x83, 0xb3, 0x5b, 0x79, 0xe6, 0x7d, 0x31, 0xb7, - 0x6b, 0xa5, 0xfb, 0x52, 0x70, 0x61, 0xc0, 0x85, 0xca, 0xdc, 0x0a, 0x38, 0xbf, 0x27, 0x72, 0x9c, - 0xa4, 0xbd, 0x53, 0xf0, 0x81, 0xf2, 0xe3, 0x94, 0xb2, 0x9c, 0xc6, 0xe3, 0x24, 0x01, 0x38, 0x49, - 0x11, 0xbd, 0x0e, 0x13, 0x5b, 0x91, 0x99, 0x59, 0x58, 0x95, 0x5a, 0xa5, 0xc9, 0x2b, 0xc6, 0x6a, - 0x7e, 0xfb, 0x24, 0x0b, 0x71, 0x4c, 0x05, 0xd9, 0x30, 0xb6, 0xc5, 0xb9, 0x91, 0xb0, 0x06, 0x35, - 0xaa, 0x2b, 0xaa, 0xdc, 0x24, 0x21, 0x8a, 0x70, 0x84, 0x5f, 0xf5, 0x3b, 0x1c, 0x3f, 0xc4, 0x25, - 0xfe, 0x2b, 0x1a, 0x9c, 0xdd, 0x26, 0x7e, 0x68, 0x9b, 0xe9, 0xfb, 0x95, 0x89, 0x0a, 0xda, 0xf4, - 0xcb, 0x79, 0x18, 0xf9, 0x52, 0xc9, 0x05, 0xe1, 0xfc, 0x3e, 0x50, 0xdd, 0x9a, 0x5b, 0xc9, 0x3b, - 0xa1, 0x11, 0xda, 0xe6, 0x4d, 0x6f, 0x8b, 0xb8, 0xf4, 0x6b, 0x45, 0xac, 0x79, 0x60, 0xfc, 0x83, - 0xe9, 0xd6, 0x4b, 0xc5, 0xd5, 0xf0, 0x41, 0x38, 0xf4, 0x3f, 0xd6, 0x20, 0x63, 0xe9, 0x45, 0x7f, - 0x55, 0x83, 0xa9, 0x0d, 0x62, 0x84, 0x03, 0x9f, 0x5c, 0x35, 0x42, 0xf9, 0x02, 0xf2, 0x95, 0x7b, - 0x62, 0x61, 0x5e, 0xb8, 0xa2, 0x60, 0xe6, 0x2e, 0x01, 0x32, 0xa2, 0x99, 0x0a, 0xc2, 0x89, 0x2e, - 0x9c, 0x7f, 0x01, 0xe6, 0x32, 0x0d, 0x8f, 0x75, 0x89, 0xfa, 0x0f, 0x35, 0xc8, 0xcb, 0x3f, 0x80, - 0x3e, 0x0a, 0x23, 0x86, 0x65, 0xc9, 0x20, 0xc5, 0xcf, 0x94, 0x74, 0x7f, 0xb1, 0xd4, 0xa7, 0xa6, - 0xec, 0x27, 0xe6, 0x78, 0xd1, 0x15, 0x40, 0x46, 0xe2, 0x76, 0x7b, 0x25, 0x7e, 0x86, 0xc5, 0x6e, - 0xa8, 0x16, 0x33, 0x50, 0x9c, 0xd3, 0x42, 0xff, 0xac, 0x06, 0x28, 0x1b, 0x06, 0x0f, 0x05, 0x30, - 0x2e, 0x56, 0x73, 0x34, 0x4f, 0x4b, 0x65, 0x5d, 0xf1, 0x13, 0x2f, 0x4b, 0x62, 0xe7, 0x7f, 0x51, - 0x10, 0x60, 0x49, 0x48, 0xff, 0x33, 0x0d, 0xe2, 0x78, 0xa6, 0xe8, 0x7d, 0x30, 0x69, 0x91, 0xc0, - 0xf4, 0xed, 0x7e, 0x18, 0xbf, 0x43, 0x91, 0xbe, 0xec, 0xad, 0x18, 0x84, 0xd5, 0x7a, 0x48, 0x87, - 0xd1, 0xd0, 0x08, 0xb6, 0xda, 0x2d, 0xa1, 0x5e, 0x32, 0x61, 0xe0, 0x26, 0x2b, 0xc1, 0x02, 0x12, - 0x87, 0xb3, 0x19, 0x3a, 0x42, 0x38, 0x1b, 0xb4, 0x71, 0x0f, 0x62, 0xf7, 0xa0, 0xc3, 0xe3, 0xf6, - 0xe8, 0x7f, 0xbd, 0x06, 0xa7, 0x68, 0x95, 0x15, 0xc3, 0x76, 0x43, 0xe2, 0x32, 0x8f, 0xeb, 0x92, - 0x83, 0xd0, 0x85, 0xe9, 0xd0, 0xb7, 0xbb, 0x5d, 0xe2, 0x8b, 0x08, 0x60, 0xc7, 0x7f, 0x93, 0x23, - 0x3d, 0x6a, 0x6e, 0xaa, 0x88, 0x70, 0x12, 0x2f, 0x7a, 0x3a, 0x72, 0x79, 0xe7, 0x8a, 0xf8, 0x3b, - 0xa2, 0xb5, 0xca, 0xfc, 0xd8, 0xef, 0x8a, 0xf8, 0x48, 0x32, 0x0a, 0x6e, 0xc2, 0xbb, 0xfd, 0x17, - 0x60, 0x5a, 0xf8, 0x9d, 0xf2, 0xb8, 0x44, 0x42, 0x11, 0x67, 0xe7, 0xcc, 0x15, 0x15, 0x80, 0x93, - 0xf5, 0xf4, 0x7f, 0x5e, 0x83, 0x64, 0xac, 0xdd, 0xb2, 0xa3, 0x94, 0x0d, 0xca, 0x54, 0xbb, 0x6f, - 0x41, 0x99, 0xde, 0xc3, 0xe2, 0xd2, 0xf3, 0xbc, 0x23, 0xfc, 0xee, 0x5a, 0x0d, 0x26, 0xcf, 0x93, - 0x86, 0xc8, 0x1a, 0xf1, 0xb0, 0x0e, 0x1f, 0x7b, 0x58, 0xdf, 0x27, 0x3c, 0xd7, 0x47, 0x12, 0xa1, - 0xb1, 0x22, 0x1f, 0xfd, 0xb9, 0x44, 0x43, 0xc5, 0x41, 0xff, 0x07, 0x1a, 0x8c, 0x89, 0xd0, 0x8f, - 0x47, 0x78, 0x00, 0xd2, 0x85, 0x11, 0xa6, 0xfc, 0x54, 0x92, 0x0b, 0x3b, 0x9b, 0x9e, 0x17, 0x26, - 0x42, 0x60, 0x32, 0x87, 0x6b, 0xf6, 0x2f, 0xe6, 0xf8, 0x99, 0x17, 0x9f, 0x6f, 0x6e, 0xda, 0x21, - 0x31, 0xc3, 0x28, 0xa8, 0x5e, 0xe4, 0xc5, 0xa7, 0x94, 0xe3, 0x44, 0x2d, 0xfd, 0x2b, 0xc3, 0x70, - 0x49, 0x20, 0xce, 0x88, 0x4a, 0x92, 0xc5, 0xed, 0xc2, 0x69, 0x31, 0xb9, 0x2d, 0xdf, 0xb0, 0xa5, - 0x53, 0x40, 0x39, 0x2d, 0x58, 0x38, 0x8c, 0x64, 0xd0, 0xe1, 0x3c, 0x1a, 0x3c, 0x3c, 0x1c, 0x2b, - 0xbe, 0x46, 0x0c, 0x27, 0xdc, 0x8c, 0x68, 0xd7, 0xaa, 0x84, 0x87, 0xcb, 0xe2, 0xc3, 0xb9, 0x54, - 0x98, 0x53, 0x82, 0x00, 0x34, 0x7d, 0x62, 0xa8, 0x1e, 0x11, 0x15, 0x5c, 0xa6, 0x57, 0x72, 0x31, - 0xe2, 0x02, 0x4a, 0xcc, 0x9c, 0x68, 0xec, 0x30, 0xeb, 0x04, 0x26, 0xa1, 0x6f, 0xb3, 0x50, 0xa6, - 0xd2, 0xa6, 0xbd, 0x92, 0x04, 0xe1, 0x74, 0x5d, 0xf4, 0x0c, 0xcc, 0x30, 0x27, 0x8f, 0x38, 0x04, - 0xcb, 0x48, 0xfc, 0x4e, 0x78, 0x35, 0x01, 0xc1, 0xa9, 0x9a, 0xfa, 0x37, 0x35, 0x98, 0x52, 0x97, - 0xdd, 0x11, 0x9e, 0x83, 0x6c, 0x2b, 0xc7, 0x61, 0x95, 0x97, 0x0a, 0x2a, 0xd9, 0xa3, 0x9c, 0x88, - 0x7f, 0x79, 0x08, 0x4e, 0xe7, 0xb4, 0x61, 0x37, 0xf6, 0x24, 0x75, 0xb4, 0x56, 0xba, 0xb1, 0xcf, - 0x9c, 0xd3, 0xf2, 0xc6, 0x3e, 0x0d, 0xc1, 0x19, 0xc2, 0xe8, 0x15, 0x18, 0x32, 0x7d, 0x5b, 0x0c, - 0xcc, 0x53, 0xe5, 0x74, 0x44, 0xdc, 0x6e, 0x4c, 0x0a, 0x92, 0x43, 0x4d, 0xdc, 0xc6, 0x14, 0x23, - 0x3d, 0x22, 0xd4, 0x7d, 0x1d, 0x9d, 0xd7, 0xec, 0x88, 0x50, 0xb7, 0x7f, 0x80, 0x93, 0xf5, 0xd0, - 0x07, 0x61, 0x5e, 0xc8, 0xed, 0xd1, 0x3b, 0x50, 0xcf, 0x0d, 0x42, 0xba, 0x05, 0x43, 0xc1, 0x52, - 0x2f, 0xec, 0xef, 0xd5, 0xe7, 0xaf, 0x17, 0xd4, 0xc1, 0x85, 0xad, 0xf5, 0xff, 0x32, 0x04, 0x93, - 0x4a, 0x88, 0x5c, 0xb4, 0x52, 0xc5, 0xec, 0x11, 0x7f, 0x71, 0x64, 0xfa, 0x58, 0x81, 0xa1, 0x6e, - 0x7f, 0x50, 0xd2, 0xee, 0x21, 0xd1, 0x5d, 0xa5, 0xe8, 0xba, 0xfd, 0x01, 0x7a, 0x59, 0x5a, 0x52, - 0xca, 0xd9, 0x3a, 0xa4, 0xbb, 0x7e, 0xca, 0x9a, 0x12, 0xed, 0x98, 0xe1, 0xc2, 0x1d, 0xe3, 0xc2, - 0x58, 0x20, 0xcc, 0x2c, 0x23, 0x15, 0x42, 0x23, 0x28, 0x43, 0x2d, 0xec, 0x2a, 0x5c, 0x3d, 0x8b, - 0xcc, 0x2e, 0x11, 0x11, 0x2a, 0xf6, 0x0d, 0xd8, 0x43, 0x40, 0xa6, 0x79, 0x8e, 0x73, 0xb1, 0xef, - 0x16, 0x2b, 0xc1, 0x02, 0x92, 0x39, 0x4c, 0xc6, 0x8e, 0x74, 0x98, 0x7c, 0xa6, 0x06, 0x28, 0xdb, - 0x0d, 0xf4, 0x0e, 0x18, 0x61, 0x8f, 0x89, 0x05, 0xd7, 0x90, 0x52, 0x3a, 0x7b, 0x4c, 0x8a, 0x39, - 0x0c, 0x75, 0xc4, 0x23, 0xef, 0x72, 0xf3, 0xc9, 0x9c, 0x5e, 0x04, 0x3d, 0xe5, 0x45, 0x78, 0x74, - 0x3c, 0x0f, 0x15, 0x1e, 0xcf, 0xb7, 0x60, 0xac, 0x67, 0xbb, 0xec, 0xc2, 0xad, 0x9c, 0xf9, 0x89, - 0xdf, 0xca, 0x73, 0x14, 0x38, 0xc2, 0xa5, 0xff, 0xb8, 0x46, 0xd7, 0x7e, 0x2c, 0x9c, 0xde, 0x01, - 0x30, 0x06, 0xa1, 0xc7, 0xa5, 0x1c, 0xb1, 0x05, 0x3e, 0x50, 0x72, 0x9a, 0x25, 0xd6, 0x45, 0x89, - 0x91, 0xdf, 0x96, 0xc7, 0xbf, 0xb1, 0x42, 0x8d, 0xd2, 0x0e, 0xed, 0x1e, 0x79, 0xc5, 0x76, 0x2d, - 0xef, 0xb6, 0x18, 0xdf, 0xca, 0xb4, 0x6f, 0x4a, 0x8c, 0x9c, 0x76, 0xfc, 0x1b, 0x2b, 0xd4, 0x28, - 0x77, 0x61, 0x8a, 0xae, 0xcb, 0x22, 0x97, 0x8b, 0xce, 0x79, 0x8e, 0x13, 0x9d, 0xa0, 0xe3, 0x9c, - 0xbb, 0x34, 0x0b, 0xea, 0xe0, 0xc2, 0xd6, 0xfa, 0xb7, 0x34, 0x38, 0x9b, 0x3b, 0x16, 0xe8, 0x2a, - 0xcc, 0xc5, 0x9e, 0x52, 0x2a, 0xc7, 0x1f, 0x8f, 0x63, 0xe6, 0x5f, 0x4f, 0x57, 0xc0, 0xd9, 0x36, - 0x68, 0x45, 0x8a, 0x3d, 0xea, 0x89, 0x22, 0xdc, 0xac, 0x1e, 0x12, 0xa8, 0xf2, 0x0e, 0x1d, 0x9c, - 0xd7, 0x4e, 0xff, 0x70, 0xa2, 0xc3, 0xf1, 0x80, 0xd1, 0xfd, 0xb1, 0x4e, 0xba, 0xf2, 0xe1, 0x8f, - 0xdc, 0x1f, 0x0d, 0x5a, 0x88, 0x39, 0x0c, 0x3d, 0xac, 0xbe, 0xa7, 0x93, 0xec, 0x2b, 0x7a, 0x53, - 0xa7, 0x0f, 0x00, 0x84, 0x3f, 0xa3, 0xed, 0x76, 0x51, 0x17, 0xc6, 0x0d, 0x91, 0x92, 0x4e, 0x2c, - 0xb6, 0xe7, 0xca, 0xa9, 0xd5, 0x02, 0x09, 0xf7, 0xe6, 0x8e, 0x7e, 0x61, 0x89, 0x5c, 0xff, 0x9b, - 0x1a, 0x9c, 0xcb, 0x7f, 0x33, 0x7b, 0x04, 0x51, 0xa1, 0x07, 0x93, 0x7e, 0xdc, 0x4c, 0xac, 0xcc, - 0xf7, 0xab, 0x51, 0xe9, 0x94, 0x48, 0x2e, 0x54, 0x8c, 0x6a, 0xfa, 0x5e, 0x10, 0xcd, 0x4e, 0x3a, - 0x50, 0x9d, 0xd4, 0x61, 0x94, 0x9e, 0x60, 0x15, 0xbf, 0xfe, 0xa9, 0x1a, 0xc0, 0x2a, 0x09, 0x6f, - 0x7b, 0xfe, 0x16, 0x1d, 0xa3, 0x9f, 0xa9, 0xb7, 0xdb, 0x17, 0x60, 0xb8, 0xef, 0x59, 0x81, 0x60, - 0x54, 0xec, 0x51, 0x35, 0x73, 0xf3, 0x61, 0xa5, 0xa8, 0x0e, 0x23, 0xec, 0x5e, 0x41, 0x1c, 0x22, - 0x4c, 0xf6, 0xa7, 0x92, 0x5b, 0x80, 0x79, 0x39, 0xcf, 0x3c, 0xc2, 0xde, 0x4a, 0x04, 0x42, 0x9b, - 0x11, 0x99, 0x47, 0x78, 0x19, 0x96, 0x50, 0xfd, 0xd3, 0xc3, 0x90, 0x48, 0xbf, 0x18, 0x9b, 0x5f, - 0x86, 0xef, 0x93, 0xf9, 0xe5, 0x83, 0x30, 0xef, 0x78, 0x86, 0xd5, 0x30, 0x1c, 0xba, 0xec, 0xfd, - 0x0e, 0x9f, 0x0f, 0xc3, 0xed, 0xca, 0x88, 0x35, 0x8c, 0x05, 0x2c, 0x17, 0xd4, 0xc1, 0x85, 0xad, - 0xd1, 0x40, 0xc9, 0xfa, 0x48, 0xe5, 0xa9, 0x95, 0xca, 0xe9, 0x29, 0x17, 0xd4, 0x87, 0x32, 0xf2, - 0x44, 0x4f, 0x65, 0x86, 0xfc, 0x75, 0x0d, 0xce, 0x92, 0x9d, 0x90, 0xf8, 0xae, 0xe1, 0xdc, 0xf4, - 0x8d, 0x8d, 0x0d, 0xdb, 0x4c, 0x38, 0x52, 0xae, 0xed, 0xef, 0xd5, 0xcf, 0x2e, 0xe5, 0x55, 0xb8, - 0xbb, 0x57, 0x7f, 0x32, 0x9b, 0x7f, 0x35, 0x7a, 0x16, 0x93, 0xdb, 0x84, 0x2d, 0xc7, 0x7c, 0x72, - 0xe7, 0x9f, 0x86, 0xc9, 0x63, 0xbc, 0x68, 0x48, 0xbc, 0x43, 0xfe, 0xfb, 0x35, 0x98, 0xa2, 0x2b, - 0x68, 0xd9, 0x33, 0x0d, 0xa7, 0xb5, 0xda, 0x39, 0x46, 0xf2, 0x52, 0xb4, 0x0c, 0x67, 0x36, 0x3c, - 0xdf, 0x24, 0x37, 0x9b, 0x6b, 0x37, 0x3d, 0x71, 0x35, 0xd1, 0x5a, 0xed, 0x08, 0xbe, 0xc8, 0x54, - 0xac, 0x2b, 0x39, 0x70, 0x9c, 0xdb, 0x0a, 0xdd, 0x80, 0xb3, 0x71, 0xf9, 0xad, 0x3e, 0x77, 0xba, - 0xa0, 0xe8, 0x86, 0x62, 0xa7, 0x91, 0x2b, 0x79, 0x15, 0x70, 0x7e, 0x3b, 0x64, 0xc0, 0x43, 0x22, - 0xd0, 0xc1, 0x15, 0xcf, 0xbf, 0x6d, 0xf8, 0x56, 0x12, 0xed, 0x70, 0x6c, 0xb4, 0x6d, 0x15, 0x57, - 0xc3, 0x07, 0xe1, 0xd0, 0xbf, 0x36, 0x0a, 0xca, 0x93, 0xae, 0x63, 0xe4, 0xe3, 0xf8, 0x2d, 0x0d, - 0xce, 0x98, 0x8e, 0x4d, 0xdc, 0x30, 0xf5, 0x6e, 0x87, 0x33, 0x96, 0x97, 0xcb, 0x3d, 0x36, 0xeb, - 0x13, 0xb7, 0xdd, 0x12, 0x4e, 0x2a, 0xcd, 0x1c, 0xec, 0xc2, 0x91, 0x27, 0x07, 0x82, 0x73, 0x7b, - 0xc3, 0x3e, 0x88, 0x95, 0xb7, 0x5b, 0xea, 0x03, 0xed, 0xa6, 0x28, 0xc3, 0x12, 0x8a, 0x1e, 0x87, - 0xc9, 0xae, 0xef, 0x0d, 0xfa, 0x41, 0x93, 0x39, 0xc8, 0x72, 0xfe, 0xc4, 0x84, 0xb1, 0xab, 0x71, - 0x31, 0x56, 0xeb, 0x50, 0xd1, 0x92, 0xff, 0x5c, 0xf3, 0xc9, 0x86, 0xbd, 0x23, 0xf8, 0x15, 0x13, - 0x2d, 0xaf, 0x2a, 0xe5, 0x38, 0x51, 0x0b, 0xbd, 0x1b, 0x26, 0xec, 0x20, 0x18, 0x10, 0xff, 0x16, - 0x5e, 0x16, 0x31, 0xb8, 0xd9, 0x5d, 0x47, 0x3b, 0x2a, 0xc4, 0x31, 0x1c, 0x7d, 0x51, 0x83, 0x19, - 0x9f, 0xbc, 0x3e, 0xb0, 0x7d, 0x62, 0x31, 0xa2, 0x81, 0x78, 0x58, 0xd7, 0xa9, 0xf8, 0x9a, 0x6f, - 0x01, 0x27, 0xb0, 0x72, 0x3e, 0x21, 0xed, 0x5a, 0x49, 0x20, 0x4e, 0x75, 0x81, 0x8e, 0x55, 0x60, - 0x77, 0x5d, 0xdb, 0xed, 0x2e, 0x3a, 0xdd, 0x60, 0x7e, 0x9c, 0xf1, 0x3e, 0x2e, 0xb8, 0xc6, 0xc5, - 0x58, 0xad, 0x43, 0xb5, 0xba, 0x41, 0x40, 0x77, 0x7e, 0x8f, 0xf0, 0x01, 0x9e, 0x88, 0x0d, 0x7f, - 0xb7, 0x54, 0x00, 0x4e, 0xd6, 0xa3, 0x4a, 0x7f, 0x54, 0x20, 0x86, 0x19, 0x78, 0xf0, 0x24, 0xda, - 0xcf, 0x5b, 0x09, 0x08, 0x4e, 0xd5, 0x3c, 0xbf, 0x08, 0xa7, 0x73, 0x3e, 0xf3, 0x58, 0xec, 0xe5, - 0x9b, 0x35, 0x78, 0xfb, 0xa1, 0xcb, 0x12, 0x7d, 0x4d, 0x83, 0x49, 0xb2, 0x13, 0xfa, 0x86, 0xf4, - 0xa3, 0xa7, 0x73, 0xd4, 0xbd, 0x3f, 0x9b, 0x60, 0x61, 0x29, 0xa6, 0xc4, 0xe7, 0x4d, 0x4a, 0x0c, - 0x0a, 0x04, 0xab, 0x1d, 0xa2, 0x9a, 0x12, 0x0f, 0xae, 0xa5, 0x1a, 0xc8, 0x45, 0x0e, 0x3f, 0x01, - 0x39, 0xff, 0x3c, 0xcc, 0xa6, 0x31, 0x1f, 0x97, 0x13, 0x8f, 0xad, 0xf9, 0x1e, 0x15, 0x66, 0x4e, - 0x20, 0xa2, 0xd2, 0x7a, 0x22, 0x5e, 0x6c, 0xb9, 0xd7, 0xba, 0xa2, 0xb7, 0x85, 0xf1, 0xaa, 0x5f, - 0x4b, 0xc5, 0xab, 0x6e, 0x54, 0xa2, 0x72, 0x70, 0x80, 0xea, 0x1f, 0x6a, 0x30, 0x29, 0x6a, 0x9e, - 0x40, 0xc8, 0x25, 0x23, 0x19, 0x72, 0xe9, 0xd9, 0x2a, 0x1f, 0x56, 0x10, 0x6c, 0xe9, 0x4d, 0x0d, - 0xa6, 0x45, 0x8d, 0x15, 0xd2, 0x5b, 0x27, 0x3e, 0xba, 0x02, 0x63, 0xc1, 0x80, 0xcd, 0xa5, 0xf8, - 0xa2, 0x87, 0x54, 0x09, 0xd9, 0x5f, 0x37, 0x4c, 0x96, 0x8b, 0x92, 0x57, 0x51, 0xa2, 0x40, 0xf3, - 0x02, 0x1c, 0x35, 0xa6, 0xf2, 0xae, 0xef, 0x39, 0x99, 0x38, 0x2d, 0xd8, 0x73, 0x08, 0x66, 0x10, - 0x2a, 0x66, 0xd2, 0xbf, 0x91, 0xed, 0x88, 0x89, 0x99, 0x14, 0x1c, 0x60, 0x5e, 0xae, 0x7f, 0x66, - 0x58, 0x8e, 0x36, 0x8b, 0xd2, 0x7a, 0x0d, 0x26, 0x4c, 0x9f, 0x18, 0x21, 0xb1, 0x1a, 0xbb, 0x47, - 0xe9, 0x1c, 0xe3, 0xd8, 0xcd, 0xa8, 0x05, 0x8e, 0x1b, 0x53, 0xde, 0xa8, 0x5e, 0x4b, 0xd4, 0xe2, - 0x73, 0xa4, 0xf0, 0x4a, 0xe2, 0x59, 0x18, 0xf1, 0x6e, 0xbb, 0xd2, 0xcd, 0xe1, 0x40, 0xc2, 0xec, - 0x53, 0x6e, 0xd0, 0xda, 0x98, 0x37, 0x52, 0xe3, 0x14, 0x0d, 0x1f, 0x10, 0xa7, 0xa8, 0x07, 0x63, - 0x3d, 0x36, 0x0d, 0xd5, 0x42, 0x02, 0x27, 0x66, 0x54, 0x4d, 0x1e, 0xc1, 0x50, 0xe3, 0x88, 0x06, - 0x3d, 0xe5, 0x28, 0x23, 0x0e, 0xfa, 0x86, 0x49, 0xd4, 0x53, 0x6e, 0x35, 0x2a, 0xc4, 0x31, 0x1c, - 0xdd, 0x49, 0x86, 0xc0, 0x1a, 0xab, 0x60, 0x3b, 0x12, 0xfd, 0x53, 0xa2, 0x5e, 0xf1, 0xc1, 0x2f, - 0x0c, 0x83, 0xf5, 0xf9, 0x61, 0xb9, 0x4c, 0x45, 0x94, 0xef, 0xfc, 0x44, 0x8a, 0x5a, 0xa9, 0x44, - 0x8a, 0x4f, 0x46, 0xb9, 0x09, 0x6b, 0x89, 0x4c, 0x27, 0x32, 0x37, 0xe1, 0x94, 0x20, 0x9d, 0xc8, - 0x47, 0x38, 0x80, 0xd3, 0x41, 0x68, 0x38, 0xa4, 0x63, 0x0b, 0xed, 0x3a, 0x08, 0x8d, 0x5e, 0xbf, - 0x44, 0xc2, 0x12, 0xee, 0x71, 0x9e, 0x45, 0x85, 0xf3, 0xf0, 0xa3, 0x4f, 0x6b, 0x30, 0xcf, 0xca, - 0x17, 0x07, 0xa1, 0xc7, 0x23, 0xaf, 0xc6, 0xc4, 0x8f, 0x7f, 0xfb, 0xc9, 0x74, 0xa1, 0x4e, 0x01, - 0x3e, 0x5c, 0x48, 0x09, 0xbd, 0x01, 0x67, 0x1d, 0x23, 0x08, 0x17, 0xcd, 0xd0, 0xde, 0xb6, 0xc3, - 0xdd, 0xb8, 0x0b, 0xc7, 0x4f, 0x2a, 0xc9, 0x44, 0xee, 0xe5, 0x3c, 0x64, 0x38, 0x9f, 0x86, 0xfe, - 0x3f, 0x34, 0x40, 0xd9, 0x25, 0x84, 0x7a, 0x30, 0x6e, 0x45, 0x2e, 0xe0, 0xda, 0xbd, 0x09, 0xd0, - 0x26, 0xb9, 0xb3, 0x74, 0x1d, 0x97, 0x24, 0x50, 0x1f, 0x26, 0x6e, 0x6f, 0xda, 0x21, 0x71, 0xec, - 0x20, 0xbc, 0x57, 0x01, 0xe1, 0x64, 0x6c, 0xa4, 0x57, 0x22, 0xcc, 0x38, 0x26, 0xa2, 0x7f, 0x61, - 0x18, 0xc6, 0x8f, 0x91, 0xad, 0x7b, 0x00, 0xc8, 0x54, 0x32, 0xa9, 0x54, 0xb1, 0x29, 0x30, 0xbf, - 0x85, 0x66, 0x06, 0x19, 0xce, 0x21, 0x80, 0xde, 0x80, 0x33, 0xb6, 0xbb, 0xe1, 0x1b, 0x41, 0xe8, - 0x0f, 0x98, 0x9d, 0xb6, 0x4a, 0x3e, 0x12, 0xa6, 0x4a, 0xb4, 0x73, 0xd0, 0xe1, 0x5c, 0x22, 0x68, - 0x03, 0xc6, 0x6e, 0x7b, 0xfe, 0x16, 0x65, 0xa0, 0xc3, 0x15, 0xb2, 0xd3, 0xbd, 0xc2, 0x70, 0xc4, - 0x9c, 0x93, 0xff, 0x0e, 0x70, 0x84, 0x9c, 0x47, 0x85, 0xe0, 0xff, 0x47, 0xd7, 0x96, 0x62, 0xe9, - 0xb7, 0x2a, 0x10, 0x8c, 0x93, 0x1d, 0xf2, 0xa8, 0x10, 0xc9, 0x42, 0x9c, 0xa6, 0xa8, 0xff, 0x9e, - 0x06, 0x23, 0xfc, 0x9d, 0xe5, 0xfd, 0x17, 0xe5, 0x3e, 0x96, 0x10, 0xe5, 0xca, 0x25, 0x54, 0x60, - 0x7d, 0x2d, 0x8c, 0xf4, 0xff, 0x03, 0x0d, 0x26, 0x58, 0x8d, 0x13, 0x10, 0xad, 0x3e, 0x9a, 0x14, - 0xad, 0x9e, 0x29, 0xff, 0x39, 0x05, 0x82, 0xd5, 0xef, 0x0d, 0x89, 0x8f, 0x61, 0x92, 0x4b, 0x1b, - 0x4e, 0x0b, 0x0f, 0xca, 0x65, 0x7b, 0x83, 0xd0, 0x65, 0xde, 0x32, 0x76, 0x03, 0x11, 0x23, 0x81, - 0xbf, 0xa1, 0xc9, 0x82, 0x71, 0x5e, 0x1b, 0xf4, 0x0f, 0x34, 0x2a, 0x23, 0x84, 0xbe, 0x6d, 0x56, - 0x0b, 0x9f, 0x2f, 0x3b, 0xb7, 0xb0, 0xc2, 0xb1, 0x71, 0x2d, 0xe5, 0x56, 0x2c, 0x2c, 0xb0, 0xd2, - 0xbb, 0x7b, 0xf5, 0x7a, 0x8e, 0x0d, 0x29, 0x0e, 0xc9, 0x1d, 0x84, 0x9f, 0xfa, 0xf1, 0x81, 0x55, - 0x98, 0x05, 0x36, 0xea, 0x32, 0xba, 0x06, 0x23, 0x81, 0xe9, 0xf5, 0xc9, 0x71, 0x92, 0x82, 0xc8, - 0x11, 0xee, 0xd0, 0x96, 0x98, 0x23, 0x38, 0xff, 0x1a, 0x4c, 0xa9, 0x3d, 0xcf, 0xd1, 0x82, 0x5a, - 0xaa, 0x16, 0x74, 0xec, 0xab, 0x16, 0x55, 0x6b, 0xfa, 0x5e, 0x0d, 0x46, 0x79, 0x86, 0xca, 0x23, - 0xd8, 0x99, 0x5f, 0x8b, 0xe2, 0x1e, 0x57, 0xc9, 0xbf, 0xab, 0x86, 0xa0, 0x7b, 0xd5, 0x73, 0x95, - 0x41, 0x50, 0x43, 0x1f, 0x23, 0x4f, 0x86, 0x26, 0x1c, 0xaa, 0x90, 0xb5, 0x80, 0x7f, 0xda, 0xfd, - 0x0e, 0x46, 0xf8, 0x43, 0x0d, 0xa6, 0x12, 0xc1, 0x1e, 0x7b, 0x30, 0xe4, 0xcb, 0xa4, 0x36, 0x65, - 0x0d, 0xf1, 0x91, 0x07, 0xce, 0x43, 0x07, 0x54, 0xc2, 0x94, 0x8e, 0x8c, 0x0b, 0x59, 0xbb, 0x47, - 0x71, 0x21, 0xf5, 0x2f, 0x69, 0x70, 0x2e, 0xfa, 0xa0, 0x64, 0x04, 0x1f, 0xf4, 0x28, 0x8c, 0x1b, - 0x7d, 0x9b, 0x19, 0x98, 0x54, 0x1b, 0xdd, 0xe2, 0x5a, 0x9b, 0x95, 0x61, 0x09, 0x45, 0xef, 0x81, - 0xf1, 0x68, 0xe9, 0x09, 0xf9, 0x53, 0xf2, 0x2d, 0x79, 0xb5, 0x20, 0x6b, 0xa0, 0x77, 0x2a, 0xb1, - 0xa9, 0x47, 0x62, 0x71, 0x41, 0x12, 0xe6, 0x17, 0x91, 0xfa, 0xfb, 0x61, 0xa2, 0xd3, 0xb9, 0xc6, - 0xc3, 0xb8, 0x1c, 0xc3, 0xd6, 0xaa, 0x7f, 0x6e, 0x08, 0xa6, 0xb9, 0xc1, 0xa1, 0x61, 0xbb, 0x96, - 0xed, 0x76, 0x4f, 0xe0, 0x60, 0xb9, 0x09, 0x13, 0xdc, 0xb6, 0x71, 0x48, 0x02, 0xa2, 0x4e, 0x54, - 0x29, 0x1d, 0x24, 0x55, 0x02, 0x70, 0x8c, 0x08, 0x5d, 0x87, 0xd1, 0xd7, 0x29, 0x87, 0x8b, 0x36, - 0xc6, 0x91, 0x18, 0x8d, 0x5c, 0xf4, 0x8c, 0x39, 0x06, 0x58, 0xa0, 0x40, 0x21, 0x73, 0x11, 0x63, - 0x72, 0x57, 0xa5, 0xf0, 0x03, 0x89, 0xa1, 0x95, 0xc1, 0xe9, 0xa7, 0x84, 0xab, 0x19, 0xfb, 0x85, - 0x25, 0x25, 0x16, 0xe5, 0x39, 0xd1, 0xe2, 0xad, 0x12, 0xe5, 0x39, 0xd1, 0xe9, 0x82, 0xf3, 0xf1, - 0x69, 0x38, 0x9b, 0x3b, 0x1a, 0x87, 0xcb, 0xb5, 0xfa, 0xb7, 0x6b, 0x30, 0xdc, 0x21, 0xc4, 0x3a, - 0x81, 0xb5, 0xf9, 0xd1, 0x84, 0xd0, 0xf3, 0x5c, 0xf9, 0x38, 0xd3, 0x45, 0xc6, 0xab, 0x6e, 0xca, - 0x78, 0xf5, 0x42, 0x79, 0x12, 0x07, 0x5b, 0xae, 0x7e, 0xa3, 0x06, 0x40, 0xab, 0x35, 0x0c, 0x73, - 0x8b, 0x73, 0x1d, 0xb9, 0xa2, 0xb5, 0x24, 0xd7, 0xc9, 0xae, 0xc4, 0x93, 0xbc, 0x99, 0xd4, 0x61, - 0x94, 0x67, 0x80, 0x16, 0x37, 0x01, 0xc0, 0xd3, 0x63, 0xd2, 0x12, 0x2c, 0x20, 0x49, 0x8e, 0x31, - 0x7c, 0x8f, 0x38, 0x86, 0xfe, 0x6d, 0x0d, 0x58, 0x2e, 0xb3, 0xd6, 0x2a, 0x7b, 0x98, 0x6d, 0xf3, - 0x2b, 0xba, 0x96, 0x1a, 0x23, 0x93, 0x19, 0xc2, 0xdb, 0x2a, 0x00, 0x27, 0xeb, 0x21, 0x57, 0x19, - 0xd7, 0x5a, 0x05, 0x7d, 0x40, 0x74, 0xe4, 0x50, 0x1e, 0xf1, 0x93, 0x1a, 0x9c, 0x4a, 0xd5, 0x3d, - 0x82, 0x66, 0x78, 0x7f, 0x58, 0xae, 0x92, 0xd3, 0x62, 0xe8, 0x04, 0x72, 0x5a, 0xc8, 0xf4, 0x12, - 0xc3, 0xf7, 0x39, 0xbd, 0xc4, 0xf7, 0x35, 0x18, 0xa7, 0x63, 0x7c, 0x02, 0xec, 0xf7, 0x23, 0x49, - 0xf6, 0xfb, 0x74, 0xe9, 0xb5, 0x53, 0xc0, 0x75, 0xff, 0x4c, 0x03, 0x16, 0xe5, 0x5e, 0xf8, 0x25, - 0x28, 0x57, 0xfd, 0x5a, 0xc1, 0x55, 0xff, 0x25, 0xe1, 0x29, 0x90, 0x32, 0xe3, 0x2a, 0xde, 0x02, - 0xef, 0x51, 0x9c, 0x01, 0x86, 0x92, 0xac, 0x24, 0xeb, 0x10, 0x80, 0xde, 0x80, 0xe9, 0x60, 0xd3, - 0xf3, 0x42, 0xf9, 0x58, 0x7f, 0xb8, 0x82, 0xd1, 0x9e, 0xf9, 0x29, 0x47, 0xdf, 0xc2, 0x77, 0x67, - 0x47, 0x45, 0x8e, 0x93, 0xb4, 0xf4, 0x3f, 0x12, 0x9f, 0x7f, 0x8c, 0xad, 0x72, 0x82, 0xac, 0xef, - 0x5d, 0x29, 0xd6, 0xa7, 0x64, 0x07, 0x4e, 0xb0, 0xbf, 0x7a, 0xbc, 0xf0, 0xa5, 0xdd, 0x3c, 0xb1, - 0x60, 0xff, 0xae, 0xf8, 0x4c, 0x99, 0xbd, 0xa0, 0x0f, 0xd3, 0x8e, 0x9a, 0xa2, 0x4e, 0xac, 0xdc, - 0x52, 0xd9, 0xed, 0xe4, 0xeb, 0x83, 0x44, 0x31, 0x4e, 0x12, 0xa0, 0x0c, 0x34, 0xfa, 0x3a, 0x9e, - 0x24, 0xbf, 0x16, 0xfb, 0x87, 0xae, 0xa9, 0x00, 0x9c, 0xac, 0xa7, 0x7f, 0xbd, 0x06, 0x0f, 0xf3, - 0xbe, 0x33, 0x1b, 0x47, 0x8b, 0xf4, 0x89, 0x6b, 0x11, 0xd7, 0xdc, 0x65, 0x02, 0xb6, 0xe5, 0x75, - 0xd1, 0xa7, 0x35, 0x18, 0x27, 0xae, 0xd5, 0xf7, 0x6c, 0x37, 0xba, 0xa2, 0x78, 0xb5, 0x42, 0x02, - 0x88, 0x02, 0x32, 0x4b, 0x82, 0x82, 0x08, 0x2c, 0x29, 0x7e, 0x61, 0x49, 0x19, 0xed, 0xc0, 0x48, - 0xdf, 0xf7, 0xd6, 0x23, 0xe5, 0xf2, 0x95, 0x7b, 0xdf, 0x85, 0x35, 0x8a, 0x9e, 0x4f, 0x2f, 0xfb, - 0x17, 0x73, 0x82, 0x3a, 0x86, 0x77, 0x1e, 0xa9, 0xeb, 0xc7, 0x11, 0xfc, 0x6f, 0x80, 0x7e, 0x78, - 0x5f, 0x8e, 0x83, 0xf0, 0x25, 0x78, 0x44, 0x41, 0xb8, 0xb4, 0x43, 0x35, 0x91, 0xa6, 0xd1, 0x37, - 0x4c, 0xaa, 0x59, 0xb3, 0x97, 0xc9, 0xdc, 0xf6, 0x7e, 0x0c, 0x94, 0x9f, 0x1d, 0x86, 0xba, 0x82, - 0x33, 0xe1, 0xc1, 0x13, 0xb1, 0x97, 0xaf, 0x6a, 0x30, 0x69, 0xb8, 0xae, 0x17, 0x1a, 0x6a, 0xfa, - 0x4f, 0x52, 0x75, 0x72, 0xf2, 0x68, 0x2d, 0x2c, 0xc6, 0x74, 0x52, 0x37, 0xbc, 0x0a, 0x04, 0xab, - 0xdd, 0x39, 0xc0, 0x97, 0xa7, 0x76, 0xa2, 0xbe, 0x3c, 0xe8, 0x13, 0x11, 0x0f, 0xe1, 0xda, 0xd1, - 0x87, 0xee, 0xc7, 0x00, 0x31, 0x9e, 0x94, 0x6f, 0xb7, 0x38, 0xff, 0x3c, 0xcc, 0xa6, 0x87, 0xef, - 0x58, 0xb6, 0x84, 0xef, 0x0c, 0x25, 0xd6, 0x57, 0x21, 0xf9, 0x23, 0x98, 0x6b, 0xbe, 0x91, 0x5a, - 0x32, 0xfc, 0xe8, 0x7d, 0xed, 0xbe, 0x8d, 0xc8, 0xbd, 0x5d, 0x37, 0x27, 0xec, 0x03, 0x56, 0x75, - 0xde, 0x9a, 0x70, 0x4e, 0x19, 0x23, 0x76, 0x45, 0xda, 0xdc, 0x24, 0xe6, 0xd6, 0xb1, 0xac, 0x14, - 0x0d, 0xaa, 0x3b, 0x4a, 0x24, 0x4a, 0x7a, 0xa0, 0xc7, 0x60, 0x6c, 0xdb, 0x0e, 0xec, 0x28, 0x64, - 0x86, 0x82, 0xe3, 0x65, 0x5e, 0x8c, 0x23, 0xb8, 0xbe, 0x02, 0x97, 0x14, 0x1c, 0xb9, 0xcf, 0x74, - 0x8f, 0xd3, 0xa5, 0xbf, 0x3d, 0x16, 0x1d, 0xb9, 0xe2, 0x0d, 0xd3, 0x77, 0x35, 0x78, 0x90, 0x14, - 0x71, 0x3d, 0x71, 0x6c, 0x55, 0xde, 0x75, 0x85, 0x6c, 0x55, 0xc4, 0x23, 0x2c, 0x02, 0xe3, 0xe2, - 0xae, 0xa1, 0x3b, 0x89, 0xcc, 0x56, 0xb5, 0x4a, 0xd6, 0x8e, 0x9c, 0x39, 0x3a, 0x28, 0xaf, 0x15, - 0xfa, 0x4d, 0x0d, 0xce, 0x38, 0x39, 0xfb, 0x46, 0x08, 0x89, 0x37, 0xef, 0xc7, 0x9e, 0xe4, 0x57, - 0x4c, 0x79, 0x10, 0x9c, 0xdb, 0x17, 0xf4, 0x37, 0x0a, 0xdf, 0x90, 0x8f, 0x54, 0x48, 0xde, 0x7a, - 0xd8, 0x62, 0x2c, 0xf1, 0x9c, 0xfc, 0x13, 0x30, 0xe9, 0xc5, 0x1b, 0x4c, 0xbc, 0xfb, 0xbf, 0x5e, - 0xb5, 0x77, 0xca, 0x9e, 0xe5, 0x97, 0xf6, 0x4a, 0x01, 0x56, 0x09, 0xa2, 0x37, 0x35, 0x40, 0x56, - 0x46, 0x92, 0x10, 0x8e, 0x03, 0xf8, 0xde, 0xcb, 0x4b, 0xfc, 0x96, 0x32, 0x5b, 0x8e, 0x73, 0x7a, - 0xa1, 0xff, 0xd3, 0x31, 0xae, 0xd4, 0xb1, 0xeb, 0x19, 0x13, 0x46, 0xd7, 0x99, 0x5d, 0x44, 0x6c, - 0xcc, 0xf2, 0x56, 0x18, 0x6e, 0x5e, 0xe1, 0x56, 0x0b, 0xfe, 0x3f, 0x16, 0xa8, 0xd1, 0x02, 0xc0, - 0xba, 0xe3, 0x99, 0x5b, 0xcd, 0x76, 0x0b, 0x47, 0xf2, 0x30, 0xdb, 0x0c, 0x0d, 0x59, 0x8a, 0x95, - 0x1a, 0xe8, 0xc3, 0x30, 0x64, 0x49, 0x55, 0xfa, 0xd9, 0x2a, 0x56, 0x84, 0xd8, 0x7f, 0xbf, 0xb5, - 0xda, 0xc1, 0x14, 0x2b, 0xf2, 0x60, 0xdc, 0x15, 0x7a, 0x93, 0xd8, 0x5c, 0xe5, 0x93, 0xa8, 0x49, - 0x05, 0x4c, 0xea, 0x7d, 0x51, 0x09, 0x96, 0x44, 0x28, 0x41, 0x69, 0x18, 0x19, 0xa9, 0x48, 0x50, - 0x5a, 0x45, 0x0e, 0xb2, 0x59, 0xad, 0xa9, 0x36, 0x8e, 0xd1, 0xa3, 0xdb, 0x38, 0xa6, 0x0b, 0xed, - 0x1b, 0x1b, 0x30, 0x1a, 0x1a, 0xb6, 0x1b, 0x46, 0xde, 0x9d, 0xcf, 0x97, 0xfe, 0x80, 0x9b, 0x14, - 0x4d, 0xac, 0xdf, 0xb1, 0x9f, 0x01, 0x16, 0xd8, 0xe9, 0x6a, 0xdc, 0x66, 0xb9, 0x26, 0x45, 0xe0, - 0xd2, 0xf2, 0xab, 0x91, 0xa7, 0xac, 0xe4, 0xab, 0x91, 0xff, 0x8f, 0x05, 0x6a, 0xb4, 0x45, 0xb5, - 0x76, 0x71, 0x71, 0x3d, 0x51, 0x39, 0x8b, 0x9e, 0xb8, 0xb5, 0x16, 0xaf, 0x00, 0xc4, 0x75, 0xb5, - 0x24, 0x80, 0x4c, 0x18, 0x13, 0x66, 0x32, 0x91, 0xbc, 0xe0, 0xd9, 0x2a, 0x09, 0x64, 0xa2, 0x4c, - 0xac, 0xfc, 0x69, 0x76, 0x84, 0x59, 0xff, 0xa3, 0x61, 0x6e, 0xe1, 0x14, 0x0e, 0x42, 0x3e, 0x28, - 0x09, 0xfa, 0x85, 0x1e, 0xf0, 0x7c, 0xd9, 0xf4, 0xcc, 0x1c, 0x4d, 0x22, 0x5f, 0x4d, 0xf4, 0x86, - 0x55, 0xa1, 0x82, 0xba, 0x30, 0x1e, 0x21, 0xab, 0x64, 0x32, 0x8e, 0x52, 0x85, 0xf1, 0x01, 0x95, - 0x89, 0xc3, 0x24, 0x72, 0xd4, 0xcc, 0x7b, 0x73, 0xa4, 0x44, 0xdc, 0x3b, 0xd2, 0x7b, 0xa3, 0x7c, - 0x17, 0xaa, 0xe1, 0x52, 0x2e, 0x54, 0xcf, 0xc1, 0x29, 0x71, 0x59, 0xdd, 0xb6, 0x08, 0xbb, 0x3e, - 0x15, 0x8e, 0xd6, 0xcc, 0x91, 0xa1, 0x99, 0x04, 0xe1, 0x74, 0x5d, 0xf4, 0x4d, 0x0d, 0x1e, 0xe1, - 0x4e, 0xde, 0x4d, 0x7a, 0x94, 0xb1, 0x2c, 0xa0, 0x24, 0x4e, 0x3b, 0x1a, 0xbb, 0x17, 0x8d, 0x1e, - 0xdb, 0xbd, 0xe8, 0xd1, 0xfd, 0xbd, 0xfa, 0x23, 0xcd, 0x23, 0xe0, 0xc6, 0x47, 0xea, 0x81, 0x7e, - 0x1d, 0x26, 0xe4, 0x16, 0x46, 0x0f, 0x2b, 0xa2, 0x6f, 0xcc, 0x65, 0xaf, 0x93, 0x5d, 0x2e, 0x07, - 0xd7, 0x13, 0x72, 0x30, 0x57, 0xe5, 0x5f, 0xa6, 0x05, 0x42, 0x24, 0xd6, 0xff, 0xa3, 0xc6, 0xd7, - 0xac, 0xc8, 0x5c, 0x6b, 0xc0, 0x64, 0x8f, 0x07, 0x1b, 0x64, 0x2f, 0x04, 0xb5, 0xf2, 0x6f, 0x13, - 0x57, 0x62, 0x34, 0x58, 0xc5, 0x89, 0x76, 0xb2, 0xe9, 0x95, 0xaf, 0x56, 0xe4, 0x2f, 0x47, 0xce, - 0xb2, 0x8c, 0xb2, 0x6d, 0xa8, 0x8c, 0x1d, 0x39, 0x46, 0xa6, 0xf2, 0xd9, 0x66, 0x9c, 0x23, 0x0f, - 0xcd, 0x40, 0xa8, 0x7f, 0xaf, 0x06, 0xb9, 0xa9, 0x5d, 0x90, 0x0e, 0xa3, 0xdc, 0x5d, 0x5f, 0x4d, - 0x3c, 0xcd, 0x7d, 0xf9, 0xb1, 0x80, 0xa0, 0x1b, 0x5c, 0xc5, 0x72, 0x2d, 0x16, 0x33, 0x27, 0x9e, - 0x7a, 0xf5, 0x65, 0xc8, 0x52, 0x5e, 0x05, 0x9c, 0xdf, 0x0e, 0x6d, 0x03, 0xea, 0x19, 0x3b, 0x69, - 0x6c, 0x15, 0x52, 0x1b, 0xac, 0x64, 0xb0, 0xe1, 0x1c, 0x0a, 0x74, 0x2f, 0x1a, 0xa6, 0x49, 0xfa, - 0x21, 0xb1, 0xf8, 0x27, 0x46, 0x4f, 0xf0, 0xd9, 0x5e, 0x5c, 0x4c, 0x82, 0x70, 0xba, 0xae, 0xfe, - 0x9d, 0x1a, 0x8c, 0x30, 0x2b, 0xea, 0x5b, 0xc4, 0xa9, 0x88, 0xf5, 0xb5, 0xf0, 0x82, 0x6d, 0x33, - 0x75, 0xc1, 0xf6, 0x62, 0x05, 0x1a, 0x07, 0xdf, 0xb0, 0x7d, 0x08, 0xce, 0xb1, 0x6a, 0x8b, 0x16, - 0x13, 0xc7, 0x03, 0x62, 0x2d, 0x5a, 0x16, 0x7b, 0xf3, 0x76, 0xb8, 0x0d, 0xe2, 0x61, 0x18, 0x1a, - 0xf8, 0x4e, 0xfa, 0xb5, 0xe5, 0x2d, 0xbc, 0x8c, 0x69, 0xb9, 0xfe, 0x79, 0x0d, 0x66, 0x19, 0xee, - 0xa6, 0x4f, 0x18, 0xcb, 0x34, 0x9c, 0x00, 0xdd, 0x86, 0x71, 0x5f, 0x28, 0xe2, 0x62, 0x76, 0x56, - 0xca, 0x7f, 0x9b, 0x82, 0x18, 0x0b, 0xa4, 0x22, 0x2b, 0x90, 0xf8, 0x85, 0x25, 0x31, 0xfd, 0x4f, - 0x47, 0x61, 0xbe, 0xa8, 0x11, 0xfa, 0xa2, 0x06, 0xe7, 0xcc, 0x98, 0x83, 0x2e, 0x0e, 0xc2, 0x4d, - 0xcf, 0xb7, 0x43, 0x9b, 0x04, 0x95, 0x64, 0xeb, 0xe6, 0xa2, 0xec, 0x16, 0x8b, 0x69, 0xd1, 0xcc, - 0x25, 0x81, 0x0b, 0x48, 0xa3, 0x8f, 0x03, 0x6c, 0xc5, 0x81, 0xb4, 0x6a, 0x15, 0xd2, 0x35, 0xb3, - 0x0f, 0x57, 0xa2, 0x6d, 0x45, 0xbd, 0x62, 0x92, 0xbc, 0x52, 0xae, 0xd0, 0x63, 0xc9, 0xa2, 0x83, - 0xcd, 0xeb, 0x64, 0xb7, 0x6f, 0xd8, 0x7e, 0xa5, 0x64, 0xd1, 0x7c, 0x1d, 0x76, 0xae, 0x09, 0x5c, - 0x49, 0xea, 0x4a, 0xb9, 0x42, 0x0f, 0xfd, 0x45, 0x0d, 0xa6, 0xf9, 0x89, 0x2d, 0xdc, 0x89, 0x04, - 0x0b, 0xba, 0x51, 0xbe, 0x07, 0x37, 0x54, 0x74, 0xb2, 0x13, 0xcc, 0xb8, 0x9f, 0x04, 0x25, 0x09, - 0xa3, 0x2f, 0x6b, 0x30, 0x97, 0x4c, 0xb2, 0x75, 0x9d, 0xec, 0x0a, 0x75, 0xa0, 0x53, 0x61, 0x40, - 0xd2, 0x28, 0x65, 0x97, 0x98, 0x30, 0x94, 0x05, 0x67, 0x3b, 0xc1, 0xba, 0x46, 0x42, 0xd3, 0x12, - 0xc9, 0xdb, 0x6d, 0xcf, 0xa5, 0x5d, 0x1b, 0xad, 0xda, 0xb5, 0xa5, 0x9b, 0xcd, 0x56, 0x02, 0x65, - 0xb2, 0x6b, 0x59, 0x70, 0xb6, 0x13, 0xfa, 0x3f, 0xae, 0xc1, 0xc5, 0x83, 0x91, 0xa1, 0x17, 0x22, - 0x0f, 0x76, 0xce, 0x62, 0x1e, 0x4b, 0x7b, 0xb0, 0xcf, 0xe7, 0x6c, 0xd5, 0x84, 0x37, 0xbb, 0x0f, - 0xc8, 0x31, 0x82, 0x90, 0xa7, 0xb6, 0x8c, 0x04, 0x9e, 0x12, 0xce, 0xec, 0xec, 0x9c, 0x5a, 0xce, - 0x60, 0xc2, 0x39, 0xd8, 0x23, 0x9a, 0x4d, 0xaf, 0xd7, 0x77, 0x88, 0xa4, 0x59, 0x2b, 0x4f, 0x33, - 0x89, 0x09, 0xe7, 0x60, 0xd7, 0x7f, 0xb5, 0x06, 0x0f, 0x14, 0x6c, 0xe1, 0x82, 0x31, 0xd0, 0xfe, - 0xaf, 0x1b, 0x83, 0x1f, 0x68, 0x30, 0xc1, 0xc6, 0xe0, 0xad, 0xe2, 0x67, 0xcb, 0x3a, 0x5b, 0x70, - 0xa3, 0xfd, 0xbb, 0x1a, 0xcc, 0x65, 0xc2, 0x55, 0x1d, 0xe1, 0xc4, 0x3d, 0xc1, 0x7b, 0xdd, 0x77, - 0xa6, 0xf3, 0x62, 0x4f, 0xe6, 0xe6, 0xc4, 0x7e, 0x05, 0xa6, 0x13, 0xf7, 0xd9, 0xf2, 0x91, 0xbe, - 0x96, 0xfb, 0x48, 0x5f, 0x7d, 0x83, 0x5f, 0x3b, 0xf8, 0x0d, 0x7e, 0x0d, 0xce, 0x17, 0xb3, 0xed, - 0x3f, 0x37, 0xcb, 0x5e, 0x6e, 0xfd, 0xec, 0xf9, 0xf9, 0xe7, 0x66, 0x0c, 0xe4, 0x51, 0x52, 0x78, - 0x64, 0xfe, 0xbf, 0xa3, 0xe4, 0xa8, 0x63, 0xf9, 0xdd, 0x53, 0x82, 0x8d, 0x32, 0x13, 0xf2, 0x47, - 0x61, 0x94, 0xc5, 0x9f, 0x88, 0xc4, 0xdc, 0x5f, 0x2c, 0x1f, 0xd8, 0x22, 0xe0, 0xea, 0x29, 0xff, - 0x1f, 0x0b, 0xb4, 0xa8, 0x05, 0xb3, 0xa6, 0xe3, 0x0d, 0x2c, 0x91, 0x35, 0x6c, 0x35, 0xd6, 0x84, - 0x65, 0x40, 0xb0, 0x66, 0x0a, 0x8e, 0x33, 0x2d, 0x50, 0x47, 0x35, 0x2a, 0x3f, 0x55, 0xd6, 0x65, - 0x8a, 0x07, 0xc1, 0x96, 0xc6, 0x64, 0x1f, 0x80, 0x44, 0x1c, 0x31, 0x7a, 0x77, 0xf3, 0x7c, 0xc9, - 0x60, 0x67, 0x92, 0xb1, 0x46, 0x7a, 0xa3, 0x2c, 0x0a, 0xb0, 0x42, 0x05, 0x05, 0x30, 0xb9, 0x19, - 0xe7, 0x89, 0x17, 0x32, 0xe4, 0x8b, 0x55, 0x93, 0xd4, 0x73, 0xe3, 0x89, 0x52, 0x80, 0x55, 0x2a, - 0x28, 0xe0, 0x6a, 0x04, 0x37, 0xa3, 0x55, 0xca, 0xd8, 0x1b, 0x1b, 0xe8, 0xe2, 0x2f, 0x8d, 0xcb, - 0xb0, 0x42, 0x86, 0x12, 0x75, 0x65, 0x18, 0x19, 0x71, 0x7b, 0x52, 0x8e, 0x68, 0x1c, 0x8d, 0x26, - 0x26, 0x1a, 0x97, 0x61, 0x85, 0x0c, 0x1d, 0xde, 0x5e, 0x1c, 0x3c, 0x48, 0x18, 0xa2, 0x5f, 0xac, - 0x1a, 0xc5, 0x49, 0xd8, 0xa6, 0xe2, 0x02, 0xac, 0x52, 0x41, 0x1e, 0x40, 0x4f, 0x06, 0x15, 0x12, - 0x56, 0xe9, 0x72, 0x5f, 0x1a, 0xc7, 0x26, 0xe2, 0xaa, 0x51, 0xfc, 0x1b, 0x2b, 0x24, 0xd0, 0x96, - 0x72, 0x29, 0x01, 0x15, 0xec, 0xb5, 0x47, 0xba, 0x90, 0x78, 0x5f, 0x6c, 0xe9, 0x9a, 0x64, 0xfb, - 0xf6, 0x21, 0xc5, 0xca, 0x75, 0x77, 0xaf, 0x3e, 0xc5, 0x98, 0x49, 0xc6, 0xea, 0x15, 0x7b, 0x85, - 0x4d, 0x1d, 0xe8, 0x15, 0x76, 0x95, 0xaa, 0x56, 0x8a, 0x43, 0x35, 0x63, 0x10, 0xd3, 0xac, 0x89, - 0x0c, 0x43, 0xd5, 0x49, 0x57, 0xc0, 0xd9, 0x36, 0x5c, 0xb0, 0x20, 0x16, 0x6b, 0x3f, 0xa3, 0x0a, - 0x16, 0xbc, 0x0c, 0x4b, 0x28, 0xba, 0x0d, 0x53, 0x81, 0xe2, 0x66, 0x26, 0x32, 0x52, 0x55, 0xb9, - 0x47, 0x10, 0x3e, 0x66, 0x2c, 0x3a, 0x87, 0x5a, 0x82, 0x13, 0x84, 0xd0, 0xc7, 0x61, 0x22, 0xb2, - 0x7b, 0x06, 0xf3, 0xb3, 0x15, 0x1e, 0x41, 0xe5, 0xc7, 0x92, 0x8a, 0x0d, 0x99, 0x11, 0x28, 0xc0, - 0x31, 0x41, 0xb4, 0x9d, 0x7c, 0x08, 0x3d, 0x77, 0x6f, 0x9e, 0x7e, 0x4a, 0x27, 0x90, 0xa2, 0x47, - 0xd0, 0xa8, 0x09, 0x73, 0x64, 0xa7, 0xef, 0x05, 0x03, 0x9f, 0xb0, 0x50, 0x76, 0x6c, 0x86, 0x50, - 0x6c, 0xf4, 0x5f, 0x4a, 0x03, 0x71, 0xb6, 0x3e, 0xfa, 0x8c, 0x06, 0xb3, 0x3c, 0xa5, 0x17, 0x3d, - 0xce, 0x3c, 0x97, 0xb8, 0x61, 0xc0, 0x72, 0x56, 0x95, 0x7d, 0xa8, 0xd4, 0x49, 0x21, 0xe3, 0x59, - 0x18, 0xd2, 0xa5, 0x38, 0x43, 0x94, 0xae, 0x1e, 0xf5, 0xf5, 0x28, 0xcb, 0x7d, 0x55, 0x76, 0xf5, - 0xa8, 0x4f, 0x53, 0xf9, 0xea, 0x51, 0x4b, 0x70, 0x82, 0x90, 0xfe, 0x2f, 0x34, 0x00, 0x69, 0xd0, - 0x23, 0x27, 0x60, 0xe5, 0x24, 0x09, 0x2b, 0x67, 0xb3, 0x9a, 0x05, 0x92, 0x14, 0xbe, 0x9f, 0xfc, - 0x03, 0x0d, 0x66, 0xe2, 0x6a, 0x27, 0xa0, 0xdc, 0x59, 0x49, 0xe5, 0xee, 0x85, 0x8a, 0x1f, 0x56, - 0xa0, 0xe1, 0xfd, 0xef, 0x9a, 0xfa, 0x59, 0x4c, 0xd8, 0xba, 0xad, 0xdc, 0xb3, 0xf1, 0x9b, 0xbd, - 0x76, 0xa5, 0x7b, 0x36, 0xf5, 0x55, 0x5a, 0xfc, 0xc5, 0x39, 0xf7, 0x6e, 0x9f, 0x4c, 0x48, 0x3a, - 0x55, 0x9e, 0x5f, 0x4a, 0xb1, 0x26, 0xa2, 0xcd, 0x87, 0xe0, 0x30, 0xb1, 0xc7, 0x57, 0x39, 0x1f, - 0xf7, 0xdd, 0x5b, 0x2c, 0xf9, 0xe4, 0x4f, 0xf9, 0xe4, 0x03, 0xf9, 0x9d, 0xfe, 0xed, 0x19, 0x98, - 0x54, 0x0c, 0xe0, 0x3f, 0x95, 0x9b, 0xd5, 0x01, 0x4c, 0x9a, 0x32, 0xd4, 0x6b, 0x34, 0xf2, 0x55, - 0x89, 0x4a, 0x96, 0x1b, 0x47, 0x91, 0x0d, 0xb0, 0x4a, 0x87, 0x0a, 0x08, 0x72, 0xa1, 0x0d, 0xdd, - 0x8b, 0x0b, 0xdd, 0x83, 0x16, 0xd7, 0x7b, 0x01, 0x22, 0x61, 0x93, 0x58, 0x22, 0x70, 0x98, 0x4c, - 0x95, 0xd0, 0x0e, 0xae, 0x49, 0x18, 0x56, 0xea, 0xa1, 0x37, 0x60, 0xda, 0x51, 0x23, 0x87, 0x0b, - 0x51, 0xb8, 0x9c, 0x43, 0x7d, 0x22, 0x06, 0x39, 0x37, 0xe8, 0x26, 0x8a, 0x70, 0x92, 0x16, 0xda, - 0x82, 0x09, 0x27, 0x4a, 0x0b, 0x20, 0xe4, 0xe1, 0xe7, 0x4b, 0x13, 0x66, 0x58, 0xb8, 0xff, 0x85, - 0xfc, 0x89, 0x63, 0xfc, 0x74, 0xdd, 0xc9, 0x1f, 0xd5, 0x7c, 0x30, 0x62, 0x6a, 0x72, 0xdd, 0xc9, - 0xa2, 0x00, 0x2b, 0x54, 0x0a, 0xee, 0xc8, 0xc7, 0x4b, 0xdd, 0x91, 0x0f, 0xe0, 0xb4, 0x4f, 0x42, - 0x7f, 0xb7, 0xb9, 0x6b, 0xb2, 0xf4, 0x1c, 0x7e, 0xc8, 0xb4, 0xd4, 0x89, 0x72, 0x11, 0x43, 0x70, - 0x16, 0x15, 0xce, 0xc3, 0x8f, 0x2e, 0xc0, 0x30, 0x15, 0x9e, 0x44, 0x44, 0x2e, 0x66, 0x46, 0xa2, - 0xa2, 0x15, 0x66, 0xa5, 0xe8, 0x7d, 0x30, 0x19, 0x12, 0x73, 0xd3, 0xb5, 0x4d, 0xc3, 0x69, 0xb7, - 0x84, 0x64, 0x1a, 0xcb, 0x22, 0x31, 0x08, 0xab, 0xf5, 0x50, 0x03, 0x86, 0x06, 0xb6, 0x25, 0x44, - 0xd2, 0x9f, 0x97, 0x17, 0x56, 0xed, 0xd6, 0xdd, 0xbd, 0xfa, 0xdb, 0x63, 0x7f, 0x53, 0xf9, 0x25, - 0x97, 0xfb, 0x5b, 0xdd, 0xcb, 0xe1, 0x6e, 0x9f, 0x04, 0x0b, 0xb7, 0xda, 0x2d, 0x4c, 0x1b, 0xe7, - 0xf9, 0x0c, 0x4c, 0x1f, 0xc3, 0x67, 0xe0, 0x4d, 0x0d, 0x4e, 0x1b, 0xe9, 0xbb, 0x36, 0x12, 0xcc, - 0xcf, 0x54, 0xe0, 0xca, 0xf9, 0x17, 0x78, 0x71, 0xf0, 0xd5, 0xc5, 0x2c, 0x3d, 0x9c, 0xd7, 0x09, - 0xe4, 0x03, 0xea, 0xd9, 0x5d, 0x99, 0x04, 0x40, 0x4c, 0xf5, 0xa9, 0x72, 0x06, 0x89, 0x95, 0x0c, - 0x26, 0x9c, 0x83, 0x1d, 0xed, 0xc0, 0xa4, 0x19, 0xdb, 0x66, 0x58, 0x2a, 0xd6, 0xd2, 0x42, 0x5d, - 0xea, 0x7a, 0x4f, 0x64, 0xf9, 0x56, 0x2c, 0x3f, 0x2a, 0x29, 0xf4, 0x39, 0x0d, 0xce, 0xd3, 0x4d, - 0xa3, 0x28, 0xce, 0x22, 0x37, 0x05, 0xfb, 0xec, 0xb9, 0x63, 0x7f, 0x36, 0x4b, 0xef, 0xba, 0x5c, - 0x88, 0x11, 0x1f, 0x40, 0x8d, 0x85, 0xe6, 0x70, 0x92, 0xc9, 0x3a, 0x98, 0x94, 0x5c, 0xf6, 0x29, - 0x5e, 0x2a, 0xf1, 0x07, 0x5f, 0x9d, 0xa9, 0x42, 0x9c, 0xa6, 0xa8, 0xff, 0x57, 0x0d, 0x32, 0x42, - 0x30, 0x32, 0x61, 0x8c, 0xe2, 0x6e, 0xad, 0x76, 0x84, 0x34, 0xf6, 0x6c, 0xc9, 0x13, 0x8c, 0xe1, - 0xe0, 0x76, 0x64, 0xf1, 0x03, 0x47, 0x98, 0xa9, 0x5c, 0xed, 0x2a, 0xa1, 0x36, 0x85, 0xd4, 0x59, - 0x4e, 0x4a, 0x50, 0x63, 0x76, 0x72, 0xb9, 0x5a, 0x2d, 0xc1, 0x09, 0x42, 0xfa, 0x32, 0x40, 0xac, - 0xbb, 0x54, 0x76, 0x8d, 0xf9, 0x0f, 0x23, 0x70, 0xb6, 0xaa, 0x5b, 0x36, 0x4b, 0xa8, 0xc0, 0x12, - 0x5e, 0x2f, 0x6e, 0x84, 0xc4, 0xbf, 0x71, 0x63, 0x45, 0x26, 0x03, 0x2e, 0x99, 0xd1, 0x21, 0x4e, - 0x99, 0x9e, 0xc1, 0x88, 0x0b, 0x28, 0x31, 0xbd, 0x4d, 0xe4, 0x7a, 0xc4, 0x54, 0xc6, 0x63, 0x99, - 0x7e, 0xf9, 0x03, 0x7e, 0xae, 0xb7, 0xa5, 0x81, 0x38, 0x5b, 0x3f, 0x8d, 0x84, 0x27, 0xdf, 0xa6, - 0x32, 0x82, 0x96, 0x45, 0xc2, 0x33, 0x70, 0x67, 0xeb, 0xab, 0x48, 0xf8, 0x4c, 0xd1, 0xbd, 0x31, - 0x92, 0x45, 0x22, 0x81, 0x38, 0x5b, 0x1f, 0x59, 0x70, 0xc1, 0x27, 0xa6, 0xd7, 0xeb, 0x11, 0xd7, - 0xe2, 0xd9, 0x8a, 0x0c, 0xbf, 0x6b, 0xbb, 0x57, 0x7c, 0x83, 0x55, 0x64, 0x62, 0x80, 0xd6, 0xb8, - 0xb4, 0xbf, 0x57, 0xbf, 0x80, 0x0f, 0xa8, 0x87, 0x0f, 0xc4, 0x82, 0x7a, 0x70, 0x6a, 0xc0, 0xe2, - 0x6b, 0xfb, 0x6d, 0x37, 0x24, 0xfe, 0xb6, 0xe1, 0x94, 0xcc, 0x2a, 0xcf, 0xb6, 0xeb, 0xad, 0x24, - 0x2a, 0x9c, 0xc6, 0x8d, 0x76, 0xe9, 0xd9, 0x2c, 0xba, 0xa3, 0x90, 0x1c, 0x2f, 0x9f, 0x72, 0x04, - 0x67, 0xd1, 0xe1, 0x3c, 0x1a, 0xfa, 0x5f, 0xd3, 0x40, 0x38, 0x67, 0xd2, 0xa3, 0x5a, 0xb9, 0xb6, - 0x1a, 0x4f, 0x5d, 0x59, 0x5d, 0x10, 0x8f, 0x15, 0x6b, 0x31, 0x54, 0x79, 0xa8, 0xf8, 0x2e, 0x25, - 0x32, 0xc4, 0x44, 0x2c, 0xd7, 0x70, 0xcc, 0x4a, 0x8c, 0xfa, 0xff, 0x0f, 0xc6, 0xfa, 0xbe, 0xdd, - 0x33, 0xfc, 0x5d, 0x21, 0x62, 0x32, 0x81, 0x4b, 0x5c, 0x2b, 0xd3, 0xbd, 0x23, 0xa0, 0xfa, 0x0f, - 0x35, 0x10, 0xad, 0x59, 0x3a, 0x85, 0x23, 0x45, 0xd5, 0x3f, 0xd4, 0x45, 0x4b, 0xc9, 0x06, 0x30, - 0x54, 0x98, 0x0d, 0xe0, 0x3e, 0x05, 0xc9, 0xff, 0xae, 0x06, 0xa7, 0x92, 0x61, 0x3a, 0x02, 0xf4, - 0x4e, 0x18, 0x13, 0x01, 0xbd, 0x44, 0x30, 0x1e, 0xfe, 0xd6, 0x58, 0xa4, 0xce, 0x8e, 0x60, 0x49, - 0x83, 0x53, 0x15, 0xb5, 0x2f, 0x3f, 0x5c, 0xc8, 0x21, 0x0a, 0xd8, 0xde, 0x0c, 0x8c, 0xf2, 0x58, - 0x50, 0xf4, 0x70, 0xcb, 0x79, 0xdf, 0xb6, 0x5c, 0x21, 0xe6, 0x54, 0x99, 0xe7, 0x48, 0x6a, 0x04, - 0xe2, 0xda, 0x81, 0x11, 0x88, 0x3b, 0x3c, 0x01, 0x49, 0x95, 0xfb, 0x86, 0x26, 0x6e, 0x8b, 0x2c, - 0xa4, 0x51, 0xf2, 0x91, 0x41, 0xc2, 0x0c, 0x3f, 0x5c, 0x41, 0xce, 0xe1, 0x43, 0xa0, 0x18, 0xe3, - 0x67, 0x0e, 0x30, 0xc4, 0xc7, 0xb1, 0x76, 0x46, 0x2a, 0xf8, 0x4d, 0x8a, 0x51, 0x3f, 0x42, 0xac, - 0x1d, 0xb9, 0x9b, 0x46, 0x0b, 0x77, 0x53, 0x17, 0xc6, 0xc4, 0x7e, 0x10, 0xdc, 0xf1, 0xd9, 0x2a, - 0xb9, 0x3c, 0x94, 0x48, 0x91, 0xbc, 0x00, 0x47, 0xd8, 0xe9, 0x99, 0xdb, 0x33, 0x76, 0xec, 0xde, - 0xa0, 0xc7, 0x78, 0xe2, 0x88, 0x5a, 0x95, 0x15, 0xe3, 0x08, 0xce, 0xaa, 0x72, 0x87, 0x53, 0xa6, - 0xda, 0xa8, 0x55, 0x45, 0x22, 0xed, 0x08, 0x8e, 0x5e, 0x85, 0xf1, 0x9e, 0xb1, 0xd3, 0x19, 0xf8, - 0x5d, 0x22, 0xec, 0xef, 0xc5, 0xa6, 0xb7, 0x41, 0x68, 0x3b, 0x0b, 0x54, 0x29, 0x0f, 0xfd, 0x85, - 0xb6, 0x1b, 0xde, 0xf0, 0x3b, 0xa1, 0x2f, 0x53, 0x05, 0xac, 0x08, 0x2c, 0x58, 0xe2, 0x43, 0x0e, - 0xcc, 0xf4, 0x8c, 0x9d, 0x5b, 0xae, 0x21, 0xf3, 0xfd, 0x4e, 0x96, 0xa4, 0xc0, 0xee, 0xf8, 0x57, - 0x12, 0xb8, 0x70, 0x0a, 0x77, 0x8e, 0x3b, 0xc1, 0xd4, 0xfd, 0x72, 0x27, 0x58, 0x94, 0xcf, 0x10, - 0xa6, 0xd9, 0x32, 0x7c, 0x30, 0xef, 0x55, 0xc3, 0xc1, 0x2f, 0x0c, 0x3e, 0x2a, 0x5f, 0x18, 0xcc, - 0x54, 0xb8, 0xac, 0x3c, 0xe0, 0x75, 0xc1, 0x36, 0x4c, 0x5a, 0x46, 0x68, 0xf0, 0xd2, 0x60, 0xfe, - 0x54, 0x05, 0xfb, 0x60, 0x4b, 0xe2, 0x51, 0xf2, 0xc6, 0xc5, 0xb8, 0xb1, 0x4a, 0x08, 0xdd, 0xe0, - 0xf9, 0x60, 0x1d, 0x12, 0xc6, 0x55, 0x98, 0x99, 0x7c, 0x96, 0x5f, 0x84, 0x44, 0xd9, 0x5b, 0x33, - 0x15, 0x70, 0x7e, 0xbb, 0xf8, 0xad, 0xfd, 0x5c, 0xfe, 0x5b, 0x7b, 0xf4, 0x97, 0xf2, 0xec, 0xe9, - 0xa8, 0xc2, 0x53, 0x2b, 0xce, 0x1f, 0x4a, 0x5b, 0xd5, 0xff, 0x8e, 0x06, 0xf3, 0xbd, 0x82, 0x04, - 0x6b, 0xc2, 0xce, 0x7f, 0xab, 0x0a, 0x8f, 0x28, 0xcc, 0xda, 0xd6, 0x78, 0x64, 0x7f, 0xaf, 0x7e, - 0x68, 0x6e, 0x37, 0x5c, 0xd8, 0xb9, 0xaa, 0x4f, 0x4b, 0xab, 0x44, 0x26, 0xfb, 0x2d, 0x0d, 0x66, - 0xd3, 0x47, 0x81, 0x9a, 0xc1, 0x56, 0xbb, 0xcf, 0x19, 0x6c, 0x15, 0x0f, 0xa1, 0xda, 0x01, 0x1e, - 0x42, 0xcf, 0xc1, 0xb9, 0xfc, 0xd5, 0x41, 0x85, 0x33, 0x96, 0x37, 0x5a, 0x28, 0x44, 0x71, 0x66, - 0x0c, 0x5a, 0x88, 0x39, 0x4c, 0xff, 0x04, 0xa4, 0x23, 0x4a, 0xa2, 0x2d, 0x98, 0x08, 0x82, 0x4d, - 0x1e, 0x27, 0x4c, 0x7c, 0x65, 0x49, 0x27, 0xec, 0x28, 0xda, 0x98, 0x78, 0x3f, 0x15, 0xfd, 0xc4, - 0x31, 0xfe, 0xc6, 0x87, 0xbe, 0xff, 0x93, 0x8b, 0x6f, 0xfb, 0xfd, 0x9f, 0x5c, 0x7c, 0xdb, 0x8f, - 0x7e, 0x72, 0xf1, 0x6d, 0xbf, 0xb2, 0x7f, 0x51, 0xfb, 0xfe, 0xfe, 0x45, 0xed, 0xf7, 0xf7, 0x2f, - 0x6a, 0x3f, 0xda, 0xbf, 0xa8, 0xfd, 0xdb, 0xfd, 0x8b, 0xda, 0x5f, 0xf9, 0x77, 0x17, 0xdf, 0xf6, - 0xea, 0x93, 0x31, 0xf9, 0xcb, 0x11, 0xd5, 0xf8, 0x9f, 0xfe, 0x56, 0xf7, 0x32, 0x25, 0x1f, 0x3d, - 0x64, 0xe6, 0xe4, 0xff, 0x4f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xba, 0x9f, 0x49, 0xf5, 0x7f, 0xd9, - 0x00, 0x00, + 0x75, 0x18, 0xac, 0xbe, 0x7c, 0x1f, 0x3e, 0x66, 0xa6, 0xe6, 0xb1, 0xdc, 0x99, 0xd9, 0xb9, 0xab, + 0xd6, 0x4a, 0xdf, 0xee, 0x27, 0x99, 0xe3, 0xdd, 0x95, 0xec, 0xdd, 0xf5, 0xbe, 0x78, 0xef, 0xe5, + 0xcc, 0x5c, 0x0f, 0xc9, 0xe1, 0xd6, 0x9d, 0xd9, 0x95, 0x56, 0x86, 0xa5, 0x66, 0x77, 0xf1, 0xb2, + 0x97, 0x7d, 0xbb, 0xef, 0x76, 0xf7, 0xe5, 0x90, 0xb3, 0xb2, 0x64, 0x2b, 0xb2, 0x15, 0xad, 0x20, + 0x25, 0x81, 0x10, 0x48, 0x58, 0x09, 0xb2, 0x64, 0x38, 0x81, 0x02, 0xc4, 0x91, 0x21, 0xc0, 0x0a, + 0xf2, 0x40, 0x7e, 0x28, 0x3f, 0x2c, 0xc8, 0x81, 0xe2, 0x18, 0x4e, 0xa0, 0x18, 0x09, 0x15, 0x31, + 0x8e, 0xed, 0x04, 0x31, 0x92, 0x20, 0xc8, 0x8f, 0x0c, 0x9c, 0x20, 0xa8, 0x47, 0x57, 0x57, 0xbf, + 0x2e, 0xc9, 0xee, 0x19, 0x4a, 0x0b, 0xfb, 0x17, 0x79, 0xeb, 0x54, 0x9d, 0x53, 0x5d, 0x8f, 0x53, + 0xe7, 0x9c, 0x3a, 0x75, 0x0e, 0x34, 0xbb, 0x76, 0xb8, 0x39, 0x58, 0x5f, 0x30, 0xbd, 0xde, 0xe5, + 0xae, 0xe1, 0x5b, 0xc4, 0x25, 0x7e, 0xfc, 0x4f, 0x7f, 0xab, 0x7b, 0xd9, 0xe8, 0xdb, 0xc1, 0x65, + 0xd3, 0xf3, 0xc9, 0xe5, 0xed, 0xc7, 0x0d, 0xa7, 0xbf, 0x69, 0x3c, 0x7e, 0xb9, 0x4b, 0x81, 0x46, + 0x48, 0xac, 0x85, 0xbe, 0xef, 0x85, 0x1e, 0x7a, 0x32, 0x46, 0xb2, 0x10, 0xb5, 0x8d, 0xff, 0xe9, + 0x6f, 0x75, 0x17, 0x28, 0x92, 0x05, 0x8a, 0x64, 0x21, 0x42, 0x72, 0xbe, 0x71, 0x24, 0xca, 0xeb, + 0x24, 0xcc, 0x12, 0x3e, 0xff, 0x53, 0x2a, 0x0e, 0xaf, 0xeb, 0x5d, 0x66, 0xc5, 0xeb, 0x83, 0x0d, + 0xf6, 0x8b, 0xfd, 0x60, 0xff, 0x89, 0xea, 0x8f, 0x6d, 0x3d, 0x15, 0x2c, 0xd8, 0x1e, 0x45, 0x7c, + 0xd9, 0x18, 0x84, 0x5e, 0x60, 0x1a, 0x8e, 0xed, 0x76, 0x2f, 0x6f, 0x67, 0x31, 0xeb, 0x4a, 0x55, + 0xd1, 0x85, 0xa1, 0x75, 0xfc, 0x75, 0xc3, 0xcc, 0xab, 0xf3, 0xfe, 0xb8, 0x4e, 0xcf, 0x30, 0x37, + 0x6d, 0x97, 0xf8, 0xbb, 0xd1, 0xc7, 0x5d, 0xf6, 0x49, 0xe0, 0x0d, 0x7c, 0x93, 0x1c, 0xa9, 0x55, + 0x70, 0xb9, 0x47, 0x42, 0x23, 0x8f, 0xd6, 0xe5, 0xa2, 0x56, 0xfe, 0xc0, 0x0d, 0xed, 0x5e, 0x96, + 0xcc, 0xcf, 0x1c, 0xd4, 0x20, 0x30, 0x37, 0x49, 0xcf, 0xc8, 0xb4, 0x7b, 0xb2, 0xa8, 0xdd, 0x20, + 0xb4, 0x9d, 0xcb, 0xb6, 0x1b, 0x06, 0xa1, 0x9f, 0x6e, 0xa4, 0x3f, 0x01, 0x63, 0x8b, 0x96, 0xe5, + 0xb9, 0xe8, 0x31, 0x98, 0x20, 0xae, 0xb1, 0xee, 0x10, 0x6b, 0x5e, 0x7b, 0x58, 0x7b, 0x74, 0xb2, + 0x71, 0xe2, 0xbb, 0x7b, 0xf5, 0x77, 0xec, 0xef, 0xd5, 0x27, 0x96, 0x78, 0x31, 0x8e, 0xe0, 0xfa, + 0x17, 0x6b, 0x30, 0xce, 0x1a, 0x05, 0xe8, 0x0b, 0x1a, 0x9c, 0xde, 0x1a, 0xac, 0x13, 0xdf, 0x25, + 0x21, 0x09, 0x5a, 0x46, 0xb0, 0xb9, 0xee, 0x19, 0x3e, 0x47, 0x31, 0xfd, 0xc4, 0xb5, 0x85, 0x12, + 0x4b, 0x70, 0xe1, 0x7a, 0x16, 0x5f, 0xe3, 0x81, 0xfd, 0xbd, 0xfa, 0xe9, 0x1c, 0x00, 0xce, 0xa3, + 0x8e, 0x6e, 0xc3, 0x8c, 0xdb, 0xb5, 0xdd, 0x9d, 0xb6, 0xdb, 0xf5, 0x49, 0x10, 0xcc, 0xd7, 0x58, + 0x6f, 0x16, 0x4b, 0xf5, 0x66, 0x55, 0x41, 0xd4, 0x38, 0xb9, 0xbf, 0x57, 0x9f, 0x51, 0x4b, 0x70, + 0x82, 0x90, 0xfe, 0xdb, 0x1a, 0x9c, 0x58, 0xb4, 0x7a, 0x76, 0x10, 0xd8, 0x9e, 0xbb, 0xe6, 0x0c, + 0xba, 0xb6, 0x8b, 0x1e, 0x86, 0x51, 0xd7, 0xe8, 0x11, 0x36, 0x24, 0x53, 0x8d, 0x19, 0x31, 0xaa, + 0xa3, 0xab, 0x46, 0x8f, 0x60, 0x06, 0x41, 0x2f, 0xc1, 0xb8, 0xe9, 0xb9, 0x1b, 0x76, 0x57, 0x74, + 0xf4, 0xa7, 0x16, 0xf8, 0x4c, 0x2e, 0xa8, 0x33, 0xc9, 0xfa, 0x27, 0x56, 0xc0, 0x02, 0x36, 0x6e, + 0x2f, 0xed, 0x84, 0xc4, 0xa5, 0x64, 0x1a, 0xb0, 0xbf, 0x57, 0x1f, 0x6f, 0x32, 0x04, 0x58, 0x20, + 0x42, 0x8f, 0xc2, 0xa4, 0x65, 0x07, 0x7c, 0x3a, 0x47, 0xd8, 0x74, 0xce, 0xec, 0xef, 0xd5, 0x27, + 0x5b, 0xa2, 0x0c, 0x4b, 0xa8, 0x7e, 0x05, 0x26, 0x17, 0x1d, 0xe2, 0x87, 0xb6, 0xdb, 0x45, 0xcf, + 0xc0, 0x1c, 0xe9, 0x19, 0xb6, 0x83, 0x89, 0x49, 0xec, 0x6d, 0xe2, 0x07, 0xf3, 0xda, 0xc3, 0x23, + 0x8f, 0x4e, 0x35, 0xd0, 0xfe, 0x5e, 0x7d, 0x6e, 0x29, 0x01, 0xc1, 0xa9, 0x9a, 0xfa, 0x27, 0x35, + 0x98, 0x5e, 0x1c, 0x58, 0x76, 0xc8, 0x7b, 0x82, 0x02, 0x98, 0x36, 0xe8, 0xcf, 0x35, 0xcf, 0xb1, + 0xcd, 0x5d, 0xb1, 0x20, 0x5e, 0x2c, 0x35, 0x05, 0x8b, 0x31, 0x9e, 0xc6, 0x89, 0xfd, 0xbd, 0xfa, + 0xb4, 0x52, 0x80, 0x55, 0x2a, 0xfa, 0x26, 0xa8, 0x30, 0xf4, 0x21, 0x98, 0xe1, 0xe3, 0xb1, 0x62, + 0xf4, 0x31, 0xd9, 0x10, 0x9d, 0x78, 0x97, 0x32, 0xbc, 0x11, 0xa5, 0x85, 0x1b, 0xeb, 0xaf, 0x11, + 0x33, 0xc4, 0x64, 0x83, 0xf8, 0xc4, 0x35, 0x09, 0x9f, 0xe9, 0xa6, 0xd2, 0x18, 0x27, 0x50, 0xe9, + 0x3f, 0xd4, 0xe0, 0xe4, 0xe2, 0xb6, 0x61, 0x3b, 0xc6, 0xba, 0xed, 0xd8, 0xe1, 0xee, 0xab, 0x9e, + 0x4b, 0x0e, 0x31, 0xd5, 0xb7, 0xe0, 0x81, 0x81, 0x6b, 0xf0, 0x76, 0x0e, 0x59, 0xe1, 0x93, 0x7b, + 0x73, 0xb7, 0x4f, 0xe8, 0x22, 0xa5, 0x43, 0x7d, 0x61, 0x7f, 0xaf, 0xfe, 0xc0, 0xad, 0xfc, 0x2a, + 0xb8, 0xa8, 0x2d, 0xc2, 0x70, 0x4e, 0x01, 0xbd, 0xec, 0x39, 0x83, 0x9e, 0xc0, 0x3a, 0xc2, 0xb0, + 0x9e, 0xdf, 0xdf, 0xab, 0x9f, 0xbb, 0x95, 0x5b, 0x03, 0x17, 0xb4, 0xd4, 0xbf, 0x57, 0x83, 0x99, + 0x86, 0x61, 0x6e, 0x0d, 0xfa, 0x8d, 0x81, 0xb9, 0x45, 0x42, 0xf4, 0x51, 0x98, 0xa4, 0x3c, 0xce, + 0x32, 0x42, 0x43, 0x8c, 0xe4, 0x4f, 0x17, 0x2e, 0x54, 0x36, 0x8b, 0xb4, 0x76, 0x3c, 0xb6, 0x2b, + 0x24, 0x34, 0x1a, 0x48, 0x8c, 0x09, 0xc4, 0x65, 0x58, 0x62, 0x45, 0x5d, 0x18, 0x0d, 0xfa, 0xc4, + 0x14, 0xdb, 0x60, 0xa9, 0xd4, 0x62, 0x51, 0xbb, 0xdc, 0xe9, 0x13, 0x33, 0x9e, 0x06, 0xfa, 0x0b, + 0x33, 0x02, 0xc8, 0x83, 0xf1, 0x20, 0x34, 0xc2, 0x41, 0xc0, 0x36, 0xc7, 0xf4, 0x13, 0x57, 0xab, + 0x93, 0x62, 0xe8, 0x1a, 0x73, 0x82, 0xd8, 0x38, 0xff, 0x8d, 0x05, 0x19, 0xfd, 0x07, 0x1a, 0x9c, + 0x54, 0xab, 0x2f, 0xdb, 0x41, 0x88, 0x7e, 0x21, 0x33, 0xa0, 0x0b, 0x87, 0x1b, 0x50, 0xda, 0x9a, + 0x0d, 0xe7, 0x49, 0x41, 0x6e, 0x32, 0x2a, 0x51, 0x06, 0x73, 0x03, 0xc6, 0xec, 0x90, 0xf4, 0xf8, + 0xc2, 0x2a, 0xcb, 0xfd, 0xd4, 0x3e, 0x37, 0x66, 0x05, 0xb5, 0xb1, 0x36, 0xc5, 0x8b, 0x39, 0x7a, + 0xfd, 0xa3, 0x70, 0x46, 0xad, 0xb5, 0xe6, 0x7b, 0xdb, 0xb6, 0x45, 0x7c, 0xba, 0x19, 0xc2, 0xdd, + 0x7e, 0x66, 0x33, 0xd0, 0xc5, 0x85, 0x19, 0x04, 0xbd, 0x07, 0xc6, 0x7d, 0xd2, 0xb5, 0x3d, 0x97, + 0x4d, 0xf8, 0x54, 0x3c, 0x78, 0x98, 0x95, 0x62, 0x01, 0xd5, 0xff, 0x4b, 0x2d, 0x39, 0x78, 0x74, + 0x22, 0xd1, 0x6d, 0x98, 0xec, 0x0b, 0x52, 0x62, 0xf0, 0xda, 0x95, 0xbf, 0x30, 0xea, 0x7b, 0x3c, + 0xae, 0x51, 0x09, 0x96, 0xc4, 0x90, 0x0d, 0x73, 0xd1, 0xff, 0xcd, 0x0a, 0x5c, 0x9b, 0xf1, 0xd4, + 0xb5, 0x04, 0x22, 0x9c, 0x42, 0x8c, 0x6e, 0xc2, 0x54, 0x40, 0x4c, 0x9f, 0x50, 0xbe, 0x24, 0x56, + 0x6a, 0x2e, 0xf3, 0xea, 0x44, 0x95, 0x04, 0xf3, 0x3a, 0x25, 0xba, 0x3f, 0x25, 0x01, 0x38, 0x46, + 0x84, 0x2e, 0xc2, 0x68, 0x40, 0x88, 0x35, 0x3f, 0xca, 0x06, 0x7d, 0x92, 0x6d, 0x0d, 0x42, 0x2c, + 0xcc, 0x4a, 0xf5, 0xdf, 0x18, 0x05, 0x94, 0x5d, 0xd8, 0xea, 0x57, 0xf3, 0x12, 0x31, 0xe8, 0x55, + 0xbe, 0x5a, 0xec, 0x91, 0x14, 0x62, 0xf4, 0x06, 0xcc, 0x3a, 0x46, 0x10, 0xde, 0xe8, 0x53, 0x41, + 0x25, 0x5a, 0x1d, 0xd3, 0x4f, 0x34, 0x4a, 0x4d, 0xef, 0xb2, 0x8a, 0xa9, 0x71, 0x6a, 0x7f, 0xaf, + 0x3e, 0x9b, 0x28, 0xc2, 0x49, 0x5a, 0x68, 0x0b, 0xa6, 0x68, 0xc1, 0x92, 0xef, 0x7b, 0xbe, 0x18, + 0xf2, 0xe7, 0x4b, 0x13, 0x66, 0x58, 0x1a, 0xb3, 0x74, 0x26, 0xe4, 0x4f, 0x1c, 0xe3, 0x47, 0x3f, + 0x0f, 0xc8, 0x5b, 0x0f, 0x88, 0xbf, 0x4d, 0xac, 0xab, 0x5c, 0x2e, 0xa3, 0x9f, 0x4b, 0xe7, 0x65, + 0xa4, 0x71, 0x5e, 0xcc, 0x21, 0xba, 0x91, 0xa9, 0x81, 0x73, 0x5a, 0xa1, 0x2d, 0x40, 0x52, 0xb6, + 0x93, 0xd3, 0x3e, 0x3f, 0x76, 0xf8, 0x45, 0x73, 0x8e, 0x12, 0xbb, 0x9a, 0x41, 0x81, 0x73, 0xd0, + 0xea, 0xbf, 0x5b, 0x83, 0x69, 0xbe, 0x48, 0x96, 0xdc, 0xd0, 0xdf, 0x3d, 0x86, 0xa3, 0x61, 0x23, + 0x71, 0x34, 0xb4, 0x2a, 0x6c, 0x75, 0xd6, 0xe3, 0xc2, 0x93, 0xc1, 0x4d, 0x9d, 0x0c, 0x57, 0x2a, + 0x53, 0x1a, 0x7e, 0x30, 0xfc, 0x1b, 0x0d, 0x4e, 0x28, 0xb5, 0x8f, 0xe1, 0x5c, 0x20, 0xc9, 0x73, + 0xe1, 0xc5, 0xaa, 0x1f, 0x58, 0x70, 0x2c, 0x98, 0x89, 0xef, 0x62, 0x2c, 0xfb, 0x09, 0x80, 0x75, + 0xc6, 0x53, 0x56, 0x63, 0x21, 0x49, 0xce, 0x7a, 0x43, 0x42, 0xb0, 0x52, 0x4b, 0x32, 0xab, 0x5a, + 0x2e, 0xb3, 0xfa, 0xd3, 0x11, 0x38, 0x95, 0x19, 0xeb, 0x2c, 0x03, 0xd1, 0x7e, 0x5c, 0x0c, 0xa4, + 0xf6, 0x63, 0x61, 0x20, 0x23, 0xa5, 0x18, 0xc8, 0xa3, 0x30, 0x49, 0xc7, 0x94, 0xcd, 0x0d, 0x3f, + 0x1a, 0x98, 0xca, 0xd0, 0x11, 0x65, 0x58, 0x42, 0x91, 0x0f, 0xa8, 0x67, 0x77, 0x79, 0xb3, 0x4e, + 0x68, 0xf8, 0xe1, 0x4d, 0xbb, 0x47, 0x04, 0xab, 0xf9, 0xff, 0x0f, 0xb7, 0x52, 0x69, 0x0b, 0xce, + 0x71, 0x56, 0x32, 0x98, 0x70, 0x0e, 0x76, 0xfd, 0x0f, 0x46, 0x01, 0x9a, 0x8b, 0xd8, 0x0b, 0x79, + 0x67, 0x5f, 0x80, 0xb1, 0xfe, 0xa6, 0x11, 0x44, 0xab, 0xe8, 0xb1, 0x68, 0x09, 0xae, 0xd1, 0xc2, + 0xbb, 0x7b, 0xf5, 0xf9, 0xa6, 0x4f, 0x2c, 0xe2, 0x86, 0xb6, 0xe1, 0x04, 0x51, 0x23, 0x06, 0xc3, + 0xbc, 0x1d, 0xfd, 0x06, 0x3a, 0x8c, 0x4d, 0xaf, 0xd7, 0x77, 0x08, 0x85, 0xb2, 0x6f, 0xa8, 0x95, + 0xfb, 0x86, 0xe5, 0x0c, 0x26, 0x9c, 0x83, 0x3d, 0xa2, 0xd9, 0x76, 0xed, 0xd0, 0x36, 0x24, 0xcd, + 0x91, 0xf2, 0x34, 0x93, 0x98, 0x70, 0x0e, 0x76, 0xf4, 0xa6, 0x06, 0xe7, 0x93, 0xc5, 0x57, 0x6c, + 0xd7, 0x0e, 0x36, 0x89, 0xc5, 0x88, 0x8f, 0x1e, 0x99, 0xf8, 0xa5, 0xfd, 0xbd, 0xfa, 0xf9, 0xe5, + 0x42, 0x8c, 0x78, 0x08, 0x35, 0xf4, 0x39, 0x0d, 0x2e, 0xa4, 0xc6, 0xc5, 0xb7, 0xbb, 0x5d, 0xe2, + 0x8b, 0xde, 0x1c, 0x7d, 0x09, 0xd5, 0xf7, 0xf7, 0xea, 0x17, 0x96, 0x8b, 0x51, 0xe2, 0x61, 0xf4, + 0xf4, 0x7f, 0xae, 0xc1, 0x48, 0x13, 0xb7, 0xd1, 0x7b, 0x13, 0x7a, 0xdb, 0x03, 0xaa, 0xde, 0x76, + 0x77, 0xaf, 0x3e, 0xd1, 0xc4, 0x6d, 0x45, 0x85, 0xfb, 0xbc, 0x06, 0xa7, 0x4c, 0xcf, 0x0d, 0x0d, + 0xda, 0x2f, 0xcc, 0x85, 0x9c, 0x88, 0x99, 0x96, 0x53, 0x59, 0x9a, 0x29, 0x6c, 0x8d, 0x07, 0x45, + 0x0f, 0x4e, 0xa5, 0x21, 0x01, 0xce, 0x92, 0xd6, 0xff, 0xad, 0x06, 0x33, 0x4d, 0xc7, 0x1b, 0x58, + 0x6b, 0xbe, 0xb7, 0x61, 0x3b, 0xe4, 0x6d, 0xa2, 0xa8, 0xa9, 0x5d, 0x2e, 0x3a, 0x8e, 0x99, 0xde, + 0xa4, 0x56, 0x7c, 0xbb, 0xe8, 0x4d, 0x6a, 0x9f, 0x0b, 0x0e, 0xc8, 0x2f, 0x4f, 0x24, 0x3f, 0x8d, + 0x1d, 0x91, 0x8f, 0xc2, 0xa4, 0x69, 0x34, 0x06, 0xae, 0xe5, 0x48, 0xc5, 0x89, 0x76, 0xb3, 0xb9, + 0xc8, 0xcb, 0xb0, 0x84, 0xa2, 0x37, 0x00, 0x62, 0xd3, 0x97, 0x98, 0x88, 0xab, 0x15, 0xed, 0x6d, + 0x1d, 0x12, 0x86, 0xb6, 0xdb, 0x0d, 0xe2, 0xd9, 0x8f, 0x61, 0x58, 0x21, 0x87, 0x3e, 0x0e, 0xb3, + 0x62, 0x98, 0xdb, 0x3d, 0xa3, 0x2b, 0xcc, 0x0c, 0x65, 0xc7, 0x6a, 0x45, 0xc1, 0xd4, 0x38, 0x2b, + 0x28, 0xcf, 0xaa, 0xa5, 0x01, 0x4e, 0x92, 0x43, 0x77, 0x60, 0xa6, 0xa7, 0xda, 0x4e, 0x46, 0x2b, + 0x88, 0x32, 0x8a, 0x21, 0xa5, 0x71, 0x46, 0x50, 0x9f, 0x49, 0x98, 0x5d, 0x12, 0xb4, 0x72, 0xf4, + 0xbf, 0xb1, 0xfb, 0xa5, 0xff, 0x6d, 0xc0, 0x04, 0x57, 0x81, 0x83, 0xf9, 0x71, 0xf6, 0x85, 0x3f, + 0x57, 0xea, 0x0b, 0xb9, 0x3a, 0x1d, 0x1b, 0x74, 0xf9, 0xef, 0x00, 0x47, 0xc8, 0xd1, 0x6d, 0x98, + 0xa1, 0x87, 0x7b, 0x87, 0x38, 0xc4, 0x0c, 0x3d, 0x7f, 0x7e, 0xa2, 0x82, 0xbd, 0xb4, 0xa3, 0x20, + 0xe2, 0x56, 0x34, 0xb5, 0x04, 0x27, 0x08, 0x49, 0x1b, 0xc1, 0x64, 0xa1, 0x8d, 0x60, 0x1b, 0xa6, + 0xb7, 0x15, 0x73, 0xd6, 0x14, 0x1b, 0x86, 0x17, 0x4a, 0xf5, 0x2c, 0x36, 0x6e, 0x35, 0x4e, 0x0b, + 0x4a, 0xd3, 0xaa, 0x21, 0x4c, 0x25, 0xa4, 0xef, 0x4d, 0xc2, 0xa9, 0xa6, 0x33, 0x08, 0x42, 0xe2, + 0x2f, 0x8a, 0x3b, 0x09, 0xe2, 0xa3, 0x4f, 0x6a, 0x70, 0x8e, 0xfd, 0xdb, 0xf2, 0x6e, 0xbb, 0x2d, + 0xe2, 0x18, 0xbb, 0x8b, 0x1b, 0xb4, 0x86, 0x65, 0x1d, 0x8d, 0x11, 0xb5, 0x06, 0x42, 0x9e, 0x64, + 0x86, 0xb9, 0x4e, 0x2e, 0x46, 0x5c, 0x40, 0x09, 0x7d, 0x56, 0x83, 0x07, 0x73, 0x40, 0x2d, 0xe2, + 0x90, 0x30, 0x12, 0x61, 0x8e, 0xda, 0x8f, 0x87, 0xf6, 0xf7, 0xea, 0x0f, 0x76, 0x8a, 0x90, 0xe2, + 0x62, 0x7a, 0xf4, 0x38, 0x3c, 0x9f, 0x03, 0xbd, 0x62, 0xd8, 0xce, 0xc0, 0x8f, 0xa4, 0x9b, 0xa3, + 0x76, 0x87, 0x09, 0x19, 0x9d, 0x42, 0xac, 0x78, 0x08, 0x45, 0xf4, 0x09, 0x38, 0x2b, 0xa1, 0xb7, + 0x5c, 0x97, 0x10, 0x2b, 0x21, 0xeb, 0x1c, 0xb5, 0x2b, 0x0f, 0xee, 0xef, 0xd5, 0xcf, 0x76, 0xf2, + 0x10, 0xe2, 0x7c, 0x3a, 0xa8, 0x0b, 0x0f, 0xc5, 0x80, 0xd0, 0x76, 0xec, 0x3b, 0x5c, 0x1c, 0xdb, + 0xf4, 0x49, 0xb0, 0xe9, 0x39, 0x16, 0xe3, 0x17, 0x5a, 0xe3, 0x9d, 0xfb, 0x7b, 0xf5, 0x87, 0x3a, + 0xc3, 0x2a, 0xe2, 0xe1, 0x78, 0x90, 0x05, 0x33, 0x81, 0x69, 0xb8, 0x6d, 0x37, 0x24, 0xfe, 0xb6, + 0xe1, 0xcc, 0x8f, 0x97, 0xfa, 0x40, 0xbe, 0x47, 0x15, 0x3c, 0x38, 0x81, 0x15, 0x3d, 0x05, 0x93, + 0x64, 0xa7, 0x6f, 0xb8, 0x16, 0xe1, 0x8c, 0x61, 0xaa, 0x71, 0x91, 0x1e, 0x49, 0x4b, 0xa2, 0xec, + 0xee, 0x5e, 0x7d, 0x26, 0xfa, 0x7f, 0xc5, 0xb3, 0x08, 0x96, 0xb5, 0xd1, 0xc7, 0xe0, 0x4c, 0xcf, + 0xd8, 0x59, 0xf5, 0x2c, 0xc2, 0xf8, 0x5c, 0x10, 0x49, 0xbc, 0x93, 0xa5, 0xfa, 0x39, 0xbf, 0xbf, + 0x57, 0x3f, 0xb3, 0x92, 0x83, 0x0f, 0xe7, 0x52, 0xa1, 0xd3, 0xd0, 0x33, 0x76, 0xae, 0xfa, 0x86, + 0x49, 0x36, 0x06, 0xce, 0x4d, 0xe2, 0xf7, 0x6c, 0x97, 0x2b, 0x15, 0xc4, 0xf4, 0x5c, 0x8b, 0xf2, + 0x12, 0xed, 0xd1, 0x31, 0x3e, 0x0d, 0x2b, 0xc3, 0x2a, 0xe2, 0xe1, 0x78, 0xd0, 0xfb, 0x61, 0xc6, + 0xee, 0xba, 0x9e, 0x4f, 0x6e, 0x1a, 0xb6, 0x1b, 0x06, 0xf3, 0xc0, 0x4c, 0xee, 0x6c, 0x58, 0xdb, + 0x4a, 0x39, 0x4e, 0xd4, 0xd2, 0xf7, 0x46, 0x60, 0xaa, 0xe9, 0xb9, 0x96, 0xcd, 0xf4, 0x99, 0xc7, + 0x13, 0xc6, 0xd2, 0x87, 0x54, 0x46, 0x78, 0x77, 0xaf, 0x3e, 0x2b, 0x2b, 0x2a, 0x9c, 0xf1, 0x69, + 0x69, 0xa9, 0xe0, 0xba, 0xf1, 0x3b, 0x93, 0x16, 0x86, 0xbb, 0x7b, 0xf5, 0x13, 0xb2, 0x59, 0xd2, + 0xe8, 0x80, 0xb6, 0xb9, 0x22, 0x72, 0xd3, 0x37, 0xdc, 0xc0, 0xae, 0xa0, 0x88, 0x48, 0x15, 0x73, + 0x39, 0x83, 0x0d, 0xe7, 0x50, 0x40, 0xaf, 0xc1, 0x1c, 0x2d, 0xbd, 0xd5, 0xb7, 0x8c, 0x90, 0x94, + 0xd4, 0x3f, 0xce, 0x09, 0x9a, 0x73, 0xcb, 0x09, 0x4c, 0x38, 0x85, 0x99, 0x1b, 0x97, 0x8d, 0xc0, + 0x73, 0xd9, 0x76, 0x4b, 0x18, 0x97, 0x69, 0x29, 0x16, 0x50, 0xf4, 0x18, 0x4c, 0xf4, 0x48, 0x10, + 0x18, 0x5d, 0xc2, 0xf6, 0xcf, 0x54, 0x7c, 0x4c, 0xae, 0xf0, 0x62, 0x1c, 0xc1, 0xd1, 0xfb, 0x60, + 0xcc, 0xf4, 0x2c, 0x12, 0xcc, 0x4f, 0xb0, 0x19, 0xa6, 0x6a, 0xd8, 0x58, 0x93, 0x16, 0xdc, 0xdd, + 0xab, 0x4f, 0x31, 0x85, 0x9c, 0xfe, 0xc2, 0xbc, 0x92, 0xfe, 0xeb, 0x54, 0x74, 0x4d, 0x09, 0xeb, + 0x45, 0x37, 0x44, 0x7c, 0x5a, 0x99, 0x7a, 0x71, 0x7c, 0xe6, 0x65, 0xfd, 0x4b, 0x54, 0x71, 0xf0, + 0xdc, 0xd0, 0xf7, 0x9c, 0x35, 0xc7, 0x70, 0x09, 0xfa, 0xb4, 0x06, 0x27, 0x37, 0xed, 0xee, 0xa6, + 0x7a, 0xb1, 0x25, 0x0e, 0xb6, 0x72, 0x32, 0xfe, 0xb5, 0x14, 0xb2, 0xc6, 0x99, 0xfd, 0xbd, 0xfa, + 0xc9, 0x74, 0x29, 0xce, 0x10, 0xd5, 0x3f, 0x53, 0x83, 0x33, 0xa2, 0x6b, 0x0e, 0x3d, 0x6a, 0xfa, + 0x8e, 0xb7, 0xdb, 0x23, 0xee, 0x71, 0x5c, 0x42, 0x45, 0x32, 0x49, 0xad, 0x50, 0x26, 0xe9, 0x65, + 0xa6, 0x68, 0xa4, 0xcc, 0x14, 0xc9, 0x95, 0x7c, 0xc0, 0x34, 0xfd, 0x99, 0x06, 0xf3, 0x79, 0x63, + 0x71, 0x0c, 0xba, 0x90, 0x9b, 0xd4, 0x85, 0xda, 0xa5, 0xd5, 0xdb, 0x74, 0xdf, 0x0b, 0x74, 0xa2, + 0x3f, 0xab, 0xc1, 0xb9, 0xb8, 0x7a, 0xdb, 0x0d, 0x42, 0xc3, 0x71, 0xb8, 0xc5, 0xe7, 0xfe, 0x4f, + 0xfc, 0xeb, 0x09, 0xa5, 0xf6, 0x46, 0xc5, 0x6f, 0x55, 0x3b, 0x5f, 0x68, 0x6d, 0xde, 0x4d, 0x59, + 0x9b, 0x5f, 0xba, 0x97, 0x44, 0x87, 0x1b, 0x9e, 0xff, 0xab, 0x06, 0xe7, 0xf3, 0x1b, 0x1e, 0xc3, + 0xba, 0xea, 0x27, 0xd7, 0xd5, 0xf5, 0x7b, 0xf8, 0xd9, 0x05, 0x2b, 0xeb, 0x5b, 0xb5, 0xa2, 0xcf, + 0x65, 0x7a, 0xf7, 0x06, 0x9c, 0xa0, 0xca, 0x50, 0x10, 0x0a, 0x03, 0xe9, 0xd1, 0x9c, 0x05, 0x22, + 0x8b, 0xd1, 0x09, 0x9c, 0xc4, 0x81, 0xd3, 0x48, 0xd1, 0x2a, 0x4c, 0x50, 0x05, 0x88, 0xe2, 0xaf, + 0x1d, 0x1e, 0xbf, 0x3c, 0x92, 0x3a, 0xbc, 0x2d, 0x8e, 0x90, 0xa0, 0x5f, 0x80, 0x59, 0x4b, 0x6e, + 0xaa, 0x03, 0x6e, 0x09, 0xd3, 0x58, 0x99, 0x2d, 0xbb, 0xa5, 0xb6, 0xc6, 0x49, 0x64, 0xfa, 0xff, + 0xd1, 0xe0, 0xe2, 0xb0, 0xc5, 0x85, 0x7c, 0x00, 0x33, 0x92, 0x31, 0xb8, 0xb3, 0x48, 0x59, 0x6b, + 0xb7, 0x14, 0x55, 0xe2, 0x4d, 0x2a, 0x8b, 0x02, 0xac, 0x50, 0xc9, 0xb9, 0x89, 0xac, 0xdd, 0xa7, + 0x9b, 0x48, 0xfd, 0xcf, 0x35, 0x95, 0x1d, 0xa9, 0x93, 0xfb, 0xb6, 0x63, 0x47, 0x6a, 0xe7, 0x0b, + 0xad, 0x6d, 0x7f, 0x58, 0x83, 0x87, 0xf3, 0x9b, 0x28, 0x27, 0xf0, 0x8b, 0x30, 0xde, 0xe7, 0x3e, + 0x3d, 0x23, 0xec, 0x84, 0x7c, 0x94, 0x32, 0x17, 0xee, 0x70, 0x73, 0x77, 0xaf, 0x7e, 0x3e, 0x8f, + 0xdb, 0x0b, 0x57, 0x1d, 0xd1, 0x0e, 0xd9, 0x29, 0x73, 0x03, 0x17, 0x02, 0x9f, 0x3c, 0x24, 0x7f, + 0x31, 0xd6, 0x89, 0x73, 0x68, 0x03, 0xc3, 0x27, 0x35, 0x98, 0x4b, 0xac, 0xe9, 0x60, 0x7e, 0x8c, + 0xad, 0xd2, 0x72, 0x97, 0x41, 0x89, 0xdd, 0x12, 0x1f, 0xe0, 0x89, 0xe2, 0x00, 0xa7, 0x28, 0xa6, + 0x58, 0xad, 0x3a, 0xac, 0x6f, 0x3f, 0x56, 0xab, 0xf6, 0xbe, 0x80, 0xd5, 0x7e, 0xb5, 0x56, 0xf4, + 0xb9, 0x8c, 0xd5, 0xee, 0xc0, 0x54, 0xe4, 0x61, 0x19, 0xb1, 0x8c, 0xab, 0x95, 0x3b, 0xc5, 0xf1, + 0xc5, 0x8e, 0x0f, 0x51, 0x49, 0x80, 0x63, 0x62, 0xe8, 0x57, 0x35, 0x80, 0x78, 0x6a, 0xc4, 0xc6, + 0xba, 0x75, 0x0f, 0x07, 0x44, 0x91, 0x6f, 0xe6, 0xe8, 0xbe, 0x56, 0xd6, 0x85, 0x42, 0x58, 0xff, + 0xe6, 0x08, 0xa0, 0x6c, 0xe7, 0xa9, 0xe0, 0xb9, 0x65, 0xbb, 0x56, 0x5a, 0x37, 0xb8, 0x6e, 0xbb, + 0x16, 0x66, 0x90, 0x43, 0x88, 0xa6, 0xcf, 0xc1, 0x89, 0xae, 0xe3, 0xad, 0x1b, 0x8e, 0xb3, 0x2b, + 0xdc, 0x36, 0x85, 0xfb, 0xdf, 0x69, 0x7a, 0x3c, 0x5d, 0x4d, 0x82, 0x70, 0xba, 0x2e, 0xea, 0xc3, + 0x49, 0x9f, 0x6a, 0xb5, 0xa6, 0xed, 0x30, 0x2d, 0xca, 0x1b, 0x84, 0x25, 0xcd, 0x26, 0x4c, 0xd0, + 0xc7, 0x29, 0x5c, 0x38, 0x83, 0x1d, 0xbd, 0x1b, 0x26, 0xfa, 0xbe, 0xdd, 0x33, 0xfc, 0x5d, 0xa6, + 0xa7, 0x4d, 0x36, 0xa6, 0xe9, 0x39, 0xb7, 0xc6, 0x8b, 0x70, 0x04, 0x43, 0xbf, 0x04, 0x53, 0x8e, + 0xbd, 0x41, 0xcc, 0x5d, 0xd3, 0x21, 0xc2, 0xce, 0xb1, 0x76, 0x8f, 0x16, 0xcd, 0x72, 0x84, 0x57, + 0xdc, 0xb3, 0x46, 0x3f, 0x71, 0x4c, 0x51, 0x7f, 0xb3, 0x06, 0x17, 0x86, 0xb4, 0x44, 0x98, 0xae, + 0x69, 0xf1, 0x65, 0x62, 0xfe, 0xde, 0xcf, 0x97, 0xa1, 0x28, 0xbc, 0xbb, 0x57, 0x7f, 0xd7, 0x10, + 0x04, 0x1d, 0xba, 0x80, 0x48, 0x77, 0x17, 0xc7, 0x68, 0x50, 0x1b, 0xc6, 0xad, 0xd8, 0xa4, 0x37, + 0xd5, 0x78, 0x9c, 0xf2, 0x59, 0x6e, 0x74, 0x3b, 0x2c, 0x36, 0x81, 0x00, 0x2d, 0xc3, 0x04, 0xbf, + 0x52, 0x25, 0x82, 0x67, 0x3f, 0xc1, 0xf4, 0x5b, 0x5e, 0x74, 0x58, 0x64, 0x11, 0x0a, 0xfd, 0x7f, + 0x6b, 0x30, 0xd1, 0xf4, 0x7c, 0xd2, 0x5a, 0xed, 0xa0, 0x3b, 0x30, 0xad, 0xb8, 0x6c, 0x0b, 0xf6, + 0x55, 0x76, 0x3b, 0x33, 0x94, 0x8b, 0x31, 0xba, 0xc8, 0xd9, 0x53, 0x16, 0x60, 0x95, 0x18, 0xf2, + 0xe9, 0xa0, 0xdf, 0xf6, 0xed, 0x90, 0x52, 0xae, 0x74, 0x13, 0xc5, 0x29, 0xe3, 0x08, 0x19, 0x5f, + 0x08, 0xf2, 0x27, 0x8e, 0xc9, 0xe8, 0x6b, 0x74, 0xe7, 0xa6, 0xfb, 0x89, 0x9e, 0x81, 0xd1, 0x9e, + 0x67, 0x45, 0x33, 0xff, 0x9e, 0x68, 0x5f, 0xae, 0x78, 0x16, 0x1d, 0xdd, 0x73, 0xd9, 0x16, 0xcc, + 0x50, 0xc6, 0xda, 0xe8, 0xab, 0x70, 0x32, 0x4d, 0x1f, 0x3d, 0x03, 0x73, 0xa6, 0xd7, 0xeb, 0x79, + 0x6e, 0x67, 0xb0, 0xb1, 0x61, 0xef, 0x90, 0x84, 0x1f, 0x6e, 0x33, 0x01, 0xc1, 0xa9, 0x9a, 0xfa, + 0x57, 0x34, 0x18, 0xa1, 0x33, 0xa3, 0xc3, 0xb8, 0xe5, 0xf5, 0x0c, 0xdb, 0x15, 0xbd, 0x62, 0x5e, + 0xc2, 0x2d, 0x56, 0x82, 0x05, 0x04, 0xbd, 0x0e, 0x53, 0x91, 0xc4, 0x53, 0xcd, 0x1d, 0xa4, 0xb5, + 0xda, 0x91, 0xbe, 0x73, 0x92, 0x07, 0x47, 0x25, 0x01, 0x8e, 0xa9, 0xe8, 0x06, 0x9c, 0x6a, 0xad, + 0x76, 0xda, 0xae, 0xe9, 0x0c, 0x2c, 0xb2, 0xb4, 0xc3, 0xfe, 0x50, 0x26, 0x60, 0xf3, 0x12, 0xf1, + 0xa1, 0x8c, 0x09, 0x88, 0x4a, 0x38, 0x82, 0xd1, 0x6a, 0x84, 0xb7, 0x10, 0xce, 0xb2, 0xac, 0x9a, + 0x40, 0x82, 0x23, 0x98, 0xfe, 0x47, 0x35, 0x98, 0x56, 0x3a, 0x84, 0x7a, 0x30, 0xc1, 0xbf, 0x37, + 0xf2, 0x59, 0xbb, 0x52, 0xf6, 0x1b, 0x93, 0xdd, 0xe6, 0xe4, 0xf9, 0x90, 0x06, 0x38, 0xa2, 0xa1, + 0x72, 0xb4, 0xda, 0x10, 0x8e, 0xb6, 0x00, 0xc0, 0x5d, 0xf2, 0x98, 0xc3, 0x05, 0xdf, 0x96, 0xec, + 0xd0, 0xe8, 0xc8, 0x52, 0xac, 0xd4, 0x40, 0x17, 0x05, 0xef, 0x57, 0xbc, 0xf6, 0x14, 0xbe, 0xdf, + 0x85, 0xb1, 0x3b, 0x9e, 0x4b, 0x02, 0x71, 0x17, 0x75, 0xaf, 0xbe, 0x70, 0x8a, 0x1e, 0xee, 0xaf, + 0x52, 0xc4, 0x98, 0xe3, 0xd7, 0xbf, 0xae, 0x01, 0xb4, 0x8c, 0xd0, 0xe0, 0x17, 0x27, 0x87, 0xf0, + 0x78, 0xbe, 0x98, 0x38, 0xb3, 0x26, 0x33, 0x2e, 0xa0, 0xa3, 0x81, 0x7d, 0x27, 0xfa, 0x7e, 0x29, + 0x10, 0x73, 0xec, 0x1d, 0xfb, 0x0e, 0xc1, 0x0c, 0x8e, 0xde, 0x0b, 0x53, 0xc4, 0x35, 0xfd, 0xdd, + 0x7e, 0x28, 0x1c, 0x17, 0x27, 0xf9, 0x26, 0x5d, 0x8a, 0x0a, 0x71, 0x0c, 0xd7, 0x1f, 0x87, 0xa4, + 0x5a, 0x73, 0x70, 0x2f, 0xf5, 0xbb, 0x1a, 0x9c, 0x5c, 0xda, 0xe9, 0xdb, 0x3e, 0xf3, 0x82, 0x26, + 0x3e, 0x55, 0x11, 0xd0, 0x63, 0x30, 0xb1, 0xcd, 0xff, 0x15, 0x2d, 0xa5, 0x1e, 0x26, 0x6a, 0xe0, + 0x08, 0x8e, 0x36, 0x60, 0x8e, 0xb0, 0xe6, 0x4c, 0x0c, 0x30, 0xc2, 0x32, 0xae, 0x24, 0xdc, 0xcb, + 0x3e, 0x81, 0x05, 0xa7, 0xb0, 0xa2, 0x0e, 0xcc, 0x99, 0x8e, 0x11, 0x04, 0xf6, 0x86, 0x6d, 0xc6, + 0xce, 0x3e, 0x53, 0x8d, 0xf7, 0x32, 0xce, 0x90, 0x80, 0xdc, 0xdd, 0xab, 0x9f, 0x15, 0xfd, 0x4c, + 0x02, 0x70, 0x0a, 0x85, 0xfe, 0x56, 0x0d, 0x66, 0x97, 0x76, 0xfa, 0x5e, 0x30, 0xf0, 0x09, 0xab, + 0x7a, 0x0c, 0xda, 0xcd, 0x63, 0x30, 0xb1, 0x69, 0xb8, 0x96, 0x43, 0x7c, 0xb1, 0x32, 0xe4, 0xd8, + 0x5e, 0xe3, 0xc5, 0x38, 0x82, 0xa3, 0x8f, 0x01, 0x04, 0xe6, 0x26, 0xb1, 0x06, 0xec, 0x88, 0xe1, + 0x0a, 0xee, 0x72, 0xa9, 0x05, 0x9e, 0xf8, 0xc8, 0x8e, 0xc4, 0x29, 0xf6, 0x9d, 0xfc, 0x8d, 0x15, + 0x7a, 0xfa, 0x1f, 0x69, 0x70, 0x2a, 0xd1, 0xee, 0x18, 0x64, 0xf6, 0x6e, 0x52, 0x66, 0x6f, 0x54, + 0xff, 0xd8, 0x02, 0x51, 0xfd, 0xcd, 0x1a, 0x3c, 0x50, 0x30, 0x28, 0x99, 0x4b, 0x61, 0xed, 0xb8, + 0x2e, 0x85, 0xb7, 0x61, 0x3a, 0xf4, 0x1c, 0xe1, 0x96, 0x16, 0x8d, 0x41, 0xb9, 0x2b, 0xdf, 0x9b, + 0x12, 0x4f, 0x7c, 0xe5, 0x1b, 0x97, 0x05, 0x58, 0x25, 0xa4, 0x7f, 0x47, 0x83, 0x29, 0x69, 0x1f, + 0x38, 0x84, 0xfb, 0xfa, 0x31, 0x3a, 0x82, 0x1f, 0xfe, 0x39, 0xcf, 0xbf, 0xa8, 0xc1, 0x39, 0x89, + 0x3b, 0x12, 0xe6, 0x3a, 0x21, 0xe5, 0x1d, 0x07, 0xeb, 0x17, 0x17, 0x05, 0x9f, 0x54, 0x78, 0xb5, + 0xc2, 0xc9, 0xe9, 0xc1, 0x36, 0xf0, 0xfb, 0x5e, 0x10, 0xb1, 0x6b, 0x7e, 0xb0, 0xf1, 0x22, 0x1c, + 0xc1, 0xd0, 0x2a, 0x8c, 0x05, 0x94, 0x9e, 0x50, 0x1c, 0x8e, 0x38, 0x1a, 0xec, 0xc4, 0x61, 0xfd, + 0xc5, 0x1c, 0x0d, 0x7a, 0x43, 0xd5, 0x17, 0xb9, 0xf2, 0xfe, 0xf3, 0x47, 0x5b, 0x0c, 0xec, 0x95, + 0xe2, 0x02, 0xfd, 0x12, 0x2b, 0x1a, 0x91, 0x1c, 0x5f, 0xf9, 0x3c, 0x95, 0x51, 0x5f, 0x86, 0x93, + 0xe2, 0x5e, 0x99, 0x2f, 0x1b, 0xd7, 0x24, 0xe8, 0xa9, 0xc4, 0xca, 0x78, 0x24, 0x75, 0x57, 0x77, + 0x26, 0x5d, 0x3f, 0x5e, 0x31, 0x7a, 0x00, 0x93, 0x57, 0x45, 0x27, 0xd1, 0x79, 0xa8, 0xd9, 0xd1, + 0x5c, 0x80, 0xc0, 0x51, 0x6b, 0xb7, 0x70, 0xcd, 0xb6, 0xe4, 0x79, 0x55, 0x2b, 0x3c, 0x55, 0x95, + 0xa3, 0x69, 0x64, 0xf8, 0xd1, 0xa4, 0xff, 0xa7, 0x1a, 0x9c, 0x89, 0xa8, 0x46, 0xdf, 0xd8, 0x12, + 0x17, 0x1d, 0x07, 0x9c, 0xdd, 0x07, 0xeb, 0x9b, 0x37, 0x60, 0x94, 0xf1, 0xc0, 0x52, 0x17, 0x20, + 0x12, 0x21, 0xed, 0x0e, 0x66, 0x88, 0xd0, 0x2f, 0xc1, 0xb8, 0x63, 0xac, 0x13, 0x27, 0xf2, 0xe9, + 0x29, 0xa7, 0x9e, 0xe7, 0x7d, 0x2f, 0xb7, 0x1c, 0x05, 0xdc, 0x67, 0x59, 0x5a, 0xc5, 0x79, 0x21, + 0x16, 0x44, 0xcf, 0x3f, 0x0d, 0xd3, 0x4a, 0x35, 0x74, 0x12, 0x46, 0xb6, 0x08, 0xbf, 0x02, 0x9b, + 0xc2, 0xf4, 0x5f, 0x74, 0x06, 0xc6, 0xb6, 0x0d, 0x67, 0x20, 0xc6, 0x04, 0xf3, 0x1f, 0xcf, 0xd4, + 0x9e, 0xd2, 0xf4, 0x6f, 0x6a, 0x30, 0x7d, 0xcd, 0x5e, 0x27, 0x3e, 0xbf, 0x1d, 0x66, 0xd2, 0x6a, + 0xe2, 0x41, 0xe5, 0x74, 0xde, 0x63, 0x4a, 0xb4, 0x0b, 0x53, 0xe2, 0xb4, 0x91, 0x5e, 0x84, 0xd7, + 0x4a, 0xde, 0xb5, 0x49, 0xda, 0x82, 0x8b, 0xab, 0x0f, 0x41, 0x22, 0x12, 0x38, 0xa6, 0xa6, 0xbf, + 0x01, 0xa7, 0x73, 0x1a, 0xa1, 0x3a, 0xdb, 0xc0, 0x7e, 0x28, 0x16, 0x46, 0xb4, 0x23, 0xfd, 0x10, + 0xf3, 0x72, 0xf4, 0x20, 0x8c, 0x10, 0x37, 0x72, 0xc9, 0x9e, 0xd8, 0xdf, 0xab, 0x8f, 0x2c, 0xb9, + 0x16, 0xa6, 0x65, 0x94, 0x51, 0x39, 0x5e, 0x42, 0x32, 0x61, 0x8c, 0x6a, 0x59, 0x94, 0x61, 0x09, + 0xd5, 0xbf, 0xa6, 0x41, 0xe6, 0x22, 0x10, 0x7d, 0x56, 0x83, 0x93, 0x1b, 0xa9, 0xfd, 0x53, 0xe9, + 0x02, 0x32, 0xbd, 0x19, 0x1b, 0xf3, 0x62, 0x44, 0x32, 0xdb, 0x1a, 0x67, 0x08, 0xeb, 0xff, 0x78, + 0x14, 0x1e, 0xba, 0xe6, 0xf9, 0xf6, 0x1d, 0xcf, 0x0d, 0x0d, 0x67, 0xcd, 0xb3, 0x62, 0x4f, 0x20, + 0xc1, 0x97, 0x7f, 0x55, 0x83, 0x07, 0xcc, 0xfe, 0x80, 0xbb, 0xbb, 0x46, 0x0e, 0x1a, 0x6b, 0xc4, + 0xb7, 0xbd, 0xb2, 0x0e, 0x41, 0xec, 0xfd, 0x5f, 0x73, 0xed, 0x56, 0x1e, 0x4a, 0x5c, 0x44, 0x8b, + 0xf9, 0x25, 0x59, 0xde, 0x6d, 0x97, 0x75, 0xae, 0x13, 0xb2, 0xe1, 0xbc, 0x13, 0xcf, 0x42, 0x49, + 0xbf, 0xa4, 0x56, 0x2e, 0x46, 0x5c, 0x40, 0x09, 0x7d, 0x02, 0xce, 0xda, 0xbc, 0x73, 0x98, 0x18, + 0x96, 0xed, 0x92, 0x20, 0x60, 0xde, 0x39, 0x55, 0x1c, 0x6f, 0xda, 0x79, 0x08, 0x71, 0x3e, 0x1d, + 0xf4, 0x8b, 0x00, 0xc1, 0xae, 0x6b, 0x8a, 0xf1, 0x1f, 0x2b, 0x45, 0x95, 0x8b, 0x82, 0x12, 0x0b, + 0x56, 0x30, 0x52, 0x25, 0x24, 0x94, 0xab, 0x72, 0x9c, 0x39, 0xf1, 0x30, 0x25, 0x24, 0x5e, 0x43, + 0x31, 0x5c, 0xff, 0x2d, 0x0d, 0x26, 0xc4, 0xb3, 0x60, 0xf4, 0x9e, 0x94, 0x2e, 0x2e, 0xb9, 0x4f, + 0x4a, 0x1f, 0xbf, 0xc3, 0xae, 0x53, 0x84, 0x25, 0x46, 0x48, 0x13, 0xe5, 0x54, 0x39, 0x41, 0x39, + 0xb6, 0xeb, 0x24, 0xae, 0x55, 0x22, 0x5b, 0x8f, 0x42, 0x8d, 0xee, 0xc7, 0x53, 0x99, 0x56, 0x87, + 0x90, 0x19, 0x8e, 0xd1, 0x5f, 0xe1, 0x5f, 0xcd, 0x00, 0x7b, 0x03, 0xbe, 0xb8, 0xd6, 0xee, 0x10, + 0x7f, 0x5b, 0xee, 0x42, 0xca, 0x35, 0x62, 0xe7, 0x54, 0xd1, 0x8b, 0x2a, 0x5c, 0xe3, 0x7a, 0x0a, + 0x59, 0xcc, 0x35, 0xd2, 0x10, 0x9c, 0x21, 0x8c, 0xde, 0xd4, 0xe0, 0xa4, 0x91, 0x7c, 0x03, 0x1e, + 0x31, 0xf6, 0x72, 0xcf, 0x96, 0x52, 0x0f, 0xca, 0xe3, 0xce, 0xa4, 0x00, 0x01, 0xce, 0xd0, 0x45, + 0xef, 0x87, 0x19, 0xa3, 0x6f, 0x2f, 0x0e, 0x2c, 0x9b, 0x0a, 0x3b, 0xd1, 0x73, 0x60, 0x26, 0x81, + 0x2f, 0xae, 0xb5, 0x65, 0x39, 0x4e, 0xd4, 0x92, 0x6f, 0xb7, 0xc5, 0x50, 0x8e, 0x56, 0x7d, 0xbb, + 0x2d, 0x46, 0x31, 0x7e, 0xbb, 0x2d, 0x06, 0x4f, 0xa5, 0x82, 0x3e, 0x0c, 0x0f, 0xf2, 0x33, 0xb1, + 0x61, 0x04, 0xb6, 0xb9, 0x38, 0x08, 0x37, 0x89, 0x1b, 0x46, 0x5a, 0x2e, 0xb7, 0x0d, 0x33, 0x2f, + 0xc5, 0xa5, 0xa2, 0x4a, 0xb8, 0xb8, 0x3d, 0xf2, 0x00, 0x3c, 0xdb, 0x32, 0xc5, 0x07, 0x71, 0x03, + 0x72, 0x39, 0x95, 0xe2, 0x46, 0xbb, 0xd5, 0x14, 0xdf, 0xc3, 0x78, 0x45, 0xfc, 0x1b, 0x2b, 0x24, + 0xd0, 0x97, 0x34, 0x98, 0x15, 0x0b, 0x5d, 0x10, 0x9d, 0x60, 0x4b, 0xe0, 0xc3, 0xa5, 0x17, 0x64, + 0x6a, 0xd5, 0x2f, 0x60, 0x15, 0x3b, 0x97, 0x6a, 0xa4, 0xf3, 0x74, 0x02, 0x86, 0x93, 0x1d, 0x41, + 0x5f, 0xd4, 0xe0, 0x4c, 0x40, 0xfc, 0x6d, 0xdb, 0x24, 0x8b, 0xa6, 0xe9, 0x0d, 0xdc, 0x68, 0x9e, + 0x27, 0x2b, 0x3c, 0xa3, 0xed, 0xe4, 0x20, 0xe4, 0x2e, 0x7b, 0x79, 0x10, 0x9c, 0xdb, 0x01, 0xf4, + 0xd7, 0x34, 0x38, 0x71, 0xdb, 0x08, 0xcd, 0xcd, 0xa6, 0x61, 0x6e, 0x32, 0xf3, 0x0f, 0xf7, 0xd2, + 0x2b, 0xbb, 0x73, 0x5e, 0x49, 0xe2, 0xe2, 0x97, 0x20, 0xa9, 0x42, 0x9c, 0xa6, 0x88, 0x42, 0x98, + 0xf4, 0xc9, 0xeb, 0x03, 0x12, 0x30, 0x5f, 0x3e, 0xed, 0xe8, 0xfa, 0x46, 0xde, 0xa4, 0x61, 0x81, + 0x91, 0xcb, 0x43, 0xd1, 0x2f, 0x2c, 0x29, 0xa1, 0x2e, 0x3c, 0xc4, 0x97, 0xef, 0xa2, 0xeb, 0xb9, + 0xbb, 0x3d, 0x6f, 0x10, 0xa4, 0xb6, 0xc0, 0x34, 0xdb, 0x02, 0xcc, 0x5d, 0x71, 0x69, 0x58, 0x45, + 0x3c, 0x1c, 0x0f, 0xfa, 0x20, 0x4c, 0x92, 0x6d, 0xe2, 0x86, 0x37, 0x6f, 0x2e, 0xcf, 0xcf, 0x94, + 0x3a, 0x23, 0xd9, 0x27, 0x2c, 0x09, 0x1c, 0x58, 0x62, 0x43, 0x7d, 0x98, 0x70, 0xbc, 0x6e, 0xd7, + 0x76, 0xbb, 0xf3, 0xb3, 0x15, 0x96, 0x52, 0x62, 0xdc, 0x96, 0x39, 0x42, 0x2e, 0x3c, 0x8b, 0x1f, + 0x38, 0x22, 0x73, 0xfe, 0x45, 0x40, 0xd9, 0x6d, 0x70, 0x90, 0xd4, 0x3e, 0xa9, 0x4a, 0xed, 0x9f, + 0xd7, 0xe0, 0x4c, 0x1e, 0x41, 0x7a, 0xd8, 0x6f, 0x13, 0x7f, 0xdd, 0x0b, 0x22, 0x1f, 0xb8, 0x31, + 0x7e, 0xd8, 0xbf, 0x1c, 0x15, 0xe2, 0x18, 0x8e, 0xda, 0x70, 0x7a, 0x33, 0x0c, 0xfb, 0x8b, 0xa6, + 0x49, 0x82, 0x40, 0xd6, 0x60, 0xd4, 0xc6, 0x78, 0xec, 0x92, 0x6b, 0x37, 0x6f, 0xae, 0xa5, 0xc0, + 0x38, 0xaf, 0x8d, 0xfe, 0x6d, 0x0d, 0xce, 0xe6, 0xae, 0x1c, 0x84, 0xe1, 0x1c, 0x73, 0x74, 0x75, + 0x57, 0x06, 0xa1, 0x11, 0xda, 0x6e, 0xb7, 0xed, 0x6e, 0x38, 0x76, 0x77, 0x33, 0x14, 0xdd, 0x63, + 0x32, 0xdb, 0x4a, 0x6e, 0x0d, 0x5c, 0xd0, 0x92, 0x76, 0xbc, 0x67, 0xec, 0x64, 0x10, 0x2a, 0x1d, + 0x5f, 0xc9, 0x82, 0x71, 0x5e, 0x1b, 0xfd, 0x2b, 0x63, 0x70, 0x81, 0x76, 0x3c, 0x96, 0x1e, 0x56, + 0x0c, 0xd7, 0xe8, 0xfe, 0x84, 0x9e, 0xd2, 0xdf, 0xd4, 0xe0, 0x81, 0xcd, 0x7c, 0xd9, 0x5e, 0x08, + 0x30, 0xb8, 0x9c, 0x16, 0x36, 0x4c, 0x5f, 0xe0, 0xbb, 0x77, 0x68, 0x15, 0x5c, 0xd4, 0x2b, 0xf4, + 0x22, 0x9c, 0x74, 0x3d, 0x8b, 0x34, 0xdb, 0x2d, 0xbc, 0x62, 0x04, 0x5b, 0x9d, 0xc8, 0x6c, 0x3e, + 0xc6, 0xef, 0x5a, 0x57, 0x53, 0x30, 0x9c, 0xa9, 0x8d, 0xb6, 0x01, 0xf5, 0x3d, 0x6b, 0x69, 0xdb, + 0x36, 0x23, 0x8f, 0xdc, 0xf2, 0xf7, 0xbb, 0xec, 0x0d, 0xe2, 0x5a, 0x06, 0x1b, 0xce, 0xa1, 0xc0, + 0xb4, 0x13, 0xda, 0x99, 0x15, 0xcf, 0xb5, 0x43, 0xcf, 0x67, 0xae, 0xd4, 0x95, 0x84, 0x74, 0xb6, + 0xd2, 0x57, 0x73, 0x31, 0xe2, 0x02, 0x4a, 0xfa, 0xff, 0xd0, 0xe0, 0x04, 0x5d, 0x17, 0x6b, 0xbe, + 0xb7, 0xb3, 0xfb, 0x13, 0xb9, 0x24, 0x1f, 0x13, 0xb7, 0x88, 0x5c, 0xaf, 0x3e, 0xab, 0xdc, 0x20, + 0x4e, 0xb1, 0x4e, 0xc7, 0x97, 0x86, 0xaa, 0x6d, 0x61, 0xa4, 0xd8, 0xb6, 0xa0, 0x7f, 0xa9, 0xc6, + 0x05, 0xe6, 0x48, 0xb5, 0xff, 0xc9, 0xdc, 0x8a, 0x3f, 0x0b, 0xb3, 0xb4, 0x6c, 0xc5, 0xd8, 0x59, + 0x6b, 0xbd, 0xec, 0x39, 0x91, 0x3f, 0x3b, 0x73, 0x4f, 0xbb, 0xae, 0x02, 0x70, 0xb2, 0x1e, 0x7a, + 0x06, 0x26, 0xfa, 0xfc, 0xed, 0x9c, 0xb0, 0x35, 0x3c, 0xcc, 0x6f, 0xda, 0x58, 0xd1, 0xdd, 0xbd, + 0xfa, 0xa9, 0xd8, 0x9a, 0x2d, 0x0a, 0x71, 0xd4, 0x40, 0x7f, 0xeb, 0x0c, 0x30, 0xe4, 0x0e, 0x09, + 0x7f, 0x22, 0x07, 0xe5, 0x71, 0x98, 0x36, 0xfb, 0x83, 0xe6, 0x95, 0xce, 0x4b, 0x03, 0x2f, 0x34, + 0xc4, 0x4d, 0x22, 0x13, 0xa0, 0x9b, 0x6b, 0xb7, 0xa2, 0x62, 0xac, 0xd6, 0xa1, 0x0c, 0xc2, 0xec, + 0x0f, 0x04, 0xd3, 0x5d, 0x53, 0x5d, 0xb4, 0x18, 0x83, 0x68, 0xae, 0xdd, 0x4a, 0xc0, 0x70, 0xa6, + 0x36, 0xfa, 0x65, 0x0d, 0x66, 0x88, 0xd8, 0xbc, 0xd7, 0x0c, 0xdf, 0x12, 0xbc, 0xa1, 0xbc, 0xf8, + 0x23, 0x47, 0x37, 0x62, 0x09, 0x5c, 0xf5, 0x58, 0x52, 0x68, 0xe0, 0x04, 0x45, 0xa6, 0x05, 0x88, + 0xdf, 0x74, 0xa2, 0x3d, 0x2b, 0xcd, 0x2d, 0xc6, 0x84, 0x16, 0x50, 0x54, 0x09, 0x17, 0xb7, 0x47, + 0x7f, 0x5f, 0x83, 0x73, 0x12, 0x6a, 0xbb, 0x76, 0x6f, 0xd0, 0xc3, 0xc4, 0x74, 0x0c, 0xbb, 0x27, + 0x54, 0x82, 0x0f, 0xde, 0xbb, 0x2f, 0x4d, 0xe2, 0xe7, 0x2c, 0x2b, 0x1f, 0x86, 0x0b, 0xfa, 0x84, + 0xbe, 0xa6, 0xc1, 0xc3, 0x11, 0x68, 0x8d, 0x2a, 0xe6, 0x03, 0x9f, 0xc4, 0x2f, 0x2a, 0xc4, 0x98, + 0x4c, 0x94, 0xe2, 0xa0, 0x8f, 0xec, 0xef, 0xd5, 0x1f, 0x5e, 0x3a, 0x00, 0x37, 0x3e, 0x90, 0x7a, + 0x62, 0xc5, 0x74, 0xbc, 0x8d, 0x50, 0xe8, 0x10, 0xf7, 0x6d, 0xc5, 0x50, 0x1a, 0x38, 0x41, 0x11, + 0xfd, 0xb6, 0x06, 0x0f, 0xa8, 0x05, 0xea, 0x82, 0xe1, 0xca, 0xc3, 0x87, 0xee, 0x5d, 0x6f, 0x52, + 0x04, 0xb8, 0xb9, 0xae, 0x00, 0x88, 0x8b, 0xba, 0x45, 0xd9, 0x77, 0x8f, 0x2d, 0x4e, 0xae, 0x60, + 0x8c, 0x71, 0xf6, 0xcd, 0xd7, 0x6b, 0x80, 0x23, 0x18, 0x55, 0xde, 0xfb, 0x9e, 0xb5, 0x66, 0x5b, + 0xc1, 0xb2, 0xdd, 0xb3, 0x43, 0xa6, 0x01, 0x8c, 0xf0, 0xf1, 0x58, 0xf3, 0xac, 0xb5, 0x76, 0x8b, + 0x97, 0xe3, 0x44, 0x2d, 0xf6, 0x3c, 0xd0, 0xee, 0x19, 0x5d, 0xb2, 0x36, 0x70, 0x9c, 0x35, 0xdf, + 0x63, 0x26, 0x9d, 0x16, 0x31, 0x2c, 0xc7, 0x76, 0x49, 0x49, 0x89, 0x9f, 0x6d, 0xb9, 0x76, 0x11, + 0x52, 0x5c, 0x4c, 0x0f, 0x2d, 0x00, 0x6c, 0x18, 0xb6, 0xd3, 0xb9, 0x6d, 0xf4, 0x6f, 0xb8, 0x4c, + 0x2d, 0x98, 0xe4, 0x7a, 0xf3, 0x15, 0x59, 0x8a, 0x95, 0x1a, 0x6c, 0x41, 0x51, 0x66, 0x88, 0x09, + 0x0f, 0x50, 0x31, 0x3f, 0x77, 0xaf, 0x16, 0x54, 0x84, 0x91, 0x0f, 0xe0, 0x75, 0x85, 0x06, 0x4e, + 0x50, 0x44, 0xbf, 0xa6, 0xc1, 0x5c, 0xb0, 0x1b, 0x84, 0xa4, 0x27, 0x3b, 0x71, 0xe2, 0x9e, 0x77, + 0x82, 0xd9, 0xbb, 0x3a, 0x09, 0x2a, 0x38, 0x45, 0x15, 0x19, 0x70, 0x81, 0x0d, 0xec, 0xd5, 0xe6, + 0x35, 0xbb, 0xbb, 0x29, 0xdf, 0xfd, 0xad, 0x11, 0xdf, 0x24, 0x6e, 0x38, 0x7f, 0x92, 0x2d, 0x1d, + 0x16, 0x01, 0xa1, 0x5d, 0x5c, 0x0d, 0x0f, 0xc3, 0x81, 0x7e, 0x11, 0xce, 0x0b, 0xf0, 0xb2, 0x77, + 0x3b, 0x43, 0xe1, 0x14, 0xa3, 0xc0, 0x1e, 0x63, 0xb6, 0x0b, 0x6b, 0xe1, 0x21, 0x18, 0xa8, 0x7e, + 0x11, 0x10, 0x9f, 0xd9, 0xab, 0x89, 0x5c, 0x3f, 0xc1, 0x3c, 0x62, 0xeb, 0x80, 0xe9, 0x17, 0x9d, + 0x2c, 0x18, 0xe7, 0xb5, 0x41, 0xcf, 0x49, 0x17, 0xfd, 0x5d, 0x5a, 0xf0, 0xd2, 0x5a, 0x67, 0xfe, + 0x34, 0xeb, 0xdf, 0x69, 0xc5, 0xf3, 0x3e, 0x02, 0xe1, 0x74, 0x5d, 0x2a, 0x65, 0x44, 0x45, 0x8d, + 0x81, 0x1f, 0x84, 0xf3, 0x67, 0x58, 0x63, 0x26, 0x65, 0x60, 0x15, 0x80, 0x93, 0xf5, 0xd0, 0x33, + 0x30, 0x17, 0x10, 0xd3, 0xf4, 0x7a, 0xfd, 0x16, 0xd9, 0x30, 0x06, 0x4e, 0x38, 0x7f, 0x96, 0xf5, + 0x9e, 0xcf, 0x60, 0x02, 0x82, 0x53, 0x35, 0xd1, 0x2e, 0x9c, 0x96, 0xf1, 0x1a, 0x96, 0xbd, 0xee, + 0x8a, 0xb1, 0xc3, 0xc4, 0xf6, 0x73, 0x07, 0x6f, 0xc2, 0x85, 0xe8, 0x0e, 0x72, 0xe1, 0xa5, 0x81, + 0xe1, 0x86, 0x76, 0xb8, 0xcb, 0x87, 0xab, 0x99, 0x45, 0x87, 0xf3, 0x68, 0xa0, 0x65, 0x38, 0x93, + 0x2a, 0xbe, 0x62, 0x3b, 0x24, 0x98, 0x7f, 0x80, 0x7d, 0x36, 0xb3, 0xcc, 0x34, 0x73, 0xe0, 0x38, + 0xb7, 0x15, 0xba, 0x01, 0x67, 0xfb, 0xbe, 0x17, 0x12, 0x33, 0xbc, 0x4e, 0xe5, 0x14, 0x47, 0x7c, + 0x60, 0x30, 0x3f, 0xcf, 0xc6, 0x82, 0xd9, 0xea, 0xd7, 0xf2, 0x2a, 0xe0, 0xfc, 0x76, 0xe8, 0x2d, + 0x0d, 0x2e, 0x05, 0xa1, 0x4f, 0x8c, 0x9e, 0xed, 0x76, 0x9b, 0x9e, 0xeb, 0x12, 0xc6, 0x29, 0xdb, + 0x56, 0xec, 0x78, 0xfa, 0x60, 0x29, 0x56, 0xa5, 0xef, 0xef, 0xd5, 0x2f, 0x75, 0x86, 0x62, 0xc6, + 0x07, 0x50, 0xd6, 0xf7, 0x6a, 0x5c, 0x07, 0xcf, 0xb0, 0x7f, 0xba, 0x08, 0x7b, 0xa4, 0xe7, 0xf9, + 0xbb, 0x8b, 0x51, 0xc8, 0x44, 0x61, 0x1a, 0x67, 0x8b, 0x70, 0x25, 0x09, 0xc2, 0xe9, 0xba, 0x54, + 0x44, 0x63, 0x9b, 0xe5, 0x4a, 0x27, 0x6e, 0x5f, 0x8b, 0x45, 0xb4, 0x76, 0x0a, 0x86, 0x33, 0xb5, + 0x51, 0x13, 0x4e, 0x89, 0xb2, 0x36, 0x55, 0x74, 0x82, 0x2b, 0x3e, 0x89, 0xa4, 0x5f, 0xaa, 0x31, + 0x9c, 0x6a, 0xa7, 0x81, 0x38, 0x5b, 0x9f, 0x7e, 0x05, 0xfd, 0xa1, 0xf6, 0x62, 0x34, 0xfe, 0x8a, + 0xd5, 0x24, 0x08, 0xa7, 0xeb, 0x46, 0x9a, 0x68, 0xa2, 0x0b, 0x63, 0xf1, 0x57, 0xac, 0xa6, 0x60, + 0x38, 0x53, 0x5b, 0xff, 0x77, 0xa3, 0xf0, 0xae, 0x43, 0x48, 0x4d, 0xa8, 0x97, 0x3f, 0xdc, 0x47, + 0xdf, 0x3b, 0x87, 0x9b, 0x9e, 0x7e, 0xc1, 0xf4, 0x1c, 0x9d, 0xde, 0x61, 0xa7, 0x33, 0x28, 0x9a, + 0xce, 0xa3, 0x93, 0x3c, 0xfc, 0xf4, 0xf7, 0xf2, 0xa7, 0xbf, 0xe4, 0xa8, 0x1e, 0xb8, 0x5c, 0xfa, + 0x05, 0xcb, 0xa5, 0xe4, 0xa8, 0x1e, 0x62, 0x79, 0xfd, 0xfb, 0x51, 0x78, 0xe4, 0x30, 0xe2, 0x5b, + 0xc9, 0xf5, 0x95, 0xc3, 0x75, 0xee, 0xeb, 0xfa, 0x2a, 0x72, 0xaf, 0xbf, 0x8f, 0xeb, 0x2b, 0x87, + 0xe4, 0xfd, 0x5e, 0x5f, 0x45, 0xa3, 0x7a, 0xbf, 0xd6, 0x57, 0xd1, 0xa8, 0x1e, 0x62, 0x7d, 0xfd, + 0xcf, 0xf4, 0xf9, 0x20, 0x45, 0xb6, 0x36, 0x8c, 0x98, 0xfd, 0x41, 0x49, 0x26, 0xc5, 0x5c, 0x29, + 0x9a, 0x6b, 0xb7, 0x30, 0xc5, 0x81, 0x30, 0x8c, 0xf3, 0xf5, 0x53, 0x92, 0x05, 0x31, 0x87, 0x6f, + 0xbe, 0x24, 0xb1, 0xc0, 0x44, 0x87, 0x8a, 0xf4, 0x37, 0x49, 0x8f, 0xf8, 0x86, 0xd3, 0x09, 0x3d, + 0xdf, 0xe8, 0x96, 0xe5, 0x36, 0x6c, 0xa8, 0x96, 0x52, 0xb8, 0x70, 0x06, 0x3b, 0x1d, 0x90, 0xbe, + 0x6d, 0x95, 0xe4, 0x2f, 0x6c, 0x40, 0xd6, 0xda, 0x2d, 0x4c, 0x71, 0xe8, 0xbf, 0x35, 0x05, 0x4a, + 0x3c, 0x22, 0xf4, 0x61, 0x78, 0xd0, 0x70, 0x1c, 0xef, 0xf6, 0x9a, 0x6f, 0x6f, 0xdb, 0x0e, 0xe9, + 0x12, 0x4b, 0xca, 0x33, 0x81, 0xf0, 0xb8, 0x61, 0x6a, 0xcb, 0x62, 0x51, 0x25, 0x5c, 0xdc, 0x9e, + 0x2a, 0x51, 0xa7, 0xcc, 0x74, 0xf8, 0x97, 0x4a, 0x37, 0xf2, 0x99, 0x60, 0x32, 0x7c, 0x43, 0x65, + 0x8a, 0x71, 0x96, 0x2e, 0xfa, 0x15, 0x8d, 0x9b, 0xc8, 0xe4, 0x9d, 0x80, 0x98, 0xb4, 0x6b, 0xf7, + 0xea, 0x32, 0x31, 0x36, 0xb6, 0xc5, 0xd7, 0x0e, 0x49, 0x8a, 0xe8, 0xeb, 0x1a, 0x9c, 0xdd, 0xca, + 0x33, 0xef, 0x8b, 0xb9, 0x5d, 0x2b, 0xdd, 0x97, 0x82, 0x0b, 0x03, 0x2e, 0x54, 0xe6, 0x56, 0xc0, + 0xf9, 0x3d, 0x91, 0xe3, 0x24, 0xed, 0x9d, 0x82, 0x0f, 0x94, 0x1f, 0xa7, 0x94, 0xe5, 0x34, 0x1e, + 0x27, 0x09, 0xc0, 0x49, 0x8a, 0xe8, 0x75, 0x98, 0xda, 0x8a, 0xcc, 0xcc, 0xc2, 0xaa, 0xd4, 0x2a, + 0x4d, 0x5e, 0x31, 0x56, 0xf3, 0xdb, 0x27, 0x59, 0x88, 0x63, 0x2a, 0xc8, 0x86, 0x89, 0x2d, 0xce, + 0x8d, 0x84, 0x35, 0xa8, 0x51, 0x5d, 0x51, 0xe5, 0x26, 0x09, 0x51, 0x84, 0x23, 0xfc, 0xaa, 0xdf, + 0xe1, 0xe4, 0x01, 0x2e, 0xf1, 0x5f, 0xd6, 0xe0, 0xec, 0x36, 0xf1, 0x43, 0xdb, 0x4c, 0xdf, 0xaf, + 0x4c, 0x55, 0xd0, 0xa6, 0x5f, 0xce, 0xc3, 0xc8, 0x97, 0x4a, 0x2e, 0x08, 0xe7, 0xf7, 0x81, 0xea, + 0xd6, 0xdc, 0x4a, 0xde, 0x09, 0x8d, 0xd0, 0x36, 0x6f, 0x7a, 0x5b, 0xc4, 0xa5, 0x5f, 0x2b, 0x02, + 0xf1, 0x03, 0xe3, 0x1f, 0x4c, 0xb7, 0x5e, 0x2a, 0xae, 0x86, 0x87, 0xe1, 0xd0, 0xff, 0x54, 0x83, + 0x8c, 0xa5, 0x17, 0xfd, 0x2d, 0x0d, 0x66, 0x36, 0x88, 0x11, 0x0e, 0x7c, 0x72, 0xd5, 0x08, 0xe5, + 0x0b, 0xc8, 0x57, 0xee, 0x89, 0x85, 0x79, 0xe1, 0x8a, 0x82, 0x99, 0xbb, 0x04, 0xc8, 0x88, 0x66, + 0x2a, 0x08, 0x27, 0xba, 0x70, 0xfe, 0x05, 0x38, 0x95, 0x69, 0x78, 0xa4, 0x4b, 0xd4, 0x7f, 0xa6, + 0x41, 0x5e, 0x72, 0x06, 0xf4, 0x11, 0x18, 0x33, 0x2c, 0x4b, 0x46, 0x70, 0x7e, 0xa6, 0xa4, 0xfb, + 0x8b, 0xa5, 0x3e, 0x35, 0x65, 0x3f, 0x31, 0xc7, 0x8b, 0xae, 0x00, 0x32, 0x12, 0xb7, 0xdb, 0x2b, + 0xf1, 0x33, 0x2c, 0x76, 0x43, 0xb5, 0x98, 0x81, 0xe2, 0x9c, 0x16, 0xfa, 0x67, 0x34, 0x40, 0xd9, + 0x30, 0x78, 0x28, 0x80, 0x49, 0xb1, 0x9a, 0xa3, 0x79, 0x5a, 0x2a, 0xeb, 0x8a, 0x9f, 0x78, 0x59, + 0x12, 0x3b, 0xff, 0x8b, 0x82, 0x00, 0x4b, 0x42, 0xfa, 0x5f, 0x68, 0x10, 0x07, 0x7b, 0x45, 0x1f, + 0x80, 0x69, 0x8b, 0x04, 0xa6, 0x6f, 0xf7, 0xc3, 0xf8, 0x1d, 0x8a, 0xf4, 0x65, 0x6f, 0xc5, 0x20, + 0xac, 0xd6, 0x43, 0x3a, 0x8c, 0x87, 0x46, 0xb0, 0xd5, 0x6e, 0x09, 0xf5, 0x92, 0x09, 0x03, 0x37, + 0x59, 0x09, 0x16, 0x90, 0x38, 0x9c, 0xcd, 0xc8, 0x21, 0xc2, 0xd9, 0xa0, 0x8d, 0x7b, 0x10, 0xbb, + 0x07, 0x1d, 0x1c, 0xb7, 0x47, 0xff, 0x3b, 0x35, 0x38, 0x41, 0xab, 0xac, 0x18, 0xb6, 0x1b, 0x12, + 0x97, 0x79, 0x5c, 0x97, 0x1c, 0x84, 0x2e, 0xcc, 0x86, 0x89, 0xf8, 0xa2, 0x47, 0x7f, 0x93, 0x23, + 0x3d, 0x6a, 0x92, 0x51, 0x45, 0x93, 0x78, 0xd1, 0xd3, 0x91, 0xcb, 0x3b, 0x57, 0xc4, 0xdf, 0x15, + 0xad, 0x55, 0xe6, 0xc7, 0x7e, 0x57, 0xc4, 0x47, 0x92, 0x21, 0x82, 0x13, 0xde, 0xed, 0x3f, 0x0b, + 0xb3, 0xc2, 0xef, 0x94, 0xc7, 0x25, 0x12, 0x8a, 0x38, 0x3b, 0x67, 0xae, 0xa8, 0x00, 0x9c, 0xac, + 0xa7, 0xff, 0x41, 0x0d, 0x92, 0x81, 0x88, 0xcb, 0x8e, 0x52, 0x36, 0x28, 0x53, 0xed, 0xbe, 0x05, + 0x65, 0x7a, 0x1f, 0x0b, 0xda, 0xcf, 0x93, 0xb2, 0xf0, 0xbb, 0x6b, 0x35, 0xd2, 0x3e, 0xcf, 0xa8, + 0x22, 0x6b, 0xc4, 0xc3, 0x3a, 0x7a, 0xe4, 0x61, 0xfd, 0x80, 0xf0, 0x5c, 0x1f, 0x4b, 0x84, 0xc6, + 0x8a, 0x7c, 0xf4, 0x4f, 0x25, 0x1a, 0x2a, 0x0e, 0xfa, 0xdf, 0xd3, 0x60, 0x42, 0x84, 0x7e, 0x3c, + 0xc4, 0x03, 0x90, 0x2e, 0x8c, 0x31, 0xe5, 0xa7, 0x92, 0x5c, 0xd8, 0xd9, 0xf4, 0xbc, 0x30, 0x11, + 0x02, 0x93, 0x39, 0x5c, 0xb3, 0x7f, 0x31, 0xc7, 0xcf, 0xbc, 0xf8, 0x7c, 0x73, 0xd3, 0x0e, 0x89, + 0x19, 0x46, 0x41, 0xf5, 0x22, 0x2f, 0x3e, 0xa5, 0x1c, 0x27, 0x6a, 0xe9, 0x5f, 0x1e, 0x85, 0x87, + 0x05, 0xe2, 0x8c, 0xa8, 0x24, 0x59, 0xdc, 0x2e, 0x9c, 0x16, 0x93, 0xdb, 0xf2, 0x0d, 0x5b, 0x3a, + 0x05, 0x94, 0xd3, 0x82, 0x85, 0xc3, 0x48, 0x06, 0x1d, 0xce, 0xa3, 0xc1, 0xc3, 0xc3, 0xb1, 0xe2, + 0x6b, 0xc4, 0x70, 0xc2, 0xcd, 0x88, 0x76, 0xad, 0x4a, 0x78, 0xb8, 0x2c, 0x3e, 0x9c, 0x4b, 0x85, + 0x39, 0x25, 0x08, 0x40, 0xd3, 0x27, 0x86, 0xea, 0x11, 0x51, 0xc1, 0x65, 0x7a, 0x25, 0x17, 0x23, + 0x2e, 0xa0, 0xc4, 0xcc, 0x89, 0xc6, 0x0e, 0xb3, 0x4e, 0x60, 0x12, 0xfa, 0x36, 0x0b, 0x65, 0x2a, + 0x6d, 0xda, 0x2b, 0x49, 0x10, 0x4e, 0xd7, 0x45, 0xcf, 0xc0, 0x1c, 0x73, 0xf2, 0x88, 0x43, 0xb0, + 0x8c, 0xc5, 0xef, 0x84, 0x57, 0x13, 0x10, 0x9c, 0xaa, 0xa9, 0x7f, 0x43, 0x83, 0x19, 0x75, 0xd9, + 0x1d, 0xe2, 0x39, 0xc8, 0xb6, 0x72, 0x1c, 0x56, 0x79, 0xa9, 0xa0, 0x92, 0x3d, 0xcc, 0x89, 0xf8, + 0x37, 0x46, 0xe0, 0x74, 0x4e, 0x1b, 0x76, 0x63, 0x4f, 0x52, 0x47, 0x6b, 0xa5, 0x1b, 0xfb, 0xcc, + 0x39, 0x2d, 0x6f, 0xec, 0xd3, 0x10, 0x9c, 0x21, 0x8c, 0x5e, 0x81, 0x11, 0xd3, 0xb7, 0xc5, 0xc0, + 0x3c, 0x55, 0x4e, 0x47, 0xc4, 0xed, 0xc6, 0xb4, 0x20, 0x39, 0xd2, 0xc4, 0x6d, 0x4c, 0x31, 0xd2, + 0x23, 0x42, 0xdd, 0xd7, 0xd1, 0x79, 0xcd, 0x8e, 0x08, 0x75, 0xfb, 0x07, 0x38, 0x59, 0x0f, 0x7d, + 0x10, 0xe6, 0x85, 0xdc, 0x1e, 0xbd, 0x03, 0xf5, 0xdc, 0x20, 0xa4, 0x5b, 0x30, 0x14, 0x2c, 0xf5, + 0xe2, 0xfe, 0x5e, 0x7d, 0xfe, 0x7a, 0x41, 0x1d, 0x5c, 0xd8, 0x5a, 0xff, 0x6f, 0x23, 0x30, 0xad, + 0x84, 0xc8, 0x45, 0x2b, 0x55, 0xcc, 0x1e, 0xf1, 0x17, 0x47, 0xa6, 0x8f, 0x15, 0x18, 0xe9, 0xf6, + 0x07, 0x25, 0xed, 0x1e, 0x12, 0xdd, 0x55, 0x8a, 0xae, 0xdb, 0x1f, 0xa0, 0x97, 0xa5, 0x25, 0xa5, + 0x9c, 0xad, 0x43, 0xba, 0xeb, 0xa7, 0xac, 0x29, 0xd1, 0x8e, 0x19, 0x2d, 0xdc, 0x31, 0x2e, 0x4c, + 0x04, 0xc2, 0xcc, 0x32, 0x56, 0x21, 0x34, 0x82, 0x32, 0xd4, 0xc2, 0xae, 0xc2, 0xd5, 0xb3, 0xc8, + 0xec, 0x12, 0x11, 0xa1, 0x62, 0xdf, 0x80, 0x3d, 0x04, 0x64, 0x9a, 0xe7, 0x24, 0x17, 0xfb, 0x6e, + 0xb1, 0x12, 0x2c, 0x20, 0x99, 0xc3, 0x64, 0xe2, 0x50, 0x87, 0xc9, 0xa7, 0x6b, 0x80, 0xb2, 0xdd, + 0x40, 0xef, 0x82, 0x31, 0xf6, 0x98, 0x58, 0x70, 0x0d, 0x29, 0xa5, 0xb3, 0xc7, 0xa4, 0x98, 0xc3, + 0x50, 0x47, 0x3c, 0xf2, 0x2e, 0x37, 0x9f, 0xcc, 0xe9, 0x45, 0xd0, 0x53, 0x5e, 0x84, 0x47, 0xc7, + 0xf3, 0x48, 0xe1, 0xf1, 0x7c, 0x0b, 0x26, 0x7a, 0xb6, 0xcb, 0x2e, 0xdc, 0xca, 0x99, 0x9f, 0xf8, + 0xad, 0x3c, 0x47, 0x81, 0x23, 0x5c, 0xfa, 0x0f, 0x6b, 0x74, 0xed, 0xc7, 0xc2, 0xe9, 0x1d, 0x00, + 0x63, 0x10, 0x7a, 0x5c, 0xca, 0x11, 0x5b, 0xe0, 0xe7, 0x4b, 0x4e, 0xb3, 0xc4, 0xba, 0x28, 0x31, + 0xf2, 0xdb, 0xf2, 0xf8, 0x37, 0x56, 0xa8, 0x51, 0xda, 0xa1, 0xdd, 0x23, 0xaf, 0xd8, 0xae, 0xe5, + 0xdd, 0x16, 0xe3, 0x5b, 0x99, 0xf6, 0x4d, 0x89, 0x91, 0xd3, 0x8e, 0x7f, 0x63, 0x85, 0x1a, 0xe5, + 0x2e, 0x4c, 0xd1, 0x75, 0x59, 0xe4, 0x72, 0xd1, 0x39, 0xcf, 0x71, 0xa2, 0x13, 0x74, 0x92, 0x73, + 0x97, 0x66, 0x41, 0x1d, 0x5c, 0xd8, 0x5a, 0xff, 0xa6, 0x06, 0x67, 0x73, 0xc7, 0x02, 0x5d, 0x85, + 0x53, 0xb1, 0xa7, 0x94, 0xca, 0xf1, 0x27, 0xe3, 0x98, 0xf9, 0xd7, 0xd3, 0x15, 0x70, 0xb6, 0x0d, + 0x5a, 0x91, 0x62, 0x8f, 0x7a, 0xa2, 0x08, 0x37, 0xab, 0x0b, 0x02, 0x55, 0xde, 0xa1, 0x83, 0xf3, + 0xda, 0xe9, 0x1f, 0x4e, 0x74, 0x38, 0x1e, 0x30, 0xba, 0x3f, 0xd6, 0x49, 0x57, 0x3e, 0xfc, 0x91, + 0xfb, 0xa3, 0x41, 0x0b, 0x31, 0x87, 0xa1, 0x87, 0xd4, 0xf7, 0x74, 0x92, 0x7d, 0x45, 0x6f, 0xea, + 0xf4, 0x01, 0x80, 0xf0, 0x67, 0xb4, 0xdd, 0x2e, 0xea, 0xc2, 0xa4, 0x21, 0xf2, 0xf5, 0x89, 0xc5, + 0xf6, 0x5c, 0x39, 0xb5, 0x5a, 0x20, 0xe1, 0xde, 0xdc, 0xd1, 0x2f, 0x2c, 0x91, 0xeb, 0x7f, 0x4f, + 0x83, 0x73, 0xf9, 0x6f, 0x66, 0x0f, 0x21, 0x2a, 0xf4, 0x60, 0xda, 0x8f, 0x9b, 0x89, 0x95, 0xf9, + 0x33, 0x6a, 0x54, 0x3a, 0x25, 0x92, 0x0b, 0x15, 0xa3, 0x9a, 0xbe, 0x17, 0x44, 0xb3, 0x93, 0x0e, + 0x54, 0x27, 0x75, 0x18, 0xa5, 0x27, 0x58, 0xc5, 0xaf, 0x7f, 0xb2, 0x06, 0xb0, 0x4a, 0xc2, 0xdb, + 0x9e, 0xbf, 0x45, 0xc7, 0xe8, 0x27, 0xea, 0xed, 0xf6, 0x45, 0x18, 0xed, 0x7b, 0x56, 0x20, 0x18, + 0x15, 0x7b, 0x54, 0xcd, 0xdc, 0x7c, 0x58, 0x29, 0xaa, 0xc3, 0x18, 0xbb, 0x57, 0x10, 0x87, 0x08, + 0x93, 0xfd, 0xa9, 0xe4, 0x16, 0x60, 0x5e, 0xce, 0xd3, 0xb2, 0xb0, 0xb7, 0x12, 0x81, 0xd0, 0x66, + 0x44, 0x5a, 0x16, 0x5e, 0x86, 0x25, 0x54, 0xff, 0xd4, 0x28, 0x24, 0x72, 0x53, 0xc6, 0xe6, 0x97, + 0xd1, 0xfb, 0x64, 0x7e, 0xf9, 0x20, 0xcc, 0x3b, 0x9e, 0x61, 0x35, 0x0c, 0x87, 0x2e, 0x7b, 0xbf, + 0xc3, 0xe7, 0xc3, 0x70, 0xbb, 0x32, 0x62, 0x0d, 0x63, 0x01, 0xcb, 0x05, 0x75, 0x70, 0x61, 0x6b, + 0x34, 0x50, 0x52, 0x62, 0x52, 0x79, 0x6a, 0xa5, 0x72, 0xee, 0xce, 0x05, 0xf5, 0xa1, 0x8c, 0x3c, + 0xd1, 0x53, 0x69, 0x33, 0x7f, 0x4d, 0x83, 0xb3, 0x64, 0x27, 0x24, 0xbe, 0x6b, 0x38, 0x37, 0x7d, + 0x63, 0x63, 0xc3, 0x36, 0x13, 0x8e, 0x94, 0x6b, 0xfb, 0x7b, 0xf5, 0xb3, 0x4b, 0x79, 0x15, 0xee, + 0xee, 0xd5, 0x9f, 0xcc, 0x26, 0xa7, 0x8d, 0x9e, 0xc5, 0xe4, 0x36, 0x61, 0xcb, 0x31, 0x9f, 0xdc, + 0xf9, 0xa7, 0x61, 0xfa, 0x08, 0x2f, 0x1a, 0x12, 0xef, 0x90, 0xff, 0x49, 0x0d, 0x66, 0xe8, 0x0a, + 0x5a, 0xf6, 0x4c, 0xc3, 0x69, 0xad, 0x76, 0x8e, 0x90, 0xd9, 0x15, 0x2d, 0xc3, 0x99, 0x0d, 0xcf, + 0x37, 0xc9, 0xcd, 0xe6, 0xda, 0x4d, 0x4f, 0x5c, 0x4d, 0xb4, 0x56, 0x3b, 0x82, 0x2f, 0x32, 0x15, + 0xeb, 0x4a, 0x0e, 0x1c, 0xe7, 0xb6, 0x42, 0x37, 0xe0, 0x6c, 0x5c, 0x7e, 0xab, 0xcf, 0x9d, 0x2e, + 0x28, 0xba, 0x91, 0xd8, 0x69, 0xe4, 0x4a, 0x5e, 0x05, 0x9c, 0xdf, 0x0e, 0x19, 0x70, 0x41, 0x04, + 0x3a, 0xb8, 0xe2, 0xf9, 0xb7, 0x0d, 0xdf, 0x4a, 0xa2, 0x1d, 0x8d, 0x8d, 0xb6, 0xad, 0xe2, 0x6a, + 0x78, 0x18, 0x0e, 0xfd, 0xab, 0xe3, 0xa0, 0x3c, 0xe9, 0x3a, 0x42, 0x3e, 0x8e, 0xdf, 0xd4, 0xe0, + 0x8c, 0xe9, 0xd8, 0xc4, 0x0d, 0x53, 0xef, 0x76, 0x38, 0x63, 0x79, 0xb9, 0xdc, 0x63, 0xb3, 0x3e, + 0x71, 0xdb, 0x2d, 0xe1, 0xa4, 0xd2, 0xcc, 0xc1, 0x2e, 0x1c, 0x79, 0x72, 0x20, 0x38, 0xb7, 0x37, + 0xec, 0x83, 0x58, 0x79, 0xbb, 0xa5, 0x3e, 0xd0, 0x6e, 0x8a, 0x32, 0x2c, 0xa1, 0xe8, 0x71, 0x98, + 0xee, 0xfa, 0xde, 0xa0, 0x1f, 0x34, 0x99, 0x83, 0x2c, 0xe7, 0x4f, 0x4c, 0x18, 0xbb, 0x1a, 0x17, + 0x63, 0xb5, 0x0e, 0x15, 0x2d, 0xf9, 0xcf, 0x35, 0x9f, 0x6c, 0xd8, 0x3b, 0x82, 0x5f, 0x31, 0xd1, + 0xf2, 0xaa, 0x52, 0x8e, 0x13, 0xb5, 0xd0, 0x7b, 0x61, 0xca, 0x0e, 0x82, 0x01, 0xf1, 0x6f, 0xe1, + 0x65, 0x11, 0x83, 0x9b, 0xdd, 0x75, 0xb4, 0xa3, 0x42, 0x1c, 0xc3, 0xd1, 0x17, 0x34, 0x98, 0xf3, + 0xc9, 0xeb, 0x03, 0xdb, 0x27, 0x16, 0x23, 0x1a, 0x88, 0x87, 0x75, 0x9d, 0x8a, 0xaf, 0xf9, 0x16, + 0x70, 0x02, 0x2b, 0xe7, 0x13, 0xd2, 0xae, 0x95, 0x04, 0xe2, 0x54, 0x17, 0xe8, 0x58, 0x05, 0x76, + 0xd7, 0xb5, 0xdd, 0xee, 0xa2, 0xd3, 0x0d, 0xe6, 0x27, 0x19, 0xef, 0xe3, 0x82, 0x6b, 0x5c, 0x8c, + 0xd5, 0x3a, 0x54, 0xab, 0x1b, 0x04, 0x74, 0xe7, 0xf7, 0x08, 0x1f, 0xe0, 0xa9, 0xd8, 0xf0, 0x77, + 0x4b, 0x05, 0xe0, 0x64, 0x3d, 0xaa, 0xf4, 0x47, 0x05, 0x62, 0x98, 0x81, 0x07, 0x4f, 0xa2, 0xfd, + 0xbc, 0x95, 0x80, 0xe0, 0x54, 0xcd, 0xf3, 0x8b, 0x70, 0x3a, 0xe7, 0x33, 0x8f, 0xc4, 0x5e, 0xbe, + 0x51, 0x83, 0x77, 0x1e, 0xb8, 0x2c, 0xd1, 0x57, 0x35, 0x98, 0x26, 0x3b, 0xa1, 0x6f, 0x48, 0x3f, + 0x7a, 0x3a, 0x47, 0xdd, 0xfb, 0xb3, 0x09, 0x16, 0x96, 0x62, 0x4a, 0x7c, 0xde, 0xa4, 0xc4, 0xa0, + 0x40, 0xb0, 0xda, 0x21, 0xaa, 0x29, 0xf1, 0xe0, 0x5a, 0xaa, 0x81, 0x5c, 0x24, 0x38, 0x14, 0x90, + 0xf3, 0xcf, 0xc3, 0xc9, 0x34, 0xe6, 0xa3, 0x72, 0xe2, 0x89, 0x35, 0xdf, 0xa3, 0xc2, 0xcc, 0x31, + 0x44, 0x54, 0x5a, 0x4f, 0xc4, 0x8b, 0x2d, 0xf7, 0x5a, 0x57, 0xf4, 0xb6, 0x30, 0x5e, 0xf5, 0x6b, + 0xa9, 0x78, 0xd5, 0x8d, 0x4a, 0x54, 0x86, 0x07, 0xa8, 0xfe, 0xbe, 0x06, 0xd3, 0xa2, 0xe6, 0x31, + 0x84, 0x5c, 0x32, 0x92, 0x21, 0x97, 0x9e, 0xad, 0xf2, 0x61, 0x05, 0xc1, 0x96, 0xde, 0xd2, 0x60, + 0x56, 0xd4, 0x58, 0x21, 0xbd, 0x75, 0xe2, 0xa3, 0x2b, 0x30, 0x11, 0x0c, 0xd8, 0x5c, 0x8a, 0x2f, + 0xba, 0xa0, 0x4a, 0xc8, 0xfe, 0xba, 0x61, 0xb2, 0x44, 0x9d, 0xbc, 0x8a, 0x12, 0x05, 0x9a, 0x17, + 0xe0, 0xa8, 0x31, 0x95, 0x77, 0x7d, 0xcf, 0xc9, 0xc4, 0x69, 0xc1, 0x9e, 0x43, 0x30, 0x83, 0x50, + 0x31, 0x93, 0xfe, 0x8d, 0x6c, 0x47, 0x4c, 0xcc, 0xa4, 0xe0, 0x00, 0xf3, 0x72, 0xfd, 0xd3, 0xa3, + 0x72, 0xb4, 0x59, 0x94, 0xd6, 0x6b, 0x30, 0x65, 0xfa, 0xc4, 0x08, 0x89, 0xd5, 0xd8, 0x3d, 0x4c, + 0xe7, 0x18, 0xc7, 0x6e, 0x46, 0x2d, 0x70, 0xdc, 0x98, 0xf2, 0x46, 0xf5, 0x5a, 0xa2, 0x16, 0x9f, + 0x23, 0x85, 0x57, 0x12, 0xcf, 0xc2, 0x98, 0x77, 0xdb, 0x95, 0x6e, 0x0e, 0x43, 0x09, 0xb3, 0x4f, + 0xb9, 0x41, 0x6b, 0x63, 0xde, 0x48, 0x8d, 0x53, 0x34, 0x3a, 0x24, 0x4e, 0x51, 0x0f, 0x26, 0x7a, + 0x6c, 0x1a, 0xaa, 0x85, 0x04, 0x4e, 0xcc, 0xa8, 0x9a, 0x3c, 0x82, 0xa1, 0xc6, 0x11, 0x0d, 0x7a, + 0xca, 0x51, 0x46, 0x1c, 0xf4, 0x0d, 0x93, 0xa8, 0xa7, 0xdc, 0x6a, 0x54, 0x88, 0x63, 0x38, 0xba, + 0x93, 0x0c, 0x81, 0x35, 0x51, 0xc1, 0x76, 0x24, 0xfa, 0xa7, 0x44, 0xbd, 0xe2, 0x83, 0x5f, 0x18, + 0x06, 0xeb, 0xb3, 0xa3, 0x72, 0x99, 0x8a, 0x28, 0xdf, 0xf9, 0x59, 0x26, 0xb5, 0x52, 0x59, 0x26, + 0x9f, 0x8c, 0x12, 0x37, 0xd6, 0x12, 0x99, 0x4e, 0x64, 0xe2, 0xc6, 0x19, 0x41, 0x3a, 0x91, 0xac, + 0x71, 0x00, 0xa7, 0x83, 0xd0, 0x70, 0x48, 0xc7, 0x16, 0xda, 0x75, 0x10, 0x1a, 0xbd, 0x7e, 0x89, + 0x84, 0x25, 0xdc, 0xe3, 0x3c, 0x8b, 0x0a, 0xe7, 0xe1, 0x47, 0x9f, 0xd2, 0x60, 0x9e, 0x95, 0x2f, + 0x0e, 0x42, 0x8f, 0x47, 0x5e, 0x8d, 0x89, 0x1f, 0xfd, 0xf6, 0x93, 0xe9, 0x42, 0x9d, 0x02, 0x7c, + 0xb8, 0x90, 0x12, 0x7a, 0x03, 0xce, 0x3a, 0x46, 0x10, 0x2e, 0x9a, 0xa1, 0xbd, 0x6d, 0x87, 0xbb, + 0x71, 0x17, 0x8e, 0x9e, 0x2e, 0x91, 0x89, 0xdc, 0xcb, 0x79, 0xc8, 0x70, 0x3e, 0x0d, 0xfd, 0x7f, + 0x69, 0x80, 0xb2, 0x4b, 0x08, 0xf5, 0x60, 0xd2, 0x8a, 0x5c, 0xc0, 0xb5, 0x7b, 0x13, 0xa0, 0x4d, + 0x72, 0x67, 0xe9, 0x3a, 0x2e, 0x49, 0xa0, 0x3e, 0x4c, 0xdd, 0xde, 0xb4, 0x43, 0xe2, 0xd8, 0x41, + 0x78, 0xaf, 0x02, 0xc2, 0xc9, 0xd8, 0x48, 0xaf, 0x44, 0x98, 0x71, 0x4c, 0x44, 0xff, 0xfc, 0x28, + 0x4c, 0x1e, 0x21, 0x95, 0xf9, 0x00, 0x90, 0xa9, 0x64, 0x52, 0xa9, 0x62, 0x53, 0x60, 0x7e, 0x0b, + 0xcd, 0x0c, 0x32, 0x9c, 0x43, 0x00, 0xbd, 0x01, 0x67, 0x6c, 0x77, 0xc3, 0x37, 0x82, 0xd0, 0x1f, + 0x30, 0x3b, 0x6d, 0x95, 0x7c, 0x24, 0x4c, 0x95, 0x68, 0xe7, 0xa0, 0xc3, 0xb9, 0x44, 0xd0, 0x06, + 0x4c, 0xdc, 0xf6, 0xfc, 0x2d, 0xca, 0x40, 0x47, 0x2b, 0x64, 0xa7, 0x7b, 0x85, 0xe1, 0x88, 0x39, + 0x27, 0xff, 0x1d, 0xe0, 0x08, 0x39, 0x8f, 0x0a, 0xc1, 0xff, 0x8f, 0xae, 0x2d, 0xc5, 0xd2, 0x6f, + 0x55, 0x20, 0x18, 0x27, 0x3b, 0xe4, 0x51, 0x21, 0x92, 0x85, 0x38, 0x4d, 0x51, 0xff, 0x3d, 0x0d, + 0xc6, 0xf8, 0x3b, 0xcb, 0xfb, 0x2f, 0xca, 0x7d, 0x34, 0x21, 0xca, 0x95, 0x4b, 0xa8, 0xc0, 0xfa, + 0x5a, 0x18, 0xe9, 0xff, 0x7b, 0x1a, 0x4c, 0xb1, 0x1a, 0xc7, 0x20, 0x5a, 0x7d, 0x24, 0x29, 0x5a, + 0x3d, 0x53, 0xfe, 0x73, 0x0a, 0x04, 0xab, 0xdf, 0x1b, 0x11, 0x1f, 0xc3, 0x24, 0x97, 0x36, 0x9c, + 0x16, 0x1e, 0x94, 0xcb, 0xf6, 0x06, 0xa1, 0xcb, 0xbc, 0x65, 0xec, 0x06, 0x22, 0x46, 0x02, 0x7f, + 0x43, 0x93, 0x05, 0xe3, 0xbc, 0x36, 0xe8, 0x9f, 0x6a, 0x54, 0x46, 0x08, 0x7d, 0xdb, 0xac, 0x16, + 0x3e, 0x5f, 0x76, 0x6e, 0x61, 0x85, 0x63, 0xe3, 0x5a, 0xca, 0xad, 0x58, 0x58, 0x60, 0xa5, 0x77, + 0xf7, 0xea, 0xf5, 0x1c, 0x1b, 0x52, 0x1c, 0x92, 0x3b, 0x08, 0x3f, 0xf9, 0xc3, 0xa1, 0x55, 0x98, + 0x05, 0x36, 0xea, 0x32, 0xba, 0x06, 0x63, 0x81, 0xe9, 0xf5, 0xc9, 0x51, 0x92, 0x82, 0xc8, 0x11, + 0xee, 0xd0, 0x96, 0x98, 0x23, 0x38, 0xff, 0x1a, 0xcc, 0xa8, 0x3d, 0xcf, 0xd1, 0x82, 0x5a, 0xaa, + 0x16, 0x74, 0xe4, 0xab, 0x16, 0x55, 0x6b, 0xfa, 0x4e, 0x0d, 0xc6, 0x79, 0x86, 0xca, 0x43, 0xd8, + 0x99, 0x5f, 0x8b, 0xe2, 0x1e, 0x57, 0xc9, 0xbf, 0xab, 0x86, 0xa0, 0x7b, 0xd5, 0x73, 0x95, 0x41, + 0x50, 0x43, 0x1f, 0x23, 0x4f, 0x86, 0x26, 0x1c, 0xa9, 0x90, 0xb5, 0x80, 0x7f, 0xda, 0xfd, 0x0e, + 0x46, 0xf8, 0x7d, 0x0d, 0x66, 0x12, 0xc1, 0x1e, 0x7b, 0x30, 0xe2, 0xcb, 0xa4, 0x36, 0x65, 0x0d, + 0xf1, 0x91, 0x07, 0xce, 0x85, 0x21, 0x95, 0x30, 0xa5, 0x23, 0xe3, 0x42, 0xd6, 0xee, 0x51, 0x5c, + 0x48, 0xfd, 0x8b, 0x1a, 0x9c, 0x8b, 0x3e, 0x28, 0x19, 0xc1, 0x07, 0x3d, 0x0a, 0x93, 0x46, 0xdf, + 0x66, 0x06, 0x26, 0xd5, 0x46, 0xb7, 0xb8, 0xd6, 0x66, 0x65, 0x58, 0x42, 0xd1, 0xfb, 0x60, 0x32, + 0x5a, 0x7a, 0x42, 0xfe, 0x94, 0x7c, 0x4b, 0x5e, 0x2d, 0xc8, 0x1a, 0xe8, 0xdd, 0x4a, 0x6c, 0xea, + 0xb1, 0x58, 0x5c, 0x90, 0x84, 0xf9, 0x45, 0xa4, 0xfe, 0x33, 0x30, 0xd5, 0xe9, 0x5c, 0xe3, 0x61, + 0x5c, 0x8e, 0x60, 0x6b, 0xd5, 0xdf, 0x1c, 0x81, 0x59, 0x6e, 0x70, 0x68, 0xd8, 0xae, 0x65, 0xbb, + 0xdd, 0x63, 0x38, 0x58, 0x6e, 0xc2, 0x14, 0xb7, 0x6d, 0x1c, 0x90, 0x80, 0xa8, 0x13, 0x55, 0x4a, + 0x07, 0x49, 0x95, 0x00, 0x1c, 0x23, 0x42, 0xd7, 0x61, 0xfc, 0x75, 0xca, 0xe1, 0xa2, 0x8d, 0x71, + 0x28, 0x46, 0x23, 0x17, 0x3d, 0x63, 0x8e, 0x01, 0x16, 0x28, 0x50, 0xc8, 0x5c, 0xc4, 0x98, 0xdc, + 0x55, 0x29, 0xfc, 0x40, 0x62, 0x68, 0x65, 0x70, 0xfa, 0x19, 0xe1, 0x6a, 0xc6, 0x7e, 0x61, 0x49, + 0x89, 0x45, 0x79, 0x4e, 0xb4, 0x78, 0xbb, 0x44, 0x79, 0x4e, 0x74, 0xba, 0xe0, 0x7c, 0x7c, 0x1a, + 0xce, 0xe6, 0x8e, 0xc6, 0xc1, 0x72, 0xad, 0xfe, 0xad, 0x1a, 0x8c, 0x76, 0x08, 0xb1, 0x8e, 0x61, + 0x6d, 0x7e, 0x24, 0x21, 0xf4, 0x3c, 0x57, 0x3e, 0xce, 0x74, 0x91, 0xf1, 0xaa, 0x9b, 0x32, 0x5e, + 0xbd, 0x50, 0x9e, 0xc4, 0x70, 0xcb, 0xd5, 0xaf, 0xd7, 0x00, 0x68, 0xb5, 0x86, 0x61, 0x6e, 0x71, + 0xae, 0x23, 0x57, 0xb4, 0x96, 0xe4, 0x3a, 0xd9, 0x95, 0x78, 0x9c, 0x37, 0x93, 0x3a, 0x8c, 0xf3, + 0x0c, 0xd0, 0xe2, 0x26, 0x00, 0x78, 0x7a, 0x4c, 0x5a, 0x82, 0x05, 0x24, 0xc9, 0x31, 0x46, 0xef, + 0x11, 0xc7, 0xd0, 0xbf, 0xa5, 0x01, 0xcb, 0x65, 0xd6, 0x5a, 0x65, 0x0f, 0xb3, 0x6d, 0x7e, 0x45, + 0xd7, 0x52, 0x63, 0x64, 0x32, 0x43, 0x78, 0x5b, 0x05, 0xe0, 0x64, 0x3d, 0xe4, 0x2a, 0xe3, 0x5a, + 0xab, 0xa0, 0x0f, 0x88, 0x8e, 0x1c, 0xc8, 0x23, 0x7e, 0x54, 0x83, 0x13, 0xa9, 0xba, 0x87, 0xd0, + 0x0c, 0xef, 0x0f, 0xcb, 0x55, 0x72, 0x5a, 0x8c, 0x1c, 0x43, 0x4e, 0x0b, 0x99, 0x5e, 0x62, 0xf4, + 0x3e, 0xa7, 0x97, 0xf8, 0xae, 0x06, 0x93, 0x74, 0x8c, 0x8f, 0x81, 0xfd, 0xfe, 0x62, 0x92, 0xfd, + 0x3e, 0x5d, 0x7a, 0xed, 0x14, 0x70, 0xdd, 0xbf, 0xd0, 0x80, 0x45, 0xb9, 0x17, 0x7e, 0x09, 0xca, + 0x55, 0xbf, 0x56, 0x70, 0xd5, 0xff, 0xb0, 0xf0, 0x14, 0x48, 0x99, 0x71, 0x15, 0x6f, 0x81, 0xf7, + 0x29, 0xce, 0x00, 0x23, 0x49, 0x56, 0x92, 0x75, 0x08, 0x40, 0x6f, 0xc0, 0x6c, 0xb0, 0xe9, 0x79, + 0xa1, 0x7c, 0xac, 0x3f, 0x5a, 0xc1, 0x68, 0xcf, 0xfc, 0x94, 0xa3, 0x6f, 0xe1, 0xbb, 0xb3, 0xa3, + 0x22, 0xc7, 0x49, 0x5a, 0xfa, 0x1f, 0x8b, 0xcf, 0x3f, 0xc2, 0x56, 0x39, 0x46, 0xd6, 0xf7, 0x9e, + 0x14, 0xeb, 0x53, 0xb2, 0x03, 0x27, 0xd8, 0x5f, 0x3d, 0x5e, 0xf8, 0xd2, 0x6e, 0x9e, 0x58, 0xb0, + 0xff, 0x48, 0x7c, 0xa6, 0xcc, 0x5e, 0xd0, 0x87, 0x59, 0x47, 0x4d, 0x51, 0x27, 0x56, 0x6e, 0xa9, + 0xec, 0x76, 0xf2, 0xf5, 0x41, 0xa2, 0x18, 0x27, 0x09, 0x50, 0x06, 0x1a, 0x7d, 0x1d, 0x4f, 0x92, + 0x5f, 0x8b, 0xfd, 0x43, 0xd7, 0x54, 0x00, 0x4e, 0xd6, 0xd3, 0xbf, 0x56, 0x83, 0x87, 0x78, 0xdf, + 0x99, 0x8d, 0xa3, 0x45, 0xfa, 0xc4, 0xb5, 0x88, 0x6b, 0xee, 0x32, 0x01, 0xdb, 0xf2, 0xba, 0xe8, + 0x53, 0x1a, 0x4c, 0x12, 0xd7, 0xea, 0x7b, 0xb6, 0x1b, 0x5d, 0x51, 0xbc, 0x5a, 0x21, 0x01, 0x44, + 0x01, 0x99, 0x25, 0x41, 0x41, 0x04, 0x96, 0x14, 0xbf, 0xb0, 0xa4, 0x8c, 0x76, 0x60, 0xac, 0xef, + 0x7b, 0xeb, 0x91, 0x72, 0xf9, 0xca, 0xbd, 0xef, 0xc2, 0x1a, 0x45, 0xcf, 0xa7, 0x97, 0xfd, 0x8b, + 0x39, 0x41, 0x1d, 0xc3, 0xbb, 0x0f, 0xd5, 0xf5, 0xa3, 0x08, 0xfe, 0x37, 0x40, 0x3f, 0xb8, 0x2f, + 0x47, 0x41, 0xf8, 0x12, 0x3c, 0xa2, 0x20, 0x5c, 0xda, 0xa1, 0x9a, 0x48, 0xd3, 0xe8, 0x1b, 0x26, + 0xd5, 0xac, 0xd9, 0xcb, 0x64, 0x6e, 0x7b, 0x3f, 0x02, 0xca, 0xcf, 0x8c, 0x42, 0x5d, 0xc1, 0x99, + 0xf0, 0xe0, 0x89, 0xd8, 0xcb, 0x57, 0x34, 0x98, 0x36, 0x5c, 0xd7, 0x0b, 0x0d, 0x35, 0xfd, 0x27, + 0xa9, 0x3a, 0x39, 0x79, 0xb4, 0x16, 0x16, 0x63, 0x3a, 0xa9, 0x1b, 0x5e, 0x05, 0x82, 0xd5, 0xee, + 0x0c, 0xf1, 0xe5, 0xa9, 0x1d, 0xab, 0x2f, 0x0f, 0xfa, 0x78, 0xc4, 0x43, 0xb8, 0x76, 0xf4, 0xa1, + 0xfb, 0x31, 0x40, 0x8c, 0x27, 0xe5, 0xdb, 0x2d, 0xce, 0x3f, 0x0f, 0x27, 0xd3, 0xc3, 0x77, 0x24, + 0x5b, 0xc2, 0xef, 0x8c, 0x24, 0xd6, 0x57, 0x21, 0xf9, 0x43, 0x98, 0x6b, 0xbe, 0x9e, 0x5a, 0x32, + 0xfc, 0xe8, 0x7d, 0xed, 0xbe, 0x8d, 0xc8, 0xbd, 0x5d, 0x37, 0xc7, 0xec, 0x03, 0x56, 0x75, 0xde, + 0x9a, 0x70, 0x4e, 0x19, 0x23, 0x76, 0x45, 0xda, 0xdc, 0x24, 0xe6, 0xd6, 0x91, 0xac, 0x14, 0x0d, + 0xaa, 0x3b, 0x4a, 0x24, 0x4a, 0x7a, 0xa0, 0xc7, 0x60, 0x62, 0xdb, 0x0e, 0xec, 0x28, 0x64, 0x86, + 0x82, 0xe3, 0x65, 0x5e, 0x8c, 0x23, 0xb8, 0xbe, 0x02, 0x0f, 0x2b, 0x38, 0x72, 0x9f, 0xe9, 0x1e, + 0xa5, 0x4b, 0xff, 0x60, 0x22, 0x3a, 0x72, 0xc5, 0x1b, 0xa6, 0x6f, 0x6b, 0xf0, 0x20, 0x29, 0xe2, + 0x7a, 0xe2, 0xd8, 0xaa, 0xbc, 0xeb, 0x0a, 0xd9, 0xaa, 0x88, 0x47, 0x58, 0x04, 0xc6, 0xc5, 0x5d, + 0x43, 0x77, 0x12, 0x99, 0xad, 0x6a, 0x95, 0xac, 0x1d, 0x39, 0x73, 0x34, 0x2c, 0xaf, 0x15, 0xfa, + 0x0d, 0x0d, 0xce, 0x38, 0x39, 0xfb, 0x46, 0x08, 0x89, 0x37, 0xef, 0xc7, 0x9e, 0xe4, 0x57, 0x4c, + 0x79, 0x10, 0x9c, 0xdb, 0x17, 0xf4, 0x77, 0x0b, 0xdf, 0x90, 0x8f, 0x55, 0x48, 0xde, 0x7a, 0xd0, + 0x62, 0x2c, 0xf1, 0x9c, 0xfc, 0xe3, 0x30, 0xed, 0xc5, 0x1b, 0x4c, 0xbc, 0xfb, 0xbf, 0x5e, 0xb5, + 0x77, 0xca, 0x9e, 0xe5, 0x97, 0xf6, 0x4a, 0x01, 0x56, 0x09, 0xa2, 0xb7, 0x34, 0x40, 0x56, 0x46, + 0x92, 0x10, 0x8e, 0x03, 0xf8, 0xde, 0xcb, 0x4b, 0xfc, 0x96, 0x32, 0x5b, 0x8e, 0x73, 0x7a, 0xa1, + 0xff, 0xcb, 0x09, 0xae, 0xd4, 0xb1, 0xeb, 0x19, 0x13, 0xc6, 0xd7, 0x99, 0x5d, 0x44, 0x6c, 0xcc, + 0xf2, 0x56, 0x18, 0x6e, 0x5e, 0xe1, 0x56, 0x0b, 0xfe, 0x3f, 0x16, 0xa8, 0xd1, 0x02, 0xc0, 0xba, + 0xe3, 0x99, 0x5b, 0xcd, 0x76, 0x0b, 0x47, 0xf2, 0x30, 0xdb, 0x0c, 0x0d, 0x59, 0x8a, 0x95, 0x1a, + 0xe8, 0xc3, 0x30, 0x62, 0x49, 0x55, 0xfa, 0xd9, 0x2a, 0x56, 0x84, 0xd8, 0x7f, 0xbf, 0xb5, 0xda, + 0xc1, 0x14, 0x2b, 0xf2, 0x60, 0xd2, 0x15, 0x7a, 0x93, 0xd8, 0x5c, 0xe5, 0x93, 0xa8, 0x49, 0x05, + 0x4c, 0xea, 0x7d, 0x51, 0x09, 0x96, 0x44, 0x28, 0x41, 0x69, 0x18, 0x19, 0xab, 0x48, 0x50, 0x5a, + 0x45, 0x86, 0xd9, 0xac, 0xd6, 0x54, 0x1b, 0xc7, 0xf8, 0xe1, 0x6d, 0x1c, 0xb3, 0x85, 0xf6, 0x8d, + 0x0d, 0x18, 0x0f, 0x0d, 0xdb, 0x0d, 0x23, 0xef, 0xce, 0xe7, 0x4b, 0x7f, 0xc0, 0x4d, 0x8a, 0x26, + 0xd6, 0xef, 0xd8, 0xcf, 0x00, 0x0b, 0xec, 0x74, 0x35, 0x6e, 0xb3, 0x5c, 0x93, 0x22, 0x70, 0x69, + 0xf9, 0xd5, 0xc8, 0x53, 0x56, 0xf2, 0xd5, 0xc8, 0xff, 0xc7, 0x02, 0x35, 0xda, 0xa2, 0x5a, 0xbb, + 0xb8, 0xb8, 0x9e, 0xaa, 0x9c, 0x45, 0x4f, 0xdc, 0x5a, 0x8b, 0x57, 0x00, 0xe2, 0xba, 0x5a, 0x12, + 0x40, 0x26, 0x4c, 0x08, 0x33, 0x99, 0x48, 0x5e, 0xf0, 0x6c, 0x95, 0x04, 0x32, 0x51, 0x26, 0x56, + 0xfe, 0x34, 0x3b, 0xc2, 0xac, 0xff, 0xf1, 0x28, 0xb7, 0x70, 0x0a, 0x07, 0x21, 0x1f, 0x94, 0x04, + 0xfd, 0x42, 0x0f, 0x78, 0xbe, 0x6c, 0x7a, 0x66, 0x8e, 0x26, 0x91, 0xaf, 0x26, 0x7a, 0xc3, 0xaa, + 0x50, 0x41, 0x5d, 0x98, 0x8c, 0x90, 0x55, 0x32, 0x19, 0x47, 0xa9, 0xc2, 0xf8, 0x80, 0xca, 0xc4, + 0x61, 0x12, 0x39, 0x6a, 0xe6, 0xbd, 0x39, 0x52, 0x22, 0xee, 0x1d, 0xea, 0xbd, 0x51, 0xbe, 0x0b, + 0xd5, 0x68, 0x29, 0x17, 0xaa, 0xe7, 0xe0, 0x84, 0xb8, 0xac, 0x6e, 0x5b, 0x84, 0x5d, 0x9f, 0x0a, + 0x47, 0x6b, 0xe6, 0xc8, 0xd0, 0x4c, 0x82, 0x70, 0xba, 0x2e, 0xfa, 0x86, 0x06, 0x8f, 0x70, 0x27, + 0xef, 0x26, 0x3d, 0xca, 0x58, 0x16, 0x50, 0x12, 0xa7, 0x1d, 0x8d, 0xdd, 0x8b, 0xc6, 0x8f, 0xec, + 0x5e, 0xf4, 0xe8, 0xfe, 0x5e, 0xfd, 0x91, 0xe6, 0x21, 0x70, 0xe3, 0x43, 0xf5, 0x40, 0xbf, 0x0e, + 0x53, 0x72, 0x0b, 0xa3, 0x87, 0x14, 0xd1, 0x37, 0xe6, 0xb2, 0xd7, 0xc9, 0x2e, 0x97, 0x83, 0xeb, + 0x09, 0x39, 0x98, 0xab, 0xf2, 0x2f, 0xd3, 0x02, 0x21, 0x12, 0xeb, 0xff, 0x59, 0xe3, 0x6b, 0x56, + 0x64, 0xae, 0x35, 0x60, 0xba, 0xc7, 0x83, 0x0d, 0xb2, 0x17, 0x82, 0x5a, 0xf9, 0xb7, 0x89, 0x2b, + 0x31, 0x1a, 0xac, 0xe2, 0x44, 0x3b, 0xd9, 0xf4, 0xca, 0x57, 0x2b, 0xf2, 0x97, 0x43, 0x67, 0x59, + 0x46, 0xd9, 0x36, 0x54, 0xc6, 0x8e, 0x1c, 0x23, 0x53, 0xf9, 0x6c, 0x33, 0xce, 0x91, 0x07, 0x66, + 0x20, 0xd4, 0xbf, 0x53, 0x83, 0xdc, 0xd4, 0x2e, 0x48, 0x87, 0x71, 0xee, 0xae, 0xaf, 0x26, 0x9e, + 0xe6, 0xbe, 0xfc, 0x58, 0x40, 0xd0, 0x0d, 0xae, 0x62, 0xb9, 0x16, 0x8b, 0x99, 0x13, 0x4f, 0xbd, + 0xfa, 0x32, 0x64, 0x29, 0xaf, 0x02, 0xce, 0x6f, 0x87, 0xb6, 0x01, 0xf5, 0x8c, 0x9d, 0x34, 0xb6, + 0x0a, 0xa9, 0x0d, 0x56, 0x32, 0xd8, 0x70, 0x0e, 0x05, 0xba, 0x17, 0x0d, 0xd3, 0x24, 0xfd, 0x90, + 0x58, 0xfc, 0x13, 0xa3, 0x27, 0xf8, 0x6c, 0x2f, 0x2e, 0x26, 0x41, 0x38, 0x5d, 0x57, 0xff, 0x9d, + 0x1a, 0x8c, 0x31, 0x2b, 0xea, 0xdb, 0xc4, 0xa9, 0x88, 0xf5, 0xb5, 0xf0, 0x82, 0x6d, 0x33, 0x75, + 0xc1, 0xf6, 0x62, 0x05, 0x1a, 0xc3, 0x6f, 0xd8, 0x3e, 0x04, 0xe7, 0x58, 0xb5, 0x45, 0x8b, 0x89, + 0xe3, 0x01, 0xb1, 0x16, 0x2d, 0x8b, 0xbd, 0x79, 0x3b, 0xd8, 0x06, 0xf1, 0x10, 0x8c, 0x0c, 0x7c, + 0x27, 0xfd, 0xda, 0xf2, 0x16, 0x5e, 0xc6, 0xb4, 0x5c, 0xff, 0xac, 0x06, 0x27, 0x19, 0xee, 0xa6, + 0x4f, 0x18, 0xcb, 0x34, 0x9c, 0x00, 0xdd, 0x86, 0x49, 0x5f, 0x28, 0xe2, 0x62, 0x76, 0x56, 0xca, + 0x7f, 0x9b, 0x82, 0x18, 0x0b, 0xa4, 0x22, 0x2b, 0x90, 0xf8, 0x85, 0x25, 0x31, 0xfd, 0xcf, 0xc7, + 0x61, 0xbe, 0xa8, 0x11, 0xfa, 0x82, 0x06, 0xe7, 0xcc, 0x98, 0x83, 0x2e, 0x0e, 0xc2, 0x4d, 0xcf, + 0xb7, 0x43, 0x9b, 0x04, 0x95, 0x64, 0xeb, 0xe6, 0xa2, 0xec, 0x16, 0x8b, 0x69, 0xd1, 0xcc, 0x25, + 0x81, 0x0b, 0x48, 0xa3, 0x8f, 0x01, 0x6c, 0xc5, 0x81, 0xb4, 0x6a, 0x15, 0xd2, 0x35, 0xb3, 0x0f, + 0x57, 0xa2, 0x6d, 0x45, 0xbd, 0x62, 0x92, 0xbc, 0x52, 0xae, 0xd0, 0x63, 0xc9, 0xa2, 0x83, 0xcd, + 0xeb, 0x64, 0xb7, 0x6f, 0xd8, 0x7e, 0xa5, 0x64, 0xd1, 0x7c, 0x1d, 0x76, 0xae, 0x09, 0x5c, 0x49, + 0xea, 0x4a, 0xb9, 0x42, 0x0f, 0xfd, 0x75, 0x0d, 0x66, 0xf9, 0x89, 0x2d, 0xdc, 0x89, 0x04, 0x0b, + 0xba, 0x51, 0xbe, 0x07, 0x37, 0x54, 0x74, 0xb2, 0x13, 0xcc, 0xb8, 0x9f, 0x04, 0x25, 0x09, 0xa3, + 0x2f, 0x69, 0x70, 0x2a, 0x99, 0x64, 0xeb, 0x3a, 0xd9, 0x15, 0xea, 0x40, 0xa7, 0xc2, 0x80, 0xa4, + 0x51, 0xca, 0x2e, 0x31, 0x61, 0x28, 0x0b, 0xce, 0x76, 0x82, 0x75, 0x8d, 0x84, 0xa6, 0x25, 0x92, + 0xb7, 0xdb, 0x9e, 0x4b, 0xbb, 0x36, 0x5e, 0xb5, 0x6b, 0x4b, 0x37, 0x9b, 0xad, 0x04, 0xca, 0x64, + 0xd7, 0xb2, 0xe0, 0x6c, 0x27, 0xf4, 0x3f, 0x19, 0x85, 0x4b, 0xc3, 0x91, 0xa1, 0x17, 0x22, 0x0f, + 0x76, 0xce, 0x62, 0x1e, 0x4b, 0x7b, 0xb0, 0xcf, 0xe7, 0x6c, 0xd5, 0x84, 0x37, 0xbb, 0x0f, 0xc8, + 0x31, 0x82, 0xb0, 0xe9, 0xf5, 0xfa, 0x0e, 0x89, 0x04, 0x9e, 0x32, 0x41, 0x97, 0xf6, 0x45, 0x08, + 0xa4, 0x24, 0x26, 0x9c, 0x83, 0x3d, 0xa2, 0xc9, 0xd3, 0x69, 0x4a, 0x9a, 0x23, 0xe5, 0x69, 0x26, + 0x31, 0xe1, 0x1c, 0xec, 0xe8, 0x4d, 0x0d, 0xce, 0x27, 0x8b, 0xaf, 0xd8, 0xae, 0x1d, 0x6c, 0x8a, + 0x60, 0x5c, 0x47, 0x77, 0xa0, 0x67, 0x81, 0xe8, 0x97, 0x0b, 0x31, 0xe2, 0x21, 0xd4, 0xd0, 0xe7, + 0x34, 0xb8, 0x90, 0x1a, 0x97, 0x44, 0x68, 0xb0, 0xa3, 0xfb, 0xd2, 0xb3, 0x77, 0xa6, 0xcb, 0xc5, + 0x28, 0xf1, 0x30, 0x7a, 0xfa, 0xaf, 0xd4, 0xe0, 0x81, 0x02, 0xfe, 0x56, 0x30, 0x59, 0xda, 0x7d, + 0x9d, 0xac, 0x1f, 0xc3, 0xa2, 0x64, 0x4e, 0xc8, 0x6c, 0x0c, 0xde, 0x2e, 0x4e, 0xc8, 0xac, 0xb3, + 0x05, 0xd7, 0xfd, 0xbf, 0xab, 0xc1, 0xa9, 0x4c, 0x2c, 0xaf, 0x43, 0x88, 0x23, 0xc7, 0x78, 0xe9, + 0xfd, 0xee, 0x74, 0xd2, 0xf0, 0xe9, 0xdc, 0x84, 0xe1, 0xaf, 0xc0, 0x6c, 0xe2, 0xb2, 0x5f, 0x46, + 0x30, 0xd0, 0x72, 0x23, 0x18, 0xa8, 0x01, 0x0a, 0x6a, 0xc3, 0x03, 0x14, 0xd4, 0xe0, 0x7c, 0xf1, + 0x99, 0xf6, 0x97, 0x66, 0xd9, 0xcb, 0xad, 0x9f, 0x15, 0x2e, 0xfe, 0xd2, 0x8c, 0x81, 0x3c, 0x67, + 0x0b, 0xe5, 0x89, 0xbf, 0x3a, 0x67, 0xff, 0xea, 0x9c, 0xbd, 0x07, 0xe7, 0xec, 0xb7, 0x4f, 0x88, + 0x33, 0x86, 0x5d, 0x3e, 0x7c, 0x04, 0xc6, 0x59, 0xe4, 0x92, 0x48, 0x41, 0xfa, 0xb9, 0xf2, 0x21, + 0x51, 0x02, 0x6e, 0xd8, 0xe0, 0xff, 0x63, 0x81, 0x16, 0xb5, 0xe0, 0xa4, 0xe9, 0x78, 0x03, 0x4b, + 0xe4, 0x9b, 0x5b, 0x8d, 0x6d, 0x28, 0x32, 0x94, 0x5c, 0x33, 0x05, 0xc7, 0x99, 0x16, 0xa8, 0xa3, + 0x5e, 0x47, 0x3c, 0x55, 0xd6, 0xd9, 0x8e, 0x87, 0x4f, 0x97, 0xd7, 0x10, 0x3e, 0x00, 0x89, 0x8e, + 0x8b, 0xe8, 0xc5, 0xd6, 0xf3, 0x25, 0xc3, 0xe4, 0xc9, 0x53, 0x27, 0xb2, 0x38, 0xc8, 0xa2, 0x00, + 0x2b, 0x54, 0x50, 0x00, 0xd3, 0x9b, 0xf6, 0x3a, 0xf1, 0xdd, 0x38, 0x8b, 0x73, 0x59, 0xb3, 0xc0, + 0xb5, 0x18, 0x0f, 0x37, 0xbb, 0x29, 0x05, 0x58, 0xa5, 0x82, 0x02, 0xae, 0x80, 0x72, 0x03, 0x6c, + 0xa5, 0x5c, 0xcf, 0xb1, 0x69, 0x37, 0xfe, 0xd2, 0xb8, 0x0c, 0x2b, 0x64, 0x28, 0x51, 0x57, 0x06, + 0x20, 0x12, 0xf7, 0x6e, 0xe5, 0x88, 0xc6, 0x71, 0x8c, 0x62, 0xa2, 0x71, 0x19, 0x56, 0xc8, 0xd0, + 0xe1, 0xed, 0xc5, 0x61, 0xa7, 0xc4, 0x15, 0xc6, 0x8b, 0x55, 0xe3, 0x7f, 0x09, 0xab, 0x66, 0x5c, + 0x80, 0x55, 0x2a, 0xc8, 0x03, 0xe8, 0xc9, 0x70, 0x54, 0xe2, 0x3e, 0xa3, 0xdc, 0x97, 0xc6, 0x51, + 0xad, 0xb8, 0x52, 0x1d, 0xff, 0xc6, 0x0a, 0x09, 0xb4, 0xa5, 0x5c, 0x67, 0x41, 0x05, 0x4b, 0xff, + 0xa1, 0xae, 0xb2, 0x3e, 0x10, 0xdb, 0x48, 0xa7, 0xd9, 0xbe, 0xbd, 0xa0, 0xd8, 0x47, 0xef, 0xee, + 0xd5, 0x67, 0x18, 0x33, 0xc9, 0xd8, 0x4b, 0x63, 0x7f, 0xc2, 0x99, 0xa1, 0xfe, 0x84, 0x57, 0xa9, + 0x52, 0xae, 0xb8, 0xe2, 0x33, 0x06, 0x31, 0xcb, 0x9a, 0xc8, 0x00, 0x66, 0x9d, 0x74, 0x05, 0x9c, + 0x6d, 0xc3, 0xa5, 0x2e, 0x62, 0xb1, 0xf6, 0x73, 0xaa, 0xd4, 0xc5, 0xcb, 0xb0, 0x84, 0xa2, 0xdb, + 0x30, 0x13, 0x28, 0x0e, 0x8a, 0x22, 0x97, 0x59, 0x95, 0x1b, 0x28, 0xe1, 0x9d, 0xc8, 0xe2, 0xba, + 0xa8, 0x25, 0x38, 0x41, 0x08, 0x7d, 0x0c, 0xa6, 0x22, 0x8b, 0x79, 0x30, 0x7f, 0xb2, 0xc2, 0xf3, + 0xb9, 0xfc, 0x28, 0x64, 0xb1, 0x09, 0x3c, 0x02, 0x05, 0x38, 0x26, 0x88, 0xb6, 0x93, 0x4f, 0xe8, + 0x4f, 0xdd, 0x9b, 0x47, 0xc3, 0xd2, 0x7d, 0xa8, 0xe8, 0xf9, 0x3c, 0x6a, 0xc2, 0x29, 0xb2, 0xd3, + 0xf7, 0x82, 0x81, 0x4f, 0x58, 0x10, 0x44, 0x36, 0x43, 0x28, 0xbe, 0x2e, 0x5a, 0x4a, 0x03, 0x71, + 0xb6, 0x3e, 0xfa, 0xb4, 0x06, 0x27, 0x79, 0x32, 0x38, 0x7a, 0xae, 0x79, 0x2e, 0x71, 0xc3, 0x80, + 0x65, 0x3b, 0x2b, 0xfb, 0xc4, 0xad, 0x93, 0x42, 0xc6, 0xf3, 0x77, 0xa4, 0x4b, 0x71, 0x86, 0x28, + 0x5d, 0x3d, 0xea, 0xbb, 0x63, 0x96, 0x35, 0xad, 0xec, 0xea, 0x51, 0x1f, 0x35, 0xf3, 0xd5, 0xa3, + 0x96, 0xe0, 0x04, 0x21, 0xfd, 0x5f, 0x6b, 0x00, 0xd2, 0x14, 0x4c, 0x8e, 0xc1, 0x3e, 0x4e, 0x12, + 0xf6, 0xf1, 0x66, 0x35, 0xdb, 0x35, 0x29, 0x7c, 0x79, 0xfb, 0x87, 0x1a, 0xcc, 0xc5, 0xd5, 0x8e, + 0x41, 0xf3, 0xb5, 0x92, 0x9a, 0xef, 0x0b, 0x15, 0x3f, 0xac, 0x40, 0xfd, 0xfd, 0xbf, 0x35, 0xf5, + 0xb3, 0x98, 0xb0, 0x75, 0x5b, 0xb9, 0xa1, 0xe5, 0x77, 0xc2, 0xed, 0x4a, 0x37, 0xb4, 0xea, 0x7b, + 0xc6, 0xf8, 0x8b, 0x73, 0x6e, 0x6c, 0x3f, 0x91, 0x90, 0x74, 0xaa, 0x3c, 0xdc, 0x95, 0x62, 0x4d, + 0x44, 0x9b, 0x0f, 0xc1, 0x41, 0x62, 0x8f, 0xaf, 0x72, 0x3e, 0xee, 0xf5, 0xb9, 0x58, 0xf2, 0xb1, + 0xa8, 0xf2, 0xc9, 0x43, 0xf9, 0x9d, 0xfe, 0xad, 0x39, 0x98, 0x56, 0xae, 0x4e, 0x7e, 0x2c, 0x77, + 0xf2, 0x03, 0x98, 0x36, 0x65, 0x90, 0xe0, 0x68, 0xe4, 0xab, 0x12, 0x95, 0x2c, 0x37, 0x8e, 0x3f, + 0x1c, 0x60, 0x95, 0x0e, 0x15, 0x10, 0xe4, 0x42, 0x1b, 0xb9, 0x17, 0xae, 0x00, 0xc3, 0x16, 0xd7, + 0xfb, 0x01, 0x22, 0x61, 0x93, 0x58, 0x22, 0xe4, 0x9c, 0x4c, 0xb2, 0xd1, 0x0e, 0xae, 0x49, 0x18, + 0x56, 0xea, 0xa1, 0x37, 0x60, 0xd6, 0x51, 0x63, 0xce, 0x0b, 0x51, 0xb8, 0xdc, 0x53, 0x8c, 0x44, + 0xf4, 0x7a, 0x7e, 0x15, 0x90, 0x28, 0xc2, 0x49, 0x5a, 0x68, 0x0b, 0xa6, 0x9c, 0x28, 0xa1, 0x84, + 0x90, 0x87, 0x9f, 0x2f, 0x4d, 0x98, 0x61, 0xe1, 0x9e, 0x3b, 0xf2, 0x27, 0x8e, 0xf1, 0xd3, 0x75, + 0x27, 0x7f, 0x54, 0xf3, 0xde, 0x89, 0xa9, 0xc9, 0x75, 0x27, 0x8b, 0x02, 0xac, 0x50, 0x29, 0xf0, + 0xae, 0x98, 0x2c, 0xe5, 0x5d, 0x31, 0x80, 0xd3, 0x3e, 0x09, 0xfd, 0xdd, 0xe6, 0xae, 0xc9, 0x12, + 0xbb, 0xf8, 0x21, 0xd3, 0x5b, 0xa7, 0xca, 0xc5, 0x9a, 0xc1, 0x59, 0x54, 0x38, 0x0f, 0x3f, 0xba, + 0x08, 0xa3, 0x54, 0x78, 0x12, 0xb1, 0xdc, 0x98, 0x8d, 0x8d, 0x8a, 0x56, 0x98, 0x95, 0xa2, 0x0f, + 0xc0, 0x74, 0x48, 0xcc, 0x4d, 0xd7, 0x36, 0x0d, 0xa7, 0xdd, 0x12, 0x92, 0x69, 0x2c, 0x8b, 0xc4, + 0x20, 0xac, 0xd6, 0x43, 0x0d, 0x18, 0x19, 0xd8, 0x96, 0x10, 0x49, 0x7f, 0x5a, 0x5e, 0x75, 0xb6, + 0x5b, 0x77, 0xf7, 0xea, 0xef, 0x8c, 0x3d, 0x95, 0xe5, 0x97, 0x5c, 0xee, 0x6f, 0x75, 0x2f, 0x87, + 0xbb, 0x7d, 0x12, 0x2c, 0xdc, 0x6a, 0xb7, 0x30, 0x6d, 0x9c, 0xe7, 0x6d, 0x32, 0x7b, 0x04, 0x6f, + 0x93, 0xb7, 0x34, 0x38, 0x6d, 0xa4, 0x6f, 0x69, 0x49, 0x30, 0x3f, 0x57, 0x81, 0x2b, 0xe7, 0x5f, + 0xfd, 0xc6, 0x61, 0x7b, 0x17, 0xb3, 0xf4, 0x70, 0x5e, 0x27, 0x90, 0x0f, 0xa8, 0x67, 0x77, 0x65, + 0xfa, 0x08, 0x31, 0xd5, 0x27, 0xca, 0x59, 0x6b, 0x56, 0x32, 0x98, 0x70, 0x0e, 0x76, 0xb4, 0x03, + 0xd3, 0x66, 0x6c, 0xb8, 0x62, 0x49, 0x7c, 0x4b, 0x0b, 0x75, 0xa9, 0x8b, 0x61, 0x91, 0x1f, 0x5e, + 0x31, 0x8b, 0xa9, 0xa4, 0xa4, 0x9d, 0x48, 0x51, 0x9c, 0x85, 0xad, 0x84, 0x7d, 0xf6, 0xa9, 0xf2, + 0x76, 0xa2, 0x7c, 0x8c, 0x78, 0x08, 0x35, 0x16, 0xd4, 0xc5, 0x49, 0xa6, 0x79, 0x61, 0x52, 0x72, + 0xd9, 0x47, 0x9c, 0xa9, 0x94, 0x31, 0x7c, 0x75, 0xa6, 0x0a, 0x71, 0x9a, 0xa2, 0xfe, 0xdf, 0x35, + 0xc8, 0x08, 0xc1, 0xc8, 0x84, 0x09, 0x8a, 0xbb, 0xb5, 0xda, 0x11, 0xd2, 0xd8, 0xb3, 0x25, 0x4f, + 0x30, 0x86, 0x83, 0x1b, 0xd9, 0xc5, 0x0f, 0x1c, 0x61, 0xa6, 0x72, 0xb5, 0xab, 0x04, 0x69, 0x15, + 0x52, 0x67, 0x39, 0x29, 0x41, 0x8d, 0xf6, 0xca, 0xe5, 0x6a, 0xb5, 0x04, 0x27, 0x08, 0xe9, 0xcb, + 0x00, 0xb1, 0xee, 0x52, 0xd9, 0xa9, 0xea, 0x4f, 0xc6, 0xe0, 0x6c, 0x55, 0x87, 0x7e, 0x96, 0x8a, + 0x83, 0xa5, 0x4a, 0x5f, 0xdc, 0x08, 0x89, 0x7f, 0xe3, 0xc6, 0x8a, 0x4c, 0x23, 0x5d, 0x32, 0x17, + 0x48, 0x9c, 0x6c, 0x3f, 0x83, 0x11, 0x17, 0x50, 0x62, 0x7a, 0x9b, 0xc8, 0x12, 0x8a, 0xa9, 0x8c, + 0xc7, 0x72, 0x44, 0xf3, 0xd0, 0x0f, 0x5c, 0x6f, 0x4b, 0x03, 0x71, 0xb6, 0x7e, 0x1a, 0x09, 0x4f, + 0xdb, 0x4e, 0x65, 0x04, 0x2d, 0x8b, 0x84, 0xe7, 0x6e, 0xcf, 0xd6, 0x57, 0x91, 0xf0, 0x99, 0xa2, + 0x7b, 0x63, 0x2c, 0x8b, 0x44, 0x02, 0x71, 0xb6, 0x3e, 0xb2, 0xe0, 0xa2, 0x4f, 0x4c, 0xaf, 0xd7, + 0x23, 0xae, 0xc5, 0xf3, 0x5c, 0x19, 0x7e, 0xd7, 0x76, 0xaf, 0xf8, 0x06, 0xab, 0xc8, 0xc4, 0x00, + 0xad, 0xf1, 0xf0, 0xfe, 0x5e, 0xfd, 0x22, 0x1e, 0x52, 0x0f, 0x0f, 0xc5, 0x82, 0x7a, 0x70, 0x62, + 0xc0, 0x22, 0xb3, 0xfb, 0x6d, 0x37, 0x24, 0xfe, 0xb6, 0xe1, 0x08, 0xd3, 0x57, 0xa9, 0x4c, 0x9f, + 0xb7, 0x92, 0xa8, 0x70, 0x1a, 0x37, 0xda, 0xa5, 0x67, 0xb3, 0xe8, 0x8e, 0x42, 0x72, 0xb2, 0x7c, + 0xb2, 0x1a, 0x9c, 0x45, 0x87, 0xf3, 0x68, 0xe8, 0x7f, 0x5b, 0x03, 0xe1, 0xd6, 0x4b, 0x8f, 0x6a, + 0xe5, 0x4e, 0x6f, 0x32, 0x75, 0x9f, 0x77, 0x51, 0x3c, 0x73, 0xad, 0xc5, 0x50, 0xe5, 0x89, 0xeb, + 0x7b, 0x94, 0x98, 0x22, 0x53, 0xb1, 0x5c, 0xc3, 0x31, 0x2b, 0xd9, 0x0d, 0xfe, 0x3f, 0x98, 0xe8, + 0xfb, 0x76, 0xcf, 0xf0, 0x77, 0x85, 0x88, 0xc9, 0x04, 0x2e, 0xe1, 0x90, 0x40, 0xf7, 0x8e, 0x80, + 0xea, 0xdf, 0xd7, 0x40, 0xb4, 0x66, 0x89, 0x38, 0x0e, 0x95, 0x8f, 0xe1, 0x40, 0xe7, 0x3e, 0x25, + 0x8f, 0xc4, 0x48, 0x61, 0x1e, 0x89, 0xfb, 0x94, 0x5e, 0xe1, 0xdb, 0x1a, 0x9c, 0x48, 0x06, 0x78, + 0x09, 0xd0, 0xbb, 0x61, 0x42, 0x84, 0x82, 0x13, 0x61, 0x9c, 0xf8, 0x2b, 0x75, 0x91, 0x74, 0x3d, + 0x82, 0x25, 0x0d, 0x4e, 0x55, 0xd4, 0xbe, 0xfc, 0x40, 0x33, 0x07, 0x28, 0x60, 0x7b, 0x73, 0x30, + 0xce, 0xa3, 0x88, 0xd1, 0xc3, 0x2d, 0xe7, 0x65, 0xe4, 0x72, 0x85, 0x68, 0x65, 0x65, 0x1e, 0xb2, + 0xa9, 0xb1, 0xab, 0x6b, 0x43, 0x63, 0x57, 0x77, 0x78, 0xea, 0x9a, 0x2a, 0xf7, 0x0d, 0x4d, 0xdc, + 0x16, 0xf9, 0x6b, 0xa3, 0xb4, 0x35, 0x83, 0x84, 0x19, 0x7e, 0xb4, 0x82, 0x9c, 0xc3, 0x87, 0x40, + 0x31, 0xc6, 0xcf, 0x0d, 0x31, 0xc4, 0xc7, 0x51, 0x9a, 0xc6, 0x2a, 0x78, 0xdc, 0x8a, 0x51, 0x3f, + 0x44, 0x94, 0x26, 0xb9, 0x9b, 0xc6, 0x0b, 0x77, 0x53, 0x17, 0x26, 0xc4, 0x7e, 0x10, 0xdc, 0xf1, + 0xd9, 0x2a, 0x59, 0x60, 0x94, 0x18, 0xa3, 0xbc, 0x00, 0x47, 0xd8, 0xe9, 0x99, 0xdb, 0x33, 0x76, + 0xec, 0xde, 0xa0, 0xc7, 0x78, 0xe2, 0x98, 0x5a, 0x95, 0x15, 0xe3, 0x08, 0xce, 0xaa, 0x72, 0x57, + 0x65, 0xa6, 0xda, 0xa8, 0x55, 0x45, 0x0a, 0xf6, 0x08, 0x8e, 0x5e, 0x85, 0xc9, 0x9e, 0xb1, 0xd3, + 0x19, 0xf8, 0x5d, 0x22, 0xec, 0xef, 0xc5, 0xa6, 0xb7, 0x41, 0x68, 0x3b, 0x0b, 0x54, 0x29, 0x0f, + 0xfd, 0x85, 0xb6, 0x1b, 0xde, 0xf0, 0x3b, 0xa1, 0x2f, 0x93, 0x4c, 0xac, 0x08, 0x2c, 0x58, 0xe2, + 0x43, 0x0e, 0xcc, 0xf5, 0x8c, 0x9d, 0x5b, 0xae, 0x21, 0x33, 0x45, 0x4f, 0x97, 0xa4, 0xc0, 0x1c, + 0x20, 0x56, 0x12, 0xb8, 0x70, 0x0a, 0x77, 0x8e, 0xaf, 0xc5, 0xcc, 0xfd, 0xf2, 0xb5, 0x58, 0x94, + 0x0f, 0x58, 0x66, 0xd9, 0x32, 0x7c, 0x30, 0xef, 0x3d, 0xcc, 0xf0, 0xb7, 0x29, 0x1f, 0x91, 0x6f, + 0x53, 0xe6, 0x2a, 0x5c, 0x56, 0x0e, 0x79, 0x97, 0xb2, 0x0d, 0xd3, 0x96, 0x11, 0x1a, 0xbc, 0x34, + 0x98, 0x3f, 0x51, 0xc1, 0x3e, 0xd8, 0x92, 0x78, 0x94, 0x8c, 0x83, 0x31, 0x6e, 0xac, 0x12, 0x42, + 0x37, 0x78, 0x26, 0x61, 0x87, 0x84, 0x71, 0x15, 0x66, 0x26, 0x3f, 0xc9, 0x2f, 0x42, 0xa2, 0xbc, + 0xbf, 0x99, 0x0a, 0x38, 0xbf, 0x5d, 0x1c, 0xa5, 0xe1, 0x54, 0x7e, 0x94, 0x06, 0xf4, 0xb9, 0x3c, + 0x7b, 0x3a, 0xaa, 0xf0, 0x48, 0x8f, 0xf3, 0x87, 0xd2, 0x56, 0xf5, 0x7f, 0xa8, 0xc1, 0x7c, 0xaf, + 0x20, 0x35, 0x9f, 0xb0, 0xf3, 0xdf, 0xaa, 0xc2, 0x23, 0x0a, 0xf3, 0xfd, 0x35, 0x1e, 0xd9, 0xdf, + 0xab, 0x1f, 0x98, 0x15, 0x10, 0x17, 0x76, 0xae, 0xea, 0xa3, 0xe4, 0x2a, 0x31, 0xed, 0x7e, 0x53, + 0x83, 0x93, 0xe9, 0xa3, 0x40, 0xcd, 0x7d, 0xac, 0xdd, 0xe7, 0xdc, 0xc7, 0x8a, 0xfb, 0x54, 0x6d, + 0x88, 0xfb, 0xd4, 0x73, 0x70, 0x2e, 0x7f, 0x75, 0x50, 0xe1, 0x8c, 0x65, 0x1c, 0x17, 0x0a, 0x51, + 0x9c, 0x53, 0x85, 0x16, 0x62, 0x0e, 0xd3, 0x3f, 0x0e, 0xe9, 0x58, 0xa4, 0x68, 0x0b, 0xa6, 0x82, + 0x60, 0x93, 0x47, 0x98, 0x13, 0x5f, 0x59, 0xd2, 0x7d, 0x3f, 0x8a, 0x53, 0x27, 0x5e, 0xde, 0x45, + 0x3f, 0x71, 0x8c, 0xbf, 0xf1, 0xa1, 0xef, 0xfe, 0xe8, 0xd2, 0x3b, 0x7e, 0xff, 0x47, 0x97, 0xde, + 0xf1, 0x83, 0x1f, 0x5d, 0x7a, 0xc7, 0x2f, 0xef, 0x5f, 0xd2, 0xbe, 0xbb, 0x7f, 0x49, 0xfb, 0xfd, + 0xfd, 0x4b, 0xda, 0x0f, 0xf6, 0x2f, 0x69, 0xff, 0x61, 0xff, 0x92, 0xf6, 0x37, 0xff, 0xe3, 0xa5, + 0x77, 0xbc, 0xfa, 0x64, 0x4c, 0xfe, 0x72, 0x44, 0x35, 0xfe, 0xa7, 0xbf, 0xd5, 0xbd, 0x4c, 0xc9, + 0x47, 0x4f, 0xe0, 0x39, 0xf9, 0xff, 0x17, 0x00, 0x00, 0xff, 0xff, 0x36, 0x4f, 0xf8, 0x17, 0xd6, + 0xdc, 0x00, 0x00, } func (m *Addon) Marshal() (dAtA []byte, err error) { @@ -6250,6 +6256,30 @@ func (m *CARotation) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if m.LastCompletionTriggeredTime != nil { + { + size, err := m.LastCompletionTriggeredTime.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + if m.LastInitiationFinishedTime != nil { + { + size, err := m.LastInitiationFinishedTime.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } if m.LastInitiationTime != nil { { size, err := m.LastInitiationTime.MarshalToSizedBuffer(dAtA[:i]) @@ -13237,6 +13267,30 @@ func (m *ShootETCDEncryptionKeyRotation) MarshalToSizedBuffer(dAtA []byte) (int, _ = i var l int _ = l + if m.LastCompletionTriggeredTime != nil { + { + size, err := m.LastCompletionTriggeredTime.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + if m.LastInitiationFinishedTime != nil { + { + size, err := m.LastInitiationFinishedTime.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } if m.LastInitiationTime != nil { { size, err := m.LastInitiationTime.MarshalToSizedBuffer(dAtA[:i]) @@ -13561,6 +13615,30 @@ func (m *ShootServiceAccountKeyRotation) MarshalToSizedBuffer(dAtA []byte) (int, _ = i var l int _ = l + if m.LastCompletionTriggeredTime != nil { + { + size, err := m.LastCompletionTriggeredTime.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + if m.LastInitiationFinishedTime != nil { + { + size, err := m.LastInitiationFinishedTime.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } if m.LastInitiationTime != nil { { size, err := m.LastInitiationTime.MarshalToSizedBuffer(dAtA[:i]) @@ -15176,6 +15254,14 @@ func (m *CARotation) Size() (n int) { l = m.LastInitiationTime.Size() n += 1 + l + sovGenerated(uint64(l)) } + if m.LastInitiationFinishedTime != nil { + l = m.LastInitiationFinishedTime.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.LastCompletionTriggeredTime != nil { + l = m.LastCompletionTriggeredTime.Size() + n += 1 + l + sovGenerated(uint64(l)) + } return n } @@ -17782,6 +17868,14 @@ func (m *ShootETCDEncryptionKeyRotation) Size() (n int) { l = m.LastInitiationTime.Size() n += 1 + l + sovGenerated(uint64(l)) } + if m.LastInitiationFinishedTime != nil { + l = m.LastInitiationFinishedTime.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.LastCompletionTriggeredTime != nil { + l = m.LastCompletionTriggeredTime.Size() + n += 1 + l + sovGenerated(uint64(l)) + } return n } @@ -17905,6 +17999,14 @@ func (m *ShootServiceAccountKeyRotation) Size() (n int) { l = m.LastInitiationTime.Size() n += 1 + l + sovGenerated(uint64(l)) } + if m.LastInitiationFinishedTime != nil { + l = m.LastInitiationFinishedTime.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.LastCompletionTriggeredTime != nil { + l = m.LastCompletionTriggeredTime.Size() + n += 1 + l + sovGenerated(uint64(l)) + } return n } @@ -18588,6 +18690,8 @@ func (this *CARotation) String() string { `Phase:` + fmt.Sprintf("%v", this.Phase) + `,`, `LastCompletionTime:` + strings.Replace(fmt.Sprintf("%v", this.LastCompletionTime), "Time", "v11.Time", 1) + `,`, `LastInitiationTime:` + strings.Replace(fmt.Sprintf("%v", this.LastInitiationTime), "Time", "v11.Time", 1) + `,`, + `LastInitiationFinishedTime:` + strings.Replace(fmt.Sprintf("%v", this.LastInitiationFinishedTime), "Time", "v11.Time", 1) + `,`, + `LastCompletionTriggeredTime:` + strings.Replace(fmt.Sprintf("%v", this.LastCompletionTriggeredTime), "Time", "v11.Time", 1) + `,`, `}`, }, "") return s @@ -20392,6 +20496,8 @@ func (this *ShootETCDEncryptionKeyRotation) String() string { `Phase:` + fmt.Sprintf("%v", this.Phase) + `,`, `LastCompletionTime:` + strings.Replace(fmt.Sprintf("%v", this.LastCompletionTime), "Time", "v11.Time", 1) + `,`, `LastInitiationTime:` + strings.Replace(fmt.Sprintf("%v", this.LastInitiationTime), "Time", "v11.Time", 1) + `,`, + `LastInitiationFinishedTime:` + strings.Replace(fmt.Sprintf("%v", this.LastInitiationFinishedTime), "Time", "v11.Time", 1) + `,`, + `LastCompletionTriggeredTime:` + strings.Replace(fmt.Sprintf("%v", this.LastCompletionTriggeredTime), "Time", "v11.Time", 1) + `,`, `}`, }, "") return s @@ -20476,6 +20582,8 @@ func (this *ShootServiceAccountKeyRotation) String() string { `Phase:` + fmt.Sprintf("%v", this.Phase) + `,`, `LastCompletionTime:` + strings.Replace(fmt.Sprintf("%v", this.LastCompletionTime), "Time", "v11.Time", 1) + `,`, `LastInitiationTime:` + strings.Replace(fmt.Sprintf("%v", this.LastInitiationTime), "Time", "v11.Time", 1) + `,`, + `LastInitiationFinishedTime:` + strings.Replace(fmt.Sprintf("%v", this.LastInitiationFinishedTime), "Time", "v11.Time", 1) + `,`, + `LastCompletionTriggeredTime:` + strings.Replace(fmt.Sprintf("%v", this.LastCompletionTriggeredTime), "Time", "v11.Time", 1) + `,`, `}`, }, "") return s @@ -23036,6 +23144,78 @@ func (m *CARotation) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastInitiationFinishedTime", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.LastInitiationFinishedTime == nil { + m.LastInitiationFinishedTime = &v11.Time{} + } + if err := m.LastInitiationFinishedTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastCompletionTriggeredTime", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.LastCompletionTriggeredTime == nil { + m.LastCompletionTriggeredTime = &v11.Time{} + } + if err := m.LastCompletionTriggeredTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -43666,6 +43846,78 @@ func (m *ShootETCDEncryptionKeyRotation) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastInitiationFinishedTime", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.LastInitiationFinishedTime == nil { + m.LastInitiationFinishedTime = &v11.Time{} + } + if err := m.LastInitiationFinishedTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastCompletionTriggeredTime", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.LastCompletionTriggeredTime == nil { + m.LastCompletionTriggeredTime = &v11.Time{} + } + if err := m.LastCompletionTriggeredTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -44570,6 +44822,78 @@ func (m *ShootServiceAccountKeyRotation) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastInitiationFinishedTime", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.LastInitiationFinishedTime == nil { + m.LastInitiationFinishedTime = &v11.Time{} + } + if err := m.LastInitiationFinishedTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastCompletionTriggeredTime", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.LastCompletionTriggeredTime == nil { + m.LastCompletionTriggeredTime = &v11.Time{} + } + if err := m.LastCompletionTriggeredTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) diff --git a/pkg/apis/core/v1alpha1/generated.proto b/pkg/apis/core/v1alpha1/generated.proto index 38257a30fe0..8d188e22284 100644 --- a/pkg/apis/core/v1alpha1/generated.proto +++ b/pkg/apis/core/v1alpha1/generated.proto @@ -238,14 +238,24 @@ message CARotation { // Phase describes the phase of the certificate authority credential rotation. optional string phase = 1; + // LastCompletionTime is the most recent time when the certificate authority credential rotation was successfully + // completed. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastCompletionTime = 2; + // LastInitiationTime is the most recent time when the certificate authority credential rotation was initiated. // +optional optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastInitiationTime = 3; - // LastCompletionTime is the most recent time when the certificate authority credential rotation was successfully + // LastInitiationFinishedTime is the recent time when the certificate authority credential rotation initiation was // completed. // +optional - optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastCompletionTime = 2; + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastInitiationFinishedTime = 4; + + // LastCompletionTriggeredTime is the recent time when the certificate authority credential rotation completion was + // triggered. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastCompletionTriggeredTime = 5; } // CRI contains information about the Container Runtimes. @@ -2381,14 +2391,24 @@ message ShootETCDEncryptionKeyRotation { // Phase describes the phase of the ETCD encryption key credential rotation. optional string phase = 1; + // LastCompletionTime is the most recent time when the ETCD encryption key credential rotation was successfully + // completed. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastCompletionTime = 2; + // LastInitiationTime is the most recent time when the ETCD encryption key credential rotation was initiated. // +optional optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastInitiationTime = 3; - // LastCompletionTime is the most recent time when the ETCD encryption key credential rotation was successfully + // LastInitiationFinishedTime is the recent time when the certificate authority credential rotation initiation was // completed. // +optional - optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastCompletionTime = 2; + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastInitiationFinishedTime = 4; + + // LastCompletionTriggeredTime is the recent time when the certificate authority credential rotation completion was + // triggered. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastCompletionTriggeredTime = 5; } // ShootKubeconfigRotation contains information about the kubeconfig credential rotation. @@ -2466,14 +2486,24 @@ message ShootServiceAccountKeyRotation { // Phase describes the phase of the service account key credential rotation. optional string phase = 1; + // LastCompletionTime is the most recent time when the service account key credential rotation was successfully + // completed. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastCompletionTime = 2; + // LastInitiationTime is the most recent time when the service account key credential rotation was initiated. // +optional optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastInitiationTime = 3; - // LastCompletionTime is the most recent time when the service account key credential rotation was successfully + // LastInitiationFinishedTime is the recent time when the certificate authority credential rotation initiation was // completed. // +optional - optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastCompletionTime = 2; + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastInitiationFinishedTime = 4; + + // LastCompletionTriggeredTime is the recent time when the certificate authority credential rotation completion was + // triggered. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastCompletionTriggeredTime = 5; } // ShootSpec is the specification of a Shoot. diff --git a/pkg/apis/core/v1alpha1/types_common.go b/pkg/apis/core/v1alpha1/types_common.go index 695e313cdd6..e216dd47b9b 100644 --- a/pkg/apis/core/v1alpha1/types_common.go +++ b/pkg/apis/core/v1alpha1/types_common.go @@ -155,10 +155,6 @@ const ( EventMigrationPreparationFailed = "MigrationPreparationFailed" ) -////////////////////////////////////////////////////////////////////////////////////////////////// -// High Availability relevant types // -////////////////////////////////////////////////////////////////////////////////////////////////// - // HighAvailability specifies the configuration settings for high availability for a resource. Typical // usages could be to configure HA for shoot control plane or for seed system components. type HighAvailability struct { diff --git a/pkg/apis/core/v1alpha1/types_shoot.go b/pkg/apis/core/v1alpha1/types_shoot.go index 2ae152f9266..960d35dac0d 100644 --- a/pkg/apis/core/v1alpha1/types_shoot.go +++ b/pkg/apis/core/v1alpha1/types_shoot.go @@ -235,13 +235,21 @@ type ShootCredentialsRotation struct { type CARotation struct { // Phase describes the phase of the certificate authority credential rotation. Phase CredentialsRotationPhase `json:"phase" protobuf:"bytes,1,opt,name=phase"` + // LastCompletionTime is the most recent time when the certificate authority credential rotation was successfully + // completed. + // +optional + LastCompletionTime *metav1.Time `json:"lastCompletionTime,omitempty" protobuf:"bytes,2,opt,name=lastCompletionTime"` // LastInitiationTime is the most recent time when the certificate authority credential rotation was initiated. // +optional LastInitiationTime *metav1.Time `json:"lastInitiationTime,omitempty" protobuf:"bytes,3,opt,name=lastInitiationTime"` - // LastCompletionTime is the most recent time when the certificate authority credential rotation was successfully + // LastInitiationFinishedTime is the recent time when the certificate authority credential rotation initiation was // completed. // +optional - LastCompletionTime *metav1.Time `json:"lastCompletionTime,omitempty" protobuf:"bytes,2,opt,name=lastCompletionTime"` + LastInitiationFinishedTime *metav1.Time `json:"lastInitiationFinishedTime,omitempty" protobuf:"bytes,4,opt,name=lastInitiationFinishedTime"` + // LastCompletionTriggeredTime is the recent time when the certificate authority credential rotation completion was + // triggered. + // +optional + LastCompletionTriggeredTime *metav1.Time `json:"lastCompletionTriggeredTime,omitempty" protobuf:"bytes,5,opt,name=lastCompletionTriggeredTime"` } // ShootKubeconfigRotation contains information about the kubeconfig credential rotation. @@ -278,26 +286,42 @@ type ShootObservabilityRotation struct { type ShootServiceAccountKeyRotation struct { // Phase describes the phase of the service account key credential rotation. Phase CredentialsRotationPhase `json:"phase" protobuf:"bytes,1,opt,name=phase"` + // LastCompletionTime is the most recent time when the service account key credential rotation was successfully + // completed. + // +optional + LastCompletionTime *metav1.Time `json:"lastCompletionTime,omitempty" protobuf:"bytes,2,opt,name=lastCompletionTime"` // LastInitiationTime is the most recent time when the service account key credential rotation was initiated. // +optional LastInitiationTime *metav1.Time `json:"lastInitiationTime,omitempty" protobuf:"bytes,3,opt,name=lastInitiationTime"` - // LastCompletionTime is the most recent time when the service account key credential rotation was successfully + // LastInitiationFinishedTime is the recent time when the certificate authority credential rotation initiation was // completed. // +optional - LastCompletionTime *metav1.Time `json:"lastCompletionTime,omitempty" protobuf:"bytes,2,opt,name=lastCompletionTime"` + LastInitiationFinishedTime *metav1.Time `json:"lastInitiationFinishedTime,omitempty" protobuf:"bytes,4,opt,name=lastInitiationFinishedTime"` + // LastCompletionTriggeredTime is the recent time when the certificate authority credential rotation completion was + // triggered. + // +optional + LastCompletionTriggeredTime *metav1.Time `json:"lastCompletionTriggeredTime,omitempty" protobuf:"bytes,5,opt,name=lastCompletionTriggeredTime"` } // ShootETCDEncryptionKeyRotation contains information about the ETCD encryption key credential rotation. type ShootETCDEncryptionKeyRotation struct { // Phase describes the phase of the ETCD encryption key credential rotation. Phase CredentialsRotationPhase `json:"phase" protobuf:"bytes,1,opt,name=phase"` + // LastCompletionTime is the most recent time when the ETCD encryption key credential rotation was successfully + // completed. + // +optional + LastCompletionTime *metav1.Time `json:"lastCompletionTime,omitempty" protobuf:"bytes,2,opt,name=lastCompletionTime"` // LastInitiationTime is the most recent time when the ETCD encryption key credential rotation was initiated. // +optional LastInitiationTime *metav1.Time `json:"lastInitiationTime,omitempty" protobuf:"bytes,3,opt,name=lastInitiationTime"` - // LastCompletionTime is the most recent time when the ETCD encryption key credential rotation was successfully + // LastInitiationFinishedTime is the recent time when the certificate authority credential rotation initiation was // completed. // +optional - LastCompletionTime *metav1.Time `json:"lastCompletionTime,omitempty" protobuf:"bytes,2,opt,name=lastCompletionTime"` + LastInitiationFinishedTime *metav1.Time `json:"lastInitiationFinishedTime,omitempty" protobuf:"bytes,4,opt,name=lastInitiationFinishedTime"` + // LastCompletionTriggeredTime is the recent time when the certificate authority credential rotation completion was + // triggered. + // +optional + LastCompletionTriggeredTime *metav1.Time `json:"lastCompletionTriggeredTime,omitempty" protobuf:"bytes,5,opt,name=lastCompletionTriggeredTime"` } // CredentialsRotationPhase is a string alias. @@ -323,10 +347,6 @@ type ShootAdvertisedAddress struct { URL string `json:"url" protobuf:"bytes,2,opt,name=url"` } -////////////////////////////////////////////////////////////////////////////////////////////////// -// Addons relevant types // -////////////////////////////////////////////////////////////////////////////////////////////////// - // Addons is a collection of configuration for specific addons which are managed by the Gardener. type Addons struct { // KubernetesDashboard holds configuration settings for the kubernetes dashboard addon. @@ -375,10 +395,6 @@ type NginxIngress struct { ExternalTrafficPolicy *corev1.ServiceExternalTrafficPolicyType `json:"externalTrafficPolicy,omitempty" protobuf:"bytes,3,opt,name=externalTrafficPolicy,casttype=k8s.io/api/core/v1.ServiceExternalTrafficPolicyType"` } -////////////////////////////////////////////////////////////////////////////////////////////////// -// ControlPlane relevant types // -////////////////////////////////////////////////////////////////////////////////////////////////// - // ControlPlane holds information about the general settings for the control plane of a shoot. type ControlPlane struct { // HighAvailability holds the configuration settings for high availability of the @@ -387,10 +403,6 @@ type ControlPlane struct { HighAvailability *HighAvailability `json:"highAvailability,omitempty" protobuf:"bytes,1,name=highAvailability"` } -////////////////////////////////////////////////////////////////////////////////////////////////// -// DNS relevant types // -////////////////////////////////////////////////////////////////////////////////////////////////// - // DNS holds information about the provider, the hosted zone id and the domain. type DNS struct { // Domain is the external available domain of the Shoot cluster. This domain will be written into the @@ -440,10 +452,6 @@ type DNSIncludeExclude struct { // DefaultDomain is the default value in the Shoot's '.spec.dns.domain' when '.spec.dns.provider' is 'unmanaged' const DefaultDomain = "cluster.local" -////////////////////////////////////////////////////////////////////////////////////////////////// -// Extension relevant types // -////////////////////////////////////////////////////////////////////////////////////////////////// - // Extension contains type and provider information for Shoot extensions. type Extension struct { // Type is the type of the extension resource. @@ -456,10 +464,6 @@ type Extension struct { Disabled *bool `json:"disabled,omitempty" protobuf:"varint,3,opt,name=disabled"` } -////////////////////////////////////////////////////////////////////////////////////////////////// -// NamedResourceReference relevant types // -////////////////////////////////////////////////////////////////////////////////////////////////// - // NamedResourceReference is a named reference to a resource. type NamedResourceReference struct { // Name of the resource reference. @@ -468,10 +472,6 @@ type NamedResourceReference struct { ResourceRef autoscalingv1.CrossVersionObjectReference `json:"resourceRef" protobuf:"bytes,2,opt,name=resourceRef"` } -////////////////////////////////////////////////////////////////////////////////////////////////// -// Hibernation relevant types // -////////////////////////////////////////////////////////////////////////////////////////////////// - // Hibernation contains information whether the Shoot is suspended or not. type Hibernation struct { // Enabled specifies whether the Shoot needs to be hibernated or not. If it is true, the Shoot's desired state is to be hibernated. @@ -498,10 +498,6 @@ type HibernationSchedule struct { Location *string `json:"location,omitempty" protobuf:"bytes,3,opt,name=location"` } -////////////////////////////////////////////////////////////////////////////////////////////////// -// Kubernetes relevant types // -////////////////////////////////////////////////////////////////////////////////////////////////// - // Kubernetes contains the version and configuration variables for the Shoot control plane. type Kubernetes struct { // AllowPrivilegedContainers indicates whether privileged containers are allowed in the Shoot. @@ -1162,10 +1158,6 @@ type KubeletConfigReserved struct { PID *resource.Quantity `json:"pid,omitempty" protobuf:"bytes,4,opt,name=pid"` } -////////////////////////////////////////////////////////////////////////////////////////////////// -// Networking relevant types // -////////////////////////////////////////////////////////////////////////////////////////////////// - // Networking defines networking parameters for the shoot cluster. type Networking struct { // Type identifies the type of the networking plugin. This field is immutable. @@ -1191,10 +1183,6 @@ const ( DefaultServiceNetworkCIDR = "100.64.0.0/13" ) -////////////////////////////////////////////////////////////////////////////////////////////////// -// Maintenance relevant types // -////////////////////////////////////////////////////////////////////////////////////////////////// - const ( // MaintenanceTimeWindowDurationMinimum is the minimum duration for a maintenance time window. MaintenanceTimeWindowDurationMinimum = 30 * time.Minute @@ -1236,10 +1224,6 @@ type MaintenanceTimeWindow struct { End string `json:"end" protobuf:"bytes,2,opt,name=end"` } -////////////////////////////////////////////////////////////////////////////////////////////////// -// Monitoring relevant types // -////////////////////////////////////////////////////////////////////////////////////////////////// - // Monitoring contains information about the monitoring configuration for the shoot. type Monitoring struct { // Alerting contains information about the alerting configuration for the shoot cluster. @@ -1254,10 +1238,6 @@ type Alerting struct { EmailReceivers []string `json:"emailReceivers,omitempty" protobuf:"bytes,1,rep,name=emailReceivers"` } -////////////////////////////////////////////////////////////////////////////////////////////////// -// Provider relevant types // -////////////////////////////////////////////////////////////////////////////////////////////////// - // Provider contains provider-specific information that are handed-over to the provider-specific // extension controller. type Provider struct { @@ -1485,10 +1465,6 @@ var ( DefaultWorkerSystemComponentsAllow = true ) -////////////////////////////////////////////////////////////////////////////////////////////////// -// System components relevant types // -////////////////////////////////////////////////////////////////////////////////////////////////// - // SystemComponents contains the settings of system components in the control or data plane of the Shoot cluster. type SystemComponents struct { // CoreDNS contains the settings of the Core DNS components running in the data plane of the Shoot cluster. @@ -1551,10 +1527,6 @@ type NodeLocalDNS struct { DisableForwardToUpstreamDNS *bool `json:"disableForwardToUpstreamDNS,omitempty" protobuf:"varint,4,opt,name=disableForwardToUpstreamDNS"` } -////////////////////////////////////////////////////////////////////////////////////////////////// -// Other/miscellaneous constants and types // -////////////////////////////////////////////////////////////////////////////////////////////////// - const ( // ShootEventImageVersionMaintenance indicates that a maintenance operation regarding the image version has been performed. ShootEventImageVersionMaintenance = "MachineImageVersionMaintenance" diff --git a/pkg/apis/core/v1alpha1/zz_generated.conversion.go b/pkg/apis/core/v1alpha1/zz_generated.conversion.go index 42cbbf4cf3c..aa801c414e9 100644 --- a/pkg/apis/core/v1alpha1/zz_generated.conversion.go +++ b/pkg/apis/core/v1alpha1/zz_generated.conversion.go @@ -2056,8 +2056,10 @@ func Convert_core_BackupEntryStatus_To_v1alpha1_BackupEntryStatus(in *core.Backu func autoConvert_v1alpha1_CARotation_To_core_CARotation(in *CARotation, out *core.CARotation, s conversion.Scope) error { out.Phase = core.CredentialsRotationPhase(in.Phase) - out.LastInitiationTime = (*metav1.Time)(unsafe.Pointer(in.LastInitiationTime)) out.LastCompletionTime = (*metav1.Time)(unsafe.Pointer(in.LastCompletionTime)) + out.LastInitiationTime = (*metav1.Time)(unsafe.Pointer(in.LastInitiationTime)) + out.LastInitiationFinishedTime = (*metav1.Time)(unsafe.Pointer(in.LastInitiationFinishedTime)) + out.LastCompletionTriggeredTime = (*metav1.Time)(unsafe.Pointer(in.LastCompletionTriggeredTime)) return nil } @@ -2069,7 +2071,9 @@ func Convert_v1alpha1_CARotation_To_core_CARotation(in *CARotation, out *core.CA func autoConvert_core_CARotation_To_v1alpha1_CARotation(in *core.CARotation, out *CARotation, s conversion.Scope) error { out.Phase = CredentialsRotationPhase(in.Phase) out.LastInitiationTime = (*metav1.Time)(unsafe.Pointer(in.LastInitiationTime)) + out.LastInitiationFinishedTime = (*metav1.Time)(unsafe.Pointer(in.LastInitiationFinishedTime)) out.LastCompletionTime = (*metav1.Time)(unsafe.Pointer(in.LastCompletionTime)) + out.LastCompletionTriggeredTime = (*metav1.Time)(unsafe.Pointer(in.LastCompletionTriggeredTime)) return nil } @@ -5332,8 +5336,10 @@ func Convert_core_ShootCredentialsRotation_To_v1alpha1_ShootCredentialsRotation( func autoConvert_v1alpha1_ShootETCDEncryptionKeyRotation_To_core_ShootETCDEncryptionKeyRotation(in *ShootETCDEncryptionKeyRotation, out *core.ShootETCDEncryptionKeyRotation, s conversion.Scope) error { out.Phase = core.CredentialsRotationPhase(in.Phase) - out.LastInitiationTime = (*metav1.Time)(unsafe.Pointer(in.LastInitiationTime)) out.LastCompletionTime = (*metav1.Time)(unsafe.Pointer(in.LastCompletionTime)) + out.LastInitiationTime = (*metav1.Time)(unsafe.Pointer(in.LastInitiationTime)) + out.LastInitiationFinishedTime = (*metav1.Time)(unsafe.Pointer(in.LastInitiationFinishedTime)) + out.LastCompletionTriggeredTime = (*metav1.Time)(unsafe.Pointer(in.LastCompletionTriggeredTime)) return nil } @@ -5345,7 +5351,9 @@ func Convert_v1alpha1_ShootETCDEncryptionKeyRotation_To_core_ShootETCDEncryption func autoConvert_core_ShootETCDEncryptionKeyRotation_To_v1alpha1_ShootETCDEncryptionKeyRotation(in *core.ShootETCDEncryptionKeyRotation, out *ShootETCDEncryptionKeyRotation, s conversion.Scope) error { out.Phase = CredentialsRotationPhase(in.Phase) out.LastInitiationTime = (*metav1.Time)(unsafe.Pointer(in.LastInitiationTime)) + out.LastInitiationFinishedTime = (*metav1.Time)(unsafe.Pointer(in.LastInitiationFinishedTime)) out.LastCompletionTime = (*metav1.Time)(unsafe.Pointer(in.LastCompletionTime)) + out.LastCompletionTriggeredTime = (*metav1.Time)(unsafe.Pointer(in.LastCompletionTriggeredTime)) return nil } @@ -5514,8 +5522,10 @@ func Convert_core_ShootSSHKeypairRotation_To_v1alpha1_ShootSSHKeypairRotation(in func autoConvert_v1alpha1_ShootServiceAccountKeyRotation_To_core_ShootServiceAccountKeyRotation(in *ShootServiceAccountKeyRotation, out *core.ShootServiceAccountKeyRotation, s conversion.Scope) error { out.Phase = core.CredentialsRotationPhase(in.Phase) - out.LastInitiationTime = (*metav1.Time)(unsafe.Pointer(in.LastInitiationTime)) out.LastCompletionTime = (*metav1.Time)(unsafe.Pointer(in.LastCompletionTime)) + out.LastInitiationTime = (*metav1.Time)(unsafe.Pointer(in.LastInitiationTime)) + out.LastInitiationFinishedTime = (*metav1.Time)(unsafe.Pointer(in.LastInitiationFinishedTime)) + out.LastCompletionTriggeredTime = (*metav1.Time)(unsafe.Pointer(in.LastCompletionTriggeredTime)) return nil } @@ -5527,7 +5537,9 @@ func Convert_v1alpha1_ShootServiceAccountKeyRotation_To_core_ShootServiceAccount func autoConvert_core_ShootServiceAccountKeyRotation_To_v1alpha1_ShootServiceAccountKeyRotation(in *core.ShootServiceAccountKeyRotation, out *ShootServiceAccountKeyRotation, s conversion.Scope) error { out.Phase = CredentialsRotationPhase(in.Phase) out.LastInitiationTime = (*metav1.Time)(unsafe.Pointer(in.LastInitiationTime)) + out.LastInitiationFinishedTime = (*metav1.Time)(unsafe.Pointer(in.LastInitiationFinishedTime)) out.LastCompletionTime = (*metav1.Time)(unsafe.Pointer(in.LastCompletionTime)) + out.LastCompletionTriggeredTime = (*metav1.Time)(unsafe.Pointer(in.LastCompletionTriggeredTime)) return nil } diff --git a/pkg/apis/core/v1alpha1/zz_generated.deepcopy.go b/pkg/apis/core/v1alpha1/zz_generated.deepcopy.go index 6a95589ac07..2287dc3b72d 100644 --- a/pkg/apis/core/v1alpha1/zz_generated.deepcopy.go +++ b/pkg/apis/core/v1alpha1/zz_generated.deepcopy.go @@ -448,12 +448,20 @@ func (in *BackupEntryStatus) DeepCopy() *BackupEntryStatus { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *CARotation) DeepCopyInto(out *CARotation) { *out = *in + if in.LastCompletionTime != nil { + in, out := &in.LastCompletionTime, &out.LastCompletionTime + *out = (*in).DeepCopy() + } if in.LastInitiationTime != nil { in, out := &in.LastInitiationTime, &out.LastInitiationTime *out = (*in).DeepCopy() } - if in.LastCompletionTime != nil { - in, out := &in.LastCompletionTime, &out.LastCompletionTime + if in.LastInitiationFinishedTime != nil { + in, out := &in.LastInitiationFinishedTime, &out.LastInitiationFinishedTime + *out = (*in).DeepCopy() + } + if in.LastCompletionTriggeredTime != nil { + in, out := &in.LastCompletionTriggeredTime, &out.LastCompletionTriggeredTime *out = (*in).DeepCopy() } return @@ -4140,12 +4148,20 @@ func (in *ShootCredentialsRotation) DeepCopy() *ShootCredentialsRotation { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ShootETCDEncryptionKeyRotation) DeepCopyInto(out *ShootETCDEncryptionKeyRotation) { *out = *in + if in.LastCompletionTime != nil { + in, out := &in.LastCompletionTime, &out.LastCompletionTime + *out = (*in).DeepCopy() + } if in.LastInitiationTime != nil { in, out := &in.LastInitiationTime, &out.LastInitiationTime *out = (*in).DeepCopy() } - if in.LastCompletionTime != nil { - in, out := &in.LastCompletionTime, &out.LastCompletionTime + if in.LastInitiationFinishedTime != nil { + in, out := &in.LastInitiationFinishedTime, &out.LastInitiationFinishedTime + *out = (*in).DeepCopy() + } + if in.LastCompletionTriggeredTime != nil { + in, out := &in.LastCompletionTriggeredTime, &out.LastCompletionTriggeredTime *out = (*in).DeepCopy() } return @@ -4321,12 +4337,20 @@ func (in *ShootSSHKeypairRotation) DeepCopy() *ShootSSHKeypairRotation { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ShootServiceAccountKeyRotation) DeepCopyInto(out *ShootServiceAccountKeyRotation) { *out = *in + if in.LastCompletionTime != nil { + in, out := &in.LastCompletionTime, &out.LastCompletionTime + *out = (*in).DeepCopy() + } if in.LastInitiationTime != nil { in, out := &in.LastInitiationTime, &out.LastInitiationTime *out = (*in).DeepCopy() } - if in.LastCompletionTime != nil { - in, out := &in.LastCompletionTime, &out.LastCompletionTime + if in.LastInitiationFinishedTime != nil { + in, out := &in.LastInitiationFinishedTime, &out.LastInitiationFinishedTime + *out = (*in).DeepCopy() + } + if in.LastCompletionTriggeredTime != nil { + in, out := &in.LastCompletionTriggeredTime, &out.LastCompletionTriggeredTime *out = (*in).DeepCopy() } return diff --git a/pkg/apis/core/v1beta1/generated.pb.go b/pkg/apis/core/v1beta1/generated.pb.go index d33e951707a..20bf72bd6e3 100644 --- a/pkg/apis/core/v1beta1/generated.pb.go +++ b/pkg/apis/core/v1beta1/generated.pb.go @@ -4569,692 +4569,697 @@ func init() { } var fileDescriptor_ca37af0df9a5bbd2 = []byte{ - // 10945 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x6d, 0x6c, 0x24, 0xc9, - 0x75, 0x98, 0x7a, 0xf8, 0x35, 0x7c, 0x24, 0x77, 0xc9, 0xda, 0x8f, 0xe3, 0xf1, 0xee, 0x76, 0x4e, - 0xad, 0x93, 0x70, 0x17, 0xc9, 0x5c, 0xdf, 0xe9, 0xf3, 0x4e, 0x3a, 0x9d, 0xc8, 0x19, 0xee, 0xee, - 0x68, 0x49, 0x2e, 0xaf, 0x86, 0xbb, 0x77, 0x3a, 0x39, 0x17, 0x35, 0xbb, 0x8b, 0xc3, 0x3e, 0xf6, - 0x74, 0xcf, 0x75, 0xf7, 0x70, 0xc9, 0x93, 0x05, 0x59, 0x8a, 0x3e, 0x22, 0xf9, 0x03, 0x82, 0x00, - 0xe7, 0x20, 0xc9, 0x89, 0x65, 0x18, 0x8e, 0x15, 0x38, 0x90, 0x9d, 0x0f, 0x19, 0x70, 0x8c, 0x00, - 0x86, 0x80, 0xc0, 0x92, 0x91, 0x04, 0x8a, 0x03, 0x23, 0x0a, 0x10, 0x53, 0x11, 0x93, 0xc8, 0x01, - 0x12, 0x18, 0x01, 0x8c, 0x20, 0xc0, 0xc2, 0x3f, 0x82, 0xfa, 0xe8, 0xea, 0xea, 0xaf, 0xd9, 0x61, - 0x0f, 0x49, 0xdf, 0xc5, 0xfe, 0x45, 0x4e, 0xbd, 0xaa, 0xf7, 0xaa, 0xeb, 0xe3, 0xd5, 0x7b, 0xaf, - 0x5e, 0xbd, 0x07, 0xcb, 0x6d, 0x3b, 0xdc, 0xe9, 0x6d, 0x2d, 0x9a, 0x5e, 0xe7, 0x6a, 0xdb, 0xf0, - 0x2d, 0xe2, 0x12, 0x3f, 0xfe, 0xa7, 0xbb, 0xdb, 0xbe, 0x6a, 0x74, 0xed, 0xe0, 0xaa, 0xe9, 0xf9, - 0xe4, 0xea, 0xde, 0x93, 0x5b, 0x24, 0x34, 0x9e, 0xbc, 0xda, 0xa6, 0x30, 0x23, 0x24, 0xd6, 0x62, - 0xd7, 0xf7, 0x42, 0x0f, 0x3d, 0x15, 0xe3, 0x58, 0x8c, 0x9a, 0xc6, 0xff, 0x74, 0x77, 0xdb, 0x8b, - 0x14, 0xc7, 0x22, 0xc5, 0xb1, 0x28, 0x70, 0x2c, 0xfc, 0x94, 0x4a, 0xd7, 0x6b, 0x7b, 0x57, 0x19, - 0xaa, 0xad, 0xde, 0x36, 0xfb, 0xc5, 0x7e, 0xb0, 0xff, 0x38, 0x89, 0x85, 0x27, 0x76, 0x3f, 0x10, - 0x2c, 0xda, 0x1e, 0xed, 0xcc, 0x55, 0xa3, 0x17, 0x7a, 0x81, 0x69, 0x38, 0xb6, 0xdb, 0xbe, 0xba, - 0x97, 0xe9, 0xcd, 0x82, 0xae, 0x54, 0x15, 0xdd, 0xee, 0x5b, 0xc7, 0xdf, 0x32, 0xcc, 0xbc, 0x3a, - 0xef, 0x89, 0xeb, 0x74, 0x0c, 0x73, 0xc7, 0x76, 0x89, 0x7f, 0x10, 0x0d, 0xc8, 0x55, 0x9f, 0x04, - 0x5e, 0xcf, 0x37, 0xc9, 0xb1, 0x5a, 0x05, 0x57, 0x3b, 0x24, 0x34, 0xf2, 0x68, 0x5d, 0x2d, 0x6a, - 0xe5, 0xf7, 0xdc, 0xd0, 0xee, 0x64, 0xc9, 0xbc, 0xef, 0x7e, 0x0d, 0x02, 0x73, 0x87, 0x74, 0x8c, - 0x4c, 0xbb, 0x77, 0x17, 0xb5, 0xeb, 0x85, 0xb6, 0x73, 0xd5, 0x76, 0xc3, 0x20, 0xf4, 0xd3, 0x8d, - 0xf4, 0xa7, 0x60, 0x6c, 0xc9, 0xb2, 0x3c, 0x17, 0x3d, 0x01, 0x13, 0xc4, 0x35, 0xb6, 0x1c, 0x62, - 0xcd, 0x6b, 0x8f, 0x6a, 0x8f, 0x57, 0x97, 0xcf, 0x7f, 0xef, 0xb0, 0xf6, 0x96, 0xa3, 0xc3, 0xda, - 0xc4, 0x0a, 0x2f, 0xc6, 0x11, 0x5c, 0xff, 0xe5, 0x0a, 0x8c, 0xb3, 0x46, 0x01, 0xfa, 0xaa, 0x06, - 0x17, 0x76, 0x7b, 0x5b, 0xc4, 0x77, 0x49, 0x48, 0x82, 0x86, 0x11, 0xec, 0x6c, 0x79, 0x86, 0xcf, - 0x51, 0x4c, 0x3d, 0x75, 0x7d, 0xf1, 0xf8, 0xab, 0x67, 0xf1, 0x66, 0x16, 0xdd, 0xf2, 0x03, 0x47, - 0x87, 0xb5, 0x0b, 0x39, 0x00, 0x9c, 0x47, 0x1c, 0xed, 0xc1, 0xb4, 0xdb, 0xb6, 0xdd, 0xfd, 0xa6, - 0xdb, 0xf6, 0x49, 0x10, 0xcc, 0x57, 0x58, 0x67, 0x3e, 0x52, 0xa6, 0x33, 0xeb, 0x0a, 0x9e, 0xe5, - 0xd9, 0xa3, 0xc3, 0xda, 0xb4, 0x5a, 0x82, 0x13, 0x74, 0xf4, 0xdf, 0xd1, 0xe0, 0xfc, 0x92, 0xd5, - 0xb1, 0x83, 0xc0, 0xf6, 0xdc, 0x0d, 0xa7, 0xd7, 0xb6, 0x5d, 0xf4, 0x28, 0x8c, 0xba, 0x46, 0x87, - 0xb0, 0x01, 0x99, 0x5c, 0x9e, 0x16, 0x63, 0x3a, 0xba, 0x6e, 0x74, 0x08, 0x66, 0x10, 0xf4, 0x3c, - 0x8c, 0x9b, 0x9e, 0xbb, 0x6d, 0xb7, 0x45, 0x3f, 0x7f, 0x6a, 0x91, 0xcf, 0xe3, 0xa2, 0x3a, 0x8f, - 0xac, 0x7b, 0x62, 0xfe, 0x17, 0xb1, 0x71, 0x77, 0x65, 0x3f, 0x24, 0x2e, 0x25, 0xb3, 0x0c, 0x47, - 0x87, 0xb5, 0xf1, 0x3a, 0x43, 0x80, 0x05, 0x22, 0xf4, 0x38, 0x54, 0x2d, 0x3b, 0xe0, 0x93, 0x39, - 0xc2, 0x26, 0x73, 0xfa, 0xe8, 0xb0, 0x56, 0x6d, 0x88, 0x32, 0x2c, 0xa1, 0xfa, 0x35, 0xa8, 0x2e, - 0x39, 0xc4, 0x0f, 0x6d, 0xb7, 0x8d, 0x9e, 0x81, 0x73, 0xa4, 0x63, 0xd8, 0x0e, 0x26, 0x26, 0xb1, - 0xf7, 0x88, 0x1f, 0xcc, 0x6b, 0x8f, 0x8e, 0x3c, 0x3e, 0xb9, 0x8c, 0x8e, 0x0e, 0x6b, 0xe7, 0x56, - 0x12, 0x10, 0x9c, 0xaa, 0xa9, 0x7f, 0x46, 0x83, 0xa9, 0xa5, 0x9e, 0x65, 0x87, 0xbc, 0x27, 0xc8, - 0x87, 0x29, 0x83, 0xfe, 0xdc, 0xf0, 0x1c, 0xdb, 0x3c, 0x10, 0xcb, 0xe1, 0xb9, 0x32, 0x33, 0xb0, - 0x14, 0xa3, 0x59, 0x3e, 0x7f, 0x74, 0x58, 0x9b, 0x52, 0x0a, 0xb0, 0x4a, 0x44, 0xdf, 0x01, 0x15, - 0x86, 0x3e, 0x06, 0xd3, 0x7c, 0x38, 0xd6, 0x8c, 0x2e, 0x26, 0xdb, 0xa2, 0x0f, 0x6f, 0x53, 0x46, - 0x37, 0x22, 0xb4, 0x78, 0x6b, 0xeb, 0x15, 0x62, 0x86, 0x98, 0x6c, 0x13, 0x9f, 0xb8, 0x26, 0xe1, - 0x13, 0x5d, 0x57, 0x1a, 0xe3, 0x04, 0x2a, 0xfd, 0x47, 0x1a, 0xcc, 0x2e, 0xed, 0x19, 0xb6, 0x63, - 0x6c, 0xd9, 0x8e, 0x1d, 0x1e, 0xbc, 0xe4, 0xb9, 0x64, 0x80, 0x99, 0xbe, 0x0d, 0x0f, 0xf4, 0x5c, - 0x83, 0xb7, 0x73, 0xc8, 0x1a, 0x9f, 0xdb, 0xcd, 0x83, 0x2e, 0xa1, 0x4b, 0x94, 0x8e, 0xf4, 0x43, - 0x47, 0x87, 0xb5, 0x07, 0x6e, 0xe7, 0x57, 0xc1, 0x45, 0x6d, 0x11, 0x86, 0xcb, 0x0a, 0xe8, 0x8e, - 0xe7, 0xf4, 0x3a, 0x02, 0xeb, 0x08, 0xc3, 0xba, 0x70, 0x74, 0x58, 0xbb, 0x7c, 0x3b, 0xb7, 0x06, - 0x2e, 0x68, 0xa9, 0x7f, 0xaf, 0x02, 0xd3, 0xcb, 0x86, 0xb9, 0xdb, 0xeb, 0x2e, 0xf7, 0xcc, 0x5d, - 0x12, 0xa2, 0x4f, 0x40, 0x95, 0x32, 0x38, 0xcb, 0x08, 0x0d, 0x31, 0x92, 0x3f, 0x5d, 0xb8, 0x4e, - 0xd9, 0x24, 0xd2, 0xda, 0xf1, 0xd8, 0xae, 0x91, 0xd0, 0x58, 0x46, 0x62, 0x4c, 0x20, 0x2e, 0xc3, - 0x12, 0x2b, 0xda, 0x86, 0xd1, 0xa0, 0x4b, 0x4c, 0xb1, 0x0b, 0x1a, 0x65, 0xd6, 0x8a, 0xda, 0xe3, - 0x56, 0x97, 0x98, 0xf1, 0x2c, 0xd0, 0x5f, 0x98, 0xe1, 0x47, 0x2e, 0x8c, 0x07, 0xa1, 0x11, 0xf6, - 0x02, 0xb6, 0x35, 0xa6, 0x9e, 0xba, 0x36, 0x34, 0x25, 0x86, 0x6d, 0xf9, 0x9c, 0xa0, 0x35, 0xce, - 0x7f, 0x63, 0x41, 0x45, 0xff, 0x8f, 0x1a, 0xcc, 0xaa, 0xd5, 0x57, 0xed, 0x20, 0x44, 0x3f, 0x93, - 0x19, 0xce, 0xc5, 0xc1, 0x86, 0x93, 0xb6, 0x66, 0x83, 0x39, 0x2b, 0xc8, 0x55, 0xa3, 0x12, 0x65, - 0x28, 0x09, 0x8c, 0xd9, 0x21, 0xe9, 0xf0, 0x65, 0x55, 0x92, 0xf3, 0xa9, 0x5d, 0x5e, 0x9e, 0x11, - 0xc4, 0xc6, 0x9a, 0x14, 0x2d, 0xe6, 0xd8, 0xf5, 0x4f, 0xc0, 0x45, 0xb5, 0xd6, 0x86, 0xef, 0xed, - 0xd9, 0x16, 0xf1, 0xe9, 0x4e, 0x08, 0x0f, 0xba, 0x99, 0x9d, 0x40, 0x57, 0x16, 0x66, 0x10, 0xf4, - 0x0e, 0x18, 0xf7, 0x49, 0xdb, 0xf6, 0x5c, 0x36, 0xdb, 0x93, 0xf1, 0xd8, 0x61, 0x56, 0x8a, 0x05, - 0x54, 0xff, 0x3f, 0x95, 0xe4, 0xd8, 0xd1, 0x69, 0x44, 0x7b, 0x50, 0xed, 0x0a, 0x52, 0x62, 0xec, - 0x6e, 0x0c, 0xfb, 0x81, 0x51, 0xd7, 0xe3, 0x51, 0x8d, 0x4a, 0xb0, 0xa4, 0x85, 0x6c, 0x38, 0x17, - 0xfd, 0x5f, 0x1f, 0x82, 0x61, 0x33, 0x76, 0xba, 0x91, 0x40, 0x84, 0x53, 0x88, 0xd1, 0x26, 0x4c, - 0x06, 0xc4, 0xf4, 0x09, 0xe5, 0x49, 0x62, 0x99, 0xe6, 0x32, 0xae, 0x56, 0x54, 0x49, 0x30, 0xae, - 0x39, 0xd1, 0xfd, 0x49, 0x09, 0xc0, 0x31, 0x22, 0x7a, 0x2c, 0x04, 0x84, 0x58, 0x94, 0x23, 0xcd, - 0x8f, 0xf2, 0xb9, 0xa1, 0x9f, 0xda, 0x12, 0x65, 0x58, 0x42, 0xf5, 0x6f, 0x8e, 0x02, 0xca, 0x2e, - 0x71, 0x75, 0x04, 0x78, 0x89, 0x18, 0xff, 0x61, 0x46, 0x40, 0xec, 0x96, 0x14, 0x62, 0xf4, 0x1a, - 0xcc, 0x38, 0x46, 0x10, 0xde, 0xea, 0x52, 0x69, 0x25, 0x5a, 0x28, 0x53, 0x4f, 0x2d, 0x95, 0x99, - 0xe9, 0x55, 0x15, 0xd1, 0xf2, 0xdc, 0xd1, 0x61, 0x6d, 0x26, 0x51, 0x84, 0x93, 0xa4, 0xd0, 0x2b, - 0x30, 0x49, 0x0b, 0x56, 0x7c, 0xdf, 0xf3, 0xc5, 0xe8, 0x3f, 0x5b, 0x96, 0x2e, 0x43, 0xb2, 0x3c, - 0x43, 0xe7, 0x44, 0xfe, 0xc4, 0x31, 0x7a, 0xf4, 0x51, 0x40, 0xde, 0x56, 0x40, 0xfc, 0x3d, 0x62, - 0x5d, 0xe7, 0xa2, 0x19, 0xfd, 0x58, 0x3a, 0x3b, 0x23, 0xcb, 0x0b, 0x62, 0x36, 0xd1, 0xad, 0x4c, - 0x0d, 0x9c, 0xd3, 0x0a, 0xed, 0x02, 0x92, 0xe2, 0x9d, 0x5c, 0x00, 0xf3, 0x63, 0x83, 0x2f, 0x9f, - 0xcb, 0x94, 0xd8, 0xf5, 0x0c, 0x0a, 0x9c, 0x83, 0x56, 0xff, 0xd7, 0x15, 0x98, 0xe2, 0x4b, 0x64, - 0xc5, 0x0d, 0xfd, 0x83, 0x33, 0x38, 0x20, 0x48, 0xe2, 0x80, 0xa8, 0x97, 0xdf, 0xf3, 0xac, 0xc3, - 0x85, 0xe7, 0x43, 0x27, 0x75, 0x3e, 0xac, 0x0c, 0x4b, 0xa8, 0xff, 0xf1, 0xf0, 0x27, 0x1a, 0x9c, - 0x57, 0x6a, 0x9f, 0xc1, 0xe9, 0x60, 0x25, 0x4f, 0x87, 0xe7, 0x86, 0xfc, 0xbe, 0x82, 0xc3, 0xc1, - 0x4b, 0x7c, 0x16, 0x63, 0xdc, 0x4f, 0x01, 0x6c, 0x31, 0x76, 0xb2, 0x1e, 0xcb, 0x49, 0x72, 0xca, - 0x97, 0x25, 0x04, 0x2b, 0xb5, 0x12, 0x3c, 0xab, 0xd2, 0x97, 0x67, 0xfd, 0xf7, 0x11, 0x98, 0xcb, - 0x0c, 0x7b, 0x96, 0x8f, 0x68, 0x7f, 0x45, 0x7c, 0xa4, 0xf2, 0x57, 0xc1, 0x47, 0x46, 0x4a, 0xf1, - 0x91, 0x81, 0xcf, 0x09, 0xe4, 0x03, 0xea, 0xd8, 0x6d, 0xde, 0xac, 0x15, 0x1a, 0x7e, 0xb8, 0x69, - 0x77, 0x88, 0xe0, 0x38, 0x7f, 0x6b, 0xb0, 0x25, 0x4b, 0x5b, 0x70, 0xc6, 0xb3, 0x96, 0xc1, 0x84, - 0x73, 0xb0, 0xeb, 0xdf, 0xa9, 0x00, 0xd4, 0x97, 0xb0, 0x17, 0xf2, 0xce, 0x3e, 0x07, 0x63, 0xdd, - 0x1d, 0x23, 0x88, 0xd6, 0xd3, 0x13, 0xd1, 0x62, 0xdc, 0xa0, 0x85, 0xf7, 0x0e, 0x6b, 0xf3, 0x75, - 0x9f, 0x58, 0xc4, 0x0d, 0x6d, 0xc3, 0x09, 0xa2, 0x46, 0x0c, 0x86, 0x79, 0x3b, 0xfa, 0x0d, 0x74, - 0x18, 0x9b, 0xae, 0x1d, 0xda, 0x0c, 0xca, 0xbe, 0x61, 0xa4, 0xdc, 0x37, 0xac, 0x66, 0x30, 0xe1, - 0x1c, 0xec, 0x11, 0xcd, 0xba, 0xd7, 0xe9, 0x3a, 0x44, 0xd2, 0xac, 0x94, 0xa7, 0x99, 0xc4, 0x84, - 0x73, 0xb0, 0xeb, 0xdf, 0xd5, 0x60, 0xa4, 0x8e, 0x9b, 0xe8, 0x9d, 0x09, 0x3d, 0xe5, 0x01, 0x55, - 0x4f, 0xb9, 0x77, 0x58, 0x9b, 0xa8, 0xe3, 0xa6, 0xa2, 0xb2, 0xfc, 0xa2, 0x06, 0x73, 0xa6, 0xe7, - 0x86, 0x06, 0xed, 0x05, 0xe6, 0x87, 0x79, 0xc4, 0x38, 0x4a, 0x89, 0xe8, 0xf5, 0x14, 0xb2, 0xe5, - 0x07, 0x45, 0x07, 0xe6, 0xd2, 0x90, 0x00, 0x67, 0x29, 0xeb, 0x3f, 0xd4, 0x60, 0xba, 0xee, 0x78, - 0x3d, 0x6b, 0xc3, 0xf7, 0xb6, 0x6d, 0x87, 0xbc, 0x39, 0xf4, 0x12, 0xb5, 0xc7, 0x45, 0xe7, 0x0e, - 0xd3, 0x13, 0xd4, 0x8a, 0x6f, 0x12, 0x3d, 0x41, 0xed, 0x72, 0xc1, 0x51, 0xf0, 0xcb, 0x13, 0xc9, - 0x2f, 0x63, 0x87, 0xc1, 0xe3, 0x50, 0x35, 0x8d, 0xe5, 0x9e, 0x6b, 0x39, 0x52, 0x51, 0xa0, 0xbd, - 0xac, 0x2f, 0xf1, 0x32, 0x2c, 0xa1, 0xe8, 0x35, 0x80, 0xd8, 0xca, 0x23, 0xa6, 0xe1, 0xda, 0x70, - 0x96, 0xa5, 0x16, 0x09, 0x43, 0xdb, 0x6d, 0x07, 0xf1, 0xd4, 0xc7, 0x30, 0xac, 0x50, 0x43, 0x9f, - 0x82, 0x19, 0x31, 0xc8, 0xcd, 0x8e, 0xd1, 0x16, 0x2a, 0x75, 0xc9, 0x91, 0x5a, 0x53, 0x10, 0x2d, - 0x5f, 0x12, 0x84, 0x67, 0xd4, 0xd2, 0x00, 0x27, 0xa9, 0xa1, 0x03, 0x98, 0xee, 0xa8, 0x66, 0x82, - 0xd1, 0xf2, 0x27, 0xb6, 0x62, 0x32, 0x58, 0xbe, 0x28, 0x88, 0x4f, 0x27, 0x0c, 0x0c, 0x09, 0x52, - 0x39, 0xda, 0xce, 0xd8, 0x69, 0x69, 0x3b, 0x04, 0x26, 0xb8, 0xbe, 0x17, 0xcc, 0x8f, 0xb3, 0x0f, - 0x7c, 0xa6, 0xcc, 0x07, 0x72, 0xd5, 0x31, 0x36, 0x5b, 0xf2, 0xdf, 0x01, 0x8e, 0x70, 0xa3, 0x3d, - 0x98, 0xa6, 0x07, 0x57, 0x8b, 0x38, 0xc4, 0x0c, 0x3d, 0x7f, 0x7e, 0xa2, 0xbc, 0x59, 0xb0, 0xa5, - 0xe0, 0xe1, 0xd6, 0x22, 0xb5, 0x04, 0x27, 0xe8, 0x48, 0x75, 0xb8, 0x5a, 0xa8, 0x0e, 0xf7, 0x60, - 0x6a, 0x4f, 0x31, 0xdb, 0x4c, 0xb2, 0x41, 0xf8, 0x70, 0x99, 0x8e, 0xc5, 0x36, 0x9c, 0xe5, 0x0b, - 0x82, 0xd0, 0x94, 0x6a, 0xef, 0x51, 0xe9, 0xe8, 0x87, 0x55, 0x98, 0xab, 0x3b, 0xbd, 0x20, 0x24, - 0xfe, 0x92, 0xb0, 0xbb, 0x13, 0x1f, 0x7d, 0x56, 0x83, 0xcb, 0xec, 0xdf, 0x86, 0x77, 0xd7, 0x6d, - 0x10, 0xc7, 0x38, 0x58, 0xda, 0xa6, 0x35, 0x2c, 0xeb, 0x78, 0x1c, 0xa8, 0xd1, 0x13, 0x82, 0x12, - 0xb3, 0x3f, 0xb5, 0x72, 0x31, 0xe2, 0x02, 0x4a, 0xe8, 0xe7, 0x35, 0x78, 0x30, 0x07, 0xd4, 0x20, - 0x0e, 0x09, 0xa3, 0x83, 0xf2, 0xb8, 0xfd, 0x78, 0xe4, 0xe8, 0xb0, 0xf6, 0x60, 0xab, 0x08, 0x29, - 0x2e, 0xa6, 0x87, 0x7e, 0x49, 0x83, 0x85, 0x1c, 0xe8, 0x35, 0xc3, 0x76, 0x7a, 0x7e, 0x24, 0x2b, - 0x1c, 0xb7, 0x3b, 0x57, 0x8e, 0x0e, 0x6b, 0x0b, 0xad, 0x42, 0xac, 0xb8, 0x0f, 0x45, 0xf4, 0x69, - 0xb8, 0x24, 0xa1, 0xb7, 0x5d, 0x97, 0x10, 0x8b, 0x58, 0x4c, 0x84, 0x18, 0x2d, 0xd5, 0x95, 0x07, - 0x8f, 0x0e, 0x6b, 0x97, 0x5a, 0x79, 0x08, 0x71, 0x3e, 0x1d, 0xd4, 0x86, 0x47, 0x62, 0x40, 0x68, - 0x3b, 0xf6, 0x6b, 0x5c, 0xb8, 0xd9, 0xf1, 0x49, 0xb0, 0xe3, 0x39, 0x16, 0x63, 0x16, 0xda, 0xf2, - 0x5b, 0x8f, 0x0e, 0x6b, 0x8f, 0xb4, 0xfa, 0x55, 0xc4, 0xfd, 0xf1, 0x20, 0x0b, 0xa6, 0x03, 0xd3, - 0x70, 0x9b, 0x6e, 0x48, 0xfc, 0x3d, 0xc3, 0x99, 0x1f, 0x2f, 0xf5, 0x81, 0x7c, 0x8b, 0x2a, 0x78, - 0x70, 0x02, 0x2b, 0xfa, 0x00, 0x54, 0xc9, 0x7e, 0xd7, 0x70, 0x2d, 0xc2, 0xd9, 0xc2, 0xe4, 0xf2, - 0xc3, 0xf4, 0x30, 0x5a, 0x11, 0x65, 0xf7, 0x0e, 0x6b, 0xd3, 0xd1, 0xff, 0x6b, 0x9e, 0x45, 0xb0, - 0xac, 0x8d, 0x7e, 0x16, 0x2e, 0x76, 0x8c, 0xfd, 0x75, 0xcf, 0x22, 0x8c, 0xc9, 0x05, 0x91, 0x2c, - 0x57, 0x2d, 0xd5, 0xcf, 0xf9, 0xa3, 0xc3, 0xda, 0xc5, 0xb5, 0x1c, 0x7c, 0x38, 0x97, 0x0a, 0x9d, - 0x86, 0x8e, 0xb1, 0x7f, 0xdd, 0x37, 0x4c, 0xb2, 0xdd, 0x73, 0x36, 0x89, 0xdf, 0xb1, 0x5d, 0x2e, - 0x2e, 0x13, 0xd3, 0x73, 0x2d, 0xca, 0x4a, 0xb4, 0xc7, 0xc7, 0xf8, 0x34, 0xac, 0xf5, 0xab, 0x88, - 0xfb, 0xe3, 0x41, 0xef, 0x81, 0x69, 0xbb, 0xed, 0x7a, 0x3e, 0xd9, 0x34, 0x6c, 0x37, 0x0c, 0xe6, - 0x81, 0x59, 0x96, 0xd9, 0xb0, 0x36, 0x95, 0x72, 0x9c, 0xa8, 0xa5, 0x1f, 0x8e, 0xc0, 0x64, 0xdd, - 0x73, 0x2d, 0x9b, 0x49, 0xea, 0x4f, 0x26, 0xcc, 0x82, 0x8f, 0xa8, 0x7c, 0xf0, 0xde, 0x61, 0x6d, - 0x46, 0x56, 0x54, 0x18, 0xe3, 0xd3, 0x52, 0x17, 0xe7, 0xba, 0xdf, 0x5b, 0x93, 0x4a, 0xf4, 0xbd, - 0xc3, 0xda, 0x79, 0xd9, 0x2c, 0xa9, 0x57, 0xa3, 0x3d, 0x2e, 0x62, 0x6f, 0xfa, 0x86, 0x1b, 0xd8, - 0x43, 0x88, 0xf5, 0x52, 0x79, 0x5a, 0xcd, 0x60, 0xc3, 0x39, 0x14, 0xd0, 0x2b, 0x70, 0x8e, 0x96, - 0xde, 0xee, 0x5a, 0x46, 0x48, 0x94, 0x3d, 0x79, 0x2c, 0xb1, 0x5e, 0xd0, 0x3c, 0xb7, 0x9a, 0xc0, - 0x84, 0x53, 0x98, 0xb9, 0x19, 0xd5, 0x08, 0x3c, 0x97, 0x6d, 0xb7, 0x84, 0x19, 0x95, 0x96, 0x62, - 0x01, 0x45, 0x4f, 0xc0, 0x44, 0x87, 0x04, 0x81, 0xd1, 0x26, 0x6c, 0xff, 0x4c, 0xc6, 0x87, 0xe4, - 0x1a, 0x2f, 0xc6, 0x11, 0x1c, 0xbd, 0x0b, 0xc6, 0x4c, 0xcf, 0x22, 0xc1, 0xfc, 0x04, 0x9b, 0x61, - 0xaa, 0x60, 0x8c, 0xd5, 0x69, 0xc1, 0xbd, 0xc3, 0xda, 0x24, 0x53, 0x35, 0xe9, 0x2f, 0xcc, 0x2b, - 0xe9, 0xbf, 0x4a, 0x65, 0xd6, 0x94, 0x90, 0x3e, 0x80, 0xf9, 0xf7, 0xec, 0x2c, 0xa9, 0xfa, 0xeb, - 0x54, 0x61, 0xf0, 0xdc, 0xd0, 0xf7, 0x9c, 0x0d, 0xc7, 0x70, 0x09, 0xfa, 0x82, 0x06, 0xb3, 0x3b, - 0x76, 0x7b, 0x47, 0xbd, 0xbf, 0x11, 0x07, 0x5b, 0x29, 0xd9, 0xfe, 0x46, 0x0a, 0xd7, 0xf2, 0xc5, - 0xa3, 0xc3, 0xda, 0x6c, 0xba, 0x14, 0x67, 0x68, 0xea, 0x5f, 0xaa, 0xc0, 0x45, 0xd1, 0x33, 0x87, - 0x9e, 0x34, 0x5d, 0xc7, 0x3b, 0xe8, 0x10, 0xf7, 0x2c, 0xae, 0x5a, 0xa2, 0x19, 0xaa, 0x14, 0xce, - 0x50, 0x27, 0x33, 0x43, 0x23, 0x65, 0x66, 0x48, 0x2e, 0xe4, 0xfb, 0xcc, 0xd2, 0x9f, 0x69, 0x30, - 0x9f, 0x37, 0x16, 0x67, 0xa0, 0x03, 0x75, 0x92, 0x3a, 0xd0, 0x8d, 0xb2, 0x4a, 0x6d, 0xba, 0xeb, - 0x05, 0xba, 0xd0, 0x4f, 0x2a, 0x70, 0x39, 0xae, 0xde, 0x74, 0x83, 0xd0, 0x70, 0x1c, 0x6e, 0xc9, - 0x38, 0xfd, 0x79, 0xef, 0x26, 0x54, 0xd9, 0xf5, 0xe1, 0x3e, 0x55, 0xed, 0x7b, 0xa1, 0x31, 0x75, - 0x3f, 0x65, 0x4c, 0xdd, 0x38, 0x41, 0x9a, 0xfd, 0xed, 0xaa, 0xff, 0x53, 0x83, 0x85, 0xfc, 0x86, - 0x67, 0xb0, 0xa8, 0xbc, 0xe4, 0xa2, 0xfa, 0xe8, 0xc9, 0x7d, 0x75, 0xc1, 0xb2, 0xfa, 0x67, 0x95, - 0xa2, 0xaf, 0x65, 0xca, 0xf6, 0x36, 0x9c, 0xa7, 0x5a, 0x50, 0x10, 0x0a, 0xab, 0xdf, 0xf1, 0xae, - 0xc3, 0x23, 0x1b, 0xd1, 0x79, 0x9c, 0xc4, 0x81, 0xd3, 0x48, 0xd1, 0x3a, 0x4c, 0x50, 0xd5, 0x87, - 0xe2, 0xaf, 0x0c, 0x8e, 0x5f, 0x9e, 0x46, 0x2d, 0xde, 0x16, 0x47, 0x48, 0xd0, 0xcf, 0xc0, 0x8c, - 0x25, 0x77, 0xd4, 0x7d, 0xee, 0xc2, 0xd2, 0x58, 0x99, 0x7d, 0xb6, 0xa1, 0xb6, 0xc6, 0x49, 0x64, - 0xfa, 0x5f, 0x6a, 0xf0, 0x70, 0xbf, 0xb5, 0x85, 0x5e, 0x05, 0x30, 0x23, 0xf1, 0x82, 0x7b, 0x43, - 0x94, 0xb4, 0xe0, 0x4a, 0x21, 0x25, 0xde, 0xa0, 0xb2, 0x28, 0xc0, 0x0a, 0x91, 0x9c, 0x2b, 0xb6, - 0xca, 0x29, 0x5d, 0xb1, 0xe9, 0xff, 0x4b, 0x53, 0x59, 0x91, 0x3a, 0xb7, 0x6f, 0x36, 0x56, 0xa4, - 0xf6, 0xbd, 0xd0, 0xbe, 0xf6, 0x1f, 0x2a, 0xf0, 0x68, 0x7e, 0x13, 0xe5, 0xec, 0xfd, 0x08, 0x8c, - 0x77, 0xb9, 0xcb, 0xca, 0x08, 0x3b, 0x1b, 0x1f, 0xa7, 0x9c, 0x85, 0x3b, 0x94, 0xdc, 0x3b, 0xac, - 0x2d, 0xe4, 0x31, 0x7a, 0xe1, 0x8a, 0x22, 0xda, 0x21, 0x3b, 0x65, 0x65, 0xe0, 0xd2, 0xdf, 0xbb, - 0x07, 0x64, 0x2e, 0xc6, 0x16, 0x71, 0x06, 0x36, 0x2c, 0x7c, 0x46, 0x83, 0x73, 0x89, 0x15, 0x1d, - 0xcc, 0x8f, 0xb1, 0x35, 0x5a, 0xea, 0x76, 0x23, 0xb1, 0x55, 0xe2, 0x93, 0x3b, 0x51, 0x1c, 0xe0, - 0x14, 0xc1, 0x14, 0x9b, 0x55, 0x47, 0xf5, 0x4d, 0xc7, 0x66, 0xd5, 0xce, 0x17, 0xb0, 0xd9, 0x5f, - 0xa9, 0x14, 0x7d, 0x2d, 0x63, 0xb3, 0x77, 0x61, 0x32, 0x72, 0x1e, 0x8c, 0xd8, 0xc5, 0xb5, 0x61, - 0xfb, 0xc4, 0xd1, 0xc5, 0x37, 0xfb, 0x51, 0x49, 0x80, 0x63, 0x5a, 0xe8, 0x73, 0x1a, 0x40, 0x3c, - 0x31, 0x62, 0x53, 0x6d, 0x9e, 0xdc, 0x70, 0x28, 0x62, 0xcd, 0x39, 0xba, 0xa5, 0x95, 0x45, 0xa1, - 0xd0, 0xd5, 0xbf, 0x3d, 0x02, 0x28, 0xdb, 0x77, 0x2a, 0x6e, 0xee, 0xda, 0xae, 0x95, 0x56, 0x08, - 0x6e, 0xda, 0xae, 0x85, 0x19, 0x64, 0x00, 0x81, 0xf4, 0x59, 0x38, 0xdf, 0x76, 0xbc, 0x2d, 0xc3, - 0x71, 0x0e, 0x84, 0x3f, 0xa2, 0xf0, 0x6c, 0xbb, 0x40, 0x0f, 0xa6, 0xeb, 0x49, 0x10, 0x4e, 0xd7, - 0x45, 0x5d, 0x98, 0xf5, 0xa9, 0x2a, 0x6b, 0xda, 0x0e, 0x53, 0x9d, 0xbc, 0x5e, 0x58, 0xd2, 0x56, - 0xc2, 0xc4, 0x7b, 0x9c, 0xc2, 0x85, 0x33, 0xd8, 0xd1, 0xdb, 0x61, 0xa2, 0xeb, 0xdb, 0x1d, 0xc3, - 0x3f, 0x60, 0xca, 0x59, 0x75, 0x79, 0x8a, 0x9e, 0x70, 0x1b, 0xbc, 0x08, 0x47, 0x30, 0xf4, 0xb3, - 0x30, 0xe9, 0xd8, 0xdb, 0xc4, 0x3c, 0x30, 0x1d, 0x22, 0x8c, 0x1b, 0xb7, 0x4e, 0x66, 0xc9, 0xac, - 0x46, 0x68, 0xc5, 0xad, 0x61, 0xf4, 0x13, 0xc7, 0x04, 0xf5, 0x2f, 0x57, 0xe0, 0xa1, 0x3e, 0x2d, - 0x11, 0xa6, 0x0b, 0x5a, 0x7c, 0x98, 0x98, 0xbe, 0xf7, 0xf0, 0x45, 0x28, 0x0a, 0xef, 0x1d, 0xd6, - 0xde, 0xd6, 0x07, 0x41, 0x8b, 0xae, 0x1f, 0xd2, 0x3e, 0xc0, 0x31, 0x1a, 0xd4, 0x84, 0x71, 0x2b, - 0x36, 0xe3, 0x4d, 0x2e, 0x3f, 0x49, 0x59, 0x2c, 0x37, 0xb4, 0x0d, 0x8a, 0x4d, 0x20, 0x40, 0xab, - 0x30, 0xc1, 0x2f, 0x08, 0x89, 0x60, 0xd7, 0x4f, 0x31, 0x9d, 0x96, 0x17, 0x0d, 0x8a, 0x2c, 0x42, - 0xa1, 0xff, 0x5f, 0x0d, 0x26, 0xea, 0x9e, 0x4f, 0x1a, 0xeb, 0x2d, 0x74, 0x00, 0x53, 0x8a, 0x2b, - 0xb2, 0x60, 0x5d, 0x25, 0xf7, 0x32, 0xc3, 0xb8, 0x14, 0x63, 0x8b, 0xdc, 0x18, 0x65, 0x01, 0x56, - 0x69, 0xa1, 0x57, 0xe9, 0x98, 0xdf, 0xf5, 0xed, 0x90, 0x12, 0x1e, 0xe6, 0xd2, 0x89, 0x13, 0xc6, - 0x11, 0x2e, 0xbe, 0x0c, 0xe4, 0x4f, 0x1c, 0x53, 0xd1, 0x37, 0xe8, 0xb6, 0x4d, 0x77, 0x13, 0x3d, - 0x03, 0xa3, 0x1d, 0xcf, 0x8a, 0xe6, 0xfd, 0x1d, 0xd1, 0xa6, 0x5c, 0xf3, 0x2c, 0x3a, 0xb6, 0x97, - 0xb3, 0x2d, 0x98, 0x69, 0x8c, 0xb5, 0xd1, 0xd7, 0x61, 0x36, 0x4d, 0x1f, 0x3d, 0x03, 0xe7, 0x4c, - 0xaf, 0xd3, 0xf1, 0xdc, 0x56, 0x6f, 0x7b, 0xdb, 0xde, 0x27, 0x09, 0xff, 0xd2, 0x7a, 0x02, 0x82, - 0x53, 0x35, 0xf5, 0x6f, 0x68, 0x30, 0x42, 0xe7, 0x45, 0x87, 0x71, 0xcb, 0xeb, 0x18, 0xb6, 0x2b, - 0x7a, 0xc5, 0xbc, 0x5f, 0x1b, 0xac, 0x04, 0x0b, 0x08, 0xea, 0xc2, 0x64, 0x24, 0xe9, 0x0c, 0xe5, - 0xe3, 0xd0, 0x58, 0x6f, 0x49, 0xbf, 0x30, 0xc9, 0x7e, 0xa3, 0x92, 0x00, 0xc7, 0x44, 0x74, 0x03, - 0xe6, 0x1a, 0xeb, 0xad, 0xa6, 0x6b, 0x3a, 0x3d, 0x8b, 0xac, 0xec, 0xb3, 0x3f, 0x94, 0x01, 0xd8, - 0xbc, 0x44, 0x7c, 0x27, 0x63, 0x00, 0xa2, 0x12, 0x8e, 0x60, 0xb4, 0x1a, 0xe1, 0x2d, 0x84, 0x13, - 0x28, 0xab, 0x26, 0x90, 0xe0, 0x08, 0xa6, 0xff, 0xb0, 0x02, 0x53, 0x4a, 0x87, 0x90, 0x03, 0x13, - 0xfc, 0x73, 0x23, 0x1f, 0xac, 0x95, 0x92, 0x9f, 0x98, 0xec, 0x35, 0xa7, 0xce, 0x07, 0x34, 0xc0, - 0x11, 0x09, 0x95, 0x99, 0x55, 0xfa, 0x30, 0xb3, 0x45, 0x00, 0xee, 0x6d, 0xc6, 0x5c, 0x07, 0xf8, - 0x96, 0x64, 0xe7, 0x45, 0x4b, 0x96, 0x62, 0xa5, 0x06, 0x7a, 0x58, 0xb0, 0x7d, 0xee, 0x64, 0x50, - 0x4d, 0xb1, 0xfc, 0x6d, 0x18, 0x7b, 0xcd, 0x73, 0x49, 0x20, 0x2e, 0x9e, 0x4e, 0xe8, 0x03, 0x27, - 0xe9, 0xa1, 0xfe, 0x12, 0xc5, 0x8b, 0x39, 0x7a, 0xfd, 0xd7, 0x34, 0x80, 0x86, 0x11, 0x1a, 0xfc, - 0x9e, 0x64, 0x00, 0x3f, 0xde, 0x87, 0x13, 0xa7, 0x55, 0x35, 0xe3, 0xdb, 0x38, 0x1a, 0xd8, 0xaf, - 0x45, 0x9f, 0x2f, 0xa5, 0x60, 0x8e, 0xbd, 0x65, 0xbf, 0x46, 0x30, 0x83, 0xa3, 0x77, 0xc2, 0x24, - 0x71, 0x4d, 0xff, 0xa0, 0x1b, 0x12, 0x8b, 0x8d, 0x40, 0x95, 0xef, 0xd0, 0x95, 0xa8, 0x10, 0xc7, - 0x70, 0xfd, 0x49, 0x48, 0xaa, 0x32, 0xf7, 0xef, 0xa5, 0x7e, 0x4f, 0x83, 0xd9, 0x95, 0xfd, 0xae, - 0xed, 0x33, 0xdf, 0x5e, 0xe2, 0x53, 0xbd, 0x00, 0x3d, 0x01, 0x13, 0x7b, 0xfc, 0x5f, 0xd1, 0x52, - 0xea, 0x5e, 0xa2, 0x06, 0x8e, 0xe0, 0x68, 0x1b, 0xce, 0x11, 0xd6, 0x9c, 0x09, 0x00, 0x46, 0x58, - 0xc6, 0x3f, 0x81, 0xbb, 0x8e, 0x27, 0xb0, 0xe0, 0x14, 0x56, 0xd4, 0x82, 0x73, 0xa6, 0x63, 0x04, - 0x81, 0xbd, 0x6d, 0x9b, 0xb1, 0xd7, 0xca, 0xe4, 0xf2, 0x3b, 0x19, 0x5b, 0x48, 0x40, 0xee, 0x1d, - 0xd6, 0x2e, 0x89, 0x7e, 0x26, 0x01, 0x38, 0x85, 0x42, 0xff, 0xae, 0x06, 0x93, 0x52, 0x1b, 0x7a, - 0x43, 0x59, 0x24, 0x8f, 0xe1, 0x9c, 0xbf, 0x0a, 0xb3, 0xe2, 0xc2, 0x67, 0xd3, 0x73, 0x88, 0x6f, - 0xb8, 0x26, 0x41, 0x1f, 0x48, 0x7c, 0xca, 0x63, 0x29, 0x23, 0xfa, 0xc5, 0x74, 0xfd, 0xf8, 0x13, - 0xf5, 0x00, 0xaa, 0xd7, 0xc5, 0x66, 0x41, 0x0b, 0x50, 0xb1, 0x23, 0x79, 0x0c, 0x04, 0x8e, 0x4a, - 0xb3, 0x81, 0x2b, 0xb6, 0x25, 0x57, 0x56, 0xa5, 0x70, 0xfd, 0x2b, 0x8b, 0x68, 0xa4, 0xff, 0x22, - 0xd2, 0xbf, 0xad, 0xc1, 0xd4, 0x0d, 0x7b, 0x8b, 0xf8, 0xfc, 0x3a, 0x81, 0x71, 0xbb, 0xc4, 0x2b, - 0x93, 0xa9, 0xbc, 0x17, 0x26, 0x68, 0x1f, 0x26, 0x03, 0x73, 0x87, 0x58, 0x3d, 0x47, 0x7a, 0x9b, - 0x5c, 0x2f, 0x67, 0x9c, 0x95, 0xa4, 0x5b, 0x02, 0x9f, 0xe2, 0x23, 0x1b, 0x51, 0xc0, 0x31, 0x31, - 0xfd, 0x93, 0x70, 0x21, 0xa7, 0x11, 0xaa, 0xc1, 0x58, 0x10, 0x1a, 0x7e, 0x28, 0xc6, 0x8c, 0x31, - 0x11, 0xe6, 0x92, 0x84, 0x79, 0x39, 0x7a, 0x10, 0x46, 0x88, 0x6b, 0x89, 0x41, 0x9b, 0x38, 0x3a, - 0xac, 0x8d, 0xac, 0xb8, 0x16, 0xa6, 0x65, 0x74, 0xc2, 0x1d, 0x2f, 0xb1, 0xb4, 0xd9, 0x84, 0xaf, - 0x8a, 0x32, 0x2c, 0xa1, 0xcc, 0x9c, 0x9e, 0xb6, 0x1c, 0xa3, 0x2f, 0x6b, 0x30, 0xbb, 0x9d, 0x9a, - 0xd6, 0x61, 0x0c, 0xd6, 0xe9, 0x25, 0xb2, 0x3c, 0x2f, 0x06, 0x24, 0xb3, 0xd8, 0x70, 0x86, 0xae, - 0xfe, 0x2f, 0x47, 0xe1, 0x91, 0x1b, 0x9e, 0x6f, 0xbf, 0xe6, 0xb9, 0xa1, 0xe1, 0x6c, 0x78, 0x56, - 0x7c, 0x71, 0x2c, 0x96, 0xf7, 0xe7, 0x35, 0x78, 0xc0, 0xec, 0xf6, 0xb8, 0xc3, 0x53, 0x74, 0x9f, - 0xb7, 0x41, 0x7c, 0xdb, 0x2b, 0x7b, 0x7f, 0xcc, 0x5e, 0x45, 0xd4, 0x37, 0x6e, 0xe7, 0xa1, 0xc4, - 0x45, 0xb4, 0xd8, 0x35, 0xb6, 0xe5, 0xdd, 0x75, 0x59, 0xe7, 0x5a, 0x21, 0x1b, 0xcd, 0xd7, 0xe2, - 0x49, 0x28, 0x79, 0x8d, 0xdd, 0xc8, 0xc5, 0x88, 0x0b, 0x28, 0xa1, 0x4f, 0xc3, 0x25, 0x9b, 0x77, - 0x0e, 0x13, 0xc3, 0xb2, 0x5d, 0x12, 0x04, 0xec, 0x32, 0x77, 0x98, 0x7b, 0xda, 0x66, 0x1e, 0x42, - 0x9c, 0x4f, 0x07, 0xbd, 0x0c, 0x10, 0x1c, 0xb8, 0xa6, 0x18, 0xff, 0xb1, 0x52, 0x54, 0xf9, 0x09, - 0x2e, 0xb1, 0x60, 0x05, 0x23, 0x3d, 0xc4, 0x42, 0xb9, 0x28, 0xc7, 0xd9, 0x9d, 0x2f, 0x3b, 0xc4, - 0xe2, 0x35, 0x14, 0xc3, 0xf5, 0x7f, 0xa2, 0xc1, 0x84, 0x78, 0x2b, 0x85, 0xde, 0x91, 0x12, 0xe4, - 0xa4, 0x19, 0x37, 0x25, 0xcc, 0x1d, 0x30, 0x13, 0x9c, 0x10, 0xe2, 0x05, 0x53, 0x2e, 0x25, 0x09, - 0x08, 0xc2, 0xb1, 0x46, 0x90, 0x30, 0xc5, 0x45, 0x5a, 0x82, 0x42, 0x4c, 0xff, 0xa6, 0x06, 0x73, - 0x99, 0x56, 0x03, 0x28, 0xb3, 0x67, 0x78, 0xbb, 0xf5, 0xbd, 0x69, 0x60, 0xcf, 0xe2, 0x96, 0x36, - 0x9a, 0x2d, 0xe2, 0xef, 0xc9, 0x4d, 0x48, 0x79, 0x46, 0xec, 0xc5, 0x24, 0x7a, 0x31, 0x04, 0xcf, - 0xb8, 0x99, 0xc2, 0x15, 0xf3, 0x8c, 0x34, 0x04, 0x67, 0xe8, 0xa2, 0x2f, 0x69, 0x30, 0x6b, 0x24, - 0x9f, 0xc5, 0x45, 0x4c, 0xbd, 0x94, 0x13, 0x77, 0xea, 0x89, 0x5d, 0xdc, 0x97, 0x14, 0x20, 0xc0, - 0x19, 0xb2, 0xe8, 0x3d, 0x30, 0x6d, 0x74, 0xed, 0xa5, 0x9e, 0x65, 0x13, 0xd7, 0x94, 0x2f, 0xa4, - 0x98, 0xa1, 0x6d, 0x69, 0xa3, 0x29, 0xcb, 0x71, 0xa2, 0x96, 0x7c, 0xcd, 0x26, 0x06, 0x72, 0x74, - 0xc8, 0xd7, 0x6c, 0x62, 0x0c, 0xe3, 0xd7, 0x6c, 0x62, 0xe8, 0x54, 0x22, 0xe8, 0xe3, 0xf0, 0x20, - 0x3f, 0x0d, 0x97, 0x8d, 0xc0, 0x36, 0x97, 0x7a, 0xe1, 0x0e, 0x71, 0xc3, 0x48, 0x42, 0xe2, 0x16, - 0x05, 0xe6, 0xd0, 0xb2, 0x52, 0x54, 0x09, 0x17, 0xb7, 0x47, 0x2e, 0x80, 0x67, 0x5b, 0xa6, 0xf8, - 0x1e, 0x6e, 0x76, 0x28, 0xe5, 0x6f, 0x74, 0xab, 0xd9, 0xa8, 0x8b, 0xcf, 0x61, 0x6c, 0x22, 0xfe, - 0x8d, 0x15, 0x0a, 0xe8, 0x75, 0x0d, 0x66, 0xc4, 0x22, 0x17, 0x34, 0x27, 0xd8, 0xfc, 0xbf, 0x54, - 0x76, 0x31, 0xa6, 0x16, 0xfc, 0x22, 0x56, 0x91, 0x73, 0xb7, 0x74, 0xe9, 0x61, 0x97, 0x80, 0xe1, - 0x64, 0x3f, 0xd0, 0xdf, 0xd7, 0xe0, 0x62, 0x40, 0xfc, 0x3d, 0xdb, 0x24, 0x4b, 0xa6, 0xe9, 0xf5, - 0xdc, 0x68, 0x92, 0xab, 0xe5, 0x5f, 0x16, 0xb5, 0x72, 0xf0, 0x71, 0xd7, 0x8e, 0x3c, 0x08, 0xce, - 0xa5, 0x4f, 0xcf, 0xaf, 0xf3, 0x77, 0x8d, 0xd0, 0xdc, 0xa9, 0x1b, 0xe6, 0x0e, 0xd3, 0x1b, 0xb8, - 0x37, 0x47, 0xc9, 0x4d, 0xf3, 0x42, 0x12, 0x15, 0x37, 0x9b, 0xa5, 0x0a, 0x71, 0x9a, 0x20, 0x0a, - 0xa0, 0xea, 0x93, 0x57, 0x7b, 0x24, 0x60, 0x2e, 0x1f, 0x94, 0x78, 0x73, 0xe8, 0x19, 0xc3, 0x02, - 0x21, 0x97, 0x82, 0xa2, 0x5f, 0x58, 0x12, 0x42, 0x6d, 0x78, 0x84, 0xaf, 0xdc, 0x25, 0xd7, 0x73, - 0x0f, 0x3a, 0x5e, 0x2f, 0x48, 0xad, 0xfe, 0x29, 0xb6, 0xfa, 0x99, 0x53, 0xcb, 0x4a, 0xbf, 0x8a, - 0xb8, 0x3f, 0x1e, 0xf4, 0x22, 0x54, 0xc9, 0x1e, 0x71, 0xc3, 0xcd, 0xcd, 0xd5, 0xf9, 0xe9, 0x52, - 0x47, 0x23, 0xfb, 0x84, 0x15, 0x81, 0x03, 0x4b, 0x6c, 0xc8, 0x83, 0x09, 0xc7, 0x6b, 0xb7, 0x6d, - 0xb7, 0x3d, 0x3f, 0x53, 0x7e, 0x1d, 0x25, 0x86, 0x6d, 0x95, 0xe3, 0xe3, 0x02, 0xb3, 0xf8, 0x81, - 0x23, 0x2a, 0x0b, 0x1f, 0x01, 0x94, 0xdd, 0x02, 0x68, 0x16, 0x46, 0x76, 0x09, 0xf7, 0x6e, 0x98, - 0xc4, 0xf4, 0x5f, 0x74, 0x11, 0xc6, 0xf6, 0x0c, 0xa7, 0xc7, 0xa5, 0xfb, 0x2a, 0xe6, 0x3f, 0x9e, - 0xa9, 0x7c, 0x40, 0xd3, 0x7f, 0x49, 0x83, 0x8b, 0x79, 0x04, 0xe9, 0x11, 0xbf, 0x47, 0xfc, 0x2d, - 0x2f, 0x88, 0x1c, 0x25, 0xc6, 0xf8, 0x11, 0x7f, 0x27, 0x2a, 0xc4, 0x31, 0x1c, 0x35, 0xe1, 0xc2, - 0x4e, 0x18, 0x76, 0x97, 0x4c, 0x93, 0x04, 0x81, 0xac, 0xc1, 0xa8, 0x8d, 0xf1, 0x57, 0xdc, 0x37, - 0x36, 0x37, 0x37, 0x52, 0x60, 0x9c, 0xd7, 0x46, 0xff, 0x5d, 0x0d, 0x2e, 0xe5, 0x2e, 0x1c, 0x84, - 0xe1, 0x32, 0xf3, 0x86, 0x72, 0xd7, 0x7a, 0xa1, 0x11, 0xda, 0x6e, 0xbb, 0xe9, 0x6e, 0x3b, 0x76, - 0x7b, 0x27, 0x14, 0xdd, 0x63, 0x92, 0xda, 0x5a, 0x6e, 0x0d, 0x5c, 0xd0, 0x92, 0x76, 0xbc, 0x63, - 0xec, 0x67, 0x10, 0x2a, 0x1d, 0x5f, 0xcb, 0x82, 0x71, 0x5e, 0x1b, 0xfd, 0xeb, 0x63, 0xf0, 0x10, - 0xed, 0x78, 0x2c, 0x34, 0xac, 0x19, 0xae, 0xd1, 0x7e, 0x63, 0x1e, 0xce, 0xdf, 0xd6, 0xe0, 0x81, - 0x9d, 0x7c, 0x81, 0x5e, 0x88, 0x2d, 0xcf, 0x97, 0x52, 0xbc, 0xfa, 0xe9, 0x08, 0x7c, 0xeb, 0xf6, - 0xad, 0x82, 0x8b, 0x3a, 0x85, 0x3e, 0x02, 0xb3, 0xae, 0x67, 0x91, 0x7a, 0xb3, 0x81, 0xd7, 0x8c, - 0x60, 0xb7, 0x15, 0x99, 0x5a, 0xc6, 0xb8, 0x65, 0x7e, 0x3d, 0x05, 0xc3, 0x99, 0xda, 0x68, 0x0f, - 0x50, 0xd7, 0xb3, 0x56, 0xf6, 0x6c, 0x33, 0x72, 0xda, 0x2a, 0x7f, 0x1b, 0xc0, 0x1e, 0x60, 0x6c, - 0x64, 0xb0, 0xe1, 0x1c, 0x0a, 0x4c, 0x23, 0xa1, 0x9d, 0x59, 0xf3, 0x5c, 0x3b, 0xf4, 0x7c, 0xe6, - 0x6d, 0x37, 0x94, 0x60, 0xce, 0xd6, 0xf9, 0x7a, 0x2e, 0x46, 0x5c, 0x40, 0x49, 0xff, 0xdf, 0x1a, - 0x9c, 0xa7, 0xcb, 0x62, 0xc3, 0xf7, 0xf6, 0x0f, 0xde, 0x88, 0x0b, 0xf2, 0x09, 0x61, 0x75, 0xe6, - 0x9a, 0xf4, 0x25, 0xc5, 0xe2, 0x3c, 0xc9, 0xfa, 0x1c, 0x1b, 0x99, 0x55, 0x63, 0xc2, 0x48, 0xb1, - 0x31, 0x41, 0x7f, 0xbd, 0xc2, 0x85, 0xe4, 0x48, 0x99, 0x7f, 0x43, 0xee, 0xc3, 0xf7, 0xc3, 0x0c, - 0x2d, 0x5b, 0x33, 0xf6, 0x37, 0x1a, 0x77, 0x3c, 0x27, 0x72, 0x78, 0x64, 0x4e, 0x0c, 0x37, 0x55, - 0x00, 0x4e, 0xd6, 0x43, 0xcf, 0xc0, 0x44, 0x97, 0x3f, 0xab, 0x10, 0xc6, 0x85, 0x47, 0xb9, 0x69, - 0x96, 0x15, 0xdd, 0x3b, 0xac, 0xcd, 0x89, 0xcf, 0xb6, 0xdd, 0xb6, 0x28, 0xc4, 0x51, 0x03, 0xfd, - 0x2b, 0x17, 0x81, 0x21, 0x77, 0x48, 0xf8, 0x46, 0x1c, 0x93, 0x27, 0x61, 0xca, 0xec, 0xf6, 0xea, - 0xd7, 0x5a, 0xcf, 0xf7, 0xbc, 0xd0, 0x10, 0x96, 0x67, 0x26, 0x35, 0xd7, 0x37, 0x6e, 0x47, 0xc5, - 0x58, 0xad, 0x43, 0xb9, 0x83, 0xd9, 0xed, 0x09, 0x7e, 0xbb, 0xa1, 0xde, 0xe4, 0x33, 0xee, 0x50, - 0xdf, 0xb8, 0x9d, 0x80, 0xe1, 0x4c, 0x6d, 0xf4, 0x69, 0x98, 0x26, 0x62, 0xe3, 0xde, 0x30, 0x7c, - 0x4b, 0xf0, 0x85, 0xd2, 0x62, 0x8f, 0x1c, 0xda, 0x88, 0x1b, 0x70, 0x65, 0x63, 0x45, 0x21, 0x81, - 0x13, 0x04, 0x99, 0xe0, 0x2f, 0x7e, 0xd3, 0x59, 0xf6, 0xac, 0x34, 0xa3, 0x18, 0x13, 0x82, 0x7f, - 0x51, 0x25, 0x5c, 0xdc, 0x1e, 0xfd, 0x96, 0x06, 0x97, 0x25, 0xd4, 0x76, 0xed, 0x4e, 0xaf, 0x83, - 0x89, 0xe9, 0x18, 0x76, 0x47, 0x68, 0x01, 0x2f, 0x9c, 0xd8, 0x87, 0x26, 0xd1, 0x73, 0x66, 0x95, - 0x0f, 0xc3, 0x05, 0x5d, 0x42, 0xdf, 0xd4, 0xe0, 0xd1, 0x08, 0xb4, 0x41, 0xf5, 0xf0, 0x9e, 0x4f, - 0x62, 0x77, 0x5b, 0x31, 0x24, 0x13, 0xa5, 0x78, 0xe7, 0x63, 0x47, 0x87, 0xb5, 0x47, 0x57, 0xee, - 0x83, 0x1b, 0xdf, 0x97, 0xba, 0xba, 0x5c, 0x5a, 0xde, 0x76, 0x28, 0xd4, 0x86, 0xd3, 0x5a, 0x2e, - 0x94, 0x04, 0x4e, 0x10, 0x44, 0xbf, 0xad, 0xc1, 0x03, 0x6a, 0x81, 0xba, 0x5a, 0xb8, 0xbe, 0xf0, - 0xe2, 0x89, 0x75, 0x26, 0x85, 0x9f, 0x5b, 0xe6, 0x0a, 0x80, 0xb8, 0xa8, 0x57, 0x94, 0x6d, 0x77, - 0xd8, 0xc2, 0xe4, 0x3a, 0xc5, 0x18, 0x67, 0xdb, 0x7c, 0xad, 0x06, 0x38, 0x82, 0x51, 0x55, 0xbd, - 0xeb, 0x59, 0x1b, 0xb6, 0x15, 0xac, 0xda, 0x1d, 0x3b, 0x64, 0x52, 0xff, 0x08, 0x1f, 0x8e, 0x0d, - 0xcf, 0xda, 0x68, 0x36, 0x78, 0x39, 0x4e, 0xd4, 0x62, 0x0f, 0x47, 0xec, 0x8e, 0xd1, 0x26, 0x1b, - 0x3d, 0xc7, 0xd9, 0xf0, 0x3d, 0x66, 0xbe, 0x69, 0x10, 0xc3, 0x72, 0x6c, 0x97, 0x94, 0x94, 0xf2, - 0xd9, 0x76, 0x6b, 0x16, 0x21, 0xc5, 0xc5, 0xf4, 0xd0, 0x22, 0xc0, 0xb6, 0x61, 0x3b, 0xad, 0xbb, - 0x46, 0xf7, 0x96, 0xcb, 0x54, 0x81, 0x2a, 0xd7, 0x93, 0xaf, 0xc9, 0x52, 0xac, 0xd4, 0xa0, 0xab, - 0x89, 0x72, 0x41, 0x4c, 0xf8, 0x9b, 0xdc, 0xf9, 0x73, 0x27, 0xb4, 0x9a, 0x22, 0x84, 0x7c, 0xf8, - 0x6e, 0x2a, 0x24, 0x70, 0x82, 0x20, 0xfa, 0xbc, 0x06, 0xe7, 0x82, 0x83, 0x20, 0x24, 0x1d, 0xd9, - 0x87, 0xf3, 0x27, 0xdd, 0x07, 0x66, 0xd8, 0x6a, 0x25, 0x88, 0xe0, 0x14, 0x51, 0x64, 0xc0, 0x43, - 0x6c, 0x54, 0xaf, 0xd7, 0x6f, 0xd8, 0xed, 0x1d, 0xf9, 0x1c, 0x64, 0x83, 0xf8, 0x26, 0x71, 0xc3, - 0xf9, 0x59, 0xb6, 0x6e, 0x6a, 0x47, 0x87, 0xb5, 0x87, 0x9a, 0xc5, 0xd5, 0x70, 0x3f, 0x1c, 0xe8, - 0x65, 0x58, 0x10, 0xe0, 0x55, 0xef, 0x6e, 0x86, 0xc2, 0x1c, 0xa3, 0xc0, 0xde, 0xe8, 0x34, 0x0b, - 0x6b, 0xe1, 0x3e, 0x18, 0xa8, 0x46, 0x11, 0x10, 0x9f, 0xd9, 0xa5, 0x89, 0x5c, 0x3c, 0xc1, 0x3c, - 0x62, 0x8b, 0x80, 0x69, 0x14, 0xad, 0x2c, 0x18, 0xe7, 0xb5, 0x41, 0xcf, 0x4a, 0xf7, 0xcd, 0x03, - 0x5a, 0xf0, 0xfc, 0x46, 0x6b, 0xfe, 0x02, 0xeb, 0xdf, 0x05, 0xc5, 0x2b, 0x33, 0x02, 0xe1, 0x74, - 0x5d, 0x2a, 0x5b, 0x44, 0x45, 0xcb, 0x3d, 0x3f, 0x08, 0xe7, 0x2f, 0xb2, 0xc6, 0x4c, 0xb6, 0xc0, - 0x2a, 0x00, 0x27, 0xeb, 0xa1, 0x67, 0xe0, 0x5c, 0x40, 0x4c, 0xd3, 0xeb, 0x74, 0x1b, 0x64, 0xdb, - 0xe8, 0x39, 0xe1, 0xfc, 0x25, 0xd6, 0x7b, 0x3e, 0x83, 0x09, 0x08, 0x4e, 0xd5, 0x44, 0x07, 0x70, - 0x41, 0x3e, 0xdf, 0x5d, 0xf5, 0xda, 0x6b, 0xc6, 0x3e, 0x13, 0xd5, 0x2f, 0xdf, 0x7f, 0x07, 0x2e, - 0x46, 0x7e, 0x4d, 0x8b, 0xcf, 0xf7, 0x0c, 0x37, 0xb4, 0xc3, 0x03, 0x3e, 0x5c, 0xf5, 0x2c, 0x3a, - 0x9c, 0x47, 0x03, 0xad, 0xc2, 0xc5, 0x54, 0xf1, 0x35, 0xdb, 0x21, 0xc1, 0xfc, 0x03, 0xec, 0xb3, - 0x99, 0x21, 0xa6, 0x9e, 0x03, 0xc7, 0xb9, 0xad, 0xd0, 0x2d, 0xb8, 0xd4, 0xf5, 0xbd, 0x90, 0x98, - 0xe1, 0x4d, 0x2a, 0x9e, 0x38, 0xe2, 0x03, 0x83, 0xf9, 0x79, 0x36, 0x16, 0xcc, 0x26, 0xbf, 0x91, - 0x57, 0x01, 0xe7, 0xb7, 0x43, 0x5f, 0xd7, 0xe0, 0x4a, 0x10, 0xfa, 0xc4, 0xe8, 0xd8, 0x6e, 0xbb, - 0xee, 0xb9, 0x2e, 0x61, 0x6c, 0xb2, 0x69, 0xc5, 0xae, 0x49, 0x0f, 0x96, 0xe2, 0x53, 0xfa, 0xd1, - 0x61, 0xed, 0x4a, 0xab, 0x2f, 0x66, 0x7c, 0x1f, 0xca, 0xfa, 0x61, 0x85, 0x6b, 0xdd, 0x19, 0xde, - 0x4f, 0x17, 0x61, 0x87, 0x74, 0x3c, 0xff, 0x60, 0x29, 0x0a, 0x18, 0x25, 0x6c, 0xe0, 0x6c, 0x11, - 0xae, 0x25, 0x41, 0x38, 0x5d, 0x97, 0x4a, 0x66, 0x6c, 0xb3, 0x5c, 0x6b, 0xc5, 0xed, 0x2b, 0xb1, - 0x64, 0xd6, 0x4c, 0xc1, 0x70, 0xa6, 0x36, 0xaa, 0xc3, 0x9c, 0x28, 0x6b, 0x52, 0xe5, 0x26, 0xb8, - 0xe6, 0x93, 0x48, 0xe6, 0xa5, 0x6a, 0xc2, 0x5c, 0x33, 0x0d, 0xc4, 0xd9, 0xfa, 0xf4, 0x2b, 0xe8, - 0x0f, 0xb5, 0x17, 0xa3, 0xf1, 0x57, 0xac, 0x27, 0x41, 0x38, 0x5d, 0x37, 0xd2, 0x3e, 0x13, 0x5d, - 0x18, 0x8b, 0xbf, 0x62, 0x3d, 0x05, 0xc3, 0x99, 0xda, 0xfa, 0x7f, 0x1e, 0x85, 0xb7, 0x0d, 0x20, - 0x2f, 0xa1, 0x4e, 0xfe, 0x70, 0x1f, 0x7f, 0xef, 0x0c, 0x36, 0x3d, 0xdd, 0x82, 0xe9, 0x39, 0x3e, - 0xbd, 0x41, 0xa7, 0x33, 0x28, 0x9a, 0xce, 0xe3, 0x93, 0x1c, 0x7c, 0xfa, 0x3b, 0xf9, 0xd3, 0x5f, - 0x72, 0x54, 0xef, 0xbb, 0x5c, 0xba, 0x05, 0xcb, 0xa5, 0xe4, 0xa8, 0x0e, 0xb0, 0xbc, 0xfe, 0x74, - 0x14, 0x1e, 0x1b, 0x44, 0x76, 0x2b, 0xb9, 0xbe, 0x72, 0xb8, 0xce, 0xa9, 0xae, 0xaf, 0x22, 0x07, - 0xcc, 0x53, 0x5c, 0x5f, 0x39, 0x24, 0x4f, 0x7b, 0x7d, 0x15, 0x8d, 0xea, 0x69, 0xad, 0xaf, 0xa2, - 0x51, 0x1d, 0x60, 0x7d, 0xfd, 0x45, 0xfa, 0x7c, 0x90, 0x22, 0x5b, 0x13, 0x46, 0xcc, 0x6e, 0xaf, - 0x24, 0x93, 0x62, 0x1e, 0x13, 0xf5, 0x8d, 0xdb, 0x98, 0xe2, 0x40, 0x18, 0xc6, 0xf9, 0xfa, 0x29, - 0xc9, 0x82, 0x98, 0x57, 0x20, 0x5f, 0x92, 0x58, 0x60, 0xa2, 0x43, 0x45, 0xba, 0x3b, 0xa4, 0x43, - 0x7c, 0xc3, 0x69, 0x85, 0x9e, 0x6f, 0xb4, 0xcb, 0x72, 0x1b, 0x36, 0x54, 0x2b, 0x29, 0x5c, 0x38, - 0x83, 0x9d, 0x0e, 0x48, 0xd7, 0xb6, 0x4a, 0xf2, 0x17, 0x36, 0x20, 0x1b, 0xcd, 0x06, 0xa6, 0x38, - 0xf4, 0x7f, 0x34, 0x09, 0x4a, 0x84, 0x0a, 0xf4, 0x71, 0x78, 0xd0, 0x70, 0x1c, 0xef, 0xee, 0x86, - 0x6f, 0xef, 0xd9, 0x0e, 0x69, 0x13, 0x4b, 0xca, 0x33, 0x81, 0xf0, 0xab, 0x61, 0x3a, 0xcb, 0x52, - 0x51, 0x25, 0x5c, 0xdc, 0x1e, 0x7d, 0x59, 0x83, 0x39, 0x33, 0x1d, 0x15, 0x60, 0x98, 0x9b, 0xf7, - 0x4c, 0x88, 0x01, 0xbe, 0x9f, 0x32, 0xc5, 0x38, 0x4b, 0x16, 0xfd, 0x9c, 0xc6, 0xed, 0x62, 0xf2, - 0x12, 0x40, 0xcc, 0xd9, 0xf5, 0x13, 0xba, 0x38, 0x8c, 0x0d, 0x6c, 0xf1, 0x35, 0x43, 0x92, 0x20, - 0xfa, 0xa6, 0x06, 0x97, 0x76, 0xf3, 0xcc, 0xf9, 0x62, 0x66, 0x6f, 0x95, 0xed, 0x4a, 0xc1, 0xfd, - 0x00, 0x97, 0x28, 0x73, 0x2b, 0xe0, 0xfc, 0x8e, 0xc8, 0x51, 0x92, 0x16, 0x4e, 0xc1, 0x04, 0x4a, - 0x8f, 0x52, 0xca, 0x54, 0x1a, 0x8f, 0x92, 0x04, 0xe0, 0x24, 0x41, 0xd4, 0x85, 0xc9, 0xdd, 0xc8, - 0xac, 0x2c, 0x4c, 0x49, 0xf5, 0xb2, 0xd4, 0x15, 0xdb, 0x34, 0xbf, 0x6a, 0x92, 0x85, 0x38, 0x26, - 0x82, 0x76, 0x60, 0x62, 0x97, 0x33, 0x22, 0x61, 0x02, 0x5a, 0x1a, 0x5a, 0x45, 0xe5, 0x96, 0x08, - 0x51, 0x84, 0x23, 0xf4, 0xaa, 0xbf, 0x5b, 0xf5, 0x3e, 0x4e, 0x93, 0x5f, 0xd7, 0xe0, 0xd2, 0x1e, - 0xf1, 0x43, 0xdb, 0x4c, 0x5f, 0xa6, 0x4c, 0x96, 0x57, 0xa3, 0xef, 0xe4, 0x21, 0xe4, 0xcb, 0x24, - 0x17, 0x84, 0xf3, 0xbb, 0x40, 0x95, 0x6a, 0x6e, 0x13, 0x6f, 0x85, 0x46, 0x68, 0x9b, 0x9b, 0xde, - 0x2e, 0x71, 0xe9, 0xc7, 0x8a, 0xf0, 0xc3, 0xc0, 0x18, 0x07, 0x53, 0xaa, 0x57, 0x8a, 0xab, 0xe1, - 0x7e, 0x38, 0xf4, 0x9f, 0x68, 0x90, 0xb1, 0xec, 0xa2, 0xaf, 0x68, 0x30, 0xbd, 0x4d, 0x8c, 0xb0, - 0xe7, 0x93, 0xeb, 0x46, 0x28, 0x9f, 0xc6, 0xdc, 0x39, 0x09, 0x83, 0xf2, 0xe2, 0x35, 0x05, 0x31, - 0xbf, 0xf8, 0x97, 0xd1, 0x6d, 0x54, 0x10, 0x4e, 0xf4, 0x60, 0xe1, 0x39, 0x98, 0xcb, 0x34, 0x3c, - 0xd6, 0x75, 0xe9, 0xbf, 0xd2, 0x20, 0x2f, 0x20, 0x35, 0x7a, 0x19, 0xc6, 0x0c, 0xcb, 0x92, 0xf1, - 0x2a, 0x9f, 0x2e, 0xe7, 0xe0, 0x62, 0xa9, 0x2f, 0x90, 0xd8, 0x4f, 0xcc, 0xd1, 0xa2, 0x6b, 0x80, - 0x8c, 0xc4, 0x2d, 0xf6, 0x5a, 0xec, 0xa2, 0xcf, 0x2e, 0xa3, 0x96, 0x32, 0x50, 0x9c, 0xd3, 0x42, - 0xff, 0x7b, 0x1a, 0xa0, 0x6c, 0x3c, 0x24, 0xe4, 0x43, 0x55, 0x2c, 0xe5, 0x68, 0x96, 0x4a, 0x99, - 0xfd, 0xd3, 0x7e, 0xc7, 0xf1, 0x2b, 0x2e, 0x51, 0x10, 0x60, 0x49, 0x47, 0xff, 0x4b, 0x0d, 0xe2, - 0x98, 0x76, 0xe8, 0xbd, 0x30, 0x65, 0x91, 0xc0, 0xf4, 0xed, 0x6e, 0x18, 0x7b, 0x29, 0xcb, 0x58, - 0x36, 0x8d, 0x18, 0x84, 0xd5, 0x7a, 0x48, 0x87, 0xf1, 0xd0, 0x08, 0x76, 0x9b, 0x0d, 0xa1, 0x54, - 0x32, 0x11, 0x60, 0x93, 0x95, 0x60, 0x01, 0x89, 0x63, 0x1b, 0x8c, 0x0c, 0x10, 0xdb, 0x00, 0x6d, - 0x9f, 0x40, 0x20, 0x07, 0x74, 0xff, 0x20, 0x0e, 0xfa, 0x6f, 0x54, 0xe0, 0x3c, 0xad, 0xb2, 0x66, - 0xd8, 0x6e, 0x48, 0x5c, 0xe6, 0xe5, 0x5b, 0x72, 0x10, 0xda, 0x30, 0x13, 0xfa, 0x76, 0xbb, 0x4d, - 0x7c, 0x11, 0x0e, 0xe6, 0xf8, 0x1e, 0xdb, 0xd2, 0x6b, 0x66, 0x53, 0x45, 0x84, 0x93, 0x78, 0xd1, - 0xd3, 0xcc, 0x1d, 0x56, 0x3e, 0xbb, 0x79, 0x5b, 0xb4, 0x54, 0x29, 0x53, 0x20, 0xf7, 0x44, 0xb0, - 0x0c, 0x19, 0x08, 0x91, 0x95, 0x62, 0xde, 0x02, 0xbd, 0x1f, 0x66, 0x84, 0x57, 0x29, 0x0f, 0x52, - 0x21, 0xd4, 0x6f, 0x76, 0xc2, 0x5c, 0x53, 0x01, 0x38, 0x59, 0x4f, 0xff, 0xe3, 0x0a, 0x24, 0xc3, - 0x2d, 0x96, 0x1d, 0xa5, 0x6c, 0x84, 0x8e, 0xca, 0xa9, 0x45, 0xe8, 0x78, 0x17, 0x8b, 0x55, 0xcc, - 0xc3, 0xd0, 0xf3, 0x5b, 0x6a, 0x35, 0xc2, 0x30, 0x0f, 0x22, 0x2f, 0x6b, 0xc4, 0xc3, 0x3a, 0x7a, - 0xec, 0x61, 0x7d, 0xaf, 0xf0, 0x0b, 0x1f, 0x4b, 0xc4, 0x49, 0x89, 0xfc, 0xc2, 0xe7, 0x12, 0x0d, - 0x15, 0xa7, 0xf0, 0xef, 0x6b, 0x30, 0x21, 0x82, 0x80, 0x0d, 0xe0, 0x25, 0xbf, 0x0d, 0x63, 0x4c, - 0xe5, 0x19, 0x46, 0x1a, 0x6c, 0xed, 0x78, 0x5e, 0x98, 0x08, 0x85, 0xc6, 0x9c, 0xa9, 0xd9, 0xbf, - 0x98, 0xa3, 0x67, 0x5e, 0x7a, 0xbe, 0xb9, 0x63, 0x87, 0xc4, 0x0c, 0xa3, 0x00, 0x4b, 0x91, 0x97, - 0x9e, 0x52, 0x8e, 0x13, 0xb5, 0xf4, 0x6f, 0x8c, 0xc2, 0xa3, 0x02, 0x71, 0x46, 0x44, 0x92, 0x0c, - 0xee, 0x00, 0x2e, 0x88, 0xb9, 0x6d, 0xf8, 0x86, 0x2d, 0x6f, 0xff, 0xcb, 0xa9, 0xbe, 0xc2, 0x2f, - 0x24, 0x83, 0x0e, 0xe7, 0xd1, 0xe0, 0xa1, 0x82, 0x58, 0xf1, 0x0d, 0x62, 0x38, 0xe1, 0x4e, 0x44, - 0xbb, 0x32, 0x4c, 0xa8, 0xa0, 0x2c, 0x3e, 0x9c, 0x4b, 0x85, 0x79, 0x1f, 0x08, 0x40, 0xdd, 0x27, - 0x86, 0xea, 0xfa, 0x30, 0x84, 0x3f, 0xf4, 0x5a, 0x2e, 0x46, 0x5c, 0x40, 0x89, 0xd9, 0x10, 0x8d, - 0x7d, 0x66, 0x92, 0xc0, 0x24, 0xf4, 0x6d, 0x16, 0xd2, 0x4e, 0x1a, 0xb2, 0xd7, 0x92, 0x20, 0x9c, - 0xae, 0x8b, 0x9e, 0x81, 0x73, 0xcc, 0x9b, 0x23, 0x7e, 0x93, 0x3f, 0x16, 0xbf, 0x20, 0x5b, 0x4f, - 0x40, 0x70, 0xaa, 0xa6, 0xfe, 0x9b, 0x1a, 0x4c, 0xab, 0xcb, 0x6e, 0x80, 0x77, 0x3e, 0x3d, 0xe5, - 0x30, 0x1c, 0xe2, 0x11, 0x82, 0x4a, 0x75, 0x90, 0xf3, 0xf0, 0x17, 0x47, 0xe0, 0x42, 0x4e, 0x1b, - 0x76, 0x37, 0x4f, 0x52, 0x07, 0xeb, 0x30, 0x77, 0xf3, 0x99, 0x43, 0x5a, 0xde, 0xcd, 0xa7, 0x21, - 0x38, 0x43, 0x17, 0xdd, 0x81, 0x11, 0xd3, 0xb7, 0xc5, 0xb0, 0xbc, 0xbf, 0x94, 0x5a, 0x88, 0x9b, - 0xcb, 0x53, 0x82, 0xe2, 0x48, 0x1d, 0x37, 0x31, 0x45, 0x48, 0x8f, 0x07, 0x75, 0x53, 0x47, 0x67, - 0x35, 0x3b, 0x1e, 0xd4, 0xbd, 0x1f, 0xe0, 0x64, 0x3d, 0xf4, 0x22, 0xcc, 0x0b, 0x79, 0x3d, 0x7a, - 0x21, 0xe4, 0xb9, 0x41, 0x48, 0xf7, 0x5f, 0x28, 0xd8, 0xe9, 0xc3, 0x47, 0x87, 0xb5, 0xf9, 0x9b, - 0x05, 0x75, 0x70, 0x61, 0x6b, 0xfd, 0xcf, 0x47, 0x60, 0x4a, 0x09, 0x94, 0x88, 0xd6, 0x86, 0x31, - 0x74, 0xc4, 0x5f, 0x1c, 0x19, 0x3b, 0xd6, 0x60, 0xa4, 0xdd, 0xed, 0x95, 0xb4, 0x74, 0x48, 0x74, - 0xd7, 0x29, 0xba, 0x76, 0xb7, 0x87, 0xee, 0x48, 0xdb, 0x49, 0x39, 0xeb, 0x86, 0x74, 0xc4, 0x4f, - 0xd9, 0x4f, 0xa2, 0xed, 0x32, 0x5a, 0xb8, 0x5d, 0x3a, 0x30, 0x11, 0x08, 0xc3, 0xca, 0x58, 0xf9, - 0xf7, 0xb2, 0xca, 0x48, 0x0b, 0x43, 0x0a, 0xd7, 0xca, 0x22, 0x3b, 0x4b, 0x44, 0x83, 0x4a, 0x7c, - 0x3d, 0xf6, 0x50, 0x8a, 0xa9, 0x9b, 0x55, 0x2e, 0xf1, 0xdd, 0x66, 0x25, 0x58, 0x40, 0x32, 0x07, - 0xc9, 0xc4, 0x40, 0x07, 0xc9, 0x17, 0x2b, 0x80, 0xb2, 0xdd, 0x40, 0x6f, 0x83, 0x31, 0xf6, 0xca, - 0x4c, 0x70, 0x0c, 0x29, 0x9f, 0xb3, 0xa7, 0x68, 0x98, 0xc3, 0x50, 0x4b, 0xbc, 0xfe, 0x2b, 0x37, - 0x9d, 0xcc, 0xb9, 0x45, 0xd0, 0x53, 0x9e, 0x0a, 0x46, 0x27, 0xf3, 0x48, 0xe1, 0xc9, 0x7c, 0x1b, - 0x26, 0x3a, 0xb6, 0xcb, 0x6e, 0xd8, 0xca, 0xd9, 0x9b, 0xf8, 0x1d, 0x3c, 0x47, 0x81, 0x23, 0x5c, - 0xfa, 0x9f, 0x56, 0xe8, 0xd2, 0x8f, 0xe5, 0xd2, 0x03, 0x00, 0xa3, 0x17, 0x7a, 0x5c, 0xc0, 0x11, - 0x3b, 0xa0, 0x59, 0x6e, 0x96, 0x25, 0xd2, 0x25, 0x89, 0x90, 0x5f, 0x8d, 0xc7, 0xbf, 0xb1, 0x42, - 0x8c, 0x92, 0x0e, 0xed, 0x0e, 0x79, 0xc1, 0x76, 0x2d, 0xef, 0xae, 0x18, 0xde, 0x61, 0x49, 0x6f, - 0x4a, 0x84, 0x9c, 0x74, 0xfc, 0x1b, 0x2b, 0xc4, 0x28, 0x6b, 0x61, 0xea, 0xad, 0xcb, 0x22, 0xd7, - 0x8a, 0xbe, 0x79, 0x8e, 0x13, 0x9d, 0x9d, 0x55, 0xce, 0x5a, 0xea, 0x05, 0x75, 0x70, 0x61, 0x6b, - 0xfd, 0xb7, 0x35, 0xb8, 0x94, 0x3b, 0x14, 0xe8, 0x3a, 0xcc, 0xc5, 0xfe, 0x50, 0x2a, 0xb3, 0xaf, - 0xc6, 0x11, 0x93, 0x6f, 0xa6, 0x2b, 0xe0, 0x6c, 0x1b, 0xb4, 0x26, 0x05, 0x1e, 0xf5, 0x30, 0x11, - 0xce, 0x54, 0x0f, 0x09, 0x54, 0x79, 0xe7, 0x0d, 0xce, 0x6b, 0xa7, 0x7f, 0x3c, 0xd1, 0xe1, 0x78, - 0xc0, 0xe8, 0xee, 0xd8, 0x22, 0x6d, 0xf9, 0x9e, 0x47, 0xee, 0x8e, 0x65, 0x5a, 0x88, 0x39, 0x0c, - 0x3d, 0xa2, 0xbe, 0x92, 0x93, 0xbc, 0x2b, 0x7a, 0x29, 0xa7, 0x87, 0x00, 0xc2, 0x65, 0xd1, 0x76, - 0xdb, 0x68, 0x1b, 0xaa, 0x86, 0xc8, 0x4d, 0x24, 0x96, 0xda, 0x87, 0x4a, 0x69, 0xd3, 0x02, 0x07, - 0x77, 0xd6, 0x8e, 0x7e, 0x61, 0x89, 0x5b, 0xff, 0xc7, 0x1a, 0x5c, 0xa6, 0x6c, 0xcc, 0x8a, 0x62, - 0x04, 0xc8, 0x18, 0x42, 0x03, 0xc8, 0x08, 0x1d, 0x98, 0xf2, 0xe3, 0x66, 0x62, 0x5d, 0xbe, 0x4f, - 0x8d, 0x4f, 0xa4, 0xbc, 0xed, 0xa7, 0xf2, 0x53, 0xdd, 0xf7, 0x82, 0x68, 0x72, 0xd2, 0x21, 0x8b, - 0xa4, 0xee, 0xa2, 0xf4, 0x04, 0xab, 0xf8, 0xf5, 0xcf, 0x56, 0x00, 0xd6, 0x49, 0x78, 0xd7, 0xf3, - 0x77, 0xe9, 0x10, 0xbd, 0xa1, 0x1e, 0xb6, 0x3e, 0x0c, 0xa3, 0x5d, 0xcf, 0x0a, 0x04, 0x97, 0x62, - 0xcf, 0xa2, 0x99, 0x47, 0x0f, 0x2b, 0x45, 0x35, 0x18, 0x63, 0xb7, 0x08, 0xe2, 0x00, 0x61, 0x42, - 0x3f, 0x15, 0xd9, 0x02, 0xcc, 0xcb, 0x79, 0xd4, 0x79, 0xf6, 0x10, 0x22, 0x10, 0x5a, 0x8c, 0x88, - 0x3a, 0xcf, 0xcb, 0xb0, 0x84, 0xea, 0x9f, 0x1d, 0x85, 0x44, 0x1a, 0xae, 0xd8, 0xe8, 0xa2, 0x9d, - 0x8e, 0xd1, 0xe5, 0x45, 0x98, 0x77, 0x3c, 0xc3, 0x5a, 0x36, 0x1c, 0xba, 0xe8, 0xfd, 0x16, 0x9f, - 0x0e, 0xc3, 0x6d, 0xcb, 0xcc, 0x4d, 0x8c, 0x01, 0xac, 0x16, 0xd4, 0xc1, 0x85, 0xad, 0x51, 0x28, - 0x93, 0x7f, 0xf1, 0xc0, 0xd2, 0xab, 0xc3, 0x26, 0x29, 0x5b, 0x54, 0x9f, 0xc0, 0xc8, 0xb3, 0x3c, - 0x95, 0x1f, 0xec, 0x0b, 0x1a, 0x5c, 0x22, 0xfb, 0x21, 0xf1, 0x5d, 0xc3, 0xd9, 0xf4, 0x8d, 0xed, - 0x6d, 0xdb, 0x14, 0xbe, 0x92, 0x7c, 0x72, 0x36, 0x8e, 0x0e, 0x6b, 0x97, 0x56, 0xf2, 0x2a, 0xdc, - 0x3b, 0xac, 0xbd, 0x3b, 0x9b, 0x83, 0x2f, 0x7a, 0xf1, 0x92, 0xdb, 0x84, 0x2d, 0xc6, 0x7c, 0x72, - 0x0b, 0x4f, 0xc3, 0xd4, 0x31, 0xde, 0x2b, 0x4c, 0xaa, 0x06, 0xb8, 0xdf, 0xaf, 0xc0, 0x34, 0x5d, - 0x3f, 0xab, 0x9e, 0x69, 0x38, 0x8d, 0xf5, 0xd6, 0x31, 0x12, 0xd8, 0xa1, 0x55, 0xb8, 0xb8, 0xed, - 0xf9, 0x26, 0xd9, 0xac, 0x6f, 0x6c, 0x7a, 0xe2, 0x1e, 0xa2, 0xb1, 0xde, 0x12, 0x4c, 0x91, 0x69, - 0x56, 0xd7, 0x72, 0xe0, 0x38, 0xb7, 0x15, 0xba, 0x05, 0x97, 0xe2, 0xf2, 0xdb, 0x5d, 0xee, 0x60, - 0x41, 0xd1, 0x8d, 0xc4, 0x0e, 0x22, 0xd7, 0xf2, 0x2a, 0xe0, 0xfc, 0x76, 0xc8, 0x80, 0x87, 0xc4, - 0x1b, 0xf0, 0x6b, 0x9e, 0x7f, 0xd7, 0xf0, 0xad, 0x24, 0xda, 0xd1, 0xd8, 0x4e, 0xdb, 0x28, 0xae, - 0x86, 0xfb, 0xe1, 0xd0, 0x7f, 0x65, 0x1c, 0x94, 0xb7, 0x5a, 0xc7, 0x08, 0xc6, 0xfe, 0xeb, 0x1a, - 0x5c, 0x34, 0x1d, 0x9b, 0xb8, 0x61, 0xea, 0x51, 0x0e, 0x67, 0x2b, 0xb7, 0x4b, 0x3d, 0x22, 0xeb, - 0x12, 0xb7, 0xd9, 0x10, 0xfe, 0x28, 0xf5, 0x1c, 0xe4, 0xc2, 0x67, 0x27, 0x07, 0x82, 0x73, 0x3b, - 0xc3, 0xbe, 0x87, 0x95, 0x37, 0x1b, 0xea, 0x93, 0xeb, 0xba, 0x28, 0xc3, 0x12, 0x8a, 0x9e, 0x84, - 0xa9, 0xb6, 0xef, 0xf5, 0xba, 0x41, 0x9d, 0x39, 0xc1, 0xf2, 0xf5, 0xcf, 0xc4, 0xb0, 0xeb, 0x71, - 0x31, 0x56, 0xeb, 0x50, 0xa1, 0x92, 0xff, 0xdc, 0xf0, 0xc9, 0xb6, 0xbd, 0x2f, 0x98, 0x15, 0x13, - 0x2a, 0xaf, 0x2b, 0xe5, 0x38, 0x51, 0x0b, 0xbd, 0x13, 0x26, 0xed, 0x20, 0xe8, 0x11, 0xff, 0x36, - 0x5e, 0x15, 0x51, 0x58, 0xd9, 0xdd, 0x46, 0x33, 0x2a, 0xc4, 0x31, 0x1c, 0x7d, 0x55, 0x83, 0x73, - 0x3e, 0x79, 0xb5, 0x67, 0xfb, 0xc4, 0x62, 0x44, 0x03, 0xf1, 0x60, 0x0e, 0x0f, 0xf7, 0x48, 0x6f, - 0x11, 0x27, 0x90, 0x72, 0x2e, 0x21, 0x6d, 0x59, 0x49, 0x20, 0x4e, 0xf5, 0x80, 0x0e, 0x55, 0x60, - 0xb7, 0x5d, 0xdb, 0x6d, 0x2f, 0x39, 0xed, 0x60, 0xbe, 0xca, 0x18, 0x1f, 0x97, 0x58, 0xe3, 0x62, - 0xac, 0xd6, 0xa1, 0xda, 0x5c, 0x2f, 0xa0, 0xfb, 0xbe, 0x43, 0xf8, 0xf8, 0x4e, 0xc6, 0xc6, 0xbe, - 0xdb, 0x2a, 0x00, 0x27, 0xeb, 0x51, 0x4d, 0x3f, 0x2a, 0x10, 0xa3, 0x0c, 0x3c, 0x9c, 0x06, 0xed, - 0xe7, 0xed, 0x04, 0x04, 0xa7, 0x6a, 0x2e, 0x2c, 0xc1, 0x85, 0x9c, 0xcf, 0x3c, 0x16, 0x73, 0xf9, - 0xcd, 0x0a, 0xbc, 0xf5, 0xbe, 0xab, 0x12, 0xfd, 0x03, 0x0d, 0xa6, 0xc8, 0x7e, 0xe8, 0x1b, 0xd2, - 0x4f, 0x9e, 0x4e, 0xd1, 0xf6, 0xa9, 0x6c, 0x81, 0xc5, 0x95, 0x98, 0x10, 0x9f, 0x36, 0x29, 0x2c, - 0x28, 0x10, 0xac, 0xf6, 0x87, 0x6a, 0x48, 0x3c, 0xd8, 0x8a, 0x6a, 0x13, 0x17, 0x19, 0x9c, 0x04, - 0x64, 0xe1, 0xc3, 0x30, 0x9b, 0xc6, 0x7c, 0xac, 0x91, 0xfa, 0xbd, 0x0a, 0x4c, 0x6c, 0xf8, 0x1e, - 0x95, 0x63, 0xce, 0x20, 0x6a, 0xa0, 0x91, 0x88, 0x1a, 0x58, 0xea, 0x05, 0xae, 0xe8, 0x6c, 0x61, - 0xc4, 0x52, 0x3b, 0x15, 0xb1, 0x74, 0x69, 0x18, 0x22, 0xfd, 0x43, 0x94, 0xfe, 0x5b, 0x0d, 0xa6, - 0x44, 0xcd, 0x33, 0x08, 0x96, 0xf7, 0x89, 0x64, 0xb0, 0xbc, 0x0f, 0x0e, 0xf1, 0x5d, 0x05, 0xd1, - 0xf1, 0xbe, 0xae, 0xc1, 0x8c, 0xa8, 0xb1, 0x46, 0x3a, 0x5b, 0xc4, 0x47, 0xd7, 0x60, 0x22, 0xe8, - 0xb1, 0x89, 0x14, 0x1f, 0xf4, 0x90, 0x2a, 0x19, 0xfb, 0x5b, 0x86, 0xc9, 0xd2, 0x90, 0xf1, 0x2a, - 0x4a, 0x1c, 0x50, 0x5e, 0x80, 0xa3, 0xc6, 0x54, 0xce, 0xf5, 0x3d, 0x27, 0x13, 0x93, 0x04, 0x7b, - 0x0e, 0xc1, 0x0c, 0x42, 0xc5, 0x4b, 0xfa, 0x37, 0xb2, 0x17, 0x31, 0xf1, 0x92, 0x82, 0x03, 0xcc, - 0xcb, 0xf5, 0xcf, 0x8f, 0xca, 0xc1, 0x66, 0xb1, 0xfa, 0x6e, 0xc0, 0xa4, 0xe9, 0x13, 0x23, 0x24, - 0xd6, 0xf2, 0xc1, 0x20, 0x9d, 0x63, 0xcc, 0xba, 0x1e, 0xb5, 0xc0, 0x71, 0x63, 0xca, 0x17, 0xd5, - 0x6b, 0x88, 0x4a, 0x7c, 0x84, 0x14, 0x5e, 0x41, 0x7c, 0x08, 0xc6, 0xbc, 0xbb, 0xae, 0xf4, 0x66, - 0xe8, 0x4b, 0x98, 0x7d, 0xca, 0x2d, 0x5a, 0x1b, 0xf3, 0x46, 0x2c, 0x1a, 0x53, 0xcf, 0xef, 0x7a, - 0x41, 0x64, 0x8d, 0xe1, 0xd1, 0x98, 0x78, 0x11, 0x8e, 0x60, 0xc8, 0x81, 0x89, 0x0e, 0x9b, 0x86, - 0xa1, 0xc2, 0x42, 0x26, 0x26, 0x54, 0x0d, 0x1c, 0xce, 0x30, 0xe3, 0x88, 0x04, 0x3d, 0xdf, 0x28, - 0x0f, 0x0e, 0xba, 0x86, 0x49, 0xd4, 0xf3, 0x6d, 0x3d, 0x2a, 0xc4, 0x31, 0x1c, 0x1d, 0xc0, 0x14, - 0x0f, 0x0b, 0xc1, 0xad, 0xb8, 0x13, 0xe5, 0xcd, 0x45, 0xa2, 0x7b, 0x9b, 0x31, 0x36, 0x3e, 0xf4, - 0x4a, 0x01, 0x56, 0x69, 0xe9, 0x3f, 0x3f, 0x2a, 0x17, 0xa9, 0x88, 0xf2, 0x9a, 0x9f, 0x3a, 0x4b, - 0x2b, 0x95, 0x3a, 0xeb, 0xdd, 0x51, 0x36, 0xaa, 0x4a, 0x22, 0xc8, 0xbd, 0xcc, 0x46, 0x35, 0x2d, - 0x48, 0x27, 0x32, 0x50, 0xf5, 0xe0, 0x42, 0x10, 0x1a, 0x0e, 0x69, 0xd9, 0x42, 0xa5, 0x0e, 0x42, - 0xa3, 0xd3, 0x2d, 0x11, 0xab, 0x9e, 0x7b, 0x95, 0x67, 0x51, 0xe1, 0x3c, 0xfc, 0xe8, 0x73, 0x1a, - 0xcc, 0xb3, 0xf2, 0xa5, 0x5e, 0xe8, 0xf1, 0x00, 0x7c, 0x31, 0xf1, 0xe3, 0xdf, 0x75, 0x32, 0x15, - 0xa8, 0x55, 0x80, 0x0f, 0x17, 0x52, 0x42, 0x9f, 0x84, 0x4b, 0x8e, 0x11, 0x84, 0x4b, 0x66, 0x68, - 0xef, 0xd9, 0xe1, 0x41, 0xdc, 0x85, 0xe3, 0xa7, 0x11, 0x63, 0xa2, 0xf6, 0x6a, 0x1e, 0x32, 0x9c, - 0x4f, 0x43, 0xff, 0x0b, 0x0d, 0x50, 0x76, 0x09, 0x21, 0x07, 0xaa, 0x56, 0xe4, 0xe6, 0xad, 0x95, - 0xcf, 0xc6, 0x12, 0xa3, 0x8c, 0x39, 0xb3, 0xf4, 0x0e, 0x97, 0x14, 0x90, 0x07, 0x93, 0x77, 0x77, - 0xec, 0x90, 0x38, 0x76, 0x10, 0x0a, 0xee, 0x3c, 0x2c, 0x39, 0x19, 0xe4, 0xe8, 0x85, 0x08, 0x31, - 0x8e, 0x69, 0xe8, 0xbf, 0x30, 0x0a, 0xd5, 0x63, 0x64, 0x6b, 0xed, 0x01, 0x32, 0x95, 0x10, 0xfa, - 0xc3, 0xd8, 0x11, 0x98, 0x8b, 0x42, 0x3d, 0x83, 0x0c, 0xe7, 0x10, 0x40, 0x9f, 0x84, 0x8b, 0xb6, - 0xbb, 0xed, 0x1b, 0x41, 0xe8, 0xf7, 0x98, 0x61, 0x76, 0x98, 0x48, 0xf4, 0x4c, 0x83, 0x68, 0xe6, - 0xa0, 0xc3, 0xb9, 0x44, 0x10, 0x81, 0x89, 0xbb, 0x9e, 0xbf, 0x4b, 0x99, 0xe7, 0x68, 0xf9, 0x9c, - 0x44, 0x2f, 0x30, 0x14, 0x31, 0xd7, 0xe4, 0xbf, 0x03, 0x1c, 0xe1, 0xe6, 0x51, 0x1e, 0xf8, 0xff, - 0xd1, 0x15, 0xa5, 0x58, 0xf7, 0xf5, 0xf2, 0xf4, 0xe2, 0xf4, 0x56, 0x3c, 0xca, 0x43, 0xb2, 0x10, - 0xa7, 0x09, 0xea, 0x7f, 0xa4, 0xc1, 0x18, 0x7f, 0x3e, 0x79, 0xfa, 0x12, 0xdc, 0xdf, 0x49, 0x48, - 0x70, 0xa5, 0x82, 0x69, 0xb3, 0xae, 0x16, 0x86, 0x79, 0xfe, 0xbe, 0x06, 0x93, 0xac, 0xc6, 0x19, - 0x88, 0x54, 0x2f, 0x27, 0x45, 0xaa, 0xa7, 0x4b, 0x7f, 0x4d, 0x81, 0x40, 0xf5, 0x47, 0x23, 0xe2, - 0x5b, 0x98, 0xc4, 0xd2, 0x84, 0x0b, 0xc2, 0x41, 0x72, 0xd5, 0xde, 0x26, 0x74, 0x89, 0x37, 0x8c, - 0x83, 0x40, 0xc4, 0x3c, 0xe0, 0x2f, 0x64, 0xb2, 0x60, 0x9c, 0xd7, 0x06, 0xfd, 0xbe, 0x46, 0x65, - 0x83, 0xd0, 0xb7, 0xcd, 0xa1, 0x62, 0x27, 0xcb, 0xbe, 0x2d, 0xae, 0x71, 0x64, 0x5c, 0x33, 0xb9, - 0x1d, 0x0b, 0x09, 0xac, 0xf4, 0xde, 0x61, 0xad, 0x96, 0x63, 0x34, 0x8a, 0x43, 0xb2, 0x06, 0xe1, - 0x67, 0x7f, 0xd4, 0xb7, 0x0a, 0x33, 0xb8, 0x46, 0x3d, 0x46, 0x37, 0x60, 0x2c, 0x30, 0xbd, 0x2e, - 0x39, 0x4e, 0x34, 0x78, 0x39, 0xc0, 0x2d, 0xda, 0x12, 0x73, 0x04, 0x0b, 0xaf, 0xc0, 0xb4, 0xda, - 0xf3, 0x1c, 0xcd, 0xa7, 0xa1, 0x6a, 0x3e, 0xc7, 0xbe, 0x56, 0x51, 0x35, 0xa5, 0x3f, 0xa8, 0x80, - 0x48, 0x6f, 0x3d, 0x80, 0x59, 0xd9, 0x8e, 0x62, 0x5f, 0x0e, 0x91, 0x6a, 0x31, 0x9d, 0xa1, 0x3e, - 0x1e, 0x03, 0x35, 0xfc, 0x25, 0x72, 0x61, 0xdc, 0x31, 0xb6, 0x88, 0x13, 0xe5, 0xb6, 0xbb, 0x56, - 0x3e, 0xf9, 0x1a, 0x8f, 0x5f, 0x1e, 0xa4, 0x8c, 0x8f, 0xbc, 0x10, 0x0b, 0x2a, 0x0b, 0x4f, 0xc3, - 0x94, 0x52, 0xed, 0x58, 0xca, 0xe6, 0xeb, 0x1a, 0x5c, 0x8e, 0x96, 0x44, 0x32, 0x76, 0x0d, 0x7a, - 0x1c, 0xaa, 0x46, 0xd7, 0x66, 0xf6, 0x17, 0xd5, 0x82, 0xb5, 0xb4, 0xd1, 0x64, 0x65, 0x58, 0x42, - 0xd1, 0xbb, 0xa0, 0x1a, 0xcd, 0x93, 0x90, 0xd2, 0xe4, 0x16, 0x97, 0x66, 0x77, 0x59, 0x03, 0xbd, - 0x5d, 0x89, 0xe6, 0x39, 0x16, 0x1f, 0xab, 0x92, 0x30, 0xbf, 0xa1, 0xd3, 0xdf, 0x07, 0x93, 0xad, - 0xd6, 0x0d, 0x1e, 0xc2, 0xe4, 0x18, 0x96, 0x48, 0xfd, 0x4b, 0x23, 0x30, 0xc3, 0x35, 0xf2, 0x65, - 0xdb, 0xb5, 0x6c, 0xb7, 0x7d, 0x06, 0x2c, 0x38, 0x91, 0x5c, 0xbc, 0x72, 0x52, 0xc9, 0xc5, 0x6f, - 0xc2, 0xf8, 0xab, 0x94, 0x1d, 0x44, 0xcb, 0x68, 0xa0, 0x5d, 0x29, 0xd7, 0x08, 0xe3, 0x24, 0x01, - 0x16, 0x28, 0x50, 0xa0, 0xa4, 0x78, 0x1f, 0xe2, 0x01, 0x7e, 0x62, 0x64, 0x65, 0x2c, 0xdf, 0xe9, - 0xfc, 0xfc, 0xee, 0xfa, 0x7f, 0xd2, 0x60, 0x2e, 0xd1, 0xe2, 0x0c, 0x4e, 0x90, 0xed, 0xe4, 0x09, - 0xb2, 0x34, 0xf4, 0x57, 0x16, 0x9c, 0x24, 0x4f, 0xc3, 0xa5, 0xdc, 0xc1, 0xb8, 0xbf, 0xf4, 0xa7, - 0xff, 0x4e, 0x05, 0x46, 0x5b, 0x84, 0x58, 0x67, 0xb0, 0x32, 0x5f, 0x4e, 0x08, 0x07, 0x1f, 0x2a, - 0x9d, 0x99, 0xb1, 0xc8, 0xb6, 0xb3, 0x9d, 0xb2, 0xed, 0x7c, 0xb8, 0x34, 0x85, 0xfe, 0x86, 0x9d, - 0x5f, 0xad, 0x00, 0xd0, 0x6a, 0x3c, 0x1d, 0xb5, 0x70, 0x02, 0xe4, 0xab, 0x59, 0x4b, 0x72, 0x9c, - 0xec, 0x32, 0x3c, 0xcb, 0x1b, 0x3b, 0x1d, 0xc6, 0x79, 0x72, 0x4c, 0x61, 0x24, 0x07, 0x9e, 0x3b, - 0x8c, 0x96, 0x60, 0x01, 0x49, 0x72, 0x8b, 0xd1, 0x13, 0xe2, 0x16, 0xfa, 0x3f, 0xd5, 0x80, 0x65, - 0x7b, 0x69, 0xac, 0xb3, 0xe7, 0xc9, 0x36, 0xbf, 0xbc, 0x6a, 0xa8, 0x11, 0x21, 0x99, 0x91, 0xb8, - 0xa9, 0x02, 0x70, 0xb2, 0x1e, 0xea, 0x28, 0xe3, 0x3a, 0x44, 0x52, 0x78, 0xd1, 0x8f, 0xfb, 0xf2, - 0x87, 0x1f, 0x55, 0xe0, 0x7c, 0xaa, 0xee, 0x00, 0xca, 0xd3, 0xe9, 0x70, 0x5b, 0x25, 0xfc, 0xf7, - 0xc8, 0xe9, 0x87, 0xff, 0x96, 0x91, 0xb8, 0x47, 0x4f, 0x37, 0x12, 0xf7, 0x1f, 0x6a, 0xc0, 0xb2, - 0x8c, 0x9f, 0x01, 0xe3, 0xfd, 0xdb, 0x49, 0xc6, 0xfb, 0x81, 0xb2, 0x0b, 0xa7, 0x80, 0xdf, 0xfe, - 0x56, 0x05, 0x58, 0xe6, 0x16, 0x71, 0x57, 0xaf, 0x5c, 0x7f, 0x6b, 0x05, 0xd7, 0xdf, 0x8f, 0x8a, - 0xdb, 0xf3, 0x94, 0x89, 0x53, 0xb9, 0x41, 0x7f, 0x97, 0x72, 0x41, 0x3e, 0x92, 0x64, 0x23, 0xd9, - 0x4b, 0x72, 0xf4, 0x1a, 0xcc, 0x04, 0x3b, 0x9e, 0x17, 0xca, 0xe7, 0xea, 0xa3, 0xe5, 0xcd, 0xd9, - 0xcc, 0x67, 0x37, 0xfa, 0x14, 0xbe, 0x31, 0x5b, 0x2a, 0x6e, 0x9c, 0x24, 0x85, 0x16, 0x01, 0xb6, - 0x1c, 0xcf, 0xdc, 0xad, 0x37, 0x1b, 0x38, 0xf2, 0xd1, 0x64, 0x0e, 0x36, 0xcb, 0xb2, 0x14, 0x2b, - 0x35, 0xf4, 0xff, 0xa6, 0xf1, 0xd1, 0x3a, 0xc6, 0xb6, 0x3a, 0x43, 0x2e, 0xf9, 0x8e, 0x14, 0x97, - 0x54, 0xb2, 0x2c, 0x26, 0x38, 0x65, 0x2d, 0xde, 0x25, 0xd2, 0x04, 0x9d, 0x58, 0xde, 0xbf, 0x27, - 0x3e, 0x53, 0x26, 0xf0, 0xe9, 0xc2, 0x8c, 0xa3, 0x66, 0xfc, 0x11, 0xeb, 0xbc, 0x54, 0xb2, 0x20, - 0xe9, 0xb8, 0x9f, 0x28, 0xc6, 0x49, 0x02, 0x94, 0xd7, 0x46, 0x5f, 0xc7, 0x73, 0x0d, 0x57, 0x62, - 0xf7, 0xca, 0x0d, 0x15, 0x80, 0x93, 0xf5, 0xf4, 0x7f, 0x58, 0x81, 0x47, 0x78, 0xdf, 0x99, 0xd1, - 0xa0, 0x41, 0xba, 0xc4, 0xb5, 0x88, 0x6b, 0x1e, 0x30, 0x39, 0xdc, 0xf2, 0xda, 0xe8, 0xef, 0x6a, - 0x50, 0x25, 0xae, 0xd5, 0xf5, 0x6c, 0x37, 0xb2, 0xf6, 0x7f, 0xac, 0x7c, 0x6e, 0xe5, 0x02, 0x2a, - 0x2b, 0x82, 0x80, 0x88, 0xbc, 0x28, 0x7e, 0x61, 0x49, 0x18, 0xdd, 0x85, 0xb1, 0xae, 0xef, 0x6d, - 0x45, 0xfa, 0xda, 0x9d, 0x13, 0xef, 0xc1, 0x06, 0xc5, 0xce, 0x27, 0x97, 0xfd, 0x8b, 0x39, 0x3d, - 0x1d, 0xc3, 0xdb, 0x07, 0xea, 0xf9, 0x71, 0xb4, 0x83, 0x5b, 0xa0, 0xdf, 0xbf, 0x2f, 0xc7, 0x41, - 0xf8, 0x3c, 0x3c, 0xa6, 0x20, 0x5c, 0xd9, 0xa7, 0xea, 0x4a, 0xdd, 0xe8, 0x1a, 0x26, 0xd5, 0x55, - 0xd9, 0x43, 0x5e, 0x6e, 0xc6, 0x3e, 0x06, 0xca, 0x2f, 0x8e, 0x42, 0x4d, 0xc1, 0x99, 0xf0, 0x81, - 0x89, 0x78, 0xd1, 0x37, 0x34, 0x98, 0x32, 0x5c, 0xd7, 0x0b, 0x0d, 0x35, 0x93, 0x9a, 0x35, 0xe4, - 0xdc, 0xe4, 0x91, 0x5a, 0x5c, 0x8a, 0xc9, 0xa4, 0xae, 0x49, 0x15, 0x08, 0x56, 0x7b, 0xd3, 0xc7, - 0x1b, 0xa6, 0x72, 0xa6, 0xde, 0x30, 0xe8, 0x53, 0x11, 0x03, 0xe1, 0x1a, 0xd4, 0x8b, 0xa7, 0x30, - 0x3e, 0x8c, 0x1f, 0xe5, 0x1b, 0x02, 0x16, 0x3e, 0x0c, 0xb3, 0xe9, 0xd1, 0x3b, 0x96, 0x76, 0xfe, - 0x2f, 0x46, 0x12, 0xab, 0xab, 0x90, 0xfc, 0x00, 0xe6, 0x8f, 0x6f, 0xa6, 0x16, 0x0c, 0x3f, 0xa4, - 0xed, 0xd3, 0x1a, 0x90, 0x93, 0x5d, 0x35, 0x23, 0x67, 0xeb, 0x43, 0x35, 0xec, 0xb4, 0xd5, 0xe1, - 0xb2, 0x32, 0x46, 0xec, 0xa2, 0xb1, 0xbe, 0x43, 0xcc, 0xdd, 0x63, 0xd9, 0x31, 0x96, 0xa9, 0x7e, - 0x29, 0x91, 0xc4, 0x21, 0x07, 0xd9, 0xdb, 0x59, 0x3b, 0xb0, 0xa3, 0xf0, 0x12, 0x0a, 0x8e, 0x3b, - 0xbc, 0x18, 0x47, 0x70, 0x7d, 0x0d, 0x1e, 0x55, 0x70, 0xe4, 0xbe, 0x6c, 0x3d, 0x4e, 0x97, 0xbe, - 0x35, 0x11, 0x9d, 0xb6, 0xe2, 0xe9, 0xcf, 0x77, 0x34, 0x78, 0x90, 0x14, 0xb1, 0x3c, 0x71, 0x62, - 0x0d, 0xbb, 0xe7, 0x0a, 0x59, 0xaa, 0x88, 0xd9, 0x57, 0x04, 0xc6, 0xc5, 0x3d, 0x43, 0x07, 0x00, - 0x81, 0x1c, 0xd0, 0x61, 0x3c, 0x9f, 0x73, 0x67, 0x48, 0x84, 0xf7, 0x97, 0xbf, 0xb1, 0x42, 0x0c, - 0xfd, 0x9a, 0x06, 0x17, 0x9d, 0x9c, 0x5d, 0x23, 0x84, 0xc9, 0xd6, 0x29, 0x6c, 0x48, 0x7e, 0x53, - 0x93, 0x07, 0xc1, 0xb9, 0x5d, 0x41, 0xbf, 0x51, 0xf8, 0xe4, 0x7a, 0xac, 0x7c, 0x1a, 0xbc, 0xfb, - 0x2d, 0xc4, 0x12, 0xaf, 0xaf, 0x3f, 0x05, 0x53, 0x5e, 0xbc, 0xb9, 0xc4, 0x1b, 0xf9, 0x8f, 0x0e, - 0xd9, 0x39, 0x65, 0xbb, 0xf2, 0x7b, 0x6f, 0xa5, 0x00, 0xab, 0xf4, 0xd0, 0xd7, 0x34, 0x40, 0x56, - 0x46, 0x82, 0x10, 0x57, 0xef, 0xcf, 0x9f, 0xb8, 0x98, 0xc4, 0x6f, 0xfa, 0xb2, 0xe5, 0x38, 0xa7, - 0x13, 0xfa, 0xeb, 0x13, 0x5c, 0xef, 0x63, 0xd7, 0x1c, 0x5b, 0x30, 0xbe, 0xc5, 0xec, 0x26, 0x62, - 0x4b, 0x96, 0x36, 0xd2, 0x70, 0xeb, 0x0b, 0x37, 0x6a, 0xf0, 0xff, 0xb1, 0xc0, 0x8c, 0x5e, 0x82, - 0x11, 0xcb, 0x8d, 0x52, 0xab, 0x7e, 0x70, 0x08, 0xa3, 0x41, 0xec, 0xc4, 0xde, 0x58, 0x6f, 0x61, - 0x8a, 0x14, 0xb9, 0x50, 0x75, 0x85, 0xaa, 0x24, 0x74, 0xf3, 0x8f, 0x94, 0x25, 0x20, 0x55, 0x2e, - 0xa9, 0xe8, 0x45, 0x25, 0x58, 0xd2, 0xa0, 0xf4, 0x52, 0xb6, 0xd2, 0xd2, 0xf4, 0xa4, 0x09, 0xa4, - 0x9f, 0x7d, 0x6a, 0x43, 0x35, 0x68, 0x8c, 0x0d, 0x6e, 0xd0, 0x98, 0x29, 0x34, 0x66, 0x10, 0x18, - 0x0f, 0x0d, 0xdb, 0x0d, 0xe9, 0xa6, 0x28, 0x9d, 0x62, 0x97, 0xf6, 0x7f, 0x93, 0x62, 0x89, 0xf5, - 0x33, 0xf6, 0x33, 0xc0, 0x02, 0x39, 0x5d, 0x58, 0x7b, 0x2c, 0x09, 0x97, 0x58, 0xf4, 0xa5, 0x17, - 0x16, 0x4f, 0xe5, 0xc5, 0x17, 0x16, 0xff, 0x1f, 0x0b, 0xcc, 0xe8, 0x15, 0xaa, 0xa3, 0x8b, 0x7b, - 0xdc, 0xea, 0x70, 0x93, 0x21, 0x2f, 0x71, 0x85, 0x1b, 0xbc, 0xb8, 0xbd, 0x95, 0xf8, 0xd1, 0x16, - 0x4c, 0x08, 0x7b, 0x98, 0x08, 0x2e, 0xf1, 0xc1, 0x21, 0xf2, 0xa2, 0x44, 0xd9, 0xe9, 0xf8, 0x93, - 0xe4, 0x08, 0xb1, 0xfe, 0xef, 0x27, 0xb9, 0x25, 0x53, 0xb8, 0xca, 0x6c, 0x43, 0x35, 0x42, 0x37, - 0xcc, 0x93, 0x8c, 0x28, 0x0f, 0x15, 0xff, 0xb4, 0xe8, 0x17, 0x96, 0xb8, 0x51, 0x3d, 0xef, 0xf5, - 0x4b, 0x1c, 0x11, 0x7a, 0xb0, 0x97, 0x2f, 0xc9, 0xec, 0xcd, 0x23, 0x67, 0x91, 0xbd, 0x39, 0xdf, - 0x95, 0x68, 0xb4, 0x94, 0x2b, 0xd1, 0xb3, 0x70, 0x5e, 0x5c, 0xdd, 0x36, 0x2d, 0xc2, 0x6e, 0x13, - 0x85, 0xa7, 0x31, 0xbb, 0xd4, 0xaf, 0x27, 0x41, 0x38, 0x5d, 0x17, 0xfd, 0x81, 0x06, 0x55, 0x53, - 0x48, 0x13, 0x62, 0x5f, 0xad, 0x0e, 0x67, 0xee, 0x5e, 0x8c, 0x84, 0x13, 0x2e, 0x22, 0xdf, 0x89, - 0x78, 0x44, 0x54, 0x7c, 0x42, 0xd7, 0xbc, 0xb2, 0xd7, 0xe8, 0xdf, 0x50, 0x2d, 0xc0, 0x61, 0xd9, - 0xb1, 0xd8, 0x3b, 0x3f, 0xee, 0x02, 0x7d, 0x6b, 0xc8, 0xaf, 0x58, 0x8a, 0x31, 0xf2, 0x0f, 0xf9, - 0x98, 0x94, 0xf5, 0x63, 0xc8, 0x09, 0x7d, 0x8b, 0xda, 0x7d, 0xf4, 0x2d, 0x0d, 0x1e, 0xe3, 0x7e, - 0xe7, 0x75, 0x2a, 0x20, 0xb0, 0x5c, 0x75, 0x24, 0x4e, 0x8e, 0x17, 0x3b, 0x3e, 0x55, 0x8f, 0xed, - 0xf8, 0xf4, 0xf8, 0xd1, 0x61, 0xed, 0xb1, 0xfa, 0x00, 0xb8, 0xf1, 0x40, 0x3d, 0x58, 0xd8, 0x85, - 0x99, 0xc4, 0x64, 0x9f, 0xe6, 0xc5, 0xf8, 0x82, 0x0b, 0xb3, 0xe9, 0x39, 0x39, 0xd5, 0x8b, 0xf8, - 0x9b, 0x30, 0x29, 0x0f, 0x0b, 0xf4, 0x88, 0x42, 0x28, 0x3e, 0xcc, 0x6f, 0x92, 0x03, 0x4e, 0xb5, - 0x96, 0x50, 0x9b, 0xb8, 0xd9, 0xe7, 0x0e, 0x2d, 0x10, 0x08, 0xf5, 0x1f, 0x08, 0x9b, 0xde, 0x26, - 0xe9, 0x74, 0x1d, 0x23, 0x24, 0x6f, 0xfe, 0x5b, 0x32, 0xfd, 0x7f, 0x68, 0x9c, 0xe7, 0x8b, 0x7c, - 0x98, 0x06, 0x4c, 0x75, 0x78, 0x68, 0x4a, 0xf6, 0xbc, 0x54, 0x2b, 0xff, 0xb0, 0x75, 0x2d, 0x46, - 0x83, 0x55, 0x9c, 0xe8, 0x6e, 0x36, 0x63, 0xeb, 0xb5, 0xe1, 0x0e, 0xe7, 0x81, 0x13, 0xb7, 0xa2, - 0x6c, 0x1b, 0xaa, 0x64, 0x46, 0xfe, 0xb5, 0xa9, 0x24, 0x99, 0x19, 0x1f, 0xdb, 0xfb, 0x26, 0x4b, - 0xd4, 0xbf, 0x5b, 0x81, 0xdc, 0xb4, 0x3f, 0x48, 0x87, 0x71, 0xfe, 0xe0, 0x43, 0x4d, 0x65, 0xcb, - 0x5f, 0x83, 0x60, 0x01, 0x41, 0xb7, 0xb8, 0x8d, 0xc1, 0xb5, 0x58, 0x9c, 0xa5, 0x78, 0xa7, 0xaa, - 0x4f, 0x8b, 0x56, 0xf2, 0x2a, 0xe0, 0xfc, 0x76, 0x68, 0x0f, 0x50, 0xc7, 0xd8, 0x4f, 0x63, 0x1b, - 0x22, 0xf7, 0xc5, 0x5a, 0x06, 0x1b, 0xce, 0xa1, 0x40, 0x0f, 0x33, 0xc3, 0x34, 0x49, 0x37, 0x24, - 0x16, 0xff, 0xc4, 0xe8, 0x5a, 0x80, 0x1d, 0x66, 0x4b, 0x49, 0x10, 0x4e, 0xd7, 0xd5, 0xff, 0x79, - 0x05, 0xc6, 0xd8, 0x8d, 0xc3, 0x9b, 0xc3, 0x43, 0x8d, 0x75, 0xb5, 0xf0, 0x16, 0xba, 0x9d, 0xba, - 0x85, 0x7e, 0xae, 0x3c, 0x89, 0xfe, 0xd7, 0xd0, 0x1f, 0x83, 0xcb, 0xac, 0xda, 0x92, 0xc5, 0x34, - 0xd2, 0x80, 0x58, 0x4b, 0x96, 0xc5, 0x1e, 0x4c, 0xde, 0xdf, 0x02, 0xf7, 0x08, 0x8c, 0xf4, 0x7c, - 0x27, 0xfd, 0x52, 0xf7, 0x36, 0x5e, 0xc5, 0xb4, 0x5c, 0xff, 0xb2, 0x06, 0xb3, 0x0c, 0x77, 0xdd, - 0x27, 0x4c, 0xe2, 0x30, 0x9c, 0x00, 0xed, 0x41, 0xd5, 0x17, 0x76, 0x28, 0x31, 0x37, 0xab, 0xa5, - 0x3f, 0x4d, 0xc1, 0x8b, 0x05, 0x4e, 0x91, 0x30, 0x4a, 0xfc, 0xc2, 0x92, 0x96, 0xfe, 0x67, 0xe3, - 0x30, 0x5f, 0xd4, 0x08, 0x7d, 0x55, 0x83, 0xcb, 0x66, 0x7c, 0xda, 0x2d, 0xf5, 0xc2, 0x1d, 0xcf, - 0xb7, 0x43, 0x9b, 0x04, 0xc3, 0xe8, 0x97, 0xf5, 0x25, 0xd9, 0x2b, 0x16, 0x07, 0xa5, 0x9e, 0x4b, - 0x01, 0x17, 0x50, 0x46, 0x9f, 0x04, 0xd8, 0x8d, 0x03, 0xaf, 0xf1, 0x95, 0x76, 0xb3, 0xf4, 0x58, - 0x29, 0xc1, 0xd9, 0xa2, 0x4e, 0x31, 0xa3, 0x8e, 0x52, 0xae, 0x90, 0xa3, 0xc4, 0x83, 0x60, 0xe7, - 0x26, 0x39, 0xe8, 0x1a, 0x76, 0xf4, 0x02, 0xa1, 0x3c, 0xf1, 0x56, 0xeb, 0x86, 0x40, 0x95, 0x24, - 0xae, 0x94, 0x2b, 0xe4, 0xd0, 0x17, 0x35, 0x98, 0xe1, 0xc2, 0xae, 0xf0, 0x4c, 0x13, 0xcc, 0x67, - 0xbd, 0x74, 0x07, 0x6e, 0xa9, 0xd8, 0x64, 0x1f, 0xd8, 0x8d, 0x56, 0x12, 0x94, 0xa4, 0x8b, 0x5e, - 0xd7, 0x60, 0x2e, 0x99, 0x79, 0xed, 0x26, 0x39, 0x10, 0x0a, 0x2d, 0x2e, 0x3f, 0x1c, 0x69, 0x8c, - 0xb2, 0x47, 0x4c, 0x71, 0xc9, 0x82, 0xb3, 0x7d, 0x60, 0x3d, 0x23, 0xa1, 0x69, 0x89, 0x4c, 0xd0, - 0xb6, 0xe7, 0xd2, 0x9e, 0x8d, 0x0f, 0xd9, 0xb3, 0x95, 0xcd, 0x7a, 0x23, 0x81, 0x31, 0xd9, 0xb3, - 0x2c, 0x38, 0xdb, 0x07, 0xfd, 0xfb, 0x15, 0xb8, 0xd2, 0x1f, 0x19, 0x7a, 0x2e, 0x7a, 0x01, 0xc1, - 0x79, 0xcb, 0x13, 0xe9, 0x17, 0x10, 0xf3, 0x39, 0x9b, 0x34, 0xf1, 0x1a, 0xc2, 0x07, 0xe4, 0x18, - 0x41, 0xc8, 0xd3, 0x9c, 0x46, 0x62, 0x69, 0x89, 0xc7, 0x10, 0xec, 0x78, 0x5a, 0xcd, 0x60, 0xc2, - 0x39, 0xd8, 0x23, 0x9a, 0x75, 0xaf, 0xd3, 0x75, 0x88, 0xa4, 0x59, 0x29, 0x4f, 0x33, 0x89, 0x09, - 0xe7, 0x60, 0xd7, 0x3f, 0x53, 0x81, 0x07, 0x0a, 0xb6, 0x6f, 0xc1, 0x18, 0x68, 0xff, 0xdf, 0x8d, - 0xc1, 0xf7, 0x35, 0x98, 0x64, 0x63, 0xf0, 0x26, 0x71, 0xd6, 0x66, 0x7d, 0x2d, 0x70, 0xf9, 0xf8, - 0x43, 0x0d, 0xe6, 0x32, 0xc1, 0xcd, 0x06, 0x72, 0xf5, 0x3d, 0x33, 0x4f, 0x86, 0xb7, 0xa7, 0x13, - 0x77, 0x4f, 0xe5, 0x26, 0xed, 0x7e, 0x01, 0x66, 0x12, 0x1e, 0x1f, 0x32, 0xb2, 0x83, 0x96, 0x1b, - 0xd9, 0x41, 0x0d, 0xdc, 0x50, 0xe9, 0x1b, 0xb8, 0xe1, 0x73, 0x15, 0x58, 0x28, 0xe6, 0xd9, 0x7f, - 0x6d, 0x56, 0xbd, 0xdc, 0xf9, 0xd9, 0xb3, 0xf3, 0xaf, 0xcf, 0xce, 0x8f, 0x4e, 0x92, 0xc2, 0x03, - 0xf3, 0x6f, 0x4e, 0x92, 0x41, 0xc7, 0xf2, 0x5b, 0xe7, 0x05, 0x17, 0x65, 0xf7, 0x27, 0x2f, 0xc3, - 0x38, 0x8b, 0x5a, 0x12, 0xc9, 0xb7, 0xcf, 0x94, 0x8e, 0x86, 0x12, 0x70, 0x9d, 0x94, 0xff, 0x8f, - 0x05, 0x56, 0xd4, 0x80, 0x59, 0xd3, 0xf1, 0x7a, 0x96, 0xc8, 0x26, 0xb7, 0x1e, 0xab, 0xbf, 0x32, - 0x7e, 0x5c, 0x3d, 0x05, 0xc7, 0x99, 0x16, 0x08, 0xf3, 0x1b, 0x18, 0x3e, 0x19, 0xef, 0x2f, 0xe9, - 0x50, 0xc8, 0xa3, 0xa4, 0xcb, 0x9b, 0x97, 0x57, 0x01, 0x48, 0xc4, 0x0f, 0xa3, 0x67, 0x5b, 0xcf, - 0x96, 0x8b, 0x8c, 0x27, 0xb9, 0x6a, 0xa4, 0x2a, 0xca, 0xa2, 0x00, 0x2b, 0x44, 0x90, 0x0f, 0x53, - 0x3b, 0xf6, 0x16, 0xf1, 0xdd, 0x38, 0x2f, 0x73, 0x49, 0x85, 0xee, 0x46, 0x8c, 0x86, 0x5b, 0x4b, - 0x94, 0x02, 0xac, 0x12, 0x41, 0x3e, 0x57, 0x1e, 0xb8, 0xb1, 0x7b, 0x98, 0xe4, 0xcd, 0xb1, 0x15, - 0x3d, 0xfe, 0xce, 0xb8, 0x0c, 0x2b, 0x54, 0x28, 0x4d, 0x57, 0x86, 0x1d, 0x1a, 0xe6, 0xfe, 0x24, - 0x0e, 0x5e, 0x14, 0xd3, 0x8c, 0xcb, 0xb0, 0x42, 0x85, 0x8e, 0x6d, 0x27, 0x0e, 0x35, 0x25, 0xac, - 0xa2, 0xcf, 0x0d, 0x19, 0xf2, 0x4b, 0x58, 0xa2, 0xe2, 0x02, 0xac, 0x12, 0x41, 0x2e, 0x40, 0x47, - 0x46, 0xa0, 0x12, 0xd7, 0x2a, 0xa5, 0xbe, 0x33, 0x8e, 0x63, 0xc5, 0xd5, 0xa1, 0xf8, 0x37, 0x56, - 0x28, 0xa0, 0x57, 0x94, 0xcb, 0x3b, 0x28, 0x6f, 0xcf, 0x1b, 0xe8, 0xe2, 0xee, 0xbd, 0xb1, 0x59, - 0x6b, 0x8a, 0xed, 0xd7, 0x87, 0x14, 0x93, 0xd6, 0xbd, 0xc3, 0xda, 0x34, 0xe3, 0x21, 0x19, 0x13, - 0x57, 0xec, 0xfe, 0x38, 0xdd, 0xd7, 0xfd, 0xf1, 0x3a, 0x55, 0xa7, 0x94, 0x27, 0x06, 0x8c, 0x31, - 0xcc, 0xb0, 0x26, 0x32, 0x62, 0x59, 0x2b, 0x5d, 0x01, 0x67, 0xdb, 0x70, 0x79, 0x82, 0x58, 0xac, - 0xfd, 0x39, 0x55, 0x9e, 0xe0, 0x65, 0x58, 0x42, 0xd1, 0x1e, 0x4c, 0x07, 0x8a, 0x3f, 0xa5, 0x48, - 0x55, 0x36, 0xc4, 0x8d, 0x9b, 0xf0, 0xa5, 0x64, 0xb1, 0x5c, 0xd4, 0x12, 0x9c, 0xa0, 0x83, 0x3e, - 0x09, 0x93, 0x91, 0x89, 0x33, 0x98, 0x9f, 0x2d, 0xff, 0x7e, 0x2e, 0x3f, 0xea, 0x58, 0x6c, 0xb3, - 0x8c, 0x40, 0x01, 0x8e, 0xe9, 0xa1, 0x5e, 0xf2, 0xed, 0xfc, 0xdc, 0x89, 0xbc, 0x17, 0x96, 0xfe, - 0x4e, 0x45, 0xef, 0xe6, 0x51, 0x1d, 0xe6, 0xc8, 0x7e, 0xd7, 0x0b, 0x7a, 0x3e, 0x61, 0x01, 0x0f, - 0xd9, 0xf4, 0xa0, 0xf8, 0x4a, 0x6e, 0x25, 0x0d, 0xc4, 0xd9, 0xfa, 0xe8, 0x0b, 0x1a, 0xcc, 0xf2, - 0x4c, 0x6f, 0xf4, 0x08, 0xf3, 0x5c, 0xe2, 0x86, 0x01, 0x4b, 0x65, 0x56, 0xf2, 0x89, 0x5b, 0x2b, - 0x85, 0x8b, 0xe7, 0xe6, 0x48, 0x97, 0xe2, 0x0c, 0x4d, 0xba, 0x72, 0xd4, 0x17, 0xc7, 0x2c, 0x23, - 0x5a, 0xc9, 0x95, 0xa3, 0xbe, 0x66, 0xe6, 0x2b, 0x47, 0x2d, 0xc1, 0x09, 0x3a, 0xfa, 0xf7, 0x67, - 0x60, 0x4a, 0x31, 0xdd, 0xa5, 0xee, 0x28, 0xb5, 0xb3, 0xb8, 0xa3, 0x0c, 0x61, 0xca, 0x94, 0xc1, - 0x4d, 0x23, 0x6d, 0x68, 0x48, 0x9a, 0x72, 0xf9, 0xc4, 0x61, 0x53, 0x03, 0xac, 0x92, 0xa1, 0x8c, - 0x4e, 0xde, 0x1c, 0x8f, 0x9c, 0xc0, 0xcd, 0xb1, 0x64, 0x74, 0x39, 0xb7, 0xc7, 0xef, 0x01, 0x88, - 0xce, 0x4b, 0x62, 0x89, 0x70, 0x59, 0x32, 0x29, 0x40, 0x33, 0xb8, 0x21, 0x61, 0x58, 0xa9, 0x87, - 0x5e, 0x83, 0x19, 0x47, 0x8d, 0x92, 0x2d, 0x0e, 0xf3, 0x52, 0x0e, 0xf3, 0x89, 0x70, 0xdb, 0xdc, - 0x16, 0x95, 0x28, 0xc2, 0x49, 0x52, 0x74, 0x19, 0x38, 0x51, 0x04, 0xfc, 0xa1, 0xbc, 0x20, 0x64, - 0x1c, 0xfd, 0x78, 0x19, 0xc8, 0xa2, 0x00, 0x2b, 0x44, 0x0a, 0xae, 0xaa, 0x27, 0x4a, 0x5d, 0x55, - 0xf7, 0xe0, 0x82, 0x4f, 0x42, 0xff, 0xa0, 0x7e, 0x60, 0xb2, 0xc4, 0x10, 0x7e, 0xc8, 0xa4, 0xde, - 0x6a, 0xb9, 0x00, 0x16, 0x38, 0x8b, 0x0a, 0xe7, 0xe1, 0x4f, 0x1c, 0x14, 0x93, 0x7d, 0x0f, 0x8a, - 0xf7, 0xc2, 0x54, 0x48, 0xcc, 0x1d, 0xd7, 0x36, 0x0d, 0xa7, 0xd9, 0x10, 0xb1, 0xa4, 0x62, 0x9e, - 0x17, 0x83, 0xb0, 0x5a, 0x0f, 0x2d, 0xc3, 0x48, 0xcf, 0xb6, 0xc4, 0x69, 0xf9, 0xd3, 0xd2, 0x08, - 0xde, 0x6c, 0xdc, 0x3b, 0xac, 0xbd, 0x35, 0xbe, 0xfb, 0x95, 0x5f, 0x75, 0xb5, 0xbb, 0xdb, 0xbe, - 0x1a, 0x1e, 0x74, 0x49, 0xb0, 0x78, 0xbb, 0xd9, 0xc0, 0xb4, 0x71, 0xde, 0x35, 0xfe, 0xf4, 0x31, - 0xae, 0xf1, 0xbf, 0xa6, 0xc1, 0x05, 0x23, 0x6d, 0xbf, 0x27, 0xc1, 0xfc, 0x4c, 0xf9, 0x53, 0x27, - 0xff, 0x4e, 0x20, 0x8e, 0x05, 0xba, 0x94, 0x25, 0x87, 0xf3, 0xfa, 0x40, 0x75, 0x9d, 0x8e, 0xdd, - 0x96, 0xc1, 0xe8, 0xc5, 0xac, 0x9f, 0x2b, 0xa7, 0xeb, 0xac, 0x65, 0x30, 0xe1, 0x1c, 0xec, 0xe8, - 0x2e, 0x4c, 0x99, 0xb1, 0xda, 0x27, 0x4e, 0xfc, 0xc6, 0x49, 0x5c, 0x33, 0x88, 0xcc, 0xd2, 0x8a, - 0x4e, 0xa9, 0x52, 0x42, 0x5f, 0xd6, 0x60, 0x81, 0x6e, 0x1f, 0x45, 0x2c, 0x17, 0x29, 0x12, 0xd8, - 0x57, 0xcf, 0x1e, 0xfb, 0xab, 0x59, 0x6e, 0xd1, 0xd5, 0x42, 0x8c, 0xb8, 0x0f, 0x35, 0x16, 0x36, - 0xc2, 0x49, 0xe6, 0x8c, 0x60, 0x19, 0x4b, 0x4b, 0xbe, 0x80, 0x4b, 0xa5, 0x9f, 0xe0, 0x4b, 0x33, - 0x55, 0x88, 0xd3, 0x04, 0xf5, 0x3f, 0xd6, 0x84, 0x9d, 0xe8, 0x0c, 0xef, 0xbe, 0x4f, 0xfb, 0x72, - 0x4e, 0xff, 0x73, 0x0d, 0x32, 0xf2, 0x03, 0xda, 0x82, 0x09, 0x8a, 0xa2, 0xb1, 0xde, 0x12, 0x9f, - 0xf5, 0xc1, 0x72, 0xc7, 0x25, 0x43, 0xc1, 0x8d, 0x6e, 0xe2, 0x07, 0x8e, 0x10, 0x53, 0x89, 0xc4, - 0x55, 0xc2, 0x59, 0x8a, 0x2f, 0x2c, 0x25, 0x91, 0xa8, 0x61, 0x31, 0xb9, 0x44, 0xa2, 0x96, 0xe0, - 0x04, 0x1d, 0x7d, 0x15, 0x20, 0x96, 0xf9, 0x86, 0x76, 0x87, 0xf8, 0xc9, 0x18, 0x5c, 0x1a, 0xd6, - 0x73, 0x9b, 0xa5, 0x2a, 0x60, 0xc9, 0xa3, 0x97, 0xb6, 0x43, 0xe2, 0xdf, 0xba, 0xb5, 0x26, 0x73, - 0xeb, 0x96, 0xcc, 0x95, 0x10, 0xe7, 0x1e, 0xcf, 0x60, 0xc4, 0x05, 0x94, 0x98, 0xbc, 0x2b, 0x52, - 0x27, 0x62, 0x23, 0x24, 0x3c, 0x71, 0x2e, 0x8f, 0x02, 0xc0, 0xe5, 0xdd, 0x34, 0x10, 0x67, 0xeb, - 0xa7, 0x91, 0xf0, 0x44, 0xd6, 0x54, 0x20, 0xd1, 0xb2, 0x48, 0x78, 0x36, 0xeb, 0x6c, 0x7d, 0x15, - 0x09, 0x9f, 0x29, 0xba, 0xdb, 0xc7, 0xb2, 0x48, 0x24, 0x10, 0x67, 0xeb, 0x23, 0x0b, 0x1e, 0xf6, - 0x89, 0xe9, 0x75, 0x3a, 0xc4, 0xb5, 0x78, 0x16, 0x20, 0xc3, 0x6f, 0xdb, 0xee, 0x35, 0xdf, 0x60, - 0x15, 0x99, 0x19, 0x41, 0x5b, 0x7e, 0xf4, 0xe8, 0xb0, 0xf6, 0x30, 0xee, 0x53, 0x0f, 0xf7, 0xc5, - 0x82, 0x3a, 0x70, 0xbe, 0xc7, 0xe2, 0x57, 0xfb, 0x4d, 0x37, 0x24, 0xfe, 0x9e, 0xe1, 0x94, 0x4c, - 0xcf, 0xce, 0x38, 0xd0, 0xed, 0x24, 0x2a, 0x9c, 0xc6, 0x8d, 0x0e, 0xa8, 0xdc, 0x21, 0xba, 0xa3, - 0x90, 0xac, 0x96, 0x4f, 0xe6, 0x81, 0xb3, 0xe8, 0x70, 0x1e, 0x0d, 0xfd, 0x6b, 0x1a, 0x08, 0xdf, - 0x4f, 0xf4, 0x70, 0xc2, 0xc4, 0x5f, 0x4d, 0x99, 0xf7, 0x1f, 0x16, 0x4f, 0x19, 0x2b, 0x31, 0x54, - 0x79, 0xc6, 0xf8, 0x0e, 0x25, 0xbc, 0xc4, 0x64, 0xcc, 0xfb, 0x38, 0x66, 0x25, 0x02, 0xfc, 0x3b, - 0x61, 0x92, 0xf0, 0xeb, 0x36, 0x29, 0xd1, 0x32, 0x7f, 0xda, 0x95, 0xa8, 0x10, 0xc7, 0x70, 0xfd, - 0xdf, 0x69, 0x20, 0x30, 0xb0, 0x7c, 0x05, 0x03, 0xc5, 0xad, 0xbf, 0xaf, 0x23, 0x8b, 0x12, 0x6f, - 0x7f, 0xa4, 0x30, 0xde, 0xfe, 0x29, 0x85, 0xa1, 0xff, 0x8e, 0x06, 0xe7, 0x93, 0xf1, 0x3e, 0x02, - 0xf4, 0x76, 0x98, 0x10, 0x01, 0xb4, 0x44, 0x04, 0x1c, 0xfe, 0x74, 0x59, 0x64, 0xa3, 0x8e, 0x60, - 0x49, 0x55, 0x7d, 0x88, 0x50, 0x37, 0xf9, 0x61, 0x47, 0xfa, 0xab, 0xea, 0xfa, 0x9f, 0x9c, 0x83, - 0x71, 0x1e, 0x7d, 0x89, 0xf2, 0xb4, 0x9c, 0x27, 0x70, 0x37, 0xcb, 0x07, 0x79, 0x2a, 0xf3, 0x66, - 0x49, 0x0d, 0xf3, 0x5b, 0xe9, 0x1b, 0xe6, 0x17, 0xf3, 0xf4, 0x1e, 0x43, 0x98, 0x67, 0xeb, 0xb8, - 0x29, 0xb2, 0x7a, 0x46, 0xa9, 0x3d, 0xc2, 0x84, 0xdd, 0x72, 0xb4, 0xbc, 0xe4, 0xc6, 0x07, 0x40, - 0xb1, 0x5e, 0x9e, 0xeb, 0x63, 0xb9, 0x8c, 0xc3, 0xdb, 0x8c, 0x95, 0x77, 0x2c, 0x13, 0x43, 0x3e, - 0x40, 0x78, 0x1b, 0xb9, 0x91, 0xc6, 0x0b, 0x37, 0xd2, 0x36, 0x4c, 0x88, 0xad, 0x20, 0x98, 0xe3, - 0x07, 0x87, 0xc8, 0x93, 0xa1, 0x44, 0x64, 0xe4, 0x05, 0x38, 0x42, 0x4e, 0x4f, 0xdc, 0x8e, 0xb1, - 0x6f, 0x77, 0x7a, 0x1d, 0xc6, 0x11, 0xc7, 0xd4, 0xaa, 0xac, 0x18, 0x47, 0x70, 0x56, 0x95, 0xfb, - 0xe3, 0x31, 0x45, 0x4a, 0xad, 0x2a, 0xb2, 0x52, 0x47, 0x70, 0xf4, 0x12, 0x54, 0x3b, 0xc6, 0x7e, - 0xab, 0xe7, 0xb7, 0x89, 0xb0, 0x58, 0x16, 0xcb, 0x78, 0xbd, 0xd0, 0x76, 0x16, 0xa9, 0xfa, 0x1f, - 0xfa, 0x8b, 0x4d, 0x37, 0xbc, 0xe5, 0xb7, 0x42, 0x5f, 0x46, 0xe2, 0x5f, 0x13, 0x58, 0xb0, 0xc4, - 0x87, 0x1c, 0x38, 0xd7, 0x31, 0xf6, 0x6f, 0xbb, 0x86, 0x4c, 0x9e, 0x3b, 0x55, 0x92, 0x02, 0xbb, - 0x0d, 0x5d, 0x4b, 0xe0, 0xc2, 0x29, 0xdc, 0x39, 0x17, 0xaf, 0xd3, 0xa7, 0x75, 0xf1, 0xba, 0x24, - 0x5f, 0x38, 0x70, 0xbd, 0xed, 0xc1, 0xbc, 0x07, 0x13, 0xfd, 0x5f, 0x2f, 0xbc, 0x2c, 0x5f, 0x2f, - 0x9c, 0x2b, 0x7f, 0xad, 0xd3, 0xe7, 0xe5, 0x42, 0x0f, 0xa6, 0xa8, 0x84, 0xcd, 0x4b, 0xa9, 0x62, - 0x55, 0xda, 0xac, 0xd8, 0x90, 0x68, 0x94, 0x64, 0x6c, 0x31, 0x6a, 0xac, 0xd2, 0x41, 0xb7, 0x78, - 0x72, 0x55, 0x87, 0x84, 0x71, 0x15, 0xa6, 0xd0, 0xcf, 0x72, 0xcb, 0x71, 0x94, 0x0b, 0x35, 0x53, - 0x01, 0xe7, 0xb7, 0x8b, 0x5f, 0xe1, 0xcf, 0xe5, 0xbf, 0xc2, 0x47, 0xbf, 0x90, 0x67, 0x83, 0x44, - 0xe5, 0x5f, 0x63, 0x71, 0xde, 0x50, 0xda, 0x12, 0xf9, 0xbb, 0x1a, 0xcc, 0x77, 0x0a, 0xb2, 0x96, - 0x09, 0xd3, 0xe8, 0xe6, 0x10, 0xfc, 0xa1, 0x30, 0x13, 0xda, 0xf2, 0x63, 0x47, 0x87, 0xb5, 0xfb, - 0xe6, 0x4b, 0xc3, 0x85, 0x7d, 0x1b, 0xf6, 0xdd, 0xe9, 0x30, 0x71, 0xc0, 0x7e, 0x5d, 0x83, 0xd9, - 0xf4, 0x21, 0xa0, 0xe6, 0x83, 0xd5, 0x4e, 0x37, 0x1f, 0xac, 0xe2, 0x46, 0x51, 0xe9, 0xe3, 0x46, - 0xf1, 0x2c, 0x5c, 0xce, 0x5f, 0x1b, 0x54, 0x22, 0x63, 0xf9, 0x97, 0x85, 0x26, 0x14, 0x27, 0x9d, - 0xa0, 0x85, 0x98, 0xc3, 0xf4, 0x4f, 0x41, 0x3a, 0x72, 0x23, 0x7a, 0x05, 0x26, 0x83, 0x60, 0x87, - 0x47, 0x19, 0x13, 0x1f, 0x59, 0x4e, 0x05, 0x8e, 0x42, 0x95, 0x89, 0x47, 0x59, 0xd1, 0x4f, 0x1c, - 0xa3, 0x5f, 0x7e, 0xf1, 0x7b, 0x3f, 0xbe, 0xf2, 0x96, 0x1f, 0xfc, 0xf8, 0xca, 0x5b, 0x7e, 0xf8, - 0xe3, 0x2b, 0x6f, 0xf9, 0xb9, 0xa3, 0x2b, 0xda, 0xf7, 0x8e, 0xae, 0x68, 0x3f, 0x38, 0xba, 0xa2, - 0xfd, 0xf0, 0xe8, 0x8a, 0xf6, 0x5f, 0x8e, 0xae, 0x68, 0x5f, 0xf9, 0xaf, 0x57, 0xde, 0xf2, 0xd2, - 0x53, 0x31, 0xf5, 0xab, 0x11, 0xd1, 0xf8, 0x9f, 0xee, 0x6e, 0xfb, 0x2a, 0xa5, 0x1e, 0x3d, 0x8e, - 0x60, 0xd4, 0xff, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xf3, 0x36, 0xb9, 0x23, 0x97, 0xd2, 0x00, - 0x00, + // 11037 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x6d, 0x6c, 0x2c, 0xd7, + 0x75, 0x98, 0x67, 0xf9, 0xb5, 0x3c, 0xfc, 0x78, 0xe4, 0x7d, 0x1f, 0xa2, 0x28, 0xe9, 0xad, 0x3c, + 0x96, 0x0d, 0xa9, 0x76, 0xf8, 0x22, 0xf9, 0x53, 0xb2, 0x65, 0x99, 0xdc, 0x25, 0xdf, 0x5b, 0x3f, + 0x92, 0x8f, 0xba, 0xcb, 0x27, 0xc9, 0x72, 0xaa, 0x7a, 0x38, 0x73, 0xb9, 0x1c, 0x71, 0x76, 0x66, + 0x35, 0x33, 0xcb, 0x47, 0xca, 0x31, 0x1c, 0xbb, 0xfe, 0xa8, 0x95, 0x38, 0x30, 0x0c, 0xa4, 0x82, + 0xed, 0xb4, 0x71, 0x10, 0xa4, 0x71, 0x91, 0xc2, 0x49, 0x3f, 0x12, 0x20, 0x0d, 0x0a, 0x04, 0x06, + 0x8a, 0xd8, 0x41, 0x5b, 0xb8, 0x2e, 0x82, 0xba, 0x40, 0x43, 0xd7, 0x6c, 0xeb, 0x14, 0x68, 0x11, + 0x14, 0x08, 0x8a, 0x02, 0x0f, 0xf9, 0x11, 0xdc, 0x8f, 0xb9, 0x73, 0xe7, 0x6b, 0x1f, 0x39, 0x4b, + 0xd2, 0x12, 0x92, 0x5f, 0xe4, 0xde, 0x73, 0xef, 0x39, 0x77, 0xee, 0xc7, 0xb9, 0xe7, 0x9c, 0x7b, + 0xee, 0x39, 0xb0, 0xd4, 0xb6, 0xc3, 0x9d, 0xde, 0xd6, 0x82, 0xe9, 0x75, 0xae, 0xb5, 0x0d, 0xdf, + 0x22, 0x2e, 0xf1, 0xe3, 0x7f, 0xba, 0xbb, 0xed, 0x6b, 0x46, 0xd7, 0x0e, 0xae, 0x99, 0x9e, 0x4f, + 0xae, 0xed, 0x3d, 0xbe, 0x45, 0x42, 0xe3, 0xf1, 0x6b, 0x6d, 0x0a, 0x33, 0x42, 0x62, 0x2d, 0x74, + 0x7d, 0x2f, 0xf4, 0xd0, 0x13, 0x31, 0x8e, 0x85, 0xa8, 0x69, 0xfc, 0x4f, 0x77, 0xb7, 0xbd, 0x40, + 0x71, 0x2c, 0x50, 0x1c, 0x0b, 0x02, 0xc7, 0xfc, 0xcf, 0xa8, 0x74, 0xbd, 0xb6, 0x77, 0x8d, 0xa1, + 0xda, 0xea, 0x6d, 0xb3, 0x5f, 0xec, 0x07, 0xfb, 0x8f, 0x93, 0x98, 0x7f, 0x6c, 0xf7, 0x03, 0xc1, + 0x82, 0xed, 0xd1, 0xce, 0x5c, 0x33, 0x7a, 0xa1, 0x17, 0x98, 0x86, 0x63, 0xbb, 0xed, 0x6b, 0x7b, + 0x99, 0xde, 0xcc, 0xeb, 0x4a, 0x55, 0xd1, 0xed, 0xbe, 0x75, 0xfc, 0x2d, 0xc3, 0xcc, 0xab, 0xf3, + 0x9e, 0xb8, 0x4e, 0xc7, 0x30, 0x77, 0x6c, 0x97, 0xf8, 0x07, 0xd1, 0x80, 0x5c, 0xf3, 0x49, 0xe0, + 0xf5, 0x7c, 0x93, 0x9c, 0xa8, 0x55, 0x70, 0xad, 0x43, 0x42, 0x23, 0x8f, 0xd6, 0xb5, 0xa2, 0x56, + 0x7e, 0xcf, 0x0d, 0xed, 0x4e, 0x96, 0xcc, 0xfb, 0xee, 0xd5, 0x20, 0x30, 0x77, 0x48, 0xc7, 0xc8, + 0xb4, 0x7b, 0x77, 0x51, 0xbb, 0x5e, 0x68, 0x3b, 0xd7, 0x6c, 0x37, 0x0c, 0x42, 0x3f, 0xdd, 0x48, + 0x7f, 0x02, 0x46, 0x16, 0x2d, 0xcb, 0x73, 0xd1, 0x63, 0x30, 0x46, 0x5c, 0x63, 0xcb, 0x21, 0xd6, + 0x9c, 0xf6, 0xb0, 0xf6, 0x68, 0x75, 0xe9, 0xc2, 0x77, 0x0f, 0x6b, 0x6f, 0x39, 0x3a, 0xac, 0x8d, + 0x2d, 0xf3, 0x62, 0x1c, 0xc1, 0xf5, 0x5f, 0xa9, 0xc0, 0x28, 0x6b, 0x14, 0xa0, 0xaf, 0x6a, 0x70, + 0x71, 0xb7, 0xb7, 0x45, 0x7c, 0x97, 0x84, 0x24, 0x68, 0x18, 0xc1, 0xce, 0x96, 0x67, 0xf8, 0x1c, + 0xc5, 0xc4, 0x13, 0xd7, 0x17, 0x4e, 0xbe, 0x7a, 0x16, 0x6e, 0x66, 0xd1, 0x2d, 0xdd, 0x77, 0x74, + 0x58, 0xbb, 0x98, 0x03, 0xc0, 0x79, 0xc4, 0xd1, 0x1e, 0x4c, 0xba, 0x6d, 0xdb, 0xdd, 0x6f, 0xba, + 0x6d, 0x9f, 0x04, 0xc1, 0x5c, 0x85, 0x75, 0xe6, 0x23, 0x65, 0x3a, 0xb3, 0xae, 0xe0, 0x59, 0x9a, + 0x39, 0x3a, 0xac, 0x4d, 0xaa, 0x25, 0x38, 0x41, 0x47, 0xff, 0x5d, 0x0d, 0x2e, 0x2c, 0x5a, 0x1d, + 0x3b, 0x08, 0x6c, 0xcf, 0xdd, 0x70, 0x7a, 0x6d, 0xdb, 0x45, 0x0f, 0xc3, 0xb0, 0x6b, 0x74, 0x08, + 0x1b, 0x90, 0xf1, 0xa5, 0x49, 0x31, 0xa6, 0xc3, 0xeb, 0x46, 0x87, 0x60, 0x06, 0x41, 0xcf, 0xc2, + 0xa8, 0xe9, 0xb9, 0xdb, 0x76, 0x5b, 0xf4, 0xf3, 0x67, 0x16, 0xf8, 0x3c, 0x2e, 0xa8, 0xf3, 0xc8, + 0xba, 0x27, 0xe6, 0x7f, 0x01, 0x1b, 0x77, 0x96, 0xf7, 0x43, 0xe2, 0x52, 0x32, 0x4b, 0x70, 0x74, + 0x58, 0x1b, 0xad, 0x33, 0x04, 0x58, 0x20, 0x42, 0x8f, 0x42, 0xd5, 0xb2, 0x03, 0x3e, 0x99, 0x43, + 0x6c, 0x32, 0x27, 0x8f, 0x0e, 0x6b, 0xd5, 0x86, 0x28, 0xc3, 0x12, 0xaa, 0xaf, 0x40, 0x75, 0xd1, + 0x21, 0x7e, 0x68, 0xbb, 0x6d, 0xf4, 0x14, 0x4c, 0x93, 0x8e, 0x61, 0x3b, 0x98, 0x98, 0xc4, 0xde, + 0x23, 0x7e, 0x30, 0xa7, 0x3d, 0x3c, 0xf4, 0xe8, 0xf8, 0x12, 0x3a, 0x3a, 0xac, 0x4d, 0x2f, 0x27, + 0x20, 0x38, 0x55, 0x53, 0xff, 0x8c, 0x06, 0x13, 0x8b, 0x3d, 0xcb, 0x0e, 0x79, 0x4f, 0x90, 0x0f, + 0x13, 0x06, 0xfd, 0xb9, 0xe1, 0x39, 0xb6, 0x79, 0x20, 0x96, 0xc3, 0x33, 0x65, 0x66, 0x60, 0x31, + 0x46, 0xb3, 0x74, 0xe1, 0xe8, 0xb0, 0x36, 0xa1, 0x14, 0x60, 0x95, 0x88, 0xbe, 0x03, 0x2a, 0x0c, + 0x7d, 0x0c, 0x26, 0xf9, 0x70, 0xac, 0x19, 0x5d, 0x4c, 0xb6, 0x45, 0x1f, 0xde, 0xa6, 0x8c, 0x6e, + 0x44, 0x68, 0xe1, 0xd6, 0xd6, 0xcb, 0xc4, 0x0c, 0x31, 0xd9, 0x26, 0x3e, 0x71, 0x4d, 0xc2, 0x27, + 0xba, 0xae, 0x34, 0xc6, 0x09, 0x54, 0xfa, 0x8f, 0x34, 0x98, 0x59, 0xdc, 0x33, 0x6c, 0xc7, 0xd8, + 0xb2, 0x1d, 0x3b, 0x3c, 0x78, 0xd1, 0x73, 0xc9, 0x31, 0x66, 0xfa, 0x36, 0xdc, 0xd7, 0x73, 0x0d, + 0xde, 0xce, 0x21, 0x6b, 0x7c, 0x6e, 0x37, 0x0f, 0xba, 0x84, 0x2e, 0x51, 0x3a, 0xd2, 0x0f, 0x1c, + 0x1d, 0xd6, 0xee, 0xbb, 0x9d, 0x5f, 0x05, 0x17, 0xb5, 0x45, 0x18, 0xae, 0x28, 0xa0, 0xe7, 0x3c, + 0xa7, 0xd7, 0x11, 0x58, 0x87, 0x18, 0xd6, 0xf9, 0xa3, 0xc3, 0xda, 0x95, 0xdb, 0xb9, 0x35, 0x70, + 0x41, 0x4b, 0xfd, 0xbb, 0x15, 0x98, 0x5c, 0x32, 0xcc, 0xdd, 0x5e, 0x77, 0xa9, 0x67, 0xee, 0x92, + 0x10, 0x7d, 0x02, 0xaa, 0x94, 0xc1, 0x59, 0x46, 0x68, 0x88, 0x91, 0xfc, 0xd9, 0xc2, 0x75, 0xca, + 0x26, 0x91, 0xd6, 0x8e, 0xc7, 0x76, 0x8d, 0x84, 0xc6, 0x12, 0x12, 0x63, 0x02, 0x71, 0x19, 0x96, + 0x58, 0xd1, 0x36, 0x0c, 0x07, 0x5d, 0x62, 0x8a, 0x5d, 0xd0, 0x28, 0xb3, 0x56, 0xd4, 0x1e, 0xb7, + 0xba, 0xc4, 0x8c, 0x67, 0x81, 0xfe, 0xc2, 0x0c, 0x3f, 0x72, 0x61, 0x34, 0x08, 0x8d, 0xb0, 0x17, + 0xb0, 0xad, 0x31, 0xf1, 0xc4, 0xca, 0xc0, 0x94, 0x18, 0xb6, 0xa5, 0x69, 0x41, 0x6b, 0x94, 0xff, + 0xc6, 0x82, 0x8a, 0xfe, 0x9f, 0x35, 0x98, 0x51, 0xab, 0xaf, 0xda, 0x41, 0x88, 0x7e, 0x2e, 0x33, + 0x9c, 0x0b, 0xc7, 0x1b, 0x4e, 0xda, 0x9a, 0x0d, 0xe6, 0x8c, 0x20, 0x57, 0x8d, 0x4a, 0x94, 0xa1, + 0x24, 0x30, 0x62, 0x87, 0xa4, 0xc3, 0x97, 0x55, 0x49, 0xce, 0xa7, 0x76, 0x79, 0x69, 0x4a, 0x10, + 0x1b, 0x69, 0x52, 0xb4, 0x98, 0x63, 0xd7, 0x3f, 0x01, 0x97, 0xd4, 0x5a, 0x1b, 0xbe, 0xb7, 0x67, + 0x5b, 0xc4, 0xa7, 0x3b, 0x21, 0x3c, 0xe8, 0x66, 0x76, 0x02, 0x5d, 0x59, 0x98, 0x41, 0xd0, 0x3b, + 0x60, 0xd4, 0x27, 0x6d, 0xdb, 0x73, 0xd9, 0x6c, 0x8f, 0xc7, 0x63, 0x87, 0x59, 0x29, 0x16, 0x50, + 0xfd, 0xff, 0x55, 0x92, 0x63, 0x47, 0xa7, 0x11, 0xed, 0x41, 0xb5, 0x2b, 0x48, 0x89, 0xb1, 0xbb, + 0x31, 0xe8, 0x07, 0x46, 0x5d, 0x8f, 0x47, 0x35, 0x2a, 0xc1, 0x92, 0x16, 0xb2, 0x61, 0x3a, 0xfa, + 0xbf, 0x3e, 0x00, 0xc3, 0x66, 0xec, 0x74, 0x23, 0x81, 0x08, 0xa7, 0x10, 0xa3, 0x4d, 0x18, 0x0f, + 0x88, 0xe9, 0x13, 0xca, 0x93, 0xc4, 0x32, 0xcd, 0x65, 0x5c, 0xad, 0xa8, 0x92, 0x60, 0x5c, 0xb3, + 0xa2, 0xfb, 0xe3, 0x12, 0x80, 0x63, 0x44, 0xf4, 0x58, 0x08, 0x08, 0xb1, 0x28, 0x47, 0x9a, 0x1b, + 0xe6, 0x73, 0x43, 0x3f, 0xb5, 0x25, 0xca, 0xb0, 0x84, 0xea, 0xdf, 0x1c, 0x06, 0x94, 0x5d, 0xe2, + 0xea, 0x08, 0xf0, 0x12, 0x31, 0xfe, 0x83, 0x8c, 0x80, 0xd8, 0x2d, 0x29, 0xc4, 0xe8, 0x55, 0x98, + 0x72, 0x8c, 0x20, 0xbc, 0xd5, 0xa5, 0xd2, 0x4a, 0xb4, 0x50, 0x26, 0x9e, 0x58, 0x2c, 0x33, 0xd3, + 0xab, 0x2a, 0xa2, 0xa5, 0xd9, 0xa3, 0xc3, 0xda, 0x54, 0xa2, 0x08, 0x27, 0x49, 0xa1, 0x97, 0x61, + 0x9c, 0x16, 0x2c, 0xfb, 0xbe, 0xe7, 0x8b, 0xd1, 0x7f, 0xba, 0x2c, 0x5d, 0x86, 0x64, 0x69, 0x8a, + 0xce, 0x89, 0xfc, 0x89, 0x63, 0xf4, 0xe8, 0xa3, 0x80, 0xbc, 0xad, 0x80, 0xf8, 0x7b, 0xc4, 0xba, + 0xce, 0x45, 0x33, 0xfa, 0xb1, 0x74, 0x76, 0x86, 0x96, 0xe6, 0xc5, 0x6c, 0xa2, 0x5b, 0x99, 0x1a, + 0x38, 0xa7, 0x15, 0xda, 0x05, 0x24, 0xc5, 0x3b, 0xb9, 0x00, 0xe6, 0x46, 0x8e, 0xbf, 0x7c, 0xae, + 0x50, 0x62, 0xd7, 0x33, 0x28, 0x70, 0x0e, 0x5a, 0xfd, 0xdf, 0x56, 0x60, 0x82, 0x2f, 0x91, 0x65, + 0x37, 0xf4, 0x0f, 0xce, 0xe1, 0x80, 0x20, 0x89, 0x03, 0xa2, 0x5e, 0x7e, 0xcf, 0xb3, 0x0e, 0x17, + 0x9e, 0x0f, 0x9d, 0xd4, 0xf9, 0xb0, 0x3c, 0x28, 0xa1, 0xfe, 0xc7, 0xc3, 0x9f, 0x6a, 0x70, 0x41, + 0xa9, 0x7d, 0x0e, 0xa7, 0x83, 0x95, 0x3c, 0x1d, 0x9e, 0x19, 0xf0, 0xfb, 0x0a, 0x0e, 0x07, 0x2f, + 0xf1, 0x59, 0x8c, 0x71, 0x3f, 0x01, 0xb0, 0xc5, 0xd8, 0xc9, 0x7a, 0x2c, 0x27, 0xc9, 0x29, 0x5f, + 0x92, 0x10, 0xac, 0xd4, 0x4a, 0xf0, 0xac, 0x4a, 0x5f, 0x9e, 0xf5, 0x3f, 0x87, 0x60, 0x36, 0x33, + 0xec, 0x59, 0x3e, 0xa2, 0xfd, 0x94, 0xf8, 0x48, 0xe5, 0xa7, 0xc1, 0x47, 0x86, 0x4a, 0xf1, 0x91, + 0x63, 0x9f, 0x13, 0xc8, 0x07, 0xd4, 0xb1, 0xdb, 0xbc, 0x59, 0x2b, 0x34, 0xfc, 0x70, 0xd3, 0xee, + 0x10, 0xc1, 0x71, 0xfe, 0xce, 0xf1, 0x96, 0x2c, 0x6d, 0xc1, 0x19, 0xcf, 0x5a, 0x06, 0x13, 0xce, + 0xc1, 0xae, 0xff, 0x60, 0x18, 0xa0, 0xbe, 0x88, 0xbd, 0x90, 0x77, 0xf6, 0x19, 0x18, 0xe9, 0xee, + 0x18, 0x41, 0xb4, 0x9e, 0x1e, 0x8b, 0x16, 0xe3, 0x06, 0x2d, 0xbc, 0x7b, 0x58, 0x9b, 0xab, 0xfb, + 0xc4, 0x22, 0x6e, 0x68, 0x1b, 0x4e, 0x10, 0x35, 0x62, 0x30, 0xcc, 0xdb, 0xd1, 0x6f, 0xa0, 0xc3, + 0x58, 0xf7, 0x3a, 0x5d, 0x87, 0x50, 0x28, 0xfb, 0x86, 0x4a, 0xb9, 0x6f, 0x58, 0xcd, 0x60, 0xc2, + 0x39, 0xd8, 0x23, 0x9a, 0x4d, 0xd7, 0x0e, 0x6d, 0x43, 0xd2, 0x1c, 0x2a, 0x4f, 0x33, 0x89, 0x09, + 0xe7, 0x60, 0x47, 0xaf, 0x69, 0x30, 0x9f, 0x2c, 0x5e, 0xb1, 0x5d, 0x3b, 0xd8, 0x21, 0x16, 0x23, + 0x3e, 0x7c, 0x62, 0xe2, 0x57, 0x8f, 0x0e, 0x6b, 0xf3, 0xab, 0x85, 0x18, 0x71, 0x1f, 0x6a, 0xe8, + 0xcb, 0x1a, 0x3c, 0x90, 0x1a, 0x17, 0xdf, 0x6e, 0xb7, 0x89, 0x2f, 0x7a, 0x73, 0xf2, 0x25, 0x54, + 0x3b, 0x3a, 0xac, 0x3d, 0xb0, 0x5a, 0x8c, 0x12, 0xf7, 0xa3, 0xa7, 0x7f, 0x47, 0x83, 0xa1, 0x3a, + 0x6e, 0xa2, 0x77, 0x26, 0x94, 0xb8, 0xfb, 0x54, 0x25, 0xee, 0xee, 0x61, 0x6d, 0xac, 0x8e, 0x9b, + 0x8a, 0x3e, 0xf7, 0x65, 0x0d, 0x66, 0x4d, 0xcf, 0x0d, 0x0d, 0xda, 0x2f, 0xcc, 0x25, 0x9d, 0x88, + 0xab, 0x96, 0xd2, 0x5f, 0xea, 0x29, 0x64, 0x4b, 0xf7, 0x8b, 0x0e, 0xcc, 0xa6, 0x21, 0x01, 0xce, + 0x52, 0xd6, 0x7f, 0xa8, 0xc1, 0x64, 0xdd, 0xf1, 0x7a, 0xd6, 0x86, 0xef, 0x6d, 0xdb, 0x0e, 0x79, + 0x73, 0x28, 0x6d, 0x6a, 0x8f, 0x8b, 0x0e, 0x65, 0xa6, 0x44, 0xa9, 0x15, 0xdf, 0x24, 0x4a, 0x94, + 0xda, 0xe5, 0x82, 0x73, 0xf2, 0x57, 0xc6, 0x92, 0x5f, 0xc6, 0x4e, 0xca, 0x47, 0xa1, 0x6a, 0x1a, + 0x4b, 0x3d, 0xd7, 0x72, 0xa4, 0x16, 0x45, 0x7b, 0x59, 0x5f, 0xe4, 0x65, 0x58, 0x42, 0xd1, 0xab, + 0x00, 0xb1, 0x09, 0x4c, 0x4c, 0xc3, 0xca, 0x60, 0x66, 0xb7, 0x16, 0x09, 0x43, 0xdb, 0x6d, 0x07, + 0xf1, 0xd4, 0xc7, 0x30, 0xac, 0x50, 0x43, 0x9f, 0x82, 0x29, 0x31, 0xc8, 0xcd, 0x8e, 0xd1, 0x16, + 0xf6, 0x86, 0x92, 0x23, 0xb5, 0xa6, 0x20, 0x5a, 0xba, 0x2c, 0x08, 0x4f, 0xa9, 0xa5, 0x01, 0x4e, + 0x52, 0x43, 0x07, 0x30, 0xd9, 0x51, 0x6d, 0x28, 0xc3, 0xe5, 0xc5, 0x19, 0xc5, 0x9e, 0xb2, 0x74, + 0x49, 0x10, 0x9f, 0x4c, 0x58, 0x5f, 0x12, 0xa4, 0x72, 0x54, 0xc1, 0x91, 0xb3, 0x52, 0x05, 0x09, + 0x8c, 0x71, 0x65, 0x38, 0x98, 0x1b, 0x65, 0x1f, 0xf8, 0x54, 0x99, 0x0f, 0xe4, 0x7a, 0x75, 0x6c, + 0xd3, 0xe5, 0xbf, 0x03, 0x1c, 0xe1, 0x46, 0x7b, 0x30, 0x49, 0x4f, 0xf5, 0x16, 0x71, 0x88, 0x19, + 0x7a, 0xfe, 0xdc, 0x58, 0x79, 0x9b, 0x69, 0x4b, 0xc1, 0xc3, 0x4d, 0x69, 0x6a, 0x09, 0x4e, 0xd0, + 0x91, 0xb6, 0x82, 0x6a, 0xa1, 0xad, 0xa0, 0x07, 0x13, 0x7b, 0x8a, 0x4d, 0x6b, 0x9c, 0x0d, 0xc2, + 0x87, 0xcb, 0x74, 0x2c, 0x36, 0x70, 0x2d, 0x5d, 0x14, 0x84, 0x26, 0x54, 0x63, 0x98, 0x4a, 0x47, + 0x3f, 0xac, 0xc2, 0x6c, 0xdd, 0xe9, 0x05, 0x21, 0xf1, 0x17, 0xc5, 0xa5, 0x04, 0xf1, 0xd1, 0x67, + 0x35, 0xb8, 0xc2, 0xfe, 0x6d, 0x78, 0x77, 0xdc, 0x06, 0x71, 0x8c, 0x83, 0xc5, 0x6d, 0x5a, 0xc3, + 0xb2, 0x4e, 0xc6, 0x81, 0x1a, 0x3d, 0x21, 0x45, 0x32, 0xe3, 0x5c, 0x2b, 0x17, 0x23, 0x2e, 0xa0, + 0x84, 0x7e, 0x51, 0x83, 0xfb, 0x73, 0x40, 0x0d, 0xe2, 0x90, 0x30, 0x92, 0x5c, 0x4e, 0xda, 0x8f, + 0x87, 0x8e, 0x0e, 0x6b, 0xf7, 0xb7, 0x8a, 0x90, 0xe2, 0x62, 0x7a, 0xe8, 0x97, 0x35, 0x98, 0xcf, + 0x81, 0xae, 0x18, 0xb6, 0xd3, 0xf3, 0x23, 0xa1, 0xe6, 0xa4, 0xdd, 0x61, 0xb2, 0x45, 0xab, 0x10, + 0x2b, 0xee, 0x43, 0x11, 0x7d, 0x1a, 0x2e, 0x4b, 0xe8, 0x6d, 0xd7, 0x25, 0xc4, 0x4a, 0x88, 0x38, + 0x27, 0xed, 0xca, 0xfd, 0x47, 0x87, 0xb5, 0xcb, 0xad, 0x3c, 0x84, 0x38, 0x9f, 0x0e, 0x6a, 0xc3, + 0x43, 0x31, 0x20, 0xb4, 0x1d, 0xfb, 0x55, 0x2e, 0x85, 0xed, 0xf8, 0x24, 0xd8, 0xf1, 0x1c, 0x8b, + 0x31, 0x0b, 0x6d, 0xe9, 0xad, 0x47, 0x87, 0xb5, 0x87, 0x5a, 0xfd, 0x2a, 0xe2, 0xfe, 0x78, 0x90, + 0x05, 0x93, 0x81, 0x69, 0xb8, 0x4d, 0x37, 0x24, 0xfe, 0x9e, 0xe1, 0xcc, 0x8d, 0x96, 0xfa, 0x40, + 0xbe, 0x45, 0x15, 0x3c, 0x38, 0x81, 0x15, 0x7d, 0x00, 0xaa, 0x64, 0xbf, 0x6b, 0xb8, 0x16, 0xe1, + 0x6c, 0x61, 0x7c, 0xe9, 0x41, 0x7a, 0x18, 0x2d, 0x8b, 0xb2, 0xbb, 0x87, 0xb5, 0xc9, 0xe8, 0xff, + 0x35, 0xcf, 0x22, 0x58, 0xd6, 0x46, 0x3f, 0x0f, 0x97, 0x3a, 0xc6, 0xfe, 0xba, 0x67, 0x11, 0xc6, + 0xe4, 0x82, 0x48, 0xd0, 0xad, 0x96, 0xea, 0xe7, 0xdc, 0xd1, 0x61, 0xed, 0xd2, 0x5a, 0x0e, 0x3e, + 0x9c, 0x4b, 0x85, 0x4e, 0x43, 0xc7, 0xd8, 0xbf, 0xee, 0x1b, 0x26, 0xd9, 0xee, 0x39, 0x9b, 0xc4, + 0xef, 0xd8, 0x2e, 0xd7, 0x25, 0x88, 0xe9, 0xb9, 0x16, 0x65, 0x25, 0xda, 0xa3, 0x23, 0x7c, 0x1a, + 0xd6, 0xfa, 0x55, 0xc4, 0xfd, 0xf1, 0xa0, 0xf7, 0xc0, 0xa4, 0xdd, 0x76, 0x3d, 0x9f, 0x6c, 0x1a, + 0xb6, 0x1b, 0x06, 0x73, 0xc0, 0xcc, 0xee, 0x6c, 0x58, 0x9b, 0x4a, 0x39, 0x4e, 0xd4, 0xd2, 0x0f, + 0x87, 0x60, 0xbc, 0xee, 0xb9, 0x96, 0xcd, 0xd4, 0x98, 0xc7, 0x13, 0x36, 0xd3, 0x87, 0x54, 0x3e, + 0x78, 0xf7, 0xb0, 0x36, 0x25, 0x2b, 0x2a, 0x8c, 0xf1, 0x49, 0x69, 0xa8, 0xe0, 0x8a, 0xf1, 0x5b, + 0x93, 0x16, 0x86, 0xbb, 0x87, 0xb5, 0x0b, 0xb2, 0x59, 0xd2, 0xe8, 0x80, 0xf6, 0xb8, 0xfe, 0xb1, + 0xe9, 0x1b, 0x6e, 0x60, 0x0f, 0xa0, 0x7f, 0x48, 0xcd, 0x72, 0x35, 0x83, 0x0d, 0xe7, 0x50, 0x40, + 0x2f, 0xc3, 0x34, 0x2d, 0xbd, 0xdd, 0xb5, 0x8c, 0x90, 0x94, 0x54, 0x3b, 0xae, 0x08, 0x9a, 0xd3, + 0xab, 0x09, 0x4c, 0x38, 0x85, 0x99, 0xdb, 0x98, 0x8d, 0xc0, 0x73, 0xd9, 0x76, 0x4b, 0xd8, 0x98, + 0x69, 0x29, 0x16, 0x50, 0xf4, 0x18, 0x8c, 0x75, 0x48, 0x10, 0x18, 0x6d, 0xc2, 0xf6, 0xcf, 0x78, + 0x7c, 0x48, 0xae, 0xf1, 0x62, 0x1c, 0xc1, 0xd1, 0xbb, 0x60, 0xc4, 0xf4, 0x2c, 0x12, 0xcc, 0x8d, + 0xb1, 0x19, 0xa6, 0xda, 0xd7, 0x48, 0x9d, 0x16, 0xdc, 0x3d, 0xac, 0x8d, 0x33, 0x3d, 0x9c, 0xfe, + 0xc2, 0xbc, 0x92, 0xfe, 0x6b, 0x54, 0x66, 0x4d, 0x09, 0xe9, 0xc7, 0xb0, 0x8d, 0x9f, 0x9f, 0x99, + 0x59, 0x7f, 0x9d, 0x2a, 0x0c, 0x9e, 0x1b, 0xfa, 0x9e, 0xb3, 0xe1, 0x18, 0x2e, 0x41, 0x5f, 0xd0, + 0x60, 0x66, 0xc7, 0x6e, 0xef, 0xa8, 0x97, 0x5b, 0xe2, 0x60, 0x2b, 0x25, 0xdb, 0xdf, 0x48, 0xe1, + 0x5a, 0xba, 0x74, 0x74, 0x58, 0x9b, 0x49, 0x97, 0xe2, 0x0c, 0x4d, 0xfd, 0x4b, 0x15, 0xb8, 0x24, + 0x7a, 0xe6, 0xd0, 0x93, 0xa6, 0xeb, 0x78, 0x07, 0x1d, 0xe2, 0x9e, 0xc7, 0x3d, 0x54, 0x34, 0x43, + 0x95, 0xc2, 0x19, 0xea, 0x64, 0x66, 0x68, 0xa8, 0xcc, 0x0c, 0xc9, 0x85, 0x7c, 0x8f, 0x59, 0xfa, + 0x73, 0x0d, 0xe6, 0xf2, 0xc6, 0xe2, 0x1c, 0x74, 0xa0, 0x4e, 0x52, 0x07, 0xba, 0x51, 0x56, 0xa9, + 0x4d, 0x77, 0xbd, 0x40, 0x17, 0xfa, 0x49, 0x05, 0xae, 0xc4, 0xd5, 0x9b, 0x6e, 0x10, 0x1a, 0x8e, + 0xc3, 0xcd, 0x3c, 0x67, 0x3f, 0xef, 0xdd, 0x84, 0x2a, 0xbb, 0x3e, 0xd8, 0xa7, 0xaa, 0x7d, 0x2f, + 0xb4, 0x34, 0xef, 0xa7, 0x2c, 0xcd, 0x1b, 0xa7, 0x48, 0xb3, 0xbf, 0xd1, 0xf9, 0x7f, 0x6b, 0x30, + 0x9f, 0xdf, 0xf0, 0x1c, 0x16, 0x95, 0x97, 0x5c, 0x54, 0x1f, 0x3d, 0xbd, 0xaf, 0x2e, 0x58, 0x56, + 0xff, 0xa2, 0x52, 0xf4, 0xb5, 0x4c, 0xd9, 0xde, 0x86, 0x0b, 0x54, 0x0b, 0x0a, 0x42, 0x61, 0x12, + 0x3d, 0x99, 0xaf, 0x40, 0x64, 0x23, 0xba, 0x80, 0x93, 0x38, 0x70, 0x1a, 0x29, 0x5a, 0x87, 0x31, + 0xaa, 0xfa, 0x50, 0xfc, 0x95, 0xe3, 0xe3, 0x97, 0xa7, 0x51, 0x8b, 0xb7, 0xc5, 0x11, 0x12, 0xf4, + 0x73, 0x30, 0x65, 0xc9, 0x1d, 0x75, 0x8f, 0x8b, 0xc2, 0x34, 0x56, 0x66, 0xbc, 0x6e, 0xa8, 0xad, + 0x71, 0x12, 0x99, 0xfe, 0x57, 0x1a, 0x3c, 0xd8, 0x6f, 0x6d, 0xa1, 0x57, 0x00, 0xcc, 0x48, 0xbc, + 0xe0, 0xae, 0x22, 0x25, 0xcd, 0xdb, 0x52, 0x48, 0x89, 0x37, 0xa8, 0x2c, 0x0a, 0xb0, 0x42, 0x24, + 0xe7, 0xfe, 0xb1, 0x72, 0x46, 0xf7, 0x8f, 0xfa, 0xff, 0xd1, 0x54, 0x56, 0xa4, 0xce, 0xed, 0x9b, + 0x8d, 0x15, 0xa9, 0x7d, 0x2f, 0xb4, 0xaf, 0xfd, 0xa7, 0x0a, 0x3c, 0x9c, 0xdf, 0x44, 0x39, 0x7b, + 0x3f, 0x02, 0xa3, 0x5d, 0xee, 0xcf, 0x33, 0xc4, 0xce, 0xc6, 0x47, 0x29, 0x67, 0xe1, 0xde, 0x36, + 0x77, 0x0f, 0x6b, 0xf3, 0x79, 0x8c, 0x5e, 0xf8, 0xe9, 0x88, 0x76, 0xc8, 0x4e, 0x59, 0x19, 0xb8, + 0xf4, 0xf7, 0xee, 0x63, 0x32, 0x17, 0x63, 0x8b, 0x38, 0xc7, 0x36, 0x2c, 0x7c, 0x46, 0x83, 0xe9, + 0xc4, 0x8a, 0x0e, 0xe6, 0x46, 0xd8, 0x1a, 0x2d, 0x75, 0xf5, 0x93, 0xd8, 0x2a, 0xf1, 0xc9, 0x9d, + 0x28, 0x0e, 0x70, 0x8a, 0x60, 0x8a, 0xcd, 0xaa, 0xa3, 0xfa, 0xa6, 0x63, 0xb3, 0x6a, 0xe7, 0x0b, + 0xd8, 0xec, 0xaf, 0x56, 0x8a, 0xbe, 0x96, 0xb1, 0xd9, 0x3b, 0x30, 0x1e, 0x79, 0x56, 0x46, 0xec, + 0x62, 0x65, 0xd0, 0x3e, 0x71, 0x74, 0xb1, 0xdb, 0x43, 0x54, 0x12, 0xe0, 0x98, 0x16, 0xfa, 0x9c, + 0x06, 0x10, 0x4f, 0x8c, 0xd8, 0x54, 0x9b, 0xa7, 0x37, 0x1c, 0x8a, 0x58, 0x33, 0x4d, 0xb7, 0xb4, + 0xb2, 0x28, 0x14, 0xba, 0xfa, 0xb7, 0x87, 0x00, 0x65, 0xfb, 0x4e, 0xc5, 0xcd, 0x5d, 0xdb, 0xb5, + 0xd2, 0x0a, 0xc1, 0x4d, 0xdb, 0xb5, 0x30, 0x83, 0x1c, 0x43, 0x20, 0x7d, 0x1a, 0x2e, 0xb4, 0x1d, + 0x6f, 0xcb, 0x70, 0x9c, 0x03, 0xe1, 0xac, 0x29, 0xdc, 0xfe, 0x2e, 0xd2, 0x83, 0xe9, 0x7a, 0x12, + 0x84, 0xd3, 0x75, 0x51, 0x17, 0x66, 0x7c, 0xaa, 0xca, 0x9a, 0xb6, 0xc3, 0x54, 0x27, 0xaf, 0x17, + 0x96, 0xb4, 0x95, 0x30, 0xf1, 0x1e, 0xa7, 0x70, 0xe1, 0x0c, 0x76, 0xf4, 0x76, 0x18, 0xeb, 0xfa, + 0x76, 0xc7, 0xf0, 0x0f, 0x98, 0x72, 0x56, 0x5d, 0x9a, 0xa0, 0x27, 0xdc, 0x06, 0x2f, 0xc2, 0x11, + 0x0c, 0xfd, 0x3c, 0x8c, 0x3b, 0xf6, 0x36, 0x31, 0x0f, 0x4c, 0x87, 0x08, 0xe3, 0xc6, 0xad, 0xd3, + 0x59, 0x32, 0xab, 0x11, 0x5a, 0x71, 0xa5, 0x1a, 0xfd, 0xc4, 0x31, 0x41, 0xfd, 0xb5, 0x0a, 0x3c, + 0xd0, 0xa7, 0x25, 0xc2, 0x74, 0x41, 0x8b, 0x0f, 0x13, 0xd3, 0xf7, 0x1e, 0xbe, 0x08, 0x45, 0xe1, + 0xdd, 0xc3, 0xda, 0xdb, 0xfa, 0x20, 0x68, 0xd1, 0xf5, 0x43, 0xda, 0x07, 0x38, 0x46, 0x83, 0x9a, + 0x30, 0x6a, 0xc5, 0x66, 0xbc, 0xf1, 0xa5, 0xc7, 0x29, 0x8b, 0xe5, 0x86, 0xb6, 0xe3, 0x62, 0x13, + 0x08, 0xd0, 0x2a, 0x8c, 0xf1, 0xdb, 0x53, 0x22, 0xd8, 0xf5, 0x13, 0x4c, 0xa7, 0xe5, 0x45, 0xc7, + 0x45, 0x16, 0xa1, 0xd0, 0xff, 0xbf, 0x06, 0x63, 0x75, 0xcf, 0x27, 0x8d, 0xf5, 0x16, 0x3a, 0x80, + 0x09, 0xc5, 0x4f, 0x5b, 0xb0, 0xae, 0x92, 0x7b, 0x99, 0x61, 0x5c, 0x8c, 0xb1, 0x45, 0x3e, 0x9e, + 0xb2, 0x00, 0xab, 0xb4, 0xd0, 0x2b, 0x74, 0xcc, 0xef, 0xf8, 0x76, 0x48, 0x09, 0x0f, 0x72, 0xe9, + 0xc4, 0x09, 0xe3, 0x08, 0x17, 0x5f, 0x06, 0xf2, 0x27, 0x8e, 0xa9, 0xe8, 0x1b, 0x74, 0xdb, 0xa6, + 0xbb, 0x89, 0x9e, 0x82, 0xe1, 0x8e, 0x67, 0x45, 0xf3, 0xfe, 0x8e, 0x68, 0x53, 0xae, 0x79, 0x16, + 0x1d, 0xdb, 0x2b, 0xd9, 0x16, 0xcc, 0x34, 0xc6, 0xda, 0xe8, 0xeb, 0x30, 0x93, 0xa6, 0x8f, 0x9e, + 0x82, 0x69, 0xd3, 0xeb, 0x74, 0x3c, 0xb7, 0xd5, 0xdb, 0xde, 0xb6, 0xf7, 0x49, 0xc2, 0xf9, 0xb6, + 0x9e, 0x80, 0xe0, 0x54, 0x4d, 0xfd, 0x1b, 0x1a, 0x0c, 0xd1, 0x79, 0xd1, 0x61, 0xd4, 0xf2, 0x3a, + 0x86, 0xed, 0x8a, 0x5e, 0x31, 0xd7, 0xe0, 0x06, 0x2b, 0xc1, 0x02, 0x82, 0xba, 0x30, 0x1e, 0x49, + 0x3a, 0x03, 0x39, 0x80, 0x34, 0xd6, 0x5b, 0xd2, 0x69, 0x4e, 0xb2, 0xdf, 0xa8, 0x24, 0xc0, 0x31, + 0x11, 0xdd, 0x80, 0xd9, 0xc6, 0x7a, 0xab, 0xe9, 0x9a, 0x4e, 0xcf, 0x22, 0xcb, 0xfb, 0xec, 0x0f, + 0x65, 0x00, 0x36, 0x2f, 0x11, 0xdf, 0xc9, 0x18, 0x80, 0xa8, 0x84, 0x23, 0x18, 0xad, 0x46, 0x78, + 0x0b, 0xe1, 0x21, 0xcb, 0xaa, 0x09, 0x24, 0x38, 0x82, 0xe9, 0x3f, 0xac, 0xc0, 0x84, 0xd2, 0x21, + 0xe4, 0xc0, 0x18, 0xff, 0xdc, 0xc8, 0x41, 0x6d, 0xb9, 0xe4, 0x27, 0x26, 0x7b, 0xcd, 0xa9, 0xf3, + 0x01, 0x0d, 0x70, 0x44, 0x42, 0x65, 0x66, 0x95, 0x3e, 0xcc, 0x6c, 0x01, 0x80, 0xbb, 0xe2, 0x31, + 0xbf, 0x0a, 0xbe, 0x25, 0xd9, 0x79, 0xd1, 0x92, 0xa5, 0x58, 0xa9, 0x81, 0x1e, 0x14, 0x6c, 0x9f, + 0x7b, 0x60, 0x54, 0x53, 0x2c, 0x7f, 0x1b, 0x46, 0x5e, 0xf5, 0x5c, 0x12, 0x88, 0x8b, 0xa7, 0x53, + 0xfa, 0xc0, 0x71, 0x7a, 0xa8, 0xbf, 0x48, 0xf1, 0x62, 0x8e, 0x5e, 0xff, 0x75, 0x0d, 0xa0, 0x61, + 0x84, 0x06, 0xbf, 0x27, 0x39, 0x86, 0x93, 0xf3, 0x83, 0x89, 0xd3, 0xaa, 0x9a, 0x71, 0xfc, 0x1c, + 0x0e, 0xec, 0x57, 0xa3, 0xcf, 0x97, 0x52, 0x30, 0xc7, 0xde, 0xb2, 0x5f, 0x25, 0x98, 0xc1, 0xd1, + 0x3b, 0x61, 0x9c, 0xb8, 0xa6, 0x7f, 0xd0, 0x0d, 0x89, 0xc5, 0x46, 0xa0, 0xca, 0x77, 0xe8, 0x72, + 0x54, 0x88, 0x63, 0xb8, 0xfe, 0x38, 0x24, 0x55, 0x99, 0x7b, 0xf7, 0x52, 0xbf, 0xab, 0xc1, 0xcc, + 0xf2, 0x7e, 0xd7, 0xf6, 0x99, 0xe3, 0x33, 0xf1, 0xa9, 0x5e, 0x80, 0x1e, 0x83, 0xb1, 0x3d, 0xfe, + 0xaf, 0x68, 0x29, 0x75, 0x2f, 0x51, 0x03, 0x47, 0x70, 0xb4, 0x0d, 0xd3, 0x84, 0x35, 0x67, 0x02, + 0x80, 0x11, 0x96, 0x71, 0x18, 0xe1, 0x7e, 0xf5, 0x09, 0x2c, 0x38, 0x85, 0x15, 0xb5, 0x60, 0xda, + 0x74, 0x8c, 0x20, 0xb0, 0xb7, 0x6d, 0x33, 0x76, 0xe9, 0x19, 0x5f, 0x7a, 0x27, 0x63, 0x0b, 0x09, + 0xc8, 0xdd, 0xc3, 0xda, 0x65, 0xd1, 0xcf, 0x24, 0x00, 0xa7, 0x50, 0xe8, 0xdf, 0xd1, 0x60, 0x5c, + 0x6a, 0x43, 0x6f, 0x28, 0x8b, 0xe4, 0x09, 0x5e, 0x2e, 0xac, 0xc2, 0x8c, 0xb8, 0xf0, 0xd9, 0xf4, + 0x1c, 0xe2, 0x1b, 0xae, 0x49, 0xd0, 0x07, 0x12, 0x9f, 0xf2, 0x48, 0xca, 0x88, 0x7e, 0x29, 0x5d, + 0x3f, 0xfe, 0x44, 0x3d, 0x80, 0xea, 0x75, 0xb1, 0x59, 0xd0, 0x3c, 0x54, 0xec, 0x48, 0x1e, 0x03, + 0x81, 0xa3, 0xd2, 0x6c, 0xe0, 0x8a, 0x6d, 0xc9, 0x95, 0x55, 0x29, 0x5c, 0xff, 0xca, 0x22, 0x1a, + 0xea, 0xbf, 0x88, 0xf4, 0x6f, 0x6b, 0x30, 0x71, 0xc3, 0xde, 0x22, 0x3e, 0xbf, 0x4e, 0x60, 0xdc, + 0x2e, 0xf1, 0x04, 0x67, 0x22, 0xef, 0xf9, 0x0d, 0xda, 0x87, 0xf1, 0xc0, 0xdc, 0x21, 0x56, 0xcf, + 0x91, 0xde, 0x26, 0xd7, 0xcb, 0x19, 0x67, 0x25, 0xe9, 0x96, 0xc0, 0xa7, 0x38, 0x10, 0x47, 0x14, + 0x70, 0x4c, 0x4c, 0xff, 0x24, 0x5c, 0xcc, 0x69, 0x84, 0x6a, 0x30, 0x12, 0x84, 0x86, 0x1f, 0x8a, + 0x31, 0x63, 0x4c, 0x84, 0xf9, 0x6b, 0x61, 0x5e, 0x8e, 0xee, 0x87, 0x21, 0xe2, 0x5a, 0x62, 0xd0, + 0xc6, 0x8e, 0x0e, 0x6b, 0x43, 0xcb, 0xae, 0x85, 0x69, 0x19, 0x9d, 0x70, 0xc7, 0x4b, 0x2c, 0x6d, + 0x36, 0xe1, 0xab, 0xa2, 0x0c, 0x4b, 0x28, 0x33, 0xa7, 0xa7, 0x2d, 0xc7, 0xe8, 0x35, 0x0d, 0x66, + 0xb6, 0x53, 0xd3, 0x3a, 0x88, 0xc1, 0x3a, 0xbd, 0x44, 0x96, 0xe6, 0xc4, 0x80, 0x64, 0x16, 0x1b, + 0xce, 0xd0, 0xd5, 0xff, 0xf5, 0x30, 0x3c, 0x74, 0xc3, 0xf3, 0xed, 0x57, 0x3d, 0x37, 0x34, 0x9c, + 0x0d, 0xcf, 0x8a, 0x2f, 0x8e, 0xc5, 0xf2, 0xfe, 0xbc, 0x06, 0xf7, 0x99, 0xdd, 0x1e, 0x77, 0x8a, + 0x8a, 0xee, 0xf3, 0x36, 0x88, 0x6f, 0x7b, 0x65, 0xef, 0x8f, 0xd9, 0x93, 0x91, 0xfa, 0xc6, 0xed, + 0x3c, 0x94, 0xb8, 0x88, 0x16, 0xbb, 0xc6, 0xb6, 0xbc, 0x3b, 0x2e, 0xeb, 0x5c, 0x2b, 0x64, 0xa3, + 0xf9, 0x6a, 0x3c, 0x09, 0x25, 0xaf, 0xb1, 0x1b, 0xb9, 0x18, 0x71, 0x01, 0x25, 0xf4, 0x69, 0xb8, + 0x6c, 0xf3, 0xce, 0x61, 0x62, 0x58, 0xb6, 0x4b, 0x82, 0x80, 0x5d, 0xe6, 0x0e, 0x72, 0x4f, 0xdb, + 0xcc, 0x43, 0x88, 0xf3, 0xe9, 0xa0, 0x97, 0x00, 0x82, 0x03, 0xd7, 0x14, 0xe3, 0x3f, 0x52, 0x8a, + 0x2a, 0x3f, 0xc1, 0x25, 0x16, 0xac, 0x60, 0xa4, 0x87, 0x58, 0x28, 0x17, 0xe5, 0x28, 0xbb, 0xf3, + 0x65, 0x87, 0x58, 0xbc, 0x86, 0x62, 0xb8, 0xfe, 0xcf, 0x34, 0x18, 0x13, 0x0f, 0xc9, 0xd0, 0x3b, + 0x52, 0x82, 0x9c, 0x34, 0xe3, 0xa6, 0x84, 0xb9, 0x03, 0x66, 0x82, 0x13, 0x42, 0xbc, 0x60, 0xca, + 0xa5, 0x24, 0x01, 0x41, 0x38, 0xd6, 0x08, 0x12, 0xa6, 0xb8, 0x48, 0x4b, 0x50, 0x88, 0xe9, 0xdf, + 0xd4, 0x60, 0x36, 0xd3, 0xea, 0x18, 0xca, 0xec, 0x39, 0xde, 0x6e, 0x7d, 0x77, 0x12, 0xd8, 0x9b, + 0xc1, 0xc5, 0x8d, 0x66, 0x8b, 0xf8, 0x7b, 0x72, 0x13, 0x52, 0x9e, 0x11, 0x7b, 0x31, 0x89, 0x5e, + 0x0c, 0xc0, 0x33, 0x6e, 0xa6, 0x70, 0xc5, 0x3c, 0x23, 0x0d, 0xc1, 0x19, 0xba, 0xe8, 0x4b, 0x1a, + 0xcc, 0x18, 0xc9, 0x37, 0x83, 0x11, 0x53, 0x2f, 0xe5, 0xe1, 0x9e, 0x7a, 0x7f, 0x18, 0xf7, 0x25, + 0x05, 0x08, 0x70, 0x86, 0x2c, 0x7a, 0x0f, 0x4c, 0x1a, 0x5d, 0x7b, 0xb1, 0x67, 0xd9, 0xc4, 0x35, + 0xe5, 0xf3, 0x31, 0x66, 0x68, 0x5b, 0xdc, 0x68, 0xca, 0x72, 0x9c, 0xa8, 0x25, 0x9f, 0xfa, 0x89, + 0x81, 0x1c, 0x1e, 0xf0, 0xa9, 0x9f, 0x18, 0xc3, 0xf8, 0xa9, 0x9f, 0x18, 0x3a, 0x95, 0x08, 0xfa, + 0x38, 0xdc, 0xcf, 0x4f, 0xc3, 0x25, 0x23, 0xb0, 0xcd, 0xc5, 0x5e, 0xb8, 0x43, 0xdc, 0x30, 0x92, + 0x90, 0xb8, 0x45, 0x81, 0x39, 0xb4, 0x2c, 0x17, 0x55, 0xc2, 0xc5, 0xed, 0x91, 0x0b, 0xe0, 0xd9, + 0x96, 0x29, 0xbe, 0x87, 0x9b, 0x1d, 0x4a, 0xf9, 0x1b, 0xdd, 0x6a, 0x36, 0xea, 0xe2, 0x73, 0x18, + 0x9b, 0x88, 0x7f, 0x63, 0x85, 0x02, 0x7a, 0x5d, 0x83, 0x29, 0xb1, 0xc8, 0x05, 0xcd, 0x31, 0x36, + 0xff, 0x2f, 0x96, 0x5d, 0x8c, 0xa9, 0x05, 0xbf, 0x80, 0x55, 0xe4, 0xdc, 0x67, 0x5f, 0x7a, 0xd8, + 0x25, 0x60, 0x38, 0xd9, 0x0f, 0xf4, 0x0f, 0x35, 0xb8, 0x14, 0x10, 0x7f, 0xcf, 0x36, 0xc9, 0xa2, + 0x69, 0x7a, 0x3d, 0x37, 0x9a, 0xe4, 0x6a, 0xf9, 0x67, 0x57, 0xad, 0x1c, 0x7c, 0xdc, 0xb5, 0x23, + 0x0f, 0x82, 0x73, 0xe9, 0xd3, 0xf3, 0xeb, 0xc2, 0x1d, 0x23, 0x34, 0x77, 0xea, 0x86, 0xb9, 0xc3, + 0xf4, 0x06, 0xee, 0xcd, 0x51, 0x72, 0xd3, 0x3c, 0x9f, 0x44, 0xc5, 0xcd, 0x66, 0xa9, 0x42, 0x9c, + 0x26, 0x88, 0x02, 0xa8, 0xfa, 0xe4, 0x95, 0x1e, 0x09, 0x98, 0xcb, 0x07, 0x25, 0xde, 0x1c, 0x78, + 0xc6, 0xb0, 0x40, 0xc8, 0xa5, 0xa0, 0xe8, 0x17, 0x96, 0x84, 0x50, 0x1b, 0x1e, 0xe2, 0x2b, 0x77, + 0xd1, 0xf5, 0xdc, 0x83, 0x8e, 0xd7, 0x0b, 0x52, 0xab, 0x7f, 0x82, 0xad, 0x7e, 0xe6, 0xd4, 0xb2, + 0xdc, 0xaf, 0x22, 0xee, 0x8f, 0x07, 0xbd, 0x00, 0x55, 0xb2, 0x47, 0xdc, 0x70, 0x73, 0x73, 0x75, + 0x6e, 0xb2, 0xd4, 0xd1, 0xc8, 0x3e, 0x61, 0x59, 0xe0, 0xc0, 0x12, 0x1b, 0xf2, 0x60, 0xcc, 0xf1, + 0xda, 0x6d, 0xdb, 0x6d, 0xcf, 0x4d, 0x95, 0x5f, 0x47, 0x89, 0x61, 0x5b, 0xe5, 0xf8, 0xb8, 0xc0, + 0x2c, 0x7e, 0xe0, 0x88, 0xca, 0xfc, 0x47, 0x00, 0x65, 0xb7, 0x00, 0x9a, 0x81, 0xa1, 0x5d, 0xc2, + 0xbd, 0x1b, 0xc6, 0x31, 0xfd, 0x17, 0x5d, 0x82, 0x91, 0x3d, 0xc3, 0xe9, 0x71, 0xe9, 0xbe, 0x8a, + 0xf9, 0x8f, 0xa7, 0x2a, 0x1f, 0xd0, 0xf4, 0x5f, 0xd6, 0xe0, 0x52, 0x1e, 0x41, 0x7a, 0xc4, 0xef, + 0x11, 0x7f, 0xcb, 0x0b, 0x22, 0x47, 0x89, 0x11, 0x7e, 0xc4, 0x3f, 0x17, 0x15, 0xe2, 0x18, 0x8e, + 0x9a, 0x70, 0x71, 0x27, 0x0c, 0xbb, 0x8b, 0xa6, 0x49, 0x82, 0x40, 0xd6, 0x60, 0xd4, 0x46, 0xf8, + 0x13, 0xf7, 0x1b, 0x9b, 0x9b, 0x1b, 0x29, 0x30, 0xce, 0x6b, 0xa3, 0xff, 0xbe, 0x06, 0x97, 0x73, + 0x17, 0x0e, 0xc2, 0x70, 0x85, 0x79, 0x43, 0xb9, 0x6b, 0xbd, 0xd0, 0x08, 0x6d, 0xb7, 0xdd, 0x74, + 0xb7, 0x1d, 0xbb, 0xbd, 0x13, 0x8a, 0xee, 0x31, 0x49, 0x6d, 0x2d, 0xb7, 0x06, 0x2e, 0x68, 0x49, + 0x3b, 0xde, 0x31, 0xf6, 0x33, 0x08, 0x95, 0x8e, 0xaf, 0x65, 0xc1, 0x38, 0xaf, 0x8d, 0xfe, 0xf5, + 0x11, 0x78, 0x80, 0x76, 0x3c, 0x16, 0x1a, 0xd6, 0x0c, 0xd7, 0x68, 0xbf, 0x31, 0x0f, 0xe7, 0x6f, + 0x6b, 0x70, 0xdf, 0x4e, 0xbe, 0x40, 0x2f, 0xc4, 0x96, 0x67, 0x4b, 0x29, 0x5e, 0xfd, 0x74, 0x04, + 0xbe, 0x75, 0xfb, 0x56, 0xc1, 0x45, 0x9d, 0x42, 0x1f, 0x81, 0x19, 0xd7, 0xb3, 0x48, 0xbd, 0xd9, + 0xc0, 0x6b, 0x46, 0xb0, 0xdb, 0x8a, 0x4c, 0x2d, 0x23, 0xdc, 0x32, 0xbf, 0x9e, 0x82, 0xe1, 0x4c, + 0x6d, 0xb4, 0x07, 0xa8, 0xeb, 0x59, 0xcb, 0x7b, 0xb6, 0x19, 0x39, 0x6d, 0x95, 0xbf, 0x0d, 0x60, + 0xaf, 0x53, 0x36, 0x32, 0xd8, 0x70, 0x0e, 0x05, 0xa6, 0x91, 0xd0, 0xce, 0xac, 0x79, 0xae, 0x1d, + 0x7a, 0x3e, 0xf3, 0xb6, 0x1b, 0x48, 0x30, 0x67, 0xeb, 0x7c, 0x3d, 0x17, 0x23, 0x2e, 0xa0, 0xa4, + 0xff, 0x5f, 0x0d, 0x2e, 0xd0, 0x65, 0xb1, 0xe1, 0x7b, 0xfb, 0x07, 0x6f, 0xc4, 0x05, 0xf9, 0x98, + 0xb0, 0x3a, 0x73, 0x4d, 0xfa, 0xb2, 0x62, 0x71, 0x1e, 0x67, 0x7d, 0x8e, 0x8d, 0xcc, 0xaa, 0x31, + 0x61, 0xa8, 0xd8, 0x98, 0xa0, 0xbf, 0x5e, 0xe1, 0x42, 0x72, 0xa4, 0xcc, 0xbf, 0x21, 0xf7, 0xe1, + 0xfb, 0x61, 0x8a, 0x96, 0xad, 0x19, 0xfb, 0x1b, 0x8d, 0xe7, 0x3c, 0x27, 0x72, 0x78, 0x64, 0x4e, + 0x0c, 0x37, 0x55, 0x00, 0x4e, 0xd6, 0x43, 0x4f, 0xc1, 0x58, 0x97, 0x3f, 0xab, 0x10, 0xc6, 0x85, + 0x87, 0xb9, 0x69, 0x96, 0x15, 0xdd, 0x3d, 0xac, 0xcd, 0x8a, 0xcf, 0xb6, 0xdd, 0xb6, 0x28, 0xc4, + 0x51, 0x03, 0xfd, 0x2b, 0x97, 0x80, 0x21, 0x77, 0x48, 0xf8, 0x46, 0x1c, 0x93, 0xc7, 0x61, 0xc2, + 0xec, 0xf6, 0xea, 0x2b, 0xad, 0x67, 0x7b, 0x5e, 0x68, 0x08, 0xcb, 0x33, 0x93, 0x9a, 0xeb, 0x1b, + 0xb7, 0xa3, 0x62, 0xac, 0xd6, 0xa1, 0xdc, 0xc1, 0xec, 0xf6, 0x04, 0xbf, 0xdd, 0x50, 0x6f, 0xf2, + 0x19, 0x77, 0xa8, 0x6f, 0xdc, 0x4e, 0xc0, 0x70, 0xa6, 0x36, 0xfa, 0x34, 0x4c, 0x12, 0xb1, 0x71, + 0x6f, 0x18, 0xbe, 0x25, 0xf8, 0x42, 0x69, 0xb1, 0x47, 0x0e, 0x6d, 0xc4, 0x0d, 0xb8, 0xb2, 0xb1, + 0xac, 0x90, 0xc0, 0x09, 0x82, 0x4c, 0xf0, 0x17, 0xbf, 0xe9, 0x2c, 0x7b, 0x56, 0x9a, 0x51, 0x8c, + 0x08, 0xc1, 0xbf, 0xa8, 0x12, 0x2e, 0x6e, 0x8f, 0x7e, 0x5b, 0x83, 0x2b, 0x12, 0x6a, 0xbb, 0x76, + 0xa7, 0xd7, 0xc1, 0xc4, 0x74, 0x0c, 0xbb, 0x23, 0xb4, 0x80, 0xe7, 0x4f, 0xed, 0x43, 0x93, 0xe8, + 0x39, 0xb3, 0xca, 0x87, 0xe1, 0x82, 0x2e, 0xa1, 0x6f, 0x6a, 0xf0, 0x70, 0x04, 0xda, 0xa0, 0x7a, + 0x78, 0xcf, 0x27, 0xb1, 0xbb, 0xad, 0x18, 0x92, 0xb1, 0x52, 0xbc, 0xf3, 0x91, 0xa3, 0xc3, 0xda, + 0xc3, 0xcb, 0xf7, 0xc0, 0x8d, 0xef, 0x49, 0x5d, 0x5d, 0x2e, 0x2d, 0x6f, 0x3b, 0x14, 0x6a, 0xc3, + 0x59, 0x2d, 0x17, 0x4a, 0x02, 0x27, 0x08, 0xa2, 0xdf, 0xd1, 0xe0, 0x3e, 0xb5, 0x40, 0x5d, 0x2d, + 0x5c, 0x5f, 0x78, 0xe1, 0xd4, 0x3a, 0x93, 0xc2, 0xcf, 0x2d, 0x73, 0x05, 0x40, 0x5c, 0xd4, 0x2b, + 0xca, 0xb6, 0x3b, 0x6c, 0x61, 0x72, 0x9d, 0x62, 0x84, 0xb3, 0x6d, 0xbe, 0x56, 0x03, 0x1c, 0xc1, + 0xa8, 0xaa, 0xde, 0xf5, 0xac, 0x0d, 0xdb, 0x0a, 0x56, 0xed, 0x8e, 0x1d, 0x32, 0xa9, 0x7f, 0x88, + 0x0f, 0xc7, 0x86, 0x67, 0x6d, 0x34, 0x1b, 0xbc, 0x1c, 0x27, 0x6a, 0xb1, 0x87, 0x23, 0x76, 0xc7, + 0x68, 0x93, 0x8d, 0x9e, 0xe3, 0x6c, 0xf8, 0x1e, 0x33, 0xdf, 0x34, 0x88, 0x61, 0x39, 0xb6, 0x4b, + 0x4a, 0x4a, 0xf9, 0x6c, 0xbb, 0x35, 0x8b, 0x90, 0xe2, 0x62, 0x7a, 0x68, 0x01, 0x60, 0xdb, 0xb0, + 0x9d, 0xd6, 0x1d, 0xa3, 0x7b, 0xcb, 0x65, 0xaa, 0x40, 0x95, 0xeb, 0xc9, 0x2b, 0xb2, 0x14, 0x2b, + 0x35, 0xe8, 0x6a, 0xa2, 0x5c, 0x10, 0x13, 0xfe, 0x60, 0x79, 0x6e, 0xfa, 0x94, 0x56, 0x53, 0x84, + 0x90, 0x0f, 0xdf, 0x4d, 0x85, 0x04, 0x4e, 0x10, 0x44, 0x9f, 0xd7, 0x60, 0x3a, 0x38, 0x08, 0x42, + 0xd2, 0x91, 0x7d, 0xb8, 0x70, 0xda, 0x7d, 0x60, 0x86, 0xad, 0x56, 0x82, 0x08, 0x4e, 0x11, 0x45, + 0x06, 0x3c, 0xc0, 0x46, 0xf5, 0x7a, 0xfd, 0x86, 0xdd, 0xde, 0x91, 0xcf, 0x41, 0x36, 0x88, 0x6f, + 0x12, 0x37, 0x9c, 0x9b, 0x61, 0xeb, 0x86, 0xbd, 0x87, 0x6d, 0x16, 0x57, 0xc3, 0xfd, 0x70, 0xa0, + 0x97, 0x60, 0x5e, 0x80, 0x57, 0xbd, 0x3b, 0x19, 0x0a, 0xb3, 0x8c, 0x02, 0x7b, 0xa3, 0xd3, 0x2c, + 0xac, 0x85, 0xfb, 0x60, 0xa0, 0x1a, 0x45, 0x40, 0x7c, 0x66, 0x97, 0x26, 0x72, 0xf1, 0x04, 0x73, + 0x88, 0x2d, 0x02, 0xa6, 0x51, 0xb4, 0xb2, 0x60, 0x9c, 0xd7, 0x06, 0x3d, 0x2d, 0xdd, 0x37, 0x0f, + 0x68, 0xc1, 0xb3, 0x1b, 0xad, 0xb9, 0x8b, 0xac, 0x7f, 0x17, 0x15, 0xaf, 0xcc, 0x08, 0x84, 0xd3, + 0x75, 0xa9, 0x6c, 0x11, 0x15, 0x2d, 0xf5, 0xfc, 0x20, 0x9c, 0xbb, 0xc4, 0x1a, 0x33, 0xd9, 0x02, + 0xab, 0x00, 0x9c, 0xac, 0x87, 0x9e, 0x82, 0xe9, 0x80, 0x98, 0xa6, 0xd7, 0xe9, 0x36, 0xc8, 0xb6, + 0xd1, 0x73, 0xc2, 0xb9, 0xcb, 0xac, 0xf7, 0x7c, 0x06, 0x13, 0x10, 0x9c, 0xaa, 0x89, 0x0e, 0xe0, + 0xa2, 0x7c, 0xbe, 0xbb, 0xea, 0xb5, 0xd7, 0x8c, 0x7d, 0x26, 0xaa, 0x5f, 0xb9, 0xf7, 0x0e, 0x5c, + 0x88, 0xfc, 0x9a, 0x16, 0x9e, 0xed, 0x19, 0x6e, 0x68, 0x87, 0x07, 0x7c, 0xb8, 0xea, 0x59, 0x74, + 0x38, 0x8f, 0x06, 0x5a, 0x85, 0x4b, 0xa9, 0xe2, 0x15, 0xdb, 0x21, 0xc1, 0xdc, 0x7d, 0xec, 0xb3, + 0x99, 0x21, 0xa6, 0x9e, 0x03, 0xc7, 0xb9, 0xad, 0xd0, 0x2d, 0xb8, 0xdc, 0xf5, 0xbd, 0x90, 0x98, + 0xe1, 0x4d, 0x2a, 0x9e, 0x38, 0xe2, 0x03, 0x83, 0xb9, 0x39, 0x36, 0x16, 0xcc, 0x26, 0xbf, 0x91, + 0x57, 0x01, 0xe7, 0xb7, 0x43, 0x5f, 0xd7, 0xe0, 0x6a, 0x10, 0xfa, 0xc4, 0xe8, 0xd8, 0x6e, 0xbb, + 0xee, 0xb9, 0x2e, 0x61, 0x6c, 0xb2, 0x69, 0xc5, 0xae, 0x49, 0xf7, 0x97, 0xe2, 0x53, 0xfa, 0xd1, + 0x61, 0xed, 0x6a, 0xab, 0x2f, 0x66, 0x7c, 0x0f, 0xca, 0xfa, 0x61, 0x85, 0x6b, 0xdd, 0x19, 0xde, + 0x4f, 0x17, 0x61, 0x87, 0x74, 0x3c, 0xff, 0x60, 0x31, 0x8a, 0xa6, 0x25, 0x6c, 0xe0, 0x6c, 0x11, + 0xae, 0x25, 0x41, 0x38, 0x5d, 0x97, 0x4a, 0x66, 0x6c, 0xb3, 0xac, 0xb4, 0xe2, 0xf6, 0x95, 0x58, + 0x32, 0x6b, 0xa6, 0x60, 0x38, 0x53, 0x1b, 0xd5, 0x61, 0x56, 0x94, 0x35, 0xa9, 0x72, 0x13, 0xac, + 0xf8, 0x24, 0x92, 0x79, 0xa9, 0x9a, 0x30, 0xdb, 0x4c, 0x03, 0x71, 0xb6, 0x3e, 0xfd, 0x0a, 0xfa, + 0x43, 0xed, 0xc5, 0x70, 0xfc, 0x15, 0xeb, 0x49, 0x10, 0x4e, 0xd7, 0x8d, 0xb4, 0xcf, 0x44, 0x17, + 0x46, 0xe2, 0xaf, 0x58, 0x4f, 0xc1, 0x70, 0xa6, 0xb6, 0xfe, 0x5f, 0x87, 0xe1, 0x6d, 0xc7, 0x90, + 0x97, 0x50, 0x27, 0x7f, 0xb8, 0x4f, 0xbe, 0x77, 0x8e, 0x37, 0x3d, 0xdd, 0x82, 0xe9, 0x39, 0x39, + 0xbd, 0xe3, 0x4e, 0x67, 0x50, 0x34, 0x9d, 0x27, 0x27, 0x79, 0xfc, 0xe9, 0xef, 0xe4, 0x4f, 0x7f, + 0xc9, 0x51, 0xbd, 0xe7, 0x72, 0xe9, 0x16, 0x2c, 0x97, 0x92, 0xa3, 0x7a, 0x8c, 0xe5, 0xf5, 0x67, + 0xc3, 0xf0, 0xc8, 0x71, 0x64, 0xb7, 0x92, 0xeb, 0x2b, 0x87, 0xeb, 0x9c, 0xe9, 0xfa, 0x2a, 0x72, + 0xc0, 0x3c, 0xc3, 0xf5, 0x95, 0x43, 0xf2, 0xac, 0xd7, 0x57, 0xd1, 0xa8, 0x9e, 0xd5, 0xfa, 0x2a, + 0x1a, 0xd5, 0x63, 0xac, 0xaf, 0xbf, 0x4c, 0x9f, 0x0f, 0x52, 0x64, 0x6b, 0xc2, 0x90, 0xd9, 0xed, + 0x95, 0x64, 0x52, 0xcc, 0x63, 0xa2, 0xbe, 0x71, 0x1b, 0x53, 0x1c, 0x08, 0xc3, 0x28, 0x5f, 0x3f, + 0x25, 0x59, 0x10, 0xf3, 0x0a, 0xe4, 0x4b, 0x12, 0x0b, 0x4c, 0x74, 0xa8, 0x48, 0x77, 0x87, 0x74, + 0x88, 0x6f, 0x38, 0xad, 0xd0, 0xf3, 0x8d, 0x76, 0x59, 0x6e, 0xc3, 0x86, 0x6a, 0x39, 0x85, 0x0b, + 0x67, 0xb0, 0xd3, 0x01, 0xe9, 0xda, 0x56, 0x49, 0xfe, 0xc2, 0x06, 0x64, 0xa3, 0xd9, 0xc0, 0x14, + 0x87, 0xfe, 0x4f, 0xc6, 0x41, 0x89, 0x50, 0x81, 0x3e, 0x0e, 0xf7, 0x1b, 0x8e, 0xe3, 0xdd, 0xd9, + 0xf0, 0xed, 0x3d, 0xdb, 0x21, 0x6d, 0x62, 0x49, 0x79, 0x26, 0x10, 0x7e, 0x35, 0x4c, 0x67, 0x59, + 0x2c, 0xaa, 0x84, 0x8b, 0xdb, 0xa3, 0xd7, 0x34, 0x98, 0x35, 0xd3, 0x51, 0x01, 0x06, 0xb9, 0x79, + 0xcf, 0x84, 0x18, 0xe0, 0xfb, 0x29, 0x53, 0x8c, 0xb3, 0x64, 0xd1, 0x2f, 0x68, 0xdc, 0x2e, 0x26, + 0x2f, 0x01, 0xc4, 0x9c, 0x5d, 0x3f, 0xa5, 0x8b, 0xc3, 0xd8, 0xc0, 0x16, 0x5f, 0x33, 0x24, 0x09, + 0xa2, 0x6f, 0x6a, 0x70, 0x79, 0x37, 0xcf, 0x9c, 0x2f, 0x66, 0xf6, 0x56, 0xd9, 0xae, 0x14, 0xdc, + 0x0f, 0x70, 0x89, 0x32, 0xb7, 0x02, 0xce, 0xef, 0x88, 0x1c, 0x25, 0x69, 0xe1, 0x14, 0x4c, 0xa0, + 0xf4, 0x28, 0xa5, 0x4c, 0xa5, 0xf1, 0x28, 0x49, 0x00, 0x4e, 0x12, 0x44, 0x5d, 0x18, 0xdf, 0x8d, + 0xcc, 0xca, 0xc2, 0x94, 0x54, 0x2f, 0x4b, 0x5d, 0xb1, 0x4d, 0xf3, 0xab, 0x26, 0x59, 0x88, 0x63, + 0x22, 0x68, 0x07, 0xc6, 0x76, 0x39, 0x23, 0x12, 0x26, 0xa0, 0xc5, 0x81, 0x55, 0x54, 0x6e, 0x89, + 0x10, 0x45, 0x38, 0x42, 0xaf, 0xfa, 0xbb, 0x55, 0xef, 0xe1, 0x34, 0xf9, 0x75, 0x0d, 0x2e, 0xef, + 0x11, 0x3f, 0xb4, 0xcd, 0xf4, 0x65, 0xca, 0x78, 0x79, 0x35, 0xfa, 0xb9, 0x3c, 0x84, 0x7c, 0x99, + 0xe4, 0x82, 0x70, 0x7e, 0x17, 0xa8, 0x52, 0xcd, 0x6d, 0xe2, 0xad, 0xd0, 0x08, 0x6d, 0x73, 0xd3, + 0xdb, 0x25, 0x2e, 0xfd, 0x58, 0x11, 0x9b, 0x19, 0x18, 0xe3, 0x60, 0x4a, 0xf5, 0x72, 0x71, 0x35, + 0xdc, 0x0f, 0x87, 0xfe, 0x13, 0x0d, 0x32, 0x96, 0x5d, 0xf4, 0x15, 0x0d, 0x26, 0xb7, 0x89, 0x11, + 0xf6, 0x7c, 0x72, 0xdd, 0x08, 0xe5, 0xd3, 0x98, 0xe7, 0x4e, 0xc3, 0xa0, 0xbc, 0xb0, 0xa2, 0x20, + 0xe6, 0x17, 0xff, 0x32, 0xba, 0x8d, 0x0a, 0xc2, 0x89, 0x1e, 0xcc, 0x3f, 0x03, 0xb3, 0x99, 0x86, + 0x27, 0xba, 0x2e, 0xfd, 0x37, 0x1a, 0xe4, 0x45, 0xeb, 0x46, 0x2f, 0xc1, 0x88, 0x61, 0x59, 0x32, + 0x98, 0xe7, 0x93, 0xe5, 0x1c, 0x5c, 0x2c, 0xf5, 0x05, 0x12, 0xfb, 0x89, 0x39, 0x5a, 0xb4, 0x02, + 0xc8, 0x48, 0xdc, 0x62, 0xaf, 0xc5, 0x2e, 0xfa, 0xec, 0x32, 0x6a, 0x31, 0x03, 0xc5, 0x39, 0x2d, + 0xf4, 0x7f, 0xa0, 0x01, 0xca, 0xc6, 0x43, 0x42, 0x3e, 0x54, 0xc5, 0x52, 0x8e, 0x66, 0xa9, 0x94, + 0xd9, 0x3f, 0xed, 0x77, 0x1c, 0xbf, 0xe2, 0x12, 0x05, 0x01, 0x96, 0x74, 0xf4, 0xbf, 0xd2, 0x20, + 0x0e, 0xf8, 0x87, 0xde, 0x0b, 0x13, 0x16, 0x09, 0x4c, 0xdf, 0xee, 0x86, 0xb1, 0x97, 0xb2, 0x8c, + 0x65, 0xd3, 0x88, 0x41, 0x58, 0xad, 0x87, 0x74, 0x18, 0x0d, 0x8d, 0x60, 0xb7, 0xd9, 0x10, 0x4a, + 0x25, 0x13, 0x01, 0x36, 0x59, 0x09, 0x16, 0x90, 0x38, 0xb6, 0xc1, 0xd0, 0x31, 0x62, 0x1b, 0xa0, + 0xed, 0x53, 0x08, 0xe4, 0x80, 0xee, 0x1d, 0xc4, 0x41, 0xff, 0xcd, 0x0a, 0x5c, 0xa0, 0x55, 0xd6, + 0x0c, 0xdb, 0x0d, 0x89, 0xcb, 0xbc, 0x7c, 0x4b, 0x0e, 0x42, 0x1b, 0xa6, 0xc2, 0x44, 0x8c, 0xb9, + 0x93, 0x7b, 0x6c, 0x4b, 0xaf, 0x99, 0x64, 0x64, 0xb9, 0x24, 0x5e, 0xf4, 0x24, 0x73, 0x87, 0x95, + 0xcf, 0x6e, 0xde, 0x16, 0x2d, 0x55, 0xca, 0x14, 0xc8, 0x5d, 0x11, 0x2c, 0x43, 0x46, 0x89, 0x64, + 0xa5, 0x98, 0xb7, 0x40, 0xef, 0x87, 0x29, 0xe1, 0x55, 0xca, 0x83, 0x54, 0x08, 0xf5, 0x9b, 0x9d, + 0x30, 0x2b, 0x2a, 0x00, 0x27, 0xeb, 0xe9, 0x3f, 0xa8, 0x40, 0x32, 0x16, 0x65, 0xd9, 0x51, 0xca, + 0x46, 0xe8, 0xa8, 0x9c, 0x59, 0x84, 0x8e, 0x77, 0xb1, 0x40, 0xce, 0x3c, 0x46, 0x3f, 0xbf, 0xa5, + 0x56, 0xc3, 0x2f, 0xf3, 0x08, 0xfb, 0xb2, 0x46, 0x3c, 0xac, 0xc3, 0x27, 0x1e, 0xd6, 0xf7, 0x0a, + 0xbf, 0xf0, 0x91, 0x44, 0x9c, 0x94, 0xc8, 0x2f, 0x7c, 0x36, 0xd1, 0x50, 0x71, 0x0a, 0xff, 0x9e, + 0x06, 0x63, 0x22, 0x08, 0xd8, 0x31, 0xbc, 0xe4, 0xb7, 0x61, 0x84, 0xa9, 0x3c, 0x83, 0x48, 0x83, + 0xad, 0x1d, 0xcf, 0x0b, 0x13, 0xa1, 0xd0, 0x98, 0x33, 0x35, 0xfb, 0x17, 0x73, 0xf4, 0xcc, 0x4b, + 0xcf, 0x37, 0x77, 0xec, 0x90, 0x98, 0x61, 0x14, 0x60, 0x29, 0xf2, 0xd2, 0x53, 0xca, 0x71, 0xa2, + 0x96, 0xfe, 0x8d, 0x61, 0x78, 0x58, 0x20, 0xce, 0x88, 0x48, 0x92, 0xc1, 0x1d, 0xc0, 0x45, 0x31, + 0xb7, 0x0d, 0xdf, 0xb0, 0xe5, 0xed, 0x7f, 0x39, 0xd5, 0x57, 0xf8, 0x85, 0x64, 0xd0, 0xe1, 0x3c, + 0x1a, 0x3c, 0x54, 0x10, 0x2b, 0xbe, 0x41, 0x0c, 0x27, 0xdc, 0x89, 0x68, 0x57, 0x06, 0x09, 0x15, + 0x94, 0xc5, 0x87, 0x73, 0xa9, 0x30, 0xef, 0x03, 0x01, 0xa8, 0xfb, 0xc4, 0x50, 0x5d, 0x1f, 0x06, + 0xf0, 0x87, 0x5e, 0xcb, 0xc5, 0x88, 0x0b, 0x28, 0x31, 0x1b, 0xa2, 0xb1, 0xcf, 0x4c, 0x12, 0x98, + 0x84, 0xbe, 0xcd, 0x42, 0xda, 0x49, 0x43, 0xf6, 0x5a, 0x12, 0x84, 0xd3, 0x75, 0xd1, 0x53, 0x30, + 0xcd, 0xbc, 0x39, 0xe2, 0x37, 0xf9, 0x23, 0xf1, 0x0b, 0xb2, 0xf5, 0x04, 0x04, 0xa7, 0x6a, 0xea, + 0xbf, 0xa5, 0xc1, 0xa4, 0xba, 0xec, 0x8e, 0xf1, 0xce, 0xa7, 0xa7, 0x1c, 0x86, 0x03, 0x3c, 0x42, + 0x50, 0xa9, 0x1e, 0xe7, 0x3c, 0xfc, 0xf2, 0x10, 0x5c, 0xcc, 0x69, 0xc3, 0xee, 0xe6, 0x49, 0xea, + 0x60, 0x1d, 0xe4, 0x6e, 0x3e, 0x73, 0x48, 0xcb, 0xbb, 0xf9, 0x34, 0x04, 0x67, 0xe8, 0xa2, 0xe7, + 0x60, 0xc8, 0xf4, 0x6d, 0x31, 0x2c, 0xef, 0x2f, 0xa5, 0x16, 0xe2, 0xe6, 0xd2, 0x84, 0xa0, 0x38, + 0x54, 0xc7, 0x4d, 0x4c, 0x11, 0xd2, 0xe3, 0x41, 0xdd, 0xd4, 0xd1, 0x59, 0xcd, 0x8e, 0x07, 0x75, + 0xef, 0x07, 0x38, 0x59, 0x0f, 0xbd, 0x00, 0x73, 0x42, 0x5e, 0x8f, 0x5e, 0x08, 0x79, 0x6e, 0x10, + 0xd2, 0xfd, 0x17, 0x0a, 0x76, 0xfa, 0xe0, 0xd1, 0x61, 0x6d, 0xee, 0x66, 0x41, 0x1d, 0x5c, 0xd8, + 0x5a, 0xff, 0x8b, 0x21, 0x98, 0x50, 0x02, 0x25, 0xa2, 0xb5, 0x41, 0x0c, 0x1d, 0xf1, 0x17, 0x47, + 0xc6, 0x8e, 0x35, 0x18, 0x6a, 0x77, 0x7b, 0x25, 0x2d, 0x1d, 0x12, 0xdd, 0x75, 0x8a, 0xae, 0xdd, + 0xed, 0xa1, 0xe7, 0xa4, 0xed, 0xa4, 0x9c, 0x75, 0x43, 0x3a, 0xe2, 0xa7, 0xec, 0x27, 0xd1, 0x76, + 0x19, 0x2e, 0xdc, 0x2e, 0x1d, 0x18, 0x0b, 0x84, 0x61, 0x65, 0xa4, 0xfc, 0x7b, 0x59, 0x65, 0xa4, + 0x85, 0x21, 0x85, 0x6b, 0x65, 0x91, 0x9d, 0x25, 0xa2, 0x41, 0x25, 0xbe, 0x1e, 0x7b, 0x28, 0xc5, + 0xd4, 0xcd, 0x2a, 0x97, 0xf8, 0x6e, 0xb3, 0x12, 0x2c, 0x20, 0x99, 0x83, 0x64, 0xec, 0x58, 0x07, + 0xc9, 0x17, 0x2b, 0x80, 0xb2, 0xdd, 0x40, 0x6f, 0x83, 0x11, 0xf6, 0xca, 0x4c, 0x70, 0x0c, 0x29, + 0x9f, 0xb3, 0xa7, 0x68, 0x98, 0xc3, 0x50, 0x4b, 0xbc, 0xfe, 0x2b, 0x37, 0x9d, 0xcc, 0xb9, 0x45, + 0xd0, 0x53, 0x9e, 0x0a, 0x46, 0x27, 0xf3, 0x50, 0xe1, 0xc9, 0x7c, 0x1b, 0xc6, 0x3a, 0xb6, 0xcb, + 0x6e, 0xd8, 0xca, 0xd9, 0x9b, 0xf8, 0x1d, 0x3c, 0x47, 0x81, 0x23, 0x5c, 0xfa, 0x9f, 0x55, 0xe8, + 0xd2, 0x8f, 0xe5, 0xd2, 0x03, 0x00, 0xa3, 0x17, 0x7a, 0x5c, 0xc0, 0x11, 0x3b, 0xa0, 0x59, 0x6e, + 0x96, 0x25, 0xd2, 0x45, 0x89, 0x90, 0x5f, 0x8d, 0xc7, 0xbf, 0xb1, 0x42, 0x8c, 0x92, 0x0e, 0xed, + 0x0e, 0x79, 0xde, 0x76, 0x2d, 0xef, 0x8e, 0x18, 0xde, 0x41, 0x49, 0x6f, 0x4a, 0x84, 0x9c, 0x74, + 0xfc, 0x1b, 0x2b, 0xc4, 0x28, 0x6b, 0x61, 0xea, 0xad, 0xcb, 0x22, 0xd7, 0x8a, 0xbe, 0x79, 0x8e, + 0x13, 0x9d, 0x9d, 0x55, 0xce, 0x5a, 0xea, 0x05, 0x75, 0x70, 0x61, 0x6b, 0xfd, 0x77, 0x34, 0xb8, + 0x9c, 0x3b, 0x14, 0xe8, 0x3a, 0xcc, 0xc6, 0xfe, 0x50, 0x2a, 0xb3, 0xaf, 0xc6, 0x11, 0x93, 0x6f, + 0xa6, 0x2b, 0xe0, 0x6c, 0x1b, 0xb4, 0x26, 0x05, 0x1e, 0xf5, 0x30, 0x11, 0xce, 0x54, 0x0f, 0x08, + 0x54, 0x79, 0xe7, 0x0d, 0xce, 0x6b, 0xa7, 0x7f, 0x3c, 0xd1, 0xe1, 0x78, 0xc0, 0xe8, 0xee, 0xd8, + 0x22, 0x6d, 0xf9, 0x9e, 0x47, 0xee, 0x8e, 0x25, 0x5a, 0x88, 0x39, 0x0c, 0x3d, 0xa4, 0xbe, 0x92, + 0x93, 0xbc, 0x2b, 0x7a, 0x29, 0xa7, 0x87, 0x00, 0xc2, 0x65, 0xd1, 0x76, 0xdb, 0x68, 0x1b, 0xaa, + 0x86, 0x48, 0xdc, 0x24, 0x96, 0xda, 0x87, 0x4a, 0x69, 0xd3, 0x02, 0x07, 0x77, 0xd6, 0x8e, 0x7e, + 0x61, 0x89, 0x5b, 0xff, 0xa7, 0x1a, 0x5c, 0xa1, 0x6c, 0xcc, 0x8a, 0x62, 0x04, 0xc8, 0x18, 0x42, + 0xc7, 0x90, 0x11, 0x3a, 0x30, 0xe1, 0xc7, 0xcd, 0xc4, 0xba, 0x7c, 0x9f, 0x1a, 0x9f, 0x48, 0x79, + 0xdb, 0x4f, 0xe5, 0xa7, 0xba, 0xef, 0x05, 0xd1, 0xe4, 0xa4, 0x43, 0x16, 0x49, 0xdd, 0x45, 0xe9, + 0x09, 0x56, 0xf1, 0xeb, 0x9f, 0xad, 0x00, 0xac, 0x93, 0xf0, 0x8e, 0xe7, 0xef, 0xd2, 0x21, 0x7a, + 0x43, 0x3d, 0x6c, 0x7d, 0x10, 0x86, 0xbb, 0x9e, 0x15, 0x08, 0x2e, 0xc5, 0x9e, 0x45, 0x33, 0x8f, + 0x1e, 0x56, 0x8a, 0x6a, 0x30, 0xc2, 0x6e, 0x11, 0xc4, 0x01, 0xc2, 0x84, 0x7e, 0x2a, 0xb2, 0x05, + 0x98, 0x97, 0xf3, 0x90, 0xfc, 0xec, 0x21, 0x44, 0x20, 0xb4, 0x18, 0x11, 0x92, 0x9f, 0x97, 0x61, + 0x09, 0xd5, 0x3f, 0x3b, 0x0c, 0x89, 0x1c, 0x65, 0xb1, 0xd1, 0x45, 0x3b, 0x1b, 0xa3, 0xcb, 0x0b, + 0x30, 0xe7, 0x78, 0x86, 0xb5, 0x64, 0x38, 0x74, 0xd1, 0xfb, 0x2d, 0x3e, 0x1d, 0x86, 0xdb, 0x96, + 0x69, 0xad, 0x18, 0x03, 0x58, 0x2d, 0xa8, 0x83, 0x0b, 0x5b, 0xa3, 0x50, 0x66, 0x46, 0xe3, 0x81, + 0xa5, 0x57, 0x07, 0xcd, 0xe0, 0xb6, 0xa0, 0x3e, 0x81, 0x91, 0x67, 0x79, 0x2a, 0x79, 0xda, 0x17, + 0x34, 0xb8, 0x4c, 0xf6, 0x43, 0xe2, 0xbb, 0x86, 0xb3, 0xe9, 0x1b, 0xdb, 0xdb, 0xb6, 0x29, 0x7c, + 0x25, 0xf9, 0xe4, 0x6c, 0x1c, 0x1d, 0xd6, 0x2e, 0x2f, 0xe7, 0x55, 0xb8, 0x7b, 0x58, 0x7b, 0x77, + 0x36, 0x41, 0x61, 0xf4, 0xe2, 0x25, 0xb7, 0x09, 0x5b, 0x8c, 0xf9, 0xe4, 0xe6, 0x9f, 0x84, 0x89, + 0x13, 0xbc, 0x57, 0x18, 0x57, 0x0d, 0x70, 0x7f, 0x58, 0x81, 0x49, 0xba, 0x7e, 0x56, 0x3d, 0xd3, + 0x70, 0x1a, 0xeb, 0xad, 0x13, 0x64, 0xf7, 0x43, 0xab, 0x70, 0x69, 0xdb, 0xf3, 0x4d, 0xb2, 0x59, + 0xdf, 0xd8, 0xf4, 0xc4, 0x3d, 0x44, 0x63, 0xbd, 0x25, 0x98, 0x22, 0xd3, 0xac, 0x56, 0x72, 0xe0, + 0x38, 0xb7, 0x15, 0xba, 0x05, 0x97, 0xe3, 0xf2, 0xdb, 0x5d, 0xee, 0x60, 0x41, 0xd1, 0x0d, 0xc5, + 0x0e, 0x22, 0x2b, 0x79, 0x15, 0x70, 0x7e, 0x3b, 0x64, 0xc0, 0x03, 0xe2, 0x0d, 0xf8, 0x8a, 0xe7, + 0xdf, 0x31, 0x7c, 0x2b, 0x89, 0x76, 0x38, 0xb6, 0xd3, 0x36, 0x8a, 0xab, 0xe1, 0x7e, 0x38, 0xf4, + 0x5f, 0x1d, 0x05, 0xe5, 0xad, 0xd6, 0x09, 0x82, 0xb1, 0xff, 0x86, 0x06, 0x97, 0x4c, 0xc7, 0x26, + 0x6e, 0x98, 0x7a, 0x94, 0xc3, 0xd9, 0xca, 0xed, 0x52, 0x8f, 0xc8, 0xba, 0xc4, 0x6d, 0x36, 0x84, + 0x3f, 0x4a, 0x3d, 0x07, 0xb9, 0xf0, 0xd9, 0xc9, 0x81, 0xe0, 0xdc, 0xce, 0xb0, 0xef, 0x61, 0xe5, + 0xcd, 0x86, 0xfa, 0xe4, 0xba, 0x2e, 0xca, 0xb0, 0x84, 0xa2, 0xc7, 0x61, 0xa2, 0xed, 0x7b, 0xbd, + 0x6e, 0x50, 0x67, 0x4e, 0xb0, 0x7c, 0xfd, 0x33, 0x31, 0xec, 0x7a, 0x5c, 0x8c, 0xd5, 0x3a, 0x54, + 0xa8, 0xe4, 0x3f, 0x37, 0x7c, 0xb2, 0x6d, 0xef, 0x0b, 0x66, 0xc5, 0x84, 0xca, 0xeb, 0x4a, 0x39, + 0x4e, 0xd4, 0x42, 0xef, 0x84, 0x71, 0x3b, 0x08, 0x7a, 0xc4, 0xbf, 0x8d, 0x57, 0x45, 0x14, 0x56, + 0x76, 0xb7, 0xd1, 0x8c, 0x0a, 0x71, 0x0c, 0x47, 0x5f, 0xd5, 0x60, 0xda, 0x27, 0xaf, 0xf4, 0x6c, + 0x9f, 0x58, 0x8c, 0x68, 0x20, 0x1e, 0xcc, 0xe1, 0xc1, 0x1e, 0xe9, 0x2d, 0xe0, 0x04, 0x52, 0xce, + 0x25, 0xa4, 0x2d, 0x2b, 0x09, 0xc4, 0xa9, 0x1e, 0xd0, 0xa1, 0x0a, 0xec, 0xb6, 0x6b, 0xbb, 0xed, + 0x45, 0xa7, 0x1d, 0xcc, 0x55, 0x19, 0xe3, 0xe3, 0x12, 0x6b, 0x5c, 0x8c, 0xd5, 0x3a, 0x54, 0x9b, + 0xeb, 0x05, 0x74, 0xdf, 0x77, 0x08, 0x1f, 0xdf, 0xf1, 0xd8, 0xd8, 0x77, 0x5b, 0x05, 0xe0, 0x64, + 0x3d, 0xaa, 0xe9, 0x47, 0x05, 0x62, 0x94, 0x81, 0x87, 0xd3, 0xa0, 0xfd, 0xbc, 0x9d, 0x80, 0xe0, + 0x54, 0xcd, 0xf9, 0x45, 0xb8, 0x98, 0xf3, 0x99, 0x27, 0x62, 0x2e, 0xbf, 0x55, 0x81, 0xb7, 0xde, + 0x73, 0x55, 0xa2, 0x7f, 0xa4, 0xc1, 0x04, 0xd9, 0x0f, 0x7d, 0x43, 0xfa, 0xc9, 0xd3, 0x29, 0xda, + 0x3e, 0x93, 0x2d, 0xb0, 0xb0, 0x1c, 0x13, 0xe2, 0xd3, 0x26, 0x85, 0x05, 0x05, 0x82, 0xd5, 0xfe, + 0x50, 0x0d, 0x89, 0x07, 0x5b, 0x51, 0x6d, 0xe2, 0x22, 0xbd, 0x95, 0x80, 0xcc, 0x7f, 0x18, 0x66, + 0xd2, 0x98, 0x4f, 0x34, 0x52, 0x7f, 0x50, 0x81, 0xb1, 0x0d, 0xdf, 0xa3, 0x72, 0xcc, 0x39, 0x44, + 0x0d, 0x34, 0x12, 0x51, 0x03, 0x4b, 0xbd, 0xc0, 0x15, 0x9d, 0x2d, 0x8c, 0x58, 0x6a, 0xa7, 0x22, + 0x96, 0x2e, 0x0e, 0x42, 0xa4, 0x7f, 0x88, 0xd2, 0x7f, 0xaf, 0xc1, 0x84, 0xa8, 0x79, 0x0e, 0xc1, + 0xf2, 0x3e, 0x91, 0x0c, 0x96, 0xf7, 0xc1, 0x01, 0xbe, 0xab, 0x20, 0x3a, 0xde, 0xd7, 0x35, 0x98, + 0x12, 0x35, 0xd6, 0x48, 0x67, 0x8b, 0xf8, 0x68, 0x05, 0xc6, 0x82, 0x1e, 0x9b, 0x48, 0xf1, 0x41, + 0x0f, 0xa8, 0x92, 0xb1, 0xbf, 0x65, 0x98, 0x2c, 0x47, 0x1b, 0xaf, 0xa2, 0xc4, 0x01, 0xe5, 0x05, + 0x38, 0x6a, 0x4c, 0xe5, 0x5c, 0xdf, 0x73, 0x32, 0x31, 0x49, 0xb0, 0xe7, 0x10, 0xcc, 0x20, 0x54, + 0xbc, 0xa4, 0x7f, 0x23, 0x7b, 0x11, 0x13, 0x2f, 0x29, 0x38, 0xc0, 0xbc, 0x5c, 0xff, 0xfc, 0xb0, + 0x1c, 0x6c, 0x16, 0xab, 0xef, 0x06, 0x8c, 0x9b, 0x3e, 0x31, 0x42, 0x62, 0x2d, 0x1d, 0x1c, 0xa7, + 0x73, 0x8c, 0x59, 0xd7, 0xa3, 0x16, 0x38, 0x6e, 0x4c, 0xf9, 0xa2, 0x7a, 0x0d, 0x51, 0x89, 0x8f, + 0x90, 0xc2, 0x2b, 0x88, 0x0f, 0xc1, 0x88, 0x77, 0xc7, 0x95, 0xde, 0x0c, 0x7d, 0x09, 0xb3, 0x4f, + 0xb9, 0x45, 0x6b, 0x63, 0xde, 0x88, 0x45, 0x63, 0xea, 0xf9, 0x5d, 0x2f, 0x88, 0xac, 0x31, 0x3c, + 0x1a, 0x13, 0x2f, 0xc2, 0x11, 0x0c, 0x39, 0x30, 0xd6, 0x61, 0xd3, 0x30, 0x50, 0x58, 0xc8, 0xc4, + 0x84, 0xaa, 0x81, 0xc3, 0x19, 0x66, 0x1c, 0x91, 0xa0, 0xe7, 0x1b, 0xe5, 0xc1, 0x41, 0xd7, 0x30, + 0x89, 0x7a, 0xbe, 0xad, 0x47, 0x85, 0x38, 0x86, 0xa3, 0x03, 0x98, 0xe0, 0x61, 0x21, 0xb8, 0x15, + 0x77, 0xac, 0xbc, 0xb9, 0x48, 0x74, 0x6f, 0x33, 0xc6, 0xc6, 0x87, 0x5e, 0x29, 0xc0, 0x2a, 0x2d, + 0xfd, 0x17, 0x87, 0xe5, 0x22, 0x15, 0x51, 0x5e, 0xf3, 0xf3, 0x8a, 0x69, 0xa5, 0xf2, 0x8a, 0xbd, + 0x3b, 0x4a, 0xd5, 0x55, 0x49, 0x04, 0xb9, 0x97, 0xa9, 0xba, 0x26, 0x05, 0xe9, 0x44, 0x7a, 0xae, + 0x1e, 0x5c, 0x0c, 0x42, 0xc3, 0x21, 0x2d, 0x5b, 0xa8, 0xd4, 0x41, 0x68, 0x74, 0xba, 0x25, 0x62, + 0xd5, 0x73, 0xaf, 0xf2, 0x2c, 0x2a, 0x9c, 0x87, 0x1f, 0x7d, 0x4e, 0x83, 0x39, 0x56, 0xbe, 0xd8, + 0x0b, 0x3d, 0x1e, 0x80, 0x2f, 0x26, 0x7e, 0xf2, 0xbb, 0x4e, 0xa6, 0x02, 0xb5, 0x0a, 0xf0, 0xe1, + 0x42, 0x4a, 0xe8, 0x93, 0x70, 0xd9, 0x31, 0x82, 0x70, 0xd1, 0x0c, 0xed, 0x3d, 0x3b, 0x3c, 0x88, + 0xbb, 0x70, 0xf2, 0x04, 0x59, 0x4c, 0xd4, 0x5e, 0xcd, 0x43, 0x86, 0xf3, 0x69, 0xe8, 0x7f, 0xa9, + 0x01, 0xca, 0x2e, 0x21, 0xe4, 0x40, 0xd5, 0x8a, 0xdc, 0xbc, 0xb5, 0xf2, 0xd9, 0x58, 0x62, 0x94, + 0x31, 0x67, 0x96, 0xde, 0xe1, 0x92, 0x02, 0xf2, 0x60, 0xfc, 0xce, 0x8e, 0x1d, 0x12, 0xc7, 0x0e, + 0x42, 0xc1, 0x9d, 0x07, 0x25, 0x27, 0x83, 0x1c, 0x3d, 0x1f, 0x21, 0xc6, 0x31, 0x0d, 0xfd, 0x97, + 0x86, 0xa1, 0x7a, 0x82, 0x54, 0xb6, 0x3d, 0x40, 0xa6, 0x12, 0x42, 0x7f, 0x10, 0x3b, 0x02, 0x73, + 0x51, 0xa8, 0x67, 0x90, 0xe1, 0x1c, 0x02, 0xe8, 0x93, 0x70, 0xc9, 0x76, 0xb7, 0x7d, 0x23, 0x08, + 0xfd, 0x1e, 0x33, 0xcc, 0x0e, 0x12, 0x89, 0x9e, 0x69, 0x10, 0xcd, 0x1c, 0x74, 0x38, 0x97, 0x08, + 0x22, 0x30, 0x76, 0xc7, 0xf3, 0x77, 0x29, 0xf3, 0x1c, 0x2e, 0x9f, 0x93, 0xe8, 0x79, 0x86, 0x22, + 0xe6, 0x9a, 0xfc, 0x77, 0x80, 0x23, 0xdc, 0x3c, 0xca, 0x03, 0xff, 0x3f, 0xba, 0xa2, 0x14, 0xeb, + 0xbe, 0x5e, 0x9e, 0x5e, 0x9c, 0xde, 0x8a, 0x47, 0x79, 0x48, 0x16, 0xe2, 0x34, 0x41, 0xfd, 0x4f, + 0x34, 0x18, 0xe1, 0xcf, 0x27, 0xcf, 0x5e, 0x82, 0xfb, 0x7b, 0x09, 0x09, 0xae, 0x54, 0x30, 0x6d, + 0xd6, 0xd5, 0xc2, 0x30, 0xcf, 0xdf, 0xd3, 0x60, 0x9c, 0xd5, 0x38, 0x07, 0x91, 0xea, 0xa5, 0xa4, + 0x48, 0xf5, 0x64, 0xe9, 0xaf, 0x29, 0x10, 0xa8, 0xfe, 0x64, 0x48, 0x7c, 0x0b, 0x93, 0x58, 0x9a, + 0x70, 0x51, 0x38, 0x48, 0xae, 0xda, 0xdb, 0x84, 0x2e, 0xf1, 0x86, 0x71, 0x10, 0x88, 0x98, 0x07, + 0xfc, 0x85, 0x4c, 0x16, 0x8c, 0xf3, 0xda, 0xa0, 0x3f, 0xd4, 0xa8, 0x6c, 0x10, 0xfa, 0xb6, 0x39, + 0x50, 0xec, 0x64, 0xd9, 0xb7, 0x85, 0x35, 0x8e, 0x8c, 0x6b, 0x26, 0xb7, 0x63, 0x21, 0x81, 0x95, + 0xde, 0x3d, 0xac, 0xd5, 0x72, 0x8c, 0x46, 0x71, 0x48, 0xd6, 0x20, 0xfc, 0xec, 0x8f, 0xfa, 0x56, + 0x61, 0x06, 0xd7, 0xa8, 0xc7, 0xe8, 0x06, 0x8c, 0x04, 0xa6, 0xd7, 0x25, 0x27, 0x89, 0x06, 0x2f, + 0x07, 0xb8, 0x45, 0x5b, 0x62, 0x8e, 0x60, 0xfe, 0x65, 0x98, 0x54, 0x7b, 0x9e, 0xa3, 0xf9, 0x34, + 0x54, 0xcd, 0xe7, 0xc4, 0xd7, 0x2a, 0xaa, 0xa6, 0xf4, 0x47, 0x15, 0x10, 0xb9, 0xbf, 0x8f, 0x61, + 0x56, 0xb6, 0xa3, 0xd8, 0x97, 0x03, 0xa4, 0x5a, 0x4c, 0xa7, 0xef, 0x8f, 0xc7, 0x40, 0x0d, 0x7f, + 0x89, 0x5c, 0x18, 0x75, 0x8c, 0x2d, 0xe2, 0x44, 0xb9, 0xed, 0x56, 0xca, 0x27, 0x5f, 0xe3, 0xf1, + 0xcb, 0x83, 0x94, 0xf1, 0x91, 0x17, 0x62, 0x41, 0x65, 0xfe, 0x49, 0x98, 0x50, 0xaa, 0x9d, 0x48, + 0xd9, 0x7c, 0x5d, 0x83, 0x2b, 0xd1, 0x92, 0x48, 0xc6, 0xae, 0x41, 0x8f, 0x42, 0xd5, 0xe8, 0xda, + 0xcc, 0xfe, 0xa2, 0x5a, 0xb0, 0x16, 0x37, 0x9a, 0xac, 0x0c, 0x4b, 0x28, 0x7a, 0x17, 0x54, 0xa3, + 0x79, 0x12, 0x52, 0x9a, 0xdc, 0xe2, 0xd2, 0xec, 0x2e, 0x6b, 0xa0, 0xb7, 0x2b, 0xd1, 0x3c, 0x47, + 0xe2, 0x63, 0x55, 0x12, 0xe6, 0x37, 0x74, 0xfa, 0xfb, 0x60, 0xbc, 0xd5, 0xba, 0xc1, 0x43, 0x98, + 0x9c, 0xc0, 0x12, 0xa9, 0x7f, 0x69, 0x08, 0xa6, 0xb8, 0x46, 0xbe, 0x64, 0xbb, 0x96, 0xed, 0xb6, + 0xcf, 0x81, 0x05, 0x27, 0x32, 0xaf, 0x57, 0x4e, 0x2b, 0xf3, 0xfa, 0x4d, 0x18, 0x7d, 0x85, 0xb2, + 0x83, 0x68, 0x19, 0x1d, 0x6b, 0x57, 0xca, 0x35, 0xc2, 0x38, 0x49, 0x80, 0x05, 0x0a, 0x14, 0x28, + 0xf9, 0xef, 0x07, 0x78, 0x80, 0x9f, 0x18, 0x59, 0x19, 0xcb, 0x77, 0x32, 0x3f, 0xf9, 0xbd, 0xfe, + 0x5f, 0x34, 0x98, 0x4d, 0xb4, 0x38, 0x87, 0x13, 0x64, 0x3b, 0x79, 0x82, 0x2c, 0x0e, 0xfc, 0x95, + 0x05, 0x27, 0xc9, 0x93, 0x70, 0x39, 0x77, 0x30, 0xee, 0x2d, 0xfd, 0xe9, 0xbf, 0x5b, 0x81, 0xe1, + 0x16, 0x21, 0xd6, 0x39, 0xac, 0xcc, 0x97, 0x12, 0xc2, 0xc1, 0x87, 0x4a, 0x67, 0x66, 0x2c, 0xb2, + 0xed, 0x6c, 0xa7, 0x6c, 0x3b, 0x1f, 0x2e, 0x4d, 0xa1, 0xbf, 0x61, 0xe7, 0xd7, 0x2a, 0x00, 0xb4, + 0x1a, 0xcf, 0xd5, 0x2d, 0x9c, 0x00, 0xf9, 0x6a, 0xd6, 0x92, 0x1c, 0x27, 0xbb, 0x0c, 0xcf, 0xf3, + 0xc6, 0x4e, 0x87, 0x51, 0x9e, 0x1c, 0x53, 0x18, 0xc9, 0x81, 0xe7, 0x0e, 0xa3, 0x25, 0x58, 0x40, + 0x92, 0xdc, 0x62, 0xf8, 0x94, 0xb8, 0x85, 0xfe, 0xcf, 0x35, 0x60, 0xd9, 0x5e, 0x1a, 0xeb, 0xec, + 0x79, 0xb2, 0xcd, 0x2f, 0xaf, 0x1a, 0x6a, 0x44, 0x48, 0x66, 0x24, 0x6e, 0xaa, 0x00, 0x9c, 0xac, + 0x87, 0x3a, 0xca, 0xb8, 0x0e, 0x90, 0x31, 0x5f, 0xf4, 0xe3, 0x9e, 0xfc, 0xe1, 0x47, 0x15, 0xb8, + 0x90, 0xaa, 0x7b, 0x0c, 0xe5, 0xe9, 0x6c, 0xb8, 0xad, 0x12, 0xfe, 0x7b, 0xe8, 0xec, 0xc3, 0x7f, + 0xcb, 0x48, 0xdc, 0xc3, 0x67, 0x1b, 0x89, 0xfb, 0x8f, 0x35, 0x60, 0x29, 0xd8, 0xcf, 0x81, 0xf1, + 0xfe, 0xdd, 0x24, 0xe3, 0xfd, 0x40, 0xd9, 0x85, 0x53, 0xc0, 0x6f, 0x7f, 0xbb, 0x02, 0x2c, 0x73, + 0x8b, 0xb8, 0xab, 0x57, 0xae, 0xbf, 0xb5, 0x82, 0xeb, 0xef, 0x87, 0xc5, 0xed, 0x79, 0xca, 0xc4, + 0xa9, 0xdc, 0xa0, 0xbf, 0x4b, 0xb9, 0x20, 0x1f, 0x4a, 0xb2, 0x91, 0xec, 0x25, 0x39, 0x7a, 0x15, + 0xa6, 0x82, 0x1d, 0xcf, 0x0b, 0xe5, 0x73, 0xf5, 0xe1, 0xf2, 0xe6, 0x6c, 0xe6, 0xb3, 0x1b, 0x7d, + 0x0a, 0xdf, 0x98, 0x2d, 0x15, 0x37, 0x4e, 0x92, 0x42, 0x0b, 0x00, 0x5b, 0x8e, 0x67, 0xee, 0xd6, + 0x9b, 0x0d, 0x1c, 0xf9, 0x68, 0x32, 0x07, 0x9b, 0x25, 0x59, 0x8a, 0x95, 0x1a, 0xfa, 0xff, 0xd0, + 0xf8, 0x68, 0x9d, 0x60, 0x5b, 0x9d, 0x23, 0x97, 0x7c, 0x47, 0x8a, 0x4b, 0x2a, 0x59, 0x16, 0x13, + 0x9c, 0xb2, 0x16, 0xef, 0x12, 0x69, 0x82, 0x4e, 0x2c, 0xef, 0x3f, 0x10, 0x9f, 0x29, 0x13, 0xf8, + 0x74, 0x61, 0xca, 0x51, 0x33, 0xfe, 0x88, 0x75, 0x5e, 0x2a, 0x59, 0x90, 0x74, 0xdc, 0x4f, 0x14, + 0xe3, 0x24, 0x01, 0xca, 0x6b, 0xa3, 0xaf, 0xe3, 0xb9, 0x86, 0x2b, 0xb1, 0x7b, 0xe5, 0x86, 0x0a, + 0xc0, 0xc9, 0x7a, 0xfa, 0x3f, 0xae, 0xc0, 0x43, 0xbc, 0xef, 0xcc, 0x68, 0xd0, 0x20, 0x5d, 0xe2, + 0x5a, 0xc4, 0x35, 0x0f, 0x98, 0x1c, 0x6e, 0x79, 0x6d, 0xf4, 0xf7, 0x35, 0xa8, 0x12, 0xd7, 0xea, + 0x7a, 0xb6, 0x1b, 0x59, 0xfb, 0x3f, 0x56, 0x3e, 0xb7, 0x72, 0x01, 0x95, 0x65, 0x41, 0x40, 0x44, + 0x5e, 0x14, 0xbf, 0xb0, 0x24, 0x8c, 0xee, 0xc0, 0x48, 0xd7, 0xf7, 0xb6, 0x22, 0x7d, 0xed, 0xb9, + 0x53, 0xef, 0xc1, 0x06, 0xc5, 0xce, 0x27, 0x97, 0xfd, 0x8b, 0x39, 0x3d, 0x1d, 0xc3, 0xdb, 0x8f, + 0xd5, 0xf3, 0x93, 0x68, 0x07, 0xb7, 0x40, 0xbf, 0x77, 0x5f, 0x4e, 0x82, 0xf0, 0x59, 0x78, 0x44, + 0x41, 0xb8, 0xbc, 0x4f, 0xd5, 0x95, 0xba, 0xd1, 0x35, 0x4c, 0xaa, 0xab, 0xb2, 0x87, 0xbc, 0xdc, + 0x8c, 0x7d, 0x02, 0x94, 0x5f, 0x1c, 0x86, 0x9a, 0x82, 0x33, 0xe1, 0x03, 0x13, 0xf1, 0xa2, 0x6f, + 0x68, 0x30, 0x61, 0xb8, 0xae, 0x17, 0x1a, 0x6a, 0x26, 0x35, 0x6b, 0xc0, 0xb9, 0xc9, 0x23, 0xb5, + 0xb0, 0x18, 0x93, 0x49, 0x5d, 0x93, 0x2a, 0x10, 0xac, 0xf6, 0xa6, 0x8f, 0x37, 0x4c, 0xe5, 0x5c, + 0xbd, 0x61, 0xd0, 0xa7, 0x22, 0x06, 0xc2, 0x35, 0xa8, 0x17, 0xce, 0x60, 0x7c, 0x18, 0x3f, 0xca, + 0x37, 0x04, 0xcc, 0x7f, 0x18, 0x66, 0xd2, 0xa3, 0x77, 0x22, 0xed, 0xfc, 0x5f, 0x0d, 0x25, 0x56, + 0x57, 0x21, 0xf9, 0x63, 0x98, 0x3f, 0xbe, 0x99, 0x5a, 0x30, 0xfc, 0x90, 0xb6, 0xcf, 0x6a, 0x40, + 0x4e, 0x77, 0xd5, 0x0c, 0x9d, 0xaf, 0x0f, 0xd5, 0xa0, 0xd3, 0x56, 0x87, 0x2b, 0xca, 0x18, 0xb1, + 0x8b, 0xc6, 0xfa, 0x0e, 0x31, 0x77, 0x4f, 0x64, 0xc7, 0x58, 0xa2, 0xfa, 0xa5, 0x44, 0x12, 0x87, + 0x1c, 0x64, 0x6f, 0x67, 0xed, 0xc0, 0x8e, 0xc2, 0x4b, 0x28, 0x38, 0x9e, 0xe3, 0xc5, 0x38, 0x82, + 0xeb, 0x6b, 0xf0, 0xb0, 0x82, 0x23, 0xf7, 0x65, 0xeb, 0x49, 0xba, 0xf4, 0xad, 0xb1, 0xe8, 0xb4, + 0x15, 0x4f, 0x7f, 0x7e, 0x4f, 0x83, 0xfb, 0x49, 0x11, 0xcb, 0x13, 0x27, 0xd6, 0xa0, 0x7b, 0xae, + 0x90, 0xa5, 0x8a, 0x98, 0x7d, 0x45, 0x60, 0x5c, 0xdc, 0x33, 0x74, 0x00, 0x10, 0xc8, 0x01, 0x1d, + 0xc4, 0xf3, 0x39, 0x77, 0x86, 0x44, 0x78, 0x7f, 0xf9, 0x1b, 0x2b, 0xc4, 0xd0, 0xaf, 0x6b, 0x70, + 0xc9, 0xc9, 0xd9, 0x35, 0x42, 0x98, 0x6c, 0x9d, 0xc1, 0x86, 0xe4, 0x37, 0x35, 0x79, 0x10, 0x9c, + 0xdb, 0x15, 0xf4, 0x9b, 0x85, 0x4f, 0xae, 0x47, 0xca, 0xa7, 0xc1, 0xbb, 0xd7, 0x42, 0x2c, 0xf1, + 0xfa, 0xfa, 0x53, 0x30, 0xe1, 0xc5, 0x9b, 0x4b, 0xbc, 0x91, 0xff, 0xe8, 0x80, 0x9d, 0x53, 0xb6, + 0x2b, 0xbf, 0xf7, 0x56, 0x0a, 0xb0, 0x4a, 0x0f, 0x7d, 0x4d, 0x03, 0x64, 0x65, 0x24, 0x08, 0x71, + 0xf5, 0xfe, 0xec, 0xa9, 0x8b, 0x49, 0xfc, 0xa6, 0x2f, 0x5b, 0x8e, 0x73, 0x3a, 0xa1, 0xbf, 0x3e, + 0xc6, 0xf5, 0x3e, 0x76, 0xcd, 0xb1, 0x05, 0xa3, 0x5b, 0xcc, 0x6e, 0x22, 0xb6, 0x64, 0x69, 0x23, + 0x0d, 0xb7, 0xbe, 0x70, 0xa3, 0x06, 0xff, 0x1f, 0x0b, 0xcc, 0xe8, 0x45, 0x18, 0xb2, 0xdc, 0x28, + 0xb5, 0xea, 0x07, 0x07, 0x30, 0x1a, 0xc4, 0x4e, 0xec, 0x8d, 0xf5, 0x16, 0xa6, 0x48, 0x91, 0x0b, + 0x55, 0x57, 0xa8, 0x4a, 0x42, 0x37, 0xff, 0x48, 0x59, 0x02, 0x52, 0xe5, 0x92, 0x8a, 0x5e, 0x54, + 0x82, 0x25, 0x0d, 0x4a, 0x2f, 0x65, 0x2b, 0x2d, 0x4d, 0x4f, 0x9a, 0x40, 0xfa, 0xd9, 0xa7, 0x36, + 0x54, 0x83, 0xc6, 0xc8, 0xf1, 0x0d, 0x1a, 0x53, 0x85, 0xc6, 0x0c, 0x02, 0xa3, 0xa1, 0x61, 0xbb, + 0x21, 0xdd, 0x14, 0xa5, 0x53, 0xec, 0xd2, 0xfe, 0x6f, 0x52, 0x2c, 0xb1, 0x7e, 0xc6, 0x7e, 0x06, + 0x58, 0x20, 0xa7, 0x0b, 0x6b, 0x8f, 0x25, 0xe1, 0x12, 0x8b, 0xbe, 0xf4, 0xc2, 0xe2, 0xa9, 0xbc, + 0xf8, 0xc2, 0xe2, 0xff, 0x63, 0x81, 0x19, 0xbd, 0x4c, 0x75, 0x74, 0x71, 0x8f, 0x5b, 0x1d, 0x6c, + 0x32, 0xe4, 0x25, 0xae, 0x70, 0x83, 0x17, 0xb7, 0xb7, 0x12, 0x3f, 0xda, 0x82, 0x31, 0x61, 0x0f, + 0x13, 0xc1, 0x25, 0x3e, 0x38, 0x40, 0x5e, 0x94, 0x28, 0x3b, 0x1d, 0x7f, 0x92, 0x1c, 0x21, 0xd6, + 0xff, 0xe3, 0x38, 0xb7, 0x64, 0x0a, 0x57, 0x99, 0x6d, 0xa8, 0x46, 0xe8, 0x06, 0x79, 0x92, 0x11, + 0xe5, 0xa1, 0xe2, 0x9f, 0x16, 0xfd, 0xc2, 0x12, 0x37, 0xaa, 0xe7, 0xbd, 0x7e, 0x89, 0x23, 0x42, + 0x1f, 0xef, 0xe5, 0x4b, 0x32, 0x7b, 0xf3, 0xd0, 0x79, 0x64, 0x6f, 0xce, 0x77, 0x25, 0x1a, 0x2e, + 0xe5, 0x4a, 0xf4, 0x34, 0x5c, 0x10, 0x57, 0xb7, 0x4d, 0x8b, 0xb0, 0xdb, 0x44, 0xe1, 0x69, 0xcc, + 0x2e, 0xf5, 0xeb, 0x49, 0x10, 0x4e, 0xd7, 0x45, 0x7f, 0xa4, 0x41, 0xd5, 0x14, 0xd2, 0x84, 0xd8, + 0x57, 0xab, 0x83, 0x99, 0xbb, 0x17, 0x22, 0xe1, 0x84, 0x8b, 0xc8, 0xcf, 0x45, 0x3c, 0x22, 0x2a, + 0x3e, 0xa5, 0x6b, 0x5e, 0xd9, 0x6b, 0xf4, 0xef, 0xa8, 0x16, 0xe0, 0xb0, 0xec, 0x58, 0xec, 0x9d, + 0x1f, 0x77, 0x81, 0xbe, 0x35, 0xe0, 0x57, 0x2c, 0xc6, 0x18, 0xf9, 0x87, 0x7c, 0x4c, 0xca, 0xfa, + 0x31, 0xe4, 0x94, 0xbe, 0x45, 0xed, 0x3e, 0xfa, 0x96, 0x06, 0x8f, 0x70, 0xbf, 0xf3, 0x3a, 0x15, + 0x10, 0x58, 0xae, 0x3a, 0x12, 0x27, 0xc7, 0x8b, 0x1d, 0x9f, 0xaa, 0x27, 0x76, 0x7c, 0x7a, 0xf4, + 0xe8, 0xb0, 0xf6, 0x48, 0xfd, 0x18, 0xb8, 0xf1, 0xb1, 0x7a, 0x30, 0xbf, 0x0b, 0x53, 0x89, 0xc9, + 0x3e, 0xcb, 0x8b, 0xf1, 0x79, 0x17, 0x66, 0xd2, 0x73, 0x72, 0xa6, 0x17, 0xf1, 0x37, 0x61, 0x5c, + 0x1e, 0x16, 0xe8, 0x21, 0x85, 0x50, 0x7c, 0x98, 0xdf, 0x24, 0x07, 0x9c, 0x6a, 0x2d, 0xa1, 0x36, + 0x71, 0xb3, 0xcf, 0x73, 0xb4, 0x40, 0x20, 0xd4, 0xbf, 0x2f, 0x6c, 0x7a, 0x9b, 0xa4, 0xd3, 0x75, + 0x8c, 0x90, 0xbc, 0xf9, 0x6f, 0xc9, 0xf4, 0xff, 0xa5, 0x71, 0x9e, 0x2f, 0xf2, 0x61, 0x1a, 0x30, + 0xd1, 0xe1, 0xa1, 0x29, 0xd9, 0xf3, 0x52, 0xad, 0xfc, 0xc3, 0xd6, 0xb5, 0x18, 0x0d, 0x56, 0x71, + 0xa2, 0x3b, 0xd9, 0x8c, 0xad, 0x2b, 0x83, 0x1d, 0xce, 0xc7, 0x4e, 0xdc, 0x8a, 0xb2, 0x6d, 0xa8, + 0x92, 0x19, 0xf9, 0xd7, 0xa6, 0x92, 0x64, 0x66, 0x7c, 0x6c, 0xef, 0x99, 0x2c, 0x51, 0xff, 0x4e, + 0x05, 0x72, 0xd3, 0xfe, 0x20, 0x1d, 0x46, 0xf9, 0x83, 0x0f, 0x35, 0x95, 0x2d, 0x7f, 0x0d, 0x82, + 0x05, 0x04, 0xdd, 0xe2, 0x36, 0x06, 0xd7, 0x62, 0x71, 0x96, 0xe2, 0x9d, 0xaa, 0x3e, 0x2d, 0x5a, + 0xce, 0xab, 0x80, 0xf3, 0xdb, 0xa1, 0x3d, 0x40, 0x1d, 0x63, 0x3f, 0x8d, 0x6d, 0x80, 0xdc, 0x17, + 0x6b, 0x19, 0x6c, 0x38, 0x87, 0x02, 0x3d, 0xcc, 0x0c, 0xd3, 0x24, 0xdd, 0x90, 0x58, 0xfc, 0x13, + 0xa3, 0x6b, 0x01, 0x76, 0x98, 0x2d, 0x26, 0x41, 0x38, 0x5d, 0x57, 0xff, 0x97, 0x15, 0x18, 0x61, + 0x37, 0x0e, 0x6f, 0x0e, 0x0f, 0x35, 0xd6, 0xd5, 0xc2, 0x5b, 0xe8, 0x76, 0xea, 0x16, 0xfa, 0x99, + 0xf2, 0x24, 0xfa, 0x5f, 0x43, 0x7f, 0x0c, 0xae, 0xb0, 0x6a, 0x8b, 0x16, 0xd3, 0x48, 0x03, 0x62, + 0x2d, 0x5a, 0x16, 0x7b, 0x30, 0x79, 0x6f, 0x0b, 0xdc, 0x43, 0x30, 0xd4, 0xf3, 0x9d, 0xf4, 0x4b, + 0xdd, 0xdb, 0x78, 0x15, 0xd3, 0x72, 0xfd, 0x35, 0x0d, 0x66, 0x18, 0xee, 0xba, 0x4f, 0x98, 0xc4, + 0x61, 0x38, 0x01, 0xda, 0x83, 0xaa, 0x2f, 0xec, 0x50, 0x62, 0x6e, 0x56, 0x4b, 0x7f, 0x9a, 0x82, + 0x17, 0x0b, 0x9c, 0x22, 0x61, 0x94, 0xf8, 0x85, 0x25, 0x2d, 0xfd, 0xcf, 0x47, 0x61, 0xae, 0xa8, + 0x11, 0xfa, 0xaa, 0x06, 0x57, 0xcc, 0xf8, 0xb4, 0x5b, 0xec, 0x85, 0x3b, 0x9e, 0x6f, 0x87, 0x36, + 0x09, 0x06, 0xd1, 0x2f, 0xeb, 0x8b, 0xb2, 0x57, 0x2c, 0x0e, 0x4a, 0x3d, 0x97, 0x02, 0x2e, 0xa0, + 0x8c, 0x3e, 0x09, 0xb0, 0x1b, 0x07, 0x5e, 0xe3, 0x2b, 0xed, 0x66, 0xe9, 0xb1, 0x52, 0x82, 0xb3, + 0x45, 0x9d, 0x62, 0x46, 0x1d, 0xa5, 0x5c, 0x21, 0x47, 0x89, 0x07, 0xc1, 0xce, 0x4d, 0x72, 0xd0, + 0x35, 0xec, 0xe8, 0x05, 0x42, 0x79, 0xe2, 0xad, 0xd6, 0x0d, 0x81, 0x2a, 0x49, 0x5c, 0x29, 0x57, + 0xc8, 0xa1, 0x2f, 0x6a, 0x30, 0xc5, 0x85, 0x5d, 0xe1, 0x99, 0x26, 0x98, 0xcf, 0x7a, 0xe9, 0x0e, + 0xdc, 0x52, 0xb1, 0xc9, 0x3e, 0xb0, 0x1b, 0xad, 0x24, 0x28, 0x49, 0x17, 0xbd, 0xae, 0xc1, 0x6c, + 0x32, 0xf3, 0xda, 0x4d, 0x72, 0x20, 0x14, 0x5a, 0x5c, 0x7e, 0x38, 0xd2, 0x18, 0x65, 0x8f, 0x98, + 0xe2, 0x92, 0x05, 0x67, 0xfb, 0xc0, 0x7a, 0x46, 0x42, 0xd3, 0x12, 0x99, 0xa0, 0x6d, 0xcf, 0xa5, + 0x3d, 0x1b, 0x1d, 0xb0, 0x67, 0xcb, 0x9b, 0xf5, 0x46, 0x02, 0x63, 0xb2, 0x67, 0x59, 0x70, 0xb6, + 0x0f, 0xfa, 0x4f, 0x86, 0xe1, 0x6a, 0x7f, 0x64, 0xe8, 0x99, 0xe8, 0x05, 0x04, 0xe7, 0x2d, 0x8f, + 0xa5, 0x5f, 0x40, 0xcc, 0xe5, 0x6c, 0xd2, 0xc4, 0x6b, 0x08, 0x1f, 0x90, 0x63, 0x04, 0x61, 0xdd, + 0xeb, 0x74, 0x1d, 0x12, 0x89, 0xa5, 0x65, 0x42, 0x74, 0x1d, 0x89, 0x80, 0x59, 0x49, 0x4c, 0x38, + 0x07, 0x7b, 0x44, 0x93, 0xa7, 0x56, 0x95, 0x34, 0x87, 0xca, 0xd3, 0x4c, 0x62, 0xc2, 0x39, 0xd8, + 0xd1, 0x6b, 0x1a, 0xcc, 0x27, 0x8b, 0x57, 0x6c, 0xd7, 0x0e, 0x76, 0x44, 0xe8, 0xb6, 0x93, 0x3f, + 0xc0, 0x60, 0xc9, 0x0a, 0x56, 0x0b, 0x31, 0xe2, 0x3e, 0xd4, 0xd0, 0x97, 0x35, 0x78, 0x20, 0x35, + 0x2e, 0x89, 0x40, 0x72, 0x27, 0x7f, 0x8b, 0xc1, 0xde, 0x27, 0xaf, 0x16, 0xa3, 0xc4, 0xfd, 0xe8, + 0xe9, 0x9f, 0xa9, 0xc0, 0x7d, 0x05, 0xbc, 0xad, 0x60, 0xb2, 0xb4, 0x33, 0x9d, 0xac, 0x9f, 0xc2, + 0xa2, 0x64, 0x9e, 0xec, 0x6c, 0x0c, 0xde, 0x24, 0x9e, 0xec, 0xac, 0xaf, 0x05, 0xfe, 0x30, 0x7f, + 0xac, 0xc1, 0x6c, 0x26, 0xf2, 0xdb, 0xb1, 0xfc, 0xa0, 0xcf, 0xcd, 0xcd, 0xe3, 0xed, 0xe9, 0xac, + 0xe6, 0x13, 0xb9, 0x19, 0xcd, 0x9f, 0x87, 0xa9, 0x84, 0x3b, 0x8c, 0x0c, 0x7b, 0xa1, 0xe5, 0x86, + 0xbd, 0x50, 0xa3, 0x5a, 0x54, 0xfa, 0x46, 0xb5, 0xf8, 0x5c, 0x05, 0xe6, 0x8b, 0x0f, 0xb4, 0xbf, + 0x31, 0xab, 0x5e, 0xee, 0xfc, 0xac, 0x60, 0xf1, 0x37, 0x66, 0x0c, 0xe4, 0x31, 0x5b, 0x28, 0x4d, + 0xfc, 0xed, 0x31, 0xfb, 0xb7, 0xc7, 0xec, 0x29, 0x1c, 0xb3, 0xdf, 0xba, 0x20, 0x8e, 0x18, 0x76, + 0xf3, 0xf6, 0x12, 0x8c, 0xb2, 0x78, 0x37, 0x91, 0x66, 0xf4, 0x54, 0xe9, 0x38, 0x3a, 0x01, 0xb7, + 0x66, 0xf0, 0xff, 0xb1, 0xc0, 0x8a, 0x1a, 0x30, 0x63, 0x3a, 0x5e, 0xcf, 0x12, 0x79, 0x08, 0xd7, + 0x63, 0xc3, 0x89, 0x8c, 0x3c, 0x58, 0x4f, 0xc1, 0x71, 0xa6, 0x05, 0xc2, 0xfc, 0xee, 0x8e, 0xaf, + 0x9a, 0xf7, 0x97, 0x74, 0x45, 0xe5, 0xf1, 0xf5, 0xe5, 0x9d, 0xdd, 0x2b, 0x00, 0x24, 0x3a, 0x2c, + 0xa2, 0x07, 0x7f, 0x4f, 0x97, 0x8b, 0xa9, 0x28, 0x8f, 0x9c, 0xc8, 0xc8, 0x20, 0x8b, 0x02, 0xac, + 0x10, 0x41, 0x3e, 0x4c, 0xec, 0xd8, 0x5b, 0xc4, 0x77, 0xe3, 0x8c, 0xde, 0x25, 0x4d, 0x01, 0x37, + 0x62, 0x34, 0xdc, 0xce, 0xa6, 0x14, 0x60, 0x95, 0x08, 0xf2, 0xb9, 0xda, 0xc9, 0xaf, 0x49, 0x06, + 0x49, 0xfb, 0x1d, 0xdf, 0xbf, 0xc4, 0xdf, 0x19, 0x97, 0x61, 0x85, 0x0a, 0xa5, 0xe9, 0xca, 0x80, + 0x55, 0x83, 0xdc, 0xbc, 0xc5, 0x61, 0xaf, 0x62, 0x9a, 0x71, 0x19, 0x56, 0xa8, 0xd0, 0xb1, 0xed, + 0xc4, 0x41, 0xca, 0x84, 0x3d, 0xfd, 0x99, 0x01, 0x83, 0xc5, 0x09, 0x1b, 0x66, 0x5c, 0x80, 0x55, + 0x22, 0xc8, 0x05, 0xe8, 0xc8, 0xd8, 0x65, 0xe2, 0x42, 0xae, 0xd4, 0x77, 0xc6, 0x11, 0xd0, 0xb8, + 0x22, 0x1d, 0xff, 0xc6, 0x0a, 0x05, 0xf4, 0xb2, 0x72, 0xed, 0x0b, 0xe5, 0x2d, 0xc1, 0xc7, 0xba, + 0xf2, 0x7d, 0x6f, 0x6c, 0x10, 0x9d, 0x60, 0xfb, 0xf5, 0x01, 0xc5, 0x18, 0x7a, 0xf7, 0xb0, 0x36, + 0xc9, 0x78, 0x48, 0xc6, 0x38, 0x1a, 0x3b, 0xce, 0x4e, 0xf6, 0x75, 0x9c, 0xbd, 0x4e, 0x15, 0x71, + 0xe5, 0x71, 0x0a, 0x63, 0x0c, 0x53, 0xac, 0x89, 0x8c, 0x75, 0xd7, 0x4a, 0x57, 0xc0, 0xd9, 0x36, + 0x5c, 0xd8, 0x22, 0x16, 0x6b, 0x3f, 0xad, 0x0a, 0x5b, 0xbc, 0x0c, 0x4b, 0x28, 0xda, 0x83, 0xc9, + 0x40, 0xf1, 0xc4, 0x15, 0x49, 0xee, 0x06, 0xb8, 0xab, 0x15, 0x5e, 0xb8, 0x2c, 0x0a, 0x90, 0x5a, + 0x82, 0x13, 0x74, 0xd0, 0x27, 0x61, 0x3c, 0x32, 0x8e, 0x07, 0x73, 0x33, 0xe5, 0x5f, 0x5e, 0xe6, + 0xc7, 0xab, 0x8b, 0xad, 0xdd, 0x11, 0x28, 0xc0, 0x31, 0x3d, 0xd4, 0x4b, 0x46, 0x5d, 0x98, 0x3d, + 0x95, 0x97, 0xe6, 0xd2, 0x53, 0xae, 0x28, 0xe2, 0x02, 0xaa, 0xc3, 0x2c, 0xd9, 0xef, 0x7a, 0x41, + 0xcf, 0x27, 0x2c, 0x54, 0x26, 0x9b, 0x1e, 0x14, 0x5f, 0xe6, 0x2e, 0xa7, 0x81, 0x38, 0x5b, 0x1f, + 0x7d, 0x41, 0x83, 0x19, 0x9e, 0x23, 0x90, 0x9e, 0x65, 0x9e, 0x4b, 0xdc, 0x30, 0x60, 0x49, 0xf0, + 0x4a, 0x3e, 0x8e, 0x6c, 0xa5, 0x70, 0xf1, 0xac, 0x2e, 0xe9, 0x52, 0x9c, 0xa1, 0x49, 0x57, 0x8e, + 0xfa, 0x56, 0x9d, 0xe5, 0xd2, 0x2b, 0xb9, 0x72, 0xd4, 0x77, 0xf0, 0x7c, 0xe5, 0xa8, 0x25, 0x38, + 0x41, 0x47, 0xff, 0xde, 0x14, 0x4c, 0x28, 0x46, 0xdf, 0xd4, 0xed, 0xb6, 0x76, 0x1e, 0xb7, 0xdb, + 0x21, 0x4c, 0x98, 0x32, 0x2c, 0x6e, 0xa4, 0x2a, 0x0e, 0x48, 0x53, 0x2e, 0x9f, 0x38, 0xe0, 0x6e, + 0x80, 0x55, 0x32, 0x94, 0xd1, 0x49, 0x9f, 0x83, 0xa1, 0x53, 0xf0, 0x39, 0x90, 0x8c, 0x2e, 0xc7, + 0xef, 0xe0, 0x3d, 0x00, 0xd1, 0x79, 0x49, 0x2c, 0x11, 0x68, 0x4d, 0xa6, 0x93, 0x68, 0x06, 0x37, + 0x24, 0x0c, 0x2b, 0xf5, 0xd0, 0xab, 0x30, 0xe5, 0xa8, 0xf1, 0xd5, 0xc5, 0x61, 0x5e, 0xea, 0xa9, + 0x45, 0x22, 0x50, 0x3b, 0xb7, 0x62, 0x26, 0x8a, 0x70, 0x92, 0x14, 0x5d, 0x06, 0x4e, 0x94, 0x3b, + 0x61, 0x20, 0xff, 0x19, 0x99, 0x81, 0x21, 0x5e, 0x06, 0xb2, 0x28, 0xc0, 0x0a, 0x91, 0x02, 0x27, + 0x87, 0xb1, 0x52, 0x4e, 0x0e, 0x3d, 0xb8, 0xe8, 0x93, 0xd0, 0x3f, 0xa8, 0x1f, 0x98, 0x2c, 0xa5, + 0x88, 0x1f, 0x32, 0x39, 0xb8, 0x5a, 0x2e, 0xf4, 0x09, 0xce, 0xa2, 0xc2, 0x79, 0xf8, 0x13, 0x07, + 0xc5, 0x78, 0xdf, 0x83, 0xe2, 0xbd, 0x30, 0x11, 0x12, 0x73, 0xc7, 0xb5, 0x4d, 0xc3, 0x69, 0x36, + 0x44, 0x14, 0xb2, 0x98, 0xe7, 0xc5, 0x20, 0xac, 0xd6, 0x43, 0x4b, 0x30, 0xd4, 0xb3, 0x2d, 0x71, + 0x5a, 0xfe, 0xac, 0xbc, 0x3e, 0x69, 0x36, 0xee, 0x1e, 0xd6, 0xde, 0x1a, 0x7b, 0x0d, 0xc8, 0xaf, + 0xba, 0xd6, 0xdd, 0x6d, 0x5f, 0x0b, 0x0f, 0xba, 0x24, 0x58, 0xb8, 0xdd, 0x6c, 0x60, 0xda, 0x38, + 0xcf, 0x01, 0x64, 0xf2, 0x04, 0x0e, 0x20, 0x5f, 0xd3, 0xe0, 0xa2, 0x91, 0xbe, 0xf9, 0x21, 0xc1, + 0xdc, 0x54, 0xf9, 0x53, 0x27, 0xff, 0x36, 0x29, 0x8e, 0x22, 0xbb, 0x98, 0x25, 0x87, 0xf3, 0xfa, + 0x40, 0x15, 0xc1, 0x8e, 0xdd, 0x96, 0x69, 0x0c, 0xc4, 0xac, 0x4f, 0x97, 0x53, 0x04, 0xd7, 0x32, + 0x98, 0x70, 0x0e, 0x76, 0x74, 0x07, 0x26, 0xcc, 0x58, 0x27, 0x16, 0x27, 0x7e, 0xe3, 0x34, 0x2e, + 0xa8, 0x44, 0x4e, 0x72, 0x45, 0xe1, 0x56, 0x29, 0x49, 0x0d, 0x54, 0x11, 0xcb, 0x85, 0x16, 0xc6, + 0xbe, 0x7a, 0xa6, 0xbc, 0x06, 0x9a, 0x8f, 0x11, 0xf7, 0xa1, 0xc6, 0x02, 0x8e, 0x38, 0xc9, 0x6c, + 0x23, 0x2c, 0xd7, 0x6d, 0xc9, 0xb7, 0x93, 0xa9, 0xc4, 0x25, 0x7c, 0x69, 0xa6, 0x0a, 0x71, 0x9a, + 0xa0, 0xfe, 0x03, 0x4d, 0x18, 0xd1, 0xce, 0xd1, 0x6b, 0xe2, 0xac, 0xaf, 0x75, 0xf5, 0xbf, 0xd0, + 0x20, 0x23, 0x3f, 0xa0, 0x2d, 0x18, 0xa3, 0x28, 0x1a, 0xeb, 0x2d, 0xf1, 0x59, 0x1f, 0x2c, 0x77, + 0x5c, 0x32, 0x14, 0xdc, 0x22, 0x29, 0x7e, 0xe0, 0x08, 0x31, 0x95, 0x48, 0x5c, 0x25, 0x10, 0xaa, + 0xf8, 0xc2, 0x52, 0x12, 0x89, 0x1a, 0x50, 0x95, 0x4b, 0x24, 0x6a, 0x09, 0x4e, 0xd0, 0xd1, 0x57, + 0x01, 0x62, 0x99, 0x6f, 0x60, 0x47, 0x9a, 0x9f, 0x8c, 0xc0, 0xe5, 0x41, 0x7d, 0xfe, 0x59, 0x92, + 0x0b, 0x96, 0x76, 0x7c, 0x71, 0x3b, 0x24, 0xfe, 0xad, 0x5b, 0x6b, 0x32, 0x2b, 0x73, 0xc9, 0x2c, + 0x1b, 0x71, 0xd6, 0xfa, 0x0c, 0x46, 0x5c, 0x40, 0x89, 0xc9, 0xbb, 0x22, 0xe9, 0x26, 0x36, 0x42, + 0xc2, 0x53, 0x2e, 0xf3, 0xf8, 0x11, 0x5c, 0xde, 0x4d, 0x03, 0x71, 0xb6, 0x7e, 0x1a, 0x09, 0x4f, + 0x81, 0x4e, 0x05, 0x12, 0x2d, 0x8b, 0x84, 0xe7, 0x41, 0xcf, 0xd6, 0x57, 0x91, 0xf0, 0x99, 0xa2, + 0xbb, 0x7d, 0x24, 0x8b, 0x44, 0x02, 0x71, 0xb6, 0x3e, 0xb2, 0xe0, 0x41, 0x9f, 0x98, 0x5e, 0xa7, + 0x43, 0x5c, 0x8b, 0xe7, 0x8f, 0x32, 0xfc, 0xb6, 0xed, 0xae, 0xf8, 0x06, 0xab, 0xc8, 0xcc, 0x08, + 0xda, 0xd2, 0xc3, 0x47, 0x87, 0xb5, 0x07, 0x71, 0x9f, 0x7a, 0xb8, 0x2f, 0x16, 0xd4, 0x81, 0x0b, + 0x3d, 0x16, 0xf9, 0xdc, 0x6f, 0xba, 0x21, 0xf1, 0xf7, 0x0c, 0xa7, 0x64, 0x62, 0x7f, 0xc6, 0x81, + 0x6e, 0x27, 0x51, 0xe1, 0x34, 0x6e, 0x74, 0x40, 0xe5, 0x0e, 0xd1, 0x1d, 0x85, 0x64, 0xb5, 0x7c, + 0x1a, 0x18, 0x9c, 0x45, 0x87, 0xf3, 0x68, 0xe8, 0x5f, 0xd3, 0x40, 0x78, 0x0d, 0xa3, 0x07, 0x13, + 0xf7, 0x1f, 0xd5, 0xd4, 0xdd, 0xc7, 0x83, 0xe2, 0x11, 0x6c, 0x25, 0x86, 0x2a, 0x0f, 0x60, 0xdf, + 0xa1, 0x04, 0x26, 0x19, 0x8f, 0x79, 0x1f, 0xc7, 0xac, 0xe4, 0x0e, 0x78, 0x27, 0x8c, 0x13, 0x7e, + 0x51, 0x2b, 0x25, 0x5a, 0xe6, 0x89, 0xbd, 0x1c, 0x15, 0xe2, 0x18, 0xae, 0xff, 0x07, 0x0d, 0x04, + 0x06, 0x96, 0xe9, 0xe2, 0x58, 0x19, 0x0f, 0xee, 0xe9, 0x02, 0xa5, 0x64, 0x6a, 0x18, 0x2a, 0xcc, + 0xd4, 0x70, 0x46, 0x09, 0x0c, 0x7e, 0x4f, 0x83, 0x0b, 0xc9, 0x48, 0x31, 0x01, 0x7a, 0x3b, 0x8c, + 0x89, 0xd0, 0x6b, 0x22, 0x76, 0x12, 0x7f, 0xf4, 0x2e, 0xf2, 0x98, 0x47, 0xb0, 0xa4, 0xaa, 0x3e, + 0x40, 0x90, 0xa4, 0xfc, 0x80, 0x35, 0xfd, 0x55, 0x75, 0xfd, 0x4f, 0xa7, 0x61, 0x94, 0xc7, 0xed, + 0xa2, 0x3c, 0x2d, 0xe7, 0xf1, 0xe4, 0xcd, 0xf2, 0xe1, 0xc1, 0xca, 0xbc, 0x76, 0x53, 0x03, 0x44, + 0x57, 0xfa, 0x06, 0x88, 0xc6, 0x3c, 0x31, 0xcc, 0x00, 0xe6, 0xd9, 0x3a, 0x6e, 0x8a, 0x7c, 0xb0, + 0x51, 0x52, 0x98, 0x30, 0x61, 0xb7, 0x1c, 0x2e, 0x2f, 0xb9, 0xf1, 0x01, 0x50, 0xac, 0x97, 0xd3, + 0x7d, 0x2c, 0x97, 0x71, 0x60, 0xa4, 0x91, 0xf2, 0x2e, 0x89, 0x62, 0xc8, 0x8f, 0x11, 0x18, 0x49, + 0x6e, 0xa4, 0xd1, 0xc2, 0x8d, 0xb4, 0x0d, 0x63, 0x62, 0x2b, 0x08, 0xe6, 0xf8, 0xc1, 0x01, 0x32, + 0xac, 0x28, 0xb1, 0x3c, 0x79, 0x01, 0x8e, 0x90, 0xd3, 0x13, 0xb7, 0x63, 0xec, 0xdb, 0x9d, 0x5e, + 0x87, 0x71, 0xc4, 0x11, 0xb5, 0x2a, 0x2b, 0xc6, 0x11, 0x9c, 0x55, 0xe5, 0x9e, 0x9c, 0x4c, 0x91, + 0x52, 0xab, 0x8a, 0x7c, 0xe6, 0x11, 0x1c, 0xbd, 0x08, 0xd5, 0x8e, 0xb1, 0xdf, 0xea, 0xf9, 0x6d, + 0x22, 0x2c, 0x96, 0xc5, 0x32, 0x5e, 0x2f, 0xb4, 0x9d, 0x05, 0xaa, 0xfe, 0x87, 0xfe, 0x42, 0xd3, + 0x0d, 0x6f, 0xf9, 0xad, 0xd0, 0x97, 0x39, 0x1c, 0xd6, 0x04, 0x16, 0x2c, 0xf1, 0x21, 0x07, 0xa6, + 0x3b, 0xc6, 0xfe, 0x6d, 0xd7, 0x90, 0x69, 0x97, 0x27, 0x4a, 0x52, 0x60, 0x57, 0xc5, 0x6b, 0x09, + 0x5c, 0x38, 0x85, 0x3b, 0xe7, 0x56, 0x7a, 0xf2, 0xac, 0x6e, 0xa5, 0x17, 0xe5, 0xdb, 0x18, 0xae, + 0xb7, 0xdd, 0x9f, 0xf7, 0xd4, 0xa6, 0xff, 0xbb, 0x97, 0x97, 0xe4, 0xbb, 0x97, 0xe9, 0xf2, 0xd7, + 0x3a, 0x7d, 0xde, 0xbc, 0xf4, 0x60, 0x82, 0x4a, 0xd8, 0xbc, 0x94, 0x2a, 0x56, 0xa5, 0xcd, 0x8a, + 0x0d, 0x89, 0x46, 0x49, 0xe3, 0x17, 0xa3, 0xc6, 0x2a, 0x1d, 0x74, 0x8b, 0xa7, 0xe5, 0x75, 0x48, + 0x18, 0x57, 0x61, 0x0a, 0xfd, 0x0c, 0xb7, 0x1c, 0x47, 0x59, 0x74, 0x33, 0x15, 0x70, 0x7e, 0xbb, + 0x38, 0x7e, 0xc3, 0x6c, 0x7e, 0xfc, 0x06, 0xf4, 0x4b, 0x79, 0x36, 0x48, 0x54, 0xfe, 0x1d, 0x1f, + 0xe7, 0x0d, 0xa5, 0x2d, 0x91, 0xbf, 0xaf, 0xc1, 0x5c, 0xa7, 0x20, 0xdf, 0x9d, 0x30, 0x8d, 0x6e, + 0x0e, 0xc0, 0x1f, 0x0a, 0x73, 0xe8, 0x2d, 0x3d, 0x72, 0x74, 0x58, 0xbb, 0x67, 0xa6, 0x3d, 0x5c, + 0xd8, 0xb7, 0x41, 0x5f, 0x2c, 0x0f, 0x12, 0x41, 0xee, 0x37, 0x34, 0x98, 0x49, 0x1f, 0x02, 0x6a, + 0x26, 0x61, 0xed, 0x6c, 0x33, 0x09, 0x2b, 0x3e, 0x26, 0x95, 0x3e, 0x3e, 0x26, 0x4f, 0xc3, 0x95, + 0xfc, 0xb5, 0x41, 0x25, 0x32, 0x96, 0xb9, 0x5b, 0x68, 0x42, 0x71, 0xba, 0x12, 0x5a, 0x88, 0x39, + 0x4c, 0xff, 0x14, 0xa4, 0x63, 0x7e, 0xa2, 0x97, 0x61, 0x3c, 0x08, 0x76, 0x78, 0x7c, 0x3a, 0xf1, + 0x91, 0xe5, 0x54, 0xe0, 0x28, 0xc8, 0x9d, 0x78, 0xce, 0x17, 0xfd, 0xc4, 0x31, 0xfa, 0xa5, 0x17, + 0xbe, 0xfb, 0xe3, 0xab, 0x6f, 0xf9, 0xfe, 0x8f, 0xaf, 0xbe, 0xe5, 0x87, 0x3f, 0xbe, 0xfa, 0x96, + 0x5f, 0x38, 0xba, 0xaa, 0x7d, 0xf7, 0xe8, 0xaa, 0xf6, 0xfd, 0xa3, 0xab, 0xda, 0x0f, 0x8f, 0xae, + 0x6a, 0xff, 0xed, 0xe8, 0xaa, 0xf6, 0x95, 0xff, 0x7e, 0xf5, 0x2d, 0x2f, 0x3e, 0x11, 0x53, 0xbf, + 0x16, 0x11, 0x8d, 0xff, 0xe9, 0xee, 0xb6, 0xaf, 0x51, 0xea, 0xd1, 0xb3, 0x1a, 0x46, 0xfd, 0xaf, + 0x03, 0x00, 0x00, 0xff, 0xff, 0xfd, 0x35, 0x31, 0x8c, 0xee, 0xd5, 0x00, 0x00, } func (m *Addon) Marshal() (dAtA []byte, err error) { @@ -6026,6 +6031,30 @@ func (m *CARotation) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if m.LastCompletionTriggeredTime != nil { + { + size, err := m.LastCompletionTriggeredTime.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + if m.LastInitiationFinishedTime != nil { + { + size, err := m.LastInitiationFinishedTime.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } if m.LastInitiationTime != nil { { size, err := m.LastInitiationTime.MarshalToSizedBuffer(dAtA[:i]) @@ -12790,6 +12819,30 @@ func (m *ShootETCDEncryptionKeyRotation) MarshalToSizedBuffer(dAtA []byte) (int, _ = i var l int _ = l + if m.LastCompletionTriggeredTime != nil { + { + size, err := m.LastCompletionTriggeredTime.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + if m.LastInitiationFinishedTime != nil { + { + size, err := m.LastInitiationFinishedTime.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } if m.LastInitiationTime != nil { { size, err := m.LastInitiationTime.MarshalToSizedBuffer(dAtA[:i]) @@ -13114,6 +13167,30 @@ func (m *ShootServiceAccountKeyRotation) MarshalToSizedBuffer(dAtA []byte) (int, _ = i var l int _ = l + if m.LastCompletionTriggeredTime != nil { + { + size, err := m.LastCompletionTriggeredTime.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + if m.LastInitiationFinishedTime != nil { + { + size, err := m.LastInitiationFinishedTime.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } if m.LastInitiationTime != nil { { size, err := m.LastInitiationTime.MarshalToSizedBuffer(dAtA[:i]) @@ -14603,6 +14680,14 @@ func (m *CARotation) Size() (n int) { l = m.LastInitiationTime.Size() n += 1 + l + sovGenerated(uint64(l)) } + if m.LastInitiationFinishedTime != nil { + l = m.LastInitiationFinishedTime.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.LastCompletionTriggeredTime != nil { + l = m.LastCompletionTriggeredTime.Size() + n += 1 + l + sovGenerated(uint64(l)) + } return n } @@ -17122,6 +17207,14 @@ func (m *ShootETCDEncryptionKeyRotation) Size() (n int) { l = m.LastInitiationTime.Size() n += 1 + l + sovGenerated(uint64(l)) } + if m.LastInitiationFinishedTime != nil { + l = m.LastInitiationFinishedTime.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.LastCompletionTriggeredTime != nil { + l = m.LastCompletionTriggeredTime.Size() + n += 1 + l + sovGenerated(uint64(l)) + } return n } @@ -17245,6 +17338,14 @@ func (m *ShootServiceAccountKeyRotation) Size() (n int) { l = m.LastInitiationTime.Size() n += 1 + l + sovGenerated(uint64(l)) } + if m.LastInitiationFinishedTime != nil { + l = m.LastInitiationFinishedTime.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.LastCompletionTriggeredTime != nil { + l = m.LastCompletionTriggeredTime.Size() + n += 1 + l + sovGenerated(uint64(l)) + } return n } @@ -17880,6 +17981,8 @@ func (this *CARotation) String() string { `Phase:` + fmt.Sprintf("%v", this.Phase) + `,`, `LastCompletionTime:` + strings.Replace(fmt.Sprintf("%v", this.LastCompletionTime), "Time", "v11.Time", 1) + `,`, `LastInitiationTime:` + strings.Replace(fmt.Sprintf("%v", this.LastInitiationTime), "Time", "v11.Time", 1) + `,`, + `LastInitiationFinishedTime:` + strings.Replace(fmt.Sprintf("%v", this.LastInitiationFinishedTime), "Time", "v11.Time", 1) + `,`, + `LastCompletionTriggeredTime:` + strings.Replace(fmt.Sprintf("%v", this.LastCompletionTriggeredTime), "Time", "v11.Time", 1) + `,`, `}`, }, "") return s @@ -19620,6 +19723,8 @@ func (this *ShootETCDEncryptionKeyRotation) String() string { `Phase:` + fmt.Sprintf("%v", this.Phase) + `,`, `LastCompletionTime:` + strings.Replace(fmt.Sprintf("%v", this.LastCompletionTime), "Time", "v11.Time", 1) + `,`, `LastInitiationTime:` + strings.Replace(fmt.Sprintf("%v", this.LastInitiationTime), "Time", "v11.Time", 1) + `,`, + `LastInitiationFinishedTime:` + strings.Replace(fmt.Sprintf("%v", this.LastInitiationFinishedTime), "Time", "v11.Time", 1) + `,`, + `LastCompletionTriggeredTime:` + strings.Replace(fmt.Sprintf("%v", this.LastCompletionTriggeredTime), "Time", "v11.Time", 1) + `,`, `}`, }, "") return s @@ -19704,6 +19809,8 @@ func (this *ShootServiceAccountKeyRotation) String() string { `Phase:` + fmt.Sprintf("%v", this.Phase) + `,`, `LastCompletionTime:` + strings.Replace(fmt.Sprintf("%v", this.LastCompletionTime), "Time", "v11.Time", 1) + `,`, `LastInitiationTime:` + strings.Replace(fmt.Sprintf("%v", this.LastInitiationTime), "Time", "v11.Time", 1) + `,`, + `LastInitiationFinishedTime:` + strings.Replace(fmt.Sprintf("%v", this.LastInitiationFinishedTime), "Time", "v11.Time", 1) + `,`, + `LastCompletionTriggeredTime:` + strings.Replace(fmt.Sprintf("%v", this.LastCompletionTriggeredTime), "Time", "v11.Time", 1) + `,`, `}`, }, "") return s @@ -22220,6 +22327,78 @@ func (m *CARotation) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastInitiationFinishedTime", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.LastInitiationFinishedTime == nil { + m.LastInitiationFinishedTime = &v11.Time{} + } + if err := m.LastInitiationFinishedTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastCompletionTriggeredTime", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.LastCompletionTriggeredTime == nil { + m.LastCompletionTriggeredTime = &v11.Time{} + } + if err := m.LastCompletionTriggeredTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -42228,6 +42407,78 @@ func (m *ShootETCDEncryptionKeyRotation) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastInitiationFinishedTime", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.LastInitiationFinishedTime == nil { + m.LastInitiationFinishedTime = &v11.Time{} + } + if err := m.LastInitiationFinishedTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastCompletionTriggeredTime", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.LastCompletionTriggeredTime == nil { + m.LastCompletionTriggeredTime = &v11.Time{} + } + if err := m.LastCompletionTriggeredTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -43132,6 +43383,78 @@ func (m *ShootServiceAccountKeyRotation) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastInitiationFinishedTime", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.LastInitiationFinishedTime == nil { + m.LastInitiationFinishedTime = &v11.Time{} + } + if err := m.LastInitiationFinishedTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastCompletionTriggeredTime", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.LastCompletionTriggeredTime == nil { + m.LastCompletionTriggeredTime = &v11.Time{} + } + if err := m.LastCompletionTriggeredTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) diff --git a/pkg/apis/core/v1beta1/generated.proto b/pkg/apis/core/v1beta1/generated.proto index 4dcb68e85da..26dcb344610 100644 --- a/pkg/apis/core/v1beta1/generated.proto +++ b/pkg/apis/core/v1beta1/generated.proto @@ -237,14 +237,24 @@ message CARotation { // Phase describes the phase of the certificate authority credential rotation. optional string phase = 1; + // LastCompletionTime is the most recent time when the certificate authority credential rotation was successfully + // completed. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastCompletionTime = 2; + // LastInitiationTime is the most recent time when the certificate authority credential rotation was initiated. // +optional optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastInitiationTime = 3; - // LastCompletionTime is the most recent time when the certificate authority credential rotation was successfully + // LastInitiationFinishedTime is the recent time when the certificate authority credential rotation initiation was // completed. // +optional - optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastCompletionTime = 2; + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastInitiationFinishedTime = 4; + + // LastCompletionTriggeredTime is the recent time when the certificate authority credential rotation completion was + // triggered. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastCompletionTriggeredTime = 5; } // CRI contains information about the Container Runtimes. @@ -2318,14 +2328,24 @@ message ShootETCDEncryptionKeyRotation { // Phase describes the phase of the ETCD encryption key credential rotation. optional string phase = 1; + // LastCompletionTime is the most recent time when the ETCD encryption key credential rotation was successfully + // completed. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastCompletionTime = 2; + // LastInitiationTime is the most recent time when the ETCD encryption key credential rotation was initiated. // +optional optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastInitiationTime = 3; - // LastCompletionTime is the most recent time when the ETCD encryption key credential rotation was successfully + // LastInitiationFinishedTime is the recent time when the certificate authority credential rotation initiation was // completed. // +optional - optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastCompletionTime = 2; + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastInitiationFinishedTime = 4; + + // LastCompletionTriggeredTime is the recent time when the certificate authority credential rotation completion was + // triggered. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastCompletionTriggeredTime = 5; } // ShootKubeconfigRotation contains information about the kubeconfig credential rotation. @@ -2403,14 +2423,24 @@ message ShootServiceAccountKeyRotation { // Phase describes the phase of the service account key credential rotation. optional string phase = 1; + // LastCompletionTime is the most recent time when the service account key credential rotation was successfully + // completed. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastCompletionTime = 2; + // LastInitiationTime is the most recent time when the service account key credential rotation was initiated. // +optional optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastInitiationTime = 3; - // LastCompletionTime is the most recent time when the service account key credential rotation was successfully + // LastInitiationFinishedTime is the recent time when the certificate authority credential rotation initiation was // completed. // +optional - optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastCompletionTime = 2; + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastInitiationFinishedTime = 4; + + // LastCompletionTriggeredTime is the recent time when the certificate authority credential rotation completion was + // triggered. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastCompletionTriggeredTime = 5; } // ShootSpec is the specification of a Shoot. diff --git a/pkg/apis/core/v1beta1/types_common.go b/pkg/apis/core/v1beta1/types_common.go index 8c64f4c67f1..b4e0118385d 100644 --- a/pkg/apis/core/v1beta1/types_common.go +++ b/pkg/apis/core/v1beta1/types_common.go @@ -155,10 +155,6 @@ const ( EventMigrationPreparationFailed = "MigrationPreparationFailed" ) -////////////////////////////////////////////////////////////////////////////////////////////////// -// High Availability relevant types // -////////////////////////////////////////////////////////////////////////////////////////////////// - // HighAvailability specifies the configuration settings for high availability for a resource. Typical // usages could be to configure HA for shoot control plane or for seed system components. type HighAvailability struct { diff --git a/pkg/apis/core/v1beta1/types_shoot.go b/pkg/apis/core/v1beta1/types_shoot.go index dc127be29a8..8e473cd7737 100644 --- a/pkg/apis/core/v1beta1/types_shoot.go +++ b/pkg/apis/core/v1beta1/types_shoot.go @@ -247,13 +247,21 @@ type ShootCredentialsRotation struct { type CARotation struct { // Phase describes the phase of the certificate authority credential rotation. Phase CredentialsRotationPhase `json:"phase" protobuf:"bytes,1,opt,name=phase"` + // LastCompletionTime is the most recent time when the certificate authority credential rotation was successfully + // completed. + // +optional + LastCompletionTime *metav1.Time `json:"lastCompletionTime,omitempty" protobuf:"bytes,2,opt,name=lastCompletionTime"` // LastInitiationTime is the most recent time when the certificate authority credential rotation was initiated. // +optional LastInitiationTime *metav1.Time `json:"lastInitiationTime,omitempty" protobuf:"bytes,3,opt,name=lastInitiationTime"` - // LastCompletionTime is the most recent time when the certificate authority credential rotation was successfully + // LastInitiationFinishedTime is the recent time when the certificate authority credential rotation initiation was // completed. // +optional - LastCompletionTime *metav1.Time `json:"lastCompletionTime,omitempty" protobuf:"bytes,2,opt,name=lastCompletionTime"` + LastInitiationFinishedTime *metav1.Time `json:"lastInitiationFinishedTime,omitempty" protobuf:"bytes,4,opt,name=lastInitiationFinishedTime"` + // LastCompletionTriggeredTime is the recent time when the certificate authority credential rotation completion was + // triggered. + // +optional + LastCompletionTriggeredTime *metav1.Time `json:"lastCompletionTriggeredTime,omitempty" protobuf:"bytes,5,opt,name=lastCompletionTriggeredTime"` } // ShootKubeconfigRotation contains information about the kubeconfig credential rotation. @@ -290,26 +298,42 @@ type ShootObservabilityRotation struct { type ShootServiceAccountKeyRotation struct { // Phase describes the phase of the service account key credential rotation. Phase CredentialsRotationPhase `json:"phase" protobuf:"bytes,1,opt,name=phase"` + // LastCompletionTime is the most recent time when the service account key credential rotation was successfully + // completed. + // +optional + LastCompletionTime *metav1.Time `json:"lastCompletionTime,omitempty" protobuf:"bytes,2,opt,name=lastCompletionTime"` // LastInitiationTime is the most recent time when the service account key credential rotation was initiated. // +optional LastInitiationTime *metav1.Time `json:"lastInitiationTime,omitempty" protobuf:"bytes,3,opt,name=lastInitiationTime"` - // LastCompletionTime is the most recent time when the service account key credential rotation was successfully + // LastInitiationFinishedTime is the recent time when the certificate authority credential rotation initiation was // completed. // +optional - LastCompletionTime *metav1.Time `json:"lastCompletionTime,omitempty" protobuf:"bytes,2,opt,name=lastCompletionTime"` + LastInitiationFinishedTime *metav1.Time `json:"lastInitiationFinishedTime,omitempty" protobuf:"bytes,4,opt,name=lastInitiationFinishedTime"` + // LastCompletionTriggeredTime is the recent time when the certificate authority credential rotation completion was + // triggered. + // +optional + LastCompletionTriggeredTime *metav1.Time `json:"lastCompletionTriggeredTime,omitempty" protobuf:"bytes,5,opt,name=lastCompletionTriggeredTime"` } // ShootETCDEncryptionKeyRotation contains information about the ETCD encryption key credential rotation. type ShootETCDEncryptionKeyRotation struct { // Phase describes the phase of the ETCD encryption key credential rotation. Phase CredentialsRotationPhase `json:"phase" protobuf:"bytes,1,opt,name=phase"` + // LastCompletionTime is the most recent time when the ETCD encryption key credential rotation was successfully + // completed. + // +optional + LastCompletionTime *metav1.Time `json:"lastCompletionTime,omitempty" protobuf:"bytes,2,opt,name=lastCompletionTime"` // LastInitiationTime is the most recent time when the ETCD encryption key credential rotation was initiated. // +optional LastInitiationTime *metav1.Time `json:"lastInitiationTime,omitempty" protobuf:"bytes,3,opt,name=lastInitiationTime"` - // LastCompletionTime is the most recent time when the ETCD encryption key credential rotation was successfully + // LastInitiationFinishedTime is the recent time when the certificate authority credential rotation initiation was // completed. // +optional - LastCompletionTime *metav1.Time `json:"lastCompletionTime,omitempty" protobuf:"bytes,2,opt,name=lastCompletionTime"` + LastInitiationFinishedTime *metav1.Time `json:"lastInitiationFinishedTime,omitempty" protobuf:"bytes,4,opt,name=lastInitiationFinishedTime"` + // LastCompletionTriggeredTime is the recent time when the certificate authority credential rotation completion was + // triggered. + // +optional + LastCompletionTriggeredTime *metav1.Time `json:"lastCompletionTriggeredTime,omitempty" protobuf:"bytes,5,opt,name=lastCompletionTriggeredTime"` } // CredentialsRotationPhase is a string alias. @@ -335,10 +359,6 @@ type ShootAdvertisedAddress struct { URL string `json:"url" protobuf:"bytes,2,opt,name=url"` } -////////////////////////////////////////////////////////////////////////////////////////////////// -// Addons relevant types // -////////////////////////////////////////////////////////////////////////////////////////////////// - // Addons is a collection of configuration for specific addons which are managed by the Gardener. type Addons struct { // KubernetesDashboard holds configuration settings for the kubernetes dashboard addon. @@ -387,10 +407,6 @@ type NginxIngress struct { ExternalTrafficPolicy *corev1.ServiceExternalTrafficPolicyType `json:"externalTrafficPolicy,omitempty" protobuf:"bytes,4,opt,name=externalTrafficPolicy,casttype=k8s.io/api/core/v1.ServiceExternalTrafficPolicyType"` } -////////////////////////////////////////////////////////////////////////////////////////////////// -// ControlPlane relevant types // -////////////////////////////////////////////////////////////////////////////////////////////////// - // ControlPlane holds information about the general settings for the control plane of a shoot. type ControlPlane struct { // HighAvailability holds the configuration settings for high availability of the @@ -399,10 +415,6 @@ type ControlPlane struct { HighAvailability *HighAvailability `json:"highAvailability,omitempty" protobuf:"bytes,1,name=highAvailability"` } -////////////////////////////////////////////////////////////////////////////////////////////////// -// DNS relevant types // -////////////////////////////////////////////////////////////////////////////////////////////////// - // DNS holds information about the provider, the hosted zone id and the domain. type DNS struct { // Domain is the external available domain of the Shoot cluster. This domain will be written into the @@ -452,10 +464,6 @@ type DNSIncludeExclude struct { // DefaultDomain is the default value in the Shoot's '.spec.dns.domain' when '.spec.dns.provider' is 'unmanaged' const DefaultDomain = "cluster.local" -////////////////////////////////////////////////////////////////////////////////////////////////// -// Extension relevant types // -////////////////////////////////////////////////////////////////////////////////////////////////// - // Extension contains type and provider information for Shoot extensions. type Extension struct { // Type is the type of the extension resource. @@ -468,10 +476,6 @@ type Extension struct { Disabled *bool `json:"disabled,omitempty" protobuf:"varint,3,opt,name=disabled"` } -////////////////////////////////////////////////////////////////////////////////////////////////// -// NamedResourceReference relevant types // -////////////////////////////////////////////////////////////////////////////////////////////////// - // NamedResourceReference is a named reference to a resource. type NamedResourceReference struct { // Name of the resource reference. @@ -480,10 +484,6 @@ type NamedResourceReference struct { ResourceRef autoscalingv1.CrossVersionObjectReference `json:"resourceRef" protobuf:"bytes,2,opt,name=resourceRef"` } -////////////////////////////////////////////////////////////////////////////////////////////////// -// Hibernation relevant types // -////////////////////////////////////////////////////////////////////////////////////////////////// - // Hibernation contains information whether the Shoot is suspended or not. type Hibernation struct { // Enabled specifies whether the Shoot needs to be hibernated or not. If it is true, the Shoot's desired state is to be hibernated. @@ -510,10 +510,6 @@ type HibernationSchedule struct { Location *string `json:"location,omitempty" protobuf:"bytes,3,opt,name=location"` } -////////////////////////////////////////////////////////////////////////////////////////////////// -// Kubernetes relevant types // -////////////////////////////////////////////////////////////////////////////////////////////////// - // Kubernetes contains the version and configuration variables for the Shoot control plane. type Kubernetes struct { // AllowPrivilegedContainers indicates whether privileged containers are allowed in the Shoot. @@ -1174,10 +1170,6 @@ type KubeletConfigReserved struct { PID *resource.Quantity `json:"pid,omitempty" protobuf:"bytes,4,opt,name=pid"` } -////////////////////////////////////////////////////////////////////////////////////////////////// -// Networking relevant types // -////////////////////////////////////////////////////////////////////////////////////////////////// - // Networking defines networking parameters for the shoot cluster. type Networking struct { // Type identifies the type of the networking plugin. This field is immutable. @@ -1203,10 +1195,6 @@ const ( DefaultServiceNetworkCIDR = "100.64.0.0/13" ) -////////////////////////////////////////////////////////////////////////////////////////////////// -// Maintenance relevant types // -////////////////////////////////////////////////////////////////////////////////////////////////// - const ( // MaintenanceTimeWindowDurationMinimum is the minimum duration for a maintenance time window. MaintenanceTimeWindowDurationMinimum = 30 * time.Minute @@ -1252,10 +1240,6 @@ type MaintenanceTimeWindow struct { End string `json:"end" protobuf:"bytes,2,opt,name=end"` } -////////////////////////////////////////////////////////////////////////////////////////////////// -// Monitoring relevant types // -////////////////////////////////////////////////////////////////////////////////////////////////// - // Monitoring contains information about the monitoring configuration for the shoot. type Monitoring struct { // Alerting contains information about the alerting configuration for the shoot cluster. @@ -1270,10 +1254,6 @@ type Alerting struct { EmailReceivers []string `json:"emailReceivers,omitempty" protobuf:"bytes,1,rep,name=emailReceivers"` } -////////////////////////////////////////////////////////////////////////////////////////////////// -// Provider relevant types // -////////////////////////////////////////////////////////////////////////////////////////////////// - // Provider contains provider-specific information that are handed-over to the provider-specific // extension controller. type Provider struct { @@ -1502,10 +1482,6 @@ var ( DefaultWorkerSystemComponentsAllow = true ) -////////////////////////////////////////////////////////////////////////////////////////////////// -// System components relevant types // -////////////////////////////////////////////////////////////////////////////////////////////////// - // SystemComponents contains the settings of system components in the control or data plane of the Shoot cluster. type SystemComponents struct { // CoreDNS contains the settings of the Core DNS components running in the data plane of the Shoot cluster. @@ -1568,10 +1544,6 @@ type NodeLocalDNS struct { DisableForwardToUpstreamDNS *bool `json:"disableForwardToUpstreamDNS,omitempty" protobuf:"varint,4,opt,name=disableForwardToUpstreamDNS"` } -////////////////////////////////////////////////////////////////////////////////////////////////// -// Other/miscellaneous constants and types // -////////////////////////////////////////////////////////////////////////////////////////////////// - const ( // ShootMaintenanceFailed indicates that a shoot maintenance operation failed. ShootMaintenanceFailed = "MaintenanceFailed" diff --git a/pkg/apis/core/v1beta1/zz_generated.conversion.go b/pkg/apis/core/v1beta1/zz_generated.conversion.go index c596dc1ebab..985f804dfcb 100644 --- a/pkg/apis/core/v1beta1/zz_generated.conversion.go +++ b/pkg/apis/core/v1beta1/zz_generated.conversion.go @@ -1985,8 +1985,10 @@ func Convert_core_BackupEntryStatus_To_v1beta1_BackupEntryStatus(in *core.Backup func autoConvert_v1beta1_CARotation_To_core_CARotation(in *CARotation, out *core.CARotation, s conversion.Scope) error { out.Phase = core.CredentialsRotationPhase(in.Phase) - out.LastInitiationTime = (*metav1.Time)(unsafe.Pointer(in.LastInitiationTime)) out.LastCompletionTime = (*metav1.Time)(unsafe.Pointer(in.LastCompletionTime)) + out.LastInitiationTime = (*metav1.Time)(unsafe.Pointer(in.LastInitiationTime)) + out.LastInitiationFinishedTime = (*metav1.Time)(unsafe.Pointer(in.LastInitiationFinishedTime)) + out.LastCompletionTriggeredTime = (*metav1.Time)(unsafe.Pointer(in.LastCompletionTriggeredTime)) return nil } @@ -1998,7 +2000,9 @@ func Convert_v1beta1_CARotation_To_core_CARotation(in *CARotation, out *core.CAR func autoConvert_core_CARotation_To_v1beta1_CARotation(in *core.CARotation, out *CARotation, s conversion.Scope) error { out.Phase = CredentialsRotationPhase(in.Phase) out.LastInitiationTime = (*metav1.Time)(unsafe.Pointer(in.LastInitiationTime)) + out.LastInitiationFinishedTime = (*metav1.Time)(unsafe.Pointer(in.LastInitiationFinishedTime)) out.LastCompletionTime = (*metav1.Time)(unsafe.Pointer(in.LastCompletionTime)) + out.LastCompletionTriggeredTime = (*metav1.Time)(unsafe.Pointer(in.LastCompletionTriggeredTime)) return nil } @@ -5180,8 +5184,10 @@ func Convert_core_ShootCredentialsRotation_To_v1beta1_ShootCredentialsRotation(i func autoConvert_v1beta1_ShootETCDEncryptionKeyRotation_To_core_ShootETCDEncryptionKeyRotation(in *ShootETCDEncryptionKeyRotation, out *core.ShootETCDEncryptionKeyRotation, s conversion.Scope) error { out.Phase = core.CredentialsRotationPhase(in.Phase) - out.LastInitiationTime = (*metav1.Time)(unsafe.Pointer(in.LastInitiationTime)) out.LastCompletionTime = (*metav1.Time)(unsafe.Pointer(in.LastCompletionTime)) + out.LastInitiationTime = (*metav1.Time)(unsafe.Pointer(in.LastInitiationTime)) + out.LastInitiationFinishedTime = (*metav1.Time)(unsafe.Pointer(in.LastInitiationFinishedTime)) + out.LastCompletionTriggeredTime = (*metav1.Time)(unsafe.Pointer(in.LastCompletionTriggeredTime)) return nil } @@ -5193,7 +5199,9 @@ func Convert_v1beta1_ShootETCDEncryptionKeyRotation_To_core_ShootETCDEncryptionK func autoConvert_core_ShootETCDEncryptionKeyRotation_To_v1beta1_ShootETCDEncryptionKeyRotation(in *core.ShootETCDEncryptionKeyRotation, out *ShootETCDEncryptionKeyRotation, s conversion.Scope) error { out.Phase = CredentialsRotationPhase(in.Phase) out.LastInitiationTime = (*metav1.Time)(unsafe.Pointer(in.LastInitiationTime)) + out.LastInitiationFinishedTime = (*metav1.Time)(unsafe.Pointer(in.LastInitiationFinishedTime)) out.LastCompletionTime = (*metav1.Time)(unsafe.Pointer(in.LastCompletionTime)) + out.LastCompletionTriggeredTime = (*metav1.Time)(unsafe.Pointer(in.LastCompletionTriggeredTime)) return nil } @@ -5362,8 +5370,10 @@ func Convert_core_ShootSSHKeypairRotation_To_v1beta1_ShootSSHKeypairRotation(in func autoConvert_v1beta1_ShootServiceAccountKeyRotation_To_core_ShootServiceAccountKeyRotation(in *ShootServiceAccountKeyRotation, out *core.ShootServiceAccountKeyRotation, s conversion.Scope) error { out.Phase = core.CredentialsRotationPhase(in.Phase) - out.LastInitiationTime = (*metav1.Time)(unsafe.Pointer(in.LastInitiationTime)) out.LastCompletionTime = (*metav1.Time)(unsafe.Pointer(in.LastCompletionTime)) + out.LastInitiationTime = (*metav1.Time)(unsafe.Pointer(in.LastInitiationTime)) + out.LastInitiationFinishedTime = (*metav1.Time)(unsafe.Pointer(in.LastInitiationFinishedTime)) + out.LastCompletionTriggeredTime = (*metav1.Time)(unsafe.Pointer(in.LastCompletionTriggeredTime)) return nil } @@ -5375,7 +5385,9 @@ func Convert_v1beta1_ShootServiceAccountKeyRotation_To_core_ShootServiceAccountK func autoConvert_core_ShootServiceAccountKeyRotation_To_v1beta1_ShootServiceAccountKeyRotation(in *core.ShootServiceAccountKeyRotation, out *ShootServiceAccountKeyRotation, s conversion.Scope) error { out.Phase = CredentialsRotationPhase(in.Phase) out.LastInitiationTime = (*metav1.Time)(unsafe.Pointer(in.LastInitiationTime)) + out.LastInitiationFinishedTime = (*metav1.Time)(unsafe.Pointer(in.LastInitiationFinishedTime)) out.LastCompletionTime = (*metav1.Time)(unsafe.Pointer(in.LastCompletionTime)) + out.LastCompletionTriggeredTime = (*metav1.Time)(unsafe.Pointer(in.LastCompletionTriggeredTime)) return nil } diff --git a/pkg/apis/core/v1beta1/zz_generated.deepcopy.go b/pkg/apis/core/v1beta1/zz_generated.deepcopy.go index 9054e0f7a2b..37af7e43257 100644 --- a/pkg/apis/core/v1beta1/zz_generated.deepcopy.go +++ b/pkg/apis/core/v1beta1/zz_generated.deepcopy.go @@ -447,12 +447,20 @@ func (in *BackupEntryStatus) DeepCopy() *BackupEntryStatus { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *CARotation) DeepCopyInto(out *CARotation) { *out = *in + if in.LastCompletionTime != nil { + in, out := &in.LastCompletionTime, &out.LastCompletionTime + *out = (*in).DeepCopy() + } if in.LastInitiationTime != nil { in, out := &in.LastInitiationTime, &out.LastInitiationTime *out = (*in).DeepCopy() } - if in.LastCompletionTime != nil { - in, out := &in.LastCompletionTime, &out.LastCompletionTime + if in.LastInitiationFinishedTime != nil { + in, out := &in.LastInitiationFinishedTime, &out.LastInitiationFinishedTime + *out = (*in).DeepCopy() + } + if in.LastCompletionTriggeredTime != nil { + in, out := &in.LastCompletionTriggeredTime, &out.LastCompletionTriggeredTime *out = (*in).DeepCopy() } return @@ -4001,12 +4009,20 @@ func (in *ShootCredentialsRotation) DeepCopy() *ShootCredentialsRotation { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ShootETCDEncryptionKeyRotation) DeepCopyInto(out *ShootETCDEncryptionKeyRotation) { *out = *in + if in.LastCompletionTime != nil { + in, out := &in.LastCompletionTime, &out.LastCompletionTime + *out = (*in).DeepCopy() + } if in.LastInitiationTime != nil { in, out := &in.LastInitiationTime, &out.LastInitiationTime *out = (*in).DeepCopy() } - if in.LastCompletionTime != nil { - in, out := &in.LastCompletionTime, &out.LastCompletionTime + if in.LastInitiationFinishedTime != nil { + in, out := &in.LastInitiationFinishedTime, &out.LastInitiationFinishedTime + *out = (*in).DeepCopy() + } + if in.LastCompletionTriggeredTime != nil { + in, out := &in.LastCompletionTriggeredTime, &out.LastCompletionTriggeredTime *out = (*in).DeepCopy() } return @@ -4182,12 +4198,20 @@ func (in *ShootSSHKeypairRotation) DeepCopy() *ShootSSHKeypairRotation { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ShootServiceAccountKeyRotation) DeepCopyInto(out *ShootServiceAccountKeyRotation) { *out = *in + if in.LastCompletionTime != nil { + in, out := &in.LastCompletionTime, &out.LastCompletionTime + *out = (*in).DeepCopy() + } if in.LastInitiationTime != nil { in, out := &in.LastInitiationTime, &out.LastInitiationTime *out = (*in).DeepCopy() } - if in.LastCompletionTime != nil { - in, out := &in.LastCompletionTime, &out.LastCompletionTime + if in.LastInitiationFinishedTime != nil { + in, out := &in.LastInitiationFinishedTime, &out.LastInitiationFinishedTime + *out = (*in).DeepCopy() + } + if in.LastCompletionTriggeredTime != nil { + in, out := &in.LastCompletionTriggeredTime, &out.LastCompletionTriggeredTime *out = (*in).DeepCopy() } return diff --git a/pkg/apis/core/zz_generated.deepcopy.go b/pkg/apis/core/zz_generated.deepcopy.go index b7575370ec0..a1e05c28cd2 100644 --- a/pkg/apis/core/zz_generated.deepcopy.go +++ b/pkg/apis/core/zz_generated.deepcopy.go @@ -451,10 +451,18 @@ func (in *CARotation) DeepCopyInto(out *CARotation) { in, out := &in.LastInitiationTime, &out.LastInitiationTime *out = (*in).DeepCopy() } + if in.LastInitiationFinishedTime != nil { + in, out := &in.LastInitiationFinishedTime, &out.LastInitiationFinishedTime + *out = (*in).DeepCopy() + } if in.LastCompletionTime != nil { in, out := &in.LastCompletionTime, &out.LastCompletionTime *out = (*in).DeepCopy() } + if in.LastCompletionTriggeredTime != nil { + in, out := &in.LastCompletionTriggeredTime, &out.LastCompletionTriggeredTime + *out = (*in).DeepCopy() + } return } @@ -4177,10 +4185,18 @@ func (in *ShootETCDEncryptionKeyRotation) DeepCopyInto(out *ShootETCDEncryptionK in, out := &in.LastInitiationTime, &out.LastInitiationTime *out = (*in).DeepCopy() } + if in.LastInitiationFinishedTime != nil { + in, out := &in.LastInitiationFinishedTime, &out.LastInitiationFinishedTime + *out = (*in).DeepCopy() + } if in.LastCompletionTime != nil { in, out := &in.LastCompletionTime, &out.LastCompletionTime *out = (*in).DeepCopy() } + if in.LastCompletionTriggeredTime != nil { + in, out := &in.LastCompletionTriggeredTime, &out.LastCompletionTriggeredTime + *out = (*in).DeepCopy() + } return } @@ -4353,10 +4369,18 @@ func (in *ShootServiceAccountKeyRotation) DeepCopyInto(out *ShootServiceAccountK in, out := &in.LastInitiationTime, &out.LastInitiationTime *out = (*in).DeepCopy() } + if in.LastInitiationFinishedTime != nil { + in, out := &in.LastInitiationFinishedTime, &out.LastInitiationFinishedTime + *out = (*in).DeepCopy() + } if in.LastCompletionTime != nil { in, out := &in.LastCompletionTime, &out.LastCompletionTime *out = (*in).DeepCopy() } + if in.LastCompletionTriggeredTime != nil { + in, out := &in.LastCompletionTriggeredTime, &out.LastCompletionTriggeredTime + *out = (*in).DeepCopy() + } return } diff --git a/pkg/gardenlet/controller/shoot/shoot/reconciler.go b/pkg/gardenlet/controller/shoot/shoot/reconciler.go index 7d4508e06c0..7ae69d5f54f 100644 --- a/pkg/gardenlet/controller/shoot/shoot/reconciler.go +++ b/pkg/gardenlet/controller/shoot/shoot/reconciler.go @@ -539,16 +539,16 @@ func (r *Reconciler) updateShootStatusOperationStart( startRotationETCDEncryptionKey(shoot, &now) case v1beta1constants.OperationRotateCredentialsComplete: mustRemoveOperationAnnotation = true - completeRotationCA(shoot) - completeRotationServiceAccountKey(shoot) - completeRotationETCDEncryptionKey(shoot) + completeRotationCA(shoot, &now) + completeRotationServiceAccountKey(shoot, &now) + completeRotationETCDEncryptionKey(shoot, &now) case v1beta1constants.OperationRotateCAStart: mustRemoveOperationAnnotation = true startRotationCA(shoot, &now) case v1beta1constants.OperationRotateCAComplete: mustRemoveOperationAnnotation = true - completeRotationCA(shoot) + completeRotationCA(shoot, &now) case v1beta1constants.ShootOperationRotateKubeconfigCredentials: mustRemoveOperationAnnotation = true @@ -567,14 +567,14 @@ func (r *Reconciler) updateShootStatusOperationStart( startRotationServiceAccountKey(shoot, &now) case v1beta1constants.OperationRotateServiceAccountKeyComplete: mustRemoveOperationAnnotation = true - completeRotationServiceAccountKey(shoot) + completeRotationServiceAccountKey(shoot, &now) case v1beta1constants.OperationRotateETCDEncryptionKeyStart: mustRemoveOperationAnnotation = true startRotationETCDEncryptionKey(shoot, &now) case v1beta1constants.OperationRotateETCDEncryptionKeyComplete: mustRemoveOperationAnnotation = true - completeRotationETCDEncryptionKey(shoot) + completeRotationETCDEncryptionKey(shoot, &now) } if err := r.GardenClient.Status().Update(ctx, shoot); err != nil { @@ -674,12 +674,15 @@ func (r *Reconciler) patchShootStatusOperationSuccess( case gardencorev1beta1.RotationPreparing: v1beta1helper.MutateShootCARotation(shoot, func(rotation *gardencorev1beta1.CARotation) { rotation.Phase = gardencorev1beta1.RotationPrepared + rotation.LastInitiationFinishedTime = &now }) case gardencorev1beta1.RotationCompleting: v1beta1helper.MutateShootCARotation(shoot, func(rotation *gardencorev1beta1.CARotation) { rotation.Phase = gardencorev1beta1.RotationCompleted rotation.LastCompletionTime = &now + rotation.LastInitiationFinishedTime = nil + rotation.LastCompletionTriggeredTime = nil }) } @@ -687,12 +690,15 @@ func (r *Reconciler) patchShootStatusOperationSuccess( case gardencorev1beta1.RotationPreparing: v1beta1helper.MutateShootServiceAccountKeyRotation(shoot, func(rotation *gardencorev1beta1.ShootServiceAccountKeyRotation) { rotation.Phase = gardencorev1beta1.RotationPrepared + rotation.LastInitiationFinishedTime = &now }) case gardencorev1beta1.RotationCompleting: v1beta1helper.MutateShootServiceAccountKeyRotation(shoot, func(rotation *gardencorev1beta1.ShootServiceAccountKeyRotation) { rotation.Phase = gardencorev1beta1.RotationCompleted rotation.LastCompletionTime = &now + rotation.LastInitiationFinishedTime = nil + rotation.LastCompletionTriggeredTime = nil }) } @@ -700,12 +706,15 @@ func (r *Reconciler) patchShootStatusOperationSuccess( case gardencorev1beta1.RotationPreparing: v1beta1helper.MutateShootETCDEncryptionKeyRotation(shoot, func(rotation *gardencorev1beta1.ShootETCDEncryptionKeyRotation) { rotation.Phase = gardencorev1beta1.RotationPrepared + rotation.LastInitiationFinishedTime = &now }) case gardencorev1beta1.RotationCompleting: v1beta1helper.MutateShootETCDEncryptionKeyRotation(shoot, func(rotation *gardencorev1beta1.ShootETCDEncryptionKeyRotation) { rotation.Phase = gardencorev1beta1.RotationCompleted rotation.LastCompletionTime = &now + rotation.LastInitiationFinishedTime = nil + rotation.LastCompletionTriggeredTime = nil }) } @@ -872,12 +881,15 @@ func startRotationCA(shoot *gardencorev1beta1.Shoot, now *metav1.Time) { v1beta1helper.MutateShootCARotation(shoot, func(rotation *gardencorev1beta1.CARotation) { rotation.Phase = gardencorev1beta1.RotationPreparing rotation.LastInitiationTime = now + rotation.LastInitiationFinishedTime = nil + rotation.LastCompletionTriggeredTime = nil }) } -func completeRotationCA(shoot *gardencorev1beta1.Shoot) { +func completeRotationCA(shoot *gardencorev1beta1.Shoot, now *metav1.Time) { v1beta1helper.MutateShootCARotation(shoot, func(rotation *gardencorev1beta1.CARotation) { rotation.Phase = gardencorev1beta1.RotationCompleting + rotation.LastCompletionTriggeredTime = now }) } @@ -885,12 +897,15 @@ func startRotationServiceAccountKey(shoot *gardencorev1beta1.Shoot, now *metav1. v1beta1helper.MutateShootServiceAccountKeyRotation(shoot, func(rotation *gardencorev1beta1.ShootServiceAccountKeyRotation) { rotation.Phase = gardencorev1beta1.RotationPreparing rotation.LastInitiationTime = now + rotation.LastInitiationFinishedTime = nil + rotation.LastCompletionTriggeredTime = nil }) } -func completeRotationServiceAccountKey(shoot *gardencorev1beta1.Shoot) { +func completeRotationServiceAccountKey(shoot *gardencorev1beta1.Shoot, now *metav1.Time) { v1beta1helper.MutateShootServiceAccountKeyRotation(shoot, func(rotation *gardencorev1beta1.ShootServiceAccountKeyRotation) { rotation.Phase = gardencorev1beta1.RotationCompleting + rotation.LastCompletionTriggeredTime = now }) } @@ -898,12 +913,15 @@ func startRotationETCDEncryptionKey(shoot *gardencorev1beta1.Shoot, now *metav1. v1beta1helper.MutateShootETCDEncryptionKeyRotation(shoot, func(rotation *gardencorev1beta1.ShootETCDEncryptionKeyRotation) { rotation.Phase = gardencorev1beta1.RotationPreparing rotation.LastInitiationTime = now + rotation.LastInitiationFinishedTime = nil + rotation.LastCompletionTriggeredTime = nil }) } -func completeRotationETCDEncryptionKey(shoot *gardencorev1beta1.Shoot) { +func completeRotationETCDEncryptionKey(shoot *gardencorev1beta1.Shoot, now *metav1.Time) { v1beta1helper.MutateShootETCDEncryptionKeyRotation(shoot, func(rotation *gardencorev1beta1.ShootETCDEncryptionKeyRotation) { rotation.Phase = gardencorev1beta1.RotationCompleting + rotation.LastCompletionTriggeredTime = now }) } diff --git a/pkg/openapi/openapi_generated.go b/pkg/openapi/openapi_generated.go index aa55cfcf978..b9ae28e2f6f 100644 --- a/pkg/openapi/openapi_generated.go +++ b/pkg/openapi/openapi_generated.go @@ -1430,15 +1430,27 @@ func schema_pkg_apis_core_v1alpha1_CARotation(ref common.ReferenceCallback) comm Format: "", }, }, + "lastCompletionTime": { + SchemaProps: spec.SchemaProps{ + Description: "LastCompletionTime is the most recent time when the certificate authority credential rotation was successfully completed.", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, "lastInitiationTime": { SchemaProps: spec.SchemaProps{ Description: "LastInitiationTime is the most recent time when the certificate authority credential rotation was initiated.", Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), }, }, - "lastCompletionTime": { + "lastInitiationFinishedTime": { SchemaProps: spec.SchemaProps{ - Description: "LastCompletionTime is the most recent time when the certificate authority credential rotation was successfully completed.", + Description: "LastInitiationFinishedTime is the recent time when the certificate authority credential rotation initiation was completed.", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, + "lastCompletionTriggeredTime": { + SchemaProps: spec.SchemaProps{ + Description: "LastCompletionTriggeredTime is the recent time when the certificate authority credential rotation completion was triggered.", Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), }, }, @@ -7122,15 +7134,27 @@ func schema_pkg_apis_core_v1alpha1_ShootETCDEncryptionKeyRotation(ref common.Ref Format: "", }, }, + "lastCompletionTime": { + SchemaProps: spec.SchemaProps{ + Description: "LastCompletionTime is the most recent time when the ETCD encryption key credential rotation was successfully completed.", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, "lastInitiationTime": { SchemaProps: spec.SchemaProps{ Description: "LastInitiationTime is the most recent time when the ETCD encryption key credential rotation was initiated.", Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), }, }, - "lastCompletionTime": { + "lastInitiationFinishedTime": { SchemaProps: spec.SchemaProps{ - Description: "LastCompletionTime is the most recent time when the ETCD encryption key credential rotation was successfully completed.", + Description: "LastInitiationFinishedTime is the recent time when the certificate authority credential rotation initiation was completed.", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, + "lastCompletionTriggeredTime": { + SchemaProps: spec.SchemaProps{ + Description: "LastCompletionTriggeredTime is the recent time when the certificate authority credential rotation completion was triggered.", Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), }, }, @@ -7354,15 +7378,27 @@ func schema_pkg_apis_core_v1alpha1_ShootServiceAccountKeyRotation(ref common.Ref Format: "", }, }, + "lastCompletionTime": { + SchemaProps: spec.SchemaProps{ + Description: "LastCompletionTime is the most recent time when the service account key credential rotation was successfully completed.", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, "lastInitiationTime": { SchemaProps: spec.SchemaProps{ Description: "LastInitiationTime is the most recent time when the service account key credential rotation was initiated.", Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), }, }, - "lastCompletionTime": { + "lastInitiationFinishedTime": { SchemaProps: spec.SchemaProps{ - Description: "LastCompletionTime is the most recent time when the service account key credential rotation was successfully completed.", + Description: "LastInitiationFinishedTime is the recent time when the certificate authority credential rotation initiation was completed.", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, + "lastCompletionTriggeredTime": { + SchemaProps: spec.SchemaProps{ + Description: "LastCompletionTriggeredTime is the recent time when the certificate authority credential rotation completion was triggered.", Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), }, }, @@ -9021,15 +9057,27 @@ func schema_pkg_apis_core_v1beta1_CARotation(ref common.ReferenceCallback) commo Format: "", }, }, + "lastCompletionTime": { + SchemaProps: spec.SchemaProps{ + Description: "LastCompletionTime is the most recent time when the certificate authority credential rotation was successfully completed.", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, "lastInitiationTime": { SchemaProps: spec.SchemaProps{ Description: "LastInitiationTime is the most recent time when the certificate authority credential rotation was initiated.", Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), }, }, - "lastCompletionTime": { + "lastInitiationFinishedTime": { SchemaProps: spec.SchemaProps{ - Description: "LastCompletionTime is the most recent time when the certificate authority credential rotation was successfully completed.", + Description: "LastInitiationFinishedTime is the recent time when the certificate authority credential rotation initiation was completed.", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, + "lastCompletionTriggeredTime": { + SchemaProps: spec.SchemaProps{ + Description: "LastCompletionTriggeredTime is the recent time when the certificate authority credential rotation completion was triggered.", Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), }, }, @@ -14470,15 +14518,27 @@ func schema_pkg_apis_core_v1beta1_ShootETCDEncryptionKeyRotation(ref common.Refe Format: "", }, }, + "lastCompletionTime": { + SchemaProps: spec.SchemaProps{ + Description: "LastCompletionTime is the most recent time when the ETCD encryption key credential rotation was successfully completed.", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, "lastInitiationTime": { SchemaProps: spec.SchemaProps{ Description: "LastInitiationTime is the most recent time when the ETCD encryption key credential rotation was initiated.", Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), }, }, - "lastCompletionTime": { + "lastInitiationFinishedTime": { SchemaProps: spec.SchemaProps{ - Description: "LastCompletionTime is the most recent time when the ETCD encryption key credential rotation was successfully completed.", + Description: "LastInitiationFinishedTime is the recent time when the certificate authority credential rotation initiation was completed.", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, + "lastCompletionTriggeredTime": { + SchemaProps: spec.SchemaProps{ + Description: "LastCompletionTriggeredTime is the recent time when the certificate authority credential rotation completion was triggered.", Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), }, }, @@ -14702,15 +14762,27 @@ func schema_pkg_apis_core_v1beta1_ShootServiceAccountKeyRotation(ref common.Refe Format: "", }, }, + "lastCompletionTime": { + SchemaProps: spec.SchemaProps{ + Description: "LastCompletionTime is the most recent time when the service account key credential rotation was successfully completed.", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, "lastInitiationTime": { SchemaProps: spec.SchemaProps{ Description: "LastInitiationTime is the most recent time when the service account key credential rotation was initiated.", Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), }, }, - "lastCompletionTime": { + "lastInitiationFinishedTime": { SchemaProps: spec.SchemaProps{ - Description: "LastCompletionTime is the most recent time when the service account key credential rotation was successfully completed.", + Description: "LastInitiationFinishedTime is the recent time when the certificate authority credential rotation initiation was completed.", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, + "lastCompletionTriggeredTime": { + SchemaProps: spec.SchemaProps{ + Description: "LastCompletionTriggeredTime is the recent time when the certificate authority credential rotation completion was triggered.", Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), }, }, diff --git a/pkg/operation/botanist/secrets.go b/pkg/operation/botanist/secrets.go index 6368cbb3c81..6edb84f4518 100644 --- a/pkg/operation/botanist/secrets.go +++ b/pkg/operation/botanist/secrets.go @@ -526,21 +526,38 @@ func (b *Botanist) DeleteOldServiceAccountSecrets(ctx context.Context) error { log := b.Logger.WithValues("serviceAccount", client.ObjectKeyFromObject(&serviceAccount)) taskFns = append(taskFns, func(ctx context.Context) error { - // If the ServiceAccount has none or only one secret then there is nothing left to clean up. Otherwise, we - // should drop all secrets except for the first one in the list (which is the most recent secret signed with - // the new token key). - if len(serviceAccount.Secrets) <= 1 { - return nil + // Wait until we are allowed by the limiter to not overload the kube-apiserver with too many requests. + if err := limiter.Wait(ctx); err != nil { + return err } - var secretsToDelete []client.Object - for _, secretReference := range serviceAccount.Secrets[1:] { - secretsToDelete = append(secretsToDelete, &corev1.Secret{ObjectMeta: metav1.ObjectMeta{Name: secretReference.Name, Namespace: serviceAccount.Namespace}}) + var ( + secretsToDelete []client.Object + remainingSecrets []corev1.ObjectReference + ) + + // In the CreateNewServiceAccountSecrets function we add a new ServiceAccount secret as the first one to the + // .secrets[] list in the ServiceAccount resource. However, when we reach this code now, the user could have + // already removed this secret or changed the .secrets[] list. Hence, we now check which of the secrets in + // the list have been created before the credentials rotation completion has been triggered. We only delete + // those and keep the rest of the list untouched to not interfere with the user's operations. + for _, secretReference := range serviceAccount.Secrets { + secret := &corev1.Secret{} + if err := b.ShootClientSet.Client().Get(ctx, client.ObjectKey{Name: secretReference.Name, Namespace: serviceAccount.Namespace}, secret); err != nil { + if !apierrors.IsNotFound(err) { + return err + } + // We don't care about secrets in the list which do not exist actually - it is the responsibility of the user to clean this up. + } else if secret.CreationTimestamp.UTC().Before(b.Shoot.GetInfo().Status.Credentials.Rotation.ServiceAccountKey.LastInitiationFinishedTime.Time.UTC()) { + secretsToDelete = append(secretsToDelete, &corev1.Secret{ObjectMeta: metav1.ObjectMeta{Name: secret.Name, Namespace: secret.Namespace}}) + continue + } + + remainingSecrets = append(remainingSecrets, secretReference) } - // Wait until we are allowed by the limiter to not overload the kube-apiserver with too many requests. - if err := limiter.Wait(ctx); err != nil { - return err + if len(secretsToDelete) == 0 { + return nil } if err := kubernetesutils.DeleteObjects(ctx, b.ShootClientSet.Client(), secretsToDelete...); err != nil { @@ -562,7 +579,7 @@ func (b *Botanist) DeleteOldServiceAccountSecrets(ctx context.Context) error { patch := client.MergeFromWithOptions(serviceAccount.DeepCopy(), client.MergeFromWithOptimisticLock{}) delete(serviceAccount.Labels, labelKeyRotationKeyName) - serviceAccount.Secrets = []corev1.ObjectReference{serviceAccount.Secrets[0]} + serviceAccount.Secrets = remainingSecrets if err := b.ShootClientSet.Client().Patch(ctx, &serviceAccount, patch); err != nil { if apierrors.IsConflict(err) { diff --git a/pkg/operation/botanist/secrets_test.go b/pkg/operation/botanist/secrets_test.go index 50dc88d5dc1..c2c4018ab2f 100644 --- a/pkg/operation/botanist/secrets_test.go +++ b/pkg/operation/botanist/secrets_test.go @@ -16,6 +16,7 @@ package botanist_test import ( "context" + "time" gardencorev1alpha1 "github.com/gardener/gardener/pkg/apis/core/v1alpha1" gardencorev1beta1 "github.com/gardener/gardener/pkg/apis/core/v1beta1" @@ -375,28 +376,65 @@ var _ = Describe("Secrets", func() { Describe("#DeleteOldServiceAccountSecrets", func() { It("should delete old service account secrets", func() { - sa3.Secrets = append([]corev1.ObjectReference{{Name: "new-sa-secret"}}, sa3.Secrets...) - Expect(shootClient.Update(ctx, sa3)).To(Succeed()) - - sa3OldSecret := &corev1.Secret{ObjectMeta: metav1.ObjectMeta{Name: "sa3secret1", Namespace: sa3.Namespace}} - Expect(shootClient.Create(ctx, sa3OldSecret)).To(Succeed()) + now := time.Now() + + By("Create old ServiceAccount secrets") + Expect(shootClient.Create(ctx, &corev1.Secret{ObjectMeta: metav1.ObjectMeta{ + Name: "sa1secret1", + Namespace: sa1.Namespace, + CreationTimestamp: metav1.Time{Time: now}, + }})).To(Succeed()) + Expect(shootClient.Create(ctx, &corev1.Secret{ObjectMeta: metav1.ObjectMeta{ + Name: "sa2secret1", + Namespace: sa2.Namespace, + CreationTimestamp: metav1.Time{Time: now}, + }})).To(Succeed()) + Expect(shootClient.Create(ctx, &corev1.Secret{ObjectMeta: metav1.ObjectMeta{ + Name: "sa3secret1", + Namespace: sa3.Namespace, + CreationTimestamp: metav1.Time{Time: now}, + }})).To(Succeed()) + + By("Set credentials rotation status in Shoot") + botanist.Shoot.SetInfo(&gardencorev1beta1.Shoot{ + Status: gardencorev1beta1.ShootStatus{ + Credentials: &gardencorev1beta1.ShootCredentials{ + Rotation: &gardencorev1beta1.ShootCredentialsRotation{ + ServiceAccountKey: &gardencorev1beta1.ShootServiceAccountKeyRotation{ + LastInitiationFinishedTime: &metav1.Time{Time: now.Add(time.Minute)}, + }, + }, + }, + }, + }) - sa1Copy := sa1.DeepCopy() - sa1Copy.TypeMeta = metav1.TypeMeta{APIVersion: "v1", Kind: "ServiceAccount"} - sa2Copy := sa2.DeepCopy() - sa2Copy.TypeMeta = metav1.TypeMeta{APIVersion: "v1", Kind: "ServiceAccount"} + By("Create new ServiceAccount secret") + Expect(shootClient.Create(ctx, &corev1.Secret{ObjectMeta: metav1.ObjectMeta{ + Name: sa2.Secrets[0].Name, + Namespace: sa2.Namespace, + CreationTimestamp: metav1.Time{Time: botanist.Shoot.GetInfo().Status.Credentials.Rotation.ServiceAccountKey.LastInitiationFinishedTime.Add(time.Minute)}, + }})).To(Succeed()) + By("Run cleanup procedure") Expect(botanist.DeleteOldServiceAccountSecrets(ctx)).To(Succeed()) + By("Read ServiceAccounts after running cleanup procedure") Expect(shootClient.Get(ctx, client.ObjectKeyFromObject(sa1), sa1)).To(Succeed()) Expect(shootClient.Get(ctx, client.ObjectKeyFromObject(sa2), sa2)).To(Succeed()) Expect(shootClient.Get(ctx, client.ObjectKeyFromObject(sa3), sa3)).To(Succeed()) - Expect(sa1).To(Equal(sa1Copy)) + By("Performing assertions") + Expect(shootClient.Get(ctx, client.ObjectKey{Name: "sa1secret1", Namespace: sa1.Namespace}, &corev1.Secret{})).To(BeNotFoundError()) + Expect(shootClient.Get(ctx, client.ObjectKey{Name: "sa2secret1", Namespace: sa2.Namespace}, &corev1.Secret{})).To(BeNotFoundError()) + Expect(shootClient.Get(ctx, client.ObjectKey{Name: "sa3secret1", Namespace: sa3.Namespace}, &corev1.Secret{})).To(BeNotFoundError()) + + Expect(sa1.Secrets).To(BeEmpty()) + Expect(sa2.Secrets).To(ConsistOf(corev1.ObjectReference{Name: "sa2-token" + suffix})) + Expect(shootClient.Get(ctx, client.ObjectKey{Name: sa2.Secrets[0].Name, Namespace: sa2.Namespace}, &corev1.Secret{})).To(Succeed()) + Expect(sa3.Labels).NotTo(HaveKey("credentials.gardener.cloud/key-name")) - Expect(sa3.Secrets).To(ConsistOf(corev1.ObjectReference{Name: "new-sa-secret"})) - Expect(shootClient.Get(ctx, client.ObjectKeyFromObject(sa3OldSecret), &corev1.Secret{})).To(BeNotFoundError()) + Expect(sa3.Secrets).To(BeEmpty()) }) }) }) diff --git a/pkg/operator/controller/garden/reconciler.go b/pkg/operator/controller/garden/reconciler.go index dc55c79707c..c1c90890cb9 100644 --- a/pkg/operator/controller/garden/reconciler.go +++ b/pkg/operator/controller/garden/reconciler.go @@ -157,14 +157,14 @@ func (r *Reconciler) updateStatusOperationStart(ctx context.Context, garden *ope startRotationCA(garden, &now) case v1beta1constants.OperationRotateCredentialsComplete: mustRemoveOperationAnnotation = true - completeRotationCA(garden) + completeRotationCA(garden, &now) case v1beta1constants.OperationRotateCAStart: mustRemoveOperationAnnotation = true startRotationCA(garden, &now) case v1beta1constants.OperationRotateCAComplete: mustRemoveOperationAnnotation = true - completeRotationCA(garden) + completeRotationCA(garden, &now) } if err := r.RuntimeClient.Status().Update(ctx, garden); err != nil { @@ -189,12 +189,15 @@ func (r *Reconciler) updateStatusOperationSuccess(ctx context.Context, garden *o case gardencorev1beta1.RotationPreparing: helper.MutateCARotation(garden, func(rotation *gardencorev1beta1.CARotation) { rotation.Phase = gardencorev1beta1.RotationPrepared + rotation.LastInitiationFinishedTime = &now }) case gardencorev1beta1.RotationCompleting: helper.MutateCARotation(garden, func(rotation *gardencorev1beta1.CARotation) { rotation.Phase = gardencorev1beta1.RotationCompleted rotation.LastCompletionTime = &now + rotation.LastInitiationFinishedTime = nil + rotation.LastCompletionTriggeredTime = nil }) } @@ -205,12 +208,15 @@ func startRotationCA(garden *operatorv1alpha1.Garden, now *metav1.Time) { helper.MutateCARotation(garden, func(rotation *gardencorev1beta1.CARotation) { rotation.Phase = gardencorev1beta1.RotationPreparing rotation.LastInitiationTime = now + rotation.LastInitiationFinishedTime = nil + rotation.LastCompletionTriggeredTime = nil }) } -func completeRotationCA(garden *operatorv1alpha1.Garden) { +func completeRotationCA(garden *operatorv1alpha1.Garden, now *metav1.Time) { helper.MutateCARotation(garden, func(rotation *gardencorev1beta1.CARotation) { rotation.Phase = gardencorev1beta1.RotationCompleting + rotation.LastCompletionTriggeredTime = now }) } diff --git a/test/e2e/gardener/shoot/internal/rotation/certificate_authorities.go b/test/e2e/gardener/shoot/internal/rotation/certificate_authorities.go index e582c4512fd..db0fdd67a02 100644 --- a/test/e2e/gardener/shoot/internal/rotation/certificate_authorities.go +++ b/test/e2e/gardener/shoot/internal/rotation/certificate_authorities.go @@ -129,12 +129,16 @@ func (v *CAVerifier) Before(ctx context.Context) { func (v *CAVerifier) ExpectPreparingStatus(g Gomega) { g.Expect(v1beta1helper.GetShootCARotationPhase(v.Shoot.Status.Credentials)).To(Equal(gardencorev1beta1.RotationPreparing)) g.Expect(time.Now().UTC().Sub(v.Shoot.Status.Credentials.Rotation.CertificateAuthorities.LastInitiationTime.Time.UTC())).To(BeNumerically("<=", time.Minute)) + g.Expect(v.Shoot.Status.Credentials.Rotation.CertificateAuthorities.LastInitiationFinishedTime).To(BeNil()) + g.Expect(v.Shoot.Status.Credentials.Rotation.CertificateAuthorities.LastCompletionTriggeredTime).To(BeNil()) } // AfterPrepared is called when the Shoot is in Prepared status. func (v *CAVerifier) AfterPrepared(ctx context.Context) { seedClient := v.ShootFramework.SeedClient.Client() Expect(v.Shoot.Status.Credentials.Rotation.CertificateAuthorities.Phase).To(Equal(gardencorev1beta1.RotationPrepared), "ca rotation phase should be 'Prepared'") + Expect(v.Shoot.Status.Credentials.Rotation.CertificateAuthorities.LastInitiationFinishedTime).NotTo(BeNil()) + Expect(v.Shoot.Status.Credentials.Rotation.CertificateAuthorities.LastInitiationFinishedTime.After(v.Shoot.Status.Credentials.Rotation.CertificateAuthorities.LastInitiationTime.Time)).To(BeTrue()) By("Verifying CA secrets of gardenlet after preparation") Eventually(func(g Gomega) { @@ -192,6 +196,8 @@ func (v *CAVerifier) AfterPrepared(ctx context.Context) { // ExpectCompletingStatus is called while waiting for the Completing status. func (v *CAVerifier) ExpectCompletingStatus(g Gomega) { g.Expect(v1beta1helper.GetShootCARotationPhase(v.Shoot.Status.Credentials)).To(Equal(gardencorev1beta1.RotationCompleting)) + Expect(v.Shoot.Status.Credentials.Rotation.CertificateAuthorities.LastCompletionTriggeredTime).NotTo(BeNil()) + Expect(v.Shoot.Status.Credentials.Rotation.CertificateAuthorities.LastCompletionTriggeredTime.After(v.Shoot.Status.Credentials.Rotation.CertificateAuthorities.LastInitiationFinishedTime.Time)).To(BeTrue()) } // AfterCompleted is called when the Shoot is in Completed status. @@ -201,6 +207,8 @@ func (v *CAVerifier) AfterCompleted(ctx context.Context) { caRotation := v.Shoot.Status.Credentials.Rotation.CertificateAuthorities Expect(v1beta1helper.GetShootCARotationPhase(v.Shoot.Status.Credentials)).To(Equal(gardencorev1beta1.RotationCompleted)) Expect(caRotation.LastCompletionTime.Time.UTC().After(caRotation.LastInitiationTime.Time.UTC())).To(BeTrue()) + Expect(caRotation.LastInitiationFinishedTime).To(BeNil()) + Expect(caRotation.LastCompletionTriggeredTime).To(BeNil()) By("Verifying CA secrets of gardenlet after completion") Eventually(func(g Gomega) { diff --git a/test/e2e/gardener/shoot/internal/rotation/etcd_encryption_key.go b/test/e2e/gardener/shoot/internal/rotation/etcd_encryption_key.go index 528af59560b..45d6222d5a0 100644 --- a/test/e2e/gardener/shoot/internal/rotation/etcd_encryption_key.go +++ b/test/e2e/gardener/shoot/internal/rotation/etcd_encryption_key.go @@ -105,6 +105,8 @@ func (v *ETCDEncryptionKeyVerifier) Before(ctx context.Context) { func (v *ETCDEncryptionKeyVerifier) ExpectPreparingStatus(g Gomega) { g.Expect(v1beta1helper.GetShootETCDEncryptionKeyRotationPhase(v.Shoot.Status.Credentials)).To(Equal(gardencorev1beta1.RotationPreparing)) g.Expect(time.Now().UTC().Sub(v.Shoot.Status.Credentials.Rotation.ETCDEncryptionKey.LastInitiationTime.Time.UTC())).To(BeNumerically("<=", time.Minute)) + g.Expect(v.Shoot.Status.Credentials.Rotation.ETCDEncryptionKey.LastInitiationFinishedTime).To(BeNil()) + g.Expect(v.Shoot.Status.Credentials.Rotation.ETCDEncryptionKey.LastCompletionTriggeredTime).To(BeNil()) } // AfterPrepared is called when the Shoot is in Prepared status. @@ -112,6 +114,8 @@ func (v *ETCDEncryptionKeyVerifier) AfterPrepared(ctx context.Context) { seedClient := v.ShootFramework.SeedClient.Client() Expect(v.Shoot.Status.Credentials.Rotation.ETCDEncryptionKey.Phase).To(Equal(gardencorev1beta1.RotationPrepared), "rotation phase should be 'Prepared'") + Expect(v.Shoot.Status.Credentials.Rotation.ETCDEncryptionKey.LastInitiationFinishedTime).NotTo(BeNil()) + Expect(v.Shoot.Status.Credentials.Rotation.ETCDEncryptionKey.LastInitiationFinishedTime.After(v.Shoot.Status.Credentials.Rotation.ETCDEncryptionKey.LastInitiationTime.Time)).To(BeTrue()) By("Verifying etcd encryption key secrets") Eventually(func(g Gomega) { @@ -160,6 +164,8 @@ func (v *ETCDEncryptionKeyVerifier) AfterPrepared(ctx context.Context) { // ExpectCompletingStatus is called while waiting for the Completing status. func (v *ETCDEncryptionKeyVerifier) ExpectCompletingStatus(g Gomega) { g.Expect(v1beta1helper.GetShootETCDEncryptionKeyRotationPhase(v.Shoot.Status.Credentials)).To(Equal(gardencorev1beta1.RotationCompleting)) + Expect(v.Shoot.Status.Credentials.Rotation.ETCDEncryptionKey.LastCompletionTriggeredTime).NotTo(BeNil()) + Expect(v.Shoot.Status.Credentials.Rotation.ETCDEncryptionKey.LastCompletionTriggeredTime.After(v.Shoot.Status.Credentials.Rotation.ETCDEncryptionKey.LastInitiationFinishedTime.Time)).To(BeTrue()) } // AfterCompleted is called when the Shoot is in Completed status. @@ -169,6 +175,8 @@ func (v *ETCDEncryptionKeyVerifier) AfterCompleted(ctx context.Context) { etcdEncryptionKeyRotation := v.Shoot.Status.Credentials.Rotation.ETCDEncryptionKey Expect(v1beta1helper.GetShootETCDEncryptionKeyRotationPhase(v.Shoot.Status.Credentials)).To(Equal(gardencorev1beta1.RotationCompleted)) Expect(etcdEncryptionKeyRotation.LastCompletionTime.Time.UTC().After(etcdEncryptionKeyRotation.LastInitiationTime.Time.UTC())).To(BeTrue()) + Expect(etcdEncryptionKeyRotation.LastInitiationFinishedTime).To(BeNil()) + Expect(etcdEncryptionKeyRotation.LastCompletionTriggeredTime).To(BeNil()) By("Verifying new etcd encryption key secret") Eventually(func(g Gomega) { diff --git a/test/e2e/gardener/shoot/internal/rotation/service_account_key.go b/test/e2e/gardener/shoot/internal/rotation/service_account_key.go index 003c5aa1c51..2bdd0a33e02 100644 --- a/test/e2e/gardener/shoot/internal/rotation/service_account_key.go +++ b/test/e2e/gardener/shoot/internal/rotation/service_account_key.go @@ -62,6 +62,8 @@ func (v *ServiceAccountKeyVerifier) Before(ctx context.Context) { func (v *ServiceAccountKeyVerifier) ExpectPreparingStatus(g Gomega) { g.Expect(v1beta1helper.GetShootServiceAccountKeyRotationPhase(v.Shoot.Status.Credentials)).To(Equal(gardencorev1beta1.RotationPreparing)) g.Expect(time.Now().UTC().Sub(v.Shoot.Status.Credentials.Rotation.ServiceAccountKey.LastInitiationTime.Time.UTC())).To(BeNumerically("<=", time.Minute)) + g.Expect(v.Shoot.Status.Credentials.Rotation.ServiceAccountKey.LastInitiationFinishedTime).To(BeNil()) + g.Expect(v.Shoot.Status.Credentials.Rotation.ServiceAccountKey.LastCompletionTriggeredTime).To(BeNil()) } // AfterPrepared is called when the Shoot is in Prepared status. @@ -69,6 +71,8 @@ func (v *ServiceAccountKeyVerifier) AfterPrepared(ctx context.Context) { seedClient := v.ShootFramework.SeedClient.Client() Expect(v.Shoot.Status.Credentials.Rotation.ServiceAccountKey.Phase).To(Equal(gardencorev1beta1.RotationPrepared), "rotation phase should be 'Prepared'") + Expect(v.Shoot.Status.Credentials.Rotation.ServiceAccountKey.LastInitiationFinishedTime).NotTo(BeNil()) + Expect(v.Shoot.Status.Credentials.Rotation.ServiceAccountKey.LastInitiationFinishedTime.After(v.Shoot.Status.Credentials.Rotation.ServiceAccountKey.LastInitiationTime.Time)).To(BeTrue()) By("Verifying service account key bundle secret") Eventually(func(g Gomega) { @@ -88,6 +92,8 @@ func (v *ServiceAccountKeyVerifier) AfterPrepared(ctx context.Context) { // ExpectCompletingStatus is called while waiting for the Completing status. func (v *ServiceAccountKeyVerifier) ExpectCompletingStatus(g Gomega) { g.Expect(v1beta1helper.GetShootServiceAccountKeyRotationPhase(v.Shoot.Status.Credentials)).To(Equal(gardencorev1beta1.RotationCompleting)) + Expect(v.Shoot.Status.Credentials.Rotation.ServiceAccountKey.LastCompletionTriggeredTime).NotTo(BeNil()) + Expect(v.Shoot.Status.Credentials.Rotation.ServiceAccountKey.LastCompletionTriggeredTime.After(v.Shoot.Status.Credentials.Rotation.ServiceAccountKey.LastInitiationFinishedTime.Time)).To(BeTrue()) } // AfterCompleted is called when the Shoot is in Completed status. @@ -97,6 +103,8 @@ func (v *ServiceAccountKeyVerifier) AfterCompleted(ctx context.Context) { serviceAccountKeyRotation := v.Shoot.Status.Credentials.Rotation.ServiceAccountKey Expect(v1beta1helper.GetShootServiceAccountKeyRotationPhase(v.Shoot.Status.Credentials)).To(Equal(gardencorev1beta1.RotationCompleted)) Expect(serviceAccountKeyRotation.LastCompletionTime.Time.UTC().After(serviceAccountKeyRotation.LastInitiationTime.Time.UTC())).To(BeTrue()) + Expect(serviceAccountKeyRotation.LastInitiationFinishedTime).To(BeNil()) + Expect(serviceAccountKeyRotation.LastCompletionTriggeredTime).To(BeNil()) By("Verifying new service account key secret") Eventually(func(g Gomega) { diff --git a/test/e2e/operator/garden/internal/rotation/certificate_authorities.go b/test/e2e/operator/garden/internal/rotation/certificate_authorities.go index 46bb6525a6d..d53f0de61c6 100644 --- a/test/e2e/operator/garden/internal/rotation/certificate_authorities.go +++ b/test/e2e/operator/garden/internal/rotation/certificate_authorities.go @@ -75,11 +75,15 @@ func (v *CAVerifier) Before(ctx context.Context) { func (v *CAVerifier) ExpectPreparingStatus(g Gomega) { g.Expect(helper.GetCARotationPhase(v.Garden.Status.Credentials)).To(Equal(gardencorev1beta1.RotationPreparing)) g.Expect(time.Now().UTC().Sub(v.Garden.Status.Credentials.Rotation.CertificateAuthorities.LastInitiationTime.Time.UTC())).To(BeNumerically("<=", time.Minute)) + g.Expect(v.Garden.Status.Credentials.Rotation.CertificateAuthorities.LastInitiationFinishedTime).To(BeNil()) + g.Expect(v.Garden.Status.Credentials.Rotation.CertificateAuthorities.LastCompletionTriggeredTime).To(BeNil()) } // AfterPrepared is called when the Shoot is in Prepared status. func (v *CAVerifier) AfterPrepared(ctx context.Context) { Expect(v.Garden.Status.Credentials.Rotation.CertificateAuthorities.Phase).To(Equal(gardencorev1beta1.RotationPrepared), "ca rotation phase should be 'Prepared'") + Expect(v.Garden.Status.Credentials.Rotation.CertificateAuthorities.LastInitiationFinishedTime).NotTo(BeNil()) + Expect(v.Garden.Status.Credentials.Rotation.CertificateAuthorities.LastInitiationFinishedTime.After(v.Garden.Status.Credentials.Rotation.CertificateAuthorities.LastInitiationTime.Time)).To(BeTrue()) By("Verifying CA secrets of gardener-operator after preparation") Eventually(func(g Gomega) { @@ -101,6 +105,8 @@ func (v *CAVerifier) AfterPrepared(ctx context.Context) { // ExpectCompletingStatus is called while waiting for the Completing status. func (v *CAVerifier) ExpectCompletingStatus(g Gomega) { g.Expect(helper.GetCARotationPhase(v.Garden.Status.Credentials)).To(Equal(gardencorev1beta1.RotationCompleting)) + Expect(v.Garden.Status.Credentials.Rotation.CertificateAuthorities.LastCompletionTriggeredTime).NotTo(BeNil()) + Expect(v.Garden.Status.Credentials.Rotation.CertificateAuthorities.LastCompletionTriggeredTime.After(v.Garden.Status.Credentials.Rotation.CertificateAuthorities.LastInitiationFinishedTime.Time)).To(BeTrue()) } // AfterCompleted is called when the Shoot is in Completed status. @@ -108,6 +114,8 @@ func (v *CAVerifier) AfterCompleted(ctx context.Context) { caRotation := v.Garden.Status.Credentials.Rotation.CertificateAuthorities Expect(helper.GetCARotationPhase(v.Garden.Status.Credentials)).To(Equal(gardencorev1beta1.RotationCompleted)) Expect(caRotation.LastCompletionTime.Time.UTC().After(caRotation.LastInitiationTime.Time.UTC())).To(BeTrue()) + Expect(caRotation.LastInitiationFinishedTime).To(BeNil()) + Expect(caRotation.LastCompletionTriggeredTime).To(BeNil()) By("Verifying CA secrets of gardener-operator after completion") Eventually(func(g Gomega) {