diff --git a/api/openapi-spec/swagger.json b/api/openapi-spec/swagger.json index 7fb60793d545..39807afb6632 100644 --- a/api/openapi-spec/swagger.json +++ b/api/openapi-spec/swagger.json @@ -10382,6 +10382,10 @@ "format": "int32", "type": "integer" }, + "internalTrafficPolicy": { + "description": "InternalTrafficPolicy specifies if the cluster internal traffic should be routed to all endpoints or node-local endpoints only. \"Cluster\" routes internal traffic to a Service to all endpoints. \"Local\" routes traffic to node-local endpoints only, traffic is dropped if no node-local endpoints are ready. The default value is \"Cluster\".", + "type": "string" + }, "ipFamilies": { "description": "IPFamilies is a list of IP families (e.g. IPv4, IPv6) assigned to this service, and is gated by the \"IPv6DualStack\" feature gate. This field is usually assigned automatically based on cluster configuration and the ipFamilyPolicy field. If this field is specified manually, the requested family is available in the cluster, and ipFamilyPolicy allows it, it will be used; otherwise creation of the service will fail. This field is conditionally mutable: it allows for adding or removing a secondary IP family, but it does not allow changing the primary IP family of the Service. Valid values are \"IPv4\" and \"IPv6\". This field only applies to Services of types ClusterIP, NodePort, and LoadBalancer, and does apply to \"headless\" services. This field will be wiped when updating a Service to type ExternalName.\n\nThis field may hold a maximum of two entries (dual-stack families, in either order). These families must correspond to the values of the clusterIPs field, if specified. Both clusterIPs and ipFamilies are governed by the ipFamilyPolicy field.", "items": { @@ -10395,7 +10399,7 @@ "type": "string" }, "loadBalancerClass": { - "description": "loadBalancerClass is the class of the load balancer implementation this Service belongs to. If specified, the value of this field must be a label-style identifier, with an optional prefix, e.g. \"internal-vip\" or \"example.com/internal-vip\". Unprefixed names are reserved for end-users. This field can only be set when the Service type is 'LoadBalancer'. If not set, the default load balancer implementation is used, today this is typically done through the cloud provider integration, but should apply for any default implementation. If set, it is assumed that a load balancer implementation is watching for Services with a matching class. Any default load balancer implementation (e.g. cloud providers) should ignore Services that set this field. This field can only be set when creating or updating a Service to type 'LoadBalancer'. Once set, it can not be changed. This field will be wiped when a service is updated to a non 'LoadBalancer' type. featureGate=LoadBalancerClass", + "description": "loadBalancerClass is the class of the load balancer implementation this Service belongs to. If specified, the value of this field must be a label-style identifier, with an optional prefix, e.g. \"internal-vip\" or \"example.com/internal-vip\". Unprefixed names are reserved for end-users. This field can only be set when the Service type is 'LoadBalancer'. If not set, the default load balancer implementation is used, today this is typically done through the cloud provider integration, but should apply for any default implementation. If set, it is assumed that a load balancer implementation is watching for Services with a matching class. Any default load balancer implementation (e.g. cloud providers) should ignore Services that set this field. This field can only be set when creating or updating a Service to type 'LoadBalancer'. Once set, it can not be changed. This field will be wiped when a service is updated to a non 'LoadBalancer' type.", "type": "string" }, "loadBalancerIP": { diff --git a/pkg/api/v1/service/util.go b/pkg/api/v1/service/util.go index d1c6713888e6..68913287c139 100644 --- a/pkg/api/v1/service/util.go +++ b/pkg/api/v1/service/util.go @@ -20,7 +20,7 @@ import ( "fmt" "strings" - "k8s.io/api/core/v1" + v1 "k8s.io/api/core/v1" utilnet "k8s.io/utils/net" ) @@ -76,6 +76,15 @@ func RequestsOnlyLocalTraffic(service *v1.Service) bool { return service.Spec.ExternalTrafficPolicy == v1.ServiceExternalTrafficPolicyTypeLocal } +// RequestsOnlyLocalTrafficForInternal checks if service prefers Node Local +// endpoints for internal traffic +func RequestsOnlyLocalTrafficForInternal(service *v1.Service) bool { + if service.Spec.InternalTrafficPolicy == nil { + return false + } + return *service.Spec.InternalTrafficPolicy == v1.ServiceInternalTrafficPolicyLocal +} + // NeedsHealthCheck checks if service needs health check. func NeedsHealthCheck(service *v1.Service) bool { if service.Spec.Type != v1.ServiceTypeLoadBalancer { diff --git a/pkg/api/v1/service/util_test.go b/pkg/api/v1/service/util_test.go index 9813017c491a..f7a3c2dadb93 100644 --- a/pkg/api/v1/service/util_test.go +++ b/pkg/api/v1/service/util_test.go @@ -20,7 +20,7 @@ import ( "strings" "testing" - "k8s.io/api/core/v1" + v1 "k8s.io/api/core/v1" utilnet "k8s.io/utils/net" ) @@ -214,3 +214,30 @@ func TestNeedsHealthCheck(t *testing.T) { }, }) } + +func TestRequestsOnlyLocalTrafficForInternal(t *testing.T) { + checkRequestsOnlyLocalTrafficForInternal := func(expected bool, service *v1.Service) { + res := RequestsOnlyLocalTrafficForInternal(service) + if res != expected { + t.Errorf("Expected internal local traffic = %v, got %v", + expected, res) + } + } + + // default InternalTrafficPolicy is nil + checkRequestsOnlyLocalTrafficForInternal(false, &v1.Service{}) + + local := v1.ServiceInternalTrafficPolicyLocal + checkRequestsOnlyLocalTrafficForInternal(true, &v1.Service{ + Spec: v1.ServiceSpec{ + InternalTrafficPolicy: &local, + }, + }) + + cluster := v1.ServiceInternalTrafficPolicyCluster + checkRequestsOnlyLocalTrafficForInternal(false, &v1.Service{ + Spec: v1.ServiceSpec{ + InternalTrafficPolicy: &cluster, + }, + }) +} diff --git a/pkg/apis/core/types.go b/pkg/apis/core/types.go index f130a6c13b09..e40d798b8fbe 100644 --- a/pkg/apis/core/types.go +++ b/pkg/apis/core/types.go @@ -3475,6 +3475,19 @@ const ( ServiceTypeExternalName ServiceType = "ExternalName" ) +// ServiceInternalTrafficPolicyType describes the type of traffic routing for +// internal traffic +type ServiceInternalTrafficPolicyType string + +const ( + // ServiceInternalTrafficPolicyCluster routes traffic to all endpoints + ServiceInternalTrafficPolicyCluster ServiceInternalTrafficPolicyType = "Cluster" + + // ServiceInternalTrafficPolicyLocal only routes to node-local + // endpoints, otherwise drops the traffic + ServiceInternalTrafficPolicyLocal ServiceInternalTrafficPolicyType = "Local" +) + // ServiceExternalTrafficPolicyType string type ServiceExternalTrafficPolicyType string @@ -3739,9 +3752,19 @@ type ServiceSpec struct { // implementation (e.g. cloud providers) should ignore Services that set this field. // This field can only be set when creating or updating a Service to type 'LoadBalancer'. // Once set, it can not be changed. This field will be wiped when a service is updated to a non 'LoadBalancer' type. - // featureGate=LoadBalancerClass + // +featureGate=LoadBalancerClass // +optional LoadBalancerClass *string + + // InternalTrafficPolicy specifies if the cluster internal traffic + // should be routed to all endpoints or node-local endpoints only. + // "Cluster" routes internal traffic to a Service to all endpoints. + // "Local" routes traffic to node-local endpoints only, traffic is + // dropped if no node-local endpoints are ready. + // The default value is "Cluster". + // +featureGate=ServiceInternalTrafficPolicy + // +optional + InternalTrafficPolicy *ServiceInternalTrafficPolicyType } // ServicePort represents the port on which the service is exposed diff --git a/pkg/apis/core/v1/defaults.go b/pkg/apis/core/v1/defaults.go index 96c8753ca8b9..3381f652c0ec 100644 --- a/pkg/apis/core/v1/defaults.go +++ b/pkg/apis/core/v1/defaults.go @@ -131,6 +131,11 @@ func SetDefaults_Service(obj *v1.Service) { obj.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyTypeCluster } + if utilfeature.DefaultFeatureGate.Enabled(features.ServiceInternalTrafficPolicy) && obj.Spec.InternalTrafficPolicy == nil { + serviceInternalTrafficPolicyCluster := v1.ServiceInternalTrafficPolicyCluster + obj.Spec.InternalTrafficPolicy = &serviceInternalTrafficPolicyCluster + } + if utilfeature.DefaultFeatureGate.Enabled(features.ServiceLBNodePortControl) { if obj.Spec.Type == v1.ServiceTypeLoadBalancer { if obj.Spec.AllocateLoadBalancerNodePorts == nil { diff --git a/pkg/apis/core/v1/defaults_test.go b/pkg/apis/core/v1/defaults_test.go index d0ea41f9af80..b167110c0a83 100644 --- a/pkg/apis/core/v1/defaults_test.go +++ b/pkg/apis/core/v1/defaults_test.go @@ -29,8 +29,11 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/diff" "k8s.io/apimachinery/pkg/util/intstr" + utilfeature "k8s.io/apiserver/pkg/util/feature" + featuregatetesting "k8s.io/component-base/featuregate/testing" "k8s.io/kubernetes/pkg/api/legacyscheme" corev1 "k8s.io/kubernetes/pkg/apis/core/v1" + "k8s.io/kubernetes/pkg/features" utilpointer "k8s.io/utils/pointer" // ensure types are installed @@ -1798,3 +1801,64 @@ func TestSetDefaultEnableServiceLinks(t *testing.T) { t.Errorf("Expected enableServiceLinks value: %+v\ngot: %+v\n", v1.DefaultEnableServiceLinks, *output.Spec.EnableServiceLinks) } } + +func TestSetDefaultServiceInternalTrafficPolicy(t *testing.T) { + cluster := v1.ServiceInternalTrafficPolicyCluster + local := v1.ServiceInternalTrafficPolicyLocal + testCases := []struct { + name string + expectedInternalTrafficPolicy v1.ServiceInternalTrafficPolicyType + svc v1.Service + featureGateOn bool + }{ + { + name: "must set default internalTrafficPolicy", + expectedInternalTrafficPolicy: v1.ServiceInternalTrafficPolicyCluster, + svc: v1.Service{}, + featureGateOn: true, + }, + { + name: "must not set default internalTrafficPolicy when it's cluster", + expectedInternalTrafficPolicy: v1.ServiceInternalTrafficPolicyCluster, + svc: v1.Service{ + Spec: v1.ServiceSpec{ + InternalTrafficPolicy: &cluster, + }, + }, + featureGateOn: true, + }, + { + name: "must not set default internalTrafficPolicy when it's local", + expectedInternalTrafficPolicy: v1.ServiceInternalTrafficPolicyLocal, + svc: v1.Service{ + Spec: v1.ServiceSpec{ + InternalTrafficPolicy: &local, + }, + }, + featureGateOn: true, + }, + { + name: "must not set default internalTrafficPolicy when gate is disabled", + expectedInternalTrafficPolicy: "", + svc: v1.Service{}, + featureGateOn: false, + }, + } + for _, test := range testCases { + t.Run(test.name, func(t *testing.T) { + defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.ServiceInternalTrafficPolicy, test.featureGateOn)() + obj := roundTrip(t, runtime.Object(&test.svc)) + svc := obj.(*v1.Service) + + if test.expectedInternalTrafficPolicy == "" { + if svc.Spec.InternalTrafficPolicy != nil { + t.Fatalf("expected .spec.internalTrafficPolicy: null, got %v", *svc.Spec.InternalTrafficPolicy) + } + } else { + if *svc.Spec.InternalTrafficPolicy != test.expectedInternalTrafficPolicy { + t.Fatalf("expected .spec.internalTrafficPolicy: %v got %v", test.expectedInternalTrafficPolicy, *svc.Spec.InternalTrafficPolicy) + } + } + }) + } +} diff --git a/pkg/apis/core/v1/zz_generated.conversion.go b/pkg/apis/core/v1/zz_generated.conversion.go index 4abda6e93bcd..9cceb8cd0eff 100644 --- a/pkg/apis/core/v1/zz_generated.conversion.go +++ b/pkg/apis/core/v1/zz_generated.conversion.go @@ -7636,6 +7636,7 @@ func autoConvert_v1_ServiceSpec_To_core_ServiceSpec(in *v1.ServiceSpec, out *cor out.IPFamilyPolicy = (*core.IPFamilyPolicyType)(unsafe.Pointer(in.IPFamilyPolicy)) out.AllocateLoadBalancerNodePorts = (*bool)(unsafe.Pointer(in.AllocateLoadBalancerNodePorts)) out.LoadBalancerClass = (*string)(unsafe.Pointer(in.LoadBalancerClass)) + out.InternalTrafficPolicy = (*core.ServiceInternalTrafficPolicyType)(unsafe.Pointer(in.InternalTrafficPolicy)) return nil } @@ -7664,6 +7665,7 @@ func autoConvert_core_ServiceSpec_To_v1_ServiceSpec(in *core.ServiceSpec, out *v out.TopologyKeys = *(*[]string)(unsafe.Pointer(&in.TopologyKeys)) out.AllocateLoadBalancerNodePorts = (*bool)(unsafe.Pointer(in.AllocateLoadBalancerNodePorts)) out.LoadBalancerClass = (*string)(unsafe.Pointer(in.LoadBalancerClass)) + out.InternalTrafficPolicy = (*v1.ServiceInternalTrafficPolicyType)(unsafe.Pointer(in.InternalTrafficPolicy)) return nil } diff --git a/pkg/apis/core/validation/validation.go b/pkg/apis/core/validation/validation.go index f7ee68664ec1..1b668083b3b3 100644 --- a/pkg/apis/core/validation/validation.go +++ b/pkg/apis/core/validation/validation.go @@ -4171,6 +4171,8 @@ var supportedSessionAffinityType = sets.NewString(string(core.ServiceAffinityCli var supportedServiceType = sets.NewString(string(core.ServiceTypeClusterIP), string(core.ServiceTypeNodePort), string(core.ServiceTypeLoadBalancer), string(core.ServiceTypeExternalName)) +var supportedServiceInternalTrafficPolicy = sets.NewString(string(core.ServiceInternalTrafficPolicyCluster), string(core.ServiceExternalTrafficPolicyTypeLocal)) + var supportedServiceIPFamily = sets.NewString(string(core.IPv4Protocol), string(core.IPv6Protocol)) var supportedServiceIPFamilyPolicy = sets.NewString(string(core.IPFamilyPolicySingleStack), string(core.IPFamilyPolicyPreferDualStack), string(core.IPFamilyPolicyRequireDualStack)) @@ -4378,6 +4380,10 @@ func ValidateService(service *core.Service) field.ErrorList { // external traffic fields allErrs = append(allErrs, validateServiceExternalTrafficFieldsValue(service)...) + + // internal traffic policy field + allErrs = append(allErrs, validateServiceInternalTrafficFieldsValue(service)...) + return allErrs } @@ -4446,6 +4452,24 @@ func validateServiceExternalTrafficFieldsValue(service *core.Service) field.Erro return allErrs } +// validateServiceInternalTrafficFieldsValue validates InternalTraffic related +// spec have legal value. +func validateServiceInternalTrafficFieldsValue(service *core.Service) field.ErrorList { + allErrs := field.ErrorList{} + + if utilfeature.DefaultFeatureGate.Enabled(features.ServiceInternalTrafficPolicy) { + if service.Spec.InternalTrafficPolicy == nil { + allErrs = append(allErrs, field.Required(field.NewPath("spec").Child("internalTrafficPolicy"), "")) + } + } + + if service.Spec.InternalTrafficPolicy != nil && !supportedServiceInternalTrafficPolicy.Has(string(*service.Spec.InternalTrafficPolicy)) { + allErrs = append(allErrs, field.NotSupported(field.NewPath("spec").Child("internalTrafficPolicy"), *service.Spec.InternalTrafficPolicy, supportedServiceInternalTrafficPolicy.List())) + } + + return allErrs +} + // ValidateServiceExternalTrafficFieldsCombination validates if ExternalTrafficPolicy, // HealthCheckNodePort and Type combination are legal. For update, it should be called // after clearing externalTraffic related fields for the ease of transitioning between diff --git a/pkg/apis/core/validation/validation_test.go b/pkg/apis/core/validation/validation_test.go index c4000c27b7fd..6ea9b35aa339 100644 --- a/pkg/apis/core/validation/validation_test.go +++ b/pkg/apis/core/validation/validation_test.go @@ -33,6 +33,7 @@ import ( "k8s.io/apimachinery/pkg/util/validation" "k8s.io/apimachinery/pkg/util/validation/field" utilfeature "k8s.io/apiserver/pkg/util/feature" + "k8s.io/component-base/featuregate" featuregatetesting "k8s.io/component-base/featuregate/testing" "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/capabilities" @@ -10135,9 +10136,10 @@ func TestValidateServiceCreate(t *testing.T) { preferDualStack := core.IPFamilyPolicyPreferDualStack testCases := []struct { - name string - tweakSvc func(svc *core.Service) // given a basic valid service, each test case can customize it - numErrs int + name string + tweakSvc func(svc *core.Service) // given a basic valid service, each test case can customize it + numErrs int + featureGates []featuregate.Feature }{ { name: "missing namespace", @@ -10750,6 +10752,22 @@ func TestValidateServiceCreate(t *testing.T) { }, numErrs: 1, }, + { + name: "nil internalTraffic field when feature gate is on", + tweakSvc: func(s *core.Service) { + s.Spec.InternalTrafficPolicy = nil + }, + featureGates: []featuregate.Feature{features.ServiceInternalTrafficPolicy}, + numErrs: 1, + }, + { + name: "invalid internalTraffic field", + tweakSvc: func(s *core.Service) { + invalid := core.ServiceInternalTrafficPolicyType("invalid") + s.Spec.InternalTrafficPolicy = &invalid + }, + numErrs: 1, + }, { name: "nagative healthCheckNodePort field", tweakSvc: func(s *core.Service) { @@ -11323,6 +11341,9 @@ func TestValidateServiceCreate(t *testing.T) { for _, tc := range testCases { t.Run(tc.name, func(t *testing.T) { + for i := range tc.featureGates { + defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, tc.featureGates[i], true)() + } svc := makeValidService() tc.tweakSvc(&svc) errs := ValidateServiceCreate(&svc) diff --git a/pkg/apis/core/zz_generated.deepcopy.go b/pkg/apis/core/zz_generated.deepcopy.go index c1ae7ebae421..14a77ee1248f 100644 --- a/pkg/apis/core/zz_generated.deepcopy.go +++ b/pkg/apis/core/zz_generated.deepcopy.go @@ -5335,6 +5335,11 @@ func (in *ServiceSpec) DeepCopyInto(out *ServiceSpec) { *out = new(string) **out = **in } + if in.InternalTrafficPolicy != nil { + in, out := &in.InternalTrafficPolicy, &out.InternalTrafficPolicy + *out = new(ServiceInternalTrafficPolicyType) + **out = **in + } return } diff --git a/pkg/features/kube_features.go b/pkg/features/kube_features.go index b28ba1d85480..4873732bcdf6 100644 --- a/pkg/features/kube_features.go +++ b/pkg/features/kube_features.go @@ -709,6 +709,12 @@ const ( // // Enable Scope and Namespace fields on IngressClassParametersReference. IngressClassNamespacedParams featuregate.Feature = "IngressClassNamespacedParams" + + // owner: @maplain @andrewsykim + // alpha: v1.21 + // + // Enables node-local routing for Service internal traffic + ServiceInternalTrafficPolicy featuregate.Feature = "ServiceInternalTrafficPolicy" ) func init() { @@ -816,6 +822,7 @@ var defaultKubernetesFeatureGates = map[featuregate.Feature]featuregate.FeatureS ServiceLoadBalancerClass: {Default: false, PreRelease: featuregate.Alpha}, LogarithmicScaleDown: {Default: false, PreRelease: featuregate.Alpha}, IngressClassNamespacedParams: {Default: false, PreRelease: featuregate.Alpha}, + ServiceInternalTrafficPolicy: {Default: false, PreRelease: featuregate.Alpha}, // inherited features from generic apiserver, relisted here to get a conflict if it is changed // unintentionally on either side: diff --git a/pkg/proxy/iptables/proxier.go b/pkg/proxy/iptables/proxier.go index 7464b837da79..292e05aa8522 100644 --- a/pkg/proxy/iptables/proxier.go +++ b/pkg/proxy/iptables/proxier.go @@ -1025,10 +1025,17 @@ func (proxier *Proxier) syncProxyRules() { // 2. ServiceTopology is not enabled. // 3. EndpointSlice is not enabled (service topology depends on endpoint slice // to get topology information). - if !svcInfo.OnlyNodeLocalEndpoints() && utilfeature.DefaultFeatureGate.Enabled(features.ServiceTopology) && utilfeature.DefaultFeatureGate.Enabled(features.EndpointSliceProxying) { + if !svcInfo.NodeLocalExternal() && utilfeature.DefaultFeatureGate.Enabled(features.ServiceTopology) && utilfeature.DefaultFeatureGate.Enabled(features.EndpointSliceProxying) { allEndpoints = proxy.FilterTopologyEndpoint(proxier.nodeLabels, svcInfo.TopologyKeys(), allEndpoints) } + // Service InternalTrafficPolicy is only enabled when all of the + // following are true: + // 1. InternalTrafficPolicy is Local + // 2. ServiceInternalTrafficPolicy feature gate is on + if utilfeature.DefaultFeatureGate.Enabled(features.ServiceInternalTrafficPolicy) && svcInfo.NodeLocalInternal() { + allEndpoints = proxy.FilterLocalEndpoint(svcInfo.InternalTrafficPolicy(), allEndpoints) + } readyEndpoints := make([]proxy.Endpoint, 0, len(allEndpoints)) for _, endpoint := range allEndpoints { if !endpoint.IsReady() { @@ -1051,7 +1058,7 @@ func (proxier *Proxier) syncProxyRules() { } svcXlbChain := svcInfo.serviceLBChainName - if svcInfo.OnlyNodeLocalEndpoints() { + if svcInfo.NodeLocalExternal() { // Only for services request OnlyLocal traffic // create the per-service LB chain, retaining counters if possible. if lbChain, ok := existingNATChains[svcXlbChain]; ok { @@ -1144,7 +1151,7 @@ func (proxier *Proxier) syncProxyRules() { // and the traffic is NOT Local. Local traffic coming from Pods and Nodes will // be always forwarded to the corresponding Service, so no need to SNAT // If we can't differentiate the local traffic we always SNAT. - if !svcInfo.OnlyNodeLocalEndpoints() { + if !svcInfo.NodeLocalExternal() { destChain = svcChain // This masquerades off-cluster traffic to a External IP. if proxier.localDetector.IsImplemented() { @@ -1204,7 +1211,7 @@ func (proxier *Proxier) syncProxyRules() { chosenChain := svcXlbChain // If we are proxying globally, we need to masquerade in case we cross nodes. // If we are proxying only locally, we can retain the source IP. - if !svcInfo.OnlyNodeLocalEndpoints() { + if !svcInfo.NodeLocalExternal() { utilproxy.WriteLine(proxier.natRules, append(args, "-j", string(KubeMarkMasqChain))...) chosenChain = svcChain } @@ -1301,7 +1308,7 @@ func (proxier *Proxier) syncProxyRules() { "-m", protocol, "-p", protocol, "--dport", strconv.Itoa(svcInfo.NodePort()), ) - if !svcInfo.OnlyNodeLocalEndpoints() { + if !svcInfo.NodeLocalExternal() { // Nodeports need SNAT, unless they're local. utilproxy.WriteLine(proxier.natRules, append(args, "-j", string(KubeMarkMasqChain))...) // Jump to the service chain. @@ -1395,7 +1402,7 @@ func (proxier *Proxier) syncProxyRules() { localEndpointChains := make([]utiliptables.Chain, 0) for i, endpointChain := range endpointChains { // Write ingress loadbalancing & DNAT rules only for services that request OnlyLocal traffic. - if svcInfo.OnlyNodeLocalEndpoints() && endpoints[i].IsLocal { + if svcInfo.NodeLocalExternal() && endpoints[i].IsLocal { localEndpointChains = append(localEndpointChains, endpointChains[i]) } @@ -1436,7 +1443,7 @@ func (proxier *Proxier) syncProxyRules() { } // The logic below this applies only if this service is marked as OnlyLocal - if !svcInfo.OnlyNodeLocalEndpoints() { + if !svcInfo.NodeLocalExternal() { continue } diff --git a/pkg/proxy/iptables/proxier_test.go b/pkg/proxy/iptables/proxier_test.go index 6d1b8f1bf284..4df8c65efbb8 100644 --- a/pkg/proxy/iptables/proxier_test.go +++ b/pkg/proxy/iptables/proxier_test.go @@ -32,8 +32,11 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/intstr" + utilfeature "k8s.io/apiserver/pkg/util/feature" + featuregatetesting "k8s.io/component-base/featuregate/testing" "k8s.io/component-base/metrics/testutil" "k8s.io/klog/v2" + "k8s.io/kubernetes/pkg/features" "k8s.io/kubernetes/pkg/proxy" "k8s.io/kubernetes/pkg/proxy/metrics" @@ -3056,3 +3059,219 @@ func TestProxierMetricsIptablesTotalRules(t *testing.T) { } // TODO(thockin): add *more* tests for syncProxyRules() or break it down further and test the pieces. + +// This test ensures that the iptables proxier supports translating Endpoints to +// iptables output when internalTrafficPolicy is specified +func TestInternalTrafficPolicyE2E(t *testing.T) { + type endpoint struct { + ip string + hostname string + } + + cluster := v1.ServiceInternalTrafficPolicyCluster + local := v1.ServiceInternalTrafficPolicyLocal + + clusterExpectedIPTables := `*filter +:KUBE-SERVICES - [0:0] +:KUBE-EXTERNAL-SERVICES - [0:0] +:KUBE-FORWARD - [0:0] +:KUBE-NODEPORTS - [0:0] +-A KUBE-FORWARD -m conntrack --ctstate INVALID -j DROP +-A KUBE-FORWARD -m comment --comment "kubernetes forwarding rules" -m mark --mark 0x4000/0x4000 -j ACCEPT +-A KUBE-FORWARD -m comment --comment "kubernetes forwarding conntrack pod source rule" -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT +-A KUBE-FORWARD -m comment --comment "kubernetes forwarding conntrack pod destination rule" -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT +COMMIT +*nat +:KUBE-SERVICES - [0:0] +:KUBE-NODEPORTS - [0:0] +:KUBE-POSTROUTING - [0:0] +:KUBE-MARK-MASQ - [0:0] +:KUBE-SVC-AQI2S6QIMU7PVVRP - [0:0] +:KUBE-SEP-3JOIVZTXZZRGORX4 - [0:0] +:KUBE-SEP-IO5XOSKPAXIFQXAJ - [0:0] +:KUBE-SEP-XGJFVO3L2O5SRFNT - [0:0] +-A KUBE-POSTROUTING -m mark ! --mark 0x4000/0x4000 -j RETURN +-A KUBE-POSTROUTING -j MARK --xor-mark 0x4000 +-A KUBE-POSTROUTING -m comment --comment "kubernetes service traffic requiring SNAT" -j MASQUERADE +-A KUBE-MARK-MASQ -j MARK --or-mark 0x4000 +-A KUBE-SERVICES -m comment --comment "ns1/svc1 cluster IP" -m tcp -p tcp -d 172.20.1.1/32 --dport 80 ! -s 10.0.0.0/24 -j KUBE-MARK-MASQ +-A KUBE-SERVICES -m comment --comment "ns1/svc1 cluster IP" -m tcp -p tcp -d 172.20.1.1/32 --dport 80 -j KUBE-SVC-AQI2S6QIMU7PVVRP +-A KUBE-SVC-AQI2S6QIMU7PVVRP -m comment --comment ns1/svc1 -m statistic --mode random --probability 0.3333333333 -j KUBE-SEP-3JOIVZTXZZRGORX4 +-A KUBE-SEP-3JOIVZTXZZRGORX4 -m comment --comment ns1/svc1 -s 10.0.1.1/32 -j KUBE-MARK-MASQ +-A KUBE-SEP-3JOIVZTXZZRGORX4 -m comment --comment ns1/svc1 -m tcp -p tcp -j DNAT --to-destination 10.0.1.1:80 +-A KUBE-SVC-AQI2S6QIMU7PVVRP -m comment --comment ns1/svc1 -m statistic --mode random --probability 0.5000000000 -j KUBE-SEP-IO5XOSKPAXIFQXAJ +-A KUBE-SEP-IO5XOSKPAXIFQXAJ -m comment --comment ns1/svc1 -s 10.0.1.2/32 -j KUBE-MARK-MASQ +-A KUBE-SEP-IO5XOSKPAXIFQXAJ -m comment --comment ns1/svc1 -m tcp -p tcp -j DNAT --to-destination 10.0.1.2:80 +-A KUBE-SVC-AQI2S6QIMU7PVVRP -m comment --comment ns1/svc1 -j KUBE-SEP-XGJFVO3L2O5SRFNT +-A KUBE-SEP-XGJFVO3L2O5SRFNT -m comment --comment ns1/svc1 -s 10.0.1.3/32 -j KUBE-MARK-MASQ +-A KUBE-SEP-XGJFVO3L2O5SRFNT -m comment --comment ns1/svc1 -m tcp -p tcp -j DNAT --to-destination 10.0.1.3:80 +-A KUBE-SERVICES -m comment --comment "kubernetes service nodeports; NOTE: this must be the last rule in this chain" -m addrtype --dst-type LOCAL -j KUBE-NODEPORTS +COMMIT +` + + testCases := []struct { + name string + internalTrafficPolicy *v1.ServiceInternalTrafficPolicyType + featureGateOn bool + endpoints []endpoint + expectEndpointRule bool + expectedIPTablesWithSlice string + }{ + { + name: "internalTrafficPolicy is cluster", + internalTrafficPolicy: &cluster, + featureGateOn: true, + endpoints: []endpoint{ + {"10.0.1.1", testHostname}, + {"10.0.1.2", "host1"}, + {"10.0.1.3", "host2"}, + }, + expectEndpointRule: true, + expectedIPTablesWithSlice: clusterExpectedIPTables, + }, + { + name: "internalTrafficPolicy is local and there is non-zero local endpoints", + internalTrafficPolicy: &local, + featureGateOn: true, + endpoints: []endpoint{ + {"10.0.1.1", testHostname}, + {"10.0.1.2", "host1"}, + {"10.0.1.3", "host2"}, + }, + expectEndpointRule: true, + expectedIPTablesWithSlice: `*filter +:KUBE-SERVICES - [0:0] +:KUBE-EXTERNAL-SERVICES - [0:0] +:KUBE-FORWARD - [0:0] +:KUBE-NODEPORTS - [0:0] +-A KUBE-FORWARD -m conntrack --ctstate INVALID -j DROP +-A KUBE-FORWARD -m comment --comment "kubernetes forwarding rules" -m mark --mark 0x4000/0x4000 -j ACCEPT +-A KUBE-FORWARD -m comment --comment "kubernetes forwarding conntrack pod source rule" -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT +-A KUBE-FORWARD -m comment --comment "kubernetes forwarding conntrack pod destination rule" -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT +COMMIT +*nat +:KUBE-SERVICES - [0:0] +:KUBE-NODEPORTS - [0:0] +:KUBE-POSTROUTING - [0:0] +:KUBE-MARK-MASQ - [0:0] +:KUBE-SVC-AQI2S6QIMU7PVVRP - [0:0] +:KUBE-SEP-3JOIVZTXZZRGORX4 - [0:0] +-A KUBE-POSTROUTING -m mark ! --mark 0x4000/0x4000 -j RETURN +-A KUBE-POSTROUTING -j MARK --xor-mark 0x4000 +-A KUBE-POSTROUTING -m comment --comment "kubernetes service traffic requiring SNAT" -j MASQUERADE +-A KUBE-MARK-MASQ -j MARK --or-mark 0x4000 +-A KUBE-SERVICES -m comment --comment "ns1/svc1 cluster IP" -m tcp -p tcp -d 172.20.1.1/32 --dport 80 ! -s 10.0.0.0/24 -j KUBE-MARK-MASQ +-A KUBE-SERVICES -m comment --comment "ns1/svc1 cluster IP" -m tcp -p tcp -d 172.20.1.1/32 --dport 80 -j KUBE-SVC-AQI2S6QIMU7PVVRP +-A KUBE-SVC-AQI2S6QIMU7PVVRP -m comment --comment ns1/svc1 -j KUBE-SEP-3JOIVZTXZZRGORX4 +-A KUBE-SEP-3JOIVZTXZZRGORX4 -m comment --comment ns1/svc1 -s 10.0.1.1/32 -j KUBE-MARK-MASQ +-A KUBE-SEP-3JOIVZTXZZRGORX4 -m comment --comment ns1/svc1 -m tcp -p tcp -j DNAT --to-destination 10.0.1.1:80 +-A KUBE-SERVICES -m comment --comment "kubernetes service nodeports; NOTE: this must be the last rule in this chain" -m addrtype --dst-type LOCAL -j KUBE-NODEPORTS +COMMIT +`, + }, + { + name: "internalTrafficPolicy is local and there is zero local endpoint", + internalTrafficPolicy: &local, + featureGateOn: true, + endpoints: []endpoint{ + {"10.0.1.1", "host0"}, + {"10.0.1.2", "host1"}, + {"10.0.1.3", "host2"}, + }, + expectEndpointRule: false, + expectedIPTablesWithSlice: `*filter +:KUBE-SERVICES - [0:0] +:KUBE-EXTERNAL-SERVICES - [0:0] +:KUBE-FORWARD - [0:0] +:KUBE-NODEPORTS - [0:0] +-A KUBE-SERVICES -m comment --comment "ns1/svc1 has no endpoints" -m tcp -p tcp -d 172.20.1.1/32 --dport 80 -j REJECT +-A KUBE-FORWARD -m conntrack --ctstate INVALID -j DROP +-A KUBE-FORWARD -m comment --comment "kubernetes forwarding rules" -m mark --mark 0x4000/0x4000 -j ACCEPT +-A KUBE-FORWARD -m comment --comment "kubernetes forwarding conntrack pod source rule" -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT +-A KUBE-FORWARD -m comment --comment "kubernetes forwarding conntrack pod destination rule" -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT +COMMIT +*nat +:KUBE-SERVICES - [0:0] +:KUBE-NODEPORTS - [0:0] +:KUBE-POSTROUTING - [0:0] +:KUBE-MARK-MASQ - [0:0] +-A KUBE-POSTROUTING -m mark ! --mark 0x4000/0x4000 -j RETURN +-A KUBE-POSTROUTING -j MARK --xor-mark 0x4000 +-A KUBE-POSTROUTING -m comment --comment "kubernetes service traffic requiring SNAT" -j MASQUERADE +-A KUBE-MARK-MASQ -j MARK --or-mark 0x4000 +-A KUBE-SERVICES -m comment --comment "kubernetes service nodeports; NOTE: this must be the last rule in this chain" -m addrtype --dst-type LOCAL -j KUBE-NODEPORTS +COMMIT +`, + }, + { + name: "internalTrafficPolicy is local and there is non-zero local endpoint with feature gate off", + internalTrafficPolicy: &local, + featureGateOn: false, + endpoints: []endpoint{ + {"10.0.1.1", testHostname}, + {"10.0.1.2", "host1"}, + {"10.0.1.3", "host2"}, + }, + expectEndpointRule: false, + expectedIPTablesWithSlice: clusterExpectedIPTables, + }, + } + + for _, tc := range testCases { + defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.ServiceInternalTrafficPolicy, tc.featureGateOn)() + ipt := iptablestest.NewFake() + fp := NewFakeProxier(ipt, true) + fp.OnServiceSynced() + fp.OnEndpointsSynced() + fp.OnEndpointSlicesSynced() + + serviceName := "svc1" + namespaceName := "ns1" + + svc := &v1.Service{ + ObjectMeta: metav1.ObjectMeta{Name: serviceName, Namespace: namespaceName}, + Spec: v1.ServiceSpec{ + ClusterIP: "172.20.1.1", + Selector: map[string]string{"foo": "bar"}, + Ports: []v1.ServicePort{{Name: "", Port: 80, Protocol: v1.ProtocolTCP}}, + }, + } + if tc.internalTrafficPolicy != nil { + svc.Spec.InternalTrafficPolicy = tc.internalTrafficPolicy + } + + fp.OnServiceAdd(svc) + + tcpProtocol := v1.ProtocolTCP + endpointSlice := &discovery.EndpointSlice{ + ObjectMeta: metav1.ObjectMeta{ + Name: fmt.Sprintf("%s-1", serviceName), + Namespace: namespaceName, + Labels: map[string]string{discovery.LabelServiceName: serviceName}, + }, + Ports: []discovery.EndpointPort{{ + Name: utilpointer.StringPtr(""), + Port: utilpointer.Int32Ptr(80), + Protocol: &tcpProtocol, + }}, + AddressType: discovery.AddressTypeIPv4, + } + for _, ep := range tc.endpoints { + endpointSlice.Endpoints = append(endpointSlice.Endpoints, discovery.Endpoint{ + Addresses: []string{ep.ip}, + Conditions: discovery.EndpointConditions{Ready: utilpointer.BoolPtr(true)}, + Topology: map[string]string{"kubernetes.io/hostname": ep.hostname}, + }) + } + + fp.OnEndpointSliceAdd(endpointSlice) + fp.syncProxyRules() + assert.Equal(t, tc.expectedIPTablesWithSlice, fp.iptablesData.String()) + + if tc.expectEndpointRule { + fp.OnEndpointSliceDelete(endpointSlice) + fp.syncProxyRules() + assert.NotEqual(t, tc.expectedIPTablesWithSlice, fp.iptablesData.String()) + } + } +} diff --git a/pkg/proxy/ipvs/proxier.go b/pkg/proxy/ipvs/proxier.go index 7bb97a303cb9..2656b52caa20 100644 --- a/pkg/proxy/ipvs/proxier.go +++ b/pkg/proxy/ipvs/proxier.go @@ -1236,7 +1236,7 @@ func (proxier *Proxier) syncProxyRules() { activeBindAddrs[serv.Address.String()] = true // ExternalTrafficPolicy only works for NodePort and external LB traffic, does not affect ClusterIP // So we still need clusterIP rules in onlyNodeLocalEndpoints mode. - if err := proxier.syncEndpoint(svcName, false, serv); err != nil { + if err := proxier.syncEndpoint(svcName, false, svcInfo.NodeLocalInternal(), serv); err != nil { klog.Errorf("Failed to sync endpoint for service: %v, err: %v", serv, err) } } else { @@ -1288,7 +1288,7 @@ func (proxier *Proxier) syncProxyRules() { SetType: utilipset.HashIPPort, } - if svcInfo.OnlyNodeLocalEndpoints() { + if svcInfo.NodeLocalExternal() { if valid := proxier.ipsetList[kubeExternalIPLocalSet].validateEntry(entry); !valid { klog.Errorf("%s", fmt.Sprintf(EntryInvalidErr, entry, proxier.ipsetList[kubeExternalIPLocalSet].Name)) continue @@ -1318,8 +1318,9 @@ func (proxier *Proxier) syncProxyRules() { activeIPVSServices[serv.String()] = true activeBindAddrs[serv.Address.String()] = true - onlyNodeLocalEndpoints := svcInfo.OnlyNodeLocalEndpoints() - if err := proxier.syncEndpoint(svcName, onlyNodeLocalEndpoints, serv); err != nil { + onlyNodeLocalEndpoints := svcInfo.NodeLocalExternal() + onlyNodeLocalEndpointsForInternal := svcInfo.NodeLocalInternal() + if err := proxier.syncEndpoint(svcName, onlyNodeLocalEndpoints, onlyNodeLocalEndpointsForInternal, serv); err != nil { klog.Errorf("Failed to sync endpoint for service: %v, err: %v", serv, err) } } else { @@ -1347,7 +1348,7 @@ func (proxier *Proxier) syncProxyRules() { } proxier.ipsetList[kubeLoadBalancerSet].activeEntries.Insert(entry.String()) // insert loadbalancer entry to lbIngressLocalSet if service externaltrafficpolicy=local - if svcInfo.OnlyNodeLocalEndpoints() { + if svcInfo.NodeLocalExternal() { if valid := proxier.ipsetList[kubeLoadBalancerLocalSet].validateEntry(entry); !valid { klog.Errorf("%s", fmt.Sprintf(EntryInvalidErr, entry, proxier.ipsetList[kubeLoadBalancerLocalSet].Name)) continue @@ -1420,7 +1421,7 @@ func (proxier *Proxier) syncProxyRules() { if err := proxier.syncService(svcNameString, serv, true, bindedAddresses); err == nil { activeIPVSServices[serv.String()] = true activeBindAddrs[serv.Address.String()] = true - if err := proxier.syncEndpoint(svcName, svcInfo.OnlyNodeLocalEndpoints(), serv); err != nil { + if err := proxier.syncEndpoint(svcName, svcInfo.NodeLocalExternal(), svcInfo.NodeLocalInternal(), serv); err != nil { klog.Errorf("Failed to sync endpoint for service: %v, err: %v", serv, err) } } else { @@ -1534,7 +1535,7 @@ func (proxier *Proxier) syncProxyRules() { } // Add externaltrafficpolicy=local type nodeport entry - if svcInfo.OnlyNodeLocalEndpoints() { + if svcInfo.NodeLocalExternal() { var nodePortLocalSet *IPSet switch protocol { case utilipset.ProtocolTCP: @@ -1579,7 +1580,7 @@ func (proxier *Proxier) syncProxyRules() { // There is no need to bind Node IP to dummy interface, so set parameter `bindAddr` to `false`. if err := proxier.syncService(svcNameString, serv, false, bindedAddresses); err == nil { activeIPVSServices[serv.String()] = true - if err := proxier.syncEndpoint(svcName, svcInfo.OnlyNodeLocalEndpoints(), serv); err != nil { + if err := proxier.syncEndpoint(svcName, svcInfo.NodeLocalExternal(), svcInfo.NodeLocalInternal(), serv); err != nil { klog.Errorf("Failed to sync endpoint for service: %v, err: %v", serv, err) } } else { @@ -2030,7 +2031,7 @@ func (proxier *Proxier) syncService(svcName string, vs *utilipvs.VirtualServer, return nil } -func (proxier *Proxier) syncEndpoint(svcPortName proxy.ServicePortName, onlyNodeLocalEndpoints bool, vs *utilipvs.VirtualServer) error { +func (proxier *Proxier) syncEndpoint(svcPortName proxy.ServicePortName, onlyNodeLocalEndpoints bool, onlyNodeLocalEndpointsForInternal bool, vs *utilipvs.VirtualServer) error { appliedVirtualServer, err := proxier.ipvs.GetVirtualServer(vs) if err != nil { klog.Errorf("Failed to get IPVS service, error: %v", err) @@ -2065,6 +2066,14 @@ func (proxier *Proxier) syncEndpoint(svcPortName proxy.ServicePortName, onlyNode endpoints = proxy.FilterTopologyEndpoint(proxier.nodeLabels, proxier.serviceMap[svcPortName].TopologyKeys(), endpoints) } + // Service InternalTrafficPolicy is only enabled when all of the + // following are true: + // 1. InternalTrafficPolicy is PreferLocal or Local + // 2. ServiceInternalTrafficPolicy feature gate is on + if utilfeature.DefaultFeatureGate.Enabled(features.ServiceInternalTrafficPolicy) && onlyNodeLocalEndpointsForInternal { + endpoints = proxy.FilterLocalEndpoint(proxier.serviceMap[svcPortName].InternalTrafficPolicy(), endpoints) + } + for _, epInfo := range endpoints { if !epInfo.IsReady() { continue diff --git a/pkg/proxy/ipvs/proxier_test.go b/pkg/proxy/ipvs/proxier_test.go index 9912244ff2a1..a60cee03c2e5 100644 --- a/pkg/proxy/ipvs/proxier_test.go +++ b/pkg/proxy/ipvs/proxier_test.go @@ -33,6 +33,9 @@ import ( "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/intstr" "k8s.io/apimachinery/pkg/util/sets" + utilfeature "k8s.io/apiserver/pkg/util/feature" + featuregatetesting "k8s.io/component-base/featuregate/testing" + "k8s.io/kubernetes/pkg/features" "k8s.io/kubernetes/pkg/proxy" "k8s.io/kubernetes/pkg/proxy/healthcheck" netlinktest "k8s.io/kubernetes/pkg/proxy/ipvs/testing" @@ -4467,3 +4470,183 @@ func TestCreateAndLinkKubeChain(t *testing.T) { assert.Equal(t, expectedNATChains, fp.natChains.String()) assert.Equal(t, expectedFilterChains, fp.filterChains.String()) } + +// This test ensures that the iptables proxier supports translating Endpoints to +// iptables output when internalTrafficPolicy is specified +func TestTestInternalTrafficPolicyE2E(t *testing.T) { + type endpoint struct { + ip string + hostname string + } + + cluster := v1.ServiceInternalTrafficPolicyCluster + local := v1.ServiceInternalTrafficPolicyLocal + + testCases := []struct { + name string + internalTrafficPolicy *v1.ServiceInternalTrafficPolicyType + endpoints []endpoint + expectVirtualServer bool + expectLocalEntries bool + expectLocalRealServerNum int + expectLocalRealServers []string + }{ + { + name: "internalTrafficPolicy is cluster with non-zero local endpoints", + internalTrafficPolicy: &cluster, + endpoints: []endpoint{ + {"10.0.1.1", testHostname}, + {"10.0.1.2", "host1"}, + {"10.0.1.3", "host2"}, + }, + expectVirtualServer: true, + expectLocalEntries: true, + expectLocalRealServerNum: 3, + expectLocalRealServers: []string{ + "10.0.1.1:80", + "10.0.1.2:80", + "10.0.1.3:80", + }, + }, + { + name: "internalTrafficPolicy is cluster with zero local endpoints", + internalTrafficPolicy: &cluster, + endpoints: []endpoint{ + {"10.0.1.1", "host0"}, + {"10.0.1.2", "host1"}, + {"10.0.1.3", "host2"}, + }, + expectVirtualServer: false, + expectLocalEntries: false, + expectLocalRealServerNum: 3, + expectLocalRealServers: []string{ + "10.0.1.1:80", + "10.0.1.2:80", + "10.0.1.3:80", + }, + }, + { + name: "internalTrafficPolicy is local with non-zero local endpoints", + internalTrafficPolicy: &local, + endpoints: []endpoint{ + {"10.0.1.1", testHostname}, + {"10.0.1.2", "host1"}, + {"10.0.1.3", "host2"}, + }, + expectVirtualServer: true, + expectLocalEntries: true, + expectLocalRealServerNum: 1, + expectLocalRealServers: []string{ + "10.0.1.1:80", + }, + }, + { + name: "internalTrafficPolicy is local with zero local endpoints", + internalTrafficPolicy: &local, + endpoints: []endpoint{ + {"10.0.1.1", "host0"}, + {"10.0.1.2", "host1"}, + {"10.0.1.3", "host2"}, + }, + expectVirtualServer: false, + expectLocalEntries: false, + expectLocalRealServerNum: 0, + expectLocalRealServers: []string{}, + }, + } + for _, tc := range testCases { + defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.ServiceInternalTrafficPolicy, true)() + + ipt := iptablestest.NewFake() + ipvs := ipvstest.NewFake() + ipset := ipsettest.NewFake(testIPSetVersion) + fp := NewFakeProxier(ipt, ipvs, ipset, nil, nil, true, v1.IPv4Protocol) + fp.servicesSynced = true + fp.endpointsSynced = true + fp.endpointSlicesSynced = true + + // Add initial service + serviceName := "svc1" + namespaceName := "ns1" + + svc := &v1.Service{ + ObjectMeta: metav1.ObjectMeta{Name: serviceName, Namespace: namespaceName}, + Spec: v1.ServiceSpec{ + ClusterIP: "172.20.1.1", + Selector: map[string]string{"foo": "bar"}, + Ports: []v1.ServicePort{{Name: "", TargetPort: intstr.FromInt(80), Protocol: v1.ProtocolTCP}}, + }, + } + if tc.internalTrafficPolicy != nil { + svc.Spec.InternalTrafficPolicy = tc.internalTrafficPolicy + } + + fp.OnServiceAdd(svc) + + // Add initial endpoint slice + tcpProtocol := v1.ProtocolTCP + endpointSlice := &discovery.EndpointSlice{ + ObjectMeta: metav1.ObjectMeta{ + Name: fmt.Sprintf("%s-1", serviceName), + Namespace: namespaceName, + Labels: map[string]string{discovery.LabelServiceName: serviceName}, + }, + Ports: []discovery.EndpointPort{{ + Name: utilpointer.StringPtr(""), + Port: utilpointer.Int32Ptr(80), + Protocol: &tcpProtocol, + }}, + AddressType: discovery.AddressTypeIPv4, + } + + for _, ep := range tc.endpoints { + endpointSlice.Endpoints = append(endpointSlice.Endpoints, discovery.Endpoint{ + Addresses: []string{ep.ip}, + Conditions: discovery.EndpointConditions{Ready: utilpointer.BoolPtr(true)}, + Topology: map[string]string{"kubernetes.io/hostname": ep.hostname}, + }) + } + + fp.OnEndpointSliceAdd(endpointSlice) + fp.syncProxyRules() + + // Ensure that Proxier updates ipvs appropriately after EndpointSlice update + assert.NotNil(t, fp.ipsetList["KUBE-LOOP-BACK"]) + + activeEntries1 := fp.ipsetList["KUBE-LOOP-BACK"].activeEntries + + if tc.expectLocalEntries { + assert.Equal(t, 1, activeEntries1.Len(), "Expected 1 active entry in KUBE-LOOP-BACK") + } else { + assert.Equal(t, 0, activeEntries1.Len(), "Expected no active entry in KUBE-LOOP-BACK") + } + + if tc.expectVirtualServer { + virtualServers1, vsErr1 := ipvs.GetVirtualServers() + assert.Nil(t, vsErr1, "Expected no error getting virtual servers") + + assert.Len(t, virtualServers1, 1, "Expected 1 virtual server") + realServers1, rsErr1 := ipvs.GetRealServers(virtualServers1[0]) + assert.Nil(t, rsErr1, "Expected no error getting real servers") + + assert.Len(t, realServers1, tc.expectLocalRealServerNum, fmt.Sprintf("Expected %d real servers", tc.expectLocalRealServerNum)) + for i := 0; i < tc.expectLocalRealServerNum; i++ { + assert.Equal(t, realServers1[i].String(), tc.expectLocalRealServers[i]) + } + } + + fp.OnEndpointSliceDelete(endpointSlice) + fp.syncProxyRules() + + // Ensure that Proxier updates ipvs appropriately after EndpointSlice delete + assert.NotNil(t, fp.ipsetList["KUBE-LOOP-BACK"]) + activeEntries3 := fp.ipsetList["KUBE-LOOP-BACK"].activeEntries + assert.Equal(t, 0, activeEntries3.Len(), "Expected 0 active entries in KUBE-LOOP-BACK") + virtualServers2, vsErr2 := ipvs.GetVirtualServers() + assert.Nil(t, vsErr2, "Expected no error getting virtual servers") + assert.Len(t, virtualServers2, 1, "Expected 1 virtual server") + realServers2, rsErr2 := ipvs.GetRealServers(virtualServers2[0]) + assert.Nil(t, rsErr2, "Expected no error getting real servers") + assert.Len(t, realServers2, 0, "Expected 0 real servers") + } +} diff --git a/pkg/proxy/service.go b/pkg/proxy/service.go index 32b1d0a74eba..a78930944a14 100644 --- a/pkg/proxy/service.go +++ b/pkg/proxy/service.go @@ -28,8 +28,10 @@ import ( v1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/sets" + utilfeature "k8s.io/apiserver/pkg/util/feature" "k8s.io/client-go/tools/record" apiservice "k8s.io/kubernetes/pkg/api/v1/service" + "k8s.io/kubernetes/pkg/features" "k8s.io/kubernetes/pkg/proxy/metrics" utilproxy "k8s.io/kubernetes/pkg/proxy/util" ) @@ -49,7 +51,9 @@ type BaseServiceInfo struct { externalIPs []string loadBalancerSourceRanges []string healthCheckNodePort int - onlyNodeLocalEndpoints bool + nodeLocalExternal bool + nodeLocalInternal bool + internalTrafficPolicy *v1.ServiceInternalTrafficPolicyType topologyKeys []string } @@ -114,9 +118,19 @@ func (info *BaseServiceInfo) LoadBalancerIPStrings() []string { return ips } -// OnlyNodeLocalEndpoints is part of ServicePort interface. -func (info *BaseServiceInfo) OnlyNodeLocalEndpoints() bool { - return info.onlyNodeLocalEndpoints +// NodeLocalExternal is part of ServicePort interface. +func (info *BaseServiceInfo) NodeLocalExternal() bool { + return info.nodeLocalExternal +} + +// NodeLocalInternal is part of ServicePort interface +func (info *BaseServiceInfo) NodeLocalInternal() bool { + return info.nodeLocalInternal +} + +// InternalTrafficPolicy is part of ServicePort interface +func (info *BaseServiceInfo) InternalTrafficPolicy() *v1.ServiceInternalTrafficPolicyType { + return info.internalTrafficPolicy } // TopologyKeys is part of ServicePort interface. @@ -125,9 +139,13 @@ func (info *BaseServiceInfo) TopologyKeys() []string { } func (sct *ServiceChangeTracker) newBaseServiceInfo(port *v1.ServicePort, service *v1.Service) *BaseServiceInfo { - onlyNodeLocalEndpoints := false + nodeLocalExternal := false if apiservice.RequestsOnlyLocalTraffic(service) { - onlyNodeLocalEndpoints = true + nodeLocalExternal = true + } + nodeLocalInternal := false + if utilfeature.DefaultFeatureGate.Enabled(features.ServiceInternalTrafficPolicy) { + nodeLocalInternal = apiservice.RequestsOnlyLocalTrafficForInternal(service) } var stickyMaxAgeSeconds int if service.Spec.SessionAffinity == v1.ServiceAffinityClientIP { @@ -137,14 +155,16 @@ func (sct *ServiceChangeTracker) newBaseServiceInfo(port *v1.ServicePort, servic clusterIP := utilproxy.GetClusterIPByFamily(sct.ipFamily, service) info := &BaseServiceInfo{ - clusterIP: net.ParseIP(clusterIP), - port: int(port.Port), - protocol: port.Protocol, - nodePort: int(port.NodePort), - sessionAffinityType: service.Spec.SessionAffinity, - stickyMaxAgeSeconds: stickyMaxAgeSeconds, - onlyNodeLocalEndpoints: onlyNodeLocalEndpoints, - topologyKeys: service.Spec.TopologyKeys, + clusterIP: net.ParseIP(clusterIP), + port: int(port.Port), + protocol: port.Protocol, + nodePort: int(port.NodePort), + sessionAffinityType: service.Spec.SessionAffinity, + stickyMaxAgeSeconds: stickyMaxAgeSeconds, + nodeLocalExternal: nodeLocalExternal, + nodeLocalInternal: nodeLocalInternal, + internalTrafficPolicy: service.Spec.InternalTrafficPolicy, + topologyKeys: service.Spec.TopologyKeys, } loadBalancerSourceRanges := make([]string, len(service.Spec.LoadBalancerSourceRanges)) diff --git a/pkg/proxy/topology.go b/pkg/proxy/topology.go index 9694774e700b..b272f3652575 100644 --- a/pkg/proxy/topology.go +++ b/pkg/proxy/topology.go @@ -18,6 +18,8 @@ package proxy import ( v1 "k8s.io/api/core/v1" + utilfeature "k8s.io/apiserver/pkg/util/feature" + "k8s.io/kubernetes/pkg/features" ) // FilterTopologyEndpoint returns the appropriate endpoints based on the cluster @@ -44,7 +46,7 @@ func FilterTopologyEndpoint(nodeLabels map[string]string, topologyKeys []string, return endpoints } - filteredEndpoint := []Endpoint{} + filteredEndpoints := []Endpoint{} if len(nodeLabels) == 0 { if topologyKeys[len(topologyKeys)-1] == v1.TopologyKeyAny { @@ -54,7 +56,7 @@ func FilterTopologyEndpoint(nodeLabels map[string]string, topologyKeys []string, } // edge case: do not include any endpoints if topology key "Any" is // not specified when we cannot determine current node's topology. - return filteredEndpoint + return filteredEndpoints } for _, key := range topologyKeys { @@ -69,12 +71,40 @@ func FilterTopologyEndpoint(nodeLabels map[string]string, topologyKeys []string, for _, ep := range endpoints { topology := ep.GetTopology() if value, found := topology[key]; found && value == topologyValue { - filteredEndpoint = append(filteredEndpoint, ep) + filteredEndpoints = append(filteredEndpoints, ep) } } - if len(filteredEndpoint) > 0 { - return filteredEndpoint + if len(filteredEndpoints) > 0 { + return filteredEndpoints } } - return filteredEndpoint + return filteredEndpoints +} + +// FilterLocalEndpoint returns the node local endpoints based on configured +// InternalTrafficPolicy. +// +// If ServiceInternalTrafficPolicy feature gate is off, returns the original +// endpoints slice. +// Otherwise, if InternalTrafficPolicy is Local, only return the node local endpoints. +func FilterLocalEndpoint(internalTrafficPolicy *v1.ServiceInternalTrafficPolicyType, endpoints []Endpoint) []Endpoint { + if !utilfeature.DefaultFeatureGate.Enabled(features.ServiceInternalTrafficPolicy) { + return endpoints + } + if internalTrafficPolicy == nil || *internalTrafficPolicy == v1.ServiceInternalTrafficPolicyCluster { + return endpoints + } + + var filteredEndpoints []Endpoint + + // Get all the local endpoints + for _, ep := range endpoints { + if ep.GetIsLocal() { + filteredEndpoints = append(filteredEndpoints, ep) + } + } + + // When internalTrafficPolicy is Local, only return the node local + // endpoints + return filteredEndpoints } diff --git a/pkg/proxy/topology_test.go b/pkg/proxy/topology_test.go index c874e0217c10..9f501152f3ae 100644 --- a/pkg/proxy/topology_test.go +++ b/pkg/proxy/topology_test.go @@ -22,6 +22,9 @@ import ( v1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/types" + utilfeature "k8s.io/apiserver/pkg/util/feature" + featuregatetesting "k8s.io/component-base/featuregate/testing" + "k8s.io/kubernetes/pkg/features" ) func TestFilterTopologyEndpoint(t *testing.T) { @@ -476,3 +479,97 @@ func TestFilterTopologyEndpoint(t *testing.T) { }) } } + +func TestFilterLocalEndpoint(t *testing.T) { + cluster := v1.ServiceInternalTrafficPolicyCluster + local := v1.ServiceInternalTrafficPolicyLocal + + testCases := []struct { + name string + internalTrafficPolicy *v1.ServiceInternalTrafficPolicyType + endpoints []Endpoint + expected []Endpoint + featureGateOn bool + }{ + { + name: "no internalTrafficPolicy with empty endpoints", + internalTrafficPolicy: nil, + endpoints: []Endpoint{}, + expected: []Endpoint{}, + featureGateOn: true, + }, + { + name: "no internalTrafficPolicy with non-empty endpoints", + internalTrafficPolicy: nil, + endpoints: []Endpoint{ + &BaseEndpointInfo{Endpoint: "10.0.0.0:80", IsLocal: true}, + &BaseEndpointInfo{Endpoint: "10.0.0.1:80", IsLocal: false}, + }, + expected: []Endpoint{ + &BaseEndpointInfo{Endpoint: "10.0.0.0:80", IsLocal: true}, + &BaseEndpointInfo{Endpoint: "10.0.0.1:80", IsLocal: false}, + }, + featureGateOn: true, + }, + { + name: "internalTrafficPolicy is cluster", + internalTrafficPolicy: &cluster, + endpoints: []Endpoint{ + &BaseEndpointInfo{Endpoint: "10.0.0.0:80", IsLocal: true}, + &BaseEndpointInfo{Endpoint: "10.0.0.1:80", IsLocal: false}, + }, + expected: []Endpoint{ + &BaseEndpointInfo{Endpoint: "10.0.0.0:80", IsLocal: true}, + &BaseEndpointInfo{Endpoint: "10.0.0.1:80", IsLocal: false}, + }, + featureGateOn: true, + }, + { + name: "internalTrafficPolicy is local with non-zero local endpoints", + internalTrafficPolicy: &local, + endpoints: []Endpoint{ + &BaseEndpointInfo{Endpoint: "10.0.0.0:80", IsLocal: true}, + &BaseEndpointInfo{Endpoint: "10.0.0.1:80", IsLocal: false}, + }, + expected: []Endpoint{ + &BaseEndpointInfo{Endpoint: "10.0.0.0:80", IsLocal: true}, + }, + featureGateOn: true, + }, + { + name: "internalTrafficPolicy is local with zero local endpoints", + internalTrafficPolicy: &local, + endpoints: []Endpoint{ + &BaseEndpointInfo{Endpoint: "10.0.0.0:80", IsLocal: false}, + &BaseEndpointInfo{Endpoint: "10.0.0.1:80", IsLocal: false}, + &BaseEndpointInfo{Endpoint: "10.0.0.2:80", IsLocal: false}, + }, + expected: nil, + featureGateOn: true, + }, + { + name: "feature gate is off, internalTrafficPolicy is local with non-empty endpoints", + internalTrafficPolicy: &local, + endpoints: []Endpoint{ + &BaseEndpointInfo{Endpoint: "10.0.0.0:80", IsLocal: true}, + &BaseEndpointInfo{Endpoint: "10.0.0.1:80", IsLocal: false}, + &BaseEndpointInfo{Endpoint: "10.0.0.2:80", IsLocal: false}, + }, + expected: []Endpoint{ + &BaseEndpointInfo{Endpoint: "10.0.0.0:80", IsLocal: true}, + &BaseEndpointInfo{Endpoint: "10.0.0.1:80", IsLocal: false}, + &BaseEndpointInfo{Endpoint: "10.0.0.2:80", IsLocal: false}, + }, + featureGateOn: false, + }, + } + for _, tc := range testCases { + defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.ServiceInternalTrafficPolicy, tc.featureGateOn)() + t.Run(tc.name, func(t *testing.T) { + filteredEndpoint := FilterLocalEndpoint(tc.internalTrafficPolicy, tc.endpoints) + if !reflect.DeepEqual(filteredEndpoint, tc.expected) { + t.Errorf("expected %v, got %v", tc.expected, filteredEndpoint) + } + }) + } +} diff --git a/pkg/proxy/types.go b/pkg/proxy/types.go index 96ccb4032952..9085bf0c7434 100644 --- a/pkg/proxy/types.go +++ b/pkg/proxy/types.go @@ -83,8 +83,12 @@ type ServicePort interface { HealthCheckNodePort() int // GetNodePort returns a service Node port if present. If return 0, it means not present. NodePort() int - // GetOnlyNodeLocalEndpoints returns if a service has only node local endpoints - OnlyNodeLocalEndpoints() bool + // NodeLocalExternal returns if a service has only node local endpoints for external traffic. + NodeLocalExternal() bool + // NodeLocalInternal returns if a service has only node local endpoints for internal traffic. + NodeLocalInternal() bool + // InternalTrafficPolicy returns service InternalTrafficPolicy + InternalTrafficPolicy() *v1.ServiceInternalTrafficPolicyType // TopologyKeys returns service TopologyKeys as a string array. TopologyKeys() []string } diff --git a/pkg/registry/core/service/strategy.go b/pkg/registry/core/service/strategy.go index 6ff69cb5a320..e3c31dee967c 100644 --- a/pkg/registry/core/service/strategy.go +++ b/pkg/registry/core/service/strategy.go @@ -156,7 +156,7 @@ func dropServiceDisabledFields(newSvc *api.Service, oldSvc *api.Service) { newSvc.Spec.TopologyKeys = nil } - // Clear AllocateLoadBalancerNodePorts if ServiceLBNodePortControl if not enabled + // Clear AllocateLoadBalancerNodePorts if ServiceLBNodePortControl is not enabled if !utilfeature.DefaultFeatureGate.Enabled(features.ServiceLBNodePortControl) { if !allocateLoadBalancerNodePortsInUse(oldSvc) { newSvc.Spec.AllocateLoadBalancerNodePorts = nil @@ -180,6 +180,13 @@ func dropServiceDisabledFields(newSvc *api.Service, oldSvc *api.Service) { newSvc.Spec.LoadBalancerClass = nil } } + + // Clear InternalTrafficPolicy if not enabled + if !utilfeature.DefaultFeatureGate.Enabled(features.ServiceInternalTrafficPolicy) { + if !serviceInternalTrafficPolicyInUse(oldSvc) { + newSvc.Spec.InternalTrafficPolicy = nil + } + } } // returns true if svc.Spec.AllocateLoadBalancerNodePorts field is in use @@ -240,6 +247,13 @@ func loadBalancerClassInUse(svc *api.Service) bool { return svc.Spec.LoadBalancerClass != nil } +func serviceInternalTrafficPolicyInUse(svc *api.Service) bool { + if svc == nil { + return false + } + return svc.Spec.InternalTrafficPolicy != nil +} + type serviceStatusStrategy struct { Strategy } diff --git a/pkg/registry/core/service/strategy_test.go b/pkg/registry/core/service/strategy_test.go index c39172100907..84c8ba2668b8 100644 --- a/pkg/registry/core/service/strategy_test.go +++ b/pkg/registry/core/service/strategy_test.go @@ -257,19 +257,30 @@ func makeServiceWithLoadBalancerClass(loadBalancerClass *string) *api.Service { } } +func makeServiceWithInternalTrafficPolicy(policy *api.ServiceInternalTrafficPolicyType) *api.Service { + return &api.Service{ + Spec: api.ServiceSpec{ + InternalTrafficPolicy: policy, + }, + } +} + func TestDropDisabledField(t *testing.T) { requireDualStack := api.IPFamilyPolicyRequireDualStack preferDualStack := api.IPFamilyPolicyPreferDualStack singleStack := api.IPFamilyPolicySingleStack + localInternalTrafficPolicy := api.ServiceInternalTrafficPolicyLocal + testCases := []struct { - name string - enableDualStack bool - enableMixedProtocol bool - enableLoadBalancerClass bool - svc *api.Service - oldSvc *api.Service - compareSvc *api.Service + name string + enableDualStack bool + enableMixedProtocol bool + enableLoadBalancerClass bool + enableInternalTrafficPolicy bool + svc *api.Service + oldSvc *api.Service + compareSvc *api.Service }{ { name: "not dual stack, field not used", @@ -500,6 +511,28 @@ func TestDropDisabledField(t *testing.T) { oldSvc: makeServiceWithLoadBalancerClass(utilpointer.StringPtr("test.com/test")), compareSvc: makeServiceWithLoadBalancerClass(nil), }, + /* svc.spec.internalTrafficPolicy */ + { + name: "internal traffic policy not enabled, field used in old, not used in new", + enableInternalTrafficPolicy: false, + svc: makeServiceWithInternalTrafficPolicy(nil), + oldSvc: makeServiceWithInternalTrafficPolicy(&localInternalTrafficPolicy), + compareSvc: makeServiceWithInternalTrafficPolicy(nil), + }, + { + name: "internal traffic policy not enabled, field not used in old, used in new", + enableInternalTrafficPolicy: false, + svc: makeServiceWithInternalTrafficPolicy(&localInternalTrafficPolicy), + oldSvc: makeServiceWithInternalTrafficPolicy(nil), + compareSvc: makeServiceWithInternalTrafficPolicy(nil), + }, + { + name: "internal traffic policy enabled, field not used in old, used in new", + enableInternalTrafficPolicy: true, + svc: makeServiceWithInternalTrafficPolicy(&localInternalTrafficPolicy), + oldSvc: makeServiceWithInternalTrafficPolicy(nil), + compareSvc: makeServiceWithInternalTrafficPolicy(&localInternalTrafficPolicy), + }, /* add more tests for other dropped fields as needed */ } for _, tc := range testCases { @@ -507,12 +540,13 @@ func TestDropDisabledField(t *testing.T) { defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.IPv6DualStack, tc.enableDualStack)() defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.MixedProtocolLBService, tc.enableMixedProtocol)() defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.ServiceLoadBalancerClass, tc.enableLoadBalancerClass)() + defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.ServiceInternalTrafficPolicy, tc.enableInternalTrafficPolicy)() old := tc.oldSvc.DeepCopy() // to test against user using IPFamily not set on cluster dropServiceDisabledFields(tc.svc, tc.oldSvc) - // old node should never be changed + // old node should never be changed if !reflect.DeepEqual(tc.oldSvc, old) { t.Errorf("%v: old svc changed: %v", tc.name, diff.ObjectReflectDiff(tc.oldSvc, old)) } diff --git a/staging/src/k8s.io/api/core/v1/generated.pb.go b/staging/src/k8s.io/api/core/v1/generated.pb.go index 68179542e193..13815c0b9999 100644 --- a/staging/src/k8s.io/api/core/v1/generated.pb.go +++ b/staging/src/k8s.io/api/core/v1/generated.pb.go @@ -6116,885 +6116,886 @@ func init() { } var fileDescriptor_83c10c24ec417dc9 = []byte{ - // 14037 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xbd, 0x7b, 0x70, 0x1c, 0xc9, - 0x79, 0x18, 0xae, 0xd9, 0xc5, 0x6b, 0x3f, 0xbc, 0x1b, 0x24, 0x0f, 0xc4, 0x1d, 0x09, 0xde, 0x50, - 0xe2, 0xf1, 0x74, 0x77, 0xa0, 0x78, 0x0f, 0xe9, 0x7c, 0x27, 0x9d, 0x05, 0x60, 0x01, 0x72, 0x8f, - 0x04, 0xb8, 0xd7, 0x0b, 0x92, 0x92, 0x7c, 0x52, 0x69, 0xb0, 0xdb, 0x00, 0x46, 0xd8, 0x9d, 0xd9, - 0x9b, 0x99, 0x05, 0x89, 0xfb, 0xc9, 0xf5, 0x73, 0xe4, 0xa7, 0xfc, 0x48, 0xa9, 0x52, 0xae, 0x3c, - 0x6c, 0x97, 0x2b, 0xe5, 0x38, 0x65, 0x2b, 0x4e, 0x52, 0x71, 0xec, 0xd8, 0x8e, 0xe5, 0xc4, 0x4e, - 0x9c, 0x87, 0x93, 0x3f, 0x1c, 0xc7, 0x95, 0x58, 0xae, 0x72, 0x05, 0xb1, 0xe9, 0x54, 0xb9, 0xf4, - 0x47, 0x6c, 0x27, 0x76, 0xfe, 0x08, 0xe2, 0x8a, 0x53, 0xfd, 0x9c, 0xee, 0x79, 0xec, 0x2e, 0x78, - 0x20, 0x74, 0x52, 0xdd, 0x7f, 0xbb, 0xfd, 0x7d, 0xfd, 0x75, 0x4f, 0x3f, 0xbf, 0xfe, 0x9e, 0xf0, - 0xea, 0xee, 0xcb, 0xe1, 0x82, 0xeb, 0x5f, 0xd9, 0xed, 0x6c, 0x92, 0xc0, 0x23, 0x11, 0x09, 0xaf, - 0xec, 0x11, 0xaf, 0xe1, 0x07, 0x57, 0x04, 0xc0, 0x69, 0xbb, 0x57, 0xea, 0x7e, 0x40, 0xae, 0xec, - 0x5d, 0xbd, 0xb2, 0x4d, 0x3c, 0x12, 0x38, 0x11, 0x69, 0x2c, 0xb4, 0x03, 0x3f, 0xf2, 0x11, 0xe2, - 0x38, 0x0b, 0x4e, 0xdb, 0x5d, 0xa0, 0x38, 0x0b, 0x7b, 0x57, 0xe7, 0x9e, 0xdb, 0x76, 0xa3, 0x9d, - 0xce, 0xe6, 0x42, 0xdd, 0x6f, 0x5d, 0xd9, 0xf6, 0xb7, 0xfd, 0x2b, 0x0c, 0x75, 0xb3, 0xb3, 0xc5, - 0xfe, 0xb1, 0x3f, 0xec, 0x17, 0x27, 0x31, 0xf7, 0x62, 0xdc, 0x4c, 0xcb, 0xa9, 0xef, 0xb8, 0x1e, - 0x09, 0xf6, 0xaf, 0xb4, 0x77, 0xb7, 0x59, 0xbb, 0x01, 0x09, 0xfd, 0x4e, 0x50, 0x27, 0xc9, 0x86, - 0xbb, 0xd6, 0x0a, 0xaf, 0xb4, 0x48, 0xe4, 0x64, 0x74, 0x77, 0xee, 0x4a, 0x5e, 0xad, 0xa0, 0xe3, - 0x45, 0x6e, 0x2b, 0xdd, 0xcc, 0x87, 0x7b, 0x55, 0x08, 0xeb, 0x3b, 0xa4, 0xe5, 0xa4, 0xea, 0xbd, - 0x90, 0x57, 0xaf, 0x13, 0xb9, 0xcd, 0x2b, 0xae, 0x17, 0x85, 0x51, 0x90, 0xac, 0x64, 0x7f, 0xd5, - 0x82, 0x0b, 0x8b, 0x77, 0x6b, 0x2b, 0x4d, 0x27, 0x8c, 0xdc, 0xfa, 0x52, 0xd3, 0xaf, 0xef, 0xd6, - 0x22, 0x3f, 0x20, 0x77, 0xfc, 0x66, 0xa7, 0x45, 0x6a, 0x6c, 0x20, 0xd0, 0xb3, 0x30, 0xb2, 0xc7, - 0xfe, 0x57, 0xca, 0xb3, 0xd6, 0x05, 0xeb, 0x72, 0x69, 0x69, 0xea, 0x37, 0x0e, 0xe6, 0xdf, 0xf7, - 0xe0, 0x60, 0x7e, 0xe4, 0x8e, 0x28, 0xc7, 0x0a, 0x03, 0x5d, 0x82, 0xa1, 0xad, 0x70, 0x63, 0xbf, - 0x4d, 0x66, 0x0b, 0x0c, 0x77, 0x42, 0xe0, 0x0e, 0xad, 0xd6, 0x68, 0x29, 0x16, 0x50, 0x74, 0x05, - 0x4a, 0x6d, 0x27, 0x88, 0xdc, 0xc8, 0xf5, 0xbd, 0xd9, 0xe2, 0x05, 0xeb, 0xf2, 0xe0, 0xd2, 0xb4, - 0x40, 0x2d, 0x55, 0x25, 0x00, 0xc7, 0x38, 0xb4, 0x1b, 0x01, 0x71, 0x1a, 0xb7, 0xbc, 0xe6, 0xfe, - 0xec, 0xc0, 0x05, 0xeb, 0xf2, 0x48, 0xdc, 0x0d, 0x2c, 0xca, 0xb1, 0xc2, 0xb0, 0x7f, 0xa4, 0x00, - 0x23, 0x8b, 0x5b, 0x5b, 0xae, 0xe7, 0x46, 0xfb, 0xe8, 0x0e, 0x8c, 0x79, 0x7e, 0x83, 0xc8, 0xff, - 0xec, 0x2b, 0x46, 0x9f, 0xbf, 0xb0, 0x90, 0x5e, 0x4a, 0x0b, 0xeb, 0x1a, 0xde, 0xd2, 0xd4, 0x83, - 0x83, 0xf9, 0x31, 0xbd, 0x04, 0x1b, 0x74, 0x10, 0x86, 0xd1, 0xb6, 0xdf, 0x50, 0x64, 0x0b, 0x8c, - 0xec, 0x7c, 0x16, 0xd9, 0x6a, 0x8c, 0xb6, 0x34, 0xf9, 0xe0, 0x60, 0x7e, 0x54, 0x2b, 0xc0, 0x3a, - 0x11, 0xb4, 0x09, 0x93, 0xf4, 0xaf, 0x17, 0xb9, 0x8a, 0x6e, 0x91, 0xd1, 0xbd, 0x98, 0x47, 0x57, - 0x43, 0x5d, 0x9a, 0x79, 0x70, 0x30, 0x3f, 0x99, 0x28, 0xc4, 0x49, 0x82, 0xf6, 0xdb, 0x30, 0xb1, - 0x18, 0x45, 0x4e, 0x7d, 0x87, 0x34, 0xf8, 0x0c, 0xa2, 0x17, 0x61, 0xc0, 0x73, 0x5a, 0x44, 0xcc, - 0xef, 0x05, 0x31, 0xb0, 0x03, 0xeb, 0x4e, 0x8b, 0x1c, 0x1e, 0xcc, 0x4f, 0xdd, 0xf6, 0xdc, 0xb7, - 0x3a, 0x62, 0x55, 0xd0, 0x32, 0xcc, 0xb0, 0xd1, 0xf3, 0x00, 0x0d, 0xb2, 0xe7, 0xd6, 0x49, 0xd5, - 0x89, 0x76, 0xc4, 0x7c, 0x23, 0x51, 0x17, 0xca, 0x0a, 0x82, 0x35, 0x2c, 0xfb, 0x3e, 0x94, 0x16, - 0xf7, 0x7c, 0xb7, 0x51, 0xf5, 0x1b, 0x21, 0xda, 0x85, 0xc9, 0x76, 0x40, 0xb6, 0x48, 0xa0, 0x8a, - 0x66, 0xad, 0x0b, 0xc5, 0xcb, 0xa3, 0xcf, 0x5f, 0xce, 0xfc, 0x58, 0x13, 0x75, 0xc5, 0x8b, 0x82, - 0xfd, 0xa5, 0xc7, 0x44, 0x7b, 0x93, 0x09, 0x28, 0x4e, 0x52, 0xb6, 0xff, 0x55, 0x01, 0x4e, 0x2f, - 0xbe, 0xdd, 0x09, 0x48, 0xd9, 0x0d, 0x77, 0x93, 0x2b, 0xbc, 0xe1, 0x86, 0xbb, 0xeb, 0xf1, 0x08, - 0xa8, 0xa5, 0x55, 0x16, 0xe5, 0x58, 0x61, 0xa0, 0xe7, 0x60, 0x98, 0xfe, 0xbe, 0x8d, 0x2b, 0xe2, - 0x93, 0x67, 0x04, 0xf2, 0x68, 0xd9, 0x89, 0x9c, 0x32, 0x07, 0x61, 0x89, 0x83, 0xd6, 0x60, 0xb4, - 0xce, 0x36, 0xe4, 0xf6, 0x9a, 0xdf, 0x20, 0x6c, 0x32, 0x4b, 0x4b, 0xcf, 0x50, 0xf4, 0xe5, 0xb8, - 0xf8, 0xf0, 0x60, 0x7e, 0x96, 0xf7, 0x4d, 0x90, 0xd0, 0x60, 0x58, 0xaf, 0x8f, 0x6c, 0xb5, 0xbf, - 0x06, 0x18, 0x25, 0xc8, 0xd8, 0x5b, 0x97, 0xb5, 0xad, 0x32, 0xc8, 0xb6, 0xca, 0x58, 0xf6, 0x36, - 0x41, 0x57, 0x61, 0x60, 0xd7, 0xf5, 0x1a, 0xb3, 0x43, 0x8c, 0xd6, 0x39, 0x3a, 0xe7, 0x37, 0x5c, - 0xaf, 0x71, 0x78, 0x30, 0x3f, 0x6d, 0x74, 0x87, 0x16, 0x62, 0x86, 0x6a, 0xff, 0x99, 0x05, 0xf3, - 0x0c, 0xb6, 0xea, 0x36, 0x49, 0x95, 0x04, 0xa1, 0x1b, 0x46, 0xc4, 0x8b, 0x8c, 0x01, 0x7d, 0x1e, - 0x20, 0x24, 0xf5, 0x80, 0x44, 0xda, 0x90, 0xaa, 0x85, 0x51, 0x53, 0x10, 0xac, 0x61, 0xd1, 0x03, - 0x21, 0xdc, 0x71, 0x02, 0xb6, 0xbe, 0xc4, 0xc0, 0xaa, 0x03, 0xa1, 0x26, 0x01, 0x38, 0xc6, 0x31, - 0x0e, 0x84, 0x62, 0xaf, 0x03, 0x01, 0x7d, 0x0c, 0x26, 0xe3, 0xc6, 0xc2, 0xb6, 0x53, 0x97, 0x03, - 0xc8, 0xb6, 0x4c, 0xcd, 0x04, 0xe1, 0x24, 0xae, 0xfd, 0xf7, 0x2c, 0xb1, 0x78, 0xe8, 0x57, 0xbf, - 0xcb, 0xbf, 0xd5, 0xfe, 0x25, 0x0b, 0x86, 0x97, 0x5c, 0xaf, 0xe1, 0x7a, 0xdb, 0xe8, 0xb3, 0x30, - 0x42, 0xef, 0xa6, 0x86, 0x13, 0x39, 0xe2, 0xdc, 0xfb, 0x90, 0xb6, 0xb7, 0xd4, 0x55, 0xb1, 0xd0, - 0xde, 0xdd, 0xa6, 0x05, 0xe1, 0x02, 0xc5, 0xa6, 0xbb, 0xed, 0xd6, 0xe6, 0xe7, 0x48, 0x3d, 0x5a, - 0x23, 0x91, 0x13, 0x7f, 0x4e, 0x5c, 0x86, 0x15, 0x55, 0x74, 0x03, 0x86, 0x22, 0x27, 0xd8, 0x26, - 0x91, 0x38, 0x00, 0x33, 0x0f, 0x2a, 0x5e, 0x13, 0xd3, 0x1d, 0x49, 0xbc, 0x3a, 0x89, 0xaf, 0x85, - 0x0d, 0x56, 0x15, 0x0b, 0x12, 0xf6, 0x0f, 0x0d, 0xc3, 0xd9, 0xe5, 0x5a, 0x25, 0x67, 0x5d, 0x5d, - 0x82, 0xa1, 0x46, 0xe0, 0xee, 0x91, 0x40, 0x8c, 0xb3, 0xa2, 0x52, 0x66, 0xa5, 0x58, 0x40, 0xd1, - 0xcb, 0x30, 0xc6, 0x2f, 0xa4, 0xeb, 0x8e, 0xd7, 0x68, 0xca, 0x21, 0x3e, 0x25, 0xb0, 0xc7, 0xee, - 0x68, 0x30, 0x6c, 0x60, 0x1e, 0x71, 0x51, 0x5d, 0x4a, 0x6c, 0xc6, 0xbc, 0xcb, 0xee, 0x8b, 0x16, - 0x4c, 0xf1, 0x66, 0x16, 0xa3, 0x28, 0x70, 0x37, 0x3b, 0x11, 0x09, 0x67, 0x07, 0xd9, 0x49, 0xb7, - 0x9c, 0x35, 0x5a, 0xb9, 0x23, 0xb0, 0x70, 0x27, 0x41, 0x85, 0x1f, 0x82, 0xb3, 0xa2, 0xdd, 0xa9, - 0x24, 0x18, 0xa7, 0x9a, 0x45, 0xdf, 0x69, 0xc1, 0x5c, 0xdd, 0xf7, 0xa2, 0xc0, 0x6f, 0x36, 0x49, - 0x50, 0xed, 0x6c, 0x36, 0xdd, 0x70, 0x87, 0xaf, 0x53, 0x4c, 0xb6, 0xd8, 0x49, 0x90, 0x33, 0x87, - 0x0a, 0x49, 0xcc, 0xe1, 0xf9, 0x07, 0x07, 0xf3, 0x73, 0xcb, 0xb9, 0xa4, 0x70, 0x97, 0x66, 0xd0, - 0x2e, 0x20, 0x7a, 0x95, 0xd6, 0x22, 0x67, 0x9b, 0xc4, 0x8d, 0x0f, 0xf7, 0xdf, 0xf8, 0x99, 0x07, - 0x07, 0xf3, 0x68, 0x3d, 0x45, 0x02, 0x67, 0x90, 0x45, 0x6f, 0xc1, 0x29, 0x5a, 0x9a, 0xfa, 0xd6, - 0x91, 0xfe, 0x9b, 0x9b, 0x7d, 0x70, 0x30, 0x7f, 0x6a, 0x3d, 0x83, 0x08, 0xce, 0x24, 0x8d, 0xbe, - 0xc3, 0x82, 0xb3, 0xf1, 0xe7, 0xaf, 0xdc, 0x6f, 0x3b, 0x5e, 0x23, 0x6e, 0xb8, 0xd4, 0x7f, 0xc3, - 0xf4, 0x4c, 0x3e, 0xbb, 0x9c, 0x47, 0x09, 0xe7, 0x37, 0x32, 0xb7, 0x0c, 0xa7, 0x33, 0x57, 0x0b, - 0x9a, 0x82, 0xe2, 0x2e, 0xe1, 0x5c, 0x50, 0x09, 0xd3, 0x9f, 0xe8, 0x14, 0x0c, 0xee, 0x39, 0xcd, - 0x8e, 0xd8, 0x28, 0x98, 0xff, 0x79, 0xa5, 0xf0, 0xb2, 0x65, 0xff, 0xeb, 0x22, 0x4c, 0x2e, 0xd7, - 0x2a, 0x0f, 0xb5, 0x0b, 0xf5, 0x6b, 0xa8, 0xd0, 0xf5, 0x1a, 0x8a, 0x2f, 0xb5, 0x62, 0xee, 0xa5, - 0xf6, 0xff, 0x67, 0x6c, 0xa1, 0x01, 0xb6, 0x85, 0xbe, 0x25, 0x67, 0x0b, 0x1d, 0xf3, 0xc6, 0xd9, - 0xcb, 0x59, 0x45, 0x83, 0x6c, 0x32, 0x33, 0x39, 0x96, 0x9b, 0x7e, 0xdd, 0x69, 0x26, 0x8f, 0xbe, - 0x23, 0x2e, 0xa5, 0xe3, 0x99, 0xc7, 0x3a, 0x8c, 0x2d, 0x3b, 0x6d, 0x67, 0xd3, 0x6d, 0xba, 0x91, - 0x4b, 0x42, 0xf4, 0x14, 0x14, 0x9d, 0x46, 0x83, 0x71, 0x5b, 0xa5, 0xa5, 0xd3, 0x0f, 0x0e, 0xe6, - 0x8b, 0x8b, 0x0d, 0x7a, 0xed, 0x83, 0xc2, 0xda, 0xc7, 0x14, 0x03, 0x7d, 0x10, 0x06, 0x1a, 0x81, - 0xdf, 0x9e, 0x2d, 0x30, 0x4c, 0xba, 0xeb, 0x06, 0xca, 0x81, 0xdf, 0x4e, 0xa0, 0x32, 0x1c, 0xfb, - 0xd7, 0x0a, 0xf0, 0xc4, 0x32, 0x69, 0xef, 0xac, 0xd6, 0x72, 0xce, 0xef, 0xcb, 0x30, 0xd2, 0xf2, - 0x3d, 0x37, 0xf2, 0x83, 0x50, 0x34, 0xcd, 0x56, 0xc4, 0x9a, 0x28, 0xc3, 0x0a, 0x8a, 0x2e, 0xc0, - 0x40, 0x3b, 0x66, 0x2a, 0xc7, 0x24, 0x43, 0xca, 0xd8, 0x49, 0x06, 0xa1, 0x18, 0x9d, 0x90, 0x04, - 0x62, 0xc5, 0x28, 0x8c, 0xdb, 0x21, 0x09, 0x30, 0x83, 0xc4, 0x37, 0x33, 0xbd, 0xb3, 0xc5, 0x09, - 0x9d, 0xb8, 0x99, 0x29, 0x04, 0x6b, 0x58, 0xa8, 0x0a, 0xa5, 0x30, 0x31, 0xb3, 0x7d, 0x6d, 0xd3, - 0x71, 0x76, 0x75, 0xab, 0x99, 0x8c, 0x89, 0x18, 0x37, 0xca, 0x50, 0xcf, 0xab, 0xfb, 0x2b, 0x05, - 0x40, 0x7c, 0x08, 0xbf, 0xc1, 0x06, 0xee, 0x76, 0x7a, 0xe0, 0xfa, 0xdf, 0x12, 0xc7, 0x35, 0x7a, - 0x7f, 0x6e, 0xc1, 0x13, 0xcb, 0xae, 0xd7, 0x20, 0x41, 0xce, 0x02, 0x7c, 0x34, 0x6f, 0xd9, 0xa3, - 0x31, 0x0d, 0xc6, 0x12, 0x1b, 0x38, 0x86, 0x25, 0x66, 0xff, 0x89, 0x05, 0x88, 0x7f, 0xf6, 0xbb, - 0xee, 0x63, 0x6f, 0xa7, 0x3f, 0xf6, 0x18, 0x96, 0x85, 0x7d, 0x13, 0x26, 0x96, 0x9b, 0x2e, 0xf1, - 0xa2, 0x4a, 0x75, 0xd9, 0xf7, 0xb6, 0xdc, 0x6d, 0xf4, 0x0a, 0x4c, 0x44, 0x6e, 0x8b, 0xf8, 0x9d, - 0xa8, 0x46, 0xea, 0xbe, 0xc7, 0x5e, 0x92, 0xd6, 0xe5, 0xc1, 0x25, 0xf4, 0xe0, 0x60, 0x7e, 0x62, - 0xc3, 0x80, 0xe0, 0x04, 0xa6, 0xfd, 0x7b, 0x74, 0xfc, 0xfc, 0x56, 0xdb, 0xf7, 0x88, 0x17, 0x2d, - 0xfb, 0x5e, 0x83, 0x4b, 0x1c, 0x5e, 0x81, 0x81, 0x88, 0x8e, 0x07, 0x1f, 0xbb, 0x4b, 0x72, 0xa3, - 0xd0, 0x51, 0x38, 0x3c, 0x98, 0x3f, 0x93, 0xae, 0xc1, 0xc6, 0x89, 0xd5, 0x41, 0xdf, 0x02, 0x43, - 0x61, 0xe4, 0x44, 0x9d, 0x50, 0x8c, 0xe6, 0x93, 0x72, 0x34, 0x6b, 0xac, 0xf4, 0xf0, 0x60, 0x7e, - 0x52, 0x55, 0xe3, 0x45, 0x58, 0x54, 0x40, 0x4f, 0xc3, 0x70, 0x8b, 0x84, 0xa1, 0xb3, 0x2d, 0x6f, - 0xc3, 0x49, 0x51, 0x77, 0x78, 0x8d, 0x17, 0x63, 0x09, 0x47, 0x17, 0x61, 0x90, 0x04, 0x81, 0x1f, - 0x88, 0x3d, 0x3a, 0x2e, 0x10, 0x07, 0x57, 0x68, 0x21, 0xe6, 0x30, 0xfb, 0x3f, 0x58, 0x30, 0xa9, - 0xfa, 0xca, 0xdb, 0x3a, 0x81, 0x57, 0xc1, 0xa7, 0x00, 0xea, 0xf2, 0x03, 0x43, 0x76, 0x7b, 0x8c, - 0x3e, 0x7f, 0x29, 0xf3, 0xa2, 0x4e, 0x0d, 0x63, 0x4c, 0x59, 0x15, 0x85, 0x58, 0xa3, 0x66, 0xff, - 0x33, 0x0b, 0x66, 0x12, 0x5f, 0x74, 0xd3, 0x0d, 0x23, 0xf4, 0x66, 0xea, 0xab, 0x16, 0xfa, 0xfb, - 0x2a, 0x5a, 0x9b, 0x7d, 0x93, 0x5a, 0xca, 0xb2, 0x44, 0xfb, 0xa2, 0xeb, 0x30, 0xe8, 0x46, 0xa4, - 0x25, 0x3f, 0xe6, 0x62, 0xd7, 0x8f, 0xe1, 0xbd, 0x8a, 0x67, 0xa4, 0x42, 0x6b, 0x62, 0x4e, 0xc0, - 0xfe, 0xb5, 0x22, 0x94, 0xf8, 0xb2, 0x5d, 0x73, 0xda, 0x27, 0x30, 0x17, 0xcf, 0x40, 0xc9, 0x6d, - 0xb5, 0x3a, 0x91, 0xb3, 0x29, 0x8e, 0xf3, 0x11, 0xbe, 0xb5, 0x2a, 0xb2, 0x10, 0xc7, 0x70, 0x54, - 0x81, 0x01, 0xd6, 0x15, 0xfe, 0x95, 0x4f, 0x65, 0x7f, 0xa5, 0xe8, 0xfb, 0x42, 0xd9, 0x89, 0x1c, - 0xce, 0x49, 0xa9, 0x7b, 0x84, 0x16, 0x61, 0x46, 0x02, 0x39, 0x00, 0x9b, 0xae, 0xe7, 0x04, 0xfb, - 0xb4, 0x6c, 0xb6, 0xc8, 0x08, 0x3e, 0xd7, 0x9d, 0xe0, 0x92, 0xc2, 0xe7, 0x64, 0xd5, 0x87, 0xc5, - 0x00, 0xac, 0x11, 0x9d, 0xfb, 0x08, 0x94, 0x14, 0xf2, 0x51, 0x18, 0xa2, 0xb9, 0x8f, 0xc1, 0x64, - 0xa2, 0xad, 0x5e, 0xd5, 0xc7, 0x74, 0x7e, 0xea, 0x97, 0xd9, 0x91, 0x21, 0x7a, 0xbd, 0xe2, 0xed, - 0x89, 0x23, 0xf7, 0x6d, 0x38, 0xd5, 0xcc, 0x38, 0xc9, 0xc4, 0xbc, 0xf6, 0x7f, 0xf2, 0x3d, 0x21, - 0x3e, 0xfb, 0x54, 0x16, 0x14, 0x67, 0xb6, 0x41, 0x79, 0x04, 0xbf, 0x4d, 0x37, 0x88, 0xd3, 0xd4, - 0xd9, 0xed, 0x5b, 0xa2, 0x0c, 0x2b, 0x28, 0x3d, 0xef, 0x4e, 0xa9, 0xce, 0xdf, 0x20, 0xfb, 0x35, - 0xd2, 0x24, 0xf5, 0xc8, 0x0f, 0xbe, 0xae, 0xdd, 0x3f, 0xc7, 0x47, 0x9f, 0x1f, 0x97, 0xa3, 0x82, - 0x40, 0xf1, 0x06, 0xd9, 0xe7, 0x53, 0xa1, 0x7f, 0x5d, 0xb1, 0xeb, 0xd7, 0xfd, 0xac, 0x05, 0xe3, - 0xea, 0xeb, 0x4e, 0xe0, 0x5c, 0x58, 0x32, 0xcf, 0x85, 0x73, 0x5d, 0x17, 0x78, 0xce, 0x89, 0xf0, - 0x95, 0x02, 0x9c, 0x55, 0x38, 0xf4, 0x6d, 0xc0, 0xff, 0x88, 0x55, 0x75, 0x05, 0x4a, 0x9e, 0x92, - 0x5a, 0x59, 0xa6, 0xb8, 0x28, 0x96, 0x59, 0xc5, 0x38, 0x94, 0xc5, 0xf3, 0x62, 0xd1, 0xd2, 0x98, - 0x2e, 0xce, 0x15, 0xa2, 0xdb, 0x25, 0x28, 0x76, 0xdc, 0x86, 0xb8, 0x60, 0x3e, 0x24, 0x47, 0xfb, - 0x76, 0xa5, 0x7c, 0x78, 0x30, 0xff, 0x64, 0x9e, 0x2a, 0x81, 0xde, 0x6c, 0xe1, 0xc2, 0xed, 0x4a, - 0x19, 0xd3, 0xca, 0x68, 0x11, 0x26, 0xa5, 0xb6, 0xe4, 0x0e, 0x65, 0xb7, 0x7c, 0x4f, 0xdc, 0x43, - 0x4a, 0x26, 0x8b, 0x4d, 0x30, 0x4e, 0xe2, 0xa3, 0x32, 0x4c, 0xed, 0x76, 0x36, 0x49, 0x93, 0x44, - 0xfc, 0x83, 0x6f, 0x10, 0x2e, 0xb1, 0x2c, 0xc5, 0x2f, 0xb3, 0x1b, 0x09, 0x38, 0x4e, 0xd5, 0xb0, - 0xff, 0x92, 0xdd, 0x07, 0x62, 0xf4, 0xaa, 0x81, 0x4f, 0x17, 0x16, 0xa5, 0xfe, 0xf5, 0x5c, 0xce, - 0xfd, 0xac, 0x8a, 0x1b, 0x64, 0x7f, 0xc3, 0xa7, 0x9c, 0x79, 0xf6, 0xaa, 0x30, 0xd6, 0xfc, 0x40, - 0xd7, 0x35, 0xff, 0xf3, 0x05, 0x38, 0xad, 0x46, 0xc0, 0x60, 0x02, 0xbf, 0xd1, 0xc7, 0xe0, 0x2a, - 0x8c, 0x36, 0xc8, 0x96, 0xd3, 0x69, 0x46, 0x4a, 0x7c, 0x3e, 0xc8, 0x55, 0x28, 0xe5, 0xb8, 0x18, - 0xeb, 0x38, 0x47, 0x18, 0xb6, 0xff, 0x35, 0xca, 0x2e, 0xe2, 0xc8, 0xa1, 0x6b, 0x5c, 0xed, 0x1a, - 0x2b, 0x77, 0xd7, 0x5c, 0x84, 0x41, 0xb7, 0x45, 0x19, 0xb3, 0x82, 0xc9, 0x6f, 0x55, 0x68, 0x21, - 0xe6, 0x30, 0xf4, 0x01, 0x18, 0xae, 0xfb, 0xad, 0x96, 0xe3, 0x35, 0xd8, 0x95, 0x57, 0x5a, 0x1a, - 0xa5, 0xbc, 0xdb, 0x32, 0x2f, 0xc2, 0x12, 0x86, 0x9e, 0x80, 0x01, 0x27, 0xd8, 0xe6, 0x32, 0x8c, - 0xd2, 0xd2, 0x08, 0x6d, 0x69, 0x31, 0xd8, 0x0e, 0x31, 0x2b, 0xa5, 0x4f, 0xb0, 0x7b, 0x7e, 0xb0, - 0xeb, 0x7a, 0xdb, 0x65, 0x37, 0x10, 0x5b, 0x42, 0xdd, 0x85, 0x77, 0x15, 0x04, 0x6b, 0x58, 0x68, - 0x15, 0x06, 0xdb, 0x7e, 0x10, 0x85, 0xb3, 0x43, 0x6c, 0xb8, 0x9f, 0xcc, 0x39, 0x88, 0xf8, 0xd7, - 0x56, 0xfd, 0x20, 0x8a, 0x3f, 0x80, 0xfe, 0x0b, 0x31, 0xaf, 0x8e, 0x6e, 0xc2, 0x30, 0xf1, 0xf6, - 0x56, 0x03, 0xbf, 0x35, 0x3b, 0x93, 0x4f, 0x69, 0x85, 0xa3, 0xf0, 0x65, 0x16, 0xf3, 0xa8, 0xa2, - 0x18, 0x4b, 0x12, 0xe8, 0x5b, 0xa0, 0x48, 0xbc, 0xbd, 0xd9, 0x61, 0x46, 0x69, 0x2e, 0x87, 0xd2, - 0x1d, 0x27, 0x88, 0xcf, 0xfc, 0x15, 0x6f, 0x0f, 0xd3, 0x3a, 0xe8, 0x93, 0x50, 0x92, 0x07, 0x46, - 0x28, 0x84, 0x75, 0x99, 0x0b, 0x56, 0x1e, 0x33, 0x98, 0xbc, 0xd5, 0x71, 0x03, 0xd2, 0x22, 0x5e, - 0x14, 0xc6, 0x27, 0xa4, 0x84, 0x86, 0x38, 0xa6, 0x86, 0x3e, 0x29, 0x25, 0xc4, 0x6b, 0x7e, 0xc7, - 0x8b, 0xc2, 0xd9, 0x12, 0xeb, 0x5e, 0xa6, 0xee, 0xee, 0x4e, 0x8c, 0x97, 0x14, 0x21, 0xf3, 0xca, - 0xd8, 0x20, 0x85, 0x3e, 0x0d, 0xe3, 0xfc, 0x3f, 0xd7, 0x80, 0x85, 0xb3, 0xa7, 0x19, 0xed, 0x0b, - 0xf9, 0xb4, 0x39, 0xe2, 0xd2, 0x69, 0x41, 0x7c, 0x5c, 0x2f, 0x0d, 0xb1, 0x49, 0x0d, 0x61, 0x18, - 0x6f, 0xba, 0x7b, 0xc4, 0x23, 0x61, 0x58, 0x0d, 0xfc, 0x4d, 0x32, 0x0b, 0x6c, 0x60, 0xce, 0x66, - 0x6b, 0xcc, 0xfc, 0x4d, 0xb2, 0x34, 0x4d, 0x69, 0xde, 0xd4, 0xeb, 0x60, 0x93, 0x04, 0xba, 0x0d, - 0x13, 0xf4, 0xc5, 0xe6, 0xc6, 0x44, 0x47, 0x7b, 0x11, 0x65, 0xef, 0x2a, 0x6c, 0x54, 0xc2, 0x09, - 0x22, 0xe8, 0x16, 0x8c, 0x85, 0x91, 0x13, 0x44, 0x9d, 0x36, 0x27, 0x7a, 0xa6, 0x17, 0x51, 0xa6, - 0x70, 0xad, 0x69, 0x55, 0xb0, 0x41, 0x00, 0xbd, 0x0e, 0xa5, 0xa6, 0xbb, 0x45, 0xea, 0xfb, 0xf5, - 0x26, 0x99, 0x1d, 0x63, 0xd4, 0x32, 0x0f, 0x95, 0x9b, 0x12, 0x89, 0xf3, 0xb9, 0xea, 0x2f, 0x8e, - 0xab, 0xa3, 0x3b, 0x70, 0x26, 0x22, 0x41, 0xcb, 0xf5, 0x1c, 0x7a, 0x18, 0x88, 0xa7, 0x15, 0x53, - 0x64, 0x8e, 0xb3, 0xdd, 0x76, 0x5e, 0xcc, 0xc6, 0x99, 0x8d, 0x4c, 0x2c, 0x9c, 0x53, 0x1b, 0xdd, - 0x87, 0xd9, 0x0c, 0x88, 0xdf, 0x74, 0xeb, 0xfb, 0xb3, 0xa7, 0x18, 0xe5, 0x8f, 0x0a, 0xca, 0xb3, - 0x1b, 0x39, 0x78, 0x87, 0x5d, 0x60, 0x38, 0x97, 0x3a, 0xba, 0x05, 0x93, 0xec, 0x04, 0xaa, 0x76, - 0x9a, 0x4d, 0xd1, 0xe0, 0x04, 0x6b, 0xf0, 0x03, 0xf2, 0x3e, 0xae, 0x98, 0xe0, 0xc3, 0x83, 0x79, - 0x88, 0xff, 0xe1, 0x64, 0x6d, 0xb4, 0xc9, 0x74, 0x66, 0x9d, 0xc0, 0x8d, 0xf6, 0xe9, 0xb9, 0x41, - 0xee, 0x47, 0xb3, 0x93, 0x5d, 0xe5, 0x15, 0x3a, 0xaa, 0x52, 0xac, 0xe9, 0x85, 0x38, 0x49, 0x90, - 0x1e, 0xa9, 0x61, 0xd4, 0x70, 0xbd, 0xd9, 0x29, 0xfe, 0x2e, 0x91, 0x27, 0x52, 0x8d, 0x16, 0x62, - 0x0e, 0x63, 0xfa, 0x32, 0xfa, 0xe3, 0x16, 0xbd, 0xb9, 0xa6, 0x19, 0x62, 0xac, 0x2f, 0x93, 0x00, - 0x1c, 0xe3, 0x50, 0x66, 0x32, 0x8a, 0xf6, 0x67, 0x11, 0x43, 0x55, 0x07, 0xcb, 0xc6, 0xc6, 0x27, - 0x31, 0x2d, 0xb7, 0x37, 0x61, 0x42, 0x1d, 0x84, 0x6c, 0x4c, 0xd0, 0x3c, 0x0c, 0x32, 0xf6, 0x49, - 0x48, 0xd7, 0x4a, 0xb4, 0x0b, 0x8c, 0xb5, 0xc2, 0xbc, 0x9c, 0x75, 0xc1, 0x7d, 0x9b, 0x2c, 0xed, - 0x47, 0x84, 0xbf, 0xe9, 0x8b, 0x5a, 0x17, 0x24, 0x00, 0xc7, 0x38, 0xf6, 0xff, 0xe5, 0x6c, 0x68, - 0x7c, 0xda, 0xf6, 0x71, 0xbf, 0x3c, 0x0b, 0x23, 0x3b, 0x7e, 0x18, 0x51, 0x6c, 0xd6, 0xc6, 0x60, - 0xcc, 0x78, 0x5e, 0x17, 0xe5, 0x58, 0x61, 0xa0, 0x57, 0x61, 0xbc, 0xae, 0x37, 0x20, 0x2e, 0x47, - 0x75, 0x8c, 0x18, 0xad, 0x63, 0x13, 0x17, 0xbd, 0x0c, 0x23, 0xcc, 0x06, 0xa4, 0xee, 0x37, 0x05, - 0xd7, 0x26, 0x6f, 0xf8, 0x91, 0xaa, 0x28, 0x3f, 0xd4, 0x7e, 0x63, 0x85, 0x8d, 0x2e, 0xc1, 0x10, - 0xed, 0x42, 0xa5, 0x2a, 0xae, 0x25, 0x25, 0x28, 0xba, 0xce, 0x4a, 0xb1, 0x80, 0xda, 0x7f, 0xad, - 0xa0, 0x8d, 0x32, 0x7d, 0x0f, 0x13, 0x54, 0x85, 0xe1, 0x7b, 0x8e, 0x1b, 0xb9, 0xde, 0xb6, 0xe0, - 0x3f, 0x9e, 0xee, 0x7a, 0x47, 0xb1, 0x4a, 0x77, 0x79, 0x05, 0x7e, 0x8b, 0x8a, 0x3f, 0x58, 0x92, - 0xa1, 0x14, 0x83, 0x8e, 0xe7, 0x51, 0x8a, 0x85, 0x7e, 0x29, 0x62, 0x5e, 0x81, 0x53, 0x14, 0x7f, - 0xb0, 0x24, 0x83, 0xde, 0x04, 0x90, 0x3b, 0x8c, 0x34, 0x84, 0xed, 0xc5, 0xb3, 0xbd, 0x89, 0x6e, - 0xa8, 0x3a, 0x4b, 0x13, 0xf4, 0x8e, 0x8e, 0xff, 0x63, 0x8d, 0x9e, 0x1d, 0x31, 0x3e, 0x2d, 0xdd, - 0x19, 0xf4, 0x6d, 0x74, 0x89, 0x3b, 0x41, 0x44, 0x1a, 0x8b, 0x91, 0x18, 0x9c, 0x0f, 0xf6, 0xf7, - 0x48, 0xd9, 0x70, 0x5b, 0x44, 0xdf, 0x0e, 0x82, 0x08, 0x8e, 0xe9, 0xd9, 0xbf, 0x58, 0x84, 0xd9, - 0xbc, 0xee, 0xd2, 0x45, 0x47, 0xee, 0xbb, 0xd1, 0x32, 0x65, 0xaf, 0x2c, 0x73, 0xd1, 0xad, 0x88, - 0x72, 0xac, 0x30, 0xe8, 0xec, 0x87, 0xee, 0xb6, 0x7c, 0x63, 0x0e, 0xc6, 0xb3, 0x5f, 0x63, 0xa5, - 0x58, 0x40, 0x29, 0x5e, 0x40, 0x9c, 0x50, 0x18, 0xf7, 0x68, 0xab, 0x04, 0xb3, 0x52, 0x2c, 0xa0, - 0xba, 0xb4, 0x6b, 0xa0, 0x87, 0xb4, 0xcb, 0x18, 0xa2, 0xc1, 0xe3, 0x1d, 0x22, 0xf4, 0x19, 0x80, - 0x2d, 0xd7, 0x73, 0xc3, 0x1d, 0x46, 0x7d, 0xe8, 0xc8, 0xd4, 0x15, 0x73, 0xb6, 0xaa, 0xa8, 0x60, - 0x8d, 0x22, 0x7a, 0x09, 0x46, 0xd5, 0x06, 0xac, 0x94, 0x99, 0xa6, 0x53, 0xb3, 0x1c, 0x89, 0x4f, - 0xa3, 0x32, 0xd6, 0xf1, 0xec, 0xcf, 0x25, 0xd7, 0x8b, 0xd8, 0x01, 0xda, 0xf8, 0x5a, 0xfd, 0x8e, - 0x6f, 0xa1, 0xfb, 0xf8, 0xda, 0x5f, 0x2b, 0xc2, 0xa4, 0xd1, 0x58, 0x27, 0xec, 0xe3, 0xcc, 0xba, - 0x46, 0x0f, 0x70, 0x27, 0x22, 0x62, 0xff, 0xd9, 0xbd, 0xb7, 0x8a, 0x7e, 0xc8, 0xd3, 0x1d, 0xc0, - 0xeb, 0xa3, 0xcf, 0x40, 0xa9, 0xe9, 0x84, 0x4c, 0x72, 0x46, 0xc4, 0xbe, 0xeb, 0x87, 0x58, 0xfc, - 0x30, 0x71, 0xc2, 0x48, 0xbb, 0x35, 0x39, 0xed, 0x98, 0x24, 0xbd, 0x69, 0x28, 0x7f, 0x22, 0xad, - 0xc7, 0x54, 0x27, 0x28, 0x13, 0xb3, 0x8f, 0x39, 0x0c, 0xbd, 0x0c, 0x63, 0x01, 0x61, 0xab, 0x62, - 0x99, 0x72, 0x73, 0x6c, 0x99, 0x0d, 0xc6, 0x6c, 0x1f, 0xd6, 0x60, 0xd8, 0xc0, 0x8c, 0xdf, 0x06, - 0x43, 0x5d, 0xde, 0x06, 0x4f, 0xc3, 0x30, 0xfb, 0xa1, 0x56, 0x80, 0x9a, 0x8d, 0x0a, 0x2f, 0xc6, - 0x12, 0x9e, 0x5c, 0x30, 0x23, 0xfd, 0x2d, 0x18, 0xfa, 0xfa, 0x10, 0x8b, 0x9a, 0x69, 0x99, 0x47, - 0xf8, 0x29, 0x27, 0x96, 0x3c, 0x96, 0x30, 0xfb, 0x83, 0x30, 0x51, 0x76, 0x48, 0xcb, 0xf7, 0x56, - 0xbc, 0x46, 0xdb, 0x77, 0xbd, 0x08, 0xcd, 0xc2, 0x00, 0xbb, 0x44, 0xf8, 0x11, 0x30, 0x40, 0x1b, - 0xc2, 0xac, 0xc4, 0xde, 0x86, 0xd3, 0x65, 0xff, 0x9e, 0x77, 0xcf, 0x09, 0x1a, 0x8b, 0xd5, 0x8a, - 0xf6, 0xbe, 0x5e, 0x97, 0xef, 0x3b, 0x6e, 0xb4, 0x95, 0x79, 0xf4, 0x6a, 0x35, 0x39, 0x5b, 0xbb, - 0xea, 0x36, 0x49, 0x8e, 0x14, 0xe4, 0x6f, 0x14, 0x8c, 0x96, 0x62, 0x7c, 0xa5, 0xd5, 0xb2, 0x72, - 0xb5, 0x5a, 0x6f, 0xc0, 0xc8, 0x96, 0x4b, 0x9a, 0x0d, 0x4c, 0xb6, 0xc4, 0x4a, 0x7c, 0x2a, 0xdf, - 0x0e, 0x65, 0x95, 0x62, 0x4a, 0xa9, 0x17, 0x7f, 0x1d, 0xae, 0x8a, 0xca, 0x58, 0x91, 0x41, 0xbb, - 0x30, 0x25, 0x1f, 0x0c, 0x12, 0x2a, 0xd6, 0xe5, 0xd3, 0xdd, 0x5e, 0x21, 0x26, 0xf1, 0x53, 0x0f, - 0x0e, 0xe6, 0xa7, 0x70, 0x82, 0x0c, 0x4e, 0x11, 0xa6, 0xcf, 0xc1, 0x16, 0x3d, 0x81, 0x07, 0xd8, - 0xf0, 0xb3, 0xe7, 0x20, 0x7b, 0xd9, 0xb2, 0x52, 0xfb, 0xc7, 0x2c, 0x78, 0x2c, 0x35, 0x32, 0xe2, - 0x85, 0x7f, 0xcc, 0xb3, 0x90, 0x7c, 0x71, 0x17, 0x7a, 0xbf, 0xb8, 0xed, 0xbf, 0x6f, 0xc1, 0xa9, - 0x95, 0x56, 0x3b, 0xda, 0x2f, 0xbb, 0xa6, 0x0a, 0xea, 0x23, 0x30, 0xd4, 0x22, 0x0d, 0xb7, 0xd3, - 0x12, 0x33, 0x37, 0x2f, 0x4f, 0xa9, 0x35, 0x56, 0x7a, 0x78, 0x30, 0x3f, 0x5e, 0x8b, 0xfc, 0xc0, - 0xd9, 0x26, 0xbc, 0x00, 0x0b, 0x74, 0x76, 0xd6, 0xbb, 0x6f, 0x93, 0x9b, 0x6e, 0xcb, 0x95, 0x76, - 0x45, 0x5d, 0x65, 0x76, 0x0b, 0x72, 0x40, 0x17, 0xde, 0xe8, 0x38, 0x5e, 0xe4, 0x46, 0xfb, 0x42, - 0x7b, 0x24, 0x89, 0xe0, 0x98, 0x9e, 0xfd, 0x55, 0x0b, 0x26, 0xe5, 0xba, 0x5f, 0x6c, 0x34, 0x02, - 0x12, 0x86, 0x68, 0x0e, 0x0a, 0x6e, 0x5b, 0xf4, 0x12, 0x44, 0x2f, 0x0b, 0x95, 0x2a, 0x2e, 0xb8, - 0x6d, 0xc9, 0x96, 0xb1, 0x83, 0xb0, 0x68, 0x2a, 0xd2, 0xae, 0x8b, 0x72, 0xac, 0x30, 0xd0, 0x65, - 0x18, 0xf1, 0xfc, 0x06, 0xb7, 0xed, 0xe2, 0x57, 0x1a, 0x5b, 0x60, 0xeb, 0xa2, 0x0c, 0x2b, 0x28, - 0xaa, 0x42, 0x89, 0x9b, 0x3d, 0xc5, 0x8b, 0xb6, 0x2f, 0xe3, 0x29, 0xf6, 0x65, 0x1b, 0xb2, 0x26, - 0x8e, 0x89, 0xd8, 0xbf, 0x6a, 0xc1, 0x98, 0xfc, 0xb2, 0x3e, 0x79, 0x4e, 0xba, 0xb5, 0x62, 0x7e, - 0x33, 0xde, 0x5a, 0x94, 0x67, 0x64, 0x10, 0x83, 0x55, 0x2c, 0x1e, 0x89, 0x55, 0xbc, 0x0a, 0xa3, - 0x4e, 0xbb, 0x5d, 0x35, 0xf9, 0x4c, 0xb6, 0x94, 0x16, 0xe3, 0x62, 0xac, 0xe3, 0xd8, 0x3f, 0x5a, - 0x80, 0x09, 0xf9, 0x05, 0xb5, 0xce, 0x66, 0x48, 0x22, 0xb4, 0x01, 0x25, 0x87, 0xcf, 0x12, 0x91, - 0x8b, 0xfc, 0x62, 0xb6, 0x1c, 0xc1, 0x98, 0xd2, 0xf8, 0xc2, 0x5f, 0x94, 0xb5, 0x71, 0x4c, 0x08, - 0x35, 0x61, 0xda, 0xf3, 0x23, 0x76, 0xf8, 0x2b, 0x78, 0x37, 0xd5, 0x4e, 0x92, 0xfa, 0x59, 0x41, - 0x7d, 0x7a, 0x3d, 0x49, 0x05, 0xa7, 0x09, 0xa3, 0x15, 0x29, 0x9b, 0x29, 0xe6, 0x0b, 0x03, 0xf4, - 0x89, 0xcb, 0x16, 0xcd, 0xd8, 0xbf, 0x62, 0x41, 0x49, 0xa2, 0x9d, 0x84, 0x16, 0x6f, 0x0d, 0x86, - 0x43, 0x36, 0x09, 0x72, 0x68, 0xec, 0x6e, 0x1d, 0xe7, 0xf3, 0x15, 0xdf, 0x69, 0xfc, 0x7f, 0x88, - 0x25, 0x0d, 0x26, 0x9a, 0x57, 0xdd, 0x7f, 0x97, 0x88, 0xe6, 0x55, 0x7f, 0x72, 0x2e, 0xa5, 0x3f, - 0x62, 0x7d, 0xd6, 0x64, 0x5d, 0x94, 0xf5, 0x6a, 0x07, 0x64, 0xcb, 0xbd, 0x9f, 0x64, 0xbd, 0xaa, - 0xac, 0x14, 0x0b, 0x28, 0x7a, 0x13, 0xc6, 0xea, 0x52, 0x26, 0x1b, 0xef, 0xf0, 0x4b, 0x5d, 0xf5, - 0x03, 0x4a, 0x95, 0xc4, 0x65, 0x21, 0xcb, 0x5a, 0x7d, 0x6c, 0x50, 0x33, 0xcd, 0x08, 0x8a, 0xbd, - 0xcc, 0x08, 0x62, 0xba, 0xf9, 0x4a, 0xf5, 0x1f, 0xb7, 0x60, 0x88, 0xcb, 0xe2, 0xfa, 0x13, 0x85, - 0x6a, 0x9a, 0xb5, 0x78, 0xec, 0xee, 0xd0, 0x42, 0xa1, 0x29, 0x43, 0x6b, 0x50, 0x62, 0x3f, 0x98, - 0x2c, 0xb1, 0x98, 0x6f, 0x75, 0xcf, 0x5b, 0xd5, 0x3b, 0x78, 0x47, 0x56, 0xc3, 0x31, 0x05, 0xfb, - 0x87, 0x8b, 0xf4, 0x74, 0x8b, 0x51, 0x8d, 0x4b, 0xdf, 0x7a, 0x74, 0x97, 0x7e, 0xe1, 0x51, 0x5d, - 0xfa, 0xdb, 0x30, 0x59, 0xd7, 0xf4, 0x70, 0xf1, 0x4c, 0x5e, 0xee, 0xba, 0x48, 0x34, 0x95, 0x1d, - 0x97, 0xb2, 0x2c, 0x9b, 0x44, 0x70, 0x92, 0x2a, 0xfa, 0x36, 0x18, 0xe3, 0xf3, 0x2c, 0x5a, 0xe1, - 0x96, 0x18, 0x1f, 0xc8, 0x5f, 0x2f, 0x7a, 0x13, 0x5c, 0x2a, 0xa7, 0x55, 0xc7, 0x06, 0x31, 0xfb, - 0x4f, 0x2d, 0x40, 0x2b, 0xed, 0x1d, 0xd2, 0x22, 0x81, 0xd3, 0x8c, 0xc5, 0xe9, 0xdf, 0x6f, 0xc1, - 0x2c, 0x49, 0x15, 0x2f, 0xfb, 0xad, 0x96, 0x78, 0xb4, 0xe4, 0xbc, 0xab, 0x57, 0x72, 0xea, 0x28, - 0xb7, 0x84, 0xd9, 0x3c, 0x0c, 0x9c, 0xdb, 0x1e, 0x5a, 0x83, 0x19, 0x7e, 0x4b, 0x2a, 0x80, 0x66, - 0x7b, 0xfd, 0xb8, 0x20, 0x3c, 0xb3, 0x91, 0x46, 0xc1, 0x59, 0xf5, 0xec, 0xef, 0x1a, 0x83, 0xdc, - 0x5e, 0xbc, 0xa7, 0x47, 0x78, 0x4f, 0x8f, 0xf0, 0x9e, 0x1e, 0xe1, 0x3d, 0x3d, 0xc2, 0x7b, 0x7a, - 0x84, 0x6f, 0x7a, 0x3d, 0xc2, 0x1f, 0x5b, 0x30, 0x93, 0xbe, 0x06, 0x4e, 0x82, 0x31, 0xef, 0xc0, - 0x4c, 0xfa, 0xae, 0xeb, 0x6a, 0x67, 0x97, 0xee, 0x67, 0x7c, 0xef, 0x65, 0x7c, 0x03, 0xce, 0xa2, - 0x6f, 0xff, 0xba, 0x05, 0xa7, 0x15, 0xb2, 0xf1, 0xd2, 0xff, 0x3c, 0xcc, 0xf0, 0xf3, 0x65, 0xb9, - 0xe9, 0xb8, 0xad, 0x0d, 0xd2, 0x6a, 0x37, 0x9d, 0x48, 0x9a, 0x19, 0x5c, 0xcd, 0xdc, 0xaa, 0x09, - 0x13, 0x5d, 0xa3, 0xe2, 0xd2, 0x63, 0xb4, 0x5f, 0x19, 0x00, 0x9c, 0xd5, 0x8c, 0x61, 0x94, 0x5a, - 0xe8, 0x69, 0x26, 0xfc, 0x8b, 0x23, 0x30, 0xb8, 0xb2, 0x47, 0xbc, 0xe8, 0x04, 0x26, 0xaa, 0x0e, - 0x13, 0xae, 0xb7, 0xe7, 0x37, 0xf7, 0x48, 0x83, 0xc3, 0x8f, 0xf2, 0xd0, 0x3f, 0x23, 0x48, 0x4f, - 0x54, 0x0c, 0x12, 0x38, 0x41, 0xf2, 0x51, 0x08, 0xdb, 0xaf, 0xc1, 0x10, 0xbf, 0xe3, 0x84, 0xa4, - 0x3d, 0xf3, 0x4a, 0x63, 0x83, 0x28, 0x6e, 0xee, 0x58, 0x11, 0xc0, 0xef, 0x50, 0x51, 0x1d, 0x7d, - 0x0e, 0x26, 0xb6, 0xdc, 0x20, 0x8c, 0x36, 0xdc, 0x16, 0x09, 0x23, 0xa7, 0xd5, 0x7e, 0x08, 0xe1, - 0xba, 0x1a, 0x87, 0x55, 0x83, 0x12, 0x4e, 0x50, 0x46, 0xdb, 0x30, 0xde, 0x74, 0xf4, 0xa6, 0x86, - 0x8f, 0xdc, 0x94, 0xba, 0x3c, 0x6f, 0xea, 0x84, 0xb0, 0x49, 0x97, 0x9e, 0x36, 0x75, 0x26, 0x1f, - 0x1e, 0x61, 0x52, 0x13, 0x75, 0xda, 0x70, 0xc1, 0x30, 0x87, 0x51, 0x3e, 0x90, 0xd9, 0x0f, 0x97, - 0x4c, 0x3e, 0x50, 0xb3, 0x12, 0xfe, 0x2c, 0x94, 0x08, 0x1d, 0x42, 0x4a, 0x58, 0xdc, 0xbf, 0x57, - 0xfa, 0xeb, 0xeb, 0x9a, 0x5b, 0x0f, 0x7c, 0x53, 0xad, 0xb1, 0x22, 0x29, 0xe1, 0x98, 0x28, 0x5a, - 0x86, 0xa1, 0x90, 0x04, 0x2e, 0x09, 0xc5, 0x4d, 0xdc, 0x65, 0x1a, 0x19, 0x1a, 0x77, 0xbd, 0xe1, - 0xbf, 0xb1, 0xa8, 0x4a, 0x97, 0x97, 0xc3, 0x24, 0xbe, 0xec, 0xae, 0xd4, 0x96, 0xd7, 0x22, 0x2b, - 0xc5, 0x02, 0x8a, 0x5e, 0x87, 0xe1, 0x80, 0x34, 0x99, 0xde, 0x6c, 0xbc, 0xff, 0x45, 0xce, 0xd5, - 0x70, 0xbc, 0x1e, 0x96, 0x04, 0xd0, 0x0d, 0x40, 0x01, 0xa1, 0x7c, 0xa4, 0xeb, 0x6d, 0x2b, 0xab, - 0x5a, 0x71, 0x0f, 0xa9, 0x73, 0x0b, 0xc7, 0x18, 0xd2, 0x0b, 0x0a, 0x67, 0x54, 0x43, 0xd7, 0x60, - 0x5a, 0x95, 0x56, 0xbc, 0x30, 0x72, 0xe8, 0xf9, 0x3f, 0xc9, 0x68, 0x29, 0x31, 0x0e, 0x4e, 0x22, - 0xe0, 0x74, 0x1d, 0xfb, 0xcb, 0x16, 0xf0, 0x71, 0x3e, 0x01, 0xe1, 0xc5, 0x6b, 0xa6, 0xf0, 0xe2, - 0x6c, 0xee, 0xcc, 0xe5, 0x08, 0x2e, 0xbe, 0x6c, 0xc1, 0xa8, 0x36, 0xb3, 0xf1, 0x9a, 0xb5, 0xba, - 0xac, 0xd9, 0x0e, 0x4c, 0xd1, 0x95, 0x7e, 0x6b, 0x33, 0x24, 0xc1, 0x1e, 0x69, 0xb0, 0x85, 0x59, - 0x78, 0xb8, 0x85, 0xa9, 0x2c, 0xf8, 0x6e, 0x26, 0x08, 0xe2, 0x54, 0x13, 0xf6, 0x67, 0x65, 0x57, - 0x95, 0xc1, 0x63, 0x5d, 0xcd, 0x79, 0xc2, 0xe0, 0x51, 0xcd, 0x2a, 0x8e, 0x71, 0xe8, 0x56, 0xdb, - 0xf1, 0xc3, 0x28, 0x69, 0xf0, 0x78, 0xdd, 0x0f, 0x23, 0xcc, 0x20, 0xf6, 0x0b, 0x00, 0x2b, 0xf7, - 0x49, 0x9d, 0xaf, 0x58, 0xfd, 0x6d, 0x65, 0xe5, 0xbf, 0xad, 0xec, 0xdf, 0xb6, 0x60, 0x62, 0x75, - 0xd9, 0xb8, 0xe7, 0x16, 0x00, 0xf8, 0x83, 0xf0, 0xee, 0xdd, 0x75, 0x69, 0x2d, 0xc0, 0x15, 0xbe, - 0xaa, 0x14, 0x6b, 0x18, 0xe8, 0x2c, 0x14, 0x9b, 0x1d, 0x4f, 0x48, 0x57, 0x87, 0x29, 0xf7, 0x70, - 0xb3, 0xe3, 0x61, 0x5a, 0xa6, 0x79, 0x5c, 0x14, 0xfb, 0xf6, 0xb8, 0xe8, 0x19, 0xf9, 0x00, 0xcd, - 0xc3, 0xe0, 0xbd, 0x7b, 0x6e, 0x83, 0xfb, 0x97, 0x0a, 0x4b, 0x86, 0xbb, 0x77, 0x2b, 0xe5, 0x10, - 0xf3, 0x72, 0xfb, 0x4b, 0x45, 0x98, 0x5b, 0x6d, 0x92, 0xfb, 0xef, 0xd0, 0xc7, 0xb6, 0x5f, 0x7f, - 0x91, 0xa3, 0xc9, 0xa9, 0x8e, 0xea, 0x13, 0xd4, 0x7b, 0x3c, 0xb6, 0x60, 0x98, 0xdb, 0xfb, 0x49, - 0x8f, 0xdb, 0x57, 0xb3, 0x5a, 0xcf, 0x1f, 0x90, 0x05, 0x6e, 0x37, 0x28, 0x1c, 0x06, 0xd5, 0x85, - 0x29, 0x4a, 0xb1, 0x24, 0x3e, 0xf7, 0x0a, 0x8c, 0xe9, 0x98, 0x47, 0xf2, 0xce, 0xfb, 0x2b, 0x45, - 0x98, 0xa2, 0x3d, 0x78, 0xa4, 0x13, 0x71, 0x3b, 0x3d, 0x11, 0xc7, 0xed, 0xa1, 0xd5, 0x7b, 0x36, - 0xde, 0x4c, 0xce, 0xc6, 0xd5, 0xbc, 0xd9, 0x38, 0xe9, 0x39, 0xf8, 0x4e, 0x0b, 0x66, 0x56, 0x9b, - 0x7e, 0x7d, 0x37, 0xe1, 0x45, 0xf5, 0x12, 0x8c, 0xd2, 0xe3, 0x38, 0x34, 0x1c, 0xfc, 0x8d, 0x90, - 0x0f, 0x02, 0x84, 0x75, 0x3c, 0xad, 0xda, 0xed, 0xdb, 0x95, 0x72, 0x56, 0xa4, 0x08, 0x01, 0xc2, - 0x3a, 0x9e, 0xfd, 0x9b, 0x16, 0x9c, 0xbb, 0xb6, 0xbc, 0x12, 0x2f, 0xc5, 0x54, 0xb0, 0x8a, 0x4b, - 0x30, 0xd4, 0x6e, 0x68, 0x5d, 0x89, 0xa5, 0xcf, 0x65, 0xd6, 0x0b, 0x01, 0x7d, 0xb7, 0x04, 0x62, - 0xf9, 0x69, 0x0b, 0x66, 0xae, 0xb9, 0x11, 0xbd, 0x5d, 0x93, 0x61, 0x13, 0xe8, 0xf5, 0x1a, 0xba, - 0x91, 0x1f, 0xec, 0x27, 0xc3, 0x26, 0x60, 0x05, 0xc1, 0x1a, 0x16, 0x6f, 0x79, 0xcf, 0x65, 0x96, - 0xe6, 0x05, 0x53, 0x0f, 0x87, 0x45, 0x39, 0x56, 0x18, 0xf4, 0xc3, 0x1a, 0x6e, 0xc0, 0x44, 0x98, - 0xfb, 0xe2, 0x84, 0x55, 0x1f, 0x56, 0x96, 0x00, 0x1c, 0xe3, 0xd0, 0xd7, 0xdc, 0xfc, 0xb5, 0x66, - 0x27, 0x8c, 0x48, 0xb0, 0x15, 0xe6, 0x9c, 0x8e, 0x2f, 0x40, 0x89, 0x48, 0x85, 0x81, 0xe8, 0xb5, - 0xe2, 0x18, 0x95, 0x26, 0x81, 0x47, 0x6f, 0x50, 0x78, 0x7d, 0xf8, 0x64, 0x1e, 0xcd, 0xa9, 0x6e, - 0x15, 0x10, 0xd1, 0xdb, 0xd2, 0xc3, 0x59, 0x30, 0xbf, 0xf8, 0x95, 0x14, 0x14, 0x67, 0xd4, 0xb0, - 0x7f, 0xcc, 0x82, 0xd3, 0xea, 0x83, 0xdf, 0x75, 0x9f, 0x69, 0xff, 0x5c, 0x01, 0xc6, 0xaf, 0x6f, - 0x6c, 0x54, 0xaf, 0x91, 0x48, 0x5c, 0xdb, 0xbd, 0xcd, 0x00, 0xb0, 0xa6, 0xcd, 0xec, 0xf6, 0x98, - 0xeb, 0x44, 0x6e, 0x73, 0x81, 0x47, 0x45, 0x5a, 0xa8, 0x78, 0xd1, 0xad, 0xa0, 0x16, 0x05, 0xae, - 0xb7, 0x9d, 0xa9, 0xff, 0x94, 0xcc, 0x45, 0x31, 0x8f, 0xb9, 0x40, 0x2f, 0xc0, 0x10, 0x0b, 0xcb, - 0x24, 0x27, 0xe1, 0x71, 0xf5, 0x16, 0x62, 0xa5, 0x87, 0x07, 0xf3, 0xa5, 0xdb, 0xb8, 0xc2, 0xff, - 0x60, 0x81, 0x8a, 0x6e, 0xc3, 0xe8, 0x4e, 0x14, 0xb5, 0xaf, 0x13, 0xa7, 0x41, 0x9f, 0xee, 0xfc, - 0x38, 0x3c, 0x9f, 0x75, 0x1c, 0xd2, 0x41, 0xe0, 0x68, 0xf1, 0x09, 0x12, 0x97, 0x85, 0x58, 0xa7, - 0x63, 0xd7, 0x00, 0x62, 0xd8, 0x31, 0x29, 0x72, 0xec, 0x3f, 0xb4, 0x60, 0x98, 0x47, 0xc8, 0x08, - 0xd0, 0x47, 0x61, 0x80, 0xdc, 0x27, 0x75, 0xc1, 0xf1, 0x66, 0x76, 0x38, 0xe6, 0xb4, 0xb8, 0x40, - 0x9a, 0xfe, 0xc7, 0xac, 0x16, 0xba, 0x0e, 0xc3, 0xb4, 0xb7, 0xd7, 0x54, 0xb8, 0x90, 0x27, 0xf3, - 0xbe, 0x58, 0x4d, 0x3b, 0x67, 0xce, 0x44, 0x11, 0x96, 0xd5, 0x99, 0xf6, 0xbc, 0xde, 0xae, 0xd1, - 0x13, 0x3b, 0xea, 0xc6, 0x58, 0x6c, 0x2c, 0x57, 0x39, 0x92, 0xa0, 0xc6, 0xb5, 0xe7, 0xb2, 0x10, - 0xc7, 0x44, 0xec, 0x0d, 0x28, 0xd1, 0x49, 0x5d, 0x6c, 0xba, 0x4e, 0x77, 0x83, 0x80, 0x67, 0xa0, - 0x24, 0xd5, 0xfd, 0xa1, 0xf0, 0x8c, 0x67, 0x54, 0xa5, 0x35, 0x40, 0x88, 0x63, 0xb8, 0xbd, 0x05, - 0xa7, 0x98, 0xf1, 0xa6, 0x13, 0xed, 0x18, 0x7b, 0xac, 0xf7, 0x62, 0x7e, 0x56, 0x3c, 0x20, 0xf9, - 0xcc, 0xcc, 0x6a, 0xce, 0xa7, 0x63, 0x92, 0x62, 0xfc, 0x98, 0xb4, 0xbf, 0x36, 0x00, 0x8f, 0x57, - 0x6a, 0xf9, 0xc1, 0x53, 0x5e, 0x86, 0x31, 0xce, 0x97, 0xd2, 0xa5, 0xed, 0x34, 0x45, 0xbb, 0x4a, - 0x12, 0xbd, 0xa1, 0xc1, 0xb0, 0x81, 0x89, 0xce, 0x41, 0xd1, 0x7d, 0xcb, 0x4b, 0xba, 0x66, 0x55, - 0xde, 0x58, 0xc7, 0xb4, 0x9c, 0x82, 0x29, 0x8b, 0xcb, 0xef, 0x0e, 0x05, 0x56, 0x6c, 0xee, 0x6b, - 0x30, 0xe1, 0x86, 0xf5, 0xd0, 0xad, 0x78, 0xf4, 0x9c, 0xd1, 0x4e, 0x2a, 0x25, 0xdc, 0xa0, 0x9d, - 0x56, 0x50, 0x9c, 0xc0, 0xd6, 0x2e, 0xb2, 0xc1, 0xbe, 0xd9, 0xe4, 0x9e, 0xae, 0xe2, 0xf4, 0x05, - 0xd0, 0x66, 0x5f, 0x17, 0x32, 0x95, 0x82, 0x78, 0x01, 0xf0, 0x0f, 0x0e, 0xb1, 0x84, 0xd1, 0x97, - 0x63, 0x7d, 0xc7, 0x69, 0x2f, 0x76, 0xa2, 0x9d, 0xb2, 0x1b, 0xd6, 0xfd, 0x3d, 0x12, 0xec, 0xb3, - 0x47, 0xff, 0x48, 0xfc, 0x72, 0x54, 0x80, 0xe5, 0xeb, 0x8b, 0x55, 0x8a, 0x89, 0xd3, 0x75, 0xd0, - 0x22, 0x4c, 0xca, 0xc2, 0x1a, 0x09, 0xd9, 0x15, 0x36, 0xca, 0xc8, 0x28, 0x67, 0x29, 0x51, 0xac, - 0x88, 0x24, 0xf1, 0x4d, 0x4e, 0x1a, 0x8e, 0x83, 0x93, 0xfe, 0x08, 0x8c, 0xbb, 0x9e, 0x1b, 0xb9, - 0x4e, 0xe4, 0x73, 0x7d, 0x18, 0x7f, 0xdf, 0x33, 0x41, 0x7f, 0x45, 0x07, 0x60, 0x13, 0xcf, 0xfe, - 0x6f, 0x03, 0x30, 0xcd, 0xa6, 0xed, 0xbd, 0x15, 0xf6, 0xcd, 0xb4, 0xc2, 0x6e, 0xa7, 0x57, 0xd8, - 0x71, 0x3c, 0x11, 0x1e, 0x7a, 0x99, 0x7d, 0x0e, 0x4a, 0xca, 0x3f, 0x4c, 0x3a, 0x88, 0x5a, 0x39, - 0x0e, 0xa2, 0xbd, 0xb9, 0x0f, 0x69, 0x62, 0x57, 0xcc, 0x34, 0xb1, 0xfb, 0x5b, 0x16, 0xc4, 0x0a, - 0x1e, 0x74, 0x1d, 0x4a, 0x6d, 0x9f, 0x59, 0x8e, 0x06, 0xd2, 0x1c, 0xfb, 0xf1, 0xcc, 0x8b, 0x8a, - 0x5f, 0x8a, 0xfc, 0xe3, 0xab, 0xb2, 0x06, 0x8e, 0x2b, 0xa3, 0x25, 0x18, 0x6e, 0x07, 0xa4, 0x16, - 0xb1, 0x18, 0x2a, 0x3d, 0xe9, 0xf0, 0x35, 0xc2, 0xf1, 0xb1, 0xac, 0x68, 0xff, 0xbc, 0x05, 0xc0, - 0xad, 0xd8, 0x1c, 0x6f, 0x9b, 0x9c, 0x80, 0xd4, 0xba, 0x0c, 0x03, 0x61, 0x9b, 0xd4, 0xbb, 0xd9, - 0xf4, 0xc6, 0xfd, 0xa9, 0xb5, 0x49, 0x3d, 0x1e, 0x70, 0xfa, 0x0f, 0xb3, 0xda, 0xf6, 0x77, 0x03, - 0x4c, 0xc4, 0x68, 0x95, 0x88, 0xb4, 0xd0, 0x73, 0x46, 0x4c, 0x85, 0xb3, 0x89, 0x98, 0x0a, 0x25, - 0x86, 0xad, 0x09, 0x48, 0x3f, 0x07, 0xc5, 0x96, 0x73, 0x5f, 0x48, 0xc0, 0x9e, 0xe9, 0xde, 0x0d, - 0x4a, 0x7f, 0x61, 0xcd, 0xb9, 0xcf, 0x1f, 0x89, 0xcf, 0xc8, 0x05, 0xb2, 0xe6, 0xdc, 0x3f, 0xe4, - 0x96, 0xbb, 0xec, 0x90, 0xba, 0xe9, 0x86, 0xd1, 0x17, 0xfe, 0x6b, 0xfc, 0x9f, 0x2d, 0x3b, 0xda, - 0x08, 0x6b, 0xcb, 0xf5, 0x84, 0x81, 0x56, 0x5f, 0x6d, 0xb9, 0x5e, 0xb2, 0x2d, 0xd7, 0xeb, 0xa3, - 0x2d, 0xd7, 0x43, 0x6f, 0xc3, 0xb0, 0xb0, 0x9f, 0x14, 0x31, 0x8c, 0xae, 0xf4, 0xd1, 0x9e, 0x30, - 0xbf, 0xe4, 0x6d, 0x5e, 0x91, 0x8f, 0x60, 0x51, 0xda, 0xb3, 0x5d, 0xd9, 0x20, 0xfa, 0xeb, 0x16, - 0x4c, 0x88, 0xdf, 0x98, 0xbc, 0xd5, 0x21, 0x61, 0x24, 0x78, 0xcf, 0x0f, 0xf7, 0xdf, 0x07, 0x51, - 0x91, 0x77, 0xe5, 0xc3, 0xf2, 0x98, 0x35, 0x81, 0x3d, 0x7b, 0x94, 0xe8, 0x05, 0xfa, 0x87, 0x16, - 0x9c, 0x6a, 0x39, 0xf7, 0x79, 0x8b, 0xbc, 0x0c, 0x3b, 0x91, 0xeb, 0x0b, 0x3b, 0x84, 0x8f, 0xf6, - 0x37, 0xfd, 0xa9, 0xea, 0xbc, 0x93, 0x52, 0x59, 0x7a, 0x2a, 0x0b, 0xa5, 0x67, 0x57, 0x33, 0xfb, - 0x35, 0xb7, 0x05, 0x23, 0x72, 0xbd, 0x65, 0x88, 0x1a, 0xca, 0x3a, 0x63, 0x7d, 0x64, 0xf3, 0x55, - 0x3d, 0x56, 0x01, 0x6d, 0x47, 0xac, 0xb5, 0x47, 0xda, 0xce, 0xe7, 0x60, 0x4c, 0x5f, 0x63, 0x8f, - 0xb4, 0xad, 0xb7, 0x60, 0x26, 0x63, 0x2d, 0x3d, 0xd2, 0x26, 0xef, 0xc1, 0xd9, 0xdc, 0xf5, 0xf1, - 0x28, 0x1b, 0xb6, 0x7f, 0xce, 0xd2, 0xcf, 0xc1, 0x13, 0x50, 0x1d, 0x2c, 0x9b, 0xaa, 0x83, 0xf3, - 0xdd, 0x77, 0x4e, 0x8e, 0xfe, 0xe0, 0x4d, 0xbd, 0xd3, 0xf4, 0x54, 0x47, 0xaf, 0xc3, 0x50, 0x93, - 0x96, 0x48, 0x2b, 0x5c, 0xbb, 0xf7, 0x8e, 0x8c, 0x79, 0x29, 0x56, 0x1e, 0x62, 0x41, 0xc1, 0xfe, - 0x25, 0x0b, 0x06, 0x4e, 0x60, 0x24, 0xb0, 0x39, 0x12, 0xcf, 0xe5, 0x92, 0x16, 0xe1, 0x95, 0x17, - 0xb0, 0x73, 0x6f, 0xe5, 0x7e, 0x44, 0xbc, 0x90, 0x3d, 0x15, 0x33, 0x07, 0xe6, 0x27, 0x2d, 0x98, - 0xb9, 0xe9, 0x3b, 0x8d, 0x25, 0xa7, 0xe9, 0x78, 0x75, 0x12, 0x54, 0xbc, 0xed, 0x23, 0x99, 0x90, - 0x17, 0x7a, 0x9a, 0x90, 0x2f, 0x4b, 0x0b, 0xac, 0x81, 0xfc, 0xf9, 0xa3, 0x8c, 0x64, 0x32, 0xca, - 0x8c, 0x61, 0x2b, 0xbc, 0x03, 0x48, 0xef, 0xa5, 0x70, 0xe8, 0xc1, 0x30, 0xec, 0xf2, 0xfe, 0x8a, - 0x49, 0x7c, 0x2a, 0x9b, 0xc1, 0x4b, 0x7d, 0x9e, 0xe6, 0xaa, 0xc2, 0x0b, 0xb0, 0x24, 0x64, 0xbf, - 0x0c, 0x99, 0x51, 0x01, 0x7a, 0x0b, 0x1f, 0xec, 0x4f, 0xc2, 0x34, 0xab, 0x79, 0xc4, 0x87, 0xb1, - 0x9d, 0x90, 0x6d, 0x66, 0xc4, 0x0b, 0xb4, 0xbf, 0x68, 0xc1, 0xe4, 0x7a, 0x22, 0x8c, 0xda, 0x25, - 0xa6, 0x0d, 0xcd, 0x10, 0xa9, 0xd7, 0x58, 0x29, 0x16, 0xd0, 0x63, 0x97, 0x64, 0xfd, 0xa5, 0x05, - 0x71, 0xa0, 0x8e, 0x13, 0x60, 0xdf, 0x96, 0x0d, 0xf6, 0x2d, 0x53, 0xc2, 0xa2, 0xba, 0x93, 0xc7, - 0xbd, 0xa1, 0x1b, 0x2a, 0x84, 0x55, 0x17, 0xe1, 0x4a, 0x4c, 0x86, 0x2f, 0xc5, 0x09, 0x33, 0xce, - 0x95, 0x0c, 0x6a, 0x65, 0xff, 0x4e, 0x01, 0x90, 0xc2, 0xed, 0x3b, 0xc4, 0x56, 0xba, 0xc6, 0xf1, - 0x84, 0xd8, 0xda, 0x03, 0xc4, 0xf4, 0xf9, 0x81, 0xe3, 0x85, 0x9c, 0xac, 0x2b, 0x64, 0x77, 0x47, - 0x33, 0x16, 0x98, 0x13, 0x4d, 0xa2, 0x9b, 0x29, 0x6a, 0x38, 0xa3, 0x05, 0xcd, 0x4e, 0x63, 0xb0, - 0x5f, 0x3b, 0x8d, 0xa1, 0x1e, 0x4e, 0x7b, 0x3f, 0x6b, 0xc1, 0xb8, 0x1a, 0xa6, 0x77, 0x89, 0x49, - 0xbd, 0xea, 0x4f, 0xce, 0x01, 0x5a, 0xd5, 0xba, 0xcc, 0x2e, 0x96, 0x6f, 0x65, 0xce, 0x97, 0x4e, - 0xd3, 0x7d, 0x9b, 0xa8, 0x00, 0x87, 0xf3, 0xc2, 0x99, 0x52, 0x94, 0x1e, 0x1e, 0xcc, 0x8f, 0xab, - 0x7f, 0x3c, 0xa0, 0x72, 0x5c, 0x85, 0x1e, 0xc9, 0x93, 0x89, 0xa5, 0x88, 0x5e, 0x82, 0xc1, 0xf6, - 0x8e, 0x13, 0x92, 0x84, 0xeb, 0xd1, 0x60, 0x95, 0x16, 0x1e, 0x1e, 0xcc, 0x4f, 0xa8, 0x0a, 0xac, - 0x04, 0x73, 0xec, 0xfe, 0x03, 0x97, 0xa5, 0x17, 0x67, 0xcf, 0xc0, 0x65, 0x7f, 0x6a, 0xc1, 0xc0, - 0xba, 0xdf, 0x38, 0x89, 0x23, 0xe0, 0x35, 0xe3, 0x08, 0x78, 0x22, 0x2f, 0xd6, 0x7d, 0xee, 0xee, - 0x5f, 0x4d, 0xec, 0xfe, 0xf3, 0xb9, 0x14, 0xba, 0x6f, 0xfc, 0x16, 0x8c, 0xb2, 0x08, 0xfa, 0xc2, - 0xcd, 0xea, 0x05, 0x63, 0xc3, 0xcf, 0x27, 0x36, 0xfc, 0xa4, 0x86, 0xaa, 0xed, 0xf4, 0xa7, 0x61, - 0x58, 0xf8, 0xed, 0x24, 0x7d, 0x58, 0x05, 0x2e, 0x96, 0x70, 0xfb, 0xc7, 0x8b, 0x60, 0x44, 0xec, - 0x47, 0xbf, 0x62, 0xc1, 0x42, 0xc0, 0xed, 0x79, 0x1b, 0xe5, 0x4e, 0xe0, 0x7a, 0xdb, 0xb5, 0xfa, - 0x0e, 0x69, 0x74, 0x9a, 0xae, 0xb7, 0x5d, 0xd9, 0xf6, 0x7c, 0x55, 0xbc, 0x72, 0x9f, 0xd4, 0x3b, - 0x4c, 0x09, 0xd6, 0x23, 0x3d, 0x80, 0xb2, 0x8b, 0x7f, 0xfe, 0xc1, 0xc1, 0xfc, 0x02, 0x3e, 0x12, - 0x6d, 0x7c, 0xc4, 0xbe, 0xa0, 0xdf, 0xb4, 0xe0, 0x0a, 0x0f, 0x64, 0xdf, 0x7f, 0xff, 0xbb, 0xbc, - 0x96, 0xab, 0x92, 0x54, 0x4c, 0x64, 0x83, 0x04, 0xad, 0xa5, 0x8f, 0x88, 0x01, 0xbd, 0x52, 0x3d, - 0x5a, 0x5b, 0xf8, 0xa8, 0x9d, 0xb3, 0xff, 0x45, 0x11, 0xc6, 0x45, 0x80, 0x2b, 0x71, 0x07, 0xbc, - 0x64, 0x2c, 0x89, 0x27, 0x13, 0x4b, 0x62, 0xda, 0x40, 0x3e, 0x9e, 0xe3, 0x3f, 0x84, 0x69, 0x7a, - 0x38, 0x5f, 0x27, 0x4e, 0x10, 0x6d, 0x12, 0x87, 0x9b, 0x5f, 0x15, 0x8f, 0x7c, 0xfa, 0x2b, 0xf1, - 0xdc, 0xcd, 0x24, 0x31, 0x9c, 0xa6, 0xff, 0xcd, 0x74, 0xe7, 0x78, 0x30, 0x95, 0x8a, 0x51, 0xf6, - 0x29, 0x28, 0x29, 0xa7, 0x13, 0x71, 0xe8, 0x74, 0x0f, 0xf5, 0x97, 0xa4, 0xc0, 0x45, 0x68, 0xb1, - 0xc3, 0x53, 0x4c, 0xce, 0xfe, 0x47, 0x05, 0xa3, 0x41, 0x3e, 0x89, 0xeb, 0x30, 0xe2, 0x84, 0xa1, - 0xbb, 0xed, 0x91, 0x86, 0xd8, 0xb1, 0xef, 0xcf, 0xdb, 0xb1, 0x46, 0x33, 0xcc, 0xf1, 0x67, 0x51, - 0xd4, 0xc4, 0x8a, 0x06, 0xba, 0xce, 0x8d, 0xdc, 0xf6, 0xe4, 0x7b, 0xaf, 0x3f, 0x6a, 0x20, 0xcd, - 0xe0, 0xf6, 0x08, 0x16, 0xf5, 0xd1, 0xa7, 0xb9, 0x15, 0xe2, 0x0d, 0xcf, 0xbf, 0xe7, 0x5d, 0xf3, - 0x7d, 0x19, 0x44, 0xa2, 0x3f, 0x82, 0xd3, 0xd2, 0xf6, 0x50, 0x55, 0xc7, 0x26, 0xb5, 0xfe, 0x82, - 0x7e, 0x7e, 0x1e, 0x66, 0x28, 0x69, 0xd3, 0xc7, 0x3b, 0x44, 0x04, 0x26, 0x45, 0xf4, 0x34, 0x59, - 0x26, 0xc6, 0x2e, 0xf3, 0x29, 0x67, 0xd6, 0x8e, 0xe5, 0xc8, 0x37, 0x4c, 0x12, 0x38, 0x49, 0xd3, - 0xfe, 0x29, 0x0b, 0x98, 0xbf, 0xeb, 0x09, 0xf0, 0x23, 0x1f, 0x33, 0xf9, 0x91, 0xd9, 0xbc, 0x41, - 0xce, 0x61, 0x45, 0x5e, 0xe4, 0x2b, 0xab, 0x1a, 0xf8, 0xf7, 0xf7, 0x85, 0xe9, 0x48, 0xef, 0xf7, - 0x87, 0xfd, 0x7f, 0x2c, 0x7e, 0x88, 0x29, 0x97, 0x10, 0xf4, 0xed, 0x30, 0x52, 0x77, 0xda, 0x4e, - 0x9d, 0xa7, 0x97, 0xc9, 0x95, 0xe8, 0x19, 0x95, 0x16, 0x96, 0x45, 0x0d, 0x2e, 0xa1, 0x92, 0x51, - 0xf8, 0x46, 0x64, 0x71, 0x4f, 0xa9, 0x94, 0x6a, 0x72, 0x6e, 0x17, 0xc6, 0x0d, 0x62, 0x8f, 0x54, - 0x9c, 0xf1, 0xed, 0xfc, 0x8a, 0x55, 0x51, 0x23, 0x5b, 0x30, 0xed, 0x69, 0xff, 0xe9, 0x85, 0x22, - 0x1f, 0x97, 0xef, 0xef, 0x75, 0x89, 0xb2, 0xdb, 0x47, 0x73, 0xa5, 0x4d, 0x90, 0xc1, 0x69, 0xca, - 0xf6, 0x4f, 0x58, 0xf0, 0x98, 0x8e, 0xa8, 0x79, 0xeb, 0xf4, 0xd2, 0x11, 0x94, 0x61, 0xc4, 0x6f, - 0x93, 0xc0, 0x89, 0xfc, 0x40, 0xdc, 0x1a, 0x97, 0xe5, 0xa0, 0xdf, 0x12, 0xe5, 0x87, 0x22, 0x38, - 0xbb, 0xa4, 0x2e, 0xcb, 0xb1, 0xaa, 0x49, 0x5f, 0x9f, 0x6c, 0x30, 0x42, 0xe1, 0x97, 0xc5, 0xce, - 0x00, 0xa6, 0x2e, 0x0f, 0xb1, 0x80, 0xd8, 0x5f, 0xb3, 0xf8, 0xc2, 0xd2, 0xbb, 0x8e, 0xde, 0x82, - 0xa9, 0x96, 0x13, 0xd5, 0x77, 0x56, 0xee, 0xb7, 0x03, 0xae, 0x71, 0x91, 0xe3, 0xf4, 0x4c, 0xaf, - 0x71, 0xd2, 0x3e, 0x32, 0x36, 0xac, 0x5c, 0x4b, 0x10, 0xc3, 0x29, 0xf2, 0x68, 0x13, 0x46, 0x59, - 0x19, 0x73, 0x39, 0x0c, 0xbb, 0xb1, 0x06, 0x79, 0xad, 0x29, 0x8b, 0x83, 0xb5, 0x98, 0x0e, 0xd6, - 0x89, 0xda, 0x3f, 0x53, 0xe4, 0xbb, 0x9d, 0xb1, 0xf2, 0x4f, 0xc3, 0x70, 0xdb, 0x6f, 0x2c, 0x57, - 0xca, 0x58, 0xcc, 0x82, 0xba, 0x46, 0xaa, 0xbc, 0x18, 0x4b, 0x38, 0xba, 0x0c, 0x23, 0xe2, 0xa7, - 0xd4, 0x90, 0xb1, 0xb3, 0x59, 0xe0, 0x85, 0x58, 0x41, 0xd1, 0xf3, 0x00, 0xed, 0xc0, 0xdf, 0x73, - 0x1b, 0x2c, 0x14, 0x46, 0xd1, 0x34, 0x16, 0xaa, 0x2a, 0x08, 0xd6, 0xb0, 0xd0, 0xab, 0x30, 0xde, - 0xf1, 0x42, 0xce, 0x8e, 0x68, 0x81, 0x6f, 0x95, 0x19, 0xcb, 0x6d, 0x1d, 0x88, 0x4d, 0x5c, 0xb4, - 0x08, 0x43, 0x91, 0xc3, 0x8c, 0x5f, 0x06, 0xf3, 0x8d, 0x6f, 0x37, 0x28, 0x86, 0x9e, 0xc9, 0x84, - 0x56, 0xc0, 0xa2, 0x22, 0xfa, 0x94, 0xf4, 0xfe, 0xe5, 0x07, 0xbb, 0xb0, 0x7a, 0xef, 0xef, 0x12, - 0xd0, 0x7c, 0x7f, 0x85, 0x35, 0xbd, 0x41, 0x0b, 0xbd, 0x02, 0x40, 0xee, 0x47, 0x24, 0xf0, 0x9c, - 0xa6, 0xb2, 0x2d, 0x53, 0x7c, 0x41, 0xd9, 0x5f, 0xf7, 0xa3, 0xdb, 0x21, 0x59, 0x51, 0x18, 0x58, - 0xc3, 0xb6, 0x7f, 0xb3, 0x04, 0x10, 0xf3, 0xed, 0xe8, 0xed, 0xd4, 0xc1, 0xf5, 0x6c, 0x77, 0x4e, - 0xff, 0xf8, 0x4e, 0x2d, 0xf4, 0x3d, 0x16, 0x8c, 0x3a, 0xcd, 0xa6, 0x5f, 0x77, 0x78, 0x68, 0xe2, - 0x42, 0xf7, 0x83, 0x53, 0xb4, 0xbf, 0x18, 0xd7, 0xe0, 0x5d, 0x78, 0x41, 0xae, 0x50, 0x0d, 0xd2, - 0xb3, 0x17, 0x7a, 0xc3, 0xe8, 0x43, 0xf2, 0xa9, 0x58, 0x34, 0x86, 0x52, 0x3d, 0x15, 0x4b, 0xec, - 0x8e, 0xd0, 0x5f, 0x89, 0xb7, 0x8d, 0x57, 0xe2, 0x40, 0xbe, 0x7b, 0xa3, 0xc1, 0xbe, 0xf6, 0x7a, - 0x20, 0xa2, 0xaa, 0x1e, 0xea, 0x60, 0x30, 0xdf, 0x97, 0x50, 0x7b, 0x27, 0xf5, 0x08, 0x73, 0xf0, - 0x39, 0x98, 0x6c, 0x98, 0x4c, 0x80, 0x58, 0x89, 0x4f, 0xe5, 0xd1, 0x4d, 0xf0, 0x0c, 0xf1, 0xb5, - 0x9f, 0x00, 0xe0, 0x24, 0x61, 0x54, 0xe5, 0x91, 0x2f, 0x2a, 0xde, 0x96, 0x2f, 0x3c, 0x2f, 0xec, - 0xdc, 0xb9, 0xdc, 0x0f, 0x23, 0xd2, 0xa2, 0x98, 0xf1, 0xed, 0xbe, 0x2e, 0xea, 0x62, 0x45, 0x05, - 0xbd, 0x0e, 0x43, 0xcc, 0x99, 0x2c, 0x9c, 0x1d, 0xc9, 0x97, 0x38, 0x9b, 0xa1, 0xdc, 0xe2, 0x0d, - 0xc9, 0xfe, 0x86, 0x58, 0x50, 0x40, 0xd7, 0xa5, 0xab, 0x66, 0x58, 0xf1, 0x6e, 0x87, 0x84, 0xb9, - 0x6a, 0x96, 0x96, 0xde, 0x1f, 0x7b, 0x61, 0xf2, 0xf2, 0xcc, 0x7c, 0x67, 0x46, 0x4d, 0xca, 0x45, - 0x89, 0xff, 0x32, 0x8d, 0xda, 0x2c, 0xe4, 0x77, 0xcf, 0x4c, 0xb5, 0x16, 0x0f, 0xe7, 0x1d, 0x93, - 0x04, 0x4e, 0xd2, 0xa4, 0x1c, 0x29, 0xdf, 0xf5, 0xc2, 0x77, 0xa3, 0xd7, 0xd9, 0xc1, 0x1f, 0xe2, - 0xec, 0x36, 0xe2, 0x25, 0x58, 0xd4, 0x3f, 0x51, 0xf6, 0x60, 0xce, 0x83, 0xa9, 0xe4, 0x16, 0x7d, - 0xa4, 0xec, 0xc8, 0x1f, 0x0e, 0xc0, 0x84, 0xb9, 0xa4, 0xd0, 0x15, 0x28, 0x09, 0x22, 0x2a, 0xf5, - 0x81, 0xda, 0x25, 0x6b, 0x12, 0x80, 0x63, 0x1c, 0x96, 0xf1, 0x82, 0x55, 0xd7, 0x8c, 0x75, 0xe3, - 0x8c, 0x17, 0x0a, 0x82, 0x35, 0x2c, 0xfa, 0xb0, 0xda, 0xf4, 0xfd, 0x48, 0x5d, 0x48, 0x6a, 0xdd, - 0x2d, 0xb1, 0x52, 0x2c, 0xa0, 0xf4, 0x22, 0xda, 0x25, 0x81, 0x47, 0x9a, 0x66, 0x90, 0x64, 0x75, - 0x11, 0xdd, 0xd0, 0x81, 0xd8, 0xc4, 0xa5, 0xd7, 0xa9, 0x1f, 0xb2, 0x85, 0x2c, 0x9e, 0x6f, 0xb1, - 0xf1, 0x73, 0x8d, 0x7b, 0x8b, 0x4b, 0x38, 0xfa, 0x24, 0x3c, 0xa6, 0x02, 0x41, 0x61, 0xae, 0xcd, - 0x90, 0x2d, 0x0e, 0x19, 0xd2, 0x96, 0xc7, 0x96, 0xb3, 0xd1, 0x70, 0x5e, 0x7d, 0xf4, 0x1a, 0x4c, - 0x08, 0x16, 0x5f, 0x52, 0x1c, 0x36, 0x0d, 0x6c, 0x6e, 0x18, 0x50, 0x9c, 0xc0, 0x96, 0x61, 0x9e, - 0x19, 0x97, 0x2d, 0x29, 0x8c, 0xa4, 0xc3, 0x3c, 0xeb, 0x70, 0x9c, 0xaa, 0x81, 0x16, 0x61, 0x92, - 0xf3, 0x60, 0xae, 0xb7, 0xcd, 0xe7, 0x44, 0xb8, 0x56, 0xa9, 0x2d, 0x75, 0xcb, 0x04, 0xe3, 0x24, - 0x3e, 0x7a, 0x19, 0xc6, 0x9c, 0xa0, 0xbe, 0xe3, 0x46, 0xa4, 0x1e, 0x75, 0x02, 0xee, 0x73, 0xa5, - 0x59, 0x28, 0x2d, 0x6a, 0x30, 0x6c, 0x60, 0xda, 0x6f, 0xc3, 0x4c, 0x46, 0x18, 0x09, 0xba, 0x70, - 0x9c, 0xb6, 0x2b, 0xbf, 0x29, 0x61, 0xc6, 0xbc, 0x58, 0xad, 0xc8, 0xaf, 0xd1, 0xb0, 0xe8, 0xea, - 0x64, 0xe1, 0x26, 0xb4, 0xac, 0x89, 0x6a, 0x75, 0xae, 0x4a, 0x00, 0x8e, 0x71, 0xec, 0xff, 0x59, - 0x80, 0xc9, 0x0c, 0xdd, 0x0a, 0xcb, 0xdc, 0x97, 0x78, 0xa4, 0xc4, 0x89, 0xfa, 0xcc, 0xa8, 0xe1, - 0x85, 0x23, 0x44, 0x0d, 0x2f, 0xf6, 0x8a, 0x1a, 0x3e, 0xf0, 0x4e, 0xa2, 0x86, 0x9b, 0x23, 0x36, - 0xd8, 0xd7, 0x88, 0x65, 0x44, 0x1a, 0x1f, 0x3a, 0x62, 0xa4, 0x71, 0x63, 0xd0, 0x87, 0xfb, 0x18, - 0xf4, 0x1f, 0x2e, 0xc0, 0x54, 0xd2, 0x92, 0xf2, 0x04, 0xe4, 0xb6, 0xaf, 0x1b, 0x72, 0xdb, 0xcb, - 0xfd, 0x38, 0xce, 0xe6, 0xca, 0x70, 0x71, 0x42, 0x86, 0xfb, 0xc1, 0xbe, 0xa8, 0x75, 0x97, 0xe7, - 0xfe, 0x9d, 0x02, 0x9c, 0xce, 0xf4, 0xdc, 0x3d, 0x81, 0xb1, 0xb9, 0x65, 0x8c, 0xcd, 0x73, 0x7d, - 0x3b, 0x15, 0xe7, 0x0e, 0xd0, 0xdd, 0xc4, 0x00, 0x5d, 0xe9, 0x9f, 0x64, 0xf7, 0x51, 0xfa, 0x6a, - 0x11, 0xce, 0x67, 0xd6, 0x8b, 0xc5, 0x9e, 0xab, 0x86, 0xd8, 0xf3, 0xf9, 0x84, 0xd8, 0xd3, 0xee, - 0x5e, 0xfb, 0x78, 0xe4, 0xa0, 0xc2, 0x5d, 0x96, 0xc5, 0x44, 0x78, 0x48, 0x19, 0xa8, 0xe1, 0x2e, - 0xab, 0x08, 0x61, 0x93, 0xee, 0x37, 0x93, 0xec, 0xf3, 0xdf, 0x59, 0x70, 0x36, 0x73, 0x6e, 0x4e, - 0x40, 0xd6, 0xb5, 0x6e, 0xca, 0xba, 0x9e, 0xee, 0x7b, 0xb5, 0xe6, 0x08, 0xbf, 0x7e, 0x7d, 0x20, - 0xe7, 0x5b, 0xd8, 0x4b, 0xfe, 0x16, 0x8c, 0x3a, 0xf5, 0x3a, 0x09, 0xc3, 0x35, 0xbf, 0xa1, 0x02, - 0x23, 0x3f, 0xc7, 0xde, 0x59, 0x71, 0xf1, 0xe1, 0xc1, 0xfc, 0x5c, 0x92, 0x44, 0x0c, 0xc6, 0x3a, - 0x05, 0xf4, 0x69, 0x18, 0x09, 0xc5, 0xbd, 0x29, 0xe6, 0xfe, 0x85, 0x3e, 0x07, 0xc7, 0xd9, 0x24, - 0x4d, 0x33, 0x72, 0x93, 0x92, 0x54, 0x28, 0x92, 0x66, 0x94, 0x97, 0xc2, 0xb1, 0x46, 0x79, 0x79, - 0x1e, 0x60, 0x4f, 0x3d, 0x06, 0x92, 0xf2, 0x07, 0xed, 0x99, 0xa0, 0x61, 0xa1, 0x8f, 0xc3, 0x54, - 0xc8, 0x43, 0x1b, 0x2e, 0x37, 0x9d, 0x90, 0x39, 0xcb, 0x88, 0x55, 0xc8, 0xa2, 0x43, 0xd5, 0x12, - 0x30, 0x9c, 0xc2, 0x46, 0xab, 0xb2, 0x55, 0x16, 0x87, 0x91, 0x2f, 0xcc, 0x4b, 0x71, 0x8b, 0x22, - 0x6f, 0xf0, 0xa9, 0xe4, 0xf0, 0xb3, 0x81, 0xd7, 0x6a, 0xa2, 0x4f, 0x03, 0xd0, 0xe5, 0x23, 0xe4, - 0x10, 0xc3, 0xf9, 0x87, 0x27, 0x3d, 0x55, 0x1a, 0x99, 0xb6, 0xbd, 0xcc, 0xc3, 0xb5, 0xac, 0x88, - 0x60, 0x8d, 0xa0, 0xfd, 0xc3, 0x03, 0xf0, 0x78, 0x97, 0x33, 0x12, 0x2d, 0x9a, 0x7a, 0xd8, 0x67, - 0x92, 0x8f, 0xeb, 0xb9, 0xcc, 0xca, 0xc6, 0x6b, 0x3b, 0xb1, 0x14, 0x0b, 0xef, 0x78, 0x29, 0xfe, - 0x80, 0xa5, 0x89, 0x3d, 0xb8, 0xc5, 0xe7, 0xc7, 0x8e, 0x78, 0xf6, 0x1f, 0xa3, 0x1c, 0x64, 0x2b, - 0x43, 0x98, 0xf0, 0x7c, 0xdf, 0xdd, 0xe9, 0x5b, 0xba, 0x70, 0xb2, 0x52, 0xe2, 0xdf, 0xb6, 0xe0, - 0x5c, 0xd7, 0x10, 0x1f, 0xdf, 0x80, 0x0c, 0x83, 0xfd, 0x05, 0x0b, 0x9e, 0xcc, 0xac, 0x61, 0x98, - 0x19, 0x5d, 0x81, 0x52, 0x9d, 0x16, 0x6a, 0x5e, 0x9a, 0xb1, 0xfb, 0xba, 0x04, 0xe0, 0x18, 0xe7, - 0x88, 0xe1, 0x4b, 0x7e, 0xd5, 0x82, 0xd4, 0xa6, 0x3f, 0x81, 0xdb, 0xa7, 0x62, 0xde, 0x3e, 0xef, - 0xef, 0x67, 0x34, 0x73, 0x2e, 0x9e, 0x3f, 0x99, 0x84, 0x33, 0x39, 0x5e, 0x4a, 0x7b, 0x30, 0xbd, - 0x5d, 0x27, 0xa6, 0xff, 0x6b, 0xb7, 0x28, 0x32, 0x5d, 0x9d, 0x65, 0x59, 0x66, 0xd3, 0xe9, 0x14, - 0x0a, 0x4e, 0x37, 0x81, 0xbe, 0x60, 0xc1, 0x29, 0xe7, 0x5e, 0xb8, 0x42, 0xb9, 0x08, 0xb7, 0xbe, - 0xd4, 0xf4, 0xeb, 0xbb, 0xf4, 0x88, 0x96, 0x1b, 0xe1, 0xc5, 0x4c, 0xc9, 0xce, 0xdd, 0x5a, 0x0a, - 0xdf, 0x68, 0x9e, 0xa5, 0x7a, 0xcd, 0xc2, 0xc2, 0x99, 0x6d, 0x21, 0x2c, 0xe2, 0xff, 0xd3, 0x37, - 0x4a, 0x17, 0x0f, 0xed, 0x2c, 0x77, 0x32, 0x7e, 0x2d, 0x4a, 0x08, 0x56, 0x74, 0xd0, 0x67, 0xa1, - 0xb4, 0x2d, 0x7d, 0x3c, 0x33, 0xae, 0xdd, 0x78, 0x20, 0xbb, 0x7b, 0xbe, 0x72, 0xf5, 0xac, 0x42, - 0xc2, 0x31, 0x51, 0xf4, 0x1a, 0x14, 0xbd, 0xad, 0xb0, 0x5b, 0xb6, 0xd4, 0x84, 0x1d, 0x1e, 0x8f, - 0x83, 0xb0, 0xbe, 0x5a, 0xc3, 0xb4, 0x22, 0xba, 0x0e, 0xc5, 0x60, 0xb3, 0x21, 0xc4, 0x92, 0x99, - 0x9b, 0x14, 0x2f, 0x95, 0x73, 0x7a, 0xc5, 0x28, 0xe1, 0xa5, 0x32, 0xa6, 0x24, 0x50, 0x15, 0x06, - 0x99, 0x6b, 0x8f, 0xb8, 0xe4, 0x32, 0xd9, 0xf9, 0x2e, 0x2e, 0x72, 0x3c, 0x58, 0x02, 0x43, 0xc0, - 0x9c, 0x10, 0xda, 0x80, 0xa1, 0x3a, 0xcb, 0xac, 0x29, 0xe2, 0xc6, 0x7d, 0x28, 0x53, 0x00, 0xd9, - 0x25, 0xe5, 0xa8, 0x90, 0xc7, 0x31, 0x0c, 0x2c, 0x68, 0x31, 0xaa, 0xa4, 0xbd, 0xb3, 0x15, 0x8a, - 0x4c, 0xd0, 0xd9, 0x54, 0xbb, 0x64, 0xd2, 0x15, 0x54, 0x19, 0x06, 0x16, 0xb4, 0xd0, 0x2b, 0x50, - 0xd8, 0xaa, 0x0b, 0xb7, 0x9d, 0x4c, 0x49, 0xa4, 0x19, 0xca, 0x62, 0x69, 0xe8, 0xc1, 0xc1, 0x7c, - 0x61, 0x75, 0x19, 0x17, 0xb6, 0xea, 0x68, 0x1d, 0x86, 0xb7, 0xb8, 0xf3, 0xbb, 0x10, 0x36, 0x3e, - 0x95, 0xed, 0x97, 0x9f, 0xf2, 0x8f, 0xe7, 0x1e, 0x2b, 0x02, 0x80, 0x25, 0x11, 0x16, 0x4e, 0x5f, - 0x39, 0xf1, 0x8b, 0x10, 0x6b, 0x0b, 0x47, 0x0b, 0xbc, 0xc0, 0x99, 0x8e, 0x38, 0x14, 0x00, 0xd6, - 0x28, 0xd2, 0x55, 0xed, 0xc8, 0x74, 0xfc, 0x22, 0xd8, 0x4c, 0xe6, 0xaa, 0x56, 0x39, 0xfb, 0xbb, - 0xad, 0x6a, 0x85, 0x84, 0x63, 0xa2, 0x68, 0x17, 0xc6, 0xf7, 0xc2, 0xf6, 0x0e, 0x91, 0x5b, 0x9a, - 0xc5, 0x9e, 0xc9, 0xb9, 0x97, 0xef, 0x08, 0x44, 0x37, 0x88, 0x3a, 0x4e, 0x33, 0x75, 0x0a, 0x31, - 0x9d, 0xfe, 0x1d, 0x9d, 0x18, 0x36, 0x69, 0xd3, 0xe1, 0x7f, 0xab, 0xe3, 0x6f, 0xee, 0x47, 0x44, - 0x44, 0x46, 0xcb, 0x1c, 0xfe, 0x37, 0x38, 0x4a, 0x7a, 0xf8, 0x05, 0x00, 0x4b, 0x22, 0xe8, 0x8e, - 0x18, 0x1e, 0x76, 0x7a, 0x4e, 0xe5, 0x87, 0x2f, 0x5d, 0x94, 0x48, 0x39, 0x83, 0xc2, 0x4e, 0xcb, - 0x98, 0x14, 0x3b, 0x25, 0xdb, 0x3b, 0x7e, 0xe4, 0x7b, 0x89, 0x13, 0x7a, 0x3a, 0xff, 0x94, 0xac, - 0x66, 0xe0, 0xa7, 0x4f, 0xc9, 0x2c, 0x2c, 0x9c, 0xd9, 0x16, 0x6a, 0xc0, 0x44, 0xdb, 0x0f, 0xa2, - 0x7b, 0x7e, 0x20, 0xd7, 0x17, 0xea, 0x22, 0x2c, 0x31, 0x30, 0x45, 0x8b, 0x2c, 0xe8, 0xa0, 0x09, - 0xc1, 0x09, 0x9a, 0xe8, 0x13, 0x30, 0x1c, 0xd6, 0x9d, 0x26, 0xa9, 0xdc, 0x9a, 0x9d, 0xc9, 0xbf, - 0x7e, 0x6a, 0x1c, 0x25, 0x67, 0x75, 0xf1, 0xd8, 0xfb, 0x1c, 0x05, 0x4b, 0x72, 0x68, 0x15, 0x06, - 0x59, 0xba, 0x34, 0x16, 0xc6, 0x2f, 0x27, 0x0a, 0x6b, 0xca, 0x2a, 0x9a, 0x9f, 0x4d, 0xac, 0x18, - 0xf3, 0xea, 0x74, 0x0f, 0x88, 0x37, 0x83, 0x1f, 0xce, 0x9e, 0xce, 0xdf, 0x03, 0xe2, 0xa9, 0x71, - 0xab, 0xd6, 0x6d, 0x0f, 0x28, 0x24, 0x1c, 0x13, 0xa5, 0x27, 0x33, 0x3d, 0x4d, 0xcf, 0x74, 0x31, - 0xe7, 0xc9, 0x3d, 0x4b, 0xd9, 0xc9, 0x4c, 0x4f, 0x52, 0x4a, 0xc2, 0xfe, 0xfd, 0xe1, 0x34, 0xcf, - 0xc2, 0x5e, 0x99, 0xdf, 0x65, 0xa5, 0x14, 0x90, 0x1f, 0xee, 0x57, 0xe8, 0x75, 0x8c, 0x2c, 0xf8, - 0x17, 0x2c, 0x38, 0xd3, 0xce, 0xfc, 0x10, 0xc1, 0x00, 0xf4, 0x27, 0x3b, 0xe3, 0x9f, 0xae, 0x42, - 0x3e, 0x66, 0xc3, 0x71, 0x4e, 0x4b, 0xc9, 0x67, 0x4e, 0xf1, 0x1d, 0x3f, 0x73, 0xd6, 0x60, 0x84, - 0x31, 0x99, 0x3d, 0x32, 0x4d, 0x27, 0x5f, 0x7b, 0x8c, 0x95, 0x58, 0x16, 0x15, 0xb1, 0x22, 0x81, - 0x7e, 0xd0, 0x82, 0x73, 0xc9, 0xae, 0x63, 0xc2, 0xc0, 0x22, 0x4e, 0x24, 0x7f, 0xe0, 0xae, 0x8a, - 0xef, 0x4f, 0xf1, 0xff, 0x06, 0xf2, 0x61, 0x2f, 0x04, 0xdc, 0xbd, 0x31, 0x54, 0xce, 0x78, 0x61, - 0x0f, 0x99, 0x5a, 0x85, 0x3e, 0x5e, 0xd9, 0x2f, 0xc2, 0x58, 0xcb, 0xef, 0x78, 0x91, 0xb0, 0xfe, - 0x11, 0x96, 0x08, 0x4c, 0x03, 0xbf, 0xa6, 0x95, 0x63, 0x03, 0x2b, 0xf1, 0x36, 0x1f, 0x79, 0xe8, - 0xb7, 0xf9, 0x9b, 0x30, 0xe6, 0x69, 0xe6, 0xaa, 0x82, 0x1f, 0xb8, 0x94, 0x1f, 0xe3, 0x55, 0x37, - 0x6e, 0xe5, 0xbd, 0xd4, 0x4b, 0xb0, 0x41, 0xed, 0x64, 0x1f, 0x7c, 0x5f, 0xb6, 0x32, 0x98, 0x7a, - 0x2e, 0x02, 0xf8, 0xa8, 0x29, 0x02, 0xb8, 0x94, 0x14, 0x01, 0xa4, 0x24, 0xca, 0xc6, 0xeb, 0xbf, - 0xff, 0x14, 0x36, 0xfd, 0x06, 0x42, 0xb4, 0x9b, 0x70, 0xa1, 0xd7, 0xb5, 0xc4, 0xcc, 0xc0, 0x1a, - 0x4a, 0x7f, 0x18, 0x9b, 0x81, 0x35, 0x2a, 0x65, 0xcc, 0x20, 0xfd, 0x86, 0xd8, 0xb1, 0xff, 0xbb, - 0x05, 0xc5, 0xaa, 0xdf, 0x38, 0x81, 0x07, 0xef, 0xc7, 0x8c, 0x07, 0xef, 0xe3, 0xd9, 0x17, 0x62, - 0x23, 0x57, 0x1e, 0xbe, 0x92, 0x90, 0x87, 0x9f, 0xcb, 0x23, 0xd0, 0x5d, 0xfa, 0xfd, 0x93, 0x45, - 0x18, 0xad, 0xfa, 0x0d, 0x65, 0x83, 0xfd, 0xeb, 0x0f, 0x63, 0x83, 0x9d, 0x9b, 0x88, 0x41, 0xa3, - 0xcc, 0xac, 0xc7, 0xa4, 0xfb, 0xe9, 0x37, 0x98, 0x29, 0xf6, 0x5d, 0xe2, 0x6e, 0xef, 0x44, 0xa4, - 0x91, 0xfc, 0x9c, 0x93, 0x33, 0xc5, 0xfe, 0xfd, 0x02, 0x4c, 0x26, 0x5a, 0x47, 0x4d, 0x18, 0x6f, - 0xea, 0xd2, 0x56, 0xb1, 0x4e, 0x1f, 0x4a, 0x50, 0x2b, 0x4c, 0x59, 0xb5, 0x22, 0x6c, 0x12, 0x47, - 0x0b, 0x00, 0x4a, 0xfd, 0x28, 0xc5, 0x7a, 0x8c, 0xeb, 0x57, 0xfa, 0xc9, 0x10, 0x6b, 0x18, 0xe8, - 0x25, 0x18, 0x8d, 0xfc, 0xb6, 0xdf, 0xf4, 0xb7, 0xf7, 0x6f, 0x10, 0x19, 0xd4, 0x49, 0x19, 0xa8, - 0x6d, 0xc4, 0x20, 0xac, 0xe3, 0xa1, 0xfb, 0x30, 0xad, 0x88, 0xd4, 0x8e, 0x41, 0x02, 0xcd, 0xa4, - 0x0a, 0xeb, 0x49, 0x8a, 0x38, 0xdd, 0x88, 0xfd, 0xd3, 0x45, 0x3e, 0xc4, 0x5e, 0xe4, 0xbe, 0xb7, - 0x1b, 0xde, 0xdd, 0xbb, 0xe1, 0xab, 0x16, 0x4c, 0xd1, 0xd6, 0x99, 0xf5, 0x8d, 0xbc, 0xe6, 0x55, - 0x54, 0x69, 0xab, 0x4b, 0x54, 0xe9, 0x4b, 0xf4, 0xd4, 0x6c, 0xf8, 0x9d, 0x48, 0xc8, 0xee, 0xb4, - 0x63, 0x91, 0x96, 0x62, 0x01, 0x15, 0x78, 0x24, 0x08, 0x84, 0xc7, 0xa0, 0x8e, 0x47, 0x82, 0x00, - 0x0b, 0xa8, 0x0c, 0x3a, 0x3d, 0x90, 0x1d, 0x74, 0x9a, 0x07, 0xc7, 0x14, 0x76, 0x1a, 0x82, 0xe1, - 0xd2, 0x82, 0x63, 0x4a, 0x03, 0x8e, 0x18, 0xc7, 0xfe, 0xb9, 0x22, 0x8c, 0x55, 0xfd, 0x46, 0xac, - 0x7a, 0x7c, 0xd1, 0x50, 0x3d, 0x5e, 0x48, 0xa8, 0x1e, 0xa7, 0x74, 0xdc, 0xf7, 0x14, 0x8d, 0x5f, - 0x2f, 0x45, 0xe3, 0x3f, 0xb7, 0xd8, 0xac, 0x95, 0xd7, 0x6b, 0xdc, 0x98, 0x0b, 0x5d, 0x85, 0x51, - 0x76, 0xc0, 0x30, 0x17, 0x55, 0xa9, 0x8f, 0x63, 0xc9, 0x94, 0xd6, 0xe3, 0x62, 0xac, 0xe3, 0xa0, - 0xcb, 0x30, 0x12, 0x12, 0x27, 0xa8, 0xef, 0xa8, 0xd3, 0x55, 0x28, 0xcf, 0x78, 0x19, 0x56, 0x50, - 0xf4, 0x46, 0x1c, 0x97, 0xb1, 0x98, 0xef, 0xf2, 0xa6, 0xf7, 0x87, 0x6f, 0x91, 0xfc, 0x60, 0x8c, - 0xf6, 0x5d, 0x40, 0x69, 0xfc, 0x3e, 0x02, 0x92, 0xcd, 0x9b, 0x01, 0xc9, 0x4a, 0xa9, 0x60, 0x64, - 0x7f, 0x61, 0xc1, 0x44, 0xd5, 0x6f, 0xd0, 0xad, 0xfb, 0xcd, 0xb4, 0x4f, 0xf5, 0xa0, 0xb4, 0x43, - 0x5d, 0x82, 0xd2, 0x5e, 0x84, 0xc1, 0xaa, 0xdf, 0xa8, 0x54, 0xbb, 0xf9, 0x9b, 0xdb, 0x7f, 0xd7, - 0x82, 0xe1, 0xaa, 0xdf, 0x38, 0x01, 0xb5, 0xc0, 0x47, 0x4d, 0xb5, 0xc0, 0x63, 0x39, 0xeb, 0x26, - 0x47, 0x13, 0xf0, 0xb7, 0x07, 0x60, 0x9c, 0xf6, 0xd3, 0xdf, 0x96, 0x53, 0x69, 0x0c, 0x9b, 0xd5, - 0xc7, 0xb0, 0x51, 0x2e, 0xdc, 0x6f, 0x36, 0xfd, 0x7b, 0xc9, 0x69, 0x5d, 0x65, 0xa5, 0x58, 0x40, - 0xd1, 0xb3, 0x30, 0xd2, 0x0e, 0xc8, 0x9e, 0xeb, 0x0b, 0xf6, 0x56, 0x53, 0xb2, 0x54, 0x45, 0x39, - 0x56, 0x18, 0xf4, 0x59, 0x18, 0xba, 0x1e, 0xbd, 0xca, 0xeb, 0xbe, 0xd7, 0xe0, 0x92, 0xf3, 0xa2, - 0x48, 0x2c, 0xa1, 0x95, 0x63, 0x03, 0x0b, 0xdd, 0x85, 0x12, 0xfb, 0xcf, 0x8e, 0x9d, 0xa3, 0xa7, - 0x28, 0x15, 0x29, 0xeb, 0x04, 0x01, 0x1c, 0xd3, 0x42, 0xcf, 0x03, 0x44, 0x32, 0xfa, 0x78, 0x28, - 0x82, 0x4f, 0xa9, 0xa7, 0x80, 0x8a, 0x4b, 0x1e, 0x62, 0x0d, 0x0b, 0x3d, 0x03, 0xa5, 0xc8, 0x71, - 0x9b, 0x37, 0x5d, 0x8f, 0x84, 0x4c, 0x22, 0x5e, 0x94, 0x99, 0xe3, 0x44, 0x21, 0x8e, 0xe1, 0x94, - 0x15, 0x63, 0x91, 0x19, 0x78, 0x82, 0xe3, 0x11, 0x86, 0xcd, 0x58, 0xb1, 0x9b, 0xaa, 0x14, 0x6b, - 0x18, 0x68, 0x07, 0x9e, 0x70, 0x3d, 0x96, 0x84, 0x81, 0xd4, 0x76, 0xdd, 0xf6, 0xc6, 0xcd, 0xda, - 0x1d, 0x12, 0xb8, 0x5b, 0xfb, 0x4b, 0x4e, 0x7d, 0x97, 0x78, 0x32, 0xf9, 0xe4, 0xfb, 0x45, 0x17, - 0x9f, 0xa8, 0x74, 0xc1, 0xc5, 0x5d, 0x29, 0xd9, 0x2f, 0xc3, 0xe9, 0xaa, 0xdf, 0xa8, 0xfa, 0x41, - 0xb4, 0xea, 0x07, 0xf7, 0x9c, 0xa0, 0x21, 0x57, 0xca, 0xbc, 0x8c, 0x92, 0x40, 0x8f, 0xc2, 0x41, - 0x7e, 0x50, 0x18, 0x11, 0x10, 0x5e, 0x60, 0xcc, 0xd7, 0x11, 0x7d, 0x7b, 0xea, 0x8c, 0x0d, 0x50, - 0x19, 0x49, 0xae, 0x39, 0x11, 0x41, 0xb7, 0x58, 0xa6, 0xe5, 0xf8, 0x46, 0x14, 0xd5, 0x9f, 0xd6, - 0x32, 0x2d, 0xc7, 0xc0, 0xcc, 0x2b, 0xd4, 0xac, 0x6f, 0xff, 0x8f, 0x41, 0x76, 0x38, 0x26, 0xb2, - 0x5a, 0xa0, 0xcf, 0xc0, 0x44, 0x48, 0x6e, 0xba, 0x5e, 0xe7, 0xbe, 0x94, 0x46, 0x74, 0xf1, 0xce, - 0xaa, 0xad, 0xe8, 0x98, 0x5c, 0xa6, 0x69, 0x96, 0xe1, 0x04, 0x35, 0xd4, 0x82, 0x89, 0x7b, 0xae, - 0xd7, 0xf0, 0xef, 0x85, 0x92, 0xfe, 0x48, 0xbe, 0x68, 0xf3, 0x2e, 0xc7, 0x4c, 0xf4, 0xd1, 0x68, - 0xee, 0xae, 0x41, 0x0c, 0x27, 0x88, 0xd3, 0x05, 0x18, 0x74, 0xbc, 0xc5, 0xf0, 0x76, 0x48, 0x02, - 0x91, 0x33, 0x9b, 0x2d, 0x40, 0x2c, 0x0b, 0x71, 0x0c, 0xa7, 0x0b, 0x90, 0xfd, 0xb9, 0x16, 0xf8, - 0x1d, 0x9e, 0x23, 0x40, 0x2c, 0x40, 0xac, 0x4a, 0xb1, 0x86, 0x41, 0x37, 0x28, 0xfb, 0xb7, 0xee, - 0x7b, 0xd8, 0xf7, 0x23, 0xb9, 0xa5, 0x59, 0x96, 0x56, 0xad, 0x1c, 0x1b, 0x58, 0x68, 0x15, 0x50, - 0xd8, 0x69, 0xb7, 0x9b, 0xcc, 0xec, 0xc3, 0x69, 0x32, 0x52, 0x5c, 0xe5, 0x5e, 0xe4, 0xa1, 0x53, - 0x6b, 0x29, 0x28, 0xce, 0xa8, 0x41, 0xcf, 0xea, 0x2d, 0xd1, 0xd5, 0x41, 0xd6, 0x55, 0xae, 0x06, - 0xa9, 0xf1, 0x7e, 0x4a, 0x18, 0x5a, 0x81, 0xe1, 0x70, 0x3f, 0xac, 0x47, 0x22, 0x06, 0x5c, 0x4e, - 0xe2, 0xa2, 0x1a, 0x43, 0xd1, 0xf2, 0xe6, 0xf1, 0x2a, 0x58, 0xd6, 0x45, 0x75, 0x98, 0x11, 0x14, - 0x97, 0x77, 0x1c, 0x4f, 0xa5, 0x81, 0xe1, 0xd6, 0xaf, 0x57, 0x1f, 0x1c, 0xcc, 0xcf, 0x88, 0x96, - 0x75, 0xf0, 0xe1, 0xc1, 0xfc, 0x99, 0xaa, 0xdf, 0xc8, 0x80, 0xe0, 0x2c, 0x6a, 0x7c, 0xf1, 0xd5, - 0xeb, 0x7e, 0xab, 0x5d, 0x0d, 0xfc, 0x2d, 0xb7, 0x49, 0xba, 0xa9, 0x92, 0x6a, 0x06, 0xa6, 0x58, - 0x7c, 0x46, 0x19, 0x4e, 0x50, 0xb3, 0xbf, 0x9d, 0xf1, 0x33, 0x2c, 0x4d, 0x74, 0xd4, 0x09, 0x08, - 0x6a, 0xc1, 0x78, 0x9b, 0x6d, 0x13, 0x11, 0xb9, 0x5f, 0xac, 0xf5, 0x17, 0xfb, 0x14, 0x89, 0xdc, - 0xa3, 0xd7, 0x80, 0x12, 0x59, 0xb2, 0xb7, 0x66, 0x55, 0x27, 0x87, 0x4d, 0xea, 0xf6, 0x8f, 0x3d, - 0xc6, 0x6e, 0xc4, 0x1a, 0x97, 0x73, 0x0c, 0x0b, 0x63, 0x7b, 0xf1, 0xb4, 0x9a, 0xcb, 0x17, 0xb8, - 0xc5, 0xd3, 0x22, 0x0c, 0xf6, 0xb1, 0xac, 0x8b, 0x3e, 0x0d, 0x13, 0xf4, 0xa5, 0xa2, 0xe5, 0x5f, - 0x39, 0x95, 0x1f, 0x14, 0x21, 0x4e, 0xbb, 0xa2, 0x65, 0xf5, 0xd0, 0x2b, 0xe3, 0x04, 0x31, 0xf4, - 0x06, 0x33, 0x0b, 0x31, 0x53, 0xbb, 0xf4, 0x20, 0xad, 0x5b, 0x80, 0x48, 0xb2, 0x1a, 0x91, 0xbc, - 0xb4, 0x31, 0xf6, 0xa3, 0x4d, 0x1b, 0x83, 0x6e, 0xc2, 0xb8, 0xc8, 0x95, 0x2c, 0x56, 0x6e, 0xd1, - 0x90, 0x03, 0x8e, 0x63, 0x1d, 0x78, 0x98, 0x2c, 0xc0, 0x66, 0x65, 0xb4, 0x0d, 0xe7, 0xb4, 0xdc, - 0x45, 0xd7, 0x02, 0x87, 0x29, 0xf3, 0x5d, 0x76, 0x9c, 0x6a, 0x77, 0xf5, 0x93, 0x0f, 0x0e, 0xe6, - 0xcf, 0x6d, 0x74, 0x43, 0xc4, 0xdd, 0xe9, 0xa0, 0x5b, 0x70, 0x9a, 0xbb, 0xf4, 0x96, 0x89, 0xd3, - 0x68, 0xba, 0x9e, 0x62, 0x06, 0xf8, 0x96, 0x3f, 0xfb, 0xe0, 0x60, 0xfe, 0xf4, 0x62, 0x16, 0x02, - 0xce, 0xae, 0x87, 0x3e, 0x0a, 0xa5, 0x86, 0x17, 0x8a, 0x31, 0x18, 0x32, 0xd2, 0x43, 0x95, 0xca, - 0xeb, 0x35, 0xf5, 0xfd, 0xf1, 0x1f, 0x1c, 0x57, 0x40, 0xdb, 0x5c, 0x56, 0xac, 0x24, 0x18, 0xc3, - 0xa9, 0x90, 0x46, 0x49, 0x21, 0x9f, 0xe1, 0xd4, 0xc7, 0x95, 0x24, 0xca, 0xd6, 0xdd, 0xf0, 0xf7, - 0x33, 0x08, 0xa3, 0xd7, 0x01, 0xd1, 0x17, 0x84, 0x5b, 0x27, 0x8b, 0x75, 0x96, 0x16, 0x82, 0x89, - 0xd6, 0x47, 0x4c, 0x37, 0xb3, 0x5a, 0x0a, 0x03, 0x67, 0xd4, 0x42, 0xd7, 0xe9, 0xa9, 0xa2, 0x97, - 0x8a, 0x53, 0x4b, 0x25, 0xf3, 0x2b, 0x93, 0x76, 0x40, 0xea, 0x4e, 0x44, 0x1a, 0x26, 0x45, 0x9c, - 0xa8, 0x87, 0x1a, 0xf0, 0x84, 0xd3, 0x89, 0x7c, 0x26, 0x86, 0x37, 0x51, 0x37, 0xfc, 0x5d, 0xe2, - 0x31, 0x0d, 0xd8, 0xc8, 0xd2, 0x05, 0xca, 0x6d, 0x2c, 0x76, 0xc1, 0xc3, 0x5d, 0xa9, 0x50, 0x2e, - 0x51, 0x65, 0xef, 0x05, 0x33, 0x50, 0x53, 0x46, 0x06, 0xdf, 0x97, 0x60, 0x74, 0xc7, 0x0f, 0xa3, - 0x75, 0x12, 0xdd, 0xf3, 0x83, 0x5d, 0x11, 0x6f, 0x33, 0x8e, 0xd1, 0x1c, 0x83, 0xb0, 0x8e, 0x47, - 0x9f, 0x81, 0xcc, 0x3e, 0xa3, 0x52, 0x66, 0xaa, 0xf1, 0x91, 0xf8, 0x8c, 0xb9, 0xce, 0x8b, 0xb1, - 0x84, 0x4b, 0xd4, 0x4a, 0x75, 0x99, 0xa9, 0xb9, 0x13, 0xa8, 0x95, 0xea, 0x32, 0x96, 0x70, 0xba, - 0x5c, 0xc3, 0x1d, 0x27, 0x20, 0xd5, 0xc0, 0xaf, 0x93, 0x50, 0x8b, 0x0c, 0xfe, 0x38, 0x8f, 0x26, - 0x4a, 0x97, 0x6b, 0x2d, 0x0b, 0x01, 0x67, 0xd7, 0x43, 0x24, 0x9d, 0xb7, 0x6b, 0x22, 0x5f, 0x3f, - 0x91, 0xe6, 0x67, 0xfa, 0x4c, 0xdd, 0xe5, 0xc1, 0x94, 0xca, 0x18, 0xc6, 0xe3, 0x87, 0x86, 0xb3, - 0x93, 0x6c, 0x6d, 0xf7, 0x1f, 0x7c, 0x54, 0x69, 0x7c, 0x2a, 0x09, 0x4a, 0x38, 0x45, 0xdb, 0x88, - 0xc5, 0x35, 0xd5, 0x33, 0x16, 0xd7, 0x15, 0x28, 0x85, 0x9d, 0xcd, 0x86, 0xdf, 0x72, 0x5c, 0x8f, - 0xa9, 0xb9, 0xb5, 0xf7, 0x48, 0x4d, 0x02, 0x70, 0x8c, 0x83, 0x56, 0x61, 0xc4, 0x91, 0xea, 0x1c, - 0x94, 0x1f, 0x7d, 0x45, 0x29, 0x71, 0x78, 0x40, 0x02, 0xa9, 0xc0, 0x51, 0x75, 0xd1, 0xab, 0x30, - 0x2e, 0x5c, 0x52, 0x45, 0xb2, 0xca, 0x19, 0xd3, 0x6f, 0xa8, 0xa6, 0x03, 0xb1, 0x89, 0x8b, 0x6e, - 0xc3, 0x68, 0xe4, 0x37, 0x99, 0xf3, 0x0b, 0x65, 0xf3, 0xce, 0xe4, 0xc7, 0x11, 0xdb, 0x50, 0x68, - 0xba, 0x24, 0x55, 0x55, 0xc5, 0x3a, 0x1d, 0xb4, 0xc1, 0xd7, 0x3b, 0x8b, 0x90, 0x4d, 0xc2, 0xd9, - 0xc7, 0xf2, 0xef, 0x24, 0x15, 0x48, 0xdb, 0xdc, 0x0e, 0xa2, 0x26, 0xd6, 0xc9, 0xa0, 0x6b, 0x30, - 0xdd, 0x0e, 0x5c, 0x9f, 0xad, 0x09, 0xa5, 0xc9, 0x9b, 0x35, 0xd3, 0xf3, 0x54, 0x93, 0x08, 0x38, - 0x5d, 0x87, 0x79, 0x14, 0x8b, 0xc2, 0xd9, 0xb3, 0x3c, 0x9f, 0x35, 0x7f, 0xde, 0xf1, 0x32, 0xac, - 0xa0, 0x68, 0x8d, 0x9d, 0xc4, 0x5c, 0x32, 0x31, 0x3b, 0x97, 0x1f, 0xf0, 0x45, 0x97, 0x60, 0x70, - 0xe6, 0x55, 0xfd, 0xc5, 0x31, 0x05, 0xd4, 0xd0, 0x12, 0x1f, 0xd2, 0x17, 0x43, 0x38, 0xfb, 0x44, - 0x17, 0x23, 0xb9, 0xc4, 0xf3, 0x22, 0x66, 0x08, 0x8c, 0xe2, 0x10, 0x27, 0x68, 0xa2, 0x8f, 0xc3, - 0x94, 0x08, 0x53, 0x17, 0x0f, 0xd3, 0xb9, 0xd8, 0xa4, 0x18, 0x27, 0x60, 0x38, 0x85, 0xcd, 0x33, - 0x07, 0x38, 0x9b, 0x4d, 0x22, 0x8e, 0xbe, 0x9b, 0xae, 0xb7, 0x1b, 0xce, 0x9e, 0x67, 0xe7, 0x83, - 0xc8, 0x1c, 0x90, 0x84, 0xe2, 0x8c, 0x1a, 0x68, 0x03, 0xa6, 0xda, 0x01, 0x21, 0x2d, 0xc6, 0xe8, - 0x8b, 0xfb, 0x6c, 0x9e, 0x3b, 0xd4, 0xd3, 0x9e, 0x54, 0x13, 0xb0, 0xc3, 0x8c, 0x32, 0x9c, 0xa2, - 0x80, 0xee, 0xc1, 0x88, 0xbf, 0x47, 0x82, 0x1d, 0xe2, 0x34, 0x66, 0x2f, 0x74, 0x31, 0x71, 0x17, - 0x97, 0xdb, 0x2d, 0x81, 0x9b, 0xd0, 0xfe, 0xcb, 0xe2, 0xde, 0xda, 0x7f, 0xd9, 0x18, 0xfa, 0x21, - 0x0b, 0xce, 0x4a, 0x85, 0x41, 0xad, 0x4d, 0x47, 0x7d, 0xd9, 0xf7, 0xc2, 0x28, 0xe0, 0x2e, 0xe0, - 0x4f, 0xe6, 0xbb, 0x45, 0x6f, 0xe4, 0x54, 0x52, 0xc2, 0xd1, 0xb3, 0x79, 0x18, 0x21, 0xce, 0x6f, - 0x11, 0x2d, 0xc3, 0x74, 0x48, 0x22, 0x79, 0x18, 0x2d, 0x86, 0xab, 0x6f, 0x94, 0xd7, 0x67, 0x2f, - 0x72, 0xff, 0x75, 0xba, 0x19, 0x6a, 0x49, 0x20, 0x4e, 0xe3, 0xcf, 0x7d, 0x2b, 0x4c, 0xa7, 0xae, - 0xff, 0xa3, 0x64, 0x44, 0x99, 0xdb, 0x85, 0x71, 0x63, 0x88, 0x1f, 0xa9, 0xf6, 0xf8, 0xdf, 0x0c, - 0x43, 0x49, 0x69, 0x16, 0xd1, 0x15, 0x53, 0x61, 0x7c, 0x36, 0xa9, 0x30, 0x1e, 0xa1, 0xef, 0x7a, - 0x5d, 0x47, 0xbc, 0x91, 0x11, 0xb5, 0x2b, 0x6f, 0x43, 0xf7, 0xef, 0x8e, 0xad, 0x89, 0x6b, 0x8b, - 0x7d, 0x6b, 0x9e, 0x07, 0xba, 0x4a, 0x80, 0xaf, 0xc1, 0xb4, 0xe7, 0x33, 0x9e, 0x93, 0x34, 0x24, - 0x43, 0xc1, 0xf8, 0x86, 0x92, 0x1e, 0x06, 0x23, 0x81, 0x80, 0xd3, 0x75, 0x68, 0x83, 0xfc, 0xe2, - 0x4f, 0x8a, 0x9c, 0x39, 0x5f, 0x80, 0x05, 0x14, 0x5d, 0x84, 0xc1, 0xb6, 0xdf, 0xa8, 0x54, 0x05, - 0xbf, 0xa9, 0xc5, 0x8a, 0x6c, 0x54, 0xaa, 0x98, 0xc3, 0xd0, 0x22, 0x0c, 0xb1, 0x1f, 0xe1, 0xec, - 0x58, 0x7e, 0xbc, 0x03, 0x56, 0x43, 0xcb, 0x37, 0xc3, 0x2a, 0x60, 0x51, 0x91, 0x89, 0xbe, 0x28, - 0x93, 0xce, 0x44, 0x5f, 0xc3, 0x0f, 0x29, 0xfa, 0x92, 0x04, 0x70, 0x4c, 0x0b, 0xdd, 0x87, 0xd3, - 0xc6, 0xc3, 0x88, 0x2f, 0x11, 0x12, 0x0a, 0x9f, 0xeb, 0x8b, 0x5d, 0x5f, 0x44, 0x42, 0x53, 0x7d, - 0x4e, 0x74, 0xfa, 0x74, 0x25, 0x8b, 0x12, 0xce, 0x6e, 0x00, 0x35, 0x61, 0xba, 0x9e, 0x6a, 0x75, - 0xa4, 0xff, 0x56, 0xd5, 0x84, 0xa6, 0x5b, 0x4c, 0x13, 0x46, 0xaf, 0xc2, 0xc8, 0x5b, 0x7e, 0xc8, - 0xce, 0x6a, 0xc1, 0x23, 0x4b, 0x87, 0xdd, 0x91, 0x37, 0x6e, 0xd5, 0x58, 0xf9, 0xe1, 0xc1, 0xfc, - 0x68, 0xd5, 0x6f, 0xc8, 0xbf, 0x58, 0x55, 0x40, 0xdf, 0x6b, 0xc1, 0x5c, 0xfa, 0xe5, 0xa5, 0x3a, - 0x3d, 0xde, 0x7f, 0xa7, 0x6d, 0xd1, 0xe8, 0xdc, 0x4a, 0x2e, 0x39, 0xdc, 0xa5, 0x29, 0xfb, 0x97, - 0x2d, 0x26, 0x75, 0x13, 0x1a, 0x20, 0x12, 0x76, 0x9a, 0x27, 0x91, 0x66, 0x73, 0xc5, 0x50, 0x4e, - 0x3d, 0xb4, 0xe5, 0xc2, 0xbf, 0xb4, 0x98, 0xe5, 0xc2, 0x09, 0xba, 0x28, 0xbc, 0x01, 0x23, 0x91, - 0x4c, 0x96, 0xda, 0x25, 0x33, 0xa8, 0xd6, 0x29, 0x66, 0xbd, 0xa1, 0x38, 0x56, 0x95, 0x17, 0x55, - 0x91, 0xb1, 0xff, 0x09, 0x9f, 0x01, 0x09, 0x39, 0x01, 0x1d, 0x40, 0xd9, 0xd4, 0x01, 0xcc, 0xf7, - 0xf8, 0x82, 0x1c, 0x5d, 0xc0, 0x3f, 0x36, 0xfb, 0xcd, 0x24, 0x35, 0xef, 0x76, 0x93, 0x19, 0xfb, - 0x8b, 0x16, 0x40, 0x1c, 0x8a, 0x97, 0xc9, 0x97, 0xfd, 0x40, 0xe6, 0x58, 0xcc, 0xca, 0x26, 0xf4, - 0x32, 0xe5, 0x51, 0xfd, 0xc8, 0xaf, 0xfb, 0x4d, 0xa1, 0xe1, 0x7a, 0x22, 0x56, 0x43, 0xf0, 0xf2, - 0x43, 0xed, 0x37, 0x56, 0xd8, 0x68, 0x5e, 0x06, 0xfe, 0x2a, 0xc6, 0x8a, 0x31, 0x23, 0xe8, 0xd7, - 0x8f, 0x58, 0x70, 0x2a, 0xcb, 0xde, 0x95, 0xbe, 0x78, 0xb8, 0xcc, 0x4a, 0x99, 0x33, 0xa9, 0xd9, - 0xbc, 0x23, 0xca, 0xb1, 0xc2, 0xe8, 0x3b, 0x73, 0xd8, 0xd1, 0x62, 0xe0, 0xde, 0x82, 0xf1, 0x6a, - 0x40, 0xb4, 0xcb, 0xf5, 0x35, 0xee, 0x4c, 0xce, 0xfb, 0xf3, 0xec, 0x91, 0x1d, 0xc9, 0xed, 0x9f, - 0x29, 0xc0, 0x29, 0x6e, 0x15, 0xb0, 0xb8, 0xe7, 0xbb, 0x8d, 0xaa, 0xdf, 0x10, 0x59, 0xdf, 0x3e, - 0x05, 0x63, 0x6d, 0x4d, 0xd0, 0xd8, 0x2d, 0x9e, 0xa3, 0x2e, 0x90, 0x8c, 0x45, 0x23, 0x7a, 0x29, - 0x36, 0x68, 0xa1, 0x06, 0x8c, 0x91, 0x3d, 0xb7, 0xae, 0x54, 0xcb, 0x85, 0x23, 0x5f, 0x74, 0xaa, - 0x95, 0x15, 0x8d, 0x0e, 0x36, 0xa8, 0x3e, 0x82, 0x7c, 0xbe, 0xf6, 0x8f, 0x5a, 0xf0, 0x58, 0x4e, - 0xf4, 0x47, 0xda, 0xdc, 0x3d, 0x66, 0x7f, 0x21, 0x96, 0xad, 0x6a, 0x8e, 0x5b, 0x65, 0x60, 0x01, - 0x45, 0x9f, 0x00, 0xe0, 0x56, 0x15, 0xf4, 0xc9, 0xdd, 0x2b, 0x4c, 0x9e, 0x11, 0xe1, 0x4b, 0x0b, - 0xd6, 0x24, 0xeb, 0x63, 0x8d, 0x96, 0xfd, 0x53, 0x45, 0x18, 0xe4, 0xa9, 0xd9, 0x57, 0x61, 0x78, - 0x87, 0xe7, 0xc2, 0xe8, 0x27, 0xed, 0x46, 0x2c, 0x0c, 0xe1, 0x05, 0x58, 0x56, 0x46, 0x6b, 0x30, - 0xc3, 0x73, 0x89, 0x34, 0xcb, 0xa4, 0xe9, 0xec, 0x4b, 0xc9, 0x1d, 0xcf, 0xc3, 0xa9, 0x24, 0x98, - 0x95, 0x34, 0x0a, 0xce, 0xaa, 0x87, 0x5e, 0x83, 0x09, 0xfa, 0x92, 0xf2, 0x3b, 0x91, 0xa4, 0xc4, - 0xb3, 0x88, 0xa8, 0xa7, 0xdb, 0x86, 0x01, 0xc5, 0x09, 0x6c, 0xfa, 0x98, 0x6f, 0xa7, 0x64, 0x94, - 0x83, 0xf1, 0x63, 0xde, 0x94, 0x4b, 0x9a, 0xb8, 0xcc, 0xd0, 0xb5, 0xc3, 0xcc, 0x7a, 0x37, 0x76, - 0x02, 0x12, 0xee, 0xf8, 0xcd, 0x06, 0x63, 0xfa, 0x06, 0x35, 0x43, 0xd7, 0x04, 0x1c, 0xa7, 0x6a, - 0x50, 0x2a, 0x5b, 0x8e, 0xdb, 0xec, 0x04, 0x24, 0xa6, 0x32, 0x64, 0x52, 0x59, 0x4d, 0xc0, 0x71, - 0xaa, 0x06, 0x5d, 0x47, 0xa7, 0xab, 0x81, 0x4f, 0x0f, 0x52, 0x19, 0xd2, 0x46, 0x59, 0x2f, 0x0f, - 0x4b, 0xef, 0xdb, 0x2e, 0xc1, 0xdf, 0x84, 0x7d, 0x27, 0xa7, 0x60, 0x18, 0x10, 0xd4, 0x84, 0xdf, - 0xad, 0xa4, 0x82, 0xae, 0xc2, 0xa8, 0xc8, 0x10, 0xc1, 0x8c, 0x6c, 0xf9, 0xd4, 0x31, 0x83, 0x87, - 0x72, 0x5c, 0x8c, 0x75, 0x1c, 0xfb, 0xfb, 0x0a, 0x30, 0x93, 0xe1, 0x25, 0xc1, 0x8f, 0xaa, 0x6d, - 0x37, 0x8c, 0x54, 0xae, 0x41, 0xed, 0xa8, 0xe2, 0xe5, 0x58, 0x61, 0xd0, 0xfd, 0xc0, 0x0f, 0xc3, - 0xe4, 0x01, 0x28, 0xac, 0x90, 0x05, 0xf4, 0x88, 0x59, 0xfb, 0x2e, 0xc0, 0x40, 0x27, 0x24, 0x32, - 0x6c, 0xa3, 0xba, 0x1a, 0x98, 0x1e, 0x8c, 0x41, 0x28, 0xab, 0xbe, 0xad, 0x54, 0x4a, 0x1a, 0xab, - 0xce, 0x95, 0x4a, 0x1c, 0x46, 0x3b, 0x17, 0x11, 0xcf, 0xf1, 0x22, 0xc1, 0xd0, 0xc7, 0xf1, 0xc7, - 0x58, 0x29, 0x16, 0x50, 0xfb, 0x4b, 0x45, 0x38, 0x9b, 0xeb, 0x37, 0x45, 0xbb, 0xde, 0xf2, 0x3d, - 0x37, 0xf2, 0x95, 0x25, 0x09, 0x8f, 0x39, 0x46, 0xda, 0x3b, 0x6b, 0xa2, 0x1c, 0x2b, 0x0c, 0x74, - 0x09, 0x06, 0x99, 0x14, 0x2d, 0x95, 0x75, 0x71, 0xa9, 0xcc, 0x83, 0xd0, 0x70, 0x70, 0xdf, 0x19, - 0x6d, 0x2f, 0xd2, 0x5b, 0xd2, 0x6f, 0x26, 0x0f, 0x2d, 0xda, 0x5d, 0xdf, 0x6f, 0x62, 0x06, 0x44, - 0x1f, 0x10, 0xe3, 0x95, 0x30, 0x9d, 0xc0, 0x4e, 0xc3, 0x0f, 0xb5, 0x41, 0x7b, 0x1a, 0x86, 0x77, - 0xc9, 0x7e, 0xe0, 0x7a, 0xdb, 0x49, 0x93, 0x9a, 0x1b, 0xbc, 0x18, 0x4b, 0xb8, 0x99, 0x40, 0x6b, - 0xf8, 0xb8, 0x53, 0xd1, 0x8e, 0xf4, 0xbc, 0x02, 0x7f, 0xa0, 0x08, 0x93, 0x78, 0xa9, 0xfc, 0xde, - 0x44, 0xdc, 0x4e, 0x4f, 0xc4, 0x71, 0xa7, 0xa2, 0xed, 0x3d, 0x1b, 0xbf, 0x60, 0xc1, 0x24, 0xcb, - 0x53, 0x21, 0xa2, 0x55, 0xb9, 0xbe, 0x77, 0x02, 0xec, 0xe6, 0x45, 0x18, 0x0c, 0x68, 0xa3, 0xc9, - 0x74, 0x8b, 0xac, 0x27, 0x98, 0xc3, 0xd0, 0x13, 0x30, 0xc0, 0xba, 0x40, 0x27, 0x6f, 0x8c, 0x67, - 0xaa, 0x2a, 0x3b, 0x91, 0x83, 0x59, 0x29, 0x0b, 0xc1, 0x82, 0x49, 0xbb, 0xe9, 0xf2, 0x4e, 0xc7, - 0x3a, 0xce, 0x77, 0x87, 0x47, 0x75, 0x66, 0xd7, 0xde, 0x59, 0x08, 0x96, 0x6c, 0x92, 0xdd, 0x9f, - 0x72, 0x7f, 0x5c, 0x80, 0xf3, 0x99, 0xf5, 0xfa, 0x0e, 0xc1, 0xd2, 0xbd, 0xf6, 0xa3, 0xcc, 0x44, - 0x50, 0x3c, 0x41, 0x83, 0xc5, 0x81, 0x7e, 0x39, 0xcc, 0xc1, 0x3e, 0x22, 0xa3, 0x64, 0x0e, 0xd9, - 0xbb, 0x24, 0x32, 0x4a, 0x66, 0xdf, 0x72, 0x9e, 0xa2, 0x7f, 0x59, 0xc8, 0xf9, 0x16, 0xf6, 0x28, - 0xbd, 0x4c, 0xcf, 0x19, 0x06, 0x0c, 0xe5, 0x43, 0x8f, 0x9f, 0x31, 0xbc, 0x0c, 0x2b, 0x28, 0x5a, - 0x84, 0xc9, 0x96, 0xeb, 0xd1, 0xc3, 0x67, 0xdf, 0x64, 0xfc, 0x54, 0xe0, 0xaa, 0x35, 0x13, 0x8c, - 0x93, 0xf8, 0xc8, 0xd5, 0xa2, 0xa6, 0x14, 0xf2, 0x13, 0x98, 0xe7, 0xf6, 0x76, 0xc1, 0xd4, 0xff, - 0xaa, 0x51, 0xcc, 0x88, 0xa0, 0xb2, 0xa6, 0xc9, 0x22, 0x8a, 0xfd, 0xcb, 0x22, 0xc6, 0xb2, 0xe5, - 0x10, 0x73, 0xaf, 0xc2, 0xf8, 0x43, 0x0b, 0x9f, 0xed, 0xaf, 0x16, 0xe1, 0xf1, 0x2e, 0xdb, 0x9e, - 0x9f, 0xf5, 0xc6, 0x1c, 0x68, 0x67, 0x7d, 0x6a, 0x1e, 0xaa, 0x70, 0x6a, 0xab, 0xd3, 0x6c, 0xee, - 0x33, 0x3b, 0x7e, 0xd2, 0x90, 0x18, 0x82, 0xa7, 0x94, 0x0f, 0xf0, 0x53, 0xab, 0x19, 0x38, 0x38, - 0xb3, 0x26, 0x65, 0xe8, 0xe9, 0x4d, 0xb2, 0xaf, 0x48, 0x25, 0x18, 0x7a, 0xac, 0x03, 0xb1, 0x89, - 0x8b, 0xae, 0xc1, 0xb4, 0xb3, 0xe7, 0xb8, 0x3c, 0xf4, 0xac, 0x24, 0xc0, 0x39, 0x7a, 0x25, 0x33, - 0x5c, 0x4c, 0x22, 0xe0, 0x74, 0x1d, 0xf4, 0x3a, 0x20, 0x7f, 0x93, 0x59, 0xfb, 0x36, 0xae, 0x11, - 0x4f, 0xa8, 0xe9, 0xd8, 0xdc, 0x15, 0xe3, 0x23, 0xe1, 0x56, 0x0a, 0x03, 0x67, 0xd4, 0x4a, 0x44, - 0x21, 0x19, 0xca, 0x8f, 0x42, 0xd2, 0xfd, 0x5c, 0xec, 0x99, 0x04, 0xe3, 0xbf, 0x58, 0xf4, 0xfa, - 0xe2, 0x4c, 0xbe, 0x19, 0x4c, 0xef, 0x55, 0x66, 0x66, 0xc7, 0xe5, 0x89, 0x5a, 0xec, 0x8c, 0xd3, - 0x9a, 0x99, 0x5d, 0x0c, 0xc4, 0x26, 0x2e, 0x5f, 0x10, 0x61, 0xec, 0xb2, 0x69, 0xb0, 0xf8, 0x22, - 0xe2, 0x8f, 0xc2, 0x40, 0x9f, 0x84, 0xe1, 0x86, 0xbb, 0xe7, 0x86, 0x42, 0x9a, 0x72, 0x64, 0xd5, - 0x45, 0x7c, 0x0e, 0x96, 0x39, 0x19, 0x2c, 0xe9, 0xd9, 0x3f, 0x50, 0x80, 0x71, 0xd9, 0xe2, 0x1b, - 0x1d, 0x3f, 0x72, 0x4e, 0xe0, 0x5a, 0xbe, 0x66, 0x5c, 0xcb, 0x1f, 0xe8, 0x16, 0xf6, 0x88, 0x75, - 0x29, 0xf7, 0x3a, 0xbe, 0x95, 0xb8, 0x8e, 0x9f, 0xea, 0x4d, 0xaa, 0xfb, 0x35, 0xfc, 0x4f, 0x2d, - 0x98, 0x36, 0xf0, 0x4f, 0xe0, 0x36, 0x58, 0x35, 0x6f, 0x83, 0x27, 0x7b, 0x7e, 0x43, 0xce, 0x2d, - 0xf0, 0xdd, 0xc5, 0x44, 0xdf, 0xd9, 0xe9, 0xff, 0x16, 0x0c, 0xec, 0x38, 0x41, 0xa3, 0x5b, 0x98, - 0xf7, 0x54, 0xa5, 0x85, 0xeb, 0x4e, 0x20, 0xf4, 0x94, 0xcf, 0xaa, 0xfc, 0xe1, 0x4e, 0xd0, 0x5b, - 0x47, 0xc9, 0x9a, 0x42, 0x2f, 0xc3, 0x50, 0x58, 0xf7, 0xdb, 0xca, 0x8a, 0xff, 0x02, 0xcf, 0x2d, - 0x4e, 0x4b, 0x0e, 0x0f, 0xe6, 0x91, 0xd9, 0x1c, 0x2d, 0xc6, 0x02, 0x1f, 0x7d, 0x0a, 0xc6, 0xd9, - 0x2f, 0x65, 0x34, 0x54, 0xcc, 0x4f, 0x09, 0x55, 0xd3, 0x11, 0xb9, 0x45, 0x9d, 0x51, 0x84, 0x4d, - 0x52, 0x73, 0xdb, 0x50, 0x52, 0x9f, 0xf5, 0x48, 0x75, 0x83, 0xff, 0xb1, 0x08, 0x33, 0x19, 0x6b, - 0x0e, 0x85, 0xc6, 0x4c, 0x5c, 0xed, 0x73, 0xa9, 0xbe, 0xc3, 0xb9, 0x08, 0xd9, 0x6b, 0xa8, 0x21, - 0xd6, 0x56, 0xdf, 0x8d, 0xde, 0x0e, 0x49, 0xb2, 0x51, 0x5a, 0xd4, 0xbb, 0x51, 0xda, 0xd8, 0x89, - 0x0d, 0x35, 0x6d, 0x48, 0xf5, 0xf4, 0x91, 0xce, 0xe9, 0x9f, 0x15, 0xe1, 0x54, 0x56, 0x24, 0x36, - 0xf4, 0xf9, 0x44, 0x92, 0xc1, 0x17, 0xfb, 0x8d, 0xe1, 0xc6, 0x33, 0x0f, 0x72, 0x19, 0xf0, 0xd2, - 0x82, 0x99, 0x76, 0xb0, 0xe7, 0x30, 0x8b, 0x36, 0x59, 0x38, 0x82, 0x80, 0x27, 0x87, 0x94, 0xc7, - 0xc7, 0x87, 0xfb, 0xee, 0x80, 0xc8, 0x2a, 0x19, 0x26, 0x0c, 0x12, 0x64, 0x71, 0x6f, 0x83, 0x04, - 0xd9, 0xf2, 0x9c, 0x0b, 0xa3, 0xda, 0xd7, 0x3c, 0xd2, 0x19, 0xdf, 0xa5, 0xb7, 0x95, 0xd6, 0xef, - 0x47, 0x3a, 0xeb, 0x3f, 0x6a, 0x41, 0xc2, 0x46, 0x5d, 0x89, 0xc5, 0xac, 0x5c, 0xb1, 0xd8, 0x05, - 0x18, 0x08, 0xfc, 0x26, 0x49, 0x66, 0xe3, 0xc3, 0x7e, 0x93, 0x60, 0x06, 0xa1, 0x18, 0x51, 0x2c, - 0xec, 0x18, 0xd3, 0x1f, 0x72, 0xe2, 0x89, 0x76, 0x11, 0x06, 0x9b, 0x64, 0x8f, 0x34, 0x93, 0x49, - 0x53, 0x6e, 0xd2, 0x42, 0xcc, 0x61, 0xf6, 0x2f, 0x0c, 0xc0, 0xb9, 0xae, 0x01, 0x3d, 0xe8, 0x73, - 0x68, 0xdb, 0x89, 0xc8, 0x3d, 0x67, 0x3f, 0x99, 0xdd, 0xe0, 0x1a, 0x2f, 0xc6, 0x12, 0xce, 0xbc, - 0x88, 0x78, 0x90, 0xe2, 0x84, 0x10, 0x51, 0xc4, 0x26, 0x16, 0x50, 0x53, 0x28, 0x55, 0x3c, 0x0e, - 0xa1, 0xd4, 0xf3, 0x00, 0x61, 0xd8, 0xe4, 0x96, 0x3c, 0x0d, 0xe1, 0x9e, 0x14, 0x07, 0xb3, 0xae, - 0xdd, 0x14, 0x10, 0xac, 0x61, 0xa1, 0x32, 0x4c, 0xb5, 0x03, 0x3f, 0xe2, 0x32, 0xd9, 0x32, 0x37, - 0x76, 0x1b, 0x34, 0x63, 0x29, 0x54, 0x13, 0x70, 0x9c, 0xaa, 0x81, 0x5e, 0x82, 0x51, 0x11, 0x5f, - 0xa1, 0xea, 0xfb, 0x4d, 0x21, 0x06, 0x52, 0xf6, 0x5f, 0xb5, 0x18, 0x84, 0x75, 0x3c, 0xad, 0x1a, - 0x13, 0xf4, 0x0e, 0x67, 0x56, 0xe3, 0xc2, 0x5e, 0x0d, 0x2f, 0x11, 0x95, 0x71, 0xa4, 0xaf, 0xa8, - 0x8c, 0xb1, 0x60, 0xac, 0xd4, 0xb7, 0x6e, 0x0b, 0x7a, 0x8a, 0x92, 0x7e, 0x76, 0x00, 0x66, 0xc4, - 0xc2, 0x79, 0xd4, 0xcb, 0xe5, 0x76, 0x7a, 0xb9, 0x1c, 0x87, 0xe8, 0xec, 0xbd, 0x35, 0x73, 0xd2, - 0x6b, 0xe6, 0x07, 0x2d, 0x30, 0xd9, 0x2b, 0xf4, 0xff, 0xe5, 0xa6, 0x87, 0x79, 0x29, 0x97, 0x5d, - 0x6b, 0xc8, 0x0b, 0xe4, 0x1d, 0x26, 0x8a, 0xb1, 0xff, 0xb3, 0x05, 0x4f, 0xf6, 0xa4, 0x88, 0x56, - 0xa0, 0xc4, 0x78, 0x40, 0xed, 0x75, 0xf6, 0x94, 0x32, 0x86, 0x95, 0x80, 0x1c, 0x96, 0x34, 0xae, - 0x89, 0x56, 0x52, 0x79, 0x78, 0x9e, 0xce, 0xc8, 0xc3, 0x73, 0xda, 0x18, 0x9e, 0x87, 0x4c, 0xc4, - 0xf3, 0xfd, 0xf4, 0xc6, 0x31, 0x1c, 0x51, 0xd0, 0x87, 0x0d, 0xb1, 0x9f, 0x9d, 0x10, 0xfb, 0x21, - 0x13, 0x5b, 0xbb, 0x43, 0x3e, 0x0e, 0x53, 0x2c, 0xf0, 0x12, 0x33, 0xcd, 0x16, 0x2e, 0x32, 0x85, - 0xd8, 0xfc, 0xf2, 0x66, 0x02, 0x86, 0x53, 0xd8, 0xf6, 0x1f, 0x15, 0x61, 0x88, 0x6f, 0xbf, 0x13, - 0x78, 0x13, 0x3e, 0x03, 0x25, 0xb7, 0xd5, 0xea, 0xf0, 0xd4, 0x2a, 0x83, 0xdc, 0x2f, 0x96, 0xce, - 0x53, 0x45, 0x16, 0xe2, 0x18, 0x8e, 0x56, 0x85, 0xc4, 0xb9, 0x4b, 0x6c, 0x47, 0xde, 0xf1, 0x85, - 0xb2, 0x13, 0x39, 0x9c, 0xc1, 0x51, 0xf7, 0x6c, 0x2c, 0x9b, 0x46, 0x9f, 0x01, 0x08, 0xa3, 0xc0, - 0xf5, 0xb6, 0x69, 0x99, 0x08, 0x65, 0xfa, 0xc1, 0x2e, 0xd4, 0x6a, 0x0a, 0x99, 0xd3, 0x8c, 0xcf, - 0x1c, 0x05, 0xc0, 0x1a, 0x45, 0xb4, 0x60, 0xdc, 0xf4, 0x73, 0x89, 0xb9, 0x03, 0x4e, 0x35, 0x9e, - 0xb3, 0xb9, 0x8f, 0x40, 0x49, 0x11, 0xef, 0x25, 0x7f, 0x1a, 0xd3, 0xd9, 0xa2, 0x8f, 0xc1, 0x64, - 0xa2, 0x6f, 0x47, 0x12, 0x5f, 0xfd, 0xa2, 0x05, 0x93, 0xbc, 0x33, 0x2b, 0xde, 0x9e, 0xb8, 0x0d, - 0xde, 0x86, 0x53, 0xcd, 0x8c, 0x53, 0x59, 0x4c, 0x7f, 0xff, 0xa7, 0xb8, 0x12, 0x57, 0x65, 0x41, - 0x71, 0x66, 0x1b, 0xe8, 0x32, 0xdd, 0x71, 0xf4, 0xd4, 0x75, 0x9a, 0xc2, 0x4d, 0x76, 0x8c, 0xef, - 0x36, 0x5e, 0x86, 0x15, 0xd4, 0xfe, 0x5d, 0x0b, 0xa6, 0x79, 0xcf, 0x6f, 0x90, 0x7d, 0x75, 0x36, - 0x7d, 0x3d, 0xfb, 0x2e, 0x92, 0x7a, 0x15, 0x72, 0x92, 0x7a, 0xe9, 0x9f, 0x56, 0xec, 0xfa, 0x69, - 0x3f, 0x63, 0x81, 0x58, 0x21, 0x27, 0x20, 0x84, 0xf8, 0x56, 0x53, 0x08, 0x31, 0x97, 0xbf, 0x09, - 0x72, 0xa4, 0x0f, 0x7f, 0x61, 0xc1, 0x14, 0x47, 0x88, 0xb5, 0xe5, 0x5f, 0xd7, 0x79, 0xe8, 0x27, - 0xf5, 0xef, 0x0d, 0xb2, 0xbf, 0xe1, 0x57, 0x9d, 0x68, 0x27, 0xfb, 0xa3, 0x8c, 0xc9, 0x1a, 0xe8, - 0x3a, 0x59, 0x0d, 0xb9, 0x81, 0x8e, 0x90, 0x4f, 0xfc, 0xc8, 0x39, 0x2f, 0xec, 0xaf, 0x59, 0x80, - 0x78, 0x33, 0x06, 0xe3, 0x46, 0xd9, 0x21, 0x56, 0xaa, 0x5d, 0x74, 0xf1, 0xd1, 0xa4, 0x20, 0x58, - 0xc3, 0x3a, 0x96, 0xe1, 0x49, 0x98, 0x3c, 0x14, 0x7b, 0x9b, 0x3c, 0x1c, 0x61, 0x44, 0xff, 0xed, - 0x10, 0x24, 0x9d, 0x71, 0xd0, 0x1d, 0x18, 0xab, 0x3b, 0x6d, 0x67, 0xd3, 0x6d, 0xba, 0x91, 0x4b, - 0xc2, 0x6e, 0xb6, 0x52, 0xcb, 0x1a, 0x9e, 0x50, 0x52, 0x6b, 0x25, 0xd8, 0xa0, 0x83, 0x16, 0x00, - 0xda, 0x81, 0xbb, 0xe7, 0x36, 0xc9, 0x36, 0x93, 0x95, 0x30, 0xc7, 0x7c, 0x6e, 0x00, 0x24, 0x4b, - 0xb1, 0x86, 0x91, 0xe1, 0xf9, 0x5c, 0x7c, 0xc4, 0x9e, 0xcf, 0x70, 0x62, 0x9e, 0xcf, 0x03, 0x47, - 0xf2, 0x7c, 0x1e, 0x39, 0xb2, 0xe7, 0xf3, 0x60, 0x5f, 0x9e, 0xcf, 0x18, 0xce, 0x48, 0xde, 0x93, - 0xfe, 0x5f, 0x75, 0x9b, 0x44, 0x3c, 0x38, 0x78, 0x34, 0x81, 0xb9, 0x07, 0x07, 0xf3, 0x67, 0x70, - 0x26, 0x06, 0xce, 0xa9, 0x89, 0x3e, 0x01, 0xb3, 0x4e, 0xb3, 0xe9, 0xdf, 0x53, 0x93, 0xba, 0x12, - 0xd6, 0x9d, 0x26, 0x57, 0x42, 0x0c, 0x33, 0xaa, 0x4f, 0x3c, 0x38, 0x98, 0x9f, 0x5d, 0xcc, 0xc1, - 0xc1, 0xb9, 0xb5, 0xd1, 0x47, 0xa1, 0xd4, 0x0e, 0xfc, 0xfa, 0x9a, 0xe6, 0x31, 0x78, 0x9e, 0x0e, - 0x60, 0x55, 0x16, 0x1e, 0x1e, 0xcc, 0x8f, 0xab, 0x3f, 0xec, 0xc2, 0x8f, 0x2b, 0x64, 0xb8, 0x32, - 0x8f, 0x1e, 0xab, 0x2b, 0xf3, 0x2e, 0xcc, 0xd4, 0x48, 0xe0, 0xb2, 0xec, 0xe3, 0x8d, 0xf8, 0x7c, - 0xda, 0x80, 0x52, 0x90, 0x38, 0x91, 0xfb, 0x8a, 0xb7, 0xa8, 0x25, 0x1f, 0x90, 0x27, 0x70, 0x4c, - 0xc8, 0xfe, 0xdf, 0x16, 0x0c, 0x0b, 0xe7, 0x9b, 0x13, 0xe0, 0x1a, 0x17, 0x0d, 0x4d, 0xc2, 0x7c, - 0xf6, 0x80, 0xb1, 0xce, 0xe4, 0xea, 0x10, 0x2a, 0x09, 0x1d, 0xc2, 0x93, 0xdd, 0x88, 0x74, 0xd7, - 0x1e, 0xfc, 0xcd, 0x22, 0xe5, 0xde, 0x0d, 0x37, 0xd0, 0x47, 0x3f, 0x04, 0xeb, 0x30, 0x1c, 0x0a, - 0x37, 0xc4, 0x42, 0xbe, 0xdd, 0x7c, 0x72, 0x12, 0x63, 0x3b, 0x36, 0xe1, 0x78, 0x28, 0x89, 0x64, - 0xfa, 0x37, 0x16, 0x1f, 0xa1, 0x7f, 0x63, 0x2f, 0x47, 0xd9, 0x81, 0xe3, 0x70, 0x94, 0xb5, 0xbf, - 0xc2, 0x6e, 0x4e, 0xbd, 0xfc, 0x04, 0x98, 0xaa, 0x6b, 0xe6, 0x1d, 0x6b, 0x77, 0x59, 0x59, 0xa2, - 0x53, 0x39, 0xcc, 0xd5, 0xcf, 0x5b, 0x70, 0x2e, 0xe3, 0xab, 0x34, 0x4e, 0xeb, 0x59, 0x18, 0x71, - 0x3a, 0x0d, 0x57, 0xed, 0x65, 0x4d, 0x9f, 0xb8, 0x28, 0xca, 0xb1, 0xc2, 0x40, 0xcb, 0x30, 0x4d, - 0xee, 0xb7, 0x5d, 0xae, 0x4a, 0xd5, 0x8d, 0x4d, 0x8b, 0xdc, 0x63, 0x6b, 0x25, 0x09, 0xc4, 0x69, - 0x7c, 0x15, 0x9c, 0xa4, 0x98, 0x1b, 0x9c, 0xe4, 0x1f, 0x58, 0x30, 0xaa, 0x1c, 0xf1, 0x1e, 0xf9, - 0x68, 0x7f, 0xdc, 0x1c, 0xed, 0xc7, 0xbb, 0x8c, 0x76, 0xce, 0x30, 0xff, 0x76, 0x41, 0xf5, 0xb7, - 0xea, 0x07, 0x51, 0x1f, 0x1c, 0xdc, 0xc3, 0x9b, 0xc7, 0x5f, 0x85, 0x51, 0xa7, 0xdd, 0x96, 0x00, - 0x69, 0x83, 0xc6, 0xa2, 0xe7, 0xc6, 0xc5, 0x58, 0xc7, 0x51, 0xd6, 0xfa, 0xc5, 0x5c, 0x6b, 0xfd, - 0x06, 0x40, 0xe4, 0x04, 0xdb, 0x24, 0xa2, 0x65, 0x22, 0x90, 0x58, 0xfe, 0x79, 0xd3, 0x89, 0xdc, - 0xe6, 0x82, 0xeb, 0x45, 0x61, 0x14, 0x2c, 0x54, 0xbc, 0xe8, 0x56, 0xc0, 0x9f, 0x90, 0x5a, 0xa4, - 0x1e, 0x45, 0x0b, 0x6b, 0x74, 0xa5, 0xd3, 0x39, 0x6b, 0x63, 0xd0, 0x34, 0x66, 0x58, 0x17, 0xe5, - 0x58, 0x61, 0xd8, 0x1f, 0x61, 0xb7, 0x0f, 0x1b, 0xd3, 0xa3, 0x85, 0xb6, 0xf9, 0xd3, 0x51, 0x35, - 0x1b, 0x4c, 0x93, 0x59, 0xd6, 0x03, 0xe8, 0x74, 0x3f, 0xec, 0x69, 0xc3, 0xba, 0xef, 0x58, 0x1c, - 0x65, 0x07, 0x7d, 0x5b, 0xca, 0x40, 0xe5, 0xb9, 0x1e, 0xb7, 0xc6, 0x11, 0x4c, 0x52, 0x58, 0x2a, - 0x0d, 0x96, 0x68, 0xa0, 0x52, 0x15, 0xfb, 0x42, 0x4b, 0xa5, 0x21, 0x00, 0x38, 0xc6, 0xa1, 0xcc, - 0x94, 0xfa, 0x13, 0xce, 0xa2, 0x38, 0xa4, 0xa4, 0xc2, 0x0e, 0xb1, 0x86, 0x81, 0xae, 0x08, 0x81, - 0x02, 0xd7, 0x0b, 0x3c, 0x9e, 0x10, 0x28, 0xc8, 0xe1, 0xd2, 0xa4, 0x40, 0x57, 0x61, 0x54, 0x65, - 0xd3, 0xad, 0xf2, 0x24, 0xad, 0x62, 0x99, 0xad, 0xc4, 0xc5, 0x58, 0xc7, 0x41, 0x1b, 0x30, 0x19, - 0x72, 0x39, 0x9b, 0x8a, 0xf3, 0xcb, 0xe5, 0x95, 0x1f, 0x94, 0x56, 0x40, 0x35, 0x13, 0x7c, 0xc8, - 0x8a, 0xf8, 0xe9, 0x24, 0x1d, 0xc3, 0x93, 0x24, 0xd0, 0x6b, 0x30, 0xd1, 0xf4, 0x9d, 0xc6, 0x92, - 0xd3, 0x74, 0xbc, 0x3a, 0x1b, 0x9f, 0x11, 0x33, 0x29, 0xe3, 0x4d, 0x03, 0x8a, 0x13, 0xd8, 0x94, - 0x79, 0xd3, 0x4b, 0x44, 0x6c, 0x6a, 0xc7, 0xdb, 0x26, 0xa1, 0xc8, 0x8d, 0xca, 0x98, 0xb7, 0x9b, - 0x39, 0x38, 0x38, 0xb7, 0x36, 0x7a, 0x19, 0xc6, 0xe4, 0xe7, 0x6b, 0x71, 0x14, 0x62, 0xc7, 0x07, - 0x0d, 0x86, 0x0d, 0x4c, 0x74, 0x0f, 0x4e, 0xcb, 0xff, 0x1b, 0x81, 0xb3, 0xb5, 0xe5, 0xd6, 0x85, - 0x73, 0x31, 0xf7, 0x90, 0x5c, 0x94, 0x6e, 0x7c, 0x2b, 0x59, 0x48, 0x87, 0x07, 0xf3, 0x17, 0xc4, - 0xa8, 0x65, 0xc2, 0xd9, 0x24, 0x66, 0xd3, 0x47, 0x6b, 0x30, 0xb3, 0x43, 0x9c, 0x66, 0xb4, 0xb3, - 0xbc, 0x43, 0xea, 0xbb, 0x72, 0xd3, 0xb1, 0xe8, 0x0c, 0x9a, 0xbb, 0xc0, 0xf5, 0x34, 0x0a, 0xce, - 0xaa, 0x87, 0xde, 0x84, 0xd9, 0x76, 0x67, 0xb3, 0xe9, 0x86, 0x3b, 0xeb, 0x7e, 0xc4, 0x4c, 0x81, - 0x54, 0x72, 0x5e, 0x11, 0xc6, 0x41, 0xc5, 0xbf, 0xa8, 0xe6, 0xe0, 0xe1, 0x5c, 0x0a, 0xe8, 0x6d, - 0x38, 0x9d, 0x58, 0x0c, 0xc2, 0x91, 0x7d, 0x22, 0x3f, 0xd2, 0x7f, 0x2d, 0xab, 0x82, 0x88, 0x09, - 0x91, 0x05, 0xc2, 0xd9, 0x4d, 0xd0, 0xc7, 0x87, 0x16, 0x5a, 0x35, 0x9c, 0x9d, 0x8a, 0x6d, 0x96, - 0xb5, 0xf8, 0xab, 0x21, 0x36, 0xb0, 0xd0, 0x2b, 0x00, 0x6e, 0x7b, 0xd5, 0x69, 0xb9, 0x4d, 0xfa, - 0xc8, 0x9c, 0x61, 0x75, 0xe8, 0x83, 0x03, 0x2a, 0x55, 0x59, 0x4a, 0x4f, 0x75, 0xf1, 0x6f, 0x1f, - 0x6b, 0xd8, 0xa8, 0x0a, 0x13, 0xe2, 0xdf, 0xbe, 0x58, 0x0c, 0xd3, 0xca, 0xd3, 0x7c, 0x42, 0xd6, - 0x50, 0x2b, 0x00, 0x99, 0x25, 0x6c, 0xce, 0x13, 0xf5, 0xd1, 0x36, 0x9c, 0x13, 0xd9, 0x9f, 0x89, - 0xbe, 0xba, 0xe5, 0xec, 0x85, 0x2c, 0x30, 0xff, 0x08, 0x0f, 0x20, 0xb3, 0xd8, 0x0d, 0x11, 0x77, - 0xa7, 0x43, 0xb9, 0x02, 0x7d, 0x93, 0x70, 0xdf, 0xce, 0xd3, 0xdc, 0xa8, 0x89, 0x72, 0x05, 0x37, - 0x93, 0x40, 0x9c, 0xc6, 0x7f, 0x67, 0x66, 0x74, 0xbf, 0x63, 0xd1, 0xda, 0x1a, 0xab, 0x8d, 0x3e, - 0x0b, 0x63, 0x7a, 0x1b, 0x82, 0x6d, 0xb8, 0x94, 0xcd, 0x89, 0x6a, 0x1b, 0x9c, 0x33, 0xea, 0x6a, - 0x13, 0xeb, 0x30, 0x6c, 0x50, 0x44, 0xf5, 0x0c, 0x5f, 0xec, 0x2b, 0xfd, 0xb1, 0x25, 0xfd, 0x5b, - 0x91, 0x11, 0xc8, 0x5e, 0xb7, 0xe8, 0x26, 0x8c, 0xd4, 0x9b, 0x2e, 0xf1, 0xa2, 0x4a, 0xb5, 0x5b, - 0xf4, 0xb4, 0x65, 0x81, 0x23, 0x36, 0x82, 0x08, 0x79, 0xcf, 0xcb, 0xb0, 0xa2, 0x60, 0xff, 0x5a, - 0x01, 0xe6, 0x7b, 0xe4, 0x4f, 0x48, 0xe8, 0x94, 0xac, 0xbe, 0x74, 0x4a, 0x8b, 0x32, 0x85, 0xf4, - 0x7a, 0x42, 0x5c, 0x95, 0x48, 0x0f, 0x1d, 0x0b, 0xad, 0x92, 0xf8, 0x7d, 0xdb, 0xf8, 0xeb, 0x6a, - 0xa9, 0x81, 0x9e, 0x5e, 0x2a, 0x86, 0x3a, 0x7a, 0xb0, 0xff, 0x37, 0x6c, 0xae, 0x6a, 0xd1, 0xfe, - 0x4a, 0x01, 0x4e, 0xab, 0x21, 0xfc, 0xe6, 0x1d, 0xb8, 0xdb, 0xe9, 0x81, 0x3b, 0x06, 0xc5, 0xac, - 0x7d, 0x0b, 0x86, 0x78, 0x38, 0xb8, 0x3e, 0x78, 0xe7, 0x8b, 0x66, 0xe4, 0x54, 0xc5, 0xae, 0x19, - 0xd1, 0x53, 0xbf, 0xd7, 0x82, 0xc9, 0x8d, 0xe5, 0x6a, 0xcd, 0xaf, 0xef, 0x92, 0x68, 0x91, 0xbf, - 0x75, 0xb0, 0xe6, 0xb5, 0xfa, 0x30, 0xfc, 0x6d, 0x16, 0xe7, 0x7c, 0x01, 0x06, 0x76, 0xfc, 0x30, - 0x4a, 0x5a, 0x6d, 0x5c, 0xf7, 0xc3, 0x08, 0x33, 0x88, 0xfd, 0x7b, 0x16, 0x0c, 0x6e, 0x38, 0xae, - 0x17, 0x49, 0x09, 0xbf, 0x95, 0x23, 0xe1, 0xef, 0xe7, 0xbb, 0xd0, 0x4b, 0x30, 0x44, 0xb6, 0xb6, - 0x48, 0x3d, 0x12, 0xb3, 0x2a, 0x5d, 0xfe, 0x87, 0x56, 0x58, 0x29, 0x65, 0xe6, 0x58, 0x63, 0xfc, - 0x2f, 0x16, 0xc8, 0xe8, 0x2e, 0x94, 0x22, 0xb7, 0x45, 0x16, 0x1b, 0x0d, 0xa1, 0xf7, 0x7e, 0x88, - 0xb0, 0x05, 0x1b, 0x92, 0x00, 0x8e, 0x69, 0xd9, 0x5f, 0x2a, 0x00, 0xc4, 0x71, 0x74, 0x7a, 0x7d, - 0xe2, 0x52, 0x4a, 0x23, 0x7a, 0x29, 0x43, 0x23, 0x8a, 0x62, 0x82, 0x19, 0xea, 0x50, 0x35, 0x4c, - 0xc5, 0xbe, 0x86, 0x69, 0xe0, 0x28, 0xc3, 0xb4, 0x0c, 0xd3, 0x71, 0x1c, 0x20, 0x33, 0x0c, 0x1a, - 0xbb, 0xc9, 0x36, 0x92, 0x40, 0x9c, 0xc6, 0xb7, 0x09, 0x5c, 0x50, 0xe1, 0x50, 0xc4, 0x8d, 0xc6, - 0xcc, 0xaa, 0x75, 0x0d, 0x73, 0x8f, 0x71, 0x8a, 0x55, 0xbe, 0x85, 0x5c, 0x95, 0xef, 0x4f, 0x58, - 0x70, 0x2a, 0xd9, 0x0e, 0xf3, 0x73, 0xfd, 0xa2, 0x05, 0xa7, 0x99, 0xe2, 0x9b, 0xb5, 0x9a, 0x56, - 0xb3, 0xbf, 0xd8, 0x35, 0xc4, 0x4b, 0x4e, 0x8f, 0xe3, 0xd8, 0x12, 0x6b, 0x59, 0xa4, 0x71, 0x76, - 0x8b, 0xf6, 0x7f, 0x2a, 0xc0, 0x6c, 0x5e, 0x6c, 0x18, 0xe6, 0x75, 0xe1, 0xdc, 0xaf, 0xed, 0x92, - 0x7b, 0xc2, 0xb6, 0x3d, 0xf6, 0xba, 0xe0, 0xc5, 0x58, 0xc2, 0x93, 0x21, 0xf1, 0x0b, 0x7d, 0x86, - 0xc4, 0xdf, 0x81, 0xe9, 0x7b, 0x3b, 0xc4, 0xbb, 0xed, 0x85, 0x4e, 0xe4, 0x86, 0x5b, 0x2e, 0x53, - 0x12, 0xf3, 0x75, 0xf3, 0x8a, 0xb4, 0x40, 0xbf, 0x9b, 0x44, 0x38, 0x3c, 0x98, 0x3f, 0x67, 0x14, - 0xc4, 0x5d, 0xe6, 0x07, 0x09, 0x4e, 0x13, 0x4d, 0x67, 0x14, 0x18, 0x78, 0x84, 0x19, 0x05, 0xec, - 0x2f, 0x5a, 0x70, 0x36, 0x37, 0x8d, 0x29, 0xba, 0x0c, 0x23, 0x4e, 0xdb, 0xe5, 0x72, 0x76, 0x71, - 0x8c, 0x32, 0x79, 0x4e, 0xb5, 0xc2, 0xa5, 0xec, 0x0a, 0xaa, 0xd2, 0xab, 0x17, 0x72, 0xd3, 0xab, - 0xf7, 0xcc, 0x96, 0x6e, 0x7f, 0x8f, 0x05, 0xc2, 0x63, 0xb4, 0x8f, 0xb3, 0xfb, 0x53, 0x30, 0xb6, - 0x97, 0xce, 0x3a, 0x74, 0x21, 0xdf, 0x85, 0x56, 0xe4, 0x1a, 0x52, 0x0c, 0x99, 0x91, 0x61, 0xc8, - 0xa0, 0x65, 0x37, 0x40, 0x40, 0xcb, 0x84, 0x49, 0x91, 0x7b, 0xf7, 0xe6, 0x79, 0x80, 0x06, 0xc3, - 0xd5, 0x72, 0xd4, 0xab, 0x9b, 0xb9, 0xac, 0x20, 0x58, 0xc3, 0xb2, 0xff, 0x7d, 0x01, 0x46, 0x65, - 0x96, 0x9b, 0x8e, 0xd7, 0x8f, 0xac, 0xe7, 0x48, 0x69, 0x2f, 0xd1, 0x15, 0x28, 0x31, 0x61, 0x64, - 0x35, 0x16, 0x91, 0x29, 0x51, 0xc0, 0x9a, 0x04, 0xe0, 0x18, 0x87, 0xee, 0xa2, 0xb0, 0xb3, 0xc9, - 0xd0, 0x13, 0xfe, 0x8d, 0x35, 0x5e, 0x8c, 0x25, 0x1c, 0x7d, 0x02, 0xa6, 0x78, 0xbd, 0xc0, 0x6f, - 0x3b, 0xdb, 0x5c, 0x81, 0x31, 0xa8, 0x02, 0x13, 0x4c, 0xad, 0x25, 0x60, 0x87, 0x07, 0xf3, 0xa7, - 0x92, 0x65, 0x4c, 0x33, 0x97, 0xa2, 0xc2, 0xec, 0x94, 0x78, 0x23, 0x74, 0xf7, 0xa7, 0xcc, 0x9b, - 0x62, 0x10, 0xd6, 0xf1, 0xec, 0xcf, 0x02, 0x4a, 0xe7, 0xfb, 0x41, 0xaf, 0x73, 0xe3, 0x54, 0x37, - 0x20, 0x8d, 0x6e, 0x9a, 0x3a, 0xdd, 0xfd, 0x5e, 0xba, 0x26, 0xf1, 0x5a, 0x58, 0xd5, 0xb7, 0xff, - 0x6a, 0x11, 0xa6, 0x92, 0xce, 0xd8, 0xe8, 0x3a, 0x0c, 0x71, 0xd6, 0x43, 0x90, 0xef, 0x62, 0x08, - 0xa2, 0xb9, 0x70, 0xb3, 0x43, 0x58, 0x70, 0x2f, 0xa2, 0x3e, 0x7a, 0x13, 0x46, 0x1b, 0xfe, 0x3d, - 0xef, 0x9e, 0x13, 0x34, 0x16, 0xab, 0x15, 0xb1, 0x9c, 0x33, 0x5f, 0xa6, 0xe5, 0x18, 0x4d, 0x77, - 0x0b, 0x67, 0x4a, 0xcf, 0x18, 0x84, 0x75, 0x72, 0x68, 0x83, 0x05, 0x09, 0xdf, 0x72, 0xb7, 0xd7, - 0x9c, 0x76, 0x37, 0x4f, 0x85, 0x65, 0x89, 0xa4, 0x51, 0x1e, 0x17, 0x91, 0xc4, 0x39, 0x00, 0xc7, - 0x84, 0xd0, 0xe7, 0x61, 0x26, 0xcc, 0x91, 0x97, 0xe7, 0xa5, 0x7f, 0xeb, 0x26, 0x42, 0x5e, 0x7a, - 0xec, 0xc1, 0xc1, 0xfc, 0x4c, 0x96, 0x64, 0x3d, 0xab, 0x19, 0xfb, 0x47, 0x4e, 0x81, 0xb1, 0x89, - 0x8d, 0x6c, 0xa0, 0xd6, 0x31, 0x65, 0x03, 0xc5, 0x30, 0x42, 0x5a, 0xed, 0x68, 0xbf, 0xec, 0x06, - 0xdd, 0x72, 0x64, 0xaf, 0x08, 0x9c, 0x34, 0x4d, 0x09, 0xc1, 0x8a, 0x4e, 0x76, 0xca, 0xd6, 0xe2, - 0xd7, 0x31, 0x65, 0xeb, 0xc0, 0x09, 0xa6, 0x6c, 0x5d, 0x87, 0xe1, 0x6d, 0x37, 0xc2, 0xa4, 0xed, - 0x0b, 0xa6, 0x3f, 0x73, 0x1d, 0x5e, 0xe3, 0x28, 0xe9, 0xe4, 0x80, 0x02, 0x80, 0x25, 0x11, 0xf4, - 0xba, 0xda, 0x81, 0x43, 0xf9, 0x0f, 0xf3, 0xb4, 0xc5, 0x42, 0xe6, 0x1e, 0x14, 0x89, 0x59, 0x87, - 0x1f, 0x36, 0x31, 0xeb, 0xaa, 0x4c, 0xa7, 0x3a, 0x92, 0xef, 0x56, 0xc4, 0xb2, 0xa5, 0xf6, 0x48, - 0xa2, 0x7a, 0x47, 0x4f, 0x41, 0x5b, 0xca, 0x3f, 0x09, 0x54, 0x76, 0xd9, 0x3e, 0x13, 0xcf, 0x7e, - 0x8f, 0x05, 0xa7, 0xdb, 0x59, 0xd9, 0x98, 0x85, 0x72, 0xff, 0xa5, 0xbe, 0x13, 0x3e, 0x1b, 0x0d, - 0x32, 0xa1, 0x58, 0x26, 0x1a, 0xce, 0x6e, 0x8e, 0x0e, 0x74, 0xb0, 0xd9, 0x10, 0x4a, 0xe6, 0x8b, - 0x39, 0x19, 0x6c, 0xbb, 0xe4, 0xad, 0xdd, 0xc8, 0xc8, 0x96, 0xfa, 0xfe, 0xbc, 0x6c, 0xa9, 0x7d, - 0xe7, 0x48, 0x7d, 0x5d, 0xe5, 0xae, 0x1d, 0xcf, 0x5f, 0x4a, 0x3c, 0x33, 0x6d, 0xcf, 0x8c, 0xb5, - 0xaf, 0xab, 0x8c, 0xb5, 0x5d, 0x22, 0xc0, 0xf2, 0x7c, 0xb4, 0x3d, 0xf3, 0xd4, 0x6a, 0xb9, 0x66, - 0x27, 0x8f, 0x27, 0xd7, 0xac, 0x71, 0xd5, 0xf0, 0x74, 0xa7, 0xcf, 0xf4, 0xb8, 0x6a, 0x0c, 0xba, - 0xdd, 0x2f, 0x1b, 0x9e, 0x57, 0x77, 0xfa, 0xa1, 0xf2, 0xea, 0xde, 0xd1, 0xf3, 0xd4, 0xa2, 0x1e, - 0x89, 0x58, 0x29, 0x52, 0x9f, 0xd9, 0x69, 0xef, 0xe8, 0x17, 0xe0, 0x4c, 0x3e, 0x5d, 0x75, 0xcf, - 0xa5, 0xe9, 0x66, 0x5e, 0x81, 0xa9, 0xac, 0xb7, 0xa7, 0x4e, 0x26, 0xeb, 0xed, 0xe9, 0x63, 0xcf, - 0x7a, 0x7b, 0xe6, 0x04, 0xb2, 0xde, 0x3e, 0x76, 0x82, 0x59, 0x6f, 0xef, 0x30, 0x8b, 0x18, 0x1e, - 0x77, 0x47, 0x44, 0xac, 0xcd, 0x8e, 0x8e, 0x9a, 0x15, 0x9c, 0x87, 0x7f, 0x9c, 0x02, 0xe1, 0x98, - 0x54, 0x46, 0x36, 0xdd, 0xd9, 0x47, 0x90, 0x4d, 0x77, 0x3d, 0xce, 0xa6, 0x7b, 0x36, 0x7f, 0xaa, - 0x33, 0x7c, 0x28, 0x72, 0x72, 0xe8, 0xde, 0xd1, 0x73, 0xdf, 0x3e, 0xde, 0x45, 0xed, 0x91, 0x25, - 0x78, 0xec, 0x92, 0xf1, 0xf6, 0x35, 0x9e, 0xf1, 0xf6, 0x89, 0xfc, 0x93, 0x3c, 0x79, 0xdd, 0x19, - 0x79, 0x6e, 0x69, 0xbf, 0x54, 0x6c, 0x44, 0x16, 0x9b, 0x37, 0xa7, 0x5f, 0x2a, 0xb8, 0x62, 0xba, - 0x5f, 0x0a, 0x84, 0x63, 0x52, 0xf6, 0xf7, 0x15, 0xe0, 0x7c, 0xf7, 0xfd, 0x16, 0x4b, 0x53, 0xab, - 0xb1, 0x16, 0x38, 0x21, 0x4d, 0xe5, 0x6f, 0xb6, 0x18, 0xab, 0xef, 0x50, 0x6f, 0xd7, 0x60, 0x5a, - 0x39, 0x5f, 0x34, 0xdd, 0xfa, 0xfe, 0x7a, 0xfc, 0xf2, 0x55, 0x0e, 0xeb, 0xb5, 0x24, 0x02, 0x4e, - 0xd7, 0x41, 0x8b, 0x30, 0x69, 0x14, 0x56, 0xca, 0xe2, 0x6d, 0xa6, 0xc4, 0xb7, 0x35, 0x13, 0x8c, - 0x93, 0xf8, 0xf6, 0x97, 0x2d, 0x78, 0x2c, 0x27, 0x5d, 0x5c, 0xdf, 0x91, 0xcc, 0xb6, 0x60, 0xb2, - 0x6d, 0x56, 0xed, 0x11, 0x7c, 0xd1, 0x48, 0x4a, 0xa7, 0xfa, 0x9a, 0x00, 0xe0, 0x24, 0x51, 0xfb, - 0xcf, 0x2d, 0x38, 0xd7, 0xd5, 0x9a, 0x10, 0x61, 0x38, 0xb3, 0xdd, 0x0a, 0x9d, 0xe5, 0x80, 0x34, - 0x88, 0x17, 0xb9, 0x4e, 0xb3, 0xd6, 0x26, 0x75, 0x4d, 0x1e, 0xce, 0xcc, 0xf2, 0xae, 0xad, 0xd5, - 0x16, 0xd3, 0x18, 0x38, 0xa7, 0x26, 0x5a, 0x05, 0x94, 0x86, 0x88, 0x19, 0x66, 0x51, 0x9e, 0xd3, - 0xf4, 0x70, 0x46, 0x0d, 0xf4, 0x11, 0x18, 0x57, 0x56, 0x8a, 0xda, 0x8c, 0xb3, 0x83, 0x1d, 0xeb, - 0x00, 0x6c, 0xe2, 0x2d, 0x5d, 0xfe, 0x8d, 0x3f, 0x38, 0xff, 0xbe, 0xdf, 0xfa, 0x83, 0xf3, 0xef, - 0xfb, 0xdd, 0x3f, 0x38, 0xff, 0xbe, 0xef, 0x78, 0x70, 0xde, 0xfa, 0x8d, 0x07, 0xe7, 0xad, 0xdf, - 0x7a, 0x70, 0xde, 0xfa, 0xdd, 0x07, 0xe7, 0xad, 0xdf, 0x7f, 0x70, 0xde, 0xfa, 0xd2, 0x1f, 0x9e, - 0x7f, 0xdf, 0xa7, 0x0a, 0x7b, 0x57, 0xff, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x91, 0xbc, 0x24, - 0x52, 0x0c, 0x04, 0x01, 0x00, + // 14061 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xbd, 0x6b, 0x70, 0x1c, 0xd9, + 0x75, 0x18, 0xac, 0x9e, 0xc1, 0x6b, 0x0e, 0xde, 0x17, 0x24, 0x17, 0xc4, 0x2e, 0x09, 0x6e, 0x53, + 0xe2, 0x72, 0xb5, 0xbb, 0xa0, 0xb8, 0x0f, 0x69, 0xbd, 0x2b, 0xad, 0x05, 0x60, 0x00, 0x72, 0x96, + 0x04, 0x38, 0x7b, 0x07, 0x24, 0x25, 0x79, 0xa5, 0x52, 0x63, 0xe6, 0x02, 0x68, 0x61, 0xa6, 0x7b, + 0xb6, 0xbb, 0x07, 0x24, 0xf6, 0x93, 0xeb, 0xf3, 0x27, 0x3f, 0xe5, 0xc7, 0x57, 0xaa, 0x94, 0x2b, + 0x0f, 0xdb, 0xe5, 0x4a, 0x39, 0x4e, 0xd9, 0x8a, 0x93, 0x54, 0x1c, 0x3b, 0xb6, 0x63, 0x39, 0xb1, + 0x13, 0xe7, 0xe1, 0xe4, 0x87, 0xe3, 0xb8, 0x12, 0xcb, 0x55, 0xae, 0x20, 0x36, 0x9d, 0x94, 0x4b, + 0x3f, 0x62, 0x3b, 0xb1, 0xf3, 0x23, 0x88, 0x2b, 0x4e, 0xdd, 0x67, 0xdf, 0xdb, 0x8f, 0x99, 0x01, + 0x17, 0x84, 0x56, 0xaa, 0xfd, 0x37, 0x73, 0xcf, 0xb9, 0xe7, 0xde, 0xbe, 0xcf, 0x73, 0xcf, 0x13, + 0x5e, 0xdd, 0x7d, 0x39, 0x5c, 0x70, 0xfd, 0x2b, 0xbb, 0x9d, 0x4d, 0x12, 0x78, 0x24, 0x22, 0xe1, + 0x95, 0x3d, 0xe2, 0x35, 0xfc, 0xe0, 0x8a, 0x00, 0x38, 0x6d, 0xf7, 0x4a, 0xdd, 0x0f, 0xc8, 0x95, + 0xbd, 0xab, 0x57, 0xb6, 0x89, 0x47, 0x02, 0x27, 0x22, 0x8d, 0x85, 0x76, 0xe0, 0x47, 0x3e, 0x42, + 0x1c, 0x67, 0xc1, 0x69, 0xbb, 0x0b, 0x14, 0x67, 0x61, 0xef, 0xea, 0xdc, 0x73, 0xdb, 0x6e, 0xb4, + 0xd3, 0xd9, 0x5c, 0xa8, 0xfb, 0xad, 0x2b, 0xdb, 0xfe, 0xb6, 0x7f, 0x85, 0xa1, 0x6e, 0x76, 0xb6, + 0xd8, 0x3f, 0xf6, 0x87, 0xfd, 0xe2, 0x24, 0xe6, 0x5e, 0x8c, 0x9b, 0x69, 0x39, 0xf5, 0x1d, 0xd7, + 0x23, 0xc1, 0xfe, 0x95, 0xf6, 0xee, 0x36, 0x6b, 0x37, 0x20, 0xa1, 0xdf, 0x09, 0xea, 0x24, 0xd9, + 0x70, 0xd7, 0x5a, 0xe1, 0x95, 0x16, 0x89, 0x9c, 0x8c, 0xee, 0xce, 0x5d, 0xc9, 0xab, 0x15, 0x74, + 0xbc, 0xc8, 0x6d, 0xa5, 0x9b, 0xf9, 0x70, 0xaf, 0x0a, 0x61, 0x7d, 0x87, 0xb4, 0x9c, 0x54, 0xbd, + 0x17, 0xf2, 0xea, 0x75, 0x22, 0xb7, 0x79, 0xc5, 0xf5, 0xa2, 0x30, 0x0a, 0x92, 0x95, 0xec, 0xaf, + 0x5a, 0x70, 0x61, 0xf1, 0x6e, 0x6d, 0xa5, 0xe9, 0x84, 0x91, 0x5b, 0x5f, 0x6a, 0xfa, 0xf5, 0xdd, + 0x5a, 0xe4, 0x07, 0xe4, 0x8e, 0xdf, 0xec, 0xb4, 0x48, 0x8d, 0x0d, 0x04, 0x7a, 0x16, 0x46, 0xf6, + 0xd8, 0xff, 0x4a, 0x79, 0xd6, 0xba, 0x60, 0x5d, 0x2e, 0x2d, 0x4d, 0xfd, 0xc6, 0xc1, 0xfc, 0xfb, + 0x1e, 0x1c, 0xcc, 0x8f, 0xdc, 0x11, 0xe5, 0x58, 0x61, 0xa0, 0x4b, 0x30, 0xb4, 0x15, 0x6e, 0xec, + 0xb7, 0xc9, 0x6c, 0x81, 0xe1, 0x4e, 0x08, 0xdc, 0xa1, 0xd5, 0x1a, 0x2d, 0xc5, 0x02, 0x8a, 0xae, + 0x40, 0xa9, 0xed, 0x04, 0x91, 0x1b, 0xb9, 0xbe, 0x37, 0x5b, 0xbc, 0x60, 0x5d, 0x1e, 0x5c, 0x9a, + 0x16, 0xa8, 0xa5, 0xaa, 0x04, 0xe0, 0x18, 0x87, 0x76, 0x23, 0x20, 0x4e, 0xe3, 0x96, 0xd7, 0xdc, + 0x9f, 0x1d, 0xb8, 0x60, 0x5d, 0x1e, 0x89, 0xbb, 0x81, 0x45, 0x39, 0x56, 0x18, 0xf6, 0x8f, 0x14, + 0x60, 0x64, 0x71, 0x6b, 0xcb, 0xf5, 0xdc, 0x68, 0x1f, 0xdd, 0x81, 0x31, 0xcf, 0x6f, 0x10, 0xf9, + 0x9f, 0x7d, 0xc5, 0xe8, 0xf3, 0x17, 0x16, 0xd2, 0x4b, 0x69, 0x61, 0x5d, 0xc3, 0x5b, 0x9a, 0x7a, + 0x70, 0x30, 0x3f, 0xa6, 0x97, 0x60, 0x83, 0x0e, 0xc2, 0x30, 0xda, 0xf6, 0x1b, 0x8a, 0x6c, 0x81, + 0x91, 0x9d, 0xcf, 0x22, 0x5b, 0x8d, 0xd1, 0x96, 0x26, 0x1f, 0x1c, 0xcc, 0x8f, 0x6a, 0x05, 0x58, + 0x27, 0x82, 0x36, 0x61, 0x92, 0xfe, 0xf5, 0x22, 0x57, 0xd1, 0x2d, 0x32, 0xba, 0x17, 0xf3, 0xe8, + 0x6a, 0xa8, 0x4b, 0x33, 0x0f, 0x0e, 0xe6, 0x27, 0x13, 0x85, 0x38, 0x49, 0xd0, 0x7e, 0x1b, 0x26, + 0x16, 0xa3, 0xc8, 0xa9, 0xef, 0x90, 0x06, 0x9f, 0x41, 0xf4, 0x22, 0x0c, 0x78, 0x4e, 0x8b, 0x88, + 0xf9, 0xbd, 0x20, 0x06, 0x76, 0x60, 0xdd, 0x69, 0x91, 0xc3, 0x83, 0xf9, 0xa9, 0xdb, 0x9e, 0xfb, + 0x56, 0x47, 0xac, 0x0a, 0x5a, 0x86, 0x19, 0x36, 0x7a, 0x1e, 0xa0, 0x41, 0xf6, 0xdc, 0x3a, 0xa9, + 0x3a, 0xd1, 0x8e, 0x98, 0x6f, 0x24, 0xea, 0x42, 0x59, 0x41, 0xb0, 0x86, 0x65, 0xdf, 0x87, 0xd2, + 0xe2, 0x9e, 0xef, 0x36, 0xaa, 0x7e, 0x23, 0x44, 0xbb, 0x30, 0xd9, 0x0e, 0xc8, 0x16, 0x09, 0x54, + 0xd1, 0xac, 0x75, 0xa1, 0x78, 0x79, 0xf4, 0xf9, 0xcb, 0x99, 0x1f, 0x6b, 0xa2, 0xae, 0x78, 0x51, + 0xb0, 0xbf, 0xf4, 0x98, 0x68, 0x6f, 0x32, 0x01, 0xc5, 0x49, 0xca, 0xf6, 0xbf, 0x28, 0xc0, 0xe9, + 0xc5, 0xb7, 0x3b, 0x01, 0x29, 0xbb, 0xe1, 0x6e, 0x72, 0x85, 0x37, 0xdc, 0x70, 0x77, 0x3d, 0x1e, + 0x01, 0xb5, 0xb4, 0xca, 0xa2, 0x1c, 0x2b, 0x0c, 0xf4, 0x1c, 0x0c, 0xd3, 0xdf, 0xb7, 0x71, 0x45, + 0x7c, 0xf2, 0x8c, 0x40, 0x1e, 0x2d, 0x3b, 0x91, 0x53, 0xe6, 0x20, 0x2c, 0x71, 0xd0, 0x1a, 0x8c, + 0xd6, 0xd9, 0x86, 0xdc, 0x5e, 0xf3, 0x1b, 0x84, 0x4d, 0x66, 0x69, 0xe9, 0x19, 0x8a, 0xbe, 0x1c, + 0x17, 0x1f, 0x1e, 0xcc, 0xcf, 0xf2, 0xbe, 0x09, 0x12, 0x1a, 0x0c, 0xeb, 0xf5, 0x91, 0xad, 0xf6, + 0xd7, 0x00, 0xa3, 0x04, 0x19, 0x7b, 0xeb, 0xb2, 0xb6, 0x55, 0x06, 0xd9, 0x56, 0x19, 0xcb, 0xde, + 0x26, 0xe8, 0x2a, 0x0c, 0xec, 0xba, 0x5e, 0x63, 0x76, 0x88, 0xd1, 0x3a, 0x47, 0xe7, 0xfc, 0x86, + 0xeb, 0x35, 0x0e, 0x0f, 0xe6, 0xa7, 0x8d, 0xee, 0xd0, 0x42, 0xcc, 0x50, 0xed, 0x3f, 0xb3, 0x60, + 0x9e, 0xc1, 0x56, 0xdd, 0x26, 0xa9, 0x92, 0x20, 0x74, 0xc3, 0x88, 0x78, 0x91, 0x31, 0xa0, 0xcf, + 0x03, 0x84, 0xa4, 0x1e, 0x90, 0x48, 0x1b, 0x52, 0xb5, 0x30, 0x6a, 0x0a, 0x82, 0x35, 0x2c, 0x7a, + 0x20, 0x84, 0x3b, 0x4e, 0xc0, 0xd6, 0x97, 0x18, 0x58, 0x75, 0x20, 0xd4, 0x24, 0x00, 0xc7, 0x38, + 0xc6, 0x81, 0x50, 0xec, 0x75, 0x20, 0xa0, 0x8f, 0xc1, 0x64, 0xdc, 0x58, 0xd8, 0x76, 0xea, 0x72, + 0x00, 0xd9, 0x96, 0xa9, 0x99, 0x20, 0x9c, 0xc4, 0xb5, 0xff, 0x8e, 0x25, 0x16, 0x0f, 0xfd, 0xea, + 0x77, 0xf9, 0xb7, 0xda, 0xbf, 0x64, 0xc1, 0xf0, 0x92, 0xeb, 0x35, 0x5c, 0x6f, 0x1b, 0x7d, 0x16, + 0x46, 0xe8, 0xdd, 0xd4, 0x70, 0x22, 0x47, 0x9c, 0x7b, 0x1f, 0xd2, 0xf6, 0x96, 0xba, 0x2a, 0x16, + 0xda, 0xbb, 0xdb, 0xb4, 0x20, 0x5c, 0xa0, 0xd8, 0x74, 0xb7, 0xdd, 0xda, 0xfc, 0x1c, 0xa9, 0x47, + 0x6b, 0x24, 0x72, 0xe2, 0xcf, 0x89, 0xcb, 0xb0, 0xa2, 0x8a, 0x6e, 0xc0, 0x50, 0xe4, 0x04, 0xdb, + 0x24, 0x12, 0x07, 0x60, 0xe6, 0x41, 0xc5, 0x6b, 0x62, 0xba, 0x23, 0x89, 0x57, 0x27, 0xf1, 0xb5, + 0xb0, 0xc1, 0xaa, 0x62, 0x41, 0xc2, 0xfe, 0xa1, 0x61, 0x38, 0xbb, 0x5c, 0xab, 0xe4, 0xac, 0xab, + 0x4b, 0x30, 0xd4, 0x08, 0xdc, 0x3d, 0x12, 0x88, 0x71, 0x56, 0x54, 0xca, 0xac, 0x14, 0x0b, 0x28, + 0x7a, 0x19, 0xc6, 0xf8, 0x85, 0x74, 0xdd, 0xf1, 0x1a, 0x4d, 0x39, 0xc4, 0xa7, 0x04, 0xf6, 0xd8, + 0x1d, 0x0d, 0x86, 0x0d, 0xcc, 0x23, 0x2e, 0xaa, 0x4b, 0x89, 0xcd, 0x98, 0x77, 0xd9, 0x7d, 0xd1, + 0x82, 0x29, 0xde, 0xcc, 0x62, 0x14, 0x05, 0xee, 0x66, 0x27, 0x22, 0xe1, 0xec, 0x20, 0x3b, 0xe9, + 0x96, 0xb3, 0x46, 0x2b, 0x77, 0x04, 0x16, 0xee, 0x24, 0xa8, 0xf0, 0x43, 0x70, 0x56, 0xb4, 0x3b, + 0x95, 0x04, 0xe3, 0x54, 0xb3, 0xe8, 0x3b, 0x2d, 0x98, 0xab, 0xfb, 0x5e, 0x14, 0xf8, 0xcd, 0x26, + 0x09, 0xaa, 0x9d, 0xcd, 0xa6, 0x1b, 0xee, 0xf0, 0x75, 0x8a, 0xc9, 0x16, 0x3b, 0x09, 0x72, 0xe6, + 0x50, 0x21, 0x89, 0x39, 0x3c, 0xff, 0xe0, 0x60, 0x7e, 0x6e, 0x39, 0x97, 0x14, 0xee, 0xd2, 0x0c, + 0xda, 0x05, 0x44, 0xaf, 0xd2, 0x5a, 0xe4, 0x6c, 0x93, 0xb8, 0xf1, 0xe1, 0xfe, 0x1b, 0x3f, 0xf3, + 0xe0, 0x60, 0x1e, 0xad, 0xa7, 0x48, 0xe0, 0x0c, 0xb2, 0xe8, 0x2d, 0x38, 0x45, 0x4b, 0x53, 0xdf, + 0x3a, 0xd2, 0x7f, 0x73, 0xb3, 0x0f, 0x0e, 0xe6, 0x4f, 0xad, 0x67, 0x10, 0xc1, 0x99, 0xa4, 0xd1, + 0x77, 0x58, 0x70, 0x36, 0xfe, 0xfc, 0x95, 0xfb, 0x6d, 0xc7, 0x6b, 0xc4, 0x0d, 0x97, 0xfa, 0x6f, + 0x98, 0x9e, 0xc9, 0x67, 0x97, 0xf3, 0x28, 0xe1, 0xfc, 0x46, 0xe6, 0x96, 0xe1, 0x74, 0xe6, 0x6a, + 0x41, 0x53, 0x50, 0xdc, 0x25, 0x9c, 0x0b, 0x2a, 0x61, 0xfa, 0x13, 0x9d, 0x82, 0xc1, 0x3d, 0xa7, + 0xd9, 0x11, 0x1b, 0x05, 0xf3, 0x3f, 0xaf, 0x14, 0x5e, 0xb6, 0xec, 0x7f, 0x59, 0x84, 0xc9, 0xe5, + 0x5a, 0xe5, 0xa1, 0x76, 0xa1, 0x7e, 0x0d, 0x15, 0xba, 0x5e, 0x43, 0xf1, 0xa5, 0x56, 0xcc, 0xbd, + 0xd4, 0xfe, 0xdf, 0x8c, 0x2d, 0x34, 0xc0, 0xb6, 0xd0, 0xb7, 0xe4, 0x6c, 0xa1, 0x63, 0xde, 0x38, + 0x7b, 0x39, 0xab, 0x68, 0x90, 0x4d, 0x66, 0x26, 0xc7, 0x72, 0xd3, 0xaf, 0x3b, 0xcd, 0xe4, 0xd1, + 0x77, 0xc4, 0xa5, 0x74, 0x3c, 0xf3, 0x58, 0x87, 0xb1, 0x65, 0xa7, 0xed, 0x6c, 0xba, 0x4d, 0x37, + 0x72, 0x49, 0x88, 0x9e, 0x82, 0xa2, 0xd3, 0x68, 0x30, 0x6e, 0xab, 0xb4, 0x74, 0xfa, 0xc1, 0xc1, + 0x7c, 0x71, 0xb1, 0x41, 0xaf, 0x7d, 0x50, 0x58, 0xfb, 0x98, 0x62, 0xa0, 0x0f, 0xc2, 0x40, 0x23, + 0xf0, 0xdb, 0xb3, 0x05, 0x86, 0x49, 0x77, 0xdd, 0x40, 0x39, 0xf0, 0xdb, 0x09, 0x54, 0x86, 0x63, + 0xff, 0x5a, 0x01, 0x9e, 0x58, 0x26, 0xed, 0x9d, 0xd5, 0x5a, 0xce, 0xf9, 0x7d, 0x19, 0x46, 0x5a, + 0xbe, 0xe7, 0x46, 0x7e, 0x10, 0x8a, 0xa6, 0xd9, 0x8a, 0x58, 0x13, 0x65, 0x58, 0x41, 0xd1, 0x05, + 0x18, 0x68, 0xc7, 0x4c, 0xe5, 0x98, 0x64, 0x48, 0x19, 0x3b, 0xc9, 0x20, 0x14, 0xa3, 0x13, 0x92, + 0x40, 0xac, 0x18, 0x85, 0x71, 0x3b, 0x24, 0x01, 0x66, 0x90, 0xf8, 0x66, 0xa6, 0x77, 0xb6, 0x38, + 0xa1, 0x13, 0x37, 0x33, 0x85, 0x60, 0x0d, 0x0b, 0x55, 0xa1, 0x14, 0x26, 0x66, 0xb6, 0xaf, 0x6d, + 0x3a, 0xce, 0xae, 0x6e, 0x35, 0x93, 0x31, 0x11, 0xe3, 0x46, 0x19, 0xea, 0x79, 0x75, 0x7f, 0xa5, + 0x00, 0x88, 0x0f, 0xe1, 0x37, 0xd8, 0xc0, 0xdd, 0x4e, 0x0f, 0x5c, 0xff, 0x5b, 0xe2, 0xb8, 0x46, + 0xef, 0xcf, 0x2d, 0x78, 0x62, 0xd9, 0xf5, 0x1a, 0x24, 0xc8, 0x59, 0x80, 0x8f, 0xe6, 0x2d, 0x7b, + 0x34, 0xa6, 0xc1, 0x58, 0x62, 0x03, 0xc7, 0xb0, 0xc4, 0xec, 0x3f, 0xb1, 0x00, 0xf1, 0xcf, 0x7e, + 0xd7, 0x7d, 0xec, 0xed, 0xf4, 0xc7, 0x1e, 0xc3, 0xb2, 0xb0, 0x6f, 0xc2, 0xc4, 0x72, 0xd3, 0x25, + 0x5e, 0x54, 0xa9, 0x2e, 0xfb, 0xde, 0x96, 0xbb, 0x8d, 0x5e, 0x81, 0x89, 0xc8, 0x6d, 0x11, 0xbf, + 0x13, 0xd5, 0x48, 0xdd, 0xf7, 0xd8, 0x4b, 0xd2, 0xba, 0x3c, 0xb8, 0x84, 0x1e, 0x1c, 0xcc, 0x4f, + 0x6c, 0x18, 0x10, 0x9c, 0xc0, 0xb4, 0x7f, 0x8f, 0x8e, 0x9f, 0xdf, 0x6a, 0xfb, 0x1e, 0xf1, 0xa2, + 0x65, 0xdf, 0x6b, 0x70, 0x89, 0xc3, 0x2b, 0x30, 0x10, 0xd1, 0xf1, 0xe0, 0x63, 0x77, 0x49, 0x6e, + 0x14, 0x3a, 0x0a, 0x87, 0x07, 0xf3, 0x67, 0xd2, 0x35, 0xd8, 0x38, 0xb1, 0x3a, 0xe8, 0x5b, 0x60, + 0x28, 0x8c, 0x9c, 0xa8, 0x13, 0x8a, 0xd1, 0x7c, 0x52, 0x8e, 0x66, 0x8d, 0x95, 0x1e, 0x1e, 0xcc, + 0x4f, 0xaa, 0x6a, 0xbc, 0x08, 0x8b, 0x0a, 0xe8, 0x69, 0x18, 0x6e, 0x91, 0x30, 0x74, 0xb6, 0xe5, + 0x6d, 0x38, 0x29, 0xea, 0x0e, 0xaf, 0xf1, 0x62, 0x2c, 0xe1, 0xe8, 0x22, 0x0c, 0x92, 0x20, 0xf0, + 0x03, 0xb1, 0x47, 0xc7, 0x05, 0xe2, 0xe0, 0x0a, 0x2d, 0xc4, 0x1c, 0x66, 0xff, 0x3b, 0x0b, 0x26, + 0x55, 0x5f, 0x79, 0x5b, 0x27, 0xf0, 0x2a, 0xf8, 0x14, 0x40, 0x5d, 0x7e, 0x60, 0xc8, 0x6e, 0x8f, + 0xd1, 0xe7, 0x2f, 0x65, 0x5e, 0xd4, 0xa9, 0x61, 0x8c, 0x29, 0xab, 0xa2, 0x10, 0x6b, 0xd4, 0xec, + 0x7f, 0x62, 0xc1, 0x4c, 0xe2, 0x8b, 0x6e, 0xba, 0x61, 0x84, 0xde, 0x4c, 0x7d, 0xd5, 0x42, 0x7f, + 0x5f, 0x45, 0x6b, 0xb3, 0x6f, 0x52, 0x4b, 0x59, 0x96, 0x68, 0x5f, 0x74, 0x1d, 0x06, 0xdd, 0x88, + 0xb4, 0xe4, 0xc7, 0x5c, 0xec, 0xfa, 0x31, 0xbc, 0x57, 0xf1, 0x8c, 0x54, 0x68, 0x4d, 0xcc, 0x09, + 0xd8, 0xbf, 0x56, 0x84, 0x12, 0x5f, 0xb6, 0x6b, 0x4e, 0xfb, 0x04, 0xe6, 0xe2, 0x19, 0x28, 0xb9, + 0xad, 0x56, 0x27, 0x72, 0x36, 0xc5, 0x71, 0x3e, 0xc2, 0xb7, 0x56, 0x45, 0x16, 0xe2, 0x18, 0x8e, + 0x2a, 0x30, 0xc0, 0xba, 0xc2, 0xbf, 0xf2, 0xa9, 0xec, 0xaf, 0x14, 0x7d, 0x5f, 0x28, 0x3b, 0x91, + 0xc3, 0x39, 0x29, 0x75, 0x8f, 0xd0, 0x22, 0xcc, 0x48, 0x20, 0x07, 0x60, 0xd3, 0xf5, 0x9c, 0x60, + 0x9f, 0x96, 0xcd, 0x16, 0x19, 0xc1, 0xe7, 0xba, 0x13, 0x5c, 0x52, 0xf8, 0x9c, 0xac, 0xfa, 0xb0, + 0x18, 0x80, 0x35, 0xa2, 0x73, 0x1f, 0x81, 0x92, 0x42, 0x3e, 0x0a, 0x43, 0x34, 0xf7, 0x31, 0x98, + 0x4c, 0xb4, 0xd5, 0xab, 0xfa, 0x98, 0xce, 0x4f, 0xfd, 0x32, 0x3b, 0x32, 0x44, 0xaf, 0x57, 0xbc, + 0x3d, 0x71, 0xe4, 0xbe, 0x0d, 0xa7, 0x9a, 0x19, 0x27, 0x99, 0x98, 0xd7, 0xfe, 0x4f, 0xbe, 0x27, + 0xc4, 0x67, 0x9f, 0xca, 0x82, 0xe2, 0xcc, 0x36, 0x28, 0x8f, 0xe0, 0xb7, 0xe9, 0x06, 0x71, 0x9a, + 0x3a, 0xbb, 0x7d, 0x4b, 0x94, 0x61, 0x05, 0xa5, 0xe7, 0xdd, 0x29, 0xd5, 0xf9, 0x1b, 0x64, 0xbf, + 0x46, 0x9a, 0xa4, 0x1e, 0xf9, 0xc1, 0xd7, 0xb5, 0xfb, 0xe7, 0xf8, 0xe8, 0xf3, 0xe3, 0x72, 0x54, + 0x10, 0x28, 0xde, 0x20, 0xfb, 0x7c, 0x2a, 0xf4, 0xaf, 0x2b, 0x76, 0xfd, 0xba, 0x9f, 0xb5, 0x60, + 0x5c, 0x7d, 0xdd, 0x09, 0x9c, 0x0b, 0x4b, 0xe6, 0xb9, 0x70, 0xae, 0xeb, 0x02, 0xcf, 0x39, 0x11, + 0xbe, 0x52, 0x80, 0xb3, 0x0a, 0x87, 0xbe, 0x0d, 0xf8, 0x1f, 0xb1, 0xaa, 0xae, 0x40, 0xc9, 0x53, + 0x52, 0x2b, 0xcb, 0x14, 0x17, 0xc5, 0x32, 0xab, 0x18, 0x87, 0xb2, 0x78, 0x5e, 0x2c, 0x5a, 0x1a, + 0xd3, 0xc5, 0xb9, 0x42, 0x74, 0xbb, 0x04, 0xc5, 0x8e, 0xdb, 0x10, 0x17, 0xcc, 0x87, 0xe4, 0x68, + 0xdf, 0xae, 0x94, 0x0f, 0x0f, 0xe6, 0x9f, 0xcc, 0x53, 0x25, 0xd0, 0x9b, 0x2d, 0x5c, 0xb8, 0x5d, + 0x29, 0x63, 0x5a, 0x19, 0x2d, 0xc2, 0xa4, 0xd4, 0x96, 0xdc, 0xa1, 0xec, 0x96, 0xef, 0x89, 0x7b, + 0x48, 0xc9, 0x64, 0xb1, 0x09, 0xc6, 0x49, 0x7c, 0x54, 0x86, 0xa9, 0xdd, 0xce, 0x26, 0x69, 0x92, + 0x88, 0x7f, 0xf0, 0x0d, 0xc2, 0x25, 0x96, 0xa5, 0xf8, 0x65, 0x76, 0x23, 0x01, 0xc7, 0xa9, 0x1a, + 0xf6, 0x5f, 0xb2, 0xfb, 0x40, 0x8c, 0x5e, 0x35, 0xf0, 0xe9, 0xc2, 0xa2, 0xd4, 0xbf, 0x9e, 0xcb, + 0xb9, 0x9f, 0x55, 0x71, 0x83, 0xec, 0x6f, 0xf8, 0x94, 0x33, 0xcf, 0x5e, 0x15, 0xc6, 0x9a, 0x1f, + 0xe8, 0xba, 0xe6, 0x7f, 0xbe, 0x00, 0xa7, 0xd5, 0x08, 0x18, 0x4c, 0xe0, 0x37, 0xfa, 0x18, 0x5c, + 0x85, 0xd1, 0x06, 0xd9, 0x72, 0x3a, 0xcd, 0x48, 0x89, 0xcf, 0x07, 0xb9, 0x0a, 0xa5, 0x1c, 0x17, + 0x63, 0x1d, 0xe7, 0x08, 0xc3, 0xf6, 0x3f, 0x47, 0xd9, 0x45, 0x1c, 0x39, 0x74, 0x8d, 0xab, 0x5d, + 0x63, 0xe5, 0xee, 0x9a, 0x8b, 0x30, 0xe8, 0xb6, 0x28, 0x63, 0x56, 0x30, 0xf9, 0xad, 0x0a, 0x2d, + 0xc4, 0x1c, 0x86, 0x3e, 0x00, 0xc3, 0x75, 0xbf, 0xd5, 0x72, 0xbc, 0x06, 0xbb, 0xf2, 0x4a, 0x4b, + 0xa3, 0x94, 0x77, 0x5b, 0xe6, 0x45, 0x58, 0xc2, 0xd0, 0x13, 0x30, 0xe0, 0x04, 0xdb, 0x5c, 0x86, + 0x51, 0x5a, 0x1a, 0xa1, 0x2d, 0x2d, 0x06, 0xdb, 0x21, 0x66, 0xa5, 0xf4, 0x09, 0x76, 0xcf, 0x0f, + 0x76, 0x5d, 0x6f, 0xbb, 0xec, 0x06, 0x62, 0x4b, 0xa8, 0xbb, 0xf0, 0xae, 0x82, 0x60, 0x0d, 0x0b, + 0xad, 0xc2, 0x60, 0xdb, 0x0f, 0xa2, 0x70, 0x76, 0x88, 0x0d, 0xf7, 0x93, 0x39, 0x07, 0x11, 0xff, + 0xda, 0xaa, 0x1f, 0x44, 0xf1, 0x07, 0xd0, 0x7f, 0x21, 0xe6, 0xd5, 0xd1, 0x4d, 0x18, 0x26, 0xde, + 0xde, 0x6a, 0xe0, 0xb7, 0x66, 0x67, 0xf2, 0x29, 0xad, 0x70, 0x14, 0xbe, 0xcc, 0x62, 0x1e, 0x55, + 0x14, 0x63, 0x49, 0x02, 0x7d, 0x0b, 0x14, 0x89, 0xb7, 0x37, 0x3b, 0xcc, 0x28, 0xcd, 0xe5, 0x50, + 0xba, 0xe3, 0x04, 0xf1, 0x99, 0xbf, 0xe2, 0xed, 0x61, 0x5a, 0x07, 0x7d, 0x12, 0x4a, 0xf2, 0xc0, + 0x08, 0x85, 0xb0, 0x2e, 0x73, 0xc1, 0xca, 0x63, 0x06, 0x93, 0xb7, 0x3a, 0x6e, 0x40, 0x5a, 0xc4, + 0x8b, 0xc2, 0xf8, 0x84, 0x94, 0xd0, 0x10, 0xc7, 0xd4, 0xd0, 0x27, 0xa5, 0x84, 0x78, 0xcd, 0xef, + 0x78, 0x51, 0x38, 0x5b, 0x62, 0xdd, 0xcb, 0xd4, 0xdd, 0xdd, 0x89, 0xf1, 0x92, 0x22, 0x64, 0x5e, + 0x19, 0x1b, 0xa4, 0xd0, 0xa7, 0x61, 0x9c, 0xff, 0xe7, 0x1a, 0xb0, 0x70, 0xf6, 0x34, 0xa3, 0x7d, + 0x21, 0x9f, 0x36, 0x47, 0x5c, 0x3a, 0x2d, 0x88, 0x8f, 0xeb, 0xa5, 0x21, 0x36, 0xa9, 0x21, 0x0c, + 0xe3, 0x4d, 0x77, 0x8f, 0x78, 0x24, 0x0c, 0xab, 0x81, 0xbf, 0x49, 0x66, 0x81, 0x0d, 0xcc, 0xd9, + 0x6c, 0x8d, 0x99, 0xbf, 0x49, 0x96, 0xa6, 0x29, 0xcd, 0x9b, 0x7a, 0x1d, 0x6c, 0x92, 0x40, 0xb7, + 0x61, 0x82, 0xbe, 0xd8, 0xdc, 0x98, 0xe8, 0x68, 0x2f, 0xa2, 0xec, 0x5d, 0x85, 0x8d, 0x4a, 0x38, + 0x41, 0x04, 0xdd, 0x82, 0xb1, 0x30, 0x72, 0x82, 0xa8, 0xd3, 0xe6, 0x44, 0xcf, 0xf4, 0x22, 0xca, + 0x14, 0xae, 0x35, 0xad, 0x0a, 0x36, 0x08, 0xa0, 0xd7, 0xa1, 0xd4, 0x74, 0xb7, 0x48, 0x7d, 0xbf, + 0xde, 0x24, 0xb3, 0x63, 0x8c, 0x5a, 0xe6, 0xa1, 0x72, 0x53, 0x22, 0x71, 0x3e, 0x57, 0xfd, 0xc5, + 0x71, 0x75, 0x74, 0x07, 0xce, 0x44, 0x24, 0x68, 0xb9, 0x9e, 0x43, 0x0f, 0x03, 0xf1, 0xb4, 0x62, + 0x8a, 0xcc, 0x71, 0xb6, 0xdb, 0xce, 0x8b, 0xd9, 0x38, 0xb3, 0x91, 0x89, 0x85, 0x73, 0x6a, 0xa3, + 0xfb, 0x30, 0x9b, 0x01, 0xf1, 0x9b, 0x6e, 0x7d, 0x7f, 0xf6, 0x14, 0xa3, 0xfc, 0x51, 0x41, 0x79, + 0x76, 0x23, 0x07, 0xef, 0xb0, 0x0b, 0x0c, 0xe7, 0x52, 0x47, 0xb7, 0x60, 0x92, 0x9d, 0x40, 0xd5, + 0x4e, 0xb3, 0x29, 0x1a, 0x9c, 0x60, 0x0d, 0x7e, 0x40, 0xde, 0xc7, 0x15, 0x13, 0x7c, 0x78, 0x30, + 0x0f, 0xf1, 0x3f, 0x9c, 0xac, 0x8d, 0x36, 0x99, 0xce, 0xac, 0x13, 0xb8, 0xd1, 0x3e, 0x3d, 0x37, + 0xc8, 0xfd, 0x68, 0x76, 0xb2, 0xab, 0xbc, 0x42, 0x47, 0x55, 0x8a, 0x35, 0xbd, 0x10, 0x27, 0x09, + 0xd2, 0x23, 0x35, 0x8c, 0x1a, 0xae, 0x37, 0x3b, 0xc5, 0xdf, 0x25, 0xf2, 0x44, 0xaa, 0xd1, 0x42, + 0xcc, 0x61, 0x4c, 0x5f, 0x46, 0x7f, 0xdc, 0xa2, 0x37, 0xd7, 0x34, 0x43, 0x8c, 0xf5, 0x65, 0x12, + 0x80, 0x63, 0x1c, 0xca, 0x4c, 0x46, 0xd1, 0xfe, 0x2c, 0x62, 0xa8, 0xea, 0x60, 0xd9, 0xd8, 0xf8, + 0x24, 0xa6, 0xe5, 0xf6, 0x26, 0x4c, 0xa8, 0x83, 0x90, 0x8d, 0x09, 0x9a, 0x87, 0x41, 0xc6, 0x3e, + 0x09, 0xe9, 0x5a, 0x89, 0x76, 0x81, 0xb1, 0x56, 0x98, 0x97, 0xb3, 0x2e, 0xb8, 0x6f, 0x93, 0xa5, + 0xfd, 0x88, 0xf0, 0x37, 0x7d, 0x51, 0xeb, 0x82, 0x04, 0xe0, 0x18, 0xc7, 0xfe, 0x3f, 0x9c, 0x0d, + 0x8d, 0x4f, 0xdb, 0x3e, 0xee, 0x97, 0x67, 0x61, 0x64, 0xc7, 0x0f, 0x23, 0x8a, 0xcd, 0xda, 0x18, + 0x8c, 0x19, 0xcf, 0xeb, 0xa2, 0x1c, 0x2b, 0x0c, 0xf4, 0x2a, 0x8c, 0xd7, 0xf5, 0x06, 0xc4, 0xe5, + 0xa8, 0x8e, 0x11, 0xa3, 0x75, 0x6c, 0xe2, 0xa2, 0x97, 0x61, 0x84, 0xd9, 0x80, 0xd4, 0xfd, 0xa6, + 0xe0, 0xda, 0xe4, 0x0d, 0x3f, 0x52, 0x15, 0xe5, 0x87, 0xda, 0x6f, 0xac, 0xb0, 0xd1, 0x25, 0x18, + 0xa2, 0x5d, 0xa8, 0x54, 0xc5, 0xb5, 0xa4, 0x04, 0x45, 0xd7, 0x59, 0x29, 0x16, 0x50, 0xfb, 0xaf, + 0x14, 0xb4, 0x51, 0xa6, 0xef, 0x61, 0x82, 0xaa, 0x30, 0x7c, 0xcf, 0x71, 0x23, 0xd7, 0xdb, 0x16, + 0xfc, 0xc7, 0xd3, 0x5d, 0xef, 0x28, 0x56, 0xe9, 0x2e, 0xaf, 0xc0, 0x6f, 0x51, 0xf1, 0x07, 0x4b, + 0x32, 0x94, 0x62, 0xd0, 0xf1, 0x3c, 0x4a, 0xb1, 0xd0, 0x2f, 0x45, 0xcc, 0x2b, 0x70, 0x8a, 0xe2, + 0x0f, 0x96, 0x64, 0xd0, 0x9b, 0x00, 0x72, 0x87, 0x91, 0x86, 0xb0, 0xbd, 0x78, 0xb6, 0x37, 0xd1, + 0x0d, 0x55, 0x67, 0x69, 0x82, 0xde, 0xd1, 0xf1, 0x7f, 0xac, 0xd1, 0xb3, 0x23, 0xc6, 0xa7, 0xa5, + 0x3b, 0x83, 0xbe, 0x8d, 0x2e, 0x71, 0x27, 0x88, 0x48, 0x63, 0x31, 0x12, 0x83, 0xf3, 0xc1, 0xfe, + 0x1e, 0x29, 0x1b, 0x6e, 0x8b, 0xe8, 0xdb, 0x41, 0x10, 0xc1, 0x31, 0x3d, 0xfb, 0x17, 0x8b, 0x30, + 0x9b, 0xd7, 0x5d, 0xba, 0xe8, 0xc8, 0x7d, 0x37, 0x5a, 0xa6, 0xec, 0x95, 0x65, 0x2e, 0xba, 0x15, + 0x51, 0x8e, 0x15, 0x06, 0x9d, 0xfd, 0xd0, 0xdd, 0x96, 0x6f, 0xcc, 0xc1, 0x78, 0xf6, 0x6b, 0xac, + 0x14, 0x0b, 0x28, 0xc5, 0x0b, 0x88, 0x13, 0x0a, 0xe3, 0x1e, 0x6d, 0x95, 0x60, 0x56, 0x8a, 0x05, + 0x54, 0x97, 0x76, 0x0d, 0xf4, 0x90, 0x76, 0x19, 0x43, 0x34, 0x78, 0xbc, 0x43, 0x84, 0x3e, 0x03, + 0xb0, 0xe5, 0x7a, 0x6e, 0xb8, 0xc3, 0xa8, 0x0f, 0x1d, 0x99, 0xba, 0x62, 0xce, 0x56, 0x15, 0x15, + 0xac, 0x51, 0x44, 0x2f, 0xc1, 0xa8, 0xda, 0x80, 0x95, 0x32, 0xd3, 0x74, 0x6a, 0x96, 0x23, 0xf1, + 0x69, 0x54, 0xc6, 0x3a, 0x9e, 0xfd, 0xb9, 0xe4, 0x7a, 0x11, 0x3b, 0x40, 0x1b, 0x5f, 0xab, 0xdf, + 0xf1, 0x2d, 0x74, 0x1f, 0x5f, 0xfb, 0x6b, 0x45, 0x98, 0x34, 0x1a, 0xeb, 0x84, 0x7d, 0x9c, 0x59, + 0xd7, 0xe8, 0x01, 0xee, 0x44, 0x44, 0xec, 0x3f, 0xbb, 0xf7, 0x56, 0xd1, 0x0f, 0x79, 0xba, 0x03, + 0x78, 0x7d, 0xf4, 0x19, 0x28, 0x35, 0x9d, 0x90, 0x49, 0xce, 0x88, 0xd8, 0x77, 0xfd, 0x10, 0x8b, + 0x1f, 0x26, 0x4e, 0x18, 0x69, 0xb7, 0x26, 0xa7, 0x1d, 0x93, 0xa4, 0x37, 0x0d, 0xe5, 0x4f, 0xa4, + 0xf5, 0x98, 0xea, 0x04, 0x65, 0x62, 0xf6, 0x31, 0x87, 0xa1, 0x97, 0x61, 0x2c, 0x20, 0x6c, 0x55, + 0x2c, 0x53, 0x6e, 0x8e, 0x2d, 0xb3, 0xc1, 0x98, 0xed, 0xc3, 0x1a, 0x0c, 0x1b, 0x98, 0xf1, 0xdb, + 0x60, 0xa8, 0xcb, 0xdb, 0xe0, 0x69, 0x18, 0x66, 0x3f, 0xd4, 0x0a, 0x50, 0xb3, 0x51, 0xe1, 0xc5, + 0x58, 0xc2, 0x93, 0x0b, 0x66, 0xa4, 0xbf, 0x05, 0x43, 0x5f, 0x1f, 0x62, 0x51, 0x33, 0x2d, 0xf3, + 0x08, 0x3f, 0xe5, 0xc4, 0x92, 0xc7, 0x12, 0x66, 0x7f, 0x10, 0x26, 0xca, 0x0e, 0x69, 0xf9, 0xde, + 0x8a, 0xd7, 0x68, 0xfb, 0xae, 0x17, 0xa1, 0x59, 0x18, 0x60, 0x97, 0x08, 0x3f, 0x02, 0x06, 0x68, + 0x43, 0x98, 0x95, 0xd8, 0xdb, 0x70, 0xba, 0xec, 0xdf, 0xf3, 0xee, 0x39, 0x41, 0x63, 0xb1, 0x5a, + 0xd1, 0xde, 0xd7, 0xeb, 0xf2, 0x7d, 0xc7, 0x8d, 0xb6, 0x32, 0x8f, 0x5e, 0xad, 0x26, 0x67, 0x6b, + 0x57, 0xdd, 0x26, 0xc9, 0x91, 0x82, 0xfc, 0xb5, 0x82, 0xd1, 0x52, 0x8c, 0xaf, 0xb4, 0x5a, 0x56, + 0xae, 0x56, 0xeb, 0x0d, 0x18, 0xd9, 0x72, 0x49, 0xb3, 0x81, 0xc9, 0x96, 0x58, 0x89, 0x4f, 0xe5, + 0xdb, 0xa1, 0xac, 0x52, 0x4c, 0x29, 0xf5, 0xe2, 0xaf, 0xc3, 0x55, 0x51, 0x19, 0x2b, 0x32, 0x68, + 0x17, 0xa6, 0xe4, 0x83, 0x41, 0x42, 0xc5, 0xba, 0x7c, 0xba, 0xdb, 0x2b, 0xc4, 0x24, 0x7e, 0xea, + 0xc1, 0xc1, 0xfc, 0x14, 0x4e, 0x90, 0xc1, 0x29, 0xc2, 0xf4, 0x39, 0xd8, 0xa2, 0x27, 0xf0, 0x00, + 0x1b, 0x7e, 0xf6, 0x1c, 0x64, 0x2f, 0x5b, 0x56, 0x6a, 0xff, 0x98, 0x05, 0x8f, 0xa5, 0x46, 0x46, + 0xbc, 0xf0, 0x8f, 0x79, 0x16, 0x92, 0x2f, 0xee, 0x42, 0xef, 0x17, 0xb7, 0xfd, 0x77, 0x2d, 0x38, + 0xb5, 0xd2, 0x6a, 0x47, 0xfb, 0x65, 0xd7, 0x54, 0x41, 0x7d, 0x04, 0x86, 0x5a, 0xa4, 0xe1, 0x76, + 0x5a, 0x62, 0xe6, 0xe6, 0xe5, 0x29, 0xb5, 0xc6, 0x4a, 0x0f, 0x0f, 0xe6, 0xc7, 0x6b, 0x91, 0x1f, + 0x38, 0xdb, 0x84, 0x17, 0x60, 0x81, 0xce, 0xce, 0x7a, 0xf7, 0x6d, 0x72, 0xd3, 0x6d, 0xb9, 0xd2, + 0xae, 0xa8, 0xab, 0xcc, 0x6e, 0x41, 0x0e, 0xe8, 0xc2, 0x1b, 0x1d, 0xc7, 0x8b, 0xdc, 0x68, 0x5f, + 0x68, 0x8f, 0x24, 0x11, 0x1c, 0xd3, 0xb3, 0xbf, 0x6a, 0xc1, 0xa4, 0x5c, 0xf7, 0x8b, 0x8d, 0x46, + 0x40, 0xc2, 0x10, 0xcd, 0x41, 0xc1, 0x6d, 0x8b, 0x5e, 0x82, 0xe8, 0x65, 0xa1, 0x52, 0xc5, 0x05, + 0xb7, 0x2d, 0xd9, 0x32, 0x76, 0x10, 0x16, 0x4d, 0x45, 0xda, 0x75, 0x51, 0x8e, 0x15, 0x06, 0xba, + 0x0c, 0x23, 0x9e, 0xdf, 0xe0, 0xb6, 0x5d, 0xfc, 0x4a, 0x63, 0x0b, 0x6c, 0x5d, 0x94, 0x61, 0x05, + 0x45, 0x55, 0x28, 0x71, 0xb3, 0xa7, 0x78, 0xd1, 0xf6, 0x65, 0x3c, 0xc5, 0xbe, 0x6c, 0x43, 0xd6, + 0xc4, 0x31, 0x11, 0xfb, 0x57, 0x2d, 0x18, 0x93, 0x5f, 0xd6, 0x27, 0xcf, 0x49, 0xb7, 0x56, 0xcc, + 0x6f, 0xc6, 0x5b, 0x8b, 0xf2, 0x8c, 0x0c, 0x62, 0xb0, 0x8a, 0xc5, 0x23, 0xb1, 0x8a, 0x57, 0x61, + 0xd4, 0x69, 0xb7, 0xab, 0x26, 0x9f, 0xc9, 0x96, 0xd2, 0x62, 0x5c, 0x8c, 0x75, 0x1c, 0xfb, 0x47, + 0x0b, 0x30, 0x21, 0xbf, 0xa0, 0xd6, 0xd9, 0x0c, 0x49, 0x84, 0x36, 0xa0, 0xe4, 0xf0, 0x59, 0x22, + 0x72, 0x91, 0x5f, 0xcc, 0x96, 0x23, 0x18, 0x53, 0x1a, 0x5f, 0xf8, 0x8b, 0xb2, 0x36, 0x8e, 0x09, + 0xa1, 0x26, 0x4c, 0x7b, 0x7e, 0xc4, 0x0e, 0x7f, 0x05, 0xef, 0xa6, 0xda, 0x49, 0x52, 0x3f, 0x2b, + 0xa8, 0x4f, 0xaf, 0x27, 0xa9, 0xe0, 0x34, 0x61, 0xb4, 0x22, 0x65, 0x33, 0xc5, 0x7c, 0x61, 0x80, + 0x3e, 0x71, 0xd9, 0xa2, 0x19, 0xfb, 0x57, 0x2c, 0x28, 0x49, 0xb4, 0x93, 0xd0, 0xe2, 0xad, 0xc1, + 0x70, 0xc8, 0x26, 0x41, 0x0e, 0x8d, 0xdd, 0xad, 0xe3, 0x7c, 0xbe, 0xe2, 0x3b, 0x8d, 0xff, 0x0f, + 0xb1, 0xa4, 0xc1, 0x44, 0xf3, 0xaa, 0xfb, 0xef, 0x12, 0xd1, 0xbc, 0xea, 0x4f, 0xce, 0xa5, 0xf4, + 0x47, 0xac, 0xcf, 0x9a, 0xac, 0x8b, 0xb2, 0x5e, 0xed, 0x80, 0x6c, 0xb9, 0xf7, 0x93, 0xac, 0x57, + 0x95, 0x95, 0x62, 0x01, 0x45, 0x6f, 0xc2, 0x58, 0x5d, 0xca, 0x64, 0xe3, 0x1d, 0x7e, 0xa9, 0xab, + 0x7e, 0x40, 0xa9, 0x92, 0xb8, 0x2c, 0x64, 0x59, 0xab, 0x8f, 0x0d, 0x6a, 0xa6, 0x19, 0x41, 0xb1, + 0x97, 0x19, 0x41, 0x4c, 0x37, 0x5f, 0xa9, 0xfe, 0xe3, 0x16, 0x0c, 0x71, 0x59, 0x5c, 0x7f, 0xa2, + 0x50, 0x4d, 0xb3, 0x16, 0x8f, 0xdd, 0x1d, 0x5a, 0x28, 0x34, 0x65, 0x68, 0x0d, 0x4a, 0xec, 0x07, + 0x93, 0x25, 0x16, 0xf3, 0xad, 0xee, 0x79, 0xab, 0x7a, 0x07, 0xef, 0xc8, 0x6a, 0x38, 0xa6, 0x60, + 0xff, 0x70, 0x91, 0x9e, 0x6e, 0x31, 0xaa, 0x71, 0xe9, 0x5b, 0x8f, 0xee, 0xd2, 0x2f, 0x3c, 0xaa, + 0x4b, 0x7f, 0x1b, 0x26, 0xeb, 0x9a, 0x1e, 0x2e, 0x9e, 0xc9, 0xcb, 0x5d, 0x17, 0x89, 0xa6, 0xb2, + 0xe3, 0x52, 0x96, 0x65, 0x93, 0x08, 0x4e, 0x52, 0x45, 0xdf, 0x06, 0x63, 0x7c, 0x9e, 0x45, 0x2b, + 0xdc, 0x12, 0xe3, 0x03, 0xf9, 0xeb, 0x45, 0x6f, 0x82, 0x4b, 0xe5, 0xb4, 0xea, 0xd8, 0x20, 0x66, + 0xff, 0xa9, 0x05, 0x68, 0xa5, 0xbd, 0x43, 0x5a, 0x24, 0x70, 0x9a, 0xb1, 0x38, 0xfd, 0xfb, 0x2d, + 0x98, 0x25, 0xa9, 0xe2, 0x65, 0xbf, 0xd5, 0x12, 0x8f, 0x96, 0x9c, 0x77, 0xf5, 0x4a, 0x4e, 0x1d, + 0xe5, 0x96, 0x30, 0x9b, 0x87, 0x81, 0x73, 0xdb, 0x43, 0x6b, 0x30, 0xc3, 0x6f, 0x49, 0x05, 0xd0, + 0x6c, 0xaf, 0x1f, 0x17, 0x84, 0x67, 0x36, 0xd2, 0x28, 0x38, 0xab, 0x9e, 0xfd, 0x5d, 0x63, 0x90, + 0xdb, 0x8b, 0xf7, 0xf4, 0x08, 0xef, 0xe9, 0x11, 0xde, 0xd3, 0x23, 0xbc, 0xa7, 0x47, 0x78, 0x4f, + 0x8f, 0xf0, 0x4d, 0xaf, 0x47, 0xf8, 0x63, 0x0b, 0x66, 0xd2, 0xd7, 0xc0, 0x49, 0x30, 0xe6, 0x1d, + 0x98, 0x49, 0xdf, 0x75, 0x5d, 0xed, 0xec, 0xd2, 0xfd, 0x8c, 0xef, 0xbd, 0x8c, 0x6f, 0xc0, 0x59, + 0xf4, 0xed, 0x5f, 0xb7, 0xe0, 0xb4, 0x42, 0x36, 0x5e, 0xfa, 0x9f, 0x87, 0x19, 0x7e, 0xbe, 0x2c, + 0x37, 0x1d, 0xb7, 0xb5, 0x41, 0x5a, 0xed, 0xa6, 0x13, 0x49, 0x33, 0x83, 0xab, 0x99, 0x5b, 0x35, + 0x61, 0xa2, 0x6b, 0x54, 0x5c, 0x7a, 0x8c, 0xf6, 0x2b, 0x03, 0x80, 0xb3, 0x9a, 0x31, 0x8c, 0x52, + 0x0b, 0x3d, 0xcd, 0x84, 0x7f, 0x71, 0x04, 0x06, 0x57, 0xf6, 0x88, 0x17, 0x9d, 0xc0, 0x44, 0xd5, + 0x61, 0xc2, 0xf5, 0xf6, 0xfc, 0xe6, 0x1e, 0x69, 0x70, 0xf8, 0x51, 0x1e, 0xfa, 0x67, 0x04, 0xe9, + 0x89, 0x8a, 0x41, 0x02, 0x27, 0x48, 0x3e, 0x0a, 0x61, 0xfb, 0x35, 0x18, 0xe2, 0x77, 0x9c, 0x90, + 0xb4, 0x67, 0x5e, 0x69, 0x6c, 0x10, 0xc5, 0xcd, 0x1d, 0x2b, 0x02, 0xf8, 0x1d, 0x2a, 0xaa, 0xa3, + 0xcf, 0xc1, 0xc4, 0x96, 0x1b, 0x84, 0xd1, 0x86, 0xdb, 0x22, 0x61, 0xe4, 0xb4, 0xda, 0x0f, 0x21, + 0x5c, 0x57, 0xe3, 0xb0, 0x6a, 0x50, 0xc2, 0x09, 0xca, 0x68, 0x1b, 0xc6, 0x9b, 0x8e, 0xde, 0xd4, + 0xf0, 0x91, 0x9b, 0x52, 0x97, 0xe7, 0x4d, 0x9d, 0x10, 0x36, 0xe9, 0xd2, 0xd3, 0xa6, 0xce, 0xe4, + 0xc3, 0x23, 0x4c, 0x6a, 0xa2, 0x4e, 0x1b, 0x2e, 0x18, 0xe6, 0x30, 0xca, 0x07, 0x32, 0xfb, 0xe1, + 0x92, 0xc9, 0x07, 0x6a, 0x56, 0xc2, 0x9f, 0x85, 0x12, 0xa1, 0x43, 0x48, 0x09, 0x8b, 0xfb, 0xf7, + 0x4a, 0x7f, 0x7d, 0x5d, 0x73, 0xeb, 0x81, 0x6f, 0xaa, 0x35, 0x56, 0x24, 0x25, 0x1c, 0x13, 0x45, + 0xcb, 0x30, 0x14, 0x92, 0xc0, 0x25, 0xa1, 0xb8, 0x89, 0xbb, 0x4c, 0x23, 0x43, 0xe3, 0xae, 0x37, + 0xfc, 0x37, 0x16, 0x55, 0xe9, 0xf2, 0x72, 0x98, 0xc4, 0x97, 0xdd, 0x95, 0xda, 0xf2, 0x5a, 0x64, + 0xa5, 0x58, 0x40, 0xd1, 0xeb, 0x30, 0x1c, 0x90, 0x26, 0xd3, 0x9b, 0x8d, 0xf7, 0xbf, 0xc8, 0xb9, + 0x1a, 0x8e, 0xd7, 0xc3, 0x92, 0x00, 0xba, 0x01, 0x28, 0x20, 0x94, 0x8f, 0x74, 0xbd, 0x6d, 0x65, + 0x55, 0x2b, 0xee, 0x21, 0x75, 0x6e, 0xe1, 0x18, 0x43, 0x7a, 0x41, 0xe1, 0x8c, 0x6a, 0xe8, 0x1a, + 0x4c, 0xab, 0xd2, 0x8a, 0x17, 0x46, 0x0e, 0x3d, 0xff, 0x27, 0x19, 0x2d, 0x25, 0xc6, 0xc1, 0x49, + 0x04, 0x9c, 0xae, 0x63, 0x7f, 0xd9, 0x02, 0x3e, 0xce, 0x27, 0x20, 0xbc, 0x78, 0xcd, 0x14, 0x5e, + 0x9c, 0xcd, 0x9d, 0xb9, 0x1c, 0xc1, 0xc5, 0x97, 0x2d, 0x18, 0xd5, 0x66, 0x36, 0x5e, 0xb3, 0x56, + 0x97, 0x35, 0xdb, 0x81, 0x29, 0xba, 0xd2, 0x6f, 0x6d, 0x86, 0x24, 0xd8, 0x23, 0x0d, 0xb6, 0x30, + 0x0b, 0x0f, 0xb7, 0x30, 0x95, 0x05, 0xdf, 0xcd, 0x04, 0x41, 0x9c, 0x6a, 0xc2, 0xfe, 0xac, 0xec, + 0xaa, 0x32, 0x78, 0xac, 0xab, 0x39, 0x4f, 0x18, 0x3c, 0xaa, 0x59, 0xc5, 0x31, 0x0e, 0xdd, 0x6a, + 0x3b, 0x7e, 0x18, 0x25, 0x0d, 0x1e, 0xaf, 0xfb, 0x61, 0x84, 0x19, 0xc4, 0x7e, 0x01, 0x60, 0xe5, + 0x3e, 0xa9, 0xf3, 0x15, 0xab, 0xbf, 0xad, 0xac, 0xfc, 0xb7, 0x95, 0xfd, 0xdb, 0x16, 0x4c, 0xac, + 0x2e, 0x1b, 0xf7, 0xdc, 0x02, 0x00, 0x7f, 0x10, 0xde, 0xbd, 0xbb, 0x2e, 0xad, 0x05, 0xb8, 0xc2, + 0x57, 0x95, 0x62, 0x0d, 0x03, 0x9d, 0x85, 0x62, 0xb3, 0xe3, 0x09, 0xe9, 0xea, 0x30, 0xe5, 0x1e, + 0x6e, 0x76, 0x3c, 0x4c, 0xcb, 0x34, 0x8f, 0x8b, 0x62, 0xdf, 0x1e, 0x17, 0x3d, 0x23, 0x1f, 0xa0, + 0x79, 0x18, 0xbc, 0x77, 0xcf, 0x6d, 0x70, 0xff, 0x52, 0x61, 0xc9, 0x70, 0xf7, 0x6e, 0xa5, 0x1c, + 0x62, 0x5e, 0x6e, 0x7f, 0xa9, 0x08, 0x73, 0xab, 0x4d, 0x72, 0xff, 0x1d, 0xfa, 0xd8, 0xf6, 0xeb, + 0x2f, 0x72, 0x34, 0x39, 0xd5, 0x51, 0x7d, 0x82, 0x7a, 0x8f, 0xc7, 0x16, 0x0c, 0x73, 0x7b, 0x3f, + 0xe9, 0x71, 0xfb, 0x6a, 0x56, 0xeb, 0xf9, 0x03, 0xb2, 0xc0, 0xed, 0x06, 0x85, 0xc3, 0xa0, 0xba, + 0x30, 0x45, 0x29, 0x96, 0xc4, 0xe7, 0x5e, 0x81, 0x31, 0x1d, 0xf3, 0x48, 0xde, 0x79, 0xff, 0x5f, + 0x11, 0xa6, 0x68, 0x0f, 0x1e, 0xe9, 0x44, 0xdc, 0x4e, 0x4f, 0xc4, 0x71, 0x7b, 0x68, 0xf5, 0x9e, + 0x8d, 0x37, 0x93, 0xb3, 0x71, 0x35, 0x6f, 0x36, 0x4e, 0x7a, 0x0e, 0xbe, 0xd3, 0x82, 0x99, 0xd5, + 0xa6, 0x5f, 0xdf, 0x4d, 0x78, 0x51, 0xbd, 0x04, 0xa3, 0xf4, 0x38, 0x0e, 0x0d, 0x07, 0x7f, 0x23, + 0xe4, 0x83, 0x00, 0x61, 0x1d, 0x4f, 0xab, 0x76, 0xfb, 0x76, 0xa5, 0x9c, 0x15, 0x29, 0x42, 0x80, + 0xb0, 0x8e, 0x67, 0xff, 0xa6, 0x05, 0xe7, 0xae, 0x2d, 0xaf, 0xc4, 0x4b, 0x31, 0x15, 0xac, 0xe2, + 0x12, 0x0c, 0xb5, 0x1b, 0x5a, 0x57, 0x62, 0xe9, 0x73, 0x99, 0xf5, 0x42, 0x40, 0xdf, 0x2d, 0x81, + 0x58, 0x7e, 0xda, 0x82, 0x99, 0x6b, 0x6e, 0x44, 0x6f, 0xd7, 0x64, 0xd8, 0x04, 0x7a, 0xbd, 0x86, + 0x6e, 0xe4, 0x07, 0xfb, 0xc9, 0xb0, 0x09, 0x58, 0x41, 0xb0, 0x86, 0xc5, 0x5b, 0xde, 0x73, 0x99, + 0xa5, 0x79, 0xc1, 0xd4, 0xc3, 0x61, 0x51, 0x8e, 0x15, 0x06, 0xfd, 0xb0, 0x86, 0x1b, 0x30, 0x11, + 0xe6, 0xbe, 0x38, 0x61, 0xd5, 0x87, 0x95, 0x25, 0x00, 0xc7, 0x38, 0xf4, 0x35, 0x37, 0x7f, 0xad, + 0xd9, 0x09, 0x23, 0x12, 0x6c, 0x85, 0x39, 0xa7, 0xe3, 0x0b, 0x50, 0x22, 0x52, 0x61, 0x20, 0x7a, + 0xad, 0x38, 0x46, 0xa5, 0x49, 0xe0, 0xd1, 0x1b, 0x14, 0x5e, 0x1f, 0x3e, 0x99, 0x47, 0x73, 0xaa, + 0x5b, 0x05, 0x44, 0xf4, 0xb6, 0xf4, 0x70, 0x16, 0xcc, 0x2f, 0x7e, 0x25, 0x05, 0xc5, 0x19, 0x35, + 0xec, 0x1f, 0xb3, 0xe0, 0xb4, 0xfa, 0xe0, 0x77, 0xdd, 0x67, 0xda, 0x3f, 0x57, 0x80, 0xf1, 0xeb, + 0x1b, 0x1b, 0xd5, 0x6b, 0x24, 0x12, 0xd7, 0x76, 0x6f, 0x33, 0x00, 0xac, 0x69, 0x33, 0xbb, 0x3d, + 0xe6, 0x3a, 0x91, 0xdb, 0x5c, 0xe0, 0x51, 0x91, 0x16, 0x2a, 0x5e, 0x74, 0x2b, 0xa8, 0x45, 0x81, + 0xeb, 0x6d, 0x67, 0xea, 0x3f, 0x25, 0x73, 0x51, 0xcc, 0x63, 0x2e, 0xd0, 0x0b, 0x30, 0xc4, 0xc2, + 0x32, 0xc9, 0x49, 0x78, 0x5c, 0xbd, 0x85, 0x58, 0xe9, 0xe1, 0xc1, 0x7c, 0xe9, 0x36, 0xae, 0xf0, + 0x3f, 0x58, 0xa0, 0xa2, 0xdb, 0x30, 0xba, 0x13, 0x45, 0xed, 0xeb, 0xc4, 0x69, 0xd0, 0xa7, 0x3b, + 0x3f, 0x0e, 0xcf, 0x67, 0x1d, 0x87, 0x74, 0x10, 0x38, 0x5a, 0x7c, 0x82, 0xc4, 0x65, 0x21, 0xd6, + 0xe9, 0xd8, 0x35, 0x80, 0x18, 0x76, 0x4c, 0x8a, 0x1c, 0xfb, 0x0f, 0x2d, 0x18, 0xe6, 0x11, 0x32, + 0x02, 0xf4, 0x51, 0x18, 0x20, 0xf7, 0x49, 0x5d, 0x70, 0xbc, 0x99, 0x1d, 0x8e, 0x39, 0x2d, 0x2e, + 0x90, 0xa6, 0xff, 0x31, 0xab, 0x85, 0xae, 0xc3, 0x30, 0xed, 0xed, 0x35, 0x15, 0x2e, 0xe4, 0xc9, + 0xbc, 0x2f, 0x56, 0xd3, 0xce, 0x99, 0x33, 0x51, 0x84, 0x65, 0x75, 0xa6, 0x3d, 0xaf, 0xb7, 0x6b, + 0xf4, 0xc4, 0x8e, 0xba, 0x31, 0x16, 0x1b, 0xcb, 0x55, 0x8e, 0x24, 0xa8, 0x71, 0xed, 0xb9, 0x2c, + 0xc4, 0x31, 0x11, 0x7b, 0x03, 0x4a, 0x74, 0x52, 0x17, 0x9b, 0xae, 0xd3, 0xdd, 0x20, 0xe0, 0x19, + 0x28, 0x49, 0x75, 0x7f, 0x28, 0x3c, 0xe3, 0x19, 0x55, 0x69, 0x0d, 0x10, 0xe2, 0x18, 0x6e, 0x6f, + 0xc1, 0x29, 0x66, 0xbc, 0xe9, 0x44, 0x3b, 0xc6, 0x1e, 0xeb, 0xbd, 0x98, 0x9f, 0x15, 0x0f, 0x48, + 0x3e, 0x33, 0xb3, 0x9a, 0xf3, 0xe9, 0x98, 0xa4, 0x18, 0x3f, 0x26, 0xed, 0xaf, 0x0d, 0xc0, 0xe3, + 0x95, 0x5a, 0x7e, 0xf0, 0x94, 0x97, 0x61, 0x8c, 0xf3, 0xa5, 0x74, 0x69, 0x3b, 0x4d, 0xd1, 0xae, + 0x92, 0x44, 0x6f, 0x68, 0x30, 0x6c, 0x60, 0xa2, 0x73, 0x50, 0x74, 0xdf, 0xf2, 0x92, 0xae, 0x59, + 0x95, 0x37, 0xd6, 0x31, 0x2d, 0xa7, 0x60, 0xca, 0xe2, 0xf2, 0xbb, 0x43, 0x81, 0x15, 0x9b, 0xfb, + 0x1a, 0x4c, 0xb8, 0x61, 0x3d, 0x74, 0x2b, 0x1e, 0x3d, 0x67, 0xb4, 0x93, 0x4a, 0x09, 0x37, 0x68, + 0xa7, 0x15, 0x14, 0x27, 0xb0, 0xb5, 0x8b, 0x6c, 0xb0, 0x6f, 0x36, 0xb9, 0xa7, 0xab, 0x38, 0x7d, + 0x01, 0xb4, 0xd9, 0xd7, 0x85, 0x4c, 0xa5, 0x20, 0x5e, 0x00, 0xfc, 0x83, 0x43, 0x2c, 0x61, 0xf4, + 0xe5, 0x58, 0xdf, 0x71, 0xda, 0x8b, 0x9d, 0x68, 0xa7, 0xec, 0x86, 0x75, 0x7f, 0x8f, 0x04, 0xfb, + 0xec, 0xd1, 0x3f, 0x12, 0xbf, 0x1c, 0x15, 0x60, 0xf9, 0xfa, 0x62, 0x95, 0x62, 0xe2, 0x74, 0x1d, + 0xb4, 0x08, 0x93, 0xb2, 0xb0, 0x46, 0x42, 0x76, 0x85, 0x8d, 0x32, 0x32, 0xca, 0x59, 0x4a, 0x14, + 0x2b, 0x22, 0x49, 0x7c, 0x93, 0x93, 0x86, 0xe3, 0xe0, 0xa4, 0x3f, 0x02, 0xe3, 0xae, 0xe7, 0x46, + 0xae, 0x13, 0xf9, 0x5c, 0x1f, 0xc6, 0xdf, 0xf7, 0x4c, 0xd0, 0x5f, 0xd1, 0x01, 0xd8, 0xc4, 0xb3, + 0xff, 0xcb, 0x00, 0x4c, 0xb3, 0x69, 0x7b, 0x6f, 0x85, 0x7d, 0x33, 0xad, 0xb0, 0xdb, 0xe9, 0x15, + 0x76, 0x1c, 0x4f, 0x84, 0x87, 0x5e, 0x66, 0x9f, 0x83, 0x92, 0xf2, 0x0f, 0x93, 0x0e, 0xa2, 0x56, + 0x8e, 0x83, 0x68, 0x6f, 0xee, 0x43, 0x9a, 0xd8, 0x15, 0x33, 0x4d, 0xec, 0xfe, 0x86, 0x05, 0xb1, + 0x82, 0x07, 0x5d, 0x87, 0x52, 0xdb, 0x67, 0x96, 0xa3, 0x81, 0x34, 0xc7, 0x7e, 0x3c, 0xf3, 0xa2, + 0xe2, 0x97, 0x22, 0xff, 0xf8, 0xaa, 0xac, 0x81, 0xe3, 0xca, 0x68, 0x09, 0x86, 0xdb, 0x01, 0xa9, + 0x45, 0x2c, 0x86, 0x4a, 0x4f, 0x3a, 0x7c, 0x8d, 0x70, 0x7c, 0x2c, 0x2b, 0xda, 0x3f, 0x6f, 0x01, + 0x70, 0x2b, 0x36, 0xc7, 0xdb, 0x26, 0x27, 0x20, 0xb5, 0x2e, 0xc3, 0x40, 0xd8, 0x26, 0xf5, 0x6e, + 0x36, 0xbd, 0x71, 0x7f, 0x6a, 0x6d, 0x52, 0x8f, 0x07, 0x9c, 0xfe, 0xc3, 0xac, 0xb6, 0xfd, 0xdd, + 0x00, 0x13, 0x31, 0x5a, 0x25, 0x22, 0x2d, 0xf4, 0x9c, 0x11, 0x53, 0xe1, 0x6c, 0x22, 0xa6, 0x42, + 0x89, 0x61, 0x6b, 0x02, 0xd2, 0xcf, 0x41, 0xb1, 0xe5, 0xdc, 0x17, 0x12, 0xb0, 0x67, 0xba, 0x77, + 0x83, 0xd2, 0x5f, 0x58, 0x73, 0xee, 0xf3, 0x47, 0xe2, 0x33, 0x72, 0x81, 0xac, 0x39, 0xf7, 0x0f, + 0xb9, 0xe5, 0x2e, 0x3b, 0xa4, 0x6e, 0xba, 0x61, 0xf4, 0x85, 0xff, 0x1c, 0xff, 0x67, 0xcb, 0x8e, + 0x36, 0xc2, 0xda, 0x72, 0x3d, 0x61, 0xa0, 0xd5, 0x57, 0x5b, 0xae, 0x97, 0x6c, 0xcb, 0xf5, 0xfa, + 0x68, 0xcb, 0xf5, 0xd0, 0xdb, 0x30, 0x2c, 0xec, 0x27, 0x45, 0x0c, 0xa3, 0x2b, 0x7d, 0xb4, 0x27, + 0xcc, 0x2f, 0x79, 0x9b, 0x57, 0xe4, 0x23, 0x58, 0x94, 0xf6, 0x6c, 0x57, 0x36, 0x88, 0xfe, 0xaa, + 0x05, 0x13, 0xe2, 0x37, 0x26, 0x6f, 0x75, 0x48, 0x18, 0x09, 0xde, 0xf3, 0xc3, 0xfd, 0xf7, 0x41, + 0x54, 0xe4, 0x5d, 0xf9, 0xb0, 0x3c, 0x66, 0x4d, 0x60, 0xcf, 0x1e, 0x25, 0x7a, 0x81, 0xfe, 0xbe, + 0x05, 0xa7, 0x5a, 0xce, 0x7d, 0xde, 0x22, 0x2f, 0xc3, 0x4e, 0xe4, 0xfa, 0xc2, 0x0e, 0xe1, 0xa3, + 0xfd, 0x4d, 0x7f, 0xaa, 0x3a, 0xef, 0xa4, 0x54, 0x96, 0x9e, 0xca, 0x42, 0xe9, 0xd9, 0xd5, 0xcc, + 0x7e, 0xcd, 0x6d, 0xc1, 0x88, 0x5c, 0x6f, 0x19, 0xa2, 0x86, 0xb2, 0xce, 0x58, 0x1f, 0xd9, 0x7c, + 0x55, 0x8f, 0x55, 0x40, 0xdb, 0x11, 0x6b, 0xed, 0x91, 0xb6, 0xf3, 0x39, 0x18, 0xd3, 0xd7, 0xd8, + 0x23, 0x6d, 0xeb, 0x2d, 0x98, 0xc9, 0x58, 0x4b, 0x8f, 0xb4, 0xc9, 0x7b, 0x70, 0x36, 0x77, 0x7d, + 0x3c, 0xca, 0x86, 0xed, 0x9f, 0xb3, 0xf4, 0x73, 0xf0, 0x04, 0x54, 0x07, 0xcb, 0xa6, 0xea, 0xe0, + 0x7c, 0xf7, 0x9d, 0x93, 0xa3, 0x3f, 0x78, 0x53, 0xef, 0x34, 0x3d, 0xd5, 0xd1, 0xeb, 0x30, 0xd4, + 0xa4, 0x25, 0xd2, 0x0a, 0xd7, 0xee, 0xbd, 0x23, 0x63, 0x5e, 0x8a, 0x95, 0x87, 0x58, 0x50, 0xb0, + 0x7f, 0xc9, 0x82, 0x81, 0x13, 0x18, 0x09, 0x6c, 0x8e, 0xc4, 0x73, 0xb9, 0xa4, 0x45, 0x78, 0xe5, + 0x05, 0xec, 0xdc, 0x5b, 0xb9, 0x1f, 0x11, 0x2f, 0x64, 0x4f, 0xc5, 0xcc, 0x81, 0xf9, 0x49, 0x0b, + 0x66, 0x6e, 0xfa, 0x4e, 0x63, 0xc9, 0x69, 0x3a, 0x5e, 0x9d, 0x04, 0x15, 0x6f, 0xfb, 0x48, 0x26, + 0xe4, 0x85, 0x9e, 0x26, 0xe4, 0xcb, 0xd2, 0x02, 0x6b, 0x20, 0x7f, 0xfe, 0x28, 0x23, 0x99, 0x8c, + 0x32, 0x63, 0xd8, 0x0a, 0xef, 0x00, 0xd2, 0x7b, 0x29, 0x1c, 0x7a, 0x30, 0x0c, 0xbb, 0xbc, 0xbf, + 0x62, 0x12, 0x9f, 0xca, 0x66, 0xf0, 0x52, 0x9f, 0xa7, 0xb9, 0xaa, 0xf0, 0x02, 0x2c, 0x09, 0xd9, + 0x2f, 0x43, 0x66, 0x54, 0x80, 0xde, 0xc2, 0x07, 0xfb, 0x93, 0x30, 0xcd, 0x6a, 0x1e, 0xf1, 0x61, + 0x6c, 0x27, 0x64, 0x9b, 0x19, 0xf1, 0x02, 0xed, 0x2f, 0x5a, 0x30, 0xb9, 0x9e, 0x08, 0xa3, 0x76, + 0x89, 0x69, 0x43, 0x33, 0x44, 0xea, 0x35, 0x56, 0x8a, 0x05, 0xf4, 0xd8, 0x25, 0x59, 0x7f, 0x69, + 0x41, 0x1c, 0xa8, 0xe3, 0x04, 0xd8, 0xb7, 0x65, 0x83, 0x7d, 0xcb, 0x94, 0xb0, 0xa8, 0xee, 0xe4, + 0x71, 0x6f, 0xe8, 0x86, 0x0a, 0x61, 0xd5, 0x45, 0xb8, 0x12, 0x93, 0xe1, 0x4b, 0x71, 0xc2, 0x8c, + 0x73, 0x25, 0x83, 0x5a, 0xd9, 0xbf, 0x53, 0x00, 0xa4, 0x70, 0xfb, 0x0e, 0xb1, 0x95, 0xae, 0x71, + 0x3c, 0x21, 0xb6, 0xf6, 0x00, 0x31, 0x7d, 0x7e, 0xe0, 0x78, 0x21, 0x27, 0xeb, 0x0a, 0xd9, 0xdd, + 0xd1, 0x8c, 0x05, 0xe6, 0x44, 0x93, 0xe8, 0x66, 0x8a, 0x1a, 0xce, 0x68, 0x41, 0xb3, 0xd3, 0x18, + 0xec, 0xd7, 0x4e, 0x63, 0xa8, 0x87, 0xd3, 0xde, 0xcf, 0x5a, 0x30, 0xae, 0x86, 0xe9, 0x5d, 0x62, + 0x52, 0xaf, 0xfa, 0x93, 0x73, 0x80, 0x56, 0xb5, 0x2e, 0xb3, 0x8b, 0xe5, 0x5b, 0x99, 0xf3, 0xa5, + 0xd3, 0x74, 0xdf, 0x26, 0x2a, 0xc0, 0xe1, 0xbc, 0x70, 0xa6, 0x14, 0xa5, 0x87, 0x07, 0xf3, 0xe3, + 0xea, 0x1f, 0x0f, 0xa8, 0x1c, 0x57, 0xa1, 0x47, 0xf2, 0x64, 0x62, 0x29, 0xa2, 0x97, 0x60, 0xb0, + 0xbd, 0xe3, 0x84, 0x24, 0xe1, 0x7a, 0x34, 0x58, 0xa5, 0x85, 0x87, 0x07, 0xf3, 0x13, 0xaa, 0x02, + 0x2b, 0xc1, 0x1c, 0xbb, 0xff, 0xc0, 0x65, 0xe9, 0xc5, 0xd9, 0x33, 0x70, 0xd9, 0x9f, 0x5a, 0x30, + 0xb0, 0xee, 0x37, 0x4e, 0xe2, 0x08, 0x78, 0xcd, 0x38, 0x02, 0x9e, 0xc8, 0x8b, 0x75, 0x9f, 0xbb, + 0xfb, 0x57, 0x13, 0xbb, 0xff, 0x7c, 0x2e, 0x85, 0xee, 0x1b, 0xbf, 0x05, 0xa3, 0x2c, 0x82, 0xbe, + 0x70, 0xb3, 0x7a, 0xc1, 0xd8, 0xf0, 0xf3, 0x89, 0x0d, 0x3f, 0xa9, 0xa1, 0x6a, 0x3b, 0xfd, 0x69, + 0x18, 0x16, 0x7e, 0x3b, 0x49, 0x1f, 0x56, 0x81, 0x8b, 0x25, 0xdc, 0xfe, 0xf1, 0x22, 0x18, 0x11, + 0xfb, 0xd1, 0xaf, 0x58, 0xb0, 0x10, 0x70, 0x7b, 0xde, 0x46, 0xb9, 0x13, 0xb8, 0xde, 0x76, 0xad, + 0xbe, 0x43, 0x1a, 0x9d, 0xa6, 0xeb, 0x6d, 0x57, 0xb6, 0x3d, 0x5f, 0x15, 0xaf, 0xdc, 0x27, 0xf5, + 0x0e, 0x53, 0x82, 0xf5, 0x48, 0x0f, 0xa0, 0xec, 0xe2, 0x9f, 0x7f, 0x70, 0x30, 0xbf, 0x80, 0x8f, + 0x44, 0x1b, 0x1f, 0xb1, 0x2f, 0xe8, 0x37, 0x2d, 0xb8, 0xc2, 0x03, 0xd9, 0xf7, 0xdf, 0xff, 0x2e, + 0xaf, 0xe5, 0xaa, 0x24, 0x15, 0x13, 0xd9, 0x20, 0x41, 0x6b, 0xe9, 0x23, 0x62, 0x40, 0xaf, 0x54, + 0x8f, 0xd6, 0x16, 0x3e, 0x6a, 0xe7, 0xec, 0x7f, 0x56, 0x84, 0x71, 0x11, 0xe0, 0x4a, 0xdc, 0x01, + 0x2f, 0x19, 0x4b, 0xe2, 0xc9, 0xc4, 0x92, 0x98, 0x36, 0x90, 0x8f, 0xe7, 0xf8, 0x0f, 0x61, 0x9a, + 0x1e, 0xce, 0xd7, 0x89, 0x13, 0x44, 0x9b, 0xc4, 0xe1, 0xe6, 0x57, 0xc5, 0x23, 0x9f, 0xfe, 0x4a, + 0x3c, 0x77, 0x33, 0x49, 0x0c, 0xa7, 0xe9, 0x7f, 0x33, 0xdd, 0x39, 0x1e, 0x4c, 0xa5, 0x62, 0x94, + 0x7d, 0x0a, 0x4a, 0xca, 0xe9, 0x44, 0x1c, 0x3a, 0xdd, 0x43, 0xfd, 0x25, 0x29, 0x70, 0x11, 0x5a, + 0xec, 0xf0, 0x14, 0x93, 0xb3, 0xff, 0x41, 0xc1, 0x68, 0x90, 0x4f, 0xe2, 0x3a, 0x8c, 0x38, 0x61, + 0xe8, 0x6e, 0x7b, 0xa4, 0x21, 0x76, 0xec, 0xfb, 0xf3, 0x76, 0xac, 0xd1, 0x0c, 0x73, 0xfc, 0x59, + 0x14, 0x35, 0xb1, 0xa2, 0x81, 0xae, 0x73, 0x23, 0xb7, 0x3d, 0xf9, 0xde, 0xeb, 0x8f, 0x1a, 0x48, + 0x33, 0xb8, 0x3d, 0x82, 0x45, 0x7d, 0xf4, 0x69, 0x6e, 0x85, 0x78, 0xc3, 0xf3, 0xef, 0x79, 0xd7, + 0x7c, 0x5f, 0x06, 0x91, 0xe8, 0x8f, 0xe0, 0xb4, 0xb4, 0x3d, 0x54, 0xd5, 0xb1, 0x49, 0xad, 0xbf, + 0xa0, 0x9f, 0x9f, 0x87, 0x19, 0x4a, 0xda, 0xf4, 0xf1, 0x0e, 0x11, 0x81, 0x49, 0x11, 0x3d, 0x4d, + 0x96, 0x89, 0xb1, 0xcb, 0x7c, 0xca, 0x99, 0xb5, 0x63, 0x39, 0xf2, 0x0d, 0x93, 0x04, 0x4e, 0xd2, + 0xb4, 0x7f, 0xca, 0x02, 0xe6, 0xef, 0x7a, 0x02, 0xfc, 0xc8, 0xc7, 0x4c, 0x7e, 0x64, 0x36, 0x6f, + 0x90, 0x73, 0x58, 0x91, 0x17, 0xf9, 0xca, 0xaa, 0x06, 0xfe, 0xfd, 0x7d, 0x61, 0x3a, 0xd2, 0xfb, + 0xfd, 0x61, 0xff, 0x6f, 0x8b, 0x1f, 0x62, 0xca, 0x25, 0x04, 0x7d, 0x3b, 0x8c, 0xd4, 0x9d, 0xb6, + 0x53, 0xe7, 0xe9, 0x65, 0x72, 0x25, 0x7a, 0x46, 0xa5, 0x85, 0x65, 0x51, 0x83, 0x4b, 0xa8, 0x64, + 0x14, 0xbe, 0x11, 0x59, 0xdc, 0x53, 0x2a, 0xa5, 0x9a, 0x9c, 0xdb, 0x85, 0x71, 0x83, 0xd8, 0x23, + 0x15, 0x67, 0x7c, 0x3b, 0xbf, 0x62, 0x55, 0xd4, 0xc8, 0x16, 0x4c, 0x7b, 0xda, 0x7f, 0x7a, 0xa1, + 0xc8, 0xc7, 0xe5, 0xfb, 0x7b, 0x5d, 0xa2, 0xec, 0xf6, 0xd1, 0x5c, 0x69, 0x13, 0x64, 0x70, 0x9a, + 0xb2, 0xfd, 0x13, 0x16, 0x3c, 0xa6, 0x23, 0x6a, 0xde, 0x3a, 0xbd, 0x74, 0x04, 0x65, 0x18, 0xf1, + 0xdb, 0x24, 0x70, 0x22, 0x3f, 0x10, 0xb7, 0xc6, 0x65, 0x39, 0xe8, 0xb7, 0x44, 0xf9, 0xa1, 0x08, + 0xce, 0x2e, 0xa9, 0xcb, 0x72, 0xac, 0x6a, 0xd2, 0xd7, 0x27, 0x1b, 0x8c, 0x50, 0xf8, 0x65, 0xb1, + 0x33, 0x80, 0xa9, 0xcb, 0x43, 0x2c, 0x20, 0xf6, 0xd7, 0x2c, 0xbe, 0xb0, 0xf4, 0xae, 0xa3, 0xb7, + 0x60, 0xaa, 0xe5, 0x44, 0xf5, 0x9d, 0x95, 0xfb, 0xed, 0x80, 0x6b, 0x5c, 0xe4, 0x38, 0x3d, 0xd3, + 0x6b, 0x9c, 0xb4, 0x8f, 0x8c, 0x0d, 0x2b, 0xd7, 0x12, 0xc4, 0x70, 0x8a, 0x3c, 0xda, 0x84, 0x51, + 0x56, 0xc6, 0x5c, 0x0e, 0xc3, 0x6e, 0xac, 0x41, 0x5e, 0x6b, 0xca, 0xe2, 0x60, 0x2d, 0xa6, 0x83, + 0x75, 0xa2, 0xf6, 0xcf, 0x14, 0xf9, 0x6e, 0x67, 0xac, 0xfc, 0xd3, 0x30, 0xdc, 0xf6, 0x1b, 0xcb, + 0x95, 0x32, 0x16, 0xb3, 0xa0, 0xae, 0x91, 0x2a, 0x2f, 0xc6, 0x12, 0x8e, 0x2e, 0xc3, 0x88, 0xf8, + 0x29, 0x35, 0x64, 0xec, 0x6c, 0x16, 0x78, 0x21, 0x56, 0x50, 0xf4, 0x3c, 0x40, 0x3b, 0xf0, 0xf7, + 0xdc, 0x06, 0x0b, 0x85, 0x51, 0x34, 0x8d, 0x85, 0xaa, 0x0a, 0x82, 0x35, 0x2c, 0xf4, 0x2a, 0x8c, + 0x77, 0xbc, 0x90, 0xb3, 0x23, 0x5a, 0xe0, 0x5b, 0x65, 0xc6, 0x72, 0x5b, 0x07, 0x62, 0x13, 0x17, + 0x2d, 0xc2, 0x50, 0xe4, 0x30, 0xe3, 0x97, 0xc1, 0x7c, 0xe3, 0xdb, 0x0d, 0x8a, 0xa1, 0x67, 0x32, + 0xa1, 0x15, 0xb0, 0xa8, 0x88, 0x3e, 0x25, 0xbd, 0x7f, 0xf9, 0xc1, 0x2e, 0xac, 0xde, 0xfb, 0xbb, + 0x04, 0x34, 0xdf, 0x5f, 0x61, 0x4d, 0x6f, 0xd0, 0x42, 0xaf, 0x00, 0x90, 0xfb, 0x11, 0x09, 0x3c, + 0xa7, 0xa9, 0x6c, 0xcb, 0x14, 0x5f, 0x50, 0xf6, 0xd7, 0xfd, 0xe8, 0x76, 0x48, 0x56, 0x14, 0x06, + 0xd6, 0xb0, 0xed, 0xdf, 0x2c, 0x01, 0xc4, 0x7c, 0x3b, 0x7a, 0x3b, 0x75, 0x70, 0x3d, 0xdb, 0x9d, + 0xd3, 0x3f, 0xbe, 0x53, 0x0b, 0x7d, 0x8f, 0x05, 0xa3, 0x4e, 0xb3, 0xe9, 0xd7, 0x1d, 0x1e, 0x9a, + 0xb8, 0xd0, 0xfd, 0xe0, 0x14, 0xed, 0x2f, 0xc6, 0x35, 0x78, 0x17, 0x5e, 0x90, 0x2b, 0x54, 0x83, + 0xf4, 0xec, 0x85, 0xde, 0x30, 0xfa, 0x90, 0x7c, 0x2a, 0x16, 0x8d, 0xa1, 0x54, 0x4f, 0xc5, 0x12, + 0xbb, 0x23, 0xf4, 0x57, 0xe2, 0x6d, 0xe3, 0x95, 0x38, 0x90, 0xef, 0xde, 0x68, 0xb0, 0xaf, 0xbd, + 0x1e, 0x88, 0xa8, 0xaa, 0x87, 0x3a, 0x18, 0xcc, 0xf7, 0x25, 0xd4, 0xde, 0x49, 0x3d, 0xc2, 0x1c, + 0x7c, 0x0e, 0x26, 0x1b, 0x26, 0x13, 0x20, 0x56, 0xe2, 0x53, 0x79, 0x74, 0x13, 0x3c, 0x43, 0x7c, + 0xed, 0x27, 0x00, 0x38, 0x49, 0x18, 0x55, 0x79, 0xe4, 0x8b, 0x8a, 0xb7, 0xe5, 0x0b, 0xcf, 0x0b, + 0x3b, 0x77, 0x2e, 0xf7, 0xc3, 0x88, 0xb4, 0x28, 0x66, 0x7c, 0xbb, 0xaf, 0x8b, 0xba, 0x58, 0x51, + 0x41, 0xaf, 0xc3, 0x10, 0x73, 0x26, 0x0b, 0x67, 0x47, 0xf2, 0x25, 0xce, 0x66, 0x28, 0xb7, 0x78, + 0x43, 0xb2, 0xbf, 0x21, 0x16, 0x14, 0xd0, 0x75, 0xe9, 0xaa, 0x19, 0x56, 0xbc, 0xdb, 0x21, 0x61, + 0xae, 0x9a, 0xa5, 0xa5, 0xf7, 0xc7, 0x5e, 0x98, 0xbc, 0x3c, 0x33, 0xdf, 0x99, 0x51, 0x93, 0x72, + 0x51, 0xe2, 0xbf, 0x4c, 0xa3, 0x36, 0x0b, 0xf9, 0xdd, 0x33, 0x53, 0xad, 0xc5, 0xc3, 0x79, 0xc7, + 0x24, 0x81, 0x93, 0x34, 0x29, 0x47, 0xca, 0x77, 0xbd, 0xf0, 0xdd, 0xe8, 0x75, 0x76, 0xf0, 0x87, + 0x38, 0xbb, 0x8d, 0x78, 0x09, 0x16, 0xf5, 0x4f, 0x94, 0x3d, 0x98, 0xf3, 0x60, 0x2a, 0xb9, 0x45, + 0x1f, 0x29, 0x3b, 0xf2, 0x87, 0x03, 0x30, 0x61, 0x2e, 0x29, 0x74, 0x05, 0x4a, 0x82, 0x88, 0x4a, + 0x7d, 0xa0, 0x76, 0xc9, 0x9a, 0x04, 0xe0, 0x18, 0x87, 0x65, 0xbc, 0x60, 0xd5, 0x35, 0x63, 0xdd, + 0x38, 0xe3, 0x85, 0x82, 0x60, 0x0d, 0x8b, 0x3e, 0xac, 0x36, 0x7d, 0x3f, 0x52, 0x17, 0x92, 0x5a, + 0x77, 0x4b, 0xac, 0x14, 0x0b, 0x28, 0xbd, 0x88, 0x76, 0x49, 0xe0, 0x91, 0xa6, 0x19, 0x24, 0x59, + 0x5d, 0x44, 0x37, 0x74, 0x20, 0x36, 0x71, 0xe9, 0x75, 0xea, 0x87, 0x6c, 0x21, 0x8b, 0xe7, 0x5b, + 0x6c, 0xfc, 0x5c, 0xe3, 0xde, 0xe2, 0x12, 0x8e, 0x3e, 0x09, 0x8f, 0xa9, 0x40, 0x50, 0x98, 0x6b, + 0x33, 0x64, 0x8b, 0x43, 0x86, 0xb4, 0xe5, 0xb1, 0xe5, 0x6c, 0x34, 0x9c, 0x57, 0x1f, 0xbd, 0x06, + 0x13, 0x82, 0xc5, 0x97, 0x14, 0x87, 0x4d, 0x03, 0x9b, 0x1b, 0x06, 0x14, 0x27, 0xb0, 0x65, 0x98, + 0x67, 0xc6, 0x65, 0x4b, 0x0a, 0x23, 0xe9, 0x30, 0xcf, 0x3a, 0x1c, 0xa7, 0x6a, 0xa0, 0x45, 0x98, + 0xe4, 0x3c, 0x98, 0xeb, 0x6d, 0xf3, 0x39, 0x11, 0xae, 0x55, 0x6a, 0x4b, 0xdd, 0x32, 0xc1, 0x38, + 0x89, 0x8f, 0x5e, 0x86, 0x31, 0x27, 0xa8, 0xef, 0xb8, 0x11, 0xa9, 0x47, 0x9d, 0x80, 0xfb, 0x5c, + 0x69, 0x16, 0x4a, 0x8b, 0x1a, 0x0c, 0x1b, 0x98, 0xf6, 0xdb, 0x30, 0x93, 0x11, 0x46, 0x82, 0x2e, + 0x1c, 0xa7, 0xed, 0xca, 0x6f, 0x4a, 0x98, 0x31, 0x2f, 0x56, 0x2b, 0xf2, 0x6b, 0x34, 0x2c, 0xba, + 0x3a, 0x59, 0xb8, 0x09, 0x2d, 0x6b, 0xa2, 0x5a, 0x9d, 0xab, 0x12, 0x80, 0x63, 0x1c, 0xfb, 0x7f, + 0x14, 0x60, 0x32, 0x43, 0xb7, 0xc2, 0x32, 0xf7, 0x25, 0x1e, 0x29, 0x71, 0xa2, 0x3e, 0x33, 0x6a, + 0x78, 0xe1, 0x08, 0x51, 0xc3, 0x8b, 0xbd, 0xa2, 0x86, 0x0f, 0xbc, 0x93, 0xa8, 0xe1, 0xe6, 0x88, + 0x0d, 0xf6, 0x35, 0x62, 0x19, 0x91, 0xc6, 0x87, 0x8e, 0x18, 0x69, 0xdc, 0x18, 0xf4, 0xe1, 0x3e, + 0x06, 0xfd, 0x87, 0x0b, 0x30, 0x95, 0xb4, 0xa4, 0x3c, 0x01, 0xb9, 0xed, 0xeb, 0x86, 0xdc, 0xf6, + 0x72, 0x3f, 0x8e, 0xb3, 0xb9, 0x32, 0x5c, 0x9c, 0x90, 0xe1, 0x7e, 0xb0, 0x2f, 0x6a, 0xdd, 0xe5, + 0xb9, 0x7f, 0xab, 0x00, 0xa7, 0x33, 0x3d, 0x77, 0x4f, 0x60, 0x6c, 0x6e, 0x19, 0x63, 0xf3, 0x5c, + 0xdf, 0x4e, 0xc5, 0xb9, 0x03, 0x74, 0x37, 0x31, 0x40, 0x57, 0xfa, 0x27, 0xd9, 0x7d, 0x94, 0xbe, + 0x5a, 0x84, 0xf3, 0x99, 0xf5, 0x62, 0xb1, 0xe7, 0xaa, 0x21, 0xf6, 0x7c, 0x3e, 0x21, 0xf6, 0xb4, + 0xbb, 0xd7, 0x3e, 0x1e, 0x39, 0xa8, 0x70, 0x97, 0x65, 0x31, 0x11, 0x1e, 0x52, 0x06, 0x6a, 0xb8, + 0xcb, 0x2a, 0x42, 0xd8, 0xa4, 0xfb, 0xcd, 0x24, 0xfb, 0xfc, 0x37, 0x16, 0x9c, 0xcd, 0x9c, 0x9b, + 0x13, 0x90, 0x75, 0xad, 0x9b, 0xb2, 0xae, 0xa7, 0xfb, 0x5e, 0xad, 0x39, 0xc2, 0xaf, 0x5f, 0x1f, + 0xc8, 0xf9, 0x16, 0xf6, 0x92, 0xbf, 0x05, 0xa3, 0x4e, 0xbd, 0x4e, 0xc2, 0x70, 0xcd, 0x6f, 0xa8, + 0xc0, 0xc8, 0xcf, 0xb1, 0x77, 0x56, 0x5c, 0x7c, 0x78, 0x30, 0x3f, 0x97, 0x24, 0x11, 0x83, 0xb1, + 0x4e, 0x01, 0x7d, 0x1a, 0x46, 0x42, 0x71, 0x6f, 0x8a, 0xb9, 0x7f, 0xa1, 0xcf, 0xc1, 0x71, 0x36, + 0x49, 0xd3, 0x8c, 0xdc, 0xa4, 0x24, 0x15, 0x8a, 0xa4, 0x19, 0xe5, 0xa5, 0x70, 0xac, 0x51, 0x5e, + 0x9e, 0x07, 0xd8, 0x53, 0x8f, 0x81, 0xa4, 0xfc, 0x41, 0x7b, 0x26, 0x68, 0x58, 0xe8, 0xe3, 0x30, + 0x15, 0xf2, 0xd0, 0x86, 0xcb, 0x4d, 0x27, 0x64, 0xce, 0x32, 0x62, 0x15, 0xb2, 0xe8, 0x50, 0xb5, + 0x04, 0x0c, 0xa7, 0xb0, 0xd1, 0xaa, 0x6c, 0x95, 0xc5, 0x61, 0xe4, 0x0b, 0xf3, 0x52, 0xdc, 0xa2, + 0xc8, 0x1b, 0x7c, 0x2a, 0x39, 0xfc, 0x6c, 0xe0, 0xb5, 0x9a, 0xe8, 0xd3, 0x00, 0x74, 0xf9, 0x08, + 0x39, 0xc4, 0x70, 0xfe, 0xe1, 0x49, 0x4f, 0x95, 0x46, 0xa6, 0x6d, 0x2f, 0xf3, 0x70, 0x2d, 0x2b, + 0x22, 0x58, 0x23, 0x68, 0xff, 0xf0, 0x00, 0x3c, 0xde, 0xe5, 0x8c, 0x44, 0x8b, 0xa6, 0x1e, 0xf6, + 0x99, 0xe4, 0xe3, 0x7a, 0x2e, 0xb3, 0xb2, 0xf1, 0xda, 0x4e, 0x2c, 0xc5, 0xc2, 0x3b, 0x5e, 0x8a, + 0x3f, 0x60, 0x69, 0x62, 0x0f, 0x6e, 0xf1, 0xf9, 0xb1, 0x23, 0x9e, 0xfd, 0xc7, 0x28, 0x07, 0xd9, + 0xca, 0x10, 0x26, 0x3c, 0xdf, 0x77, 0x77, 0xfa, 0x96, 0x2e, 0x9c, 0xac, 0x94, 0xf8, 0xb7, 0x2d, + 0x38, 0xd7, 0x35, 0xc4, 0xc7, 0x37, 0x20, 0xc3, 0x60, 0x7f, 0xc1, 0x82, 0x27, 0x33, 0x6b, 0x18, + 0x66, 0x46, 0x57, 0xa0, 0x54, 0xa7, 0x85, 0x9a, 0x97, 0x66, 0xec, 0xbe, 0x2e, 0x01, 0x38, 0xc6, + 0x39, 0x62, 0xf8, 0x92, 0x5f, 0xb5, 0x20, 0xb5, 0xe9, 0x4f, 0xe0, 0xf6, 0xa9, 0x98, 0xb7, 0xcf, + 0xfb, 0xfb, 0x19, 0xcd, 0x9c, 0x8b, 0xe7, 0x4f, 0x26, 0xe1, 0x4c, 0x8e, 0x97, 0xd2, 0x1e, 0x4c, + 0x6f, 0xd7, 0x89, 0xe9, 0xff, 0xda, 0x2d, 0x8a, 0x4c, 0x57, 0x67, 0x59, 0x96, 0xd9, 0x74, 0x3a, + 0x85, 0x82, 0xd3, 0x4d, 0xa0, 0x2f, 0x58, 0x70, 0xca, 0xb9, 0x17, 0xae, 0x50, 0x2e, 0xc2, 0xad, + 0x2f, 0x35, 0xfd, 0xfa, 0x2e, 0x3d, 0xa2, 0xe5, 0x46, 0x78, 0x31, 0x53, 0xb2, 0x73, 0xb7, 0x96, + 0xc2, 0x37, 0x9a, 0x67, 0xa9, 0x5e, 0xb3, 0xb0, 0x70, 0x66, 0x5b, 0x08, 0x8b, 0xf8, 0xff, 0xf4, + 0x8d, 0xd2, 0xc5, 0x43, 0x3b, 0xcb, 0x9d, 0x8c, 0x5f, 0x8b, 0x12, 0x82, 0x15, 0x1d, 0xf4, 0x59, + 0x28, 0x6d, 0x4b, 0x1f, 0xcf, 0x8c, 0x6b, 0x37, 0x1e, 0xc8, 0xee, 0x9e, 0xaf, 0x5c, 0x3d, 0xab, + 0x90, 0x70, 0x4c, 0x14, 0xbd, 0x06, 0x45, 0x6f, 0x2b, 0xec, 0x96, 0x2d, 0x35, 0x61, 0x87, 0xc7, + 0xe3, 0x20, 0xac, 0xaf, 0xd6, 0x30, 0xad, 0x88, 0xae, 0x43, 0x31, 0xd8, 0x6c, 0x08, 0xb1, 0x64, + 0xe6, 0x26, 0xc5, 0x4b, 0xe5, 0x9c, 0x5e, 0x31, 0x4a, 0x78, 0xa9, 0x8c, 0x29, 0x09, 0x54, 0x85, + 0x41, 0xe6, 0xda, 0x23, 0x2e, 0xb9, 0x4c, 0x76, 0xbe, 0x8b, 0x8b, 0x1c, 0x0f, 0x96, 0xc0, 0x10, + 0x30, 0x27, 0x84, 0x36, 0x60, 0xa8, 0xce, 0x32, 0x6b, 0x8a, 0xb8, 0x71, 0x1f, 0xca, 0x14, 0x40, + 0x76, 0x49, 0x39, 0x2a, 0xe4, 0x71, 0x0c, 0x03, 0x0b, 0x5a, 0x8c, 0x2a, 0x69, 0xef, 0x6c, 0x85, + 0x22, 0x13, 0x74, 0x36, 0xd5, 0x2e, 0x99, 0x74, 0x05, 0x55, 0x86, 0x81, 0x05, 0x2d, 0xf4, 0x0a, + 0x14, 0xb6, 0xea, 0xc2, 0x6d, 0x27, 0x53, 0x12, 0x69, 0x86, 0xb2, 0x58, 0x1a, 0x7a, 0x70, 0x30, + 0x5f, 0x58, 0x5d, 0xc6, 0x85, 0xad, 0x3a, 0x5a, 0x87, 0xe1, 0x2d, 0xee, 0xfc, 0x2e, 0x84, 0x8d, + 0x4f, 0x65, 0xfb, 0xe5, 0xa7, 0xfc, 0xe3, 0xb9, 0xc7, 0x8a, 0x00, 0x60, 0x49, 0x84, 0x85, 0xd3, + 0x57, 0x4e, 0xfc, 0x22, 0xc4, 0xda, 0xc2, 0xd1, 0x02, 0x2f, 0x70, 0xa6, 0x23, 0x0e, 0x05, 0x80, + 0x35, 0x8a, 0x74, 0x55, 0x3b, 0x32, 0x1d, 0xbf, 0x08, 0x36, 0x93, 0xb9, 0xaa, 0x55, 0xce, 0xfe, + 0x6e, 0xab, 0x5a, 0x21, 0xe1, 0x98, 0x28, 0xda, 0x85, 0xf1, 0xbd, 0xb0, 0xbd, 0x43, 0xe4, 0x96, + 0x66, 0xb1, 0x67, 0x72, 0xee, 0xe5, 0x3b, 0x02, 0xd1, 0x0d, 0xa2, 0x8e, 0xd3, 0x4c, 0x9d, 0x42, + 0x4c, 0xa7, 0x7f, 0x47, 0x27, 0x86, 0x4d, 0xda, 0x74, 0xf8, 0xdf, 0xea, 0xf8, 0x9b, 0xfb, 0x11, + 0x11, 0x91, 0xd1, 0x32, 0x87, 0xff, 0x0d, 0x8e, 0x92, 0x1e, 0x7e, 0x01, 0xc0, 0x92, 0x08, 0xba, + 0x23, 0x86, 0x87, 0x9d, 0x9e, 0x53, 0xf9, 0xe1, 0x4b, 0x17, 0x25, 0x52, 0xce, 0xa0, 0xb0, 0xd3, + 0x32, 0x26, 0xc5, 0x4e, 0xc9, 0xf6, 0x8e, 0x1f, 0xf9, 0x5e, 0xe2, 0x84, 0x9e, 0xce, 0x3f, 0x25, + 0xab, 0x19, 0xf8, 0xe9, 0x53, 0x32, 0x0b, 0x0b, 0x67, 0xb6, 0x85, 0x1a, 0x30, 0xd1, 0xf6, 0x83, + 0xe8, 0x9e, 0x1f, 0xc8, 0xf5, 0x85, 0xba, 0x08, 0x4b, 0x0c, 0x4c, 0xd1, 0x22, 0x0b, 0x3a, 0x68, + 0x42, 0x70, 0x82, 0x26, 0xfa, 0x04, 0x0c, 0x87, 0x75, 0xa7, 0x49, 0x2a, 0xb7, 0x66, 0x67, 0xf2, + 0xaf, 0x9f, 0x1a, 0x47, 0xc9, 0x59, 0x5d, 0x3c, 0xf6, 0x3e, 0x47, 0xc1, 0x92, 0x1c, 0x5a, 0x85, + 0x41, 0x96, 0x2e, 0x8d, 0x85, 0xf1, 0xcb, 0x89, 0xc2, 0x9a, 0xb2, 0x8a, 0xe6, 0x67, 0x13, 0x2b, + 0xc6, 0xbc, 0x3a, 0xdd, 0x03, 0xe2, 0xcd, 0xe0, 0x87, 0xb3, 0xa7, 0xf3, 0xf7, 0x80, 0x78, 0x6a, + 0xdc, 0xaa, 0x75, 0xdb, 0x03, 0x0a, 0x09, 0xc7, 0x44, 0xe9, 0xc9, 0x4c, 0x4f, 0xd3, 0x33, 0x5d, + 0xcc, 0x79, 0x72, 0xcf, 0x52, 0x76, 0x32, 0xd3, 0x93, 0x94, 0x92, 0xb0, 0x7f, 0x7f, 0x38, 0xcd, + 0xb3, 0xb0, 0x57, 0xe6, 0x77, 0x59, 0x29, 0x05, 0xe4, 0x87, 0xfb, 0x15, 0x7a, 0x1d, 0x23, 0x0b, + 0xfe, 0x05, 0x0b, 0xce, 0xb4, 0x33, 0x3f, 0x44, 0x30, 0x00, 0xfd, 0xc9, 0xce, 0xf8, 0xa7, 0xab, + 0x90, 0x8f, 0xd9, 0x70, 0x9c, 0xd3, 0x52, 0xf2, 0x99, 0x53, 0x7c, 0xc7, 0xcf, 0x9c, 0x35, 0x18, + 0x61, 0x4c, 0x66, 0x8f, 0x4c, 0xd3, 0xc9, 0xd7, 0x1e, 0x63, 0x25, 0x96, 0x45, 0x45, 0xac, 0x48, + 0xa0, 0x1f, 0xb4, 0xe0, 0x5c, 0xb2, 0xeb, 0x98, 0x30, 0xb0, 0x88, 0x13, 0xc9, 0x1f, 0xb8, 0xab, + 0xe2, 0xfb, 0x53, 0xfc, 0xbf, 0x81, 0x7c, 0xd8, 0x0b, 0x01, 0x77, 0x6f, 0x0c, 0x95, 0x33, 0x5e, + 0xd8, 0x43, 0xa6, 0x56, 0xa1, 0x8f, 0x57, 0xf6, 0x8b, 0x30, 0xd6, 0xf2, 0x3b, 0x5e, 0x24, 0xac, + 0x7f, 0x84, 0x25, 0x02, 0xd3, 0xc0, 0xaf, 0x69, 0xe5, 0xd8, 0xc0, 0x4a, 0xbc, 0xcd, 0x47, 0x1e, + 0xfa, 0x6d, 0xfe, 0x26, 0x8c, 0x79, 0x9a, 0xb9, 0xaa, 0xe0, 0x07, 0x2e, 0xe5, 0xc7, 0x78, 0xd5, + 0x8d, 0x5b, 0x79, 0x2f, 0xf5, 0x12, 0x6c, 0x50, 0x3b, 0xd9, 0x07, 0xdf, 0x97, 0xad, 0x0c, 0xa6, + 0x9e, 0x8b, 0x00, 0x3e, 0x6a, 0x8a, 0x00, 0x2e, 0x25, 0x45, 0x00, 0x29, 0x89, 0xb2, 0xf1, 0xfa, + 0xef, 0x3f, 0x85, 0x4d, 0xbf, 0x81, 0x10, 0xed, 0x26, 0x5c, 0xe8, 0x75, 0x2d, 0x31, 0x33, 0xb0, + 0x86, 0xd2, 0x1f, 0xc6, 0x66, 0x60, 0x8d, 0x4a, 0x19, 0x33, 0x48, 0xbf, 0x21, 0x76, 0xec, 0xff, + 0x66, 0x41, 0xb1, 0xea, 0x37, 0x4e, 0xe0, 0xc1, 0xfb, 0x31, 0xe3, 0xc1, 0xfb, 0x78, 0xf6, 0x85, + 0xd8, 0xc8, 0x95, 0x87, 0xaf, 0x24, 0xe4, 0xe1, 0xe7, 0xf2, 0x08, 0x74, 0x97, 0x7e, 0xff, 0x64, + 0x11, 0x46, 0xab, 0x7e, 0x43, 0xd9, 0x60, 0xff, 0xfa, 0xc3, 0xd8, 0x60, 0xe7, 0x26, 0x62, 0xd0, + 0x28, 0x33, 0xeb, 0x31, 0xe9, 0x7e, 0xfa, 0x0d, 0x66, 0x8a, 0x7d, 0x97, 0xb8, 0xdb, 0x3b, 0x11, + 0x69, 0x24, 0x3f, 0xe7, 0xe4, 0x4c, 0xb1, 0x7f, 0xbf, 0x00, 0x93, 0x89, 0xd6, 0x51, 0x13, 0xc6, + 0x9b, 0xba, 0xb4, 0x55, 0xac, 0xd3, 0x87, 0x12, 0xd4, 0x0a, 0x53, 0x56, 0xad, 0x08, 0x9b, 0xc4, + 0xd1, 0x02, 0x80, 0x52, 0x3f, 0x4a, 0xb1, 0x1e, 0xe3, 0xfa, 0x95, 0x7e, 0x32, 0xc4, 0x1a, 0x06, + 0x7a, 0x09, 0x46, 0x23, 0xbf, 0xed, 0x37, 0xfd, 0xed, 0xfd, 0x1b, 0x44, 0x06, 0x75, 0x52, 0x06, + 0x6a, 0x1b, 0x31, 0x08, 0xeb, 0x78, 0xe8, 0x3e, 0x4c, 0x2b, 0x22, 0xb5, 0x63, 0x90, 0x40, 0x33, + 0xa9, 0xc2, 0x7a, 0x92, 0x22, 0x4e, 0x37, 0x62, 0xff, 0x74, 0x91, 0x0f, 0xb1, 0x17, 0xb9, 0xef, + 0xed, 0x86, 0x77, 0xf7, 0x6e, 0xf8, 0xaa, 0x05, 0x53, 0xb4, 0x75, 0x66, 0x7d, 0x23, 0xaf, 0x79, + 0x15, 0x55, 0xda, 0xea, 0x12, 0x55, 0xfa, 0x12, 0x3d, 0x35, 0x1b, 0x7e, 0x27, 0x12, 0xb2, 0x3b, + 0xed, 0x58, 0xa4, 0xa5, 0x58, 0x40, 0x05, 0x1e, 0x09, 0x02, 0xe1, 0x31, 0xa8, 0xe3, 0x91, 0x20, + 0xc0, 0x02, 0x2a, 0x83, 0x4e, 0x0f, 0x64, 0x07, 0x9d, 0xe6, 0xc1, 0x31, 0x85, 0x9d, 0x86, 0x60, + 0xb8, 0xb4, 0xe0, 0x98, 0xd2, 0x80, 0x23, 0xc6, 0xb1, 0x7f, 0xae, 0x08, 0x63, 0x55, 0xbf, 0x11, + 0xab, 0x1e, 0x5f, 0x34, 0x54, 0x8f, 0x17, 0x12, 0xaa, 0xc7, 0x29, 0x1d, 0xf7, 0x3d, 0x45, 0xe3, + 0xd7, 0x4b, 0xd1, 0xf8, 0x4f, 0x2d, 0x36, 0x6b, 0xe5, 0xf5, 0x1a, 0x37, 0xe6, 0x42, 0x57, 0x61, + 0x94, 0x1d, 0x30, 0xcc, 0x45, 0x55, 0xea, 0xe3, 0x58, 0x32, 0xa5, 0xf5, 0xb8, 0x18, 0xeb, 0x38, + 0xe8, 0x32, 0x8c, 0x84, 0xc4, 0x09, 0xea, 0x3b, 0xea, 0x74, 0x15, 0xca, 0x33, 0x5e, 0x86, 0x15, + 0x14, 0xbd, 0x11, 0xc7, 0x65, 0x2c, 0xe6, 0xbb, 0xbc, 0xe9, 0xfd, 0xe1, 0x5b, 0x24, 0x3f, 0x18, + 0xa3, 0x7d, 0x17, 0x50, 0x1a, 0xbf, 0x8f, 0x80, 0x64, 0xf3, 0x66, 0x40, 0xb2, 0x52, 0x2a, 0x18, + 0xd9, 0x5f, 0x58, 0x30, 0x51, 0xf5, 0x1b, 0x74, 0xeb, 0x7e, 0x33, 0xed, 0x53, 0x3d, 0x28, 0xed, + 0x50, 0x97, 0xa0, 0xb4, 0x17, 0x61, 0xb0, 0xea, 0x37, 0x2a, 0xd5, 0x6e, 0xfe, 0xe6, 0xf6, 0xdf, + 0xb6, 0x60, 0xb8, 0xea, 0x37, 0x4e, 0x40, 0x2d, 0xf0, 0x51, 0x53, 0x2d, 0xf0, 0x58, 0xce, 0xba, + 0xc9, 0xd1, 0x04, 0xfc, 0xcd, 0x01, 0x18, 0xa7, 0xfd, 0xf4, 0xb7, 0xe5, 0x54, 0x1a, 0xc3, 0x66, + 0xf5, 0x31, 0x6c, 0x94, 0x0b, 0xf7, 0x9b, 0x4d, 0xff, 0x5e, 0x72, 0x5a, 0x57, 0x59, 0x29, 0x16, + 0x50, 0xf4, 0x2c, 0x8c, 0xb4, 0x03, 0xb2, 0xe7, 0xfa, 0x82, 0xbd, 0xd5, 0x94, 0x2c, 0x55, 0x51, + 0x8e, 0x15, 0x06, 0x7d, 0x16, 0x86, 0xae, 0x47, 0xaf, 0xf2, 0xba, 0xef, 0x35, 0xb8, 0xe4, 0xbc, + 0x28, 0x12, 0x4b, 0x68, 0xe5, 0xd8, 0xc0, 0x42, 0x77, 0xa1, 0xc4, 0xfe, 0xb3, 0x63, 0xe7, 0xe8, + 0x29, 0x4a, 0x45, 0xca, 0x3a, 0x41, 0x00, 0xc7, 0xb4, 0xd0, 0xf3, 0x00, 0x91, 0x8c, 0x3e, 0x1e, + 0x8a, 0xe0, 0x53, 0xea, 0x29, 0xa0, 0xe2, 0x92, 0x87, 0x58, 0xc3, 0x42, 0xcf, 0x40, 0x29, 0x72, + 0xdc, 0xe6, 0x4d, 0xd7, 0x23, 0x21, 0x93, 0x88, 0x17, 0x65, 0xe6, 0x38, 0x51, 0x88, 0x63, 0x38, + 0x65, 0xc5, 0x58, 0x64, 0x06, 0x9e, 0xe0, 0x78, 0x84, 0x61, 0x33, 0x56, 0xec, 0xa6, 0x2a, 0xc5, + 0x1a, 0x06, 0xda, 0x81, 0x27, 0x5c, 0x8f, 0x25, 0x61, 0x20, 0xb5, 0x5d, 0xb7, 0xbd, 0x71, 0xb3, + 0x76, 0x87, 0x04, 0xee, 0xd6, 0xfe, 0x92, 0x53, 0xdf, 0x25, 0x9e, 0x4c, 0x3e, 0xf9, 0x7e, 0xd1, + 0xc5, 0x27, 0x2a, 0x5d, 0x70, 0x71, 0x57, 0x4a, 0xf6, 0xcb, 0x70, 0xba, 0xea, 0x37, 0xaa, 0x7e, + 0x10, 0xad, 0xfa, 0xc1, 0x3d, 0x27, 0x68, 0xc8, 0x95, 0x32, 0x2f, 0xa3, 0x24, 0xd0, 0xa3, 0x70, + 0x90, 0x1f, 0x14, 0x46, 0x04, 0x84, 0x17, 0x18, 0xf3, 0x75, 0x44, 0xdf, 0x9e, 0x3a, 0x63, 0x03, + 0x54, 0x46, 0x92, 0x6b, 0x4e, 0x44, 0xd0, 0x2d, 0x96, 0x69, 0x39, 0xbe, 0x11, 0x45, 0xf5, 0xa7, + 0xb5, 0x4c, 0xcb, 0x31, 0x30, 0xf3, 0x0a, 0x35, 0xeb, 0xdb, 0xff, 0x7d, 0x90, 0x1d, 0x8e, 0x89, + 0xac, 0x16, 0xe8, 0x33, 0x30, 0x11, 0x92, 0x9b, 0xae, 0xd7, 0xb9, 0x2f, 0xa5, 0x11, 0x5d, 0xbc, + 0xb3, 0x6a, 0x2b, 0x3a, 0x26, 0x97, 0x69, 0x9a, 0x65, 0x38, 0x41, 0x0d, 0xb5, 0x60, 0xe2, 0x9e, + 0xeb, 0x35, 0xfc, 0x7b, 0xa1, 0xa4, 0x3f, 0x92, 0x2f, 0xda, 0xbc, 0xcb, 0x31, 0x13, 0x7d, 0x34, + 0x9a, 0xbb, 0x6b, 0x10, 0xc3, 0x09, 0xe2, 0x74, 0x01, 0x06, 0x1d, 0x6f, 0x31, 0xbc, 0x1d, 0x92, + 0x40, 0xe4, 0xcc, 0x66, 0x0b, 0x10, 0xcb, 0x42, 0x1c, 0xc3, 0xe9, 0x02, 0x64, 0x7f, 0xae, 0x05, + 0x7e, 0x87, 0xe7, 0x08, 0x10, 0x0b, 0x10, 0xab, 0x52, 0xac, 0x61, 0xd0, 0x0d, 0xca, 0xfe, 0xad, + 0xfb, 0x1e, 0xf6, 0xfd, 0x48, 0x6e, 0x69, 0x96, 0xa5, 0x55, 0x2b, 0xc7, 0x06, 0x16, 0x5a, 0x05, + 0x14, 0x76, 0xda, 0xed, 0x26, 0x33, 0xfb, 0x70, 0x9a, 0x8c, 0x14, 0x57, 0xb9, 0x17, 0x79, 0xe8, + 0xd4, 0x5a, 0x0a, 0x8a, 0x33, 0x6a, 0xd0, 0xb3, 0x7a, 0x4b, 0x74, 0x75, 0x90, 0x75, 0x95, 0xab, + 0x41, 0x6a, 0xbc, 0x9f, 0x12, 0x86, 0x56, 0x60, 0x38, 0xdc, 0x0f, 0xeb, 0x91, 0x88, 0x01, 0x97, + 0x93, 0xb8, 0xa8, 0xc6, 0x50, 0xb4, 0xbc, 0x79, 0xbc, 0x0a, 0x96, 0x75, 0x51, 0x1d, 0x66, 0x04, + 0xc5, 0xe5, 0x1d, 0xc7, 0x53, 0x69, 0x60, 0xb8, 0xf5, 0xeb, 0xd5, 0x07, 0x07, 0xf3, 0x33, 0xa2, + 0x65, 0x1d, 0x7c, 0x78, 0x30, 0x7f, 0xa6, 0xea, 0x37, 0x32, 0x20, 0x38, 0x8b, 0x1a, 0x5f, 0x7c, + 0xf5, 0xba, 0xdf, 0x6a, 0x57, 0x03, 0x7f, 0xcb, 0x6d, 0x92, 0x6e, 0xaa, 0xa4, 0x9a, 0x81, 0x29, + 0x16, 0x9f, 0x51, 0x86, 0x13, 0xd4, 0xec, 0x6f, 0x67, 0xfc, 0x0c, 0x4b, 0x13, 0x1d, 0x75, 0x02, + 0x82, 0x5a, 0x30, 0xde, 0x66, 0xdb, 0x44, 0x44, 0xee, 0x17, 0x6b, 0xfd, 0xc5, 0x3e, 0x45, 0x22, + 0xf7, 0xe8, 0x35, 0xa0, 0x44, 0x96, 0xec, 0xad, 0x59, 0xd5, 0xc9, 0x61, 0x93, 0xba, 0xfd, 0x63, + 0x8f, 0xb1, 0x1b, 0xb1, 0xc6, 0xe5, 0x1c, 0xc3, 0xc2, 0xd8, 0x5e, 0x3c, 0xad, 0xe6, 0xf2, 0x05, + 0x6e, 0xf1, 0xb4, 0x08, 0x83, 0x7d, 0x2c, 0xeb, 0xa2, 0x4f, 0xc3, 0x04, 0x7d, 0xa9, 0x68, 0xf9, + 0x57, 0x4e, 0xe5, 0x07, 0x45, 0x88, 0xd3, 0xae, 0x68, 0x59, 0x3d, 0xf4, 0xca, 0x38, 0x41, 0x0c, + 0xbd, 0xc1, 0xcc, 0x42, 0xcc, 0xd4, 0x2e, 0x3d, 0x48, 0xeb, 0x16, 0x20, 0x92, 0xac, 0x46, 0x24, + 0x2f, 0x6d, 0x8c, 0xfd, 0x68, 0xd3, 0xc6, 0xa0, 0x9b, 0x30, 0x2e, 0x72, 0x25, 0x8b, 0x95, 0x5b, + 0x34, 0xe4, 0x80, 0xe3, 0x58, 0x07, 0x1e, 0x26, 0x0b, 0xb0, 0x59, 0x19, 0x6d, 0xc3, 0x39, 0x2d, + 0x77, 0xd1, 0xb5, 0xc0, 0x61, 0xca, 0x7c, 0x97, 0x1d, 0xa7, 0xda, 0x5d, 0xfd, 0xe4, 0x83, 0x83, + 0xf9, 0x73, 0x1b, 0xdd, 0x10, 0x71, 0x77, 0x3a, 0xe8, 0x16, 0x9c, 0xe6, 0x2e, 0xbd, 0x65, 0xe2, + 0x34, 0x9a, 0xae, 0xa7, 0x98, 0x01, 0xbe, 0xe5, 0xcf, 0x3e, 0x38, 0x98, 0x3f, 0xbd, 0x98, 0x85, + 0x80, 0xb3, 0xeb, 0xa1, 0x8f, 0x42, 0xa9, 0xe1, 0x85, 0x62, 0x0c, 0x86, 0x8c, 0xf4, 0x50, 0xa5, + 0xf2, 0x7a, 0x4d, 0x7d, 0x7f, 0xfc, 0x07, 0xc7, 0x15, 0xd0, 0x36, 0x97, 0x15, 0x2b, 0x09, 0xc6, + 0x70, 0x2a, 0xa4, 0x51, 0x52, 0xc8, 0x67, 0x38, 0xf5, 0x71, 0x25, 0x89, 0xb2, 0x75, 0x37, 0xfc, + 0xfd, 0x0c, 0xc2, 0xe8, 0x75, 0x40, 0xf4, 0x05, 0xe1, 0xd6, 0xc9, 0x62, 0x9d, 0xa5, 0x85, 0x60, + 0xa2, 0xf5, 0x11, 0xd3, 0xcd, 0xac, 0x96, 0xc2, 0xc0, 0x19, 0xb5, 0xd0, 0x75, 0x7a, 0xaa, 0xe8, + 0xa5, 0xe2, 0xd4, 0x52, 0xc9, 0xfc, 0xca, 0xa4, 0x1d, 0x90, 0xba, 0x13, 0x91, 0x86, 0x49, 0x11, + 0x27, 0xea, 0xa1, 0x06, 0x3c, 0xe1, 0x74, 0x22, 0x9f, 0x89, 0xe1, 0x4d, 0xd4, 0x0d, 0x7f, 0x97, + 0x78, 0x4c, 0x03, 0x36, 0xb2, 0x74, 0x81, 0x72, 0x1b, 0x8b, 0x5d, 0xf0, 0x70, 0x57, 0x2a, 0x94, + 0x4b, 0x54, 0xd9, 0x7b, 0xc1, 0x0c, 0xd4, 0x94, 0x91, 0xc1, 0xf7, 0x25, 0x18, 0xdd, 0xf1, 0xc3, + 0x68, 0x9d, 0x44, 0xf7, 0xfc, 0x60, 0x57, 0xc4, 0xdb, 0x8c, 0x63, 0x34, 0xc7, 0x20, 0xac, 0xe3, + 0xd1, 0x67, 0x20, 0xb3, 0xcf, 0xa8, 0x94, 0x99, 0x6a, 0x7c, 0x24, 0x3e, 0x63, 0xae, 0xf3, 0x62, + 0x2c, 0xe1, 0x12, 0xb5, 0x52, 0x5d, 0x66, 0x6a, 0xee, 0x04, 0x6a, 0xa5, 0xba, 0x8c, 0x25, 0x9c, + 0x2e, 0xd7, 0x70, 0xc7, 0x09, 0x48, 0x35, 0xf0, 0xeb, 0x24, 0xd4, 0x22, 0x83, 0x3f, 0xce, 0xa3, + 0x89, 0xd2, 0xe5, 0x5a, 0xcb, 0x42, 0xc0, 0xd9, 0xf5, 0x10, 0x49, 0xe7, 0xed, 0x9a, 0xc8, 0xd7, + 0x4f, 0xa4, 0xf9, 0x99, 0x3e, 0x53, 0x77, 0x79, 0x30, 0xa5, 0x32, 0x86, 0xf1, 0xf8, 0xa1, 0xe1, + 0xec, 0x24, 0x5b, 0xdb, 0xfd, 0x07, 0x1f, 0x55, 0x1a, 0x9f, 0x4a, 0x82, 0x12, 0x4e, 0xd1, 0x36, + 0x62, 0x71, 0x4d, 0xf5, 0x8c, 0xc5, 0x75, 0x05, 0x4a, 0x61, 0x67, 0xb3, 0xe1, 0xb7, 0x1c, 0xd7, + 0x63, 0x6a, 0x6e, 0xed, 0x3d, 0x52, 0x93, 0x00, 0x1c, 0xe3, 0xa0, 0x55, 0x18, 0x71, 0xa4, 0x3a, + 0x07, 0xe5, 0x47, 0x5f, 0x51, 0x4a, 0x1c, 0x1e, 0x90, 0x40, 0x2a, 0x70, 0x54, 0x5d, 0xf4, 0x2a, + 0x8c, 0x0b, 0x97, 0x54, 0x91, 0xac, 0x72, 0xc6, 0xf4, 0x1b, 0xaa, 0xe9, 0x40, 0x6c, 0xe2, 0xa2, + 0xdb, 0x30, 0x1a, 0xf9, 0x4d, 0xe6, 0xfc, 0x42, 0xd9, 0xbc, 0x33, 0xf9, 0x71, 0xc4, 0x36, 0x14, + 0x9a, 0x2e, 0x49, 0x55, 0x55, 0xb1, 0x4e, 0x07, 0x6d, 0xf0, 0xf5, 0xce, 0x22, 0x64, 0x93, 0x70, + 0xf6, 0xb1, 0xfc, 0x3b, 0x49, 0x05, 0xd2, 0x36, 0xb7, 0x83, 0xa8, 0x89, 0x75, 0x32, 0xe8, 0x1a, + 0x4c, 0xb7, 0x03, 0xd7, 0x67, 0x6b, 0x42, 0x69, 0xf2, 0x66, 0xcd, 0xf4, 0x3c, 0xd5, 0x24, 0x02, + 0x4e, 0xd7, 0x61, 0x1e, 0xc5, 0xa2, 0x70, 0xf6, 0x2c, 0xcf, 0x67, 0xcd, 0x9f, 0x77, 0xbc, 0x0c, + 0x2b, 0x28, 0x5a, 0x63, 0x27, 0x31, 0x97, 0x4c, 0xcc, 0xce, 0xe5, 0x07, 0x7c, 0xd1, 0x25, 0x18, + 0x9c, 0x79, 0x55, 0x7f, 0x71, 0x4c, 0x01, 0x35, 0xb4, 0xc4, 0x87, 0xf4, 0xc5, 0x10, 0xce, 0x3e, + 0xd1, 0xc5, 0x48, 0x2e, 0xf1, 0xbc, 0x88, 0x19, 0x02, 0xa3, 0x38, 0xc4, 0x09, 0x9a, 0xe8, 0xe3, + 0x30, 0x25, 0xc2, 0xd4, 0xc5, 0xc3, 0x74, 0x2e, 0x36, 0x29, 0xc6, 0x09, 0x18, 0x4e, 0x61, 0xf3, + 0xcc, 0x01, 0xce, 0x66, 0x93, 0x88, 0xa3, 0xef, 0xa6, 0xeb, 0xed, 0x86, 0xb3, 0xe7, 0xd9, 0xf9, + 0x20, 0x32, 0x07, 0x24, 0xa1, 0x38, 0xa3, 0x06, 0xda, 0x80, 0xa9, 0x76, 0x40, 0x48, 0x8b, 0x31, + 0xfa, 0xe2, 0x3e, 0x9b, 0xe7, 0x0e, 0xf5, 0xb4, 0x27, 0xd5, 0x04, 0xec, 0x30, 0xa3, 0x0c, 0xa7, + 0x28, 0xa0, 0x7b, 0x30, 0xe2, 0xef, 0x91, 0x60, 0x87, 0x38, 0x8d, 0xd9, 0x0b, 0x5d, 0x4c, 0xdc, + 0xc5, 0xe5, 0x76, 0x4b, 0xe0, 0x26, 0xb4, 0xff, 0xb2, 0xb8, 0xb7, 0xf6, 0x5f, 0x36, 0x86, 0x7e, + 0xc8, 0x82, 0xb3, 0x52, 0x61, 0x50, 0x6b, 0xd3, 0x51, 0x5f, 0xf6, 0xbd, 0x30, 0x0a, 0xb8, 0x0b, + 0xf8, 0x93, 0xf9, 0x6e, 0xd1, 0x1b, 0x39, 0x95, 0x94, 0x70, 0xf4, 0x6c, 0x1e, 0x46, 0x88, 0xf3, + 0x5b, 0x44, 0xcb, 0x30, 0x1d, 0x92, 0x48, 0x1e, 0x46, 0x8b, 0xe1, 0xea, 0x1b, 0xe5, 0xf5, 0xd9, + 0x8b, 0xdc, 0x7f, 0x9d, 0x6e, 0x86, 0x5a, 0x12, 0x88, 0xd3, 0xf8, 0x73, 0xdf, 0x0a, 0xd3, 0xa9, + 0xeb, 0xff, 0x28, 0x19, 0x51, 0xe6, 0x76, 0x61, 0xdc, 0x18, 0xe2, 0x47, 0xaa, 0x3d, 0xfe, 0x57, + 0xc3, 0x50, 0x52, 0x9a, 0x45, 0x74, 0xc5, 0x54, 0x18, 0x9f, 0x4d, 0x2a, 0x8c, 0x47, 0xe8, 0xbb, + 0x5e, 0xd7, 0x11, 0x6f, 0x64, 0x44, 0xed, 0xca, 0xdb, 0xd0, 0xfd, 0xbb, 0x63, 0x6b, 0xe2, 0xda, + 0x62, 0xdf, 0x9a, 0xe7, 0x81, 0xae, 0x12, 0xe0, 0x6b, 0x30, 0xed, 0xf9, 0x8c, 0xe7, 0x24, 0x0d, + 0xc9, 0x50, 0x30, 0xbe, 0xa1, 0xa4, 0x87, 0xc1, 0x48, 0x20, 0xe0, 0x74, 0x1d, 0xda, 0x20, 0xbf, + 0xf8, 0x93, 0x22, 0x67, 0xce, 0x17, 0x60, 0x01, 0x45, 0x17, 0x61, 0xb0, 0xed, 0x37, 0x2a, 0x55, + 0xc1, 0x6f, 0x6a, 0xb1, 0x22, 0x1b, 0x95, 0x2a, 0xe6, 0x30, 0xb4, 0x08, 0x43, 0xec, 0x47, 0x38, + 0x3b, 0x96, 0x1f, 0xef, 0x80, 0xd5, 0xd0, 0xf2, 0xcd, 0xb0, 0x0a, 0x58, 0x54, 0x64, 0xa2, 0x2f, + 0xca, 0xa4, 0x33, 0xd1, 0xd7, 0xf0, 0x43, 0x8a, 0xbe, 0x24, 0x01, 0x1c, 0xd3, 0x42, 0xf7, 0xe1, + 0xb4, 0xf1, 0x30, 0xe2, 0x4b, 0x84, 0x84, 0xc2, 0xe7, 0xfa, 0x62, 0xd7, 0x17, 0x91, 0xd0, 0x54, + 0x9f, 0x13, 0x9d, 0x3e, 0x5d, 0xc9, 0xa2, 0x84, 0xb3, 0x1b, 0x40, 0x4d, 0x98, 0xae, 0xa7, 0x5a, + 0x1d, 0xe9, 0xbf, 0x55, 0x35, 0xa1, 0xe9, 0x16, 0xd3, 0x84, 0xd1, 0xab, 0x30, 0xf2, 0x96, 0x1f, + 0xb2, 0xb3, 0x5a, 0xf0, 0xc8, 0xd2, 0x61, 0x77, 0xe4, 0x8d, 0x5b, 0x35, 0x56, 0x7e, 0x78, 0x30, + 0x3f, 0x5a, 0xf5, 0x1b, 0xf2, 0x2f, 0x56, 0x15, 0xd0, 0xf7, 0x5a, 0x30, 0x97, 0x7e, 0x79, 0xa9, + 0x4e, 0x8f, 0xf7, 0xdf, 0x69, 0x5b, 0x34, 0x3a, 0xb7, 0x92, 0x4b, 0x0e, 0x77, 0x69, 0xca, 0xfe, + 0x65, 0x8b, 0x49, 0xdd, 0x84, 0x06, 0x88, 0x84, 0x9d, 0xe6, 0x49, 0xa4, 0xd9, 0x5c, 0x31, 0x94, + 0x53, 0x0f, 0x6d, 0xb9, 0xf0, 0xcf, 0x2d, 0x66, 0xb9, 0x70, 0x82, 0x2e, 0x0a, 0x6f, 0xc0, 0x48, + 0x24, 0x93, 0xa5, 0x76, 0xc9, 0x0c, 0xaa, 0x75, 0x8a, 0x59, 0x6f, 0x28, 0x8e, 0x55, 0xe5, 0x45, + 0x55, 0x64, 0xec, 0x7f, 0xc4, 0x67, 0x40, 0x42, 0x4e, 0x40, 0x07, 0x50, 0x36, 0x75, 0x00, 0xf3, + 0x3d, 0xbe, 0x20, 0x47, 0x17, 0xf0, 0x0f, 0xcd, 0x7e, 0x33, 0x49, 0xcd, 0xbb, 0xdd, 0x64, 0xc6, + 0xfe, 0xa2, 0x05, 0x10, 0x87, 0xe2, 0x65, 0xf2, 0x65, 0x3f, 0x90, 0x39, 0x16, 0xb3, 0xb2, 0x09, + 0xbd, 0x4c, 0x79, 0x54, 0x3f, 0xf2, 0xeb, 0x7e, 0x53, 0x68, 0xb8, 0x9e, 0x88, 0xd5, 0x10, 0xbc, + 0xfc, 0x50, 0xfb, 0x8d, 0x15, 0x36, 0x9a, 0x97, 0x81, 0xbf, 0x8a, 0xb1, 0x62, 0xcc, 0x08, 0xfa, + 0xf5, 0x23, 0x16, 0x9c, 0xca, 0xb2, 0x77, 0xa5, 0x2f, 0x1e, 0x2e, 0xb3, 0x52, 0xe6, 0x4c, 0x6a, + 0x36, 0xef, 0x88, 0x72, 0xac, 0x30, 0xfa, 0xce, 0x1c, 0x76, 0xb4, 0x18, 0xb8, 0xb7, 0x60, 0xbc, + 0x1a, 0x10, 0xed, 0x72, 0x7d, 0x8d, 0x3b, 0x93, 0xf3, 0xfe, 0x3c, 0x7b, 0x64, 0x47, 0x72, 0xfb, + 0x67, 0x0a, 0x70, 0x8a, 0x5b, 0x05, 0x2c, 0xee, 0xf9, 0x6e, 0xa3, 0xea, 0x37, 0x44, 0xd6, 0xb7, + 0x4f, 0xc1, 0x58, 0x5b, 0x13, 0x34, 0x76, 0x8b, 0xe7, 0xa8, 0x0b, 0x24, 0x63, 0xd1, 0x88, 0x5e, + 0x8a, 0x0d, 0x5a, 0xa8, 0x01, 0x63, 0x64, 0xcf, 0xad, 0x2b, 0xd5, 0x72, 0xe1, 0xc8, 0x17, 0x9d, + 0x6a, 0x65, 0x45, 0xa3, 0x83, 0x0d, 0xaa, 0x8f, 0x20, 0x9f, 0xaf, 0xfd, 0xa3, 0x16, 0x3c, 0x96, + 0x13, 0xfd, 0x91, 0x36, 0x77, 0x8f, 0xd9, 0x5f, 0x88, 0x65, 0xab, 0x9a, 0xe3, 0x56, 0x19, 0x58, + 0x40, 0xd1, 0x27, 0x00, 0xb8, 0x55, 0x05, 0x7d, 0x72, 0xf7, 0x0a, 0x93, 0x67, 0x44, 0xf8, 0xd2, + 0x82, 0x35, 0xc9, 0xfa, 0x58, 0xa3, 0x65, 0xff, 0x54, 0x11, 0x06, 0x79, 0x6a, 0xf6, 0x55, 0x18, + 0xde, 0xe1, 0xb9, 0x30, 0xfa, 0x49, 0xbb, 0x11, 0x0b, 0x43, 0x78, 0x01, 0x96, 0x95, 0xd1, 0x1a, + 0xcc, 0xf0, 0x5c, 0x22, 0xcd, 0x32, 0x69, 0x3a, 0xfb, 0x52, 0x72, 0xc7, 0xf3, 0x70, 0x2a, 0x09, + 0x66, 0x25, 0x8d, 0x82, 0xb3, 0xea, 0xa1, 0xd7, 0x60, 0x82, 0xbe, 0xa4, 0xfc, 0x4e, 0x24, 0x29, + 0xf1, 0x2c, 0x22, 0xea, 0xe9, 0xb6, 0x61, 0x40, 0x71, 0x02, 0x9b, 0x3e, 0xe6, 0xdb, 0x29, 0x19, + 0xe5, 0x60, 0xfc, 0x98, 0x37, 0xe5, 0x92, 0x26, 0x2e, 0x33, 0x74, 0xed, 0x30, 0xb3, 0xde, 0x8d, + 0x9d, 0x80, 0x84, 0x3b, 0x7e, 0xb3, 0xc1, 0x98, 0xbe, 0x41, 0xcd, 0xd0, 0x35, 0x01, 0xc7, 0xa9, + 0x1a, 0x94, 0xca, 0x96, 0xe3, 0x36, 0x3b, 0x01, 0x89, 0xa9, 0x0c, 0x99, 0x54, 0x56, 0x13, 0x70, + 0x9c, 0xaa, 0x41, 0xd7, 0xd1, 0xe9, 0x6a, 0xe0, 0xd3, 0x83, 0x54, 0x86, 0xb4, 0x51, 0xd6, 0xcb, + 0xc3, 0xd2, 0xfb, 0xb6, 0x4b, 0xf0, 0x37, 0x61, 0xdf, 0xc9, 0x29, 0x18, 0x06, 0x04, 0x35, 0xe1, + 0x77, 0x2b, 0xa9, 0xa0, 0xab, 0x30, 0x2a, 0x32, 0x44, 0x30, 0x23, 0x5b, 0x3e, 0x75, 0xcc, 0xe0, + 0xa1, 0x1c, 0x17, 0x63, 0x1d, 0xc7, 0xfe, 0xbe, 0x02, 0xcc, 0x64, 0x78, 0x49, 0xf0, 0xa3, 0x6a, + 0xdb, 0x0d, 0x23, 0x95, 0x6b, 0x50, 0x3b, 0xaa, 0x78, 0x39, 0x56, 0x18, 0x74, 0x3f, 0xf0, 0xc3, + 0x30, 0x79, 0x00, 0x0a, 0x2b, 0x64, 0x01, 0x3d, 0x62, 0xd6, 0xbe, 0x0b, 0x30, 0xd0, 0x09, 0x89, + 0x0c, 0xdb, 0xa8, 0xae, 0x06, 0xa6, 0x07, 0x63, 0x10, 0xca, 0xaa, 0x6f, 0x2b, 0x95, 0x92, 0xc6, + 0xaa, 0x73, 0xa5, 0x12, 0x87, 0xd1, 0xce, 0x45, 0xc4, 0x73, 0xbc, 0x48, 0x30, 0xf4, 0x71, 0xfc, + 0x31, 0x56, 0x8a, 0x05, 0xd4, 0xfe, 0x52, 0x11, 0xce, 0xe6, 0xfa, 0x4d, 0xd1, 0xae, 0xb7, 0x7c, + 0xcf, 0x8d, 0x7c, 0x65, 0x49, 0xc2, 0x63, 0x8e, 0x91, 0xf6, 0xce, 0x9a, 0x28, 0xc7, 0x0a, 0x03, + 0x5d, 0x82, 0x41, 0x26, 0x45, 0x4b, 0x65, 0x5d, 0x5c, 0x2a, 0xf3, 0x20, 0x34, 0x1c, 0xdc, 0x77, + 0x46, 0xdb, 0x8b, 0xf4, 0x96, 0xf4, 0x9b, 0xc9, 0x43, 0x8b, 0x76, 0xd7, 0xf7, 0x9b, 0x98, 0x01, + 0xd1, 0x07, 0xc4, 0x78, 0x25, 0x4c, 0x27, 0xb0, 0xd3, 0xf0, 0x43, 0x6d, 0xd0, 0x9e, 0x86, 0xe1, + 0x5d, 0xb2, 0x1f, 0xb8, 0xde, 0x76, 0xd2, 0xa4, 0xe6, 0x06, 0x2f, 0xc6, 0x12, 0x6e, 0x26, 0xd0, + 0x1a, 0x3e, 0xee, 0x54, 0xb4, 0x23, 0x3d, 0xaf, 0xc0, 0x1f, 0x28, 0xc2, 0x24, 0x5e, 0x2a, 0xbf, + 0x37, 0x11, 0xb7, 0xd3, 0x13, 0x71, 0xdc, 0xa9, 0x68, 0x7b, 0xcf, 0xc6, 0x2f, 0x58, 0x30, 0xc9, + 0xf2, 0x54, 0x88, 0x68, 0x55, 0xae, 0xef, 0x9d, 0x00, 0xbb, 0x79, 0x11, 0x06, 0x03, 0xda, 0x68, + 0x32, 0xdd, 0x22, 0xeb, 0x09, 0xe6, 0x30, 0xf4, 0x04, 0x0c, 0xb0, 0x2e, 0xd0, 0xc9, 0x1b, 0xe3, + 0x99, 0xaa, 0xca, 0x4e, 0xe4, 0x60, 0x56, 0xca, 0x42, 0xb0, 0x60, 0xd2, 0x6e, 0xba, 0xbc, 0xd3, + 0xb1, 0x8e, 0xf3, 0xdd, 0xe1, 0x51, 0x9d, 0xd9, 0xb5, 0x77, 0x16, 0x82, 0x25, 0x9b, 0x64, 0xf7, + 0xa7, 0xdc, 0x1f, 0x17, 0xe0, 0x7c, 0x66, 0xbd, 0xbe, 0x43, 0xb0, 0x74, 0xaf, 0xfd, 0x28, 0x33, + 0x11, 0x14, 0x4f, 0xd0, 0x60, 0x71, 0xa0, 0x5f, 0x0e, 0x73, 0xb0, 0x8f, 0xc8, 0x28, 0x99, 0x43, + 0xf6, 0x2e, 0x89, 0x8c, 0x92, 0xd9, 0xb7, 0x9c, 0xa7, 0xe8, 0x5f, 0x16, 0x72, 0xbe, 0x85, 0x3d, + 0x4a, 0x2f, 0xd3, 0x73, 0x86, 0x01, 0x43, 0xf9, 0xd0, 0xe3, 0x67, 0x0c, 0x2f, 0xc3, 0x0a, 0x8a, + 0x16, 0x61, 0xb2, 0xe5, 0x7a, 0xf4, 0xf0, 0xd9, 0x37, 0x19, 0x3f, 0x15, 0xb8, 0x6a, 0xcd, 0x04, + 0xe3, 0x24, 0x3e, 0x72, 0xb5, 0xa8, 0x29, 0x85, 0xfc, 0x04, 0xe6, 0xb9, 0xbd, 0x5d, 0x30, 0xf5, + 0xbf, 0x6a, 0x14, 0x33, 0x22, 0xa8, 0xac, 0x69, 0xb2, 0x88, 0x62, 0xff, 0xb2, 0x88, 0xb1, 0x6c, + 0x39, 0xc4, 0xdc, 0xab, 0x30, 0xfe, 0xd0, 0xc2, 0x67, 0xfb, 0xab, 0x45, 0x78, 0xbc, 0xcb, 0xb6, + 0xe7, 0x67, 0xbd, 0x31, 0x07, 0xda, 0x59, 0x9f, 0x9a, 0x87, 0x2a, 0x9c, 0xda, 0xea, 0x34, 0x9b, + 0xfb, 0xcc, 0x8e, 0x9f, 0x34, 0x24, 0x86, 0xe0, 0x29, 0xe5, 0x03, 0xfc, 0xd4, 0x6a, 0x06, 0x0e, + 0xce, 0xac, 0x49, 0x19, 0x7a, 0x7a, 0x93, 0xec, 0x2b, 0x52, 0x09, 0x86, 0x1e, 0xeb, 0x40, 0x6c, + 0xe2, 0xa2, 0x6b, 0x30, 0xed, 0xec, 0x39, 0x2e, 0x0f, 0x3d, 0x2b, 0x09, 0x70, 0x8e, 0x5e, 0xc9, + 0x0c, 0x17, 0x93, 0x08, 0x38, 0x5d, 0x07, 0xbd, 0x0e, 0xc8, 0xdf, 0x64, 0xd6, 0xbe, 0x8d, 0x6b, + 0xc4, 0x13, 0x6a, 0x3a, 0x36, 0x77, 0xc5, 0xf8, 0x48, 0xb8, 0x95, 0xc2, 0xc0, 0x19, 0xb5, 0x12, + 0x51, 0x48, 0x86, 0xf2, 0xa3, 0x90, 0x74, 0x3f, 0x17, 0x7b, 0x26, 0xc1, 0xf8, 0x4f, 0x16, 0xbd, + 0xbe, 0x38, 0x93, 0x6f, 0x06, 0xd3, 0x7b, 0x95, 0x99, 0xd9, 0x71, 0x79, 0xa2, 0x16, 0x3b, 0xe3, + 0xb4, 0x66, 0x66, 0x17, 0x03, 0xb1, 0x89, 0xcb, 0x17, 0x44, 0x18, 0xbb, 0x6c, 0x1a, 0x2c, 0xbe, + 0x88, 0xf8, 0xa3, 0x30, 0xd0, 0x27, 0x61, 0xb8, 0xe1, 0xee, 0xb9, 0xa1, 0x90, 0xa6, 0x1c, 0x59, + 0x75, 0x11, 0x9f, 0x83, 0x65, 0x4e, 0x06, 0x4b, 0x7a, 0xf6, 0x0f, 0x14, 0x60, 0x5c, 0xb6, 0xf8, + 0x46, 0xc7, 0x8f, 0x9c, 0x13, 0xb8, 0x96, 0xaf, 0x19, 0xd7, 0xf2, 0x07, 0xba, 0x85, 0x3d, 0x62, + 0x5d, 0xca, 0xbd, 0x8e, 0x6f, 0x25, 0xae, 0xe3, 0xa7, 0x7a, 0x93, 0xea, 0x7e, 0x0d, 0xff, 0x63, + 0x0b, 0xa6, 0x0d, 0xfc, 0x13, 0xb8, 0x0d, 0x56, 0xcd, 0xdb, 0xe0, 0xc9, 0x9e, 0xdf, 0x90, 0x73, + 0x0b, 0x7c, 0x77, 0x31, 0xd1, 0x77, 0x76, 0xfa, 0xbf, 0x05, 0x03, 0x3b, 0x4e, 0xd0, 0xe8, 0x16, + 0xe6, 0x3d, 0x55, 0x69, 0xe1, 0xba, 0x13, 0x08, 0x3d, 0xe5, 0xb3, 0x2a, 0x7f, 0xb8, 0x13, 0xf4, + 0xd6, 0x51, 0xb2, 0xa6, 0xd0, 0xcb, 0x30, 0x14, 0xd6, 0xfd, 0xb6, 0xb2, 0xe2, 0xbf, 0xc0, 0x73, + 0x8b, 0xd3, 0x92, 0xc3, 0x83, 0x79, 0x64, 0x36, 0x47, 0x8b, 0xb1, 0xc0, 0x47, 0x9f, 0x82, 0x71, + 0xf6, 0x4b, 0x19, 0x0d, 0x15, 0xf3, 0x53, 0x42, 0xd5, 0x74, 0x44, 0x6e, 0x51, 0x67, 0x14, 0x61, + 0x93, 0xd4, 0xdc, 0x36, 0x94, 0xd4, 0x67, 0x3d, 0x52, 0xdd, 0xe0, 0xbf, 0x2f, 0xc2, 0x4c, 0xc6, + 0x9a, 0x43, 0xa1, 0x31, 0x13, 0x57, 0xfb, 0x5c, 0xaa, 0xef, 0x70, 0x2e, 0x42, 0xf6, 0x1a, 0x6a, + 0x88, 0xb5, 0xd5, 0x77, 0xa3, 0xb7, 0x43, 0x92, 0x6c, 0x94, 0x16, 0xf5, 0x6e, 0x94, 0x36, 0x76, + 0x62, 0x43, 0x4d, 0x1b, 0x52, 0x3d, 0x7d, 0xa4, 0x73, 0xfa, 0x67, 0x45, 0x38, 0x95, 0x15, 0x89, + 0x0d, 0x7d, 0x3e, 0x91, 0x64, 0xf0, 0xc5, 0x7e, 0x63, 0xb8, 0xf1, 0xcc, 0x83, 0x5c, 0x06, 0xbc, + 0xb4, 0x60, 0xa6, 0x1d, 0xec, 0x39, 0xcc, 0xa2, 0x4d, 0x16, 0x8e, 0x20, 0xe0, 0xc9, 0x21, 0xe5, + 0xf1, 0xf1, 0xe1, 0xbe, 0x3b, 0x20, 0xb2, 0x4a, 0x86, 0x09, 0x83, 0x04, 0x59, 0xdc, 0xdb, 0x20, + 0x41, 0xb6, 0x3c, 0xe7, 0xc2, 0xa8, 0xf6, 0x35, 0x8f, 0x74, 0xc6, 0x77, 0xe9, 0x6d, 0xa5, 0xf5, + 0xfb, 0x91, 0xce, 0xfa, 0x8f, 0x5a, 0x90, 0xb0, 0x51, 0x57, 0x62, 0x31, 0x2b, 0x57, 0x2c, 0x76, + 0x01, 0x06, 0x02, 0xbf, 0x49, 0x92, 0xd9, 0xf8, 0xb0, 0xdf, 0x24, 0x98, 0x41, 0x28, 0x46, 0x14, + 0x0b, 0x3b, 0xc6, 0xf4, 0x87, 0x9c, 0x78, 0xa2, 0x5d, 0x84, 0xc1, 0x26, 0xd9, 0x23, 0xcd, 0x64, + 0xd2, 0x94, 0x9b, 0xb4, 0x10, 0x73, 0x98, 0xfd, 0x0b, 0x03, 0x70, 0xae, 0x6b, 0x40, 0x0f, 0xfa, + 0x1c, 0xda, 0x76, 0x22, 0x72, 0xcf, 0xd9, 0x4f, 0x66, 0x37, 0xb8, 0xc6, 0x8b, 0xb1, 0x84, 0x33, + 0x2f, 0x22, 0x1e, 0xa4, 0x38, 0x21, 0x44, 0x14, 0xb1, 0x89, 0x05, 0xd4, 0x14, 0x4a, 0x15, 0x8f, + 0x43, 0x28, 0xf5, 0x3c, 0x40, 0x18, 0x36, 0xb9, 0x25, 0x4f, 0x43, 0xb8, 0x27, 0xc5, 0xc1, 0xac, + 0x6b, 0x37, 0x05, 0x04, 0x6b, 0x58, 0xa8, 0x0c, 0x53, 0xed, 0xc0, 0x8f, 0xb8, 0x4c, 0xb6, 0xcc, + 0x8d, 0xdd, 0x06, 0xcd, 0x58, 0x0a, 0xd5, 0x04, 0x1c, 0xa7, 0x6a, 0xa0, 0x97, 0x60, 0x54, 0xc4, + 0x57, 0xa8, 0xfa, 0x7e, 0x53, 0x88, 0x81, 0x94, 0xfd, 0x57, 0x2d, 0x06, 0x61, 0x1d, 0x4f, 0xab, + 0xc6, 0x04, 0xbd, 0xc3, 0x99, 0xd5, 0xb8, 0xb0, 0x57, 0xc3, 0x4b, 0x44, 0x65, 0x1c, 0xe9, 0x2b, + 0x2a, 0x63, 0x2c, 0x18, 0x2b, 0xf5, 0xad, 0xdb, 0x82, 0x9e, 0xa2, 0xa4, 0x9f, 0x1d, 0x80, 0x19, + 0xb1, 0x70, 0x1e, 0xf5, 0x72, 0xb9, 0x9d, 0x5e, 0x2e, 0xc7, 0x21, 0x3a, 0x7b, 0x6f, 0xcd, 0x9c, + 0xf4, 0x9a, 0xf9, 0x41, 0x0b, 0x4c, 0xf6, 0x0a, 0xfd, 0x3f, 0xb9, 0xe9, 0x61, 0x5e, 0xca, 0x65, + 0xd7, 0x1a, 0xf2, 0x02, 0x79, 0x87, 0x89, 0x62, 0xec, 0xff, 0x68, 0xc1, 0x93, 0x3d, 0x29, 0xa2, + 0x15, 0x28, 0x31, 0x1e, 0x50, 0x7b, 0x9d, 0x3d, 0xa5, 0x8c, 0x61, 0x25, 0x20, 0x87, 0x25, 0x8d, + 0x6b, 0xa2, 0x95, 0x54, 0x1e, 0x9e, 0xa7, 0x33, 0xf2, 0xf0, 0x9c, 0x36, 0x86, 0xe7, 0x21, 0x13, + 0xf1, 0x7c, 0x3f, 0xbd, 0x71, 0x0c, 0x47, 0x14, 0xf4, 0x61, 0x43, 0xec, 0x67, 0x27, 0xc4, 0x7e, + 0xc8, 0xc4, 0xd6, 0xee, 0x90, 0x8f, 0xc3, 0x14, 0x0b, 0xbc, 0xc4, 0x4c, 0xb3, 0x85, 0x8b, 0x4c, + 0x21, 0x36, 0xbf, 0xbc, 0x99, 0x80, 0xe1, 0x14, 0xb6, 0xfd, 0x47, 0x45, 0x18, 0xe2, 0xdb, 0xef, + 0x04, 0xde, 0x84, 0xcf, 0x40, 0xc9, 0x6d, 0xb5, 0x3a, 0x3c, 0xb5, 0xca, 0x20, 0xf7, 0x8b, 0xa5, + 0xf3, 0x54, 0x91, 0x85, 0x38, 0x86, 0xa3, 0x55, 0x21, 0x71, 0xee, 0x12, 0xdb, 0x91, 0x77, 0x7c, + 0xa1, 0xec, 0x44, 0x0e, 0x67, 0x70, 0xd4, 0x3d, 0x1b, 0xcb, 0xa6, 0xd1, 0x67, 0x00, 0xc2, 0x28, + 0x70, 0xbd, 0x6d, 0x5a, 0x26, 0x42, 0x99, 0x7e, 0xb0, 0x0b, 0xb5, 0x9a, 0x42, 0xe6, 0x34, 0xe3, + 0x33, 0x47, 0x01, 0xb0, 0x46, 0x11, 0x2d, 0x18, 0x37, 0xfd, 0x5c, 0x62, 0xee, 0x80, 0x53, 0x8d, + 0xe7, 0x6c, 0xee, 0x23, 0x50, 0x52, 0xc4, 0x7b, 0xc9, 0x9f, 0xc6, 0x74, 0xb6, 0xe8, 0x63, 0x30, + 0x99, 0xe8, 0xdb, 0x91, 0xc4, 0x57, 0xbf, 0x68, 0xc1, 0x24, 0xef, 0xcc, 0x8a, 0xb7, 0x27, 0x6e, + 0x83, 0xb7, 0xe1, 0x54, 0x33, 0xe3, 0x54, 0x16, 0xd3, 0xdf, 0xff, 0x29, 0xae, 0xc4, 0x55, 0x59, + 0x50, 0x9c, 0xd9, 0x06, 0xba, 0x4c, 0x77, 0x1c, 0x3d, 0x75, 0x9d, 0xa6, 0x70, 0x93, 0x1d, 0xe3, + 0xbb, 0x8d, 0x97, 0x61, 0x05, 0xb5, 0x7f, 0xd7, 0x82, 0x69, 0xde, 0xf3, 0x1b, 0x64, 0x5f, 0x9d, + 0x4d, 0x5f, 0xcf, 0xbe, 0x8b, 0xa4, 0x5e, 0x85, 0x9c, 0xa4, 0x5e, 0xfa, 0xa7, 0x15, 0xbb, 0x7e, + 0xda, 0xcf, 0x58, 0x20, 0x56, 0xc8, 0x09, 0x08, 0x21, 0xbe, 0xd5, 0x14, 0x42, 0xcc, 0xe5, 0x6f, + 0x82, 0x1c, 0xe9, 0xc3, 0x5f, 0x58, 0x30, 0xc5, 0x11, 0x62, 0x6d, 0xf9, 0xd7, 0x75, 0x1e, 0xfa, + 0x49, 0xfd, 0x7b, 0x83, 0xec, 0x6f, 0xf8, 0x55, 0x27, 0xda, 0xc9, 0xfe, 0x28, 0x63, 0xb2, 0x06, + 0xba, 0x4e, 0x56, 0x43, 0x6e, 0xa0, 0x23, 0xe4, 0x13, 0x3f, 0x72, 0xce, 0x0b, 0xfb, 0x6b, 0x16, + 0x20, 0xde, 0x8c, 0xc1, 0xb8, 0x51, 0x76, 0x88, 0x95, 0x6a, 0x17, 0x5d, 0x7c, 0x34, 0x29, 0x08, + 0xd6, 0xb0, 0x8e, 0x65, 0x78, 0x12, 0x26, 0x0f, 0xc5, 0xde, 0x26, 0x0f, 0x47, 0x18, 0xd1, 0x7f, + 0x3d, 0x04, 0x49, 0x67, 0x1c, 0x74, 0x07, 0xc6, 0xea, 0x4e, 0xdb, 0xd9, 0x74, 0x9b, 0x6e, 0xe4, + 0x92, 0xb0, 0x9b, 0xad, 0xd4, 0xb2, 0x86, 0x27, 0x94, 0xd4, 0x5a, 0x09, 0x36, 0xe8, 0xa0, 0x05, + 0x80, 0x76, 0xe0, 0xee, 0xb9, 0x4d, 0xb2, 0xcd, 0x64, 0x25, 0xcc, 0x31, 0x9f, 0x1b, 0x00, 0xc9, + 0x52, 0xac, 0x61, 0x64, 0x78, 0x3e, 0x17, 0x1f, 0xb1, 0xe7, 0x33, 0x9c, 0x98, 0xe7, 0xf3, 0xc0, + 0x91, 0x3c, 0x9f, 0x47, 0x8e, 0xec, 0xf9, 0x3c, 0xd8, 0x97, 0xe7, 0x33, 0x86, 0x33, 0x92, 0xf7, + 0xa4, 0xff, 0x57, 0xdd, 0x26, 0x11, 0x0f, 0x0e, 0x1e, 0x4d, 0x60, 0xee, 0xc1, 0xc1, 0xfc, 0x19, + 0x9c, 0x89, 0x81, 0x73, 0x6a, 0xa2, 0x4f, 0xc0, 0xac, 0xd3, 0x6c, 0xfa, 0xf7, 0xd4, 0xa4, 0xae, + 0x84, 0x75, 0xa7, 0xc9, 0x95, 0x10, 0xc3, 0x8c, 0xea, 0x13, 0x0f, 0x0e, 0xe6, 0x67, 0x17, 0x73, + 0x70, 0x70, 0x6e, 0x6d, 0xf4, 0x51, 0x28, 0xb5, 0x03, 0xbf, 0xbe, 0xa6, 0x79, 0x0c, 0x9e, 0xa7, + 0x03, 0x58, 0x95, 0x85, 0x87, 0x07, 0xf3, 0xe3, 0xea, 0x0f, 0xbb, 0xf0, 0xe3, 0x0a, 0x19, 0xae, + 0xcc, 0xa3, 0xc7, 0xea, 0xca, 0xbc, 0x0b, 0x33, 0x35, 0x12, 0xb8, 0x2c, 0xfb, 0x78, 0x23, 0x3e, + 0x9f, 0x36, 0xa0, 0x14, 0x24, 0x4e, 0xe4, 0xbe, 0xe2, 0x2d, 0x6a, 0xc9, 0x07, 0xe4, 0x09, 0x1c, + 0x13, 0xb2, 0xff, 0x97, 0x05, 0xc3, 0xc2, 0xf9, 0xe6, 0x04, 0xb8, 0xc6, 0x45, 0x43, 0x93, 0x30, + 0x9f, 0x3d, 0x60, 0xac, 0x33, 0xb9, 0x3a, 0x84, 0x4a, 0x42, 0x87, 0xf0, 0x64, 0x37, 0x22, 0xdd, + 0xb5, 0x07, 0x7f, 0xbd, 0x48, 0xb9, 0x77, 0xc3, 0x0d, 0xf4, 0xd1, 0x0f, 0xc1, 0x3a, 0x0c, 0x87, + 0xc2, 0x0d, 0xb1, 0x90, 0x6f, 0x37, 0x9f, 0x9c, 0xc4, 0xd8, 0x8e, 0x4d, 0x38, 0x1e, 0x4a, 0x22, + 0x99, 0xfe, 0x8d, 0xc5, 0x47, 0xe8, 0xdf, 0xd8, 0xcb, 0x51, 0x76, 0xe0, 0x38, 0x1c, 0x65, 0xed, + 0xaf, 0xb0, 0x9b, 0x53, 0x2f, 0x3f, 0x01, 0xa6, 0xea, 0x9a, 0x79, 0xc7, 0xda, 0x5d, 0x56, 0x96, + 0xe8, 0x54, 0x0e, 0x73, 0xf5, 0xf3, 0x16, 0x9c, 0xcb, 0xf8, 0x2a, 0x8d, 0xd3, 0x7a, 0x16, 0x46, + 0x9c, 0x4e, 0xc3, 0x55, 0x7b, 0x59, 0xd3, 0x27, 0x2e, 0x8a, 0x72, 0xac, 0x30, 0xd0, 0x32, 0x4c, + 0x93, 0xfb, 0x6d, 0x97, 0xab, 0x52, 0x75, 0x63, 0xd3, 0x22, 0xf7, 0xd8, 0x5a, 0x49, 0x02, 0x71, + 0x1a, 0x5f, 0x05, 0x27, 0x29, 0xe6, 0x06, 0x27, 0xf9, 0x7b, 0x16, 0x8c, 0x2a, 0x47, 0xbc, 0x47, + 0x3e, 0xda, 0x1f, 0x37, 0x47, 0xfb, 0xf1, 0x2e, 0xa3, 0x9d, 0x33, 0xcc, 0xbf, 0x5d, 0x50, 0xfd, + 0xad, 0xfa, 0x41, 0xd4, 0x07, 0x07, 0xf7, 0xf0, 0xe6, 0xf1, 0x57, 0x61, 0xd4, 0x69, 0xb7, 0x25, + 0x40, 0xda, 0xa0, 0xb1, 0xe8, 0xb9, 0x71, 0x31, 0xd6, 0x71, 0x94, 0xb5, 0x7e, 0x31, 0xd7, 0x5a, + 0xbf, 0x01, 0x10, 0x39, 0xc1, 0x36, 0x89, 0x68, 0x99, 0x08, 0x24, 0x96, 0x7f, 0xde, 0x74, 0x22, + 0xb7, 0xb9, 0xe0, 0x7a, 0x51, 0x18, 0x05, 0x0b, 0x15, 0x2f, 0xba, 0x15, 0xf0, 0x27, 0xa4, 0x16, + 0xa9, 0x47, 0xd1, 0xc2, 0x1a, 0x5d, 0xe9, 0x74, 0xce, 0xda, 0x18, 0x34, 0x8d, 0x19, 0xd6, 0x45, + 0x39, 0x56, 0x18, 0xf6, 0x47, 0xd8, 0xed, 0xc3, 0xc6, 0xf4, 0x68, 0xa1, 0x6d, 0xfe, 0xeb, 0x98, + 0x9a, 0x0d, 0xa6, 0xc9, 0x2c, 0xeb, 0x01, 0x74, 0xba, 0x1f, 0xf6, 0xb4, 0x61, 0xdd, 0x77, 0x2c, + 0x8e, 0xb2, 0x83, 0xbe, 0x2d, 0x65, 0xa0, 0xf2, 0x5c, 0x8f, 0x5b, 0xe3, 0x08, 0x26, 0x29, 0x2c, + 0x95, 0x06, 0x4b, 0x34, 0x50, 0xa9, 0x8a, 0x7d, 0xa1, 0xa5, 0xd2, 0x10, 0x00, 0x1c, 0xe3, 0x50, + 0x66, 0x4a, 0xfd, 0x09, 0x67, 0x51, 0x1c, 0x52, 0x52, 0x61, 0x87, 0x58, 0xc3, 0x40, 0x57, 0x84, + 0x40, 0x81, 0xeb, 0x05, 0x1e, 0x4f, 0x08, 0x14, 0xe4, 0x70, 0x69, 0x52, 0xa0, 0xab, 0x30, 0xaa, + 0xb2, 0xe9, 0x56, 0x79, 0x92, 0x56, 0xb1, 0xcc, 0x56, 0xe2, 0x62, 0xac, 0xe3, 0xa0, 0x0d, 0x98, + 0x0c, 0xb9, 0x9c, 0x4d, 0xc5, 0xf9, 0xe5, 0xf2, 0xca, 0x0f, 0x4a, 0x2b, 0xa0, 0x9a, 0x09, 0x3e, + 0x64, 0x45, 0xfc, 0x74, 0x92, 0x8e, 0xe1, 0x49, 0x12, 0xe8, 0x35, 0x98, 0x68, 0xfa, 0x4e, 0x63, + 0xc9, 0x69, 0x3a, 0x5e, 0x9d, 0x8d, 0xcf, 0x88, 0x99, 0x94, 0xf1, 0xa6, 0x01, 0xc5, 0x09, 0x6c, + 0xca, 0xbc, 0xe9, 0x25, 0x22, 0x36, 0xb5, 0xe3, 0x6d, 0x93, 0x50, 0xe4, 0x46, 0x65, 0xcc, 0xdb, + 0xcd, 0x1c, 0x1c, 0x9c, 0x5b, 0x1b, 0xbd, 0x0c, 0x63, 0xf2, 0xf3, 0xb5, 0x38, 0x0a, 0xb1, 0xe3, + 0x83, 0x06, 0xc3, 0x06, 0x26, 0xba, 0x07, 0xa7, 0xe5, 0xff, 0x8d, 0xc0, 0xd9, 0xda, 0x72, 0xeb, + 0xc2, 0xb9, 0x98, 0x7b, 0x48, 0x2e, 0x4a, 0x37, 0xbe, 0x95, 0x2c, 0xa4, 0xc3, 0x83, 0xf9, 0x0b, + 0x62, 0xd4, 0x32, 0xe1, 0x6c, 0x12, 0xb3, 0xe9, 0xa3, 0x35, 0x98, 0xd9, 0x21, 0x4e, 0x33, 0xda, + 0x59, 0xde, 0x21, 0xf5, 0x5d, 0xb9, 0xe9, 0x58, 0x74, 0x06, 0xcd, 0x5d, 0xe0, 0x7a, 0x1a, 0x05, + 0x67, 0xd5, 0x43, 0x6f, 0xc2, 0x6c, 0xbb, 0xb3, 0xd9, 0x74, 0xc3, 0x9d, 0x75, 0x3f, 0x62, 0xa6, + 0x40, 0x2a, 0x39, 0xaf, 0x08, 0xe3, 0xa0, 0xe2, 0x5f, 0x54, 0x73, 0xf0, 0x70, 0x2e, 0x05, 0xf4, + 0x36, 0x9c, 0x4e, 0x2c, 0x06, 0xe1, 0xc8, 0x3e, 0x91, 0x1f, 0xe9, 0xbf, 0x96, 0x55, 0x41, 0xc4, + 0x84, 0xc8, 0x02, 0xe1, 0xec, 0x26, 0xe8, 0xe3, 0x43, 0x0b, 0xad, 0x1a, 0xce, 0x4e, 0xc5, 0x36, + 0xcb, 0x5a, 0xfc, 0xd5, 0x10, 0x1b, 0x58, 0xe8, 0x15, 0x00, 0xb7, 0xbd, 0xea, 0xb4, 0xdc, 0x26, + 0x7d, 0x64, 0xce, 0xb0, 0x3a, 0xf4, 0xc1, 0x01, 0x95, 0xaa, 0x2c, 0xa5, 0xa7, 0xba, 0xf8, 0xb7, + 0x8f, 0x35, 0x6c, 0x54, 0x85, 0x09, 0xf1, 0x6f, 0x5f, 0x2c, 0x86, 0x69, 0xe5, 0x69, 0x3e, 0x21, + 0x6b, 0xa8, 0x15, 0x80, 0xcc, 0x12, 0x36, 0xe7, 0x89, 0xfa, 0x68, 0x1b, 0xce, 0x89, 0xec, 0xcf, + 0x44, 0x5f, 0xdd, 0x72, 0xf6, 0x42, 0x16, 0x98, 0x7f, 0x84, 0x07, 0x90, 0x59, 0xec, 0x86, 0x88, + 0xbb, 0xd3, 0xa1, 0x5c, 0x81, 0xbe, 0x49, 0xb8, 0x6f, 0xe7, 0x69, 0x6e, 0xd4, 0x44, 0xb9, 0x82, + 0x9b, 0x49, 0x20, 0x4e, 0xe3, 0xa3, 0x10, 0x4e, 0xbb, 0x5e, 0xd6, 0x9e, 0x38, 0xc3, 0x08, 0x7d, + 0x8c, 0xbb, 0xb5, 0x76, 0xdf, 0x0f, 0x99, 0x70, 0xbe, 0x1f, 0x32, 0x69, 0xbf, 0x33, 0xdb, 0xbd, + 0xdf, 0xb1, 0x68, 0x6d, 0x8d, 0xbf, 0x47, 0x9f, 0x85, 0x31, 0xfd, 0xc3, 0x04, 0xaf, 0x72, 0x29, + 0x9b, 0xfd, 0xd5, 0x4e, 0x15, 0xfe, 0x3a, 0x50, 0x27, 0x87, 0x0e, 0xc3, 0x06, 0x45, 0x54, 0xcf, + 0x70, 0x00, 0xbf, 0xd2, 0x1f, 0x2f, 0xd4, 0xbf, 0xe9, 0x1a, 0x81, 0xec, 0xcd, 0x82, 0x6e, 0xc2, + 0x48, 0xbd, 0xe9, 0x12, 0x2f, 0xaa, 0x54, 0xbb, 0x85, 0x6c, 0x5b, 0x16, 0x38, 0x62, 0xf7, 0x89, + 0x38, 0xfb, 0xbc, 0x0c, 0x2b, 0x0a, 0xf6, 0xaf, 0x15, 0x60, 0xbe, 0x47, 0xd2, 0x86, 0x84, 0x22, + 0xcb, 0xea, 0x4b, 0x91, 0xb5, 0x28, 0xf3, 0x56, 0xaf, 0x27, 0x64, 0x64, 0x89, 0x9c, 0xd4, 0xb1, + 0xa4, 0x2c, 0x89, 0xdf, 0xb7, 0x63, 0x81, 0xae, 0x0b, 0x1b, 0xe8, 0xe9, 0x1a, 0x63, 0xe8, 0xc0, + 0x07, 0xfb, 0x7f, 0x38, 0xe7, 0xea, 0x33, 0xed, 0xaf, 0x14, 0xe0, 0xb4, 0x1a, 0xc2, 0x6f, 0xde, + 0x81, 0xbb, 0x9d, 0x1e, 0xb8, 0x63, 0xd0, 0x06, 0xdb, 0xb7, 0x60, 0x88, 0xc7, 0xa0, 0xeb, 0x83, + 0x61, 0xbf, 0x68, 0x86, 0x6b, 0x55, 0x3c, 0xa2, 0x11, 0xb2, 0xf5, 0x7b, 0x2d, 0x98, 0xdc, 0x58, + 0xae, 0xd6, 0xfc, 0xfa, 0x2e, 0x89, 0x16, 0xf9, 0x03, 0x0b, 0x6b, 0xae, 0xb2, 0x0f, 0xc3, 0x54, + 0x67, 0xb1, 0xeb, 0x17, 0x60, 0x60, 0xc7, 0x0f, 0xa3, 0xa4, 0xa9, 0xc8, 0x75, 0x3f, 0x8c, 0x30, + 0x83, 0xd8, 0xbf, 0x67, 0xc1, 0xe0, 0x86, 0xe3, 0x7a, 0x91, 0x54, 0x2b, 0x58, 0x39, 0x6a, 0x85, + 0x7e, 0xbe, 0x0b, 0xbd, 0x04, 0x43, 0x64, 0x6b, 0x8b, 0xd4, 0x23, 0x31, 0xab, 0x32, 0xce, 0xc0, + 0xd0, 0x0a, 0x2b, 0xa5, 0x1c, 0x24, 0x6b, 0x8c, 0xff, 0xc5, 0x02, 0x19, 0xdd, 0x85, 0x52, 0xe4, + 0xb6, 0xc8, 0x62, 0xa3, 0x21, 0x94, 0xed, 0x0f, 0x11, 0x2b, 0x61, 0x43, 0x12, 0xc0, 0x31, 0x2d, + 0xfb, 0x4b, 0x05, 0x80, 0x38, 0x78, 0x4f, 0xaf, 0x4f, 0x5c, 0x4a, 0xa9, 0x61, 0x2f, 0x65, 0xa8, + 0x61, 0x51, 0x4c, 0x30, 0x43, 0x07, 0xab, 0x86, 0xa9, 0xd8, 0xd7, 0x30, 0x0d, 0x1c, 0x65, 0x98, + 0x96, 0x61, 0x3a, 0x0e, 0x3e, 0x64, 0xc6, 0x5e, 0x63, 0xd7, 0xe7, 0x46, 0x12, 0x88, 0xd3, 0xf8, + 0x36, 0x81, 0x0b, 0x2a, 0x06, 0x8b, 0xb8, 0xd1, 0x98, 0x2d, 0xb7, 0xae, 0xd6, 0xee, 0x31, 0x4e, + 0xb1, 0x9e, 0xb9, 0x90, 0xab, 0x67, 0xfe, 0x09, 0x0b, 0x4e, 0x25, 0xdb, 0x61, 0xce, 0xb5, 0x5f, + 0xb4, 0xe0, 0x34, 0xd3, 0xb6, 0xb3, 0x56, 0xd3, 0xba, 0xfd, 0x17, 0xbb, 0xc6, 0x95, 0xc9, 0xe9, + 0x71, 0x1c, 0xd0, 0x62, 0x2d, 0x8b, 0x34, 0xce, 0x6e, 0xd1, 0xfe, 0x0f, 0x05, 0x98, 0xcd, 0x0b, + 0x48, 0xc3, 0x5c, 0x3d, 0x9c, 0xfb, 0xb5, 0x5d, 0x72, 0x4f, 0x18, 0xd4, 0xc7, 0xae, 0x1e, 0xbc, + 0x18, 0x4b, 0x78, 0x32, 0x0e, 0x7f, 0xa1, 0xcf, 0x38, 0xfc, 0x3b, 0x30, 0x7d, 0x6f, 0x87, 0x78, + 0xb7, 0xbd, 0xd0, 0x89, 0xdc, 0x70, 0xcb, 0x65, 0x9a, 0x69, 0xbe, 0x6e, 0x5e, 0x91, 0x66, 0xef, + 0x77, 0x93, 0x08, 0x87, 0x07, 0xf3, 0xe7, 0x8c, 0x82, 0xb8, 0xcb, 0xfc, 0x20, 0xc1, 0x69, 0xa2, + 0xe9, 0x34, 0x06, 0x03, 0x8f, 0x30, 0x8d, 0x81, 0xfd, 0x45, 0x0b, 0xce, 0xe6, 0xe6, 0x4e, 0x45, + 0x97, 0x61, 0xc4, 0x69, 0xbb, 0x5c, 0xb8, 0x2f, 0x8e, 0x51, 0x26, 0x44, 0xaa, 0x56, 0xb8, 0x68, + 0x5f, 0x41, 0x55, 0x4e, 0xf7, 0x42, 0x6e, 0x4e, 0xf7, 0x9e, 0x29, 0xda, 0xed, 0xef, 0xb1, 0x40, + 0xb8, 0xa9, 0xf6, 0x71, 0x76, 0x7f, 0x0a, 0xc6, 0xf6, 0xd2, 0xa9, 0x8e, 0x2e, 0xe4, 0xfb, 0xed, + 0x8a, 0x04, 0x47, 0x8a, 0x21, 0x33, 0xd2, 0x1a, 0x19, 0xb4, 0xec, 0x06, 0x08, 0x68, 0x99, 0x30, + 0xd1, 0x75, 0xef, 0xde, 0x3c, 0x0f, 0xd0, 0x60, 0xb8, 0x5a, 0x62, 0x7c, 0x75, 0x33, 0x97, 0x15, + 0x04, 0x6b, 0x58, 0xf6, 0xbf, 0x2d, 0xc0, 0xa8, 0x4c, 0xad, 0xd3, 0xf1, 0xfa, 0x11, 0x30, 0x1d, + 0x29, 0xd7, 0x26, 0xba, 0x02, 0x25, 0x26, 0x01, 0xad, 0xc6, 0x72, 0x39, 0x25, 0x7f, 0x58, 0x93, + 0x00, 0x1c, 0xe3, 0xd0, 0x5d, 0x14, 0x76, 0x36, 0x19, 0x7a, 0xc2, 0xa9, 0xb2, 0xc6, 0x8b, 0xb1, + 0x84, 0xa3, 0x4f, 0xc0, 0x14, 0xaf, 0x17, 0xf8, 0x6d, 0x67, 0x9b, 0x6b, 0x4d, 0x06, 0x55, 0x34, + 0x84, 0xa9, 0xb5, 0x04, 0xec, 0xf0, 0x60, 0xfe, 0x54, 0xb2, 0x8c, 0xa9, 0x03, 0x53, 0x54, 0x98, + 0x71, 0x14, 0x6f, 0x84, 0xee, 0xfe, 0x94, 0x4d, 0x55, 0x0c, 0xc2, 0x3a, 0x9e, 0xfd, 0x59, 0x40, + 0xe9, 0x24, 0x43, 0xe8, 0x75, 0x6e, 0x11, 0xeb, 0x06, 0xa4, 0xd1, 0x4d, 0x3d, 0xa8, 0xfb, 0xfc, + 0x4b, 0x7f, 0x28, 0x5e, 0x0b, 0xab, 0xfa, 0xf6, 0xff, 0x5f, 0x84, 0xa9, 0xa4, 0x07, 0x38, 0xba, + 0x0e, 0x43, 0x9c, 0xf5, 0x10, 0xe4, 0xbb, 0x58, 0x9f, 0x68, 0x7e, 0xe3, 0xec, 0x10, 0x16, 0xdc, + 0x8b, 0xa8, 0x8f, 0xde, 0x84, 0xd1, 0x86, 0x7f, 0xcf, 0xbb, 0xe7, 0x04, 0x8d, 0xc5, 0x6a, 0x45, + 0x2c, 0xe7, 0xcc, 0xe7, 0x70, 0x39, 0x46, 0xd3, 0x7d, 0xd1, 0x99, 0xa6, 0x35, 0x06, 0x61, 0x9d, + 0x1c, 0xda, 0x60, 0x91, 0xc9, 0xb7, 0xdc, 0xed, 0x35, 0xa7, 0xdd, 0xcd, 0x3d, 0x62, 0x59, 0x22, + 0x69, 0x94, 0xc7, 0x45, 0xf8, 0x72, 0x0e, 0xc0, 0x31, 0x21, 0xf4, 0x79, 0x98, 0x09, 0x73, 0x84, + 0xf4, 0x79, 0x39, 0xe7, 0xba, 0xc9, 0xad, 0x97, 0x1e, 0x7b, 0x70, 0x30, 0x3f, 0x93, 0x25, 0xce, + 0xcf, 0x6a, 0xc6, 0xfe, 0x91, 0x53, 0x60, 0x6c, 0x62, 0x23, 0x05, 0xa9, 0x75, 0x4c, 0x29, 0x48, + 0x31, 0x8c, 0x90, 0x56, 0x3b, 0xda, 0x2f, 0xbb, 0x41, 0xb7, 0xc4, 0xdc, 0x2b, 0x02, 0x27, 0x4d, + 0x53, 0x42, 0xb0, 0xa2, 0x93, 0x9d, 0x27, 0xb6, 0xf8, 0x75, 0xcc, 0x13, 0x3b, 0x70, 0x82, 0x79, + 0x62, 0xd7, 0x61, 0x78, 0xdb, 0x8d, 0x30, 0x69, 0xfb, 0x82, 0xe9, 0xcf, 0x5c, 0x87, 0xd7, 0x38, + 0x4a, 0x3a, 0x23, 0xa1, 0x00, 0x60, 0x49, 0x04, 0xbd, 0xae, 0x76, 0xe0, 0x50, 0xfe, 0xc3, 0x3c, + 0x6d, 0x26, 0x91, 0xb9, 0x07, 0x45, 0x36, 0xd8, 0xe1, 0x87, 0xcd, 0x06, 0xbb, 0x2a, 0x73, 0xb8, + 0x8e, 0xe4, 0xfb, 0x32, 0xb1, 0x14, 0xad, 0x3d, 0x32, 0xb7, 0xde, 0xd1, 0xf3, 0xde, 0x96, 0xf2, + 0x4f, 0x02, 0x95, 0xd2, 0xb6, 0xcf, 0x6c, 0xb7, 0xdf, 0x63, 0xc1, 0xe9, 0x76, 0x56, 0x0a, 0x68, + 0x61, 0x51, 0xf0, 0x52, 0xdf, 0x59, 0xa6, 0x8d, 0x06, 0x99, 0x24, 0x2e, 0x13, 0x0d, 0x67, 0x37, + 0x47, 0x07, 0x3a, 0xd8, 0x6c, 0x08, 0xcd, 0xf6, 0xc5, 0x9c, 0xb4, 0xb9, 0x5d, 0x92, 0xe5, 0x6e, + 0x64, 0xa4, 0x68, 0x7d, 0x7f, 0x5e, 0x8a, 0xd6, 0xbe, 0x13, 0xb3, 0xbe, 0xae, 0x12, 0xe6, 0x8e, + 0xe7, 0x2f, 0x25, 0x9e, 0x0e, 0xb7, 0x67, 0x9a, 0xdc, 0xd7, 0x55, 0x9a, 0xdc, 0x2e, 0x61, 0x67, + 0x79, 0x12, 0xdc, 0x9e, 0xc9, 0x71, 0xb5, 0x04, 0xb7, 0x93, 0xc7, 0x93, 0xe0, 0xd6, 0xb8, 0x6a, + 0x78, 0x8e, 0xd5, 0x67, 0x7a, 0x5c, 0x35, 0x06, 0xdd, 0xee, 0x97, 0x0d, 0x4f, 0xe6, 0x3b, 0xfd, + 0x50, 0xc9, 0x7c, 0xef, 0xe8, 0xc9, 0x71, 0x51, 0x8f, 0xec, 0xaf, 0x14, 0xa9, 0xcf, 0x94, 0xb8, + 0x77, 0xf4, 0x0b, 0x70, 0x26, 0x9f, 0xae, 0xba, 0xe7, 0xd2, 0x74, 0x33, 0xaf, 0xc0, 0x54, 0xaa, + 0xdd, 0x53, 0x27, 0x93, 0x6a, 0xf7, 0xf4, 0xb1, 0xa7, 0xda, 0x3d, 0x73, 0x02, 0xa9, 0x76, 0x1f, + 0x3b, 0xc1, 0x54, 0xbb, 0x77, 0x98, 0x19, 0x0e, 0x0f, 0xf6, 0x23, 0xc2, 0xe4, 0x66, 0x87, 0x64, + 0xcd, 0x8a, 0x08, 0xc4, 0x3f, 0x4e, 0x81, 0x70, 0x4c, 0x2a, 0x23, 0x85, 0xef, 0xec, 0x23, 0x48, + 0xe1, 0xbb, 0x1e, 0xa7, 0xf0, 0x3d, 0x9b, 0x3f, 0xd5, 0x19, 0x8e, 0x1b, 0x39, 0x89, 0x7b, 0xef, + 0xe8, 0x09, 0x77, 0x1f, 0xef, 0xa2, 0x6b, 0xc9, 0x12, 0x3c, 0x76, 0x49, 0xb3, 0xfb, 0x1a, 0x4f, + 0xb3, 0xfb, 0x44, 0xfe, 0x49, 0x9e, 0xbc, 0xee, 0x8c, 0xe4, 0xba, 0xb4, 0x5f, 0x2a, 0x20, 0x23, + 0x0b, 0x08, 0x9c, 0xd3, 0x2f, 0x15, 0xd1, 0x31, 0xdd, 0x2f, 0x05, 0xc2, 0x31, 0x29, 0xfb, 0xfb, + 0x0a, 0x70, 0xbe, 0xfb, 0x7e, 0x8b, 0xa5, 0xa9, 0xd5, 0x58, 0xf5, 0x9c, 0x90, 0xa6, 0xf2, 0x37, + 0x5b, 0x8c, 0xd5, 0x77, 0x7c, 0xb9, 0x6b, 0x30, 0xad, 0x3c, 0x3e, 0x9a, 0x6e, 0x7d, 0x7f, 0x3d, + 0x7e, 0xf9, 0x2a, 0x2f, 0xf9, 0x5a, 0x12, 0x01, 0xa7, 0xeb, 0xa0, 0x45, 0x98, 0x34, 0x0a, 0x2b, + 0x65, 0xf1, 0x36, 0x53, 0xe2, 0xdb, 0x9a, 0x09, 0xc6, 0x49, 0x7c, 0xfb, 0xcb, 0x16, 0x3c, 0x96, + 0x93, 0xa3, 0xae, 0xef, 0xf0, 0x69, 0x5b, 0x30, 0xd9, 0x36, 0xab, 0xf6, 0x88, 0xf8, 0x68, 0x64, + 0xc2, 0x53, 0x7d, 0x4d, 0x00, 0x70, 0x92, 0xa8, 0xfd, 0xe7, 0x16, 0x9c, 0xeb, 0x6a, 0xc2, 0x88, + 0x30, 0x9c, 0xd9, 0x6e, 0x85, 0xce, 0x72, 0x40, 0x1a, 0xc4, 0x8b, 0x5c, 0xa7, 0x59, 0x6b, 0x93, + 0xba, 0x26, 0x0f, 0x67, 0xb6, 0x80, 0xd7, 0xd6, 0x6a, 0x8b, 0x69, 0x0c, 0x9c, 0x53, 0x13, 0xad, + 0x02, 0x4a, 0x43, 0xc4, 0x0c, 0xb3, 0xd0, 0xd2, 0x69, 0x7a, 0x38, 0xa3, 0x06, 0xfa, 0x08, 0x8c, + 0x2b, 0xd3, 0x48, 0x6d, 0xc6, 0xd9, 0xc1, 0x8e, 0x75, 0x00, 0x36, 0xf1, 0x96, 0x2e, 0xff, 0xc6, + 0x1f, 0x9c, 0x7f, 0xdf, 0x6f, 0xfd, 0xc1, 0xf9, 0xf7, 0xfd, 0xee, 0x1f, 0x9c, 0x7f, 0xdf, 0x77, + 0x3c, 0x38, 0x6f, 0xfd, 0xc6, 0x83, 0xf3, 0xd6, 0x6f, 0x3d, 0x38, 0x6f, 0xfd, 0xee, 0x83, 0xf3, + 0xd6, 0xef, 0x3f, 0x38, 0x6f, 0x7d, 0xe9, 0x0f, 0xcf, 0xbf, 0xef, 0x53, 0x85, 0xbd, 0xab, 0xff, + 0x37, 0x00, 0x00, 0xff, 0xff, 0x61, 0xb3, 0xf6, 0x22, 0x81, 0x04, 0x01, 0x00, } func (m *AWSElasticBlockStoreVolumeSource) Marshal() (dAtA []byte, err error) { @@ -18051,6 +18052,15 @@ func (m *ServiceSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if m.InternalTrafficPolicy != nil { + i -= len(*m.InternalTrafficPolicy) + copy(dAtA[i:], *m.InternalTrafficPolicy) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.InternalTrafficPolicy))) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xb2 + } if m.LoadBalancerClass != nil { i -= len(*m.LoadBalancerClass) copy(dAtA[i:], *m.LoadBalancerClass) @@ -23621,6 +23631,10 @@ func (m *ServiceSpec) Size() (n int) { l = len(*m.LoadBalancerClass) n += 2 + l + sovGenerated(uint64(l)) } + if m.InternalTrafficPolicy != nil { + l = len(*m.InternalTrafficPolicy) + n += 2 + l + sovGenerated(uint64(l)) + } return n } @@ -27216,6 +27230,7 @@ func (this *ServiceSpec) String() string { `IPFamilies:` + fmt.Sprintf("%v", this.IPFamilies) + `,`, `AllocateLoadBalancerNodePorts:` + valueToStringGenerated(this.AllocateLoadBalancerNodePorts) + `,`, `LoadBalancerClass:` + valueToStringGenerated(this.LoadBalancerClass) + `,`, + `InternalTrafficPolicy:` + valueToStringGenerated(this.InternalTrafficPolicy) + `,`, `}`, }, "") return s @@ -63279,6 +63294,39 @@ func (m *ServiceSpec) Unmarshal(dAtA []byte) error { s := string(dAtA[iNdEx:postIndex]) m.LoadBalancerClass = &s iNdEx = postIndex + case 22: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field InternalTrafficPolicy", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := ServiceInternalTrafficPolicyType(dAtA[iNdEx:postIndex]) + m.InternalTrafficPolicy = &s + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) diff --git a/staging/src/k8s.io/api/core/v1/generated.proto b/staging/src/k8s.io/api/core/v1/generated.proto index 48c59c63464b..83cba97d6fc8 100644 --- a/staging/src/k8s.io/api/core/v1/generated.proto +++ b/staging/src/k8s.io/api/core/v1/generated.proto @@ -5045,9 +5045,19 @@ message ServiceSpec { // implementation (e.g. cloud providers) should ignore Services that set this field. // This field can only be set when creating or updating a Service to type 'LoadBalancer'. // Once set, it can not be changed. This field will be wiped when a service is updated to a non 'LoadBalancer' type. - // featureGate=LoadBalancerClass + // +featureGate=LoadBalancerClass // +optional optional string loadBalancerClass = 21; + + // InternalTrafficPolicy specifies if the cluster internal traffic + // should be routed to all endpoints or node-local endpoints only. + // "Cluster" routes internal traffic to a Service to all endpoints. + // "Local" routes traffic to node-local endpoints only, traffic is + // dropped if no node-local endpoints are ready. + // The default value is "Cluster". + // +featureGate=ServiceInternalTrafficPolicy + // +optional + optional string internalTrafficPolicy = 22; } // ServiceStatus represents the current status of a service. diff --git a/staging/src/k8s.io/api/core/v1/types.go b/staging/src/k8s.io/api/core/v1/types.go index 563217a42921..e759f00b8cdb 100644 --- a/staging/src/k8s.io/api/core/v1/types.go +++ b/staging/src/k8s.io/api/core/v1/types.go @@ -3940,6 +3940,19 @@ const ( ServiceTypeExternalName ServiceType = "ExternalName" ) +// ServiceInternalTrafficPolicyType describes the type of traffic routing for +// internal traffic +type ServiceInternalTrafficPolicyType string + +const ( + // ServiceInternalTrafficPolicyCluster routes traffic to all endpoints + ServiceInternalTrafficPolicyCluster ServiceInternalTrafficPolicyType = "Cluster" + + // ServiceInternalTrafficPolicyLocal only routes to node-local + // endpoints, otherwise drops the traffic + ServiceInternalTrafficPolicyLocal ServiceInternalTrafficPolicyType = "Local" +) + // Service External Traffic Policy Type string type ServiceExternalTrafficPolicyType string @@ -4272,9 +4285,19 @@ type ServiceSpec struct { // implementation (e.g. cloud providers) should ignore Services that set this field. // This field can only be set when creating or updating a Service to type 'LoadBalancer'. // Once set, it can not be changed. This field will be wiped when a service is updated to a non 'LoadBalancer' type. - // featureGate=LoadBalancerClass + // +featureGate=LoadBalancerClass // +optional LoadBalancerClass *string `json:"loadBalancerClass,omitempty" protobuf:"bytes,21,opt,name=loadBalancerClass"` + + // InternalTrafficPolicy specifies if the cluster internal traffic + // should be routed to all endpoints or node-local endpoints only. + // "Cluster" routes internal traffic to a Service to all endpoints. + // "Local" routes traffic to node-local endpoints only, traffic is + // dropped if no node-local endpoints are ready. + // The default value is "Cluster". + // +featureGate=ServiceInternalTrafficPolicy + // +optional + InternalTrafficPolicy *ServiceInternalTrafficPolicyType `json:"internalTrafficPolicy,omitempty" protobuf:"bytes,22,opt,name=internalTrafficPolicy"` } // ServicePort contains information on service's port. diff --git a/staging/src/k8s.io/api/core/v1/types_swagger_doc_generated.go b/staging/src/k8s.io/api/core/v1/types_swagger_doc_generated.go index 5ccdaffd0fa0..ced047763891 100644 --- a/staging/src/k8s.io/api/core/v1/types_swagger_doc_generated.go +++ b/staging/src/k8s.io/api/core/v1/types_swagger_doc_generated.go @@ -2257,7 +2257,8 @@ var map_ServiceSpec = map[string]string{ "ipFamilies": "IPFamilies is a list of IP families (e.g. IPv4, IPv6) assigned to this service, and is gated by the \"IPv6DualStack\" feature gate. This field is usually assigned automatically based on cluster configuration and the ipFamilyPolicy field. If this field is specified manually, the requested family is available in the cluster, and ipFamilyPolicy allows it, it will be used; otherwise creation of the service will fail. This field is conditionally mutable: it allows for adding or removing a secondary IP family, but it does not allow changing the primary IP family of the Service. Valid values are \"IPv4\" and \"IPv6\". This field only applies to Services of types ClusterIP, NodePort, and LoadBalancer, and does apply to \"headless\" services. This field will be wiped when updating a Service to type ExternalName.\n\nThis field may hold a maximum of two entries (dual-stack families, in either order). These families must correspond to the values of the clusterIPs field, if specified. Both clusterIPs and ipFamilies are governed by the ipFamilyPolicy field.", "ipFamilyPolicy": "IPFamilyPolicy represents the dual-stack-ness requested or required by this Service, and is gated by the \"IPv6DualStack\" feature gate. If there is no value provided, then this field will be set to SingleStack. Services can be \"SingleStack\" (a single IP family), \"PreferDualStack\" (two IP families on dual-stack configured clusters or a single IP family on single-stack clusters), or \"RequireDualStack\" (two IP families on dual-stack configured clusters, otherwise fail). The ipFamilies and clusterIPs fields depend on the value of this field. This field will be wiped when updating a service to type ExternalName.", "allocateLoadBalancerNodePorts": "allocateLoadBalancerNodePorts defines if NodePorts will be automatically allocated for services with type LoadBalancer. Default is \"true\". It may be set to \"false\" if the cluster load-balancer does not rely on NodePorts. allocateLoadBalancerNodePorts may only be set for services with type LoadBalancer and will be cleared if the type is changed to any other type. This field is alpha-level and is only honored by servers that enable the ServiceLBNodePortControl feature.", - "loadBalancerClass": "loadBalancerClass is the class of the load balancer implementation this Service belongs to. If specified, the value of this field must be a label-style identifier, with an optional prefix, e.g. \"internal-vip\" or \"example.com/internal-vip\". Unprefixed names are reserved for end-users. This field can only be set when the Service type is 'LoadBalancer'. If not set, the default load balancer implementation is used, today this is typically done through the cloud provider integration, but should apply for any default implementation. If set, it is assumed that a load balancer implementation is watching for Services with a matching class. Any default load balancer implementation (e.g. cloud providers) should ignore Services that set this field. This field can only be set when creating or updating a Service to type 'LoadBalancer'. Once set, it can not be changed. This field will be wiped when a service is updated to a non 'LoadBalancer' type. featureGate=LoadBalancerClass", + "loadBalancerClass": "loadBalancerClass is the class of the load balancer implementation this Service belongs to. If specified, the value of this field must be a label-style identifier, with an optional prefix, e.g. \"internal-vip\" or \"example.com/internal-vip\". Unprefixed names are reserved for end-users. This field can only be set when the Service type is 'LoadBalancer'. If not set, the default load balancer implementation is used, today this is typically done through the cloud provider integration, but should apply for any default implementation. If set, it is assumed that a load balancer implementation is watching for Services with a matching class. Any default load balancer implementation (e.g. cloud providers) should ignore Services that set this field. This field can only be set when creating or updating a Service to type 'LoadBalancer'. Once set, it can not be changed. This field will be wiped when a service is updated to a non 'LoadBalancer' type.", + "internalTrafficPolicy": "InternalTrafficPolicy specifies if the cluster internal traffic should be routed to all endpoints or node-local endpoints only. \"Cluster\" routes internal traffic to a Service to all endpoints. \"Local\" routes traffic to node-local endpoints only, traffic is dropped if no node-local endpoints are ready. The default value is \"Cluster\".", } func (ServiceSpec) SwaggerDoc() map[string]string { diff --git a/staging/src/k8s.io/api/core/v1/zz_generated.deepcopy.go b/staging/src/k8s.io/api/core/v1/zz_generated.deepcopy.go index 79e3c7af00a9..6cb291b71be9 100644 --- a/staging/src/k8s.io/api/core/v1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/api/core/v1/zz_generated.deepcopy.go @@ -5350,6 +5350,11 @@ func (in *ServiceSpec) DeepCopyInto(out *ServiceSpec) { *out = new(string) **out = **in } + if in.InternalTrafficPolicy != nil { + in, out := &in.InternalTrafficPolicy, &out.InternalTrafficPolicy + *out = new(ServiceInternalTrafficPolicyType) + **out = **in + } return } diff --git a/staging/src/k8s.io/api/testdata/HEAD/core.v1.Service.json b/staging/src/k8s.io/api/testdata/HEAD/core.v1.Service.json index 8d1a56da22a4..52ea73086ef8 100644 --- a/staging/src/k8s.io/api/testdata/HEAD/core.v1.Service.json +++ b/staging/src/k8s.io/api/testdata/HEAD/core.v1.Service.json @@ -84,7 +84,8 @@ ], "ipFamilyPolicy": "9ȫŚ", "allocateLoadBalancerNodePorts": true, - "loadBalancerClass": "31" + "loadBalancerClass": "31", + "internalTrafficPolicy": "" }, "status": { "loadBalancer": { @@ -94,8 +95,8 @@ "hostname": "33", "ports": [ { - "port": -907310967, - "protocol": "喂ƈ斎AO6", + "port": 684408190, + "protocol": "ƈ斎AO6ĴC浔Ű", "error": "34" } ] @@ -105,9 +106,9 @@ "conditions": [ { "type": "35", - "status": "C", - "observedGeneration": -2492120148461555858, - "lastTransitionTime": "2392-12-09T15:37:55Z", + "status": "ž(-譵", + "observedGeneration": -8651056334266075769, + "lastTransitionTime": "2404-01-10T11:35:42Z", "reason": "36", "message": "37" } diff --git a/staging/src/k8s.io/api/testdata/HEAD/core.v1.Service.pb b/staging/src/k8s.io/api/testdata/HEAD/core.v1.Service.pb index 9d52060f2a15..b84e0c2d567b 100644 Binary files a/staging/src/k8s.io/api/testdata/HEAD/core.v1.Service.pb and b/staging/src/k8s.io/api/testdata/HEAD/core.v1.Service.pb differ diff --git a/staging/src/k8s.io/api/testdata/HEAD/core.v1.Service.yaml b/staging/src/k8s.io/api/testdata/HEAD/core.v1.Service.yaml index 3e51ddd5b70e..863435cefd34 100644 --- a/staging/src/k8s.io/api/testdata/HEAD/core.v1.Service.yaml +++ b/staging/src/k8s.io/api/testdata/HEAD/core.v1.Service.yaml @@ -39,6 +39,7 @@ spec: externalName: "29" externalTrafficPolicy: ƏS$+½H牗洝尿 healthCheckNodePort: -1965738697 + internalTrafficPolicy: "" ipFamilies: - 斬³;Ơ歿:狞夌碕ʂɭîcP$Iņɖ ipFamilyPolicy: 9ȫŚ @@ -65,11 +66,11 @@ spec: type: 鮽ort昍řČ扷5ƗǸƢ6/ʕVŚ(Ŀ status: conditions: - - lastTransitionTime: "2392-12-09T15:37:55Z" + - lastTransitionTime: "2404-01-10T11:35:42Z" message: "37" - observedGeneration: -2492120148461555858 + observedGeneration: -8651056334266075769 reason: "36" - status: C + status: ž(-譵 type: "35" loadBalancer: ingress: @@ -77,5 +78,5 @@ status: ip: "32" ports: - error: "34" - port: -907310967 - protocol: 喂ƈ斎AO6 + port: 684408190 + protocol: ƈ斎AO6ĴC浔Ű diff --git a/staging/src/k8s.io/client-go/applyconfigurations/core/v1/servicespec.go b/staging/src/k8s.io/client-go/applyconfigurations/core/v1/servicespec.go index 691622860092..99361cecf067 100644 --- a/staging/src/k8s.io/client-go/applyconfigurations/core/v1/servicespec.go +++ b/staging/src/k8s.io/client-go/applyconfigurations/core/v1/servicespec.go @@ -44,6 +44,7 @@ type ServiceSpecApplyConfiguration struct { IPFamilyPolicy *corev1.IPFamilyPolicyType `json:"ipFamilyPolicy,omitempty"` AllocateLoadBalancerNodePorts *bool `json:"allocateLoadBalancerNodePorts,omitempty"` LoadBalancerClass *string `json:"loadBalancerClass,omitempty"` + InternalTrafficPolicy *corev1.ServiceInternalTrafficPolicyType `json:"internalTrafficPolicy,omitempty"` } // ServiceSpecApplyConfiguration constructs an declarative configuration of the ServiceSpec type for use with @@ -224,3 +225,11 @@ func (b *ServiceSpecApplyConfiguration) WithLoadBalancerClass(value string) *Ser b.LoadBalancerClass = &value return b } + +// WithInternalTrafficPolicy sets the InternalTrafficPolicy field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the InternalTrafficPolicy field is set to the value of the last call. +func (b *ServiceSpecApplyConfiguration) WithInternalTrafficPolicy(value corev1.ServiceInternalTrafficPolicyType) *ServiceSpecApplyConfiguration { + b.InternalTrafficPolicy = &value + return b +}