From 88a402632ca599302fefe121aa219a5057cb3d96 Mon Sep 17 00:00:00 2001 From: Arvind Thirumurugan Date: Sun, 29 Jan 2023 21:04:44 -0800 Subject: [PATCH 01/42] Annotation limit check --- pkg/controllers/work/apply_controller.go | 32 +++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/pkg/controllers/work/apply_controller.go b/pkg/controllers/work/apply_controller.go index 4ab75bc6d..ef4910f01 100644 --- a/pkg/controllers/work/apply_controller.go +++ b/pkg/controllers/work/apply_controller.go @@ -49,7 +49,10 @@ import ( ) const ( - workFieldManagerName = "work-api-agent" + workFieldManagerName = "work-api-agent" + TotalAnnotationSizeLimitB int = 256 * (1 << 10) // 256 kB + // The manifest hash of 32 bytes when converted a string becomes 64 characters in length + manifestHashLength int = 64 ) // ApplyWorkReconciler reconciles a Work object @@ -89,6 +92,9 @@ const ( // ManifestUpdatedAction indicates that we updated the manifest. ManifestUpdatedAction applyAction = "ManifestUpdated" + // ManifestAppliedAction indicates that we applied the manifest. + ManifestAppliedAction applyAction = "ManifestApplied" + // ManifestNoChangeAction indicates that we don't need to change the manifest. ManifestNoChangeAction applyAction = "ManifestNoChange" ) @@ -340,6 +346,16 @@ func (r *ApplyWorkReconciler) applyUnstructured(ctx context.Context, gvr schema. Name: manifestObj.GetName(), Namespace: manifestObj.GetNamespace(), } + // Marshaling adds about 100-200 bytes to the object's actual size + marshaledObj, marshalErr := json.Marshal(manifestObj) + if marshalErr != nil { + return nil, ManifestNoChangeAction, marshalErr + } + if len(marshaledObj) > (TotalAnnotationSizeLimitB - len(manifestHashAnnotation) - len(lastAppliedConfigAnnotation) - manifestHashLength) { + klog.V(2).InfoS("Size of manifest object is greater than 262,013 bytes", "Name", manifestObj.GetName(), "size of marshaled object", len(marshaledObj), "kind", manifestObj.GetKind()) + return r.applyObject(ctx, gvr, manifestObj) + } + // compute the hash without taking into consider the last applied annotation if err := setManifestHashAnnotation(manifestObj); err != nil { return nil, ManifestNoChangeAction, err @@ -390,6 +406,20 @@ func (r *ApplyWorkReconciler) applyUnstructured(ctx context.Context, gvr schema. return curObj, ManifestNoChangeAction, nil } +func (r *ApplyWorkReconciler) applyObject(ctx context.Context, gvr schema.GroupVersionResource, + manifestObj *unstructured.Unstructured) (*unstructured.Unstructured, applyAction, error) { + manifestRef := klog.ObjectRef{ + Name: manifestObj.GetName(), + Namespace: manifestObj.GetNamespace(), + } + manifestObj, err := r.spokeDynamicClient.Resource(gvr).Namespace(manifestObj.GetNamespace()).Apply(ctx, manifestObj.GetName(), manifestObj, metav1.ApplyOptions{FieldManager: workFieldManagerName}) + if err != nil { + klog.ErrorS(err, "failed to apply object", "gvr", gvr, "manifest", manifestRef) + return nil, ManifestNoChangeAction, err + } + return manifestObj, ManifestAppliedAction, nil +} + // patchCurrentResource uses three way merge to patch the current resource with the new manifest we get from the work. func (r *ApplyWorkReconciler) patchCurrentResource(ctx context.Context, gvr schema.GroupVersionResource, manifestObj, curObj *unstructured.Unstructured) (*unstructured.Unstructured, applyAction, error) { From 9ae7b1c224135babd7cbcdd8088c9f0c23c7bca5 Mon Sep 17 00:00:00 2001 From: Arvind Thirumurugan Date: Thu, 2 Feb 2023 16:24:19 -0800 Subject: [PATCH 02/42] unit tests --- pkg/controllers/work/apply_controller_test.go | 24 ++++++++++++++ pkg/utils/test_util.go | 32 +++++++++++++++++++ .../resources/test-large-secret.yaml | 12 +++++++ 3 files changed, 68 insertions(+) create mode 100644 test/integration/manifests/resources/test-large-secret.yaml diff --git a/pkg/controllers/work/apply_controller_test.go b/pkg/controllers/work/apply_controller_test.go index f91976cd6..c17af0072 100644 --- a/pkg/controllers/work/apply_controller_test.go +++ b/pkg/controllers/work/apply_controller_test.go @@ -30,6 +30,7 @@ import ( "github.com/stretchr/testify/assert" "go.uber.org/atomic" appsv1 "k8s.io/api/apps/v1" + corev1 "k8s.io/api/core/v1" v1 "k8s.io/api/core/v1" apierrors "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/api/meta" @@ -80,6 +81,7 @@ var ( testManifest = workv1alpha1.Manifest{RawExtension: runtime.RawExtension{ Raw: rawTestDeployment, }} + largeSecret corev1.Secret ) // This interface is needed for testMapper abstract class. @@ -346,6 +348,17 @@ func TestApplyUnstructured(t *testing.T) { specHashFailObj := correctObj.DeepCopy() specHashFailObj.Object["test"] = math.Inf(1) + utils.GetObjectFromManifest("../../../test/integration/manifests/resources/test-large-secret.yaml", &largeSecret) + rawSecret, _ := json.Marshal(largeSecret) + var largeObj unstructured.Unstructured + largeObj.UnmarshalJSON(rawSecret) + + // add check to see if we cannot retrieve object + applyDynamicClient := fake.NewSimpleDynamicClient(runtime.NewScheme()) + applyDynamicClient.PrependReactor("apply", "*", func(action testingclient.Action) (handled bool, ret runtime.Object, err error) { + return true, largeObj.DeepCopy(), nil + }) + testCases := map[string]struct { reconciler ApplyWorkReconciler workObj *unstructured.Unstructured @@ -433,6 +446,17 @@ func TestApplyUnstructured(t *testing.T) { resultAction: ManifestUpdatedAction, resultErr: nil, }, + "apply large manifest": { + reconciler: ApplyWorkReconciler{ + spokeDynamicClient: applyDynamicClient, + restMapper: testMapper{}, + recorder: utils.NewFakeRecorder(1), + }, + workObj: &largeObj, + resultSpecHash: "", + resultAction: ManifestAppliedAction, + resultErr: nil, + }, } for testName, testCase := range testCases { diff --git a/pkg/utils/test_util.go b/pkg/utils/test_util.go index f644ed292..1685025ae 100644 --- a/pkg/utils/test_util.go +++ b/pkg/utils/test_util.go @@ -7,6 +7,10 @@ package utils import ( "fmt" + "k8s.io/apimachinery/pkg/runtime/serializer" + "k8s.io/apimachinery/pkg/util/yaml" + "k8s.io/client-go/kubernetes/scheme" + "os" "strings" "github.com/onsi/gomega/format" @@ -18,6 +22,11 @@ import ( "k8s.io/client-go/tools/record" ) +var ( + genericCodecs = serializer.NewCodecFactory(scheme.Scheme) + genericCodec = genericCodecs.UniversalDeserializer() +) + const ( // TestCaseMsg is used in the table driven test TestCaseMsg string = "\nTest case: %s" @@ -37,6 +46,29 @@ func GetEventString(object runtime.Object, eventtype, reason, messageFmt string, object.GetObjectKind().GroupVersionKind().Kind, object.GetObjectKind().GroupVersionKind().GroupVersion()) } +// GetObjectFromRawExtension returns an object decoded from the raw byte array +func GetObjectFromRawExtension(rawByte []byte, obj runtime.Object) { + json, err := yaml.ToJSON(rawByte) + if err != nil { + return + } + err = runtime.DecodeInto(genericCodec, json, obj) + if err != nil { + return + } +} + +// GetObjectFromManifest returns a runtime object decoded from the file +func GetObjectFromManifest(relativeFilePath string, obj runtime.Object) { + // Read files, create manifest + fileRaw, err := os.ReadFile(relativeFilePath) + if err != nil { + return + } + + GetObjectFromRawExtension(fileRaw, obj) +} + // NewResourceList returns a resource list for test purpose. func NewResourceList() v1.ResourceList { return v1.ResourceList{ diff --git a/test/integration/manifests/resources/test-large-secret.yaml b/test/integration/manifests/resources/test-large-secret.yaml new file mode 100644 index 000000000..d6961a1b4 --- /dev/null +++ b/test/integration/manifests/resources/test-large-secret.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +data: + release: SDRzSUFBQUFBQUFDLzl6OWVZK2p5cFl2REgrVlZPcVY3cjE5ZHRVR25LNmRybGY5aHlFTmhyU3BNcmFaN202MUdGeUFIV0JPR2crNG4vUGRIOFdLQ0FnOFpBMzduRmJyMFZIcDdNeTBHU0pXclBHM2Z1dS9Ib3NnWHoxK2ZzenJEMityT05zOS92YVlGZCsyajUvLzYvRmI5cmFyL2pOZWxXaGJyK0xIejQrU0lQVStDTklIUVZxSW56NUx3bWRSK0Rqb1B6K0wvUS9DODJkQmVQenRFUVUvL1pWNGhWWVZmQmgrMkVWdldWbGwyK0x4ODZOZTdLb0FvWWRvbTVmNFE0Ky9QZTZxb05ydkhqOC9OamY1N2JIWVZpdjhLMlU4dEJZUDVuQTYrdndBTC9NaFF2dGR0WHI3c3lCL3NrZldYUDlpZm41NC9paDkvT1BQWXZqMWEvdTdQejRLSC92LzltOFBYOUVxMkswZXd0VkRHVlRacXFnZWptbUdWZzlWdW5xSTB1Q3Rlc2gyRCtFcUs1SUg5Z3dQLy9admZ4YjRmNHZ0UTdLcUh1cnQvdTJoREhhNzQvWXRmbmpiRjUvL0xCNGVIaDVXcDNMN1ZqMVlveGQ5L3A5ZmgvTzU4OFY2K2ZmLzMvL2U3TU5WVkNINDdtNFZ2YTJxaHc4ZjhNYnN5aUJhUGZ6NUdLKytCWHRVL2ZuNHdQYnBRK2NGSHo1c0g5YTdiVkVHVmZydmZ6NysxOGM0cUlLUDVDUHNPZjd4NStQRC8vTVFCcnZWcDZlSEQvSC93Yy9yYmZjUGFYQll0VzhTUEZqNFczL3VCVUg2OUxaSy92OFBDcjFGRUVXcjNTNEwwZXBoVzZENjRkdmJObjg0WmxXYUZmaUZIMTczNGVxdFdGV3JIZnZLUjkxVXYzeCtXS1NyQjJNYlBsVGJoK2h0RlZSMEtlbGxqeGxDZUxISm4rS1BpKzFEdEMyS1ZWVGhMOEJLWGo0Ui9lcG4vQWJpeHdkclg5eDQ3SEliUDFScEFKdnhFQVhGdzM2M2VnaDJEOEZEaFBDdWZ2NnpZTXYrdGk4NjYwMVgrODVhZnlEZmYvanc0UzEvK1BDaHF1cUhEeG4rYWJXcmdyZnEzLytYdVRxczN2N1h3NTkvL29rdnV5b09WeHZlL1JrKytlRkRsZ2ZKNmlIZVJwdlYyOGRzKzN1WVZVV1FaNzkzYnY0WnBQUkR2QXF6b1BnZ2loL2VCZzhmUHVCZFRmRnFTQjhmRkxwNCt4MldVTHpTVnhzNjBXSHAySVd6aHcvUnc0ZjBybWdGRHhjUFRHVDk4UisvUGNKNXdMb2lYMVVCbGpuODMxU2pkSzd5K050anVvVmZwMVZWN2o3Ly9udVNWZWsrL0JodDgrWk40V3E3MzZ1MzFlcjNQTWlLMjB1QWxjQjIveGJoSS85LzM3M2N0cWlDckZpOTNiMGtmcXFxS2ovL1RuN0VxLzc0SDc4OUhsWnZPNktBUUU5Y3FTVlkwUDl0L1Irc0NJTGlZVnV1aWdmeVNMODk3S0lBQlNGYS9mWVFaN3ZxTFF2MzFTcCt5SW9QK1NyZnZ0VVBVUkNscTRkdjI3ZUhvQ3hSRmdYNG1ydVBEM29GUWhxdXNKekdXUFIzMWZadDlSQVU4Y051OVlhUGFGQUZEMWtCVy9wdCs1WS9iTDg5NERzVXllNjNoelRZcGF2ZGJ3OG8yMVc3M3g1MnEycEh2cnA5dy9mSFAzOTgvTzF4czZxeEtvQ1ZZeXV3V2RXSEFPMnhjc1czd0FvQ0x3SmVMYnA4ajUvL2I3T3JNbG0veDk4ZTkyL29SN2J6OFIvLzhkdGpGc0hDc1EvVFQ4Q25neDErdU45M1ZSQnRkbVFmZnMveWhPNDUvUHFESkFrbnFmZjBzU3lTeDk4ZWd6S3pteDA2U1BDYnN2ME5uQkQ4eTZMWVZtUjVzVlJHUWJWS3RtLzE0K2ZIRi9hYS84QTdXNjZLZUZWRTJhcnpudEUyejdmRkl5OE0wc2ZUeDlQamI0OXZxM0s3eXlweUxmWks1R1UvOG04V05rdFZCUWtzT2YzTkIzcngvL2p0Y1ZWZ1lZa2ZQMWR2KzlVLy91TWZ2ejJpYmJUQno1dXNpdFZiVURFcktuMFFCaDhrY1NGSm44WG56NkwwVVJSNnZmNmdMeno3ZU9PeVpMV3JIajgvN3RKQTZuLzYvRWY4RkF5ZWc4RzNJSXg2NGVxVEZQU2VCODlSMU84SnNURDRZeEIrQ29UZ0taWUcwZk1mcTFpS1JlbjVXUksvU1dMMFBBaURKMktXZjJKaGhJKzlYMWdZZU45cWxaY29xTG8zYVg3NXUvbGxNWnAvckU0VkZjL0h6NDh6SVpXWGFKWXNOcXBwTGJiSnFyZExKaHR6NjdtR01ObjAwOUJaSnQ5YzRaVjl6dDdZODZXQXZpN1dGNTlGUG9vS3N3eWxKL0o1VzU3cHFxOHVrV2tzaEtkUCtyajZRMWY2TDRHbTFySFNsNk94N1BpdWNRNmN3VjRmaXdNbEtmOVkxVUppakUzazlRd1VqOGk5djZ5RkpIRDY2M0JzYi96NU1JdHlleE80MDhxVFRtTFVzMUNVOWMrK1k5YSthMzN4SEJIcDJYQ3ZLK0xnMit6aWVxcWNSajJ6Ri9hTXpWeXkrL3JMZHFCcmFJK3Y0MnZMUkM4TTVHdm9QSEhNWGV5YWd1L3ErMGl5MTFGdUMwdE5QVWU5K0JEbDFzUjNONW11UENVVEZ6L3o5dSt2bVR3TE5UdU5wR1hpNWNzazBsUWhjT3g5ck1pOVFFTTdmeTRMZ2JaTVBDbE5vMktXQk80MDhYSzdEUE1vOFRYN0dHcUR2dS9Na3Rkcys2b1UxUitUdVZ6NjJYQnY1K291ZHV6ekpMZEt6NG4zWWM4VUFzYzBROGxDazl6ZWU0Nnh3OS9EYTIxcktkSTFzZys2bHFaUkxXZStZKzkxelVLUmRqcXNISHVEMzFYWCtHdE5rOUFaYlB6NVV6SnpUanQ5TE5laFpLQ29scmVlNnlOZE01RHZQQ1Y0VGRpOVBLZS8wY2ZXMXAvTDYxQVNLL2k1YzcrQjVMdEdMOHFSRUd2MlhoL0haYXdsbjVSa20raWFlUWdkTVEzekdjZ0Nmczh3TjNleFl5RmRNZUI2b2ZTMGo4ZnlMbWJ2WGhnb3pQRWU2OGtyZnZiZUxORUxQdzNITnV6eisydlUzQy9SOFg4WEZscU5aNW11ekVwOWZFekNITzE5RGUvVFVBRDV5NGFKNXhwRmRBYTVyanF5UWE1MUNMTytFR2tueVhOT291OU85MUZ1NDJ2VWVqYmMraHBheDhvd0k4Kyt6SFNsNzdEUCtScEtmYWwvaUhwVzZRbml3ZGVXZTdoWFBjdzhhYkNQTmZzcFZ2VEVVRGJKTjBYZUIwNS80enQ5UVg4aCs2dHNZaFFyUkk1Q0RaMWpSVDc0bVh3TUpldXNhMFpmMSt3bjN6SEZXRU43Lzd4OXhlOFM5T3pNZDB3aFZPVENkMmRKcEEwMlVUMnNKZzQrVi9ZNTB0UzFQNWYvV05YRC9USzNkNzZqbnYxNUg4NVExSk5UVDRKem4weWNZK0s1OG5HU1Y2S1gyM1dZMndKK3A4QjVQZ1JPL3h4cjZ0NlRsZ1BRQmNoQTlDenNGN2xhK1hONThHMjJmWjA1NXRwM3pUT1ZuV01velpLVk14RDFjWnlHeFN5SnRXZDhGckxZaVJLdjJDUytteUt2Wnd1QjB5K0k3TUM5MTdGMkpILzdsZmR3clZKL09YMlpMVVZWSHcwMFhiVjBheTdQRnNMc2I3b2lWTHBtcEpHVXZDb2JmRTRHTmV6cjJEcm9Zd09mb2RLVFZLRTl5M2pQMURMTThXZE1BWis3MkIwbWtXVFdnU3NMVVMyamxXYXZZOWRDK0ozaHpFdURLblRVdmY5QzlrZFhob2V3SndzVHlTaGpEYi9MNXRCK2YxRDdqbFZHdFlqMTNqblc3SG9pMmZ0NGJQUWpiVkNHeFd3ZlNVa3lrUWJIV0Jsa2dXdnRQVWNzSnoxekhlWG9HSStuaDJzOU9haGo1MmtQNzBqMERBckhKbXAxNzRYZUtleXpiN2M2RXo2SHJJT3VnU3oyd3g1K2QvN3ZoaGl1dDYrNk1reEExOTgrUDFoR2QxSE5kUFpzNzB1MjBKNlpkQk00cHFBckJ2dDdwaXRXVjc4clJoNDQ5czdINStXZWJnZDkwaGQ4TnhYMGJMaDVCVGtrOXNBSEhkYmFtOER4a2draU9pV3ErKzE2NS9ZVC92OHdWM2RNZmkvMUxsa1A4eERtZllSMUU1WmpMTmRSSnMvSi92bTE3MFIvNkdNVFJZV1Bva3pPbzN4UTZkcEFqTWRtaWRjbUpycWIyUnhzSjVBbjdlanYvVU9vblE2eGhQWitqZldsZjRoeU1ZMDFkTUJyamVWb3NSa3NzZDJldTdNa2ROUytQcmJTQU51aXVaejdicFNFRHRwak9ZeHFPUTk3T3JudTZIVHdIRXZ4bkZNYTVpWitMbU9weUVLSTlmaGNUdU5jTFVOTnpVSnR1YWV5Q3Y5c1NSVThLU0hYQUxtM3hLaVdlNEZyYmI5a3crSks1L1Q4TlQ1YklkWUZybm4wSEN4djRBZk1mZWVFUE5kRXhNZG96dkhnMjN4WXhUVSt6N0xnTytJeDFQQzVBejFaaGM1Z1A4bko1eWU1TDRiYWFkL1kvTEU0TUk1VS9sUjBpT2R5TDhCMlRVdlRPSWYxMkFTT24vdXVnYkRPd2JMaHU4YmVjNDdKM0I0bWZqNm9kYzFPOGZzdHlkbkpvOXd1dnRUeUh1eEpKby94TzVGOWFXVkQxOUJSMS93NmxJVEVVMFMwR2xzb3dzK29EWk9vWitkK2pwNnd2RVNTWGNjNVd2dnU5Sk91eVcreFl5Q3ZaKzNvZVRySHVabE1zSzVUaHBmM1A0WTlRL2lTRVIzWDJyeldUMm5mNVNSN2tvbWkzblRmM0cvZWgrOFRtU2ZYcC9ZdDE3WCtJVlorNlpxN1VGSTNzMXpkZVU1Lzdic0dsaCtzNitINkM2bS9acnB5b1ExU2YyU2tJZGdKdTU3YjhsblgxTnFmeTdYdnFKdlYvRWhzZ2RaSGVKM3dHWXJHeGlITzBZWmN3NjUwVGQzN2luejBYU01QZTBhbGE2TmtydG03Y0M3YmtSYlhubU9oTHduZGV5MUZvU1lrc1NzWFVhNWluL0duYmNWZFc0YXY1Wm9JMjNuTy8yejNmS1N1UGNrK1IzVWZoVGsrUC9ibXEydlZzYlBjZmVmelo5ODFwTUF4MGFTdytwRzJIRnl1Ryt5Wll0V2hOQkRBZDFXd255M2lkOWw0MGtERU1vMTk1ZHU2ckgvd05mdU0vWjRBK3hWakVleDFsS3Q3WDFvbWhyYlo2WW9sd1hYSDloN3JhRjJ4MW1FUC9OakJ0L25wZmIxWWdINHJQV201RDYvM084VDNNclFOZnQ3NHE0TjF6Nnp5V3RrcEkwVWt2anI1VEVkUDY1bGNyZVppN2J2eVlkSzc4dEhwZVkrMytGenJHdWkxck5WcklyNTJTZVh0dmp4aTM3Zm5sNzZHL1dTajMvaTQ3SjA3NThiZVlWOGYvSC9RamZKMzdBamFCKzZNLzd5eDJQaGZ2MlR5RWovUFBCOWs0R2RvSmo0UG5JL0I1SVhwTWZ4KzlEUE9iTS9mRzlZS1loNm0vKzdhcFkzbldxbVhZN24vdmkxaWZoaDdKajhmN0VKdDBNTitXZXZQVytmMjdObFBrVGFvWTBWZVdMYmh6SmVtNmdwbzluVSsyLzV6Yk1PdjJRVjhuMWl6cTBnN3BUSEVldmcrQnI1VzdUbjl3cDhQdCtCenUwa3lLWmhkdTlSeE92YkxpeWpINTNWNEJKL0N4ZGRoNTFCR09OYjQ1Z29aa2RzTjlZVmFtUTNtd3dyN3JvRXkzQ3dGZTI1djBJdGxENHlsTXF3aTVVSy9jMmNLMW5RTThRYTJDMHhIRVIzT3hSbXhhNkkyVnAxUi8zMlVHS3FoV2lPMGNFVlpYb3FtdXhDTkVUNlQ3SXpoLzc2UVh5RWNUL2UrMDArOS9JUjhoZWsrYTBkaUNQeHNzMlRTczZwSUdheEREV0diQ3VjcFZ2RGZLN1NhRHcreEpoNG5rcmtqOFhEL3pYYzN5V1F1cnIzdTkxOW1jOUFEQXY5TVYvTE4rV3krY3pxejJNSUIyMEZzUEI5UGUvTUxIMnpFK1ZoVWJ3WFlsNXZMaHpBLzlaa05qeVVrQkRoV0hvTVBNY0YyT3NyN0tNYjZzNzNHL3Z2K0kzZnVOK2lMdFhuK3BLdWdWMTVEU1ljemlYMVhqOFlJdkw3QmNYT29IU0dmd0Q3akswK3ZWUC9zZldWWS9aVC8yWjVwSEl1ZkpwazhqNTJuNnpVYXl3Y2Y0a3hWb08rLzlweW5CTXVWcnFsbmJIYzk2VlRpMkJTZitac3lxSjJ1L0dSOERyanpqK01RTEFkNzN1N2V0TG1OWGhBSG9CdkdGZ3BkZVFkcnh1VU1pQTZaN3YzQzNvVVFTeTB6Y2k2RmlqMHYxZ0g0N01hYVdzY3ZRckhJYmNsMzlRTC8zbmY2a243ampIeWRXM05yYVJsTGNUQ2IyZWJDRmdaekMrUWJWWjRUb3h2UGRCMjM1ZlN6bkM1cVlrRjhyYmw4RGpVYlJRcjQ5MldZSTJGRjlmaE1HaHhYY3hwcnFkWjBXY3R3VGdMSEovR29PNFU5Si82NGZHaGlTeTVlOW5yRG4xOXJaWEQwWEdzNzZWa0g3dnpDdmYvcVBuekpCa0xvRGcvczUwa091dUJTUnRhUjhnc3hmazlPWXkwNXhOb3pkMzJzaTM3TmJvRE94dS8rc3IybHkvN3B6endUUmxTSC9wT2VWekJsdHI0Z0Y2cDlmdCtXRXgzaXVaYmdPZWFXNUQrYW5BM0o0eWw4N0dJLytjNFV5NWNRanpmSnhObUFiSFZzYlJ2N0V4bXMrM25zbkhZZ0szTTltV1RZdG9qTWhpVHVjTnZ4cVNESHFDUmNqTkpIOFJqYnQyb1dTcWZTNjIwNE83VkpYcTlpbXV2UGUvait2Vmh0L0hCbEF6STZjVTZwbDl1NzZDeGtmL0U5QnZIWUVQSHYzVEhOdGVTdEx2ejU4OWptcDNnZkZGL3ZmNFplRlRveU1BRi9uZVRGdnM3akw3N3JveWlMRW5mNFkzbW1uOWZKY3RUeEhabzh1Z3d5L2NyWnB6QzNoVmdhMUlFb0gwSU5yVmZ6TmxaN25RKzNZVDRROVBjL24wSk9SbWpqSVBBRjUwSVZhbXFHZlpPdmMrTXZubDlSaUFvYjZSbThGN1g1NE8vOFpkdHpJVWZzdXEvVDdBbmJHL3krNjFpUnhZamtuRUJYWE9RalhoYWp6U2NsS2R2N2FYamZwOG5FU1g3dC9MdVFML3ovcmkvYjVGZi9HK1Z4Vm40SmV4YjZrc21Md0lGOHpCZmZ0ZkFaZTF0cWcxM2dtSDFkUTJjc0E5UlgyK25hWUIrT043UldRUEo2dWtaMElqNVRmMFZQMER4SXBoU2NiMHY4YnlHczVYVW85ZmRZajdHY084Uk1TWGtSMzVaWDhlNVZyZVpHSFMvTzFWM2dXR21zMld3ZDJmUDkwUGRKVHJhYWg5SnBoKzJscmFsRlZGUFpuYkU0b0sxUk5tZTlpTk1vNzVkaEhwOG5oWEVJdFJQKzc2WG5SSjM2VUp3UGRyRWpvaVhlUHdlZEl3a2R3bUs2RHh3eDlhbWVmNmNtMWZOY2c4U21kYi9tbjdGVEl5dk1maVNaUWpoaStxT2JBeWQyOXY3NXU3YXI5bFBnbWxDaldkSTY2ZXVjeGlVWnpaVW9WdTI3cWhpNEJ2SzVIRDJwdlhicmVaQzN6NFpaMU40eisyZlhBYWpNSktUK09OeEV1WDJLSFlUMTJNeHp6VE0rVi83SXJxTjhVRi9WaDl2MWxqem5WUHBRNXgzc283cmYxZ094enBST2FKTGJWVFMyOFB2Y3ZvZHlzVTYzNzRPaXdqaEVCZDRMbHN2c0g1dHJnRTRUai9GNHc5ZE5PczltdVVZZDlveXpuZzIzcEc3NC9qdS96cS9ya1JDL0ZxMFBjL2t6Zm8vSGYveDJBMnp3bitrS2xhdTMzY2VxUkMzZVlOWGJIVjR6V1FvYzRaTStObEdzeUhuZ25GQThSa2QvSVZiNHpHSGYwMTlzazlkc3dNNzQ0VFVwNTc1cmlWSCt4T0tkT3V6SjZEcldwZkpOOU5BcnVRYlZHNXFkQjA3L2U3YXlvdWZ0OXBtbW40dnFmaGs2YW9GdFdGT2JwbjliNW9NRFhqL09CdEhQRGpOZk9oMjhYTjExNjlmeExwUU01b2RleC9sNHZldnQ2eExyZnRmWU01ODh5Z2RIMzlVVHBpZUlUUjF1b1paQlBsUDVybFVIam5sbTYvSTYyLzU5MG12MmNPTTdPT2E4cmZkQ3h4YWlISzM1ZDJYN2YwZG15ZWZjUm5meHNrbitaaHVIc0RmcjZML3IrL3kzcnhQRTNSQUhGVmFLWlNUS1pDbVVUbUxvTEt1b3E1ZlpkVW9sMng3YTU3Q1FuNlA5SFl3S3ZaWTk4MTJqQ2lEM0JMcmpYN3F1MzdNcmVyT2VIVmt0UW0yUWVjNng1SHpwOXV5RHpYait1NElNRkkvdE9zems4OG8xSWRkQXIvdmpaNDdaSk9WZnV3NVJENTF4dkRyLzU3NDMrTWJSMkRoZytkQkgxc0dUS3FpbGtuZkJlaWt1bzU1VnIrYnlndHF4aE1SZjA1L1dTOHV4dlF0VmF1ZkcySDhSMy9jOVdqMTF4UDQyczlIWWI3blVWK1IzcHpMcXpXN3BMTzc4aVNnZUc2WFhhOWEvMUJXRHJWc1g4MExQTC9NSmZ2Q3NwaEhSNjNWQWFpRnBwS0VXSjZiNWh5aVQ5OHlQamFnZk8wbnU2TFJic2I4cmwzWnUxM0FXTXAyM1o5Zy9QL3VPS1BtdThSSks0dEZ6RGFRcit0KytMa1o3VXhHT0UyWDRQSjAvOVNhTElYN1hGOCtWVXk5SHU4QzFTdnpPY3h5TDJ3ME9ibTlKU0dqdnhhM0RHTDhmanAwTnFBV0c4UG4rZWRMelRsNXVDOTVpbEhYOTNkUFpuOS84ZnJNVzJBK2I1THNuMkxkNklFM24rbmR0OTN0eTdibEViMFk1Z2pnT3I1dlZNdzZ4UzJ2bHFuendRUjd0T25DdC92SjdlMUhjK1h5dUhvTmxYSWM5KzZqemE0VGp3YkdKUXRkSDBjWThoSzZjUnZnNjY2ZkJkUDUwd3Z1QmJjTk1VbytlWTVTaGhvUUF5K2dHY3ArTnpFdzJjUm1yTFRhUld3UDhidnRZd1Q0bmpZYzY5K2ZxZkJlZmg5cTQwNmM2L05mWEdXSjhxTU9QRW50MFd1ak1qMVhrZzVlWGtOT1BwUFFRTzZmTlJmM3ZKL1FIL1k1dDdTS1JYZjlLN2lFdXZSOHo4M0VFanB2N2FleGFCMHV5OTc1cjRMaHFveXZwUHV6ZHVJYWJZaDJJNHg2bUE4dDduNFdZVzBONTRKajRtdWMycm1peEJVVCtJWmI4Uy9MTnNKMmN6UWRNSnMxMWtQM1FjR3h2bFg2TzFqam1qWTQvN2p2RjJxbDUvZ1hMZFRUUE45eEVuYjhOUDMwRlRLVzY4MTF6M2RHNVpMM1JDdnZ2R3RyN3pSNWVmZWFpTm1BMk5xZTcxMWYzcmxoZWt1SXlpWnhyWHFKbk5zUU84VmplWGNkZmVCOXY2Nmg3MTVvNFpvMWw3L1cyYmIrVEg5cjh0WDNHc1JEQk50RzZPdVRYSWVhNHI2dHU3K2NNdm50NWRxQjIvQjQrR2E4MWx1ZGxPRzcyQlBJUHIrK3UxK0FRaldjSEwwY0NYb3RnempDQkE5am5xSDRHdTYzVHZZK0tXZllEKzlIRzQ4b3dtM1hPMnpMeGM3VHpIWUs3eG1lZ2pSVm5TU3lsS016azVVTEYvdTlUMHVvRy9mWTVIdmxsQ0xrbEVlbmpJL2FUeXJDd2NsM1JyM0dQWk0wTzhMM3g5R0M0MCt4MnZ1ZG0vdWRXYkpqR1d0TFd4alNTb3dza3U2OXIrTG1XKzUvdzNZVndiTDdnTmFjNWlxNk5VbElleC96aitqY2JsazArb3RGcnhLNzcyVEM3eG5aU21aUkFKNTBuTlp6TmpOUmJLN1M2dFBkakUxMWYzMENSYTVmNEhYWEZlT25vaTdrODhkM05QMWtHS3JSYS9nK1NnNUVwTTFtQTk1dy8vVVNzWXUwaXdaVC9SK3FBM0V5eG5GMDgxNi9Jd010c1RuUWowYjl5R2RXOHpwQjdnV2J2YVMyNkRETzV5VlYzYzQydFBab0pxc1pkNy9rWFpQeG0vUENqc2Ivbldud2RjelJYOE8rTU5IU252eWdEbHI3VTFOcHp4UE8xTHJqRVFWaGI5bG1MTzFkWFB1VlA3UFdWZjZXbE0vSStKcmZPUDdkbXN5NE9oWnhWYlpEVG54dHNvcTZwYTRZMWhEUGxtdWduOUdoem5abGpFbXpoaU5VSytGaTJVN3U1L283Q3p0SWxCZy9zZHhvN0orRkNKMyt2VGxGMmNnVU00N3BzM25VZk5yME05MjByZVhkVkRNYzRybTcrTy92NWEzOVh4N1U0NUE3K250bVduNUhuVHEvVmUvdHd5Lys4aWtmeG1TWTZtOHNEWFB2L2QzUVV1UzluSDJoZTRsL29LM0o5TlZ6ZGdmZ0pnTWswRU5hWDhkZ29mZGZIK285Z0psV2lwd3pzSjU1M1RTenhNLzdrL2Q2eTdoNWMxbVZ1cnVkNyszUlZFN20vMXI5Nm5YdjVDU3dQVEE5MDZ6cS9adE12Y2ZGTi9XTDRFK3QrNXpud1dwTmFhNHBDVnhaVzgxdDU1ejQ5UTF3ZGh1YWlXL3Y5bzkrN3pqVzgrd3hGdS83WFBzUHR6LzFJUElEbGErYWNqb0dtZm9rZElaa3Voajk1aGl3VWsvenlIdkJvVW9xd2Jvb3lHWEoxSWNVbFhtQWRGN0dtQ3I3amkvajh4eit4Zit3Nnl4N1VjL0g1WHhCZjZzTFArWVgrQmk3ZjBhNlQwdUpRQ2FibmFnM2JOYm5BZzErZTNSL3RHZmlKNzdSOUEvbEZUODhHemZnMTRaNlg1SjJ1MXV1N2ZrSXlvNzFKK04xZ2ovTmxBam5TTWF0dFIwa010WEh3RFVHdmtqeXhmZGFWSC9ZVDFvRm1yd09ScjVmSGw3N1dyOWZCV1ozdmUvbnpINnpkMzZoZHZlOXJTWU1xSW4zQmFhZ2RrMWhTYStoRjdVMmhOeU9zNVZRZm0vaGVPMUsvTTgvNGVTY0t5ZEY1a3JvTEZUbjNITFQ3cWZ6RlRRd0UxeWV0aVNqcW1XU3ZvUFpONndGY3pncHdqUkxVWDZEWHhIUGxJOUhYVnZPY1VmM2RXS2lwVWZ0MlkyL0VTSU5uSTc2c1krT3ppZmQ4MzZrZmRPL3o2U3VwRjhENTZ6ei85Mkx5d2s5RERXMndIdW5FTEtLY1J1QWpXaWdxcHRRM2ZHK04xR05FOXJpek5xOC9qMGVCZU9FSDNoY3dPV0hQRmk3K2xuWE9CL2MzOHB6bEFjZnJPanJ0OWF6N3JLMHVKenFyZlVjK1RzRzZvN1hwcnRaM1pzdVRiZG5UeE42bzAvblNrdTBSK3JwWWwxRkljb2J0UFhETXAvbHA0QngveXE3b2FydEgrcGpKQ2ZROTM4WDFUK1l5MFIyMVRPVUovRG9jZjRHTml1cmhYemt2KzlpRi9obTA3Rnp6dTdsMFR1N3NJOGo5dkovNm12VWxsQ3c0TDdvMnFIVWx2Zis5Ny9TaS92QjMzdTNUR3BhNmtpU1hlTE1mdDFtYnNvdXZ1ZVF4K0ZIYksvK1VIV2Q3QWpoZkRnTUhmVjNrN0Y2ZC95OVFRK1R3dnlNMGk0N1VUcExlVWNDaHRIMWhyRGZxeGowZ3R5Q2pDSHB6aGFzZXFoYTdRM01uWS90TU1OZDhEeWxiejZlN2ZzVWw3cGY3SEphNXkzcktMWmxieHk3V2hYMWhVZGlWbDl2MVF2S1pESUx1dU5MVjYyM2k5ZXc2eWlGV0YwUEhRTkZta0MveXdjWjNwNi9mWHk5VGpBb0RoWVgxSlhiRXpIZU5yLzZHOVNKMjE0MzBtVnlzRmV4N2cwVnQ1VStSVXlZM2Qvcmdma0YrYmp3cmFuci8zNU9sVytzNjkxMTVGemhteXVTSzlDbUpJcmFwM2Y3VzVjMDFYdWIyTWRUUTJxTTlIcEZtMTM0K3FFUHNOMlJZdjVHK1YzMGNiMzNuaVp6YnZ5WmJkLzIvZS82ZzNlaklaY0k0T3lCdmRCRWZ6eG9kTXF6MHNiV0xhdm5zdTVaQWZMVy9xSk8xMC9rbjlmRmxiZk1LWTB0eWQ2b1lhNE94Ny9SUmxFUE50YnlKTGIrVXJidjF1czI5ejk2cjI1WHZ5Tnh5b2JMUFdTYkJFN1U0VE5helA1dkxERC9KY1ZhMHVPN0xlaXZGVjhEZlNEM2FxajNIendObituNHR3SjF5dFlDblpLbVIvazJLNzRQcjBiNndLOHdvcysxMy9JSmJ1dTEyamVrbjF3cnkrRU9xODBlamk3WDRpVnJZRDc4NzVMVDVYRGpCamQ3Smc3UzVnRXU1aE90TWZCZGQ1WHR2NlcrOGowMGRtbURBOXI3QXJrRjdWQlZadnF4MTZ4cjBUZjF3TFNDcTIxckFoT05FaWlTOHh4RHp2MU1YK2lzeVlNclh1ZlVyM2ZFSm5wT2R4WkZZUmoySXNWNUlqV0owZngyZ1pzUTlxNGJPblJvSzFiOEVMOURCMCs5MVZhWjlYMWpmc1p6dDNkckl1L0x3M1R4WkpqdE5YTVd1NVU2VFVQSXU4bWJENmg1MnArMUIvK3M2K2FvMkFod08xM3F5OVIvdllFSmNXd2lGR0lXNVhaTSsyTTIvVnVlTzc4alB1UHU4ckpjL3pPUkRCQnhWZ0RHZ2Z5ZjZjd0k4T2N2RWMwN25zSmIzdm9QbEJmd2U1aWZSdm5sMWoyMDIwNDBjRGdqdzY1NkQ5dVQzY0k1QTcxenI3a0ZObjZsNUJsaTdXaXc0RzNiMXZSL29zZmozMi9qdWFGdDh5NUk4S0QvV1FjNGh2RHNJdS9VMmlkZWoxd0JyblpjdGRCajVPU29Xam5wVWNteXhWV0FrK0FJc1QzQ0NQNzNESHZSZTUxMVQvY0dyd0xNS01PYVV1MTJZaW55S25ZSGdNNVNSeHJvQTMyVUMyM21PZ2JDRVJqMHJEWE1ySlJubHA1c01YbDF2dmVPSmt1dHQ2RDNycStqbnAxakk5SGRaMGk3dmRZbjJIOTVsUnJ2cXhNK0dOeGtJV1BaczV2VDNJV1JvQ1dLYXJBSDJtUHFIbUhWTy9DTFQybys5bzdySDF0TnpMVUJXWG5lQ2JPN3MwOFY3NXZnZFJwL3crekxyNm10MjdybjJMbGI2K0pyNWwweCtuckFzYTgyeUUzQnk4OENKUlh6eUtIcTF4S2ZTZDlNMGRHV29QQk9yTTJYL255enlBV1hiVUFYQzJOZGxJdk1jeGtCa0hzTGNMLzBlYUVWQU5wSnE5ckZCc0lXdWZZNFZPZlBiWnlQZDd4cFlyWklnSTRCbENwNkxJcVhTcUpiendEWHdkOU1vajhXUWRCUmZQZXNrYTFqS0lBc05HUml1bTVtdUY1YUp2WjlzTDkveGdLT1lNRWNDbGdQcVVWVytJeDZpWXBORUV2cEVQUTdRbXFRN0RRbkUrc29IYkwyeHgwWFd4VHo2amxuNnhhYTVSK0RPQUtGQ0xLNTlqaDBjQ1pGSUUxdkVxYk5MekdXczZDK1dTZG1Gc0liT3c1NGhCRGZlRlgvKzYrSXBtUzZHeDZraVp5dUNCcVRyT2p3RmtzNytYcHMzL2g3T2g0T3YyZkEwZlJrZThUOWRNL3BZKzFKUGZhMi9xSldYc2Mvb3d1dDZkSnl1WjRsWElLR0p0T0U1b3ZZNTZMVnVQWS9mZVo3dGU5ZHNyaDA3L1RJZVQwbEdYek5UVXBIcW53SHA2bHBsbkdOdjdqbVp3cnFwWXk4Ym5ueEJwNStIckRSRlZtSzkvUFRhdkZzOS9mRi9JL1JsSnB4c2EyUXZkR1g2VTk5bDdGWjZMUnROOWxjYjdMR3NSWmxjaFQzOG5BTWh3T2VKblorYWVMaFJMUU9EMENRYkpyYVdZcm5ELzhSSXN2UFlPWUkzdm5JR1l2Tk9MYXNZTUNENm1scjdDdC94eTg1d2ZHQXNEWjV6MnJISXVHR0VLNmFKVjlnQ1hqKzh0bUZ1STMvWXZBZDBSbUlQSkpURWNwVzNyRzZSWnRjVHQyR1Y0NkxwcDBRZnRmb1VkQUt3RDJJUG8vbDlzK2RoejlvQzB3LzUzRTRmbXdkOFhzano0K2VNeTBpeWQ2dnY2cXJCRVhSOU5zemE3TCtleE5KZ2IvUm1oQmsxdDF0bVVHQ3Q1Qmc2TitiWHhjWTNyRnFlVzNZOG45dVdxcmY3U1ptSzFFM29FSjNZcktOcW9yQ3d5akMzZDVPMjA1WHA0RFFjeCtrS3J6OWVxNW94YUtwWXR4MmpmQUJaVWQrWnRldUJ2Y2M1NkVCaWUrYVFjVTV2NmxzTlI0T21FTGcrb3A1ZTRXTjk2MXFRK1l2R3R0Q3VPWGZXZ1YwRlBMbk1kK0l5ekFueUdPdWxtTWdleUNSQklLaFNLS0VOejZ6YU1EWVErVjBIR21IeDh0eFpFaFhBM2xYZHNpMXp4MHNJWTZlZCtzd3poYk9Mc0E4QUhmdllRd3dJNHdzOFU3T1hWSWJESHBaWkF6SjhIdlhsWWtDQW8wUFk3dGNoR2hPN08xSGtNbGJnTERYcndwQkR2TjBuV1M1c2kwNXAxSnZSZmJqMUR2UjVuQm14VitNcFlUMXNVTnhQU1N5aG5ZLzFWMjZkSjVrc2g5cXhPUWVob3dxZWxOSktKYllOY1JscTF0cHpEZEx4N0p4MjdUNFozRE15QmwxMUYya3A5cDhFN0VHSEN2UCtuKzdaOEp4NDkrMjdVanZiZVBZUlZQdzZ6NUhGN2l3SjgrZUw1MDdBcm9HdGJOZWFvZG5yT01kNkRYUUxNQytBeld5NjI2ZytKS3lOS0dRTXhRMnpHQ3JDZkZBM0xMOWEvNkJydEJPV3NCRTE3NGZQc3UrSVpUd0dWaUtzYjZoZE5sTS9YNUo3dWdieThmWG1SOWp2VmlmQVBUZWVCUHFTNlY1NnZrblhiTHYrRm82dzE3RTJxS0d6ZzcxelkrZDRCbUdlc2VaMDhDUjFCNzVnN3JVK1FWdVZQSkE5R0FoaFBUZ1F0QUx4NWRwN3QvdkYrelIrWWFTK0pHS2RjNTdVVytiYnNPZGk5L29adTVVc2xvT1J2VHlweS9vbmJXWFg1azFEU2Qzb21uand4emJSK2NDeVpxVlJZWW1SOGdUbm56SjNNcnNCL2hXT3VybE8vTjNGZFRvK0ZUNWJrSDNQQjNXTXIra1NSdXRJRzV3akNVSFUyWjV2VVF6SFZobHBKOGJNVjRXU0pZSVB6T25PSmpQTm5YT29UckZuNk81WHRiSUg3RHI3U0hyK2tlK1FQVWJkNy8yYWY5SlhiVFgrdXR6c2twL2RLMDQra2xteFNkbzQ0a2l6ZmMrSm5odGxpT1BJNzlnYmV0NkkzNXNqNUN1YzN3OVpFSHZmK29PRStkVmo3QjQwSnZNTDR4QlNGSUxuK21rQTdEY25VdVdDcmpub2dCWjgxOGlCNWFJR241MmdPclFCdHFHVjU1amJ3T21qQ2VkN1VYMS9ESHNOd3hySVZRRDI1WW5vZ3dKaWswT1lMeFA4YkNGZUJ3MGRRNkxMZHZnOWlTM3EzSjlVZ281ZDNmZWphelpSNUR5VWdQa0hZVHU5bW5QM2Q3Q3VBaGJjMU5lc0d2d0NsMVdYaG10OVJKaGhQY2ZhRUFaQXdvd0dmczBZNnpyQzh1b1ZtMFRQaEd4QzJOL1hnWUpqR25WUGZBOXM5NW4vUjFnd0lNTkxxK094MXNveU9iZXpCbW1EZlI5L2JLQ29SekxPNUh1cTVEbG9SODd1VXpLanJQTFhmNk1NZC9DY2RvMmZKV3pYa0g5ZmZLODBWdVJOS05sblduMWJoejBELy8wWVN2ME45VW4ycTNuYmhkbjREN202Sm16eWRJMGtxUEp0UGJmMXIxaXNFT1YyNm84M3pOZEFEZU9kYytwNUxqclROZG5SMkV3TUMxT01jTnhYWUpzRHZwc1FTdVloSEU4Ym5jUjh2ZG1tOVc4akNUTERBckNhU0ZVWmpXVmcwcnZVTnhhTHlkM3BKN2JubkIrQTVTdVpMamIxWkQyU3ZpaFBwd21PcFpUaGFhbzhIU2ZyNFg0Nkg3TDFwSExlUCtQWVF4OWJ2YkNXejVGbXJ5SGJXTXZHY3V3SjdYNmFYTndtWTk5NW83K01hck51cnZ2cHkzclVJcmlhZjl3NUorZHlGMHFEbzVlcjY2QzlCMTQ3L04vUzVidThac1BxeTNyNzkrdnJjdi93dXpnVlErdzErVFZBSWwzcERFNEdic1NXMzRyKzMzUTFscGVidnJIWVJPVG5FY3E1YVFKSFlLbk81RHAyK2lUYnlYeDgrTWQ4Z1ZPZnNveWVHVnN3UGgrODNTYVZUeHMvSjZ3bnpad2UrQmoxUXE5Z2ZiVUJKbERYT01UWWRrTCtoOGlrNzZaWWw1RjFtSEcrUjJFS0hvazNJUE9ML2ErVll4eXdYR1BkUTg0dDl6eVp2QWhyMERzdFVuMGNJMzFzMDd3WitHVDQrWnAxNjdLMGtiMjcwR2xVcjlCbnpRZTFKeldNVGNSbnAzTEMySDNZczdXNkRjM2lOZlg3NEwrOTVKWDRyWndPMldEN2VvZzBJeVVJd0hiOU9ySmNEN2MwaG1GNmo4UmlyWXhUbjVNOHl3VUxFS25xajJjTnkyVExia256ZUl5bGsvZ3hwRHBIYkJIenQ4RVhiZDV0YklodGZQVlUzdkFoRFN1VC9ZVzRUR2Eyb2VxcWFTODN5OFJaRG13c3J3czBnLzllWnJLeFFPWnl0dXkvV0hONXVhamw2ZHcybDlieUtiRkh6OGxzZVpyU2lRTEdBbG5xY3VQTE04RmV0R3RzZmwwc1JSVmZieUhhUy9wWmJTR2NwZ3N4aGpPeEdLRXYxbzJZeHlHVEVwaCt2S2drUUpVeDdYWUMyUHRRQXhzRk1SN0lMN1pGcnJYRHNoZTRKam16VUlXdzhOcnlPWWNLMk01YmUvNDNmRmIvZGYvbyt6WTZWdStCM2xPZVRyb2lZTjNYK21ram84OTFXZXlBdVZpTEQyMDh6TW1Ka3BLWW9wbmVNQ0pud1ZFSktxWkI4cmY1QTd5ZXZCNGhlWDBzMDBlZWpUbUwzZWxPMTJ6QnE1OFlzelR4b2ZPQjJEQW96anM2ZnhkS0VDczJ0bmFTeVFZWHcxVmh6eFJJenMwK2t6T05kWjZJUEd4SGlJNEVsZ253YS9Jb2lYcHdwaXNtRjVBRDBDQm5nTzF0QWd6UHpnek9lcFFQeUdRUXp1YVQ1MHk3ZWh2SHJHUGpFRHZ4VmgvSDI0QXdRRkw5VE5pNVNCNmI1TFRDSG5ROFhKNG5tNkoxUVBkT1hQTVF1OGJhbjR2dzduZHp1Snp2NXM4QkFjdDgyelh2KzhEYTVtamZ6WkVkY1V4Y1l2K001QUpJTHMxei9Cd1l4YlQwRU5mdDVJN0dCODdrd25ldHM0N2ZtVExzM3ZVTEZ0YzVZWGdPUlR5SDJOK1VsaFg0aGhubkU4eGFmMytKNzZIaCs5b2t0dElJcXNDYnl6dlBSWUNXSit3VHBoamxTRmdSMWhxQnJmbEVBVVExWDJsTTQzeFFNcmJlUm01Ym04bkpyN3p6SFI5eWRJQVV1bUdicUJ4VFZKV0pmU3lRRWFJN0JpVis3aHQ3N1JKRUc2ZEhGS0kvaU0zR3NnSStDR0VjYmVJZHlLdldkSExRUHVRN09aUmpOMGJsY2txRXBSblFUTWQ0RFBIZTJuT085K0lhdU9mY2xpV1RPM2U2a3B5bTYyaFA5bWhVVHFoL3hNbFlzMmV2TDl0UFUyejNlbnBpTy8xeUJYNnhDRG1tU0Jxc0E4a1dic1d1M2RpdTNVYzRqekJ4NlFvdDRXTTkzVEk5V0dVa2tRb3VqcmxEcVkvMWR1bTNhOUhtN3NaWVhwYWRhVHJNZHJaNUZaYnpUZzlSenpxMzU2MWxqYWIrUXV0M3VENEtNNHE4d0xMbVdsdDhUVkkxaHJOelVlTnE1U1BpWkgzaUVGbGZPZmFaeTFXdy9Ld0lNUUxYT1JkZ09kVHNQWjJZc1k1ZG80eXhuM0NaYTh5d0hRTVcyakxPR1pyUVFQN1lacE1udUpnRDJHemZ5RnI1VVBQRlp5QncrdnRRTW9GMUZ2TER4WFFQRE4xYzdpcVNiTWwzRGF5N08zV1FkM0tmM2VjaTU2b01IVkdNeVVTVlhWTnZra1JnYmNhK1dheWhOTlJPL1ltRHoyeU1zTTRtNjB1bWJFVTFZVC94OGhPd0ROM1NWYlB2cnhHeERkSmdINCtOUTlqbTM0anYxTlFtNGpvZ0UyT0VzQjV1L1htL21HVEh4SkNzTXNxaWRsMEJJUkJ2dkx4Rnh4ajFwcGtTQnZkeURSUm1zY0JxY09CL09vTU50b3Q0ai8yeFhSUC8zQkRCRGp2TGJxelkxUzNZZDY0OHAycnl0MkYzYmZkWHNkdW9uVkxRdmovTngwSW5rY25pbXpRZVcrRGJScjNHSG5Kbzg4Wm1wcVF1YWtOZEkzWk4wWE5PdTFVYkY2enh6eXdYUU9XS3hyMEc5Z1BlMk45YUhYRzlsN2FXSXBnb0I4OXFvTXVZeDNjUVBkTVEwM1RzTTQ0SG8weitPeUJ5TlpJTGhUb1l0amRRVzdXRkMzOEFBZHR6Mi9ITHp2V1pkSUdRdGZlZEU5aFJIT3NFTHFrYjBab0ZQQ3REZ0g2NXRoUDdzSWI5cVBRUldRT0tORXpEWW5OaGs0ZmJLTGNyRCtvOHFBcGRXNkR4UjdNMldKY1FGbVZaQnVaVGx0OXkrdjJ1SC9nRTZCOU9odkR2eXRiSG8ydWpDREFCTCt4RlROZkM5ZTdZbDcwK0ltc1o5b3pTbDlDZStXU2MzV21lbGVzZ3U0ajdzWDNoNC96TmpzVmViWTVwdVAyeTNwNWVTZjNTRG5QMHBHdldJWFJVN0F1Y1FaWmM2MVplbkNHQXFxNHVaajdXTkFuek50ZkUwSXNUeDBKZVlSZndPVnFYdS8wNWxtTVZ1U21BL1FPbjMrVTJqdXZhNXNiMzZPUXV5WVNqaWNMRnhWZ1B2WGhuODd4SlhrZElYbXhHaVg1T1R1WmlLcGpLaHN2TG9SeDh5V0tXVEVuZXNmRzc4VmxwNG1DU0l3SS9uWStIQ2ZPU09kUEhKdWpWNWl6U2E1cnJhZThMNThmQlorbVpDTE9rMUNFZXJuYWhGTjNRUFZpRzA5S1hFb29ldGMveGVGcXgyaTNZRUVWR1llR1hVVDdZUS93L25uYW1JWGx6ZVJ0Z2Y3eTlEK1RNY0p6WFRMOVJxRi9zK29jQTdDYWNDY3BrYkowdnowU0FmUzNIeGpFSU1BUXp2VWduZzVWaFlUL3BXZ1ZUTDhMaFJkdytOa0hYUXg0R1dKajZGQzJLQkk1bGdhdWREZzlZQnIxNmNGNjUwd1BrUVNUekVPWExReVFOS3M5TlFYZmg5Vy9QcFFnVHpDSVNDMkI5VTNzT092dHpPUXQ3MXZiNkhtQkwweFc4NXhPelArdEloZXQvaTNwbzcwck4rbkgxb0dZZGlVNXRrYW9iM3pVSnVsT3pjeDhZc1psY1dPdElFVFBzVDRUYW9OQmZsaWZlejZkK0lqMmJzMnVaVUJ1c1NvZWhoR09pSk9lOGtjZHVmc2ZMbDJCVGZLV2JVOGZmNzlhdUJ0V3R1SGdDVTRkZ1hVdnFlL041dlhQWSttWTBUd001WUhhZnR0WWl3ZlFROGVKWithNE4vaHhlcjhQWTNnZHV5dFlwbWZRTU1XendSSDM0L2UzUFdrZmZOU3I5SlRwT2gxdzlSVG9kd0FZMTJLaFczajNISjFOZjVuSXpaUURyaE1DeGRqN1Y5UXNTZXgzQVQxQ1NJL0dSR3orYzJneFpDQndSUWZmZHk3RE5TNmpXeTFLUjMzekhQbnJPQ2Z1SHQzUUJkS0dFbWZqSmQ0M0RCR0tnWmJJVUJ0L21ncTB1UitwMGJ2c3F5K2xnM1F1NlpxUyt6Rm5jMi9yMVdQK25Yb0UvWjNLNXowRk9NUlY0WDlhMEJnSStMYnd2eFVINGhiMWpTUDlZZXNhNktZMGt3T05kNDU3bW04VFNiSUhFMFJiZ3p5TE5CbCs1eFM3cHBUN3lEMUZ1ZG1wSEJDa3VWeVNQaHhnalN4VTQxb2JWQ2JFT2pDUkV6K0QxM3BGNHYydFA3Ni94WU0vMDE0UmhrWG95OGlTVUI1QXZvM2hCSlFYN3lmYjdsWndGeWdLQi9kSEJCakF3YkJxZEJDejU4a3lvemx4ZTdFSjN3djdjbFVIeU8rc1EwM3FNbjdIT0FGUmQ0TnoybmZkcFlqZXFqOGRUcGpkUWxLT0RqMjJtaSsyOXhlb05lSTNmZk5mWSs5UjM2Y1lFTitJR01vbnZIRXA5bWhlazY5UjBnMEFzZjJ6anZ1RjUraktFK0N5VWNHelM1bCtDQnNmUlIvSHhLdDdqOHQ0RW8wQjhmNEpGWkxaNldqL1ZrL1dJZFhZSlhtOVlCWktOSWszZFFlM3paZG85KzY1OHhISEZRcHhXN1g1UGs5Q3hBUnNUdUdaRnpyT1lZcm1rT0JOaXcwazNUS09IWVByVERkbmh6dkZvUW5Udk9YYUozNEo5dWppSExzb056U1dCUDBqOElyOE1vV3NON3JPK1pBejlFUm1lTDJmNGpCNnhUMGpQZjNvcFg2R2oxa0hOWVZDa3A4UXFET1F2allYRmNpb2pOSUo4S1A0bkVWL0RtN2Z2N2ttRFF5QWgrQnduNTEvRFRQNGFhZloraHN6UnU4OUU4Mmc2anFPd0hQSFhhV1ZoZVpFTFluWWN5OVdScTV1V0lYVFFrVG9rMlRzUzkxMTA0N1RucGJGRFl1VzV4dHZFUVp1T252NEpUQWFnOTBWenNWRCtFaVpEV1hYclpzdUZPajBzUlhQYTFMU2tKZ2UwNUxzSEFwZGhkeWpEbXd2KzZLMGFkK3VmZC9BQlpocG1NTTFWakNSYUsyaFlGK0E1S3VZSGt6TUl0ZFh6NVhPUXJoYXFWOW9ZbHp2SDhGdzcwSmMzY3FSa0d1RHcyTzZSdFl0cWtad2I0dCsvZG1KMVBnZXNKbnR6TWV4ZmR5YVJhYUJSamlTdVV3bWZTYkNwWkpLcktrSitvTENndzZQcG51Q3cwQXl6ek93UWlWT3d6MGVuZkl5bk81QzdIckFCSkFSRDBkUUJqcjVqMTRDM2hKeVJTWEhVOWxrZm05dXdaKy84THZaNlppMEZlTGJRVVlVNytWUWhIRThyd2xBcFVnd2c3VVRKemJaYmpYNHVrT3oreEtIWWJZcTF4cis3NlhzMGRvRXkvRFU1U0xOZXVUTGtKaG5tejV1VGZHeWtwVFZNWVNRWXZnYnZFSEFZUFBBbDIzZE1zZC9vTzZmZHZYZmpucGt3QXRWTmh5SW5CMzJZY2h6aUdLUEpTZGtNbjlEVS9hNDc5dkMrNDNnMzRmQnd2aGptTEM4eTNKTEpmektaTE43NFRWMGYrWFhPbURaWURiSjdqYWpwek8zRS9Xa2pLOWt4Z2VsSGpvSDk1dTNGdmRvcGhJVjl2dkxQRlJuRjJuVC9lcU1PdUpRR2xZL3ZDVHJ4Z3BtVzVnZHBiTmZnK3ozWEVxSWNaWFFDTksyUldpaVNVQkhtREtjTUUzYlAvRE9TS1RjaXpibmoySVJoeHRqdkx1Ly9sTXdKM2o0RldTSDRUZ0d2eVdvT2VxaU5xY0RIdGMrOFB1RW5NOS9wU2kxRDZPM0FkblM0WmZ2TDlncjc1TDQwZ1AxNGJaNi96UmxkNVhCZ1FpcUpWejJYNnErYms5RVk3Z0JKTjdFaFJKK3h1S0o3ZHJWMmNoNmJjRWRpOWRPNW1mU2tpUGhNVnZSTU50T0gvcWVmNDJhNkhreEhJdTg3Y2VVMDZrMGJOalRPRHI2MGRRTEFzTGNzakl6cGhmYWdrTndtOVVOSFdMNzgwcCtMT242VzBGSDN1cEtPNXNxR01ybmFUNTZVUXI1ODB1cEd2a09WWUx3MDBOY1NZd1NuTENMZzA0QXRWcExuYWYxMGZKMC9KWXZjN29GTllQMXJCYmFyejdTN25uVjlMcm05VE8vMCtvQ05xbjJTUzRONHpuUGlGUERYc0EvWDU1dkloYldGZGN6Vktxb3ZiWUMxZldkTlgyYnppK21ROHhUcnNpeDIraEJ2WWZ2RmZJU3daMUNHdTY2ZHBMNEIrQ2hYK21ETWNERXl3bXM1eVpwSjVhMC9CdGlaSnc1ek1MdFZ1d0ZNZmF5UTdsaUtBK1J5QzAxT21kVksrRndFOVF2Tmt1U2cyblBMMThSdjR0T3plMnR1cG5RS1dITU92Zm5OTTl0K1RrTzFyZ3l3cmo1RVBYUEhHRXZmOGYzYWZGekxUa1JxK2N5ZXpKbFBZdUI5dyt1VTB1NXFGbWVRcWVsTXZydDlJaGMxdW1XakIwaUhMbWZQNkxUbjYwN1FhMnlNbncyek1IL09idUZOT1l6T1RWdlVQVFBZcjRLOXBIaGpZb2U3OFM3S2RjVmd2UU13blFOa2k0dkQyblc4WlNlNEdqWmcwNmx0dU82REl3eFVDdFEzajFFK2tBTEhJdTlVTkxWd2VNNWJjY2FGN29kMWIvVDV1SnRiSjNLRHoxaFNjZm1iOWgySDl6SEI3WFJldk9lRVRRVGJMTC9GZndvd2FXOU1hMEtjejlGTUZPakdpZTF6a1RnWCtyMGFUTXhOTEFmTFovZ0hxTFVRYkFkWFY3elEyVVJlc2V3MnowelAvQzV3K20rMzZ1VWt2bW1ZVm9qK0hDTVV2WU9YaG1kaXZ1SG93cWVpdmlLMmY2RUd0WkxsVEJ4ZTFKbWVFcHQ3Ymk2WGg1OGZjb0xrdlEweHFqbThLYjUzV3pOa2VHTGlCM0x4MTVmN2RwUEZEMzNmbmI2SGJRSjhITjdEZUQzYVR5bmJTUE16UFdNY2F4TDhQYUI0L0VCRFJhQVJ6Qy9ERnZvYWw4ZWdlYXRRT20xSS94ZkVKVkNmOVRXSTY5ZWsyNzVqTjRtUEtkbkhXR2x4WkRRWFhmdU9KWHFOdkdEWkJDenFPYVk0UVM2bkFIZ0hVdHUwbjhpK0k0TFJwV2Q5UmJ2Y2VUc011YmllZlNReFpTdkxwSFlIbU82RzllQzlIa2FTbCtGNmpwRTFYZmE4azU0ZG0vK2VyRWZaUkJsbTdmcnJiVitRWWl3WHFpbE41MDh3SFdIUmsxR0lJRmZ3dDYveklmN3VudUZHbXBxa1k1UWg5UTI0ZGVqRTJyVDJ5SzVkVTMzWjNJdm1qTy81b0IxTWRQc2VPaWN6K3QxWW01eHRpSDNMQ050ZTdDTXI4c0ozbW53bSsvMTI2cHJuVU5sZ3ZiR1BOR0I0eXprTWZSa0NvNU40aVl0SXZYd2dObXk3UGJTUE5mV0oxWnlKbnJjQUMzQkREN0ZKbGpRWGVZM3o5MXg4MWhIcFVRQ3N1M1hRWDQ0RE9NOWtIZTdwNzNYZ1F1L25XUjlacXJWUjdZVTYrNlF2UmRVYUlYc3gyOTdDVjVCK1YyM1F3NzR6ZHlhYmE4VU85TmorMmhyeUdHTitMYk9mV0VPcUQxcmJhWko0bXNSU2pVeHhQaDU5TmxNazJJKzd2dExGNStCYTMyWkNLdU4vMDdYOGJUa2FUSjNGNkR4OXNiOHQ0WGRMaWZPTENHWk1NN2VoTktCc1ZhUEVrOUF4SUxoTXNiRTVUY3dabi9VeDFpOCtpbko3NzlFelRmc1ltMXc2czYvdC9uYStzNy9Tc1J5N09kV0JzS2RSM2IyZWdXTWEyanZoQTk3N25nMmo5OHVhZnZpS3ZWZFVmMGZmRTd0ejl1bGtPS3k3V0o5aWwyR0krSG9NOStBeHV3YzY3UVM0QXV4N0UzM25JdzRIalM1cjhSNWdMeHFmaE5ZWldaOEYySkw5L1luaFhGeE1jbStOUGVCa2lyM0R2YlBYdkMvMnJkbjdZditKMDFOYndPWFByekNFZThMU1JqQW9iSG9Tc1BvQVRoeXVCLzJKczdrTU5iZW1yakUyVWN6cUtQUnozSE1kQ0g0YVZRR3hmK2ZBTFJHcG0zYnVENzhuT0FYOWFMNGt4M3V4Y2lUWlpQSmVCdE9DdC81Y0pOOTlXUjZuZkg3Ni9ydTJkVWRTNDZQdlJteGtjMzJHWCt2MEYwQys2QkJUdjJCNjVuT3hGSU13bnY3by9xQ0oyMTdQWFA5YWJ0MFM3QytXYmNqL3pOeDZpM3ZsL09PeElXS2RTZW9sVnVvRHI4aFRZbVAvVFlueGVTeklsREZnTUNTWWVnMEo5MnA4RjFnUzZNVW1XR1c1Wkwyc1VPZFVCcExuNm9lb3NQZk5SSXNDUGtQcjQvUlpjdlNwRS8rb2hFbUszWWZvYy9zSURNK2s1cCt0NXJJWTBkb1p6Y3Yxb1k1RmUzMUpMMmJMaHNkaGJISGNuSG85ZGo5NTR6bDJGVXA5NEJYb25ybG1UV0NpUEhzZW11ZThmLzltRDZEMlVJYUZoYUpjWFFNdUFLWndvRVBNWVZhNGR5TTFVcXhqNTAvSm9pY3pmaGl1N2d2MU5tQXZoWHFHMWo4d2JOVmtEdS9IL1ozVUtadjdkL3lRWVFJNlRvTkpES1RHNjFKZUZHVllRV3dNc1NmL25rWmZIOHRpUExZNkU4SW9XL05pdm93WDltZ3dvN2p1RzlpdlcvL2FPRDZxWWFMY2tVeS9Ob1d3Tjh4SXZSeldpM3MrK2UraHBEZDVqZFlmSFY3S3lYa0ZlQTF4b3l0Q1FuTzlPMjZ2Q0RheFo1U0FBNnpsdWJWVVI4NUNPSUgrVTZ3dkM5RXlMSVMrTFlYQnkxeXdsL3k5M3ZzSC9RWk56L0dSNW9zSUEybW5wNHYwb1l1MGR5MkZIRmZQM25tY2ZIeG4vVExQTlV2T1Q3a2hJemp1Zm1ZeXN2RmRpK0NkMi9YRXZsQzdWaG8rTStuQko5Zkc2OWlWbS9lZVI3Vm5TOUdTbDhqNk50OE1GRGdiby81WGU0UTB4eDRzRm9JNXNld1p0dU5TNEJxSE1CY0o3amhYNjhDQkd1Q1pyMy9FMnZJVDZhTTNFUyt2eERlZ3o0bGpkeEl6bkFNbjNudk9NZEVMdVE0Sk15cXJrNmIrZUxQWHI5NERjRUI5eUlHVHZGckxHZ2FjVUdnZk80QkJQaEplRVRrakdHcHNINGxjY2pKM2lMTGJHTllPdHR1ZEpucmVQK2cwOXNiNkVkdGF3bTlrSDJuUDY0SGw4WHpsU0xGd29FL09nU05DblQ5MitvQTc3UHA2WVBkMk1PbEVNeEQyVTI3RTRMZmtvNnYzdEZFU2FXakQ4dEUzOGs4TlBncjB2enR0T0Jsd2JOekJteEIvQ25SSTdBNjd1T214Z1VKbklMSHZZL3ZpdStuTnZMQk51Skc2UEErQWx3WTdkMmxQSUU5NllaUE8zT1JJeGl5NWg5b0J0elk4YnJMaFRycU90ZmJNVHQzZ0V1QnNDcXdWeGRRMDY4bHhDVXdaamczRk9iYUpqS1czOHh5N1ZuNHNpdmwrVHZUc25uM1ZiK0cvNGIxWm5IRzV0MTRPdVVIazR6aXJtSDJDNStqMG5jSXpwVnlmRW1WSWxFdXVIcnNQZTlhVzltamltR1JMbWZIUHpSbzArMFp3Zkt5L204b0M5bFAyWWMrb0FFditmYTZkUGJFMU1PVndHamg5Y2RYcS9MT3UzRndiMGpkT1luU29WK0Q3ZFd1VHBDOGgwQVppcU0xNHJDSDB1dnFPMnZaNGFHaERjdVhEdTFQY1lrMDhzbWR3ejFEcjMrUHZjVDdjZ3U1MS96SVd3MnZsNVlOejRGcDlITmZFdWIzajh5WkI2MmRrUHV2amw3eFBISGNJWUpsMUpVMTFIQ3VST1BFaW5qNWU0dUUyMFBlaURZNmtGM2NnK0pTUjhaWExIZnV1a1VFL3NKSldrTjhaRzJtVTI3dlZuT2VMNnVkaHpmTEpSSVowWU5hSHZ1MDN6c2ZQWWlkS1FzMldmT2ZJWWRPeERVQnJmejdjUXM4UW1iS0s3OUhjbjJCbHNJNEJYNjNuTlRnN2JBTXNrV0dEQUgrTGRmdDQwMTUvektaYlJNa3J6VFZDLy9JYy9NUkRWRmpRU3pTcDVUWGhISUwrUlc3aUFNM3hhNFBDbCt3Tld4LzhNMzBYOE1FRHgwVHY3RGZnbVduTkJmcEhnSzhIT0tqZzczUUtqbnlPeHdhcGFiSitDQTZmUjN1ZTJ6cDVwL2Q1VUhDNE9KNnI2eEM3MWpIR01TNnh0NngyWGZvWjZhOGllVjdvOGQ1NHJySGhjSlppalAxQnBla1RLSHphODRqaklsOVRzVzdmUTl5bzRIZU16engrRjdCWEVNY1A4Um1XSmxKZmJQaDF0TlBCbDRoKzBqT2R4NWdlR21aWldMZTRhUHJhNmJ1Ujh5K3dQYWtuQ3UwQmdSN2hZWUh0S3Y3YnhHa1lhdW4zRVlycVk5YytNYnhmVG5MQ2pDV2Q5YUxTQ1QvNG5yQ0gzU2tMRkIvbklJSDVDc0JyeHNXWjRJdEtwNE5maXkwRGJMZUg0RW8zc0hzRmpnWDF5bmk4dVhXOWtuQlh5alh0TzIvbG9zMHROL1ZDSWg5KzZrbUF5ZXRQTXRra2ZUTUcwbFY3WWRrNnllUG10aEJMTnJiRDA0Vmd5b3VYWWJVWURWNW15Mk9QMDB2c0dTcy9WOWVCYzRMZU5kcEhjbFM2ZVYrdUQ1dHdnY1VPMnNXa3ozTWQ1ZW81QU5tSmRtMHZMclVkakd0bnZJR3pUWHZlMXFGbXAyRk91TzM0R3JVL3RxdG9QR1VjaXdMeCswaU5xK0ZXdk9ZZzZPUjdidmhTOUJsRjhyNXRmbW9mY21zT05SWU5uVm1QUDdrdTFId2Jya2VQVGhVaTV3K2ZsU1p1UDlJNHMrbEx1clV1bkU2N1dwOVFzem5PRlJ3UGlpWEZ2WnhESEVlNStsOTVkL3dPZE9MSWZUbHVtSjgxeXU1UDZ0L0Fld3Q5MnU2TnZBMU1MMUV6aXFNNTZ5TkwwVitHTzZyckFjUEJlSEphdlRUQ2E1M1RQS1hBdUE5SmZDV2pLQk12K3JpTk5KSUl0b3JFWnFhNkdOa3Z0ako4OWpXajlGK2VtRi9MWVF3TnFKdVNuRXJ6UHBudldqM2ZzZmY2eTdEdEMyemZyNWdzS01NMjkxNVJQVHlaeWIwYVgrTm5ZMytrQi8xM21Td3ZCZE9ZejJYd25jRFdOUGwrNHBQUzJMUHBqOEQ2NG9vamhOUHBuQzRuOWJPV0krdldaOGg3cTliU21iUDhPdE1oV0cvSExGL0xZekxQRFJ2NENOWjdUWHk4Nng1L3FNZHhkVGlQNlBsRGd4WHRrVjV4aUVzQmc0WDJsN3duSHNOL2NyblFHM2xKUGV6RmlQTEYzZW5IcDNoK09rVTF5cGVWcVR3ZHNWNE1ORlVLbkFHclR6VzhPOUMvWE10cDYzdXJpNW1BREozRTJ1eGQ5bHhNQkhzWUVVNlVoc1B5Vm0wMXBEbWgxbDR4M2doMUYwdHFQNnBGa0pPSmcvZmgrYkxmK0JLTHdXU3JDaVhBTFRUY2tPQXJ3YlFNV1FoY0MvdTNXdy9lRFhSL0dXYkRJdFlHUjRQMmd4bzkrV3pVbXk1M1V6dmRnL2I0TnIydHhDL0VmajZMcFViMzFyL3RBYWNZSTRKbDBPdzA3dUtQU0k4c2pma3BrenpXbldpbDJXdkNhL0Q5OVFWZktYOW11Y0d6Nzg0cTByY2wwblc0cUYvUUdKRGlyemcreGZaWllnMEowTzk4QzhQWnhSTjBlRk5EZ3FmQ1BwL285V2JkZDRXNGgvVnpXR1dzbmRBdGpEbDNQY2x6alJMT0lLc0xkM3NQd2Q3R3JvSFBaQlpodTAzNittbitvdk9jVjlmaWRFckxUM1dEUDNqVkk4LzZiZDdORzVFSi9HQVBHajVTWFZQUHVtWS8rWTRwRWp3eTlEaEN6M0dzSE1FZmljZm9TTCszRGpTMDh6aytVODRmK1lOaHZDY085SjBPYU81SEFaNHByaGNWWDlPb3QwWDd2dmkrUnAvMk50R2FJY056Tnh4WGpGZG4xN0xQdjVNalZPMTk0Q1lOZHdLSitXbnN3V3gvbDlPTVc3OEdmd3I4RW13ZHFVOEhzUW53MWloeU9jbVhlMTB4UXZDek5iVDNuVk9zd3pUS1llWklEQ3RpeEhyR1h4LzJibkQ1ektRM2xOVERPbmg1RFRnNThEV1AvSHEzV0gzK1d0OWZPLzFseVBteUZmVFZzWFZxWklhdW42OE5TSDkwMjNkMys1cUtudkhQeHZMR0JIOXRNMW40MGt4N3Zzc3BUbm9JTHM5WlZ6K0kzQmtlWnEyODM1REJjZFhVUjBsc0syU3Rydjd4T3RKUzZNdEwxZFFYb3JXY0wvdmpuNnBEOFhHQnBFck1ON1ZHdEJkVVErZmdSZzA4Z3M4T241dmVwL05UOGxXamRUdDMramRkM2QzL20vSzBueURoR3RmZHJTdWRQYkRmWkZyNWpIQndFSjlVUWhMd3Q5QXBVOFF2Ym1wNGllK2MwbWhzOGxnZ3Z0WlNBOTZlOUlMZ2F4Y0I0ZmpvMUZGSlRXQ0o3UzFpV0Zac2UzeEpoUnhRKzF5MzhPbDlmUDl0MkxNWVJ6SEx6d0MvV3doOWhOaHZhZnRlR3B3NjVMRDdCWENET3VJeEJpd1F3VEpBck5LenUvbGUwSkZvZjZHZjBVcFRxMGc3M2NKZmtYVlY5T3k2SjdmaHkrcmtRQWszdHRFTENIWTZ1MWx2WkRGSFY0WSs4YnJ3TlpObHY0RHBWMmR6UFR6eWUvWUszTUFwanBGTHloVXM2R1NDa0tDL2pKaDlSWkN2cWVXajd4cmdQL0NjMWJveS9McytVbk9vOTcxTWoxT2wwOHNxNnBwWWhvVXQrTzcwMWozdzV5bUh0STNmaCtTeDJiUXh2dmV0K3k1UzV6NjNyZ3M4OTQzOEo3RUVXS05iNzlEbE9xUDVmaFkzUVU5UGw4TU02cUNrSDBDay9GM1JMYjlpMStFbXZaU0ZsNmswZlJrbTB6bnBaNXd1aGtmOXhUdXlaMmUrRVBuc0J2Z2V1NytiRWc1SW1nZW11a0dDMzcwTWo5UGhkMnJWYlM3NEVDa05icFc4QzV4RCswenowVmdQbk1OY1BZS1AzWEQwTjNtY2xyT0kzd01TLzFGOUloOENweSt3ZmduR3RZM3ZFU3VrdHVQM2pFTU0rV2dUdU8zOVhDMUR2aytKNVYwWmQ2bWpObmxNNERuSjVEU1cxQnI3eklFRC9lRmJpSjl3ZkREZk5OeWlPQzdrY3V0SHdCZlNQQ3VYWTlzVFBiRURPNFBsTVJ4dmRxd2ZOcGFBRHdEazFwTWE3Qy9Oai9jUDlOMWIzRGprVW1uTUpnMnFUdStKYTlLK0hmYjVsRXlWelc1enFGTmNhT3BKVlJGUnpqZTg5N1NQcnZWL3FUNm50VWJnU3FYNnJBRDczWlVEanZmR0ZrSUpjdFFzVm1SNG42Ym1SSG9Kbm03VU8xTHN1MEVPbmMwc1lMTUtnUGZGSGNMdkl1SnZIa0h2UTY3U090QWUxUVpQMVdEN2FlM2lvazdRN0J2QlJMRmFIZlQ3a0Z6MDdUZ205eDFWaUlrZmZyaUpyV2pQRFhDa0IwNWZwSEVCNVp0VnorMU1EeHRzNHZWRWFyd1ArR3lJWjJaamlFMC9jcjJKTUxXY1lXZDJWM05BR3M0SHFNbFg3RXhPQUE5akZPUzhpeWdxak1NMW50YzhoSzVNT01mR3BzRFcxc3RMNUFFSEY4MjVqRTZCbFRXNEVERjBoOG1rTURaZU56LzAreDNjV09KSmd5b2kzSnVVMjZPREZjTTJvNlIrOVM1MGdDZXppZGM5T0I5UCt4dTRqM2IvcUM2QU16T1hYNWJxa3B1cmd2OUcrcHBwREFJNk82RDk4SWJVUHhna0ozNFJ3MEVPNk95M2ZPTEFNOXZ3Z2VZSTh0Y2NObWZya1o3V1prMHByM1E3NWF5blEwOVFPK1hTMkhnNS8vbHJUUGxTUW9BbGJEREcyVkNrMHl1eHZrMzFrVG1mblQwQjJ6RGZNZCtpbmwzUldIM25PY1RQYXZLRkpHZk84cFNrSCtxcVhpV21BZVZFSm5oUG80S2NENm5KMWRBZjF5TjFGOXFUV2tlRnpmcnVvYmJBWkp4eUJ6YTJGSGhvVzUyMlpYc1FhV3BmVjlLVTZhbnBZb2hlbTBtMHpmN1IzTUlnOVJrZVpIUTVFNlROTzNMNVhMNEdTdkdyNmxQZ2lHSjQrV3kzZXQzSk9qTU9zbldVMnlrL200amtoYXR6N0FoOEhpMEpOUEMxMHU2KzRMVXZVWlEvTXp2VG5lVXd0aEJNV3lkMjcrRFIzaHRQQWo0K3FGY0VFanF5UERQSjZYWmtxYjNYaFJ4WjlMeFIzcTBtcjQ5MVhVdzRjOUl3UjBMZ2xnekhTNjdmbTFMZWw3S002TFIxaXVQRWNuQUV2QVh3akpMOTZ2QldzZWQzbnBMbHhsTG9UQlIxS1ZwZmx4dVlNZEdIL1ZTZTJEd2Jpczl2NUkrem5RUEFQWGpBQVc3UTNERFBKMlBXSHZTVWdMOVFrM3BhdkNXOWFjemVtV3c5cTlCUk81aENmVVJyU2NXMDR4Y0QzMzBiYTFmNnFFOXlrdHhVWUwrd1NVems5TXRZUTU4dWU5NTFCZlF1ZHgzZzhpSWM0ajkzSGE0L2kxeG4yVTdjdmJlUE5BOEx0V1BLYVhuUnovc3Vma2hXVnhxWlh4R2R0M1FmU1EvNVJKSG5sbTB1RjZLaHRuTnlnS3NVZVpKZHh0QlB4WEVoczk3ajkrL1h5Zjh6alBoZHJtVldkNkwrUXllSGZpdS9NemJmQW5kWVJaS0svWWx5bFVPUE41VkRXWjRKeDhUUFQ2blBZYll1TVVJdEI2YUJkQ1Z1OW9UYWtTU2lPaHN3TTJ4cU11RGFWY0xUaEgxajFtT1Q4RDJoSnZpaXhFZnpTMjh1bS9ObFBKL1psc3JOcUNFNWpKNlJSam5hclpxcG5hMHQ2K1NSYjhVVlZMNzh1YmlKSGZFNGNlVjA1ZUR6T3V0aUxOWFdUdENjYlkveU1nR1dHbiszaWJYcGZYek40RDlQcm85OUJhNkdzc3p0S3V6NTZFSzNFZzRJd0RGZTlGbEJETjNoaWdXc0ptQ044ZmtwVE1xVHd2TU1jUk5PTC93UjZ1UFIvamJxajdTNmV3ZXhMdlZQTy82YVp1L2pITldoMUljNHY4TVhUdFlGN0V1VTIwWHNuSnE1Z21CejZBeXJTNzVRVDdKcjhPdTZhOEg1cmNDUDNLblZCRFhsbUNRNXd2UFZERDdOQjE2MmxnTmd1cU00V0NIc0dhUTJRMnpBMjhWNm4vbGFUZmVhUkQ0b255WFhlNGJnSEhuT0VYbzlQQ210Q2JaS1plZTNnOVh4Tlh2bnV4MHViM2twcUxNYlBHK2RQVm9JL2Fremw5MkZhRXlXaEZ1cTViWnZaMEpRSDR6d0s4eVdBKzBpSGdDZkFmdlVrVVR5ZmZpY2R2ZStFN3ZSdm1rK0w5VE1JTG9SMTZnd2U0bE9OU2MxTGlWdDQ3bUdGOEZBOFJqSGNwc2tsbFRhNHp6SVl0SUh5TTJuQTh3WDRFSDVlbDA3dXdiSExkV08rTytYWndacXA3QU9ySGV5NmZkbVU5L3J6aHJ1dWJpc3d6L0hlaEFpNEtUMUx1U0tld1lPaTliNDc4QmZKM2Q2eXFMY3lpYU9oVUpGUEsrYy9wcm1lczhYTldub1pZaWxRUjEwK3prUFViRzU0YWMxdWNoMlhoVGhpQlZJN05VL0J3NlJMM3JlbXg3elNZUDl2dEozZks2Tnc1NFloempuZXBmeCtseHh6TjdxdCtmN1VlNWdVVWZxTVlJcDl2SlhzTnNqeWpuUXpBOHhENFJybGNkS3Z2TnVkL3JVMkRsYjhSUC9XK3hKeXMrMVdzM3AzRUhXRnoxbm1FMlloZHRnOVFOWFQyNWg3SHhORmJ6WnI4eWR3djZGUEowdlRka2VvYStMN0tkNk1iZzRsM0dlaVBPbVIvbml2RXd5MGtmY3lMWURjZEtCOFR4eWZjNzhUQTNndUlwZ1hvWEhZNU1ZOXFqQkI5QmF3bDRmalJJL3QzdXdWd1N6REp4QVlXNWhPeWFRK1JicVltWVBpWnh4ZVljT3A0dDBJNitpREpQWFdxZ204MXYvZHN3SGVydjE5OWNqMzN0d1pMNll5WHEzNk0vUHVpSlVrOFZUOG8zODNLNG4rRlpIM2xkOTFwVVV5eUVpdFg3RzE3eWgzMlgzU2RGS2cvNkxkZGlUKzY5eitmbWYrajdjdk5IWEc3M3FIRTk0eXRtdkE1bWZZSWd4bTBFSW1MNEw3cWVHUzRlZlZVUnlyN0UyT0RZODhDUmViYkhZamtmeDFQTFJkMVNHUmN1YUdRMDh6MVBEa1VQcTZsRnYxdVVadkZNajRYUjBsd094eWVlMU5yL2hKR2htMWJZeENlRm53ZkdXdW9QdjNMRHgvSnplanUvZHJrOVRIN3FRWVppaEdKRFpOanN5WDRKd0xnUDJYQ00ybE14RkVzazhIMGM4eEFRM2xIZnVCVDFreTcydVFnNmc4bHl3clJURHlPdGkxcmQ1YVM5Yjdsb3kxeGY0ZTFpTmErKzdxZEM5bjhuTmUybDdXMGt0Y3NPNEMxTGd5U3dZWm9KeEZsb0lkRHlSQ3l4Ly9iQ0g3WE1mK1k3RngyTm5rTmtic2hxN3dMRXNCQTdEUXZLY0M0U1hsK2E3U1k5UjRaTWFCT0E1YUIxR0czVmtLUVQ4NEtBT0tLWXRvSHZFeWRLdHZLOFFBVThzY0hRMnNWdkRaVWg0eVM2NE1VbHZRVmVXbGh5dm9WM2RzRnZObWNYeS9aVmRPMGZIcjlud21mazRVTDkrZVhxOXdVZFVNVjFHKzgvT1VTOCtSTmczNCtkZUtLbElaNE9RdVcxRnd3MENQRVY2ZG0zWHIyZEJRcjhwNVNMZk5Id0hWL01ITmJ1ZFI5enlxOXprU2ZGeU84ZStld2NmMW5CVHd2dGQ2alR3cllLeEFUMFg3THkxMktGanAzWjR1VVlYT2U3YWQzeXU1N21kVjlOd1J0L29DV0Y3Z21VbVVObzlJaHhNWkE3UTEvZHdYK09XRTViSXRiMFBlM1lSY1BobmtrZG4yRURHdGFHK0xLQnVDYnFFNmZ5R0k2TFZoeDdoR3dLT2ZmREhkKy9QQW1uOFc4cVJlU0tZQkc1K0UrSDhrQmZPc3YvUzRXNmpYT1ZZOWlmU29PN01lR1o1RTNMK2NYekc0c2lPdlFldWJyb21XRzlEYmxPSnovd3NXQkpYWE91OGR0YVBTbmpFK0JtM1ZIOWYzSytwTlhRd3ptMytsc1dmWEU3cGt1OEFhdnJyVzdQS21Td1FIVFY4aHYvUHdaLzgyN1Z2VDNCYzNlOWM4YWp2THM5QmcyZkg4a2ZtVnpCdVJxaHRSUkJYV1dlZTA1dmFxNDRPQ0xHL05sSnRlMFE0c01QRk5wblo5bkt1ZEo5YmZ6bTFNMkplbnZiWGZBSWovcHhqZXdkejNVZytxRFB6aDQ5SDJKbWtNVHpmMTlTMVlWenNEdlVjRWdleFhvdVl6SFM2MWplRWF3MjRreEdiQmRqaHVnUHM0aDNlWmV6THROZWluQUp6OFJ4cjZzNmZpMjBkbGN3QUU4SjZXS3djKzJ5UUdXeDhYcTI4czM4ZDJ4RmhtNnNkeVQzSG13N25OT1Z4UWxIUHd1L1p6UFpjemVsNmFzQkx3WEROdE1Zem91dkt5emJ0UGNiUFRwNGIvQWs2RHpUamVqNm9YMFA3c0ZqODZCcjRjN2YwNzdYUERyelUyRVkxT3JVaXRjeGxCZmt1YlZsQi9FUnlFWmU1dnN1OXBQejNjSzErVTFOMGpUcnNYZlNzYmtSNUtWcnFjbU45dFlXblpFSDhNTEpPSS9vMzJpOFg5dUw5WmU2QXpYV2ZBSjhUekdYQWE1blFXaXl4LzBxOEQrc291L0RUMkl4REtodmdJNSs3YzJSZ25pSHcvalg4OEUxdTJSUmh4cW5iemRQckkvVEYyanp2b0w0d09oa3pRZjFxWlVkNlRvL0pVa2h0ZXdUdnlqN3pzaEQ2MmtTUjV3dmhwRTRVR1g2ZUw2T2RycHIyREprdnl3MVNySGxYL3V4bGYyRXZqY1ZNTkl6WlpybkR1djdpWjN1Qk90OVBscXF0TEVab0FjK2gyc3BTdEJWeVA5R2NMZnVqaVNMUEZxSzViUGtCUWY1MC9EdTY3dE9aYmFtTGplbGY0ZHUrZC9ZdTZrQWNkdVhTUG5EOFhXMnVsZTRYaVdPVU5vYUJuR1krRUNhWjdMYnozaHU5MnNiQzk2N2JjbTQyL1dpRU84azZSRzB0RjBWYWlrTEhyajNubUpCek1OeDZ3UHNFbkIvd2pseHZSWlB2b2R6LzE3WUErS2pVYzBBd1hvams5V1lOLzM2VTIzQnUrWmltdFFzYjZKWGo3UVhnSGlBblk2YkVsbkkxZmNBYmNieUVicE9UYXZETUVBZTI3d09jZzl6MXkwaTY3bTI5TWEraGhEVmwvcytMdmplenl4bWVWL0ZlRGIyU0RtQmJiK1F5V1grM0FYejZ0SWViengyMi9Ia05WeXZqY0w2ZUJZUmp0Z2pyenk1M2NXZFd3NDFacEFiQkJaU1FuL0l1NXMzcDJpbGRPWkRYYk94NTZLQXp5WTAyZFc0dVgvUEU5VmtSTytMUmRXQVlYMDZYb2hYbG00WWNPWTluQUIxTDVqSDVtbGlHT1RySFkrQnZsQ2lPa09neHZxY2JhbFRxR1dac2JuekRxbytKTmJJVkcrdWJhMHdIOUNSNTBDc3VsbVRON0tlWTlJeHgrUWhFWnVmay9Demh0cjVBOHdCcDA0dkJ5d0R6bVpXNDloM3dYNnFtTHFwRWRLWkFtdnJhb01mTnBPVnlYRllWT1AweTZsa2dsM0crVENhWDgybXY2cXk4L1FDNXFxaGNYZUQyTDJKejFmUVhHOEliQlh4dnZjMG5ocnNDUDVsaWtHL2xPbjAzNnNhdk5QYmsvQzNzNS9GeVRmRlozTXpNZHZackIrdkRyOGRsWG9QcjBhRDlqYXdtU25QWnpMK2lzenVoOTVEa0tqWmhUWHRtV2Yrd1JuQXlITGNicS9YMnc5emNSam4wY2RLNFQ5OURIWUtySjFIZnBQYWMvamwwa0VEazZVWmRsc1FOZDk1cmVpL25Ma1M1dW84a3NXVDRIaUtiREo4R3RScVk0ZEhwK3lMMWdXdWV1SmRScVk5Z2J5dVA5RGxzdmxCZW8yWjJmRlBQb0Rsd2dqUFp3MTd6dlRGa0prMHpKdzZ1c2JHVTkzc0EySm8xMkw2OVBxS1lBcTQrd0s4cHpDdlBXZTJTOUNKNXhIZCtueWVrMDRmeWZPblRuOW44TitqNTA2RGY2bUtlU1Z0NytVdHJ4TSt0N3E3WC9lZm41WXZPTld4eUFzM2N5U1BKNlJDL1d3aHhMS2kxY1JXdFpjS3N1bEE3M3BBdkhoTkg1aGwxNjVvMFRtMXdIckQyTFM2SStNeUY3L1FCSjA3cWV5THhMMXE1NXZpM1dkKzJLdnF1M1dEVUtiWncwL0VKT3VjTDYxUHp3R0plV2k4VG80SnhoYWRscU0wNnZWZitHTWV0VGU2R2YrWWM5S3FVTnJFaHljazlKVGJKajBIZGxtTEJyL0xZakFPQng2ZzJmSmVjdkxMOEVkVTl2VXYvSU1xUnhPYWVORDNocm8xaXArSElUUy9tcDFBOTRMY1lWY1pOeE1lczNMcUVVaDkxK2wxdjZoanlYWkFCaVhESFhlcmFscWZqZUtuUGVwNkR1RmtrMUk4aStqd05uWUZJbnNQamFxdW9ZdGpnZG5iTXBzbS8zY2k3OGUvZDFHOERiWEJzc2I0aWNJTkUycW5EZGRmYVlwYW5NR295RjZQTlFXRy9JaXpNSFBqekd2a0U3dTFkcU5tN3dDMXZ6dG1rc25JT3dYNkRuampUNndJZm42NmtPODgxQ244dVo5Z214aExheEZwU3RyT1JLaHhEMzVlMU5yY0JlTmVvaHY1YTdFTjNiUDNFYVhYVXhNWDJhbnFCTWZteC9XM3hvc2U3K1ZTUDU3NWtNOUtjVThyTnZiemtPVWtEMTdyR1Q0ek5vK2ZHK3hhREJyaFJhazg0bmMvWkZJclhZWE5xdXJYNkM3MStlOTRNNDNKQkZlU3dOYWhkWUI5dFRiaERtaHd0TDI4RXR3MHpRR2lQSnNXcnM5d0h3dzFDYk5pdXcvN0tMeUt5aCtPU1hZUEJJRFZuSEtPZFlzY1dZUlpxT3dNT2FpSlVEM0xQZEV3aTZhcVhtZkh2Y09jUngxNXEvd2JPQlBJdDVLeGQ2NlM3ZGZQMmV1Y2J2Wk5ORDBpREordjJjWmRSUFJSNXJrRTZlNEhod2psT0lPREhFZ0pzMzhkTlRxaURLZTcybk53K3l4ZTRlNEtCU2JpWVhoRzVzOGR3RXZRZFg1Wi80Znl3WE5nSXNEaWV1OW5kNzY4K0lYNmV5NjM2WGNNUjFPaEhsck5NeTlDMXErNitHREREbGZFN01WMjkwbEFWTzBJYkMzWjZ4M2dad0RFbG0zOUQ4SDU4clhTU3lhT1dtMkNRNnkvREpIVHNsUEF5cHd3SHplZWdHUTZZekJuc3pVQW1BcWZmMlA1TFBrVVArRUtJSHdnK09IMi83KytkbUs0VWtZc3poaHpYeHZCT2pmdWYvSzg5Lys3TU5yN01sLzN4bDR6NkhwejhVQ3drek94WWtSbHVnSGZ6bk9PK3lUVm9iUzJDOVd4YzFJWTR6Tm9Bc2ZVTkhMSHlIYXZFY1J6aDBpYjVIZzRqelB6dUhUZWJwWlB2MGJYVEFUaGs2VnptMXRmeDA4QTVIUUFyWDdQcjhmZ2tnbUY3clR1OTlTTERIZ0YrRE9aUWdJOXFUSVJueWswMzVXZjI4LzRpbVkvSWNmbDRqa0Y0YWFIdlhHVTVIYmdXeWNNYVoxMnpSTnByUVh3RmdzZUUrZDAzY3NaY2Y2U1YrdEt5TS8rdHFhbFIvRW96aDUzV3h3S3BEejA1SEFjVDRXVFhCaDNPVzhCMS9EZkk0QTE4ZlJNM0VQK214UmxTMjFJU25oeDEwOHlLdjEzdkJPNytUaXpEeGJqWDg5ZElqenFUUCs1K1VIOWwvR3ROdnNCcDVtb3puNS9XMEpGQSt4NDdPTUV1cC9FN1dPaWIvVnRRNjlvVHVUZWIySlhHUzFBSEFGNXZnazlObWMvWjF1OFpweVZnd0xnNWZ3MG12OXZyMG9sbDRMemhNdzd6Rm0rc00vRDhNbHdqbThIUGZiNGpsMGF2TS92OXVDSmNMeTdscFczNWRSZ21nTWxDQVROdDY2am01eWczK01RZCtNQUZoNy9ydk1OdEdlQjYwYUdlQTdZaGEvSUVpTnFVanUvbTV5Y3hrcEtXWjdDdzZMemlsdThuZGczS1pjUHo0YkQ1L0hUdkNMYS85alZzK3ptY0xTY2ZrMHpXS0s2VzlrS29aOGlMU2t2V1QzS0Q0L3E2YjRITEUzSHpEM1RHTVRvS3BhY2lwaHptMTNwL3VPMmNpVEgwZVhGeFB2R3JDWGJZTDZQQ0ZGcmV1V0VXU2s4VjdZMnVmRTNQZEVVZ1hNWTM5RERWVmJTdmpQbXYwQThGR0dHQysxRnpQbStyRjJiUGMrV05sK2xjVDBhRmZIZllZdTBWL0hlU3ErTm0wYzVuU3dGbWdNSXNPdXhQU253dUFtcHNER1BLemNxL3pSUEJ6VkZ2ODQ5Wmk5V2g5MlQ4T1FjeXl3YnJOL0tzSkFZaGZXbE1mcjZUbCtMcmtUMklTZVkzY1d6NHZzY29IeFJrUGp1cHBmbXV6TEJWVEtmMHV2TzBicjhubG9FVnFSRVhNWjBWNVRNKzVoWlhmQ1puaC9ScDBib3FxUVBTOHdkNDV1L2M2OHB2QlU2R1FiM2k5Ly9XMm5TNThjaWF0ek45b0dibzUzN3BTV1FtVCtqWUZjWDlObmJTMXdaN285ZjBiWld4Y3Z4TzdvNXdUNU56b083MTBlRHJZaTYvQmR3OHNodSs0QzZVMUEzUExjQmhCQnFzSlozbE84UCtHY1VHUWg2SWo5ZG83L0l4eXUyTjcrQzREVGhZb0hZUzUrcXVxWjFjK1BRY0pvWGpjWWU0cy9sdUo4OUZkUEszQ1B0RTRxQ1JON2ZYelBabEdQMHJmckJXeHpIY0d6cnJMNlBqKzV6dStIN0hDdTVYaTF5OWdOMFBldGt2WXI5T1AzM1RNeEJCRHZKMjNBSjVIbWZBK0JIdjVLRU5NZFIybmJodFBoOTg1Znczd1BsTWxJNWZjZ3dsdEtjNEF5bHc3RjQzamhsZDVIRGIzSHZMbjgvYkxOSVRUNjdobHpodXY4QjNKcThNeHpER2RqZytjM01aazJtOXdmNXBneTM3bVhzMG1McDZ1RjF1N05rQ2FsZGVNbHVha3h2M2F2MFhOdCtIOUNrSmJaOTFkMlkremFkQURJSGxMblpJejJpTHg0TFA3RHV6OUdlM3VZQkpYdUo3c2tNNUlZdTRqQWltdTEwUHZqNU1aNG56bUgvczV4Q2NJOHpDRnJqNTlMdXdGNEdNZ0k2cE9aNjVDMHdkbmZuZjhWMnZaallNTy9PLzJNemhEby9GUFd6azNia0hvN2EvM1I2Wk0xZm9mN1ZHOW5SbWI5cTY2NDM4ZmVQamt2cmI3N2RuUFlJZVBQdk9DZnBVOUFLaHFOWXY0MmFScnZjWmVPUEFablI0Qm1IMlZhUXhYaXVJdmRzNG5lUWYrVHdsUC9PYzJzWC9sN2cvYTFJY1dmS0g0UTgwRnk4U1NWdHhDU1FTVWdGWmJOcnVrSlFIa1Vna3A5ajU5SytGdTBlRWgxQm1WYytZL1orTHRwblRUWUlVcXkrL2hmY2duTWQ0Mngva21rZEVHS2Y1anRVOVlNM1V0TG4xZDduQXd5akU4NlhiSjV3TjhDM0FCd1l4VGEzSm9IOFNaLzg2MHJvcGtLZnArWlFheU9SN2Z0TTlXSHdtV1l0NndwYzJlOTdodlNYMUZiMkJmMDd2a3BNbGF5Nm9GL3h2M3VsSjV3RjdKYnNjdWVUQWJ5UXV1RGtmdWxaSVBENzQ3VnA4MHVEcmJ0YmgyaUpmaHZNN0xQOVJma05RdzRZZTNEbHU3eVF1WDhRNWRoTDVIYzh0RG9tSTBmVWVoTG85NHBjN0ROOVh3OC9wUGdIMmVjeDZLUHozZEwrRFdqNWdybTFIeEF5dFBQTFBzdjR2ODM2NTd0UFE2WEE4SnN5dDNiMkFqNThiRkEyeEFjVG40Mmora1Eyc2Myckx1ZnRDbi9PUHVIV3BDYWYvUGZId3R6bjBuRDBaSnhXeFBiWFNTT3lGZVprMTRLeGxIRWVhckUvWUQrRE5HWjdVTU9la0p3aDQvQ1BYejZEdktaNTdJRVBFNm84bXp6aHl3bmFNeFgwcWNxOHQ1T1lXWVFBUnE2UHIzbG9yRnRjSSt5MlJMeEpQMGZnN2lTbSt5bG91WURoWmZ3ZnVNT0xVVldwTXZxaDFvVllIOUFvL1ZTNXFLODV5YzY4RzUrdVEyRG5kZWMveEN2YkNiNWZrcnZVQjBxcmg4MUwvUU94TjJRY3hkV1Q0MklyejgwaDM3ZmIvd2dINXlrTmZQemZjbGNSRkIxOHk2ZDFIR0VwMW45WTlWNDEzazgvZTdIV0o5Ny8rVGVsaDVKdzQvM2hHV0srWWN3SWdoK2xjR0wrOHJIRWxLOEthNFAwZldxWEUwckozVk54RFZwTzhpeldwN3ZtbTNOM0E0aW50QTk2ZlpMMUlwUjlVRXJaS3h5aWtyVGFXZlFXc1kvTFlGR3MzcEdzZUV5NUY3c0g2Zmg0UERJOUplWjdvdTRGcU5CcnpSZS82Qjg0aFAyZlRDbm5XeWQ0dlpYMkRqU2Y5dm96VnI0cGJUM2twMUhGaWpuOGErWmMwN0xZazdrekhzSEtkcTlxWTlyOWZHTjRKbDJ4UE5ZQkZiNXZoT0lJdm5iSE9UTzdLVnVaTWl1ZXQzL0VmenkxSzFiK0xka3cvUU9yQ21tY3hHK3NHWE41UXhjcGlYVXhBbzlvNVU1NTRoamhWbk5VaDZHc3AzZTQ0RkRsb2QvOWw3QmlxM3p6bG8vbVJkTWZxV2dBTVQ5bS9yOFB1SGIwUFN1aHpVUTY1Qnc2YTdPR00rbFpjM1FEUFFCcXZta2RKWjlkaTFYR1grbm1ZNXIzc1M2R09mcnpmcWJoeXBYUXpyNUFMcDIxL0p6a05LaVl5OGZaaWZLNWlMNGkxYUdvUy96RFBBdGFia3Z3MThxYzZwblpuai8wN3hVditTTnMrOG0wYmNaUkRFNTlOdlRlSWFZd3hWUEd3OU9xR2VJeHdSWkxYZ1djUXJYSEpyOWZjUS96djZEdm9rQWRoWFhOcS9wbFZRVm5ISHdEL1krUWYwalppQnlmTDNoRjE5NjZieWNlS2p6ZjM1eFV4MzNXTm5qdWYwdU9DK2hOWGtYTmxWZGw2WC9SdUU4Um1GRkxEQW1yRVVNT2V0cjdYZmg1S1huS1JHdDhwOG9iZUZlYW9PajJldUFOMG5odStLT3hPTTNzQy9nVzlUWFhPTzBZOFptSEdLUFgzb21lUVduTjBscEYvd3BIdUtiRnVuM1EwK2ZyRjNMVi9UMjNyOHBkeHN0U0JWdk1Gdm5sTHJmUEtjT0htUER6dmFkQllpOE5jMWhDbFZ0ZzJDYUdtQnpYRDFPNjBzcXA3ek83OVQ1SHYxdkk3K3V4S3huaW9WYUxuMDVLK1RZQjVCbitMVzRtZW1oSnpLcjREOXBQU0NEWThmdXB4TCtpVkJVVzZvUHRON0NtYU96UGVWOW8vMlB1V2RkUFFJVzRCMWtGRXpEUmJkVjNxKzV5OVlYRFBxdTVkMzdmZGp4ZzRtcXIyWTQ0Yjg1Q0Yybm5ZZ2Q0cHhoRjA1eER1M3V4bGludWtlMVo2Rk8zZDJleHpBRWV2SkR4cW1iZzVhVEVFTmEyT29NaXEyMEg2MGtnL1lyR205VnhKWFM3ZzlKaTFRWXpkYS9nWUk2ZHVRVzYyMWRva3oveTIrVVBIK3FqNUFmcU1xRGRTNWRFYytiZjYrYzdlVVA0dTRRT2lxY3BOMlhyWGExR1A4MEhXUmhPN2c1aStkdkN4SHRENjNVdGVMUFJzRHVrKytDc2RLTk5uQy9ROHJ1YTZ5d3ZvLzR6UTYwVFhzbFQ4S3U0Sm10djVRYnhyWW9QT3lGRno5MnFlLzh5YmcydWxNQjdOTlE0N2gvaWVNVTlaeXZOVWJSWFdsdGFIWUh5cnpIWE82M0J5U3UyWEU0dEw5b2FmcU1TLzQyZFZybWJFaDJIbkkyMEhaNHFuQ25aV1BOY1RORDVFN0xYVGVOdi9SZjVIUnU4Uk9LV2pYSnpOUlZxVnFsYWNzVmc2bGpHM3VTWlVmVXl0bDMyQW1vME04eWp2UGE2Qnpuc0IwRitDKzljcVVjZTJmS1JVWDgvY1c0SGY4d084ZFhQc0xWVnhlSHRnWGpnOVNNdy9lRzI0UVZOdHJuYStTaTFHaTUrdmNnMy9iT3FMcjhQOEROZ2F3cnhML1dPTko0QTFmay90bTd3SCtYY0RwOFM4eC81OFJpdU5IT0N3SXlhWTgxaEZqcDZFcFEyMVYreUZHVDc5V2xmeitPUnB6R3R1amZ0aDI4aDFRMDFZdkcra3gwbzk5MlU5TjZpVkhtcjNxYXBOay9lcTRUdFA4WCt0TDhMOTdybHVxUmx6eG9oRk9tWGdJZWtmV2M0dHVZZEh4TGdsb0ZlbGRBT1VIb001Rmt5WHVwWGErVDZWenljOVlXdCtPMUM3MExWR3FQdUllRE9XdFNyTTlaWGZBcTBUNlErck9DdlloODFGM01UelJoa2JmNUZ6STI5UnJsUEVmQjVKaTNSMTB1dVUxN1QrbjJPZXZ2TFhXQ0xQdmxPbUE4QXhvTllkK0ZkZm4zcHVnQmVGZCs3ZTg5SGtiTVQzK3JldzNseXRGSStSN1pPRzN3WHQwM01LK3BkVHhQdkRkenZnUFJtSG5iTTRkMk9vS3ozWG5GanRsYzRSemtYbzdUTVdhL0wzVVJvS0h5LzdPa2ZkRytXWGRKdTN6RnFHeWVscWlHWDNrTHVRSHQ3WE9GZFY5OWlsdHNKZWtiNjM5S0huSGk1ZGt4K3I0MTRScDRHMmJxM1dydnNyb1I1WHFmMnF6NVRyVSsrRFlhd3BIcGZuZ3NMcmJBTFRSMFhlQzNSZTZPY2UwKzgxeCtKd04xKy8wN21vUFh0TnU3Y0JzeW0xVTB3K3p4KzFhRXlOdXh2eFVZcUN4U1Z2Smc2VDE4aXVHM3hmN0dPa3JyT1gzd0hhQ3BGanhlRlY0cFNtMy9aK01SK3AvWmFxYzhGK0VudlFxN3Bud09ndEFMOVY1TzdxcSs4NnhtRzJNYkg4S2c4OUtRKzExMnRYK3JmeG5pTFZXWTZhaHpXMXdEdEM3dVVhcmp4MW9XWjV4ZHJ4RjdndnZkWVV6cHI0Q3hicHFUd1FTeFJnYjBPT1YzUGQyTkRJNHpqTHVSWDBWenZuTFJnR2p2eWRwVm5EcC9oS2NYc1JvNHhuTnRiUGUrd09nOC9lRHFuR3Y3YlhZV2NuY2tHUlk0RDJmWHNLOFQza3M0RFJuSEdOK0xQU2tETzFQUFF6WGMwY0tvNEF6NG45a1lIaXB0WDhhNDArNG5jOVVoZlhZMUVBdmdqclFjcmYydlFGTUxFV1Nzdkh2UlhKdmZmakY5UXpHTVo3RkR5U1paUEdSWGtlUjZ3bkdjMHY0NGhpcWRkdlBvZFlZVmk3azJXdndjTWlhT1ZTTzBqRTFLcEdTNW9pNHJ4NjdXbGRRKzFuVk1hWWd6WGtPeWJIOWR0bk4vVWNydDZnMEhycEROdENPdjUvOVo2R2JzRHJVSnlMdXZhaDcweER3NGZ4TXNGYlJuTnk1M2Z5S0FJTitMUnQrUE1WK1doZXhIYkJOU2p2TmR6V3MvN0YvV1V6aDNVZHZNVGdJVVAzMU1EM2w3dmsxMU45QXRkaVRaZWpXMm5lQ0dKdTBMOUNhV1cyMTI0cGN0aUQxRU1GdmtMWWhia21UYmxXYW5lUEdmaTJmbDlYcXNlb1ZOKzNqZnIwd3RTQTVGcVdxcFl0OHlDcUgxQlBIWHhxcWZiTC9KRDZSbTAzYlFldGJCVG84V2RZd2RXdU81a3ZQRjREd2x6bEcyd3M5c3BBZTFyY2lmNXE4TlY4ZDhCRE4zVWw3N2w3eHg2bFdPZEdUWmJuUUpkNFB5OEkvNi96U3Q2ekdlWEZlOE5lOThTenZIN1M4Mm5QcXJYVXpMcExiM2ZsZFliNjJneURtTGtCOUtMbCt4ZzYxSFpjeDdBeXZkeDZiWDdPK2xpelpyejQwL25ZMjNoT0gvMmxIZDMzVkpqTTBMSkVmaDVycjdaNjdyWExJNTk1ckgyaFRUUG9ZZjF2SlBLc1V6bFdQa0FUdzFkUTRwS3kvWXh6Tjh4NXUydWRIa04vajlaSFN2VnlRMXRuUC9uV2o0SnlZM3IzNUpMdDh5S3I1dVR2NTIyV1dpT3RyOWFkUTl4cWwvYitvSGliQmJPREdEdWRKMEVQNDFtamlEUWs0dlpjM3Y5YnFrK0tlQmp6OGFxRVdsSlNKU1hoVzJIZFF4NHUxclUreDY1eFdONi84SVVERHJiVVlzMVlqa0wrMlZ2US9Senh1b054ZnBpY2NERStzTTZBejZVeFRpeUdpaW1IRjJ0M0VVamRONWhUQXhjUVYxMnhQdUVjcmV2MUxsczNSM25RNk4vOUJHOXJWU3RxUGlla0IwRmEvZUQ4ZXNRaTRXL1NHYVhHUk9GQjJlZVJUNEplaWNEbHIyR0c1UDBpZVhIR21mUzM4ZjA0TEsvZTYrbzhYYnhZNDQ4Ry92MUM1R2FkU3c1OFFNVFZlYS9EKytReDB6bkIzMnFqRGs5T0dFdzJnZVAzWjYyVHY5eGwvOGJUN0lQaFVuUXZUOFJVNkhQMFlIeS9RdVFtZEZZLzhvanRxNjNNRTBFdlhZenRSeHhPeVo4ZWNJajF1Wlh4YnYzM3hIZkxjNkJBRG5SU3BHNjUwMWhQNWUxU0lJYlpLaUZtM0UrT0VvUEYvV216eXRtdG93MTRkY0FkRFQ2SDJIL0Vmd2Q2R2NBN2gvVkwrbFBabmZTbmxTYjlxWHdIWFdYZ1NsbFo5Y0pybi9KZDZCeC80cUNXNlBYYXNlUHdka2prMlFMKzdOTUNmYkRnbkpkYUttZlBRZHdFcXoyUlI0U3NyL2VSUDRSNkxMc2s4dEZyWFBJdHhUZ0JGaEw1YlRLbWUydTZLOXlpbFkvNmo3ZnRENm56ZTE2SFB5NGkxMXlIMDhmWXB1Y2FXSWlWQzZjRjhPQTE5NFJ4bGRIekdYMHRZUjZCZTZhOWltVmVLNy96eWpWWVRQMldLQ2d6OUVxbEhHTDZ5RU9MeDNwU2EvV0R1SWovS0J3WDFsR3F0TzEvSkRybWxEazAxUGROYjM3Rzk2N05FenNqTUgvWlNnMDRXQk1TWDZaOFFnR3pBV3ZHakFueC9rMk9lWVM4eVRqS2kvY0Y5cE9NSG5ibEhOZWd3UVhQOWVTQnIvM2NDV09oMXV6TFpnRjkyTVRRYWNYK052STB1UGI0R3J4ZHdYZGdsOXJFMjZlOVFWdzU3YVhxVGhIbk1JSitsMXhqYkwySmZkaEZQLzl0LzVKVmhoOENQQ3VzQ2NtVEErK2NmcFZFYzdHdUtaWkRqQjU3bjZmMU5TZk9NbWtvRjVuZFBYL05lWDNXK0NWK0t1Z3pwTHJ2b0xBeDM4eERpenhDNi8xYjZlV2c2bEdUVlF2dVNYeEgyUzlVZlF6QUdZTVdVTS9vZjFHY0FPdEhydGVhOWdMMHFldzE0Q0Z3N1dsTjl5K2VWNThmVU50Q2p5UEVycEEvSHRRWTByQzdVOXFMcE5HazhIdXVjMGcxdjZ1K3gxQVRKdkpaYm1SNE9XdWZFNHd4MkhPdWxCNTlqSmdTNmEvVTRGMjlrbWQvRStjWHNXR3dUb2VJSFFVTVFGSWgzaUl2R1U1VXJsT0lEWml1OElPMDJxVytOOU5oS3FWbmoxekQ5Yk9qaUN2Z0g3VFhvRjJBODBoM2lxRkRHb2YrSVhVbDNrQ1BqZEcvRy9rbCtRZkljMjJUMnY1L1JRNUsrWmljaS9PM09HNkZNNlcrSXRZU0pCZFgrWUN6bmpUZ1ltQnRqcFEvbWJFV2VhK0FuckdBbURIc2RQUjVPTUdZeTZXN1VHbDNOZDdsM0ErTVB0dmJRaTF3Tk5tU0ZpQnFZY0ZZUzk4MzZLbFU2Q3RjUDJlTnU0OXJhZXV6RDgrZkw4OThlZFpqTFlucWQyNSt3RDFrWGRDNy8vbDhXbGJkVnJMOGxMbkhiOWhuSThCalNhOTJHYU9MMzk1bVZiZElYUEFEeEx3azdPNlN4UlhqWE9JMk1kelVzNWVEanM4STg0Mnh1T0p5dStvT3RnREgwaHpIc3Z2YW9uUE9Pc1hSNW9UalJQNlNyNXpuL3ErMC81ZnoxVFJZN2NwVnVQaFh1ditHYjI1Z08vZTBLcy9KNDFOaEIyV3RCTjUzQk5pcWp1Y21SZGJHZllkZSt0TkRvajBqSVZmS1J5TFhEcTRHaitwMXVFbkQ4cGppbnRiNnJ5UDA3dFAxVytaUEMxaVZyb2kvd0tQalhmdGZLU3lmNG12UG5yRUJxRE9JZkpTc1BiK25Obmc2S2szbFJtMW5PTHRWbjRqV1psQmtiZEpRM2Z0bEhCN1BOZjAvR1ROdmsxRHFHMHA5SzNyUGdicUhJRzhISG9FNEYwTFFUZnJJcXFEMWZKNVNIS2Z2TXUzM3FkYm1FMDRUdGRpQWR3aHIvUEF1KzF3dWNLVS84OUFxeEY2bjJvRWFENFpUa1QzVk1vNm1CM3JlSTQ2ZjhqL0V2dWRBekU5OHlTTy9TS3Y1SlVYc0MvRG9NVlpDblJNUjkwZ2ZFTmIvdysvRXM5QktxOXpDZUF6cVkzenN4Tm01emZaQmk3ejJQblI5OHNqbmkrbTV2QmdZQWFWM1RSclZHcHV2ZEN5YTYxZ3UzVVd2amJVczFIUit2Y0gvQlMrVTVjdG12SDBSNStSSE91amZjL0FwNnAzSDJ5L2lMVjBuL2FmSnA0TDJGV2dIaVhQMlo0dHF1SU5UcjZhRi9EL3JxcnZOSHAvL0JXMkkxMDZWVk1QTzVLUDNpQit6enNSMmlyZmxycmxPU0RvdzBIL1NPczBicjFKMTdpM0hsMkxmb2xQbWQ5T0RER0prN0pQSk01Rmh6SXBDNGhtOXFuTUJYZm03dDhuMndWR2N5ZUNYdEVXOW5Wb2R5dWpicGlKSGNjc2lkd1B3VWpYMTM1bS9NV2lONFgybjQwbFBqYWYyeFNLTkh1aVJkQ3ZhSTN6dFhiT3FhNjlSYjl4ZWgwTXpsaVc5YTEyYmZka3MrWmtpWThMbTU5QjZLdFd0U094YzY4NE0vSFBhRm50enNxM1ZVV3BqWG90aklUOUdQR2Q5YlBBemMxVkxwSEZWdlozNk8vM1V0UnB2dnJwTmxreDdXSDVHMW9SKzh0eGtxM0xINTJjUWU3M0g5RDVSMTBmNXdYN0ZqNWl0cGhQUWozY0RoWjFMM09BUnQvMURqSGpLQWpFNHFObU8vV25nY3QyYjlBQ2FjblVSTjVsOGFmSkc0NzdJSDU5ZjYybzk2NmNydkFyT04rTm51OTBxMlJxODlhSGtPTkdZdy81NTIwclAxODZGY1ZucXVsVjFINFJ2T05sYU0xMC8xM1d6MXJrdHhkSTNxQmU4Tjg2aDZTMzRIUjlmNnplaExwQXh4L2ZlSnJOUGgyeGdjYSs5YXh5VnlQOUcvVVRsZzVtTWdsTTJZUC85MmNNUmNzVzFYVjR6dytzYS9Md2JmQXdObmNhdmZ3ZjdlUEszeW1UUSs5UjdlY2RyOXI5L2FYekkvNGp2bllVMzVMM0NmUjY4Sk9IVWtuNlRpZFRVMEg5ei9tNHNsNkN0Z3o0TzBIZkhmc1htUDI2UHptU0g5VittVmx3eHZPbWdLTWRWdHZHMko4bWgrWkhZUWN2Yjd0aGFhZjFRNTlqcmkxcVQ1RmVOZXlncXlyZ2RhSjZYckUzcjgrKzd0VGNsSG9xTTB3bnoxZjhSRTRjbXJtNFhHYzluN1dETHNLZWJuKzdxbk54NzIzRW9hdzgza1lkdG1hN0c1bWVyOXdNd3VHRXVjcmovOFlZNEpyU25KSzRMUFhYc21OZkhtSzQ2YXFGaG5RblcvRjdrQ245WTUySXVNTThCMzR0NW1kamQrenBVZnViZ2krd05TUXQ1ZTkzTW9EY00vL2VTN2VkbFF2OWJ4QS9mL1JiRmV4ZnN1OHcvQVQ4VHlud2ZPWCtwQzVoRTVwT0hXT1Z4SmIxMy9rTFhnalEzS1VmVlo3L0szeEQzbDluVCt6cjBsUmFZanFtK1hRc3JobEVvVWpabTc0dCtEK1pGNXRGYVY1bGprU1YzVWVtQ3BLUGRkNzkzemFxQU1DTXFiNWIxQ0ZaSGNBeU9PL29vRzdtMnhHZC85MXNRSjRqY0JlTS9QZzVIdHNjNlA1S3F2R2Z0MlNtTy9MMDM2UGRwcnhWTW0rOUQ2c2ZBT21vSHAwUnFFR0FPcG4wWS82QWJvdjVoMkFOKzlpaXNsS3dSdDRPcjdnZDN6eVorSGJndzMydC82UEU0UTIwNDlFN20vTUdZcXhnb2hyTXlsMTduNXdTeHdMYjAxLzVlOTBYL2s3cmw3MlRSTzYxYXdXUyttcTcrOHdyZUZmQk9jVGdIdmpQNG9JTW1IMm5Ndy83dGJYL2VQZERuNExYY1A3d2J3M1RRZmdCTUU5VjdvWWFpTlB6dlNXaGQ4cXB4UGJFOTN4ZG5ManVQNEI0NXhCRjVUSXZZUDd3ZDYxNmdFSmRBTGxFcUxTeFdFeE54Z3NLMWZuKytxRE5SY1JINE9hejJCR3A1VXI5Y3J2WCs0eDM4V0Z2OGZjNnB6ZStpK3Z0WStEN3N2djdQeCswYWcwNnFmLzRsdm1mbzdFQkxkd1I1WDVsVkw2d09yTzVSbWJlZU1GN3BuckVYQUQ1V2Q5QWErYzVUbWExdnFUSEZPV0wvMlg3S05XcWNTZVJWVDdtVWVyN3Z6b2NEYW52bXg5VDJUbGw3M2lHdHBSWm8rbS9wcm1CY01lZ050NEprZGYvMmUzMnFsei9wbWlwdklxYXhxNS9WOExZdVYvdVhIK3BaUGw3azJFTzlqWFR5MWR3b3JxckdtajFxZlQyR0ZRVjl1TytlSDJvSy9GbUM5dGZQSXZIOWJOem8vTmE2cHFqZkJGaWgzMGxFK0VTeFJyNjk5N1EvUnU3K3FPOUwvQjc2ckxHT1J5Ly9aWis5SjlHMHpHa014R2ZuaGtZYWVzVExHSVRPUGZ6dTVublorRi90aWEvWGtZZ3haM25vWFZidFlFdVlmZExVa0hFYnpzMzM1OEZVOGN5Z2pnUHJIUEtzY3lPK2xyU0JZUTcydTAwcTRtUzNCQ3dZY2tjNlpkcjdidnliMzErTWsvcjcwVVM4LzNFZE9nL3NlL2Fxbnp6ZUYzYzk5TCtjYzFvRng2eitPMFBzRlVxT045UlU4RTZGZUJIZVZmNFdXKy9HWGY0S2ExUDY0LzJQdUw4VFYybXA4QnFDNmlkU1hBYWFSeFFyOHM5cEhqbU43M2Z6VXNmWi9hcXNEdFpWRkdaMWx3eDYyelFxcFNkZjdUbitGSi9CZmNhOStqN0FXM00va1pnK1ZhUHczQVR3aVQ5SDB4STU4K0FEdzUvL3h5OVdheFRyVi9tYnk1bzY4eHJrdW5IZmpobkRSOE05ZzgrellmdnpxR085R2ZzTlE1dVF2Tm1rM3d2ZTBhcE9vdWZqVDJkNmxick9QZ0djZ3NPMDFhQmVLbUlnNW51R2RZU2E3aTV3ZWIvVjFHTmpLT05Vd2xucHVybFpjK0ExT2FuYkIvSFA5ekdPb1UvVDZQTTNscys3YUtqYmJSczBIaHJXY0YzbnRsNURTVXpQYWViVFE5NTgwamZodS9NRWEzcmwrd2p3UklkODBPOEh3ZHlyOGJSdWVWamUwUWUvcnBOSC9wWjIwS0s2NVhmalpveXg1R0dscUNmMExlY0sxb3Y2RGZndU54MEZpci9GOWdIbTVNQno0ZjJNbDgweTdONlRVR0ZYWVgvOTBhTkNuQkZWVjU0Ukl0NXA1ZEFuSmwycmdZOTMyWWoydXJGbm9LNHIxclo0am92STVZdzZiSk4rb2JFSFpkNWw4RUxiNEV2YlZGT0R2S01BN1M2STVUa21xZW0za0JQSnp0amVKK3FUNlA1ZER2bUdNUVlONXhmZDUreTdWK0tacSs0OTFiaHhqaU1zWkgzc2Jkdm40M2VVOHl3eERLbWRWT1B2MXErTWowa2JoV3JIOXdSaTg4NkQ2WTArWXRBdHdUb3Y5cUlMeEdyenV2bnMyNzJpOUhwRnppL2l2Zm82L2ZsNkl5NUY1L0ZydXhQcjlCVS90OUxlS2NUcmgvdU00Mm8xaHREa2tNQStwcHpvVCtkZkpkWkRJY1pRcmgvcUJXMlV0cndab3dUdzMrUnZHNW9tMy83VzlCcUhVK3kxdVE1NktnMFVacFJ5OHVsbkhQbGlyc1djYUs3TVlNTjE3RUJENXRzWXl5NktySEkrY096Ulp6NnVWaHV1VVJqYnR6S09mTktRbXdOM3UzYjJMUER1V21FTzE2QzlpMmZzdkNXeEQzcWVmQ1BXK2xPT3pjNUk5RDc4aXA4MjhPK3AzVzE1V3pvdlFGdENlaUIxSHQrdis2ZTRuUElLWGRQUFJKd0xXbExZSzFLZS92Q2VmY2lGd2RkclQzdGs5bTkrRCsrWW43elBMWHVtYkEwMmFUc2EvUXFkbHhwckhyUkpBZHVCZU1hMzdiTXVDY05qeUY0SjNJZUdYaGZyWjFNZkRlSVE3Rzk3aU1Ya01mV1c2NFk4MzNXc1JzSzkrbmRRVTk3UDczRTRiYUZYdmV6SFlCd3lheFg5NVM1M3ZLSGx6Rllkd01zbWJuQk53ZzVwU0hSbHpRUDdSQkFYdmRUNm9keFRjVm8yYXpuL1ZjKzBTTjBTUFVHMnZkOHp5TmQ3Si9LU2cxeisxMTdjLzRHK0czcGY4REJsUFpCcStSNWdyS1lseGRPSWsyNnVJL1BZcFh4M3A2WGtvRW1lQXRPZWRHWmxNR0l4eWRFYmtZY0ExWHNnbnNjZVdsTTlsSjE3d0RtNlNJd2krd3liejl0QnJDL0kvd0IzS0xGMDVPRWxud2MxMjNWTWJLeWRza0k5OFBJcy9uZXV6bmpBd2pQUHdoaTFDN0QvVGoxeHhWTjRZRHpIZFVXMS8xa2pwbGIyK09nZHhIaU9WL1M4Y3F4R0wvLzFYanVnc2NmeWlpWk1VZnVyZDVVYWlQSjMxcTZ6ODBhbEdOdHplbi9xRjhnNmV6MlBaT2MzcjMzU09IOHhsNGg3eGZrbWpaMFd1L3RWYk8wcHpEYlRONk1lalZoekVKOUhjOENMTi9SV0IzRTBQY1EyWWxMTU13dk9XRU5qSm5XREtoOVlyZlJ1M2RkaC9wbC9xZEZueEVGVTYyTDFEczFqcXZkSlpDeDR5TGFJOFJIUHpUeVZOeiszV0NQSlhPY2pXZlJPbnFOOVFza0x2RWk0bmh2V1g0NWNjMTZlaTJLdnJDTlA1R0N0R0gxNXpSZ1pldW5EVFQ0cXI4Q1hzenVYckQwL3hCaWZBbDQ5dG05V0lzWnJPSGVXZyt0bXRRdVd3YkM3bUMrdW03a1RURmY0Nzk1bUs4c1pEL3BPT0N5WGdUTTVlc1A1WU5VcTEzWGZYT0ljSEwxaEVLK0dKWHhQNE13bjQwSGZYVHJCY2pGMEp1SjNrbWorTWQ3Mlg5a2FsQjVheGZzQy9EcWc5b0p4cVJnRGpHWHE5eTNpOU1XNWE1VzU2NUFHcWpydnhMcERyTDVMWE9oUXhDcXF2M2IyaHMrYU5zb0RsZnVyWVh5aTY2WHRmZ0ZhTCtMWkVETjBTcUo1UWZyeXRMNUpLd25lQWI4dk52cEVMM3hkSUw1OTBOcXNtdGZBNXFmV1RLbjkzcTZlODMwOGorc2NlUDYxOXpta2UzR1BPUis1Nm1YU2VsTmFWOTJXZkk4a0xNbkxYcjJMZUE3Si9kMncrT3UvU2t0azBOb0U4TitKdjNXbkd1R2drSGhlOUJqV2EvaWduL0dUL0VkZk51TkZ2Lyt0QjZ2SUhZbFhWdGZ5MGZXa2pvd1pGTmRjbkVmUGN5enVrNWZOSXV5Z3BrTTAyYUF1ZHZrNlczVmR3ME9henQ3eG9MK2NCWW5ZSTlObHErT0xQVFFlOVB1ejF2WG9PVk12Q09iRHBaVy9RYzNCNVRXZnowMEM4V1p3VDl2QkErYmY3YmF3L28vbm12bmZDL0JXcXVrYW1qcHlwUE1XMjNBR1ZrK2U0S09reUtvU3ZGc2xUajY3NzJUZlNNUnY2cjNudTF1d0VuSFI4SHIwaHBZL3QveCtNRndkR2Q1QXZOK3ZWVGs3eXIxZkc4L1g1YkIwbHZEZjFWZ0JCNnpteGQwUGRxc25YMjg0Si9pNk1yQWJzQzc0R1ZJa1ZZTC9UZklUYTUrSHRVWjgxNi80Z21iOWtKK1JnQmtTeitvc2g4RnJNQkF4WTNlNlhEbHZjL2ovYi81ODFWbUpjM0xXS3NUN2diWi8wNXh6bk1CNDBaK2xiZkFiT1VodVlPcDJEYzVvclRabGdkYlZRT3MvU2w2ZjJLOXJybzJHNzZMMmlUbVdnSVVWdis4Q0gzNzQ0M095MkJsNldkNFF6dU5qYW5ldkxQN2x1R2x4MSs5ejRvU05wWFkwNk80ODV5dUc1NWNiYUM2WjdpZitUcUtkTVZhWmZidms5OTRKc0JDTlo1djI4SjFYamxFWC9ybnRYL1BRZitTaEIrTWNyUHpKSXBoNjN1REhabVVGZzFWcnVsaXNmTWNiK1NWcFB2Qy9KYjg3aDhZZDd1dCtNTVMvWHdiQkpCanVOdU83dUJlRFYvWWRqWnBqK0M3VCt6cnFvNitrMk92OGYrdS9yLzFOMEJLZm5lUGQwbnFQK3VYYnR2OUlTS09tK1crdzcvM0YzLzVEbmdsaS9VQzl5MXdYR091TUYvMGhhWXAzTW5mMUQvRnR2L3pOdGVzODF1RFRRdHJKSXU1WTByK0hQT3VMWjIzUDczSTg2dStZajN6d0gvanFiK09xYktXaGMyMzQyKzA2bXAvaXFQLzE4NHJuaS94amF1ZWdvL1Q4dmtVSDhuTzN1eGYvZlBVOWlSMWNHbjUvbjRUQWtUbFMzWVd2Sy9GZVpSeTJubjlUNmgzaTJWei8yMXF1aVI2MzY3QUQrQUtsSVIzNlVGK0VlTmg5OHBYZlpLN1VqUFZMcWV0YncyZ3FYa2NTZXB2TUJ1MG9FVmQ4NXFQNU5YdDhYc1p0eENTUHEvSXliczh2bVZ0K1pQZHVFZHRYcGwwRCtkSmsyY3FhNDJ6NjcyTHNpUWZ4SUc4M2NaN3hmWTU2UldZdEZiVlFvb1RPRCtjQmZnYWh1WWVwZHRlZnRXNFBXWCtFY1JrcXJXb3JzNE1xQisyYUgrSTVMamxvYVV3L29lN1QvRHgwUG5POHJ0K0I5MEZQU1RHRzR1N2ZMTVc2UWZ4ZEsyMzdFcWV0T0RxZUEzd2M0QjAwOEtucWVrZjRuY1B1Q083SlZyQWlMOFJEcXVKTXhtTURMLzZkeUh2T1NSdTB5V1E5alQyYldOUGR0dHovY1RnOWduNHdhWGFJL0hHeTlGNFlGemhnSE56eUhXc3lSWXF4RG1LelpzOCtCdEt2R005OXZTYngzQlA1c1Avd0pKY2IrUVBRanhKalA5WTh1am91d01wc1Z1Tlo5SW5uYWhXcDJ6MXJEMi9rckVIL0FlTlF3dEJMek1POG5kNGhudjVNN1RuV3V5cW9CUUlXWXgwVlphTHg4NkNsUkhVdHppR1V1SHpKbWNLNnJ0UXpzSjJUMXVWR2Z6N3NzWURlcHNRbVFvODJadHE3dUlkQnEvUll3M3hwL0hPWVFBMEhPSG5vMC9tVlRoS2RFek90TStFR0w5QnJyNXdqNXhkSVh6endhWW1LQW5XeWpYY3A2bjBaeWJPcTZSM2htdDlqL1ZGeWlJRXJnL1duWFJKTlA3S3EzT294ZkQ3dnhMcEUzRi92QWpHaFBIL2F1SGJHbGZPUk1yK2d4Y3FhTFMxL05WdDFWdDZ3OHlzWTR0bXFQWjB4UnBZY29lbTJ0MVU5dEVqMmhFWDhoMnNITmVtdHF6aDM0cW84cnFNNTgzKzRGZThoeERRaWhybGtySFlGbnRzNHJncFhSSE9oOVp6Q3BBSWRhMVpEMG42ejg1YlJJM3JtNVREdGRxM3JJM3VuTTgxWlZ6aDc2cTFiVUdzVk1TZHF2aUszWHU5WjdERyszbGpQbDN6UGxZYlZsWEkzNEV6ci9pVDZ5OFA0em9KZ3RSaXd2cWY1ZmNhZUlxMzNLclU1NWhoNEd0ZXM2cllBZy9YNktUVWQ2SDN5UzFZZHYxcnZpaHRBdUFLTjFlTWFqa3F2Mi9sSWFkMnJYZ3ZqWjlLOThXdTJhcWlKa1NkNVp1dWVLZW4vMXA5QmNndVVobCt6ZG9UeE4xVnFkN2R4NUpjSlcrTkw4SE9YWjZkRHZQVVM4a2JFZWN2NnJWOWlqQ1hyM21ZUEE3bFZUUDlTNCtKWVRVNDhUMUtJdTBUWFpoVW5DV3FpM2lDL0pGVXNzU3VVNTJQdno3Ky9iRlpQZUVVWlovVHM4WWNIM0ZQR3NXN2diRnRGV2psNzBQRUhmVitzR2E5R3dYWnNUYTE0MjJkNEdYcDNzMlpiWUV5amVwSE11MVpoQTc3QUcvRXhlNEgxbWhyalgzSjkxaVBIR2pGT3owYzZzR1ErY3ZyT0M4akVyVnpCenpDMk40Umw2cmV5dThiVnFYVUhPbmJCNDdubWpIaE1OVGFQejAzUzlndUttejVpTzVEckVyUXdHOGZUV0p2VE1tZGpnLzNoNUxMR2Z1YS8rejZtMndhMUxzbDFlODNPRTlCL21CN0hVZCtLOStMdkxYMk9xUFZLM1BGQi92UmMvaDAwckU5cjhIbHA5QzRSOGVvcEd3WGJyQjFzeDZFK1A1L3dWNHhyT3RQMTMzc1Nkb29VOU14N24vTmhNRnZ0Z3RkWk1IZm1nd2IrOWVEL0U5L25JcSs2QjZhZDBxcHBjeDRTZzQ4RGRTL1Nuc2Jla0RqM2FENnB0N0JxNmdrWW1LY0dyQTNpVkViRVdRdGJ5c000bFY1Q3JyTVRZeW43SXlMR1lwek9leEk2TGFuSGdIWEJqc2hISWE4QlBQUW91SU51S2RjMyszODE1aXpXL1NKV3JlbWVJa2NSTkJWNWZZOWoxS2wrbjBGdm5lY2F3VG12eW50cWR3QW4zSVQxaGQ4QUg3L0VuM1B1ZzRIbEZzOGcvU1IvSU5hRWVpMEc3N0hDV21uU0R0QjNIbjMvQzlLM3FNVVZFUHR5blRqWkU1YXg3WW40eFpmVXZqRnRlK0JDNE4zTTlDQUp2N1ZQd2s2WmlSaVY2ZUE4Nnh0ODAxY1Z1WHNsNGxhTGNRRFYrR3pmWG1mWHBKcGNKOVhNbW56TXJ0UFhWV3Z5c2V0TVg1MlArREcwa285Vkoxbk9ickh0dGVOcVpjZVAxYjFCWDRINEIrQWYvc3l2ZzVqalZoTDM4emVPbCttTjhMN2dad3JtUGVtZSszazZaODhOVHRsbzNsRmM1c2N6dHplcmduTWNXaVZ3alFnak5tdDEzK2E3Y3VRTnZPMXp2RVNhUWxCSDA1aDh4SkRtcko2cTE2M1p1MFgrWW9hY0U4SVE0cnFxOFUxL3paVi9NL0F6VVZNdExGdEtnOWZRaFRWODRVVWN1RTNGKzk5Zi9yMGVGdW9OVUQxNnZ2UUdrLysxM3NES1Z0emJVeHh0YW5WTncxdEthNXlRRDZiR09ZRjNXbDAzdmE0ZGhab2JkUjJaSldndU1EMGNnd09wOUgxa2ZxTzhIcVNIR3VQa2Y2R0pJNzFITG5TZjA1d3BiZGlMN0JFYm5oS0daaXQrdHBhN05Jd1h4eXlyZk1WNFg2cmxXOWtldFRxSkExYlh5aEYzZ3BYZGU0L0p0dmNwY2hYMS9uQ2ZpN3daNmdSVkVtWHlPMlQrZWMxZDhBR3BuMWVZUzkyYjlGUzAvNEFhRitsdlFmaWttbi9LUnlydXB3WEdSU3kvcVhPaUh4SnpVdHYzNEZYaURmS21OU2ZQUmVqcG9HWk9rNjlVT1YwTnU0dGc2THdGcjU5U2swdlcrMTdUVVVCZXo0b3ZmL3lMZFU1NWhEcjdtRDRPM2wyRzE3QTdQZVpTUjNBZmlQaFI0WEJURzNCL1o0VkZrYzhqc2NKNGQ3U1pGMUp0N0s0aXJpakpiK1hFTlBGVmJ3UjBQOXo4QXBpQ3JicXZEMm5VdjJUN2VRRmFzSEFmZ2plbGtRZWxibmxhQTNaeitwRzJmWmlqZExSRExKUU41eWZndkZGMzQxWmtWYzdlMTIvU1Z6bkZVYUhQaU5maC8wNUxaV2c1eTFWM0VTNzYwOW1xMDUrM2d1bDgxVm45bXpPdTdrTVo4enBrTkFWTk9mbitES3VqdUNySndQU3lpL2VnUGE1ak1jZnc1SlJhUy94OFV6cFgyaStCNWgwMFdmQnVTTU91algwaXByc0plVWYzbnVnK005WFVrb1BzL1dWdTk3Z09wNkMxbmJya1pUa29nSHVhaHM2TDhndVArcGZVTFQvZUYxOW9LR25kc3dLMDgydlA5Tld6eU44Zlk5OWNuZEhxdVF3ZFVlM3JrbGJkTXE5SzZrRmx4L3JZVU0xUGFuSmRRVmNWODJ2bGtTUGpqenFPaXU3dE52V1NJZDZuZW82Y2U5QURYOXVyRGRTYkIvM0p5Z21XaThHVjhYaEIwOWp3N1VodDhEemdQczZrdzkwL3ZrdE43dERaalVQaU5Scjh2UEozc3VpUDVrRnpIUk8wUGxWOUJzK3BYT3JKUnRNeTJRZEg1ZjlLbWkzeUhBYlAxL0JsczNUOEFPS1A0YzBOcEViZ1F1SnErUGtWZ0k0UGFOME05SDZRKzRCNDYyY0Q5emNvV0s2MUFnOEN0ZzczM3VpYjllWGsvZFVPc0lmL01MMHUwcHZrY1pIVHlsMnBKUVozc2ZrTTBxZVFyV3VZcDU2cFpVOW5uSzVYS2gxbjN3SWQyajNUNjRMZlNRZzdVZFNmUjZ5WlJ4NzZMY0lCNzdnM3B0YkZSKzYvZnFicEpSYzVqTUtJb2VkbGpuVTlqRCtxVzVsR2s4MFlhdytkdEpvKzZ2N0YxRysrcjhOOFQvcTAyTE1XNndEcThWeVBFWFh5VU04T09ieFNwMDdpTzhtYjhOa0QwL0NvY09qT1E4NDY3Ym5oZkhWRGJnNzlKczA5Nk14bVZTbGk0enZ6bmQwbG9jZ0pESDhvTVIra25TanhYL0NjWW93cThLa2RLQXdBNWR0T0t3NTkwTjBuZnhtZWE1UXA5SmdiYTQyK3lML1hidmVlRDE3TzQ2M1d4bDI3anMwMWpNR3pWV3FxTTIzREhNWjhTbDZjY0o1SXorcVc5RUEwOEpURzNyR0tkMzBYNkRXZ3RPZWdkM1lST1FkNWh5NW1vS0dvTk00Nm9BRk5lV2FEUjR1Y1N6V0gyYjMzR2U4RHhUTlNQa0dBQytKZXRlYlo3QTN5YzJyajJoRm5qOThVRXhydjAvdEJkK0Qvc0x0MU9ndUs2WHhsL1ZxVnU4MXEySjBzVnRQa2Jkdm90NmY4MWtrZmh0ZGdwSTZjaUIva3VhVHI2UkdQQTE4MkljTmh5Ky9FT0ludFRSUDNxTDJsOXBPR2ZGcDgxbWxCZnk2ODNmTkY3L1JyMjNmZ25tSTZ2ZG1vZjAvYnhTSEZ2aXljdStPQjlBZkcvU0Y5RjdDZjJEK1FqcW4yaTd4cjNtckRiNkYzTjJERXBjKzZjeFhueHJ0Ym5vaUROVm1Wako5dVBudjExODgrVFA2dnoxNzliNTU5L3RXeks4MHkrRTdOblZqMFJVNjlFL09LK0VpWVI5YXovY056L3VYM2p0bnpzKyt4VS90VzVPQy9hTFZ5OTdvWkwxOE1yaVJoZkV4ZVRSVVVnS1VlNk9jRFArQkY3ek1OeTdQWTI0RXpuMml0bEw2eEY3MUI2Mys4NFp5OGpLUU9xbk5XMk9FQmFucUROdVVJdU1WMVh6dnBrWFhKWEltVjZEVEY2Mkl0S2Q3akVyVDFJTS83a1B5VVFNUWcrcDRWOC9mMCtma2V1SlVpNWhmbmM1QXhMQUh6NnJpSU81ejJESHdQeGx4OERjeGJLZFZkVURzQjlUWGdMSlo2ZFJIVVRWN1dvV1Z5MjBZMHoySDVEMm85M1BiZ3QrUVdwNlllck5hdnBEVXY0aURWUjNhMk9MOFkyNnpENElFK0Y4RzVRVWYwa1ljbGFVbkttRG5obm84czNyM1d6MFRpamIxQUhJZWVZeDdlQjhTblQ5djlVdlpSdE1haTVMSnlqVmdqenNXK0xHaWVPZGpQYndmb0s5SGdleG0zL1JJNWFwQy80NzRCUGZqWmhqREEvSDBVbmptSmlvUFU4NVM2Q3pOWmo1Q2VOUlNudkczN3kza3dPM3JEOG0xbWVVZHZXTkQvdnMyQ1lPcU5CLzFsc09yNHkxWkhZcloxZmFyVlhRU0QzbWNpdFYxeDM5SG54SHJKTGRRcDNjbllBakZzZzBKclE0djFzWjhXTW4vaXVOQTQ3SFNlZlVGbldudGQ5aS92YW53UFgybWpjYjNrN05Ia3I5T1VtNW43bjkydlluOGVLYTZIWnhMbmgxajc2YUMvQ29iWDJqcW5taVhFaitKdW5SNklEOE0vQTVqR0wvZVI2eHlCQXhETlAwV2Mrdk5aNHgzdzAvSWRmaTVRVTVKeG8xcDUyQ0crSTlUU0hwa0x2Z1I4RFlGM3VJaXQzNTkxcGsxTmFIZjZtWVRUMzU2YklFOGFOVWJJUjZKVU90dHcveXNmVjZmdVliRko2YXpLOU5sMnBId0VQU1d3Tmx5eW1pYncrQ21uTUhJZ3puOHkxazBObXliNWIrc29LZjlpdlZ5U2JjOUNEN2U1RlVQL01iK2s5bXlUaEoxTEh1YlUrdzZPb0p2L09yeDZRL04remU2eVZqTTlwdTFweVRXWThwRnZKUXM4N3lGZWRLY1h3RDhTN201bTlZUHh0aWR6QU9uRnh2Q3ZxTjBhaDlNUDlMeGMvU0ZldEdnTWc0ZjN5anhDaCt5ZXEzbmJBajdIRmJGRGZwYVk5bVFmbk9XZXplMEFkT3VhT2VqVE1oL0JXWFEyTmFKWjdPMmlOeUh6TFR2R2tRODllRjdya1djdjZHdFh5U0ZHTHA5WWsxSkhIVHo4bGQrR25sUFV4YXlndi9jQS92cWdQMHhDL044eVQ0THpYL3JoaHc1NC9TU2o0RU5xTmFTVmlORlZmZjIranNUNjcxYXNaL2JsR0VyOGpWaHphUlU4TXM3VmV1MXRmaTJncm54SW8rQkV2S2R6M042QmI3cjMybUxyOFFwMWVmSHZXTjJjYVhYNlpXSTdVazlEUGZjZjFnUzdDNjFXRW5hSzJDYVBiNFlGNGRnSzAzK3laNDJ4cjhSNjV6V3Zlamd6eW4xYW9mY0IrYnZxdW9GZUp4ckRPZ3JPWXAxbWQ0M05rNTc3OUg3YUt5Wk1wR2RNRllmbEVUajlXK1N3eEdHSDF0V090RmhRTTQzM0RHS3BWYzdua09YWFRGOFZZenhYbkV0ekE0T2h2YWF1NEpFZ2EzTzh0anNmQnBQYVhYOXA5cHZuZVQzekx0ZCtqT2lGOGFVdkp2ZThKRy9wU05YaWFOeDh5U2ZqK2ZjamR4Mk1SL2JvdDVMdVoxeUhUTVVzZXZ6UXV3VHVHdkMwcnZ2YklwWXgyL0ozaE5xaXVNK2tKNStZSzBNVDMvQm9NbXQ4eExjYUdqeElWdTlWbURaWk04UjdrT3BIR0NjcVRxSHlGVlNlL2s4ZUgzVy9LSXFGNTJVYTlTKzVpejRpeEN0R3p4L1FvZnpTLzNmekUzdlJXL2s4cHY0K2VBamZzYzZtOG5MNFhxd3R6YUd2ME1TcGh2aDVvVFNla0J2N3RMNU1mejd1OVVqclRXcjBGMURYcVhTY0QvR3NuZ3RkdTBkUFRuYm5RMjJaTlA3WVBoOFVVc2NDUFZYczRFNDYvdHNjZmZJMFJ5NTBXUHdIZnFMUTYyajBDS2U2S3NYRkQzR3Z4bTBSd3dleXZ3djREOGozWUI4NHY3V1BDSzJibWFraEx1S25wT3JlYzNkekdHLzdTemh2UUhNTXZTbHhUVm1YdENwQnc2Ryt4bVU4bElid1c3anVVRCtkZWFCQS9hdE1xNjZWMkJ0ZHM0UTZxT1NTRlFmVTdmWExPTHhDL1hRY2RxdHhxTlk3K0pHdUpUYS9DaXA0TDRNYncvd09VYmRDY1g3SUwxdWNxYnpPdy9RL1hwcDYvOUpMU3ZxTm44enp2Q3c1bm9uMVNCRi9qcGpmNnhwL2wvSXo2TW0xVWR1a2ZMeHQrMVlHbW9vSzc2VnlQZkRzWXZWVzd2MlJvNllFZXRlRHp6Qm8xaHhWanc3NkNTSitCajdBUGdQZkxGanpaM21XWVgzVE9aSlh0dUUxcUxqOThydXgxckNWMkgrc3RaQXVCdFlXajJrN1A3NVRya0I5WDhKbVErMzBFZHVBQVdQeC91MlNFbmNySVEwcmVnK2w1NGQxdXVreERzdVRXZHYreW84bXVXTWZDdWVJZTBtcWU0NWhMTmo4OEw3TG1mci9XNDJSQlB3MWFpdWhqMUdCM0VId2pBSDh3UmZZV1JZdkJCWHNOWVpybHIvdnVkTk9iTi9LcHo2ZDY5aXBYZTVZN2VrazEzMGNjbjhzc1diRTJUNHRaU3o1dFBZVXRxZzg2M3RFOXArKytsMjRJeTNBMGJCZUszdUd6ZVJqVlJJbjRwSzd6cEhkVVpUTC9nQXRDUmJ6OGI0bjFaMlpyNUxPMWI3aUsrZzRkMUVieDRGZkp1SisyOCsySEQvUHZSS2xiNnJHdG5rM2I0dThsWGpSMzZPR0RYalBBMDk0UE9oYkdkTnVrL0d6OXpHOGV0dVh6UXgrWS83Z25CSDVHUU96bzJ2c2hQVmlQay9ENlN3UTU3dmJCUXliWEE5UVk4ZTlYc1oyY1Jabkx0WlM0THcvSUU1VzVHeFA5UmdWRi8rc3o3SGJQU2FZUjIwbzlpeFNPSGZubllZOUtEVzdsVzR1OTIrU09hdkM1QS9MbHQ4R2JFZ3JxNXhkRW5hclJPeWphTjVPd3NCWWR5THZvL05LUFdzanRoUTF0RTV5anNlaDNFZTkyNy9zNzIrV1EyY2RMdnJ1YWhjNGkxVm45SC9DTGtsZkZOUjNGMmY2TmF2S0UycW1TTCs1ZVptNm9NR0F0YTF0LzFkYXJjeXpGelFEdEs5bnpIbXJlaHgwZjJ2TCtvemtXVVQ0aTVvZmlzbHp5ZHJ6U3phYTZKd0s2d3BTcysycHAxMzN3Mlc4S29hNzBYdWQ2MzRwN3JUNERucEdoY05zbCtmWUx1NnAzYm5rVEhzdXQ1Mk9lQS81YmxoenAvRUxhV3lpNlNPMXB3ZERFdzZ3blJZOGt4b1BHZmRDN1J0OUhlcmVQb2JYcjliS2dMOHpjeGppNENDMjVnSG5DTTBYOFIvdXpGdjVsTFpCUTlMa0R4TW5HRHhSNzhVeHRmUC9MTGRtdjE0OEU2MnBNL2RZbFp3TzBrZ0FIWTB2eHByeGZISnhqdTFwbkdUdEFQQUVNZFR4T252UHRRNnBleVBNa2NrakhnOU12WENwWFFUcjhtNXk0YlVuRE55RG01OXVZQ2VHaC96dWFieDFYMVhpdnJwWFBKTU1qYkVuVHpxNGo2dXVUVDZHRDNoMmhTTkJ2R2hxVTR6dGRpN3FtWEd0OHoxazdGVjJSbHZBRDRnbW0yRFZtU3hXbmJFM0tNNFljMnF1dVZnZlB4ZE1GM0xvTE1OVjU1WGh3Y1VlWlZvZHByYzM2UUVNWjF2T2g3eCt0K2RVekFvWUtmQ1N5dTlwT3ppVEZ0a0Y2cTFOR2ovWXF5ZlBBZW1kQ2ZkNkt4WTVwY0pQYWcvcjNDMVFSNFB1akhYWStjZ3E3SWxRL2FyS3FxQWVmMS9pNmxDYXVid1JmMjVRSXhkOC93dnpYbStZODJFd0dRLzZ3WEozODVlNzQ0YjhSdjVtblBuNFFweUhQQzRMMW44R05WVE8xUlpuWi82UVhsV3F2aGRORHduVGFLcnJZWHlSeDRyOFdNWXRCZFZSMmJrekwyUE51YVRlc1ZyYjVGbHVlRXcyNDAraGx4OEFEeEo5VkNlbTlvL1l5OUJYd1pnWDhrYXVPenpLUDFNUmJ6STlIS3pKREtVWFg0a2FFQmhMeW5WaDlvUmVXTjFNNGxVcFBsRjdrczV2OFF6Y1g2K2FsK0FGQ0R4a0VjK0k4MmZJL01Nb1RqWFhGM0hhRUVlZDJkTXlyWno3T3V3MmNIVjZ0NStML3E5MGEvYkE0aXFRR0doOWh4cllIdlRiTkhKRWhWMm8xOW5ydW5WUDNqZVVTL3VYMUc1eHZ5VFExeGtQV0UyVGNKU2VpNXFkVDVoQTgzZnErQ2xkZDM3MUR0NFFkT2RwZmVrODRHMUx1YVU3cFB4TjM5RzFlNVg0dFNKK3VVSHY0NmZXWURNMFVPWkJNVnNFdnNQdXlnUFhMWlRyTUJsSURSNFpMK2kxTTdudk5qTnpYa1J1QlR4WHhlbWs5Y0V3L3JMK0EzendqTVlVL1Fuayt6WFVXRkRiOG9qZXE3S1BPRHQ3UStnWGxlK3VjMEpOZE9UdnoxZWQvbksxNHI4TDlYZTF2NlEydTR2eHN2azd3R09EZkt4MkxrRDlST1RPT29iUlo2ODRFOGJiL25JZGl2dlp1WXVjWldVRmI0dFY5NDIwWW93NUVIc2IrNVQwWGM1MHRiVEVuS2d6MG54bU4zaFpSMVBrNzByUFpjeFZsL09BYVc3VTFuWU9lTStZNjhsUzcvcTI0Ky9LdlBjNXBoV3dDZzMzMnpWMW5ROVQzNFQ0TUxyWFl1Z2xTcDBMcHJYUitybm9ENldmdnFyYllLMUlZUmhqdy9OZjFVSGh6RXYyQWZYRUFSZjNtVlhkTS9NVE1yVVdVUk9NKzdnenpiOU9TL2x5NEw5cnIwVyt0Y0QxR1ZlUXN4NE1mYmxhbjlQOEhmUVVodkYwZkhHZkdWeDg2aTJMZU9mTzlUUU12MCt1TFJmNmlFR3huVWVpOUdwMW5YU045d2hiSzkzdHVnbytjb3BQWTFOVHB4MUh1eU9yNXdDK1ZjU3JFRCtqamg2YzVhaW5yR05hMXJObG5FMngzNTJQTlhCK3AzejlvRWV0dmdmcTUreEI2U0tBdGtoUUlQNVdlWHZDbVpCVzNmTTQ5SStwUGYxTjNQWGlYZnJ4dUdYbE9jSGJjbGkrTFhUTzFZNVpualllZk4yTC9WTVBWdk5zUks1NzZDQUd6NEwvZnh6eWZrem44czNuWkMzdUxQdCtxZXY4OHg1Q3plc0UvLy9Da3ZuZVNjd2grejdtbzM4cjN2ZTdrNHdIMHVySHo3L2dYaDA1UDRVdytySldLYmxHaGVKeEtQKzFyb2dsaHZQVkZjZVJZNllSLzZMak8venZERWNJZnB0SDRpeUQ5L2Y3TXk5UzQrdFlYaXpXWHpPdTRzY21odnNrZUlsSkg1Wncwdkk1bE1lOTlEN2hNUWVySlJjMXJDblgrLzVIMWlVYTVnZDVuT0c4VEFjd2p3MDV3ZFhVQzNPbXI2dGRPUXVrOXArTWNjdmdiV2JOL1dYcmhUNi8wVjQ5Zy80MkJhMFM1L0VlZGo3V0lnYXB1cGJDTDN5Umc5TytWK2ZtbXJ5dlNMZldpSitoeDRLNnM1clg1cHdnUHY4UHhlblJRbXJRSXYrdUZzOFp1blBFb1RscmZUejBFbENlQURic3dWYURINEhXd1pTZWFIaUd0WUMzSEhhNDU3ZzhsMG5qME5CL28vd1FkZnVOY2JOdm5mR0c1c29WKzZlRS9FZnVKY292S3RKcDUvUDY5N1VsWis2dGRrRi9QZ3lHM25CM1dkNy9GU2Z2MmVjVS9yRXVHV3FPd0pwR0RpWG1kdGd2MEdkeVRyb3htQzlPeTJ3L0x5aVBrNS9YTlVZVEcwWWVhYzVEbmFIM0srbU45ZjF4NjRmMkRva20wcXNkNTNpRXVFSkRnMHl2ajJzUythQzFndjdjTDhvbmZJMzF5aVpjNFZ2YXpwUTNJMmxYMXV2SFVGTk5XVjdGK0hJaUR2NE5IaEhvenk5cnA2RER5UGo3NGc3YXJiR2ZCM0hQWXRIOUpkNkgvdTdzT2RTYmRBT0tYNGhib1hVY0FmZWRpbi9jYm5zTXZGMy9WTHZySkNaSjZ1SkFYSis1NVRVSmI0Y1Vld0wxKzFEaW5xQnViZVNQVXFzK2RNNkE4eEZ4MElidHg3YXZmRUd6ZHIvSVJmN0xmRnMwTnpwNGVNLzRMSEZQbDRUck9Yc09uYU5pTFRNZmJEbDNYL2R3eFAxZHdwcUY5OEM4dkEzMWQ4eDNOVTZMWVVKUXE4Mm9tWXF4dUs2amZwbTZzdWJWQVZ3WThGQndEdFNkd1hqZkRYR1UyVStXZXdLL2s4NGo4bElUZVIxeU9CRFA3N25vSDBxZmJVa1BNb2lGZ2FkVm5wUG9pVXRFL1greEowQm5yT1c5enJoT3pBZm1QVmZBbDBsY2NqNUEvbkUrUUYwTE1ZZmsyM1ZuTlpaTndIdmQyRXMvZTY4YjlWN0VHN1hTU3NSMGdlUWFmU2JoN1NyeXU5amVuRDBuTDFXY1VBVndsaWV3VjNEZU9mWUU5WGlESFo1ckV2dXRlRGxGM0o1TFhCUnhkRlI4VGp5Yy9qMjEvV01TV28reHluUHduT1A5Q01uYnlRQjNULzRMeW9zSThzdkNHemtXYUtxNi9pSEJNK1lENjFvNTlyR2dGNE5yYlR5Z21zdytQM0NOTEhsV1lxd0NjZEpCbkFGcnhwV1MybHZTRjY3aHJGcW05MmV0ZDYyTGhYcXhNWEF5b0FaN3dWNi9mM2wzQVJmY1Fsd0M2cTk2cng2c2p3bWV1ZnhaYVU2dkRkL2RlNUhmKy94OU1mdmJsODNDek4xMHpCQjJjSXh4YnZYK3h2SCsxN0Z5Zys3S0liMWIrbnRmbi9XN1Y4ekh3L2lzbVBmWG9lenJFblpkUDFjYU9xalpqWjVrVEpmcCtzUzNySjN2c3E2SzNzREE3NFgxYzViOE9mNVo5QVdqT3dReGZhRDdrRjFyR0J4NkRxclJ3ZWQvdm5vSDZCM2Ewd0wxbUtFZkNIeC8waDNFM0JPNHI1eWZvM3FXakljSGVudXRtbjc3dDNvTGFuN1ZQbGJucGp3cmpOcDJOdkl2dWR2OVNPMHIrTzFSenZTL3pwMElkL2VzNGVVU2YzNVVsazE0NTNYNDQ2VFhyN1ZMNzVaOFhwVS9zVFVXS0p5NitaN3liOERiQW5rUlJabU9ldUplL0ZnM2FFb3VkOTNWZk5HN3ZXMGxUdTM3OTZ2cDVKRytDY1NnTGRCaDMyTmZKYS9LUXQ5SFNuTmpPUTlFYmcxemQ1UVl6NlFLaW53RUdDVEQ4NFBqb01ndkNuTTRaN3BjbXV1eFRDdTZ6eHBpcktVMWQ3eFhqM01yMjlSTEVERitDYlVKckZrUXgxYms4c0V1ajNycWZDUU51MU5jQlNJWE9jV1IvM3M4d0pvcDc4ZG9IQkt0ejMwZys4N2JSTVRvcmxWazFSRjY4RWw0cTJUZFdOMDVrRHV1ekx4TzE1dE80MGp2VSswTmd6cFp1YXU4NFF5dFhzV2xZR2RyeXYzZVlVeHl3SktrYmNaL0JFOFdGWWVlMC9iOG9MVVB5aFBzSGVxei9HdHRqdUhKV2UwNnpuTFEvN1ZzdFVDbkpIRDhYOHUvMS9iNHlUVVp2T0h0a082RGwyOTBJMFhzM3RKY0pQK2NoTmZOc3RXZGV1N3BrTG8zaVdOclk2MVc0WVY1SFAxWXUxMHJkYkZldkJibk5Nd1orZXBRN1E1cjVOMnFvWDZzODJjOHB4cnZYakdYb0t1bGU0V1lPNGJFU3dFY2hleHBkeTlwMEgxQXpCUjBpOFQ5bEhnT1E2T1I2bXFBODlVOWRiaEhkNG1JT1N2eUl5Q081UnE4dUxxZ0RSWFU2bTZaVFhkN2pZOExmb09oZFNYT0lzV0V0WjZhWFJ6RStQRm5rT01QZVcyWUFNNmV2SUFnN3hMclZkd2pYTmRIYzNHZi96WVZNYVhickNtcGNndFpleGhObEphYThubHE0cU5VUC83UlBrS1NjeWJtYWFVNEVYU0hYVks3ZGNJeFdwM2ljUDVmYjFBb1hCWDNSbm9QZzhlYjlOT1h2cENnYSthVFJuTnBKd3Z3L1Nycm1xMkFOZGxQTCtrb0FINVdRRHB3bE9kYzBvV0ZhMkpoaVRWeHl0Vi9COHd0OE40QWgrVVNuMW4zRXVYZU9CczZTcTZEOGM2Mkgwb05mNGdwcUlaQnVzWG9INmUwVzByd3J3YzlGWW5qdCtOTmFuZFBVUnUwTk1ySWRuWnI2dlUwZTAzVmV2dWs1Nm4xZ1FsWENkeVVXNUZHZllsRkw1RHJSbkh5b0hXYnZQYXVGR05kSjYrOXIzNXZrSVRUZ21LaVR1WlNQWGVoOGk2UkR4ZXB4aWtjc252dmlyVWU3Rk1odGlNQkw5WTBkRm94OVRHLytEMDlqNHUrOUVlZ1oydFlTMjdud25oUEVmYkludWFiNmJCZUczMFVZN3Q3emtmK0phWDFiM2gzYTg4Skt6UDBqaFBFNzZzK2d0eUhRNnFUL0htdmo5bjZ5U3JVUmhzdlBkQTE0bkg2NUtOM25ReDZuMnUzM0dOOVRmcXFJdzhINnFEaHJhTnhwZkljYU5KWENNN1p5RC9rVlhsTVF2Q3MxUjR4d04yQ2VBWTh2NWltQlhvMER2cXZzNkQvbjVWVkxpUExkMWF0YnJEYVRSMFJCMld1czEySE43RWV5dXkrWS9wNHpobXhuUUZxM1JuNFAvQ0pvYlZ6Slk0Ui9QNU84bCtBandIbkdkU2tEdGpQb0hXbmNmQXF4aVJONHdQeTdqaW1TbkU0WU0rTkk5eHo0eEQyWEN1OWcvNnQzTGRicVRjZ3Y3ZU9sNml2eFhHazFrbUw2bFlIcW5FcW53L0taWXAwbEJmdmVPNSt4SGFnOWMyL082dGVlN0FPdk5mTmRkTDcvSXY0b2orZUIvN2JmSFdWdmFaclRQV3U5U2pZSjFFZjlHeitOdFl3OUs5WnZNM2poNkQyT3d2eE80ditUT1RuMlYzWG9BbDNMUFZkdG1ubzdQS3FmSWp6bmVPVFJFN3NWWVF6MzlZNFBJUE5KV3VYajdGOUtqUHcrTzJlMGtVWC9RcmE1Ty9tZEQ5ejhkdXVzMDhXWFJVWC8xd2dYb2MwUmZsYWZXZytCTVgraE5GSXF4K3FwdzFZd0szRVRsb1BpYzNHbXJ1c2plbjNpOE1iWU1hOTdaVmoxRG1uRjd6ZDBxaFB1bUt5SnJXQ2VtaFd4Mmh3dlRGNWgydStsYTRwYm93Y1ZlcGdhcjRZcTgwODlleVVKckNJSTQ2ZmsrMk9jRHpUUzhEd0k0c3dwaHdaTlNxa253cmxGdGVzQ2lyWk0xN2JRWmxoVEtwekZNa2RBUjh6SExQYStET3VYRytiVmorMlhKTjRiUWYzdEFxTzZLSHRpN3VvTnVhcWY3ZGJSMVBrODRpOFlkRHZKTkhrMzJyb2JXWkJmelpmZFliZXNQdTJkSGFiNWFvN25DOTYveHVOcVlHeG5uVjgrOVMvOE55NWxZS1BnKzUva0U4WjZ1VGFSK1ZkazRiUXQrUDU0RDYxdXp2UERjNXBPOWl2U1g4ZmZRdnJQa0h5REFZdG5VZldEa3BEdDB6bGhESWZtR3hxZU1KcjJrWU9UQjdOVVMrTHVJckFRU1V0UitqYlYwRWJjSXg3aVRHS05kZkp2VjFFSHZyVGxWZ2pyRnV3bmwwVFArUkI5Y2ZMR25LdzNWZTQvbjQyUXQ3UUV2VlhYZXpMRTlmVGRZNmtCNisxb2lYWERIb0NrSlBLT3BDNE8yM3dIV0lZZSt5cCtDWDROVzc3dXp6eUM2bVozcWhWR3JFK25NRjlBcjVRQlQwL2NhZll0MFBjM2pFT0l2ZnExaDUyY2x4SXcvNWc2blgxajhoUElVOEE0a1BCM3lDL0FYVWdJc0lONkR0dmwxVU9lR3pFb0U4QU90alVneCt5bUxSL3lXMnBNU2ZPWGVRK3hieVBSVnpaZFJnM2E2Nk84anZpVXI5ZmU3cHVVQlF3cC92SmtYUlVwVmN0OWJyRWR5a01QOThiRWlOL3o4UE9XZGEwc2ozRWhzZjNSbC9Rcmt2bnoySSs5S0F2azlubEEvZ1Iwby9STmVxTEc4WGZIRTFCTzVTd3phd0h3bXJrRE5zbyt4djRtMkwrOUhkQ1R3MDVyMWIyeEg5bjJKTWgra2lwdXFXcTR6R2ZDdFBuY3B1QVY3NjNTVWJCUFE3OVErcVdyZmRGZjUrSHpqMEdiWTJncVg4M2svaU4yQzdLMkQ1dTFxTjVLeHROL2huZnUzZDh2czRodlhkYmFidC9pTnVUUzMzc2txODlYWlMrUVJ6MXdZK1V0Sk9OUG54QXVGWElYMEhybG5sbzB0L0pPaTlxWDM2ZEUwOGxQNjRLMm5CL0FjNXl5UDBocjNBMkRTenFpWWk5UnR3QmRXWkkzaTVnTlI4SjE5T0NaeUVPSnVTUHl1c1djREU1K1JTcnZpNzIwYmJnOTNoSGo1ME1hN21BSzZKNzM4cnNKay9WMW1hRytDWDZMTk5UaHhxTGVLOU9rVUZQSGZKWHhSbGhlQXJ3ZnlCT0JIaU1zL0ZsdURaK1B5a3VnOFFsZmlwUEVzSVlFV2RuTjk2Q2wyV3B4bEZqRjBxeE5oRlAvOEovUjlhajd5aytCK3pIbjY1L1NDdUhlTGIrSVE1dmgvZEt4SHpBNGUwdlcvSG01Mmhldm8vbWxzakZHZTc2d0hCcEovQ0diUHNsYUlRQU53cWZDelZkU3NBNlNVdysrbnlXY0lmV3ZsUHBDNUwrQzl5M3ZCL3ZNWDRTblBmZ1VXNWlWOGl6K0o1RXlRRTFzdUZjL3dvenBwNEZhN0tkUTRLNlFuS2RLRncxclRYUXExdnpjMEgyK3JuWHI3aGZOdXk4d0RHUWVUNnVVOUtFa1p5OHpDNHVlWGpia1NhMmZQZUc1MjdhUzdTSGxXWWQ2WjhUcDEzdVU3TWZNV1N4TW1CUFduQ1hNKzl6NmYydHZuK1JQMUQzSkRtODQvbTRKVDg1eGVQMWJYbytYQU9nSyszZm56MExERTluZUhiazI4dG5sTTh1L1psVEczeUREaW4xU3dteldNUlYxOUsrT2NFdEQrbHV3VG5wWkkxemIrSmd4NmpoaHZkaU5ZZTVwelBSMEJVMno5Tk9rZHJ4c1FrL1Zic3ZZQXdncCtNWW5NZy81Rld3YThCMG45UjVpZWZ2T1E2NzFmaGplRVpjWmVlZXVCNXFVeTc2VzMwT3JMaU9mZE96bmllTER0UVV4cFZ6U2JiWDVzOXMrV2Y2NktjUGRRamd6SWc1b0wyaDE4bDRvY1lPMWlUK2JZZnZwd0o1QWxhUlZtV0ZlQUY2NXRwZEJXTVhvbTY0VnoyUGc3ZjVyUG1hVFMvcFBpblRxb1NZYzZ6djkwZnVkdSs0UDI5SEl6YmR6OVR2U1UxUnVaY0ovN2tUMzRIZXJ6T0dHeU8vOWJiZmtSemgrdDNKUDBPWWlUSkgzL2F6cVRFaDMyMStBRStzMFBCSk1QRjMyLzQxanZ3aURVWDg3ejJQbVZ2ZThUbDZXMk5PeFRoc3ZaOTFYeWVNa1RjSHVEZUE0eFljVlQxdnFEaEtJbzlZRXVkUllRcHpBOSt6VXZwVmdCT0twcjlyT0FYbzgwSytZanNTRDFReGZBZmgyY3U2bHFicTd3SmYzN2JFY3kyVmhtMGx0YmFTWXg1Tk5XYlpSUzlCNmowKzFvRFA2cDQwNTZUL2E2WGlQb1V0cGxxZytLZHNlVU5uT1F0NkRmbVE2dkZaMlFpMG54L1VmeE14eXdIMFR6SE9QNlgydlB5eUYrREtIa0FDdWF2U21uTnZwVHpIbHRiRTVMSFFlekY4UGZRaHMvc0xlbGk2d2QzUTVzT2EyVC95Tnp6WHFWQ25PMEQ5SXVtM3EydjNoY3p6S0ZZOHBuWjI5cHpwTVcyRDMycUIrL2lGZWZ3a1piWXZIMG5JZndmM0VtbEZRVDhYUDdkVFBEbnljUWI5bDNVMExmOUs1K3ZlMjdMZjI0NEgway9NQVI0dTB4dWlPays1WDQrSXR6anlMMmxZUGloV0IzNHU2N3RDdjVaeUZJbVZGTy9hZWwrOGJCYlJiQSsxYkx6N1VkUEUvYkhKeFo2TGZQS1AweHFvV0plQm5zZUwwaUZpdFdtdjZseThyYXl4VXIzZlZkNEFXa3V3eWpaWkcyTDlrMXpqWCswUDZoMHlMYzhaNnE2QTd6cmNjeXBIZWNMRkRRclFuMkllZFpEellpN1BOZGpMWFJLS2ZSVnpqTVZKNzkvYlJlU1k0dHdDN0dMMDdERld6MStvOXFMbVVNZlVXRVAreWZUcGxHYWY5T2pkeis5eDVIZkdwRUh0VmM0eHQ1MU9kdmNvaGhSeGlseDNVQXRIVGJaRmZ3czFRdHVoT2x0UnBJYU9ZSEIvajZabDNLUm5TT2RWRXMyTE5YbzhTUStNajdVYnNKaVF4MWpPUFhmTEQrNHg0cmxGS3gvMVJKNVhwSHZBOS80enJxYVhkTkc5cHUxcFMzblZSV1l0QmJEVUVYZ1NnbC9DdUNwYXFmYitNMnFNZWRnQmpSSTlQcmp2eFI3VU5UN1FvcE94bWp3bmNCeXZ0ZnRsUCsya2xiSG5XZS9XL0l5QnMrY2E3dVRsVWF2UGJJanZwendpY0I0aC8yRHpRWGdnZDJoeVFsbFBJeGJ4dnRnM3FyYmIrNFQ0S0p6K1R0bythWW1RdGw3Ym96b0IrSHJXUHVPWEdyc0t6NmZYdk5vL2lMa1RmMDg2RjRUL3pRdW9WU21kWmJ5RDFzQVRodjB5V1ljZDY3M0J3NHZWV1dUOEFud201T01lTjduYnZZQ1dDT3UxeTNQMzUyQ0h2SUxCUzAwM2lHdXpkUzRpNW5vZm1MeG02dkZ4L013UmU3dkViemJmV2M0ZmFvT1k5NTdHZFpIR0ZuQm9ybHhiMmF0ajhtVWNnVFZ6ZkllR05XM3lxZEpRNUd4NVFieHFxU2NHWGkvaURvZnpwSWJ2a2xpMWVxd3VlL2RQR21LMjBvT3drZXVreDVvMDB5VDJVbkovREcwdm1IT3U2d1lhdDMyR2JmSkhxNVlUempIWEhzd3Qzd2tzM3crR0FlVGRhNHBGeFhja2JiL00ycE92OWUxSkwxYm16L0szdElmRjlITU51U1hFTDRTamxUaVF1VmlEMkk4YzdRemN6OXJFNjZxYW5NZzlkR3d1enc1eHR5RitNaHVoSm82WVQ4QkpWZFpEY3hxb0g2dDBTMmExUFdiT0czbWcwQjNjZTB4QTUzcDZRYytyYmtWN1dOVnpjN3Q3QngxS3hadjlzZm5KN2pJV0s2cTdhZW1XNXp6YWFKMms5cVJKZjlTdmFaMS8wUnRDdlZsYWw5QmZlUStEaHhpYkpjZE9BZDQ1SVIxUHBxYzU4TStwdXNkMERSTHZyR25MRy9VUDRqemcvbWtTbHd0eGRsV1dPZGE2ekZxNjRuVjBMdVBRbkR1UkE0MGplZTZ0YWx3cHg4cmRycXhsMzVPSVlrZk4vYXZIanVqRHUzazZ6NEFycnZIdjdIdHQwcXlwQXFtcmpEVnA4QndtYjFuUXVpdy8xaEh3UEdEUEdYVndzWjkyUWJUYWxhdjVDdTRhclNlOHdGb1crbkpQRCsvVmFnUG52WWhaWkQ1bThqZ052UFRYMm56aW53Sjc3ZUNMNGYvT0hwOWNJK3VVQUo3T2wvMm94em82OExHRDV5SnZvU0xaenlVWG51bmZPNjFFYWxIVC9QeDB5d3IyRy90M29NOGlhL3Znb1ZQWGpFUDhpOWE4SUMrSFdwK0lhdll0aVpmSm94N0RoT3krUElPSTgwbnZSejNKcUU5K1BpclBVUGNNemNOWmFZZysvemZqWElqSkMwSHFNZjF4enJUdW9GeFRzSmVrcHdKeU5VMy9JWXlCTzZYa1ZzbjYyUHNDYWhlSHRDcFBjWGlWWTZlOWRMbFBtY1NWeUxrWnpjdDBTMWdhaHZXdWU0bkhVWEpaSXg0S25wZlZrdmthZ1Y0UzQzZlZjUDFZaDQyamFXbDZvMnFQS2V4WnFyNDdhbVZCdlhUZTByb3ZEYlYrUGhaS2c0djZsbmE4ZWErQ2Uvck0wVkY5WkhsVzVOSDhrb1lpNXNIK0VNZUtxWnFDd3ZXcWZqVDgzVGgwTHNuV1VtY1F4TWpzT1NiTDN2WGJ6NGZXSWQxYXVFWmY0MVlhZXZ5Y081dCtjOHI3c0VMOUVlWEYyOHIySW9laCtxcldHNFVjVXZLemVSK081WnRxVCtuWTRDcnplcmIvTU45UDdLQ1YzVVV1RHJ3MGpIMGx4N0JCWTBCaWVVVGN1S2JZWG5uYm1QNFhiZEp1NUdlejZ1dHhIODA0bW40bTRDbFM0M2ZoTTVOSHdLd2xhLzZ5WGtUOWRTdmRhdzBqN044WjJDRElIMytGeUsrQ1hwM0VKZytLVDRYZHAxeGE1TmQrZS9iMGJqcGV3UjVudy9Oalh6WDBzVzd6NTc2bjdIWGltWTZjTWF6cmpScTF5ZVU0Z3RhMTVuWUdMNWlQYTk4SDhoQlFkeE5wYThIN0lMN2FFL2RVa1dDTkEvcmo5ZnBXSEpseDBzKzZWclBidWVUM25mUmNnalhIemd4K25oelF3ODdJcGY1aW5VdHNyK0VCb2p6S2F4akJROGI5UWJZdmpUa3IxTGhENk1XZThwRnZwZFcwSUIwZmhnOENIQXI0WUJxZk1mWnQrY0NlcnVxdG1ER3NydU9WMlI2MFp4NjV5Tk5IazAwU1dnZUplME85cHd5eE9OUmZwZkVqejN0MWgxTi9YKzlETTg1VDQ2N0d4OHg1TzVkbkhTcG5tN2I5bHZLbFpuNSszT012VVg3K3NwZEtkL3lXOEoxLytidWtSNk4xK0UyK1RyV09OZzMzSE9lUEF4NFFlUTdZeno1QnJYN2J0OFErRXZHbnVCTVQxSXdtYnk5ODFwcmZvK1QxTi9Sc09wZGNZMGtPWnI4ZlkwU203VncvczJILzVsRy9WY3ZURG9rNzU3MmFHbVpZZWFiQi8wMmlRbXQyc0RrWkt3Nk0xbXZDM2h6MThRQzdWcFRwYzB4TUdvbnpPL2M1azMxOWhXbXB1cWVHdmF1MTR6VmVhZnR1OG5jMVo1ejBWT1haOWVWKyswTHZGYkVheWxkWnh2d25pdm0zWmorNkZHTnpvSm83OUpwMXpZWDZkOEFkZnVaUWdoN04wTnRRblZKeHRxZ3VWR21kOEk0ZXB6Q3AxaUlPUkc4dzZLZUtQVzd5VVdGK3pseXpYMkg1a1lzQnRkSTRuUDdPVVhjZGV2aVFuMUFPNVkzNlZyYnZYd0NQek1jUk5IMnNlK0o2cHd4aUxRdk9aWkgzRFo3bi9KRkgvU3Z0YjNHbmlIaUpZb2J5QlBzaXRLNmdsVk4xVzFLRGlmVklZQTFnZktwMEVHQS9wVzNmMEYzbnZRUEtGd3NUcjQzNHIzRlluc2VSMUVkVFhIbURTMFJyNE1vd0xwTEQ5YWpOSDYxUk5YK2dTeUxtajJzVkVYWjVLN0VTT000M1ZYZm0zaWV3YmtiOUl0dUxNMXRoM0l2VWprOTh6TVlody96d0hQYnYvWDZYQ3lkWXpZZmRhTG45dDE3QkJsNXhHa2NGZWdCUUh3UnFVTFp6eUFjMTd6RjVObXo3ai9WSThUdDNhVHMvanhGL3FPb2REWEdIMWdPeUN4SFR5TDhyUERlL2cyNHh4T3JsQmU1Q2NWZTMwWS9GYzI5Rll1YzFMU0hwL1VqY2c2aUhzVXZOQjVEbnBJWlduTnV0a2ozYzFZcFRVOU82TDkvZDhvRjdIOWRVNWdiM2RkamRRZTlCangrcnUxRlBUOFE3ZDNFRzQvcVYrbnlvRlM2ZXY5dEp5ZE9XWWZCWm5WWHNjY0IvWWh3dDlrNURuUi9pbWtFT2M1RzQzWGE2dFFDUEkySlgvODY1RzFUamJmdWdCeVBmdzI5UEVBc1dTUjhjcmhFSlBTVWpyNlh6VTV5bm9GdERlNEI1bnpLZlJwSGYzN2t1dVlqRGZxaXpUdk9RWmY0RS9nWDFPMWErUXl1OTk2NE5hNnJ4M2IzWDRmV0pQNkppS2IrTTdRRDFZTjNoWnRVcVI0dFZad1dhZjg3VW4xdHpaN1ZySGIzUjlET1A1ckJHOFR3bW5nL0R3Y1RjcTRiNVRxZDBqM0RzMVZyV2p5SEhWdm5tYjNubWNDMUxydVdCTVJuMkFyQjJOcGY4Sm1POXNCcldpbklGcVFVQy9CYkFGSSttaDhUdUZLZ3Z6dDhQZW1tSHRKb2U4M0RlV0h1V2ZJVzNEZGUveFJqK2JkdmJyR3dIUEtoWHUvbkFHMDNQY1FROFFxYXRFRzh5RzJxUjE5UXVZZTBUL2tkN2N6TU1VWTAvRk1VaDZIdGhQOTUxOW9sTlhHQ3RleS9HOUNPTzVoOXIwTmw0WWYwL3gwNlc5TnhEc2RkQmo2RHdodkNzVXF1QithTzlRUDhvUmM5SThQVXlNY2hLdzRIaGxGKzRaeWQ4SG5odkR1QzcwQVA1NzM0UGRDSVk3dURmL25aYjhlMmM2ZTgxNE12ellrMjlXc1JpTnA2blo0TURWVTN4K1FkOUg3WDJnVmQzZmw5dzcxM0RZMWRycFN6WW1WalRQS2E3WFp5dExVTXpUdS9wZnJwSEhkNjRLczl5ZkxCZXJQaC9EOE5iWGVUTWJoZTlEZSs5TGE0emlyc0cvamx0dy83WktwODJxTGtINkZVQldpck9PUW1WcHBCOERrZGlydDYydmEyY1V6azJtTGQ2eng0RjRtNXo1NWZjZmptbDlzc3BzOHY5R3UrR0p4LzhwczhDL29ibHg5L3JhZmZmbHEyWDAzd1lyT2FCUDEyc092N0ttdnV6ZTMreWJIVkczdENmTEZ2VE1laHFENmUvbGl1cnY5ek5sOTlxSUxGNGVoazZMK3ZRc2xLSjgwU2RldEFvMXZjRTdzbDVrUFNYZy80amJ2dUhiQVI2eFZVZWRsRG5jeTl4c1NJdVJENEo2ZDF4amZSZERsZ3RRL3RhKzBxWVdIZk1neG5IamJRNjcrSjhYNk1PRmV3eGl1dVZEL2tYdlJLbE8wcnZXNzY3d1VkT2E0OXczZC82ZURkNlZVUC9yL3RnZHdQVDE5SmEyYk15V0laeVgyMmJlNHBVbTVENDNCb3VuTHltUTNGZVF6MEE5SlRBTDFyNjJYUHZIOWZVSDJacnZzNWg0RnBuNDhYcU5oa1ArbTZ3NnJ3R3cvTFhjcXYrSFl0RisyOUxhOW9QZGhMWHFMU0VPalQzVDNOdXhQbURIR08vdTdYTm8ybkhOelhKbm11OXJlbGlFZlJYM3ZEa0w0ZlVleDhtd1hJM1hTMVczVGY1N3luZnBselhSMTlINnR1QkRqdDRuVXcvc3FxODVsTEwxSjBma3BwZXdIc0lmbWxTOTBQams5Z1lreTlHNDVoZ1B1RnJuVklZRjlBOUJKMm8zTzFldjZnenNGckFGUEg0QytYdHFjYUk4TmZNUHdENVBnbHFkbEROWUhwZkF5Zk54T053blVEUXBiQmY5aEsvaFRVYmNZK1F2ekZwTU1UZ1dhbDZwNGUwMHZHMThzK0RNMkgyRjM0YzVjTjdYVFhGb0UrOVZzU2hrOTdJYTA5eVVjNEo5Tm9aUDlQMGNESnEvTlNQaHR4d0hVMVAzcUN3MHFvOEE2OStIMXd4MTViN3BMeWsyOTI1WHR0Um5rQ3V3L2Y1TTljd0JFeVBvVStHT0VpTjJTZWR4YmJrSzYxRFI2NGwwZzZrTVlYNkJkTWwxVDZGU3FzbkhRVUY1Y2tuNlVzOVhmYXVFLzJNc0wvR0VlUkZIZExjZUlBMjZxQm5UVjU3MTMvcDVRQTh1dFV1R0M2Q3lXYld1Z1VyRVV0di84WGY4N3VIL0VHWWRoN1hrdnFJUTFpYklpZS9ZczBZOVlobERXaG0zeXpJNHo2T0c4VXBzY0VYc1VuWER1OFQwaG4wM09reHA5cE5XblhSRjlSMnp1TXRlSW9idW01MER4Vk56MG42M1F3clM4KzB4V2RSdkorRjVIZXAvNjdxTHQ0b09PTjlHSnh6dDFtdnA0N0wxdDlqS1Q1bXZWWTJKNnpqOHpNVmhIL1dZOUNBOGNXK3Vhb2xVdCtiZEVJNXJqWkhUWEh1amJSYll3NjFmYWQ3aXJ3eURwdzNRalZqSzRPY21yUXQxUmgzTG9rYmNFNlZRMTRROGw1OFRVZkJBM0drSGVEMVpWVnd5OE1TTWRhMWZjakc0QW5yOUlSWEg2SWVCbmpiTFpUM0VWK2JqSE9tL1ZoaTRNbW9uczB1SmMwZndHZHdUL2NxdUtkUWkwVzhqbjZQQnMwaXJLMFNacjkyTityNU84bjVHNGM0VDJQYlArUnVwMGpEM1lWcTRSZXMzM1pwajNSZ0hGZ08vVFNlRUJPRlVMZFE5WVU0dEM2NTFGcCtqaE1MK2JkcEJEaDdzWGV0ZEkvOVh0Z0hYRmRleENHU3kwRDVEdUkxZ1JNcXpsM3dYRVIvczJsTDVPVnNQVXk1NXdldHczdUs5eFRVdVBCTVZMbDA0Ym1XbFk3bUI5QWExM2NYN2duNG0rQ1NSdzEzR0J0bk9Dc1dSaDJpZG81aWJzN1dHKzV4MUNhQkhqbjVWekZ2U0xZUDkwcVBSanovQTdWTm9CWjhTQ3ZDQk1JNjZaVG9rd28rSW1mZFk1bVdlWVBISU1Ndks4Mkd5ZUJLK0Z6VnA5aXlQb1hrbzBvTmRuenV3Ukg2MnBQWDN0bHp0QzVEelMrMXFYZWo4TW9NeDFBL0U3YzV4Z0gzWFBwdjY3dTV0bGVzTXVFYS9HeU84TytOT2VsempRK1JaMG8vVC9Ka2tmVkFpclhKaDR2MXNKRDM3QnhTOGdwWWh6SDVUMEU5a09GanVwZDFlMEw0U0hIUE50ZjBEQjFEdXlUOWU0Z1JLNHB6bUc0NjRKTSs4cEhrR1pDT0lIaUlGd1g0UllSQlFlY1Z4OUNBNW9aWFVaODJ6RXR2aS83TitYTy90SlhiUDRqL2VaSjdobXZCUG5NVFg0Y0gwM01YL3VZazRyeDExRDl5YjBnVGE1VVU2L0FHNTZEU20zR0RGK1hKN0ZwbDFwNFdSaTBmOWQ5cjJxZXFUN1ZIVFRlSXFYWjU1WnlSdjl6b3NWbmp5MDVieG05OFdVUHVmWm9ja2VTZTJxMTZQVm5yc1lRenprbmNlSVArZ28xRnZjKzJUK2dzUUwwcTU3eSt3OTE1U2Fya2tVVGFZekFiOWFVdUtMNFg1cVNtTjRIeVR0SGpqSjZtd1RHT2RvRDF3RDVUZWFIekV2RlFZWGxIcmFIajh4a0lIaGVTcnpFOXBGVitOTDAvQVY5bG9kOHA0NDNxYy9ZSWVxcDBUc2ZLenhqNks4YnpTMTgzSEZPbENZTyszYXFHZjBOL2I2b0JaRnVlSDZuNjc0NTd3a3M5cmRxYU1qMzZxSDhzN3FJVWFnekJ6dHZLbkh4M1pMNHhpaGNyenZFa3ZCWFpDTGlIajNYWStXank3WUM2dVBwZTdYRkEzNmQ4TkgvcUhyMGFYL3E4T0s5K0U1N055dllpdGdIOElkUjR1U2FYK0w4TDVXR0ZZOFg5SVdYL1haOVRoTDlsNTZUMFpVd05YcEplVXpWL2p4WnFzMzNSdzZEYXBqZnc3dDZXemVVbzBEdzA2UHUvUFB2YU5IbytRNzlPblUrMVBJbDdOUjhTT1BQS3M5YjhheDRQd3NVWWE4WHdOSnN4blVZUnY5bUVCM0Z6N0VOTERzZkhNOWZLRStkSFBYWVlmUEk0WG5zRlJFbVJ1dVVPY0xKaElwN3ZrbTEzbTU5VUN4OUhJaGJJVHN3clZZekRnWGtlTVkzV0g4cm5VM3JjaTd2cjZWa2dMNTljbFo0RThIVzBWc3RmUCtlR1l3cDdOeEZqWUYzUWVXVHQ0Q1M1dml3ZStkTTd3WGsyV2ZaWXplQmE4M2o4K3pVTHZSYW9LVUFOQlQ3SHRDRmJjWGo3YlhLTjZCemFtSEdyOG95VWZweVBJUis3QnJ6SWNKT0srOUgrRjJOSkhqS3k1bWYyYUhHdHB1QzlkdHNwVHA3N2c4Y3BYTitGNlozbG40aE5HdUwrSDAxUHlFbEZIU3pDR3Ricit5ejJ3cnN2cmdMRUpzbng0enFtYnZBaHZZV1Z0bG8wZzNkcHFNKzYyQXRSdGRraWgzZFFQSURqbDdybFNuZm9mN1ZHU1Y5UHZuZTM4bDU3eklNQnVRRmo1WHZFOUJvcFJsZGFSZm91NTJlUGlaMm1NMFY1NmJzMzFPR3h6WE9hYXRFVUYrbjdNZ2xueldlVWpqTStUUSt6b09QYkVNOUt2SXJTbWdiTml0R091TVUzbXU4dXhQaFNDMEhxSDY3Wk9rcnRwTUsrQ3NRSlRkakRkUkw1RjVidlVQMVRqckd1eVNidG9NZ2dWZ3RLelhNaEhLZjB1Z1NjeGZ3Z2V3eHJOK0RhY2ZYOFFjYnY4bjNSUzFqRm5jRFZPNlQ3b0FsRHI5WTMxY3ZFbWdVTnQzVTRGMnZ3bEZUT1J5N3VmN1AzclBObVE4OFRjMDc5MjlZaGFmdkVFZnF4U2R2K0ZmQXE0WXpwZkY0Tm4yVDE3N21PdjZ4ckxmckhKRXhhZUZZVkltOUZiZUdubnFtS253NXAxTCtUaDFSOTNCUXZ3L1NMOTB2Z1NBNzB1aGE1T1BRbjc0WkdPM3FPTnJ3VDluTHlGbUcreERrTStneEcvSURlaUlYeVRoTjdIM1dVUmV4MlFGMSt6SlcrZU1jbUxSaDFWcVpodWM4cTZLbUFybW0yaDVvVStaS0xNOUYvOEI2MjRjbWhZa1BtQ2NEeXZjUXVnWmVXN29OVFhCRU9VL2xzNUplc09qMWhXbFJ0WGNUYkVIdXBzMWxyZ2RIM21iaDVqRTNsKzJCKzRoZlozajhra2JjZGIvdDl2YzRnWHR6R2tYOWZoL1JjcjhNNk40dWZ6OXdqU055aHAzV1kzMlBrMWp5TkRmckN6c0FIUVp4WkU4MXBCNHd5NHJUMDJZOHhpT0hmWmVycGdIZDZjc24yODArcUZWcGFxOUF2aytwV3h1MzVvMGtYbW84dGNDWkdlWkh1WnpMdWdaeEZqNlBLMVE0cDhLZGdqY3JhUWNPOWJmcDBUUmE5ejZ4NWJURi9CVG0zOUZ0NzVONkEzb3owLzlOang3RTNQUDQrakxmOWxkSFBNT2VXZFBYaC9qdmtTaXNXYTc0eTFsQjZ0WXhqaVgwVlZqdkUrSUxIWG5MdXFUZjZZK1Bibll2UE5EWm1HcmR6U2JhOUs5UDhBWDBTNG5XZ0gwR1lXTG92QjdXc1hSTDZsc1FuWUh3NFIrM2hxbXZWL0Y3RXZiVExLVi84OXR3TytmaFlldTIvRHJubWhKVlZIZElTVFNyVkk1STRmOEljRU5ZRS9SekpyNXR6UmI2cko1c2VwN0t2bzd4S0hyVjUvT1pNUXU5RFBoZUVyVkNmcWZORXdXc1Q4dTdnbEkzbVRkN2VRNk1YTjhnN1NUVFplNE9DZXJMbWUvS3pwbEdYNzErc294cit0RmxEY2ZqY2w1RzkyOWllbGhuVkc3TW9LTE9xQk8yc1pDdGpKZEEyK2NCNE1PQzlIK0Q2TVorV0Fub2c5Z2I1K0lPK2xWWlR1SlBFM2ZVVHVNbU9MZTQ3aW0ycGI2SncrdkFNNjRqWGVLaFBnalU4VlhOZzZ3UjR3WEVrNGl2a3JDQ21yZmRaejgvaVJmOE8ybUtvNC9JWmc5N0M5SmkyNTh4M2hYQXVkL1NCcGg2T2piWHpIV25NMU9OMlgrUW5KK0xQUUd4UCtpbEg2RUZGY0QranpxYTVodG1hbUtvek9SOEZkOEI5c0wrRGZ0aG9lZ0hlaGRLNndmNUk2blk1dG9tZXRWOGt0bk5vOHA5bXNld2p0YTBTc2JYbUdVODhJaXRHbk9lbFlkeWwzaFZnS2VUZE5EWnI1S0FIdGc0N2hFT1VhMjNHMTVubTEwRk15anczMFNQOGtibk9CK3NYcWJvUzk4U2pOWFpHdlM5V3kzUWhsN2tvL1pVdjh4cXNxNC9GbWVwZVR6U09SY0o4Y2t3L2hjN2xqN0Z1RkJ5eWFuVkNQMDdyQTJMRUN1cW5wczZxWTU2VlkxbWpyL05oUmd3UFo4VEVWRE1kK1IzQ2NkZHo4eGJYNHBUMXNHUVUzR3QxZWhhTFB2czJzMW9SMUpra1gwSnBCM0RldTJzVjZUNEFIU21kdDZGbmovaHNiTXUrSnMzUGQ5eGJmZGM5K1pSeDMrVHhvRjlTRDRUcVc2cUhpQjZjMkZ0VHZhb252cFVkbkhFL00vLzIvUVE5VnlGbXpVdTVQMGdqOUpESXZLTkMzN200V20xUWk2WkxISlQ0cWEvNy9FeFFMMmlKM0hBK25MQTQvWG52TnViaVllY2ljbkE5MzRZR2ZJMnpvbmlJU3U5TTNCOWpoaHVYOXdOaFJlNkFuNjJDSWhtQUxsNkZuQUtxZGRROUVOV1pXRDRrUGhmUFkxbnJ2ZFl3aDByTC9BQnJEZi8zSmJjN0QvTjhhNngvU2s2ajR0aFNEdEJHUE9zVTFySFV3MXBIdnJpamFOeWg5NjQ1ZXRqak1MUi8yZnE0Sk5FVU9JbXFGNDRZNHNjYWVKQ2RqM2U4VTZpSElXSWh5S1hvZm9PNXNSQUhTcjdaa01NY3dWTW9KMjFDcnJXMkJDOTFmWGZSbWFqNDlTSXVqTzJpcExNQ2N1S003aXk4SzFnUEZuRUpXazl4MFQrd1hxYmhXY0pxZG9pZEFxMzVyMnJQU2lQWFFvMVQ1UWVNdmJZNjlrSG5SN3NVOFZHbkpGUzZTTUNSU1VPclRLdDV5WG1LYTVHbkxNam5ialRCR0ZqZFU4elRpV05QVUhlSU5CZkYzU3I1RE43Wkd3NmZhMGRLbTVjMFQwUk8xL1kyRSttdk4yakNONkFQUklaZUVtVWN6aTVLVzZFZElGZDc5T1FUV3FJZVVPMHVaYnhaSTI2R08rQXE2MU5pYnp4a1QwdjFPb2xib1BGMDhsMFlaMWh6SmNBekxtMzdGbW1FcXBnWDhGS0lPMituVlhEUDdPS1FEWXkrQUhHQlJBNGZ0RkliOUJsSkcvM2JzMHJpRXFWL0ZleTVjUWo0M1pxVzBGL2VoVHFmVU5na3RtYXZlZWcvOHREYlpIWlJaQlY2U3lkVmNvaWxSc3ZzeTFyWElkTzZOL0I4V1Z2Y0R5dlN5MEZ0bmpoQ0RhNjRDbzdyTUFEOHZ2amZhVHMvYXkyUDJ5VWZmYTNub3ZRV0FHdGFjcDBOM3B1U0dISFVsZGJlZi9nYm8yQ2J0WU90NXlZbDRnbFhFZzl2ZXFZOHhheEtHMTZjeTFBN3BQZlVuc1hEN25pODFSaGYwdVA5VVBrcjZvOFJWdGY1RFJxNDBLODIrWGQwVjM3R2tiK3J4L3J4QW52TTZSYlhWbG9GUjYwaG85L0oxRTA5UVF5SmRZbEczV1dXdStJNkdVZDlFY3VLZitBNXhoSGdOMDkwTjVueEdNK1YzUEs4RnVzSy9Vc3MwRUdDZnFGMTRQZ2RpUlBVbWsyU3R5L09Sa2ZtSE1RVm1SL3lxdHlKSEtFaDMwT3NpbnM3cE5WeG56My90bGlieVArOHYyaXNIdlV3TVJaWCtxUGc2NXNNZUM0WHZJQy94aFBlOG5aSXc3S2xjV25TODZkL1g0ZFdrVlZsalpzd0xaSEhvL3o1a0wvcTVuZkZld2s3aUh0eGlVTUQ3M1RpdWZXRk9KamdHZXVOK2lYazU0UENHVmZaMlhQNlZseE9yWGpiUHlYUjlFR2VHVktQNlVvMVR5dGplaVhxL0tENUFEMWN5WnNLYTd5andZdjAyZEtZVnZvN2pKRjYrelFNVHBFdDU4Yi9ENnlIOW1UdkRjdTMrZTdISnFuS01uVk5EZXV4M2IxN2cveUJ1cU55M3ZBTUpKNzkzbk9EY3o3eUQxS0xORWMrMnV2U0NaYkJNRmg0dzV1LzNKMlc4WUQxMzhYNVBlcEx2aHZrVldrN2VHQU5zZk9CUGhNRzNnNjBUUEt3eGRabnZKbUUrVmJwaFJBK0VuR0cwNHVxZDlUV0ZWdC9xSDFRbGNUNU5PcTMwQTlPYkJaYk44d2g0QkUxcCtQc0RRcnA5M2lDdkhDL095bGQwQkRYcGVGWFM3VTNxQnVHK2ZibjdMdjlEL3ZvbE5uaUhYMHIyVnEwZDN1TnZRYUZoMkFjSVYxM0JLNnVsVmFBUi9oTTI5TVc2Y0l5UDBpT1hYN2hNV3BCT1BjTGFaTExlTW5RYVRQUFdLMmZsZUkrVnJXellIaGJlbzdTTm5pRDJ0U3dQQ2ZzZlA3cFROOFdpOTJHdUpORmlwZ094RVlNNTI4cnFldXN6NEs3aUVFZ2o5L1c2a2hTNTVLTlBjVWRJbjRVWnloZ2tSS1hla3FWY3hSbllPNDZkZTFYdmNhZDZXUnB6WmNOM3ZiU3MwRGhHU1NHQ1dOTjhSNjlQWXN2eUZQRnZ5ZmhESHg3U1N2cmxJL0thN0xRWHZmcWZGTjlNKzY1Qzc5dnBSV01JWElWTVU4eFk0VEt0eWplZ0g0YTVVdEg3cWVrOEplZ0UySmQ4OUZPM0srWWIydDkyNVBJaTJ0M05GOVh5SlVrMysrczZsNWpyWWNITmUwMDdOcmMzN1c1ZnRnNWkzTTR0bGVudGR0OUlINTF0Zkc0WnJDNjgzekpFeW9TcUhuUG9ROGw1bGg4NTVxNHQvbytscGpKbWVwcnBuby9LSjE2aWNGYUJEM1EraGE1VUhhLzhqNDY2VzJJZlk0YXl1eFpFUjlFNTBaczN3cktyK2hPUTl3ZStoR3B1VDk3anV3M0IrZEU0bVJNblo1UDVIQ3FmSW12SS81ZFdsTkRQSU9oaWNGclBxRFRVV1o3djB3R2tNY2dYM05nZ1RlQnNjNlEyMEE0SmVtVDFkdXZvOTUrUE9qdDJidnZ4NFArSmR2MjlublkrWjFXd05kbDM1MnAzcGJjbTF5WFJjeGJiWDJ4dndVOUtDdXJvRDRPT2R0eTFRM25xOWxsRmhEM2JRUjFyREpyQTk3MzRZM3lFdnJ6a2RRZElHOUxOemtrc0I3QWMzb1NCTlBWUFBBMnE5YnRWK0F3ZnFUV0FmdHlySEhQbXByczVscUFzK0VNKzYvcVhQS3c4MUZiTDJxK2dDTS95UDUvZnBOV2hxeTFBbWRjNlZnM3hPdkkwNDZOK05uWjVWVWdjdmRIRW5IZkZkUm5reDdtNHF4UHE5TVoxNWxlaCtoRG1rT05SSjNaaVBjdDh0NFhPaVdzRHJHMk81ZjhMczZLalB2OVkxMnVDb3BZYVVyckhwelNjQU9ORDlLUXczanlJNGw4OEczUWExVFdLS2pQYXBldFBKVDlDbFZ6YUtuYVE3VXl2UFU1NXlpcnVoSy9lT0YxQ2VXbFoyQ08xSjNHUElyRitHV0s2ME82MDRaUGRPNTJMMnZ5OVpaYXArSnVlOWJjQWMrWWw4d2xudVAxS1E4OEpJcXpoZmg2RC9ObTVYMlEyWEEyODMxMGdMNnFyZlJGVG5GNFl2NUZoS21FMmxId0VQazgxakNDeDVNbURXSzBsWWRTd25sUzRzeDB1K2VzeWRPZjQ3U2hyeHZjZ2RzZXNqVVhnVS9DWmgzMWZwcitHQno3Sys2dzRBcGVaZEQ3VUhFZ2VCbExEMlBpYWhhSjBzRHRmdVRrSFFEM1A5TXBsNWdqNk1HSW1MelJBNmZmVGlCZkwxdGFEKzV2dERsWVBER2MvNXExVHM1cTIzMmJCVE9tbS9KbkhoV0xCWDIrSHp6dzI3cGQzdkhkSHN4M29NYnJBSTczTGdGZnI0bkVwQ0t1Rit0LzRtKzMwanVVOVp2b2I2YktoMlM1YzFaampEOVExMXY1alpJZVBmYW9xclR0dDBVdUM3MDF3czYrUjMzVVl5WGNCOWVnbUx2Z2wzNm4vcWZtOTVKbmk3ajdmeTcrUnBjWGN2M25jV0RuQmVoaHRJT1A5YUJmcHZ2a2tGWGRNK2wySE5HVEJOYkp4OU9keURnNklnZEQzUjlIZkEvVk11RXNmUkRtNFpxRDlzK0V4UlJ3YjV5VE1OaEJQOGd4YW04MS80NnVsVzJsYmxaSGppdmZ4eGpQajZZZmFidXZ6cXM0OGh0OC9Ydi8vVExtaW5yYW4yeHIxQ1pVUGpHT3hOek8vdUp6ODJOMnR3QlBwbkhDbjJhdFRkNkpDMnViUnhQa2JmU2VjaVFIenphNDkrNTVPRzJwV2thRnRWUHlYQUd1QTR2WjJCbEo2M0ZRcUhxdndtRHZKeHozb21xUHlqdDEwRjh0bmNtQjFxTEJQMEdPd29vNE96QXVaNnJoMTMxaHFQN0M2MXg5SzY1dWg4d3VqTE56N1lKL090ZHpJMDZNSS9hRWVQZEhxbkJna3Z0RSsxcGlFbmw5bk9lYVdqTlE3STJyck9NbDd2d3VjdDVuVHBSNlJuWkhsR2VwcGZRRkhzTlArSnFBZFdER1NPL28zMnlNNTFkcmgzU3lUbXZ3NUo1QmpsalRrTGw0bzBPWlZlakRULzdKVFd1TWVGZDA1ekJ1Rk9Tb2N2NkkrMHU1REl6em4zS1YzTDA5YUYrUTdtM240cmxRRi9nZ2JiaHZ4eU90ZmpUNVFhazZhMXgxYmEyYnAvWS9ZcHkxTnpMb1ZZZzFsemFlL1k2VnV6OU9pUnUwRXNMU01NOCt0VzdJVytxUTdxZXRKSFIyRGZQN2xyYm5kYnptUFFtdC96OTdiOWFkT0phdGkvNlhlcTFUOTBqQ1JBWm5qUDJBQkJLU1FUWUMxTDBoeVJZQ0NhaWc1NDc3Mys5WWN6VmE2Z0E3N014ZCsrU0RSMmJZb0dZMWM4M21tOThIZmxyK0xCQjdramtFUERIR1dtY3pqcnZSMzc3aG5CdmxhZUo3bHhpZkE1bWIrUG5TQmUzcmtZSjdtRGlOQ01JRjZyY0pmd201TDZ5eDNMWVVOZUs1dk84VGpodWhqMmtGUEtjNFpnVWV6RlVodDd5Mjg3bW0rV2RTKy9DZ2RnZjdtZmJ0RkRRcVNOOGMzMjlIYkxnS3RlUElVZXV3MFRsSHllMzhjYjUvblBTazkvcW40YkovR0UyZXhJK3NYM001YXIyTTcxeWZmSGJVdmZjY2FBMlFmZGZ6cmkrOTdpYzQwRVpMbkg4SjQybS9NN2pKYTNMYlg0SytUTm83UHNNNkhLTkFDakdXY1NKZmVXMGh6TTJ0aXI2TGM1K2tIcGkrYVdicUV5N1BBdDl6UGhZMXZDS1VuNVRuR2FEOVVTaFdJdXRJU3cvSWR2azBiOUpmSGFjRkRxRTJsd002YitmUXo2THVDQjZXN3lXaThjWU81Nzh0VG9zT2N3RlFqZXdBYXFDR01GZTRIQWRnOTRnZUVYeUg5Tk5tZHByM2VmUDlpUFM5WnJrbUNzNlBnYi9IYWtqd3R6TG5ZYzdaelBXYUZzZVErRmZrV1RiRW53Y2Uxd0Q3aXJTWEhPSkt1aWRSZkphUEY4WGs4bmtDbHVzRHZYRThWM1djNHFDSFhKOXZuWkNhQU9iOXAzUFFDaTY4UnBaeGZTR2NUMVRiaXF4RHp2Y29hWHk2aTlTREhDZmdlTFk0bjRDNWVieVdjU3oyd3Z4RW4xOWk3U0F1VHNxMXBua3RMenJHck84UXJYVmZBajFuRnVmbTQ4WHI0ZkYxSlB2Zzgzd1ZITTlDUGg1UHNVM3cvQkNuWC9nYUFlYkY5U1hJbGVKclN1Y1YxbUxySEhJdUh2RUlmWHhjdjJWK2JxSDlTZm8yOG1zVnVHVEtXbU5GYlViRytaTytBV1lKK2pZaEpnaWNkQmxtblp6ckVQWUtPWDk2M1JPSno4K1JrMHFlYzBaN2plTlkrVm5TNWkzcG9HaDl0SmZXUksrZXc0NXpHTkhLMnNJY0lnRS9sd1VNcnZ3RDkxMHc3ak9tV1VCNDFOQm5Vc0tod01hSW5qZFFBNWJRZmNSZElJVjcvRy93VjNCL0V6NjdpdU5aMEhJaDlRK1NPOEUxS3J4R2hvbjhqRFhGb0VlNFJUUlJtZDRHT1E4QnB4S0JUYXh5aVR2NVdZOTgySjNucFB0aTdaTHdSelR0U1RoRG90RlVDT1BaeXA1YU5zMmY0YytpY1JvNjR1Sk5FWGMrdksvKzlCbHVsR2xmblZtemRzK1p5T1pVYUJ0MnZ6TjUrTXdxNitFeUxvenpBblNxV3Nodjd4em1yblVrZWVWcjVCanMzQW9sN0NlRWx4SUhEY2MxeU9IcmtMMjVSS0FUUzNtL2VEeWllUXkwTStUTENSYm40anRud3NrTDlWYXVEOHM4UnE2eEpGcmdSYTJJSEhOVXk1OVM0Kzg0YzZkUHpyK3piUGZ0bDdHNEt0Z3RVdmN0eENHRUw0N0g3REwvbnZCSms3MVg1dldFdk5nNnpOVFRmRUE1ekRwSnBLbGJXR3N1amgyYmRPRnlYVFNpTmFkMTFtSHB6TTU5WmJ2Y1UwLzFIY2tjSUh1aVFnMGhQN2RLdmFYSlF6d2MxQi9lUXM5WWxpNUtOcHBweFF3ZDhSaGtxUkMwOUgya0xaQU4zT0Ird2hvdUVxSWxPWGY5bFBGTjRQd0d6ME5hMEVxR2VBKzBHRTRzeDFoWnkrUmNpVndEOXc1SmZsWXozc1U2WC9PZTJJWmN6d1RYajAxeEVIdW9XNkc1QXArcmpmMjUzSDlqK25tKzFxSDgva1Y5SGNLM0ZUSWRNTHBYQ1A4aTNpOGJvb25LNXR0RHo4RmgwZ05YWG5pdDhZNkxwVEJ2T0xiUlJQdml4T21TaTZubm1wZzdkZ0MxOEl1dUdWdWZhRElNRTNsRW41SER0NUw1eGJ5OCtGcjJJcFFBSjVIZy9ERGhEOEk5amlMMHlEbGxiWHZtMCtVOXpTdnpkYnJ5RGVzaUkzdks3WGR4SDBqdGJhUjFMaVhPcVorQmsrNENMV1huNm11aUUrd3A5aTNwdkQ5d3JkTnYydWZaYktYMkprTDZZbDBlamtmSy9nU05zOU8zZ1lYeGdBcS9Ub3BqSHcyTUJYQnJNSzBVbmJkcjlIdGJwdUZNdWFNNFA5RjNGNlJIazlYMW1PWUs3dW0xdHJoK2E5QTRROHJ0S2NhQ3NMRUZ6bnZyeXRlelMzeit5OGdSUmZSNXpLK1I3emtmZUpPTkxZb1ZjSzJsdTVrRFgwMEgyZEo5ZUZubGRtY2lqOGEycFU1WHBzL2RxeWJuVWNCYjBMNkJoOFlXOERNRUkxUGlZSWd4bm4yUmVnN2ZhK1hGYzhsT0NYOEUxZEhtK2djcTg0TDFjNW1PbzdnSXRCTlhoMkpqc3lmekRNOTFzK2VGdlIrY01jWDN5elZ0aURhOXYvWEkrMHhtYlczSzJYRElVUTg0MzU3aktjN2pwcTRJZVpQZXFrMzlmUFQvTDV5UHhlMDVQQjdnTjRxUXkrUzBiZkR6OUdZbnZiZHFvNS9oY3ZYQnVGNVc3Wlg5WWl2eXkxUzBER3VWOXNhMlpVeUZwL2dUY1gxQjZ3UTA1aHkvRFhpZXBET05ISjJ2TzlKY01kYklHT1JhSnlVdXIxKyt1NHJEbHJ6d2VKd1NxVXZtZk5iNHJBa2tVOFRjYmNTR2dxYW1mSDFKZmxMdXJjUGMrWG1NdE01cDdwalhvZFErWXQxTWMxSEtRWmUwcEhtZXVUU0RQaFBYUEFHUE91bmZ3UndHRnZCcU1vN3Z3bDdndENySk9IQTU2RFRFZVdyZ3liYjY5cWpRVTVCQUxSSEdRcy84WTNEUmNTOFdxVU9Uc2VwN3JyWEFlbHZkMDFBQkhpRU90MnhmQVZmb2p2aThGNjZIdUZnREN1eEVQbDlWbmlGVnRzZXJzekVUNHRnVk83OThOOFc5TnJQdXlSVi8vdkN6emhIWkRhNHZmR3pQak5IRU5uVmQ3YnpQSmJ0TitsRzZJN1h6L3BKWmFRQTYvVCtyTmFSbUxzb2Q4bjBLR2lzRGxoY3FjYlhpK1gyYnlBdmttNEEyWjVHWDZ3ZzVZVTI5Z25aRHdyanQ4Tyt3RDdQMU5lQURCSDFWakNuSmNXdTZCdmpRaFFmOGh6VjhJLzBkNGNLdVd6TW53T09pY3hoNGJrbFBhbWxzZi9xYS9rOVgvQm5qT20zNnhQTVpXUlBNUHoxaFl6dU9hYy9QVUNuTkw2Nmp2THZTUG4xejhET01lK2VWdDJ5L3U1aGJQNXU3TWNjTExxOEpKL2pBZDlwcG1LWExBcit0c2pnRTBoUEJUT1crcm5kQi9uZjZDNjFKYTNiYTZYM2JtL1hUaVRVNW9aanZaVHdUMWFIU1BRd1RuaWRuVEhtMEJlSS81dm1EdkdZV0I0U25mS3BCUDN6dFo4SUwvc3dNOTlleTUrWGVhMFBlUzRlZXZ2clAvQ0NmbWFKekhvMWYySHk5Si9KWjlXMGdiL0crcEhQYzNiQWVMQzFLZ3d6OGVIVEcwQndBaVRuNjZCeHNZNndCY0NkdXVldW45UHBSbGk0SlYrcTk2NU0rRlhwZHlKTkljOEpmZ1hzZHhjVWJpOTN6WEtDdVBaRTFDN2tpc0R2c0hzb0M2ZzR2Q2VGVWROckxZQUMxVXg2WEtnT1hNT3doN3JvRGZvN3RSVENwbnorZnpqSGxMTVo5ZllDSll1L05yd2x1RHd3ZGNRdjE5T3J6VXQ3TGp6OTN2MC9HQS9QRWtuemUydERPMS9sZysrUzcxb3B3eCtiNnVwTnVNcDd0VmVDc0dtRGZpUGI4YzcyWTFINFYrS0x3ejBKOTAzRHY0N3p1dlJnM0N0U2cwamNONnduNENzRlY0M2RaUlZSanBNUWZ3dkg5aTBHV25xRTNQVk5SN0pmVzFmU3hudzNjN0hDdUQ1M2NuZzBkdWhaUmJLeitBcjhaZm93MXhuZ0FIeThiQjA3REZEUmVnaGFQS2UzeXVvR0FqZUY0N0paelRjVWNMSzV4eGRqTVdSVXZXZEtTSmMvTStyVDR0WU4xRVZpK3I2Yk8xbzB0ZDdFSTBQMm5tMUwvMEhrYkFtOFJPdGZ4M3BzN0k5Nys4aHBORlB1RHpoeHA3dGl0YXM2VzEySG94dFNlTSs1aTE2ekRFY1MzNTBSV0F5MnNPWmZ5WHJIUmtyeVh4SHFyMEZ5bG5pTnd2YlhFTGpsNFBZWWs1K1cxaksxSHNKWEJKZS9KcU5lV0FKMVp3TnVSTXc2di96N3hIOXpGYVk1N2tjVlFtbFg5RDRYNFdPdlZIcDRCKzRYN1hQUEJmcXI1VGlsZm9SSmVLdDVYWTdWY1BsK1I0MmcwOFJpU0dtKzRIckY4Qk1USzNMb2xPTExNZC9BKzRubTdPRjhWOGhGRTl4djZMd0ZyVU1sTnB4bGdxaWFrOTQyN0Q2OC95dlhTWXkwTHlZc25lTitvUTR4NXpIMmszTzliK2M1NVMzdWdTZjcxOXRncWV2THhPRitXTGRXWHB5dFR0UlM1TnhYYTJtUVdmb3FqZXFLcHlFZWk4NFRpclNPdWdSRnNyUWFjS3Z1Z2hmd3pHM3BPQVh1c2tCN0xnU21FYTN0SjVpRFhBTWFhbUZKQmc1dnljR2x0TVhDTU5FeHd6ajVZSS90Q2VsOVpmY2JZK2xLVW92VUIrdzM2UlRvcFBXZnllbENmY3RUd0hQQXN6NGR0R2VuVEFyNmZ4VEhRckN2SDUxSFVMQ3BpaW9zNEpTNC95SHBFTWM4Q2lrdWZoZzZ5V3hheUU3K0dUdDVYWWs3N0pOK0p1UTVvSG43dW1nTGdYaTRpeVM5MkpiUEw4WWRqN1NaaVMwRTdGNDNGTXBBWUhwSFZhSUhQQ210K0hhbldEbWdxdG5DdlNWMnNWK2FaZ1hIR1hBQzRUeEI2dzJYYzY3UzIwakJyTHdKRmh1ZW1QTWdzZDFkZkt5WTgzQlFIZ2Z3aTNBZEQ5WkJEcUozbHZ5L3lES0dZUkN4cVhoQXVOUTZMc00rMXYwREhlSWY3OHJwN0U4LzVNWEtpamE0STU2R0M2NkFGdnZGTGQyOU9OOEROUnI3L1ErOTVndDdmSjdyUy9UbWNDS1RlV3VyUndiNEswWXM1RWQ0bTBNSGsvRmRCZUlHK3poaS83M1FUajY1NlBKSDBXTytkOWtPcTQ1TFo0Sy81VGh2NVRXeitoOVBSRHhnYkJlczh2eVRkczVuSVF5L3B4cStLc0NjNjZBdlFwY0I5b1EyOXU5MDlPb3VLN3hqajV5RHY2RXVkWStIemxURVozL2k4UEE1YTVwWm9GcEExWlJEdCtTY1NVOCt3dnBuMk0zWWxkRWFhUWpCSTM1a3YwVER2aFZnK0theTk4bHJlekoxb1F6VGJhZHhQdGFqeUdnckJvUVNEVlR5YzZ2RXpHUWU4SG5HUHpuRGFqNS9KKzVMZmMzbER3THlUSExwOUlUMmdlUy83d0Q3TVhSWDRwejNISWx3WFZBUERncndtNFJjNytJNEpHTHR3VFd2eStQMXE3QVBXVUZhRUM1Y1hHc0hmTDR4RDhjcTBOeVhvdzBHeE42K0wwbU8vdndCT1NKanpmWlA4K0E5VWNlNll2d0ljQy81QVBtSSs3amJqdVhqRytQWi9VLzRGdmpaR2FpSGJrUFNqUEdmMkU4RisvSnZ4SzBvZHdFaUhMWE1iU0U4SFhjRitKejYzNlZtZ2JnT085d1NlcVpUL3l6a0tzYzRBdVNicnBmQXpPTWRQRWJLOUxma1lLc1g2MVREQk1TM2cwRnVqSXE3MDBqMjlKRHhIRmZnNVpEeUFFL2lDdFhzNHZGbXYvd1B3eWdOcnczT1M2WmwxQkJ3OTQ5em12NC9PSE1pSDdIUk56UURUaHI2TE1hQllnNXJ3RE1NYTZSYTRsOWNCcm9HVDNrK21CU3B3NHdsWUNjOUpkM3FSdDNrYVhEZXhJeTFTejdHaTRiU05ld0xZZjU4T3crUnAvNXJCbnR1L3BudTRobHZ3cmVVQTdxRUtPMTBsZjUvVWNoVUNEeEY5Wjk4Wi82RnJLZkpycXhoUE5vOWN6MHBQLzZHcis0M3ZxQ3QzSXZ6VGtkcnAyK0NoWjRaK1dmaE95MXJNblhOVThLTjdla3o2SitCOENLOGI1b3R5ejhHUEl6d0R1cC92TGdUQ21ieVlPNmY5NnhxOW14ZGpMaDIwZGsrRjJCQmpqL0l4WUg0ejdwMVBmTmRxK1E3eG9SeUJlL2RSMDdzSFFXWS9SYXFRdnkvOWI0TEdRZmduWGtQbzNZRzNCcjZEM2lsS2hacjVsTk5JRzVYc1VmNjhRNGV1YXg0cllhWWsxd3orSHUrVEVIK0ZZZEhuYTV2NTFOQjNpV0kvaXFFaFhHLzE4U3ZZQU1vZGhITlpMWmFmM0hpdWZNSWFqbGhyQWJpUG5RamlDc0RBWitwcTdzYkFzOHZ5RXNEeEdmRVlxZ3pPZnMwQWZvZTVFK0grdC94YWgxdDRteHFORVdiemNUOUhiaGR4TDIydXJRSDJ2UVpyNUxzRXI4UGgvbkVQQXRIenBEdzc0TnVJUjF5N1VTWHN1NE05WFBFYWRkQ0xoYzhYMEdIMFhlalRKSDVmVnh4TmRYNWUwWFB1UE5lZ25Pd2JxdStPWTNQd2R6RjJpTXZsaGJsZFJtZFNRY2UrNEwvbVoxTkJqd1pyMUlFR0thNy9EMGpzelhyaTgvZmlkSVlwdHJmRmFYSHZmS2U5Qmo1Q3A3M0s1em4zTHlqdlR5Z1JYV0s4QnZIelp6YndFdGRvQ2VEZTVjR0l4Tkx5RDI1YytYT2J4VFo2cjM5NUlXdjVEYkRBSXZJTDkzQ2VEWkJ2dnR2VHZrRnpPZWI2Z2hadGRGWk50YzU2Q3BoTjgrUzV4cFZ3cDZNOW1mZjZNRDRDeW90QWNabjVlc05uTU1GZjVUWWMrWlgwdTJCamNKOGE2YmR6bnVMSklEMzVyakVLcEFnd3BZWGErZTFuQXB4WldOSXQ1bnI4Yys1ajRLK0ZYbGVDMFdabjNzcDMyZzNYcitiVU9PN0dOZEhpeVhtc3B4NWdsQWszdkVDMEhrV29meUQ3bHRkV0YweERqZmFzRnZmbWpXZWlPQXlENTU5SWdmZEVBdHhxazQ3WU5YS2l0ZThTTG1TdXgvczk2VjRKTHErRVk4STl0eVJtVGdPb05lQjFYZGJXSXZ4dC9ITVU3RFBYSDNLbHVreVVld1h6Nkl1aUo4WHhyTy9MVnArcnBiT2NhWHJWK3o4MzAyUlY0SEZHc1dlNE50T0NQU0k1eHJ4WGxzYVJ4bUtPOXpIZjIvRlB2ZGZIdUVTaTFUc1daWnRpOHpEZm9Ya0U3YUxzaWZhbDB2ZmRNaHdMV1Vza2I0SFBtbE5CMXhDZk9Rcmg0M0hhN2ZMK3l6VVB6UVhXRVZlSjNqN1RWampwaWhDUHBqTllaMkVHUEQzMFBOMEUybWxQeDRQWUM3THY4UHh5L3YwVTV3cEYwSXJ3V3NhUmFRL2xjVms4dk1qYlNMUDNoQWM1eFdjajFBRHE4ak5id3BHMDhMWDBpVnNmRjk4aEdPVXNYZWUrR05WK3dEYTdxQytVQ2o0OFc0bzFqU1pQc1ozYkJIS0dGM21hT082MWVxNXpYa2QzUW5wcTRYbjR1bUFwN3dEN3dXaEhXakYveFBQZjFlY1cyUFBUL2czV2Y0ZXU2MmRZdHhhdFk0LzFCLzNFK254dVNQM3lJcmNQcWJYN0dITUJud3RiYUd6VlBjY3pjb0RlRjl6SHdlSWFYZ3N0NXkrSWFGNk85dExrR281RnpCbTE3K2g5MWdGNmRnZXc4VWVtcmJRMkJhK0lFME5yL1RvdjhJeU5xWDlXNEE5OFUvSWNYWDR2MEVsaFBBczQvNFhuZ2VvWlloOEIxbmorL1FGbjAxMFRhbnI1T3NUOTk4eFhJV00zZExBL1c3aEhiM3g2bVpKNGs2MTVFZnYvVHVtZXlIWndlYlV4eWVHQnppcmtQMkcrMEJsd3hmRWFqK0hDZFYva1Y0Mm15UDVXc0lob0Ruc3pkY2J3MWcxK3pjWjN6cWZTUFNuUC9UWklXSTJkOEtGYU9ONVVGZ1E3M3NaYURRT1pyTVhPYWVpYzA0aXZDUUIrQW1NU3FjN3dNK3ZOd0h5d2xHTnFEalVLRzN3L2lxdWd2U09ZUzYyN0NTVWJhamhlYTN6d3VMb2Q0NW5FK0wrZDUyN2JoZmU2YmlqM0V1UjlDbHJnT1BkK2lWQXM0TFF4cDNQeDJmZ2NBcTFuWFh3SGZRYjJJYTN4NGZPMU1KN2RCUHJpQnFPa1J0K0o3SWUweHNjbTJxVEFBV1F4TGNNd3MyRXVjait6bmVMZWRZaUhkajV3dkpFK0Uwbk0zNWZseXlsbkpzZExCUG9FbGZsNFRGZTB3RG1XWHN0ckVhMXpvdk4ycGJ6Z0hEZmd0cUQ3eU9Ha3ZaYTFSZXZvYlVMSE9kY0dRYkdIcjZWTHdpVkQ4L1RBWjBWcmdzUy9JWDUzYnRNYmVpZkZZQTI5NnoveWZRLzUyc1NqdWZYQ3VMZVBlcEpqVmttTVNUak1jcndlNDROa2ZqM015N1oweHVNZXZZbThEcVFPK0FNNUxncjMyZnRPVzVxN3hqSElSTUpuVU1DL1VGNEgwSllnWE5WVUorbEkrbGdLMkdDT1h4ZjdEVDA5TG1ORUFkdWpxWFZjMXNBeHBJTXVRd3A4d3B6dGFQc3VXdWVsZWhiRXdqN21ESmJpbUhBbU1sNWQwdnNOZVFqT2Y4czVITmZBOGNoaVNjODFGNkhTUExlMWMxYlM2YlFKL3dXcEd4MGoxenBGYnM1WlJzK1VnZ1lXOVFGeC85YVMxQkRST2ovUS9rNmlDMDI1Y01wMkEzTmgwTnk5VThBdTgvWGpYTmNkNXduVElPdUl2aFFURGxPczlZMDV2VG9IWFZrc1NqeEZSOXl6b1Y1enpTbWlQVkNEMGN2MUlsQ3NZNHJRZDhaaHlMQitBdWJ3SnJuWjNPN21tQ2FpTzhHNDR3azNsckJ0d3ZGVDNqR3VYb1A4WDY2UEFuUzJPQTVvd0NLRC9RZStzUXptam1HNlNtTmZyU216WHQzdS9wV3JrM0JZeFcyUUFiWUM1bVU2Njd4TWJPdDF4dW1jMStrZkRhZFBCZjdqNm1jSnYyQUM5K1Y2YklGemNCbG1hUUt4RldqRTVQb091SitKZmpldnQrUGNucnlJUUJ1NmtYKzFqV0svTjZYVWcwUzQxSUtXTFlRRFcrQTQ2Q2h2NFFydFNXeC9aMXdQSVpkcnVHN3ErRHhoREljTzVhRVRrd2ptVVdjNnlhK2F1Zk5jOC9xYWRIOFNHNER2Mlh1S1h3Zm0wVitQNlpyNHA5NDdYd1BKRnpoOXAzL1c2VHZsYXhqOHpIM2cyS3U1b3dxK2MyNWpyQWZUN1lRWUNuQ2RoRXVMMk92Y1R5V2NMbkF1QTZkVVdvbFg0Wm5xdnhOVEhUenduYkQrQlBEdzBwdy96VXV3bXFSU3FIWHlXaEhFait0dWdLOUpTdytSMHhGRDZkem05ZVp5bmJFU1pyWHAvWG9qck9FcHFUU3ZrdGUyaStOZjRBWVpUVDFrRDlZZTlYT1ZuN1hhWUp3OUpYbjJDTzluemtiaTNLVzRSMmNYWUttNXZsU3FkVUxqeUJ5UHdyZ055Wm95MkxoWDM0bnk1ekN0cUN2cHVjengvQVZOUU1EVlptWE9JRHAzSWM1RDdYMG5XbmpyVk1qempFelg2Qmk1SnJKVGdPOGdYUCtWbWhPZUF4VDNkTThqUmM1N0hPLzIzREIrZ2R4dWNGd0VSRyszaUdHaFBmV2tYaEJtOXRKM29BNEs4VGZQUVVCMWpEelh4UG94eW9MVThORTVIMFA5L25seUt2UW5lNDZQdVVpSjVxenZtZ0xCeElIZUNCZDdYdCtjOW5JK1FMNUxSd3g1ZmdFUzMrSmNHT0FDcnA1a0h6elhBTDRmVXZ1Zy9JQlhyb2NZOWxOWno0YjBhVzBwTHlEdVY2N2pxMmxmSTQxeUUzSDVCNDVEa3U0QmZOWXkrNHZ4K3pWMm51WG5lTjF6aHBjQzNvdmlkOTFSWlU0b0gzbzRzSzl6L0g2YkJxNlBBaGNFUEtmV1NVUENtVTE0bU5KZ2JWYTAydXFldmJxM09OMHh5Z3NLWFAvRlhqaTRsaUlpLy9nWDlIRzZlTS9TZW9PdUxKanVCcHhGR2NNa1hTUEhCSnhNcWU5RndQNWNSVmNRK3FYTGU3WmdCekdYMEtLdWZ3N0hUeEU2NjFOZjZXN0s5cVhwUGNwOEVmejlDRzhueDBGR09BWlpqRVg4S0pmVitQYzhkM3g0S2ZiS1ZPZGxYTmFGd2p6alZMc1ora1NnenphM2g5WCszVHkza0hWWTNwT2N1MGVtMnlCMXNraGhuTVhNMXkzejRvYTBGbzA1ZGZZY0J3ek5JejdpV3pDZmE2UjBUM3F2eXpUVjhia2hVais4eXZIS3JZdlJjaVlGamg2YlMydnZKVjJKY21JODRvTXdUdXplNklLdThhS0ppZDd6aW55djlBekFmTE04ai9IQ2s5QzgyanVzMFZYc3I2ZjV6amZLZVpmYlpwSlR3SmdqYnQyanNVTG5aVkswK2VWOE90UEd4dnk3V0RkUUNKQnZBL3dxYUgrWm16RHJIT2J1bHVUN3NjWU5yeTJSK3dnVzAxd0I3dDVMem9WRXgvQ1oxY3JQcVVkOFU4Ylp6TlgxSWhmek1jMkxXTGVVOEhpMGMyN2dnbVlJeE0zWTd5L2tWMEYzanZTNDB4aVN4STZrQjR6V0Z2TWFMUEI1UVg4RnRnUG9uTmxFd0NXTWM4TkR5WDd5blZIT3NUY1lRUzNjYzREUG81WXZqNnhIOVBuTDI2UzZqa1pPbEpSNDRYQytaWUJzVzNzUlp1a3hQKy9HWmY0cnlyTjRoQndmTjU0QmNGRXhqTzNyVkJDNFBrVGpFclFNb2hPQmRVbDgxOThTTGQyRHJoYlhDdmp1RWh0bkZET1RQbWFUOVJoaTNVQnN0d3E1RDdMdk1UYVMrWFdGV0JmOFU4QzNGOC9JQVBlSTc3aFliRHRNNUZmc2UwY0ZEVm53NFNqZWlzV0R4Ykhpc2F4aDFnRitJSjUzZ01YS2F5TWwvTjlpbUs4UE9yYVVKNHg5bmx3WDRpaGtxNG5tekNWb2RmUCtXMTd6djRqRGhKNW1MaWROYzA1RVMrUXB0dkhZbzN2UTNGaUt1WXJUYXdCNjF6UjJ3YjBhY0ZiVTFRN3JQc2R6U2Jld2hsYXhkNWp2OXhENW1KUGx4NGt1SXRaS3lHTTZaSnYzM0p5bnVBK0YxUkE1M0hSM2svT2xyK3BxbnJtZHFOVFU4QnBqdW95Yzc4MnQ2U0p1dGx2VUEvWnpyRDZ2MmZGRTEvUFF5VG1KUjA1WTkzeXNqeGZyY1JEZVoyV1JZMTU2ZlpKUEJSNlM5Sm5pY2NxY29QemNETGllNlc1QkR3MXphbU8rMEFYWGI4cjRlS3B6bCtNMWhnbkdtYkwzNW1va2xUN0R3bHBSQmIwM294cEgrYlVmR0Rkek1pdnlnUTRLUGRqY09RUXh3bTUreVdPQ2tyYnFyb0J4UU9jNVlKOEJYd2E4R3VnZCtWdzc3ZkdBbUE3T0JCSUxBZjhSOWd0bzNzU2M5bEVjbUF3VFdROWFFYzZKRDNnT0ljd1JYcXJ6NTdFbnhBSTB6aEZ4bkpQTjRwRWpKdGplTWs2SXlqb0tCOFl4MG43U1dwQVlhTHQ5Z0h6WjN1dzh5c1Nrdm0vMnZBc3ZSUE1oeHpGbmtkTmVjaHFGckZhQU5iTld4UGVMTHVRY0ZsRGNoc1lIZXZCNERqR3RRN0R5SlJ0V3pKRVIzRkc2OTVIUHBFQ1A0b1Z3MTZSNWZ4dXQ0YkM1ek5jTjBiWmlaNnVXY3hxRkpEOFJhWEZOM3ptdWtXUE5ZZlU2SnhoSERpZUxjVE01djlZVmF5ejZlSDFCenpTWkw4WnhZbTU4QjQxSGtUZWZYaDl5MzV3ZW1TZVp4NUR4ZFAyc3ljOTBrL2xnazVScmdJMnh1bUpzM2hJOTV3T0htbVAvTkV6a2llZWsvTmxCc1NEWXg4TDFFMXc3NnB0anUxekR6VGxjME04cTBCalA5WUxGZHBoM21PVDljZTZqeE1YS2FsTmhTMGJ4Q2VUM0FPY1c4enpESEdlekEvVmc2RStsUFVGNFRhbENZVTRZVnhhSjQ0aStQY01CYytzRk5JSzBjejYzcEQ0VkFwWTl2VGJFdkpqM0JlTVdNSGRjWmd1UlpLZEIwajBUK3l5T2V0MGQ4cWtpaWVpdGNWeE5ZQTk2L2ROSUlacGdWT2RXYXg5NTdLNnVSY2RBR3NkengwcTl5Vk04ZFRwWHd0OThDVGs5TEpabktmanRvUGQ3SXVOd1FYUE82bUxBbTJ3ZE9Ud3VlaGFxWHd2ODMxR1dYZ0twdlNlNWFKb0RJVHpCd0oxWDRrV2dPb0k1cG5vKzJNU2pLYy9oek52TXRLd1BTL0J6UHB4eGVuOHhaMmNnajU4WnlKZWdCWHdKeUlZc3lQZUtPdXNGSEVOdVgvaVl2YWdmVTlEdEl6WEFVeVdmT1N4aWJoWlIxdG42VklNZnI4OXlYZ3lkU1V2S0swWjBQb0h6dk01Mmd0WjcxcUY5L0Z3dXNvaHY5RnovT0hkNHZoWDVHaUtiNjlacE9DRS9yR1o5OE9OYjFEbkJhMXJxSERBWE9lYitDQWFyb2gyaE5iOFRoejlGc2RWNlJQY2U1Wlc1bHE2L3kzbE5zZVk0VjdmRmVnNmFlaUs5RXJxVGtIMHo1bmp4c1o0bnNWZmdMeDlEcUwyQ0xpbmdveWdPcXFEbFRjK3RRcjZWclk5R1BuMS9rQjQ4Ujl4NkYzZ2U0SHVobkRuRFBJNFJNSGRUMFErZXFKdEsvb2JQU1FJdlE2WmVmZEIvWWJZMDd6M0ZuRnBjREZDNk52Rmx1WHNzdkpZbEFtNXZ6TmRKQ2M4bzVUdWk5UWRpODNpT0RLTFB5dThWSTJBYzA2QnZDNzZDWDlDbTVHSjZZdk94WGFKNjFLa1FhV2Q2cHRDekFXc3pvakZZMjllM1NRR0h3L1FQZUM2ak1PUDU1ZEVhb1gxbVZqdkkxUDNjR2UyUjNTbnhycmkwSngyd1NocmtQMXRoaG5Qb21CdEhmYlVTT1VQUE0xUnkvZDRDN29ocFV4YlhRS2t1azJHOXlaeFQxMTlEemhINHZpaFd4bFJrYzV6d1dveDhELzFUbldaa3N6MkF2cXRVS040L3h4SE53YmJnc1NQNlN4alhnckdkaENzY2JFcGVRd05jR1ljZmFNbmJ1WlJybUhsT0p4dTZSa3AwQlBmRjY1NzI1SjNyNTJGQWZBam93N092dW1yMHgzK1AvY05qSDJaV01uU2hoL0hSY2FkKzE4aEtaNFdZOW5sZ0FwN0JjeGNjUHA3bVYxZGNqR3lKUVFhMklJOXBHQzY1WCs1MzIvcWF2U0E1Zjl6TFF6aEdzQjNMejVxUTd5dkMzSHVBVmVkakpOOFJXSjFuN3JRbEZNL05RVitvb0l1eHdWajBuNERkQ2pGbk50R3FJSDYyb3g0OGlYR1BiM0xzT280cHBuM2ZCbDRWb3IyTjR6YmlUeElmaExOM05maE1aQU5sckRHVWMxKzlqbGRiZFN5T1l5czExRmtOOTJiUnQ4eDkzbWdRSGZHNEU5MUQ0Q0FRVTZML3hmS2tGSmVHbngveSt4akhvdUVjLzB1VkExYUVPQytSZDRFVUxaQWRuR3RDN0FPT3BuUGgrOGU1ejY1OHgxeFEzcEJoem11eERUQkhJc1hJNUxHTzAxNzVybkdOOFBWYU9VY0ZjQVNWM3dkeUdSeTJsR2g0NW5uK0psK2N6QnZ3SVRLY0d1QTB1MC9RcXpMQW1Eek01M0dLNSs1NGplTUIyaGViYTJ6cFBWMDBKNWhmdk1MUnl6UlVhVjlwQ3IwTWMyZFUyTnQwclFkYVorMjV5RDR1OXFEOUFCZ2dmeHUwOUlQZWo3WlJ4dm93eWo1TzNzOUh1QmpKdSsyb1grTVJqaXJ3MVJ5VCtwaTU1bnVMYWtSanJreXZSYkJOdU1aOEtQY2FSSkxhcnVGNE9BOFRXY1o5UU5ZeDRQcWhad25YaTBXeHJMMCs1cDV5RjhBZkZ2RzhGcGZ1QlYrTEh6dXJyYXRkNG0rcU82K0ZheGsrWUh1NjUrRUZldEhmaVkvejcwRHpSVmM2SDMyeGswRi9iRXYvTmVMNG12WGVpT1pWNzd3L3RqRnp4NHRuU2ZlbnJuWWZ3QmVlczJpQ3VYSHpmWkplU1V5ZHh4S2drWTMzSzNETVVWNTVySEY1amh5dzZYVjdrYXgzM09NSFBUbVRFbzlySWE1Umw4aVdoZHpuZlMyRjJsQXg5M1krK3BKNkFkMWVKMTNxbW8vOHcyTzRyc0VrS2J2OWNDS1FILzcvNGVkWDZkLzc1NHRRK3N3RDM4bjM3ay8yTEluOGs4U2dHK2pOVUxyeE84NXhublJ0QWZ0WEg1d0FYenk1ME0rZzc2Z20renY5VGwrSTU4Qkoya1hmeVhWS0xyLzUzQTk4Sjk5VFVGUEU3NG1mVytCNGIzNWlHNU56azd3cjNZczVuZVZjSmVnN3k1bDQ4enQ1Zit1dkw1K2o2bmZZT0tJeDVwNzcvTUp6ckF4T3NkbGJ4Yi83cm4vWmV1ejFUL2x6MC85dmZ0ZlJkSHo1NEx2K2RldHgyajNSNXk2OEIzN1hjK2xkaFpkSjVWMnYvdzNYWTg0RnN1ck1yT21HWUduVkpHajVLZXNSR0VTTDhDSWZ2YlcxbUR1Z0laaThBY2ErZldqaU1tRmNtblhZVGZEQndUZEE5dmpnU1l1OTV4cS9kRVU4MEQ0czZLRkRQa0ZTNEJsRVkwZTB4TVJsb0szaVFETCtEYnlDa0V2dW81am5XSk9mZnJYN21DK0pZSVZ6WDhkcGJ5TU4rbHM1RHVhdVdLM2JSNWhyUGdQK3AyU09ZdnNCOUNmQXVlTkpSVngyb1M0N3dUYTN5ZjlxOGhFSkpuOURjOEZEbkY5RE1ZdEkrcEVJNXhDdWNmak9lUkVPekFJWGVYNk9NUzBEd2l1WGp3SHRhZmExbEdyUm9ma0ZIL01aMTZmVGt2K1Q0ZGhsZ2ZsWGlQL0huWm5Rei83YUU5QythY1FNNS9WR052WTV0aEw3QzJROHhIdzhldjJEM3UvemZja2Noei8wejFBT3NUdy9DMXFpYXJ2cTI5RWVCc3pYREZoSjBtTkY5STBTeUl0TGdOV3RpemQyL25xMng5ejM5Q3p1bmpsZEYvaTdyOWxMejEzdGNmOU85L3doUHFhKzJyUDdxV01CSjZNL0djOGkwNXExWncveXZWYnh4TGxPeG9MaWd0RThoSm02NW1PZTE5eUhMZHVYeHAvcXZpTjlCWlB1SnBEYU8yUTduckZQZVBHY3FOQWJoT0o1clBmV1ovRVkwM0trdlh1WTc3dXNJd205MnlFYWE4Y0hqWVJvRUtYSXh5Y2N3L2phRXVPS0pYR3lsWlovRHh4RkdMOFArNHpFOHp2ZTE0L2NFWDFXVm1zQ2ZoMU4zUVlUR2JCbnQvQmIxdHBZK0pKWTd1VmQ2Rm9iZU1ZODV3UTFTUEJObVU0WjBmQmNqMmpmSzhXQU02MXh0RytlTlVPTStMWG5tbGVzOVkzOTIwbG03L0U3ajNaZ0Q5WVFHd08rK3BubVV0Q1lZKzcrVnRBeWZnVmFaK0VQUm9kaTdhSFA1cWFBb1c5WmkxelhpV2pkVk93bzFzWElmZnJpdXNNYXVBVitOTnlqTWJDdmM2NjJBMXhVR3NWanpPaTg0WGRvR1NuR2RDRWJwYTQ5SnowVWE4bld4c01hK3FUMmdlSU9IMzFINU91aGZBOGJ4ZEJNVzhZaVNHVFpieGtMWWxOSmJxZ3JESmVNUzQ3VkxVZ2ZCZU9QOE54eEhLNXRySlhEYzlrbjhrSlhqRTNRR2ljNFIzeksrZXh4TFpQcXBVSy9HajE3NitxWW5tdUNOaVJ3Rm1EdUN6eEc5V3NQNTJrZ3Q4dm1mZ2Y4Y1FycDBTdjJzMVg2YmxsdWNUMmluQVpiVnVla0d0aGtiY0JadythSFlPNWE4cGJQMDVmN05VbXVobWpoUjZDRnoyRjBMcjRUa1hxNFFYaFl6OGM1MGRubDNvbmp1WldmZllmbzlPZmp4dmovZ0l1OXpJbFJ6TVZzL1FUWFd1ais0M0E4QzRyZHFZdzNwNVdLc2ZvL09kdEV6aCtjbTBoODE0S3pPZFRPQzArYWJYTk5Tb2J4Qno1R2ZLYWNhUDNpNGp1ZzBWK2VzMk9nQVJicmhIdHNtVTRoNUc5enJYVDVFa2dtT3J0M0dLTnBMMmkrSXovL0NjOEcxT0x5L1FmY2d4WHRaUTdEWHJQWGVZeVdoL25qMFg3TU9jOUlqMmxkbjE4eFo3YkF2Y3k0RGdhNkRyaVdNcTc2bnNoL2FPQWg1emtrZVN3QUhYdWlndzkyTWVSMExvRERSMHNCWDF2T2VhSC84cHdxMlArUTIxZy9lNXVDUm9YV1dlcURDTTNwWnU1Mmk5d0dVa2NNb2M1a0hna0hGcjNIb2NBeHBKWjF3dkljTWJuZUNQbU5iNEFOVDNkK1hiMnVweCtJVnRlQllEc0JqNG5uaVdncFRDcjJFdkpBV0V1UThFOFJESFh6K29jWWFCdTJUTEcyNXRwRDUwMEgrZFRrdXFEamZKazdvTGRYWThkT3ZKWmhTdk85RlY1UG5Qc3J6RTJ1eWNibjEzUDl0YkpHQisxSHBENFQ5Q0plOUtiOFY5Vlc4bnBnYThhOXlIalNRUk1mK2Q0TzA3NU9mQWQweG8rRXo3S1FpNjd6M2JoOWpMa0FNSGFLNjFmRTJzNmVZMEMvQ05GT0l4cjdtRk92M0RmRWVscTFkT1dESHNaUHdMZm0zQ0IwdlZsWHpEUFdFWEcvRktjaHh2ekJlaDhROW1RSnE4NWloRzZsbjVoY0k0eUQ3Q2QzRDNFYlpKaVBvYWp4VTcxZkpLblhpUExUay9PSnppKzhEMXBubFQ1bThPZGh6SWNPNFVLWU1JNk44NmduNzcyWTQ5aDAwc01jeFlGbGZHTFRNMzMyV1FyYUxpTHlUMU1TaTNEUG9qNTk1Rm1vcGc1b3pFdTRaNWJudS9BZFB5dm9FMnQwZmtVNk53Vk5wS0ZybjBLTllIZTZsVEZDc1Z6cVp6NW9ZK0x6aGJ3M1B2K0JBd0Y0OVFCbnFLN2gzQ094YXgwM0U0d0JqNGRpL0t4RW80RDI5SFZ2emJIWjlxUnpPblRFYlpEd3NadHNRdjBETUF0MkJ0ZzR5Z2RJYlFQeWZYRzl2akRlUTRYRmxoaFh3R0V0OUFFZUl6N215T2VWY2hXb3kzbXg5NkF5N2w0clhRYUUwMEx2NldMbHVWMTdYK0xKdmZydStBajkzMG9IODAxSm1GL1J6OUlVT0cyWnpsS3VRMUhBNTZ5TlkxRFN1U2ZjRXl1S1gvVXdaOERTNCt3d1hlZERoODQzNXE0S0pXVFB4V3p1Mk9pOHdocDYzTHJoNHBrS0htZ09lUFM4N3l2TUlzcEJSSitkMDIwcTRHc0lIaUkvbTRlT1FmZlh3bGVnTDU3SDBkWnp6UXhrOHQ1NS9RSDJncU91V0E4WmpmTm92elB6bWFIdVM3R0xYRHh0am0wWDE5RFJlUmNtVEhOMVY0Mno4RDRGM3JkYzV5algwZUp4TVN5MnFQUkY4VFg4Mk1POVIwV2VoNHQ4SWh3T3JIYkN2UWNlTTRKTnJhMnY0SGRpR01nQWMyaFUzbVV1emVJUTk1V3duQmZqQ3FyUnhlTmpKQjVqVThTZkxqQS9PTGVlNTA3N1FISEloWGZDejFtTGZXVnhNWWRSOWpFR2xZeGZ6c1dpcjYxRktPM1JYa3Q0M1NnZTYwak9YdHp2bXR2OE1wOE93Uk9CcmhIRElsZGpNMnNiQWc3cDNCNHFjaEtBNWlpeVMrZHRzTGFmU0sxYUN6TTdIYWRtdjhiWDlsbC96eUN2bWRQNGZ5aWtyOXc4bzNuY0JoZTYveXpNbVlSNzh6QmVDUEtsS2JKbHpIWVEvN3JVWjJ1c1F3bTRPS3FmVDVoMklEb0huZ3I3aGZHZm1LZG9RbmxVV1I2VnpMdDZMZUZlTVBhNm9CTlNFenVvMEg5SjhzK3M5K1E0ZDM3eWV4djQ5TU1COHEvOERQTExnMVU4VWs2WFlXKzhNM090R1RhR3JtU2VJZ2ZiMnBFaXRGNldWVnc2MWtRcGppM0ppNkgzWFBpWmovd2U0VzNTUFE5N2VjNGR2aU4ybHVIQXhtUFI2KzlHcDhvY1Q2SHZ3RUZ4SWNNazVWZ3ZMaDlWOTI0dnlxazk3UFZQdzE3Ly9NTEh1SkwvenViZDVwOGgzbyttL2FaM2JKejM1dmZGOStiZUdWL0RMcjMzdEF2M0xmWkFZUDRONEFyRlBnSG1LTUkySWNYWXBHZ1JabTNLbDNVZ0dqQVloN1hHZkRuQlJiNUdtbm9oM00xYnJKVnVwVjdMS3F3MUxuNXZoeTByRFNZRUE1TElDVHF2UUlzTU1PRk41NG9waGtSckYvZUdteW4vZk53WUZQaXphamdtaWEwSWN4K1Bhb0RrWEg2Z04wQjdNd2hmTS9JVldwNXJnRzNsWW40OEJxNk1PYUNyYTJ6clM4aFd6dmFScEY0Q3dxODZ0ZzNUWEk3M1k2SGpEbWVHYloyMmY3eGRCSWdwaHluTi83VEpubXRUKzdiMzNHNzg3Z3JQYjYzZG50ZjkxalBLbWRJV1F1Mk1hd1B1NkJCbVJPOHg2VzZBYjBqcEpnUVhrZWhLMitFK0I3RTE3WDBPSFBXa0t3Ymtub0NMTittdW5pZnlUMTFENDIzQnVXNHFjdWQ5akovYkI5NElzYVBFLy9WZi8vai8vdGYvKzQvMVBIdjd4Ly81eC80dDI2YnovZHZ1ZjcrZDk3L20vMHFUM2Y3L3VjeXo5Qi8vNngvUmZELy94Ly81Qjd3S29ZemxING5BUWZxK2kxemFGYncycE52WCt6OSsvOVdmOFBmV1Z2bzJHQ2U2TXQ3QzQ2LzNmd3pCUlJyRC9lcGZaZkUyajlLMzNlNWZ1Mk5ZZWhuUGxiZDJabDlDS1QwR3kwMGNMZnZQb0lmWDI2Qjlmb215ZE9tUHR5Z09Ya0R1RnZxWDVBT3l6eStKL01mYlJSWjh5TCtxQW5BM1FUMnhjeGhtN1VYZzJOZGg1b3VCZG9iUDYwbjNnQjU2NkFESE5PUzkwVDRBL1JXaXE0S3YyVDNNTWh2eXl2NmsvWUsrUzNRTDRuZEZQa2NPNkhoMDNwRVBxNTBYWG1idnd1c212ckhHZHA1anBNRmdSUHdPYXhGbVl4alVkMFZHKzJNRnZrTVBEeUt1QmNQQWJ2MmtlN0JwZm90ZWIwWHVlU0hQb0hUano2eHZ3cWtXNjJ1Q3k3cDVMeGpiUTZUWlQ1R2l4NGJTM2VxRFV3ejdVN01Qa2RJVllFSGd2dkRpR2svWTgyWDhncVZ6TlhiYWg2QmxzZm9LSGdOMDFyZVBORmR4WjN4Lzh4M1ZRNUIxQktZVlU5ckh1ckpxbUtmU2U2NlJiNEhQVk5CTW0yN2lzWFFXZ1F0dWxZN1I3ejN1M3krSi9CSkliY2hqTTA2bGZ2c1lxWEJ1dDhlT3RTTDgrZGVYUkJiQ05hNmRobHJud25FZDdZbm16Zzk5WUMxRFJid1UrZ1VVR1hSTTZicG03NzdHdnZBUWIycW8xNGNwMFdCZVU3K2N6aWRhajJqTlJtbWtvcytNYSs4MW5MQjlLWGl0N3A3Vjd0ZU1jemVHY3dxK3YvK2p5WjVDSGo2ekx6UDhuZ2YwL1llZjVTSW1FZVNqNUN2a3VGdldNVncrdGpjRFJ4VThhVEVpLzI3Y24vVkdMbnZiLzByQzNiKzJ2emJaMjM3eGR0alYyVzBOVTI3NlNuZkRIVnZJdkYxQXNqSWo2Vk5udk5XVm1GdXFZZ295c0swUmFSZEpsLzZNU1VvZmNobEtiUGZMWnJVbzNkeGVCaTBqRFZwNEN3NWIzbG5KOWx2a3lpTFhOVno3VzAreVRTb0hyS0I3YXlxVUFNQnRZOHR0L3dkcEM4SFVDTEJ0eEgwZ1BSMndTUjBkL0xXOUMvRG44WEJ5MjZaMGRPZGpzSzQrQXpYbnhOMGdwcGY3M1JTbStMUFgrOG1ud1llcGtRSWRselE3VExtakFabTcwTFdQeU9VdGJ2L3oxWGZ4OHZ5dG8yUlFQRXQxUmFaTDh3YzlEZ2hWV1hHc05UVkJ6ekRFTFIwcm9JQ0NvKzYyZVM2TlA3bGVteTcveWxGVWQrOW9JTzhpenFRRUVPN3I4Yk9DVXptNlloRFloWDd6WGlYZklxNTNuZmlqRHRJMzVlT3ZjTHdFamkyRVdib01MMjBJd2VhT21VNlpGRHJiOXQvNW5uZlc0QmNmclZybjhzangrdmp6bFk1RmNqK3ZlTDBmRDZ3cHVYQ1UveWx1eTJlUDlHN05QbXh5eDI3YlpLL1dyZmtyMXRsWGprV3p5L09KUGZqdlFES3dEYUI3V2RzZVBlSnlWbHlXTytNOXp6ckpGR3pocWY1Wmt5NzhmNmgxUUhJQ3B5QUU3RTcxMEJsSm52WDBhWnVDMi9yUnV1UnNFOGgydUdqZVRoVzM1elBYK3lMN2QvVmF4aUxVN0JsdDNlWnNUT1Z2SDUyTFVESXZuaXVuTnFNWitQTG52L2dPWGlkRXlvcGRLOHhzYk50eHU5T1BQMzIvb2V2Z014bW5ndTZrQlY2K2Ztem84MDJheG9oK2YvWlhqeFZkUitJWGp0bkFSUDRidEk3UU5HUEp0WC9NbjhyRVJhU1pteW41ZDQxUEpSWERrbytmRVZUdVBHanB1YzM5NUxsNEsxMTF6eGF3VUNrcCt5TGxzOEdyZWM3aWVrV2hlempvSHVZdE8vRmQ0d0FRaGt0N0cxdzZXTnBDYXFNNS9LRXJCbHNiZWx6eTUrM0dPY1ErTktNdUVvamYzK1N6RjNOVVEvZFd5bzJHY05VMDFaMDltSmNJMGYweTlUUzMvVFJjZzV6Y0QzMVFGMS9ObnRIM1BRY292WDZ3MklIRU1TQ2xBYTJwaGJtSDhEcTh0TFBJT2Urd2JMQWVEeE81OHo0UjJWaitaNlcwYXZiSHBONDMvMW8vOGZaOXZ5TWVvZjQ0c3llVmVJeElsdk5wekxWMUNnWjhlcnU5OGwwOTBaVTR2clhmSy9mNlhmOVhVMCtoMHY0Vk9VWWFadTBVMmdxeTlEaVVBRzU5RERMN2dId29QUi9YcENsVytFUXE4TnZHcDN5L2grZTl3UysrbjlPWU5jUUZrTXIrNW5PM2V1L1B2aSswVllBTnhyTDlEL21Ia3phVytLL0VyWkFQdS9kZE5QZlhTTE12RTdzYlAydjIrZDc1Tmx4YjdSRFppcFc1aTRBNjJEQm1pcjVsY1d3eEZmdkk4eGVlb1NuR0tPZjVmTGQvZDE0Z1hUenBKbE90cy9EN3hpS0FWaUZreDFaM3Z4dVV2c005Mnk2UTFOVTRVM2NZeW1FWXM5NGplYktiMTZ5OGIyTTZXbU5qeVB3RkdtdTlUUHVYVWU0dkNKNXJySDNYR3BOVTlTWWFXS2VodzMvLys5SzVKZnZkNEJ1czMvYW56YS9WZHBNbTRlVVI3d0RJcWpxWHVTZ2ZBeTFkdmszS1hnTHhDUHJ0TkJwRXh6RGJqd1BwdlBWYXEwcjJ0dW9SVkw1ektId25JVjdCRnhmT3dMTWdKd3ErUm9OVlpwbXROZ2JDQXdFeFBGTzlkYW5ONUQ2YWhmMjdXUGFmWGl3THRjNXFsa2RDTktPNDkxeHJPZTh6YjVSWkVjK1ZUOE5zTDNxWmZVSDdETDNIM1BsNS9JQUhYVm5YdDcyY0hERFc1RTF6MW5BM2Q4eTJEVUtWbkZYc293Z2JCSHhaNUdJNTBZVVdvWDN5L3h3d1JnNHdBZHlLQ0V0Y0Era3M4Z0Q1NFFRWDkvaXhvYjk3U2JvaUEvRGd3dHNsYUZsSFQrcnNYaExadHRRdUowUjJCb0hSb0dVTFh0WVJjWU5YaVpCWCt4a0hMV3NESkh2MDVFemtVeUF4NE1vZUYvZXMvQjNJZTFLclh6cDVlTEFHQ043NXJnRW5RUDQzUHFyODlMV1N5QjBWb3RaSSsvbUR6VGtkTThtYWNpZk1zMTVvM3Y2MkRNSTV0NEZzZmZ6Z2dQQkF6QVQ3dUg1ZW5ndmprcC9DcGJYd204WGZ6MTRyTThUaUhHTEJvOEw2WUxZYmkxdHdjM3J3WFF1YWFHWmtUdzB6UEI2V3UwRGUzTUZqbVY3Mm5MQUdmYldhUGVDYTZodnRDdmVaVHdKTENNa2Rpb1RXMWdWRkhmL3QxbGx4M0l0Um50Sll5YW1aQzdwZXpaZVpVTHAvZGUwYzhveUQvYUgzNTY5VHlEb3hCSlQxeTNkWE8xMnhTQlRVL2ZFNjRjK3RxcThFMmRETXZvWkNlem90M3ErOG5yZ3g2YTZnSWI3b2Y1Q01QcjIzL0ZNZnFDSVc2eWlPd2UyTTJSZlBoeWdmL2Y3ZE9mbndXdnp1dVpocG5kVi82L200azhIS1VSamN0Zkp6L0lSc24rK2lNOVMrNmdOekdXWXE4aEZJRTBzNVdycG4wN3Z0MFZRLzEvcVFENkh5dHBzb1NuYS9EdHQ5c2xrSGh5aCsyejhRMXlCZnpkTFNhN2kyY1RQdnloQjlMUHFFNG8xRnFLV083eHBYUW9qV21OWHdKUFhrT2NZMjBGSUJ4QnpYTEU0cVhJUDVhQ3lEaXRhMnRRMWJoaGdPd0FkVklzY0NzYWN2emFqK2RsenlOM3Jqb1d6cHpkanRNUVRDTjc1akNibndlRnhYZk04dE5KV0RML0tYVktlb3oyTS9BUUYveTRUeDVIeWp2VDdZSTl2OUF5cndpUWo3QWtnV05DRHNoS3pMTk9zSUUrZHB4eHJ1cjV2WWFYMEtCYmJQWXdoUkRFSFl4STY0OVNBRVlyb0luQk0vSitpODZzOWQ4eElSa2FYeDJsNzVRSlpjZU8vTEIyd2dBK3Y5T3FSdnR3RjdkMHgrUS9Kd1lCeVJXWnBydGhpS2hoaG9zOUl4VVRHWmUxb2NCZDZHekR5R21YM0VTMUk0RnZEUjFXdC92UW04VjdTcGViK2dYSUJyS0VqOXp2WEk5dHFGRWpPM25JczVvMENMQ2VVNUdLNUtnTCtTVzFBeFMzL2p1aDlLVmQwdmZNaVhRQkxUU0Z1a2tXdE9JdWVjRGpOMTVjT3gzemw0em5uMDV3THhIbitldjQrMWp4eHI4S3hZMzZHK01GTndmMmRyZStkUDJoYzAvbXk5YTlDWGUrS0wrNTlJNmEyS29BeGtRK3piNmVvUEZSR2Y3cTZMbDRhaTJXT0ZodTF1VzNjT0tkWXBiTWx5bEtuYmdQQkF2Q3dGNEpVT1hEOE5WNWozS3N4bXNiNDhuWWRMWFJ4T3V3bG9lejdpZnVOMGFzSHRmcDZzTUdCaXpWSTAwSTlzRE9ScjJGY2x6MGwzbU91RFR3Zmg5SXZYc2k5ejEycm40YW1KdFhRbXRXZmVpWVNEeDJpcEpyNXJMVWJqN1M5a1AxOFNlWXpEVkZNTXMxUjRzMG1ZOEIybGpiLzdnUDR1Ylh4eGFZTnd3STNETEpYbXpqbjFKVnNGdm9LY016enpuUE1WT0pnMC8ycTFqR1BrZG1rSkJPempTOUpkVDEzN0dxbUdHS3pVcTNHaVFFZk1ZMXh3NHpWeFMwdUdKZGM1MzBNelpyOE8vdG9jaEZsSERNdnBEMDFjdlBWKzR6clFNMjhacy83b2g2Nmg3NXZRdXpUWE90ZUlsVHgzMWIrcHNtSDFOckdmcWNpM1EyTjc0c1p1VlJndjNOLzhHbVRuOWl6ckhLTyt2MFcybm5BZEZLNk5PYUhUaSs5WS9URHJuTVlsKy9lU2wxVGthZi8wak1lK0xZZWlmZlZkL1UrYmozQnRIOGF1YVlmQWZWZE1XUVdPK2xSTnZ4ZnQ3Wmp0elRiLy9IU2RYdjBaN3Vlbnp4aWljM2k2aVEwUnY4dllhYmZoZlhEL01OVnVXd1Q5MHRrTTUrcnNoNjVFWnVTYXdneWVlN1NtNHdUYy9pNmZ1aExpd0VrUHYvZjhmQW8vcnZhUTRUTGlNbktOYlRSSWUzVHZEdGY0M1d6WFRFTVcxL2pIWUdEdkN5VTZKYUo5dzZibmR0ZmM3NisrWTE1OGQ4ei9EdlFqMzJiV05reEM1cThZTFJtQWY5Q3p2YmFjUURxTGdXUDNNTzlqK0tBUDhPc3RTbmIvK3JWcERra0xyWFBHd3J1MG1hdzJITmtWREdJamZtN3B1VXdpYU10ZDcwNFd6amgrUzdqNWQ4YnQ3NHpiMTRRbU9MVEFHRFdZdnhxMzljZnJCS2dyOTFGbVg4WkF6NmRla012NDJ1c2ZSc3ZaZnFUbzhmT0Qrd2J3enZtZVEyN2Q5bm5TM1pmeGdVQXJXK1BPTng0UE5zdU1zejFPMXRwZTE5VFRmTVpNYyt4Y29vcjdXektMQmNRUWNUZG9WbTd0NWowVTE2QUZGRm9vZEFxTWxuejBCN21aSmlnSDlON3NPMmdNUGJRMjFOMDZjczNVRU9sK01GSktUNGozTC9yTS9sTnV1c3ZUSnlnaW8xTW8wMEI0bWJvY3JzRkdIZUNJSXdnQVhLMnlqbzZqN2dPbFVNVk9QQWZadmc0ZmxoYjIxQ2dwMFRkdzk4Ly9mZCtrQjhrNlN0YnhmMnZMYml2SXlRVlNwSy92L3YydFJOMjM0TS8reHlHMlA5R05xUlV0LzljbFRMNFBkUTI3MVRaU0gyclhNbHJYT0FqcGJXSzYxaVBYMmdRdFkvdEdpSzZHMmU0SnVsR1FrNnNWdlpuZlRpS3NUZEhMdGtEbVE3c0xLMlFtTTNXSmlmd3BnVnpqZnNvRkRBanFtT3Vna2owSkUvTlBDeDdVeDZ6Ujd1M1hNUW5mNW1HNE9hd2ZLdjVXWCtMQVdKcXhPU3huZGlRdWt6T2wwT3l4WTJKMi9lN2pXUnpHSnNFS1J6blVtMTJ2LzdleCtTdU5UZEFxdUhUVitWSGFpNUo3OTJrWHRDbWJWTHRHdjZ5dFpISExoWDNrZmUrMDE0M3Z0eFY4YTl2TTRndGM5SSsrRTNQWmtiRStCZzZvbkZSdGhXb2Q1NUpkazBHb0dzVmhwb3FSMXRuajcxWC9ibXVkWDc3elZNcktZMWY5cHNIY3ovZHY3NGQwZHdNcVU4aTNWMDA0ellQYnBnQWFiR3Q3QjN4MmtHLy9YUWhOZmszZ1pTMjZpc3dxc2lNSlZveU5BdkhwUGZoTXZlWDdPNS8rZHo3OXo4Mm4xNGRKbURzcWNrR25JSjIxTEt3eFMwandkRVdtRUpOcE5ERFFmOWR2VS9MZTljRWdoalN2N1JQeVROQmVEVUgvSkdvL2xuejRhMkErWVdhZkFpMWRldTZva2h2bHZLWkRJRmw1elhYQXJPTUw1M25WUDlNTk9NOWNzeGMrMW5PQ25IMGdXYWJudEJlK2hIVlJhQjJ3RVQ2K3hwRFZJRlBYSk9kTUV4VjBEbk52Y0VweTBGb3BOTVc1NGE5TUFqN2RiZkF2UEgvVmZ0QzFIR2tkMzNQRVhkMjZEYlhPS3ZmNjd0Ni9BaEgrRXB4UzRSa3E5NnlEWS9HWUN2N2RHNGthNnZFajNXcm95VVAyTlhQak8rYXZzR1h2aHkxekdXYnBLU0p6eTl1czU0RjhtU01ib293UGRwNTRQb3d6OWVyYjhpTFM0bGhQT2xldlpXekRnWFVkT2tUalhSSVhvZEp1dzl3a0sreTFEOHlOTjlWRmMyMkt3YVFXRmx6WHJwQythZWtWdEpKRkUzVFFva3BOcmZBdStETzl5dm02Q1FmR0ZvMmRvYlJuZVFUVVZsREVNa04yVytrbTdQc2ZmL1k2aVBseXJ0bkxlUXQ5cDBQNVhqODd4anozNnVFTmJLdStKV2Z5ZGE3MUwrYlV2MGFPVUwrR0cvYkh1SWxNaVVIUWI5bHh0RDdMVWNWZnQ4OCs5UzczcmxFNFIrTzdKQjE1QXpmK1RLVXUyOERQV1BwYy9malVZbEtlT25xdmZ4aE5SNytKU1NuWUU5cFN5NktGcVpZZTVxMWl6Zm1CT2MxOUg3cG1ITm8wcm9QbWhDL1o0OGc1STE5OUdXYTJFRjVxSXZ5a2F1dEtLYmptK25sZDZ3QTBQVmMrUzgrMUkzQk9QMUQvMUJVamJ6MEdHMEhYMXlkczlhQWhCVlVUSjN3dVkzUGZIdUExcU83bUR1Ymk1cjlYK3R2bkNsVzNmRnZXN2diNEJqblEwZ1hvTW55QXNLaDViRy82RjVlNTB5RTE4dk1pYkptRnRsUGE0bG4zbVJzKzF3UFh2R01MNnpoY09jNTMvanZjNzc5eFh0VE16OUlEYUo1L2FrN09WNzlvWTNJTytTbmZJZ1UrcnN6OTdWWWN4YTVCVzExOElDUmcyUlpNak5Ib1YrYnZOSU5pbWkzY2U3ZlJ0RnMrNCtGNWc3VzFIVDg0RDJ5K3RKVGFybXVCYUFwSUsvUzZOdHlhZTZYak1MT3Z2anV1SVJJdnRpcU9LbjVUKytocjl1ZkdPb1B2UHZyY0VCdlZQRE1qNklDV3M5cDFWM3BHRzdqM2tYLzJ5M2RYYk0zQ3VmR1IrNUw3M0p2ZkJpS3VXeHo1Y005WkF3RlprSFZXQlJLdTVNdXppWTNQY1dkOVBQMnVmWXEwenM1M2pWci9xL1MzNzdOVGErc1k0TmFhMnR6STE1OGY1c1p6alhSR05UcUVHa0psNG5QTU5mWGkyMVFiem55cHFhQlVmWFJwc1FnemUwdzFPS1kxUFJ1Zm5hOVFRbkdUSmFMeHd1V3U0dk9DTnRmQVJ2TjI1N3d6UVE4TGl2dFErYW5KTzM1NmZLMWpxSFYyZ1JTMVp5M1EzbHFOcGM0aGJGa1h6MGtQMGFDeXprNkJkRDc2clhRYVlod2o4dGV1MGNCWW9CanJXL0p5SDNqV2h6SHVOK042amhKZ1hXbGpQZnhHdnFuWUVxeWxlOCtKNnE1VmszL0huNjFRZitEMzJBYU91dlp0V1F5ME04MC9WZFk4amdkbWgzQmc3d0tWZ25OdXRSbzNsZU1aVmNVSFlnSkNwRlRqNTFNYkhVamlObEpLK1ZoR3pWQ0h0ZXdtK2IxMHRDZFl2cWNZVi9ZdlRlOVdtZnZtOTE3TkhYVWRaSjFycEtYTHFkTlorV1ZxcE9JMVlEMTR1SUw4MVdkUTNiT3crOTMzc2ZUcVdxVDJEZXZyWncwYUIvdkFVUTkxODhyKzF0dkUzNmhaUSs1L3IzSjNhNzdMZm5MMStaMUxlUFN5OURDVWpFVW94ZXVoMGwwUG5Sd3dkcmNGditGYzhMVjBBUnBCTFd2ckNlTFJyL1JVbHA3Sk5kYWZ0YWUzeHJQdU9lQmVsOThlMS9vekpsTXZmcXVHRWtHRDMzOW5UQVgzdmV1M0owM3poL3MwSy9hUDJXVDdDZjAzeU5UZDJER3hkbHN1aE5INHZsVTZCeUYrNzI3aUtsM0VLQjVuNm5MZWloWmhabDNoWEhKbDVPTWxjK2NNY2FvbkxZRENvbzRpQWoyM1BwRUQ1OUxkKzBuM0dMUmtZU2daMndqT3BOV1I3S3VqNzFyTFlZdWp3OG04MkxXRlAwQi9pK2xZVm4rOFZqY2VTcDFUcEhTU3VXdWhjM0hMcmlQWmduZnAwSE1zMTVvbTEzL3NlMWdQcSs3ZC9HeFZSNitCNHJkM1dLOXUzSGxXeGh2Zk1UZkJwWnNZcXZ4cXFaMlg4VXhVU1M3cG9pdjZYays2aWFzOUpjK1QrOWZURSt1UFVPdXNYQW5XenBOekVjNnVLeVMxWSsvSzE5ZEp2SHJXN09WYyt4bnI2OGE2VnZvMnNOSXdheStDdnJyRU9uUWNHV1IyUG5xT3BYak9HZXMrcnRJeDJvUHdEcG9wUmtwMzd5dHlvQ3RpTmlyK0xrSy8wM3Y5N2ZPNFptMkI1alJvdWs2c21XWE14RTV2cXRwVHUyOVBYRUY5bWE0NjluUmxxcTZRamw4bit1cE5TaytodUZ2eDc5LzA3cjY3QUtvUFhUVlVxNTlPWGFIOWF2WHRhWDZkZmJmcHUvVjFZVFpXRUtNMlVhS2c5ZTZJdTFoUExIN2VFcjBuZEhSRlArbUpITG5USFdqRkJmR21kazFYbjkwYzJiWTVzMnpqZlN3YTZ0aTJYbWRMSVhsemJFeisvTUZyekZiMmVOcFBlMk43MUxteEppNitLKy9tanJtQW10eEVyMXViMmJ4dVhodHJKZXluYWdjazh6SjNaU0hNOTJ0dTR5VDdFQTJNTmhZZkdCOUNLYTdadTZ5K2Rhem1UanVYeUhsQzMydjJONnBueWlMTW9tdVZBcXU3MXdlbnVuZGE2bjFqNFVuN2x1Y2FLNndUS3A1UWpFcGd4RzFkTXpmUTIxTzdGOUI2NjhQYUdUb2ZzMDI2S2tZdm9GVnFIK3JXSk5scllBUEdRbWZzek5JWDZ5SnJrOWxaYmY2OGVhcWRwenA3N1RBQklLenA5ekU3LzlGMVZjYWZjTFdHOWphcThXR29kcGF2ZHNEL2ZPc0pHME5acEo2ME9PcUt2cHIxTzMxWGFNdlQyU3hCNTNJMDBHTTlFUkpkTWNJZzBldHRWL0Y2aVRIWWMvdDlFUXluYXRTd1o3WitBdWRoWXZEWFVQVDRkU3JFK3JLYjNKOVBPWDNEV21EeGJHWDNKN2I1UGhiTzlreTAxRm5hNmMxV3RtejNPNVBYaWRIMjNWSHlpV3RNTEZzZVRXYW1QTHNLU2FuL2pvUFVHbW1vbmJlZXBFTGR1OVlXYWY3MlE5UlI3S2R6REFkajVBTUxLSmFkVDdqNmM2dFNaem9pM3pCY3A2ZEFTZytSMHI3T1AycGpXb1lZSk8zcnZQdTRmKzA3YmFuV1BsQllNbmZlMTQwQjhTbTFDcTFmd2NjQVhmQ0o3M2cvbXZlcXYvV2Q4d3JxMjBTTWhXRFJjQjZnTXI0Tk1mVm5mY3BpVHFMbUxMZjg2VW8xSnpQemZXTEwwK2F4bVAzUUZlTVFYS3I3cHNwWmN2ZitMMVBCVW1lbnVyMkwzL2tsNmNMYU5qUmNpOU43bTg0ZDNNOVBGQU9CalhIM2YzRFViZHVoMGwxRlNmZkg2MFFXZzdXMURaVHVpaUJvNDNkWC9HQ2VCc1o0ajU4TjZrQ0hqellGR2dvSUcyeDhSMTBGR3VnS28yZWdaM0xWSnR3NXMrdDhvZ2hqS3E1aEt6cUcyWVByUWpCSEU3c2oyN2FsZjNaUGhLU09QSkhzOWl5enM2YlBmUmdSRDMycTFrc3R2VzFseiszVHQ3cG16Wm9hT0gzZWZLeXNvZSt1NnZOeEQ0MjFwYzJkY3dNdFg4NzdRZTM2cks5T1oyTDBPbHRaNzlZcUhWbmoyM3VpMGZlZ3VCbk94d3J6K1c5ZVU3WCsxYjFuSGRlZG5UalBNUE12Z1NRMDJFT1p6dVBRZDlNN2R2Tmo3U1B3N3YwYnVWUStEcERzOWdmWDNkaHp6V3NrZFM1K2Y1Kys4WTI5eXFNNXc0K04rWGgySGszRjZOMmFpV05iVFI4Yisra20xdGRwR2piYjZLWXpuVHNYYVV5aXZscHBSNTJ1VkdYYXQvczN6NFdHMmduYUYrTlpSNXRwUU4rTzV1cFFpNG0rOXl5aU5acUpIM2dXRWkrSDZ4VWRqMWpQMnNkaURzamFGUVZ1YXVqWDcrMTc3ZnlaczNjMlZkRmU2a3hzdGZOaXowVEZzdldiYy9vSmV1azc5S0Q1T2l1Tk1kaCtGSTlPWnZhTHJZN3VQaGZ4UlM1dmt5Nk9lWk51RW1RL2srbzRxV0trTFhxQmxxYkIycnJlRys5ODNMck0vdGo5TTRxVjFWbjZpSzE4YUg4THdjRHMrYTRoTko4cGpXTTF0T3oweTU5alF1cndIM3lXM3RqdU5NYU01YjF4MjVaYXUxQXc1YkZrWHlMbHRwMHIrYWhDTUJnZGZHMHg5bHhqRWJnbW5JTkJwYTVaczgrVjR0NncrZ3RrN3liam1UaDFCZCtZOW1lUHJNT2I1enhhZzFhZlB0dm96dm5lWkNkdjF3anFiWmY4aXRick5MWE44Y3FlZk1hTzFtbEhrNy9kc2FVUG5VY05PWG43S1JvWUM4dHBTM2FtWHFxVTlkL1R3VWZmbVlqK3E4SGFkenpYZUtESG9xNzJjTWQzempIUHgvQ1JNUkJNODVGbnBWakttcnhWR3F6OUJ2LzVKcVlsZlJ0WUYyOW1INkxVWDRScnN6ZHRYSDhFL3kySWkxQ2xMY1IzL0t2dnFNWFhqbDNOSEg1eUR6NDRUbFBDYjlOMHhsRC83b1l2ZXIrZS8wbGlrTHZQWElOVitPQWV2L20zaXNSR2pjL0M2OTNYMmVDS0QvSVZrZ3psc3k3U3pOUFFwVGJkRU1PNnZJRld2djV2YXZHWDFscVFkWVRmcWRYZXhKVzIwTm5iMlUrMVZQTFI4N2ZNY1poMWtqcWJIcFEvTS8zR2VucmpjMzFYSGZpOGpkQXp1dVlWOEZ6WjdUR3RHWXZuYXMwSGNKNkxvRytsZ2FhMmtXME9wUGFLMU0zcjl1TnU3dnBwa05uWFVKUXZnV1NrUTR4UjNYck91ZTg3NThXYmJhYVFTMitnOFE4MSt6SjNNR2I5dy9kYXkybVlwWmc3N01ZOTlJdjhHbVF6eUxlZ2UramErUmhrVVJvbXNqRFgxQVBzQjBjRVhzc29GeXUrenJXT0dHampPQndZS1JyclNKSFhNSWFFUmtMWE9waysyQjREeDlqNkU2RDJoeHdqV2hmVnM5WGFCbzU5akZ6QS9oK0R6Q0tNQXZMQzE4Ym51alZWbWJOSlc2Qml6R3k4Nm4yTmEwVHluYmEydVBpdXVRbWs4NnJaM2xUWFV0aXljZjFVdERaaFpxT3gyRFdjTVpubnBMdklOZExQM3N2UDFHMHdzQysrZmZkZTZSdmxtcTJ6YVhnT20vSWtlMzFnYmhyL3Bvakw1ci94T1h0MHJrWHYzTnk4QjFwbjZUa25xT2M5dm5hcjYrRUxjRlVzM2tXK2ZDQ0pFOTlSVi9NN2RqTE03SVd2cGZ5Y2ZDT094RVJ4M0RHd0FlKzQ1Y2ZrdTdCV05lOTNHMWRYTXg2VnRhRTEycmxtZkd6TmN6VGEzUHA5ZmZKZFkwdjZoemdiVW9mdnJJN3YvM1I3V1RlKzdQbnV2SE90dld1V0dMdFU5MVc3MXViVyttdWF2NWc3WnpITTdOa2NlamtXeDBBYmYyamQvQ2ZhVFA0OVhPbDg5Q1IxTjF5Ym00Kzg5MFB6K1ZBY2U4czJtWUxuR2tMa3lzMDJzMlV0d3JVbGhpcmVXOS9ZRzBGdCtUVFMxRXMwc0U5a0xMNGFpMGZ2ZHkzZDU3YXRMSTlETlZZWHZKWThEU1R6bCsvV3J6TXE1OGZITGw5aWIwdlA5bzIrYVdYTUt0K3R0K2RWZis0RDkvZ20yMVo5bCsveUJkZmxmZGF1L2Y0WCtrVzd1ZU9uWGl0ZEJwcXRCMUxuVjkyOEJGcWErWTdaOXFUemQrN3JtbWY1blZpeC9aWGpoTWIrR0xuR3N0eGJXeWJ6ck9SRXZxMVhpcnZuMTQrVFJEaWFUZWhISHRUamltbU9oZUZ2YW5NckltQXdLSWFGdy9OOVczMjhwb1pkbDM4aVRGakEwZkNqQnBkRTVyNUQ4M3pYNGVtRE9mS2Fad0pXdi9IOWNTcHpvME8vUDNDNHQ1ZitwSDN5WEd2VGhHTUlXM2J5NEhXdWtXT01tNitWUDcrdjJabm4ycnRJRVNrWHh1K01hUnBwT2RZZ3YzWXpKcHQvcDhlL1Z4My9TQk5QbU9mRSsrM25mNndtVXE0VlA3Wk9QTW0rUkZxYXpSMXpFV24ydFc1TUNDc2N6Ti9MRFd3bVhHdFFtNE1GdjMwcXRYZHYwMDBjRFF6Ui80WTZrSjExZHBFanBsUDh2TmRiMS9tMkhMbE51TzFuZUo4OXdERlc2eS9lR285YXlmdGM2NmR4RFhBNWM4WWZWTnVEOTJDOWtyc24vbDRENXFUQTRkSEVSY1Z4ckh4UmoxL09rWFMzQis5bUQ5eUhlRUM0TWJuWFl4anJPUzRENDRZcFQ5WGo4Y1QzOVcxOVl5OWNiZS9XNy9YRllhejluOU9qQ1BmNjdaelpyVjdMT2t5dzBrbm16dFBSeTlRS3hyZzVKOURRazFWclMyM2drUXBiWml0b0dTc3JTM2NOK0lHNnZwdngyRGFudHRDWldEMGhNWlQ0cDY3b3F6ZVI0UXZrbVdpNlU5SG9ZNnlFM2RHVFZmSXBYUGNBMnlGWElzK2cyWmVQeVNCemZGRzRKaTdEZkE3RWpxNVF6T3crZlVQdlBoVkI2cGlzWVlMRC9aVFBud1pyNzZadk8xNmxNOEE0MjUyK05UTnM2L1FBWHNjMURwNXJ0SFhGRU1JMStPOEowZTVCNjdxSUZ5QzkxOFBNU3IyMXZYN2NOcXcram9VVDFORmtwazQvaVBQNWVPOTVQWFpOdHZyV2ZRd0w0VlB6azI1aXVLTWZ3OHZQODJnWkhrYkswMm00N1A4d25CQ05JVC9HK0p4dmpaSWNrNlJYc1VYY3VIMHBIbTVRMUlIanJpMkdrcDFqUDVYdXBsd0hyb3R0bmgvSEJyRzkremZlK3VtcnNDREZPUVB0cklmN0VuSmJxejZBcDFQMFJuODlaSHhxckovbGxLOGovU3ZlczdRbkhyVWZ0Z2ZZMDc0OW9kakJhVDlWcDZuMVBoRnMveXZ4ZG9BaHZJbVgvdGp6alFWN1lxdGZpbk5Ndy9YNEkvWlBkVlRBODZtekZHTVZ4NEw2SGMvMUVQN3lYZzZzeEZwZnV5OCtzcDZpVWd6NElJYnRNL3V4dW1lNkQrU2xIdWlOK0pMZW1vL2h2dGtjKzY0aHpCMS82MG1xNE5manFSN05YY0MxYW5OMW5IYmdTeUtENy9JSlRHVEQzekJ1NjJaZm5iWVFva0YzejJLMVI3RmF2ZFY1dE93L21KTnQ1aDdtWXNSaXZ2ZE9uTk5vZjI5elQyMTl6VjRDUHJVK2ovQU5IRWZjUGU5aVl1TXlWOTROL3FmdUtzanMxQitZVk50djdMdkdmdTZhVjZLRzhPTjFVdkdQcFByUGNqRi9rYjg5eDkzVjZSazI3S21jbjdaejBSWHI0RHYyS2hSSkxzaVcwekFUdDFUNnYxQXphNlZYcjJYdEppVG5VY3RoeS9KY1VFZnJjVDVrY1U2MTZ0OEwreUJmSjNmR3NXeFhPWndqc2E5RHQvaE90L0pJZDNoSm0rYm45M05LNi9yeFo3SFF1c0ExZFRQT0tYTHI2SVJieDl3RXJlaWdKNmRZVDhRSi9MZkNoM0JuUFpYMU1hZmJSelU2czFEQTRuT1lTNk42NzdEWTAzUUlnYjlhN3J4UGpPaVJIRmZWSm5QUHV0ekVvMjRGdjVNTDE4VTFPYWxhbnVpR09TclVuUjdKclpUeXJyY3h3NHpUeFhPdHhmMmNkMFUzTmRjWnpVeTBqb0IvdTc2ZlQyYTFqL3ZYTVVVdnJidld4M0xCelRhbGVWOWo3Z1B4K3VhYXkwZzczZUo0dXh1WGtXdlFQTzVOM3JnWm4rTWw5aUt2dDNTVDR2bGl0a1BKRklMK3gvZnY1OVptK1g0ZlhaTjE1M0xwbWhsZXJ4UFFYemJiZFhYeCt6NXR3YmM1aHEzeEhxMkJSMm81d05rTTh6NTYzTWRxeEMvZDBGc29yVW1PaCsyTHh2SFB5L0hYdk10TkcvOG9CL2pObkhGVk4rQmpOb0h5ZDZOOTNpOXdROVplOTVabVJ1MDFQdTNUVmQrTnJ2ZVNEYy9YK0tDaHRzLzNGZldxOXY5M05KV0diak9lZ05tclB1Uk9mK2k5YnN1Y3pwNi9JT2JrM3BuNGdHNmVvNjladzVkYXJOZWcwSHRlN2FlNmtRT2Jsa1dpUzF3MGtHTzUxdlp2N2ZtYzIxMXUrZy8xc0ZPY1dMRk9YNC9EYU40bm5EK1FjN3RSYlpKVHhmODcrRm02bmpycXFTYW44RHQ4cWptK29MdjU0ck9ETzkrYjdEeWNGK1E4cUw3WGlaNFQ1Zk9rT1JmNEFTd0VXanNEcTIxcEtYQmNQeHpUbHVyOWxmZitzMnI4N2tlNWV1L2I4NC9sVHorSzUvaGFHeEZwWjlaSGVzZE9zUDBGTmRUcEpoNHRaOUxOOWNUOGVYUG5PZWsrMTd6Si9iZmhSQzRwbUZiMlk2T2YvMEYxMGIzbldzczUwMW1xNm8vVWNQN1hhcENVY0ZHTFdqbGdwVUdiNmV2cjIzZWU1MjR0L3ZSWWprcStobVVzdkVaNElxSGVhTmZsS1M3QWRUZTVFUzlseFd2VTFILzJHS1A4MUJ3Yk5POUhQamRYOW5NdnZxdUt2bXZXeHBsaHl6cUdXWjcvdUlXTG03dmJ0SmxuNHRaOG0wTFFNb2ovZVY3Z3VpU2I2OUo5YnMxNU4vR2w4OUhMMUYxUlJ6RGFCWkt4Q0I3TTE5WGs4c3Z2V3RwRHQrWVY2KzVaN3VLRTRyWlFxbW9GWUZ0MlRqMDAxc3ZOUi9kZDZWbHFzTWdsdmNDSDQ1eFN6cVYwblEva2VMRWk2dWZleTM0S0IwYks4bzNWZUtmMmM0L0h4US9PMTIrK2E2NUJXZHlqTjFWaWoyRkpIZFp6NWEyZHdhd2NnK1VtanBiOTU0b3crUGh4TGV6L2NRcXNUTU4zeHBRWmlZQTVuYVd2WmMrZ1l6NWh6Lys0Q0gzVHF2a2ZwaXo3WWIzdEprL2l5NWt6OHJWUzF2VitlQTV2YUpqZjE3c3VYT01yUGZ3SDliV2I1N0drcDUxN1BBT3JIV28xekRuNTNHRUZxcktxY0ZucGtCOTdHam12MHJHdUxOSndVdjg1cXB3MDVqK2ZNRlZYVnRHZjJOMWJ6OGQvN3I1R09sVEE3ai9UVk9zcy9MNnhDRFQxZ0tJVzlGelBtbjIrT1VhSzhRS0tSWUErMUxmMDNyNUxrRnJPZVJaaUZiSmxjMVVvZjVaYjM2dDZaYmZlR2VacTQ3djlXazM2NFJyV1FLeXZTa3pvaWI3VmxRV29tVDZUYUxqSlZnYVN1aHBuNnM1REo3MXJURWsyZXdKZXNqdmFQdWRuUi9FZUtmRmliWXlRck9sMGEyWnFMMy8zY244UFkvV096ODUvK3hpaGNYVEVVelJZUGZhTXEzVDhQR0ZydWp4T3hxejNnZmNselBUMXF0SzN6ODVRSXA3UGlsUEJvK3JRTlgrN3RTNXZYZXNybm10TXNsbTNubzkrNWh1aVRtNWZtTlQ3ek5YYlppUURkemY2SERmdXl4QXo1bEN2bmN1aVdzdFFFWEZXZ0dYNE1NdlF6ZmtvTTVvVjFLVFVpeS9ad3V4V04rMUF2Z1F0NitoSm5kMUxJcy9HWXJkSjJYYURvcWdQMjhIUDdiZEhiYytCM1NzZmcyMUpEVGIvek0zOUJrcDlaZVJya3hMazFrL2tENTV0emM4VXJPMWQwTDJsbWxYcmgzRFBqck9PWkJ3cVB2WFhkVjRXejZjd1U4bDRQYm9mNnJJYWhXajVvWmlpRkxsaVZ1bWErOVZIWTd2d1Y3TGQ3LzRWYnRidlNaek50eCtJeXNaY3JsM0pTanJ6OXpuaGF2bXNJUzg1RVJrM3duOVVoUFlmSE1uVWE2SGcwNk5laTFzdVJqTGZvY1hIM3JHa1MzNFhxOVp3NG1UQWxmOERuenpwd1JjN1BFOEp6MVAwUXgrYzl1UlVXT29UM05QRGRFVUdaZ3E2TjJPU3oySVlmSE0ydGkxN0ptTDg3dXVrSXdSdTkwanJJYTVFYy9MR3V5Y3RVay9hUGQrd2FMZnJqb084dnVoS3F2aldFMk5QVWdWZHNmNW81QU4zeFpqY3I2d0owWnYyMC9leGJjOG1QV0dWMStlc2Q4KzFuNHBycHNoWENqbzRsKzVDVjhRZm9MRlI1ZmRPZEpYcE8xWDBhc2JDMlhBRjFiYjdjY2VvNldWNHVjalpmTHA3YnN3QlExNU1QZ1pyTTMyZGpITXVGc2FQTTQ2SDdpZ2VYYnFyMFVRTzg3L25kWkk1LzN1bEd3K2RPTVpyNGJ3SldxYWdxNmZuVDJCMzk2SFNYUlg0aGt2OHJlaTYvT2VIcm9Wc1J2RlpKaGpyKzBrY2V1d1dzRi9DSHJSNVAzU3RRazlGNVhxZXBINzArWXA0ZERUMjYrWit1NkhialkwRy90dDhYdXF3dHVpa3B6M3BSRzhMelorNmkvVmsvTC8xcEx0SFVhQys3RjlNUlkrcldrMHkwWTB4Wm5OSFRIMUZSbXNwNzRYVDdLZTVPNDVINUo1TUk0emR3N3FnTXd2WkszU3U2Vk1oMWxQNWRib0srZjN3bkd1TUVPMHdiajNyM0xPOGFhbWc5d2ltV2ZPM1pNeVE1d1dlNFcvcGU5Qm5ub0IyVzJJMDJETTlrYXQ2TlUzN0R6eHV5bjNWM1llWDdsVlh4dWZpbXMveDdJRzJLcTJ0K24zNDJmNlY0anFDWHBEeFZEUm1ydEMycHpORG5TWEZmZGUwSCtIM0R1eXhqL1d1OE91OWNqM29ZL3cwdDNmSmpuemR2a3p1NmJHSUoxMnhXTDlUM1hqZTZrVmlPa1NKYkV4WC9pdnlWL3lXa1laY3hzdHRtUUk4TjlGckdqcmoyQkIzUDZqV3NqdkplU2R5L1Nhc3ZZVE9vOWNMK2c2SzB2VHphRG11M1h0Mzl6cldXZHRHU3ZlYzczOU83K2pXbnMveU16OEVIMnIySTVCMmQ1NURYMEY5UnVzY1FtbDI1emxnYnZockNFSExYczZWRy9zNHR5dE1md3ZacjJyRzRpYVg0OGQ4cEUvME1wZjlrRmRIWG5ydU9EWUcrOFlldTNlSFJPemwzbWRPaitaMVl1VzlRR3BuRWJueGMzUGZOMTFML1hqb2J0QWNWKy9ObngvSmJkK3F4ai82QTYybGw5T21zUzdQcllXT29jVFBqOXBYem41c3k3N0dIREp3NWlMQU9OVFk3VzQvWVZjTCs3OU9pNkxpTHlCN1dQRjd2dENlRGlmaUw5OWRmYjZ2c0hxOXBmZlI1eFBVZ2c0RTU2ZlUyZEdDbjFnZHYyMGpMZzVpR0xKdW5vditlR0wwZmlhNklxYmhwSnVNcHJwUWUzWlR2ZEFVZk9XVnJxRzFsUGVURm0xTmJpdnk5V2hyYzllNFJpcGcrVHE1MWg1dkIrV2Z1clpJUFdjY0Q1Mm5NN0xqbmh2OTBwWG9qM0JnYklQMU9EWjYvVC9lSitHMnVOK0tObEJYK2gxZE1jWlRvVDFBNzZJclh0WG16dnh0dURZRkcvZkZZdnU3T3IrT1o1WkIvSzdZU01qNGNINkxsYVdYc0dXNXlBYnBTWGZ4T3VrbTA1a0ttbVpXditOT2sxditZWU90cnZFUEd6SXdiK0d2dDMwcDdkSmNYQ3FhVEpvWTVMWXNjaFd2RVlTM0JDcW1yT0toaThKZjlUUzNmWUFFQk5MVEQzM2duWlZzdncyeThROWRKWi90L2w5Y1lQODdmZlBmTzMyekpnWGFmdWZrdWFyb2o3ZDV1ckVHZGwwRDg2MXhmYm05Qkd2MkZIdExEMkE2NWNKaUdkRFFzSjJQNGIvQzlMRGJ2LzM2MTl0NS8vWnJQVS8vTlEvRHQ5MnVhWTgvTHRWY2JJMVk0MVpMZ0Nwak9HajhzaFErREptbjF3bXl6c3AzelI2MERTdGxPaGFPVGdvK0I3Q2hMWlk5SkdPaldKZEE2aEI1UmR4S1JNSlVDaEZjelNlbjJORHdjMFpPVzVnNzZOOVFiTGlPbVl3aXU1N2d1Y2JhZDYxeElJM2hPL2pJc0RKZDBkUHdJcVRJekQ4WEtVSVNYYkVncFl5aHJpc3FyVWl2K1E3UGg5M1RsYTRZL0QyUzhqM1I5LzVrWU5JS3R6SHMvOUFWYTB0YUdpVHZSRlBxNktoUmx4U3lhQ2p0Q1JRTVhETWRycmkvMTlCd2ZSQktlNDNRMmFPcGNKUWFTalBRSjlRNmxNSjB4UlhaYWdzMnhzQTRCcTN4bjJselYySFdPVVkxZG5IS1FGU1AycVBhZ2szWmpqNC85cjRsbTFpMDQ5LzJ6dU52QUFQVnZDT3pGUnh3US9Za013MWJmeG9ZcW1ZTUhwWEJ2MzFlUFRwR1lVdE9QYndlb0JoTTk4aW5uNHVBVTc1dy9Lc2dES1VCbkxKS3gvbDVhcVZ2eXUrTWJ3MllnOWk2MjhBSlRCbUFpKzc0ckhrNDdma2dzT1VMeDdJTS9Ha0N2cFEvUjlzWmhVQk1Gd0U2SDcvem1iNGZxUEViNngyblVUNEk0cWgvdG91WVJGeEwxYTNyRkdXaGJyL0xvekpRb1lUaUhWTUlXdnBONlJCNlJsT29OanVqd0M5b2pBZlFXUzM0amk4RzROZTBmMFdPZ2NZMWpUU2dsRHNPVy9MUlYwVE9KNms3cTRYOWNMejlCS1I3bis3K2RUdU1WUmEzM2ZETXZQaU9LdmkydFF0WjJLckh3NlRndWkwOVlBa0UxWXpldURaRExpNjlpUjZQcnA3SXU3WWhEVGRudkl1RVhkekdVSlM3TDMxT1MrdnNQU2M5TkNxSXI2eGo0S2piQVBBdGVDZ05qWFB2MFBjK2lvYWcxeGxRRTJhLy9QYTFJQ05qN1VBNWdwcUxXUjVDRk4xc1hsMWNqNTgvZE0vQy9DMkNBV2FCSXd3d3U3bHJDcnF5T0lWWmVvZzBMOWFUemNGd1IvQVR0dnpsTUFFVjJGVllla1pqWUtTQlppOUNNaFowemd5TlpkdjdnU1F1NXM3VHRuaDkrNHF1T1Z5YmtuZDVBalhmeXJncTFvVzYxRk11ZFZHM0RwNG4zUTAzVnY4ZTFsMy94bGgvNlh0ODJYMTBubUV4MFJXRHp4U3o4Q3BYWTZWcnlyemdzQkgyNTNUdVJBZmZzWEFtdFBpZEF3NzcxQjN1WXJTdmVtOGttWlB1eXBQNmo0UmMwTW40eFlpalpiZ2VzN0NOVnBjSTF2cFBDYkhLbllyVlhvcjY5QTQ3SWlyaDF0ZjFnbnh4eVBUeFBvSXY2YkI4N0IyL0trUUNOM082aWVjdE8wRXVtdTlhS2JBbFhUcENNQmc5YzZtQ3BUZHBMM09WU1hUT3RmRyt1WkdPZ2tvZmNqTTQ5d1Q5LzNDRnF4WHZpcHlZU3lzTnNocGwzd0d3MFAveTNSVzdaN2dlSDZDcS9GQUtESzd6WC9YdXdHRWJ6ZmR2TkF2MmFHYWI4Mm9qVjBiYkdrVmlLNytQczBObytqRGt0dmw3ZGQ1d0xWSFhiMFZJcS9oWitUem9na0xneXliT3kxVEJrK0lqYitvbVdTZTVhZVkrVHN6THUwcGlxRUZCK20rejkrZVl2WnBNRVhwdVkrTTc1LzF3Ylc2RzB1SVlTTHZrSlVGUmh5a01YZnZrdDR5RnI4MXVGZEZQeUpUNHMrM1JTNW9iMWIrZVJQRFdmWCt2bXZHcEkrSmJxelNmcldCMGIyV0ZGbDdMMmthWjNjZnVkWHJ3YjRoMlVadUliTUl3VTVlUmxrcit6QUtYYis2MDA0cVFGbWNiYU1OdzROaUM1K1FnV0Z5by9Nb0tXL3dJdVFLZHg3elordUZtK2o5ckgvOGVzVnRocnRieTBXOXFZUC95bG9UQ25qd0ZralZxYU4wdDc4ZW5Cd2tpR216WTUvZnN0NHpEZy92MmkwbGd5SGxxUHdlU2ZnaTF6cXErOHZvNzYveG11OWJkKzMvRkdzanRWd001YlEwb3BrQUN5c2pNYTg3K3BOcGlkR3VNZ1N5cHIrN21qbm90QzdHVi92YmptL2NhQUZUSHpubUwvS1g3TFVCeERTbHRaYS9kZlgvUDhUTWdlUnVzQ3RmamZ2L2Q3NzFnN1lDVFQ3MXpCUkRGUDNzUjdJVFc4MlB2eGE2aHBVQytFVWpXdFNCMkF4V0FlM3VIM2lzZGg1bDk5ZDN4ZlVIUktnajk2UGZWUTZTbGVkdmtiWkY5TnA1elNpbzdLQkRHNExiQzJ6WmZEdGJXOWt1ZUgxZm1QL2ZzR1luYlBqRHVnQ3lZNWEydE15RHR0Z1hXbHAwUm9ONUh2dy9mbzc0QlBGUFQrRUVyWXMzWUhlaDNxd0pDM1MvWnkvRHN0cGtHbXIyTXRFNlJoQVhQdy9UQjFzQlBpVDBWL2N2Uy9aSS94NTVGV21mbnUwYnRlVm42MjNmYk5TR1F6a3lZKzgreTU1QktiaEZTVWsyOWhnSk8zL0xYYnZqTTdYaGhMVi9tVG9jUXJaNFhZY3ZFcWU0SFNENXI2VXcwTE56N0tPbDZXUE5abWlzSUpIRWJLWThRYVhlVFBKZWpvL0ZuRmRKUHpBV3JNbzRkY3dtSXA0K1JicEwwdXJyMEFMWFVJRzV6UDE0SGV6bm1xb2VsTnV2cTM2L2Z2ZmRyeU9zLzVEYzN4RXBhZ1lqMlJ3UEJweEJtNmRxWDdNdHZFTlYvZ2NqaHg0bXJHM0pWbnhJcHlJa2VTM3VBaWZ4MTluTzNsSC84VzhUd3p4SXhMRkVmTk81dEpoUjRVMFF3K2Q0NDhBdmY5WTdZUWtqRUZveEZLTVhyb2RKZEQ1M1IydjJ6MTVKcnJML0RSdGF1STNTdnk3ZXVvUVVWUGZ5VGhEU0xhK2RyM3E5cGp1cUVIMzdXa2VFUDY4U01xY2o0QmRsdzQ0QjhkTlo4VnZ3NTFJZ2ZNWUtKSWJMdFdlYzZYSnViV2xHNmk2eDRqdmtya3RTTFB4akJtZ2RDYThmWUJocUtlK1hsWEZNUHZsUXJkSWJtZHFHciswQlh4T3hCQVd3NE4veEVqcXBOSjVYckwwT2xXZWpaZDYwbEU2NXlyTlRQVkRFWWpNbjFIL3hlMWlpT3pScUNpbVRSdUFsbkNyRllPbjZkakRlUnBHNGp0Wk1GTGVQZDE5cFhWem9mQTJrdmhzcm51a3FHMCs2aDBvejFXSm1mZzdKMHo2TmxOellucTdwM3E4OWxmclN4dWtRKzdyc1IwQUZocEx1VmhrdmhWTGZtL0t4eklUR2ZNVU8rRC9LNWFMTldSYmlHK1QyMG5uY0lNcnRsNVhWTlk0Wno3SER1ZXkxYjBCVnhwYXU3ZU9oNGwrTHZCUFM3ZURUcGJsOHU4aW80MWErN3p3cVpZYjhtMm9Cb1AreUo4YWJRcEtpSUcxM1JjU2ZDTEIzckNUVEhKYmNidC9WNE9CR0ZZRERLeVJJNEVnd2dYaEJNZFpaU0VneUJOUWx5amFUUXZKaUxGdHFkUWhOMTlYb3kreHdtR3RqaUJyVUlHdFNNQzk2N3Z2YXpZUXh1Q1F5ejlkS2FhOUFRR3ppWDd1cTVRRmpSM1VPREwxc2pPalM0ODgycDVUR0Nac0hMQ3ByaURCR0lDTmE2S2tiMzUvbUd5Ryt4ZVJyV3RxNVlrRU9aMk4wWUJFNnhpRng3cU1ndHowbUZ1ZE5lNjVwL0RCTjVFV2duc0c5a3JWLzFnWFhVTlNObDMwbWVEbnF6N2JzR21wMkdTbGRzR0w5VklMWFRocjlkQTAyVi9LbXdlVzU0TDdUM241VTRKdzBRekpGdG16UExOdDVuSzNzODdhZTlzVDJLWDVjQzdKZm5TVGN6a3U3bXVXNmZKOTFVVitJTjF5emJtNnIyRkF0VEd1cXNmemJHZ2pyVmxSMjkxdmI1dnUzSDd6RFpkWjRWZmMvRnAvdFFPaStpYkpZMHZSc2pxM2hJY0JxZ0lqZEVXY3JydGJ2UVMydVZlN2EvZHE5cTZzcFh4QU5lcC9ycVRTTDdaeUQ4S0YrLzJJaHJkUFNrbTVEWWMrVzdjZndaNUhsUVFweWpQUUk1MSttR0UrR3VzWEZySVVIdmhlZlZEc2FxMkhsZzN6YVFOcFRzc05Jdk5vb3JQRVpFWHZqYWVBLzJlTkpOak1HZTdHMjU4NUx3UkVOLzFWZ1ZDV0hlSnpwYUozaGYyUHV1NndwLzZKcDFiRml2TjRSUEMrSVgrTnhkOFd2SCtnT2RzY1RIUWZIRDAvdWtpOVpUR2dsc1RjVitwbTdSbmhrQ0ViMTFlVVB4K1VXdm53L0lrNTFUMyszR1p0TysxVG9IditGdno4cWl6dTc4ZXAxMHo4LzFQZzYyai9IbVMrMUFKQzJBcUVxZkZNbGQwSDZuY3cvMm5XS3FKcFJvSlNjQ0tPOUZYaFQzZlVJSlU3cmxQVE8wN0pTM0c2eHh2M285bFgwTy9Da056NkgrVmQwc1BhZ0pQR0pUQ25ZN2NzMTA2R0NLeDZFakx1RCs2MUhqR3I2L3p4K3p5V0ZtSi9UNWRjWGd1M3krQ0RQWEJRR0tPemJqSzhiaXBxOUNTWlptL1B0cS92L1AzcDh0cWExMCtjUHd2ZFJwNzM1YUVvWGI3SWp2QUttUUVBV3lFYURwalQ3UWdDVkJTdWdwRUNBNjlyMS9rU3N6TlRCWGxlMHFkL3dQSExZWkVtWG1tb2ZmaXJBY2RLUmRDSG5wRkdGN0xyNXNOMXkxT2Q0NlhQc1VzS01waHhNWHk5R1AxSjIvaVM3T0FhWDltS2p2c2FNdnl5SEZ5ZWJTaCttcTYzdEtMdnFSdCtUMjlmTW94RHd3K1JqenZTZlkyUGNyL01UQS9sdGJWWFRrSy92dDNNVHluY2dMVmFHOEZ4T1kxZ3REbUhrL0hTQXYxVFdidEJPQUh2SzVOdTlOdVhpQWJkLytiYisxZkpaZW0vZk1BZktYbldUS3VzMHhQUmRnWHgvRjZzL1ZEWmZQODQzc2RmRGRRUU84dDh3V1pJaW5OV3p0ODNleG9QSUVhakZkczVPclNpZFJsVFlLQ3F6UHhiVnJhcEVQb0NveXAvYTFsZGN5MW80a3hzNEVVQVV5UjJoamZ1ZThRdHo2Q1VwZHN4MTVKVDJLRzV2S1g5cFIvM3pSeHA4Ui8wZzMyOHVaMGpsOG42aEw3SnNjd2ZmV1VBMW9ESEhTWGdUV29IRE1OamROalkyZEdNVlVjTWpkRkdMbng2VDdndjJTV3o3T2NQSnp6dng1c2d5ZjQrNnl1bWRLVzB1eVAveU1xclRNenZwOHhHY2s5cGVDY29nZENNWWUvLzM4MUh0NS8xa3NzeXMwbXRjK2Q4Mm1MRzJ3Q1pFbkhUVWVyNTZwVDZ4SzJGZThzRDhZZkZqYWxEZmlaa1JtdlQ3K3hUVnNWSkRsZmU0bnhOTFVjRFJWZCtyVExQc1ZlcEhabENhL0RnZFMxSlRuWmhpcXNWNmR1OUdOQ1RDVmVoMThNLzVZdS9NZDhaajcvTHFyOGJXS3prNWpiTWZuSk81Y3M1MCtUd0FZS1ozMU90LzB3Zzh0NDJmNlZwZ2VaK0ZBcWZsUHRNZkNUNHpJNlMvWGFqK0lYRXZIdGhtTmo4cHJUOEt5ZDhia1p4Z29YME03bWJIdjVNUDRNYjc4MjdYZmV1S1d6MlQ5SDNodFM5QnpuKytzUGFIekVsaGQ0aU84b2RjQys4dE5lUkIxaG05Y3kxV015RkgyQ0FhSVBmV0trZFRsbjhjZkV4dFRDK3hYR0RrQUdFNllUU2h1blpqZGg5RWlNYjFaNkZxamtNZ0kwSk81cXB6WGFmYTMvL2k2SU90RmpxSmplY0JrL1VGVklFYXg4eFMwc0NkVTN5cnl3UmRRNmlYWVZ0RzNxdElwWERQSXNJMTJ5WGE1UUFzTHpET08rVWhqa2RRWHhMcWVQRS91V0Q2aHNZbUk5WGFLNll2NHNmcktOaCtoTDhteFpONDJkNFFHKzlyYXRoeEViQmROOWhKOTdMVzA4TC8vdXhoQlBsaEJITmxYZXh0SVlxUXFQTy8xOWN4WDlvallHQlVnWEFtU2lUb1QzUkJIazVrbXpvcnVpL29raDBOSy83YXBMeDF6WEg5RzhQZUk3dTNoZlVYNGQ0NXNFa3liNjNsMTNrMTc1S2ZIUmVIUDhqaHVvajd0d3NIWjh4cVJYcW4rRG40UGZsTTUwbDFTOXorK1Q3cExHaGVqTnFlUk83SzQ5WXZHYjUvK3JqUzdheC9QUlhjUE5rbnR6d21RM29rTUp2dDVQbkFyTlc3MFhOR1lyWHBKVDU3UHFmMnNuTXY5c2I2UGpjbkVqZmphK0w3NHFMcWNDODNjNDU4VVY2M3NsOXV4MVVGL2t3RHdZdTlzL1BwbjdQSGVuSTlZMjhjNTJ6STgzdHZyNGkyRWx4elR3TGJseGJpcFF3QWNtZjNYR1VnUjVKb3N3ZG42cUxQMFVnQ3UzYm90WTBmakdCK1VjNzVsSi8vZnRrc3V4cThWZmVzbHMrZkxjYjIzeUwyM3hENHBRQzN3cWxFRTBvazhlOUlOekZ0VjdBd0E5VS9pWmh2Wk5PcXlVWXN1clRldVBuZUxyLytnR1BJdFdYeWF0Nm5INVlhV2NYQW1QS1pGYmo3aHFWMHlPRnlVV3pkalpuV3cyM3J1UVV4c0UyRWFBcHN4NkEvYWtKKys0Si9mek0vOG41RkQvNWZqMkcrekU2Nzd1ZWZyM080OUQyenZOR25uaGcwUXZsRjMzNVN6MStveXo3L25tRzNoMituelZDaGN2Y0hBNkxYRjZRejkwSHVHWk16OGN6S0cxQ0xTK200YWF5K2daNmMvZ0JwRk5jRjBxR0UrV0IwTnNLYjEzdTJsWXc1NHB4R24xRFBiREhJU3Y5VTBmTFkxdlpGZEh1aDlyYWI3RlFpdDhjL0txM0lFUlhtNnFnMGJPdFpIczN2TzlYWGc2dU1yOThxQTlVOTQ4U2MrUngyWS9SWFBVdm9TNTNpQTFzU2VRMmE5TkhCalBHc00xVGxYdDhyNkY2NkI0VCsvVnZlZVdiY3BsMDc0N25iY2pkWTJmN2tTNjc0UGxlOUtMOFJ0dWZobS9YTGx6aXQvOU9hK1h6OUk2Y3JkZE1OTHR0L1BlNDdHRUtaWFBBdlRleitKSjQ4R0cxeVRVOWRpN3hmazRwVzg1ZW02ZC9MV1pWM1lrQU4xZVZ5cmUyYjlTZ2pUdkY2K2Q1L2V1UGpiRlExZmp6M2R2TFB6K2E1Nnp1MzErZzM3RDdOeThNcjRQcmxVRzY1eW1lWU54VTg2bTI4WGJXdUNDekFSalBZc01aSnZsK3NlTHlKcm41SGZCOGZVQ3NlNjBKOTNZaDl0MFB4T2ZtRFBXNTNWZFI2OVRoTzNlMFBwaUZIWlN4M1R0Z2FIYS9iRkwrcUp4WHFoc0dkR0hpQW44bS9qU1p6dEpidXVvNnB6T0xMeHJwN0ZtT1B1L2l6RG56anoyOGhMblFzMCt2cjd3YzkwZ1hjV250Qk9YRFBRYkV1Y09LYjk1Vkl1dVVibnYrbE90YWZwT1J5SDMwRFBsKytGeVArUzM2N0lCcVlqam50RWYyWlAxTVhuUHUyUmZSUHQzK0tMaTczamlYR2c2TTduK3NVS3g2SWo0czhnVE4rMzVrL3FFMVU2eGJWWTNvMXpOejFoejN1bW9VSFA5Z2wyRk9qMXJkYzNOczZNM3dabW16dlhaL2JXbUdKTjc1VzJHcmFIWE5QQitwYTdVTU96Z1dlVnhTaFF3aTlYZXNCZ3JiUDFWYVFmNHJ1WDdOdlFJNTBhNktJTmRVRm4zOFNwb21PemphU3pEa3dlVFUyb0lmNDRQV01jM2VPYitoQnZuTXVGOXpEZEI0cGNCTEs0OVJTMHdEYkJWR2dydG9uV2dUVkFwLzM5NHRhLzV0UGZlZVpIdmY4Q3BmVkRKZS9lNGpkVnRuTmxIeGxGb0tERU5UWE1YNGNqV1VGdHB2R3BYdXBUYU83ZVRhamR0K0VRQUErQ3Y1TTVDVnJnYzZyZ3dLL3JwYmRpYmh6SmxjTTUvSWJmUXVmV1RYdEt1Qit2ZzUzREVacDd1UHIvUGZ6elAzODliRjJVejljUGYvL3ZBd1ZweGY5azA0cTZNS3dJWGtsZEQ4MkRoNzkvdUdnOS8rdGhQWC9aeHY0Y3YrV202V3JqYnVKVmlqLzV6MThQYU9VR29vdmMxSisvcU44Zi92Ny8vcWY1Mm1TVnYvaHozVTFEL01QNDNXejFzbm40KzB2cnZ6dC9QV3lLYlA3dzk4T3c5b1dIZi83NTZ5Rk80ODNEMzV1WGZQN1hRN29LOEZlLy9QWHdNczlRN0x2cmg3LzV2eDRJMml3OFV4Qm81RFAwZWYzODVXV2ViclE4OGVZdjMzNW81UUpIYitqMTlkTDVya2RQUXYwT2o0b2ZoSjdUMHlweDQvVGhiL2IvZjZHVjc2S0h2eDc4VlpLc1VuS01icEtodVlHUEdIOFEzdmhQUDNKZk5nOS9QWVJvNWJrSWZ5NU8zSEQrUFVkb0FzajU5RkRnVlgwZXh1dk5TL0h3OThNRDNtMFF3M1ZrN25xOVc3MEUrT1YvL25wWWIxWXZiamlYa0l0djZ3SE9pL3hhOS9oeXlNdEQxNXVqOHBWMDQ4YnAvR1V5OS9PWGVGTklxM1F6MzI4YTEwN08vU1ZQdTJ0dGxlcXIxYWJ4Mm15TkNZZm5PUDZmdng2QzJBM1QxWG9UKzZOVlFLN2pKY1NiZW9qVEgvZ2FpNGYvSVEvaXBnRitlWTNtOHd5LzFxU3lmLzU2bU8vajlTWk9RM0l3NUJDYXIzMm5KL0U4TDlqYm14ZjNhWjZoVlVITzhVZU9VT29tODIvYitjdExqQi9vNFJlZlB2MDIvbWd3OS9Ld3BNSWdEdWRydW8wc1IrajdDc1UrWGwzOW9hMDIzMS9tNjNtNm9lODFudWFsZXBCZzVTL25MLytLVi9CRTJXb2RiMWJ3aGhkdlVqZUovd3NlazBFdVAvejFzSEhEaDc4Zi92dGYzTC9hL3huTXZkaE4vNVBuLy9PbGc1OHpjZmV6MU4yNk1jSUhUeDRzbVc5ZVlwK0loQ3VrNFNLMDJuMS9pYmN4bW9mejN0cDNFZEJadWRuVHl6eVNJWEJUWFNDTi8yMmMyZTg3cGZrZWk1N2FNZkgvZW56OEYxYy9KeDRPS2xzRlRWWjZ5RjVXeVh3VHpmUDF2K0xWZnhFSjl0RGhCUjQvV2VPOXRmL2lna3pEREVNWHF6Tmc5aEt2NEhBeEFXa0VRcnV4aUo0akp0VmkvUHN1cW4vOStGZ3hyYTh6MTZmTHZPU0lpTmwvOEVtc1FmYlNiMTRUNHBSK3NQekdxNkRhRHg3TGQvdytsZHBTK2ExcStkRXF4WWQvOWxlT256MU9OL09YTGVaTHZPaGk1Y0ZHVHgrQjBLZytoOWZpTktRRWNMejE0L2ZKVFV6alpMN0tLWUd0NTJqdWs4ZjdCNHZOSkU2N1RYNDRsUjNwZkxOYnZTd1pYVkplWUtxQ0NjYlR2WVV2OC9WYW00emNqUi9WYjdCODUvc3FPSG9UazBkTjJ2ejFrTTFmMXZGNk0wL3B2WUdHSGhGMTl2ODk2SE0zTUYvaXpmd2JmdjkvL2pvOThRU3YzOXRuK0FlUFhtM1FwTHVKSHY1KytLOEd1L3dYQUxmLzliQ09EL2drdmlyeHc2bjArK3Roblh2ZnlkY3BzVC9GNjVjOHd3OGg1a0dJNWZqL2tqZHVhNXdmYStWbGxXZEV0NXdvbTc4ZTFzWGEzeUJHMzdVbHE4dnhYK1pnRlRBeDlPSzUvc25yZnoyOHJBaVRWZnp5VDAza3V6K281b0pIcC9xc29jWGdQK21QT0V6Y2pKeERLVDIvcjE0MnNJcVhZOE9DMkRsMGFmd2Z6Rzc1ZXJOS2h2RjJuczdYNis4dksyOU8rUkRld1BjYW4zMW5zbkZmTm5sV2V4M0VhaS9kR3U0TGZjajZLOUtvcGlicGEwM3R1bmx4alJYS2svbG9sYWViK2hMa1pmcEt0RnB2dWloMjEvVVhOTUlaTlpxUE54STdCdm81RlArWSs0V1A1djNWYXNsRXl0SEdUOGpBalZIK01wOUdML04xdEVMQnc5OXRzbmpzb3FjNWNvdkozRitsd1JwZXorWXZNUkJDK2NvNkJ6YXBmWjMvNjJGRHhFRDF1WCtJWWRtbFZ3MktCbWh5eVd3TEt1VWVLck1aeUE1L2ExS1RJMFJkSEMwRHpIdXNSWmhtMmNRbkgxK3ZmbXdlVG5VRmxoQ3BHODZUZWJvcEZlTjM5OFZGYUk0ZUxpcVRsMk1DK29nVDVvOVUwQU9LazNoRGQvWXkvM2MrWDIrWTFGdjcwVHpJMGZ5bDJzTTZjbC9tMzE5VytJZTBTdEl6anlRTzVuNUo4dXNtVzV3STQ5UHRmcm13M1JiSFZlTHc0V1R2UFBjSzh0cXMwUHlGWFQ1K3pNMHFXNkZWV0V3eWZFSFNLbDF2WHR5NDVEcmkwRXcyTCs1bUhvSXdlMWtock05bXBhZVR1UytibU5oZDNEOGxoZXFOai8zejEwTytubmUveWQvcnl1T2htSzhmWG1jRk1MOXcrb0xsb1YvU24xUWFteUFucUx3RFpyOWhOMXozQ3pGamxjS1RDa3lxVkpvdlVpbTZKa3F0V3dyckIyMlZ6aDlPM3BCQVVKT251bUs1ZEgwZmk4Q3pKK1BtbTFXQzM1MDBQanRkTGVlVkNYeWtZdWg0RlBnRjBGc3FNM21QMWNpOURsbkc3Ty9nakR2Ry9kUDBPSTU1QUI2L3YxcHZKa1hsS1A4eWc1disvWi9yYUk3UXcvMkNnTnJsZk4wbWYyemhNd1M5LzcvNEppSUp4WFBnR25JSStIS1VlWXA1cmJaZmYvNnlrYnB5ak9acEtWUHdhNmV2UE0rTDB4ZmpIN0h2YnVZTmJSbEVXUFFtNithblR4MmRZeS8ySDhiYmc1Vkh6TGhOdkowL3pkMEF4ZW04bEJsZnNPdzVNajFPQ1BHOExmSlJWc0E1amYvNXRlb2xwWGtuaVRiRk9oRzMzMHV6bmRCazdTVk1MU1Z4Yk9FNHY4OWZrcmkweU44cUFwZ3AyNVFCSjQ3SWIzVzBqL24rTWovZmQ5ek1PRWpjaDcvVEhLRy9IbjdFeEdJdjUwLzlLNXFqSkE3VDFjdThtamFsRnVMWXRuUkFKZkFMNkhyS0FNVXhtWVdCRUNFdkZ1UEFSR3NIdWpIRm5XMXFMN1laSUw5NGZGWUxjZVpDdFlmRyszMVNBYUwydFpWajd0ZXFFcXc5UVEwOVUrWnNJY3E4eEljS1lrK1JPZGR5a05xSGJFL3pmVVhPbmU1cW9TcHQ1QWdFV1pvTTlUTVMxNHFRSTRrdDE5SlhxdFRMaHJFSTJSNVY2ZVRPUk55eFBhaDlFZm14Q0JOZmh1RXExMlh0eDZ5bDQvM2c1MzJpMGVuUVdHcFRWZEV6UHgwOUQ1TWdDNlN2NUc4RnBWN1NLWnp4S3JmVHJCanV5Tjh1VkVrT2tCUzNWMDZCUHh1bHRkY09RZks0bGVKUk9LYVpWRlVaUkRaQjhFdGNjNC84M2VyZncxUnIrZDNWdjRmSklITGgvL29HLy85SHVGcW9zaFA1Q2RvRzFpaWN6SFRaMzYxeXZ6L1l1b214Q0xxcjNEVjFaRSsrUGovSGJjNnp4TUlUVm8xWm8zcXYrelRxL1NzSnFxdjlMdlUyd3drWDJwYTRHNXBsUVEwVWFnelNBWElPNjNCY0ZvSjBOOFBwNHpOc29VeThWZGRObThzbkpCRVhUWjRuNGhNcnFKSENyUDQ2Tk5kNXNiajFvUUdTSmxVbnU5Q0hHWWx5N0Ntek5SeDlTeTljYzhBSGlyRlVGWlFQVFI1NVpxZVlUOFNGYldvclp5SW1Ya3VGNTRmR1JqcWtaQmlMZzBEQ24zbUVadGJBMGxqRDNpRlFPb1V6SVdPUUNiREdMSVE1Y2hNeDgyanpwWk4wQ204Q3paaUhvRC9JdkNRNERDVnhaVnZheXJGR2ExWFo0MmZEcngwY1N6K1FRV3ppd1dzTk9NZUVkVGxNL2hMYWZBOFNBTzlBUVFIcjBYTndDc2YwLzF2dGxiTWpnMmNsNG9KKzk4dXdZTW5NZHVZVnkyZHBxV2Urb0sxdEUyMGNTeTN2cDliVW1icGtEZGlqbjhoTHgrUWpQMWtET01XTUpLekNhVjlmRG1OUjlOSmxDRUFLZmN5SytncC96OFhuWkJIUU9ISW10Q0dVL1Zadnp6blNZemcyMjIyMWJ4eWNpUmpQSjZMa1ducHVtM3hHbmdYdXYzQk1CeEV3REJSNWtyZ0xyTUhPYTJuSUw4UXRZVWM0cTZVbkdLeDVNL01TblNSLzhiM2c1MnVKV3kvVnRuNnFyVnlydTRaa2pOSXBmTUhZT0dhYkcwb2lnTi9Cc0FRRkVVRDdXSXdkUzI4NXBwRWZQZmZGcHFmNkh5a2VMVlJaSDMzajlJa1VacUd0aURHK2J5a2VoNjVpckwwSkFGWnNDUUNhdUpsUGVQcC9mRy9pNFZ2OGRXc0xVUVJGYmtrSkNBcmd3VFdBME9lQkpNS3dNa3pQTUFoSzJZV2V0ZHlVODNVbjFkb1Y4R2haTlBWc0sySW9ZWEZRaUFNdjFRdFAwSG03aGVrZTA1dSt3bmRObm1NYzJrbG5HL1ExVEJNN2FHaVZOdzM2c3liUkt1anJPLyt3Mmc0RkxOb2lub0F1Yy9Ya2VoMFkrekJzNllWanp1aU0zazdNYUlBOTYvTkVYRHFXdVBaYUNPNEtpMTlNcHlhMzRlM0VLTHpFNEJ4TG8vUk96dTEwdnVNeXJCWDQ4NzRBcWdWNDArUWk1Q2w4OC90d1ArMkRLeTFEWDVFWHJpQ24rQnh0c3gwNWdsRU13OVZ6VFdZdFhFVXVBZ0NpbFhNQ2xtZ2NNTjhHQXVKY1NmUW0rSGxNZWVmM3p6d252RDdLSGNVUWhzV1NOdEl6MEJjZXdOeEpneklmZVltY092UTF6SXNUUWtkUDdQZUI3OWcrMDFGTzdoV3JpR2lMZVFZL1c5QVBrR00rTWo1T01MOS9LMFFWYUtpbnJXeHJ3RkdldWlCYjFPYnZkbGZQcHRuaFZVWERNbmpoS3AydEw4endNN2RyRGR0Y0lIdzkvNXNLK1UyL0lMTFhVWXlkcDNSSTA0L1NPLzVPVlZRWlpoWUQ0N3kybDN0cGtwN2hOdWdQa0RNaHM0VFBBUEZtYWovSU1JK3g1OFRQNkpreWJaSWlUY2FxVXAxVllHa0FrSEQwakZOTXk5aGs4Q1FLdUhuRVN4ZlBXK1pXYmwvbi9QNEl5L1lVbXllQnFSN0xoVXAyM09Ddm1pdzR1N2VqNTM2cUFPUHdXWWFoajM4bkFSQ0lITXNMd2ljb1Z4VUgyWmJPK3dtV3k1MUVWWXpJRnNKS2xvQiswSW5PRmZacnJ4WGdOYjVJWWZiMTJHYTRSOTdXLy95NFFydXZYYXRXaFBGVlNuZll2dms1ZjZ5ZnVOYlpQengrM25EV01uWStHWDhmZXBheERoUzA4eFJxbzVpRHlNZDY4NTc5OTQvV0V0cnIrUVRyNFBwYXMxenRZUmtEY2paellySHR0V2FoQ3czMllxUXFnOHdwb05nRy95NTM1bnpER1piTndoNnAvYUJ3TFIyYjdWc1h5MzBwT21DWmdKK2Q4ZHZ6NVByelRtdjdEVnFZTjJhaHIzUXlLS0tTb2sxZzdqblhFdGRBczdTaDhlcWFaNTVYTlk3NFZ0YTN2dEpaZTBMUXRpWlI1cGsra3gyYlFPbnNQR0cvZFZyTDNGZmFLUXp0a0dUdklvOWRXYXNHWU1CNTJMNVJPdWw4MHQ0QjhIRi85MHpzRDJ4akRKQnZHWmt2SUNpR2sySXVuRFQwWTNjL1hQVGF6N3ZWUnUxaFhjaUZvK0t4R0M2NkwvaXpNOWtPc1ZzUUpPaUEzU05vTEdWMElGVTJiZ0NGbTRNMUFkVEVOcGhUNERQMVUyTVI5QTNzM2p4alhUUXhZZGpzMmxNcUhUd21NZ0hiRzl1NkhVUEFQNmhPb3ZJR1hpdG5wODlDT3IrOGFmT1kzUzhYYks3TVN6WE9CbmVSYncrdDJqcmsrenV2dEplcnBnOHBFVU83dTNvMnlQTnNQWk1IZTUvSlNiODRramZZUmlHeWJSaVlBK1FuYlJRb1dBNVdjc2d0d1UxS0VQZ1FRT0FUbEFac3FGTDhHQnBFTjR4dGF4QjVwZ0UwYWszQ2hhL0loVzN5ZU4zQ0w1WmtvQSt4VzJHR3YwL1B0dms1QnRRQ3VqcDJxc0puTEtlWHFvTGxOYjAvZWs3RUIzck1wVEQ3TnVWMStWdU5yeDNNdzBvdkRCUnNtM1g0UUJLUm53NndMWDBNTEEzUGdtMERsN2o4QzAvZ2Q1NWljQVNzUml1b3JVcjhKY1ZJYk15N2tzaTUyTjRCTVBUd01Ib1NzVDJJdngrcFNwUTVRb1RsREpaQmEvbzdhSzdJRzEvWm8yL2hpdGkyQ2FGcGw5R2RCRUFhbVdjYTI4QWFoOXFpaTIzWnpmeVZ0UEE5N3Y3N0dlbVpMNjMrL1MwV1Ivak1LUUJTd1lZMCswVnBhekw2Zzd2QjM4ZThZSmp0OHB6aHJBak5sSGFWb1h6RmZGVitaaWpvaUo0WkFabHAwTEFSSHRtTmwzaGdpWjhQeThJR3o0enhaN3ZQVklmWEJxVU1zSThzT05nUHdIeHpucTYzbm9YdmdSUUEyNVoyOEFRdHN5MjlDcUdRN3hFN1N4SVovNnlKREtLMFd2b3NqMHgrUlQ0QUhZQTlTMTRyeEw2bmRHTGIzRFZwZTdkNi9pR0pwS25raGg3VEZZTU5tOEMwL1JiN2doUklUb2dPdUsyTHNaeC9uejdIejAzL0hmN29abDlWUlV6cE9iQmhuaFBIRENER01UZkw1eXpQU2xjNkMxY3dDbFVoZzVRQU9FQkFoNkEvYUYvVGNhclNqZFVFemcyZmIrZ0krNjJkeUdzMmtHbldOOWFlVEF0Qyt4bzVYL29adGFkdmJXR0RpQjlQbjIxU0ZyT0dGTVFpdElHMklHWlEyQllVRVljbXo1YzYxb2JRM2lEeXBEYkVXL0R2MHFGcDFYUDIyR2ZFYWZNekkrSlR5VmcyYWZnWndIOWlCYjdQL1ZIRzZNS1cxTmpHNTNaMHZtd0lpRjgxRnAyM00vc0E2TlR5V29PbEtrWGJJREVLUDBFQWhHYlgzck9sNWRuelpmN2FSWHVneDRwNXhWMWRINEROVEFxQTMySGZOdWk3NTFqYXdrL1FqdWlVN2s5WjkzZi9xZmowdWczMzgyenU5L1A1NS9oemV4OU1IZ0FQejdCK0dCUVFNbjdyZllGL29SZFVEMjZCbDFJOXd6b0greGtsTDFIZGRBRUVwOUVrK0V6OVdmQjlvWEgwOFlMOXVQeDVkRmVUSXhmcGtzaVhDaERrbmVmM0E4czhpQ3Y3QUhZSDU5RmZobDdMd2ZaWTVtQmI0UnFRU2FQcCtVUDVOVlRqd1UyZnl5N3Q2RUhQRS9qSU5kdHY5dW5WWGoyT09LcmxKMFM2OXVNZklPdXdIcW5GeHBMOTFoYmt0ZDJrUytCWFJnZk5RZVRhbStqOGVKZzVBQzJhT2dWL0JGdVl4VzZ4SGJpMWt3elpMZjN3cWM0TzgydC8wN21EWDluZ2ZEckFYM3NQbmRNMS90QXpxL0hydk1YZndhK2txVXFuL3JMOUhqcnZ5WVdmeUcwYVU0UjFWYVVUUTlxU25tY1p2N3dRTTNoV0RHaUVvdjVKUk1BNUt4bDRmd3pvWGZ6cVdlWlZ1aVQyOXJWaGk4cnI2RnluMzFPVk9nalBLUFJNQUF0Y0VmOU9MRHhoZ0gyeWxndHhrZ0Y4M2hkbzR4ekpEUkQvc3h4a1dmOXNxY3VXanZtWS9SSitWUWp3a0gyZFg1ZXVLYWRlMGprRUNscE1ZWS9WQUZEN2RYVCtWUG5EQUd4YjZtdktzNDJjRm9DaEUzKzNtYnY2QlB4cUZnTUtSRHdJN0l2OGVnNmtTUzZjbHZZbWZuVmFoQzhiOWdqUVMyTUFjU01tVnM5L2ZSTDk2cWtKeXRrZ2V4WHhaL21WK09Lem5PWFIvUlM5M1I2K2tQdDZuUS8vQ2ZTcnd1SUE3Y3dUTHZJckF3MkRYTFV2SU01ckRkcHZ0SWVQNHJIMXVDdmNEd0d2Ym1sWm9IU0srZVRUK3EvaGFWTjZGWXUwUzM1bHc3SDF5QkhlU2VkSHViZGEzcHplajhqWnBoOCtLMmpqV1FZSHpmbndXbkJRRmJsd1lNZ1V4Q21nQWRlUmxoL0VyOTNXY05ITnRRbS9kTXhCWnB1UG05RzB0L0VYNkN5L09ncEtIVXZqM3VXLzN1SlhSYzhjd1RnMDhpYUMzRmI3MnNxZXFyeTJ5Q0o3OHBnUDQ4ZHdwcEFZTXRTMDRNOHBVZVlYOWJpUHVnYndnTDZHQW1rWEJnTENlcWp1SjVQMUZUbjlSZjRyNDlkZGZYRDdMK1BYdm9IM3QyT0QzejhydjA1TTU1dlgwc2QrWWh5d3pyZlA2dGZHTVBzcEJVUTYyRy9pVjIzbm1Gcm1wTXZRb1RIZW9WWFRDd3dnZ0lMWFlGdVgxc3RGZmpxSVBvZnN1OThlcnZqVmlBTXplSmRlcXV6aGtqK1JuUnFwcW9DZC9XZkVPZSszaDNQSDBsdGVhL0RDZUxVQ1Y5RmZTK2N5QWRLWWhkUEU0QUtoVTdnOEJlYVkvRkh4NGRCSjVEWGt6cTc2cjIwVTlJT3RuMnpHVlA3azJINzFXb0ZjQWpNcTkvSXIrQVZzSGVKN3NTRVZscmp6K3N0YzdlbGJMdzVnVUMvazdoUHNhKzB6VXYrMmorekVZUGxPN0hma2prbUdZZm5GYitWWEFMMnhiL0NyZDBJZjdjeExnc0t4dE1NVWFacHQ2UXUzUi9ia0M3ZmlUZmpNZmNpVGV3bk5kNmVqMEVrSFcyOGlickh2NE1kVXpyWEVpQUJsUG9hVEZIVHVBWEpPaWh6ajg2WUR2U0VXNml2eW9sYkRlM3pHTzArQWVwRXR5UmUySTA5YTVyOGgzblNHWDFIdXRBYkliMm5mWnJ5NGRYcDhGQ2phYWdwNzJsL1VIejhrVWZGYWF1aTE5QlVaSmlKdkhFdmJ3ZUFIR0hxbUwxd0phbkIzbnNET2FNL3FrR3ZuT2F2ZSs4enhwajRiQkdpSXRxQUJXTkdRMUJod2p2bEcvWm9nRWhOUkRNNEZtNjRYenRnZ3habThzR0hBSzZhZmFCdVkreVdKaGJEZkhIOEcvWnJZNXY1d2NmK1VYLzNUUFpFOGkvbDZPaWYxTWlRdjR3azJyWE04dlJzU1U2Rm5OZm1FK3ZVK2U3Z0U1QjJiMmdJQXhxUjI1Q1hZZmlldEpiNXdONTJMamUvUjJ0aXhJQjk4UWM2ZC9pQ3F6bkVXVnIvM2g4YUh6L0tyekFkS2h3SzFuYjV2S0owWDV5VHZBL0dtNm51U0tNNTZ5OUNHV2xmYVE5Q245UUJLcjZMMUNaWnQ5SGZqVDJNUDM4ZXZ5U0N5aS9hQ0RzQjZGNTNQV2lLeUJaUzRBTG9WckJ5TDZJdlpjaUNPaXdaZzRTZVZjNit5aHdzN2tSZERiRHNvczl4UGpiVmphVytsODBsZzdoRnRaNk4zTWN2Vkh1S3dEZUVwKzIwQU1WRElRK0RmQy8zeXJMWG9zOVJZVkhVM3QvaFYzRHBRODJNVXJxVzN4eVVJWEFXd1o5OGRINlkreU9Ta2xtYnJTQ0wyalhrL1FkeDhJajZWWUo2Zk0vOTZsejNzSzUzbFREQVdnVFhJZ2o0cTl6Uk1uSVBlR213RFM3emZmNFhQZDhQSmJFeGtHc2s1VUh1MSsrZjRyMCs5M2VoSnZxVmY4YjRxZXBpVndIeVlkL094cFJsWW50djMwVGw4VnUyaFhyMCtGZC9ONy9PaGZnNi9qcWJkM2NoOE03OGU1cGEyQ0pUOXdiN2ZIcTVpU2NUSFdxcDlyZTBMR2xmcTFrOVBoL2ZIbXpCTjZBbzYrS2xCYXVHV0E5NVJBaFFvcjZmenFZSTJya1g3SkNmTm9kK0U5cXFCbmVWd1RaYWo3cFBoMXJUR213M2NMSnlKdVBSYVFhNzJ0WXowZDhpNVkzWjRYOWkzVmNVcFBJRUxBNmgxYkhPMk5XaVRQdGdCVDMzWnd5LzBYemV1MlJhRFJNNUlENjd4SGpyWFhQTXg5T2lRYU5KWEptNGR5UGZESU0xTllHbWMydGU0S2c4dEM3YUoxbFMzUkU0S09ReFNYMjQ1R2UxeC9LVDFUWHcwbDQzY3RtQXdIOFFvN1RmWFMvRFJYRHBMYThlOUFMeVhmTDR6TzZtVHZjR3ZCSkJXenJ6RUtNN3IyVHRqbnZYNGNLK1JwMDdWbWl5bDcyRTk5SG4xYTE4dkF0TzRvNzZwckdGNGw1NjlwRi9yZCtNWGovOTM5R3U5amdHZDFiTkZZTFpGbjJ0dlBUVFllaTM5V3Y2VjkrTDZYYWhRSCs4bG5SeDhoOWI0VDZsSHZNc2ViZzQzMGQ5RjU0YWxvVVlOdmlMejJPZnlVb0lIUU9BOS9nQjcrRDUrM2RtV2RnaUVUdUVvNzZiemEzME1GSjRGTURPZzVzNjFOT2p0cWdaRVlKdHcrU240OVQ3OWVycUh0K3ZYS3I3cFdGSG10OGhBZkRZY282eE5sTG9yWWh0ZnA4L25TZmRUNjlkcWp3SExXNDlMT3V4dDBOeDhoVDFNZWpleHpRdkRKQ3Y5UUtGLzJMb0VheVdHMmhKTEwxelRFQnh6elBJKzFENDVjL2FmS3o3TSs0SlJPeXNuZTZ0TmpPMWhHdCtzenFoUCtxaWNCSzBkYTBUN0hZM0lrZUI4a1pjNm1aOTBjcytFN3dtMk5jakFEckpHbnovLzJtOE9iM2hmL1hBWmI1cE41Vkc5bHhsaTdEVy9DMnpkb0Q4QVhCaTcrSFQ2OWE3NE1CbmdBSExteVZNUWxqVUgrKzMxVGZ2QVJBWDA0TkMxYU4xNlE0NWhudlpqTWYrVXRzcjkraFdHZU5pV3dYbGNnTEROQ3I2NDhpWTY3enZZTmt3SUpsRmc2VnZQeFBKZWl6eGxEelU2bm1KdmZBR2xIdGF6c2o2YUZlTHhJSnMvcDE2Qzh1dGNRWWRBUWJuREJvWW9iNmx2SXJFUzZGT3E4R1NxdFl1cW41VEdBa3JibWZVVkc3MzlWRldPaHBnVW4xTy9YaDI0OHRwNi81NHhuaTJOcDdHaHk3cjBTTzNqQzNjamtaNS94NVNYZjJqK2xmQXJES2tGM1FvMDg4WjZ4S2NHNzAwSXBCN3BGZnl6NHNOMzJjT0VKa0RlVEFTanJXTWJBdkQ3akRmbzF5YnR3Z0RIUCs3ODNzU3ZUK1BaTytpdXZ3dkhYQzhjTndaQnpZZzlaLzY4M3U3UHhxK09FaEZzRTB0VFNob3hYMDNuOE4xYVB3bjRBWG92WkJnUkIrekhBa1prUW1LYWdOMW9pVHV2TmVEVW5xNnFDbUFoTFZWRnkzd2xRbjQ2eWo0dnY1YTFIem5GWTZJWUJkcTcrMThadm1PdE5vS2MwZWZuVjJGMDhOczM4Ni9sdnRxNUoraG85dGJ6QS8rMXN5elBwNEZYK2dmaEpMeWh2b2tOeVNObnA3MkZ6bVVZdEViUGp0Wk5vSGxmQk96QXFrKy9xbkY2VnRwYlArR3B2ZHpBVnlTeDViNldPWXF4c0sxQk9VajZWOGRTN3ErWHFQalZmbGZmTmJhSHhjSnJPYlNIcnQwRy9GQUZRZXpJTm5laGZkeVRMVVNaTFFEc2NadGdVN0thWW1QNWNiVk80TC8rOTQ5NzhxOFZ2NjdmMVhjTjljUDYwclZZRGErNFpqM1lKQzdIQm9sWE5QZDU0OE4zNVY4cmZrMzF0disrL091VXJhWDI4VnF6RXFlVVlaZjVKM3JqYzlyREpiN0RFbzN0ZS9qMTZ1ZnZxNWNvNnpTclhyckI3SS9DMHJuZkhxN3pxeWZJeTNFaXIyMFRmSXZCVEhsdHZVUW5jaVF4dHMxOTVHRWJHODROOE9mcXY4UE5MUkhaRXVDQWsrLzBCcEdueU9BTDJuK2tmdDF2YlZPWHluMGpXbmRwRENJdkNkQ3RPdUlHdi9id1d1T3d1Z2MxOUlVTzcrTjFpOC92djc1V3Z6cFdCTEQ4dHJtZitZbWNZRC8wL3Q3RUpyOVdhKzFxY2VEUDNZTlkwNjlQVlovd1hmeDZjQ3dOTUQ3SHBwTmdIeXJvbzlmRmh3WGo0QXRRbnlRQ2xqcXAyNFM0ZWhOenRFYnJOVng5ZGRuZWVza3NKZ1BKQnl4ZVBaaEo2dS9sMXg1K0R1TVYrbFZEZmt2RGRrVzE3NW0yOVJJbnU2Y2YrNGNraW82aVoyQ3pKZklhOHFsOXlMRWRHdldKN0h5WFFOY0VoK0NQclBldllmRWwrUHpFS0ZDaU4vYXJrN0VlZ0M5aGtoNGM0anZRSWM0VE1ZTCthT1VyMUJxb1NvZjI3NUNlejFQc1Z2YjY0Ky9XcitjRzBBTldzdDJvUnpRS1gwQ1lyM1B3LzF0R1BGTmt6bFhlMkovVDEzZzcwYkUvc0NCWUNGVU5Za0F4RWttT2h5OTdkWVlTNURLVHdOeUJyK1lvaHFBcVJoNGtxUENFTm1DZFFJOXhNZzQ5b1kxVVdUUXBIZGN4bDB2K2VaY2V1bCsvN2h4cmNJRFpGbGdQVGk1aFNkNkp0MGEvcXlyYTJyWTBpbkVPSTFnSTNydnNQUDNmaVE4ZjhXc2k1MTdTNGRoOEZQdDEvSG9XaDFQdGtaa2txdEpjK3hQcjEvdjgxeU4rdFUxdEFiMnZabWZwdkRMZU5LdXRGVWdpSFpCUCtyL3dtbXFQM3pxS2NmajA4U1o1SGM4U0kzSmtndkUrRlRBL1ZuaEVsL2pWdGJJMzR5UGk3eEllMWFOQTZWV3k3Yy9DTXcyLzlZTE1malcvM3Rjbi9DcCtoWncxMFJtZlA5NzVkbjZsNDhMa2VSLzYzdzUzOTNIMmQrSFo3eGJpdUViWG5DcVhkc29CY01OYit0WlBSMzlpdkVrZzhzakErOXU0NVg1Zlg3ZFR4NWNBUDBScTFzT3lQTCtyeUxrakdJZWFyYmRyL25hRnMxUGhjUzNEWjRxZFFESGFXOWdlUElNOS8vS3RQd3J0L29EM2x2TEJ3SjlOdW5RV2o1ajR2SUh0bHpMVzdCZmkwaXRJelF2Z0hSVExWOVJMME9jM1JPUW5mRVo5aVFQRDJCNm1GWjZMZlRPZmcvMkNjYVBXdWpvZi92UjhDS1pURFovNzAvRHIwaE8wRjhkU2M5ZnNYTTYvVW5tRWRhTm5JdUlmcGFPOGhzTlc0WHhkNS85d2NvN1c2UHBEcTNrM2RRdzJYK2tjWEF2ejdmS1Q5TC9XNWdDVlBnVi9BUHgvNVNhL01sd256cjRUWCtlSEpBNnd6OXZBODR2WityT04zN3liRXRQcDFkaFV2NlhldjdkeEZDTjJUVGtmVG52N29hVnlJK0dWL0pwUW5DL2xudnpybS9oMTZXSWZ0VFd1NWNxQ2FENFJENjdTSzdTcC9jVTJlL2t3ZnN4VldXUno0SEt2cGNQTUpZalQxMlluREVsTTllQlk0eldiQVZYSGFpVHI2NUZUL0lSNmlWdjhDdk1FS0ZiTUwrRlhrY2Y3ODJsTThGUHdhdzhsMDZURHpjaTh4UHlZYnU3a1Y0TERSbXVmcjlrbzJCNzJGV1BobWs1YkxiRVorVmZOYVBpejRzT1grUFZtMzg2UjdkS29IMzZxWTc0T2lqK2xWLzJWL1RrWCtQVm1uMTNhdEp0WWY0NGZpd09kMWxvSGJKNVMxVnYzWi9UblBGM3YwYi9CcjdmNzdQcURMSUM2cndEcWpRbSt4R05UUnlqeVFlMkxoV3RCelZuNktiQTNmbHI5OEFWK1RiRjhaTG1yOXRvMStleDYvVWxaUDl6QUx2RllIL2FGM3NRLzJYKzl4SzkrWWh5OGxsSFlna0hPMFRLUTM3clNDMURHaDh2UElrZHFubU90MTcraGcvL1Flb2ttdm9SUjR0VzlHbHZuaHlSYUpVNVlBOXRLakZTNWljVlFZcnZGb2pVMkJ0OG1zM2IvV3l5T3p6OEw1TGlYamdVWXV4R2JZMzFjd3hjc2V2bG8wUXNCODAyUkNWWnN2OWxQVGpESzdmMXdvZktRYjRPWktVM2F2NHRmUTVobHRqakdEZmFoQnNsSUFuTVB1SHR2bXRYMWkrZDQvWFFlbFVrczRPZlBHUHAwYzRYQ0gxTDMvT3NVVzRuT0hIOHIzdjVSVHM3SWcvNmdUV1ozamtPZnpna2F4dUxzYUE0QnEwUGEwTG5qQmEwTFFYTUYyeWdnd3pLUzMySXp6MkZtK001UE9vSnI0dmN2eGF3M3AzajVKUVlYbVE5bVc0UFVGOTVRbDJZTjBnQ3c3cHM2aWM3ZFhHTGRYdHNqZnY3Y01ZM2xyOUg1bDdCUm1HNm1jNE5UWStkZzJXTEFQSERPTVlQMjdUb3pPZzlBK0JvYVFxZHdCV2Z0dFlLRDJ0YzQ2SzFLalRYZ2IvYXJOVm05MmErMFNXWkpoOHdqNWVtZXpPNHhIZk0rNUEyTWFkQWY0TC9UK2FSZGVBS1oyMmhZTU5NVzh0aCt5dkw0c1BiWXRnYWN5M29KNmVjYSsvc010dXNSSGZ0S1p6azE1Uno3eTlBdmVxYy9QanVTK1RPbGN6SzNuUG5kUTBuRXZqdlFNYTMvaloySlNIb0JsRDN5cXA1Zm9xK0lIdDE2bGdnekkwdTdvOFJZejdiTldVMUF4OVY2eWdVNlRxS3QzOUpGVDBFd0MvbCszTExtakFvZjlvclhHb2UydWM5SWJQbmpmZUVqT2w1NUxZMHJNWnZ2eDZOVThmZlVDZ2VaOUZsRFB5aWMvN0tTVytoQXNOdktmak44VC9DN2c5YW93Z011R3JpeStVL0IrRHVpNDhEUzBIaldVV2FObkk1eHV5NUNpQkRGRXNZMHlQdkNMTVRyTkhKaGlZWVlUampZV1VtSCs0VzJmL3MwVjN4TXgvVllocmlGMmU4cGVjOSt4YndIMGd2OXNUNml0aGkxdnBsWDZianVRNDlKRDBFN0RtN2swMzlJMUY1SWpjT005SHdmWEtYRGU4b1k2czg4WVVEV3hQclcxSmN3aXhDdzZibzdNcE9RK3BMNEdYaDh4dU5jN1FHbUZxdUQvbEorWGxxVGZVeTZIZldwQjcwcEY3RHZUdnRXanVqWVUxRGltRnJiRnZab29uUzI3ajIxS2dSdnJQazlJbWRCTnR2Tld2amFIR2lLazZJTUVQYnZhQzgzdzRJNkJJcGNCSDFqTjR4Rk9VamtkVUJ4UHlFK09CRTV4K1IzNEhOTTd2VmhqK21ZOUphd1BQTjk5aFRFNWNnc01CWTdzSTVtcS8zbWVVeDN5bU1FZlRBR2ZlWVpxYkc2bzc2WDljK3dIQXV0ZlN2NzhaY1VNK1AzeERidXRZOWJXRmQwTmxNRkNkQVAzOUxHZnRLSm5SdDJ4YlNXaTZqbFo5ZXU1U0F2TVE1K0FmWjcvSHQ2RHU2bFk0MzNXL3JXTXdiSU52VU1ucE1uczlXdXl1TmVmYlpZbzc4aWNyQ05hbWtITnFQdEkyczZqK1Z4WUdtY0ovQlRKaDltL2NIV1RveWJmZGJrZXh6RUMveFU1MzJaN3EydnIyeHJYTXRER1llU2gwMG5Dc3c5cHlxZC9LZmUrYVZZMFJFZFEwMUNBeFB1UG5tc1d4SG5KNzB6TlEyRHMzekw1aGdTekphUDh2UEt2cnJYMVEyVjhwaDlYejNDZnlOei9CMWxUR3B6Zi9IY3R6dmw4YzRUOUZmUDl6eXAzNmJ6SXhodSs5RmNLSml4OENFeHoyTS9yei9JdkJiTjJ5anl3ZWZ1NlBrL25YT2wyWFJXRS9oQWZiRnd6UTdObzBGZDdmdmlmRy91VFRwakgwTTlQaC81eW12b3VObGZlVExqNjhSdXF1STNYdEpaL216Y2xrczF1MmZ0aXBtUkI4aUovRHY3VEdIdVFEa1hxdUpQaDhvdHgyd0xyalhZZWduaHp5Q1JDOWVFL09qaEkrMEs4bnl5N0tXT2llWFVtT1B2aTdzSm5keEpVRG8xNVIyYkZmdGhlNzJianVrc1hiTXRHSWxjM0ljTlEvcWFLTTVMeTdYMFZUVTd0MW0zci9hZHlFOFF4RngrWmZ6aVRqckc4bGg4N1F5TjAvang5UjdwRDh0QkhjdmplbzR1MldlZWlXNzZBbzA4WFprYkZXbHU5Q055ZEhmYXg4MWNidUZZTXU5WTJvMzkxdk81NVBQWTk2eWYyKy9PNmQ1cEh4OXNJVUpPMzFnNzF1RGJ2Zmd3QkVkM1J1cHV6RDNwUlNUeDQ0V3JHRXVZT1JIdlFtZlNUb2R4TjhiK2hwK3M0MS9XMTMrcDErYVlqb1VvOGhNRCszYWsxNkUyYjhxK0IyKzVyNjFzYTRBY2twY2h2UTNOV1YwWjFsTXN6dmg3TWZhTzVmRStDeElEL0RMaTg5d3puN3RSUjFUNXNmenY4K3ZPMFhIUUgvRE85YmpieWJNT1NSOWlacHY3bm1QdW83bWhJY3gzVHMxK1p2V2hyb2x0WXgxNWlrem1Vc0xuMkR5ZWszUDh4WGtRNDJZZXhEdU9VMHphTzhjYVpEUTN2L1dTTS9VVHRFL0hOYkV0L0lGN2JOb1YvR1dzZzh0MEhDaG80NWdkUHBCUDc3UW1qelBQTkxhQkJiUHpzSTVaTXIvbjlQeCtVL3pZN042U3gyZm9HR29qZUQ4eFppN28wbWpyS2ZvSnpwUnRvblZna2ZnRTFqdXUwbGs3MGdmdDkrMTBmQWhvejVpaFJJVmphU3RQMkMvdGszeWVzU0F6RkVXdU9wUHhCOUV5MFBIK0poMm5wL0cyMjVqL0RYbGNPS2E4ZEg4ejNiNVJIcDk1MW5iR1pLMnVHR3ZiUWlleTZpNTUzRDg5eDQrbTQzb01sTWtvbjhyYUdaTTl3aXZrOGUvYzQydmw4VGs2VHBtc3ZhUi9yc3ZqTStmM2Uzb3Fic3ZqYzNTY01GbDdTVWJka3NlL2ZiL3ZvV01tYS9uYVBwUlh5T1BmVHN2M3ltT05zNjBCRjFnaXU5YzcrZ0ViOHZqUXpDbk1QbFh0OHJHZmQvU3N1WDhITmdPcEU5Slh0TVpsNVpqYUMvVmpQMmJ2NE9kMWJ0UHhVYzdtSGwrZzdOdFJVT1JKNGhJK1IvcE5RSjc5L24wREhSOUdKM1ZSTituNHRpL0ErcWNUdEhXa2o5empjWStiZUROZWNVekh0MzBCV2w5aDhzaHJrWmtnVFYxN2ZINi9xOTdOZUFNZDMvWUZJRjZSeUpuWHA3M0RKL0w0ZCsrWFlLQytRUjdmOWdWSS9KaTNCUTM1Wkk1cCtibVBvdVU3N1FxSUg1ZVlUQWIwTDl6RVVUOHpEd2Z6YjFURHROcGhIZTFZNDF6dG9kUkxPb1ZqamtQWHRHditkSVhSUkd1UTZlZmx0YWQwV29CZkN2VXp4dUViNE5sMUV2eGMyRzZ4bFNocXpFSzZOKzZtZEpaanM4MjVzK3EzYVU4aFo5K2Z6NFA4cEkzWG1mQWZzR2VJdXgwOHdlSHNxL0dLOXRaUmpOTzdsUmdlNEgzMWJoN0I4RDIzenpEb281MHplUXduWnBCN3JRR3JIYS9xV2VvNGFSUTdOSkFldzdHNVgzdXRBSDllc00wOTcxaWpMOVdlb0o0cWRCVzVvTDFkOStSQkFLdTRoc3MyWm5maENrYmJ2anNQMGliMWlvQURzZ3Z4ZHltMkUrQ0R2UHBlZjFIOEdPN2tEQTBQVTRxMUlOeEZ4M0JtTEJkZncybmd2RUxjMkphK2NLWFgzKzFQcjY5b25PMnI4dElWQnR3cFh0eForZVczdE14aGViNlB5WU1RekczQldEdW14bm10d2IxcmY2dmY1ZVc2Q214YnlRY3lSK1huMTVDOE5wOFhZQi9PR3J3TzZ4bnllZlh2VWZ2cHRFNFgrL1cvOUU1ZlZ5ZWtiMzJscy9hRW9EMXJrUmphV09oZzI2cXdUWlNmNzlNRSszZ0xOVTh0Y2VzcG5SVDdBajc0c2dRVG9mcis1WFA0UFhWQ3EyY3BIaTNVb3NMVlZQdTBYMlFpL3RzVDFKL1Q0L2JwK3RyS2N6RkJsMDBvVDBzL3JXZnNnLy9VZStzWVRkTjduV1ZiTzI1SGRrdlBnc1RvWVpxR1BxRVR2eGJtQVBLZU9VQitEUGlKbGE5SGN1L1BtRDZnSHJrMVFQYTUvaFdLdTRGdDUwQ1FNenJicU9xVDc3VzN0QVp5eTNEY2JWTnZYODMxZ3Y5ajcwWktmZDRtNlVHYUpKMFlhcUpNUHZLdXpkMmtkVEpWM3puN3pqaDg3aHNIcUpGdjRyN1U2ak5SUXZ2cnNMMlEvU28rTGVmcmtSNHRmTlozOWVMOWtPb1lEbW9JM3ltNnE4RFNvTCtsMlc5ZjFlSmkyd2o2UFg3SjNNdTZ2RDFMajlCTE0yWTlSc0tmMFo5MFVzOTFsaDd2d0pYczcwTDgyYytHRTFtM2Y4N1JJL1hOcnM1KytDRVJPVUh1NnJQc3IxN1BjNVllNzZpWkxmVThvbjBMNWV5RlQ0TU5jSlllajJydGhFdHpKU3BjbkxMbjVCUFUxMTJUai9mVVRGTDVtTGhtb05sVzkzZytLN3ZMM3p4YnRGNG5lWlllajJ0ZjJaemFTL1dRWlYwYzBXVWZlRzkxLy9nS1BWN3RqYXIxR1RBc2tOOWRhLzhPZXFTWXRnYVpiM3NrVHo1ZDM5TjkraHJpU25VYjZ2VGVhdjBTeWlrZTNJZmQzeTE5bllwYnAzY2oxZ2k0VDdUdlhjSG53ZUtMTEw2eURIMFczNG5GUVhQVytKRk45eFBpYmVmcWo2L282NnV4VktqUGhPL01RaGZiSkRUTzRxVjZOalRyOFJrV216eU5OeDNaUHo4NWZucVdIaS9HRWlIZWFUTDUyUFJ0M3hJbi9lbDd1eWtmTDhhRVh4d0xYYUxIWnB5UXpLdXN4UWpmUnBQdnFZYy9SNC8zeEVSUDZQRW8zc3ZPdHg3emZTdlAvVVQ1V05HVWVXZThrOFE0K1JQZWd4bm8yc0hGZFBoTGV1WmVhejhDUFU1TFhPZms2aHpCbzNsa3g3R2wzeFh2dTgrZnVTZTIrVU1TWjU2d1I2dzNpc1Z0Z3hOOThKdml0dmZSNDg1UDBKWmk4c0ZzaCtuSlRGSXloNC8xdVZVeklENTRUdXN0K1hnUGZ0Nm42eWU1MDcrK0E5K080VDgwY0V1YSt6eVBTeG4vUnYrYTRhbjF0SFZBK3lxOU9oYVBKTzRBMDhZME9NY2FIS1F3KzZyMmZpYmQwZGlSb0JXdUpaS2V4cytBb3diMDNQMGRHR1lmaktGR1paSlMzai9wTjFmZUp4ZXEzaHJnM2JKRzJMVXlJc1BqYXU3UFVWNnR5bmU4UzAvcVJXQ2VyWjByWStCVVh4N3NkOUVPN0M4UFRENEczaEZzekQ4VUk0ckYwTFdWMXpMV1lLdjNnMmh1alNEdS9uM0JoYU5pRjNvdGZlVllnNVlMODZJcVBxU3hlNExsSmFDMUo0bFFvM3F6Qm9mSzRuS1daTnd1SEF2TFZDMTZOVjVjTFNkYTN5UGczQ3RvWVROY1RzVVFIR3ZReG5ZZW5UbFp6a0tvbnVObjE5K2MwbTV0SHA5STY0ZnU2SSs2UUx1S1hOYS9NaCtmemF2K3RYajZwMWhUcDdSclBPSy92VVJlczNrOE1CZU96aVdzZkt1cnRGdk5WaVY4V3B1UkJUTzNDSmFOWWp6NlN1ZmdURVFVSkVZeG40amo5Mk1LZ0I0YUhjM3NQRWU3YU43WGtaKzBJNi9IN3FOZG00VUgyRk0zNjExck03UFpiRHN5aDlBYXdadzJHc2NwWjBJN2xvUDhkRWt3NVg0Snh0Ujl0UHVxK2FZRTJ4SGl3aUNIenMwekxYdkRqTWdXd3JNMUxNTllIRGxtT3cyVU1QUXM0eEJJZ0l0SHowMkdHWGQrY1NwSEwvWFB2NVoydmFPWnFqTnFMODBTTW4vRlBwcWJTZWUyU3JWOVZ2MjV2N05HNGJXMGUwZitDVEFTNnYzbzUySno1VHhTZkFkMFZybnlOWFNzYU9lMXNFNmhzcG5rUkY2bGQ4L1gyWnpTTHJQN2g0bThkSHB2MEt1WWRwUE8xbE9NeUNNNGVJZHFaZ0JLMUQ3YUJoT3haZE9aZ0RUMkN2U0svVlNLRjBibUNGcGk2dVBubVB3Q3VjdHdTQ2Z0UldBTkN1d1hUMU5qWXlkR01SVWNxQnU2MlZQZXpOMlg2M2o5WlluQmcrL3dIRysrUHhkd3Q4M0E0aDI1M1RJS1B6SHlnRDMzc3BQTVN2MnYzVzB6bE9zbyszWVZUemFXSnpVMk5kdmk1OWZzWHFQZE5ncTRTalpORFBFK0dxWTVFRGE3RjM5UFZUb3hqYWN2VmNVcFBJRTc1ZFVHZG92UnF1ekZjN21GS3piVVJibGIxaEJwanFVWHJxa2Q2dmhJUHgwais5UDVkdStyTzdxSzMvNlQ4Ykh4SFg2K1dxWDNZb1F6WHVOUjBCOWs5bXR0OGF2elVPVWlrRVNLOXpYYjJJSmNFSnc2SHJCVUEreVhnUDRiY0I4K0krQVNmdXdaK2V1WkJ1Y25hRkdiczFQTnlUSGY0cDgyWld2OVROaGNyUHFzdWs4eHMwUHBMRndCMjRsb2ExK2VuN0JoTXEwK3Q2NmFqWVplZlVkSCtwYjRBaW4xWmNrY3JOeitORE04d1FhTlhVdkh6NVFOVzdRdTFnUmZyU0J6MkUvNWo4MjlDaFE1dGQ5K1I4ZDQrZVZ2Vm5PdnJzM3Yrb2daT3IxY2V4cm5JNGxmT3VZZ3M4M0h6V2phMi9pTFh0dSt6bjkwOXBuK3h2alFiZjV6RkpRNmxzYVJHUm5naDdld0QrY0xVVFJheklSdmlSd040OGQ4R0l0amJCOWoveFQ3RGNRbkEvenJ5QWZNR3gzd2VWelREaUZYSjRrdDE5eXZWYVdHOFVuVzUyelRmK09NNW12OEovS2VzaDk3d2o2elc3K0UvMkRtbU5wbjgwaytuUDhHenJLOURXU1M5L1ZPNGhDWCtZL01uYU0xUWEvQWZ2d2o1Nmxkd3RXN3J2OXFzMyswZDlpZjVkazNlSy9LMzlUeU0vMFJuYmRLc2RDS2o2M3J2Si8vU0MzUCtDM3pRTTdVY2RrWDVvUFlDY3B0YTlDRzNwZVdkbkJKdnp5cmdRbE5JVUorWWdUUFNzUUZmZkh3TGY2NmRRVEV1WDJEMUg1UHNIK1BCTWRTZDZNbmUwdjZWclFmYjdQVDdwaFJkWWIvN3FtTGZUMys2bEh0TERtenl1ZXE2MGVvMmZsOE02bk84Titic0dsdjRabDZkQ2I0cHp1amQvSGZhK2M2M3NnNzFHUldvNDZ2OE1OcTl1RXlyTmIvTVAxM0JxL3VPdi9kbk9PWWtQcXNXVzBtb1c1cEM5dmNSN1U1TjZLbjdMZEJJWTc5QkFtdXVVZllqbXA4THFZWVdTVTlmK0RNdUxmNWYyV2NlR3AyY3ZCcDR0Zk9Ob2Q1djBrMWUzTlg5Z1A1QmN5R2EvakwwNVlJdFRQUTY4anlEak4rNnlVSVhudFc1TFV2ZktYNkVoVmdWMXp3N2FFdVBabVZlZGpueWMrYTJYaUcvOHJjZ2FGNVFodG1idytUR242amVkOGRUVnRpSmFkcUdKSnFQMWk1cHJZNlBpK1lhNXdhT2ExUHo3ejRkL1BmalJuSTUvVGY2YjNtcm9sNWI0RDErQ3ZtOC9paFErdGV2RlJmMHhyR2c5MGFSTDR5cTlFeDlEY2hWV25NTFZtcm1CK3duWlg0b1ozSUN6b3JaT3duSFh5dks4Y3lEb09pNnUxNm52d0NITkhYOHgvZG4xSGlqdGkzNndOS2ZDemJkTURHQ1lRb3M0V1F4WU1YZmlMdkhESnJFWG5KaFpsd3YxSC92ZHIvTzhkL3FZWTh4VmpnZjk4YlE1LzFCMXQ4L3E1aThEQjdQTlU0eUhXQ1AwTnJHdU5QMHN2elZ2dnpEUDh4bThoK2hmOTNTcHVmck5mcC9mYm5PZjZMWG9mTlhjOFRWN1Q1MlhyNTNtMS9udFYvMmRaZWtocHorMjRjZ0FpeG1sSlBzR2xkSXF0VDcrUmw3TWdhcEE3Qis2TzFDZFhjTWh2bUlFVmxyVHZFU3lHdTFkQ2QrV2ZTZno0K0k4d3pDc3FkTzJaZGtmZ25PUmVHNmMveThuNWZySFFoektZeURyWFpWbFIvWUh2aDA4ZGZ6dkVmbzdseS82N1p2aEp6cU1WZmVIeStJT2RZangvTGMrNThaVTl3WWZwYVJPWXRqa0k3TVJLdk5RRGFjUVRqUUd6Nnp6RGoveHovMVdsYm13VG0vZzRNMkRQNkQyYVI2aXVYemhJRFBGWkNTM1FtTkpuUld1cElmc0FUK2dKZnVtRTdxVXBuUitybE84Vm44djlPbjMrV04yYkQ5U2ptaXZDbStUZWNxOGljcW1pUkYwUE5FcTFoMDdaTitVUHV5QzlZZkJ6VG1aNzVncllORWdQd2lPeDBlV1NQL1A3NFMvMCtaNm14ZGlidDJneEw0ODQ3YXVEWXQxd0Y4T05PMThhK1REMG1La1Rid053dnlkblFlZUxtK0pQYW4yZjRMeVc4WWIrbS9xakV5dEIyanFsbFRvS1FJNG1lRCtlak5lS2FEVG91MnBsWGRKYWVvQjJHcllhZTI1SjU2Qm8zRk9nOElIeStwS1ozYTJNYVRBRkg2UWY1amRIMmViSUxiU0ZDdHJDdStxY0lmMk9hUm5ORjN2aktIZzNqU3pnNU4vbnY5VE9ZVHUvb1N0eE9QTi9QTXVsK2pqNlZOK2kvMjNPbXIrbS81cXo4V2MxbW1sc2lVcVdJWWxWVjlQdzgrVmo3Yzh4cWpaWm9iTC9LL2p5dDNad1k0djA0VkRDL3Q3UmxSeWYxcnFRZXFwekZvaXE5MEcrSnlCWlE0cG9qbU9rWEtHaWg5dEI0S0lsYm1LbWJCaG5rU3hVakNwSlphQ2Y3eUV2V0h4OS9tYnpXbDdsYUUxcjFFVFZxUWFIdnNyUnovMVQvYjVqY3RnbmVtSDhndFhkVmpMajh6VC9ULzV2bDlnM2V2V0YvTXRsVTFRTDMwUGh6MXVyZHlYK3N2MDNXMnI2Z2NaNGtEbGd0d2Evb2Evc2hpVDNIMGhaK2duYS95MmQ1ZDYvYkwraDcrK1QxakhmMDRyRmVYVW8zUFZyajhscS9yb2t0ajIwNDZJVTd3akNEL245UDBETW5YWVlUQWV5RmRRTm44d056VTFUZUhPYVd0Z2lVUGVXZjlzSVQrSTF0dHBldmlGc2VyU0dXYTdBK0k4ZlVlT3puZmxBODk3bzl6ZkEyVytoZ3QvVDFoTlh5bFBXVDZPNHpQMXFEWU5STHpSemxSOVZsM3E3QnZNQWJyNjYvRkwrcVIydW92Vk04R3VpWkx0ZGQvdWE4N1NBTHdJZGVibTFzUnlYeXhwM3dCMWN4MXA1eWtUYzQyd3hlZStiSHZERTRKeWN1MWUzOWp0a2JvOGx4N2VTNDhxOHY4QWFyYlh5TkgzNFBiM3hVemVUdCtNUWwzbmh0YmVTOXZJSFgzWVcrMGxtN3B0YityYnpSUThrMDZYQVVHeVkvN2htL3dCdFF3emtUaklXZkdOeWQ4MVUvY2IzajIvVUd4UkpUdlpiR3pmQjc5OVFvd0hmR05NZEM4VFdsRGo3akVQczBucUl6ZXlJY0N2RCt4cjluN1Y4NHMrWW1iN3k2ZnFwaFV6M1Y1OW9QQ25HS2JRaWZZRWFWZFVXLzM5ODl4Uis0ejZZcTkxTHRZd2JuZytiOWNlNm5SajYyTk1NWERNaXJrNW10NEtmMUxzMmk5WXZIai9UUmR2ZjQvY2U4Y2JOT0xCVUwxM0l5VHpGU3NNV3gvNW9ha0dlc1hoK0RIUEJydFdRZldWZDRicjdlWFRiVkxReWRpek9MV2YzMEtQUVV0SEV0L2JmUEszNUxMT2dDYjlUM2sxYzEyMWY3VHo4aC9zNHI2a2Y2dTJjcHpHcTZqL1RzMS9zMlZZYUpUV3lVY0RqaEFTUFBGWXoyZDR2NCttYXhmM0dzWllmbUV3SmJ3clpQd0ZOOEg5QVZZTTlPV00zTmZtMUxqNkZPY0FJZVNSNTd0cGJDTExRVk1iWXRiU1hGNDVQdnFBcmZIbG9EeE93dHE3c0tWWW5iK0pEWEJDeXhsdGNhTEw5YnJPK2hlazJWZDgrd1o3cUdyM3lsOWVHalRSblRndC92UGtzSTloclpTVWRvK3BEWVg2YjFCOGM5eFJEYkFudXArazN3T1pudG9POXNTenNFUXFkd2xHNHVoYXYvVUh2dDcwWnY5a1h0ZFhKYm1PRjFNNzhRRnk3cFBjVC9YanFXdVBaYUNEblNMc1MybVl0NURiQzZ4YTNmMGpLS2dRTnoxbXl6blRJY0Jkc1NhWTh6NUlKU3Z4QWpOdS9JaGw0dWJFK2h5T3VQMW1wZjQvRzkyeFNyd3FlMWphclNhZXpITDNZaHd4S2Z3TjA4aG9ieU5iU0ZLUEtTZ05peFVJc0hPZmZNRmtqOG1PVDNkT1NsTUV2dG9DcHlRbnE1R3BpZmRIYW53VUVjSTEyR3ZtSVV2b0F3WHdFT0w4VlNQYWhTTkRiU1VjYXdDT3gweVhoc1pWc0RUbFhrM0pIRXdzSCtCSnpmRXAvZG11ekhPRnc1b3pndzBUcVFlSmpIN1NoODVpWG9FUFFCRjA2QVhMblFXZnNGNEVGR1FTSm5ub0x0aGxrdWhabm9VU3dHK0t5NWJ3OGxNVkpsSkU1bnU5REIrbUZDODhlMS9KOVArNitQY25FRUM2UGVQMTJJQzdBM0U1S2pEeEswQkJ3R0ljbzhaUmE2SnN3NFczc0VaNS9LM3lqeTAzR3U5aHhTdjhWeWU5M1ZzNjJJb1ozSUI3ZTdXcXBLaER5RnE5YVF4TTE4Z3UzZlBiTHhmVXA4VXMyYmFiZHRrMS9meFVlTHgvQTV6bWF1MWYzMzgySVZtbWFIcDdsenFPVmh1SzhNaDk1c05YL0Rta1NzOXlPZm0vTEdrNVpzelc5ZVMwZjByRGF1MmM3Y2xzSHk4WVZmclA3OUxSYWZHTzZCMm5lUW4ycTBkNktUcU9SZVh3SnpnRlFwRWtiU1k2RkpqM3NWN29iNFlpN1VGWFVTdFI4VVVEdVErQm5rK0Z0TzVndFEveDI2U3VjUXlHSVVLRkdvOWtYNERieC9zSjlyV01Xa1prQXVuSW00OVpKOW02NUpNWUFHYmJVLzJIcXRjYTdLNWZ3QlNzZnNiTEJlMVNLb2N5VTUwSEtXYUoxZXpzNjlnanBpL0xmT09TYS9JL0xyYXhpMEJsbUE2YTdFMysxVzhRZXppLzNmZ3M2MGFROWpiUFBPUWc4d3BUYzhwa0VYeXpKekZwcUhYdnZiVkx6V2t3UG43Q2R0VE1lSG9WQ2QvVkJBQjcrRjcvdnIvdHQwdVh1ZXNKcDZxR1hLdk1UWitnbFA2KzBmQ2RaQTd5VFBUWHVxRU15OTg1U3lQbi9wV0ZqZjdnOVN1RnFveFNnMCtjR1cxUVFiYUJST1RINFRzSHZvNjVIVGF1YmdIYVd6OEl0MjFRTkw5bE8zb1EvWUJ3b0tudk9LRHU4bE9xWUJEai9QMENwL2F4TW9jdW9YZlBON3hmSlpXaUtPWXBCeWZ0TEpIUUhUeGdEWlFtZURkYWVqVUh3a0lyTXl6K1Q1Z01pYmtLd0pHRmdScVQzUmVidEZ6c014MjRLTGY1OWdUK2JZWHNONnc4SDhqWG0yRU50ZTYwVCtobzdTd2UvbEh2YjVtRXhYWkQ1UU9odDgxcllncjczK0VtSVpOQmNJK1F6OExHUWZGTHNFNUJMaVhDei9GRDF6RWdjQkxvZkUraXdmbjZWbEdmZGkyR09WdkZGNkZLK0M4Z0ZkbC9BRzRwcTlGb01Ed1htbDN5bDUvYkZXWThoSExwYWROWHQwS0ltQXErcWFEdDRYZmphc2Q2RVdiRWd3bGhjK1lNcHBrU2VKUW1EdThXOUZkb0xXV0I0NHBQOC84MXZqbk5HWFFaL2RVVkRpUUoxUG16dTJFd0xBeTBaYkwxdzlZOTNwbVowbDJGNUU3a0I5SC81TlNzTUMzaC9vVUtycjhENmFkc0t1ekZIUEp5Zm5YWDBmWkJuRnlpUHhQOTRYYXJwQ1lmNkFIamxDdDJrRGdqN3RRSTNJMGZxRlk0bGJYMEFnSjQ1dFJiZUtYKys4bGdaMW8zT3p1ZllRWm5zNUxLWUF6MklLcGZ6YjJpMERzR0VacnhOc0tYN3JKNkR6RXE4MTJMRDNBTWRPaVJEV0xVZTZFK2E3dUVxblZlTW56bFdNamRvUHNrQUo2Yk9DL2dVc0ZSdHFtSkJBNm5VR3lCSEFEbWhiazJnVjlQV2RmMWh0aHdKK3ZsRmV4VzJ4ZjgxdFFSZFpneHhpZjBVSHk3SENoamk3c1FoZ3ZtYUgxbVR3RmU3UHVmb2R5b05Eazk2TlZkTDI5bm55ZUdaK1V6V3pTZ3F6bVZlSTVTeE1KeldBZDMxYUE5aWMxV1BzaHBLWUJXVnNzbzBZeHBPcnlOanVpUUpKWER1bWZBaWs3cUdHd1VjeGd4NHB4cXEreGZhRHFqVHdoeGlHVWtac21QMGlnQjRxQS9wZ1hXRzJVWlVTZTZnRDM1MTFraW5GT0FRc1lXc1VQaGVBZ2ZqZFdkTGZYbElzRzJsVncvUFJ3bUVzcWc3VTlPK083QXVzUTg5Z2lqMXhvWlowcVE2cDR6Qmgyd1pzV1BqTXlPeUdubWxFWGpwYXEwK2pHZ1lqNW8zdWdlUVE4T2Q3QkZzYzI5SkVybUc3cEdiSGkvRjgwclRQcERDVDVwUGFuQ0Z5UDAwTWhCcCthdWtETVB4QUFZRk9jTkxCMXB1STI4RFNEN1c0OHJDdWYydjRqMnRhSDF2TjRMNkcyVVg1d21zWm5DK2dwVFBCT21URzZBUHFrYkZmZURkVzRoTlBlOGFBdHRqNTBOa1VldWFaczF6dElhNmNJOFZxNTZwNGZPSmFnd1BvRk9aVGxuS2d2WjVQdW9MYTIyOXRVMi9ndGxYNGd6djhPV1kvSVJ2NnI4N04wb1RQTFk3M2k4L0tPY1ZrU2tvZnVxcDFnTzlSV3NnZGsrbDBFZmxnMzNBUVI2NHd4Y1Fkd2Z3bWNoVHcxWHBvWE1lSWZDMm1uMzJFNlVkajFwanVXUHlpeE1PcTBTek12QnVhblJ6a1J1MHpkYjBLdkppT2NyWFg2TCtpZDREdDNWbjlMS0FIaVdBZ0drdFZpbHF1WXVSMHBsWkRIOVhQMXFZeURNdDlSNWxsdzFoMGFtZUtiWUVjMjZxQTRXYXBvUzNzTTRmaHVCRmFxWDZ6ckYrYXJZbGNsd3RIMllOZlBBZi9wSko5TU5lZTJBSXRiQXM0Mk44VklrUnNMckRoVVZVSERmbzY4dE5CRmlTc05xcFhuZHVrSmwvSmpNR0NQRE9WeFFvaWZrT0p1WWQ5RFJIVDdNWm11TWxBajZkeGsxTHZsbk1wZWJ4ZXlERHRqbVY2NlQ4eU9TVHhDMXNTRXcvc09PQ0hzT2JUWlRhSjRTU2VzRjk3TFo4K1g3VUhZbCtjMkltWXZvdzc3M1JObjVYNHVFSW45eEpqUVdOSEVBc29hWTdoNHBPY1BtQ0tlcGduSzlvbFowQy9UN0hOQ0QxVXN1TUFmU1A5SUpvVHJFbE1IMnV3SjgxeDJSc3dsTVE0c0ZndUJQeGlXQTk0dlRiZnp1OGJNYjdqWWJoNm5zRHp5MldNb2RJVEdyWUJWbzQxZ2w0WDdBczZzUWgydVMvc0kwSXo5VFVIVzgvc2NPek8yRHJEbU1ZY2hmMFcrM0krNFBCalhUcGdOdVRDeDM0OTZOZFNUMWQxNkgwanR5MllCMDc5SG9nRHJSdG5pV1dyMmM3OHNvY1FhbzYzMUE4TEo2YU43YU9TTG9udWhQTnA3b2Z1ZVNnZFk4dzE2dUszQWJiYnpEYm5ta3dtVTF2VjVFRFhCUmJXendHMjRiRXZnM1dXNEFsb1NiN2JCbCtkMmk5WXZ0U3hJNkMzZ2ZhRDhOaG1KSGZac0UvT3pCUW1kNEh0d3Jxc0pYcGRDMmw4aWR3dnhXWWt6MXl6R2ZyNnlyYkdkWG5LWmgyVVdMQ2djK3AzWk9tclN6YkltWGpwRnlsY2JjN1pOTituS0ZTbE1Cd1YxUjM1eXA3M2kyN1JlTWE2N2l1ZlkvazhuRnpBZGo1d2hkMWRQYytvL0tqWitpVkdoMjNpOTJiclMvTWdpZjZzMlpBcDRlV2hkUHdjTzNaMks5dHlrUHFrMW5YUVVmeTBxWHZPWVkzWDdvSE1lRkcrVmprMExCZVVUdUZRRzVyTUxJSllaVFpuTkhOa0c0d3JXaTV4cUowRUZYNXJYSXZGa2ZnbnpDU0pXUzRBZW8yd1ROd0YxZ0R3VTRrL1BtTTZzNFpCU3YzemlVam5nd1NGWGRsMXpLNEdHV1ZienRZMUlVN0ZZcUhRVTNIays5WHVvNUszNEJNMDZBajJIOUw0TmV2QllYN3VndGE4NGoxRVdLOEViRFoxcFcvTHRZaU5BVDBoR1dBQ2tMNDlHZ2V0NUoxalJjaHVHVVRlc1htVkV6SDBsYzRoa1BoeTc3WWtyanloODNMRVh4SEZheUMyVmptenJsZkR2WndSMlVGaktkaHZCbjFmWWFmdi9LUWpFTHRaMjNybWlROVoybCtsclRaZFBVc3hGODRVK1FDelRBcjh2UExCYndWYk10OEh6cUtLKzB1MFg2alNReWUyYTZDZ0RaazlaRk43Uk04QWg3WTFydXZ0cUpGbmdMdzg3QitlRCtpdlA2RHhvUGFoZ1E4S1BHTk1oNm4rU1BWcjZwUTZMa0JlQXY0bmxsRzE1MzdFTW1GYWZVNUh2b0NnajZraC81anNoSGpuT1J6ODQzWE80OVJlWE9jK2JOd2M3b1Q0dVpnZWk4Q2MzWUVsL01qeVB0VE9DUWd2MWVSM3ZUK21ocUVLTmk2TldRSWZmQXRKZkYxS1NGeTloaGU4R1ZwVnY3NjI2Tzc4b3Z2VlR3endyWjNwWTVsZlU5TmFQbXVpLy9kc2FmUW1odlpqMXBPbk16NzRQbHZxbmVHSmJocDF0R0ovN3J3aVI5SEorUnlJM3pVOGV4NGE3NmNENUtVNnhkVWRmSGVXVEtmWThYMjVzMkRsUUZ4YW5PZ3pmVERqTytPeG9VME5yalBSbFM3UjU4U21xTkZ2RGN1VzZ0MHlaMHBuOHdaS2hQM0V5TytMeUlhWUg4MGgzZlFGcWQzWUkzY3haajQzdWpDdkdHS0VLTWMwZyswT2xsL3hFL3c1dVdDeW04ejRBVHN1Wm41TzJadmNsM212TmVBOUl2T0FkejJRWXl4bWcyVm9oUU9zTXV6dUhiWWZHZDlEdm9ENVJCWE90MVRtOGRZMUdqeVN3eGZzZml5SGswN2hUVVF1RUw1V2RHbGgvODNKL0ZRanNkYldJSEtVV1dubnMzenJpVnc5NnkrTDlMNitoZzdvbFI3QlQyLzA3SFJyUHVFNXU0YlFFczMvVm5ydmFWL0dpTC9IbUpjMEZFamR1Sks1NDg2Z3Z6bWx1ejYzdm9HWlh0Yi9mTGRBWHF6dm53OEFNdzQ2eDNzY3ZnZDNYMTd2ckNuMzlialh5Ylc2bTlIVDQvM1BsaHpGUDVab2JCN2s0UHQwWDQ4TFJPWGEwL2V1UFRoZUcrOG44eVd1K0I3djM0elBQekZFYjhSem5lOEsvR1kxYnlCQnUrRjA5Qi92UEd1dVBHdWxlZGJhdTgvYXVIUWUvSHZQUTBQY2Jma1BkdHk0UTJybVpxRm5MVGRnUXhlbjhXY3BFVU5zMjMrUHhZRm5BUzVtNUtWUWcxRlFQNnBtSDRIc1hKL3BuMnYwdkZ6RUgxZU1qZC9YU1U4K2lmMkFEWUp0VWRkc0x4MHJEQjFyVUhndEZmTHFmaUcybkZOcy9vYk1HMHJ3bWNnbjhTYU95dW02SDBQczVRUFhzaVVxbzJwOWV5UTNTdXNJZXFkM2VYNHYyTS9SdHBkOG5aTTRpOUFwYUZ3QzY0dGNTajY1amx6S0pWNkFyM1F5cU5GbzZKYUk5RHhPeE55eC9PUFlNY3h3b2M5VXhyMDhVODQ4NGpPRmdGVWhSQ05QNk96R2lieHd1VTdpSkYzYVp6a3JZd0w0bm83UDhweE9xYzJaZ2VlcDZaam5hZEpwWVJxeFRjUWR4VHhxOTBieSt4UWp2MXpuZGI5RmFLdXVhK2s4bUlVbnRKYzEvZnIvOUZ4ZHp5bS9YTTh4MmJ0L3R5NUNsM1NSK2w1ZGRMaDRIb2Yzbm9kKzZUeTRkK3NpNDlKNXpONTdIc0pGM2J4b25FY3AyNGZIc1o4bm5zUXZKdS94aTA3bmRwZ0hzVHpQb1hueWJQZjVTc3YyRnVRYzRCb05VQ1YvcXBnNTZCcVMvOEZ5OU96OEZQeVphajdJZmpEcmF5R0x1VHJKUGpyU2c5WGNGVk5mMHZ4cWg5VU9nOTNlbksxSHNXR2FNL1VtTUtPV3hHRHdPdjV4TElqRVNIUElGNVQ3WS8yRy9oVTlXOGFxanVVcTZDM0hsSmNrMW9EbG80TlVCWEhNbmhpR1lMOThtL0s2L0MwV1p4NCtzNlNUc1ZodGZkNWRwZk5xOGFoRzNLL1VBUmZ6c0RRbXZiNGp6MUkvZitqUC9HNnluc2pTSnd4bmdoWkJIbGZwdEU1bTI5RjZFZi9NWnk3bGJJZFNNMmNEZFJGNHJmNEk2eDZGMmdNN3h4cEFIUVh4NnpxRlo4cnJ1aDlZczZkTzhvOWxUSnpXQjlaaWdQajFqT1FtenRVRFBJWVR3UGhpT0RCZ0I4Yllyb1M4RUtZdDh6RzBuNXhHdkwxV1c0TnBJbllzdmVXWVJxNHFMSFp4TVNaVlc4TTR1QmJNOVQ2NFNvZjNsREhFSUQwRjh1QVFFL2N0QS92YVVMdDhhYzRoK01NUWR4MkhmbUpzTU85aTJtN09aNXdSdTliU0QycGZXMk9hcGJ4Y24zZEdjaGl4S0hyWW5sUm9YUmpRa3M3eUJjZjI5MUZjc1hZL05idnhYSjAxc2R2Zzh4dkF3S0puclpWM3N5UDBlNDBlb1Y2bks3RHovZENZVjZ5R3cyYnQ5dlc0anRBcFhISmV5OEFhVlBLb21sRWQrUVgyYjlxcHFzaE1EdXdEczFNRU5DZEY2aS8yVzFyL1ZlVWk2dm1wTytVbnlWR2d5RlBRRjhjYTNjbzNSSTZBYldnV3Z5Yjc4eExqbEU1T1l2ck1GelJDTEN1bnBLNGh3dCtuOFZqR0t3WEwvODhuT3hMSG9UNmZDejJSZGI0cVk5bjFlcUpHSGRpWTJ4c3pYcGRuV0RaenVqd1R1aUdwY2NROCtVanFncG5QSkJna3Q4eDRuR0dWd2ZOMWNubys0Rk5BbkJGOGlvN2dtT05jbFZsT251WVV5ejNOd3NsTVA5UjFDODJkc0hyc0ZaYVJ0Z0o1MFhDSWZlQXlwOU1CdkdpU1h5OTVpUGxlcFM0Z3ZHSXMyVytUV3B3dXFUZDdzbGxOVU01cy9ucCtYWlg0U0pYMFUzdGVFcCttc2pFMWVzWUUwNWZlTTZaU3VNcUg4ZU96dlZBUGRxSWxUdExiTzhsWTBKNUd3amRsekdsUHhtSmtqdHQyTW03YnBoRi9tNnFDOXRUYmo1Nk1SQ3U2KzVIMHVCc3V1cmwyNkg2Qm1aR3o3aDcrTG5PL2V6b0RsZ3RIVTV2VHB2WmhkT2dkdmsyN3dranE3dFNuYnBXZlY0eWxGRC9tSmU4dFVjN3FYMnB5Z3ZubmFLNFlpOEFxNVZjanpsNm5Cekw3RGZERWlLKzM3UFIwb3pQUUpaRzhia2EwRC9IeG1jUXRzbHJkd3pJY21yMXdJQTlrdlllbUZpK0tNMTZ6cHZ5Z3AvYTBrV0ZvTTkxUVEzM1ptZWljTWFQbittTXlHeFA1RldibDNmdjlBUW9TdEtXem5naDJZT1hMaytmdGo3QThBUjNpS1oydEM3UEZONGo1emE3NUdEcW12SENsR244UW12enlkbHB3dnMrV2dXeElZanhhYUxFdE9JazlsUlBueWVaR0IvdlJlUnB6bWpuYU8wOG9kcDVRNUpocWU3U3d1ZEcwdDlOTXU4VmlQUVMzaFBGcUk1K1VlY29NN0kyQTFyVFdmRS9XeXdENXpDUGJnK1F4SzFsVTRncmF0UjdhcWc2MzBsbTE5WWs4bFRLdzQ1NFhLN0FUeUZueU1NZUJ4b0ZJL2cvNEVKNlgxUndmcjFlZk1icXd6ZjBhYWp6NmRKNlJWZE9WM2RYem1OV1Y0SHVqc3hJcHZhcU91ZCtvdmJJbXVTN2ptdjNCUkgvVVltRXF2V3VvUlRoNHdoNUpxWEZ3akhyUEV2amp6L2k4WjFVT1VYSE5QV0x2a1hwandPdVkwdC9yTU5xcDdYZmowOTVuS1RtRG5VN3I3cG8wUUh0aXlYNEsyM1FBNzRybFlZM2VmaXFGMld3cWowSy9aZXdBajAycStsSEt0YVg2VEdhSUlVRnZUbG1mYk5adEZIM3RGKzJ3MFNlZmpzcDhTMm1ya3p4d0dROWg5UzhOdVh5MHhoRzJZRmxYVzdmTGZlekw5WmZIdnM3eEhrOW5UQzlJenBjK2Y5VTMvTFNxNWl2SSttaFdpSWZBRW9GZWg3SFlZN1dkTkk5YzlqSFgxNW9yaU5RRzhMUi9UZWwrWVpoQlZmMFRmVThxc1NoWlh5R3pVN0R2ek5HNmRvN2tkdHJiZWgzc2tOU05jRjUvQkQ1cjBJTitWc0IreFBzWTQ5Y1VsSkE2OUJuaGR4T2U0NDYxTm1nK3U3NmVLeGh0d3JQa004TlkvT2JWc05qOUF2TEVZYURzRDBQc0Y2YjYwL2g0VGE3MzJ1ZDhQcE5ub2o1UXJiNzBpSi9yTXNWdS9CN1VpdU5uS20xZkxOZDhvYk4yeGhuMHQ5Z3RmVjFpVzliV2RBUWpkNnhCWmhjbmQ3V0JQYlArUmFtN0dacVF1OS9BM3FaY1BoVHdlWXh6WHpFMnFzUnRpSjNCSnlBbkpvOWJlRWFwL2VKWVMyeFhKMzdTd1d0Z251b000ODdDbnJSM2pza3hYVGR6RlNNZlN2VitMRnBMUU96alJqei96RDdoM2l2WndzVUVVMVo5Sm5kblBHSjdFZk1vdzJQNFBobmMyRFA3THR3N3lEK1FxVk11cG52RHp4OUxLZkFNckRVUmpMWmUzWDFIVGNnWkFaMkZXWTAyTmZIb2M5RXdGWkUzVWVsNXJLZ2ZqcFlPOXZGb2JSTER4V2pNU21ua2FtdHhjQlBtc1VLdlJCTkR0dGIvbXhLYjFvZCs4aUFMbEtpVU05UWZMSHUzbXZxMXUzSW03WFJJc0RxUDFxOW11a0FQbGRKSm5USjN6T2FjTFJ0MWxnNzRlRi9ESUVFUnM5WDljdTlhV01yT3BpN0xWVm5Mc0MxRWE5WXpMNW5CT2ZoeEUwUEZOclVGMW0xVXIyd3YxS1BYOFdkZ0p2T1EwaG4wL0hVenFHVzNCYm53RDZ0blZlcHVLSWI0RjFydnU2RjlKaHVnay9FS2VwdnBhOGVmb1QzQXBKOWlCalBTNkt5MzZTb2NtL3VXYmFHREJQM1pSSGJUMzRRMWgzUSs0N2VZdkZmL1BmeW5nU21BOWNmVEtoeE4xWVBXWmI2cGxua21XdHZXWUkzOXFublZEd256dGgwNkg4czl3YU1aSEU1N2E5cFowS3ZUbE5iVXBjdzI3cVBJTTNmUHA1OGZmY0g3ck8wSmVzTEtYaFBDSTQzek92NE1QU2ZTVDJUVThXZVdYOVNldkE0RXVlM3Z5UG1BUHUyVDN5VG54UkZiYWJvaTd5bTEzeVA5Ni9YOXczejliM0YzUDFxTXVJYnRVdFdpc2ZrRXlFdWR6RTg2T2UwL0Yyd3NhODNCMnJGRzFFZlJvSjZCK3M4UnE3c210UTFrMXBtcUdIbVFvTUlUMnJRbndZbjhCSUdjWXpOSG5OUllsN3plZHlDR0NmWGlDdXZoYVI5b2owdG90N0R0MzltUUdPTTRaRE9ML2FMSms2VEhrOXd4b1FkWjlsTEh0SzNCd1NZMWFqc3M4K2FUNXYwZWYvWmJ1R3FjTVl1bEdGd2tHajNEMUEyVm5EV04yMzJMYVEzbm1QbHk4cHJHdXpuWGNwRFhQL09jU2k5aytQUlRVOTVCZjdYU0M1bXNiK1lwcjUwbjZTT244bWpkNk5HbTk2R2JiY0ZJNU1Mbk5NMG1OZm5uMzY5c3A3S25lc2d3R3F1NVYyV2NpUGJhYi8wK3hRZUgyZUhBazRkeUJyQnlmc1lmNUFEbFRRUHJ1dEVmMXNScXpsM3phOGJzMXhvbUtQSVNmZWNKS0ErazdvclluZDMyYUtydW40LzdKV3IxNjJXdXB6SGpyTVFsWjNOa3F0bmcySTY1R3F2UktONDA4TkxCTmZuTVUrU2lGdjlhVXR6SnVOYUhpRlI1VTlYRUhjMHZ3alJ1VzJMREJxZDhjYTFmdUhHZXgzalhkckxmMm5HSDFUVkRqeTZkSlVoamJKM3llZnppYUMyemdaV2N6MDErL1V4ckxXdjNFWkU2Y1RKZml1M0JrVVN3cFZTbHd3ZGtKdlJ4REdoOVZyLzE1UEdFNEtFL3ppZVZ6eFRnYzFEUUYrYVRsUDBRdEYrbG9vbXl6dzl3bk5UZUJ0YjJZRWFMRHJhVnY4dU9hdGo1YUQ0aE9NWXV5YnRBUFN2cko2Ujl3NlJXbEdGQlZyR3hGZnlPd2tjMjlzWG9XVURNdENoN0piQnRTekFwekVlb2t3MFVCSDE5VUErZGdNM2IwRmUrZ084c2dsNGRXNkt5aHViS3NSK081WFBsZjdZUGVFMVNDeHJ4RHVublRDRitocUF1ZW92M05KUkl2TUVXNUJ4eVM5aU9sVWcvZEIyajUwVDNzVnA3OW13TmJDQ2pidmV3dW5ZbTUwdmErc1ppTjAxY0lkQnZsVDI4SXBnODJFWlErRzFndHJrSllBWm9iZjlRZjYrczRXRDZjYU5LbmRnMUg3ZStFRDR6ZlRrMFIrVy9mMGhjcVN2Wk02Z1MzNEljbk5SZVFQOUtpdGVWSHlGZXQrRDJvNmZ1YnRSbDlncjJ5YU10ZkQ0eEN2WHBzWUhuTlJRWW5YVTIzcVNEZFV2dXR6QnZHSGtnZDFhQkdTQzRrMG1uOUlHWlhoNmJlNUtMdFBRc1NBeXdkVUJXSG1HVmp5YVArMUc4cnR0QnBJZXdMMjRkK1N4T0Y4UHN3YnF3NVNwbzRaWTlxelUvZjFKaSs3QWFwR2F2Q3MzRDBGNmlYTzBkMXg2S2dEOGhwUmVlNHduYmhOVnZIT3RhdkQ4c3kveGtsdGZwbnRwTGhLYW1xMUJkOUhiNFR0VGpmRENKYjFNY1FSYmY3M0JraGdUdC8rOFBJaS9Wc0YwT09TKzNiNlFFUXhEc0hGcXJUMk5XY3BuTGU1YVcvNjlYNHZmMVNvaGo2TC9INTJ1MkY4NTQ5VHhPbDZHakdJbHRHZXRBMmgzaDFoQVpRV1luYnVyZjVWVFoyWHA5WStNWTNNcnQ2NXpmSDMwWkZrZllHZ2xpUGVsYnpQTzJZT3lDL21oTGVzU0FWM2YxTlljV1hSUG1RbFE1U1J2TEhvcDVZVU5Objc1aWRndkROU0g1eVdwdUI0c1ZPbjFFdmxjd3ZKNnlkZ3R3Q0xDTXAvWllPRTBNRHZRS1QzMndNY2x4bHpFNUxKdjZ3ZFpQMWhYK0pPSG5ocjRiMW1yYUpMU0pxdTl0NEpsOFpjOWpYN2pLdDhIY0pMQkRXZC96cE5HekwzNXpMTDNsdFFZdk0vYTdCTE9uWWJjMCsvenJNenIweUJjMmg2RWdMd0V6aGZCWFZmOFJkN0NQamYxQTdHZXhQVzdLUFFwc25oT1BhWDFqSjBicW1vL1pzSnVSMmpKQ2cvbnhNemF3b3drOTBoN3J4MmRwQ2VmV3RFMzY5bjY0bUlXRFdCUkdrMGVCNlZNYUw0ODhVdHZJK3duQlZqaTVMMUw3Zm1CMmlKUUMzNVN4VGwweDhqbjFMOGxNbVJtV3Y5VnM1Qml2MmVHd0xLU1lGbFNXR3puZVA4eUorZit6OXg1TnIycFJtOWgvK2FaMG15eUVaK1Fna1RNemNrWklTQ1NYLzdzTHBEZWNlKzdYN3E1eWRibXIrazUwejZzTjJuR3RaNlZuLzdudStiN0cvbmYrL1RlZS9mMGJKNmI0K0FEMjlmRU9UdmJ2dXhEKzBmYlhXYVNxdDl6ZWJRZnU5UzlyK3ozZlYvL0xad0FUUGlNUGNaZXVPM2J6R2VtVXdYTVYrZXIwSmMvMnYvbU0vT2VjdUhPVisxREZGSU4vNEJEdWU3OSsyYysvZk9yemw2eDdqL2tQbStxUGVwM3ZHdUwzSFFUemp4dzNodklYVDlnVWQzZ2JvRys1L3FkLzZlQngyTmZoZlY4Wjg0LzdpMUI2RFB6MkR6Ly93UWNndWhEVGZYRjZjVVdDdWg5ZWdoQ09mNTNOL2R5N2IzL3FvU1AvM0V2NDl6emFyYW9HdmxsSHYrNXFTZ1N5U2RadkRBNUY3emphejkxRHZ2TEdnZjhZM3ljKzhwTDRBeC8rdi8ydUVTUG1YNy85cWIrRjN0eDRaUFByUHFoOUhwNUgrOFBXK24wWDByL2xYWVFmRHBVLzdrejYzQTIzUC8rcFhkN2duL3crNGNOTjhhbDcvdGhkdTZ6K1l4OS83cDNZMSthUDJ1MWR4cjNqUjI3eG5RZnN1ZVArcmovaUpEdCtabTkvK0JUK21pdjd3RDNmZUUrcjN2Smx4eldISGRLNVd3TGh0bjNNVmZtNTIvdkw1L00xdHR2dk92REw0VC82YjgzL2wvL3RLMTducVdQa3VhLzBHMXQvc05QYlJ2cTJpU1NlbmtJbVBYS2d3N2VPeHQvKzdrTnZmZkhFSFRHazVGZmQ0SnNmNWNNajhPMnorWG5IUC8xd0hsOEcxKzduKzdlK2xOdVByL1NXck0xUlc3UEw3WC9udFRwNEJ1R1VPZktsRDU2K3NBdVBITEhNK2psbkh2SW5kdjdMN20zL3gzRkI4UEhkcE4vOEJlU25SaG5iZFZGejlZNDQ5U1FoUCtPN0hqRjZ1SXg3YzdoNlAzOC8rR2dhL3NpejJ1ZjF0Ky9vVHp2dDhPMTg1OEVrYjI1bjZGOThCRi9ZL2UwTFAyS1MrSkFlZnFpREErMnZQbHcvZWYxZmRVaS81dkUzVjEveEhUZm1uei9jWHNoaGcvMXpIdnRkUHFlZTlBb1E4bmxGZm5HMUgvRk5jOWYxYStnNTB6dXZuZno3ZlpYNjNZL0ljN2ZMdDgvcG56NHZ0ZjNHWDN3WmVNeHhQejc5UFFiMzRGdHRVNEVhSllFT1BMNTQ3V3RrZURnVU9UOXo4T0hLaG9KZGI2RFMxN3NPL0d0OHoyRnI3R2MxUEhEckg3SFRMOXpxSkIwSkg3NDVwSnppSSthYzdCaml2MmNmMzk3NWh2dllqaHk2VDEzNzEzelFiZExMMHhHbjdkenhvN3VnZUtXWnI3bVRVZVhETC9tWnE0L2M4OURQM1lVN25qenNIUFVXSStTSEZ5eUZJODlzLzN2NG1UN3h0ekpteUwydnoxUTRULzk4NTlVNzh0aWVuemoyODgxM3Q2L2Z4eC96YlZPMXIzRCtpcU9iazhRbUw0WEI1aDlaQTVmUlVTdndVMGVYZE84NDV2cytvTEJOT243ODRWZjhPdk4veUtuWHZ0OURZY2M4OExDZjBRTnJkMjU1OEVrZC9vbC8ybVh2dXkwUFBranJEMy9IR243bmNQSGJ2bGQrKzRPTTc3bjZtZnMvK0x2MjhiZjc3NnZmT1M3Zm5HYlZUeTdwaDUvczllYlUrdkZiSGhqTUMrSDQyTzl2LzFHTXlzMXhiN1Z3L3MyRDg5YjE0dDdmY0lqUkhhLys0bkY4MjJRL2ZEby8zS0Z2dVhKZ1RMZExkM3ZNTjRvWWtlOEgzOHJQWGFsLzFuSi8rZE9QZU5TTzM1ekxML3pZN0xvMS9aZjM2cUlLSFh1NDM3R0NDeDEzMGRuWWY3T200eE5iQWFRdm5rMmZucTdvajM3N3lpbjd5b3Y4d2pDLzZ6LzBmOGx2MG9zL2RLRVRyeFJ5cmFtWFF1MTIxWi81YXI5ekRyOXlvcU9Pckw1am1aM2J4dFd1cytFcDdkem15SW43NUY5ZnYzTnN5T2FIUCsxZHQ2VjgrVW4vZGIxLzZvYml6dnpPcGZxM3Z2eHdEUDM0Sno2MVlFY096WEZIMng4OFgrOTdiNnlPckFMbU4rZkh4NjQvOGlZKzQzeHpuRlJIM3ZDdi9NRnZIai9oWEtqV2tTZDN4QW1PZkUrUHZ4OCtpWis5L3Ntai8wL3l4TC92RWZqbTIvdUx5Ky9EMTFXb0ZUWi9PSGIyLzErRGI3L0FrVSsvZlhNK2Z2LzJtMjh0NlQ1NTlRSStmY3VaTHg1Z1gvbngwZjhwUjZCUFRkOG45OWw4eWVnNy96bndjRndTNU4ybWYzenprUDU2MTV0SFZDa0NObmdwSFZVRXZkd0czdk9Udi9mdFc2N0Q0NzUvYWUvYmxMNzliUi8vODFlTzMxdFBCNTE3Qzk1biszZS92L2hxbjkvMzg3NXowdC8rb1NNSDhGdU9kbDl5dzRQLzlEbnQ4L2hiNWg1M2MvenpqczJPUjYvZEVYK0hnMzdYaC9JUmN6eDhJKzlZeENldjhPdnpqRnhyYVZKWTZ1azBybUk2dkcwNmJ6NkZYM3g4KzdtRHZzNmRCNUZITGtyYWZYTFNXVzY3TXRTcXNOSjhaVDcrT1RGWUpWR0ZreU5PYnhUcEZ6ZExCMy9pVVFjR09EaDkvdFJ2bjc1WEg5N0JRK2FRWDNLN1BtU1Y2RzVYait5dS9yNUg0VG5weUVNT1h0N241cmdYTXZDR2ZiNS9jVVcyMnk5ZDhlSHpDcjdyd1JQZi9lVDEvK3lQRDVmeWx5NS8rMVRlTXBEOXhOajJ2MWR2WHUwdlc3UjlIVFdSQXJuK3lyMXBJaS9zd285Zjg1ZU9PK0t6WDdHbno3c1JaZjJwTnovMjhKR2I4czBaL1Z2dmZlYWFYbU5rT096RHlEZTMwRnU2SHg2d24veTA3L2RYTkc5RDh5NGI3cGMyZmRlNy9PejFkdzZ5MEw1Mi9CQ0tidjBQanM2LzVsWmZiL2VEdDRmL1QvVGF4Lys0eTV4L3pOLzcvbk9CbnlQM213ZnlKSW5CRWpEVTdaY2Y5WTF4KzZZSU9uSzN0ZC9qWmorK2IxWVpybCsrNVQvclBkLzc3amVINno2bmYvL2UrcC85M3J1LzFNR0xFSXZOY0szbzJOcGx6WjgreTl2ZW4ydXYzcjVza2xRZzUrT2V3US92WjdLZTYzMnZYVDEram40NEw1OWgxN2F4WUF4LzVMQjA3UzVQL2xWV1NIdmYwTy9jOVgyUER1NlhETzJvNHZPK2d5L0U5ZzZ1OXliMGo5aGJHM2NxL3ZmN2Z2R29NTU4zZk8zSU14Qy9PS3B2UC9ucXpQQlp1emVmOVdWZmQrNnJKbGVHNHc1L3k4NFAvM1lvdUhPNDYxRVByelByVzc4VUI0LzR6N3ZHR0ZFZmw0bytjcjdlZnRoLytJRStlUk8vODFQZmZHZS9PVWovNHFLWms4NUZJbytFazVXNnYrODBhSGY5djl1WTIxRlRpSXozZmE3ZVdPSVBIdGdmbjhMWFhUMi9mRVNYNXIydTEvN3dLOXkvOG5VamdYL2ZYZitOQVkrYW5ESVc2VnZneVcwcXRFZSs3c2NPTGlXaG5HS1A3RU1QYjkvbjV1QnZPMklGeC8wQTczRjgyeEYvN205ek84NXdjK0M3SWZ5ZG95R21SNzd2RnhiOG5hLzBKNzc5bkYydTdiNXF2cjdqRDMvd1pweS96djh2bWZxYlYvWnJudCs4SVQ5bjZhZTIrMGUrL1lPblNNRDY5T0QvUG5qMlgvdmNKS2dLaDc1eXVWcEg3T1RETjhsLzNiM3dPeGJ5TDJQNnJoMzYxa1hmOGtGVWQxMWVKbDA3ZmVxUnBwVDV5V3Y5dXYvazc3R2FVK2lyQjY3NGxVdjdvK3YyZm5zSGgrOGZmZjV6SHY2NUozL2pwMy9NVWZWVno4Ky92dm5OZit5SWp6NXF0OS9jMEorOHpxOCtiZjhacnZqNENhYmREZytRZHJkbjM4Lzh4VTM4WjA3RFd4ZmpXOFI4eHdTbVJHanJaQ1VScFNVUkJTYWZrWmQrYy8xS0NEenMrK2R0UzhPN3JIOGVQSUsrTW56TE1lRzd6YjVlYjV6OTJlTnAvZWx2clZ5WTZuWjN2L09UbGlIdW50dWxldWN0LzVMRDczNTEzejZOdDQ4RE5lSGR6b3M4Zmp4d2o2OU9zUmkySDN0NC9YeHVWNTgrWXNXeDEvWmZHUHZxZmZPNTcrdjZDNmNjejd3U3BQaHdxcE5Rak5MRElmdHJPVTlyTmYvalBmUHRLZjM3WEZheFFQYlg3N2x5dnZKZjN6ckZEOWFyYjA1ZnRudGFLOU52VEsrc2YyTDZYMmZnMngvMW5iZnVtV1VpbXQ4NTFiOHd6SWZYa2R3Ty9tdFBQWERLTDd1NU91eHJrVjZEZ3h2emlGbSs0emFvdWRzOVpkS1oyN1dpMVhlZXhYZTg4VS83NGErOCtFTm1QMk0wL0FOamZkVXhmT2RVSEhrM2J2MjVHL2FXb0c0ZE1WOTVHK1lhT080cmJjTXk2WTk3UDNZNVdBZSt2SDM1emhMa1hNUUlObnh5c3Ivd3k1ZU0rZGdiTHBZSTcvb2ZTVERoNUZjZHh4LzI5QThlWHYrd1EzK2R3NERsRG45SndORG81LzZScjV6L3J4akV0eDV4L3JTOSsrUTd4dWl5c2NBUHNXdTJzVStQWDFoeXgycWgwRFp4bFg3N2V2K1cxVC8yMFUrTTgzdGZGRXExN3htNjJIVlc5cEZMUnd6eGZmL0JTK0w0Y1orejZLY08rb05GRG16ekswOUs1ZzNIVkUwTGY0WmZPVDNjTWdTSSswb1E1OEkwNnBTSTdScDU2UzFscUM1QXlEbXp4MEtwcVZXcGZuUWFVd3hLZE95NUk5ZndmZWZBbCsvR3A4c0FPZXFxdjk0N1N2elBYTzlqa1pqeWFDczEzMjJxaXoxZTNqa1lSOTdRd1ZmMWxZZDQzQnZ3cnZkcE0wRnRFL0dOYjNkWmNmQkl2dXR3ZitQczcvNWRpK0hnNlkwOUh2L21Mem4wK0Q3V1g1eXVQLzB0QXQrNGZPSUZoL3pZejMrS3B1aTE0K2ZBVTIraGhVOUpseHp4aU5ERGQvazQyVnpMbWc1dW14YTB2cyszKy9yVThuNWp0QS92OWplLy9qdSt2SlRwdTk2M0RGSDVoL044WDdQamZveDlYODlGZ3BCZEtxYmxycS8yczNia0F2WWZyc0xEN3lIOU5ZNWozdjdSOW4xWEJWWklEVzlMWEd0TEZjMFlyaW83NjN4eG9kYXhPTkoxR2RvM1hOa3lITnl4SE5lV09OS1NPRlczRzFOMnVWYTNXNld3b2FBd0hEeVV1S2RzTjhZb0NlNXcxSGRYUjI3Vyt1YlZKVmRKYUk4MU9ud2JyZHIrY0tkODVzNzY0MTczcnp0cDZuMWU0aTZGanpzaGhYUzNYZGRQcmRZYyt2TGhDLzNjQzcvTGpNdm43cSszN3RwbDFiL1B5ZXMvL3UvLzhuLzlSeDkxMlgvOG4vOVJkUVg0eU5KcS9LOUoreHFmMmVPL1BtL0RyYjBWNi84eDlNVi8vSmYvU0tObnRMZHphYzJjb1l0UTNDaUtvbFRMS1Rtbm9DaXFWQ2lLNGtLR0N2YS9QNkZMbnU5L3FGQ1Q5MFR6bWIweEppWGJLaHY3NVlHVlpWdWFqenRiR0djekdXZFZPbjVPR0x5SlBINlhXYzlreFYraGI3UktMYlZLL2JrdnVkdHQyay83V3BxVm1ub3FyUEZVYk5WUmJLcFZJQTdTR0djemJHVzkxc0dxdExldjU4dnd3TUZmenpvdlpmOWtTalh3MUNIdXpTbEJpa0cycFhYdlYraWJaYmgrMmpiQkhIajhTVUZNVzYxTjF2UEtJSUFwV1BPZTBGZjdIeG4xOVg1dXZkYk5TN0c1cjkrSE1wOXVaVnZsOW1kQ3dUM3lSZC9QcS93K0w2SFE3dnUrakMxblZZUzIrV3JyUTN3WE84WVMrVzBYYmh3Y0kzeHJlZVdrd3VldmR4Lys2Ni8yenBFSEJpMWY3MWJkOEdaM0VwNmdLZWV3MU9JSUVKS2lNaGVKNVQzMmQ5MUROeUdjYkk1QXRoSFBiMWxYaGlHY1FDYlNYaHorMWlxTjFDcE5XRG9kaDhXZGE5bmQwZ2ROZUZLY3NEUGFkdGI0UWRBNFY3ZUYwblBiR3hhenNoMzBjdTg2QVJyQ1RxczBzdUtLQmFiQ3ZHdDBjTy8yK3p0RDM0YjVMWUxhSVdyVUtVU2VZZGJ4am1QTHFPY1crL2RNaUVxd1dUZFExcWhyMHVDV2dhaThXMHRiME1pK0RYTnd4ajBYazNQdHVBbTNvQStocUhKV296RWIxMDdyQ0VsTkUwMEh4M3QyTVpMc2ZWQVQzN1JpeCsxaUNPOUNSTjBjeE5pc3ZsVkNJVlJUcDFuZFRXWTl6aDBTaDFRY2IraENwK3hqb2ZSTVByeEd2dW1uRUxlbzNqQ0h6WWpLdGl3RTdyRHVueDRYWG16WVhLeVdRNDYvSXlXbnJNNXF0UElhTXM1cXRpN3Q3UGFHQTZ2Si91OHU3QlF1Z1F3RVYwTWtGRFZ4Z0pMTzlCS0Ixd3l2ZlNrT2licXVpVGw4aVNtdWVZa2Q5ZVIxTXEvNkx1UTB3YUo0d3hLZzNJN0htTkRteDlqakVaZHZWZ2ZpQTdOWDBKQkxOYWR6a01oMW1RZ2hSUWVsSWNWTEpZc0x3OUFkcWdBMTc5RkdRNDRINDVsb0NpNVV5amJYOWdrU2VnNGJiaUdFVzU1STMxeTRuT3kyUlIxT1dXSlhmVGtPQjhjYmhabzEvZEM0WWM3OEFESjVGVmM5R2RlY1ljc2NXYlpnZVl6WVVGV2RKeHNoSEJKNHlxYWd2T0RDcnBTMjdzbjIxTTNoQnRycFd6aXE1Vkh6NEpzRkQ2VWxMTFBkdTIzY0RwalROL3Q2YlVwSHZvSjJHRndCRDFVb2ZJVWkzWHZPYzFZMk9VejhBQXJhdEUxYS9oVDRadVh4Y3BNZzVNdHJ5ald6MHpaQUJpUHV6bEFrd1BjQUx1SE13d1hONXZYQTRUblBjMmEzNWRrQVNmQ29lWW9LcTZ3UjB2SVp4NytjWHI1NnJpc0Z6Zk51dHFwcWVlWkY1Vnc3NDdsOVQ3WnEyeXp1UmwvMmRVNWgxekdRMEhhZzBOci9MZHN5azBCRGE5bThsZkRwc3Y5YmFYa2tnTlNUeHgxbjZHNkpMbU1oQldRaWFhUjIvQkp0eWJHWFROYXRYQzZVQW8rL1dRZzh4YlpxT1hWYktpMDlwMjRwcUVnNEptTHBLMXNvZTBJTEpWMzdTQjFsVTJ0akMzMFhOamFWeld4ekNUcjNGSE9rcmRuOFlzTURiS0h1WWduRjF4a09UYkgxVWk4OEpXaW9tR2c1cTVENjBqaXk4emdTQ25sNlZXeDMwdmdDOTFqYXRVVVhkMWhUaWFDbmtObHA1NkN1cUxCeWwvRzBhMjc4c2RkalcyWHN5bG5OdXFSM0diYi83WmNjMjB6TDJZeDEzL013OXNZdHptYW00TU53RTRwaUtNcHlUTm9WcTRSSVljS1JmUmdaNDJXQmJENnl4MUNtVDNQT3VVeDV0dmNkVlE0SWg0d1FyTG9zNHh0Q2RiTkF3V2dkOUtsZmhFNE43NUZnNGxSbkdhdk5MV2FDUEZ0dmVJUnRZU0RCdlc0a1IxVTRtSEw0MjJVOGdTaExwWUpSaUI3V2s4RDJHTTlLRGl3SUVxQjZlb1lUWTU1TWxZTllIYXhwRmlYbVlnSFBtSlNvNG5LWEtxbVNoSnRjRjdkS3FvU05VUnllTXprRHdjS2kyTC9zVUZyaGFNNXNIQWlUOXpaSzBZbTB5cG1jMlhBWUp1OXR4cUlYYVpvenViVGpBdXdpVlZJNXpqVlBtNXpKcVM4aGtCaXBrb2JuYk5PVXlZVzhxakdSVkVtMUpKZXp2YmNKYVUxakxLbVNIcEs4ekliSm1XSllDaHF6OXkxV3BNVndUTTVrNDdKanFFcXFMbkhDelFabkNxWnRGOTNlWm1XQ2hJTk16aFFNdXk2YXZjM0tKQW0zZHhJSnpQKytzUlZtY0tXalpqaWxOUURHejBwQzFDWGJ3bkhqRVlJdkZJR2xLSGxRWkhBaWdKTmFMUko1UitMZzVWM2RpVUZUS0MwQ2dVN0VGRFhQTCsrYUNranNQaUZDTGN5OXZTSzNpc0RTQmFWRXFvRGx0NU5RYzhzWVZ2dnY3RXJmRU5yaG5sdTlWVDg0c0Nrc1lGTzZ1bWhFQVBCOEgyZWNWakpDQlFtS0MxTkl2VDNBeGVORmFPY3JNOWYwRFdLWVlQTmlwYmRIUHlLamNRNndWTU1ac3dtRTJzVEFDcjYwOXFwTVZ3UGhTOG1hUFFaajR1ditiSE50OE13djkrODE4UUZkV0dsVkhuUzl6QVMzSkc2NURUT3V5Sk1xc09hTjQyVFdJSVhSczNVTW1JWnFsYW15WS9tYUhpNVdNekJwYjZGbkRicHFpNDVMM1BUY1JITzIweUhLK2h2ZXJuaFlJbGU2ekRTR3BoY3FFYW5WWGdNYlB3TkpMVnNPUDRIRTZRN3IwNXIwOGh3R1QyK2pRYkJmQTVzSkZHRUxsSWQ3aDQyZW5oV1dPSjg1dFFrRkF5Tk5mTDNxb2RnOHEvd0VYSUtSNTNuVDhLd0cxeDVUdmZrM0tORnRHVHJ4TG5rK0d6NEE2cXAreXRWN3FvdVY2VzNSaytxbVNaY3VyejZmNmp1ZXZsWUpVbWtyVmp2RTBtL292Y29SVTlaRHNiV0xUbmhWdHIwUmRNUHdiS0tjU1hLbEdwa3laY3Zwc1BTRlJDVGZxTW5rMzkxb3lhZUZvT2RFTkZRS1pzdVo0QWVjQkM0OTVNSEJsV3dzR3pIUnZPb3VsZGlqSUNCa3VsQUhtdDh1YVphOW1qWld1OVhNYjAxSlZ1Zk0xcGw1dkJhbnJKRkhzbE9lVndNNmhZcEVTR1F6MnNDZFRWSk9qSlp3bkNNeW0zem1ocDJCNmxGaG10WnVQWE5EMURJZ016RG1BdXhNbGxPTlpWcTcrZlNWQ0ZEQVFtaVF1TTh2clhKdm8vK1lnNGY3UXBkbnRRUzRFSFhWUU5iM2tpMW5yRlJxeVhwL2QybXRrNjhuUmo4U1M0emc2SFo4a21DQ3lkMWpCcWRwd2tpY0lNNGVGS1hxVEdhRGUvSlZDRS91N2dXdG44ODBOMjZOYzczeXA3T24zeElEa2NIMG5BT2lCSktvaVJLdjdhVlYzczNpeXFzeFFPZDgwa1ZCT04rQkxpbkQ2bmEvS0FJYXFaUWgwSlcwS0s1NEVqbTF5RkZmQkYrckRxWk9Db0Rqb3k0YWFzSE91UW1BMmJRTGxJUUQxUWpKckdhNGNEU1cxU05MR1pjVVpJbldISytBRUtBQUVxQm5kUUh4VjVJM2krTHBBcXZYT09DSitkU2oxckNXVDRJOGtTZlZHamdrMXZzS0pxdjJHdlFvTWs5WVdPWmdUSVB0Z3RueWZFcU5PekE5OExPQ0llblY3VlpheElGOHFwOVBFbWhza29QSlZ4SVFGL0tGeUdUOUVtWHdXamRkMEtrMUZQTzFDZGdOemxWNTBOUml2WUNpTVovSjh1bytZT2llMzVwcDNBZ3g4QUUwNkJFTmovcnpTMTFqSmF4MUpYem9rR0RoNVNZWFN5WGRMMDJOc3k1WjVXZUNBU2RFQnJlWGVnZmozdWwyTTFkaGtEaDlOUnRLSGFmMXBBcDFDUnJoYTJTQmZsK0Q1QXIwQ3VBQ3ZTWXJuckI0R2x0aWdhaHMzRFk0OEdKbC9lMDBYZGV6dytQWnRVY3VqQjcwRllnc090UzlvQUVzRjh6bWc1dEF2TFpwUFlOYWE2UDh3Szk0VXNpdnVEcy95ZFBTRTlDY0l3dUlOUzlIQnNzU3MybkQ0Yzk2anJiYmliMi9lbXN3WHBmcWR0LzdlQ0h2Q1VoSTUwYUlHOURBQU5tOFFkSHMzV0ZySUdrNHROdzI0dVZtamExd0szaUFWSEt5eWF4YVhmTWdTYmtUR1QzUFNaTG5VSlVidGk5dENjSS9pUXdsNlVaYmNnS3FRTVNVTHpvU25vdEY4YStOUmM5NDB0Z245akx3K3pqbjhjb01Damt6ZXRUbndLckxkTGZvWjAydDdEelBhZVhLcnlkSHYrbjNRQkVZT2l5QVBINUFnaC96NE5PbXdhYXlvUHkyd1hJZFRQNklBcFAva0ZGSWdCTmwyN2FWSlFpQ3NLZWI4a0pvOE5UeG9LeTBFbWkybmMxWFQvZGgzdUZnbURSZVZqeTNDWkdIT1Vnb0lteHBsWGZQSXJkcytaSmpETDJNVnFCNGFrS01KS05pdTJSTWExQ3ZGNmpMZzFKSGhtTjhqQTdSUzluWWd0bUhKL1hhcm9RVjRwU2FpekRaNWlodEFJdWVaNnN1WC9yRVgxMjJsanFhbXZOcVhRR3daVTlzTEROV2M3c1VONFlkbE9YT2dWR25neUhYdFBuck1laHJnRnpUU1R4SG1tZzlTZnJaMC90ek5hV0liRlBsamdXTzIxWUhJdFJhWXd6ZVcvcHM3enJUY2xvWjZqSkR0SXhPcnFTenptK25XaHpLL0J3ZjgxWk5zRHVBVm5CaG1zSEk5VzZMZkYxaW4zZm9ic2pyK0xnTUNuRGp3TERYdGFQZkRvb2pqbGdxaTJJTGdTcDBGa20zalFub1luM083M0QwYXJkVFlaTmRjdDczMFQyMTh6NDBNZzdoeThBcGRSdFBnQUtZYjZydHVEcytnTHJjWWZKeEU2ZFFiRnI3VGtERXBiNzFGdFJLVUVTR0NsQXNhN0hyYlVBWGFuT3lRdEs2Z0diakE2c3FYeWJUNXhCZlhLNTVudCtlZlkvQzN0R2V4VW5ndFM4NTRPdDMxU01VQUVOb1VuYnVBdGhWQlNHL1lxMFBwbkJFMG1zUENtajYyZ0xLUVcxd3V2UVE3cmx0SnVJNERvZzFkdFozR1NoTTVpTkV3dTUyWjRxWnh2dlQrSUJPcWJZRUNzZWNiUFcrNUVUUXJ6YXlnQVJrUG5kNUpqSzB0bVdUTzUzcUsrRDI4cXpZcVY0UUFLQ2ZwK3Q2ZjREQXZtNkdxa0NaMk9KcVh2Q0t6eFlHUFo5U3Bjd0c0Q0U4V29SSWRWQlFwbGdFSzJ2UndhaFh6M2V0MnMvWE1vTmdidGtrM1lKMzhNb1BRaFBWNVJuMEo5OXZWenpObnEvcjZ0MWhxY0plajlkanFvT1RabmJ0Y0FtWTJDZXYwSG02TUVQWFl1Y3poRHJ1a3VUcUNQWjRGeklaMjRrSVcyT0F4dklWSEFWcXQ0Wnh1V0J6ZUxHZ2FVRzYxNFRaSUFnWTVEa1hWNk1iYnZmejlEVEVPZEZFaGJidERXcHpKM3J1T3E0NTJ3QWlnOW1GSFR1eEo3QWduTEhFdVg3bVkxV3dSQk94RTRLaTQ3VmFncEdtNk9oSzV3UUF0dFVXTnFoYkFmM2pRUURDMERWWW9sSFUrTGlzMEFXTzFkTVNQMmNjQktlbVZ6bVU3V3VZYUdRa3JUMGlmWFVpQU9vTmxrOHpKdmJUcUNRMnQxeVk0a2F4SUppUjRNMXJJclVEcy9wcVFhcGVZOEFPQ2d2WEJWZGNoUWg2RjNMSkpKWW1JT1lOc1VCRVdxeXBobWJlc1lja2tMUThHU1E0Y21wcHlCWkxMRnNWVUc4M29vNFJOSG5SWE5mTW5jaVdDTlBqNTN3ZHAyc1RlaTV0bjBFZDNLWWNCQjVaTGFSNkQwWGxmTTdwZ2s0bS8rYmVvRXczbTBWaHVWT3VGN0FLZ2F6cndrQTVYZWNFUHdQNVFuWmJPSXNKcU9vVDlMeGFGRVYzNDlKdDRZamNnU2wvSWJFaTdrTzVNUE5ZWGdGd2d1WHBkRzJoa3ltZGRSdlp6NklMSUNyWVBJc2NJSlU0VEZJdUVKaUNwRnA0N01YYUxBeWVqZ1RzUlJlQVhoTVltYWI1Nk5XbTFHOFE1T1FZRWVmNXZjV1ZDUVFCRFF0MEVTYmcwTVpWYUtGc2J0WWVjSEFQT3JtNlQxc0luVlRtenBQTTlVcmdBWm1lbFFGYXcrUTVnaDdZdFBOMVBldUNCMHg4bHFJRE1LRXY0TEhvV0dTK1FOMEZRTlQxWkpDTjlNdjVCR3VJTFpSUUxla3N0WEt3OStCSnJiYzUwM0ZwODV5THk3eXZTMi9qd0N1cmhYRHpRczVzUWk5M2lBMGZVZmI4OHEvN25xNVp0ZC91ekhtaU43RXVVZFpEQUxKTVQyUjJ5SkVYT29XbElwY0tBT28wMjhxWlB5T1hCVk5YUE5uS0dhT29rYjg5MStzYXVHM2RmK00yYUhtMkMyYmN3VE15bjBmWGNWeUIzckZoSkE4ZW1YbEFMNi9KdmN6dEhac3JvdjdXTFozWmhjM1ZWcGtsSEF0VHJNdVZidkhFVDNwMW93dzZ6NmVtZmZYK283emRMOVg5bHA4N2JSL3lIYlllR0tEWHhYeHpyaGNHZWk1WmJkNFd6dUVseTJyS2ErczM4eDFrVTVZY2MwQytjaUI1VDlEMWhzbHVTcWlUNkQvZys4MkhDUGNCazh6VDI1TFJqMjhPSmJMVlFyVlk1dmZsT2pnUDVQcEVDUVRPKzM0aXlUUXJJM01BUUowWGEzcEVpVWN3b1FBYWpuTk9QZnlVRTdjRjR5NWVPOFE1bVR2bjg5a3dYbjQ4T0tRUk5iVTBLMnNLQ0ZrcmxtaXlqVFVJeTBFUGpqWUNPS0twbW83TFgzS1poSFBUOEhsQXR3Ym5OWHQzaUNxRXlYKzBQcG1EUFE3WUpVcVU4OGlQenljSWJlMFRJbDBRZkRxQUx2ZXhIeitSbXk4M2EzcnRZZTVCOW9rTjREb05kbmlWZy9lU2tLdEFSY0FzenNCTXpsUU1BQkQwbkowSUFycm5qalVoSWJ5TjlXb05FRStxKzluTndIZzBVZ0RJZHoxSDVUYzBIbEh5aGNZeUNndVB0TXFUbUFPYnU4bmttMnVtelpKTUtKYmE0WWkwOW9rVk5TYkxBSncySFk4bjZRNE9lbEJZY2x4cWlnY0pPM2FvR0J5RlpXTHBwdVJtSzVIUkRmZUxFNm1DRlpLbURHeDZwaGE1NVY2R2FSc0gzUXE5QjEvUmxhbjBPNzVLT3dQcEZpNFcxaWRwRHNpc0EycVpyNlk4NU1ScjBLMWc1SXR4dDNGMzNFWW90YnBsQ05LdnAxdjQxM3NEU21JTmlOY20vL0hXdDRWazdaYjJSOStDNDhhKzllMzQyQjd0Y3JZQk1COU53V3lHM0lqRE9Tck5HOHJPR0NjT0NuRG5RYk1SMy9vMjlQdGNycW1DempLTjQyUDFoZGo1VFJsSGNSZElTNnFWeHNsV29oMEwxVHNXa24zaWpsaVM0b3RuUUJReElHL2xIdUtRc3k0dWM5TFo4c25YSTVwRmhvMUFURngyaUR0Z1NVbkFVZEljcXpPK0pMNW9oVERGUHZnVjUxcmVkRks1UnlTYnZBY1QyVmhHVFZKSkVIRXpWVnl5ZmlDdVV5bTZMbjhiK1RpOVE0MU5zTmRubFdkdi9HYmxXQkJ4NklRU2pWc0VGeFlTWEVPM041QlU5WGhDVjVJc1cyVFdRVy9XY2JrWmRFeFJyWUJLZlZLcXFuSEZpdk1qNk1GN0lKNmIxYXRKd2NNVmlxTURUeTR0blFBelB2SzZvWHFRZXVyQmdRK2VGaENYbWxJa0ZNQUtLSXFlWWdSczhGZDQ2U0VPMWtTOVk5a0JPakUwV1RiYW9vTndsYSsyZk5laE1HMW15cENWem5acHo2MUNrbTVkMjJrdkRENGlzWVdESmE4dGVrNGU0MWx6TE1nNHlPWE5uRVhKZlkxUGp3RzlObHQxZTEySGhKeVpLZXIxTjRiR2RValRHWU82WFMyRTcvQXh2cllySm9uSXhkcWUrNW1EN0VTSFQyVFcyaWgzSisrSmZ1ZzYvOEtEeFF6S0JWUHN1c2h2OGN6aW50ZG1JM2g1SCs5ZFRsOW9iSVZZV2ViRU5SREJsNDB6RC9LVldNRmR0YllRSWtmMHNZUkFzZnJOc0NZMWZ5S3pwc3R2eGpSdVlCK2dLenB1WUp2Y2JjQVhTb1ZTQkpHaDlaT2pXMG1vZWpkSGJvRHNLaUxDNDBHQk9NS0QrZGtIZWlYZjdTUjhQMk83SnNoMGxxWnhJZTB0bUt3cUx0WDltME9rZDNnbUJ2aDBNblhJOGhFY3JzY0hHbzhid1NkUEcvQkZXcUVTUFI0OTN4Nmd3cnZ5RldMcG8ydndGWjR3SWdubStFeWtFSEhpZWJqT01ZSUdYM2NCdER2aEF1YjkyR21WMDV1UUtpN24vRXIzMjBJTURtNGptNTNuTjA0VDJhRkFZNXlBTHM3d3RsSEx1d0NtalFnQVdrQlJUS0tMalpYbkUySjY1ZTF5d2RQWEdwSjFlN2xVdDZGUWhuNUdSVjNIa2pWVXlHdC9rWHBTTlRkaVhGQWkybW9rblNmUlpQMEhmQ0xGUUtBS3YwZGgxMTJCbk85UElnODlMa3hOd1pmV2hpSXkxMWVqbFowdUQrWjZmQUJFMElQSU1oRkRuYU1ncjdnQ3kyNEVSdWw1bWk1QVp3L0laUjVsNXVTcmtHeWZRUkhXT2xzUlNaSUU5REI1ZVZaSTFwYTJUY1N6eWpGQ0FGK0lDcWJuWkhHQ1o3dmlVYm1QUjJEaGswcGhtYzZVWkgwdjhoeWN6VjNXUkdyMkVzTmc4bGVjckhjQVFtU3pEcVQxL2prUm9LaTRuQ2lpNEZrSmNRd3JXb2dnc2ZRQ1o2OVNkZSt0VGNnWDYzYS9QT2hxTVc0Y1RkbkZhbVc1eWNsTU1abnk5ZGFUbzAzSysxNkZEVjgwV2JnSkJhTzRWTGZMZnY3bnBESWxYRWg2WWNWNE1sS0ZMWnVUVEJWcXVsaW9PeHc5a3l0WG1kcXVuSWZjakdndzVFYXl5V0FzTEc4MzVRd0E4MXhLRm4rREw0VlpGbk5ZakRabkNuNys1TTNBa3lxdXBBeU9Ocnd5eVhSQllQR3p4b1lqd3RBay8vU1kzVjRqbXhURmhtb3VWamgrVnRSWnA1ZjBoWVk4Zk1KVHhlc3RXZHdBSUV1d0hEeWRTYUdCZDd3NFk0RXFiUFNDTmNiNVBCYjFhZS91S2xYU3dGaE5KWk5DN1ZDN0hDYWtNMVVYSGFHaDE0WVI1Q3FZMktwYWdXclhVUUk3UUJkT1pveWE3cmR5R1pHSElTOFlsaWJBalVUU1ByUTRYRnVHR1U4V3l1SU9PNU9CNG5UMEpDaFNadW5tWG5ER2JUUGZ5YzdWc3R0TVFRKzhLa1JuWnVlVWFKTFk0TUt1UkpKYVk0dWd0NTlvT2J4aUFabzdEbnlnQkFaS0sxY3JYZTFjOXltZW45SFRRMFhzTFBCTjJBV1Z2Q2JpSys3d0hUZWJVQ3N6QmxNTUY0TUQ4aDVmRlZRMUhWeGphMmxUM3MrTWFIeHo5LzJ3S0d1b0xGd29CRDBBNXM4YVZ5b3pVbGRNaVFmb0ZGeU1ocWJmZmJLYlVMTWJmSDZjYTV3N2RQNmlrem10V01JaHcwd01TK1prdDl5NFhNUkkvQXlFNVh3elpJRmRNRVc1TXZPK3FCU2QrekNKWmVqRXptZUYzY0lSTlJHNmtPUWJHcytZenM3djcyQXk4ZmN0d0ZEamRRWll1bGc0bHc5Y0ZPMGJjWmROeUxYZFpPS3lqajFiTHdVNjJMZ0xWZnJoMSt4dGVyYVpxbmhjenJyVVdLcnB0a0dYRzNkYyt2aFVoYnJvZUozTk1nQW9yVkRwc3Yyc25seGRNdk8zZnhwVzJBVXptSzUySDNTRDJ0QmxDUldndFZmS1czVDh5b0ZQbTFJaWZpTUlGQldIR3hJYmd3cVJEQlM1Mml0QnBUdlpaQllpbjA4YUUwS1AvdUs2S0Q3M29iS05ObUF0T3VITXRsQUdwT3NETmdpY0RlRFhNMlIwUENQMDlqQ3hFQ2xaNkhOTElOdlJpUFNGR3ZmV2VhZ0NHcm42RFVvSzhUMy9oRHZiV3Uyb0pIbW1JRkszVjZPVGl3c0dSQlFsc2R6Q2hhZXNuK3JUNlhSdXQxVmpBL1RjVkRreWxJaktjUDRpeUZKLytHNEg5Snh3MktOUVZubmYvODFvZ3lTR2x3WXRuODNkTHR2Ym5VeFFMSmtyVm5PRmRad1REZ1ExSm5CbUwrVjI4Yk8zQThaa3VSa0ZJTzN6dE04bHFZQjEwZkpudWp0OHp2djhnejJ2WEtTclhqSFdlejRuU3crZ2ZmYUQ1dTJianZwOG1lM3FSVzFTMDcvSENhSjF4MU5jdi9CeTBPOWpRQWZ4bkhIU1ZDa1dmU1VrcUI5dDhJekpwVTJIa0dXOXp4WjRXamFoWkZpc2J2YkpwNjhFdEFFYTQvaXpjTWlRZmM1QklISG1XekVDMG83ejkzYWtSTlpHeVovTnlwSVBXWE5QUVpIV0xoaXJWRmEyNm5zN01OTUNoN0p5em1tcmZMVmtNR3Z5QlRNcVFGb2tiaHBySzF0MGNDczZYdUY3VTc0R0l0UldPZmdRbFlpVDlFcXozckdFeWRZeFREWnpLano4NS9nMTZFRjhzWm1LMmJDaStld1hxUDdmYS9XLzErci9kMnZGbGJOd1dTUVdJc1VkcVVMcEdETkx0K0VuZGZSME1SZ1ppcktaME5aWmxJUnlzUzVSODluQjhWUFlRdTVGdklpcEFrRndCRi9YRjNGRC9HdmIxZkd6Z2s3cGE1WnlsQVE3YnU1WXVwZ3BUUmRxUjRWUzFxd0NSRnZ5L0ltRWd0bmNyaGJrNm9NdG0vQjdUYzNHWGpDTEJmUHI5UXFWRjJ1OEtJS3RHRHh0Y2ZZQW5lWVVUVVdQTHdPemdDS2FWY0phNzdZQnVhcmU1QVZLcG9sSkxhMEthOTZnZERrOWpRSFgvUFlXTXpOSFIxYzZZVlVlNGN2QUV0ZnpKTS83OXlJTG4zaTZDWVcwV29JNXI3Q1hOSWRuTE9rVXVHUHBHOFJjaFBMbTFkNkRicys1RHkyaFVoaWJYQ3dVMU1wV1VtdGJHUU9peGZmdk9VZHc5b2JKR3ZUVTdYTzJoc2s0eDJveDZ6cExVWE9oc2JkWURwWHJHY2cxc3hrdWpJK0NKQnoxS0s3WlRhQzh2R3RZZ1BtR0szS3BDYXo1RXR3N0hFbDJnUWswQ1FBTXR5cjFKY21LTTg0ZmUzM1RVNTlYa0V0VjNZcXJ2Q2F0NitQRUE0b1VjV2hPYVZVQkFFREpJRGgxUFNrMjhLdXZGNmtPbjhqTjlQMis0ZEg0aVpwazl2Sk5MaEp1ZzlwdG9keERNZncrSTYvYUttZWJ6VzFaeHNsaWxhbnlwV1ZaOXNaQ3pjQ1l5UXNOVmVBK0N5Ly9BVitlMGVSajRON1JXM2VMU2dQTEt3ZzZnNjE5dWthamVNaUEyL1pjYk5WbXR3MEVhMUdzbDFHOHJ2TTRUYmxoUGJzdGxIckVNcEF0bStpMkREeHhKbldMUTd4RjhOcDdSSElOUnpiWml0Q2dXM1pheFQ2ajBRdlViUElmSmVRa3Vla3VTYThidUYwNnNZQzlNdDJmcWpGSk1nTmR6cE51NEg5aFlBYnlydkJKZ2U5d0hBQmJNRHFsYW9jT1lKSldhV0NKSVppZC9QNnV0NGIwMnI4b2U3Y3JpR1Fqams4QUhSTnVjekVRUk5Fa0EwZ1N1VVpQb2NPeXlidVRiSGRLWHY2Rmp6Y0U2WjQzS0pKNHZpSjNHMDJUNHJkZFVJODVRTndJRWpWUjBXUWRtVEg2RzNSS2RMU3ZhOWJ6YzFzelJ0TngrWTRObjBJaHNSUXVCTjF1TTFUQ2ZOZ25ZQ3lDcjdzRzVwQzd6QmFGblRQOWh1WVRlcXVrU21QeXJnMTEyWEphaGpyck95YTdxUnBZa3ZNTjRVRjJ0TUY0akkvWUl2clMxK0NJajAvYkdielNFN3J0ZHBxRnBBQ1pwZHJEWVdLMTMvQUFNSzErM0RZaThNL2FySVBQSWwreHM5eWNVcTF3Y3g4R2dDNkp0YlphUXFvK2ZMZ0lnb0RXQUJRUmdDb0syU1lvb1p3WC85cUE3VExiWXl3c1IxNENLcS9KM2RTVnlLNFhES3h2UVpMTnp6c2NuZHgvdFVlRlJlM0dwZTFHdUQreGNqS0g0eHlZbk10YklWQmVnRTNQMGpyM0NRN0VVUUVHMitWdTc2QlRZT05uaDFvaFVUbXRiRGlrVnBzR2VGTjhqd2EzTVFmaWpnZTNWM29CNDU3cnJuUncxZG41ek5GZGVJK2hpNFVOdWcybHV6MS9ZYzVUdStFOHJiL3Nkd3pEOUU4Sk9BZG51Um9UTmtWTkZBZnkzaHFJQ21LVzVEVXJxTHBsSGtBR0cza3k5TU12NmwrNEkwNVkzQ1FHMENmQ3dra2FQbXhybHpjZC82ODQ0UzFKdVJzVXFjSFZqWVlFS0tMeGNWbWZUR09aK3FEZ0t3Tm1qYjdyR1BORjZLT2dWV2syZVlDbTZmckoxbS8wbzhGZk1ZT1F6eGdvVnZHUTh6a3VOZTNiMXlLdzdTcExXS0paTWtrL25Xb2ZaK0R4SmRRbEdLMVB0ZzZHWW5QYmdoNFFoVVYrVHRPdDQ1a2x2ZlFRRDQ4Q1MxUE5tdXN0ZWpvY1I4QlE1S3N0UnpvVVJzMDJvZzhvQnZNSDNHd245dlFTd2hBbjZKUWtTUmxGQkQrbVFES213S2F6R3JDWU4vbStlQmY0RGtlamc0cE0xejB1cy9MbGt3cGZpMjVuaDErbTFjODBGU0JYcFdPNUY0bGtwWEQyOTRlV2ZGcXdrNjJPODBRNHgvaEs4VVROOHlvL0x0dElDcTIxNUlOeUxvVHBjUUxXaVNpa1BPcjF0ei92OWNDbGNobHRxakQwQlEvVDNCcElXbTFLMlhKNHc1RlpTREJRQm56YUl0aFUxanJCcnRQakNxRytVQmJSeFhwd2dBTFlpdjI1NWNheDlNblc3M1NPaE12YmY0cndKTHplem5KejdyamhZalFuVzVmWVVySzVoY3ZFQ2lmTngrR3pMUExWbEpmOGRIZlFRV2xseTdtSi9ZWS81YjZoSVRoS0pTNzAzUGJ2dUI5K3FiRXU2T2hTNldwVEJvcDF2WUZpdlNBNmZIcjZWa2dhTXJBcDJiNlBYTzB4MmMxZHIySm1WaTVXUDBDdjNQQWpweHZ1bDBvcXBMM2JwUTZGTERqV2x2V0EwelZ0RjhnY0lxdUxWRy9zY2lQQWpWMXYrK0pobXluSWd3ZHY2M1hIWjN4K2YxU3hYR1BQNXpTZHZXM2JzRWZ1UkN4dkdvN0Vua0YvUDJmWnd4NW1BQUJCbkhqSC8wNUtCVUs0T0wwSWJmRlBkNnhiQStUNlFxOWRvUHN2aEtSN3VCMGlqeTdQZVg5KzVKbFk0cG5yazBnMjkvYXdVQUFZUHgzWGRHUnhiUjlhYncrSVRoZUYveFByUkpXRW5ITFUxYXBKSHU5YVpUUzIzTEVvOFVUM050ZkZ1OUFUY1FiaE81NVdwMHNsdFN1UTA4MmkyRWN1REo3NURaWmtFdmZPSTZBTlNVVHVkeDRoMGxjUDFKNC9ia1FkOUlpMnkyRHpGZ1BSTzJZSG5wTjhneUFJdEVMU3ZOb05yc0hHcTNjYWw2ZDNvMVJpa2w3ZVlyOVp2UHZpTG9uUHU4eUduYlR5M2c2Ukc3elErQm5iWkFWb1Y3NWFDaUJuaXd0VERJYlByMG9PZ2dSS1VoQ2JuRUZ3VzlmeElUVjZnOFNpWGM0VWR5YkowSWFFMkszeUxWdjBwUitKTlVhR0JielV0MDRVVVN5UW9WUFNzS2ZhZjh1T3A3ZGxVS1J5eklvbjB3S0liQW56Z2NmWE1BaW5vT0tqSkpubWhrcEJJbHN1bE5zRzNoRnY2ZjBIL0JKRUVUMVJMWjc0ajNiRnFZS1c3T1lrdk9OM2o4dFpXN2NOdVJhekpFcmJTQWkzeHJ0Q0Y1bG44Qm5NWWVJT0ljZ2NuRFB0NXV2OTlwUjdXSHA4NitOVGdLekIrY3JPa0M2cklKMU1ZbUVlOXZoalBVK1h3U054WTNCZ092TjdJcTZBSGpxbENwYnJPNTVrZHhrUTZQNE5DanE1U2pRMFV2TWpWcGxQUFRKN2R4U0RDUkFvazhOSDFkdkRTZzFkZzJWZ01GS1hJOTRGZ2xvQ2poNGFxMk9yUHlIdTVjYzN6b1pJL2Q5aTFaeFpCQmNSWmliVDhYbEFYL0hrNllMRXE3aFJUS3gyQ0ROMGZmQVVlanUyZ0E1RlFWQk1OSkU5a2FmWjY2SnlxQUtCb2xBVW5lR0lERWIvT2tCM2J5QmQ0aFFRMHhLTVNLVENsL1RCRVJEb0UyanVManJpb3VrcEovRFRkRHAzeEFWOHVlSUtyRGRNNXNNY0J5Yi9nV1Y1WDRMWDlmeWNnTmV6SFpmWGxhOFFrbERDWGcwYlV6RGJrS3dudmR1U3ZhOGpUY2xkMkhsMVB0VVFBTHlLdXBRaVllN3VzRlNQaExCdi9ib0V3WHE5Vk5pekhOMXlQbXMwN1Y4WERNcTZmRGpCanFmRi80aFhLWGV3emxsVVhaSkl2Z3V5OC9KdUY2dWhkNXlka2lDNFFaQ2Q2UHYybnJKTlVBVmJFUlFrMTByVnZadGUySVZQQjZUSjdjUU5weTdLYXdSQnpqVEtiL2l1YjVFclhWSXpXK0E0Q1piM2NOREVCOVFCU3ViUEZFV1RpMnh5dkhOWDZ4NkJxWCtON2ZFcHFMSVVuZWU1Ny9vRTVqeVJLOCswTzZLeXlFNjZYNm9IalJJa0VVOWxUcEJwbXBlbi9UZnNHMGRSaFY1am1WNWp3Qk9GZGJJNGc2REl4Zy84RlhSTURVZnB3SlYrc28wYmlNallqaWtCMHZGRFpjY2hsendsNGNGNytRU2dKVUN1WWNFWkJCdDZpTEkyQlFtaXdqbzVlZldHN041SGx4TFpKL0p3VG1CNjg2L3RTaTNlWlVFSVZIdDJrMzl0MWt6bisxUE4zNWVKbUVEa3Rlbm50TTVSbjN5U1Zjb2lOcmZFSkhiZTVCdHNnVGNsdVRFb2ltSXhRUkRFWXpMQ3B5ZUR5K2dEbGl4ZHdOVGxFRnRZd3ZNNUl6VTBkby8yYkRiNXp4b2xjSExYTGRVRWhmeGIva1B1b3JiTDJZWlBaRzQraGRiZTlSYVZuWEI4d1IyWE42VWpwdGlseVR0ZmhjN3QwRWk1bVRMRThxUWR1WCsyTHRXdGJEc2JmNGVaZWxDQU93ZWFiNXh5bVZ4VVB2bmlJdDNjeStHN3RRZmxYR21iRUd4QnA5WkQ4cSs1TTE0MSs3dVZhWVU0bGI3aURnY3pSMyttZXovK2tUY3pVNFpRM2k5a052azd0a29IeG1na1JxcW8rbDlqYzhFRUFtQlFLYlZzQUFXd0ZQQ2xORFd4bm0rNkVaTEpGYWdsbld3c3d3Vk9UdzJ3T1pwaWdQTlp1bGo2Z21qeHN6dG50aWF3SlhUZmRkN0lndkJvQTlZZ3ltQnJ6SXQ4dzNKOXhrQjlBdy84c2U4blRlelhRVGRDTnJrQ3NKSURsbnk5Z0s2ekxuSkJGYnM5VkhHdmEwT2NXT0ZPdGRiVGw2cmIzWnB1U2tkUVlCcHpPMmJpd0lKaWE2T2h6cm9OdVhxVWpoZmlFanlFd2c1SEJPcnlnTTZmOXFITG5maSt3WFFkdk1Cc01ncUZQY2I0S0U5UmxpOFRRUUluWHgrcENSa1dBakh4aXdMTFFMa1VWa0VVcEp3NHJnQUtQRTl3NS9USWI0c2djTVlnbWFLS0t3T3Bnbm1MSWNHMXJyQnFPa01NOUs4NkhtMFFERVNvV1lNZUVFUmFvVEFOZmRicGx2aGFzOTJwc04rR2hTNW5MQjBVY3I3b1VlKy80MjJ3ZnRZMHhxQnZ2L0tuaXFnWkx0YVRPV2YrM3pnWEVyVHFmaWtrY0NJQXFFc05OWVNJRkFxWEpCWWh3U0ZvY0xMRUhadElZTnFmV0k2bUxsNDcrUFNXbkRXZVdiTEdSdmtCUDUvUzRoUU9MNUVnWDVNeDJLTVBrSko0NktQSGs4bXhKT0VvMmZMYnMzNWQ1K2NRZVFldWIvYnhQb1hKdDZlYm9tU0x6ay9QT3NmbFpOaHRFMXB6c3lrZXF3U0pWZWlWWSs3RmFuRGR2TVBKZExKVnFNZ2hYQVJmUkpsRGVMOU9NQTdMTlZWUW5TM1hWRTljZS9taUNuVnliZFpRYXplU2NzbFhjaVkwNEowaXlRL2d0VTQ2aXFFQXZjUjBmU3FLOGFGdGczTmVob3NxMWljNWZhRmg4RVJPS2NsMHAwWEhrZ3BFM1hxQzhQWStJVGkrL3hhcjlUVnl2YmJJS1ZDRnlrd3Z2YUE4bU5LWVNnSUE5RjFlV1NGUVJjQ21LMm1ab3pFRkxpamJndTJDMkx4MXFXOG5vY2JPT3ZuYVFnbEZMdENEd1BIeUNaMVVpajREc2Rwc09IL0pObDEvbHZsTVVDQ0EwT0MrRHdwWjZlMlRQS0VFSnJFR3lqKzl5UjhVMHJSYTN1U2N1ZU53bkNEcUx0RjhWUURLdWYzWXBkODVyMWhZM2NJSlBaSDdIbGFzeDRNNFhYYnNZdUZBSGMwT1Q0ZkZLYlVlSnpKN2lRZk85aFdseUZGWHpGK2JEb1orQ216VFl5dTZhR0pwZWdHTGFacGVNMmtOem81N2poZ2MwZUJBV3ErRE1ieDBFQUFJZmtUczY1RE1xd3ltVUFxZ3lwbnNVNVRRd0pmR2hQZlIyMExsWVU3b2NxcE5EQlRtUUJHSDVHeVNtYWJycTFSSnhmV0pQUHdqdDJaSXlJWEp0b21mNGo3WGprK1UzSXJ1OUdMcmVnTUZEanFmaTR4SVg0amVyb08zNHhWTDNscmVkQnpldlM5QkVUQVV4VzQ0THF1U3hWV0dQamJ0YUgvMFRneWNNTG02bGRpcXNKekpteEd2ZGxzUWFMN1VOSU5tczNuT3ZIcXhwdXZ3aFVxRktVRlI0VVpQcjJQTFJhcWxUVG41dXZTZ3dHYjBnVHNiSk55TVFvaVg1WkpsTkxRRVJXcHlNU1JITXpxNXVoSHl5Mk9LOGRxRWpIRWs5clBtQzZWcnRweEJzU3lnZUZDQXlqdmVaUU1uRGtzNE5KckRaUFJLS1JOdnlPUS9YblgwdE1iT0R1L2N0b0dncU9WNmp5ZkF3d254ek8rRFVlQll1VGtsRlpka21XR1EyV1JTSm1kd1RpdGJBd2ZVZEVjZnZsVXVvWmJBVDhXNlhHaWJteFcvM3hZek5nZG9EdGx5eG5tTEt5UjhYTU1DUW1MMUpRYWpwMnFUbFJEYU1zbHIwZ1VLa21oR0l6TWNiVGpsTlh3aXlKV3JhRDRZUFluZjRYRXYzblROakE4LzZZYTZpODNXUVdVcWZTT3ZTYTNWdDRneVJQcWtidmdabnhOVVkxZlBaRUNRSURtekNTdTMyOEpPZE8rdEg3eDY1OEdXWjZCV05zWFc3QVpuS0ZSZGNoekltd01lVVcvSERLZ3ZBUDZLZTJsTldqcnNndTU0NWdMSFQrUzY3NGRBODVWT3FwUWFpa2t3eCtaRU15K3FzS1ZDdStJcFIwdFc4YXB2RVdQMDhxcjBNcFJqS1dZbGI5OXczR3QxMGRHN0RBTjBxYkgwNE9VclBmYlNhOFVETTUxYkE0VVNXSG9tQlk4dkFxcVFHRXliSGd4Q1RqRmFZdG1GeHM5QUlMSFV3dTFuRzh2RWt2TElLUWJyRTdBYmpSUmRCaDRYNkdJeDMrNlg2cXhnQkxFZXNvbElBWnpiN1liNHVXSlNqZ3hOY1hyN3IyK3IvTDlVdlExc3FZei9xVCtpRWhCUUJMM3NpYk5PRFB3OWlvWHc2V25VL2gvWDhuWmp2WXlPWWY2OXB2ZC9zSmJYZFNpS1lwZDNMUzlOa0pWWjdiOGkvMCt0NWVWYUJlSTI5YWpsbGRacjNTQ0srLzlCTFcrcndGZHZNUUova0IwbzdFTDNqR3UrYktwaU9md3ZVY3NMaDlHZnRieDRsY0lTbkFrTGxyVWxwSGhQT0VWbEoyWnB3L0ZJMyt0VDJQRmwxMmpUTVBhY1ZtbkNMdWJmdFlvdWh3dXB5QXNtQnl2TzVscVdtTm9XRWlxWmtBWVd6SysySDZ6SkpwY3EzQzYyYmVJR3hPdWhLMjhSaE0wbUJCLzFmeUUzNys5VUhLNlpIU2hkcmFhOEdMN2N1N1V5RzQ0WlJqNkZHMjdMUngwWnhJMDZPWDNhMnEwTFdWQ3pPZDJndWszb0dlM3c4TnhtVnJ6em9yS3lldFFWY3ZJcDdOMm5iYnNueTVHaFRIVE5BQWt0VTFBRnM1VUZFdzBybFN2RHlDNHdVekFseTNOVzF4OFlUWUFuWXpORHR5NW13MVdmYW1ORzFpWjd0Z2ZCYm04K1U1Y2ZvMzR3SXN0WnpaWkNOUWZHVW0rR0l5ZkYwNzdWMHkydHJZMlhsSm9mUWp0b2xVYTJqTDF0VjJBQlJDNG1Sd2FhRzFaTzM0YU83YW9xeW8rUjMwS2VweHFPRzVZcXJHNDJoRDlpdUwzWW5hbFpMbzhsaUlsbi9nQ25HN1ZhZ2l3WnlNSllxTWxhbmRuRVFoZ21hR2w2dlRsWkxMV3FkWGlQR3Y3aE91NFN3dW85cXRYQmRNcXJXcGU4NlNYN1hMK1NUWDRHTlYxbVRudE40Vll6b0htMUhGVTFhbGRRRVBJVk9YaHRPczZ5ejZQam0wL2JWMDJsbDduUVM2T2dMM3ViRDgya3czVlBWSm5ZRzFhdmNWMmxXWFRYNXEyd2FhK3h6VmVhMTE1ZE5yd2xkaGlZYnJLdk5hTTZwRzc0TGFTSkx1UTFmSmRDcEtDS3Q5VVdTRFcyU3l2MFRTWGQ2QzVBamoxaGU1V3pHdDB4aHpmYkw0T0VUWFhOcFhIWFM2Q2pEcm8zZFkwTC9VUllIaUd2ckprRDIwZWZIUlZ4QlBPVXRNRm13ZUhUNGZhK0t2dDdGczh6eFFneEViY1o3cHFZcXJISDM3TTZiTzIyWEJUb2hxVjFDb2V1U21lMWc4U3Vhb1orU3R0OEdaandnSHJDODJuYUlhTkFPSno0eXF4Q0pCenhiWnM0dzgwU1RUVkVZTXVFeWpybytWZnFQWHNGQ1FYWE9XcGFtUWh5TjlVcjlhUld6Y2lSaFFDQlc4ZFd1OVJKbnlGaWNqR1VYbFRPclUwMjFRelhRR3lSeDlQYVFlTldXY0plcmxXazFWUmJ3aU1IUWgwNzVUVHV0b1ZOc1k4SnpYb09Qc2J0T3EwQ0dhMEM3V01OdjJYbmwwdzV6c1czdkZYNVcycHJmVUZSRWtVZnZvaE0zcDZvOTNSYzNZbm9pWGthbWpTNGEzREM3cjdTaERUck4wKy94VFVCY2UraGR5K0x1cUZ2ekVXOWhaM1hWNmZvWm03UHE3UHBMTE1XRDhoWU5vdnB0MGp6V3VXcTFFbmRTRkxJK0N6THF3Yk5CVGg3MVlHTXJwcUhYSVZUck9UQW1kd1E0QWxZMUt5Y3dXS2l6cE55VmpJcmxKcXpZdGoydGkyeStwU3Brak8xNE5SYWpkRkllSERuUWtIeExnTm5zbkoxTnlWekRhci9DZC9kbWxKdFI3TVBFYldQbjhqTjQwcktWdnJ0bkVPcGFCNXhDV29XanR1MVNXRUxJUkk2cFJKUHBDKzBKREpVeFM1TThXTC9IKzcrdk5kUkpkc2JoTDhLYjk2M2RUS3ZjMi9qQVd5blZHcmhFWS9nQVR3OGVWVUtJQmpNVElBQjMrR3p0eUlBRysrOVQ1MHFQZDFxcVhmOWNaeEFUQ3RXclBWYlUxVGNPM2ZhUFMyNTdoazFZVGZ1ZllHL2IwL1MyWGlZTTVQckpGdHZqWlhWRlVaYmU5RmV5ZEcwczhBd1N6bm1OellJbHNvWnVIdTYwMmsyZFcyK2w3eGhaK1hjSjd1MHlMMUV2TkxPYm1ZWFRvaHY4VG81WDZjV28xb2NyV3dLWHpMQmJMclhiUndDbWpXMTFWNXlkcEs4SHFLTklYUlA2Q3hQZDVLLzJuZW1vU3g0OXFLaFg1bGM1WVU3dk8yU2hYVjJ6bWpHRFhHL083OFByOG9vWGE4SWptM29YdmU4YnAvWERHSTFpOWxMMCtGV21uTFh4alVZSFpHOFcyaXhkMm5MVmd1WXA5bDFsL0JYays3TnJhMDk1TUNZTzZQVGlyNkFveGswR3NLRWR4cm5ZR1gxWnZlQTdxSFROVHVieG5yb3A4b21aVFhCazBjWUwzZThUdWNFRHphek11aHgyMWIyaktTMjR1dDV0QkFYRjdIZDB0VVJ4MTJNRnNqT2plYk52RGJGMVdyRnJxNGQ3VEMxTXJoemczQTViVEZkVHUvMEJqVFVSWS9lVGswd3c3WXlyVTNuakd5Rmw1VytjZS9hOWI0d01yQnBzeHRwTWQ0eXM3M3RMOFBRaW5ZSVp2a0FCckt5YWJQVC9jU2NYemg3ZEJUNUs1SjR2cE1hZ2dtQ3lTU1JGWDZGMm1OK2txMTNYREFRVFd5dlpDcXJDYlRNcTc2dkNaMnpJWTVUVmJ4MkcrdGh1TW5YMFhKaXRoZnlmT25zclhaK1Z0Y3pFczhYZFYyLzkvZVRiRFBOT3JQQW5HOG40MkhhbmN6WC9KaSs3S1ZnNVF2TFhicWFubGdKRzNLMDd0MERlc2Z2MmhzTWxlalRiQ0o0RWIxY0xpMC9IakZxRzZMVHl0bHJ3MnkvWEp6RGpuWlFsRjVqYzJ3M0JsTmw0OTM3aWh5MnRHbldta25MRmt5NnkrUHBaQyt4NFpmcW9wUFRwK244TEZ0aGE1TGw2blU1RzV2dHBkeGltSjBpaTBMa0xDOUh5Ym1nQnJ5Q2tUR2YzUy9JbG1sK09wODdsai9rT0g4MXVrL3RmRGljN0d3bGo1Z2hrcWViZzlHMTVpTnVPeDBxWG4raldMWTR5dVEwemhtMXdkOTYzU1k5NEE4N1NUN0UzZlZzekc2TzBiU2hpRjdlWjBlR041RTgrUnJRckdZRURaMW5CclN0dWN2cC9rWnFzdmhPc3krZHR0TEVIemxzZUNhMXNLaXRpZE9oZXJLNnJMVS9INmVtY28yaUtDRTVwTFRNenpQWkNoVmsrcHYxd3QvTVE2RzdBKzVoNFk3YUcvTk1IL2k1aWQrSGwxdW4xK3NPTmh0eHAycnBzdTBFWUdlazUvbllud2xiYXpXVk91Y0RVR2d3SFE4YkI1ZnhRNkViZ0J6MUJKTnVPTnRUcTM4VERKK1pTVGQ1ZkxsdUxwN1pnNnlBb2tsR1QxZGF1NnZPcDVBUDJMNGxSek9rN1Z2S05lOTc4OG5RQU11clBlbU1PR08rbmNsT0FJMHpNOW9pK2R5S1dzQ1hWME93WW9jbWJmUkNWdkJNQnA1ZFlTdjFSbEo4VFBHNTZqYWdybWRueldpelZyRGNUanBLMEpwazdiRTNIem1oTXprczZONmtEMFYrcDBKRFpHYWFkKzZrZlg2OFcwdW11NXBLRzNnN3lYSnZTclB5YXJjR3h0U3hzb3R4ZGU2TWJ3bmJ3OElLajlINjVuVjZhLzdlVlRlVExPZUFLTjU4LzNhTHd1VmdrdTFIWnlSdjI5bHhkUGRiUy92Z01lYmVWVUpXdUYzWmhoL2lQc3p3R00yZGtYTm9ySFIzR2NtTjVpbFllNGRBMXJoOHowbXhQRS85NWNqa3RwTVJ4dzZ2SG5mdk44Umg3N3JqRmlEYytTblliRU5kMThHRkhWNXRZN1duTjlnTzdpYkNkc3RZNFRIZ29PZXpmaWhjZDZwcXpBNzNUb2RmZDNYUlN2SDN1SThobGp2aDNnN21lRTJyTTNLbEZiYXhkbXZWR1BhR2tneFlOekF1Y2J0M2x2bnp4bWFFazJQaU5jU1RMSjkwa1h3NXJxN2RKbjhkMm5mY1ppYTFOY0U4UlMyMmYrTFBJc3FtQ3puUng2azYyM2tYUEsvRGFwbXZUZTR5Mjl2czBMUVhEQWl0K0hSc2hZdU5ld2ZXbWVFT2tEZTcvbkptYmsvYk5USTJLMWs5dFh1RGhwaGxUTy9BYjllcXZ5UTVMQ3piYUU3TjlyaTNIdTVsWlRZZFpURHNYanV1MW1qQ3NlVHU5WnQrT25seVN6dGQ4M3dQelZiakZvdXVlVmZjYnBLajI0bzVXOEdTRjkzN2VyWmZTSGhCWEE5TmQ3S3lDV21nV1IyRmFmb3p2cm00akJkRDI5cE9oc2E1RGJzTnQ5ZHJOdmxnYm0rQmZtakw3YlZQZzAwYXo2Njd4bkVabW1adjBPZzVFNFlMTTNraG82MEtJVGZXZFIxcTdOQnNoc0NSRnBJek9oOW41Z0N1STVsbGtCejZSeXM5THF5emQ0eTY3WlhWRXhyZVFHdzA5Y1NrRzdheDN5Mmdyc3V5UE5WT20zdmNwRE1FZ2hCNlc3WjU4bHZ0bnVaZ25TT0JtUmxzajYxazViUVlkcVEzbVh1blliUWF5YzYrVEV4R2pBMnJML0RqaG1pYVdmK0k5eWFkTG1SMHVpWEpWcHZ1cEtOMWJxYU8zWGZKbWVqMlRxY1RLbUpUSjc1L1Q5R1kyODd1WjdTZWd0QVo5UHRieWQ2ckt6UHR3cDNEUUY2L2RkaXpKcmdIL2VvNHJiNngzODBGZm14eGhqOGZEWVRiYWR3bCtzODg3eWV6Y2NhdUc2TFpkUmJ3MU8wMW04MTkzOTZyUzRFL0pGdm5JazF2TWlzdXBPUjRYQTVXdHJWSHg1NHFUUE1CbklxcDFqZ2lFbXZ1RGRnQjVtbUI4R2cyTmxNMmhITmR3bGdrYlhOcFY3anUvT2E0TTZDMWdYN281UDNiaXNqSVpyTnowd2VYdlhqcXNKdngvTDVPSjV6TURtQUdEd3ViNUZNM0R3RTlHTnZXcnQrOGVWNjRiTnl5cG5kbk9ueTdON1c1VnJNQlZpTVVqZEtoc1JuNkpOYkROaVVvOEJ3SEl4cE9kNUk4NHRLMXZKRU9JcU1tcC9OU3ZIYWIvbXkyNVowd1hHTElZSjE3MjNsTWN2bFNkVHdLUXpiQnZKbWxhYjlKYWxWUDE5dE4xOU51dDk4ODJyZFd3QXdhNmUyYWRkbDJzMmtuZTFPOGR1SFVRRk4wNExNV2FtNDhCUjFueVU2OGlldjFRT0hsbVM1NEd3L2RKclE0dnV5UFRoaTVyV1pYQ2VHcDZUREJOUVRoMmIwcXNyL2tqT01vUGQ0WDluM1ltMlZJRzBlRGc1bDFqWjNnM1psNEpSK3Y5Tm55dzlFMVV1U1FCc1BwTVdxeEd6WUpRbS9zM0llM1U2djhIc0lHM1JvUDdYekkwWnV4MmxxMmpsemEzYlE2SFZyRzlGOWZycUxnSFJJKzdhcGkyazdiSWN0SUNYRERLUjNMbVhiSTNWbHdDQS9uOXNhYVI4czAyUyttdGo2MGpHUVZnU01iYkFPcE9YYmRkbk4wamliRzVxNmViR3RuWm1kZkZ2aGVYK0MzTEM4Rnk3M0JjVjZuMDU3cFVZdnQ2clBNVnFMMHVFVlQ0M2FNWk1SanZocGxhdUt2UUh1S3hTeDlTZFh4TUFSdUlNbHMwRDlNajRQajBnK0Q0T0kxNzAyR0dXNmlVTDdJTXBqcXR3NXpUazV6aDF1Ty9KQXpXRy9MbkNMblBrelBhOTV0ZGtEenRscXRhR0cvNE8rOW5nTG4xdGtKQnU1dFlHelhQQ2ZlMlpFL3YrNjZyQkZIb04zVzFFRkRHSTBUL2hEWXQrTWlESEtWWC9ENk1MaWw3Vk96ZFE3ZDhEakxVRFFLWU5BT1Y1amVwMVZBNTdyZk9MWmtXZFlVMGJrYzVhNldNK3A5cE56VmprQTM5M21ZSmMyRFFZdFdNNy9jVHJkTzkrWjVYcVpxUnVQT1NjNHgyNTNSY1hOSzJtN3ZjTDBlZEpoTzQ5dHRMN0hEMkIwR0lMQ0dhVmROVjBNenhZcC9wSjdYN25aT3grTGhjYzdnSGNUSHBNdGNMZ3FXOVl2MlZVdXVFcGhsOGJTU25TdHJicVczRUJ5MDVRempzY1BDcC9kWWpwdWJsUXhQeDJqcWpqSEN0YnJNY0gyZGc2dGt6dmRERHM5eElqa1Nnd2IyV21rUGJ2UmhPdDhGTFBSUVcyRHNVNWc2SzlsWWpkTDE3SzRsamt5UEY0dWg2czN6RGgxTU1ZNmRlV09mSGswbk8rbTR1TnFUM0IzdmdvbmZWWVg5bkIxZVhTNEEvdTV3NzdTbTQ5NWdNQldKZWhNNkNrbzNWbmFtVC95Y2c1azhQbHBveFcyYnQxN0RkNFV0MTl5eG9zUkNjV1RqUHVZQjhNMzFZWkx0SjlsNk9teVBlNnRodXlkSGt3d1JuSktmbDA1NG5UZkVNZE5uWk5POXQ3ZVpmbW8xZDJ2SmNGZlQ0MFk0WGRNNU4waWk4VklVeGZsOGJOTHNZdXpQOHZQZUNlMUpmemJYMlA2UzY3YlJadDhDMTdUUEQyWCswSlQ0bzJ4ZlJLNFY3cUlKeGpaSzNHYVA1OGJ4MEE5eUJxVVhramZYMmE1Vlkza00wWVdCSjllTVFrYlF1SnpkU3EzTldBdmJ5aDVobGIvWXQwN1hwWVVpa2k4eDltY2RNT3owQnF3ZmhkMGpmeFpVYzNrS2gyNFFnUVlmc0dkN05jM1orVFZaSFRHZUd0THVudVJ4YU5OZFBuZk9vY3RhdDZnTGhhQXRaSzJ1dkJpdHJ4eldSNmFrR2EyY0MyRGdEbzJ1YWczcG51WmJRbGUrckJmbWVqYmUrYlpnQUdZMHVjbGpxYTFzL0JZZm41YTcvV1h0OXVYV3JyUE5WaTJKZGhiN2szbS8zbTY3eVhSb1FNTjNnejAyNjVJVHlXQytiRENFc25wVHFhTmRMNml0N2liREVYZFJrNk4xWnEybGxKeFd0bXljUjJQQk95QlBNUHhGT3AwNzJmbzAzWUxtcWRzZkRUbDJlUTAzNGVuVVlSZjh0VlhFM3NoV2NramV6amx2bkRFVEpNekcwdVo4SEZwaEdBYVRyRFdUY3hRc1oxdzZFOFZldDNzMzc0eC85NFhSOXJ4bmpxQ3RCSzBsdG9OSkxWUFR3aWFLbjZ6OW8rY3d3bEhadVA3SlRMdnFkYkdYcDlnbUdSR2JaTnZyOWZKeHU5MW84c3JHdlV1TDZlNTg4b1Y1c0pjZE1ITVBHNi9yZDNzOU5BcGxnSEhLYkhvRzN0NXJoUzFnSGxtdDBSRHl5OXBMbXJSQ2V4MGlmNjd6Yk5KaUdRMmRvaGFJcDlsK09UMkg4ZGJDMkVVMG1YNS93dE85UVY4SEE1aVlxbXhOZHAzRll1Y3JzOTdVdmU4aXVxZWgwL2plb1NlTDVjSEdob0l2WDhQTFlxTjZpM3d5Uk1xb05kQlBkSzRLdzRscjA4NTlxTjIyOUh3Y3QzdmFOZlczQzNMbkRYc1J2VzVQN1V6dk95UVp6bkVaMkhIYWJ6YUhJOU1IVXg5aitNeFBMNlMyTEx5MmM5QmVXb1pmaEhUR3hwazN1M0EySGpURTFTVnU1MmQyR3RyYlBTUGI2Q1I2QjNzMzJTMkhvbmZ2a2R6Y0M4clB4cm5mYUJoWDc4NzBUenhzdTNzN1hwSDhJVHZYUmJQVDZYam9OalRTczdHK3p2Zkx2Uk9jWFdGblJieGtuUzc4WWREZ1JUN3JuNjZ1ZTlRTnRwR3MwRkhrNTljdFBlWFFjVFVaaHNBS0JHOThOZWxyaWszLzFKVXk0aXZZMnBzeDhVK01HQzF4eHlPVGM4Nm9mZDcwYjZ2OHRBajVlTjUyOWpaemtxZmJDY1pYeWNyb212UDl4TWVvaWRRZkhZYm45V2crMmErMzA5MXh5Z3FtZjEvMG16eURPZ3A5Y1MvV0pWYzdtOTFwbXEvdFlMNTNGa2ZaQjhBZG9uSExiNENUY3ptYTJMN0pWUHhGWjdNN1h0ekY5WExyK0JtcERjdURiV0ROdzJYcUc3czV5ZTNZZFNGdkdQTVJ4L2xnWmxyelpHWDBIWHZyVFRNRXg3ZlJ6TDdzbWVPa3dENzhOZXROdlh2V3RmRjV0UFlRR25QSUQxdGhSekZhQ3pzZXNkb3g3a0l2R21HUUJiM0l0aVVJZFBWK29IdmlwZFdKOFNiYStXSTYzOXZScUxqbkFwN01McGdONDBuSDBkTDFucEdrYnVONE90RUtmelhiU2k4NEhDVUd0WlhEOEpvWktkZEtCMHA3ZWRtNGc4SGdlbTZJNDJhUHVYZjZ5NXNoVDFaVGVlOU9OUWkzUjAzb3dMWVRIanZ4SFZvK0t5aTYyckh6aTJqMllDdHU3Z0w5MUdyMG03Y29Nc3o1WWFOcSt3V2NsTmdnNGJHZVB0L0dSbnE4eXFFcDJmdno4dVJrMnV3Nk5ETzZ1U1ltSHVaSGU3UmQ0UCtTZUhTSDEzVmRNNXQ2MUZyWmpOZ2FaaXZudkdYZ2JldGptNHNHZ2J5a2MyVmp0QzVIMmUzcW9wMjNvMTFnREVCOFpEZTNUbzlwd2h2YnhKZ1ViSTdoVk1uN3QrbFFscytuOVgyU3JiMkRMOXZXMWx4WTV4bXBmUnhNNHJudXkzdEdWdGxJVTlqemVUTmpnc0V0dFB6UlNvZlFpbW5CYWE5V3FNbG5xZFpzREc2NktrUlNlRHpyQnpwYk0rSmx1WTJHVXI2WGt6ZzR3Y09FRVE0K1dzV1NoK20rODVoQmsrNFBNcGpMcHpQcjd1bm1YWmFUSU94TWU0dXBiSVdMVmJLK3p0T2pBbzZXeWlQbjBsNEd0cFVsblluUFk1bXVqK0o0ZVdSdml6RThMcS9PaEpYallJOGJLMjRxcngxMzZxTXBPNEEzZWRBNnRwMlZla0wyYmpXVlE3UkxPblRvSEFJMmFDL2JkS0NFQTN2TW5NUG0zbzBWVm9vejJKYVBmdWpzcjFDMkw3T2h1ekRPOGNCWkhydVJzbXpTc21NRmwrYnBIQjBrckpkYkMvcllVMC9tZWoreEQvejhMQnZoYnRtUkRNMjV1TW9JakhjNXpDVnVOVDEyTXRDUkJNVWFUT3liZkQ5eGtiWnRKVkdEWFFYUW43bVJzbTgwMk42MWxRVGNKb09kYmJ5UzFVMGpZV1QzNG9MbE5Ua2NrMVdiSFRJZ0hIcVRTRDR3U1RTSXBsSjhuQWRoUzdLdFhSTHNvMUZQbG5zWVUyWnNTeEo2MWdCZ2UvWjg3RHBIWDRsYld1dk11dUZvcGUwSGZUR1dUNjF6YUFTZDNzYklsUEEwNmNueTlMajBseTFsTDNlOFpyT3BaY3R3NXlSUlA1cEpqclJWUXBtUVgyYkZYUzYwNUxsc2hhTmd0TFhYbzlnWjVudDdNZVo2c21RZWwrR29zN0xrbWQrYUthRmtqOXJzclJ0TnBkTTVVNWFLdll4YmFuWmMra202YkVzN1lkVm1IUi9KZTkyUzdXQ1pOanB5UTdiQzlUVnU5NmJXUFRvUGxlWGUzc1V0M1RzRGI4bXNRZXdNRVJkdTNZN2NjVE41Mk9HaXk1NDJOMGtrVHExUWM2OXNyckt4czlvdjIrd040K3Q0c0VsaVo5eWM1cnRXQ251U3RtOUtOM1dFbk1UdkthQ2ZkQS9BQmZmanhiNjB0U3ZXWWZ1Sk9VL0ZPOVBQSmhwL2J1L210RDQ2anpsalBlYTI0dW5XM2kzVTVLU05Hdm9wN3NMTzdkcUxiamZUaC95d3pmWjZod3Z4VVpQdlprTmp6cVV6amdZQ1AzZlA3dkE2eVZRTVFDZkRwS1BFVzVzUnhoajcwQ2RkSGkyVjltR3V4NE5XZTNaUCt5SS83blJPK3JnOVFBcTJNWm5PWGQwdUJLZHg2M1E2K2RwWmJPVTcwMmVtS3MrbDhIWUtoOGZCVGVudWViTXQwdXhta3M3ODFqbmhPWFBqM3MvR3B0M1Q4clczU0VuZVFWZUR2b1IxbFNSUGQ1d2lYc2JDbVBWQTIvS05wUk1BaWJ6djM4UzdmUkVPeG9DMHpkYTd5V3BxNVJ4OXZFN1l6ZXc2MloyUDV2VVN0OUZZdktlRGErYmZpZC9jdml6M2hyOGNjWWpYSjJDaHF3ZFczV2VDNHdadDdTb2ZJOW5sMVlUbi9mWnFjdDNhQzB6WE0rS3YyVG5jT3dHYzhYeUhTY0dsWjNYZEZlcXM3SU9WcVRjVFRZMTBaV2Jkd1NpUWNqZ3g1d2VqYzlMMW5jUUlWL3QydC9uYlZWOVp4NldkdEpBeTJTMENjZEZ3Ynd1RG00elhzOXR4eGQvN2ZWWHZNaGROMzYxaEx6eWoweXFmdHpZNzZYWVR1VkhqcHQrdWQyYlFzRGkwNHZJZ0JLN2xNL3hNSGZjbWtuTU1sSmp0ejQ3aTdEcmhvMVpJNzJabXVIUVdXMG1leXJKMVpoeUhqVTlSZTRYZnpVZGJkN2lZMkdlaGMwYmk3V3B3ZzFtMlgwdGR2aDhhamVraUZreHJjUWoxTWVyM0d4WkQ5N1J1S0RERGJVOUxNZzd5UmxmbnMvNTV2QVgyNVNndkR2NCszSTY5YmNlV2pxeVBrUnJuVDJiampyZ3dGcHk5R08yTXJqcmlpSDhqV0c1dCtqU2RHd2REendOYXpDNm5rTGlyRmVkK29YZjhMbDlmNS9TRzVwY3pnYisybCtIUzhEV2hwODcyOFNreXQ1cVo3YmwrY3hJRktzdWY3YWpWVTNROUM5dWRqaDlkVUZ1L3N2RXh3cmd5RDZSSWJvNzMrN3hobnBTNGZWd3gvUVFhM1FVMzlycmRmcUFjMkluVERqNzRyaVV4ak9LdmZkZjhmSGkzOWRYeUtEWE1oUnllanhPenVEZmdPdCt2OU80eVJVeExPMGdrZGRPZURyZDdwbm5kejVoaG9vLzFjT1Z0YVN2QXRzSzAyV3MwYlZNOGRQUmdjSXcyMkU2bVFYeGE5WE5kYkEzbzZXSytZK2cxOUJObEhBQ1paZU50MEJBOVpnbUQ0V1hmSW5rL1RiRXo2RU5CRkx1aHNEVjZoajYyK0xDaGp5L2dDT3pGaU1OWXdvK3NibHZ3VHN5NXV4eWxjZFpxdFRwbktNNnVHTWNQNlM3Zjd6bjV6VW4zd0FaWDZYeStTc0E3R1pxMmFaK1cwL1ZobGhFL3JHTG9LMHRZTnBReEMwNGdiZzkwWFl5Q2dHWjd1aGdPNHRXV0hnK05kTXR2MThEZ0JiT0JHSGhuVlRrTVhKVFptdUR0T01WbGs5NUMyK2c1M1JNeXhIcmJYbXVnSHkxL01OeGd2bFdUUzE5WXl0TDllTDdmVnUyQkpGK09pK1RtMkM2ZG5GWUdkNkFINHMzYThXZk1MOGtJTlM2amdieStyZkpzY3A2TnJncHo0YStjTVI5SlUrZXlQUGd6UXhmTUhiOFN6VWJ1dE1OQVhyWU1OSTN0NUpwbEo3bWw4cXU4ZjZNUGs3bkg5UjNidzkxMTVJZFBuRkVjWkp0d3NaY2NkZ05pdDJHY0ZiOXo5K1Vzdi9zYUNnNUIxclczcXRoaFZOTysycXVOZDJsdkRYR2NxVnFhdHpJeDJJblJ6ZDBHOGs3WGRWbGVUZHRzUzVpa0RKK3RIT3MrOU1iT2ZiZlcwaVdUaW9QTDhDcWFhZEk2ZFhvRGwrLzJoWWxnN3NjbmVEdnNkazFlbGx1TnhUV1pISVZoTSt3MnpMNHczWWNZSjNpSG9OVTF4TnZTMlp6a1ZDdnM2TU5lN0xOVDRZcFlmc3RLN0VYMXBXYlladlpoUzc5bHpDR2d1ekl2aVFmY0Y2T2EvZmEwSFE2MzBuVEVHWE1reE12OXp1czN4YXpMY1gydmU4cDlyOWU1bjA4d3VKcCtheFFNQm9QQTJ6QzU2T3duOFdyYkdhWklNTTR1T2pEU2VOQmora0lpMlMzeFFHdTB0anBzWkZwWjlnZlovZDdnMDY0cVdPZTJzV1RvZGErM3NNV0VqbVNzbnhiNzB6UzRDZHUxMjdrZ1E5cE5kck9YNzF3NmFRWGhlYVpvU1RzK1NNcnlZcDJjVEEvWkpKaGtBMjV5OS9WMmUrenJtMEFMZFQ3dFl4dm5MUFhiVW1nRkVxdFpHSGY2N3NibkVtME0yN2syWnVMVjVwRDJlYnhmK3NXZWQwODFYN3NGVXRIYjhzN05TOW5MUGdMdGVIZEJiUVhlTnpzamNydHdOalQ5ODR3K1RLV3JMcGduUlZtYmROdEp2R1pUdjk3Yjdaa2dYSVpDZUZ2bDZqQlZHaHd0OEdOME9wMDYvVmp3UWFnZVdEcG5GQVl0SFdtYU0ycTRqanJ1dXJuTS9RV00yZzBXYWVOQTI0Qm1iMCtIUzN2VjZjVWRyV21OQmJXaHJOUEwzTm5UQjE0YW53U3pvMXpXWnIvdHdKQUdtcEFxZzM1ajExc3kzc1pCTzNkb3pNZVhwRE8vTG5NN1VHOWVldW5yZklZeGVRQ096bkxraDRiTmV0dU93eVRROHJkSlIwc1lUVVJqYTk1bnAxcU1jdjRBVG16S3JjWHU2bmE3ZVd2YjdTTjVtbWxLTHg5dVppWlMxc2NPMkF5M3Ara2Q5bWg4cHF5dHUzQ0M1aG5wMHd6TTJyRjVWalp0Qm1tSjFjYTY4SHk3ZC90NzQ3YWl0Wloya0tIZWJMWDJpK1Zrd1F6NkU4OWg0SDZSQkdndDhIZDJiV2FEeHBIZnJtVzQ2WjhFUGVtM3A0ZFFZKzczTyswdnJTQmZMRzZybG5hU2ZiblIxTjNyS1RKYnhOOTZYMmRyZWJxVGp1TkJzOHQwWEN0dk5JelJiaUh3OSs1YVhPWDllSFE3M1Fma2pwUk81MzRmbjdZc0R4ZzEyYzY1OWNKWjkwVzlzMnUxTkg3SDlIcmoyWHAybFlnZityaTZvSmtXdGtCWHZ6UDl4aXFKbkxiUTRhMGhIM1Y2RnMyYVlaQ0pWME0zNW0ybkhVN0h3NWJVc1BsTzFyVlAvY2FnMlRSdDFrTk5WdklPem4yUlJCSEwzRFFnc2Jyb2Q5YjNTY3FsbTJNazM2ZE0zejFNc2o2OGhxRy9oQkVOV2VnRmFHb2dLQ3dYaStiWU5MTUd5UnUzcllQWncwcDFQbVliWHRUdlpzMm1KSng2eWJUQmFwemRFSytzZFdZTndIVEZPNmVaNXhEcm4zUFBub1JMTmpIRDA2clZhRGVqcEg4YkVzeXdYWEJ1RUFKdjA3dHVtMDE5ZThqOHZxNzBXdGY5WlRscGlHYVgyMERkWEJnZEplc21KeVd3bTBkUDBaWTYwenQ2WTlOb1cwcklqRnZpdFJubXU3QXBNcG5vaEVtZ041cHVQSkRpZGs4YmVZT21QamljV25lOWwyeW1maWF1bkJ6VDRKek41dXpTOHNPOG8yb3pheWRiQTNpVnVQbFk3VXd4ZnV0cnZWNnZ6YU1WbHg1SDZYRTYzRXJicFg0ZzI4QmFTZVFyRjJVTmRuTmFTL3R3TVhVR0EySFhtUjYwM2Qwem11dGhzcDVlUTB0eUZoZk9IdTNqWXpRWmJnN2J6dnB5RlJyTld4QmgvdFAxVzN1ajNBNkhoWjBQajQxR2cxeTdGdWRxUjRpWmROTm9hdkxVdGc2bzArdnJxWGpVMld1b2plT2tyV3pYcFB4bHZKamI4ME8vZVJwYzQzaW42bEpIVWduZGxlc1FOZnRjWC9ROHI5bE1aSVpyZ1FFd2tNTHZZQWlEYUhtZkVKOTRyM1hzWVp1K2U3YjNCNU1kakF4dVByS0QwU2tjM0dJbkdrUTloZ2xpMStuRlRwNWRkcHZCMnRSRlJWY3ZxWGczTk9QTWVyTU1nYkRueWQwRFlMU2tlN2t6L1o3Sk1JUG16bTNGdmQyZ2NUckpyYzJlMFJKM056aXhzekFNL2VOSkI5TlJwaG1iSUhieVJoekNwcDVrdWlpS2ViL2c1MXV2aStKV0lMcHAySktPcTZuTHd4dnZDcGVSTUlXSnNOazB4OGRqdTdHNGh0UFE0NW94Y3FXR01vcGtMbFdGODhaS3oyZkdubmNsOFBTTmE5dU55dkphYk9mOEhjaHNKRWV0em5pMVV0U3U3ZE5TNkoyaWxtc2laYmpWdGdPcHl3OENKKy9jei9yNExsdHpZMzZaeVU3N2tteW1JK002VDRYRHdxYjN2TFRHT2d5Y0czRy9QYzFEY2grN2Znam9SbnUrc3dObk13eDM5b0l6QlAvc3FtT1d6Z1lLZzFiT0ExdjBWR2MyU2s0QnE3dTlhYWR4MEErRzNuYkZTTitZYW1od0pBY2trcE5PT3dqeHVJeHdjVzdCZm42LysxcTdQVjdyV25BS2ZVbmdKME5Kdm1nYlpyK3dTWDc0bklhQ05XZk41U1VWZThyUUU1TTBsTGZETGh1Nm5zeTc5RXlQNUt0Sjk5YThnbzZiU2JhWmUzZi8xR3ZmZlYwTDVPQjg1TXltM21rb2QxcGYrcG9lcWZySzNtc2Z2dHY2WE9Wamo0V2t2OWdvSUQ2aTNTeERrZUFEVnozMHBKemhHWFZwU3B3NjVyT3VMdkxMWk4wKzVyT0liZHpZb1psZ2JDVDZQY0hzQ3c2OGpZMnRMRUZ2QXpWUlg4M245OUxwUG1PSGZYYlN3RmdpWmFWbGY4YXBBQzNIZW1SQWhsNFBtSVVoSGlWZjV0YXJjY3JNRG5aRFRKbkwrSDZaN2V6KytCZ1lIdGR3Sm8ya2NSbkZNamN6amowdFdZN3N3SWJIZkQ5bFNFM05OZXNPTUE0Q1RDb3lsOFZkZExleHZCMm4vZHRpZEpMYm1yTFErR3VZQktIRUs3SGJtbWI1TUJXRDNieDNjN2MzZVJzdGM0Uk5Wci9kT082Nm5halQ4enNoNjBhNzlkWlN4L2x4RCsrTXZXcEpYTGhzeHlhQTNpSm4xR1EwanBqTEl2N29yMmM1b0k3YmN0cnkwbTRnNzRkc281R0VHekdBczJ5eFBjenpkVHhxZ1JZMnh3enhpVmRia3B1bXFqRGtzRDJVdHBQVG9jYzQ2NFdSZ3MzRXBNY3pmM2ozOVVnNG9ZWTNaVU51UEl6YjF5Mk1WVzI2c05zZzQ3V3B2UE1FczVGMHoxZEdsY0tJRytqcTVOWVVCYUUxM1VyQ21HWTdDNzZoZXd5N0NWdkwreVZ1VzF0MkZMdkRmbU9xUmtFcU9vd1Vjb3QwQUxQemtOdE96N0diWC9ac1R6enRNeTB4OTBQalBPbHFEVlpsUjFlYlc3Tzgyak5aMGNsQWFIZXNickkwV28wNDY2NjVvZE5pYnkzdnpqQVgzYWZCbXA5YUxiQVkrOHY4ZkwzUHQ0TmRQNS9aTXNjYnpObzl6TVlYTkZ1dlJxa3psR1Y0eXRrV3ZIL3A4eGUyRTQ5cjlxeExWenlERTdnSXQyTzBOWllqdEZ5dGV1dzhaOVRicUorWXcrVGtNQ1JQQzh6R1dVUEF0aXA5NHVmRGc2R3ZBSlFhdXlFTTdRNkVVTlU2ZksvWEszSzZ3cVZGNGcwU2l1YjVmWkV5azQ2dXFsdnRHTW0rSXhqZFJTcDYzVE1kS3VQK1VRTEJSZzVid01UeXpoMW5ESXFUNWx4cmR6b2RkcFd2emJrbWRNQVV4S2NvTzcvWWxsMDdiT1g2N1hicjlubStrMjZiK3EyVERjSVdhTSt5NDJUSHE3NDN5MnlBanNwNmhuVktKcTFGOFh5d21kbGhaMHZXVUJnMmw5NjJPWFhjOE9BdFVqVmJLN00wMWs5VDRyNDhMQzZibGNvRHkvUzN2QkszbTd6SjJRZDY2UndXZEs2TFpwdEpGTmM2TTVPbE9tYWxYWFBtd0hBdGlzMTA2NE9aU1h5aUtsalB6dXY0MkFQK0FQRTl5L2VYaTVIcXplOUdkemJzUXQ0MG12bzFieXNhY2dVVEJETkJHOC9rblJ4ZWRaQ2MxdDdjbWx2MFVoUDU1aUdnVS9WK1FYZHVsdzBHcGloNjkyNGlhSTdnQk9CMGpsMWFDZXlHZnZWdXQ5dE9IUStOakx2TXRqWWRyL2E3aVhvZHcwWGZXb3BBaWpxN1BoVDV5YTZ2WDlzUXdpMW8zS0l1OFM5czdjMFlIY2RETHR5N1FiS2FXTHQxY3BjM1c0a2JIZkx6ZGpyS3pzWm12SlZTbFIreW02VXp5aTlyZDQ3MTU5bFk1VTB4T0xsQzFGcWRPSTRiYXBJejJjcUgrZTAwYVp3bTZCRG9nYktUNUNuR2M5WThXVzFwY3o3Q09NM0FOa24vUE9iQWVqYWVqQ1I1dW5QSDJvMlBRWHpzYXFKNHN5ZnV4YjJRdUFEZUZTbFk3cDFoRVVBd2ZhN1Y3Uy9MQU1KK1ltNkxBRUlHTCs3RjZ6S0xqWWg0SlQ1R2Q0WUprcm5sUnlOck9MbXVlZDdhOFdZWFlzT0tHNWsrbU0ydGJrSnFidFRUTE9zSy9Ua04rbDIrenpxNXZCeTRlc1JDTTIzcVp0WWJKTmxRY3VaN2ZQN01tWGNJRWo0SW1NRU04a2EzY1ZQaTBiM2ZGRHVIcUdYUXhLNXU5eTd4WkZmV0JMR0xzWm4yL0ZaSUswM3gzcWRYMnUzVTNmTm1ReVI5S0xNVU5XL0htNTVQZ3VYV0lXT2RuQzZjbVQ3WWJRYlNQSWd6TVRsY042RzgzQW5iNVdvcVdYUFR6ZVM1Tzcrc2QvdkZmcm1mU0lsc1RjelovK1B2WnR0WXZqRGRybTk3WHJKbG1ydm1jYVpjcDgyR0c3SmJEclBBWWljeGs4aGVHSWJ4dDc5OSsrLy8rTytmMzF6Z1dUcEU4YmRmMzk3ZTNuNTcvMGJ0L1NSUzRTL3E1ZitqcmhsRE4zQkFERkVUUVRXQzhYc09YT2UzQndKTGhoR3lmTzhYZFd2OTltekwwMzVSZS9MSmI4K0ZNZEJBREg3OTlpaktBeTc4UmJuNVc5SHhTL2ZWZXhRQVBQVHZieHJVUWVMRXY3L2hOdzVRb0lOSUp4UUZndURkVGhRWWVUQ0c2TjN5bTBYSG4vcWpLQk02N2pzeW02b0pvdmpERjIvOTkvWjc3OCs2dER3VUEwK3R6ZmZQdm5TQkJ3eW92U241TDRxSGp2dmJpL01BL3FLRUFJUUovTzA5bGwrTUhnQ0VVai9TeUJvZGJhbTFOOGYxVVZ2S3h0LytoaGY3VCs2QjZudTZaYmdnK0lmYk1DSmZyVUh3TCt6RVcwWDUvdy90eUljOUtGZnlqb240aS9xdnQ2S2pmNk4yK0MxVmtEYUpRR3o1SHFWYkRxUmdCdHpBZ2UvbGg5WDNHeitHVkd5Q21MSTh5bzgwR0ZHeFQwVVFhRlJzd2k4Nitsa080U1lvcGhSWTlZTmlFTVZRbzFJck5rbExNbWdBWXBNQ2lOS3RDTVVVaUl6RWhWNzg2OE1jM3N1eU13U2pHNHlvSm03VmpQM2lLVm5oYis5bHZyNUhKWjRWbzE5VWFrS1BjcUhyUnptRnJEdWtMRVI1RUdwUSswbFpNZjVYNENOa0tRN0V5MElCVkMwOXIvcXl5S0x4WkJPVUFJZlMvY2lsZkoxcTJSUXpHMUxkTlFVOGpVSStmaEdiSDJmZHNxbS8vVTVvdWdPcEZrM1RsSkxIRUQxZktyVzM3ZTZIdCs1TDA4K3QzZGZXLy81RkY4YkhMajczWW56UnkrZXVxczhKUlNrUVFVb0ZDRktXaDZDSHJOaTZRVXlDMW14SXRXWUsxVEtHNUJ2Z09JUnlDTGlZcDhwTy92S1BtbTlHSzJrODJmOFQzLzdiYzlmbm51b2tHdDU0U1BrUjVmb1JwUHpZaEZISm9JVGJFR1hDQ0w1VDFNRzBFTjc2QkVFOWNTaExwM0kvcWJveXdRMVNBUE9ycDRGSW95cDVWQndDdzRjSWN3cGVYc0huQlZNaVNrbGlDampJSit4VmRSYjdsSnFnMkhjeDZ3RktoeWtWd0toaVpBVGoyUElNOUU0OUZsRE1Vd1VlWlJWUHFwNksxWkRYUHpHOUU0Um5aQ0VxdFJCMDhqOC90bjVBanVidmIxV0gzNmpVOS83QVo1T0tZQnBaY1F3OVNza3AxWGRkek0rL3Y0MkV6WFErbzNhVDQyNSttQlRDRUhlcVI3NUxBYzBsa3FCYy9oNTZzZVZCNTUzYVc1NEt5NmZBU1VGT0NJd0lGemdBeFZRUStTcEU2RWtkeC9JZ1B2MDM0Q1FRSHl6d1FaNW9WZ1JWekdFLzhRNzlvVkVLakdNWVVVRVNWL1I1Y0RPSXlVZ0tOQ3pQc3p3RDkwY0lSQVFOM3JLYmIybVVmNE1SWGpUK291UU4xUVNlQVhFSFVlTEZsdnRKQnM1MXpPMHhsbm01bnhEMnRyd1lSaEJoaVdaNVZJSndkOVdNOEdCNG1NalNQZ2pJeDJhU1BVR1ZDQ3BYRlJlN1duYURDZk1nSGFiVXAxa1YzMmxFaUNMS0JYZ0x2UmhZSHBWYWpxYUNTRVB2Rk9jNEpWTzVJRlpOUEUvYzYrTUwvTXVwdWxRZW81TmxBU2N3Z1FKalN3Vk9JZnZmdjFBTE92WGsxa0tnbDlOQUZLaU5nOCtINTlmbmdsZVA1ZlBqc0dCeFVad01mSzRLaGZHVFBLNjZSekdJSVZZUlpOcGt2b2JuUjFBamt0anpLUmhGZnZSeFRkREZUSzdoWTBib2pZQU9TYjhSMVAwSS8vUWZJMVFUTGlkS1dCNjZRZnhRQ2dWUCtwRUYwY2NkcWZwNEtDakhWNEZUS3FnLytZU2M2My84aVI0QkE2OFpOZis5L3VHL0lGVFh3bGhhL1hNeXRTNVZWejdRS05mWEVrd0pFQmRia2dUditFQzhicGJueHhRb2xhaFRhMVhUcEdURGdPSkg4WHU1RFhYTml4bmZUWnpZQ2h4SWVpZzZlRXFBVDhTdWZmU2dsSnYvdlhqMGp2eC85QjBoZXYzVGY1cVNtOG5oS095Vy95b2xoemxWQXJLZitNQjRQdlg3bTJKNTJ1OXZmeWJ4Q0o4U09HTGhRMUNJVmNkQ01mUWVWTlY5b3Q4ODNNTDNTbWJGbWduY2dPV1EvZkJnblBxUlhjZ3JIYWdRWVhDRU44LzBVVXk1QUl1RWgyajVZbU9LSWZHdkt3WjBsWUt0dGdwQkI2cUZGSHdNUUtSaC9WRC8xVnAvVXJydk9INEtOYXlINmpwOExsSkEweUtzTlI0TVFFMkFhbGFQaWFwVUlCVkVVTGV5b29QZjM5NStmL3RKcGFhbG1wUUxnWWNLU1VYZ1lzR0htRjkxWURsVTdMOEFWTHc1ZU1aVjd4VnJWL1I4cDRZUWk5Q1hoNVR2T1RrVlFSM0RnR2VIajRrWG8yc1lPZUIycWg5RkVBVytweEd0NU9XZk4rbWQ0bDRhUDdva3dBcUQ3N3hRTzdBOFZvVzZ4U3Y2U1NSaDRxRWtDSHlDdUlQSWozM1ZkOURMdDhQSlkrR1dBNzNZeVNsa1cwRUF0WThIYlZJWUJ1Z2p2c1Y3U3JVRzdmY1cyMzl2dmJkb21tclI3L2gvTGFyUzc0UmRDY2VsRmJxMlZHb3UzcnBQOHJ6MjErNlZYZno2VlhUeitIdnB6L0g5UUFHcVhmYmxhZmdIKzlMVnYxTnZ2Mzc5Ty9YVkgrN0tobVNuSDhmeTlkdzgyZm5EcXYvbmYvNkhPbks3elh3ekk3OUxVYWo2YnBCZ0pSNGxCZm9vRHF5RlNpNTNjZ3BtZ1k4ZzJmVFloRTlwSHhPejdpZVpORkhQL2dNODF3NFY3Z25EbE1oUEVGa3YyY3lpejlmK0NoTVNkd052TU1vVlg4dXJNMThOOWs3dGZYeFN5c1ZUS2FRU0QrTS9yRmxyblJYSEVrK0tVTFIyWUFsTGt5bm9mdlNBZlU5NVFZNUVNZXBEdHRSM2l2cU9jVU5GN2gvUC9Yd3N1WFordmhNY1Y1emszZE1xL3JkaUFtUW9CVDcwRDFCVkdNU1U2bGg0Tlova1kyV1VGQUt3Z0RCWTZsVjlWaHZvZXo4K0lhNHBkUllraXR0TnFMMjBtNUIvSExuTkFmL1lVZlBOL3NCdFJoUHFJRkNyK2Y0dzJlQmYzR3BGSGZnSk5kOGNKcnNwTjVyc3E5NUd3bm85MlJ3b1FUcVFMNmJDYWlVY01WK3Q1cHZKeDdIUGZsS2QzOUxHSUFZcmpDbEFWZjRXS3ZFY0xMVXdTSVZaNEZpcWhSbFBzeENoRFJZRVJGaFhmYnErOWhUOS8vTi8wMS9SMzRmRC9QYnJWK3RyYmVnbnNlR1hZUHl4VWQvSlRrVVFMd0hnZGJvQXhURDZXZXhnWlhMVVpHM0Y5ZWduVlRwYUtDVkJQeWtZcSs4L2lOakVrbGZ4azFMb1BtVVJnV2dWcjcxVGMrOUpIQlFUU3hmOXBHcjhoOW5IRHlCV1laNUJvUnpGMEMwMnhnU2U1cFNnV0FINHBQc2VGZmxKWE5PR21QMWZEallWbTVHZkdHYXByVXFYU2ttSXd0cjBrL2dqTTBpb09wTnZpRGpSM3ZBQ3ZuQm9WQW9YMXBkY0tiZllKMTA4YmRXSHpnUjV3V1pBMTZFYVU2YWZmcG9aakJGWjNKL3FpNi9VeGN0c0syWHg1QXV4WWxEQ21YZ3RnSEpBRGlOc3l5R29KcEVWNXhVYlc3NzM4OFVuVmRoM2RYVlp5dUNLTnlnSDZ0Z2VKdUxwUlI0V2lsVXRyRk95U2ZqNCtOWVhxenVhMEh1ZXBNZEVmZSt4dDVWUVRSQ01LQk5ncGY4NG9UOXJ1UGxoREdMNVZRZ3RWTExqbDBLcnJqV3A3NCt6OWVObklWRExOMVd2MzMvOWF2M0FPRXJ5ckl6U2ZCZmJoY2hYYlJoL2d0TFA4L2pGeXFDSGhZZjJUaVFRTXYzRTBSNFN4WXFMMlZzUDQ2V3lqeEhtT2Z5UEZIaVZMQzdYVW5neXNQUkZKWXZpdGVLZkw3SWQzcUJYWW1XUXhDWSs4MnFCRzJ2K3k4ZitQT2I5UnVhZFk3Mzl5Z2JFRjFFdDB3U1JCajJvUGJucVQ2QXBLcnlkV3FLK2FGa1F4MWhab2FRNHhIaFNudWVyV09IZ2JVZnYxT0ZwWFNLc2g0RkRQZjFsWHpvRmFtTVNENFBySmpHbThzL1N5K2hDS3ZCalRBZmdPUG5iRXcyVWpwdWltZUxnUGY3RXRxTS9YUjRXVjloZ2ovektVVUFlRlVSTEl5c3VhUEFkdmh2dlA2ay9OQ3Y2b3k3Ti90QVUzTW9ETHZ6alIza0dBRGxRM2g5eDRUZDFjc3hNeEpDaHRDVENvcXQwdE5SeDdaUHpsSnh5Z1YxNkt0d25JVDZ2cVZ4M3NZYkNDeEZCVUFDaVQzdWtWNzZwcitkWTlhb0N4eWttUVhheVR0UWFaUG80bDRNSkVheU1rUnJTZ3hiaGRnem82b2ZhandwenFqanV2Z2NSN3J2MEJ6NU9BTFp6ZkwzbVp5OHRRSTFTb0lObDhxUC80aXNFQzFmYUo2anUrZmkvYjlRUXI0T1lqZGpzcUluejd4RWtBdUpCNngrUEF3MFJhY3BoSlBobFV5emVIaUw1eDlQc3hpdXIyaEVwZ1J0L2ttL3ZsSUJYNzBlV1lYbUZVcTBrWHRWVjlmZlBDY0IvU2ZJVnd1M3RLVDBxT252K2gwODBxQ1RHVytVai9mUzY4Q1c4dksrKzRFbzhXdC8rUXYwODdIc0ttMm8vSDlMSlFoVGI2UTJvNzNOdXcxSC8xbTh4blc3M3gzdk5IWW0vcCtnWEgwRjFZaXZ6OWdIRUtVQWRSbUpKZ1VwYzR2WjRqT2MwOFRkRm0rOC9LQXpGSGQvNDdIS2tUTXN3cVFpR0NVUXhlaXVjMlNxMlphRjNzeUxmSTQ0cUl2a0pSZ1ZGZzdLL2g3NnUrY2NMdFkwd2wxUnFvc1pkRmtJSlJPODFmeU1tM01yeWtveXlzZTUyWG15Qmh5MGJSNG1uZ3Bpb3FNTGdlbnFabTBIa3EwMlVvNllINDZicVI3Q0pmQmRrZUZqcTZUaHlnVjNxTWF3Q2dJVWdwZmhsOE9yUjE3TWhFU3RxOEhjWFpIOUh1ZmYzY3NsUGhQcEVLZ2FNUzZTQXJBaHFGQ1F3cXlSMnJBWnZGYm1ZVmcwZEVYWisyY1hIdnV5THVCWHBsSGhnOFZIRC82aTFxWmxzQ3NTeVRhdVphN29mMWR5UHZ2c0JrSmZxckhDSFBMRTc4cjltdWlleW9RQ1YxS1pBb25INHV3Zlh2bjhPTW1YbHg4MG84Y29RSDM3eStZc0FSaTdWbytrbmlVWk9hUTNYV1FqbzJCd0FsVUdJRVNIRzZaaEVHNnBnWGtSOXB6RTFTbHhUQ2pHc29md2twdWpYUTJKREdBREh1bjBWSnZCODcrME9JLzhuOGMzc2hiOHZKeE9SVzgzbFNXR3RlUnJwZ2hzdEMreFRNcnpsVVVCQjBGT2Y0UjZkcVBYRUswSFArOGVnRmRuaGxFUmlrZTk5a3ZpdEg5UVlZcGxHYVJCb1ZBQXhLS2xldG45UVUySzFWNDRuR0NaV1FJei9NdDdwV3ByMnNDQ1FSZmoybGFyWWVLaEw2QzhwSW5qRlVmMzVRZHdWeCtjN2xzc0YvWC9nbFJIdWhaSGxhdy8ySkJURDFQb2k4RURvOThWK2s1UGxKOFF4VnloUHZKSFB3Tzk3YlhZRkZpMEV5Y3NFTkJoQXpCZGxmOFVYcjdqdDQySzVjaThJTWk1V1dCeERiQjRFRlhMdDBIUzE2TXJjS3BmdXdmUVZzVmJxZ0hnbThZa2tzZlBpWGVlOS9kNnFTWXdIVStJQmFyb25DSnljRXZadkQrUFBoYW9KUEF1NWhWa2QyVVdRaVp4Yll0R1dKN1VLMHo4MjdjSGxZeEl2S2YyTEZOQnUyTGpTS2t1WHlFSGRjbUpJZ0o0S0FxQllqaFYvRVM1NTVZNzVHQnY4RVVUa1JJRDZqdUpwMW5kdEdrRTQzSSsvYmxjdVFQVjkyOEp2NncyRkFIcC8ycEJZc3hSQlA3Vm1OWUQzMkpCaWN5MUUwWTh0ZEFQSEl2NWRNbGtTRFVSRVRWcFJqZU9LdWIzaFQ5NHNyU1pZL2pMdWNGanRtL3Y5Nm44bjdsQjFRWHlTcURUcURuNkpZQ2dyL2xrNjYyTUh2ZUc5L2Vpdy8yU29WSGkzT3EwYTFDMFA0b0hlbmd5RmUwTDFnUTZyL1FmUDRNUDRKQ2dvUVo5OEJ3WGNlWUNHY240ZkFNeW81dXM0dlRQMGdGSmhGR09teHpnQXMyVVFXVGY4MjRaNUZYTWlnTFptWGhaR3gyTy9pZ0RYMDBxRldpV3pmNVkrS1lMbEs1OVRJV2FwMGhvb3JLblNaSDRLUzNHeUpwa2tJUDdDdllEWGhxZjlScUxXWllKTEZOZGYyekN2djdWaC9sa1BGVElyTDJMZnhJaFhvenpBMHk5QzFZWFBNREFqZ0NDSlFwYzcrWWorWW5YL3NNNFFsVUxIK1dxcTFWeEl5aGVGeW95NHA2eU9YR0wrMVN6d2gvdTF2amw0RndpMktnbXVKMTdsQ1N3Y0l6V3JxQVpMQ251ejFPdTFOcVhqOEdsTWdJY0RFU0o4d0MxazFudDhlZ3pydlpmZXcwOVl5M2NoVmlpb3ZvTFNaTWRndFV4eEFuRWNXVW9TUDhJL0VGbUdWK1NSUUpjQzZEazZudjViNFRDUFNnb1UvNndQOEk3QmQybm9JZ0pyWFVEYzNoV0lMQmo2ZVVaMUhVYkVBVjZmSlNiMEErQjlMOFlxcVBqd3czNHZKdlRqQzNxVFU2ejVaQm8veXd3VVdBc1NQTjBLdjc1aTYyS2hUKzR1SG54azcvS3pCNWVYWC8yL3l1WWY1dlExdDlmbHo1aW5BaEFCRnhJSlVXV2dsQUp3Yk9tNkJkOTQ2RGd1OEtqdlkvNEhXUVhNaWt5VW40OVFSS2svU0ZUVXdTRHNWdVEvSW94c3NETEQ4dnc3U2VGU08rLzBqM2RxQTlQNlo1cFA0SGJaMFRNbSt5a0ZFTE5BQklzUWtFWUJBMWdlaWlrci9vb2FtdmxHRm9mcVlrZ3p2NmJFaUt0ejRIZjBnMUlTNGlmM28wY3FCWkhHTlNrTUsxMzFla1lLMTAwbFl3dVpVcTRNdjNxRVBENHN6ZGNwRUZNT0JFWDR1b2F3aWN2azV6T2Foa2xGTkhrUk42a1kvT0hrLzVqTzh5V3JnRHFIZzAvY1hiN1dySWhxd2xodEl1UTA4UlAwdGRLdVZ2NjlZRm5pT3l2REltWGkyWS9TeEYvdEN6V0pCVkhGT0hVenUwN2U0blRjZ0dNOXhDY2lxNnNMbk0vSDdmYzN6Ly85N1VObVFoVm4reWdNYTN4WFplZkVwWnU3aG9oSXJ3VTZCczQvM1hmVkRlbjNRNkpwc1NwTHA0TEl2MWtrMFpPazVuMlkwbGQ3aDJuMFZsSDg2ZUw1OU9veDN5KzNERHhZczlpblIrQWZLM3czSUliTFF3MlZPL2NVc2s5M1JteFNWb3hLemZVNUF2U253cmNtYVVxbzlkQ0h2a2M1bG1lanJ4WmYvK2pGZlY1Zkd4NnlXTjJvcGpTSllnZFU0QURMSS9idGN6azE0UGRBMHF2OXd6K0JXMWY1Q2Y5UW8zeXRVSW9wL09sc2lSSTlyUGEzMW51YnNFcnh1ME9Zb1l4cmtPZEY0TXkwREpNa2NwUmlzSForU0NJbGtjQjZoV2swYkR0Z2x0U2U0aGIzYThNZ2ZnRHMxK2pCQjVmMGV6MjJxOVlFbUpOWG1jaUVXSS91bjJiWG95bFg1czBVZnQrdnMzUEpDc3Vrc3QvZkNBMStmL3RaL1h4LytVZjc5N2VIK3FtZWRYNS9vNzVYMnFiSUYvNGIxWHB2dlJkdTFzSWY3Q3JFZmZzVWlqWEUvMmY3OENYV0oraitrYkx5bUJmMW1NdVhlcVlrZzJvRlpxRWU5ckIwREJSUHZyY1FjbjVRTHZBQ1lCU0FreVFZV1Y0QnhXc25EeWgrRXBlQzM0dEI5a2drUlRFMmFiL0t0UDMxcFVvTkNwdVFyRDcyQzhxcGY2c0k4YVh5S0NaTGpTZFRUbG9kZnYzLzFwUHhYRnIvb3hWWExGMDJUU3lDRmYvSjVUOTlmZzhxL05YeXkyaFU2VTRnSndIM1Z1MU9wYkRycy9uemhaTDN1TzNmUnp3MzRyazIvWGRSV0oxYkhacjUrNTduMmd6N1hEb0p2S3FtNzVmSXJ1amlLVFFLZGZnSElxbGdHUHFxOEpHMVd3VlJpUHgrR0pXUDc5NC95YmpLRGlHQ0NOVWF2L1QvL2lYcjRyZGxodmRqUS85VVJPSHpqU0RDNTV0U1FaR2Yrd3k2bHJsQWZrcnBSQXNRMnBNVUQ1Z0YrSHpmNEJNcjFnTU1TdjVBRGtSMlZkNGFLMzcvSzlWUmlxNW5PSXhNNnF1bGx2TitxK1pkRDNxTWlwenFlanpjUzF5bENGWFZGbzNJQUZCN3B6anFEaU8vOUswZ0dKZFV4MjlyTUNieEhNdTFzTkJGMWgyK3Y3aGxxdnFPTnQzdDAzODFZZmhHUG1mb0YvL3g1MWxYVG1CZkwyZjZNdnZYQ1ZUZkZtNitweE9CZVB2K2VrSlZjL1pmOEF2TkpwdkpqdnZmOEF0VnZzWUtwRVNKaHkwaFFHa0F1bGgvWTNiNUk0Zm9qN0pPb29qclBDMkRta2UyRmd3Z2dXT01DU3l0dE00OHFua0RVYzJwajErUmdFQXhrbld2d1VKeTJCOHBkQ2dKWUhTelVCbVdEWXBVVFd3c0UyU3VsUWs2RDR1cnlycXczQUE4NGlxUFVWNzRkRjZzQ2ErNkdJNzRDNzRhb2l5Y0lsSG1HRVpBTFoya3VaODhZaWZWUklrYk9vTHduUktLVFA5ZlQwOTViVEZGV0phaTN2Q3ZldHRxaEpwV2VtbFl6ZStOSWs0RjUvRkF5YWtnSVVIa1IvSkw3RlA3K1d4L0VFU1MwdkV4cVByaDcyRlAvZjZHUll3YVV5ajJBd3pNUGJMU3gwaFhYeW4xM1pjekxNbjJuR0gxUU1tcHF2eGlOK0hHNTcrMThMSCsvMitFdzN4Ni92dGVHQzBuaDcrWW8rOVZtZWhsc211Z2dkcVNVUXppcE1qSW9TSm9KQTZJL3FKREJTRHJHV0Y0V1FkSTRqSjJyaFhobE0rc1Fia3dObjN0a2ZQMUY0Tko0djdBN1E1L1h3aEQzTW5Md3V0QlZPb0dJZ3RMWXZRUmFVQUVYN2lsR0w4RUdpVzVmMzhycTIwS1B6VFE4dmRuSFUveGR6QmhYamtJU3FDbStsNXNlWW1QVWJubEdZakViZkgra0sydnh2U2pmK1FjdDFCcEp4TG9qdzlXNG1IZ1hCS3UrVGhRZVlsNkVUYTU4MmNDYWoxem5GUUlrV1NIanpEeHd4NjluT2k2MlBraWk3NU1haW1xVDZKNlhPcFo0MUJQY1ltZzY5K0tCaUNtWVBiWkswTEVWUTAzUkltSEJWQmR0UDBrYVdDMWFha1JKTVlEU1hIeVlDMEQ5VG1mTWhyMzZuVDROQnBKRFg2T1E2Slk1VUFQZ0ljS0ovMHpxU3F1MDZYY3V6TDcrUGUzejVMNjk3ZFAyVGQ0L3FXVHJiWXNCYUtZZ3JydVIvRXZQTkpEaU5kTFJJcTFVMWI4VEZDSkNZUlFnRWFaSU1EWTVnV0lGY0Y5Y3ZESWppUWU1WldHMkQrb2ZQT0l4SXZLTUZONVhqRjdmbHdibmg4eEJ6Q2wvY2o5a0xINWNPRVhSQ3hSWlpWS1lXbGs3VTAvaUp1S0ZYdkF0WXErbTdFYkZMLyt6blo2QXpLVTkxWEl2bHprRFVhS2o2dzRweHg0Zzg3VGtES3RSNTBES1k3UWZ6MGpKMHBpVU44QjVmZ0VvdFNBL005NnBGakRIZm9reE51TUljTDc5bkR3RnNOQzZydUxMYmtJUkxEd2ZaSFNTRS8zZjVhbFd6RUZLQmRMbEZydVBCNmRUUFpIYlNjdEZYZUdLUTlpM0ZjNXdFOHF4YnZ5U0FxMFNCNmxsaFF4dmlEeUZhQTQrYU9qRkVRa2Z2U2RpTFViakhLc3ovMG94bTJibElxVmlBb2NNaVZnbExhdjR4c0cxTW8rSE44Z2N5dm45RFh0SGI4b0RpVjE0TzhVNTZBaVc0VFVmSlUyejhjNEYwbDVmNDNWa3JvbjQ1SFlVeFdQK2trY0pQSDdhN2tjcGdDMldxcXZIaDVKOG5HWkptVVk1RHdrOGZOcy84U1AwU09GQTVGa2ZaOXFhdkRXOUpLcTRzM3hEYktlMzkvcXB2TFRHSys2THJOaVN1Y21JVnowczhoS1F6Q20va0E1Y256anJiUkUvaUJhQUtLZjlYTlIrY0V3djJBZFhIQkZFVk12bXRlOTRNUjdZY1dGTHNFZzhxbHlYOGQ2QVdndjU2VG8wOUtnRjF0eC9yRTVlVTZWWmZQL29MME9WTXZCN2FsMTRUcWtwUDFraDVXeEF1TVVRbzlhQ1NOdVJiK1IvL1ErRGxNMUwzTFo2QmNhVjRteGhXL0xjZ2lYcXhGQUpxWndGUzBtTzFpbWFlZmxJY0FHSmdRZXFWaCtHdVphNGdhb1FNa3hWdGZFaTFtV3I3OVViRHl0dVkrS2tveis5bWZrL1RCbmJHWlc1ZktxQ2JIeU53RTJla3V6SUNEUXA3U21QeXpySlJIcnNUb0hWb1ZYTWNTQ0ZYTUo4bjJQbU83L3lncGM2SklaZmMwbFpVYlYwOGJVUUF3d0l2dGdvbFdQc2NRZkR5bTZCa05JSmR1RHZXc1JOQ0p6TVpvTXNFWC9URXNnc0xIMHBlOG5xOG5vVVBwNE5NWFN5cnI2dEI1aHdzK0xyUFp5bmhXLzBXVXFiVFhuUDk1YWxkRlNQcUZhN0QrdzNwRHBweVFFd3UxSDh6bUZOOG54RGI5QWhJUjdxdXNYU2puMVdvUDBRVndWRGtQOUswbFd6UDV3T0JkNnNUaFBsVVI1SXBobmZzRVFvTkpMOUZKREFlS0gvcVpBTWRjaUxTRndRRTVRdEpOVGx2ZFNKQVVLRjhYRDlQN0FKYnlmUW9LR1BoVkJGQlZLQkJaRjhLMzdUbE1LTk1ITjhndC9TbGtRaDJsSWdZZGY5WldRMXNQa0tHVHdNMW4zZ3l1bFRQUXBoR1U1eFdLQU56ekFHK250VDcxQjVjMFpSYkowbVk5VXd2allpaDFJZlFlSVFwaGpMSS82SS9hRFB3ckdDZEFmUDJyVk1HWGtvOGdaTDFPdDY5RGdxd0xjcHhRb1U2UWRDRzZ3anNXcm1XQkZpV1VCektDYWxQbmFYeE1qeHNaRlNRUUU0emZjdzF1eGtCY1NsSzQ5NEJsVkh5K3Ivdmt4ZjZBMnd1TnloaUpUTFk0UzljV0FlQ1NlazU0KzJTMVY4NGV0VlJRdjFBRzRta1JPVGlrUktCS0lpVFI1VHVDbFljMDJLV292UDBxeS95U3orTythTmJqQnhQVDF4NExyZExWMExHK2hGLy9FdWluT0EvS2xhbHFPVm4zLzBFMy9XU1Rja01xYW92K2hoWG03ekluMkkrcVBmLy9qcGN6Mk1CS3B3bkZieEEyZkdUc1lPL3Ivd0dhdUo1VmFldW5mTHRURXMxRDJNYkhTRTRyeFlERXhvcEV4Y1BNMStKT3kzdUU3OWZ2Yi8wSmxVZGQvL1A2R3AvWDcyLzhxd3p2LzhUUTlxUC9FTTYyVGo2eml5K2xUOUxOVmxURDBhUG1uaTY2M2VpYWEvbmR0M1MvNTVKL2JZOVQxN0tJdzNFZ3MrTDlmdHZ1TCszY3d1SHpseitkeGVYdncrZTl2RlErOTd2Z0xtV3ZBNzYvOGgvc05KKzU1NFhDWWIyWi8vWGxONFlKYklWTEh3MUo2MkI4UEY4S2ZGQXF4ZElHV09yRjRWdVE2Vk0vKzF6Lzc0ZnY3KzM5OEdLam1ka1MxYVpVYXpMQ3d6ZnNFQmxYR0wzUkFnQjd4ditmUmpRSkFxc0MrYWx0NE5jdnlQeEx3S3hNbGlpRS9wUXA1SUVDbVg0akcwb1pRZlRkd0lMR0xIa0hDSW1HSXdrREMrV0I1VkZjaTFaSlVMSzhtZitEWHhYWUY3Yjg5WEQ3UEhISVNQWGdLT0FMV1V3dGJaOHBIVlBHUm9qVW41cjlUSE1tcTdyRFBkRmJxTy9BbzAwK2lIK1JPa0NybG9sWGRyNUppL0FnanJJV2VrZFZhVi9XZUdNcTF2Q1NHNkVOZk5GMzJocWdVUnZBZjljYyt1L3ZReFY5MThqRXNpd3B3aVdBOVFLdlVQRmFmTmQ5WDk3VVFTaEtDdGNoaThXSll1cGhRcVNQeEZ3UDhxdmJ2NHRQYWc5YzJYNkRCMGxuaUI5UWplZTdoODlLcDNYaElvWkl4VVQwUy9xZ2NyR2ZMRkVNR3Z1WEZQeDRWanVSNnRwZzRCNDJJMU5TU3IzUmdPVFVmL3NHczVrSXFLWXBydEdCRWdSUVArdDNDaU5yRTBESUYrWTh5U1E3RW9QSVZCVEJDRnFwbi9wSENOV1JqdVJqQXlNbC9Qcm1YYktoYXF1OFNYcExwVjNrOWxnb2ZaWFIxbEVxaWFtWDViaEJBNy8zckpMUFhwWkswMWxKaDF6eFRxVjlrL2hLaFVOdUx4OWxOWWg4RHNBSVBGM0c5Y2w5SWt6OUZ0SVhMZ0Z4TWhTREdvTVNFTHNoQXViNW54WDcwdVBFSXZ0eExWVGZYUzRwQ1R5M3VVeUlaaE1RVjh4SC82UkRFU1VUdTlmb1EyS2xsQmNhV2x4RGdSVW9JQUNvdlNhdGNqT1I2bmFxeVQzR2dpd281aDdmdzRVVUlzRTFZNFBtZkw1ZXBWYWd4OW9PM2drWnZ2dmVtR0pqUjNvcExmbDRnNU1oM0E0SjBTcm5wSzFlb3hwVjF0cnBNeTFCVDRnYlVlNlFwVDh2cS8vemlIS2xsYjJYTy9pTlZCRkVXUVRrT0tRNHZEUWRBcGMrOXF3SktGVm5Kd1NBNGZDUktsVCszWktFQ3lXSHBVaFFwL2VINWYxQks4b0pmOFRRUkxPdDJITXVHeFYwSGltVVlIempqTWVkSCtRR0JmVGJNSzVRWWFVcDlZUy8wS3k3dktqTk5LSVpVUzQ2SEZLQkd1eEhiTFh3QktIR0oxZUFBdGZDVkV6K1o5d2l2WXhqemV2cnh3YThnTzdZOUNpZHJCREVibGdSUy9TaEtDcU5KS2ZJT29yTHl1eFRMb0ZZVll4YUVDa0JPZlFmRmNXelIvOGVQMHNRdHFFcHNGeCtRVkRtOGhPZVZhWldsLzZ4ZXJsK2s0NExNY2hPM1B1d25HL1BSMzhON1QxajZRWjJIUmk4dmtYdTg4UFVpdXYyb3dYcnNNU3l2K3FpbXJQcGFjUldoYlFXRm13WDNVZHZCcXN1WDdadDRoUkZDa2lwUjhWdFBpUHIyck5pNkZ6aXphRXRXZTdjQ2pCOExhbGtvRG9CcVV6QldYeTdrcXVZRVBMSnlQNkoyay8xQjJFM3dEdUNYWlZWU2tlRlVCdXhMUVV4dWM4TklLaXFTTUtNWGJ3NVJJUkdXNktscE9ROTdyeUJBVWRYN3JOdjRGRUt0NHFZa0xyY2hNckxjdGMrTGZyWXFLbG5MVmx4eGR2K0pabFVlQldrbS90bjN6d3BYb3VQcVNkTi9Za2hOc3VLMnVGOTFMcTNvK3lqcGpxQUtyUnZVbnRjQUZQbUFmOUxwYzl5ZjlkejRlbXBJNFlJMFMxajNKLzFnN25zcjF3ZmZ5dDJtdU5HSzBoMWd2SDhWOTNzR1NmNG9TVWFFR1VhMUtzbFhWNU1vS29vemkyc2xFUFZ5YStxL1libUE4UUF4cXkxQXJlZXpIWGVZVkpma1lSUElqMEJrT1htQnlDcUIrYWMxMlkvNVk2bi9XTVNMOTdPVVdzU2xVUVFEc1NyRVNxS0F2S1VYN2xIaVR0NWgvVkcvWGNEMWI3QW1HcEl5VDZHZVVHbDV0V3Nvc016d2s3aXVqMStyaWJWNlF0TEhBckpLeHZ5a3pCSWZQRFZ0dlFiMzRZNGxiekZuRnNId1J3RjY2YWV2WFlDZ3dnanI0ZWRTcWhuV3c5b0VncEVTL2FMOHBWN1lxa09vVmV0R3hCNUdNYm1kcjRKdVQ3S2dyd3BqeVFhUitvZ3FRZFRDVzBqU0J6elZqSHl2UEc0L2EreW1RV3hQYVUvUEhTZSsxZ3MveVNkc1ZtZnFLT3lXKzljZElSK1NJMEdxVURoaFdzZE5tQjYxdmFydHdCTi9rdXkvaDJWWFhrcjRxVUxRbzRBVHc4Z0R4SlA1dlFLa1JUbEpjUXZrRHd5SHlRMlNDcm5LOFZFdlV4UUoxNXlzWlFVVHBpc3g2dXI4aHJVcFhvbjdUQnVyNlA1YzludUZNR3RiVWVSY0llS2tlRzdrWTR3cWpsc2lINjhrN0ZNOXZXblFlY09iOVZadzBNZlRWbUhrUityL1Y2a0U0K0VqeUZYZFQycVJLdFJpTXg5dGY3N2VKa3dPNktkNlJhRGc0MW5nUVB4bC9jS0tQN3YxNDZ0SmNkZzgwQ2dCeS9rcDFsblAyNWl3V1Y5Rjg3K2E1NStIcUFrS0p5RzNNa3dGYWtVUitPRCtMQU92enhCbEtaS3NpUG9RYmNaUThaOVBITnROeE5WOHhCM213b2I2RnhMSDFvU2gzblpsYm51TjU0cE1zZklCUm9SK1lmZUJEOWZ3a05MT0lLZDgvWG5HQ2xGVXQxdmVLWTdjbGt2U0FsQ1IrYWZCaUlRanlCRXY4MVJmVXUyL3FzbWdxTWJicDc5R29lVSt2bWs4Ry8xWDhVV3gzT0wzZjFGdmIyK2xGNHE4cm9pQTM5VmJmaStWZG1uYy9hZzYreStLK2c0em9NYUVBRC9xamY3MU9kWUt2VC9SZ09EblNtTDZDU29pK0JYOHJkOEpWY3FIWitpZ3RMbSs5QnhZTVlWdFpGREVjaFZZM21aWUZVYVdaVytGNzZCZUdmN0pqVllKbG5wQitzc2l5aXFQTWpSUmdUUkF3bzlZRzBUd2d6NTRDSUxhdU9YYVNqZmd4eG9JVENNSFczR2tBcFNLb0VPRU1nWVhMcmtLMFBVVEw2NXhhWGtoUUhFUFV0MXlmdEx6NHpqVk5RNGswL1E3S2xPeVBaalZ5WU1lbDRMVTdpdis4ZkFKUXE5bTBaVmw2WVcvK2F0QWV1ZEh4WlVQUHFpY0RrUUpQTkk4U1JJbmdhb2t0bmFEWG5HR0M5OFpxTTJ2dWlPQTBKNzArdHlrRjRkR1hOUnhQUktSbi9lMm9UbzNFRlgwM0Q3NDJEcjM0OUY5eXBMQ0VWeDBaZ1V2M3VIaUlTbFgvci9JZXhlbVNJNHNUZlN2dU5IYkJraVpXVkFQVGF2VzFyWVJSVW1NS0tnTFZHczB3NWphTTlNek01ckk4RlI0QkpDeXR2N3QxL3k4L0hoRUpGV2FuYjczbWwydDdYUUJFUjcrUEg2ZTN3ZS96aExCa3I0TWhpdkQ1Q1dvb1lOMEw5enRVZTVqZk96enBjK1FsSFk0RUcwVWkwN0IxMlhGVjFPQWhjcGdSN2tQZXZOMGR6aVpTRnJwVU1QVE5tWHRGcHdVWDR1Y0JzQ1c3Z3pqeTdGMzJXd0tnUU5QNmFCYnFsbWx4QzVYQVlnZCtTUGk0Y1dKeFZOOWNub1J6TUZDTU1QSnpjQU5maE1WeFNWY29QWGhhQmhIamI0RGNBSUk3TUE0amZIUmp6Yy9YNTRtMXhSaThOaHEva0xVWERHb01IdUM5R0YxZVVGMUxlUlpRWFh0Zm9JbEZYRHVIcGllTGJGenBJbkJSbGFONmxLSnJSWk9PTXRzS09xU2tXQkNPK3N4Q2FqbmNabmlQNk15TUxnK0VFMVZyK1Fwa0hwWG9BYWo5MllxL0F6NXg1VUNWYmxIYy9McDlnZnc2YnpGZnc1MWkzNlo3NlZKSitvcktrUVV4cEJqbWNIL2lIN0g5ZHUrbG13WVBkVXF6ekUwY1ZTWVhMYXM0Y1RvTWNjYk1GN0JCV0xTcGl5UHFORU9vS2dVY2wxaFRjYzROTFowWS9aVXN5VUtDZklIYXRzZTltWTZ1MkpqSCtNZnR3a0dSbENWUmlsN0JzWlA1UWVRWUJXL2krSGc3SzZEN3NTK3hJdnBiNVRWaElHa1lpRW5GUlhsT3FxYnVYRHB5b1dYaDFGNmZzbTRvd1hlMjFJNE1PZzd1R3BWUisvMlBwemMzSjVkdjd2NjZkSmN4SHNZSHNOZmdubnJIeXR0cjN6dTYxbFdNMEhud21NSTV5Z0hmMlRjRTFmUWlqQ0loODFZN1ZveTU1ZnZyMGFzSFYrOUg4SCtIcG1iSHo3ZHhqN2puMDZ2THQrUHpQWFZ4ZG5JSUZuQ3lOeDgrdTdtOVByOHU3T1JhdTNUWmZxMSthai9uZi9sMDNjWDV6Yy93RDl1UG4wM0FtellrOHQzSS9QeDZ1WldOL2pEMWMwdFRNL0Z5ZTNaNWVuUCtjcnRuTFBNV2ZqemdDTEk2NmZoZ3dsSWx4UkFYMGNKUERFL1VmWStpWXFVTU5WcmdnQUtLSlcwOGVnTVFHKzQyNnpjR2xBUm9YOEhVemV6WU0yQ0VVT2VDN0w5dkJZVGJCZzZHd3Fvd2dUam4wQ2VVTEhvU28xRDdWUVhiRlA4bnNRbWlrV3FNcStkMUNnMFBsN3gzRHUvU0tyUnVnalBGb05yT295WGsyOTBlRFhUY210bjV3RDNNRnhZQ0V3N0JEQ3Uzb3FYSVVKS1lGSlhqanJZVmszZEJvVldva0pvT1E3MGViTWZVR0JZaGVKSHFLdDhHNnlMUUtQSGwzRjlSZW04QVdsbSsxMkZMdFZOMEdObmFHdWdFU2xDVTF0Q3hNUWptZUx3Y0RMbGRMMDcrKzdUOTUwUWtibjF4aHF1QjNOUFRSU2liT1VVNjAzdEh4U1NDN201d1B6b1RTbmVidnMxdUFVWXhROXlYc1BLenYwamR6dGh1MmU5ZjJINmFKeVQvRWpLTW5leFNaUEdGNVVZQTIyNjVmWXRPc3g4dlFQeTdkSTlxaDFCNkExNGJ5YU1nQ0JBbDNuNnZRVHZWcTZqYkd0VkUvY0ZHclBvczFsUTRXTVlDUUwxM0dOYU42aE9nSnhwVS8wd3Vzbnp1K1p1YjJKT0tuRXl3cjFVMnlvZ1IwZlh6OTNKVk94YWp0cEJRNjF3TFdWRkVkMHZ2dW5mRmVFZWtQZmMvQzAwU05sNDJBOTA4RUR1cG50TStXa1F6eUdRMUJWNGdYZmxUY0ZneVE4Nk1SY1EveEFlTEo2RWhhc0o3d09oL0dxVit0SDlUL3JnOVEwY0VBUjE3YXBHVjBmRUsvMGRlZkYrMytnRXZ6NE5jN0JIc3FCZ0F4SkVCYUp1anNUbDNmZzJjZERBQnJjZ0Vub0ZOUndwcGdYSjFXcU1HZEY4eXdRdVhRVVZCL01SaHhselJ6TWw0UHphdXBiU2Z1Q2FWSlJrMGxyVXd6M3E0K0FReGNnRkJteFZrdVc4bmZGWTVOVkZsQXNyMG1TajRUeEpnK201YWFtU0pFbG55bFBsdllEV0ladzJmZHJyR2c4azM0VnFTRmJEeUVrek9rbUJ0V2NlbEs5Y1NzME9nNVZOdzMzSFNNY29zMEp0d2RodGVERkdnZFB6cEVBNmFnYitoeVp4Ymd0TDV3dm1LOW1RMDVUSlI3cENnZXlaT0R0T3JFaHBob2xDYkIzRlZLbkxUYk5kQjBpa2NjUW9WaUVqL3FDMDlkS1pxYTNtajhXOFdSMnlWMFQ3eGdmTUVYaUVMRWgxSDR6NUhmQ1Vaejd5WitlYm9rT2paNEhlMFFZcDdYYUFWZ25YUjBkY3dzWSswbjZBYkFRTW1kQ2NpVXlEZUJ3ZVpoVjkwRktuTDVEUjVFZ2xPeGdIM0wzRmNVeVErYU1aK1dMSHBiWm82QlNNY21CVE9nc2NQNnJjVXdNajRPK05NS21sQy9IR094ZG1MbzlKdVNhWEo3VERobXNnNGUyUVp4QUwzR1BjVDBvVktvSjVJOVhocWhKRGtTWkZ3eHpxc2FRdUJ6TWdVbTViYjUrcnN3NmhzRjNiYm95ZGZmUDc5aDc3SmVIbG9ZMVl1aXgvSmZOb1lZa3lubldVR3BoeUlkTldPeXl4THhiNjc3TDhQUWV5d1JwbFRyZ1FYL1RFdktNNTlndHpwS3NPTWk4TWZwMTJIWUlYb2hUVmhleTJvUEtVcU10QVQzZFA2ZG8ramFWdnFqSm8vTi81bnl3WHN0Qmcvb0FzRzRSUUM1eVp1a0ExZ0xuNUN2SnhZUktaV2g1eGI3Sjd1Rml2M2J6QThqMjAyamdIQkhmSWlBSG9rdFZtU2g4QzRidExYbzB0U3Y4QWdDejlUbjZkeWgzYWtyNExIQnJ4QmpoL2NRVjZlaENETFYzajhZdFNkUWVNWXBDblQxSEwrQ1o0SGJneno4V1JsUmQyNmJwMkkwYTBpT0FBREl2N3lqK21Lc2FvVnMrOUFzZjRwNnh6eDFLQWU0emo1RENyUlVNekphcHpMOVloT2x3WFdoMWxlb3JVUzZOQWtvSzZFTmdXbHE0Ry9CVVkyMFVES2IwcDdLMmdTQVp6VmdiUXhLSGtGRWhXa2tZWU4yanBIMEU5dGhWSmNiaHR5ZjZqYkVlVjZLVWxqbWhpYXhEa1JBaWdwd1QxRDJENWdGeEZUUnFBUFUzZTMxTUlWVmJnOVhCY0dhZmNVMmJhUnJNaUpIUjJjbytQb3FZUmV1cGhieVc0a2lEMk5zb3B1czBjU0RSMTJTN0tOZ2cvVElNd1pJdE1rWlBTTmlWaFFXalY4MmxjcWU3eVRNeDdoaWRHNEdMKzZtQkpVODlpdXR2alBJaTdQVXlPZXVlUlRzRjFEdnBCMmxxeEsyd2t5SUtEUy9Jd3RldXJNYmd1eC9QcDNaNFp3eW5NVzB4MWJYZ0JxZFNMWUJmSk0zRzNGeDd0QnBxaHZLOGZuZHVrR1p1bXlTd3FjMzN5Z2RQUjFOS0JiT05sMjJuYzVhczU0ZE1hUk9ZQ0xVazh1L2V4QjFIckFFOGs5bVJYcytMV3hXNTFydVRNeCsyZXdGa0hsSUJ3bnJMS3crNS9VRXc2czNHOWFqZnpTd2pFY2JKSWlMc0FLL3VsQXpEQVlOYzdXOVI5V3hWQnB6MzBudTBrNXdqbVNHZ1hpMklHdm5BOGFTTVd2SFBZV3JBNWkyYTBxMTFBY2dHanNqSlhWeC9NZlNHV1pYNVp3eWFTN2R0SmJrRFE4WS9ubDk4SGRQOEZiVnVEbjh5eHNvREIwM2pEZ2lOTktVSnlYVEdrRUlLeHdOUHBvb2tOLzdJcHF1VXY5SWxmQ0grYzhtcDBocDBDT0VUMDZlT2pYZGhDTU5yWUxHc2pZMnIyK0tpVC9OWXRYQlRncGE3QTlGaVpQdUEzK2E0dDc1UDZHYTlmdW5kdmZyNDhIYVdqQVVVRVVXZzlGTzVSYVhIYVJVRXJJQi84M0x2QkhHQkVCT0JLRGdmaTRGL1FGbWV5SGJCcjM1eWMvdGhwTVNmSVRGWU5aN2tnVDRSc2FWa2pDbXVtcXd6KzBrZjY0SGprNEtxbGlHOGFEdHM3Q0V1VDBwMkE4dyt2T01tbEJxNlkyc2JESlNYSHltcG5FNExYNDlsTjk4M3ptMjRBdzhxOG8zenIyOU9QdjF4ZXZUdTdPUG1aSGRHNW80Z1VpN2h2L25lL0RpT2ViaXpTTm5kN1d4ZnU5clNlM3NMc1FPNkdxelhXMk9sSHM4SGF6VGhRU1cyT2Q0blk4MEkxQVBJdU9iREN4SHpYTmh3WXJveWR6OFZHVkpRWmNrMUVyUWt5WkhyaksrWnVaS0xTN2Mzckk3TXV5ckpnQ3k0S0EySGNWY1FtUVVDTVUxbkNNL0dHN2d3QlZLczRBeEFGNUxOOTdESW5ZMmIzSFBLSHdBaE9VNVl4aVhURDZic0p4aDRkaUJvZ1JFZWtpMGRJQnE5bVcweFRLaW9FK3dEZUdONjFjYVlnK1NSRk1sUWdlQ2pMTVNybm9GMnUvQ1lZK3hpdDFhYXRLV1VBYlFmZVJ1dmtMSm5HWGJUMGZtNkt1Yk9keXdPWWZwclpabHg1bk5RaENJSmRDVUI0cklRSUp4aldIY2xIUDV1MTZ4WXFxenArTFZ3MkdHdzJ1amtFb0NqNWFnR0JnalZ5WFl5a2NBZmVzdDBHSDIzVmhEeFhCMEk5SStNWERRVGxVVy9FYUZxUk1vWUVURmVjb0ZsQ0Z2b0pmTHRjRVpESXhnYlJvNkxFSkRobTNJZDk4M05kUU9VbEtqdDZlRU8rRmlxQjJUSGxJeXFxcURyUElNNXFOU2RQbVVwcWxwbUlaZ1hJN09udlNrRWI3R05hYldUNUswcy9ZOVNuVk9xaTYrMmtuN3ZHRHB1UkdrWU13K08xU2tlbkJDNCtFNFNFbHphS2JLSE9qbWxVZCtsb0o5cC9CMVFSUS9xQytCMVJheEJmci9pbnNCZ1BnMFZ5UjBIcDdTajVlK1Z1NW5zTFdlL2xBS2l0TUVyWXdUbkJFaDhtaUlWaWwzZW0zY29rVkpESkZKL09KZ0ErZ1RmWmlCeVhvREZqUkZ0RkFOYWVRRFZZaDRDZE0rcWdScVc0VzAzVzM5MGU3U050TmF1a3VMczlTdjJBNUNYdTdsdXpjdElYYXA1VHNVVjg3T0x1T2tta1ZlSVI4elFCdFN2RkF0N3hlcmJ0bXFhRVN0WmNtZVRsMnRTRmgxZ3JJRW1BMXJ0TWQvS21CZUJyakhKeGFqQVNzbHkrdjhxeGtCaW9na3NxOEhIaGY4MGMyWGp2V1oxMlJ3dWtVRVI4T2hsRk56Mnc4aXd2T0VsZDFtdUk2b2ZURWNBZEdtOHhHVFlORkFHQmdUd0pHUHNnalN6dUxPd1dWakY0WFlJbW1STlorV1N6aXR0VEJUbWFWZnJXOGRISUhCOGRqY3pMTnpJdk9SQlBNVU9LSDZ5RzdiN2JVT3dXcGVYalFJNGdwL3VsbkRkcEFMZVNyZTh6azhIWUhPeU5aYWNPNDNyTTRlT3NydUN6REEvZFNmZ0dWdkZDTjZhS2MzNjZ6U0VBWkdOa3MveU1Nb0pRSTJtM0hoOGRkY0wyYXJJNnUzMVQrNDFkNHFXREJhbUNLa04wbWdHSWM1V09DZzg0NWJoSW5HWThXVVFpYkNXTGNlcFV0WEdDQk16OTZyV3o2NXpwUktsSjZWMzJJbUJWSHo1Zm1aT3I5MWk2YWM3UWJZcmdlYk5aVzdNbHA4YXFLVHZiaXYzdlZHMW1LKzBRTGlyWS8xQTFzNTBreDVpcVY1b3ZzZHhFVndNNVc1ZEZoK3VDSmhGdlRQUTdpcTNOOTBFaTYrSEpBWklKcXR6cFpJZHk2QjVrNk1JV1pkU0dGeTFVUGZPSCt3NHluWmJLcTYxU0R4dFBsVCtZdmtKZWFKZ1p6cmg0cHRCUkExZ1Nlamd0c09ocnJpSTdVNUh4b1h2cXdkVkxMT3p1STVHTHRTa1hFdWZQYld4VnpQWUYwQkQyTmQ0U1lPMVFiVXYyOU5oWEV1TFlWLzVKMEcvZ0NWSTZVeEpRTll0S0FYQ3A4bEh4dTNZeDBJSHFXREhnTGpTUG50cW13bVk2VGpPL3p0R2F5VXl0eVBrSnk4a2hSOXh6S2NGSWZFM0JMbHl6VGN4bzZGa3JMV2JCYldyM0FQeEN0Z3hSaTJVSzM5cUdWVDllcms0S2xxbVBSU3JnMXVpbC92Q1dBVmNvQW96UXhoRXhBdGN5TndPRnRTSXJueEVsdFBHTnBWWlpvdVR1K1VReElUZ3VHcExxR2NxWVRoYW9zS2hnZ2ErK0VOZ0hLbGJjSkhlbklDK0hzQzZBcXFUY1pnS1B4UVdQK3Q0blNCWGJGQ3B5aXJwVGp6R0hna1pwS0p3VTBQamxrdURXTVpOWDRmUkZReVlWUkVkem5KRXBrU2Njd0pwZ3VQazBGNDFaK3Vaek1SQytaM0FUZ0ljUzhRN0d0QW0waWZsUENTUDI4Y2VVZm9VbHlwRDlwbjJnNUJORlpyZVRyaGtuTE1oRXNnUlRrRGU5SDJWQjVkdHFCcGxLQVZMQzJvcC9OKzgyeWM0R0txemtCS2w5Um8xS3ZkTjFESmh5dnE4ckFzd2plSktURXEreUpudGRwT1RKd2R3R3NuOGtZanBMMFBINnFIYjFpSWs1ZTNCVjV2UGhSOUxnMWJIcUo2OVAzWURoTVRHM0N2ME5CUmJzYys3TENCcnRhVFdOTjBlN3RtVHFUNWF4MklHT3cvS3BKRUYyVm8rbFc3K2szTExFRTVlV1Q5bDVFb1FvN1JMZjhiVnh2N2EyUkcvcWgxMk95SGlMWFdvYlQxSmtpd3JDUzJWUlJRc3JOTFlaVE9PSUg5UjVHNVIxaEZuMVRPTXh3R2c2b2l6SUdSaGl1UEV6Tk90bzFHNHdQN01iSXFYdUpvMmNxZE1CNWhXOXV0aWhMOXFPMzM4NnVUNjV2RDA3dy9ZdXUwbFNtTm90VW11a1U2UUphMlJOaVErUFJUWDM0Q2lIczlMVzdMZ0xrdnJJNFhkVkN0VE52b09DUGthSEd3bjZyRXhnRDZDck84eW9peEhhRmVwNEVEUkt6cE5YSFJNSjl3MnZWb3FWREhIT3JJdWsxSXdianhMWXZCcjg4OW8raldQTGpNbjBCK1VBYkxBeXoxR0JCcG52a0s4anNCeWdtU0MrempPV3lYQ1AwcFY3WkE0WXBJZmpXSWZhdnozWTVmVDY4WkVxeERuSmMwR2oxYzdKUEFWaG16R09JTUFJK1lRQkM0UkdxeFI5MEpkRW5uQTd5UmNRQ3U2aXdaK2x6ZTF4TldRaWFhTTBOUEFTS0d4clljN0ZIRVM3OW5IbWFicDlHVWE3alVPdFBZQm42U0c1V0ZSeGZDcmF4MlpSSVNTUUNPNFBUQmJ2YXBOY0dZU1dpck9Vb3RIWFZ4ZG5VRnFJOXhHb2NzTjZ3UzJUOHM3TitjZis5QXQ0S3Q3Q2VDT3FFb3prSmdjVWdXUTNKZ2ZlbzkyKzdkVktuMy9FNUdEK0lCV1FTcFFKaUdWV2JuWXZYbDNuYW40Nk5VTzdnNkk2N0wzcEZFV3l3N1diZGRQcjFFZkFrcjhsSHpMRis0a2F1OSt5U3ZvWnlNZzBZR0dIbGIwbjRqOVFQMmt5MlUyZGlPYlRoSElCbktxVVR0enBRM2d2WGY4SnFPclErc0xYajRSejRtdHpTZlcxSnpUbHQ3V3RBc0owbUlQTGs5dERyZHlIYmdrZlpFZk5HcndxSUdCalp5dGtvQzQwaG5IY1JMUjVrdSsrcUh0NHB0SFNvb1NQRFBVODMxN3BCS21ERHhQbnRVRmhoU2NLNUk1ZjZHNmtJQVVnVldqbkg2VGdYVjJjU1RVWnJva1BER3cxY0ZyRUlPYnJ2dFY4L1R3a1RXRVRqZFlIVjlmRjNHVkt2dXdDRXVMcC9IMU9VeG9YRy9ObUF2OXY1eVBROHZITFY2Ky9FS3JCL0hqMjg0MjV2VDQ1L2ZIODh2dmZBOVZBdnRVb2IwSEhaZ2VKRFlUcHdxUlFzSUUxQ3lUeE9mbEZaN3AxVmk4Mm1waFdLMU5VUUwxSUtRTUVKZ2ZPOXJXTGQzc1k0Yk9xWXN6T2l5ZWdQaTJxdVh2Q2JSWi9yT3lhNlFLNEtJczhaMUhxQTZRWkZPeTJkWlVacU93cXpoM0RRSCtuK2lhTUFZbUJmMkkrZ2djOFpXMGc5amxValM5ZEIzOENJcUdKSjQwdTRyNDBYVFhOSnJ4OVFVd1RoWC9SK0UweEN5K0lUalpPTnBObkRSS0sxSFoyM3lFRVEzVWJHeGhKTVZXcWFQcTFkWFhCTEpraHRPdU1CSFJLaEZweklxeUQ4NFh3MkpKUWljbGFtaEd1NEtLeE5JZlNKbUQ5WW5manNtRFlsVENYUitnR3k1b0ttTWptNWhTU1ZTckw4Qm9CSGpNeEhTUWF0b1JkdzM3OEtFTXA5MVhRNHB4OWdCcEJqOFVOaE1wa28wcFBiRTdnRUl1U0FwZVUxNWJ5L0hnYjZaejMycEkvSFlhN2NNMk1RaG1ZeWpoc01YYjlpTS9sNzF0SlRGN0UxVUdQMWlLditPMGZ0UXd4Q3B0blZlOURQTWl4dDNqaGtUdXNDS2ppSy9jbFpWK1BjaGhSaTJMZFBSU3pCZ2M5c0Ird0V5b0hoU0VndHdpeEdnMkR0QzBnTm96aDU5SVdhNXB1dlNlTC9IQW5CSGRodGZQcCt5NHh4VEVSWmc0ODcvTHU4Znd5WDV5TnF6cDNVZG5NMDJOd0YyUndqb0FCbEVOckl1QVBiNDArbGVManluUG5Ib0U0bS9OdDdCUjVKUHlpVzZZSmN3UHdUL1FpdzFrV0ZmVnFaL1pIazdLTXdFN0FURzFLZ0djTHZQSzQrTFFsK3ZDZTlIVWJjRnZqMFJid2hKMGJZS0pTZTFIRmp6WjJ1TnVENjUyVis4UzVzQ2hBTmcrUlQ0bzl5RTArdi9XQW1RbU1aQVNiV2Z0NFBRMlgxRDZTdE1vRUxOOGIwOXJiK2N3QzhDeEJsRmRlQkFJKzE4SExvbnMxSU9TK3BOZzNxZVZ5UUhuZ2o0K2gvMkNqd1JBQjIvZm95eWtBLzJCdXprNC9YWi9mL214K0Z3WGdUK2pGZkV2eGJlRnAydFN1YWJaUTl6UUNoSysyZ1pFaFhJV3RBT2NGTXBra0J4RHptWHdsQ0N1QUhFY0d0MVFSVzJaam12b25BbzVVaFJsYjMzYmlGRkVzbzl1anFhTjFKNDEzSUZDMjRoMkVwNTBONE5lYTFzN2VENUFVY2kwM0ZsZ1NJZ3hLUDJTakNDdGJneE51VnJzbUV3ZzVmeWdmWTF6K0xPWWZ4ZDJVQkVqeEc2blAxZGFzMnJXdFJ0bW51MDVUTEd1M0VJcG1NRnR3RWdITlQxdmJhdTdYbVAxa0c0eW5CUTlvMUtpSEpWYzFlYWpiYXRuR3kzUmFxdkZXY1g3YXhwRmtKVjVpbmtlK21DWmRaZkxrOUFMMkFTVWdTUkpzeDdURTg5elhoM1lpbUpqSlpHTHNyRFExVklKTUpzODRmM1kwRys5L1Y1dXYvd3craTYvL3JFQkUvdkUzUHcxdnZ6SytJdmJpeGNKKysvTG8xZXoxdDYrcy9mYmJBZE5idzdzQXJOemRIaWRFN29tMGlKZHk1UjR6NHc5UmgvQUp1U0ZXVkVkNnQxZDVRaGVLQTRXTlVIV2JTTDV1VllPalFWcm1DZ3NlVzAxZHc2bmdZdHNWa2dXQm42SGFadmhId0l3T05xSlNLd0RLaFp3VEUzT1Z3QTBYd3graTBNMml0TXNsbDRhbE1XcDdxamMrMUN1S0NqTUY5T2pRTGF0WStjblRsM1h5Z0d5ekg4NHVMcTdFbndKL1FsUHZzQnNreXIraDFFN1JjS0JZZHdqNDcvU0M5aVhXUTdzd3E0dXBRL1BFSnJrNDk1U3U4UXlWVWR5RENnSzJFdUtsMk1yYkFiMHdSK2NKYVcrbDVQcW90c2gvN3hTWkU3ZTVyM05iZGpVK25GTlB2aG42WmdZNWFtd0p2SktkbVZVcnZhdEpXSDZvclZNenZndHoxaGdCeGMxZ1hEUHczWGpoM2hlYmpVS2ZOME10bVozTnhSYm9oYms1WUF5ZjFOclh4RVdCTzQya2xrSDZkY1RCaGtBZ0pUakNSdUdETkR3Tkh3UWNoUTdPWC8vK1Y3VHVXSXFHZGlySkNnZHVzalIzZTEram1mRDNwV3Z1OXFSaXhveUhPeGYzd245Ly82YWxSNlZwb0g5ajZsL0krL2YxbjZtRHRuRkxYMitwaHpzbWo0MWFhYnlvMEpDVTEzZHZWVkFMK1VHMmc0R3Y4TThBMlRFeWZ3NnVpZjhYdktidzczVGJkRnJVWUNNancvQjlrQm9MbDB5bS9rMW1XTmowVE5sTnd1Wm5nZFd3MjVpRkNzWW82V0xkMFMxOVAvR1VtRC9IV1VOMXFqdC9tTElyNk12RGpXNXFCMVoyTmlZMlZWUjVkVHdzNnNxSERJdmhGdVBkUXFXZHp4K2p2MFA5MTlqV1N6NVB5bStJY0ZYTWdvSTNXVkwvUGtPMUszRHNjcWRoOEJLSmNwbWt5VUFhSyswMUhaamQ4Ujl3TlUvSGFYckZqZHdJS3ovWVNrc0VoNG5hMEdlYWhCMDZSZzY1dngrUEtGbDRQc2RVRTBtVHBRdjJhK0RXWFJYaE02MXlnQWoyMTZaMmN2VXhNaE1TMjNaV015MldMVXVaRjNOU0ZwUTAvSFhjYXhtbFpRTU9RV1lzWTdPMjhad2RzZU40MFQ2bE5CMzVGRzB4MGsya1BCaUpLbFB2S3A4NnAzbzMvck9DRXpIbUh3eEMxelN1cnBMY2hrSU8raTM3UjBnc29pSytSa1JNWEV1aVBSd2VoK1J4Z1pZcU9aei8rQXAzUXpxUTZMZUVPQVoxWjdBOThFZ3NTejhkaDJaYnlzT0pkaFU1WU1FeHZFTkU5T25kR0lXUXNUTzQxWFEyLzNnOVBGZHhxcUt4REQ1Rzdndk1GQWR2Zy9MTDh2VFZDdGFrWHlxWlB2clQ4eC9Gc09lWGZuWEh4VUF3WW8zUHRqYThCLytsemZPUHIrU0pLQThiZnVhOUZOK0M0TWRMQ2c0NlBOR2JTN0F6WG43ejNONGJXR0MvTUIvYjZZdWJkZ3JaSkZBQ3BMYmtqbE0wbytST0NvT0JidmdsRzRBK3NlTTY2STBvQ2dQdWxKb3hIR2huMnRLRDZiL2RVMGhQNzVqRlYyNElSaEpua2Z6elpOV1FnNWliUjFWQS9zcFpvcm51blAybkE5VDRtZlUydms4cEUvTzV1ZHZEMzl6dDZhL3R2S2NGQXh3U0JrdEVUczd0d0dnN0lUUXdWQTRjZGdZL0d4NDhjUTdrNDVkVWt1RVpDRnAwd3JCNDk1ZDA1VGZLZjBNUlhDUnNxdVdxU001TGJkLzI1QmRiaEphTGUrUHRWWGxwLzYxMlNyTG5idGRPcE9FOXNzV2dTTmZZRmhLck8wMzNydHRSTFBjdXhPeUkvSWU1T2Q2dGhla01kWmVKbm9MYUdZb3RXZWE3MU0ydEVJeGxwamhid1BPYzFnQWhpNE5yY25PN3F3THhoR0J1WnR5RXU1SXhqYlQyL0lGTk84cDg4TFdqL0Fua3lOOUpLYUwyZkRUdzI4QlkwOWtnMHFhandpVWJncDhWMnVzeHZEMEVDRWZpd0VTamtCblE3Qm1KcWxVS1JIYW9UL3hhT2NvT2ZKMTh1VTNjMEdvZzNTTUxBK0YyaUNxbXkxaHEwVForbXlaN2xPNmFVVFRtZDVTM28ySUQ2Z05NVU8yYXRxNEUvZzA0SXNCMUV2c1paMDl0emgwYmptQThpTTFJYjRVRGxEc1VOa2V4YzJnTWt2NDdnb25ET2d4ZnA4M09ZZmFVMWhYL2hPcmxydldMVnNuS0JZY3JpQWxGaEhLVTdyT3orRXN1VWVjMDloM3J0N0d6S00wMkZzRGdLTUVCeklqWnl0WjJGZ2ZOeVh3SGl0TXU3RGlYL2JmU2txTlFwM25JN2pzUzBWSDN5M0U2b3FpZ3JDbVp3WjBrUVgzUUJJREk3ZWVjM3UzVjNvdGpUdE9xZmI1bDFLUFlkNlhlVFdnbFVJMEFwbEtPeDdqN1ArakhBUWNQRXBvaExIV3ZyRDc1MkVoL3pBQzBvbVFFWDk3YnZFeEtxTHNSMlU2WmJpcFdBRDdXZUNFaElVM1VLa1hUa0NCeWxjbFZ0cnkwcHorMDA0WXBxTEduSUZCUGZ6aTUvUDdNZkRnN3VUeS8vRDdINTRjVEVidXRJWUl5RzBGOENwL2o4NlQ1dEdVQkdHcG9nNWt4b0tKR1N3TlBhQlJkbmJoQ240d1JYVUozZTlBV0tqSlFPOS8xdXNpaFJtUVI4UnpKck9ESDZYa3VrOFNPMlhtMDRIcE5zcWh5aVVPK0EvdUtBNHhyMmdieUFXTXRMbjdzRVJRSzBFU3lCSUJIQ0FtNnVrbHpuaklJSWFkSk8zR0JnUTVxMFJsRGdkT2tQamZ0Tk9FNHlDK1o5a3YvMk84NkZjaEFveXM3TjF2WFlJMXU4bmVwYWFKYnQxdS9OS0tKNlUweVpIN01vVlE3SkJFcVk3VTVQQW5YTDREdUEyUXJ2YVJVQ2FTbk9TUldSN0k4U3Jkb3hvMGYxOFZ5MVF4NTBOUDJCdHVXOVFsV2I3UzdEcVZ4VVlOMldGVExoTTM5RmRoYUlOekhBa0lOc0FPcW5BMHZVZUYyWktSMGFLK3hHbHdhMUxmS1dPVFZ0c3ZLaDZhWVJhMWhZczY1N3VIZDJZVndzbzNNdTA4ZlBzWWZMMDgrbkkzTTJiK2QzOXplak15NzcyN08vejBEL1FiTFBEN3c4VHkrZG50N01UTHZMejdkL0hCeWNURXlycGxOekdsV2hRYllUMzVPTEFFeXpxek5LTGQ4R29aaUg0TE1xTCtDcGZ4WGNRaDJQMEZ3eDdsUm5uMXMrQXVDQi9YWCtMSnFQeTBMT0FiRzVycTdEdVlnc1ZCeW80ZGFoYzFMOFFEaUoxOGRKUDFIU1lRcnkzU3UyQzlYUUdZdWRjM1hQQXVxYytoQVNCdW04YnY3bHQ0Q1g3RVptNU5oa09vNGlIcHRTMTJrRjNTUnFzcEI3TXgzY0dwN0taVDVEczcxemNsZnprYm13OVhsK2UzVjlTaWVQQTFCSDdkUTZteUNuaDZiajc2SnlpNGMxL1Q3QXhmVnAxVCtwOHFTa2IvU1lrNi83dXVEcll2NExtWXNoVU9LMkV0SlVOclF3dE1uQitYbTZ2cDJoS2RBTjNsNmNYNTJlU3RqUktSOWdjK0hFYXNaeVFlcExMSngydHBJSk1qcHZ1b1p4ZnN4VE1TWUQ0WXcvc0gvcXNEM3VjTm5wejljalFBUnF0c3RDWWJrVXkrLzduU3JyWnFpNUdwN3lncUFmdXF1ZGVNeVh5RUc3ZGk4ai85emRYQjhxRGJpQjdzMXBmY2IxamRTR1FYN3pNbi9IdzlOUjNGTHp6cE9FYVdyNTk3cEF3Nkl1R053Rk9SSGxuSEZZOGZVODV0Mkd0cHBuQktrTlRBdkVqa0NFaTJsNit3clJJNnl2TFEvbmR5ZXhoYytmTHE0UFRjdnpObS9uWjN5TzMxcTBLOU1tTlVGVmhxTnpZMzhtMTdRejdrNGcrOEFlR1M3Y1c4UjZHcmdPWTRMNVUvL3R1Tnh1TXF5SitOdmhwNWMyYkRLbjF4QkFlbFFIekRySSs4dS9HN282V25Sck8wbWZ4cC9OOWlON2NiVnBWK1d2dk1CL1lmK2Ewdm44OGZqTHdaNzd1eTYxM05uMTcyK2FIMTQzYzA0eFRTd3FHL2tKYWVia3NBY0YxbnllUXFzUGJxcENWSGkyMlpuOXEyZGxhcjI1ZlRDWEZ4OXZ5UHNmK0dYbUtjVmlOeGNxVm5SV0UyK0JVQUJlRUQ2aUo3TEFvVHN5ZWtGZWYrNVpmUmVFVGRHVS90MldycXc4cjdwZlF6a1NXcHZ1aDF1amNnMlU1S2dVSDNrbVphWnFVUXpFS1gzMlMwQTV4WlZEcy9ycXFiZW10SlZ5MmJGaWp0L0ZXaXdhRTN0ckN6OUVxdU5YR1dPWC80cHpmTW56aEozVDBDQVdTS1piRkc2SGlnbzFLS2pmb2hySDkvRXJDTjA3MVNKSjIwSWdWaGR1dFpBd3ZiWWxyNGlwSDNJUFMyUldCNWJ4V21NUnNMYU5Tcy9CeHVVTTdpS0p6Y1hGWlNxQjFLdXJ1b1ZPaStTS3dhUWJBQWxOdHFNbktUS285ZVRqK1BRS04yWTlZSWtYaDZ0MjJHMUdqaTFhVVd5aVFXVm40SHhnWE9RRW1HaGJ6YnowMUV6cWU0dzBWamkwWW5qaFdJcHpuekJhZXYweU01SytPQUwxOHlJa1JLZnk4N2IrWWVQVjllM0o1ZTM1dkxxOXV4dEo3YUpoL2liSGhkYklSd2xYT3NOSVViSmRRTzJrbmdEeG90d2tWaXFUaTg0YkFnVFJnNGtZbEpsaTRpaHRac09rR3d2ZEtCZHVSTnpTcG5JS3A4bDh6Vm10UTZLSkt2ank3ZFM2UW5HQ29oQzlnSXppUks4elY4ZmFrVnRVRWlJUklOTDVtRlQrOGJQZlBrV0MySWV1N2szT1lpUFRMeVFya2w5UFZWVzBrclRkTElIRFFYSnlidU9wVG9pREFmMFAwUHFwZjRHRmVZT0UrYnFCeGZlVDIydDRUb3YzYVBLUmlTRVowamdJU2EyZUdtaXgwWTd0YWFxNEwyVEFCYy85MkJMeWpRQUtjTkdyOW4zaTRXS0NvSTdkbjlpYm9ZMjhPVGx5R1NwOVZvK3JXMWxsNDc1cVJyZkQvcnhmY0hXZHJ6WHlQY3JnR1cwRzNydnBwSEczVkRKRkJXQ0oxRktzRkFkM1RFcWJlTkJxTUVVUmVEQ1M2d2ZEaHlLeGhWR2s2cnJRMUdCdzdkbVdRT1VTUnE3TGN2ZUdCUWlWb29sdmpXMWUvRDM3Z3RmRnZVaVlRLzh5K1JvTkRSVStsOW9jVC83NXI2YXpRRngxMjBvZXpkdDAxT0o0bFIySFhmS3didXpqOWRucHllM1orOTZqdEIvR2tpOGZmREZYRmo4RktQNElxWDd5dVViRHltUU5rSWh3bHJ4S0lsS0l0SEdQSVlHMVgyWWU3b202UFFLUXlwb1U4UEZwSEs5a1hnR0U5OXlZM3ZUMWhzZlZQTFFQd2xYdlI4cVYyNTF5UDBGeE1JdXZSTTZqekJYUExHM0MvMTZKeGtrdG9XV3JuaTlKQWNuZm1PTzRHUkFCcTdLd2N6S1ltQWJVcmlsWUxKbzlLMHpWWVgxNUI5SFRXQ01Db1JQSjRvTndmeDVKTTRwZHhVdm5RMjdwSE91TEI3ZDlFK3ZqeGF6bzVmek55OWZINzErOC9ybHQ5KytQcDdOanQ4czNuenJYaC9QcHY4eWRkL00zcndjWEFSd1orVlZVWUxyZlk4Y1l3S0x0VTNuS2FxQVZiSUdvcElKeklkb00zMVp2Ky8ySklMS0QySkZvQW9Od0w0UUZremFHWDJMdVBRUSt5NDZvUktHMlFLWHBDSzhVbWl6aWxHQmVla21YMTRIOGdmeVY5eDh5Yk4vNkFPWHJ1MlRjZ2treEVpaHhldG90N3JrTEt2Q1JPZ0lEVFp3ZEhURXpTZ1VuNFV5M0VqMVJZMGpVYmNQa2Rzd094Vk1Kc0ZVZUFwckNCYVloSSt5SXJmK01DVUpoUWFaZXEyaDlkT25GTDVDRzh5cmwrYkFCdUd1aGtFRVk0RzVIT0grSFRvb2ZCMnlveG5sWUQ4S2RzV2lRbWFRQ1ZGVVJkNnM5Q3BjMHkwZUNCaCswbWNCQUxmMk82dEx3NlgyOTN2bFpLeW12OFhhVHZ6K2Fka3lRb1NtZmhyWU5saHNIVExpRHFxcmtialNqRnFidHVFdDUxNzR1YUIzOFo4RjNibDVUS0RxNlNzajBFR0thdWJYak1uRWZQSytiWlpBenpHRTJnM0ZmK3A0NHBUYjJjeERaVDVlWE13cEFwMUREaWpxVnVoVEtUL3hwQjUvZWYyVytYRDI0ZXI2Wi9QaDVQTGsrN01QWjVlMzV2Y2RYTXNtZlJ1aVVpbkhJVDhFQ1paMXVsVWtYMVJtbkVvZG45dDNRdThOY2Uyb0F5ZFZpQ2FOUHd5MW91Q3Y4V1V4MnliQVJraDBXdHNuL053WS8zdzRVTXRJYWRKRVVDQmY3SDhLbXdEVGllUUpmVFBsL3lRMEplN1gvbkNKYTVlMk50QVZsRVVvRld5ZzFBMHpXUUZrYU42YzNZN014Y2RQTno4SVhTVlRRZVA1SlNqQXJOYVRpSUFUU1dUS2hvMXRmbjkyK3h6cWowSUxJb2NTUkJnMUJUZVFSSnFMNjA5eHBpN2VmOExDVW95UGVUMVRGbldPYkVPQWRsWWxiVWF4cHV0Wk5UdldVM1JRS2xLRjJFMkNzdVpraUNqRTFVZGdIV1N2eERuTUNNM2k4U1ZUbjhCV2lJbUZpMVFiYnhZUWhsbTVIRGViSS9sSmJ4TmRGbndmOUVFQUxVd2dGVUtEejRTeEx3aXhOeStjQlRkN2pkRFVGajN6Q0JrajFmRXdYWnhKUjNYT2FoZ2RPR05OZFZBRUxENkFtWGwzZGhFa2NabmE1QzhMZFlrclhZNm1nL3MxRllOemVRTkZKaGpJSG1oa2NsNlZxRklWZlF2OUhQSng2bVl5bWJCN2JNZnlra3JRTHBjTzBDZTQ2cE4ySFREKzVNSTRicnUwQVhnaEpNY0xyQXFBYnI0KytjRHhEM1QzYUR6NkhGRllkc25CbElIOU0zenpuaFRKZHZqaGdOU243cUZiQnNRcisyU0VWdVRrMzBqTWY3eTZPRC85K1cwWEY1YXdpNkdnTEluWVIrUnhwdy8wNi9TVGQ1ZmVCeDhuYitVVWMyY0l1SjVsL3VCTDJ4U2xHNWQxU3pWRXpweEJuVDhWazI0MnRYOHExaEI4dWJqK1JJVUpzT1hRRTFRWjk3UXBBS0loUllBb3VYcWdXYW9sMzlIOHBOK3h4WmQwN1Azdjd0amk5M1RzL1VESHFBeVhHK0ZrTDBPL2owMHhmTjJ6UGZsOE95UHVXNzhUVFZOMjM2VGdYVkt5S21kckZ4cnVBMUpmcll2SzErYjI5dUl3aVMyNXM3bEZaSE55UEQxZ2xvNllFaGlFbGtaenhUaTczemowR1BYVW8zanpZTUx2QmFDMVhic1o1c0o5VXZYMDhWN1NENzBIUnZ6dVk1S1k0cHNWN3NyNFhwUm0yY3lBVDdDUFU2T1dWaXhDbUd4d0hOcHk2ZXVpV2EzRER1Z0EzRnhid1QrYnhsa0hZVkc0TUJKS2lvU3pFTm9DcTd3UUx5UUYyWG5DTTEza0MyYVdRWFd5b2xpbGhvQ2JNT0QzV1N2SWpWVHl1VVRUZ1c2Q09UR2ZwTjVST29wN29rZ0oxcTZjZ0dWRE9XcHduYjFGZmVmODh2UjZaSDdRdXMvTnA4dnpxMHZNQ0JDTjllcjYxaHpNVytIL3drcE1EbFVmNHFVRU1kOERFc1E2UEp6d1NLdHR4eUdWelVxZ3FUZ2M1dWhrOXMyM3U0UTVLYWJxVkNSaG5tMjRkVkVWYTF2R282UzJqc1RGTjdXYkFXdFAraE93Wnd6c1FmWElRWVplRkM5VEdnMG9JNXp6MkxRVlpQb0NqY01HcXJ4cnBaQzN0WjF0TTFBWWJVSUN1dEdpRUsyNm11YzQ4YWprMmd4M2pHQVdhenE0Q2NSRHVjc0NGaytBY3BaMFJMbUtsUGsyNUZ4K2JyWDh3cndoeW1VWGtLQkZnQ1pEV3paaFlvNlB6RW1hMllCR0cxakxLUUc2cVZzSHNnaEtJbjFvQWg2ZDA0K2ZKdVlWYUZpV2pGTDBsRUVqT0o5OXJOQzBZUUtkQ01XbWVpWkdVSUw4eGtwUEllMWZ0QlVWR2JpeTdKY01VRXhxb3V5aXhCbFNtYmJpNDQyV2FUTHlVR1FRZDg1SU0xS3Q3YlpMeGdHd3FNaUFPSjhZODg3QnY4Vk5uTjVETGlBbTYyRjNFUEN0cGRJNE56QnFqTGNWRDY3S1FBS1B6UC9DQTlTdUV3UFFjZnl0aEdlT2orS1A3UERoN1AzYUxja3RTcS90WEJidXpiaHhsWjBoakwreW56UDZFVHdmYjBhYW9WZVRFcFFsSTNVandwM29wWG5rOEtDdEFLdVc0dEk5cEY3S3VyZkNqUXBSUDF2QlNoNkNxd0t1d016ZXpJeHFWdnF6K0NYeUJrZ1ZtQkFyVURaeWxyWjcwY3ZJVmN3TnlaNWdSd3oxT3hSek4yaUVDdHd4b3ROTFRtTWd5SGZGT1JNYXV6VkNDdEJJNlN4dFpNbVhZTlBnMFZaTjVqRGMrcmJXb0l4eHB5T2dySzhWVUZPZldxaWhQRW1OaVpndklIYUdlVjBCNXBhZGJJUnlTMFFXR2FKYU5udHhiOHpkZXVOeGNKQjVIaHNFdDI0ZjBCeHRrQ2wrVExXcGtPYjZYTE9IdTFsdGhLZ21rWk9tclN4RkE3QzJ3dC9yS3RhTTFsNnBFemd6UWxvWDc0Um9wa0ZOdCt6OGc2VG96RndOZ0ZGc1hYRmFxeEl5SUtTNnlQK3dia2d5MmRUdHJJSDlFL3NGa1pCaUhYZVR2Yy9jTEZsU1BwbXZoeE56bzRuNFlOSjlWVFM0SzJwbGprTGtKUkgydVcwS3RUdzR2bE40L015UHN5cFFGdGd5bXBGanZ4aUxrNENLcUJUcGFoSkR5TUJVRUtPaWVMSG5mZW54R1ZqNDlId0d4YzErWjhqdENhVGp6eE5TMWlOVVFZVzNwdDM0aXVPbXBLTDZrSHdTS1JPa3JSZ3FteHJEVXdHQm1RTEp0WloxZkdvVWYzeWtsSkdaaGFCeUJuVkxwUkprZDl5N0xSYXRvM21DYWR4RTlGdHV5UldDNmI3RkE5QzR6bXhWcFpOV2VuOVB5RUw1TUJPSzNFaUh4em9SUGZBUzVOc25xL20ydFF3NE9lcUViMFpLYktId2tBTi9nRWxhckovVld0eGlvY0NTYVM1bTIxbnBNcDhxeG1iSllGempOa3JvNkkycm91aVpVVlpDTm55TUFFckNsM0l6WmsxSGtkdXUxUzBsSHpFdjMvd1IrdWNiVzJwKzQvanVmQzYzUGJ1VUtadUdhaThVVTMxbnhqTlNaUnI0M1I3T0I1VDUyU2FEM2tVbmJkbyt4M2Q3SXlTaFpnWk5RbGhIRHNXRWNYZTNkM3dVdDlaSncvY3lLQlFFZ0tlWXJ0RXhKTkVFVnZ0R0RJd0R5eEtRRjdweHMxVkZWUTlJSTkyZzZwbk5IODNOb1o1MVgwWTdqVER1R1NGbllNa0liNk9MSkVmVEMyU3lCRXVvVVFsNWxVOC9mcExhbUdxMjdlY214Rk0weHMrT2FSTWVmMUZFd2x5Yy9QdlA1djMxMmRrWG9jME9BTTRDMk5Xak41dTZXRU1WVmNEY3NkSTFESUZ3VlRrbE5xSkNRbnFBbGN6cGxPZUNMa3p4OVFJUVlsS1RrbjdFS0h5TjN3U3RmV0tFTEhmaWF3dUxVeVA1c3VjeklGbWM0bEhDYjlQNUo2NDIzMHFqV0RxeUVCOE1EaG5IMVcwTWlVcXB4VkdpdmtNbjVGQTNOZEdJVXVGaTZ3aVNCdzBpMTlCNlkydU9uYTU5YUV5V1l3NFo1TDQyVndlbFgvNXllWmlsTk1BYTlzQlZBYUozWUJpSkRXcTVqRnA1d3dDY0VPV3dCZENrRURoZzBJbm1XYjRqbFB6RmRkZnVFVUxBUTRjVkFJb1NmbitPN01VZWFpby9kY1BjcU84cExJenVHaXBwNE1oSXZOc0laNzd5VmNyZGw2MlhkbklpRDVxdG9yTDg2ZkxpL1BKSGM1Qzk5KzdzNGpBbHhkMzhmSG5LY1JxL2tMSUpqVUFHdjN2M25TcnRHdHFmQ1pNMjNjTHhSbzBYZWErTXJtWk1KVXdIanZJZkE1OFF0MmRJKzJZRnRUdUV1RHFyWVcxQTZERWpZb0tSNTYzUEZJSFlnVGdKVUoyZ0NMbTZrdzlGVkRSVGdOTDJ6SlRJWEZqS3JoMm5wRFZGR3JRZjFEMkFGclY0NUJSdlZsZVhGcjU0cEhpVll6WjNsc3NndStRTjZTajBjaFdTaWdvaXoyY2lpNVFyWHl2aS9zZVZMMVY4SldxakNCcEtDYWwrUVVVcmZUZXF1U0ZBSkZnZDdBWitKeWhzV0t3K1JZY3BjQXNRTmgwQjZ1cVVYd0VabTduSzFvVVBBOFRlVjVWeVVqSnNwbWZheENlbExLU2Z5SE9XZVhpeUdtUzl0VUVScjcxZkM1UWlrbm16b1EvUmV3QnB6K1BacWprZHA5UkU0dCtsN3VJMStKWnB5Y1E5YmlzdDBKQjUxSnN5YXEwSElkLyt4bEExSDUrMFE2a0ZaeWtQUG9RY205ZTh5dnJSVzJ5Yk95OGhleitRSTVaNzJqV2tBRGVKdFlvaU5IMWFEYXhQek5MTWFFZkNwaTVCRFZITnhRTUdKQjNwZUVUcnc4NlNsS2RkV2JtSnVTbldSV25yY3F2OXU2bzFYNk9URjk1RTd5NmRkTldSamxjNWFzdzNaN2ZjWmIxWm11REtoWUJMZ09POW5FdVhtV1pDOGh3UVNsN0xUaGhJMW1MeXM2WDNNRk5NMXUzMW9YbUhaUWVLUVdMVTViWGJNTUJEUnBlc0dJRzdZR0tKR1dIRUJxRWVSa2M4RkVIamMzWDVGb3dCbkN4YzhYZmZxZG9HWnVLdkI0TzFyT1hnVFFqVWk1blBzZERhbWtLZFRwcFoxSE5HS1ZCN0QvQ2dVU041dEt6U0phRXBQbUxKNElKU1JNaXJDVXFrRFdrOHhFb281TFRwQXJUeG9oN3JEa2xIOEo1SktobDNhVFRrajk3bGlFNVpkNlg5YlJ2dnduSDhoN2dUZ1pSdDRNOW81Z3ovRVMrTjhkeVY4Z0FiK2ZCM3ZDWTAyOXRBVG1RaVA0WVpSRk5ldG5rcTlwNzVPV21KdGt6Wm43RHg2U0tHUDNEbzI5bXdIYUd5S0VYSVhacEwzcVh2emk1Nm9SY2ZMUTRwTTRHbHdNOTh3YXduQm02YS9MZkRjdy9LQU05ZVIzUFM1ZFUzcDlmbkgyL3hGNmhSZkxvOHZUMi91cVJmTWVrRlZFSllwY2FqUTZtdjFyTWF5S252QkZDUko5TnJvdlAvaVByTjMwSEwrVThFbnVqbGdxYjZ6WjhRQVJnTG1SZEUwaFJidy9TNkROSW9ZOXduVXA1NlhWU2Q4Zy95cDBtMUw5OVFlckJBYWJ4em1udDc4WE9KcDdjL1hKK2R2RHQ3Wjg1ZlhQMFhLRW9DV0NubDFzUTVMQjNwcGNBQmw1U3ZqcWVSbnhFTk5RVkljKzE4aFBXcnNXZmt5TUdsWmhVWXlpclpDeVQ0SWV6cWpUY3hJWmdBYzhSa0FPQ2hHRTVlSmlwZlNtV2ozRUNpUklLMjBHMEF2bVVsL3hSbno0c3IrYXk1QWVldUkrRFBFcUh4S0tZVVBJeHhKTzZVZkg2eEFBU3lpb3VOSzlFcXk0S01FRCtNR3JYb3VEUUJRSVVWZjBnN3R5WmNqckN4ajFXQ2t4UGlyTHpsbVMzUjF6S2hFc0R6RjFjcHRJSFQwUGNlRVFvNjlDdDI2OUViMUxRNWlNbUJvT0Ryckd6TDZ5Rld2b2FrMHptUjJTQnpBSGJ6V1ZKb2hwU0EwNGNRb2lQejZEaDVDY2xZS1BPY2F4eld3T1BpOHJnTmhoeVlvZTYxRkhqRldReWorR3ZNRWVFbndNKytzZlRFSkMrZVRENjdQNldwQzZhdG9zREYvTUdWS3pkbTNjNVdFL09Ud3gwcHZLcDVRUm9mSDloa09JWUZseXRpVUJINnJyYUJaTDZOVktsVDJyZTgrc2hYYlZNdHBySG0xN1pvbkprV1MvWmoyaVZveEtjZlA4RzZqdnFJcmhySmErTUxSS1pWMVNzN0dQUnVmSTlJWFZMU3JGbjR0c2E1TjFQL0ZGZUF2S1N4bXkvajZyd2EySitqVGl0LzR1VlRMMytURHVwNVgxbEQ4aDU5bmcwekVIeFdGK25hWllVZmN4dXZkeEFRcWtjYWI0NFRqYTE4ZFowa3FCUWc1a25CdXEvZ1RhalNNWUR0Z2szaEEzSEtVWTRKZldVV0lvUHZTQ0R0NE9XaENkc3dZMzhWSzZ5S1lpSEZrYkpyRTRXbjhrNE5DMTdIc09wOGppR0prZ1N1SW1xR21raXpzWFhBV3VBdjFnOGhSdHlKKzJMYTliWmYvNVpXWXp6M1krd0hhNEIvU0NlOEphNGE3ak0rT1BjdVZQdU5PdGpkKytmcTlzd2N2OFZJN0k3dXFucG1qRUpDcFhMZFZtRHpQaFFTSktWYUdLZ0RQeW1ESDJWblRRR1lTVEFSVW1KQkRiMjV1VkRMVHR0bHNMY3ZKUkdZV1hVYVJ6U1Q1Rjhoc1k4ckFxWEU0Nm1yWnF1MXJlOUg0RFZJamppSzlxR3NhOGsveFErekFhbjBCZUowa2RWTzFXVzhtOGxlQmY5RU0xdDFZRFdZUTVwRVEySWkyZnAySDhGcFZOQ1Q1V0RsbTRJVTlHSzlxZjBEMFI1L2lZWmxmank3dmp5N01GZFhIK0lLM1Y1ZlhaZ3ZWYkN1S25OUlZPM1RVSjM4cXFCUStiMnJLMWRDKy9kRldXS1FGbUo3alBFVStoVHk4T1NjZ1BWZ0IzZ2t2QnptSnpyakt6UGJVWEVweFEvTG9UL1NyTkZkNGRlL2hDaHVmN0h6djZGcldaV3RnelVicldycDU2aUh3RmJVcHZhbG0yUnh1WUNYZ0U3Y3RrM2oxcHRHRWdXVWozTzJLc3A1K2dZUG5TSys0TWVQdXlCa2JHWVNjYzZmcHJTSTd2VFF4a2ZiSkZBOUxhRXBkZ1ZLNWQ4eTJRT2thSUlYRFE4MkNFenYxMk1ZNERqT1daL0xJTW9vRFh6Y2VLaTNMNkhzRWloWVhRYnI4QWRqcDhHWGJlUGVtcjhnYWxKVThmUlh4b1NtRkc4S2hsdkdoSFh5MGVJV202VEp3YTlKZytUdW5jdGYrRVdxNnFhb2dsOTBka1RjZUgwc3dpd2NaT09FUWhBYncvT1ZtWlYydmFHQ0ExTkRXb1pmbVBIeDBkRVJsNnNONERHeUo2L1piaFN4V042L0lwaWprZUlrOG9zR2NyaEpqUFFiNVpuTmlSYnpGZFFHTDl6TitaOVZNVmFPTjR6SEtHaFgxNHkrazdGWVlabzl1cVVrbGFXYVAzTUNKcnhzT0huamx6aHo0bjZOUHg2c2ltVTBzREJLaC9GUzBWTkZmdlN5V1Q1Vm03cDRLRW9YYjZsMDVBN2laVk43MzNDc0ZRMkEwNU9Qdjl6OGZQUEw5ZG5OMWFmcjB6TXpzeHVFbnk5Y09OVFVTdEhDQlVVOWhhVUxpU2x6c3QvYzBWK0xCazhBQ0JkYVlsVWtFKy85MEtld1lwellmSDI2eHd0c0ozcFNSMWlHemxNRGlnMnlBTkN2Q1BmdDBXN0IwSjA1dVdVSFd6aUtxMkgraFBWb3UrOGF2bU5BRjBPZ1RyTnFsdzdJTDUrL2REVEdTeXZuZ3U2VVc5WGVEKzNTbVk5QTZzZ2lQbFZiM3UydDdmd2hHZ0I3S3BIVjErWnVEL0l3N3ZaME10UEJpN0FOTC9BYkw5YnJGNnJidjNDM1g1QU9ja2lwS3NWc2xUWkVjQUtDdkNpV0REYU1ydmxKdkRVeEVoL2sxWnhUOFc0UFYrQnViNVJFbXFUWHFxdUV6TWY0dG5aM2loc1AzK0lFeHdHK1NjemY0Q3dNS1Q3S0dnTnpiT0hyKzZoWlEwMnovMGtualVLS3NGOXo0QlAwcFExaktKbDc1emF4ZjZMaEM2cXFhN0pKMHVrWmxhZWRyTlo2V2ZxcExmUHBFUVdISm1MY3JEWlpEdFB6ZnFXVGp4L1BMdCtacTh1TG44MkhxM2RuNW9zOVM3M0U1OXo3QmVRL1FieGxBTFVaTmVad3o4Y2FLbEZGNzlFSngyRHNWOXNNL0E5bGlLMU1FVUxyVW9qaE9sdGZIZDNlK0Vjc1VZMG5ETk5yQVpNVVhJVllRYnd1cWhZQ2ZBdk9RQVRPL1FPdDRuUkl0ampCRE5MR3dXNE9nMG53SnhzZ3NyeUtsdHg3Z2dteWxiRWxsQ2N6WkFxbWFjNGN6a1pER3VGRE1VOEtZYlJKek5RMWphdk52SzJKKzZPRGZwQk1LOGxHdEkwMWk3Z2tGREdVOUZtQndwYzZZTng5aTZKMGg2a3UxRUFWTkJpMW1Kd0lWSU5wcG9vcVVlSE5hN3UyVFRGRGdDNzBUMXRXRVBRNlFEYWlaUzhrVWU0ditxZ01qOEJIdUdPUnllUlkyVGpGdERGVWNrSzE1RlFrVmFFS0tVRjFXMVZvZE5hSXV0d0RTYjU2ajNTZDc3N0xWb2VwQTRraXVJZEN4YmVsd2hUUUNlWFFycUlZOWdTbzNHNTB6WUJFbXdDY2tmTzN3RnhPSUY1cFRucGJ3aXhiVzl1cWNYMzJiZ0phd0txRVhhaHRlc0NMQWN3NGtUUXc3M1B3VVdqTjZSYnlGa0lDYnFCa0FWY1JjM0ljeHJCYS9pOHc2NVdMR3dVZFdnek5DNitQNVhXOHNMR2pXcmJvbEZWVzFCbFJHeGpUSjhSZ0RpcnFvNDhkTFdhQW53ZW5IOXRHOUpTdU5UQTIzOFZSd1NNakJlVnRUYWpzSnF5aTN1UW8yeXdoVWxMU0RPTEY1N0RPUmlRaWJTU01qTk5DWTBnTlV2TG1FL1ZwMllRWXlTaVVWdDRRVkJsWXorKytNd2ZUb3JLUStsb1RYaE9rSThWZGVOQzRwNmExQ1djeVdTMWpjNTR5VlBMaFVxNFJ3WGI3eW5aeEtvR0NtQ1pjOWN0bjhsOXg0QVBJaEhzQS9OT2hiWEdldmpXS2QwR3hjS0doZVJCTEppT0xwci9SaFluK3dUUkhPSXpFbGt6enF4bEZwektBbmxUb2JFTFk0TmdQYm1mS0tTT0toaUNaQklTR1BzbWc1YmloZlNDRVhSUlA4YlJQQWJXVU1yajNjZmZISitIQjRiRGV4dFoyN2NDMndJOFQ3R2xhcW1INjN3Q1ZmelBFMVlzSDRSbEdVSERRNXIxUnVscVNCeFByRjZNdVZha1NYamh4c3hRM3E0dUhoUDZYTm1MZTR1UjRFdWRsVXMrbm1OSXo1VU14ZWVhVmFJaGdmenAvZWlsL0FndTZ1K2QzdHluN0VEcVI3Y3FPYkpSSnV0dkwyN2piVTZGVkQrQzVENjRxNGpwd2xTSWxxZGl5VEZkUU15QUlJVW8vZC9PY3NSU3RVeTVTekVTeC9BbUxwQ2l5S1FVdCtJVjVnYVN4ZzNWa3N0VTZ3NldYc3RIT2kxb1BGclo4MUVZT0RqRmRxbkVsV2M1WGNtM2Y0TFdOMGU1V1luQk9NbmFpK3FnRElnUmorV2d4VUNlM0ZqeGZWSDNzZ29tNWlXcjYxUTBYZzZLdFVMWkJUQmY5clJGcTlSakk1SmNvQndUTTdIbThXOHpKemNuSHovcWJhdWQwWll5ZnUwRy9FNEIwNDFSUkxYQko2RUZYTnlyVERmSERLYUhvMFFKZi8zdHdNYWdLYUN4TlFDVVFpNklRQklhcTEzenZoaTc5Y21KdUlOQjVZK1BtbmlqQytYb2IzSXliZzhlaGtESGVYZGdzcW9pQWk3NnAvYm9JN3ZucVVITzN4ODNlN1kwUU05TkM1cUV5Y3dIeUh1NVRiSkl6dFVXemc4Z3FjRHBDVU40dVhOU09WUVpqdExieVBFVkdHUVhZMXRJK29SSFdzNzRTTFNNdlFVL0RUQXVTYmJQTWE4WUxoS2tscExabDBWK29VbEtkS2pFWGdSUTlTSjVNOVgrd0kyR3NwUTlCa01ZejVYL1FzdGdQb3JERUlSeU9sQS9BaXlYUTFMYmVqa0FMUzBZbXY0L0xYUHBITk1iTU5GcmRGaU5MS1ZXWkY3VzcraC9nYUxyR0ZtVmdvR0ZVU1RzRVBuVlR6QkljR2lpc2IxKzhzRlZUMU82M3ljeXZYMng4YUZDQkhhdXhqdWR1dlEwTlpKeE5WczI2N01QZXRGQkJ4K05MMjA4UmNaTUl4MU9ERTZCRk8veGVYaHg0cCtkTlpBdEFXMlA2K2tSWGs2K2xWU29KVXY1QldYd01aN01sZEtDZlFaT1U5THpTTC9XZmFrZkpESWZLS0tJOWlNcEs2VUhoaGlRT1lmOXlKQVVaWVJBaUhaM1UwMXpnQWVZZVpKbzNIaG1SZVc5cDZkK2gyWkk0ZE5TQ1ZJWTYra1k0SmdZU0F2TFVWY2R4VHZFdUZPR3FzNjZoTXdtaHBOWUpTQ2xhT2xPVWxrb0hUWG0wUlZNc0xkTURrWm1IeE04ZFlPVE9Yc1lJUXc1dFJOVXBZQ3J6ckVCeUswYjJxV2hEYWtPTEt0WG5ycUxXS0diM2Q5L2ZuUHpsTEM3NWQ5OWZuLzEwZlg1N1JwWW12ck9zWFFpREZhWEtwMHB0VWdvcStxR0JxL2tCU2paaEV5UWJVK0p6S2dDdFFJOVpBNUNUc0FmaCtnMlVuYzFzdlBicmRTQlB1dXBFb1NQYWVrYkJDWUZ5L05VUkZ5akVYc1FOVGxQMDZPdlFTSjYxT1dESjJVVnl4ZDNMM3VVaFVDekpRZWk1QXdsRHFLQmd6dGFGT0xSRTRGNjYrQnJ3bHczZEltVElCN2hVRVFsQWNHUXcrY0l2ekVQaEhnRUtNM2w1V0pKVWZxd21kdXlyTVo1b2wwbWJrN2J4NklmaHYzN0dDay9wWVRZUmxtTVRjQUZ6TTRDWTU1ZUVkNzBXN09UNGxQTGFaTHZ3VVl1KytESmdGaXhyL3hoWTVVenB3U2xyWlhDN0ZnRUFmUW9NaDRlM1VwZTVkdXVwSTg1SERWZ2xVSkNvOW1nVU9ndXhjQjdaUWJHSWdvZC9YTmxBZmlVM3o2cDl3Vjh6MHQvUjJ4LzhSbzA0ZFNoZ2REaGN6QTJadWJFTmduOEN6TDRPSEdMOHU1UTY2VitxWXpKRkRDd3BJUjZhelJGMW56eHRnZkdyM0J6ekR5Umk2VnVoVkdFZVV5dmdHL0JoZHFqTDFHS1VDZHR1WElXSFdvRW9KZVI5ZExITEhaUTNBeEtkTWFGUzhoTEhrZnFvVEtCN1VMQ0FLLzJhaHVxemV1bEtNcGc4TWVvM1Yvc3NqMjZ1YVAzbEVNUmVwdkFEVG1MS2l5SzFvRzM4MlBvRm44aXgrdER4MGRHT2g5WkZOWVpwL2ViMWVxcE9jSlVtaHVCcmRjbHdVN2NWY1V3VFpFSFVlMXVCSThzeXhuZzMwdVV4eWs4a2FKQkwxd2diZE5RVzBEZmVxYkhBQzhOdTZXQ2tacmpnRXk1d2tTVGtaRTN3dzBEQ01jb1NLeUhOSDVnS1hxTTF5LzVhQXdnYkxzVWZ0UmkzamYxZnNGNXV6aWtrQnlsOVZkQU1kVGVwVitBdzd2UUlQTkZUTU01Mk9wQnhmNEhNU1U3ancyRlRMeXJ1NUp0elQxd0VJVEJETkdsRlNHNXJYNlBMMXdidzhXZjJweXIyQWhBQXVjTXEvNGdSS01SVUxEcmlEanhRU2wvY3ZXMG1IZDR3bWxBVjAxYkFFd05YWmR6TXNmdmoxSGhTYWJkeHdhMzZydTRnN1RlVnlkRXYvTUtjQXJjdU1JcHI0UUtCaWdYd2Mwb2FQdGQ5UjExS05teTZsV2w2RW9najlhL3lXWGtrYllOc3hiUkhHWmtpUXFLS1NIcjl6cWFKUVJUUmt0UnlSQlUzVzdJVXVybmJRNHNHYktJeGVJdE0yNkRleGVBSG51K2lUUHVDWWV5R3JlanVFazV6MTZJbGJ1OTIweWpGczVqUFM5Zi9qQWJHN20vMFNRYWJpU3o3RzJTdTF6YnhFT3FwblN2bmpXaEgwbWxPSWFBWUllSUFTbEJFRFlpNVV2b2JkQURhQVVwbmlISlZ1ZGlteWUxZXlMRytmdmNkbTFmb1VBMlVjcDN0NDNmZk1kOEhaRTZDYlVlUVIxQXRCdlFUaTBVeEt3U2ZCZThlQnRvT01HMHAvdzQ4U0VTcEhJWDBvNjNuT1V0SEY4azlEcjBOYmx6UHArTk43ZXc2aXBHQndZdDNxbllDK2xxczQvNWFid3hrTkZLK2Y1SHVqWGdHcU1BajdrUmZkOGFmVms4N3dLT0tPeTZxTVZiSFVuYnBTS2NiUzE0SkE3bUVyb0xGc3hwdFBhQWVabUkvenJ6c2tHaElEVng4ZVdOclJha1NKMGhHT3VhdzNPOG94MkNtdUMrcTMxZEI4dzhFbnNDMWtJK1dBTVlrbVEwdWlyQnFVZkROL1dPRjVqZGFQcjNLWDd6NzQvUDByRFhMMnM1QWxTcjhITkczc2E2dnRNdWxxcmhEN0YxSW5HbzNXU0Vka3ZXU21weHFmZjFpRVdWY2dtRmgvQldZYU03V29lL09ranVJVFYzeFdXVzZRQno4M0cxS3YxMFQyUXRlL0NyVVBpL0NQZXo4ZGhPR1BJcjdjZmh4OUxDbXZtMzJVN0pZN0thZWtQMEE1aFdCM2NtMFlpbVl1QWxFYk0xQUp4U05SK0x0S3h0a0hpZm1ObGNmU1VNY0dSV1lUSEFhalRkSDNWRjBCNUNCYUNsNDhOck5YSUVBNkRmbjM1OWYza0kxNlBuM3QyZlhIMGJTQ2pvQWlxYVFFTmUwQnlOdks1QlVFc0VrcEtjR3k5MWd4dk9hUktuK2dYaDlTbjdBTUpnc1ZoYmpZckxxTm5DWno3S3k4YVJKVDJkV01BYzdqcE9jNm9TNy85YVlHeHNuSU9zOFYxZDhRYmZTZnovWm9zSEUrdWNPeGtSNTNod21kYjczOVF5V0lIWUIvWEZwY3RpYXFmeVg5S2J5M096SG1yak5ubXVVU3VmaEN2bWkxaDhwRGZYbXZ0aUVMRXpTSGZORTVTck9jS0RuZ0l5RXNvUFJ1aE0wdCtESzhQRldHZ0tJLzZnYkRPQXVuVlFBbGprdEtwWXFuSGNIMXlYR0wyMUExeUY0bE9KSUtSZnFiZzluTFA1SUNKQlJKSVZpM1phTnJSelgzZVcwR3ZJYURpN09TNCtLUWs2Z2ozYlpzcWlhN29ucFBORzRlcDBlR2I0MnpPWFY1ZmpkV1R5ZDU1Zm5ON2ZucCtiaTZ2Sjc4OTNGMWVtUDU1ZmZNdy9tRGo2SkhkZEdVU0hnQnp2RDRuS2UvZVhrZ3BnYXcwaFFEd01qWUlQekZrcVJGZnBvVzdxd3J4andVSzRudFFndERJWHpBdGZVMzRnT2xOeUZ3NFFtNTR1YzNnNkFNaURsdjFpN0hlajNIWkI0QWxicHNlSVF1c3QzbjI1K0pvMno3N1lGaFFJekw5UUhVS29EaVlXRjBzRkZXK2I4SWdUTGhhZ2VnM3ppVXYzNjQvbkZ4U2hWdnVLUG9oVmNYb0ZqRmxBLzBZeER2TFY4OXBOK3RBL2RHay9ic04zdmNYQ0tLeU45T1MrN2hkK2tJYXFpaU5ENFRkVERZR01RQ1hBeDF4VVVXOWNZcWhQaXVHQUNTUW0rTnlSeVNpQmtYVFRsN1pZL05HQXFjSUlaZ0hIa3pVT2FDd010UUU2ZlJLS3B1OXBlRUl1S3kzVzRzRVVVS0dTTWFkcWFuTXhLdnFRMlB4T1BmTlBSQnpKUGRCUTBXSUowaEVsc2xWdmFsRGVzVEx5a0M0Q1RPNnF6UlZpYmc3WUNCRFl5cytSUVpJek5OR01iRzNMR0YwbWpuV2VSanNxdWhURU1RaWlQbUdSWVdGdytxTUVXK3JDNTcvcnM2WDR0V3d1cXh4aGg0ZDhjc2QvcUR5YnV5VEVjU1NqZkNTdGZ6dW1CTDlTVnI4L2VuZCtZMDR0UE43ZG4xK2JMRTB5SkFacGNPRkwraUU2ZWFaeWpta0ErTXU2VS8ya29NMjN1K2xYSElHVHdnbUgyRTN4d1pxdXNzSkRFa2UxOEhsSS9SQ2FwRmxKSlhPSlZZVHVwcmJCQXRPbVZ2K1VKQVBTZTJDT1p4WFpHWUx2cWt5dklRK0ZmNWFrYTRPVkhqWno5THVyVXgzMVlFWVZERkhuemdwS1lvbGpremE5enBOck5QTTl6Z2xtYjVKM0xLV3lnaXdJWHJUZnRNejFPRjE0Q2tJUlR3YXZQS1p3TTUyYlg0b2VjZStFdEYwWCt3ZFdsM1d3Z3JMYnpxNWlXTkJsY0MzeDZqTHliMDZLcDdMb2c3czFvejd6QWVZaFBLVG82UFFPczBaTXRraUNFc3p2YzRzTU1lZE5XY0VIR2JhQnJTRkQ4NVBUaVJRVTR0M0dxNE1aTFV5aXdaSWtUQ2E1Zk9PT0JVaGlsdXB4SlBWV2Z1OUtTNXlRK2t5eVZUQmFBUk9XWmhzMVA0NFovQzVLY0lpYWlCQXVJNEZObDhSUXJZaFRQa2EvSTVhWXRLcCtsUEZDaHlkRkl1TnVtemt6WndVVTVtV3U4a2V2R2ZJMGNRaE1wNlZWUXpGMnZIU1dRY0Z5a093Qm9EMHhFRXVscXM2MmRvaVRnK1lNWDFKeWRTRkVRU0xPNG5GQ05iaE03RTBaUWxGZ1NiT05pQVNVMGNUTnFLTThBOFhkZnpnZXVQQW0zQjBEdmh6c2NhdjJrSHpvREMydXlLd1FmTVd0bjRWaW0rRmY4K3QwZWVxMlg3bTZQVUVLMUxkYzhla3owd0YwbjBBOERpRmlDd0IwZmxNMlp3R1VaYnBTR1Q2Vmc3b25BZjljdUJLdDhSeDA0TFBJMUxnc2NrcDAvV0F6VWRIQ0dWWkoxdW9jVG5veDJoeHdNK0N4cDViaTRLZ1VDNC8rNUZrK1A4bjR1TWNHb3FFMXRxL3NvWnJGNXlnVFprRVlNSWs5N2Y0M2hneXNid3BxNUt5MkVydU5Hd3hSUWZKZWE3MjZKbDRja3dDa3RuMmRoNXRjYktJK1FIR1g2Vm1sRGs5QmtuNE5ob2l1SVVwZmwzUTJaRXpNaDdnUy94bHc0Q2ZCdDNhUkNZa1ZmdWREbjNlMmg1RHNjTWE0YzVWUGJ4cmpTYm9JTzVhb201MFZJTWlZdE9TMGU5MFF2ZVZsVTkwYW5wSURQTFZ2ZDh4MHpWTWlCSEhWMkdsWTA4MGJnWmRSb1pJMFpDR3plU3ViQTNkN0x1ejJaNHBaU09wRkNPUU8xcy8ydjBsSFVhcUdTTENNVkFoOWM4d3dKbldkZTBzQm83b3NnQ0xQTnlsYmRRMi9NUVhhaGZDVnlrdEdiSG14WnpJdG1PMTdZV2VQclEvTTFER1FjZDVFOGhPNjlZYkFLQm04RHY0ejZWQkZVVXNsSWtzYy84MzBWa1Q0K29nTWFFUHdYRGg5VDFRNzNNSjZoWS9WUnRTYy90eWRRMW9QaEJCU2pKQXNiVzk1M1YwTnJEWVMrQzNrQ3I5S25lNDZabkg1djErakJBa1FyT3ZtczRlTzR2VkVVRHV4a0t4dUZNbzdnRFFSVlRSUUkycHZFbDZqS2phSXhweTNtWnBwRFlQaW92RWVXSzNCRkVDOHJCQnFHU3ZhRGEzN1BIb0JLTXFtY1BtSlREREtiUnN5WW91VTlCWVM2SzlzSE5VY0tCZ0E1MWxLWFMwVzJjaFkxNGVNNnp3QStVTWlhMi8zZTEvRmFlZmErU0ZqZWNObkYyNk1YL3Y1M1NLVUl5U2VBODhIYlU2cVNPTjNNSll5OGFNSVZxT0t0WENvQTdwRlRVcitWWjRNNS9uYnBxTHQycjNhc3M1NmVjZGNKcW0reEJKanB4aHRmYjFhMkFsQjVnQllZSlVoeitrMlczd2NNdFc3UlNDamowZGYzbWErVmtwb1FwaUprdzdVNTd6N0dlNkhZeWJPZUQxU0RDUlhEVnQwT0poTTV2dUhtUmg5RHhibkpkZ09LRmFyUTdYVzJsK3pBVExxN0owZ2M4a21WSS9wK2htRVNYVFdxWXBVQy8wQ0RwZHNKOXZBVU5ZaVlUTGZBZDVWUVJ2VUF1d2U4QWJhdUMxY0RoTG5wL1Jya3NVNUZ0RjFpQzlpQlBOcDhaRVZJUXpvZTdqc1picUVqbURXM0FoamNuUE5ldTBVSmtKQTVLSXJNaEtDNkxEaGh1Q000aWdvSkdXaEg5U0tHeWQxMWJBN3E3bXFxOFJXMXJHZnRJQTBWZmE4MDRCUXNFMjNtTUF1RnBhbUdNb2JrUDdPYTdaV0VaNjBaTXZrUW8xZVVqM0pxRDdsR2hWTFhuQ2dSeklvUWhDcnhqcWRFTk14K2hIRGp0TVhvQjVZTkVQRzRPaUZJZ3pTRWM4MWRrODZNZVI4ZEt5TzRyU3RFUlZwa1RQQVVqS1ZFWVFTd2wxU3pRZitFUW1SR1h4NU5iakRaYlBRT0lGSm44Uk9JbkRzZ3FxWnVadGNPeWJ5ZjJTajdXeGYyelFINXpxWEg4b0YrTHUzblZqQnpiZlVxeVU4ejF4dzZzV2N6dHdIVCt0ZlcxWVVMdEVtM1VNazBvelJ5SlFXU3FJbVNiV1ZDNmRFVDl3QnVrNFBLSzQ1MlpFWEc5Q05Nd3pqTTA5K2lpVXdHd1N4Uk5NUDFCYWNXZ3BrSFd0ZFV1Q2Z5L1F3OXZQTENpNEI5T3BSclVid0xidWJYa0RzWGRTS1FEeVBUVnRKdnZUdTZpYnROVzFkQkRkRUdFN3dIMEJqK0RIU0pnb2M0SzVENTMxMUxWaUlTR25kR0F4VGFLUlhyWnRjMnU2UkpISTdVamNaM043b1o0cnJLb3JJbm4zMjdUVVpud3FuVWNKbWt5TkFENXJOcTcrM2NtK0JIU2ZEa0toMjRkOGFMdGl6SDhMWmRKbytoUUZOVmZyZHVNZEJBdnFWVkVoVGxYZXJNdUEwSGU5UDlCcTZEZWt1OHkwbmpUM3VHeER0bGU5SlByQkxrSU9waXdFTVVyOEJLUWtpY3M2bTFxcldsOHFNVUM0eU96bVg2ZG1WaWt6ak5nRFFGNUR6TDdkRGhINzhRZDA2VzZUaHpVWTlWNEtJalNpaDlkTGpIQUh3QThFRjlJb3dSMWk4dzZib2tIL3hCUzZRcjcwNTVvajZuTGxaK0xIT2YxN1kvdDU0azF5bms0REg2aFJsdFJCRkhObzhHcUUxaUJLdFhvZ1FCUDhaSWg3OFJKNmR3VVU4c0d1TWZxNURPN21kV0NBN1RvOGZBNzhSUTJYRWRHcHlnZ21BRktSbFhnVzNJQWxHd2pUWjg0aFdiUVNFSXJCL3RSNUNnb3FBQzFqeXhPWXVLbi9Jekt5ZGkwaStFSXRneVl6YXV2NW9FY1V5dmJFSVVNVVhUeDB5VHdDZXNRREVZOENNa2kzZ0Y2M25JcTVvb1dJcndYODR4NHhraGZTcUNNcWpyQkF4VXpDUG13Q1RGZzhRUkhMc1BTaC9ndFFMK3hzU2NkQTQzZ1pYQWhqaU9zL2dTbSs0RUxRQW1LeUJmMXZ3RlZYcTB5cEdaUUFJYldEZXhwVGlwT3VrazRHUUV4YTRRVVltYUxjYkxqVzQrSVZoU1M5YjgydnE2QmVRQnNZN2dxdldQbGF2RHF0Z2tkd2I1YUxPYjZuT0tnNTJIY2R5aFl6Z2YvNmRIY3ROT1F6dWxPYzJPNXBEcCtVODhta1dmU2dQVGFnQTZSVldTVVk4WnpnOHlnYnFCY2U0dndRTUZaTVBGL0FmQ0g3LzZVYXBKc20vYWVBczFtdGhONTU2QzZJVzVVcnFSSlpzdHJtYmx5ZzZDcFlJdmpQZDZORmo2Y0NUNUl1TVE0VHRxcWJQcmxCVkNjTUFHVjgyNXpoYmoxV1QwNFE5VWJraFk5bTJnZ2c5SU5Kc1hEOFc4VFk0R0hjYUpiZStIclBXaXdqVGpTZGFCUUVzMVJXNzB1V2lpN21ubXRHUW9BckZteU9vM1NOcGs2MElsVHFrdmtpS3dyREZ1MG1Jb0RKUG40Tk5KaTRJc1lDakYzVGhnV3orYkxDZm1ZenU5YWFjU0JpR3YyUWE4QU8ybW85VEs1REVFczhvVG5DQ2VwRlBEd0VPMnYzYnJYMmplZm9FKzdadnp5L2RYWmxHNGNxN00yeGUrTnZ0eGJHTWNHNncyNUdIdlI3bUVPandCWFhCeXdNWDU1WTgzZjVXd0FOVlVrNzZJc0ZKY0Y1VGluRXh3aXF1L01NZkxLYVlZaWJBVzNycVoza2UweUlCZFYyQmVjYklaTUJRaStEblp0R2JUZElBcFVPT293VzU1cU5pWExEUUpCdmR5ZXJqaktNUWVqZU5zVGRzRnZkNzNWSVVPMHdNYTZiYXFmRnRGelczbFF3TkFERHF2R3A1T1d4QXBVWHlWN2o5TkNhVUF0M0RHdUNnc1BuMTdjV051TUxIbk1uN2x2SnF6SURtNHVUd0hqSm01c3hDOGhCdmwzZVVOSXBxSWg5dERlSFNTZzRGTDRKVXZuYkNLRWlCYUtnbkVaTzBhcTJFZGVNdmNYRnpkM25TeXhCQVNpbWtFQ0pBWDUyUmZnckFBejFhNytkaFZjOHhQYjdZYkFWbWhDZU4rNlErMFZVSEZOTWlmbFNSd0ZDTlEwRjNpeFRNU0dFSnlmRlJvYWhNYkNtTlFyUDFEZHYvSU1nb3g1S2IyRzB2MXh3N2ZzT1ZPcVVyN1lTenQzTzFwS0k1c005bjVnNnViSWpnb3NCUU1mWlRpRkI0anBXSk5VMGpWRUxqNXpqL0dSYXBkU0JSRVJJbzBkd3VBRitGZVFIUU9UczZzdEZ5eFJ1SGxLdXBMdUFvVDh4T1lqdnl6QnZIaWJVSHdRYmgrK2tuMCtteFZUYzFubGp2SE9jRmRTK21vKzhWbWYyVDJ1ZnY3MFAvOXRycXYvR01scmV4bkcwV3FwMWIrVWErb2RCSHRjaXJtK0hEMWw3TjNMMDV1SUJVVWlQaERBODVkSUt1MmpQMVZBOGFNS3lGMGxHMzdMc3pZd0p6RVFhcnFwTFFZV0U0ekpEenc2Wkd4WnY5LzczY3JiR1FBQkwvUzNZUS9JWU9QdUxONWV3bHFHeFRZb2lKUkdacE42ZTRJUytvTEVpeXdobmFnMUVrc2svaDZ0bk1SMDhNU3FEVDdRRk1VbW9vRGk0cHBMaVJaR3UwVnFLWW9tcFprSUpvaUF4a0pFak9LSXMwSkNtOEYwTmNVU0V3dXpYNmYwVCtDVFBDQ3lkNTRmeitSQk5Zb25MTXl0UUlJYURIL050Zi82RzBhT2NCRXEveW9kRUFhVE1WSFBOcDdQaU1sc3M3RC9zT04wV1kwQVpqaFFyaUVVaDlXdTdEeFZkaHBVdTg0Y2FiWUtBSWVuWERubW5hVHVhNDFqVEFWaUlIeDUyY3RBRFpwVTFVNXVwb2V3cDE1ZE5PNHF1NEwwTURsaEwyN092M3g3UHJGNWNtdEpQS1p6eWN0bnN2RzBsVXRvMEhISmdsT1RFUUFsM2cwb0lNd3djblk4RG1DSExzOHVSM0gyd2V3WkJBd0dZdTQ0aDhYdm82S29adGoxU2doS2JPZEs2NWRQN3VuY2pSSzQwWjhOMWNQb0NKMDJlVHlrZkNaS1Nva2hYSFZRMUg3aWtadHdRb3Bac053VW5pNFlNdUNkUjhQUmtDMDhYWmFGak9ab0dqRUFHMG5GSzMyS2ZhQWRZS0xUUVFlRG4ySlVack4vSVpPcGExNzhINWY5Uy9PWXZQTUgrTmtQL1BucGd5ZmUyVGFabzlJRW1XY2lDaFc2MWJpUCtBMUFNZzJTTm1qbTVaUFBLNzdBWGt2T0Z0T0kwV0NqVTV3emxGL3c5cmhsSjFHK2l4bHNXRk5zSWFMUThzcWxYTEZkUW1ySkFSV3pzNVRHUzYwWTJmM0RtaDRVSUhFRFlZYm5pK1JUaFJmS3F2TjJpSkREaSs4VGtxa2I3UFF5b0VwdTlVSFBPY05VbkFsejRBZWYzL1JRQU5kRncyZHJ6emI4RGRYK3hIam13OXNDZ01DVDY2Q3FDM2pwRUoyTitoeCtqYmIzWWtNS3psYWw4T2o2VHVvMmNJSDVqbDlIaXJmQ0lTNW85S2R6a0VHaEFLTXBTaXhtaEZpN2JqeVUvSTZHSWkxVzhjN2xyNGxDWktxVUpPU1FCZkZVNXhtekN4SStZUjhrK3MwVGNncEZOUmtoblNvdHZnUVZMalJtVXJzQk1tSkFRb0NLSnRMSUliQy9vbERSRjRsWHdrcFB6dTZCLzNKNTZYTDc5S3RQL3Fjbmw1c3pQSFI1SGh5UEhueitjM3h6YXQvK1hiblU1eFp1dVBQTXRKdlh2M3BpL1AzLy9DSHFHeitaQzZ1dm9pdE9rOEZ4ajEyVS9wSGMrR1hhSDhHUWZrcmZRcm5ZYm9lZUZEaWxQYXBTUE1pSWhSVm5jSWlJVTNSSllWQXZ5VFJoWXhXc2JIbGZhRnhobkh2amNBbHc0SUd5NUYwdkg2VWFpTWFRZ1BNMmFXei9GbE5LODJPalFQMmVYUE9qS3BQUUhjVlA1bEdLS29vdzFzVkFhc3pLVVUvSGczY3ZyVktnQWZwSzdZRmwvWTdDOHcwdmN2KzV4NlpKRGswSDJHdGNKNGVmUUtDREc5Umh3VXd4d3g5NUZIQkh1WExOTUlLdGxudFV4S2NwNlZQMmJvVUNSeGdRb3lIdVBUTFpSUXhndmNLNDVSdWlVZlFWVXNwZ0pFNXB1Rk0yRmhSL09XSVR4SGJaaTVYUi9qWGlpeVU4M3k1d1Y5Ymg4a0g5S1lxNE1yZ0wxTStORlhCdWFjTktIYnovb3dFWk1tSXNpWSsrR3RiUE5oUzBkazNYcUZ5NndJaVZaZEUyU09TTXFEWGNwUzd2VlVTR3lEakxMREdsWENmbGtUeGhEQ1BORHphTzdIQjBpL0g4Zi9IZjhkcmFtVXI3SDAyQVpKMmp1NHR1Q2JqZE1NYVRjeS9VdTJEZmJSUzlrR1ovRE5maFhidHVzQTBQd3VHWThiZkRUS1pTOG15clJ2bFdCUmoxMmMzWjdlZC9xL3QwN2gwbFRsKythY3ZybXk2T0xrOXV6ejkyWHk0dWp5L3ZibzJ2MTh5TXM3WTJsY0ZZaWxBUEozUVorRDZDQ3JNMnBkamltWXFKMjB2SVRVU1BHWkFqWUZTU2N6VzRGdFk0WFN4Y1ZkVVJkVXVLcisvRkJabWw4ZWZTSmJocFV4OVRJWVo2VVhnSEVKdnJNWUlpUGJwc3JhYkZYRkhUc0dHcWgzb3VJTmhQSndreGkwTm1wOHlZVklubWtrSTVTQmE2YSt0TFZYS2tjNU9mcTVJSndGc1BlQUVkS1p1VEt1b0N1VjI4SVdSNklrNnZYZytkeWliM1MwQ29nMWRNSDZ4ZUlaa2NXQnJhVmMvWm5hai81KzRRZVB0Z1JlWW9qdU5XaGVHUVROZ1BLallwSnhwMm15QVZ4SDNHOWFsS1lSVGFXNjlzYk5tcEhFSHNlNWdiY3R5eEE1YktqR1pJMklya0JxVzNzNG41Z0svbllwb1pXQ0F2WVNNbGpsTVA1OE41UkRNS2JEdjloSWwyelByZU5jZUhiMmE2ZDBBdjNGM2U1Q0JnTVlwczczdWF1VG9kd3VXMitzVExCVC8vWkxGUFZHSjM4QStBTlQwd0locmNuenh5WUtNSkp6RnhEZjN0RUVtVUEzVUZsZHdYb1NtTHFaNHY5UEJ3SWdRZlRrMHRnbmltcytRK3R0MVMyUlUzRXZkV2pBSHF5STBmbG5iZFRpVXRqdFNaL2NSR0pIeXNYc2lGQ2REcW5Ud0Q2Nk9kbTNLZlFZR0Y1azRTWFhLcGcwUVhkTnVublJsQTd3YTI5aVYrb1o5SmF3ZndaK1VlUTZmbjF1ZFhRYUw5T1pvWkRiZmZvdW5kUFB0dDkvdTdOVTRTdTJ4L3RxYkkvUHR0K2JiYnlmZmZ0R3VOV2QvT2J1OE5aZFh0K2Z2ejA5UG9DNzk5M0VVay80YUxidVA3ZlRGVFRzVlV4QTlJSlF6aFI1Y1ZRTXErV0Y1ZEpNajBsSG9rY2NRWmNJdS9ndjRPRWUvQmtvSU5PWHB2ZHRpU2hwMVNyK3JkaFVEK2VKQU9yaTdBQ0Z5ZHFGd1Bud0ZnN25iVzNnUFZVMitUcTZXZDB4YmZ6U0tPcmhJUVE3MXNrbWFmRFJ4dzlCVWRtM1FqNSsrdXppLytjSDg4Z3VQNU05SHYvenlkdUdCbVg3d0tSZ3BQRFYzcFlrOTdEZ2ZCbW9wU3NyTTVHa0N3YThnR1dpOTdkb2pZVUs2QXFNSlZGcWtRdVBTWjR1dXdHSWU5eWpjdzlOdElwT1pyU3lVUTlTOUFxTWZBUVBseDN6SlJtcWlRRGxVVTRIU2ZqNUZHZi9MTDBUUWtPcTh6cmhGak9BLzF5Sk8yMmRiWEVLTDM3dksxY1VzUVZJY1ZMNUN0emxqUlJ5aTZmcnU3R0prenY3dDQvbjEyY2hjbjEyZWZEZ2JtY2trTmZnL0VQZ0ZBNDNjbnZ5MWhMOWVGS0hwL3kzZ20yN2dUeXY0MHc4MnJQcC8rdzFmUS9rVmh0NStnaWZPbmpZRmhLaHdTeHpRL3k3ajBFRk5SU3NEcm0wTDU4SEJHNGx0empoczZLR1lOYzgxaEpsdDBFUThrdlE0QmorZTBGaEliY0wvbWt2M2lKK2tOcU5kOVZhN0ZPUTQ3cC9zNDVaTVRUUTg1YzZ1KzZPZncxOC9JUEpIL0FZc0szNUlIbHJ6eGhxdml4QTYzVGdYRjlVWGRPWkU4VS9HSVMvL1J4bFd2ejI1Wmo0UzN5eFdTcHo4ZUFiQ0J2TktvUkNDTTRRN3ZjUC9EczZlSUdmM3Z0UEx4SXpqbnFoN1lDbkh6czFiMTZzcDR2L2FxdmkxSmZDT3Zrc0NWSnE3UFpRVVl6NmlZK3Jabm1tQTRCU0tkNVlnNUNIb1VIUHNrRUYydmNwQ0VDczM3Z1FPNkluNENPUmEwb0Y2VlI0eWRFc1lHRFdyMXIwUkNBNVJTZ3NzNDhtTGQ4T1NUanlMa04ybzBJUHNsaWgvTUtJN1FGMWtocWZObkpYTEhaMDBMOStxZXVRNC9yaVpHV2FUam01c0R1elVXVjFNS1dXWjBzSDZYVFJJUXRLNVE3aXAzOVBwcCs2RFNudXlmSnRJK29wZUVvbVVSVXVIMlByUnFLbFV4bGFleWNhdUpmNTVCUm4wNjZRZlRuS0VUVEdVa2lCbFI3VW1uL2NMODJQY2VHY2o4UEhUMGFHN2UrN0tBclBaR2ZaN2NDYXlmSTdQRWZ5OSs4dko1ZW5aTzZhZS9tTDM3UStJa292VTVETS9seFFheTQ0V1FiRWs2ZzBJWE1XcFlydzhCZzhRenhzVWU2YWlKa29EUzI0OGdMUUcrdittVmh6WTVCdWt6RU9kZWd1R0ZSeFlJa3VIWDBqQnVRSVJIQ0lmRjN1Y0hRd3JHMWJvQ1NwQ3M3R3orekZucXIwNWZybnJFYlRndjNtZHBpN2VxMVJOV0FZdjB3Y2VDTXFPRitBa1pMd245b1d1R3V2Nmt5VVlhUnNON0FIeUJNSmtYUDdVZForRFRZNHhEYTZGUlNEekdpcHo4VGZxYTZYd1p5Y05lS2dCcE5JWXY0bXpEOENzNCtNUnlFc0ZiMlBHYjk3R2wrQ0Z0K2FiMStiSHFTR2JlanlHSmRiWmV2RzZvaGpWbzYvdm8vRXZrbmI4V3JmMDZ1V3pMY2xMci9STHg5L2tMMjFxUDdWVDhuOE12ZjFTdi8wbmVEbTl2ZlErUFhtc24zejl6Sk1mbVhNV1p4eTVFRkRoSjdhRFh3QnZvOXorUXRkT2IyV1VOWkdXUDlzN3dBOGNHazJYa2VDS3VkNXcvTkljd0poaXB5R0ZiM3hzRGw3TGI3SmdCNHE1T3N1ZHgrdDdaT3hjUWlGTXNSQTNYZVZtMFVJUnQyM3NhbjUrWUJ1T1gzYVBEOWFaQjgvUXJ1Z3Bsd0dlMHEvTTNHMmFGVHY4MHpUOTJoYXplNWlYMzRxTnpBOGwySDdsN0d6MUZaYVY1RWorSmRYYWZrVTZ6RmY0QW5lZzhCVVZVc1FiQU9XV0xVb3AwUzVTWFNRZWY2aGJCZ0FvZHZYSDNiMEFFSXcyckY1cy9FWTVMaWVHOFdpQ1RsVXdSMitscXRJU1dvN3Vrc1FtMzlKc2NFSHIzUjdlY29nYUkyOUFhbkZUbE1TT2NFejFieFY1YUdQekkzV1JMejBrV1FDb28rVCs0UVQ0R3NZdmNJcG9BcncxL3hILytwOWpOSGNBYzZIM3o4bGswdi9sZjhUVy9sTTFoZzJORFA2aFd3MnVKL1ovbXFLcThsUUQvcU5zbXBlZG52MUg1WjZhLzBvM043VjcrTTlkZlg1cElOZ0JTOENFWHR3Vm1iYjR2OXl3ZTJwNEp1bFhzWDMrbFY0S3lHdmxwaVRQbERteElFdFRCdnZxdWNIKzk0eDg5elM0WnFZUFBQZDVqUHRUQlladUhQaDA0QmJrdXhFdVRQTHdDQUZ0bERkdjJhYURZdUsrWnU4WFZQSUhhanRwN0pUeWg4aFo4Y1pjUm9GYlZLYTI4K0xKSEI5SlJwdXRWQ0hnSXQ1VFFIQlZMREhoRWQrY0RNZjBjazgvNS8wRzEramFCRVl0UzB3bHV1eFpCM0JhNXMvbU9TR2RpN0JoZVlZNGlPVlFwaFpWRS8rWktTMHkwY1c2S0cyTlFFSXJVdTZxT2F3UEJCelpjRmVhU3lybFN6cE1ZZzNqeEwwQkZRWmRjR2tkS2JFYlFuT0Nwa3pSV2VXNTVMc05nMUNwUzlBajVJdlBOVGpFTWlNNStSdFBRMDk3ZzZEZThDTjk3ZTJIN2NiVkYzNTU0WmR4TkhWd2lkK1ZvQU8yUUJYTnRSMXBkZUhLQ0hwZGo3K2hwekZUaW1QT1ZmYVZwSnNPZjI5Vyt4QTBJRHFYWkRDQ0NkQkkxZ2plTDdob1ZhK2hQdVFMamo0TGdCMS9RMEZucUozRVJTc2g2d3hkNUpadzNDaS9XTk1zOWIrSTBhWGE5VXlHd1loZUM5cS9tNmVnMkQvTUsraU5PaGtnS3hDYnEzS0xvZ21kRzV5Y2ZHS2J5Q2JrZkxqQTJyOS9yQUNEQmhpMlA3NC9lZmR1bFBQRkZzRmNIVndlcHZ3UVdoNDVmZEJ0U3YxR3ZidTJCVkxUY2t2LzRJeWh1TzZuSHoreEM4ZkdSWnU1dXNLTVcreDFvV3dodEtsY2sxY2ZnTGpEYXJ0cXF6Y1JvZkRNYkQwdktnczQraVJ0anN3WVVmcFF3TEdwVTVaakhBNmNCOXlrcjdLWVBYcXlvaVkycXowQkZKSjJhMTZZb25GcjhwV1FsNkJqQlVLeUQ4aFlXWjdhZ2R5YkZrdU56NG15SmJsaW9HVlRBTVFoTVN6b1dwWU8vMjBmd3lkbHI2ejhJM3hNbk1UYVJPTHFybDYrZHQ4YW9oNWhGaHVUSVJOZ2NuZ3NtdG1LdkNDWVRBSmYwVlY2U0MwQmRiTHVrYWVMaEJQa29jWEZaQ0EzRVc1QnFZS1U5TWNOcXZBd0YzRVZBTmVOM3IxRkZxNFlCRG1DZTFLVmd6K0pnWWt0VHJkeWlhWDlBZUMzZ0MxaG4wUzRpc0FKUloydVlqZ1ZmRDNCZ0JFM01qWDIrdWpiYjRiL0xtSmI3OFlUc05STjdlTGRCU3BzaUkvb0VEMjVqbytQanZMQXZWL0F5YU1zaWQ0RnRuTGxSclVyckhzWXFBRDBCaXlwUE1CMHJmaG54QlJ0L0daY3VvZms5Z0xQV09PcGh1UVFqNGRxQVFBWEpYbWR2Z0FEQVZyK2VURnJKclBEZ1VCUmFYL2JwajYreFU3RzdaZWlSMXZmbXJxdDhBcXc2cXNaNUFma01WRXpvOVJNR3Y3ZFhtamNKaERFdXVSUHdMNHFGZ04xRFJDU0tiazBpWnVCbk8wSGpDNGpGVHFtMEsxZGRpRVFWWm9ZbVppMmsvcitHY1JtclNucGpYQjhoRXdtR1RPdHZrYmtaTUt1S25sdTArTEhwU2g4WmRGQnRhaWRRMGN3OUJxRU9aK295UzZXVVRIZmlFd1ZQcFZtQ05nQkMwVTZDSlcySFBtbG1udFVoeUF6VGQ4RWVJTXN2WWVrRzlTVXdUSlgrZmM2Mm9acFVwdHlTdzVtb2gvUmNIMk5sMXhNdUVsZTVtY0lRTUs2UXgwZUdKQWpEdVNPUUlFQURESWIzTFFWbTVtTDUrTjA4MXpiWURlREV6NzAyUTRPTFNnQU9UTXZvZC9TSGNBODhrZ01rQ05DUWdpeTBLNFdnZmRDVDVHZFM4cUx1TzJaQWNFR1lTcUt3aGoyZmUxczhKVTVzRHFwMFZmOCswSUFxUEw0TjhGNXBTUTRDdmhhNUJXaVFyRnVpajRXdGlLUUVaek45ZUhRV1VKaHJ6Q1RKTm1Nd0pJNDRkUmxBTTRRbVZVejFHZXlCdmNkbVliOEk4ZnpVVkdPazhlWmM1MkpaZ0FUZmw4QVRmTEhxRGllbjVMcVJZcE1VQ0t1OXI3VEd4U3NpQlkyY2ZNUEpwaFZqWDFTZVk5WTZJdmJxVlBweTQ1azlrUHRRUGordzNPTm9LTVE1cFlHaEw5QnNSQWZ5WDRkL0tMWjllczhSNm1yOU5PMkFnaTZ0WnNYdG9rQ01HMStxRGVuWkpqMGNVWGJBS1dRUmE1MVMyODB2UU5pdTBaNW1uN0hteXBsMDRtZWxTNFdsRGtIdXZJN0ZhL2ZkQldjeFVCWFg3MDBhN2UwcUdxd1RwMzFVcGxvNmNrWFhYQk9uaTF3S0MzaGdLaDVVaE9vY3VhNmJLU1pCS0taeURxSU5nQTV0d0tFM3hLaHYvN2NRbmNKWnpUa0E4Q0VQRlV3N3g5Y0RUQlN1WnR6VGJ3SnV3RkJWWFN0YzM1WkJFSXJLcnFHZUZ3ZUlXTUEwVGZEcFphQ3BBQ0pVQWNRRDltMFlXVWU3Zlp3bE5McDBTMXBVMDFpOEZtV3ZOVWN6dHdwVU0ySnlTMlJBV1BXUEJhT0IyNHc3c0lNalE4TVg1S0Q5VUNKeXpsV3ZpalV2NVJtS1ROSnNnWDNmQ2F2eUhST2xHNGtud2lvVFZDZzlLU1pORHVMZU1IMXJYY1ZmV3lrdUJSTEpzRVNWMmltbmY3a0d6S1ZSTVNSUUFwM1NvVUZHTnVwbmQxRGZuZmMwMVFxZlVEZ1o4Q25UUXd1N1V3RFlOQ2hxM0pjMis0UlVzYzZxZ2UyNDBoTGhnMXEzM3lzK3YzU0pUa2RvQXVlSE5CQ1NLM0E2NVRDSVdzRmU2QlpmL1dzWlNWUlljVkpkdFFIT2R4NWpycWNKVThlQkJCU0xBR1ROS0lMV0FOeEJBR214MktaYVBKTm1KeGc1eVZDSi9Vby9yL1BQc3dEZlBubW0vVVVtR2pOTjU5L2kvYjVxNWZycWZrVHZaS3dCVUF5QVJpR1RJbWRVYUtuMDZVVzZEdllJbHdxQ1JJd1hDREdLSnNJVTdFVDRrYm1DeUpZZk5TYU5yVnYvTXlYMFJJbCtWRDhSdkFVQ3VOQ3JnM0tTYkZtMmtvdUlRNzdrRWdKNE1oN2htSEpJV1dLRElKSER6aGhzVzE3NVRSRmc3RUJyZmFqaFlLZTFsU043cUFLSkI2Sk5waFZ1eVQveUF2MzVHYXBvTWZYeHBiRi9VQVI5aTVRa3VQbE5LdFdCczFVNE50RTVWVGtDMUEyNzVlbTNmQU1sS1Q2TnQ1Y1hYMFE1eTF5aFBrYTVSZmtXMEc4N0RZdFZCSE1JenBnWmx6cUtadURKMWdaRjVqaFY1WkQzVHFJdjFjeU43K2pEaWZtS2k3eW8wTFhSbFFBSzJkT05TWUpHTFhmYkZUNUNQT1pvZlhYYmxMV0paeHl3aE5MdEtoUm1WeHZ3SWFKVFZHZWNQcE84dlJxY2l1YVZvQjZtSmlmSERJeWRlaUQ3dlpvRW5oaTcvYTZxMzZhUDJDVXl5ekxnSkQwdDdHb3pDUnNJRmtNb0xOUzdOR016YXpmc0lpcUF6cVloejA5azRhVitVZFZaYmJyTlNzSkhDT05YKzd5TXNxQjNoOHZlOTlXSk56NC9RT09rUjMvRWJiTDhkSFJIdzhsc2V1WnZpaE1VY0N5TWI3cXNZbG5rOHFUT1lHY0NRYTZvOXM0djB2a2E3WXhiLzZJYmwxcTVabmh2dmxqZG9JVGV6Skx3S2hLbGZjaUpSSmU5U2hGV01SUGo0Z1hHdTJJb21jajB2T0k1MC9KNkRmSEw4MTZPaURuRU9BdHhTZTR4U2p6VUw5amhwdmo5VFJLQ29vOGRKWVB4b0dld3JhOGg3S3NOOGN2TlU4NmV6WEtNaUN5RitYQk1QTWQxRG9SNWlWNHl1TTF2YXlSRHNhRyt6Q0NOTm9rTG4yZ0lGN2luRmtvZTVVcGNVWm0wOVpRRHBmbHduVnBwdER6SmRybUtJZDc3dXR4bUhBWis1VTczVlRrd2E0QmJ1elgxbFd6TGM0bFRRSVNxNmdiRGh0U00yQm5RdS9yTzdiWDNkN3F0N3U5ekZzN1pBRFFZNm40L1Bob1lxNXRJU0lGRHhuSVFNeXpxeDM0WFB1a3orUXV4Q0ZRRWlxTURweFNDTGFkY0NiSU9RbFFJMUUxN21EZk1TeExYR0pZQ1ZnV2tHU2Rsc25MajhzWWlNZE85cWV0NWlWUE4zeHlVN3RaRVFhMDdsc09GSU5BWUprQ2piODVPaG9aSnFTWGlzcjR3ekZHMURqblJpR1draE92bURzN1Fjb216RTRrQkNhR0FlUjFRUElJTUJwc3dZNVBTQmhTOWVrRTRsMWxZQnhrQ1NIeXRuL1VWU3ZraldPclovVmJocEoveVFLZzBHRGFISWl6bGZuaDMzbjFPV2cyUUNVZ0owTmlLb0xZdzViQVpBQmhGalM5VVdidWo3VDNsbWlSUE80QWJaOEsrUTdlSWZIdTc4Z0FVMVFQUGdjODdldVdQRTFoVTl6M2dReHZ4RmJnQlpMSjBCb3JEREtxQ1phY3pYS0lSbm5SdEFlRmVhVHJyMVJESTBKM1FKWnNjbjBEaHBmZGdQT0pQNTVITVpGbnlLMDN2a2JnUWR3NkhJYlhSeWg1R25ZUWUwTDBlcjZ0N0xxWXhjL3BVaGZVNXByV2xscnIrT0hmTThzc1MwZU05MmxaVkhJMVlQd3ZwQUlyM1lxU01GTW41Zldac21nWkp3YjlWM0NROVo1UVc0MUJsaDd0Rmk0UVJYVXZCb0pJTXp3MFJkT1VMZ1dTbU1WazJvWnQ1NTJwSXZyTXhCZE5KMDNnZVBWYjdyUm04S3hWVWM1TjdRQjVOV1FzK0NOMkFhVW9ZVXJwbzVYSXlId3l1djlvRm8ybHd1SzErZkNkd1BoSzFVVDNGQTRkaldqQkZVMzZBRWNBaTNDUEl3YVFSZ2h6bFlTZEFLZEpvanpGY3ZoZ1diOFkwN2pIcW8weDlIeGdybXFrc1JkRzZQOGZURkU5bjQ3amdEODNQM2g5WHJ6L2xKUk1DREgyMU5URGpEb3FLWFVvN20yV3RocXZxY1JDSjhvSkM3b1VzSzdtZUFtSlJ1alc1TlVycWdjWG1tSnBOWW9aQUxSNFprVGhDbE11SDhiMkNNUUZyL2s0TG1vYitYTUs0VUZWK3JxT2VSZFZWSG9hcWFLOCt1NWZ6MDV2emZ2cnMvOXJWeVhwclFqSDV0SEg2WUVRYnNLK1lLZEJtdW84dlBzMkI3Qm9BZWk4OUV0YkY4MXFiWWlSUmxpbjZJRzVtOWt0WVp5Y2s1YyszcVlZR2hONVY4MWRIV1hPSEpFMklFeVRJWE5nU2pFbEtjQmNzVGRwU0tXQkNhVWVGQUhkc0g4eVV3RGpjbldjZE1MbTQrUUlTZEY1K2VZTk9HaXppNHp3cVRHMXVpaUwwQlN6dE9WeDU4aE1GRE16ZFN2N1VQaDZZcjRIY0dGUktWVTZIZ0Z5Y0RkSG5mb3VPOFA3ZnBUTkpnQVMwR2V6OURXVy9qME93b2s1aVFyZTNFc0N5TFhvZWFoNkhTTjJSNFBzU3ltNU5MNHBJMjYyNXFOQkcyVkc3ZzBielBHTEExL09mNEdoZlZVdTJsOUt2L3dGTjhMWHg4bHIrUW85Q3pzR3dSd3QxeFR5TVIrZmk1S1hpeGJBT1dpN0FXdVpob1BGeEFTL2tBTW1Wa1ozNitLQkV3cHV4VUlzU2gwdEFqMGpUeVJteXJUazJKOWU1UERyTWYwbi8vZ3YvOEJOL3AyUDJ0OUJPMTdGVFczd0IvNEpmdmd4L2ZDQm40Sy95RTkvLzZmMjhnakxwZUlYWDNQdDFOL2orZnE5UC94VGUza3N2ZnlUU1o5Ly9hMzUvMVl2ajJRdVZjZXlMaCsvZnZuL2ZpK1A4SXVwWC9HM3g3c205dmoxcS8rbmV5bG00Tlh0MlZzUUxBZ3ZoMkxqMFFhQ2FrR25LZE16TjUzY2FQVDQ5NmtmUVlFYlQxMDFXNjF0ZlcvR1ZZSTlxbWExS2pPWGgyZGxZZnowYi9FdWo1SnFvQkk5ZHRXOGZKdUwwS3FBYUpWY1cyOHlkUTBZWVN2M1NDMERUUFpLUTVjZ1ZRMkhNYUk0R0pLNS9UdWNFd0lVOEZYVlFzUVhmRWJnRGtPaVRPbVA5bjB5dmdFM2pFbnNBR05QWHVwSGJ3NEFkMXRkY3NMblp2TkxGQmluOE03NFgrYjQ2UEM1YXdNbml2c1FMeEVZMUpnSEJmY2tKNmNyK2kzeXFQcVVGUXhUb1NaSDFYY1huSjBmYUdSaFpxdXFYMExidWNPT2ovUWZWTCtPdjZBcTBweWMzcDcvNWN5OE8zdC9mZkw5aDdQTDIyZlJLbm9HTU9iUVlmSlJuSzNhTGtYais5OVNDZmI4ZjExM05UWjI0S3RvRFI5MlcyVXlDNFpsb29BRFdoa2JPOHV5c0NHUk9DQUJJYXN0V0hkSitQdFlIRnZOQWFvOS9ZYXRuTGhGd1Q1SWpFMnJscW9PeVlQSWVGdFRPN3ZmRWU5OG4vVWY5QXlvNzdZbE8yWjBiUWFwQzdneHFGTytOZ2NxTXd5MmJ2RDQ0TCs2TlR3RmpxR29semV1M0JLMEtZSHZTdUhnSkRtd0xNMWNpZ2loSFNQd3NwbEk0RUI0VklqVVlDRDNSWEtLR204V1pSdkU2TENQeUk2YU1yaWhVNWlXVURSRXNLWEltbXgxSHdRS2pVcU5GVnhTeVdkNnVqVlh0YTNNeWJKR1NrSGNDcThuUi9ncXo2ckN1RTd3UjhwQXRlWnViK1didTcybys0NFNMWkZLNWlRWjN2TUcyMERrWWxMQXNlaXVNaEZROHlKQWFpeWFuWmtscEFQOERGTUsxUjJIR2h3RUZ5ZnVjcHcrakIxdkNuRVFaYW5HWUkxQjRzdXk5UzNINFUzdGx0Zzh3RWlVdmtCNmR1b2dnMnJJamhMWml5c1JJRWtsRmVVa282c0FScEYwZ0ZEVnh4QmJOaTFaTm9Ubk56QXJPeTdIMURYQUZWN2FtVHNrdkppZTY1cUlBdUtleTZZU3pTRTFKYkRuU0x1bkxURXl0ZHM0aTlhUDlqa0E1VHR0MVdoVVp3a09rdERUV1dRT2JNTFpCeEJhaUxyaUV2VFNacExodXNKNkxEMkhBNVpYRDdpblQwd3lTczZGZU1ZRGg5S2pLQVNhazh3T05VYVQ2Y3o4QnRMc2ViWE5vek5FVWNSaEZvREZNMUNQNEJmWWxxYjN2bFc0blh4VHdzc1hSZFUrbVdsYmxQMUVxcGNUZ0NyRW9CQVRhamhGcnlJajdxWE1EbTRsb0VNUEEvUDlpb0xlc1JIM3RIRjE0ZUtQSGZuRjBicWhIdWp3aWpFc0ZoTStLa0ZlWmFocGVCWGluWVc1djhPcWtUNzF5azJoU1hjWFJZVitLQ3J3UWFkQTU3aDNiMGZhNTFCSEVjZkcyV2tBSEkvUVVld2kyYUpUSkV2L1V4RVlFUHVPNjR0b2ZZTnBxOGEzc3hXb0paMHJ1OXVYNFQyYko1dlRUR2t1Sythd1NjQ0RlYk9QTmlEVExzckVUUG5JR3gvakw4ZVlORVdWRnNkSFJ6cDR5bC9MWTlpOWMvN0YzNUpRK1JqdlRCMDkra0R1b3VlK2hXQ0FzMVU4amhBOHBIZmNZcUdBMUhkOXM5MXNNTUxXR2FBdHFRSGlmSVZKTDdBR0svVm1SSXBucHpJeGpxT0hNNkV5VzRjN05kdk9TamRlRjVVbWc0VVorRC9wREF6d3Y5d1orMlJldnVtdlIzTFpCTmU4V05td2V2RmIvQmVVbGdQYkNLTm9NcXhZaXFmVmZxMGQ2SG01eEJaMCtPRXVyZTNUT1A1MVRCODR6c3JOUkNyck9CMUNIV042SlFiZXVVTU0zTmM5Wm4ralpzWlQzQ1Yybmp2Ryt6aGxtLytidmFQZGJSdEh2Z3FyRFpBV3NHekp0dXhZUlhCd2s3UWJiR0liZG5MRklRb01TcUpzSWJLa2s2aTBidE4zUDRoZkZ2WGgyTjM5Y2RzNy85aHV4T0Z3T0J5U3crRndSa3BsU2V0UUZabDNPaFdiQVprWVRHc1FiamV6KzFROHdLQmhTVnVTS2trRTJ2OVdZOWhtdXpaVnZ0b055ZUpJNHQ4aVBwbGdSaGNqdTFoVUpKRGR0d2RwVkNKTnBOaWc1MUgyQms4T0FDdVV3bEtpVGFLaXJLTzBJQ1orZm40amFvSWdNRysrNnZUQWxISytHN2xNQjk1NUtWa0tjV1JBdWJJcUVqdXQ1ZHVKSUJVSHplS0kwcHhTUGo4dzFVVmhEYll0d1ZpNmVlY0QvakZCNk1QaXNpa3Vkc3o3VGNhcmN6M2xiRzhCMjQ5MmYwRGlvVW96SjlMYlBLR01GVjQ3a3oxdVJaNVBTMER0NHZNRElXL3NFQjFuTlB3RFUwTElDRURKdDV0eGpmT3NyR1l0U0F6ODNUbXlzeU9jS050eEJxRG4rYUdQdDBCcmRWdjkxc0NVWDN3dG5UZ2pOR2pxME96V29MZjNvTlJiUFhOM3lSVUpYSHFyVjRPcGtaRVZ2R2V0VVV2WFdyb3VzTVBJVzdLNm9wVXpWZGZyQ0s0WmhScktDWDVCUEtsVG9GL1hDUEt5YnlYSnZzbzRUbVlKSXJuMElFa1J6a0t0UHBPN1RDOUxDNXM4dGVMUWpBenlDeVM4aTM1TVUxVGEwT1g1S1dzZWUyWXhEUmVCU1pBazNuRGh4VjNCMDdnUzBJRHR6Q3pLR251bTdDTHVERWE2SG5rVnJJVjJTK3htaW9uby8zaCtPK2lyRjlQUDZvZjdUMVpJakNPL2dRWFJ3MDFoOGlPSkREb1liZUlBWXBSMlVpZnhZNXlxbE1nTmpOdGJ1QW1zRU1iK1AxR1Nrc3UzWjkwS24velFOY0VGZ2JxRnNSWHlOSEpFU2tLNFFTYlliRlhhak5TWXlwcmdjS1RuSnJBVXZ0bVFrQ2NCdEZIQTdab3dqdHRQbVkyU0VHRkVJb3ZTQmlTOHpNY0dCWnQydXU0NGE1amdFb1I2MXU2MmgwMG8rWks4bzdzSmNnTkR1RUt1YW05TjhEc0tObFlvT2g3NzRXcEpIN0NoTkYzbVI5S2duYTVOOE1KTlUyODZ0aDkydUdFalgwNVV4R1Y3Zm5WNXZWZ3U3c1ozOTR2bHgrdWJxL01PM3NTZE5xRkc1SVlrZm1tMGd1K0JCL0FHcU4rQXBaelEyclB4WXZGNU9yKzBGUEQ0bmo0VG9NRnZLZmFMbSt2bCtQN3U5L01TK0h2ZytlL1pSVGpMUDNWKzhwWitBTnk3QzZncDZJRVRIVmdXTDltWmpuZmZBRkRYZ0hTZDdHQlNRUXg0dzlQNTNYSnlmL3ZoYWk1QnhHSXpmRmZvbzZXYy9NTlNnSXIrRFN4RjcvWjN2ZU0xa2JPT2dLWGMrUnRFOGx2eXlEa0FvSzgrQm14MThYd1pLZStycFlBMzU4QlNadFBKcDBiY0JlaFhjYjhCcXJjYmxNS1FWckhYOEhzZng1dDR2b2ZyaC9BZGlQeGNKQXp5QzFnbEtPYVpUcFkwNSswTHdBbFFYWEQ2WU5KWiszaktFYnpqLzNQZ2NPMGJNSm10TzhZMkQ1dEVwaGs5N1dtdlpoREw3YUdBcHdpalpvN01XVGNNWlpsQytpOVpCQUwvR1IyM0J2eC9RditKQ2MzNytORlBVdnc1U3R6ems3Y0VneGh2OEVKRFJLbWhEbDRBL1BJRVRyL1Q3QWduK3ZzZnArOE9XeGpJTFU5M1FQOHJnNHFtZVoyYjZmankrdmhxdCtOOEdsNU9QMC8rekVwMDRINmZzeVJBYWFxbXo4N2VyWDZCa21mZlFjZHM5QnozcjdUVDUwY0dRaXZleHNqa1NiNnVaL2tuaC85aGdra1VraG5OSG8xUElqeEgwTjJPZWNKQkUrQ0VYaCtTTkJ5czl5cmpKM2JpSWwwVXlDeGtxQUlBdzJTRjhJeDhMNEZYc0toMlZzS2t2NHFLMTZHaHhxUGsrUEU1ak84SGlpbjkvdGZMNks4a21vRGtuS1dtdjV6b2ZhS2EwdmlHWTNZRUt3anNYeTZPUUx5ZU1jSGR4WXgvRENNWFVmZ3dDNEwvUGxITE5Ra3ZDMUtFYTBRT3huSGFLY2dkQTE0Zy9EOHFlMExXc3RpRkdDMXdBakZhY1IvQUpBb0NQMXpka3pKVGlBVk1zRS9kT1puYkFSWFVlUkc2UmpBMkVEdnJteUo3am1MUTRWM256OGROTUtCa2tOVmxjdWlXRjBmdUxXSFVCb1Y0RmdXK3N6WEJEQ1l3Q0doY0l5NXp2RjlGd2FFSmI2UStIdG5MdzBYaE9IRTRmRGtpa05LU3hPdlRwMVhaaHBzYlRJQzhJWUxRN1VOb1E4ZldvV3RyM21Db28xRzNqNXllYXlEZDFYcTlyZ1pkNUxpOVVjL3BkMGVHQmlIcUczM29EWHAxdUpHVElHeUN2dGJ6SURyVDNLN1JNd3h2b0krNnc1SGo5RFhIc1kwell6QTgwMFplMS9NUWRNK1EweC9ZYmsvckdVNFhqWkNtOTN0dURXcHFIVEZCenpCY1F4djFERzlnRzZNK2RFZG5BN2MvR3JydWNHakFVUjk1eG5EbzJhN2pRQmYydEM3cUdscHZhRGpJUTJldTBiWFpBWUJQSGpKb1VZb25OR1cyQ1R4WU9JcFF1enpiNDI3ODhDa3RBZkIvVStSa2lZKzNGMUdJMFZkYzRMdVhma3FpTERhQnJtbDY0VUNaaGVQMFBrVkp1U0RkcGc0T1VoTThQTzZRay9iSER2RTZvcE5CdWlZQXdyQlhhRGlPM0hIMTY0NWtDaEZpdnhaS1pMeSt6QkkvWEMyY05YS3pmSTI0cGhFTTZPY3JuZ3hScXB0dlk0WFc3MUN5S1pXTHFiYVExeG41VjdmcXlMOGpaK2YrcXZ0bVh6SDhQL1ZLcXFWSUxXOHA4ZzlIY1JSRXErMGZhR3NDdVhHZXNiNWM2UXZ5Vit0Y2Zkd1Y1TnY0M3BIZFpjQXVGS3V2Ym96ODUyL2dLcGN3a2xnN3A4MzJjOUw4amxUREhMYTF0cUc2eVBaaHFPcTZtb3dxU0daWkVQQlYyRkt1dlVtRVovU2hyc3lkNXRranBzb2tDdWRSaEhkS2ZLbThiaW9CY1cwQUhrN0orZCtHNmZxMEJVNVY1L1N4Q0FlVFZWb1I0WmZ5V1B3R1BrRG42UXRNWEJxdEYyS2ZlY2RUYi9JeXZPK0JOK0RoQWFnZTZFUXhsdm5ZUWRoaGFadnlwUTA4VnF3bmhjd1krUkgwWWpyNzEvWGtFeUJta0JvZ0p3WjdtMUdaWU5MbVhpV28zTVRPSWxSWVBwWis2S0t2NTIvWndkOVNUbWJUeStWa2ZIdGxLZFIwWlNtcXBRQkxzYXpRVXQ2OWE4WmhLU2ZmeFY4UHF2NzRvenFEZkM5bnA2V2NDRUJMQWVmNUFWN0x6KzJOSEN3YWI1Yk01cmE4bUYrTjc2YnpjMHNoZmg0SDFwcGZ6VzZ1TDhhTGMwdlJxNVdxVEpMNHpMWmVlU0oxU0lJSUVvRzJuYTRQcVpCa1ladGJzdmcrOVZ3Ulh6cmR4WGlVNkNKT1RoK1RxRzVsSmpmYWMrVFZMbkdrY0FieDJoVGFVN3U2Y1BIbUtmTW0wOHVyUlMwRiticlFvTmRwN1ZjVXZpYUZVUC9aaXQyZnJkajcyWXI5bjYxb3ZGcXhMSnpTaUhBTDVqRlNRWFc3UDlDMlNUSU8zVi80N3luZkJTbFVETlAwUzVTNCs0UklHR1gvUmpTUHB4K1hWNVB4aDV1cnkwYnhyMWw5WkNSM040dFhrWVRSZmh3RlMzRWpEbUpja0xBVUxSTmx2QldUdzI3UFpkckhyR0t5YU1CUU5KWTFZTkhMYUxpdGY1WkVOaXFSeU41SFhLSUFiaGMwSHB3SkRCa21Sb2tmdVUybHY0R3BTRWdOZ2loYzhUQmlJanN3TSthejBBWnhRcE5Yc1dlMUxPTG10MmhqK3p0dkkrNDNVcnB2RWpRTTVHSVNnU3hONzdpVGxLUURrcFVZK2tHV29BSkFxUmZvYStHUVUxYUpxdEt0QW5sVDRWOVZwKzZyMkp2cXIxNWtXc1QxN0M4MFhOMi84WEJWcjh0bGFoUEVjbXFYMm1VcENzRDNIeVVWbkVYbktaYzhSMEcyUWJmNXNiVnBIU200SmtobnY3d09WVE02dFNDOFB0TnRSV2pHZWhTeXBsc0huV1kyaGExdmhpblB6RWxqWDFPSHF1Q05CTHdHS3ZjY2IySzFEdDNySlBFYWRKRHF6b28xakhlNCswbHBPQTkxUDluOVdBZHZJeGVaUUJzYVJyWDlacWIvRkJrbG04a2huQ1NaRXkvOWhBczI1ZFZGQVAzTkhUZGZDOU45eFpvSTlzaG9VTFZySEczTk9NYUdJVm04QUh2Y25ETmZwa0VGbGpKSDBQMmMrQmhOUTBlNnM2OWZGc1RrTHkySU9FcUlJY0ZTemo3NU9ScWxwVHhUYzc1aTZpMUYyRklVa3h0TmxCLy9DUUFBLy8vNUF3aUwvdlFIQUE9PQ== +kind: Secret +metadata: + labels: + name: test-secret + owner: helm + status: deployed + version: "1" + name: sh.helm.release.v1.test +type: helm.sh/release.v1 From ff481059561ba05afd96376ed96a9a1d9a14c670 Mon Sep 17 00:00:00 2001 From: Arvind Thirumurugan Date: Thu, 2 Feb 2023 18:56:44 -0800 Subject: [PATCH 03/42] fix UT --- pkg/controllers/work/apply_controller_test.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/pkg/controllers/work/apply_controller_test.go b/pkg/controllers/work/apply_controller_test.go index c17af0072..dd51ce86a 100644 --- a/pkg/controllers/work/apply_controller_test.go +++ b/pkg/controllers/work/apply_controller_test.go @@ -349,13 +349,18 @@ func TestApplyUnstructured(t *testing.T) { specHashFailObj.Object["test"] = math.Inf(1) utils.GetObjectFromManifest("../../../test/integration/manifests/resources/test-large-secret.yaml", &largeSecret) + largeSecret.ObjectMeta = metav1.ObjectMeta{ + OwnerReferences: []metav1.OwnerReference{ + ownerRef, + }, + } rawSecret, _ := json.Marshal(largeSecret) var largeObj unstructured.Unstructured largeObj.UnmarshalJSON(rawSecret) // add check to see if we cannot retrieve object applyDynamicClient := fake.NewSimpleDynamicClient(runtime.NewScheme()) - applyDynamicClient.PrependReactor("apply", "*", func(action testingclient.Action) (handled bool, ret runtime.Object, err error) { + applyDynamicClient.PrependReactor("patch", "*", func(action testingclient.Action) (handled bool, ret runtime.Object, err error) { return true, largeObj.DeepCopy(), nil }) From 8b10d12fb3a0f80f26c2b1e78218ada6139fd4f0 Mon Sep 17 00:00:00 2001 From: Arvind Thirumurugan Date: Fri, 3 Feb 2023 10:48:38 -0800 Subject: [PATCH 04/42] fix lint --- pkg/controllers/work/apply_controller_test.go | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/pkg/controllers/work/apply_controller_test.go b/pkg/controllers/work/apply_controller_test.go index dd51ce86a..29108e3fc 100644 --- a/pkg/controllers/work/apply_controller_test.go +++ b/pkg/controllers/work/apply_controller_test.go @@ -30,7 +30,6 @@ import ( "github.com/stretchr/testify/assert" "go.uber.org/atomic" appsv1 "k8s.io/api/apps/v1" - corev1 "k8s.io/api/core/v1" v1 "k8s.io/api/core/v1" apierrors "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/api/meta" @@ -81,7 +80,7 @@ var ( testManifest = workv1alpha1.Manifest{RawExtension: runtime.RawExtension{ Raw: rawTestDeployment, }} - largeSecret corev1.Secret + largeSecret v1.Secret ) // This interface is needed for testMapper abstract class. @@ -356,7 +355,7 @@ func TestApplyUnstructured(t *testing.T) { } rawSecret, _ := json.Marshal(largeSecret) var largeObj unstructured.Unstructured - largeObj.UnmarshalJSON(rawSecret) + _ = largeObj.UnmarshalJSON(rawSecret) // add check to see if we cannot retrieve object applyDynamicClient := fake.NewSimpleDynamicClient(runtime.NewScheme()) From 16de59e1b704658af09486a40c114af0639e1384 Mon Sep 17 00:00:00 2001 From: Arvind Thirumurugan Date: Sat, 4 Feb 2023 19:26:04 -0800 Subject: [PATCH 05/42] Address comments --- pkg/controllers/work/apply_controller.go | 50 +++++++++++-------- pkg/controllers/work/apply_controller_test.go | 8 ++- pkg/controllers/work/patch_util.go | 24 +++++---- 3 files changed, 50 insertions(+), 32 deletions(-) diff --git a/pkg/controllers/work/apply_controller.go b/pkg/controllers/work/apply_controller.go index ef4910f01..b78221309 100644 --- a/pkg/controllers/work/apply_controller.go +++ b/pkg/controllers/work/apply_controller.go @@ -346,15 +346,6 @@ func (r *ApplyWorkReconciler) applyUnstructured(ctx context.Context, gvr schema. Name: manifestObj.GetName(), Namespace: manifestObj.GetNamespace(), } - // Marshaling adds about 100-200 bytes to the object's actual size - marshaledObj, marshalErr := json.Marshal(manifestObj) - if marshalErr != nil { - return nil, ManifestNoChangeAction, marshalErr - } - if len(marshaledObj) > (TotalAnnotationSizeLimitB - len(manifestHashAnnotation) - len(lastAppliedConfigAnnotation) - manifestHashLength) { - klog.V(2).InfoS("Size of manifest object is greater than 262,013 bytes", "Name", manifestObj.GetName(), "size of marshaled object", len(marshaledObj), "kind", manifestObj.GetKind()) - return r.applyObject(ctx, gvr, manifestObj) - } // compute the hash without taking into consider the last applied annotation if err := setManifestHashAnnotation(manifestObj); err != nil { @@ -363,10 +354,21 @@ func (r *ApplyWorkReconciler) applyUnstructured(ctx context.Context, gvr schema. // extract the common create procedure to reuse var createFunc = func() (*unstructured.Unstructured, applyAction, error) { - // record the raw manifest with the hash annotation in the manifest - if err := setModifiedConfigurationAnnotation(manifestObj); err != nil { + lastAppliedConfig, err := getModifiedConfigurationAnnotation(manifestObj) + if err != nil { return nil, ManifestNoChangeAction, err } + // length of lastAppliedConfiguration accounts for the length of manifest hash and the length of the manifest hash annotation key + // since we added the annotation to the object. + if len(lastAppliedConfig) > (TotalAnnotationSizeLimitB - len(lastAppliedConfigAnnotation)) { + // Add log stating the object doesn't have the last applied configuration. + return r.applyObject(ctx, gvr, manifestObj) + } else { + // record the raw manifest with the hash annotation in the manifest + if err := setModifiedConfigurationAnnotation(manifestObj, lastAppliedConfig); err != nil { + return nil, ManifestNoChangeAction, err + } + } actual, err := r.spokeDynamicClient.Resource(gvr).Namespace(manifestObj.GetNamespace()).Create( ctx, manifestObj, metav1.CreateOptions{FieldManager: workFieldManagerName}) if err == nil { @@ -400,7 +402,23 @@ func (r *ApplyWorkReconciler) applyUnstructured(ctx context.Context, gvr schema. // We only try to update the object if its spec hash value has changed. if manifestObj.GetAnnotations()[manifestHashAnnotation] != curObj.GetAnnotations()[manifestHashAnnotation] { - return r.patchCurrentResource(ctx, gvr, manifestObj, curObj) + // we need to merge the owner reference between the current and the manifest since we support one manifest + // belong to multiple work so it contains the union of all the appliedWork + manifestObj.SetOwnerReferences(mergeOwnerReference(curObj.GetOwnerReferences(), manifestObj.GetOwnerReferences())) + lastAppliedConfig, err := getModifiedConfigurationAnnotation(manifestObj) + if err == nil { + return nil, ManifestNoChangeAction, err + } + if len(lastAppliedConfig) > (TotalAnnotationSizeLimitB - len(lastAppliedConfigAnnotation)) { + // Add log stating the object doesn't have the last applied configuration. + return r.applyObject(ctx, gvr, manifestObj) + } else { + // record the raw manifest with the hash annotation in the manifest + if err := setModifiedConfigurationAnnotation(manifestObj, lastAppliedConfig); err != nil { + return nil, ManifestNoChangeAction, err + } + return r.patchCurrentResource(ctx, gvr, manifestObj, curObj) + } } return curObj, ManifestNoChangeAction, nil @@ -430,14 +448,6 @@ func (r *ApplyWorkReconciler) patchCurrentResource(ctx context.Context, gvr sche klog.V(2).InfoS("manifest is modified", "gvr", gvr, "manifest", manifestRef, "new hash", manifestObj.GetAnnotations()[manifestHashAnnotation], "existing hash", curObj.GetAnnotations()[manifestHashAnnotation]) - - // we need to merge the owner reference between the current and the manifest since we support one manifest - // belong to multiple work so it contains the union of all the appliedWork - manifestObj.SetOwnerReferences(mergeOwnerReference(curObj.GetOwnerReferences(), manifestObj.GetOwnerReferences())) - // record the raw manifest with the hash annotation in the manifest - if err := setModifiedConfigurationAnnotation(manifestObj); err != nil { - return nil, ManifestNoChangeAction, err - } // create the three-way merge patch between the current, original and manifest similar to how kubectl apply does patch, err := threeWayMergePatch(curObj, manifestObj) if err != nil { diff --git a/pkg/controllers/work/apply_controller_test.go b/pkg/controllers/work/apply_controller_test.go index 29108e3fc..edb071f30 100644 --- a/pkg/controllers/work/apply_controller_test.go +++ b/pkg/controllers/work/apply_controller_test.go @@ -357,6 +357,9 @@ func TestApplyUnstructured(t *testing.T) { var largeObj unstructured.Unstructured _ = largeObj.UnmarshalJSON(rawSecret) + largeObjSpecHash, _ := computeManifestHash(&largeObj) + largeObj.SetAnnotations(map[string]string{manifestHashAnnotation: largeObjSpecHash}) + // add check to see if we cannot retrieve object applyDynamicClient := fake.NewSimpleDynamicClient(runtime.NewScheme()) applyDynamicClient.PrependReactor("patch", "*", func(action testingclient.Action) (handled bool, ret runtime.Object, err error) { @@ -457,7 +460,7 @@ func TestApplyUnstructured(t *testing.T) { recorder: utils.NewFakeRecorder(1), }, workObj: &largeObj, - resultSpecHash: "", + resultSpecHash: largeObjSpecHash, resultAction: ManifestAppliedAction, resultErr: nil, }, @@ -925,7 +928,8 @@ func createObjAndDynamicClient(rawManifest []byte) (*unstructured.Unstructured, _ = uObj.UnmarshalJSON(rawManifest) validSpecHash, _ := computeManifestHash(&uObj) uObj.SetAnnotations(map[string]string{manifestHashAnnotation: validSpecHash}) - _ = setModifiedConfigurationAnnotation(&uObj) + lastAppliedConfig, _ := getModifiedConfigurationAnnotation(&uObj) + _ = setModifiedConfigurationAnnotation(&uObj, lastAppliedConfig) dynamicClient := fake.NewSimpleDynamicClient(runtime.NewScheme()) dynamicClient.PrependReactor("get", "*", func(action testingclient.Action) (handled bool, ret runtime.Object, err error) { return true, uObj.DeepCopy(), nil diff --git a/pkg/controllers/work/patch_util.go b/pkg/controllers/work/patch_util.go index 6964d731a..5b1951014 100644 --- a/pkg/controllers/work/patch_util.go +++ b/pkg/controllers/work/patch_util.go @@ -76,11 +76,22 @@ func threeWayMergePatch(currentObj, manifestObj client.Object) (client.Patch, er return client.RawPatch(patchType, patchData), nil } +func getModifiedConfigurationAnnotation(obj runtime.Object) (string, error) { + //TODO: see if we should use something like json.ConfigCompatibleWithStandardLibrary.Marshal to make sure that + // the produced json format is more three way merge friendly + + // Marshaling adds about 100-200 bytes to the object's actual size + lastAppliedConfiguration, err := json.Marshal(obj) + if err != nil { + return "", err + } + return string(lastAppliedConfiguration), nil +} + // setModifiedConfigurationAnnotation serializes the object into byte stream. // If `updateAnnotation` is true, it embeds the result as an annotation in the // modified configuration. -func setModifiedConfigurationAnnotation(obj runtime.Object) error { - var modified []byte +func setModifiedConfigurationAnnotation(obj runtime.Object, lastAppliedConfig string) error { annotations, err := metadataAccessor.Annotations(obj) if err != nil { return fmt.Errorf("cannot access metadata.annotations: %w", err) @@ -97,15 +108,8 @@ func setModifiedConfigurationAnnotation(obj runtime.Object) error { } else { _ = metadataAccessor.SetAnnotations(obj, annotations) } - - //TODO: see if we should use something like json.ConfigCompatibleWithStandardLibrary.Marshal to make sure that - // the produced json format is more three way merge friendly - modified, err = json.Marshal(obj) - if err != nil { - return err - } // set the last applied annotation back - annotations[lastAppliedConfigAnnotation] = string(modified) + annotations[lastAppliedConfigAnnotation] = lastAppliedConfig return metadataAccessor.SetAnnotations(obj, annotations) } From 377e696ebe14e348f76ba56ba267cdaf34cb7b91 Mon Sep 17 00:00:00 2001 From: Arvind Thirumurugan Date: Sat, 4 Feb 2023 19:52:42 -0800 Subject: [PATCH 06/42] fix UT, add comments --- pkg/controllers/work/apply_controller.go | 16 ++++++++++------ pkg/controllers/work/apply_controller_test.go | 2 +- pkg/controllers/work/patch_util.go | 7 ++++--- 3 files changed, 15 insertions(+), 10 deletions(-) diff --git a/pkg/controllers/work/apply_controller.go b/pkg/controllers/work/apply_controller.go index b78221309..44eaa223c 100644 --- a/pkg/controllers/work/apply_controller.go +++ b/pkg/controllers/work/apply_controller.go @@ -339,7 +339,7 @@ func (r *ApplyWorkReconciler) decodeManifest(manifest workv1alpha1.Manifest) (sc return mapping.Resource, unstructuredObj, nil } -// Determines if an unstructured manifest object can & should be applied. If so, it applies (creates) the resource on the cluster. +// applyUnstructured determines if an unstructured manifest object can & should be applied. If so, it applies/creates the resource on the cluster based on it's size. func (r *ApplyWorkReconciler) applyUnstructured(ctx context.Context, gvr schema.GroupVersionResource, manifestObj *unstructured.Unstructured) (*unstructured.Unstructured, applyAction, error) { manifestRef := klog.ObjectRef{ @@ -354,14 +354,15 @@ func (r *ApplyWorkReconciler) applyUnstructured(ctx context.Context, gvr schema. // extract the common create procedure to reuse var createFunc = func() (*unstructured.Unstructured, applyAction, error) { - lastAppliedConfig, err := getModifiedConfigurationAnnotation(manifestObj) + lastAppliedConfig, err := computeModifiedConfigurationAnnotation(manifestObj) if err != nil { return nil, ManifestNoChangeAction, err } // length of lastAppliedConfiguration accounts for the length of manifest hash and the length of the manifest hash annotation key // since we added the annotation to the object. if len(lastAppliedConfig) > (TotalAnnotationSizeLimitB - len(lastAppliedConfigAnnotation)) { - // Add log stating the object doesn't have the last applied configuration. + klog.V(2).InfoS("Size of last applied configuration is greater than 262,102 bytes hence it doesn't have the last applied configuration annotation", + "gvr", gvr, "manifest", manifestRef, "length of last applied configuration", len(lastAppliedConfig)) return r.applyObject(ctx, gvr, manifestObj) } else { // record the raw manifest with the hash annotation in the manifest @@ -405,12 +406,13 @@ func (r *ApplyWorkReconciler) applyUnstructured(ctx context.Context, gvr schema. // we need to merge the owner reference between the current and the manifest since we support one manifest // belong to multiple work so it contains the union of all the appliedWork manifestObj.SetOwnerReferences(mergeOwnerReference(curObj.GetOwnerReferences(), manifestObj.GetOwnerReferences())) - lastAppliedConfig, err := getModifiedConfigurationAnnotation(manifestObj) - if err == nil { + lastAppliedConfig, err := computeModifiedConfigurationAnnotation(manifestObj) + if err != nil { return nil, ManifestNoChangeAction, err } if len(lastAppliedConfig) > (TotalAnnotationSizeLimitB - len(lastAppliedConfigAnnotation)) { - // Add log stating the object doesn't have the last applied configuration. + klog.V(2).InfoS("Size of last applied configuration is greater than 262,102 bytes hence it doesn't have the last applied configuration annotation", + "gvr", gvr, "manifest", manifestRef, "length of last applied configuration", len(lastAppliedConfig)) return r.applyObject(ctx, gvr, manifestObj) } else { // record the raw manifest with the hash annotation in the manifest @@ -424,6 +426,7 @@ func (r *ApplyWorkReconciler) applyUnstructured(ctx context.Context, gvr schema. return curObj, ManifestNoChangeAction, nil } +// applyObject uses dynamic client's apply to apply the manifest. func (r *ApplyWorkReconciler) applyObject(ctx context.Context, gvr schema.GroupVersionResource, manifestObj *unstructured.Unstructured) (*unstructured.Unstructured, applyAction, error) { manifestRef := klog.ObjectRef{ @@ -435,6 +438,7 @@ func (r *ApplyWorkReconciler) applyObject(ctx context.Context, gvr schema.GroupV klog.ErrorS(err, "failed to apply object", "gvr", gvr, "manifest", manifestRef) return nil, ManifestNoChangeAction, err } + klog.V(2).InfoS("manifest apply succeeded", "gvr", gvr, "manifest", manifestRef) return manifestObj, ManifestAppliedAction, nil } diff --git a/pkg/controllers/work/apply_controller_test.go b/pkg/controllers/work/apply_controller_test.go index edb071f30..7e009ea14 100644 --- a/pkg/controllers/work/apply_controller_test.go +++ b/pkg/controllers/work/apply_controller_test.go @@ -928,7 +928,7 @@ func createObjAndDynamicClient(rawManifest []byte) (*unstructured.Unstructured, _ = uObj.UnmarshalJSON(rawManifest) validSpecHash, _ := computeManifestHash(&uObj) uObj.SetAnnotations(map[string]string{manifestHashAnnotation: validSpecHash}) - lastAppliedConfig, _ := getModifiedConfigurationAnnotation(&uObj) + lastAppliedConfig, _ := computeModifiedConfigurationAnnotation(&uObj) _ = setModifiedConfigurationAnnotation(&uObj, lastAppliedConfig) dynamicClient := fake.NewSimpleDynamicClient(runtime.NewScheme()) dynamicClient.PrependReactor("get", "*", func(action testingclient.Action) (handled bool, ret runtime.Object, err error) { diff --git a/pkg/controllers/work/patch_util.go b/pkg/controllers/work/patch_util.go index 5b1951014..4084df488 100644 --- a/pkg/controllers/work/patch_util.go +++ b/pkg/controllers/work/patch_util.go @@ -76,7 +76,8 @@ func threeWayMergePatch(currentObj, manifestObj client.Object) (client.Patch, er return client.RawPatch(patchType, patchData), nil } -func getModifiedConfigurationAnnotation(obj runtime.Object) (string, error) { +// computeModifiedConfigurationAnnotation is used to serialize the object into a byte stream. +func computeModifiedConfigurationAnnotation(obj runtime.Object) (string, error) { //TODO: see if we should use something like json.ConfigCompatibleWithStandardLibrary.Marshal to make sure that // the produced json format is more three way merge friendly @@ -88,8 +89,8 @@ func getModifiedConfigurationAnnotation(obj runtime.Object) (string, error) { return string(lastAppliedConfiguration), nil } -// setModifiedConfigurationAnnotation serializes the object into byte stream. -// If `updateAnnotation` is true, it embeds the result as an annotation in the +// setModifiedConfigurationAnnotation is used to set the serialized object as a byte stream as the last applied +//configuration annotation. If `updateAnnotation` is true, it embeds the result as an annotation in the // modified configuration. func setModifiedConfigurationAnnotation(obj runtime.Object, lastAppliedConfig string) error { annotations, err := metadataAccessor.Annotations(obj) From f88d400b6d4e3eb9ad5e0a0b13dbd16faa6bfe35 Mon Sep 17 00:00:00 2001 From: Arvind Thirumurugan Date: Sat, 4 Feb 2023 20:12:57 -0800 Subject: [PATCH 07/42] lint fix --- pkg/controllers/work/apply_controller.go | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/pkg/controllers/work/apply_controller.go b/pkg/controllers/work/apply_controller.go index 44eaa223c..ed8f2e8c2 100644 --- a/pkg/controllers/work/apply_controller.go +++ b/pkg/controllers/work/apply_controller.go @@ -51,8 +51,6 @@ import ( const ( workFieldManagerName = "work-api-agent" TotalAnnotationSizeLimitB int = 256 * (1 << 10) // 256 kB - // The manifest hash of 32 bytes when converted a string becomes 64 characters in length - manifestHashLength int = 64 ) // ApplyWorkReconciler reconciles a Work object @@ -364,11 +362,10 @@ func (r *ApplyWorkReconciler) applyUnstructured(ctx context.Context, gvr schema. klog.V(2).InfoS("Size of last applied configuration is greater than 262,102 bytes hence it doesn't have the last applied configuration annotation", "gvr", gvr, "manifest", manifestRef, "length of last applied configuration", len(lastAppliedConfig)) return r.applyObject(ctx, gvr, manifestObj) - } else { - // record the raw manifest with the hash annotation in the manifest - if err := setModifiedConfigurationAnnotation(manifestObj, lastAppliedConfig); err != nil { - return nil, ManifestNoChangeAction, err - } + } + // record the raw manifest with the hash annotation in the manifest + if err := setModifiedConfigurationAnnotation(manifestObj, lastAppliedConfig); err != nil { + return nil, ManifestNoChangeAction, err } actual, err := r.spokeDynamicClient.Resource(gvr).Namespace(manifestObj.GetNamespace()).Create( ctx, manifestObj, metav1.CreateOptions{FieldManager: workFieldManagerName}) @@ -414,13 +411,12 @@ func (r *ApplyWorkReconciler) applyUnstructured(ctx context.Context, gvr schema. klog.V(2).InfoS("Size of last applied configuration is greater than 262,102 bytes hence it doesn't have the last applied configuration annotation", "gvr", gvr, "manifest", manifestRef, "length of last applied configuration", len(lastAppliedConfig)) return r.applyObject(ctx, gvr, manifestObj) - } else { - // record the raw manifest with the hash annotation in the manifest - if err := setModifiedConfigurationAnnotation(manifestObj, lastAppliedConfig); err != nil { - return nil, ManifestNoChangeAction, err - } - return r.patchCurrentResource(ctx, gvr, manifestObj, curObj) } + // record the raw manifest with the hash annotation in the manifest + if err := setModifiedConfigurationAnnotation(manifestObj, lastAppliedConfig); err != nil { + return nil, ManifestNoChangeAction, err + } + return r.patchCurrentResource(ctx, gvr, manifestObj, curObj) } return curObj, ManifestNoChangeAction, nil From 332e78a239c168ca103ced642504a834e1251de8 Mon Sep 17 00:00:00 2001 From: Arvind Thirumurugan Date: Sat, 4 Feb 2023 20:18:15 -0800 Subject: [PATCH 08/42] make reviewable --- pkg/controllers/work/patch_util.go | 2 +- pkg/utils/test_util.go | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/pkg/controllers/work/patch_util.go b/pkg/controllers/work/patch_util.go index 4084df488..965475f5d 100644 --- a/pkg/controllers/work/patch_util.go +++ b/pkg/controllers/work/patch_util.go @@ -90,7 +90,7 @@ func computeModifiedConfigurationAnnotation(obj runtime.Object) (string, error) } // setModifiedConfigurationAnnotation is used to set the serialized object as a byte stream as the last applied -//configuration annotation. If `updateAnnotation` is true, it embeds the result as an annotation in the +// configuration annotation. If `updateAnnotation` is true, it embeds the result as an annotation in the // modified configuration. func setModifiedConfigurationAnnotation(obj runtime.Object, lastAppliedConfig string) error { annotations, err := metadataAccessor.Annotations(obj) diff --git a/pkg/utils/test_util.go b/pkg/utils/test_util.go index 1685025ae..dfa32d395 100644 --- a/pkg/utils/test_util.go +++ b/pkg/utils/test_util.go @@ -7,11 +7,12 @@ package utils import ( "fmt" + "os" + "strings" + "k8s.io/apimachinery/pkg/runtime/serializer" "k8s.io/apimachinery/pkg/util/yaml" "k8s.io/client-go/kubernetes/scheme" - "os" - "strings" "github.com/onsi/gomega/format" v1 "k8s.io/api/core/v1" From 2d90e425e8aaf900f0111f87420afaa9f6595a09 Mon Sep 17 00:00:00 2001 From: Arvind Thirumurugan Date: Sun, 5 Feb 2023 16:34:50 -0800 Subject: [PATCH 09/42] add UT for update path --- pkg/controllers/work/apply_controller_test.go | 42 ++++++++++++++++--- 1 file changed, 37 insertions(+), 5 deletions(-) diff --git a/pkg/controllers/work/apply_controller_test.go b/pkg/controllers/work/apply_controller_test.go index 7e009ea14..d65e48481 100644 --- a/pkg/controllers/work/apply_controller_test.go +++ b/pkg/controllers/work/apply_controller_test.go @@ -356,15 +356,36 @@ func TestApplyUnstructured(t *testing.T) { rawSecret, _ := json.Marshal(largeSecret) var largeObj unstructured.Unstructured _ = largeObj.UnmarshalJSON(rawSecret) + updatedLargeObj := largeObj.DeepCopy() largeObjSpecHash, _ := computeManifestHash(&largeObj) largeObj.SetAnnotations(map[string]string{manifestHashAnnotation: largeObjSpecHash}) - // add check to see if we cannot retrieve object - applyDynamicClient := fake.NewSimpleDynamicClient(runtime.NewScheme()) - applyDynamicClient.PrependReactor("patch", "*", func(action testingclient.Action) (handled bool, ret runtime.Object, err error) { + applyDynamicClientNotFound := fake.NewSimpleDynamicClient(runtime.NewScheme()) + applyDynamicClientNotFound.PrependReactor("get", "*", func(action testingclient.Action) (handled bool, ret runtime.Object, err error) { + return false, + nil, + &apierrors.StatusError{ + ErrStatus: metav1.Status{ + Status: metav1.StatusFailure, + Reason: metav1.StatusReasonNotFound, + }} + }) + applyDynamicClientNotFound.PrependReactor("patch", "*", func(action testingclient.Action) (handled bool, ret runtime.Object, err error) { + return true, largeObj.DeepCopy(), nil + }) + + updatedLargeObj.SetLabels(map[string]string{"test-label-key": "test-label"}) + updatedLargeObjSpecHash, _ := computeManifestHash(updatedLargeObj) + updatedLargeObj.SetAnnotations(map[string]string{manifestHashAnnotation: updatedLargeObjSpecHash}) + + applyDynamicClientFound := fake.NewSimpleDynamicClient(runtime.NewScheme()) + applyDynamicClientFound.PrependReactor("get", "*", func(action testingclient.Action) (handled bool, ret runtime.Object, err error) { return true, largeObj.DeepCopy(), nil }) + applyDynamicClientFound.PrependReactor("patch", "*", func(action testingclient.Action) (handled bool, ret runtime.Object, err error) { + return true, updatedLargeObj.DeepCopy(), nil + }) testCases := map[string]struct { reconciler ApplyWorkReconciler @@ -453,9 +474,9 @@ func TestApplyUnstructured(t *testing.T) { resultAction: ManifestUpdatedAction, resultErr: nil, }, - "apply large manifest": { + "test apply succeeds for large manifest when object does not exist": { reconciler: ApplyWorkReconciler{ - spokeDynamicClient: applyDynamicClient, + spokeDynamicClient: applyDynamicClientNotFound, restMapper: testMapper{}, recorder: utils.NewFakeRecorder(1), }, @@ -464,6 +485,17 @@ func TestApplyUnstructured(t *testing.T) { resultAction: ManifestAppliedAction, resultErr: nil, }, + "test apply succeeds on update for large manifest when object exists": { + reconciler: ApplyWorkReconciler{ + spokeDynamicClient: applyDynamicClientFound, + restMapper: testMapper{}, + recorder: utils.NewFakeRecorder(1), + }, + workObj: updatedLargeObj, + resultSpecHash: updatedLargeObjSpecHash, + resultAction: ManifestAppliedAction, + resultErr: nil, + }, } for testName, testCase := range testCases { From 9fcb66647b2ad75fd2d2d382d99aa22f14ab5ecd Mon Sep 17 00:00:00 2001 From: Arvind Thirumurugan Date: Sun, 5 Feb 2023 16:38:11 -0800 Subject: [PATCH 10/42] fix log --- pkg/controllers/work/apply_controller.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/controllers/work/apply_controller.go b/pkg/controllers/work/apply_controller.go index ed8f2e8c2..99626204c 100644 --- a/pkg/controllers/work/apply_controller.go +++ b/pkg/controllers/work/apply_controller.go @@ -359,7 +359,7 @@ func (r *ApplyWorkReconciler) applyUnstructured(ctx context.Context, gvr schema. // length of lastAppliedConfiguration accounts for the length of manifest hash and the length of the manifest hash annotation key // since we added the annotation to the object. if len(lastAppliedConfig) > (TotalAnnotationSizeLimitB - len(lastAppliedConfigAnnotation)) { - klog.V(2).InfoS("Size of last applied configuration is greater than 262,102 bytes hence it doesn't have the last applied configuration annotation", + klog.V(2).InfoS("Size of last applied configuration is greater than 262,102 bytes hence we don't add the last applied configuration annotation to do the three way merge", "gvr", gvr, "manifest", manifestRef, "length of last applied configuration", len(lastAppliedConfig)) return r.applyObject(ctx, gvr, manifestObj) } @@ -408,7 +408,7 @@ func (r *ApplyWorkReconciler) applyUnstructured(ctx context.Context, gvr schema. return nil, ManifestNoChangeAction, err } if len(lastAppliedConfig) > (TotalAnnotationSizeLimitB - len(lastAppliedConfigAnnotation)) { - klog.V(2).InfoS("Size of last applied configuration is greater than 262,102 bytes hence it doesn't have the last applied configuration annotation", + klog.V(2).InfoS("Size of last applied configuration is greater than 262,102 bytes hence we don't add the last applied configuration annotation to do the three way merge", "gvr", gvr, "manifest", manifestRef, "length of last applied configuration", len(lastAppliedConfig)) return r.applyObject(ctx, gvr, manifestObj) } From c245a3600b5cee42d96c8662874d10ebd1335240 Mon Sep 17 00:00:00 2001 From: Arvind Thirumurugan Date: Tue, 7 Feb 2023 16:40:26 -0800 Subject: [PATCH 11/42] Remove dup util methods in integration pkg --- test/integration/cluster_placement_test.go | 22 +++++------ .../manifests/placement/select-namespace.yaml | 4 +- test/integration/utils_test.go | 38 +++++-------------- 3 files changed, 21 insertions(+), 43 deletions(-) diff --git a/test/integration/cluster_placement_test.go b/test/integration/cluster_placement_test.go index ef490a445..52a76573a 100644 --- a/test/integration/cluster_placement_test.go +++ b/test/integration/cluster_placement_test.go @@ -490,10 +490,10 @@ var _ = Describe("Test Cluster Resource Placement Controller", func() { for i, manifest := range clusterWork.Spec.Workload.Manifests { By(fmt.Sprintf("validate the %d uObj in the work resource in cluster A", i)) var uObj unstructured.Unstructured - GetObjectFromRawExtension(manifest.Raw, &uObj) + utils.GetObjectFromRawExtension(manifest.Raw, &uObj) if uObj.GroupVersionKind().Kind == "Role" && uObj.GroupVersionKind().Group == rbacv1.GroupName { var selectedRole rbacv1.Role - GetObjectFromRawExtension(manifest.Raw, &selectedRole) + utils.GetObjectFromRawExtension(manifest.Raw, &selectedRole) Expect(len(selectedRole.Rules)).Should(BeEquivalentTo(1)) if reflect.DeepEqual(selectedRole.Rules[0], utils.FleetRule) { findRole = true @@ -523,10 +523,10 @@ var _ = Describe("Test Cluster Resource Placement Controller", func() { for i, manifest := range clusterWork.Spec.Workload.Manifests { By(fmt.Sprintf("validate the %d uObj in the work resource in cluster A", i)) var uObj unstructured.Unstructured - GetObjectFromRawExtension(manifest.Raw, &uObj) + utils.GetObjectFromRawExtension(manifest.Raw, &uObj) if uObj.GroupVersionKind().Kind == "Role" && uObj.GroupVersionKind().Group == rbacv1.GroupName { var selectedRole rbacv1.Role - GetObjectFromRawExtension(manifest.Raw, &selectedRole) + utils.GetObjectFromRawExtension(manifest.Raw, &selectedRole) Expect(len(selectedRole.Rules)).Should(BeEquivalentTo(2)) if reflect.DeepEqual(selectedRole.Rules[0], utils.FleetRule) && reflect.DeepEqual(selectedRole.Rules[1], utils.WorkRule) { @@ -667,10 +667,10 @@ var _ = Describe("Test Cluster Resource Placement Controller", func() { for i, manifest := range clusterWork.Spec.Workload.Manifests { By(fmt.Sprintf("validate the %d uObj in the work resource in cluster A", i)) var uObj unstructured.Unstructured - GetObjectFromRawExtension(manifest.Raw, &uObj) + utils.GetObjectFromRawExtension(manifest.Raw, &uObj) if uObj.GroupVersionKind().Kind == ClusterRoleKind && uObj.GroupVersionKind().Group == rbacv1.GroupName { var selectedRole rbacv1.ClusterRole - GetObjectFromRawExtension(manifest.Raw, &selectedRole) + utils.GetObjectFromRawExtension(manifest.Raw, &selectedRole) Expect(len(selectedRole.Rules)).Should(BeEquivalentTo(1)) if reflect.DeepEqual(selectedRole.Rules[0], utils.FleetRule) { findClusterRole = true @@ -697,10 +697,10 @@ var _ = Describe("Test Cluster Resource Placement Controller", func() { for i, manifest := range clusterWork.Spec.Workload.Manifests { By(fmt.Sprintf("validate the %d uObj in the work resource in cluster A", i)) var uObj unstructured.Unstructured - GetObjectFromRawExtension(manifest.Raw, &uObj) + utils.GetObjectFromRawExtension(manifest.Raw, &uObj) if uObj.GroupVersionKind().Kind == ClusterRoleKind && uObj.GroupVersionKind().Group == rbacv1.GroupName { var selectedRole rbacv1.ClusterRole - GetObjectFromRawExtension(manifest.Raw, &selectedRole) + utils.GetObjectFromRawExtension(manifest.Raw, &selectedRole) Expect(len(selectedRole.Rules)).Should(BeEquivalentTo(2)) if reflect.DeepEqual(selectedRole.Rules[0], utils.FleetRule) && reflect.DeepEqual(selectedRole.Rules[1], utils.WorkRule) { @@ -1234,7 +1234,7 @@ var _ = Describe("Test Cluster Resource Placement Controller", func() { Expect(len(clusterWork.Spec.Workload.Manifests)).Should(BeIdenticalTo(1)) manifest := clusterWork.Spec.Workload.Manifests[0] var selectedRole rbacv1.ClusterRole - GetObjectFromRawExtension(manifest.Raw, &selectedRole) + utils.GetObjectFromRawExtension(manifest.Raw, &selectedRole) Expect(len(selectedRole.Rules)).Should(BeEquivalentTo(2)) Expect(reflect.DeepEqual(selectedRole.Rules[0], utils.FleetRule) && reflect.DeepEqual(selectedRole.Rules[1], utils.WorkRule)).Should(BeTrue()) @@ -1247,7 +1247,7 @@ var _ = Describe("Test Cluster Resource Placement Controller", func() { }, &clusterWork)).Should(Succeed()) Expect(len(clusterWork.Spec.Workload.Manifests)).Should(BeIdenticalTo(1)) manifest = clusterWork.Spec.Workload.Manifests[0] - GetObjectFromRawExtension(manifest.Raw, &selectedRole) + utils.GetObjectFromRawExtension(manifest.Raw, &selectedRole) Expect(len(selectedRole.Rules)).Should(BeEquivalentTo(2)) Expect(reflect.DeepEqual(selectedRole.Rules[0], utils.FleetRule) && reflect.DeepEqual(selectedRole.Rules[1], utils.WorkRule)).Should(BeTrue()) @@ -1373,7 +1373,7 @@ var _ = Describe("Test Cluster Resource Placement Controller", func() { }, &clusterWork)).Should(Succeed()) Expect(len(clusterWork.Spec.Workload.Manifests)).Should(Equal(1)) var uObj unstructured.Unstructured - GetObjectFromRawExtension(clusterWork.Spec.Workload.Manifests[0].Raw, &uObj) + utils.GetObjectFromRawExtension(clusterWork.Spec.Workload.Manifests[0].Raw, &uObj) Expect(uObj.GroupVersionKind().Kind).Should(Equal("MutatingWebhookConfiguration")) By("Delete the webhook resources") diff --git a/test/integration/manifests/placement/select-namespace.yaml b/test/integration/manifests/placement/select-namespace.yaml index 74a836431..f976db76c 100644 --- a/test/integration/manifests/placement/select-namespace.yaml +++ b/test/integration/manifests/placement/select-namespace.yaml @@ -7,6 +7,4 @@ spec: - group: "" version: v1 kind: Namespace - labelSelector: - matchLabels: - fleet.azure.com/name: test \ No newline at end of file + name: test-redis \ No newline at end of file diff --git a/test/integration/utils_test.go b/test/integration/utils_test.go index 3dd563582..9809e1781 100644 --- a/test/integration/utils_test.go +++ b/test/integration/utils_test.go @@ -8,7 +8,6 @@ package integration import ( "context" "fmt" - "os" "time" . "github.com/onsi/ginkgo/v2" @@ -24,7 +23,6 @@ import ( "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/types" - "k8s.io/apimachinery/pkg/util/yaml" "k8s.io/client-go/rest" "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" @@ -59,24 +57,6 @@ var ( testPdb policyv1.PodDisruptionBudget ) -// GetObjectFromRawExtension returns an object decoded from the raw byte array -func GetObjectFromRawExtension(rawByte []byte, obj runtime.Object) { - json, err := yaml.ToJSON(rawByte) - Expect(err).ToNot(HaveOccurred()) - - err = runtime.DecodeInto(genericCodec, json, obj) - Expect(err).ToNot(HaveOccurred()) -} - -// GetObjectFromManifest returns a runtime object decoded from the file -func GetObjectFromManifest(relativeFilePath string, obj runtime.Object) { - // Read files, create manifest - fileRaw, err := os.ReadFile(relativeFilePath) - Expect(err).ToNot(HaveOccurred()) - - GetObjectFromRawExtension(fileRaw, obj) -} - // applyTestManifests creates the test manifests in the hub cluster. // Here is the list, please do NOT change this list unless you know what you are doing. // ClusterScoped resource: @@ -85,36 +65,36 @@ func GetObjectFromManifest(relativeFilePath string, obj runtime.Object) { // Cloneset CR, Pdb, Configmap, Secret, Service. func applyTestManifests() { By("Create testCloneset CRD") - GetObjectFromManifest("manifests/resources/test_clonesets_crd.yaml", &testClonesetCRD) + utils.GetObjectFromManifest("manifests/resources/test_clonesets_crd.yaml", &testClonesetCRD) Expect(k8sClient.Create(ctx, &testClonesetCRD)).Should(Succeed()) // TODO: replace the rest objects with programmatic definition By("Create testClusterRole resource") - GetObjectFromManifest("manifests/resources/test_clusterrole.yaml", &testClusterRole) + utils.GetObjectFromManifest("manifests/resources/test_clusterrole.yaml", &testClusterRole) Expect(k8sClient.Create(ctx, &testClusterRole)).Should(Succeed()) By("Create namespace") - GetObjectFromManifest("manifests/resources/test_namespace.yaml", &testNameSpace) + utils.GetObjectFromManifest("manifests/resources/test_namespace.yaml", &testNameSpace) Expect(k8sClient.Create(ctx, &testNameSpace)).Should(Succeed()) By("Create PodDisruptionBudget") - GetObjectFromManifest("manifests/resources/test_pdb.yaml", &testPdb) + utils.GetObjectFromManifest("manifests/resources/test_pdb.yaml", &testPdb) Expect(k8sClient.Create(ctx, &testPdb)).Should(Succeed()) By("Create the testConfigMap resources") - GetObjectFromManifest("manifests/resources/test-configmap.yaml", &testConfigMap) + utils.GetObjectFromManifest("manifests/resources/test-configmap.yaml", &testConfigMap) Expect(k8sClient.Create(ctx, &testConfigMap)).Should(Succeed()) By("Create testSecret resource") - GetObjectFromManifest("manifests/resources/test-secret.yaml", &testSecret) + utils.GetObjectFromManifest("manifests/resources/test-secret.yaml", &testSecret) Expect(k8sClient.Create(ctx, &testSecret)).Should(Succeed()) By("Create testService resource") - GetObjectFromManifest("manifests/resources/test-service.yaml", &testService) + utils.GetObjectFromManifest("manifests/resources/test-service.yaml", &testService) Expect(k8sClient.Create(ctx, &testService)).Should(Succeed()) By("Create testCloneset resource") - GetObjectFromManifest("manifests/resources/test-cloneset.yaml", &testCloneset) + utils.GetObjectFromManifest("manifests/resources/test-cloneset.yaml", &testCloneset) Expect(k8sClient.Create(ctx, &testCloneset)).Should(Succeed()) } @@ -272,7 +252,7 @@ func verifyPartialWorkObjects(crp *fleetv1alpha1.ClusterResourcePlacement, expec for i, manifest := range clusterWork.Spec.Workload.Manifests { By(fmt.Sprintf("validate the %d uObj in the work resource in cluster %s", i, cluster.Name)) var uObj unstructured.Unstructured - GetObjectFromRawExtension(manifest.Raw, &uObj) + utils.GetObjectFromRawExtension(manifest.Raw, &uObj) kind := uObj.GroupVersionKind().Kind if preciseMatch { Expect(kind).Should(SatisfyAny(expectedKindMatchers...)) From fde8553a5512141395395f0c99dd46ed7d04b3ea Mon Sep 17 00:00:00 2001 From: Arvind Thirumurugan Date: Tue, 7 Feb 2023 16:42:30 -0800 Subject: [PATCH 12/42] revert test changes --- test/integration/manifests/placement/select-namespace.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/test/integration/manifests/placement/select-namespace.yaml b/test/integration/manifests/placement/select-namespace.yaml index f976db76c..6f031b74a 100644 --- a/test/integration/manifests/placement/select-namespace.yaml +++ b/test/integration/manifests/placement/select-namespace.yaml @@ -7,4 +7,6 @@ spec: - group: "" version: v1 kind: Namespace - name: test-redis \ No newline at end of file + labelSelector: + matchLabels: + fleet.azure.com/name: test From 3c8794959d00393c5ac25dab40ee435bea0f4176 Mon Sep 17 00:00:00 2001 From: Arvind Thirumurugan Date: Tue, 14 Feb 2023 17:11:03 -0800 Subject: [PATCH 13/42] fix logic --- pkg/controllers/work/apply_controller.go | 46 +++++++++++-------- pkg/controllers/work/apply_controller_test.go | 3 +- pkg/controllers/work/patch_util.go | 31 ++++++------- 3 files changed, 40 insertions(+), 40 deletions(-) diff --git a/pkg/controllers/work/apply_controller.go b/pkg/controllers/work/apply_controller.go index 99626204c..30043554f 100644 --- a/pkg/controllers/work/apply_controller.go +++ b/pkg/controllers/work/apply_controller.go @@ -352,21 +352,16 @@ func (r *ApplyWorkReconciler) applyUnstructured(ctx context.Context, gvr schema. // extract the common create procedure to reuse var createFunc = func() (*unstructured.Unstructured, applyAction, error) { - lastAppliedConfig, err := computeModifiedConfigurationAnnotation(manifestObj) - if err != nil { + // record the raw manifest with the hash annotation in the manifest + if err := setModifiedConfigurationAnnotation(manifestObj); err != nil { return nil, ManifestNoChangeAction, err } - // length of lastAppliedConfiguration accounts for the length of manifest hash and the length of the manifest hash annotation key - // since we added the annotation to the object. - if len(lastAppliedConfig) > (TotalAnnotationSizeLimitB - len(lastAppliedConfigAnnotation)) { - klog.V(2).InfoS("Size of last applied configuration is greater than 262,102 bytes hence we don't add the last applied configuration annotation to do the three way merge", - "gvr", gvr, "manifest", manifestRef, "length of last applied configuration", len(lastAppliedConfig)) + annotations := manifestObj.GetAnnotations() + if !isAnnotationsSizeValid(gvr, manifestRef, annotations) { + delete(annotations, lastAppliedConfigAnnotation) + manifestObj.SetAnnotations(annotations) return r.applyObject(ctx, gvr, manifestObj) } - // record the raw manifest with the hash annotation in the manifest - if err := setModifiedConfigurationAnnotation(manifestObj, lastAppliedConfig); err != nil { - return nil, ManifestNoChangeAction, err - } actual, err := r.spokeDynamicClient.Resource(gvr).Namespace(manifestObj.GetNamespace()).Create( ctx, manifestObj, metav1.CreateOptions{FieldManager: workFieldManagerName}) if err == nil { @@ -403,25 +398,36 @@ func (r *ApplyWorkReconciler) applyUnstructured(ctx context.Context, gvr schema. // we need to merge the owner reference between the current and the manifest since we support one manifest // belong to multiple work so it contains the union of all the appliedWork manifestObj.SetOwnerReferences(mergeOwnerReference(curObj.GetOwnerReferences(), manifestObj.GetOwnerReferences())) - lastAppliedConfig, err := computeModifiedConfigurationAnnotation(manifestObj) - if err != nil { + // record the raw manifest with the hash annotation in the manifest + if err := setModifiedConfigurationAnnotation(manifestObj); err != nil { return nil, ManifestNoChangeAction, err } - if len(lastAppliedConfig) > (TotalAnnotationSizeLimitB - len(lastAppliedConfigAnnotation)) { - klog.V(2).InfoS("Size of last applied configuration is greater than 262,102 bytes hence we don't add the last applied configuration annotation to do the three way merge", - "gvr", gvr, "manifest", manifestRef, "length of last applied configuration", len(lastAppliedConfig)) + annotations := manifestObj.GetAnnotations() + if !isAnnotationsSizeValid(gvr, manifestRef, annotations) { + delete(annotations, lastAppliedConfigAnnotation) + manifestObj.SetAnnotations(annotations) return r.applyObject(ctx, gvr, manifestObj) } - // record the raw manifest with the hash annotation in the manifest - if err := setModifiedConfigurationAnnotation(manifestObj, lastAppliedConfig); err != nil { - return nil, ManifestNoChangeAction, err - } return r.patchCurrentResource(ctx, gvr, manifestObj, curObj) } return curObj, ManifestNoChangeAction, nil } +// isAnnotationSizeValid returns true if the total size of the annotations for a manifest is less than 256KB. +func isAnnotationsSizeValid(gvr schema.GroupVersionResource, manifestRef klog.ObjectRef, annotations map[string]string) bool { + var totalSize int64 + for k, v := range annotations { + totalSize += (int64)(len(k)) + (int64)(len(v)) + } + if totalSize > (int64)(TotalAnnotationSizeLimitB) { + klog.V(2).InfoS("Size of annotations is greater than 262,144 bytes hence we don't add the last applied configuration annotation to do the three way merge", + "gvr", gvr, "manifest", manifestRef, "length of last applied configuration", totalSize) + return false + } + return true +} + // applyObject uses dynamic client's apply to apply the manifest. func (r *ApplyWorkReconciler) applyObject(ctx context.Context, gvr schema.GroupVersionResource, manifestObj *unstructured.Unstructured) (*unstructured.Unstructured, applyAction, error) { diff --git a/pkg/controllers/work/apply_controller_test.go b/pkg/controllers/work/apply_controller_test.go index d65e48481..9adf741af 100644 --- a/pkg/controllers/work/apply_controller_test.go +++ b/pkg/controllers/work/apply_controller_test.go @@ -960,8 +960,7 @@ func createObjAndDynamicClient(rawManifest []byte) (*unstructured.Unstructured, _ = uObj.UnmarshalJSON(rawManifest) validSpecHash, _ := computeManifestHash(&uObj) uObj.SetAnnotations(map[string]string{manifestHashAnnotation: validSpecHash}) - lastAppliedConfig, _ := computeModifiedConfigurationAnnotation(&uObj) - _ = setModifiedConfigurationAnnotation(&uObj, lastAppliedConfig) + _ = setModifiedConfigurationAnnotation(&uObj) dynamicClient := fake.NewSimpleDynamicClient(runtime.NewScheme()) dynamicClient.PrependReactor("get", "*", func(action testingclient.Action) (handled bool, ret runtime.Object, err error) { return true, uObj.DeepCopy(), nil diff --git a/pkg/controllers/work/patch_util.go b/pkg/controllers/work/patch_util.go index 965475f5d..acdedb993 100644 --- a/pkg/controllers/work/patch_util.go +++ b/pkg/controllers/work/patch_util.go @@ -75,24 +75,12 @@ func threeWayMergePatch(currentObj, manifestObj client.Object) (client.Patch, er } return client.RawPatch(patchType, patchData), nil } - -// computeModifiedConfigurationAnnotation is used to serialize the object into a byte stream. -func computeModifiedConfigurationAnnotation(obj runtime.Object) (string, error) { - //TODO: see if we should use something like json.ConfigCompatibleWithStandardLibrary.Marshal to make sure that - // the produced json format is more three way merge friendly - - // Marshaling adds about 100-200 bytes to the object's actual size - lastAppliedConfiguration, err := json.Marshal(obj) - if err != nil { - return "", err - } - return string(lastAppliedConfiguration), nil -} - -// setModifiedConfigurationAnnotation is used to set the serialized object as a byte stream as the last applied -// configuration annotation. If `updateAnnotation` is true, it embeds the result as an annotation in the +q +// setModifiedConfigurationAnnotation serializes the object into byte stream. +// If `updateAnnotation` is true, it embeds the result as an annotation in the // modified configuration. -func setModifiedConfigurationAnnotation(obj runtime.Object, lastAppliedConfig string) error { +func setModifiedConfigurationAnnotation(obj runtime.Object) error { + var modified []byte annotations, err := metadataAccessor.Annotations(obj) if err != nil { return fmt.Errorf("cannot access metadata.annotations: %w", err) @@ -109,8 +97,15 @@ func setModifiedConfigurationAnnotation(obj runtime.Object, lastAppliedConfig st } else { _ = metadataAccessor.SetAnnotations(obj, annotations) } + + //TODO: see if we should use something like json.ConfigCompatibleWithStandardLibrary.Marshal to make sure that + // the produced json format is more three way merge friendly + modified, err = json.Marshal(obj) + if err != nil { + return err + } // set the last applied annotation back - annotations[lastAppliedConfigAnnotation] = lastAppliedConfig + annotations[lastAppliedConfigAnnotation] = string(modified) return metadataAccessor.SetAnnotations(obj, annotations) } From 607f2b522698bed6e79fbf8a8e3b9bf79ddce7a2 Mon Sep 17 00:00:00 2001 From: Arvind Thirumurugan Date: Tue, 14 Feb 2023 17:14:52 -0800 Subject: [PATCH 14/42] fix --- pkg/controllers/work/patch_util.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/controllers/work/patch_util.go b/pkg/controllers/work/patch_util.go index acdedb993..6964d731a 100644 --- a/pkg/controllers/work/patch_util.go +++ b/pkg/controllers/work/patch_util.go @@ -75,7 +75,7 @@ func threeWayMergePatch(currentObj, manifestObj client.Object) (client.Patch, er } return client.RawPatch(patchType, patchData), nil } -q + // setModifiedConfigurationAnnotation serializes the object into byte stream. // If `updateAnnotation` is true, it embeds the result as an annotation in the // modified configuration. From 77c2377e197a5bcd53c114720daef31c5a2fa551 Mon Sep 17 00:00:00 2001 From: Arvind Thirumurugan Date: Fri, 17 Feb 2023 09:26:06 -0800 Subject: [PATCH 15/42] addresse review comments --- pkg/controllers/work/apply_controller.go | 3 +-- pkg/controllers/work/apply_controller_test.go | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/pkg/controllers/work/apply_controller.go b/pkg/controllers/work/apply_controller.go index 30043554f..7abb1cee3 100644 --- a/pkg/controllers/work/apply_controller.go +++ b/pkg/controllers/work/apply_controller.go @@ -360,7 +360,6 @@ func (r *ApplyWorkReconciler) applyUnstructured(ctx context.Context, gvr schema. if !isAnnotationsSizeValid(gvr, manifestRef, annotations) { delete(annotations, lastAppliedConfigAnnotation) manifestObj.SetAnnotations(annotations) - return r.applyObject(ctx, gvr, manifestObj) } actual, err := r.spokeDynamicClient.Resource(gvr).Namespace(manifestObj.GetNamespace()).Create( ctx, manifestObj, metav1.CreateOptions{FieldManager: workFieldManagerName}) @@ -422,7 +421,7 @@ func isAnnotationsSizeValid(gvr schema.GroupVersionResource, manifestRef klog.Ob } if totalSize > (int64)(TotalAnnotationSizeLimitB) { klog.V(2).InfoS("Size of annotations is greater than 262,144 bytes hence we don't add the last applied configuration annotation to do the three way merge", - "gvr", gvr, "manifest", manifestRef, "length of last applied configuration", totalSize) + "gvr", gvr, "manifest", manifestRef, "size of annotations", totalSize) return false } return true diff --git a/pkg/controllers/work/apply_controller_test.go b/pkg/controllers/work/apply_controller_test.go index 9adf741af..3e05343f4 100644 --- a/pkg/controllers/work/apply_controller_test.go +++ b/pkg/controllers/work/apply_controller_test.go @@ -482,7 +482,7 @@ func TestApplyUnstructured(t *testing.T) { }, workObj: &largeObj, resultSpecHash: largeObjSpecHash, - resultAction: ManifestAppliedAction, + resultAction: ManifestCreatedAction, resultErr: nil, }, "test apply succeeds on update for large manifest when object exists": { From 6fa558ad7af4307c7a13b454cb3371da444bccec Mon Sep 17 00:00:00 2001 From: Arvind Thirumurugan Date: Sun, 9 Apr 2023 14:48:57 -0700 Subject: [PATCH 16/42] reuse ValidateAnnotationSize from apimachinery --- pkg/controllers/work/apply_controller.go | 32 +++++++++++------------- 1 file changed, 14 insertions(+), 18 deletions(-) diff --git a/pkg/controllers/work/apply_controller.go b/pkg/controllers/work/apply_controller.go index 7abb1cee3..d3df43ed3 100644 --- a/pkg/controllers/work/apply_controller.go +++ b/pkg/controllers/work/apply_controller.go @@ -27,6 +27,7 @@ import ( v1 "k8s.io/api/core/v1" apierrors "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/api/meta" + "k8s.io/apimachinery/pkg/api/validation" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/apimachinery/pkg/runtime/schema" @@ -49,8 +50,7 @@ import ( ) const ( - workFieldManagerName = "work-api-agent" - TotalAnnotationSizeLimitB int = 256 * (1 << 10) // 256 kB + workFieldManagerName = "work-api-agent" ) // ApplyWorkReconciler reconciles a Work object @@ -357,7 +357,12 @@ func (r *ApplyWorkReconciler) applyUnstructured(ctx context.Context, gvr schema. return nil, ManifestNoChangeAction, err } annotations := manifestObj.GetAnnotations() - if !isAnnotationsSizeValid(gvr, manifestRef, annotations) { + klog.V(2).InfoS("validating annotation size for manifest", + "gvr", gvr, "manifest", manifestRef) + err := validation.ValidateAnnotationsSize(annotations) + if err != nil { + klog.ErrorS(err, "not using three way merge for manifest removing last applied config annotation", + "gvr", gvr, "obj", manifestRef) delete(annotations, lastAppliedConfigAnnotation) manifestObj.SetAnnotations(annotations) } @@ -402,7 +407,12 @@ func (r *ApplyWorkReconciler) applyUnstructured(ctx context.Context, gvr schema. return nil, ManifestNoChangeAction, err } annotations := manifestObj.GetAnnotations() - if !isAnnotationsSizeValid(gvr, manifestRef, annotations) { + klog.V(2).InfoS("validating annotation size for manifest", + "gvr", gvr, "manifest", manifestRef) + err := validation.ValidateAnnotationsSize(annotations) + if err != nil { + klog.ErrorS(err, "not using three way merge for manifest removing last applied config annotation", + "gvr", gvr, "obj", manifestRef) delete(annotations, lastAppliedConfigAnnotation) manifestObj.SetAnnotations(annotations) return r.applyObject(ctx, gvr, manifestObj) @@ -413,20 +423,6 @@ func (r *ApplyWorkReconciler) applyUnstructured(ctx context.Context, gvr schema. return curObj, ManifestNoChangeAction, nil } -// isAnnotationSizeValid returns true if the total size of the annotations for a manifest is less than 256KB. -func isAnnotationsSizeValid(gvr schema.GroupVersionResource, manifestRef klog.ObjectRef, annotations map[string]string) bool { - var totalSize int64 - for k, v := range annotations { - totalSize += (int64)(len(k)) + (int64)(len(v)) - } - if totalSize > (int64)(TotalAnnotationSizeLimitB) { - klog.V(2).InfoS("Size of annotations is greater than 262,144 bytes hence we don't add the last applied configuration annotation to do the three way merge", - "gvr", gvr, "manifest", manifestRef, "size of annotations", totalSize) - return false - } - return true -} - // applyObject uses dynamic client's apply to apply the manifest. func (r *ApplyWorkReconciler) applyObject(ctx context.Context, gvr schema.GroupVersionResource, manifestObj *unstructured.Unstructured) (*unstructured.Unstructured, applyAction, error) { From 5cba06599b0ec04c11b1002aebd08b72dce4cdd8 Mon Sep 17 00:00:00 2001 From: Arvind Thirumurugan Date: Mon, 24 Apr 2023 14:39:38 -0700 Subject: [PATCH 17/42] address comments --- pkg/controllers/work/apply_controller.go | 5 +-- pkg/controllers/work/apply_controller_test.go | 17 +++++++--- pkg/utils/test_util.go | 17 +++++----- test/integration/cluster_placement_test.go | 33 ++++++++++++------- test/integration/utils_test.go | 27 ++++++++++----- 5 files changed, 65 insertions(+), 34 deletions(-) diff --git a/pkg/controllers/work/apply_controller.go b/pkg/controllers/work/apply_controller.go index d3df43ed3..01f72128d 100644 --- a/pkg/controllers/work/apply_controller.go +++ b/pkg/controllers/work/apply_controller.go @@ -337,7 +337,8 @@ func (r *ApplyWorkReconciler) decodeManifest(manifest workv1alpha1.Manifest) (sc return mapping.Resource, unstructuredObj, nil } -// applyUnstructured determines if an unstructured manifest object can & should be applied. If so, it applies/creates the resource on the cluster based on it's size. +// applyUnstructured determines if an unstructured manifest object can & should be applied. If so, it either uses server side apply or +// creates the resource on the cluster based on the object's annotation size. func (r *ApplyWorkReconciler) applyUnstructured(ctx context.Context, gvr schema.GroupVersionResource, manifestObj *unstructured.Unstructured) (*unstructured.Unstructured, applyAction, error) { manifestRef := klog.ObjectRef{ @@ -361,7 +362,7 @@ func (r *ApplyWorkReconciler) applyUnstructured(ctx context.Context, gvr schema. "gvr", gvr, "manifest", manifestRef) err := validation.ValidateAnnotationsSize(annotations) if err != nil { - klog.ErrorS(err, "not using three way merge for manifest removing last applied config annotation", + klog.InfoS(fmt.Sprintf("not using three way merge for manifest removing last applied config annotation, %s", err), "gvr", gvr, "obj", manifestRef) delete(annotations, lastAppliedConfigAnnotation) manifestObj.SetAnnotations(annotations) diff --git a/pkg/controllers/work/apply_controller_test.go b/pkg/controllers/work/apply_controller_test.go index 3e05343f4..5cd643094 100644 --- a/pkg/controllers/work/apply_controller_test.go +++ b/pkg/controllers/work/apply_controller_test.go @@ -80,7 +80,6 @@ var ( testManifest = workv1alpha1.Manifest{RawExtension: runtime.RawExtension{ Raw: rawTestDeployment, }} - largeSecret v1.Secret ) // This interface is needed for testMapper abstract class. @@ -347,15 +346,25 @@ func TestApplyUnstructured(t *testing.T) { specHashFailObj := correctObj.DeepCopy() specHashFailObj.Object["test"] = math.Inf(1) - utils.GetObjectFromManifest("../../../test/integration/manifests/resources/test-large-secret.yaml", &largeSecret) + var largeSecret v1.Secret + err := utils.GetObjectFromManifest("../../../test/integration/manifests/resources/test-large-secret.yaml", &largeSecret) + if err != nil { + t.Errorf("failed to get object from manifest: %s", err) + } largeSecret.ObjectMeta = metav1.ObjectMeta{ OwnerReferences: []metav1.OwnerReference{ ownerRef, }, } - rawSecret, _ := json.Marshal(largeSecret) + rawSecret, err := json.Marshal(largeSecret) + if err != nil { + t.Errorf("failed to marshal secret: %s", err) + } var largeObj unstructured.Unstructured - _ = largeObj.UnmarshalJSON(rawSecret) + err = largeObj.UnmarshalJSON(rawSecret) + if err != nil { + t.Errorf("failed to unmarshal JSON: %s", err) + } updatedLargeObj := largeObj.DeepCopy() largeObjSpecHash, _ := computeManifestHash(&largeObj) diff --git a/pkg/utils/test_util.go b/pkg/utils/test_util.go index dfa32d395..03fbe8f6a 100644 --- a/pkg/utils/test_util.go +++ b/pkg/utils/test_util.go @@ -47,27 +47,28 @@ func GetEventString(object runtime.Object, eventtype, reason, messageFmt string, object.GetObjectKind().GroupVersionKind().Kind, object.GetObjectKind().GroupVersionKind().GroupVersion()) } -// GetObjectFromRawExtension returns an object decoded from the raw byte array -func GetObjectFromRawExtension(rawByte []byte, obj runtime.Object) { +// GetObjectFromRawExtension returns an object decoded from the raw byte array. +func GetObjectFromRawExtension(rawByte []byte, obj runtime.Object) error { json, err := yaml.ToJSON(rawByte) if err != nil { - return + return err } err = runtime.DecodeInto(genericCodec, json, obj) if err != nil { - return + return err } + return nil } -// GetObjectFromManifest returns a runtime object decoded from the file -func GetObjectFromManifest(relativeFilePath string, obj runtime.Object) { +// GetObjectFromManifest returns a runtime object decoded from the file. +func GetObjectFromManifest(relativeFilePath string, obj runtime.Object) error { // Read files, create manifest fileRaw, err := os.ReadFile(relativeFilePath) if err != nil { - return + return err } - GetObjectFromRawExtension(fileRaw, obj) + return GetObjectFromRawExtension(fileRaw, obj) } // NewResourceList returns a resource list for test purpose. diff --git a/test/integration/cluster_placement_test.go b/test/integration/cluster_placement_test.go index 52a76573a..af2a36c5d 100644 --- a/test/integration/cluster_placement_test.go +++ b/test/integration/cluster_placement_test.go @@ -490,10 +490,12 @@ var _ = Describe("Test Cluster Resource Placement Controller", func() { for i, manifest := range clusterWork.Spec.Workload.Manifests { By(fmt.Sprintf("validate the %d uObj in the work resource in cluster A", i)) var uObj unstructured.Unstructured - utils.GetObjectFromRawExtension(manifest.Raw, &uObj) + err := utils.GetObjectFromRawExtension(manifest.Raw, &uObj) + Expect(err).Should(Succeed()) if uObj.GroupVersionKind().Kind == "Role" && uObj.GroupVersionKind().Group == rbacv1.GroupName { var selectedRole rbacv1.Role - utils.GetObjectFromRawExtension(manifest.Raw, &selectedRole) + err := utils.GetObjectFromRawExtension(manifest.Raw, &selectedRole) + Expect(err).Should(Succeed()) Expect(len(selectedRole.Rules)).Should(BeEquivalentTo(1)) if reflect.DeepEqual(selectedRole.Rules[0], utils.FleetRule) { findRole = true @@ -523,10 +525,12 @@ var _ = Describe("Test Cluster Resource Placement Controller", func() { for i, manifest := range clusterWork.Spec.Workload.Manifests { By(fmt.Sprintf("validate the %d uObj in the work resource in cluster A", i)) var uObj unstructured.Unstructured - utils.GetObjectFromRawExtension(manifest.Raw, &uObj) + err := utils.GetObjectFromRawExtension(manifest.Raw, &uObj) + Expect(err).Should(Succeed()) if uObj.GroupVersionKind().Kind == "Role" && uObj.GroupVersionKind().Group == rbacv1.GroupName { var selectedRole rbacv1.Role - utils.GetObjectFromRawExtension(manifest.Raw, &selectedRole) + err := utils.GetObjectFromRawExtension(manifest.Raw, &selectedRole) + Expect(err).Should(Succeed()) Expect(len(selectedRole.Rules)).Should(BeEquivalentTo(2)) if reflect.DeepEqual(selectedRole.Rules[0], utils.FleetRule) && reflect.DeepEqual(selectedRole.Rules[1], utils.WorkRule) { @@ -667,10 +671,12 @@ var _ = Describe("Test Cluster Resource Placement Controller", func() { for i, manifest := range clusterWork.Spec.Workload.Manifests { By(fmt.Sprintf("validate the %d uObj in the work resource in cluster A", i)) var uObj unstructured.Unstructured - utils.GetObjectFromRawExtension(manifest.Raw, &uObj) + err := utils.GetObjectFromRawExtension(manifest.Raw, &uObj) + Expect(err).Should(Succeed()) if uObj.GroupVersionKind().Kind == ClusterRoleKind && uObj.GroupVersionKind().Group == rbacv1.GroupName { var selectedRole rbacv1.ClusterRole - utils.GetObjectFromRawExtension(manifest.Raw, &selectedRole) + err := utils.GetObjectFromRawExtension(manifest.Raw, &selectedRole) + Expect(err).Should(Succeed()) Expect(len(selectedRole.Rules)).Should(BeEquivalentTo(1)) if reflect.DeepEqual(selectedRole.Rules[0], utils.FleetRule) { findClusterRole = true @@ -697,10 +703,12 @@ var _ = Describe("Test Cluster Resource Placement Controller", func() { for i, manifest := range clusterWork.Spec.Workload.Manifests { By(fmt.Sprintf("validate the %d uObj in the work resource in cluster A", i)) var uObj unstructured.Unstructured - utils.GetObjectFromRawExtension(manifest.Raw, &uObj) + err := utils.GetObjectFromRawExtension(manifest.Raw, &uObj) + Expect(err).Should(Succeed()) if uObj.GroupVersionKind().Kind == ClusterRoleKind && uObj.GroupVersionKind().Group == rbacv1.GroupName { var selectedRole rbacv1.ClusterRole - utils.GetObjectFromRawExtension(manifest.Raw, &selectedRole) + err := utils.GetObjectFromRawExtension(manifest.Raw, &selectedRole) + Expect(err).Should(Succeed()) Expect(len(selectedRole.Rules)).Should(BeEquivalentTo(2)) if reflect.DeepEqual(selectedRole.Rules[0], utils.FleetRule) && reflect.DeepEqual(selectedRole.Rules[1], utils.WorkRule) { @@ -1234,7 +1242,8 @@ var _ = Describe("Test Cluster Resource Placement Controller", func() { Expect(len(clusterWork.Spec.Workload.Manifests)).Should(BeIdenticalTo(1)) manifest := clusterWork.Spec.Workload.Manifests[0] var selectedRole rbacv1.ClusterRole - utils.GetObjectFromRawExtension(manifest.Raw, &selectedRole) + err := utils.GetObjectFromRawExtension(manifest.Raw, &selectedRole) + Expect(err).Should(Succeed()) Expect(len(selectedRole.Rules)).Should(BeEquivalentTo(2)) Expect(reflect.DeepEqual(selectedRole.Rules[0], utils.FleetRule) && reflect.DeepEqual(selectedRole.Rules[1], utils.WorkRule)).Should(BeTrue()) @@ -1247,7 +1256,8 @@ var _ = Describe("Test Cluster Resource Placement Controller", func() { }, &clusterWork)).Should(Succeed()) Expect(len(clusterWork.Spec.Workload.Manifests)).Should(BeIdenticalTo(1)) manifest = clusterWork.Spec.Workload.Manifests[0] - utils.GetObjectFromRawExtension(manifest.Raw, &selectedRole) + err = utils.GetObjectFromRawExtension(manifest.Raw, &selectedRole) + Expect(err).Should(Succeed()) Expect(len(selectedRole.Rules)).Should(BeEquivalentTo(2)) Expect(reflect.DeepEqual(selectedRole.Rules[0], utils.FleetRule) && reflect.DeepEqual(selectedRole.Rules[1], utils.WorkRule)).Should(BeTrue()) @@ -1373,7 +1383,8 @@ var _ = Describe("Test Cluster Resource Placement Controller", func() { }, &clusterWork)).Should(Succeed()) Expect(len(clusterWork.Spec.Workload.Manifests)).Should(Equal(1)) var uObj unstructured.Unstructured - utils.GetObjectFromRawExtension(clusterWork.Spec.Workload.Manifests[0].Raw, &uObj) + err := utils.GetObjectFromRawExtension(clusterWork.Spec.Workload.Manifests[0].Raw, &uObj) + Expect(err).Should(Succeed()) Expect(uObj.GroupVersionKind().Kind).Should(Equal("MutatingWebhookConfiguration")) By("Delete the webhook resources") diff --git a/test/integration/utils_test.go b/test/integration/utils_test.go index 9809e1781..4ac3fd3b1 100644 --- a/test/integration/utils_test.go +++ b/test/integration/utils_test.go @@ -65,36 +65,44 @@ var ( // Cloneset CR, Pdb, Configmap, Secret, Service. func applyTestManifests() { By("Create testCloneset CRD") - utils.GetObjectFromManifest("manifests/resources/test_clonesets_crd.yaml", &testClonesetCRD) + err := utils.GetObjectFromManifest("manifests/resources/test_clonesets_crd.yaml", &testClonesetCRD) + Expect(err).Should(Succeed()) Expect(k8sClient.Create(ctx, &testClonesetCRD)).Should(Succeed()) // TODO: replace the rest objects with programmatic definition By("Create testClusterRole resource") - utils.GetObjectFromManifest("manifests/resources/test_clusterrole.yaml", &testClusterRole) + err = utils.GetObjectFromManifest("manifests/resources/test_clusterrole.yaml", &testClusterRole) + Expect(err).Should(Succeed()) Expect(k8sClient.Create(ctx, &testClusterRole)).Should(Succeed()) By("Create namespace") - utils.GetObjectFromManifest("manifests/resources/test_namespace.yaml", &testNameSpace) + err = utils.GetObjectFromManifest("manifests/resources/test_namespace.yaml", &testNameSpace) + Expect(err).Should(Succeed()) Expect(k8sClient.Create(ctx, &testNameSpace)).Should(Succeed()) By("Create PodDisruptionBudget") - utils.GetObjectFromManifest("manifests/resources/test_pdb.yaml", &testPdb) + err = utils.GetObjectFromManifest("manifests/resources/test_pdb.yaml", &testPdb) + Expect(err).Should(Succeed()) Expect(k8sClient.Create(ctx, &testPdb)).Should(Succeed()) By("Create the testConfigMap resources") - utils.GetObjectFromManifest("manifests/resources/test-configmap.yaml", &testConfigMap) + err = utils.GetObjectFromManifest("manifests/resources/test-configmap.yaml", &testConfigMap) + Expect(err).Should(Succeed()) Expect(k8sClient.Create(ctx, &testConfigMap)).Should(Succeed()) By("Create testSecret resource") - utils.GetObjectFromManifest("manifests/resources/test-secret.yaml", &testSecret) + err = utils.GetObjectFromManifest("manifests/resources/test-secret.yaml", &testSecret) + Expect(err).Should(Succeed()) Expect(k8sClient.Create(ctx, &testSecret)).Should(Succeed()) By("Create testService resource") - utils.GetObjectFromManifest("manifests/resources/test-service.yaml", &testService) + err = utils.GetObjectFromManifest("manifests/resources/test-service.yaml", &testService) + Expect(err).Should(Succeed()) Expect(k8sClient.Create(ctx, &testService)).Should(Succeed()) By("Create testCloneset resource") - utils.GetObjectFromManifest("manifests/resources/test-cloneset.yaml", &testCloneset) + err = utils.GetObjectFromManifest("manifests/resources/test-cloneset.yaml", &testCloneset) + Expect(err).Should(Succeed()) Expect(k8sClient.Create(ctx, &testCloneset)).Should(Succeed()) } @@ -252,7 +260,8 @@ func verifyPartialWorkObjects(crp *fleetv1alpha1.ClusterResourcePlacement, expec for i, manifest := range clusterWork.Spec.Workload.Manifests { By(fmt.Sprintf("validate the %d uObj in the work resource in cluster %s", i, cluster.Name)) var uObj unstructured.Unstructured - utils.GetObjectFromRawExtension(manifest.Raw, &uObj) + err := utils.GetObjectFromRawExtension(manifest.Raw, &uObj) + Expect(err).Should(Succeed()) kind := uObj.GroupVersionKind().Kind if preciseMatch { Expect(kind).Should(SatisfyAny(expectedKindMatchers...)) From 7146886870a6f404403b7a5090ef6f57450fbfe5 Mon Sep 17 00:00:00 2001 From: Arvind Thirumurugan Date: Mon, 24 Apr 2023 14:46:07 -0700 Subject: [PATCH 18/42] refactor err check --- pkg/controllers/work/apply_controller.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pkg/controllers/work/apply_controller.go b/pkg/controllers/work/apply_controller.go index 01f72128d..fc91e1dd5 100644 --- a/pkg/controllers/work/apply_controller.go +++ b/pkg/controllers/work/apply_controller.go @@ -360,8 +360,7 @@ func (r *ApplyWorkReconciler) applyUnstructured(ctx context.Context, gvr schema. annotations := manifestObj.GetAnnotations() klog.V(2).InfoS("validating annotation size for manifest", "gvr", gvr, "manifest", manifestRef) - err := validation.ValidateAnnotationsSize(annotations) - if err != nil { + if err := validation.ValidateAnnotationsSize(annotations); err != nil { klog.InfoS(fmt.Sprintf("not using three way merge for manifest removing last applied config annotation, %s", err), "gvr", gvr, "obj", manifestRef) delete(annotations, lastAppliedConfigAnnotation) From 41d297ea95aed208f7530460bae7201a8ba1e141 Mon Sep 17 00:00:00 2001 From: Arvind Thirumurugan Date: Mon, 24 Apr 2023 14:57:46 -0700 Subject: [PATCH 19/42] refactor err checks --- pkg/controllers/work/apply_controller_test.go | 6 ++---- pkg/utils/test_util.go | 3 +-- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/pkg/controllers/work/apply_controller_test.go b/pkg/controllers/work/apply_controller_test.go index 5cd643094..f31413618 100644 --- a/pkg/controllers/work/apply_controller_test.go +++ b/pkg/controllers/work/apply_controller_test.go @@ -347,8 +347,7 @@ func TestApplyUnstructured(t *testing.T) { specHashFailObj.Object["test"] = math.Inf(1) var largeSecret v1.Secret - err := utils.GetObjectFromManifest("../../../test/integration/manifests/resources/test-large-secret.yaml", &largeSecret) - if err != nil { + if err := utils.GetObjectFromManifest("../../../test/integration/manifests/resources/test-large-secret.yaml", &largeSecret); err != nil { t.Errorf("failed to get object from manifest: %s", err) } largeSecret.ObjectMeta = metav1.ObjectMeta{ @@ -361,8 +360,7 @@ func TestApplyUnstructured(t *testing.T) { t.Errorf("failed to marshal secret: %s", err) } var largeObj unstructured.Unstructured - err = largeObj.UnmarshalJSON(rawSecret) - if err != nil { + if err = largeObj.UnmarshalJSON(rawSecret); err != nil { t.Errorf("failed to unmarshal JSON: %s", err) } updatedLargeObj := largeObj.DeepCopy() diff --git a/pkg/utils/test_util.go b/pkg/utils/test_util.go index 03fbe8f6a..23156a70d 100644 --- a/pkg/utils/test_util.go +++ b/pkg/utils/test_util.go @@ -53,8 +53,7 @@ func GetObjectFromRawExtension(rawByte []byte, obj runtime.Object) error { if err != nil { return err } - err = runtime.DecodeInto(genericCodec, json, obj) - if err != nil { + if err = runtime.DecodeInto(genericCodec, json, obj); err != nil { return err } return nil From 9bbe03418688fd371acaf1534f364d4d929b7004 Mon Sep 17 00:00:00 2001 From: Arvind Thirumurugan Date: Mon, 24 Apr 2023 15:20:28 -0700 Subject: [PATCH 20/42] fix comment --- pkg/controllers/work/apply_controller.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pkg/controllers/work/apply_controller.go b/pkg/controllers/work/apply_controller.go index fc91e1dd5..8565a5ed0 100644 --- a/pkg/controllers/work/apply_controller.go +++ b/pkg/controllers/work/apply_controller.go @@ -337,8 +337,9 @@ func (r *ApplyWorkReconciler) decodeManifest(manifest workv1alpha1.Manifest) (sc return mapping.Resource, unstructuredObj, nil } -// applyUnstructured determines if an unstructured manifest object can & should be applied. If so, it either uses server side apply or -// creates the resource on the cluster based on the object's annotation size. +// applyUnstructured determines if an unstructured manifest object can & should be applied. It first validates +// the size of the last modified annotation of the manifest, it removes the annotation if the size crosses the annotation size threshold +// and then creates/updates the resource on the cluster func (r *ApplyWorkReconciler) applyUnstructured(ctx context.Context, gvr schema.GroupVersionResource, manifestObj *unstructured.Unstructured) (*unstructured.Unstructured, applyAction, error) { manifestRef := klog.ObjectRef{ From 4382ba522e77951a901d426ad5497d974cbdafbb Mon Sep 17 00:00:00 2001 From: Arvind Thirumurugan Date: Mon, 24 Apr 2023 15:21:35 -0700 Subject: [PATCH 21/42] fix comment --- pkg/controllers/work/apply_controller.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/controllers/work/apply_controller.go b/pkg/controllers/work/apply_controller.go index 8565a5ed0..4dd738b84 100644 --- a/pkg/controllers/work/apply_controller.go +++ b/pkg/controllers/work/apply_controller.go @@ -339,7 +339,7 @@ func (r *ApplyWorkReconciler) decodeManifest(manifest workv1alpha1.Manifest) (sc // applyUnstructured determines if an unstructured manifest object can & should be applied. It first validates // the size of the last modified annotation of the manifest, it removes the annotation if the size crosses the annotation size threshold -// and then creates/updates the resource on the cluster +// and then creates/updates the resource on the cluster using server side apply instead of three way merge patch. func (r *ApplyWorkReconciler) applyUnstructured(ctx context.Context, gvr schema.GroupVersionResource, manifestObj *unstructured.Unstructured) (*unstructured.Unstructured, applyAction, error) { manifestRef := klog.ObjectRef{ From 70532f04de59e0b3eea05da2dbf5eb00493e08d1 Mon Sep 17 00:00:00 2001 From: Arvind Thirumurugan Date: Mon, 24 Apr 2023 16:35:23 -0700 Subject: [PATCH 22/42] refactor err check --- pkg/controllers/work/apply_controller.go | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/pkg/controllers/work/apply_controller.go b/pkg/controllers/work/apply_controller.go index 4dd738b84..fb53c35d1 100644 --- a/pkg/controllers/work/apply_controller.go +++ b/pkg/controllers/work/apply_controller.go @@ -404,14 +404,13 @@ func (r *ApplyWorkReconciler) applyUnstructured(ctx context.Context, gvr schema. // belong to multiple work so it contains the union of all the appliedWork manifestObj.SetOwnerReferences(mergeOwnerReference(curObj.GetOwnerReferences(), manifestObj.GetOwnerReferences())) // record the raw manifest with the hash annotation in the manifest - if err := setModifiedConfigurationAnnotation(manifestObj); err != nil { + if err = setModifiedConfigurationAnnotation(manifestObj); err != nil { return nil, ManifestNoChangeAction, err } annotations := manifestObj.GetAnnotations() klog.V(2).InfoS("validating annotation size for manifest", "gvr", gvr, "manifest", manifestRef) - err := validation.ValidateAnnotationsSize(annotations) - if err != nil { + if err = validation.ValidateAnnotationsSize(annotations); err != nil { klog.ErrorS(err, "not using three way merge for manifest removing last applied config annotation", "gvr", gvr, "obj", manifestRef) delete(annotations, lastAppliedConfigAnnotation) From d90245c4f433b5dacc75cc02e766d90d960c45d4 Mon Sep 17 00:00:00 2001 From: Arvind Thirumurugan Date: Mon, 24 Apr 2023 16:43:30 -0700 Subject: [PATCH 23/42] update comment --- pkg/controllers/work/apply_controller.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/controllers/work/apply_controller.go b/pkg/controllers/work/apply_controller.go index fb53c35d1..5a6937cd9 100644 --- a/pkg/controllers/work/apply_controller.go +++ b/pkg/controllers/work/apply_controller.go @@ -423,7 +423,7 @@ func (r *ApplyWorkReconciler) applyUnstructured(ctx context.Context, gvr schema. return curObj, ManifestNoChangeAction, nil } -// applyObject uses dynamic client's apply to apply the manifest. +// applyObject uses server side apply to apply the manifest. func (r *ApplyWorkReconciler) applyObject(ctx context.Context, gvr schema.GroupVersionResource, manifestObj *unstructured.Unstructured) (*unstructured.Unstructured, applyAction, error) { manifestRef := klog.ObjectRef{ From 6054be2f5e19b4d7657dd7813a2efd5830a04428 Mon Sep 17 00:00:00 2001 From: Arvind Thirumurugan Date: Mon, 24 Apr 2023 18:25:25 -0700 Subject: [PATCH 24/42] force conflicts on apply --- pkg/controllers/work/apply_controller.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pkg/controllers/work/apply_controller.go b/pkg/controllers/work/apply_controller.go index 5a6937cd9..288156ceb 100644 --- a/pkg/controllers/work/apply_controller.go +++ b/pkg/controllers/work/apply_controller.go @@ -430,7 +430,11 @@ func (r *ApplyWorkReconciler) applyObject(ctx context.Context, gvr schema.GroupV Name: manifestObj.GetName(), Namespace: manifestObj.GetNamespace(), } - manifestObj, err := r.spokeDynamicClient.Resource(gvr).Namespace(manifestObj.GetNamespace()).Apply(ctx, manifestObj.GetName(), manifestObj, metav1.ApplyOptions{FieldManager: workFieldManagerName}) + options := metav1.ApplyOptions{ + FieldManager: workFieldManagerName, + Force: true, + } + manifestObj, err := r.spokeDynamicClient.Resource(gvr).Namespace(manifestObj.GetNamespace()).Apply(ctx, manifestObj.GetName(), manifestObj, options) if err != nil { klog.ErrorS(err, "failed to apply object", "gvr", gvr, "manifest", manifestRef) return nil, ManifestNoChangeAction, err From 7ec1f95be7bad4d621c73c2cfeb086c90905423a Mon Sep 17 00:00:00 2001 From: Arvind Thirumurugan Date: Fri, 5 May 2023 14:04:47 -0700 Subject: [PATCH 25/42] set last applied config to empty string --- pkg/controllers/work/apply_controller.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/controllers/work/apply_controller.go b/pkg/controllers/work/apply_controller.go index 288156ceb..72bc6404f 100644 --- a/pkg/controllers/work/apply_controller.go +++ b/pkg/controllers/work/apply_controller.go @@ -364,7 +364,7 @@ func (r *ApplyWorkReconciler) applyUnstructured(ctx context.Context, gvr schema. if err := validation.ValidateAnnotationsSize(annotations); err != nil { klog.InfoS(fmt.Sprintf("not using three way merge for manifest removing last applied config annotation, %s", err), "gvr", gvr, "obj", manifestRef) - delete(annotations, lastAppliedConfigAnnotation) + annotations[lastAppliedConfigAnnotation] = "" manifestObj.SetAnnotations(annotations) } actual, err := r.spokeDynamicClient.Resource(gvr).Namespace(manifestObj.GetNamespace()).Create( @@ -413,7 +413,7 @@ func (r *ApplyWorkReconciler) applyUnstructured(ctx context.Context, gvr schema. if err = validation.ValidateAnnotationsSize(annotations); err != nil { klog.ErrorS(err, "not using three way merge for manifest removing last applied config annotation", "gvr", gvr, "obj", manifestRef) - delete(annotations, lastAppliedConfigAnnotation) + annotations[lastAppliedConfigAnnotation] = "" manifestObj.SetAnnotations(annotations) return r.applyObject(ctx, gvr, manifestObj) } From 6922a6a5aa817cddc179d085a200add9c65cedb8 Mon Sep 17 00:00:00 2001 From: Arvind Thirumurugan Date: Tue, 9 May 2023 00:37:05 -0700 Subject: [PATCH 26/42] Working E2E --- pkg/controllers/work/apply_controller.go | 16 +-- .../work/apply_controller_helper_test.go | 4 +- pkg/controllers/work/manager.go | 4 +- pkg/controllers/work/patch_util.go | 6 +- test/e2e/utils/workload_test_utils.go | 15 ++ test/e2e/work_load_test.go | 135 +++++++++++++++++- .../resources/test-large-secret.yaml | 10 +- .../resources/test-small-secret.yaml | 8 ++ 8 files changed, 172 insertions(+), 26 deletions(-) create mode 100644 test/integration/manifests/resources/test-small-secret.yaml diff --git a/pkg/controllers/work/apply_controller.go b/pkg/controllers/work/apply_controller.go index 72bc6404f..a27805dea 100644 --- a/pkg/controllers/work/apply_controller.go +++ b/pkg/controllers/work/apply_controller.go @@ -364,7 +364,7 @@ func (r *ApplyWorkReconciler) applyUnstructured(ctx context.Context, gvr schema. if err := validation.ValidateAnnotationsSize(annotations); err != nil { klog.InfoS(fmt.Sprintf("not using three way merge for manifest removing last applied config annotation, %s", err), "gvr", gvr, "obj", manifestRef) - annotations[lastAppliedConfigAnnotation] = "" + annotations[LastAppliedConfigAnnotation] = "" manifestObj.SetAnnotations(annotations) } actual, err := r.spokeDynamicClient.Resource(gvr).Namespace(manifestObj.GetNamespace()).Create( @@ -399,7 +399,7 @@ func (r *ApplyWorkReconciler) applyUnstructured(ctx context.Context, gvr schema. } // We only try to update the object if its spec hash value has changed. - if manifestObj.GetAnnotations()[manifestHashAnnotation] != curObj.GetAnnotations()[manifestHashAnnotation] { + if manifestObj.GetAnnotations()[ManifestHashAnnotation] != curObj.GetAnnotations()[ManifestHashAnnotation] { // we need to merge the owner reference between the current and the manifest since we support one manifest // belong to multiple work so it contains the union of all the appliedWork manifestObj.SetOwnerReferences(mergeOwnerReference(curObj.GetOwnerReferences(), manifestObj.GetOwnerReferences())) @@ -413,7 +413,7 @@ func (r *ApplyWorkReconciler) applyUnstructured(ctx context.Context, gvr schema. if err = validation.ValidateAnnotationsSize(annotations); err != nil { klog.ErrorS(err, "not using three way merge for manifest removing last applied config annotation", "gvr", gvr, "obj", manifestRef) - annotations[lastAppliedConfigAnnotation] = "" + annotations[LastAppliedConfigAnnotation] = "" manifestObj.SetAnnotations(annotations) return r.applyObject(ctx, gvr, manifestObj) } @@ -451,8 +451,8 @@ func (r *ApplyWorkReconciler) patchCurrentResource(ctx context.Context, gvr sche Namespace: manifestObj.GetNamespace(), } klog.V(2).InfoS("manifest is modified", "gvr", gvr, "manifest", manifestRef, - "new hash", manifestObj.GetAnnotations()[manifestHashAnnotation], - "existing hash", curObj.GetAnnotations()[manifestHashAnnotation]) + "new hash", manifestObj.GetAnnotations()[ManifestHashAnnotation], + "existing hash", curObj.GetAnnotations()[ManifestHashAnnotation]) // create the three-way merge patch between the current, original and manifest similar to how kubectl apply does patch, err := threeWayMergePatch(curObj, manifestObj) if err != nil { @@ -561,8 +561,8 @@ func computeManifestHash(obj *unstructured.Unstructured) (string, error) { // remove the last applied Annotation to avoid unlimited recursion annotation := manifest.GetAnnotations() if annotation != nil { - delete(annotation, manifestHashAnnotation) - delete(annotation, lastAppliedConfigAnnotation) + delete(annotation, ManifestHashAnnotation) + delete(annotation, LastAppliedConfigAnnotation) if len(annotation) == 0 { manifest.SetAnnotations(nil) } else { @@ -634,7 +634,7 @@ func setManifestHashAnnotation(manifestObj *unstructured.Unstructured) error { if annotation == nil { annotation = map[string]string{} } - annotation[manifestHashAnnotation] = manifestHash + annotation[ManifestHashAnnotation] = manifestHash manifestObj.SetAnnotations(annotation) return nil } diff --git a/pkg/controllers/work/apply_controller_helper_test.go b/pkg/controllers/work/apply_controller_helper_test.go index e0cd3f935..4185e2da9 100644 --- a/pkg/controllers/work/apply_controller_helper_test.go +++ b/pkg/controllers/work/apply_controller_helper_test.go @@ -51,8 +51,8 @@ func verifyAppliedConfigMap(cm *corev1.ConfigMap) *corev1.ConfigMap { for key := range cm.Annotations { Expect(appliedCM.Annotations[key]).Should(Equal(cm.Annotations[key])) } - Expect(appliedCM.Annotations[manifestHashAnnotation]).ShouldNot(BeEmpty()) - Expect(appliedCM.Annotations[lastAppliedConfigAnnotation]).ShouldNot(BeEmpty()) + Expect(appliedCM.Annotations[ManifestHashAnnotation]).ShouldNot(BeEmpty()) + Expect(appliedCM.Annotations[LastAppliedConfigAnnotation]).ShouldNot(BeEmpty()) By("Check the config map data") Expect(cmp.Diff(appliedCM.Data, cm.Data)).Should(BeEmpty()) diff --git a/pkg/controllers/work/manager.go b/pkg/controllers/work/manager.go index 067471bc7..5bb03a3fb 100644 --- a/pkg/controllers/work/manager.go +++ b/pkg/controllers/work/manager.go @@ -32,9 +32,9 @@ import ( const ( workFinalizer = "fleet.azure.com/work-cleanup" - manifestHashAnnotation = "fleet.azure.com/spec-hash" + ManifestHashAnnotation = "fleet.azure.com/spec-hash" - lastAppliedConfigAnnotation = "fleet.azure.com/last-applied-configuration" + LastAppliedConfigAnnotation = "fleet.azure.com/last-applied-configuration" ConditionTypeApplied = "Applied" ConditionTypeAvailable = "Available" diff --git a/pkg/controllers/work/patch_util.go b/pkg/controllers/work/patch_util.go index 6964d731a..3742a283f 100644 --- a/pkg/controllers/work/patch_util.go +++ b/pkg/controllers/work/patch_util.go @@ -90,7 +90,7 @@ func setModifiedConfigurationAnnotation(obj runtime.Object) error { } // remove the annotation to avoid recursion - delete(annotations, lastAppliedConfigAnnotation) + delete(annotations, LastAppliedConfigAnnotation) // do not include an empty map if len(annotations) == 0 { _ = metadataAccessor.SetAnnotations(obj, nil) @@ -105,7 +105,7 @@ func setModifiedConfigurationAnnotation(obj runtime.Object) error { return err } // set the last applied annotation back - annotations[lastAppliedConfigAnnotation] = string(modified) + annotations[LastAppliedConfigAnnotation] = string(modified) return metadataAccessor.SetAnnotations(obj, annotations) } @@ -122,7 +122,7 @@ func getOriginalConfiguration(obj runtime.Object) ([]byte, error) { klog.Warning("object does not have annotation", "obj", obj) return nil, nil } - original, ok := annots[lastAppliedConfigAnnotation] + original, ok := annots[LastAppliedConfigAnnotation] if !ok { klog.Warning("object does not have lastAppliedConfigAnnotation", "obj", obj) return nil, nil diff --git a/test/e2e/utils/workload_test_utils.go b/test/e2e/utils/workload_test_utils.go index 3c4fe84c7..a38aadd4d 100644 --- a/test/e2e/utils/workload_test_utils.go +++ b/test/e2e/utils/workload_test_utils.go @@ -78,6 +78,21 @@ func CmpRoleBinding(ctx context.Context, cluster framework.Cluster, objectKey *t }, PollTimeout, PollInterval).Should(gomega.Succeed(), "Failed to compare actual and expected role bindings in %s cluster", cluster.ClusterName) } +// CmpSecret compares actual secret with expected secret and returns actual secret. +func CmpSecret(ctx context.Context, cluster framework.Cluster, objectKey *types.NamespacedName, wantSecret *corev1.Secret, cmpOptions []cmp.Option) *corev1.Secret { + gotSecret := &corev1.Secret{} + gomega.Eventually(func() error { + if err := cluster.KubeClient.Get(ctx, types.NamespacedName{Name: objectKey.Name, Namespace: objectKey.Namespace}, gotSecret); err != nil { + return err + } + if diff := cmp.Diff(wantSecret, gotSecret, cmpOptions...); diff != "" { + return fmt.Errorf("secret binding(%s) mismatch (-want +got):\n%s", gotSecret.Name, diff) + } + return nil + }, PollTimeout, PollInterval).Should(gomega.Succeed(), "Failed to compare actual and expected secret in %s cluster", cluster.ClusterName) + return gotSecret +} + // WaitCreateClusterResourcePlacementStatus waits for ClusterResourcePlacement to present on th hub cluster with a specific status. func WaitCreateClusterResourcePlacementStatus(ctx context.Context, cluster framework.Cluster, objectKey *types.NamespacedName, wantCRPStatus fleetv1alpha1.ClusterResourcePlacementStatus, crpStatusCmpOptions []cmp.Option, customTimeout time.Duration) { gotCRP := &fleetv1alpha1.ClusterResourcePlacement{} diff --git a/test/e2e/work_load_test.go b/test/e2e/work_load_test.go index bbb5c4af2..b8b1dbd59 100644 --- a/test/e2e/work_load_test.go +++ b/test/e2e/work_load_test.go @@ -19,16 +19,19 @@ import ( workapi "sigs.k8s.io/work-api/pkg/apis/v1alpha1" "go.goms.io/fleet/apis/v1alpha1" + workcontroller "go.goms.io/fleet/pkg/controllers/work" + pkgutils "go.goms.io/fleet/pkg/utils" "go.goms.io/fleet/test/e2e/utils" ) var _ = Describe("workload orchestration testing", func() { var ( - crp *v1alpha1.ClusterResourcePlacement - labelKey = "fleet.azure.com/name" - labelValue = "test" + crp *v1alpha1.ClusterResourcePlacement + labelKey = "fleet.azure.com/name" + labelValue = "test" + // Ignoring typeMeta to get the tests to pass, not sure why. resourceIgnoreOptions = []cmp.Option{cmpopts.IgnoreFields(metav1.ObjectMeta{}, "ResourceVersion", "UID", "Annotations", "CreationTimestamp", "ManagedFields"), - cmpopts.IgnoreFields(metav1.OwnerReference{}, "UID")} + cmpopts.IgnoreFields(metav1.OwnerReference{}, "UID"), cmpopts.IgnoreFields(metav1.TypeMeta{}, "Kind", "APIVersion")} ) Context("Test Workload Orchestration", func() { @@ -320,5 +323,129 @@ var _ = Describe("workload orchestration testing", func() { By("delete cluster resource placement on hub cluster") utils.DeleteClusterResourcePlacement(ctx, *HubCluster, crp) }) + + It("Apply CRP select namespace propagate small secret, then update secret to be large to handle annotation limitation", func() { + By("create the resources to be propagated") + namespace := &corev1.Namespace{ + ObjectMeta: metav1.ObjectMeta{ + Name: "test-namespace", + Labels: map[string]string{labelKey: labelValue}, + }, + } + Expect(HubCluster.KubeClient.Create(ctx, namespace)).Should(Succeed(), "Failed to create namespace %s in %s cluster", namespace.Name, HubCluster.ClusterName) + var testSmallSecret corev1.Secret + err := pkgutils.GetObjectFromManifest("./test/integration/manifests/resources/test-small-secret.yaml", &testSmallSecret) + Expect(err).Should(Succeed()) + Expect(HubCluster.KubeClient.Create(ctx, &testSmallSecret)).Should(Succeed(), "Failed to create small secret %s in %s cluster", testSmallSecret.Name, HubCluster.ClusterName) + + By("create the cluster resource placement in the hub cluster") + crp = &v1alpha1.ClusterResourcePlacement{ + ObjectMeta: metav1.ObjectMeta{Name: "test-crp"}, + Spec: v1alpha1.ClusterResourcePlacementSpec{ + ResourceSelectors: []v1alpha1.ClusterResourceSelector{ + { + Group: "", + Version: "v1", + Kind: "Namespace", + Name: namespace.Name, + }, + }, + }, + } + + Expect(HubCluster.KubeClient.Create(ctx, crp)).Should(Succeed(), "Failed to create cluster resource placement %s in %s cluster", crp.Name, HubCluster.ClusterName) + + By("check if work gets created for cluster resource placement") + utils.WaitWork(ctx, *HubCluster, crp.Name, memberNamespace.Name) + + By("check if cluster resource placement status is updated") + crpStatus := v1alpha1.ClusterResourcePlacementStatus{ + Conditions: []metav1.Condition{ + { + Reason: "ScheduleSucceeded", + Status: metav1.ConditionTrue, + Type: string(v1alpha1.ResourcePlacementConditionTypeScheduled), + }, + { + Reason: "ApplySucceeded", + Status: metav1.ConditionTrue, + Type: string(v1alpha1.ResourcePlacementStatusConditionTypeApplied), + }, + }, + SelectedResources: []v1alpha1.ResourceIdentifier{ + { + Version: "v1", + Kind: "Secret", + Name: testSmallSecret.Name, + Namespace: testSmallSecret.Namespace, + }, + { + Version: "v1", + Kind: "Namespace", + Name: namespace.Name, + }, + }, + TargetClusters: []string{"kind-member-testing"}, + } + utils.WaitCreateClusterResourcePlacementStatus(ctx, *HubCluster, &types.NamespacedName{Name: crp.Name}, crpStatus, crpStatusCmpOptions, 3*utils.PollTimeout) + + By("check if resources in namespace are propagated to member cluster") + ownerReferences := []metav1.OwnerReference{ + { + APIVersion: workapi.GroupVersion.String(), + BlockOwnerDeletion: pointer.Bool(false), + Kind: "AppliedWork", + Name: crp.Name, + }, + } + expectedNamespace := namespace + expectedSecret := &testSmallSecret + expectedNamespace.OwnerReferences = ownerReferences + expectedSecret.OwnerReferences = ownerReferences + + utils.CmpNamespace(ctx, *MemberCluster, &types.NamespacedName{Name: namespace.Name}, expectedNamespace, resourceIgnoreOptions) + // Ignoring Annotations here because fleet.azure.com/last-applied-configuration has live fields, checking to see if it's not empty instead. + gotSecret := utils.CmpSecret(ctx, *MemberCluster, &types.NamespacedName{Name: testSmallSecret.Name, Namespace: testSmallSecret.Namespace}, expectedSecret, resourceIgnoreOptions) + Expect(gotSecret.Annotations[workcontroller.LastAppliedConfigAnnotation]).To(Not(BeEmpty())) + testSmallSecretSpecHash := gotSecret.Annotations[workcontroller.ManifestHashAnnotation] + + By("update secret so that annotation limit crosses threshold of 256KB") + var testLargeSecret corev1.Secret + err = pkgutils.GetObjectFromManifest("./test/integration/manifests/resources/test-large-secret.yaml", &testLargeSecret) + Expect(err).Should(Succeed()) + // testLargeSecret has the same name as testSmallSecret + Expect(HubCluster.KubeClient.Update(ctx, &testLargeSecret)).Should(Succeed(), "Failed to update secret %s to be large in %s cluster", testLargeSecret.Name, HubCluster.ClusterName) + expectedSecret = &testLargeSecret + expectedSecret.OwnerReferences = ownerReferences + + // Ignoring Annotations here because fleet.azure.com/last-applied-configuration has live fields, checking to see if it's not empty instead. + gotSecret = utils.CmpSecret(ctx, *MemberCluster, &types.NamespacedName{Name: testLargeSecret.Name, Namespace: testLargeSecret.Namespace}, expectedSecret, resourceIgnoreOptions) + Expect(gotSecret.Annotations[workcontroller.LastAppliedConfigAnnotation]).To(BeEmpty()) + Expect(gotSecret.Annotations[workcontroller.ManifestHashAnnotation]).ToNot(Equal(testSmallSecretSpecHash)) + + By("update secret so that it's small again") + // Using a new variable to prevent failure, leads to 409 if not. + var smallSecret corev1.Secret + err = pkgutils.GetObjectFromManifest("./test/integration/manifests/resources/test-small-secret.yaml", &smallSecret) + Expect(err).Should(Succeed()) + Eventually(func() error { + if err := HubCluster.KubeClient.Update(ctx, &smallSecret); err != nil { + return err + } + return nil + }, utils.PollTimeout, utils.PollInterval).Should(Succeed(), "Failed to update secret to be small in %s cluster", HubCluster.ClusterName) + expectedSecret = &smallSecret + expectedSecret.OwnerReferences = ownerReferences + + // Ignoring Annotations here because fleet.azure.com/last-applied-configuration has live fields, checking to see if it's not empty instead. + gotSecret = utils.CmpSecret(ctx, *MemberCluster, &types.NamespacedName{Name: smallSecret.Name, Namespace: smallSecret.Namespace}, expectedSecret, resourceIgnoreOptions) + Expect(gotSecret.Annotations[workcontroller.LastAppliedConfigAnnotation]).ToNot(BeEmpty()) + Expect(gotSecret.Annotations[workcontroller.ManifestHashAnnotation]).To(Equal(testSmallSecretSpecHash)) + + By("delete namespaces") + utils.DeleteNamespace(ctx, *HubCluster, namespace) + By("delete cluster resource placement on hub cluster") + utils.DeleteClusterResourcePlacement(ctx, *HubCluster, crp) + }) }) }) diff --git a/test/integration/manifests/resources/test-large-secret.yaml b/test/integration/manifests/resources/test-large-secret.yaml index d6961a1b4..420102118 100644 --- a/test/integration/manifests/resources/test-large-secret.yaml +++ b/test/integration/manifests/resources/test-large-secret.yaml @@ -3,10 +3,6 @@ data: release: SDRzSUFBQUFBQUFDLzl6OWVZK2p5cFl2REgrVlZPcVY3cjE5ZHRVR25LNmRybGY5aHlFTmhyU3BNcmFaN202MUdGeUFIV0JPR2crNG4vUGRIOFdLQ0FnOFpBMzduRmJyMFZIcDdNeTBHU0pXclBHM2Z1dS9Ib3NnWHoxK2ZzenJEMityT05zOS92YVlGZCsyajUvLzYvRmI5cmFyL2pOZWxXaGJyK0xIejQrU0lQVStDTklIUVZxSW56NUx3bWRSK0Rqb1B6K0wvUS9DODJkQmVQenRFUVUvL1pWNGhWWVZmQmgrMkVWdldWbGwyK0x4ODZOZTdLb0FvWWRvbTVmNFE0Ky9QZTZxb05ydkhqOC9OamY1N2JIWVZpdjhLMlU4dEJZUDVuQTYrdndBTC9NaFF2dGR0WHI3c3lCL3NrZldYUDlpZm41NC9paDkvT1BQWXZqMWEvdTdQejRLSC92LzltOFBYOUVxMkswZXd0VkRHVlRacXFnZWptbUdWZzlWdW5xSTB1Q3Rlc2gyRCtFcUs1SUg5Z3dQLy9admZ4YjRmNHZ0UTdLcUh1cnQvdTJoREhhNzQvWXRmbmpiRjUvL0xCNGVIaDVXcDNMN1ZqMVlveGQ5L3A5ZmgvTzU4OFY2K2ZmLzMvL2U3TU5WVkNINDdtNFZ2YTJxaHc4ZjhNYnN5aUJhUGZ6NUdLKytCWHRVL2ZuNHdQYnBRK2NGSHo1c0g5YTdiVkVHVmZydmZ6NysxOGM0cUlLUDVDUHNPZjd4NStQRC8vTVFCcnZWcDZlSEQvSC93Yy9yYmZjUGFYQll0VzhTUEZqNFczL3VCVUg2OUxaSy92OFBDcjFGRUVXcjNTNEwwZXBoVzZENjRkdmJObjg0WmxXYUZmaUZIMTczNGVxdFdGV3JIZnZLUjkxVXYzeCtXS1NyQjJNYlBsVGJoK2h0RlZSMEtlbGxqeGxDZUxISm4rS1BpKzFEdEMyS1ZWVGhMOEJLWGo0Ui9lcG4vQWJpeHdkclg5eDQ3SEliUDFScEFKdnhFQVhGdzM2M2VnaDJEOEZEaFBDdWZ2NnpZTXYrdGk4NjYwMVgrODVhZnlEZmYvanc0UzEvK1BDaHF1cUhEeG4rYWJXcmdyZnEzLytYdVRxczN2N1h3NTkvL29rdnV5b09WeHZlL1JrKytlRkRsZ2ZKNmlIZVJwdlYyOGRzKzN1WVZVV1FaNzkzYnY0WnBQUkR2QXF6b1BnZ2loL2VCZzhmUHVCZFRmRnFTQjhmRkxwNCt4MldVTHpTVnhzNjBXSHAySVd6aHcvUnc0ZjBybWdGRHhjUFRHVDk4UisvUGNKNXdMb2lYMVVCbGpuODMxU2pkSzd5K050anVvVmZwMVZWN2o3Ly9udVNWZWsrL0JodDgrWk40V3E3MzZ1MzFlcjNQTWlLMjB1QWxjQjIveGJoSS85LzM3M2N0cWlDckZpOTNiMGtmcXFxS2ovL1RuN0VxLzc0SDc4OUhsWnZPNktBUUU5Y3FTVlkwUDl0L1Irc0NJTGlZVnV1aWdmeVNMODk3S0lBQlNGYS9mWVFaN3ZxTFF2MzFTcCt5SW9QK1NyZnZ0VVBVUkNscTRkdjI3ZUhvQ3hSRmdYNG1ydVBEM29GUWhxdXNKekdXUFIzMWZadDlSQVU4Y051OVlhUGFGQUZEMWtCVy9wdCs1WS9iTDg5NERzVXllNjNoelRZcGF2ZGJ3OG8yMVc3M3g1MnEycEh2cnA5dy9mSFAzOTgvTzF4czZxeEtvQ1ZZeXV3V2RXSEFPMnhjc1czd0FvQ0x3SmVMYnA4ajUvL2I3T3JNbG0veDk4ZTkyL29SN2J6OFIvLzhkdGpGc0hDc1EvVFQ4Q25neDErdU45M1ZSQnRkbVFmZnMveWhPNDUvUHFESkFrbnFmZjBzU3lTeDk4ZWd6S3pteDA2U1BDYnN2ME5uQkQ4eTZMWVZtUjVzVlJHUWJWS3RtLzE0K2ZIRi9hYS84QTdXNjZLZUZWRTJhcnpudEUyejdmRkl5OE0wc2ZUeDlQamI0OXZxM0s3eXlweUxmWks1R1UvOG04V05rdFZCUWtzT2YzTkIzcngvL2p0Y1ZWZ1lZa2ZQMWR2KzlVLy91TWZ2ejJpYmJUQno1dXNpdFZiVURFcktuMFFCaDhrY1NGSm44WG56NkwwVVJSNnZmNmdMeno3ZU9PeVpMV3JIajgvN3RKQTZuLzYvRWY4RkF5ZWc4RzNJSXg2NGVxVEZQU2VCODlSMU84SnNURDRZeEIrQ29UZ0taWUcwZk1mcTFpS1JlbjVXUksvU1dMMFBBaURKMktXZjJKaGhJKzlYMWdZZU45cWxaY29xTG8zYVg3NXUvbGxNWnAvckU0VkZjL0h6NDh6SVpXWGFKWXNOcXBwTGJiSnFyZExKaHR6NjdtR01ObjAwOUJaSnQ5YzRaVjl6dDdZODZXQXZpN1dGNTlGUG9vS3N3eWxKL0o1VzU3cHFxOHVrV2tzaEtkUCtyajZRMWY2TDRHbTFySFNsNk94N1BpdWNRNmN3VjRmaXdNbEtmOVkxVUppakUzazlRd1VqOGk5djZ5RkpIRDY2M0JzYi96NU1JdHlleE80MDhxVFRtTFVzMUNVOWMrK1k5YSthMzN4SEJIcDJYQ3ZLK0xnMit6aWVxcWNSajJ6Ri9hTXpWeXkrL3JMZHFCcmFJK3Y0MnZMUkM4TTVHdm9QSEhNWGV5YWd1L3ErMGl5MTFGdUMwdE5QVWU5K0JEbDFzUjNONW11UENVVEZ6L3o5dSt2bVR3TE5UdU5wR1hpNWNzazBsUWhjT3g5ck1pOVFFTTdmeTRMZ2JaTVBDbE5vMktXQk80MDhYSzdEUE1vOFRYN0dHcUR2dS9Na3Rkcys2b1UxUitUdVZ6NjJYQnY1K291ZHV6ekpMZEt6NG4zWWM4VUFzYzBROGxDazl6ZWU0Nnh3OS9EYTIxcktkSTFzZys2bHFaUkxXZStZKzkxelVLUmRqcXNISHVEMzFYWCtHdE5rOUFaYlB6NVV6SnpUanQ5TE5laFpLQ29scmVlNnlOZE01RHZQQ1Y0VGRpOVBLZS8wY2ZXMXAvTDYxQVNLL2k1YzcrQjVMdEdMOHFSRUd2MlhoL0haYXdsbjVSa20raWFlUWdkTVEzekdjZ0Nmczh3TjNleFl5RmRNZUI2b2ZTMGo4ZnlMbWJ2WGhnb3pQRWU2OGtyZnZiZUxORUxQdzNITnV6eisydlUzQy9SOFg4WEZscU5aNW11ekVwOWZFekNITzE5RGUvVFVBRDV5NGFKNXhwRmRBYTVyanF5UWE1MUNMTytFR2tueVhOT291OU85MUZ1NDJ2VWVqYmMraHBheDhvd0k4Kyt6SFNsNzdEUCtScEtmYWwvaUhwVzZRbml3ZGVXZTdoWFBjdzhhYkNQTmZzcFZ2VEVVRGJKTjBYZUIwNS80enQ5UVg4aCs2dHNZaFFyUkk1Q0RaMWpSVDc0bVh3TUpldXNhMFpmMSt3bjN6SEZXRU43Lzd4OXhlOFM5T3pNZDB3aFZPVENkMmRKcEEwMlVUMnNKZzQrVi9ZNTB0UzFQNWYvV05YRC9USzNkNzZqbnYxNUg4NVExSk5UVDRKem4weWNZK0s1OG5HU1Y2S1gyM1dZMndKK3A4QjVQZ1JPL3h4cjZ0NlRsZ1BRQmNoQTlDenNGN2xhK1hONThHMjJmWjA1NXRwM3pUT1ZuV01velpLVk14RDFjWnlHeFN5SnRXZDhGckxZaVJLdjJDUytteUt2Wnd1QjB5K0k3TUM5MTdGMkpILzdsZmR3clZKL09YMlpMVVZWSHcwMFhiVjBheTdQRnNMc2I3b2lWTHBtcEpHVXZDb2JmRTRHTmV6cjJEcm9Zd09mb2RLVFZLRTl5M2pQMURMTThXZE1BWis3MkIwbWtXVFdnU3NMVVMyamxXYXZZOWRDK0ozaHpFdURLblRVdmY5QzlrZFhob2V3SndzVHlTaGpEYi9MNXRCK2YxRDdqbFZHdFlqMTNqblc3SG9pMmZ0NGJQUWpiVkNHeFd3ZlNVa3lrUWJIV0Jsa2dXdnRQVWNzSnoxekhlWG9HSStuaDJzOU9haGo1MmtQNzBqMERBckhKbXAxNzRYZUtleXpiN2M2RXo2SHJJT3VnU3oyd3g1K2QvN3ZoaGl1dDYrNk1reEExOTgrUDFoR2QxSE5kUFpzNzB1MjBKNlpkQk00cHFBckJ2dDdwaXRXVjc4clJoNDQ5czdINStXZWJnZDkwaGQ4TnhYMGJMaDVCVGtrOXNBSEhkYmFtOER4a2draU9pV3ErKzE2NS9ZVC92OHdWM2RNZmkvMUxsa1A4eERtZllSMUU1WmpMTmRSSnMvSi92bTE3MFIvNkdNVFJZV1Bva3pPbzN4UTZkcEFqTWRtaWRjbUpycWIyUnhzSjVBbjdlanYvVU9vblE2eGhQWitqZldsZjRoeU1ZMDFkTUJyamVWb3NSa3NzZDJldTdNa2ROUytQcmJTQU51aXVaejdicFNFRHRwak9ZeHFPUTk3T3JudTZIVHdIRXZ4bkZNYTVpWitMbU9weUVLSTlmaGNUdU5jTFVOTnpVSnR1YWV5Q3Y5c1NSVThLU0hYQUxtM3hLaVdlNEZyYmI5a3crSks1L1Q4TlQ1YklkWUZybm4wSEN4djRBZk1mZWVFUE5kRXhNZG96dkhnMjN4WXhUVSt6N0xnTytJeDFQQzVBejFaaGM1Z1A4bko1eWU1TDRiYWFkL1kvTEU0TUk1VS9sUjBpT2R5TDhCMlRVdlRPSWYxMkFTT24vdXVnYkRPd2JMaHU4YmVjNDdKM0I0bWZqNm9kYzFPOGZzdHlkbkpvOXd1dnRUeUh1eEpKby94TzVGOWFXVkQxOUJSMS93NmxJVEVVMFMwR2xzb3dzK29EWk9vWitkK2pwNnd2RVNTWGNjNVd2dnU5Sk91eVcreFl5Q3ZaKzNvZVRySHVabE1zSzVUaHBmM1A0WTlRL2lTRVIzWDJyeldUMm5mNVNSN2tvbWkzblRmM0cvZWgrOFRtU2ZYcC9ZdDE3WCtJVlorNlpxN1VGSTNzMXpkZVU1Lzdic0dsaCtzNitINkM2bS9acnB5b1ExU2YyU2tJZGdKdTU3YjhsblgxTnFmeTdYdnFKdlYvRWhzZ2RaSGVKM3dHWXJHeGlITzBZWmN3NjUwVGQzN2luejBYU01QZTBhbGE2TmtydG03Y0M3YmtSYlhubU9oTHduZGV5MUZvU1lrc1NzWFVhNWluL0duYmNWZFc0YXY1Wm9JMjNuTy8yejNmS1N1UGNrK1IzVWZoVGsrUC9ibXEydlZzYlBjZmVmelo5ODFwTUF4MGFTdytwRzJIRnl1Ryt5Wll0V2hOQkRBZDFXd255M2lkOWw0MGtERU1vMTk1ZHU2ckgvd05mdU0vWjRBK3hWakVleDFsS3Q3WDFvbWhyYlo2WW9sd1hYSDloN3JhRjJ4MW1FUC9OakJ0L25wZmIxWWdINHJQV201RDYvM084VDNNclFOZnQ3NHE0TjF6Nnp5V3RrcEkwVWt2anI1VEVkUDY1bGNyZVppN2J2eVlkSzc4dEhwZVkrMytGenJHdWkxck5WcklyNTJTZVh0dmp4aTM3Zm5sNzZHL1dTajMvaTQ3SjA3NThiZVlWOGYvSC9RamZKMzdBamFCKzZNLzd5eDJQaGZ2MlR5RWovUFBCOWs0R2RvSmo0UG5JL0I1SVhwTWZ4KzlEUE9iTS9mRzlZS1loNm0vKzdhcFkzbldxbVhZN24vdmkxaWZoaDdKajhmN0VKdDBNTitXZXZQVytmMjdObFBrVGFvWTBWZVdMYmh6SmVtNmdwbzluVSsyLzV6Yk1PdjJRVjhuMWl6cTBnN3BUSEVldmcrQnI1VzdUbjl3cDhQdCtCenUwa3lLWmhkdTlSeE92YkxpeWpINTNWNEJKL0N4ZGRoNTFCR09OYjQ1Z29aa2RzTjlZVmFtUTNtd3dyN3JvRXkzQ3dGZTI1djBJdGxENHlsTXF3aTVVSy9jMmNLMW5RTThRYTJDMHhIRVIzT3hSbXhhNkkyVnAxUi8zMlVHS3FoV2lPMGNFVlpYb3FtdXhDTkVUNlQ3SXpoLzc2UVh5RWNUL2UrMDArOS9JUjhoZWsrYTBkaUNQeHNzMlRTczZwSUdheEREV0diQ3VjcFZ2RGZLN1NhRHcreEpoNG5rcmtqOFhEL3pYYzN5V1F1cnIzdTkxOW1jOUFEQXY5TVYvTE4rV3krY3pxejJNSUIyMEZzUEI5UGUvTUxIMnpFK1ZoVWJ3WFlsNXZMaHpBLzlaa05qeVVrQkRoV0hvTVBNY0YyT3NyN0tNYjZzNzNHL3Z2K0kzZnVOK2lMdFhuK3BLdWdWMTVEU1ljemlYMVhqOFlJdkw3QmNYT29IU0dmd0Q3akswK3ZWUC9zZldWWS9aVC8yWjVwSEl1ZkpwazhqNTJuNnpVYXl3Y2Y0a3hWb08rLzlweW5CTXVWcnFsbmJIYzk2VlRpMkJTZitac3lxSjJ1L0dSOERyanpqK01RTEFkNzN1N2V0TG1OWGhBSG9CdkdGZ3BkZVFkcnh1VU1pQTZaN3YzQzNvVVFTeTB6Y2k2RmlqMHYxZ0g0N01hYVdzY3ZRckhJYmNsMzlRTC8zbmY2a243ampIeWRXM05yYVJsTGNUQ2IyZWJDRmdaekMrUWJWWjRUb3h2UGRCMjM1ZlN6bkM1cVlrRjhyYmw4RGpVYlJRcjQ5MldZSTJGRjlmaE1HaHhYY3hwcnFkWjBXY3R3VGdMSEovR29PNFU5Si82NGZHaGlTeTVlOW5yRG4xOXJaWEQwWEdzNzZWa0g3dnpDdmYvcVBuekpCa0xvRGcvczUwa091dUJTUnRhUjhnc3hmazlPWXkwNXhOb3pkMzJzaTM3TmJvRE94dS8rc3IybHkvN3B6endUUmxTSC9wT2VWekJsdHI0Z0Y2cDlmdCtXRXgzaXVaYmdPZWFXNUQrYW5BM0o0eWw4N0dJLytjNFV5NWNRanpmSnhObUFiSFZzYlJ2N0V4bXMrM25zbkhZZ0szTTltV1RZdG9qTWhpVHVjTnZ4cVNESHFDUmNqTkpIOFJqYnQyb1dTcWZTNjIwNE83VkpYcTlpbXV2UGUvait2Vmh0L0hCbEF6STZjVTZwbDl1NzZDeGtmL0U5QnZIWUVQSHYzVEhOdGVTdEx2ejU4OWptcDNnZkZGL3ZmNFplRlRveU1BRi9uZVRGdnM3akw3N3JveWlMRW5mNFkzbW1uOWZKY3RUeEhabzh1Z3d5L2NyWnB6QzNoVmdhMUlFb0gwSU5yVmZ6TmxaN25RKzNZVDRROVBjL24wSk9SbWpqSVBBRjUwSVZhbXFHZlpPdmMrTXZubDlSaUFvYjZSbThGN1g1NE8vOFpkdHpJVWZzdXEvVDdBbmJHL3krNjFpUnhZamtuRUJYWE9RalhoYWp6U2NsS2R2N2FYamZwOG5FU1g3dC9MdVFML3ovcmkvYjVGZi9HK1Z4Vm40SmV4YjZrc21Md0lGOHpCZmZ0ZkFaZTF0cWcxM2dtSDFkUTJjc0E5UlgyK25hWUIrT043UldRUEo2dWtaMElqNVRmMFZQMER4SXBoU2NiMHY4YnlHczVYVW85ZmRZajdHY084Uk1TWGtSMzVaWDhlNVZyZVpHSFMvTzFWM2dXR21zMld3ZDJmUDkwUGRKVHJhYWg5SnBoKzJscmFsRlZGUFpuYkU0b0sxUk5tZTlpTk1vNzVkaEhwOG5oWEVJdFJQKzc2WG5SSjM2VUp3UGRyRWpvaVhlUHdlZEl3a2R3bUs2RHh3eDlhbWVmNmNtMWZOY2c4U21kYi9tbjdGVEl5dk1maVNaUWpoaStxT2JBeWQyOXY3NXU3YXI5bFBnbWxDaldkSTY2ZXVjeGlVWnpaVW9WdTI3cWhpNEJ2SzVIRDJwdlhicmVaQzN6NFpaMU40eisyZlhBYWpNSktUK09OeEV1WDJLSFlUMTJNeHp6VE0rVi83SXJxTjhVRi9WaDl2MWxqem5WUHBRNXgzc283cmYxZ094enBST2FKTGJWVFMyOFB2Y3ZvZHlzVTYzNzRPaXdqaEVCZDRMbHN2c0g1dHJnRTRUai9GNHc5ZE5PczltdVVZZDlveXpuZzIzcEc3NC9qdS96cS9ya1JDL0ZxMFBjL2t6Zm8vSGYveDJBMnp3bitrS2xhdTMzY2VxUkMzZVlOWGJIVjR6V1FvYzRaTStObEdzeUhuZ25GQThSa2QvSVZiNHpHSGYwMTlzazlkc3dNNzQ0VFVwNTc1cmlWSCt4T0tkT3V6SjZEcldwZkpOOU5BcnVRYlZHNXFkQjA3L2U3YXlvdWZ0OXBtbW40dnFmaGs2YW9GdFdGT2JwbjliNW9NRFhqL09CdEhQRGpOZk9oMjhYTjExNjlmeExwUU01b2RleC9sNHZldnQ2eExyZnRmWU01ODh5Z2RIMzlVVHBpZUlUUjF1b1paQlBsUDVybFVIam5sbTYvSTYyLzU5MG12MmNPTTdPT2E4cmZkQ3h4YWlISzM1ZDJYN2YwZG15ZWZjUm5meHNrbitaaHVIc0RmcjZML3IrL3kzcnhQRTNSQUhGVmFLWlNUS1pDbVVUbUxvTEt1b3E1ZlpkVW9sMng3YTU3Q1FuNlA5SFl3S3ZaWTk4MTJqQ2lEM0JMcmpYN3F1MzdNcmVyT2VIVmt0UW0yUWVjNng1SHpwOXV5RHpYait1NElNRkkvdE9zems4OG8xSWRkQXIvdmpaNDdaSk9WZnV3NVJENTF4dkRyLzU3NDMrTWJSMkRoZytkQkgxc0dUS3FpbGtuZkJlaWt1bzU1VnIrYnlndHF4aE1SZjA1L1dTOHV4dlF0VmF1ZkcySDhSMy9jOVdqMTF4UDQyczlIWWI3blVWK1IzcHpMcXpXN3BMTzc4aVNnZUc2WFhhOWEvMUJXRHJWc1g4MExQTC9NSmZ2Q3NwaEhSNjNWQWFpRnBwS0VXSjZiNWh5aVQ5OHlQamFnZk8wbnU2TFJic2I4cmwzWnUxM0FXTXAyM1o5Zy9QL3VPS1BtdThSSks0dEZ6RGFRcit0KytMa1o3VXhHT0UyWDRQSjAvOVNhTElYN1hGOCtWVXk5SHU4QzFTdnpPY3h5TDJ3ME9ibTlKU0dqdnhhM0RHTDhmanAwTnFBV0c4UG4rZWRMelRsNXVDOTVpbEhYOTNkUFpuOS84ZnJNVzJBK2I1THNuMkxkNklFM24rbmR0OTN0eTdibEViMFk1Z2pnT3I1dlZNdzZ4UzJ2bHFuendRUjd0T25DdC92SjdlMUhjK1h5dUhvTmxYSWM5KzZqemE0VGp3YkdKUXRkSDBjWThoSzZjUnZnNjY2ZkJkUDUwd3Z1QmJjTk1VbytlWTVTaGhvUUF5K2dHY3ArTnpFdzJjUm1yTFRhUld3UDhidnRZd1Q0bmpZYzY5K2ZxZkJlZmg5cTQwNmM2L05mWEdXSjhxTU9QRW50MFd1ak1qMVhrZzVlWGtOT1BwUFFRTzZmTlJmM3ZKL1FIL1k1dDdTS1JYZjlLN2lFdXZSOHo4M0VFanB2N2FleGFCMHV5OTc1cjRMaHFveXZwUHV6ZHVJYWJZaDJJNHg2bUE4dDduNFdZVzBONTRKajRtdWMycm1peEJVVCtJWmI4Uy9MTnNKMmN6UWRNSnMxMWtQM1FjR3h2bFg2TzFqam1qWTQvN2p2RjJxbDUvZ1hMZFRUUE45eEVuYjhOUDMwRlRLVzY4MTF6M2RHNVpMM1JDdnZ2R3RyN3pSNWVmZWFpTm1BMk5xZTcxMWYzcmxoZWt1SXlpWnhyWHFKbk5zUU84VmplWGNkZmVCOXY2Nmg3MTVvNFpvMWw3L1cyYmIrVEg5cjh0WDNHc1JEQk50RzZPdVRYSWVhNHI2dHU3K2NNdm50NWRxQjIvQjQrR2E4MWx1ZGxPRzcyQlBJUHIrK3UxK0FRaldjSEwwY0NYb3RnempDQkE5am5xSDRHdTYzVHZZK0tXZllEKzlIRzQ4b3dtM1hPMnpMeGM3VHpIWUs3eG1lZ2pSVm5TU3lsS016azVVTEYvdTlUMHVvRy9mWTVIdmxsQ0xrbEVlbmpJL2FUeXJDd2NsM1JyM0dQWk0wTzhMM3g5R0M0MCt4MnZ1ZG0vdWRXYkpqR1d0TFd4alNTb3dza3U2OXIrTG1XKzUvdzNZVndiTDdnTmFjNWlxNk5VbElleC96aitqY2JsazArb3RGcnhLNzcyVEM3eG5aU21aUkFKNTBuTlp6TmpOUmJLN1M2dFBkakUxMWYzMENSYTVmNEhYWEZlT25vaTdrODhkM05QMWtHS3JSYS9nK1NnNUVwTTFtQTk1dy8vVVNzWXUwaXdaVC9SK3FBM0V5eG5GMDgxNi9Jd010c1RuUWowYjl5R2RXOHpwQjdnV2J2YVMyNkRETzV5VlYzYzQydFBab0pxc1pkNy9rWFpQeG0vUENqc2Ivbldud2RjelJYOE8rTU5IU252eWdEbHI3VTFOcHp4UE8xTHJqRVFWaGI5bG1MTzFkWFB1VlA3UFdWZjZXbE0vSStKcmZPUDdkbXN5NE9oWnhWYlpEVG54dHNvcTZwYTRZMWhEUGxtdWduOUdoem5abGpFbXpoaU5VSytGaTJVN3U1L283Q3p0SWxCZy9zZHhvN0orRkNKMyt2VGxGMmNnVU00N3BzM25VZk5yME05MjByZVhkVkRNYzRybTcrTy92NWEzOVh4N1U0NUE3K250bVduNUhuVHEvVmUvdHd5Lys4aWtmeG1TWTZtOHNEWFB2L2QzUVV1UzluSDJoZTRsL29LM0o5TlZ6ZGdmZ0pnTWswRU5hWDhkZ29mZGZIK285Z0psV2lwd3pzSjU1M1RTenhNLzdrL2Q2eTdoNWMxbVZ1cnVkNyszUlZFN20vMXI5Nm5YdjVDU3dQVEE5MDZ6cS9adE12Y2ZGTi9XTDRFK3QrNXpud1dwTmFhNHBDVnhaVzgxdDU1ejQ5UTF3ZGh1YWlXL3Y5bzkrN3pqVzgrd3hGdS83WFBzUHR6LzFJUElEbGErYWNqb0dtZm9rZElaa3Voajk1aGl3VWsvenlIdkJvVW9xd2Jvb3lHWEoxSWNVbFhtQWRGN0dtQ3I3amkvajh4eit4Zit3Nnl4N1VjL0g1WHhCZjZzTFArWVgrQmk3ZjBhNlQwdUpRQ2FibmFnM2JOYm5BZzErZTNSL3RHZmlKNzdSOUEvbEZUODhHemZnMTRaNlg1SjJ1MXV1N2ZrSXlvNzFKK04xZ2ovTmxBam5TTWF0dFIwa010WEh3RFVHdmtqeXhmZGFWSC9ZVDFvRm1yd09ScjVmSGw3N1dyOWZCV1ozdmUvbnpINnpkMzZoZHZlOXJTWU1xSW4zQmFhZ2RrMWhTYStoRjdVMmhOeU9zNVZRZm0vaGVPMUsvTTgvNGVTY0t5ZEY1a3JvTEZUbjNITFQ3cWZ6RlRRd0UxeWV0aVNqcW1XU3ZvUFpONndGY3pncHdqUkxVWDZEWHhIUGxJOUhYVnZPY1VmM2RXS2lwVWZ0MlkyL0VTSU5uSTc2c1krT3ppZmQ4MzZrZmRPL3o2U3VwRjhENTZ6ei85Mkx5d2s5RERXMndIdW5FTEtLY1J1QWpXaWdxcHRRM2ZHK04xR05FOXJpek5xOC9qMGVCZU9FSDNoY3dPV0hQRmk3K2xuWE9CL2MzOHB6bEFjZnJPanJ0OWF6N3JLMHVKenFyZlVjK1RzRzZvN1hwcnRaM1pzdVRiZG5UeE42bzAvblNrdTBSK3JwWWwxRkljb2J0UFhETXAvbHA0QngveXE3b2FydEgrcGpKQ2ZROTM4WDFUK1l5MFIyMVRPVUovRG9jZjRHTml1cmhYemt2KzlpRi9obTA3Rnp6dTdsMFR1N3NJOGo5dkovNm12VWxsQ3c0TDdvMnFIVWx2Zis5Ny9TaS92QjMzdTNUR3BhNmtpU1hlTE1mdDFtYnNvdXZ1ZVF4K0ZIYksvK1VIV2Q3QWpoZkRnTUhmVjNrN0Y2ZC95OVFRK1R3dnlNMGk0N1VUcExlVWNDaHRIMWhyRGZxeGowZ3R5Q2pDSHB6aGFzZXFoYTdRM01uWS90TU1OZDhEeWxiejZlN2ZzVWw3cGY3SEphNXkzcktMWmxieHk3V2hYMWhVZGlWbDl2MVF2S1pESUx1dU5MVjYyM2k5ZXc2eWlGV0YwUEhRTkZta0MveXdjWjNwNi9mWHk5VGpBb0RoWVgxSlhiRXpIZU5yLzZHOVNKMjE0MzBtVnlzRmV4N2cwVnQ1VStSVXlZM2Qvcmdma0YrYmp3cmFuci8zNU9sVytzNjkxMTVGemhteXVTSzlDbUpJcmFwM2Y3VzVjMDFYdWIyTWRUUTJxTTlIcEZtMTM0K3FFUHNOMlJZdjVHK1YzMGNiMzNuaVp6YnZ5WmJkLzIvZS82ZzNlaklaY0k0T3lCdmRCRWZ6eG9kTXF6MHNiV0xhdm5zdTVaQWZMVy9xSk8xMC9rbjlmRmxiZk1LWTB0eWQ2b1lhNE94Ny9SUmxFUE50YnlKTGIrVXJidjF1czI5ejk2cjI1WHZ5Tnh5b2JMUFdTYkJFN1U0VE5helA1dkxERC9KY1ZhMHVPN0xlaXZGVjhEZlNEM2FxajNIendObituNHR3SjF5dFlDblpLbVIvazJLNzRQcjBiNndLOHdvcysxMy9JSmJ1dTEyamVrbjF3cnkrRU9xODBlamk3WDRpVnJZRDc4NzVMVDVYRGpCamQ3Smc3UzVnRXU1aE90TWZCZGQ1WHR2NlcrOGowMGRtbURBOXI3QXJrRjdWQlZadnF4MTZ4cjBUZjF3TFNDcTIxckFoT05FaWlTOHh4RHp2MU1YK2lzeVlNclh1ZlVyM2ZFSm5wT2R4WkZZUmoySXNWNUlqV0owZngyZ1pzUTlxNGJPblJvSzFiOEVMOURCMCs5MVZhWjlYMWpmc1p6dDNkckl1L0x3M1R4WkpqdE5YTVd1NVU2VFVQSXU4bWJENmg1MnArMUIvK3M2K2FvMkFod08xM3F5OVIvdllFSmNXd2lGR0lXNVhaTSsyTTIvVnVlTzc4alB1UHU4ckpjL3pPUkRCQnhWZ0RHZ2Z5ZjZjd0k4T2N2RWMwN25zSmIzdm9QbEJmd2U1aWZSdm5sMWoyMDIwNDBjRGdqdzY1NkQ5dVQzY0k1QTcxenI3a0ZObjZsNUJsaTdXaXc0RzNiMXZSL29zZmozMi9qdWFGdDh5NUk4S0QvV1FjNGh2RHNJdS9VMmlkZWoxd0JyblpjdGRCajVPU29Xam5wVWNteXhWV0FrK0FJc1QzQ0NQNzNESHZSZTUxMVQvY0dyd0xNS01PYVV1MTJZaW55S25ZSGdNNVNSeHJvQTMyVUMyM21PZ2JDRVJqMHJEWE1ySlJubHA1c01YbDF2dmVPSmt1dHQ2RDNycStqbnAxakk5SGRaMGk3dmRZbjJIOTVsUnJ2cXhNK0dOeGtJV1BaczV2VDNJV1JvQ1dLYXJBSDJtUHFIbUhWTy9DTFQybys5bzdySDF0TnpMVUJXWG5lQ2JPN3MwOFY3NXZnZFJwL3crekxyNm10MjdybjJMbGI2K0pyNWwweCtuckFzYTgyeUUzQnk4OENKUlh6eUtIcTF4S2ZTZDlNMGRHV29QQk9yTTJYL255enlBV1hiVUFYQzJOZGxJdk1jeGtCa0hzTGNMLzBlYUVWQU5wSnE5ckZCc0lXdWZZNFZPZlBiWnlQZDd4cFlyWklnSTRCbENwNkxJcVhTcUpiendEWHdkOU1vajhXUWRCUmZQZXNrYTFqS0lBc05HUml1bTVtdUY1YUp2WjlzTDkveGdLT1lNRWNDbGdQcVVWVytJeDZpWXBORUV2cEVQUTdRbXFRN0RRbkUrc29IYkwyeHgwWFd4VHo2amxuNnhhYTVSK0RPQUtGQ0xLNTlqaDBjQ1pGSUUxdkVxYk5MekdXczZDK1dTZG1Gc0liT3c1NGhCRGZlRlgvKzYrSXBtUzZHeDZraVp5dUNCcVRyT2p3RmtzNytYcHMzL2g3T2g0T3YyZkEwZlJrZThUOWRNL3BZKzFKUGZhMi9xSldYc2Mvb3d1dDZkSnl1WjRsWElLR0p0T0U1b3ZZNTZMVnVQWS9mZVo3dGU5ZHNyaDA3L1RJZVQwbEdYek5UVXBIcW53SHA2bHBsbkdOdjdqbVp3cnFwWXk4Ym5ueEJwNStIckRSRlZtSzkvUFRhdkZzOS9mRi9JL1JsSnB4c2EyUXZkR1g2VTk5bDdGWjZMUnROOWxjYjdMR3NSWmxjaFQzOG5BTWh3T2VKblorYWVMaFJMUU9EMENRYkpyYVdZcm5ELzhSSXN2UFlPWUkzdm5JR1l2Tk9MYXNZTUNENm1scjdDdC94eTg1d2ZHQXNEWjV6MnJISXVHR0VLNmFKVjlnQ1hqKzh0bUZ1STMvWXZBZDBSbUlQSkpURWNwVzNyRzZSWnRjVHQyR1Y0NkxwcDBRZnRmb1VkQUt3RDJJUG8vbDlzK2RoejlvQzB3LzUzRTRmbXdkOFhzano0K2VNeTBpeWQ2dnY2cXJCRVhSOU5zemE3TCtleE5KZ2IvUm1oQmsxdDF0bVVHQ3Q1Qmc2TitiWHhjWTNyRnFlVzNZOG45dVdxcmY3U1ptSzFFM29FSjNZcktOcW9yQ3d5akMzZDVPMjA1WHA0RFFjeCtrS3J6OWVxNW94YUtwWXR4MmpmQUJaVWQrWnRldUJ2Y2M1NkVCaWUrYVFjVTV2NmxzTlI0T21FTGcrb3A1ZTRXTjk2MXFRK1l2R3R0Q3VPWGZXZ1YwRlBMbk1kK0l5ekFueUdPdWxtTWdleUNSQklLaFNLS0VOejZ6YU1EWVErVjBIR21IeDh0eFpFaFhBM2xYZHNpMXp4MHNJWTZlZCtzd3poYk9Mc0E4QUhmdllRd3dJNHdzOFU3T1hWSWJESHBaWkF6SjhIdlhsWWtDQW8wUFk3dGNoR2hPN08xSGtNbGJnTERYcndwQkR2TjBuV1M1c2kwNXAxSnZSZmJqMUR2UjVuQm14VitNcFlUMXNVTnhQU1N5aG5ZLzFWMjZkSjVrc2g5cXhPUWVob3dxZWxOSktKYllOY1JscTF0cHpEZEx4N0p4MjdUNFozRE15QmwxMUYya3A5cDhFN0VHSEN2UCtuKzdaOEp4NDkrMjdVanZiZVBZUlZQdzZ6NUhGN2l3SjgrZUw1MDdBcm9HdGJOZWFvZG5yT01kNkRYUUxNQytBeld5NjI2ZytKS3lOS0dRTXhRMnpHQ3JDZkZBM0xMOWEvNkJydEJPV3NCRTE3NGZQc3UrSVpUd0dWaUtzYjZoZE5sTS9YNUo3dWdieThmWG1SOWp2VmlmQVBUZWVCUHFTNlY1NnZrblhiTHYrRm82dzE3RTJxS0d6ZzcxelkrZDRCbUdlc2VaMDhDUjFCNzVnN3JVK1FWdVZQSkE5R0FoaFBUZ1F0QUx4NWRwN3QvdkYrelIrWWFTK0pHS2RjNTdVVytiYnNPZGk5L29adTVVc2xvT1J2VHlweS9vbmJXWFg1azFEU2Qzb21uand4emJSK2NDeVpxVlJZWW1SOGdUbm56SjNNcnNCL2hXT3VybE8vTjNGZFRvK0ZUNWJrSDNQQjNXTXIra1NSdXRJRzV3akNVSFUyWjV2VVF6SFZobHBKOGJNVjRXU0pZSVB6T25PSmpQTm5YT29UckZuNk81WHRiSUg3RHI3U0hyK2tlK1FQVWJkNy8yYWY5SlhiVFgrdXR6c2twL2RLMDQra2xteFNkbzQ0a2l6ZmMrSm5odGxpT1BJNzlnYmV0NkkzNXNqNUN1YzN3OVpFSHZmK29PRStkVmo3QjQwSnZNTDR4QlNGSUxuK21rQTdEY25VdVdDcmpub2dCWjgxOGlCNWFJR241MmdPclFCdHFHVjU1amJ3T21qQ2VkN1VYMS9ESHNOd3hySVZRRDI1WW5vZ3dKaWswT1lMeFA4YkNGZUJ3MGRRNkxMZHZnOWlTM3EzSjlVZ281ZDNmZWphelpSNUR5VWdQa0hZVHU5bW5QM2Q3Q3VBaGJjMU5lc0d2d0NsMVdYaG10OVJKaGhQY2ZhRUFaQXdvd0dmczBZNnpyQzh1b1ZtMFRQaEd4QzJOL1hnWUpqR25WUGZBOXM5NW4vUjFnd0lNTkxxK094MXNveU9iZXpCbW1EZlI5L2JLQ29SekxPNUh1cTVEbG9SODd1VXpLanJQTFhmNk1NZC9DY2RvMmZKV3pYa0g5ZmZLODBWdVJOS05sblduMWJoejBELy8wWVN2ME45VW4ycTNuYmhkbjREN202Sm16eWRJMGtxUEp0UGJmMXIxaXNFT1YyNm84M3pOZEFEZU9kYytwNUxqclROZG5SMkV3TUMxT01jTnhYWUpzRHZwc1FTdVloSEU4Ym5jUjh2ZG1tOVc4akNUTERBckNhU0ZVWmpXVmcwcnZVTnhhTHlkM3BKN2JubkIrQTVTdVpMamIxWkQyU3ZpaFBwd21PcFpUaGFhbzhIU2ZyNFg0Nkg3TDFwSExlUCtQWVF4OWJ2YkNXejVGbXJ5SGJXTXZHY3V3SjdYNmFYTndtWTk5NW83K01hck51cnZ2cHkzclVJcmlhZjl3NUorZHlGMHFEbzVlcjY2QzlCMTQ3L04vUzVidThac1BxeTNyNzkrdnJjdi93dXpnVlErdzErVFZBSWwzcERFNEdic1NXMzRyKzMzUTFscGVidnJIWVJPVG5FY3E1YVFKSFlLbk81RHAyK2lUYnlYeDgrTWQ4Z1ZPZnNveWVHVnN3UGgrODNTYVZUeHMvSjZ3bnpad2UrQmoxUXE5Z2ZiVUJKbERYT01UWWRrTCtoOGlrNzZaWWw1RjFtSEcrUjJFS0hvazNJUE9ML2ErVll4eXdYR1BkUTg0dDl6eVp2QWhyMERzdFVuMGNJMzFzMDd3WitHVDQrWnAxNjdLMGtiMjcwR2xVcjlCbnpRZTFKeldNVGNSbnAzTEMySDNZczdXNkRjM2lOZlg3NEwrOTVKWDRyWndPMldEN2VvZzBJeVVJd0hiOU9ySmNEN2MwaG1GNmo4UmlyWXhUbjVNOHl3VUxFS25xajJjTnkyVExia256ZUl5bGsvZ3hwRHBIYkJIenQ4RVhiZDV0YklodGZQVlUzdkFoRFN1VC9ZVzRUR2Eyb2VxcWFTODN5OFJaRG13c3J3czBnLzllWnJLeFFPWnl0dXkvV0hONXVhamw2ZHcybDlieUtiRkh6OGxzZVpyU2lRTEdBbG5xY3VQTE04RmV0R3RzZmwwc1JSVmZieUhhUy9wWmJTR2NwZ3N4aGpPeEdLRXYxbzJZeHlHVEVwaCt2S2drUUpVeDdYWUMyUHRRQXhzRk1SN0lMN1pGcnJYRHNoZTRKam16VUlXdzhOcnlPWWNLMk01YmUvNDNmRmIvZGYvbyt6WTZWdStCM2xPZVRyb2lZTjNYK21ram84OTFXZXlBdVZpTEQyMDh6TW1Ka3BLWW9wbmVNQ0pud1ZFSktxWkI4cmY1QTd5ZXZCNGhlWDBzMDBlZWpUbUwzZWxPMTJ6QnE1OFlzelR4b2ZPQjJEQW96anM2ZnhkS0VDczJ0bmFTeVFZWHcxVmh6eFJJenMwK2t6T05kWjZJUEd4SGlJNEVsZ253YS9Jb2lYcHdwaXNtRjVBRDBDQm5nTzF0QWd6UHpnek9lcFFQeUdRUXp1YVQ1MHk3ZWh2SHJHUGpFRHZ4VmgvSDI0QXdRRkw5VE5pNVNCNmI1TFRDSG5ROFhKNG5tNkoxUVBkT1hQTVF1OGJhbjR2dzduZHp1Snp2NXM4QkFjdDgyelh2KzhEYTVtamZ6WkVkY1V4Y1l2K001QUpJTHMxei9Cd1l4YlQwRU5mdDVJN0dCODdrd25ldHM0N2ZtVExzM3ZVTEZ0YzVZWGdPUlR5SDJOK1VsaFg0aGhubkU4eGFmMytKNzZIaCs5b2t0dElJcXNDYnl6dlBSWUNXSit3VHBoamxTRmdSMWhxQnJmbEVBVVExWDJsTTQzeFFNcmJlUm01Ym04bkpyN3p6SFI5eWRJQVV1bUdicUJ4VFZKV0pmU3lRRWFJN0JpVis3aHQ3N1JKRUc2ZEhGS0kvaU0zR3NnSStDR0VjYmVJZHlLdldkSExRUHVRN09aUmpOMGJsY2txRXBSblFUTWQ0RFBIZTJuT085K0lhdU9mY2xpV1RPM2U2a3B5bTYyaFA5bWhVVHFoL3hNbFlzMmV2TDl0UFUyejNlbnBpTy8xeUJYNnhDRG1tU0Jxc0E4a1dic1d1M2RpdTNVYzRqekJ4NlFvdDRXTTkzVEk5V0dVa2tRb3VqcmxEcVkvMWR1bTNhOUhtN3NaWVhwYWRhVHJNZHJaNUZaYnpUZzlSenpxMzU2MWxqYWIrUXV0M3VENEtNNHE4d0xMbVdsdDhUVkkxaHJOelVlTnE1U1BpWkgzaUVGbGZPZmFaeTFXdy9Ld0lNUUxYT1JkZ09kVHNQWjJZc1k1ZG80eXhuM0NaYTh5d0hRTVcyakxPR1pyUVFQN1lacE1udUpnRDJHemZ5RnI1VVBQRlp5QncrdnRRTW9GMUZ2TER4WFFQRE4xYzdpcVNiTWwzRGF5N08zV1FkM0tmM2VjaTU2b01IVkdNeVVTVlhWTnZra1JnYmNhK1dheWhOTlJPL1ltRHoyeU1zTTRtNjB1bWJFVTFZVC94OGhPd0ROM1NWYlB2cnhHeERkSmdINCtOUTlqbTM0anYxTlFtNGpvZ0UyT0VzQjV1L1htL21HVEh4SkNzTXNxaWRsMEJJUkJ2dkx4Rnh4ajFwcGtTQnZkeURSUm1zY0JxY09CL09vTU50b3Q0ai8yeFhSUC8zQkRCRGp2TGJxelkxUzNZZDY0OHAycnl0MkYzYmZkWHNkdW9uVkxRdmovTngwSW5rY25pbXpRZVcrRGJScjNHSG5Kbzg4Wm1wcVF1YWtOZEkzWk4wWE5PdTFVYkY2enh6eXdYUU9XS3hyMEc5Z1BlMk45YUhYRzlsN2FXSXBnb0I4OXFvTXVZeDNjUVBkTVEwM1RzTTQ0SG8weitPeUJ5TlpJTGhUb1l0amRRVzdXRkMzOEFBZHR6Mi9ITHp2V1pkSUdRdGZlZEU5aFJIT3NFTHFrYjBab0ZQQ3REZ0g2NXRoUDdzSWI5cVBRUldRT0tORXpEWW5OaGs0ZmJLTGNyRCtvOHFBcGRXNkR4UjdNMldKY1FGbVZaQnVaVGx0OXkrdjJ1SC9nRTZCOU9odkR2eXRiSG8ydWpDREFCTCt4RlROZkM5ZTdZbDcwK0ltc1o5b3pTbDlDZStXU2MzV21lbGVzZ3U0ajdzWDNoNC96TmpzVmViWTVwdVAyeTNwNWVTZjNTRG5QMHBHdldJWFJVN0F1Y1FaWmM2MVplbkNHQXFxNHVaajdXTkFuek50ZkUwSXNUeDBKZVlSZndPVnFYdS8wNWxtTVZ1U21BL1FPbjMrVTJqdXZhNXNiMzZPUXV5WVNqaWNMRnhWZ1B2WGhuODd4SlhrZElYbXhHaVg1T1R1WmlLcGpLaHN2TG9SeDh5V0tXVEVuZXNmRzc4VmxwNG1DU0l3SS9uWStIQ2ZPU09kUEhKdWpWNWl6U2E1cnJhZThMNThmQlorbVpDTE9rMUNFZXJuYWhGTjNRUFZpRzA5S1hFb29ldGMveGVGcXgyaTNZRUVWR1llR1hVVDdZUS93L25uYW1JWGx6ZVJ0Z2Y3eTlEK1RNY0p6WFRMOVJxRi9zK29jQTdDYWNDY3BrYkowdnowU0FmUzNIeGpFSU1BUXp2VWduZzVWaFlUL3BXZ1ZUTDhMaFJkdytOa0hYUXg0R1dKajZGQzJLQkk1bGdhdWREZzlZQnIxNmNGNjUwd1BrUVNUekVPWExReVFOS3M5TlFYZmg5Vy9QcFFnVHpDSVNDMkI5VTNzT092dHpPUXQ3MXZiNkhtQkwweFc4NXhPelArdEloZXQvaTNwbzcwck4rbkgxb0dZZGlVNXRrYW9iM3pVSnVsT3pjeDhZc1psY1dPdElFVFBzVDRUYW9OQmZsaWZlejZkK0lqMmJzMnVaVUJ1c1NvZWhoR09pSk9lOGtjZHVmc2ZMbDJCVGZLV2JVOGZmNzlhdUJ0V3R1SGdDVTRkZ1hVdnFlL041dlhQWSttWTBUd001WUhhZnR0WWl3ZlFROGVKWithNE4vaHhlcjhQWTNnZHV5dFlwbWZRTU1XendSSDM0L2UzUFdrZmZOU3I5SlRwT2gxdzlSVG9kd0FZMTJLaFczajNISjFOZjVuSXpaUURyaE1DeGRqN1Y5UXNTZXgzQVQxQ1NJL0dSR3orYzJneFpDQndSUWZmZHk3RE5TNmpXeTFLUjMzekhQbnJPQ2Z1SHQzUUJkS0dFbWZqSmQ0M0RCR0tnWmJJVUJ0L21ncTB1UitwMGJ2c3F5K2xnM1F1NlpxUyt6Rm5jMi9yMVdQK25Yb0UvWjNLNXowRk9NUlY0WDlhMEJnSStMYnd2eFVINGhiMWpTUDlZZXNhNktZMGt3T05kNDU3bW04VFNiSUhFMFJiZ3p5TE5CbCs1eFM3cHBUN3lEMUZ1ZG1wSEJDa3VWeVNQaHhnalN4VTQxb2JWQ2JFT2pDUkV6K0QxM3BGNHYydFA3Ni94WU0vMDE0UmhrWG95OGlTVUI1QXZvM2hCSlFYN3lmYjdsWndGeWdLQi9kSEJCakF3YkJxZEJDejU4a3lvemx4ZTdFSjN3djdjbFVIeU8rc1EwM3FNbjdIT0FGUmQ0TnoybmZkcFlqZXFqOGRUcGpkUWxLT0RqMjJtaSsyOXhlb05lSTNmZk5mWSs5UjM2Y1lFTitJR01vbnZIRXA5bWhlazY5UjBnMEFzZjJ6anZ1RjUraktFK0N5VWNHelM1bCtDQnNmUlIvSHhLdDdqOHQ0RW8wQjhmNEpGWkxaNldqL1ZrL1dJZFhZSlhtOVlCWktOSWszZFFlM3paZG85KzY1OHhISEZRcHhXN1g1UGs5Q3hBUnNUdUdaRnpyT1lZcm1rT0JOaXcwazNUS09IWVByVERkbmh6dkZvUW5Udk9YYUozNEo5dWppSExzb056U1dCUDBqOElyOE1vV3NON3JPK1pBejlFUm1lTDJmNGpCNnhUMGpQZjNvcFg2R2oxa0hOWVZDa3A4UXFET1F2allYRmNpb2pOSUo4S1A0bkVWL0RtN2Z2N2ttRFF5QWgrQnduNTEvRFRQNGFhZloraHN6UnU4OUU4Mmc2anFPd0hQSFhhV1ZoZVpFTFluWWN5OVdScTV1V0lYVFFrVG9rMlRzUzkxMTA0N1RucGJGRFl1VzV4dHZFUVp1T252NEpUQWFnOTBWenNWRCtFaVpEV1hYclpzdUZPajBzUlhQYTFMU2tKZ2UwNUxzSEFwZGhkeWpEbXd2KzZLMGFkK3VmZC9BQlpocG1NTTFWakNSYUsyaFlGK0E1S3VZSGt6TUl0ZFh6NVhPUXJoYXFWOW9ZbHp2SDhGdzcwSmMzY3FSa0d1RHcyTzZSdFl0cWtad2I0dCsvZG1KMVBnZXNKbnR6TWV4ZmR5YVJhYUJSamlTdVV3bWZTYkNwWkpLcktrSitvTENndzZQcG51Q3cwQXl6ek93UWlWT3d6MGVuZkl5bk81QzdIckFCSkFSRDBkUUJqcjVqMTRDM2hKeVJTWEhVOWxrZm05dXdaKy84THZaNlppMEZlTGJRVVlVNytWUWhIRThyd2xBcFVnd2c3VVRKemJaYmpYNHVrT3oreEtIWWJZcTF4cis3NlhzMGRvRXkvRFU1U0xOZXVUTGtKaG5tejV1VGZHeWtwVFZNWVNRWXZnYnZFSEFZUFBBbDIzZE1zZC9vTzZmZHZYZmpucGt3QXRWTmh5SW5CMzJZY2h6aUdLUEpTZGtNbjlEVS9hNDc5dkMrNDNnMzRmQnd2aGptTEM4eTNKTEpmektaTE43NFRWMGYrWFhPbURaWURiSjdqYWpwek8zRS9Xa2pLOWt4Z2VsSGpvSDk1dTNGdmRvcGhJVjl2dkxQRlJuRjJuVC9lcU1PdUpRR2xZL3ZDVHJ4Z3BtVzVnZHBiTmZnK3ozWEVxSWNaWFFDTksyUldpaVNVQkhtREtjTUUzYlAvRE9TS1RjaXpibmoySVJoeHRqdkx1Ly9sTXdKM2o0RldTSDRUZ0d2eVdvT2VxaU5xY0RIdGMrOFB1RW5NOS9wU2kxRDZPM0FkblM0WmZ2TDlncjc1TDQwZ1AxNGJaNi96UmxkNVhCZ1FpcUpWejJYNnErYms5RVk3Z0JKTjdFaFJKK3h1S0o3ZHJWMmNoNmJjRWRpOWRPNW1mU2tpUGhNVnZSTU50T0gvcWVmNDJhNkhreEhJdTg3Y2VVMDZrMGJOalRPRHI2MGRRTEFzTGNzakl6cGhmYWdrTndtOVVOSFdMNzgwcCtMT242VzBGSDN1cEtPNXNxR01ybmFUNTZVUXI1ODB1cEd2a09WWUx3MDBOY1NZd1NuTENMZzA0QXRWcExuYWYxMGZKMC9KWXZjN29GTllQMXJCYmFyejdTN25uVjlMcm05VE8vMCtvQ05xbjJTUzRONHpuUGlGUERYc0EvWDU1dkloYldGZGN6Vktxb3ZiWUMxZldkTlgyYnppK21ROHhUcnNpeDIraEJ2WWZ2RmZJU3daMUNHdTY2ZHBMNEIrQ2hYK21ETWNERXl3bXM1eVpwSjVhMC9CdGlaSnc1ek1MdFZ1d0ZNZmF5UTdsaUtBK1J5QzAxT21kVksrRndFOVF2Tmt1U2cyblBMMThSdjR0T3plMnR1cG5RS1dITU92Zm5OTTl0K1RrTzFyZ3l3cmo1RVBYUEhHRXZmOGYzYWZGekxUa1JxK2N5ZXpKbFBZdUI5dyt1VTB1NXFGbWVRcWVsTXZydDlJaGMxdW1XakIwaUhMbWZQNkxUbjYwN1FhMnlNbncyek1IL09idUZOT1l6T1RWdlVQVFBZcjRLOXBIaGpZb2U3OFM3S2RjVmd2UU13blFOa2k0dkQyblc4WlNlNEdqWmcwNmx0dU82REl3eFVDdFEzajFFK2tBTEhJdTlVTkxWd2VNNWJjY2FGN29kMWIvVDV1SnRiSjNLRHoxaFNjZm1iOWgySDl6SEI3WFJldk9lRVRRVGJMTC9GZndvd2FXOU1hMEtjejlGTUZPakdpZTF6a1RnWCtyMGFUTXhOTEFmTFovZ0hxTFVRYkFkWFY3elEyVVJlc2V3MnowelAvQzV3K20rMzZ1VWt2bW1ZVm9qK0hDTVV2WU9YaG1kaXZ1SG93cWVpdmlLMmY2RUd0WkxsVEJ4ZTFKbWVFcHQ3Ymk2WGg1OGZjb0xrdlEweHFqbThLYjUzV3pOa2VHTGlCM0x4MTVmN2RwUEZEMzNmbmI2SGJRSjhITjdEZUQzYVR5bmJTUE16UFdNY2F4TDhQYUI0L0VCRFJhQVJ6Qy9ERnZvYWw4ZWdlYXRRT20xSS94ZkVKVkNmOVRXSTY5ZWsyNzVqTjRtUEtkbkhXR2x4WkRRWFhmdU9KWHFOdkdEWkJDenFPYVk0UVM2bkFIZ0hVdHUwbjhpK0k0TFJwV2Q5UmJ2Y2VUc011YmllZlNReFpTdkxwSFlIbU82RzllQzlIa2FTbCtGNmpwRTFYZmE4azU0ZG0vK2VyRWZaUkJsbTdmcnJiVitRWWl3WHFpbE41MDh3SFdIUmsxR0lJRmZ3dDYveklmN3VudUZHbXBxa1k1UWg5UTI0ZGVqRTJyVDJ5SzVkVTMzWjNJdm1qTy81b0IxTWRQc2VPaWN6K3QxWW01eHRpSDNMQ050ZTdDTXI4c0ozbW53bSsvMTI2cHJuVU5sZ3ZiR1BOR0I0eXprTWZSa0NvNU40aVl0SXZYd2dObXk3UGJTUE5mV0oxWnlKbnJjQUMzQkREN0ZKbGpRWGVZM3o5MXg4MWhIcFVRQ3N1M1hRWDQ0RE9NOWtIZTdwNzNYZ1F1L25XUjlacXJWUjdZVTYrNlF2UmRVYUlYc3gyOTdDVjVCK1YyM1F3NzR6ZHlhYmE4VU85TmorMmhyeUdHTitMYk9mV0VPcUQxcmJhWko0bXNSU2pVeHhQaDU5TmxNazJJKzd2dExGNStCYTMyWkNLdU4vMDdYOGJUa2FUSjNGNkR4OXNiOHQ0WGRMaWZPTENHWk1NN2VoTktCc1ZhUEVrOUF4SUxoTXNiRTVUY3dabi9VeDFpOCtpbko3NzlFelRmc1ltMXc2czYvdC9uYStzNy9Tc1J5N09kV0JzS2RSM2IyZWdXTWEyanZoQTk3N25nMmo5OHVhZnZpS3ZWZFVmMGZmRTd0ejl1bGtPS3k3V0o5aWwyR0krSG9NOStBeHV3YzY3UVM0QXV4N0UzM25JdzRIalM1cjhSNWdMeHFmaE5ZWldaOEYySkw5L1luaFhGeE1jbStOUGVCa2lyM0R2YlBYdkMvMnJkbjdZditKMDFOYndPWFByekNFZThMU1JqQW9iSG9Tc1BvQVRoeXVCLzJKczdrTU5iZW1yakUyVWN6cUtQUnozSE1kQ0g0YVZRR3hmK2ZBTFJHcG0zYnVENzhuT0FYOWFMNGt4M3V4Y2lUWlpQSmVCdE9DdC81Y0pOOTlXUjZuZkg3Ni9ydTJkVWRTNDZQdlJteGtjMzJHWCt2MEYwQys2QkJUdjJCNjVuT3hGSU13bnY3by9xQ0oyMTdQWFA5YWJ0MFM3QytXYmNqL3pOeDZpM3ZsL09PeElXS2RTZW9sVnVvRHI4aFRZbVAvVFlueGVTeklsREZnTUNTWWVnMEo5MnA4RjFnUzZNVW1XR1c1Wkwyc1VPZFVCcExuNm9lb3NQZk5SSXNDUGtQcjQvUlpjdlNwRS8rb2hFbUszWWZvYy9zSURNK2s1cCt0NXJJWTBkb1p6Y3Yxb1k1RmUzMUpMMmJMaHNkaGJISGNuSG85ZGo5NTR6bDJGVXA5NEJYb25ybG1UV0NpUEhzZW11ZThmLzltRDZEMlVJYUZoYUpjWFFNdUFLWndvRVBNWVZhNGR5TTFVcXhqNTAvSm9pY3pmaGl1N2d2MU5tQXZoWHFHMWo4d2JOVmtEdS9IL1ozVUtadjdkL3lRWVFJNlRvTkpES1RHNjFKZUZHVllRV3dNc1NmL25rWmZIOHRpUExZNkU4SW9XL05pdm93WDltZ3dvN2p1RzlpdlcvL2FPRDZxWWFMY2tVeS9Ob1d3Tjh4SXZSeldpM3MrK2UraHBEZDVqZFlmSFY3S3lYa0ZlQTF4b3l0Q1FuTzlPMjZ2Q0RheFo1U0FBNnpsdWJWVVI4NUNPSUgrVTZ3dkM5RXlMSVMrTFlYQnkxeXdsL3k5M3ZzSC9RWk56L0dSNW9zSUEybW5wNHYwb1l1MGR5MkZIRmZQM25tY2ZIeG4vVExQTlV2T1Q3a2hJemp1Zm1ZeXN2RmRpK0NkMi9YRXZsQzdWaG8rTStuQko5Zkc2OWlWbS9lZVI3Vm5TOUdTbDhqNk50OE1GRGdiby81WGU0UTB4eDRzRm9JNXNld1p0dU5TNEJxSE1CY0o3amhYNjhDQkd1Q1pyMy9FMnZJVDZhTTNFUyt2eERlZ3o0bGpkeEl6bkFNbjNudk9NZEVMdVE0Sk15cXJrNmIrZUxQWHI5NERjRUI5eUlHVHZGckxHZ2FjVUdnZk80QkJQaEplRVRrakdHcHNINGxjY2pKM2lMTGJHTllPdHR1ZEpucmVQK2cwOXNiNkVkdGF3bTlrSDJuUDY0SGw4WHpsU0xGd29FL09nU05DblQ5MitvQTc3UHA2WVBkMk1PbEVNeEQyVTI3RTRMZmtvNnYzdEZFU2FXakQ4dEUzOGs4TlBncjB2enR0T0Jsd2JOekJteEIvQ25SSTdBNjd1T214Z1VKbklMSHZZL3ZpdStuTnZMQk51Skc2UEErQWx3WTdkMmxQSUU5NllaUE8zT1JJeGl5NWg5b0J0elk4YnJMaFRycU90ZmJNVHQzZ0V1QnNDcXdWeGRRMDY4bHhDVXdaamczRk9iYUpqS1czOHh5N1ZuNHNpdmwrVHZUc25uM1ZiK0cvNGIxWm5IRzV0MTRPdVVIazR6aXJtSDJDNStqMG5jSXpwVnlmRW1WSWxFdXVIcnNQZTlhVzltamltR1JMbWZIUHpSbzArMFp3Zkt5L204b0M5bFAyWWMrb0FFditmYTZkUGJFMU1PVndHamg5Y2RYcS9MT3UzRndiMGpkT1luU29WK0Q3ZFd1VHBDOGgwQVppcU0xNHJDSDB1dnFPMnZaNGFHaERjdVhEdTFQY1lrMDhzbWR3ejFEcjMrUHZjVDdjZ3U1MS96SVd3MnZsNVlOejRGcDlITmZFdWIzajh5WkI2MmRrUHV2amw3eFBISGNJWUpsMUpVMTFIQ3VST1BFaW5qNWU0dUUyMFBlaURZNmtGM2NnK0pTUjhaWExIZnV1a1VFL3NKSldrTjhaRzJtVTI3dlZuT2VMNnVkaHpmTEpSSVowWU5hSHZ1MDN6c2ZQWWlkS1FzMldmT2ZJWWRPeERVQnJmejdjUXM4UW1iS0s3OUhjbjJCbHNJNEJYNjNuTlRnN2JBTXNrV0dEQUgrTGRmdDQwMTUvektaYlJNa3J6VFZDLy9JYy9NUkRWRmpRU3pTcDVUWGhISUwrUlc3aUFNM3hhNFBDbCt3Tld4LzhNMzBYOE1FRHgwVHY3RGZnbVduTkJmcEhnSzhIT0tqZzczUUtqbnlPeHdhcGFiSitDQTZmUjN1ZTJ6cDVwL2Q1VUhDNE9KNnI2eEM3MWpIR01TNnh0NngyWGZvWjZhOGllVjdvOGQ1NHJySGhjSlppalAxQnBla1RLSHphODRqaklsOVRzVzdmUTl5bzRIZU16engrRjdCWEVNY1A4Um1XSmxKZmJQaDF0TlBCbDRoKzBqT2R4NWdlR21aWldMZTRhUHJhNmJ1Ujh5K3dQYWtuQ3UwQmdSN2hZWUh0S3Y3YnhHa1lhdW4zRVlycVk5YytNYnhmVG5MQ2pDV2Q5YUxTQ1QvNG5yQ0gzU2tMRkIvbklJSDVDc0JyeHNXWjRJdEtwNE5maXkwRGJMZUg0RW8zc0hzRmpnWDF5bmk4dVhXOWtuQlh5alh0TzIvbG9zMHROL1ZDSWg5KzZrbUF5ZXRQTXRra2ZUTUcwbFY3WWRrNnllUG10aEJMTnJiRDA0Vmd5b3VYWWJVWURWNW15Mk9QMDB2c0dTcy9WOWVCYzRMZU5kcEhjbFM2ZVYrdUQ1dHdnY1VPMnNXa3ozTWQ1ZW81QU5tSmRtMHZMclVkakd0bnZJR3pUWHZlMXFGbXAyRk91TzM0R3JVL3RxdG9QR1VjaXdMeCswaU5xK0ZXdk9ZZzZPUjdidmhTOUJsRjhyNXRmbW9mY21zT05SWU5uVm1QUDdrdTFId2Jya2VQVGhVaTV3K2ZsU1p1UDlJNHMrbEx1clV1bkU2N1dwOVFzem5PRlJ3UGlpWEZ2WnhESEVlNStsOTVkL3dPZE9MSWZUbHVtSjgxeXU1UDZ0L0Fld3Q5MnU2TnZBMU1MMUV6aXFNNTZ5TkwwVitHTzZyckFjUEJlSEphdlRUQ2E1M1RQS1hBdUE5SmZDV2pLQk12K3JpTk5KSUl0b3JFWnFhNkdOa3Z0ako4OWpXajlGK2VtRi9MWVF3TnFKdVNuRXJ6UHBudldqM2ZzZmY2eTdEdEMyemZyNWdzS01NMjkxNVJQVHlaeWIwYVgrTm5ZMytrQi8xM21Td3ZCZE9ZejJYd25jRFdOUGwrNHBQUzJMUHBqOEQ2NG9vamhOUHBuQzRuOWJPV0krdldaOGg3cTliU21iUDhPdE1oV0cvSExGL0xZekxQRFJ2NENOWjdUWHk4Nng1L3FNZHhkVGlQNlBsRGd4WHRrVjV4aUVzQmc0WDJsN3duSHNOL2NyblFHM2xKUGV6RmlQTEYzZW5IcDNoK09rVTF5cGVWcVR3ZHNWNE1ORlVLbkFHclR6VzhPOUMvWE10cDYzdXJpNW1BREozRTJ1eGQ5bHhNQkhzWUVVNlVoc1B5Vm0wMXBEbWgxbDR4M2doMUYwdHFQNnBGa0pPSmcvZmgrYkxmK0JLTHdXU3JDaVhBTFRUY2tPQXJ3YlFNV1FoY0MvdTNXdy9lRFhSL0dXYkRJdFlHUjRQMmd4bzkrV3pVbXk1M1V6dmRnL2I0TnIydHhDL0VmajZMcFViMzFyL3RBYWNZSTRKbDBPdzA3dUtQU0k4c2pma3BrenpXbldpbDJXdkNhL0Q5OVFWZktYOW11Y0d6Nzg0cTByY2wwblc0cUYvUUdKRGlyemcreGZaWllnMEowTzk4QzhQWnhSTjBlRk5EZ3FmQ1BwL285V2JkZDRXNGgvVnpXR1dzbmRBdGpEbDNQY2x6alJMT0lLc0xkM3NQd2Q3R3JvSFBaQlpodTAzNittbitvdk9jVjlmaWRFckxUM1dEUDNqVkk4LzZiZDdORzVFSi9HQVBHajVTWFZQUHVtWS8rWTRwRWp3eTlEaEN6M0dzSE1FZmljZm9TTCszRGpTMDh6aytVODRmK1lOaHZDY085SjBPYU81SEFaNHByaGNWWDlPb3QwWDd2dmkrUnAvMk50R2FJY056Tnh4WGpGZG4xN0xQdjVNalZPMTk0Q1lOZHdLSitXbnN3V3gvbDlPTVc3OEdmd3I4RW13ZHFVOEhzUW53MWloeU9jbVhlMTB4UXZDek5iVDNuVk9zd3pUS1llWklEQ3RpeEhyR1h4LzJibkQ1ektRM2xOVERPbmg1RFRnNThEV1AvSHEzV0gzK1d0OWZPLzFseVBteUZmVFZzWFZxWklhdW42OE5TSDkwMjNkMys1cUtudkhQeHZMR0JIOXRNMW40MGt4N3Zzc3BUbm9JTHM5WlZ6K0kzQmtlWnEyODM1REJjZFhVUjBsc0syU3Rydjd4T3RKUzZNdEwxZFFYb3JXY0wvdmpuNnBEOFhHQnBFck1ON1ZHdEJkVVErZmdSZzA4Z3M4T241dmVwL05UOGxXamRUdDMramRkM2QzL20vSzBueURoR3RmZHJTdWRQYkRmWkZyNWpIQndFSjlVUWhMd3Q5QXBVOFF2Ym1wNGllK2MwbWhzOGxnZ3Z0WlNBOTZlOUlMZ2F4Y0I0ZmpvMUZGSlRXQ0o3UzFpV0Zac2UzeEpoUnhRKzF5MzhPbDlmUDl0MkxNWVJ6SEx6d0MvV3doOWhOaHZhZnRlR3B3NjVMRDdCWENET3VJeEJpd1F3VEpBck5LenUvbGUwSkZvZjZHZjBVcFRxMGc3M2NKZmtYVlY5T3k2SjdmaHkrcmtRQWszdHRFTENIWTZ1MWx2WkRGSFY0WSs4YnJ3TlpObHY0RHBWMmR6UFR6eWUvWUszTUFwanBGTHloVXM2R1NDa0tDL2pKaDlSWkN2cWVXajd4cmdQL0NjMWJveS9McytVbk9vOTcxTWoxT2wwOHNxNnBwWWhvVXQrTzcwMWozdzV5bUh0STNmaCtTeDJiUXh2dmV0K3k1UzV6NjNyZ3M4OTQzOEo3RUVXS05iNzlEbE9xUDVmaFkzUVU5UGw4TU02cUNrSDBDay9GM1JMYjlpMStFbXZaU0ZsNmswZlJrbTB6bnBaNXd1aGtmOXhUdXlaMmUrRVBuc0J2Z2V1NytiRWc1SW1nZW11a0dDMzcwTWo5UGhkMnJWYlM3NEVDa05icFc4QzV4RCswenowVmdQbk1OY1BZS1AzWEQwTjNtY2xyT0kzd01TLzFGOUloOENweSt3ZmduR3RZM3ZFU3VrdHVQM2pFTU0rV2dUdU8zOVhDMUR2aytKNVYwWmQ2bWpObmxNNERuSjVEU1cxQnI3eklFRC9lRmJpSjl3ZkREZk5OeWlPQzdrY3V0SHdCZlNQQ3VYWTlzVFBiRURPNFBsTVJ4dmRxd2ZOcGFBRHdEazFwTWE3Qy9Oai9jUDlOMWIzRGprVW1uTUpnMnFUdStKYTlLK0hmYjVsRXlWelc1enFGTmNhT3BKVlJGUnpqZTg5N1NQcnZWL3FUNm50VWJnU3FYNnJBRDczWlVEanZmR0ZrSUpjdFFzVm1SNG42Ym1SSG9Kbm03VU8xTHN1MEVPbmMwc1lMTUtnUGZGSGNMdkl1SnZIa0h2UTY3U090QWUxUVpQMVdEN2FlM2lvazdRN0J2QlJMRmFIZlQ3a0Z6MDdUZ205eDFWaUlrZmZyaUpyV2pQRFhDa0IwNWZwSEVCNVp0VnorMU1EeHRzNHZWRWFyd1ArR3lJWjJaamlFMC9jcjJKTUxXY1lXZDJWM05BR3M0SHFNbFg3RXhPQUE5akZPUzhpeWdxak1NMW50YzhoSzVNT01mR3BzRFcxc3RMNUFFSEY4MjVqRTZCbFRXNEVERjBoOG1rTURaZU56LzAreDNjV09KSmd5b2kzSnVVMjZPREZjTTJvNlIrOVM1MGdDZXppZGM5T0I5UCt4dTRqM2IvcUM2QU16T1hYNWJxa3B1cmd2OUcrcHBwREFJNk82RDk4SWJVUHhna0ozNFJ3MEVPNk95M2ZPTEFNOXZ3Z2VZSTh0Y2NObWZya1o3V1prMHByM1E3NWF5blEwOVFPK1hTMkhnNS8vbHJUUGxTUW9BbGJEREcyVkNrMHl1eHZrMzFrVG1mblQwQjJ6RGZNZCtpbmwzUldIM25PY1RQYXZLRkpHZk84cFNrSCtxcVhpV21BZVZFSm5oUG80S2NENm5KMWRBZjF5TjFGOXFUV2tlRnpmcnVvYmJBWkp4eUJ6YTJGSGhvVzUyMlpYc1FhV3BmVjlLVTZhbnBZb2hlbTBtMHpmN1IzTUlnOVJrZVpIUTVFNlROTzNMNVhMNEdTdkdyNmxQZ2lHSjQrV3kzZXQzSk9qTU9zbldVMnlrL200amtoYXR6N0FoOEhpMEpOUEMxMHU2KzRMVXZVWlEvTXp2VG5lVXd0aEJNV3lkMjcrRFIzaHRQQWo0K3FGY0VFanF5UERQSjZYWmtxYjNYaFJ4WjlMeFIzcTBtcjQ5MVhVdzRjOUl3UjBMZ2xnekhTNjdmbTFMZWw3S002TFIxaXVQRWNuQUV2QVh3akpMOTZ2QldzZWQzbnBMbHhsTG9UQlIxS1ZwZmx4dVlNZEdIL1ZTZTJEd2Jpczl2NUkrem5RUEFQWGpBQVc3UTNERFBKMlBXSHZTVWdMOVFrM3BhdkNXOWFjemVtV3c5cTlCUk81aENmVVJyU2NXMDR4Y0QzMzBiYTFmNnFFOXlrdHhVWUwrd1NVems5TXRZUTU4dWU5NTFCZlF1ZHgzZzhpSWM0ajkzSGE0L2kxeG4yVTdjdmJlUE5BOEx0V1BLYVhuUnovc3Vma2hXVnhxWlh4R2R0M1FmU1EvNVJKSG5sbTB1RjZLaHRuTnlnS3NVZVpKZHh0QlB4WEVoczk3ajkrL1h5Zjh6alBoZHJtVldkNkwrUXllSGZpdS9NemJmQW5kWVJaS0svWWx5bFVPUE41VkRXWjRKeDhUUFQ2blBZYll1TVVJdEI2YUJkQ1Z1OW9UYWtTU2lPaHN3TTJ4cU11RGFWY0xUaEgxajFtT1Q4RDJoSnZpaXhFZnpTMjh1bS9ObFBKL1psc3JOcUNFNWpKNlJSam5hclpxcG5hMHQ2K1NSYjhVVlZMNzh1YmlKSGZFNGNlVjA1ZUR6T3V0aUxOWFdUdENjYlkveU1nR1dHbiszaWJYcGZYek40RDlQcm85OUJhNkdzc3p0S3V6NTZFSzNFZzRJd0RGZTlGbEJETjNoaWdXc0ptQ044ZmtwVE1xVHd2TU1jUk5PTC93UjZ1UFIvamJxajdTNmV3ZXhMdlZQTy82YVp1L2pITldoMUljNHY4TVhUdFlGN0V1VTIwWHNuSnE1Z21CejZBeXJTNzVRVDdKcjhPdTZhOEg1cmNDUDNLblZCRFhsbUNRNXd2UFZERDdOQjE2MmxnTmd1cU00V0NIc0dhUTJRMnpBMjhWNm4vbGFUZmVhUkQ0b255WFhlNGJnSEhuT0VYbzlQQ210Q2JaS1plZTNnOVh4Tlh2bnV4MHViM2twcUxNYlBHK2RQVm9JL2Fremw5MkZhRXlXaEZ1cTViWnZaMEpRSDR6d0s4eVdBKzBpSGdDZkFmdlVrVVR5ZmZpY2R2ZStFN3ZSdm1rK0w5VE1JTG9SMTZnd2U0bE9OU2MxTGlWdDQ3bUdGOEZBOFJqSGNwc2tsbFRhNHp6SVl0SUh5TTJuQTh3WDRFSDVlbDA3dXdiSExkV08rTytYWndacXA3QU9ySGV5NmZkbVU5L3J6aHJ1dWJpc3d6L0hlaEFpNEtUMUx1U0tld1lPaTliNDc4QmZKM2Q2eXFMY3lpYU9oVUpGUEsrYy9wcm1lczhYTldub1pZaWxRUjEwK3prUFViRzU0YWMxdWNoMlhoVGhpQlZJN05VL0J3NlJMM3JlbXg3elNZUDl2dEozZks2Tnc1NFloempuZXBmeCtseHh6TjdxdCtmN1VlNWdVVWZxTVlJcDl2SlhzTnNqeWpuUXpBOHhENFJybGNkS3Z2TnVkL3JVMkRsYjhSUC9XK3hKeXMrMVdzM3AzRUhXRnoxbm1FMlloZHRnOVFOWFQyNWg3SHhORmJ6WnI4eWR3djZGUEowdlRka2VvYStMN0tkNk1iZzRsM0dlaVBPbVIvbml2RXd5MGtmY3lMWURjZEtCOFR4eWZjNzhUQTNndUlwZ1hvWEhZNU1ZOXFqQkI5QmF3bDRmalJJL3QzdXdWd1N6REp4QVlXNWhPeWFRK1JicVltWVBpWnh4ZVljT3A0dDBJNitpREpQWFdxZ204MXYvZHN3SGVydjE5OWNqMzN0d1pMNll5WHEzNk0vUHVpSlVrOFZUOG8zODNLNG4rRlpIM2xkOTFwVVV5eUVpdFg3RzE3eWgzMlgzU2RGS2cvNkxkZGlUKzY5eitmbWYrajdjdk5IWEc3M3FIRTk0eXRtdkE1bWZZSWd4bTBFSW1MNEw3cWVHUzRlZlZVUnlyN0UyT0RZODhDUmViYkhZamtmeDFQTFJkMVNHUmN1YUdRMDh6MVBEa1VQcTZsRnYxdVVadkZNajRYUjBsd094eWVlMU5yL2hKR2htMWJZeENlRm53ZkdXdW9QdjNMRHgvSnplanUvZHJrOVRIN3FRWVppaEdKRFpOanN5WDRKd0xnUDJYQ00ybE14RkVzazhIMGM4eEFRM2xIZnVCVDFreTcydVFnNmc4bHl3clJURHlPdGkxcmQ1YVM5Yjdsb3kxeGY0ZTFpTmErKzdxZEM5bjhuTmUybDdXMGt0Y3NPNEMxTGd5U3dZWm9KeEZsb0lkRHlSQ3l4Ly9iQ0g3WE1mK1k3RngyTm5rTmtic2hxN3dMRXNCQTdEUXZLY0M0U1hsK2E3U1k5UjRaTWFCT0E1YUIxR0czVmtLUVQ4NEtBT0tLWXRvSHZFeWRLdHZLOFFBVThzY0hRMnNWdkRaVWg0eVM2NE1VbHZRVmVXbGh5dm9WM2RzRnZObWNYeS9aVmRPMGZIcjlud21mazRVTDkrZVhxOXdVZFVNVjFHKzgvT1VTOCtSTmczNCtkZUtLbElaNE9RdVcxRnd3MENQRVY2ZG0zWHIyZEJRcjhwNVNMZk5Id0hWL01ITmJ1ZFI5enlxOXprU2ZGeU84ZStld2NmMW5CVHd2dGQ2alR3cllLeEFUMFg3THkxMktGanAzWjR1VVlYT2U3YWQzeXU1N21kVjlOd1J0L29DV0Y3Z21VbVVObzlJaHhNWkE3UTEvZHdYK09XRTViSXRiMFBlM1lSY1BobmtrZG4yRURHdGFHK0xLQnVDYnFFNmZ5R0k2TFZoeDdoR3dLT2ZmREhkKy9QQW1uOFc4cVJlU0tZQkc1K0UrSDhrQmZPc3YvUzRXNmpYT1ZZOWlmU29PN01lR1o1RTNMK2NYekc0c2lPdlFldWJyb21XRzlEYmxPSnovd3NXQkpYWE91OGR0YVBTbmpFK0JtM1ZIOWYzSytwTlhRd3ptMytsc1dmWEU3cGt1OEFhdnJyVzdQS21Td1FIVFY4aHYvUHdaLzgyN1Z2VDNCYzNlOWM4YWp2THM5QmcyZkg4a2ZtVnpCdVJxaHRSUkJYV1dlZTA1dmFxNDRPQ0xHL05sSnRlMFE0c01QRk5wblo5bkt1ZEo5YmZ6bTFNMkplbnZiWGZBSWovcHhqZXdkejNVZytxRFB6aDQ5SDJKbWtNVHpmMTlTMVlWenNEdlVjRWdleFhvdVl6SFM2MWplRWF3MjRreEdiQmRqaHVnUHM0aDNlWmV6THROZWluQUp6OFJ4cjZzNmZpMjBkbGN3QUU4SjZXS3djKzJ5UUdXeDhYcTI4czM4ZDJ4RmhtNnNkeVQzSG13N25OT1Z4UWxIUHd1L1p6UFpjemVsNmFzQkx3WEROdE1Zem91dkt5emJ0UGNiUFRwNGIvQWs2RHpUamVqNm9YMFA3c0ZqODZCcjRjN2YwNzdYUERyelUyRVkxT3JVaXRjeGxCZmt1YlZsQi9FUnlFWmU1dnN1OXBQejNjSzErVTFOMGpUcnNYZlNzYmtSNUtWcnFjbU45dFlXblpFSDhNTEpPSS9vMzJpOFg5dUw5WmU2QXpYV2ZBSjhUekdYQWE1blFXaXl4LzBxOEQrc291L0RUMkl4REtodmdJNSs3YzJSZ25pSHcvalg4OEUxdTJSUmh4cW5iemRQckkvVEYyanp2b0w0d09oa3pRZjFxWlVkNlRvL0pVa2h0ZXdUdnlqN3pzaEQ2MmtTUjV3dmhwRTRVR1g2ZUw2T2RycHIyREprdnl3MVNySGxYL3V4bGYyRXZqY1ZNTkl6WlpybkR1djdpWjN1Qk90OVBscXF0TEVab0FjK2gyc3BTdEJWeVA5R2NMZnVqaVNMUEZxSzViUGtCUWY1MC9EdTY3dE9aYmFtTGplbGY0ZHUrZC9ZdTZrQWNkdVhTUG5EOFhXMnVsZTRYaVdPVU5vYUJuR1krRUNhWjdMYnozaHU5MnNiQzk2N2JjbTQyL1dpRU84azZSRzB0RjBWYWlrTEhyajNubUpCek1OeDZ3UHNFbkIvd2pseHZSWlB2b2R6LzE3WUErS2pVYzBBd1hvams5V1lOLzM2VTIzQnUrWmltdFFzYjZKWGo3UVhnSGlBblk2YkVsbkkxZmNBYmNieUVicE9UYXZETUVBZTI3d09jZzl6MXkwaTY3bTI5TWEraGhEVmwvcytMdmplenl4bWVWL0ZlRGIyU0RtQmJiK1F5V1grM0FYejZ0SWViengyMi9Ia05WeXZqY0w2ZUJZUmp0Z2pyenk1M2NXZFd3NDFacEFiQkJaU1FuL0l1NXMzcDJpbGRPWkRYYk94NTZLQXp5WTAyZFc0dVgvUEU5VmtSTytMUmRXQVlYMDZYb2hYbG00WWNPWTluQUIxTDVqSDVtbGlHT1RySFkrQnZsQ2lPa09neHZxY2JhbFRxR1dac2JuekRxbytKTmJJVkcrdWJhMHdIOUNSNTBDc3VsbVRON0tlWTlJeHgrUWhFWnVmay9Demh0cjVBOHdCcDA0dkJ5d0R6bVpXNDloM3dYNnFtTHFwRWRLWkFtdnJhb01mTnBPVnlYRllWT1AweTZsa2dsM0crVENhWDgybXY2cXk4L1FDNXFxaGNYZUQyTDJKejFmUVhHOEliQlh4dnZjMG5ocnNDUDVsaWtHL2xPbjAzNnNhdk5QYmsvQzNzNS9GeVRmRlozTXpNZHZackIrdkRyOGRsWG9QcjBhRDlqYXdtU25QWnpMK2lzenVoOTVEa0tqWmhUWHRtV2Yrd1JuQXlITGNicS9YMnc5emNSam4wY2RLNFQ5OURIWUtySjFIZnBQYWMvamwwa0VEazZVWmRsc1FOZDk1cmVpL25Ma1M1dW84a3NXVDRIaUtiREo4R3RScVk0ZEhwK3lMMWdXdWV1SmRScVk5Z2J5dVA5RGxzdmxCZW8yWjJmRlBQb0Rsd2dqUFp3MTd6dlRGa0prMHpKdzZ1c2JHVTkzc0EySm8xMkw2OVBxS1lBcTQrd0s4cHpDdlBXZTJTOUNKNXhIZCtueWVrMDRmeWZPblRuOW44TitqNTA2RGY2bUtlU1Z0NytVdHJ4TSt0N3E3WC9lZm41WXZPTld4eUFzM2N5U1BKNlJDL1d3aHhMS2kxY1JXdFpjS3N1bEE3M3BBdkhoTkg1aGwxNjVvMFRtMXdIckQyTFM2SStNeUY3L1FCSjA3cWV5THhMMXE1NXZpM1dkKzJLdnF1M1dEVUtiWncwL0VKT3VjTDYxUHp3R0plV2k4VG80SnhoYWRscU0wNnZWZitHTWV0VGU2R2YrWWM5S3FVTnJFaHljazlKVGJKajBIZGxtTEJyL0xZakFPQng2ZzJmSmVjdkxMOEVkVTl2VXYvSU1xUnhPYWVORDNocm8xaXArSElUUy9tcDFBOTRMY1lWY1pOeE1lczNMcUVVaDkxK2wxdjZoanlYWkFCaVhESFhlcmFscWZqZUtuUGVwNkR1RmtrMUk4aStqd05uWUZJbnNQamFxdW9ZdGpnZG5iTXBzbS8zY2k3OGUvZDFHOERiWEJzc2I0aWNJTkUycW5EZGRmYVlwYW5NR295RjZQTlFXRy9JaXpNSFBqekd2a0U3dTFkcU5tN3dDMXZ6dG1rc25JT3dYNkRuampUNndJZm42NmtPODgxQ244dVo5Z214aExheEZwU3RyT1JLaHhEMzVlMU5yY0JlTmVvaHY1YTdFTjNiUDNFYVhYVXhNWDJhbnFCTWZteC9XM3hvc2U3K1ZTUDU3NWtNOUtjVThyTnZiemtPVWtEMTdyR1Q0ek5vK2ZHK3hhREJyaFJhazg0bmMvWkZJclhZWE5xdXJYNkM3MStlOTRNNDNKQkZlU3dOYWhkWUI5dFRiaERtaHd0TDI4RXR3MHpRR2lQSnNXcnM5d0h3dzFDYk5pdXcvN0tMeUt5aCtPU1hZUEJJRFZuSEtPZFlzY1dZUlpxT3dNT2FpSlVEM0xQZEV3aTZhcVhtZkh2Y09jUngxNXEvd2JPQlBJdDVLeGQ2NlM3ZGZQMmV1Y2J2Wk5ORDBpREordjJjWmRSUFJSNXJrRTZlNEhod2psT0lPREhFZ0pzMzhkTlRxaURLZTcybk53K3l4ZTRlNEtCU2JpWVhoRzVzOGR3RXZRZFg1Wi80Znl3WE5nSXNEaWV1OW5kNzY4K0lYNmV5NjM2WGNNUjFPaEhsck5NeTlDMXErNitHREREbGZFN01WMjkwbEFWTzBJYkMzWjZ4M2dad0RFbG0zOUQ4SDU4clhTU3lhT1dtMkNRNnkvREpIVHNsUEF5cHd3SHplZWdHUTZZekJuc3pVQW1BcWZmMlA1TFBrVVArRUtJSHdnK09IMi83KytkbUs0VWtZc3poaHpYeHZCT2pmdWYvSzg5Lys3TU5yN01sLzN4bDR6NkhwejhVQ3drek94WWtSbHVnSGZ6bk9PK3lUVm9iUzJDOVd4YzFJWTR6Tm9Bc2ZVTkhMSHlIYXZFY1J6aDBpYjVIZzRqelB6dUhUZWJwWlB2MGJYVEFUaGs2VnptMXRmeDA4QTVIUUFyWDdQcjhmZ2tnbUY3clR1OTlTTERIZ0YrRE9aUWdJOXFUSVJueWswMzVXZjI4LzRpbVkvSWNmbDRqa0Y0YWFIdlhHVTVIYmdXeWNNYVoxMnpSTnByUVh3RmdzZUUrZDAzY3NaY2Y2U1YrdEt5TS8rdHFhbFIvRW96aDUzV3h3S3BEejA1SEFjVDRXVFhCaDNPVzhCMS9EZkk0QTE4ZlJNM0VQK214UmxTMjFJU25oeDEwOHlLdjEzdkJPNytUaXpEeGJqWDg5ZElqenFUUCs1K1VIOWwvR3ROdnNCcDVtb3puNS9XMEpGQSt4NDdPTUV1cC9FN1dPaWIvVnRRNjlvVHVUZWIySlhHUzFBSEFGNXZnazlObWMvWjF1OFpweVZnd0xnNWZ3MG12OXZyMG9sbDRMemhNdzd6Rm0rc00vRDhNbHdqbThIUGZiNGpsMGF2TS92OXVDSmNMeTdscFczNWRSZ21nTWxDQVROdDY2am01eWczK01RZCtNQUZoNy9ydk1OdEdlQjYwYUdlQTdZaGEvSUVpTnFVanUvbTV5Y3hrcEtXWjdDdzZMemlsdThuZGczS1pjUHo0YkQ1L0hUdkNMYS85alZzK3ptY0xTY2ZrMHpXS0s2VzlrS29aOGlMU2t2V1QzS0Q0L3E2YjRITEUzSHpEM1RHTVRvS3BhY2lwaHptMTNwL3VPMmNpVEgwZVhGeFB2R3JDWGJZTDZQQ0ZGcmV1V0VXU2s4VjdZMnVmRTNQZEVVZ1hNWTM5RERWVmJTdmpQbXYwQThGR0dHQysxRnpQbStyRjJiUGMrV05sK2xjVDBhRmZIZllZdTBWL0hlU3ErTm0wYzVuU3dGbWdNSXNPdXhQU253dUFtcHNER1BLemNxL3pSUEJ6VkZ2ODQ5Wmk5V2g5MlQ4T1FjeXl3YnJOL0tzSkFZaGZXbE1mcjZUbCtMcmtUMklTZVkzY1d6NHZzY29IeFJrUGp1cHBmbXV6TEJWVEtmMHV2TzBicjhubG9FVnFSRVhNWjBWNVRNKzVoWlhmQ1puaC9ScDBib3FxUVBTOHdkNDV1L2M2OHB2QlU2R1FiM2k5Ly9XMm5TNThjaWF0ek45b0dibzUzN3BTV1FtVCtqWUZjWDlObmJTMXdaN285ZjBiWld4Y3Z4TzdvNXdUNU56b083MTBlRHJZaTYvQmR3OHNodSs0QzZVMUEzUExjQmhCQnFzSlozbE84UCtHY1VHUWg2SWo5ZG83L0l4eXUyTjcrQzREVGhZb0hZUzUrcXVxWjFjK1BRY0pvWGpjWWU0cy9sdUo4OUZkUEszQ1B0RTRxQ1JON2ZYelBabEdQMHJmckJXeHpIY0d6cnJMNlBqKzV6dStIN0hDdTVYaTF5OWdOMFBldGt2WXI5T1AzM1RNeEJCRHZKMjNBSjVIbWZBK0JIdjVLRU5NZFIybmJodFBoOTg1Znczd1BsTWxJNWZjZ3dsdEtjNEF5bHc3RjQzamhsZDVIRGIzSHZMbjgvYkxOSVRUNjdobHpodXY4QjNKcThNeHpER2RqZytjM01aazJtOXdmNXBneTM3bVhzMG1McDZ1RjF1N05rQ2FsZGVNbHVha3h2M2F2MFhOdCtIOUNrSmJaOTFkMlkremFkQURJSGxMblpJejJpTHg0TFA3RHV6OUdlM3VZQkpYdUo3c2tNNUlZdTRqQWltdTEwUHZqNU1aNG56bUgvczV4Q2NJOHpDRnJqNTlMdXdGNEdNZ0k2cE9aNjVDMHdkbmZuZjhWMnZaallNTy9PLzJNemhEby9GUFd6azNia0hvN2EvM1I2Wk0xZm9mN1ZHOW5SbWI5cTY2NDM4ZmVQamt2cmI3N2RuUFlJZVBQdk9DZnBVOUFLaHFOWXY0MmFScnZjWmVPUEFablI0Qm1IMlZhUXhYaXVJdmRzNG5lUWYrVHdsUC9PYzJzWC9sN2cvYTFJY1dmS0g0UTgwRnk4U1NWdHhDU1FTVWdGWmJOcnVrSlFIa1Vna3A5ajU5SytGdTBlRWgxQm1WYytZL1orTHRwblRUWUlVcXkrL2hmY2duTWQ0Mngva21rZEVHS2Y1anRVOVlNM1V0TG4xZDduQXd5akU4NlhiSjV3TjhDM0FCd1l4VGEzSm9IOFNaLzg2MHJvcGtLZnArWlFheU9SN2Z0TTlXSHdtV1l0NndwYzJlOTdodlNYMUZiMkJmMDd2a3BNbGF5Nm9GL3h2M3VsSjV3RjdKYnNjdWVUQWJ5UXV1RGtmdWxaSVBENzQ3VnA4MHVEcmJ0YmgyaUpmaHZNN0xQOVJma05RdzRZZTNEbHU3eVF1WDhRNWRoTDVIYzh0RG9tSTBmVWVoTG85NHBjN0ROOVh3OC9wUGdIMmVjeDZLUHozZEwrRFdqNWdybTFIeEF5dFBQTFBzdjR2ODM2NTd0UFE2WEE4SnN5dDNiMkFqNThiRkEyeEFjVG40Mmora1Eyc2Myckx1ZnRDbi9PUHVIV3BDYWYvUGZId3R6bjBuRDBaSnhXeFBiWFNTT3lGZVprMTRLeGxIRWVhckUvWUQrRE5HWjdVTU9la0p3aDQvQ1BYejZEdktaNTdJRVBFNm84bXp6aHl3bmFNeFgwcWNxOHQ1T1lXWVFBUnE2UHIzbG9yRnRjSSt5MlJMeEpQMGZnN2lTbSt5bG91WURoWmZ3ZnVNT0xVVldwTXZxaDFvVllIOUFvL1ZTNXFLODV5YzY4RzUrdVEyRG5kZWMveEN2YkNiNWZrcnZVQjBxcmg4MUwvUU94TjJRY3hkV1Q0MklyejgwaDM3ZmIvd2dINXlrTmZQemZjbGNSRkIxOHk2ZDFIR0VwMW45WTlWNDEzazgvZTdIV0o5Ny8rVGVsaDVKdzQvM2hHV0srWWN3SWdoK2xjR0wrOHJIRWxLOEthNFAwZldxWEUwckozVk54RFZwTzhpeldwN3ZtbTNOM0E0aW50QTk2ZlpMMUlwUjlVRXJaS3h5aWtyVGFXZlFXc1kvTFlGR3MzcEdzZUV5NUY3c0g2Zmg0UERJOUplWjdvdTRGcU5CcnpSZS82Qjg0aFAyZlRDbm5XeWQ0dlpYMkRqU2Y5dm96VnI0cGJUM2twMUhGaWpuOGErWmMwN0xZazdrekhzSEtkcTlxWTlyOWZHTjRKbDJ4UE5ZQkZiNXZoT0lJdm5iSE9UTzdLVnVaTWl1ZXQzL0VmenkxSzFiK0xka3cvUU9yQ21tY3hHK3NHWE41UXhjcGlYVXhBbzlvNVU1NTRoamhWbk5VaDZHc3AzZTQ0RkRsb2QvOWw3QmlxM3p6bG8vbVJkTWZxV2dBTVQ5bS9yOFB1SGIwUFN1aHpVUTY1Qnc2YTdPR00rbFpjM1FEUFFCcXZta2RKWjlkaTFYR1grbm1ZNXIzc1M2R09mcnpmcWJoeXBYUXpyNUFMcDIxL0p6a05LaVl5OGZaaWZLNWlMNGkxYUdvUy96RFBBdGFia3Z3MThxYzZwblpuai8wN3hVditTTnMrOG0wYmNaUkRFNTlOdlRlSWFZd3hWUEd3OU9xR2VJeHdSWkxYZ1djUXJYSEpyOWZjUS96djZEdm9rQWRoWFhOcS9wbFZRVm5ISHdEL1krUWYwalppQnlmTDNoRjE5NjZieWNlS2p6ZjM1eFV4MzNXTm5qdWYwdU9DK2hOWGtYTmxWZGw2WC9SdUU4Um1GRkxEQW1yRVVNT2V0cjdYZmg1S1huS1JHdDhwOG9iZUZlYW9PajJldUFOMG5odStLT3hPTTNzQy9nVzlUWFhPTzBZOFptSEdLUFgzb21lUVduTjBscEYvd3BIdUtiRnVuM1EwK2ZyRjNMVi9UMjNyOHBkeHN0U0JWdk1Gdm5sTHJmUEtjT0htUER6dmFkQllpOE5jMWhDbFZ0ZzJDYUdtQnpYRDFPNjBzcXA3ek83OVQ1SHYxdkk3K3V4S3huaW9WYUxuMDVLK1RZQjVCbitMVzRtZW1oSnpLcjREOXBQU0NEWThmdXB4TCtpVkJVVzZvUHRON0NtYU96UGVWOW8vMlB1V2RkUFFJVzRCMWtGRXpEUmJkVjNxKzV5OVlYRFBxdTVkMzdmZGp4ZzRtcXIyWTQ0Yjg1Q0Yybm5ZZ2Q0cHhoRjA1eER1M3V4bGludWtlMVo2Rk8zZDJleHpBRWV2SkR4cW1iZzVhVEVFTmEyT29NaXEyMEg2MGtnL1lyR205VnhKWFM3ZzlKaTFRWXpkYS9nWUk2ZHVRVzYyMWRva3oveTIrVVBIK3FqNUFmcU1xRGRTNWRFYytiZjYrYzdlVVA0dTRRT2lxY3BOMlhyWGExR1A4MEhXUmhPN2c1aStkdkN4SHRENjNVdGVMUFJzRHVrKytDc2RLTk5uQy9ROHJ1YTZ5d3ZvLzR6UTYwVFhzbFQ4S3U0Sm10djVRYnhyWW9QT3lGRno5MnFlLzh5YmcydWxNQjdOTlE0N2gvaWVNVTlaeXZOVWJSWFdsdGFIWUh5cnpIWE82M0J5U3UyWEU0dEw5b2FmcU1TLzQyZFZybWJFaDJIbkkyMEhaNHFuQ25aV1BOY1RORDVFN0xYVGVOdi9SZjVIUnU4Uk9LV2pYSnpOUlZxVnFsYWNzVmc2bGpHM3VTWlVmVXl0bDMyQW1vME04eWp2UGE2Qnpuc0IwRitDKzljcVVjZTJmS1JVWDgvY1c0SGY4d084ZFhQc0xWVnhlSHRnWGpnOVNNdy9lRzI0UVZOdHJuYStTaTFHaTUrdmNnMy9iT3FMcjhQOEROZ2F3cnhML1dPTko0QTFmay90bTd3SCtYY0RwOFM4eC81OFJpdU5IT0N3SXlhWTgxaEZqcDZFcFEyMVYreUZHVDc5V2xmeitPUnB6R3R1amZ0aDI4aDFRMDFZdkcra3gwbzk5MlU5TjZpVkhtcjNxYXBOay9lcTRUdFA4WCt0TDhMOTdybHVxUmx6eG9oRk9tWGdJZWtmV2M0dHVZZEh4TGdsb0ZlbGRBT1VIb001Rmt5WHVwWGErVDZWenljOVlXdCtPMUM3MExWR3FQdUllRE9XdFNyTTlaWGZBcTBUNlErck9DdlloODFGM01UelJoa2JmNUZ6STI5UnJsUEVmQjVKaTNSMTB1dVUxN1QrbjJPZXZ2TFhXQ0xQdmxPbUE4QXhvTllkK0ZkZm4zcHVnQmVGZCs3ZTg5SGtiTVQzK3JldzNseXRGSStSN1pPRzN3WHQwM01LK3BkVHhQdkRkenZnUFJtSG5iTTRkMk9vS3ozWG5GanRsYzRSemtYbzdUTVdhL0wzVVJvS0h5LzdPa2ZkRytXWGRKdTN6RnFHeWVscWlHWDNrTHVRSHQ3WE9GZFY5OWlsdHNKZWtiNjM5S0huSGk1ZGt4K3I0MTRScDRHMmJxM1dydnNyb1I1WHFmMnF6NVRyVSsrRFlhd3BIcGZuZ3NMcmJBTFRSMFhlQzNSZTZPY2UwKzgxeCtKd04xKy8wN21vUFh0TnU3Y0JzeW0xVTB3K3p4KzFhRXlOdXh2eFVZcUN4U1Z2Smc2VDE4aXVHM3hmN0dPa3JyT1gzd0hhQ3BGanhlRlY0cFNtMy9aK01SK3AvWmFxYzhGK0VudlFxN3Bud09ndEFMOVY1TzdxcSs4NnhtRzJNYkg4S2c4OUtRKzExMnRYK3JmeG5pTFZXWTZhaHpXMXdEdEM3dVVhcmp4MW9XWjV4ZHJ4RjdndnZkWVV6cHI0Q3hicHFUd1FTeFJnYjBPT1YzUGQyTkRJNHpqTHVSWDBWenZuTFJnR2p2eWRwVm5EcC9oS2NYc1JvNHhuTnRiUGUrd09nOC9lRHFuR3Y3YlhZV2NuY2tHUlk0RDJmWHNLOFQza3M0RFJuSEdOK0xQU2tETzFQUFF6WGMwY0tvNEF6NG45a1lIaXB0WDhhNDArNG5jOVVoZlhZMUVBdmdqclFjcmYydlFGTUxFV1Nzdkh2UlhKdmZmakY5UXpHTVo3RkR5U1paUEdSWGtlUjZ3bkdjMHY0NGhpcWRkdlBvZFlZVmk3azJXdndjTWlhT1ZTTzBqRTFLcEdTNW9pNHJ4NjdXbGRRKzFuVk1hWWd6WGtPeWJIOWR0bk4vVWNydDZnMEhycEROdENPdjUvOVo2R2JzRHJVSnlMdXZhaDcweER3NGZ4TXNGYlJuTnk1M2Z5S0FJTitMUnQrUE1WK1doZXhIYkJOU2p2TmR6V3MvN0YvV1V6aDNVZHZNVGdJVVAzMU1EM2w3dmsxMU45QXRkaVRaZWpXMm5lQ0dKdTBMOUNhV1cyMTI0cGN0aUQxRU1GdmtMWWhia21UYmxXYW5lUEdmaTJmbDlYcXNlb1ZOKzNqZnIwd3RTQTVGcVdxcFl0OHlDcUgxQlBIWHhxcWZiTC9KRDZSbTAzYlFldGJCVG84V2RZd2RXdU81a3ZQRjREd2x6bEcyd3M5c3BBZTFyY2lmNXE4TlY4ZDhCRE4zVWw3N2w3eHg2bFdPZEdUWmJuUUpkNFB5OEkvNi96U3Q2ekdlWEZlOE5lOThTenZIN1M4Mm5QcXJYVXpMcExiM2ZsZFliNjJneURtTGtCOUtMbCt4ZzYxSFpjeDdBeXZkeDZiWDdPK2xpelpyejQwL25ZMjNoT0gvMmxIZDMzVkpqTTBMSkVmaDVycjdaNjdyWExJNTk1ckgyaFRUUG9ZZjF2SlBLc1V6bFdQa0FUdzFkUTRwS3kvWXh6Tjh4NXUydWRIa04vajlaSFN2VnlRMXRuUC9uV2o0SnlZM3IzNUpMdDh5S3I1dVR2NTIyV1dpT3RyOWFkUTl4cWwvYitvSGliQmJPREdEdWRKMEVQNDFtamlEUWs0dlpjM3Y5YnFrK0tlQmp6OGFxRVdsSlNKU1hoVzJIZFF4NHUxclUreDY1eFdONi84SVVERHJiVVlzMVlqa0wrMlZ2US9Senh1b054ZnBpY2NERStzTTZBejZVeFRpeUdpaW1IRjJ0M0VVamRONWhUQXhjUVYxMnhQdUVjcmV2MUxsczNSM25RNk4vOUJHOXJWU3RxUGlla0IwRmEvZUQ4ZXNRaTRXL1NHYVhHUk9GQjJlZVJUNEplaWNEbHIyR0c1UDBpZVhIR21mUzM4ZjA0TEsvZTYrbzhYYnhZNDQ4Ry92MUM1R2FkU3c1OFFNVFZlYS9EKytReDB6bkIzMnFqRGs5T0dFdzJnZVAzWjYyVHY5eGwvOGJUN0lQaFVuUXZUOFJVNkhQMFlIeS9RdVFtZEZZLzhvanRxNjNNRTBFdlhZenRSeHhPeVo4ZWNJajF1Wlh4YnYzM3hIZkxjNkJBRG5SU3BHNjUwMWhQNWUxU0lJYlpLaUZtM0UrT0VvUEYvV216eXRtdG93MTRkY0FkRFQ2SDJIL0Vmd2Q2R2NBN2gvVkwrbFBabmZTbmxTYjlxWHdIWFdYZ1NsbFo5Y0pybi9KZDZCeC80cUNXNlBYYXNlUHdka2prMlFMKzdOTUNmYkRnbkpkYUttZlBRZHdFcXoyUlI0U3NyL2VSUDRSNkxMc2s4dEZyWFBJdHhUZ0JGaEw1YlRLbWUydTZLOXlpbFkvNmo3ZnRENm56ZTE2SFB5NGkxMXlIMDhmWXB1Y2FXSWlWQzZjRjhPQTE5NFJ4bGRIekdYMHRZUjZCZTZhOWltVmVLNy96eWpWWVRQMldLQ2d6OUVxbEhHTDZ5RU9MeDNwU2EvV0R1SWovS0J3WDFsR3F0TzEvSkRybWxEazAxUGROYjM3Rzk2N05FenNqTUgvWlNnMDRXQk1TWDZaOFFnR3pBV3ZHakFueC9rMk9lWVM4eVRqS2kvY0Y5cE9NSG5ibEhOZWd3UVhQOWVTQnIvM2NDV09oMXV6TFpnRjkyTVRRYWNYK052STB1UGI0R3J4ZHdYZGdsOXJFMjZlOVFWdzU3YVhxVGhIbk1JSitsMXhqYkwySmZkaEZQLzl0LzVKVmhoOENQQ3VzQ2NtVEErK2NmcFZFYzdHdUtaWkRqQjU3bjZmMU5TZk9NbWtvRjVuZFBYL05lWDNXK0NWK0t1Z3pwTHJ2b0xBeDM4eERpenhDNi8xYjZlV2c2bEdUVlF2dVNYeEgyUzlVZlF6QUdZTVdVTS9vZjFHY0FPdEhydGVhOWdMMHFldzE0Q0Z3N1dsTjl5K2VWNThmVU50Q2p5UEVycEEvSHRRWTByQzdVOXFMcE5HazhIdXVjMGcxdjZ1K3gxQVRKdkpaYm1SNE9XdWZFNHd4MkhPdWxCNTlqSmdTNmEvVTRGMjlrbWQvRStjWHNXR3dUb2VJSFFVTVFGSWgzaUl2R1U1VXJsT0lEWml1OElPMDJxVytOOU5oS3FWbmoxekQ5Yk9qaUN2Z0g3VFhvRjJBODBoM2lxRkRHb2YrSVhVbDNrQ1BqZEcvRy9rbCtRZkljMjJUMnY1L1JRNUsrWmljaS9PM09HNkZNNlcrSXRZU0pCZFgrWUN6bmpUZ1ltQnRqcFEvbWJFV2VhK0FuckdBbURIc2RQUjVPTUdZeTZXN1VHbDNOZDdsM0ErTVB0dmJRaTF3Tk5tU0ZpQnFZY0ZZUzk4MzZLbFU2Q3RjUDJlTnU0OXJhZXV6RDgrZkw4OThlZFpqTFlucWQyNSt3RDFrWGRDNy8vbDhXbGJkVnJMOGxMbkhiOWhuSThCalNhOTJHYU9MMzk1bVZiZElYUEFEeEx3azdPNlN4UlhqWE9JMk1kelVzNWVEanM4STg0Mnh1T0p5dStvT3RnREgwaHpIc3Z2YW9uUE9Pc1hSNW9UalJQNlNyNXpuL3ErMC81ZnoxVFJZN2NwVnVQaFh1ditHYjI1Z08vZTBLcy9KNDFOaEIyV3RCTjUzQk5pcWp1Y21SZGJHZllkZSt0TkRvajBqSVZmS1J5TFhEcTRHaitwMXVFbkQ4cGppbnRiNnJ5UDA3dFAxVytaUEMxaVZyb2kvd0tQalhmdGZLU3lmNG12UG5yRUJxRE9JZkpTc1BiK25Obmc2S2szbFJtMW5PTHRWbjRqV1psQmtiZEpRM2Z0bEhCN1BOZjAvR1ROdmsxRHFHMHA5SzNyUGdicUhJRzhISG9FNEYwTFFUZnJJcXFEMWZKNVNIS2Z2TXUzM3FkYm1FMDRUdGRpQWR3aHIvUEF1KzF3dWNLVS84OUFxeEY2bjJvRWFENFpUa1QzVk1vNm1CM3JlSTQ2ZjhqL0V2dWRBekU5OHlTTy9TS3Y1SlVYc0MvRG9NVlpDblJNUjkwZ2ZFTmIvdysvRXM5QktxOXpDZUF6cVkzenN4Tm01emZaQmk3ejJQblI5OHNqbmkrbTV2QmdZQWFWM1RSclZHcHV2ZEN5YTYxZ3UzVVd2amJVczFIUit2Y0gvQlMrVTVjdG12SDBSNStSSE91amZjL0FwNnAzSDJ5L2lMVjBuL2FmSnA0TDJGV2dIaVhQMlo0dHF1SU5UcjZhRi9EL3JxcnZOSHAvL0JXMkkxMDZWVk1QTzVLUDNpQit6enNSMmlyZmxycmxPU0RvdzBIL1NPczBicjFKMTdpM0hsMkxmb2xQbWQ5T0RER0prN0pQSk01Rmh6SXBDNGhtOXFuTUJYZm03dDhuMndWR2N5ZUNYdEVXOW5Wb2R5dWpicGlKSGNjc2lkd1B3VWpYMTM1bS9NV2lONFgybjQwbFBqYWYyeFNLTkh1aVJkQ3ZhSTN6dFhiT3FhNjlSYjl4ZWgwTXpsaVc5YTEyYmZka3MrWmtpWThMbTU5QjZLdFd0U094YzY4NE0vSFBhRm50enNxM1ZVV3BqWG90aklUOUdQR2Q5YlBBemMxVkxwSEZWdlozNk8vM1V0UnB2dnJwTmxreDdXSDVHMW9SKzh0eGtxM0xINTJjUWU3M0g5RDVSMTBmNXdYN0ZqNWl0cGhQUWozY0RoWjFMM09BUnQvMURqSGpLQWpFNHFObU8vV25nY3QyYjlBQ2FjblVSTjVsOGFmSkc0NzdJSDU5ZjYybzk2NmNydkFyT04rTm51OTBxMlJxODlhSGtPTkdZdy81NTIwclAxODZGY1ZucXVsVjFINFJ2T05sYU0xMC8xM1d6MXJrdHhkSTNxQmU4Tjg2aDZTMzRIUjlmNnplaExwQXh4L2ZlSnJOUGgyeGdjYSs5YXh5VnlQOUcvVVRsZzVtTWdsTTJZUC85MmNNUmNzVzFYVjR6dytzYS9Md2JmQXdObmNhdmZ3ZjdlUEszeW1UUSs5UjdlY2RyOXI5L2FYekkvNGp2bllVMzVMM0NmUjY4Sk9IVWtuNlRpZFRVMEg5ei9tNHNsNkN0Z3o0TzBIZkhmc1htUDI2UHptU0g5VittVmx3eHZPbWdLTWRWdHZHMko4bWgrWkhZUWN2Yjd0aGFhZjFRNTlqcmkxcVQ1RmVOZXlncXlyZ2RhSjZYckUzcjgrKzd0VGNsSG9xTTB3bnoxZjhSRTRjbXJtNFhHYzluN1dETHNLZWJuKzdxbk54NzIzRW9hdzgza1lkdG1hN0c1bWVyOXdNd3VHRXVjcmovOFlZNEpyU25KSzRMUFhYc21OZkhtSzQ2YXFGaG5RblcvRjdrQ245WTUySXVNTThCMzR0NW1kamQrenBVZnViZ2krd05TUXQ1ZTkzTW9EY00vL2VTN2VkbFF2OWJ4QS9mL1JiRmV4ZnN1OHcvQVQ4VHlud2ZPWCtwQzVoRTVwT0hXT1Z4SmIxMy9rTFhnalEzS1VmVlo3L0szeEQzbDluVCt6cjBsUmFZanFtK1hRc3JobEVvVWpabTc0dCtEK1pGNXRGYVY1bGprU1YzVWVtQ3BLUGRkNzkzemFxQU1DTXFiNWIxQ0ZaSGNBeU9PL29vRzdtMnhHZC85MXNRSjRqY0JlTS9QZzVIdHNjNlA1S3F2R2Z0MlNtTy9MMDM2UGRwcnhWTW0rOUQ2c2ZBT21vSHAwUnFFR0FPcG4wWS82QWJvdjVoMkFOKzlpaXNsS3dSdDRPcjdnZDN6eVorSGJndzMydC82UEU0UTIwNDlFN20vTUdZcXhnb2hyTXlsMTduNXdTeHdMYjAxLzVlOTBYL2s3cmw3MlRSTzYxYXdXUyttcTcrOHdyZUZmQk9jVGdIdmpQNG9JTW1IMm5Ndy83dGJYL2VQZERuNExYY1A3d2J3M1RRZmdCTUU5VjdvWWFpTlB6dlNXaGQ4cXB4UGJFOTN4ZG5ManVQNEI0NXhCRjVUSXZZUDd3ZDYxNmdFSmRBTGxFcUxTeFdFeE54Z3NLMWZuKytxRE5SY1JINE9hejJCR3A1VXI5Y3J2WCs0eDM4V0Z2OGZjNnB6ZStpK3Z0WStEN3N2djdQeCswYWcwNnFmLzRsdm1mbzdFQkxkd1I1WDVsVkw2d09yTzVSbWJlZU1GN3BuckVYQUQ1V2Q5QWErYzVUbWExdnFUSEZPV0wvMlg3S05XcWNTZVJWVDdtVWVyN3Z6b2NEYW52bXg5VDJUbGw3M2lHdHBSWm8rbS9wcm1CY01lZ050NEprZGYvMmUzMnFsei9wbWlwdklxYXhxNS9WOExZdVYvdVhIK3BaUGw3azJFTzlqWFR5MWR3b3JxckdtajFxZlQyR0ZRVjl1TytlSDJvSy9GbUM5dGZQSXZIOWJOem8vTmE2cHFqZkJGaWgzMGxFK0VTeFJyNjk5N1EvUnU3K3FPOUwvQjc2ckxHT1J5Ly9aWis5SjlHMHpHa014R2ZuaGtZYWVzVExHSVRPUGZ6dTVublorRi90aWEvWGtZZ3haM25vWFZidFlFdVlmZExVa0hFYnpzMzM1OEZVOGN5Z2pnUHJIUEtzY3lPK2xyU0JZUTcydTAwcTRtUzNCQ3dZY2tjNlpkcjdidnliMzErTWsvcjcwVVM4LzNFZE9nL3NlL2Fxbnp6ZUYzYzk5TCtjYzFvRng2eitPMFBzRlVxT045UlU4RTZGZUJIZVZmNFdXKy9HWGY0S2ExUDY0LzJQdUw4VFYybXA4QnFDNmlkU1hBYWFSeFFyOHM5cEhqbU43M2Z6VXNmWi9hcXNEdFpWRkdaMWx3eDYyelFxcFNkZjdUbitGSi9CZmNhOStqN0FXM00va1pnK1ZhUHczQVR3aVQ5SDB4STU4K0FEdzUvL3h5OVdheFRyVi9tYnk1bzY4eHJrdW5IZmpobkRSOE05ZzgrellmdnpxR085R2ZzTlE1dVF2Tm1rM3d2ZTBhcE9vdWZqVDJkNmxick9QZ0djZ3NPMDFhQmVLbUlnNW51R2RZU2E3aTV3ZWIvVjFHTmpLT05Vd2xucHVybFpjK0ExT2FuYkIvSFA5ekdPb1UvVDZQTTNscys3YUtqYmJSczBIaHJXY0YzbnRsNURTVXpQYWViVFE5NTgwamZodS9NRWEzcmwrd2p3UklkODBPOEh3ZHlyOGJSdWVWamUwUWUvcnBOSC9wWjIwS0s2NVhmalpveXg1R0dscUNmMExlY0sxb3Y2RGZndU54MEZpci9GOWdIbTVNQno0ZjJNbDgweTdONlRVR0ZYWVgvOTBhTkNuQkZWVjU0Ukl0NXA1ZEFuSmwycmdZOTMyWWoydXJGbm9LNHIxclo0am92STVZdzZiSk4rb2JFSFpkNWw4RUxiNEV2YlZGT0R2S01BN1M2STVUa21xZW0za0JQSnp0amVKK3FUNlA1ZER2bUdNUVlONXhmZDUreTdWK0tacSs0OTFiaHhqaU1zWkgzc2Jkdm40M2VVOHl3eERLbWRWT1B2MXErTWowa2JoV3JIOXdSaTg4NkQ2WTArWXRBdHdUb3Y5cUlMeEdyenV2bnMyNzJpOUhwRnppL2l2Zm82L2ZsNkl5NUY1L0ZydXhQcjlCVS90OUxlS2NUcmgvdU00Mm8xaHREa2tNQStwcHpvVCtkZkpkWkRJY1pRcmgvcUJXMlV0cndab3dUdzMrUnZHNW9tMy83VzlCcUhVK3kxdVE1NktnMFVacFJ5OHVsbkhQbGlyc1djYUs3TVlNTjE3RUJENXRzWXl5NktySEkrY096Ulp6NnVWaHV1VVJqYnR6S09mTktRbXdOM3UzYjJMUER1V21FTzE2QzlpMmZzdkNXeEQzcWVmQ1BXK2xPT3pjNUk5RDc4aXA4MjhPK3AzVzE1V3pvdlFGdENlaUIxSHQrdis2ZTRuUElLWGRQUFJKd0xXbExZSzFLZS92Q2VmY2lGd2RkclQzdGs5bTkrRCsrWW43elBMWHVtYkEwMmFUc2EvUXFkbHhwckhyUkpBZHVCZU1hMzdiTXVDY05qeUY0SjNJZUdYaGZyWjFNZkRlSVE3Rzk3aU1Ya01mV1c2NFk4MzNXc1JzSzkrbmRRVTk3UDczRTRiYUZYdmV6SFlCd3lheFg5NVM1M3ZLSGx6Rllkd01zbWJuQk53ZzVwU0hSbHpRUDdSQkFYdmRUNm9keFRjVm8yYXpuL1ZjKzBTTjBTUFVHMnZkOHp5TmQ3Si9LU2cxeisxMTdjLzRHK0czcGY4REJsUFpCcStSNWdyS1lseGRPSWsyNnVJL1BZcFh4M3A2WGtvRW1lQXRPZWRHWmxNR0l4eWRFYmtZY0ExWHNnbnNjZVdsTTlsSjE3d0RtNlNJd2krd3liejl0QnJDL0kvd0IzS0xGMDVPRWxud2MxMjNWTWJLeWRza0k5OFBJcy9uZXV6bmpBd2pQUHdoaTFDN0QvVGoxeHhWTjRZRHpIZFVXMS8xa2pwbGIyK09nZHhIaU9WL1M4Y3F4R0wvLzFYanVnc2NmeWlpWk1VZnVyZDVVYWlQSjMxcTZ6ODBhbEdOdHplbi9xRjhnNmV6MlBaT2MzcjMzU09IOHhsNGg3eGZrbWpaMFd1L3RWYk8wcHpEYlRONk1lalZoekVKOUhjOENMTi9SV0IzRTBQY1EyWWxMTU13dk9XRU5qSm5XREtoOVlyZlJ1M2RkaC9wbC9xZEZueEVGVTYyTDFEczFqcXZkSlpDeDR5TGFJOFJIUHpUeVZOeiszV0NQSlhPY2pXZlJPbnFOOVFza0x2RWk0bmh2V1g0NWNjMTZlaTJLdnJDTlA1R0N0R0gxNXpSZ1pldW5EVFQ0cXI4Q1hzenVYckQwL3hCaWZBbDQ5dG05V0lzWnJPSGVXZyt0bXRRdVd3YkM3bUMrdW03a1RURmY0Nzk1bUs4c1pEL3BPT0N5WGdUTTVlc1A1WU5VcTEzWGZYT0ljSEwxaEVLK0dKWHhQNE13bjQwSGZYVHJCY2pGMEp1SjNrbWorTWQ3Mlg5a2FsQjVheGZzQy9EcWc5b0p4cVJnRGpHWHE5eTNpOU1XNWE1VzU2NUFHcWpydnhMcERyTDVMWE9oUXhDcXF2M2IyaHMrYU5zb0RsZnVyWVh5aTY2WHRmZ0ZhTCtMWkVETjBTcUo1UWZyeXRMNUpLd25lQWI4dk52cEVMM3hkSUw1OTBOcXNtdGZBNXFmV1RLbjkzcTZlODMwOGorc2NlUDYxOXpta2UzR1BPUis1Nm1YU2VsTmFWOTJXZkk4a0xNbkxYcjJMZUE3Si9kMncrT3UvU2t0azBOb0U4TitKdjNXbkd1R2drSGhlOUJqV2EvaWduL0dUL0VkZk51TkZ2Lyt0QjZ2SUhZbFhWdGZ5MGZXa2pvd1pGTmRjbkVmUGN5enVrNWZOSXV5Z3BrTTAyYUF1ZHZrNlczVmR3ME9henQ3eG9MK2NCWW5ZSTlObHErT0xQVFFlOVB1ejF2WG9PVk12Q09iRHBaVy9RYzNCNVRXZnowMEM4V1p3VDl2QkErYmY3YmF3L28vbm12bmZDL0JXcXVrYW1qcHlwUE1XMjNBR1ZrK2U0S09reUtvU3ZGc2xUajY3NzJUZlNNUnY2cjNudTF1d0VuSFI4SHIwaHBZL3QveCtNRndkR2Q1QXZOK3ZWVGs3eXIxZkc4L1g1YkIwbHZEZjFWZ0JCNnpteGQwUGRxc25YMjg0Si9pNk1yQWJzQzc0R1ZJa1ZZTC9UZklUYTUrSHRVWjgxNi80Z21iOWtKK1JnQmtTeitvc2g4RnJNQkF4WTNlNlhEbHZjL2ovYi81ODFWbUpjM0xXS3NUN2diWi8wNXh6bk1CNDBaK2xiZkFiT1VodVlPcDJEYzVvclRabGdkYlZRT3MvU2w2ZjJLOXJybzJHNzZMMmlUbVdnSVVWdis4Q0gzNzQ0M095MkJsNldkNFF6dU5qYW5ldkxQN2x1R2x4MSs5ejRvU05wWFkwNk80ODV5dUc1NWNiYUM2WjdpZitUcUtkTVZhWmZidms5OTRKc0JDTlo1djI4SjFYamxFWC9ybnRYL1BRZitTaEIrTWNyUHpKSXBoNjN1REhabVVGZzFWcnVsaXNmTWNiK1NWcFB2Qy9KYjg3aDhZZDd1dCtNTVMvWHdiQkpCanVOdU83dUJlRFYvWWRqWnBqK0M3VCt6cnFvNitrMk92OGYrdS9yLzFOMEJLZm5lUGQwbnFQK3VYYnR2OUlTS09tK1crdzcvM0YzLzVEbmdsaS9VQzl5MXdYR091TUYvMGhhWXAzTW5mMUQvRnR2L3pOdGVzODF1RFRRdHJKSXU1WTByK0hQT3VMWjIzUDczSTg2dStZajN6d0gvanFiK09xYktXaGMyMzQyKzA2bXAvaXFQLzE4NHJuaS94amF1ZWdvL1Q4dmtVSDhuTzN1eGYvZlBVOWlSMWNHbjUvbjRUQWtUbFMzWVd2Sy9GZVpSeTJubjlUNmgzaTJWei8yMXF1aVI2MzY3QUQrQUtsSVIzNlVGK0VlTmg5OHBYZlpLN1VqUFZMcWV0YncyZ3FYa2NTZXB2TUJ1MG9FVmQ4NXFQNU5YdDhYc1p0eENTUHEvSXliczh2bVZ0K1pQZHVFZHRYcGwwRCtkSmsyY3FhNDJ6NjcyTHNpUWZ4SUc4M2NaN3hmWTU2UldZdEZiVlFvb1RPRCtjQmZnYWh1WWVwZHRlZnRXNFBXWCtFY1JrcXJXb3JzNE1xQisyYUgrSTVMamxvYVV3L29lN1QvRHgwUG5POHJ0K0I5MEZQU1RHRzR1N2ZMTVc2UWZ4ZEsyMzdFcWV0T0RxZUEzd2M0QjAwOEtucWVrZjRuY1B1Q083SlZyQWlMOFJEcXVKTXhtTURMLzZkeUh2T1NSdTB5V1E5alQyYldOUGR0dHovY1RnOWduNHdhWGFJL0hHeTlGNFlGemhnSE56eUhXc3lSWXF4RG1LelpzOCtCdEt2R005OXZTYngzQlA1c1Avd0pKY2IrUVBRanhKalA5WTh1am91d01wc1Z1Tlo5SW5uYWhXcDJ6MXJEMi9rckVIL0FlTlF3dEJMek1POG5kNGhudjVNN1RuV3V5cW9CUUlXWXgwVlphTHg4NkNsUkhVdHppR1V1SHpKbWNLNnJ0UXpzSjJUMXVWR2Z6N3NzWURlcHNRbVFvODJadHE3dUlkQnEvUll3M3hwL0hPWVFBMEhPSG5vMC9tVlRoS2RFek90TStFR0w5QnJyNXdqNXhkSVh6endhWW1LQW5XeWpYY3A2bjBaeWJPcTZSM2htdDlqL1ZGeWlJRXJnL1duWFJKTlA3S3EzT294ZkQ3dnhMcEUzRi92QWpHaFBIL2F1SGJHbGZPUk1yK2d4Y3FhTFMxL05WdDFWdDZ3OHlzWTR0bXFQWjB4UnBZY29lbTJ0MVU5dEVqMmhFWDhoMnNITmVtdHF6aDM0cW84cnFNNTgzKzRGZThoeERRaWhybGtySFlGbnRzNHJncFhSSE9oOVp6Q3BBSWRhMVpEMG42ejg1YlJJM3JtNVREdGRxM3JJM3VuTTgxWlZ6aDc2cTFiVUdzVk1TZHF2aUszWHU5WjdERyszbGpQbDN6UGxZYlZsWEkzNEV6ci9pVDZ5OFA0em9KZ3RSaXd2cWY1ZmNhZUlxMzNLclU1NWhoNEd0ZXM2cllBZy9YNktUVWQ2SDN5UzFZZHYxcnZpaHRBdUFLTjFlTWFqa3F2Mi9sSWFkMnJYZ3ZqWjlLOThXdTJhcWlKa1NkNVp1dWVLZW4vMXA5QmNndVVobCt6ZG9UeE4xVnFkN2R4NUpjSlcrTkw4SE9YWjZkRHZQVVM4a2JFZWN2NnJWOWlqQ1hyM21ZUEE3bFZUUDlTNCtKWVRVNDhUMUtJdTBUWFpoVW5DV3FpM2lDL0pGVXNzU3VVNTJQdno3Ky9iRlpQZUVVWlovVHM4WWNIM0ZQR3NXN2diRnRGV2psNzBQRUhmVitzR2E5R3dYWnNUYTE0MjJkNEdYcDNzMlpiWUV5amVwSE11MVpoQTc3QUcvRXhlNEgxbWhyalgzSjkxaVBIR2pGT3owYzZzR1ErY3ZyT0M4akVyVnpCenpDMk40Umw2cmV5dThiVnFYVUhPbmJCNDdubWpIaE1OVGFQejAzUzlndUttejVpTzVEckVyUXdHOGZUV0p2VE1tZGpnLzNoNUxMR2Z1YS8rejZtMndhMUxzbDFlODNPRTlCL21CN0hVZCtLOStMdkxYMk9xUFZLM1BGQi92UmMvaDAwckU5cjhIbHA5QzRSOGVvcEd3WGJyQjFzeDZFK1A1L3dWNHhyT3RQMTMzc1Nkb29VOU14N24vTmhNRnZ0Z3RkWk1IZm1nd2IrOWVEL0U5L25JcSs2QjZhZDBxcHBjeDRTZzQ4RGRTL1Nuc2Jla0RqM2FENnB0N0JxNmdrWW1LY0dyQTNpVkViRVdRdGJ5c000bFY1Q3JyTVRZeW43SXlMR1lwek9leEk2TGFuSGdIWEJqc2hISWE4QlBQUW91SU51S2RjMyszODE1aXpXL1NKV3JlbWVJa2NSTkJWNWZZOWoxS2wrbjBGdm5lY2F3VG12eW50cWR3QW4zSVQxaGQ4QUg3L0VuM1B1ZzRIbEZzOGcvU1IvSU5hRWVpMEc3N0hDV21uU0R0QjNIbjMvQzlLM3FNVVZFUHR5blRqWkU1YXg3WW40eFpmVXZqRnRlK0JDNE4zTTlDQUp2N1ZQd2s2WmlSaVY2ZUE4Nnh0ODAxY1Z1WHNsNGxhTGNRRFYrR3pmWG1mWHBKcGNKOVhNbW56TXJ0UFhWV3Z5c2V0TVg1MlArREcwa285Vkoxbk9ickh0dGVOcVpjZVAxYjFCWDRINEIrQWYvc3l2ZzVqalZoTDM4emVPbCttTjhMN2dad3JtUGVtZSszazZaODhOVHRsbzNsRmM1c2N6dHplcmduTWNXaVZ3alFnak5tdDEzK2E3Y3VRTnZPMXp2RVNhUWxCSDA1aDh4SkRtcko2cTE2M1p1MFgrWW9hY0U4SVE0cnFxOFUxL3paVi9NL0F6VVZNdExGdEtnOWZRaFRWODRVVWN1RTNGKzk5Zi9yMGVGdW9OVUQxNnZ2UUdrLysxM3NES1Z0emJVeHh0YW5WTncxdEthNXlRRDZiR09ZRjNXbDAzdmE0ZGhab2JkUjJaSldndU1EMGNnd09wOUgxa2ZxTzhIcVNIR3VQa2Y2R0pJNzFITG5TZjA1d3BiZGlMN0JFYm5oS0daaXQrdHBhN05Jd1h4eXlyZk1WNFg2cmxXOWtldFRxSkExYlh5aEYzZ3BYZGU0L0p0dmNwY2hYMS9uQ2ZpN3daNmdSVkVtWHlPMlQrZWMxZDhBR3BuMWVZUzkyYjlGUzAvNEFhRitsdlFmaWttbi9LUnlydXB3WEdSU3kvcVhPaUh4SnpVdHYzNEZYaURmS21OU2ZQUmVqcG9HWk9rNjlVT1YwTnU0dGc2THdGcjU5U2swdlcrMTdUVVVCZXo0b3ZmL3lMZFU1NWhEcjdtRDRPM2wyRzE3QTdQZVpTUjNBZmlQaFI0WEJURzNCL1o0VkZrYzhqc2NKNGQ3U1pGMUp0N0s0aXJpakpiK1hFTlBGVmJ3UjBQOXo4QXBpQ3JicXZEMm5VdjJUN2VRRmFzSEFmZ2plbGtRZWxibmxhQTNaeitwRzJmWmlqZExSRExKUU41eWZndkZGMzQxWmtWYzdlMTIvU1Z6bkZVYUhQaU5maC8wNUxaV2c1eTFWM0VTNzYwOW1xMDUrM2d1bDgxVm45bXpPdTdrTVo4enBrTkFWTk9mbitES3VqdUNySndQU3lpL2VnUGE1ak1jZnc1SlJhUy94OFV6cFgyaStCNWgwMFdmQnVTTU91algwaXByc0plVWYzbnVnK005WFVrb1BzL1dWdTk3Z09wNkMxbmJya1pUa29nSHVhaHM2TDhndVArcGZVTFQvZUYxOW9LR25kc3dLMDgydlA5Tld6eU44Zlk5OWNuZEhxdVF3ZFVlM3JrbGJkTXE5SzZrRmx4L3JZVU0xUGFuSmRRVmNWODJ2bGtTUGpqenFPaXU3dE52V1NJZDZuZW82Y2U5QURYOXVyRGRTYkIvM0p5Z21XaThHVjhYaEIwOWp3N1VodDhEemdQczZrdzkwL3ZrdE43dERaalVQaU5Scjh2UEozc3VpUDVrRnpIUk8wUGxWOUJzK3BYT3JKUnRNeTJRZEg1ZjlLbWkzeUhBYlAxL0JsczNUOEFPS1A0YzBOcEViZ1F1SnErUGtWZ0k0UGFOME05SDZRKzRCNDYyY0Q5emNvV0s2MUFnOEN0ZzczM3VpYjllWGsvZFVPc0lmL01MMHUwcHZrY1pIVHlsMnBKUVozc2ZrTTBxZVFyV3VZcDU2cFpVOW5uSzVYS2gxbjN3SWQyajNUNjRMZlNRZzdVZFNmUjZ5WlJ4NzZMY0lCNzdnM3B0YkZSKzYvZnFicEpSYzVqTUtJb2VkbGpuVTlqRCtxVzVsR2s4MFlhdytkdEpvKzZ2N0YxRysrcjhOOFQvcTAyTE1XNndEcThWeVBFWFh5VU04T09ieFNwMDdpTzhtYjhOa0QwL0NvY09qT1E4NDY3Ym5oZkhWRGJnNzlKczA5Nk14bVZTbGk0enZ6bmQwbG9jZ0pESDhvTVIra25TanhYL0NjWW93cThLa2RLQXdBNWR0T0t3NTkwTjBuZnhtZWE1UXA5SmdiYTQyK3lML1hidmVlRDE3TzQ2M1d4bDI3anMwMWpNR3pWV3FxTTIzREhNWjhTbDZjY0o1SXorcVc5RUEwOEpURzNyR0tkMzBYNkRXZ3RPZWdkM1lST1FkNWh5NW1vS0dvTk00Nm9BRk5lV2FEUjR1Y1N6V0gyYjMzR2U4RHhUTlNQa0dBQytKZXRlYlo3QTN5YzJyajJoRm5qOThVRXhydjAvdEJkK0Qvc0x0MU9ndUs2WHhsL1ZxVnU4MXEySjBzVnRQa2Jkdm90NmY4MWtrZmh0ZGdwSTZjaUIva3VhVHI2UkdQQTE4MkljTmh5Ky9FT0ludFRSUDNxTDJsOXBPR2ZGcDgxbWxCZnk2ODNmTkY3L1JyMjNmZ25tSTZ2ZG1vZjAvYnhTSEZ2aXljdStPQjlBZkcvU0Y5RjdDZjJEK1FqcW4yaTd4cjNtckRiNkYzTjJERXBjKzZjeFhueHJ0Ym5vaUROVm1Wako5dVBudjExODgrVFA2dnoxNzliNTU5L3RXeks4MHkrRTdOblZqMFJVNjlFL09LK0VpWVI5YXovY056L3VYM2p0bnpzKyt4VS90VzVPQy9hTFZ5OTdvWkwxOE1yaVJoZkV4ZVRSVVVnS1VlNk9jRFArQkY3ek1OeTdQWTI0RXpuMml0bEw2eEY3MUI2Mys4NFp5OGpLUU9xbk5XMk9FQmFucUROdVVJdU1WMVh6dnBrWFhKWEltVjZEVEY2Mkl0S2Q3akVyVDFJTS83a1B5VVFNUWcrcDRWOC9mMCtma2V1SlVpNWhmbmM1QXhMQUh6NnJpSU81ejJESHdQeGx4OERjeGJLZFZkVURzQjlUWGdMSlo2ZFJIVVRWN1dvV1Z5MjBZMHoySDVEMm85M1BiZ3QrUVdwNlllck5hdnBEVXY0aURWUjNhMk9MOFkyNnpENElFK0Y4RzVRVWYwa1ljbGFVbkttRG5obm84czNyM1d6MFRpamIxQUhJZWVZeDdlQjhTblQ5djlVdlpSdE1haTVMSnlqVmdqenNXK0xHaWVPZGpQYndmb0s5SGdleG0zL1JJNWFwQy80NzRCUGZqWmhqREEvSDBVbmptSmlvUFU4NVM2Q3pOWmo1Q2VOUlNudkczN3kza3dPM3JEOG0xbWVVZHZXTkQvdnMyQ1lPcU5CLzFsc09yNHkxWkhZcloxZmFyVlhRU0QzbWNpdFYxeDM5SG54SHJKTGRRcDNjbllBakZzZzBKclE0djFzWjhXTW4vaXVOQTQ3SFNlZlVGbldudGQ5aS92YW53UFgybWpjYjNrN05Ia3I5T1VtNW43bjkydlluOGVLYTZIWnhMbmgxajc2YUMvQ29iWDJqcW5taVhFaitKdW5SNklEOE0vQTVqR0wvZVI2eHlCQXhETlAwV2Mrdk5aNHgzdzAvSWRmaTVRVTVKeG8xcDUyQ0crSTlUU0hwa0x2Z1I4RFlGM3VJaXQzNTkxcGsxTmFIZjZtWVRUMzU2YklFOGFOVWJJUjZKVU90dHcveXNmVjZmdVliRko2YXpLOU5sMnBId0VQU1d3Tmx5eW1pYncrQ21uTUhJZ3puOHkxazBObXliNWIrc29LZjlpdlZ5U2JjOUNEN2U1RlVQL01iK2s5bXlUaEoxTEh1YlUrdzZPb0p2L09yeDZRL04remU2eVZqTTlwdTFweVRXWThwRnZKUXM4N3lGZWRLY1h3RDhTN201bTlZUHh0aWR6QU9uRnh2Q3ZxTjBhaDlNUDlMeGMvU0ZldEdnTWc0ZjN5anhDaCt5ZXEzbmJBajdIRmJGRGZwYVk5bVFmbk9XZXplMEFkT3VhT2VqVE1oL0JXWFEyTmFKWjdPMmlOeUh6TFR2R2tRODllRjdya1djdjZHdFh5U0ZHTHA5WWsxSkhIVHo4bGQrR25sUFV4YXlndi9jQS92cWdQMHhDL044eVQ0THpYL3JoaHc1NC9TU2o0RU5xTmFTVmlORlZmZjIranNUNjcxYXNaL2JsR0VyOGpWaHphUlU4TXM3VmV1MXRmaTJncm54SW8rQkV2S2R6M042QmI3cjMybUxyOFFwMWVmSHZXTjJjYVhYNlpXSTdVazlEUGZjZjFnUzdDNjFXRW5hSzJDYVBiNFlGNGRnSzAzK3laNDJ4cjhSNjV6V3Zlamd6eW4xYW9mY0IrYnZxdW9GZUp4ckRPZ3JPWXAxbWQ0M05rNTc3OUg3YUt5Wk1wR2RNRllmbEVUajlXK1N3eEdHSDF0V090RmhRTTQzM0RHS3BWYzdua09YWFRGOFZZenhYbkV0ekE0T2h2YWF1NEpFZ2EzTzh0anNmQnBQYVhYOXA5cHZuZVQzekx0ZCtqT2lGOGFVdkp2ZThKRy9wU05YaWFOeDh5U2ZqK2ZjamR4Mk1SL2JvdDVMdVoxeUhUTVVzZXZ6UXV3VHVHdkMwcnZ2YklwWXgyL0ozaE5xaXVNK2tKNStZSzBNVDMvQm9NbXQ4eExjYUdqeElWdTlWbURaWk04UjdrT3BIR0NjcVRxSHlGVlNlL2s4ZUgzVy9LSXFGNTJVYTlTKzVpejRpeEN0R3p4L1FvZnpTLzNmekUzdlJXL2s4cHY0K2VBamZzYzZtOG5MNFhxd3R6YUd2ME1TcGh2aDVvVFNla0J2N3RMNU1mejd1OVVqclRXcjBGMURYcVhTY0QvR3NuZ3RkdTBkUFRuYm5RMjJaTlA3WVBoOFVVc2NDUFZYczRFNDYvdHNjZmZJMFJ5NTBXUHdIZnFMUTYyajBDS2U2S3NYRkQzR3Z4bTBSd3dleXZ3djREOGozWUI4NHY3V1BDSzJibWFraEx1S25wT3JlYzNkekdHLzdTemh2UUhNTXZTbHhUVm1YdENwQnc2Ryt4bVU4bElid1c3anVVRCtkZWFCQS9hdE1xNjZWMkJ0ZHM0UTZxT1NTRlFmVTdmWExPTHhDL1hRY2RxdHhxTlk3K0pHdUpUYS9DaXA0TDRNYncvd09VYmRDY1g3SUwxdWNxYnpPdy9RL1hwcDYvOUpMU3ZxTm44enp2Q3c1bm9uMVNCRi9qcGpmNnhwL2wvSXo2TW0xVWR1a2ZMeHQrMVlHbW9vSzc2VnlQZkRzWXZWVzd2MlJvNllFZXRlRHp6Qm8xaHhWanc3NkNTSitCajdBUGdQZkxGanpaM21XWVgzVE9aSlh0dUUxcUxqOThydXgxckNWMkgrc3RaQXVCdFlXajJrN1A3NVRya0I5WDhKbVErMzBFZHVBQVdQeC91MlNFbmNySVEwcmVnK2w1NGQxdXVreERzdVRXZHYreW84bXVXTWZDdWVJZTBtcWU0NWhMTmo4OEw3TG1mci9XNDJSQlB3MWFpdWhqMUdCM0VId2pBSDh3UmZZV1JZdkJCWHNOWVpybHIvdnVkTk9iTi9LcHo2ZDY5aXBYZTVZN2VrazEzMGNjbjhzc1diRTJUNHRaU3o1dFBZVXRxZzg2M3RFOXArKytsMjRJeTNBMGJCZUszdUd6ZVJqVlJJbjRwSzd6cEhkVVpUTC9nQXRDUmJ6OGI0bjFaMlpyNUxPMWI3aUsrZzRkMUVieDRGZkp1SisyOCsySEQvUHZSS2xiNnJHdG5rM2I0dThsWGpSMzZPR0RYalBBMDk0UE9oYkdkTnVrL0d6OXpHOGV0dVh6UXgrWS83Z25CSDVHUU96bzJ2c2hQVmlQay9ENlN3UTU3dmJCUXliWEE5UVk4ZTlYc1oyY1Jabkx0WlM0THcvSUU1VzVHeFA5UmdWRi8rc3o3SGJQU2FZUjIwbzlpeFNPSGZubllZOUtEVzdsVzR1OTIrU09hdkM1QS9MbHQ4R2JFZ3JxNXhkRW5hclJPeWphTjVPd3NCWWR5THZvL05LUFdzanRoUTF0RTV5anNlaDNFZTkyNy9zNzIrV1EyY2RMdnJ1YWhjNGkxVm45SC9DTGtsZkZOUjNGMmY2TmF2S0UycW1TTCs1ZVptNm9NR0F0YTF0LzFkYXJjeXpGelFEdEs5bnpIbXJlaHgwZjJ2TCtvemtXVVQ0aTVvZmlzbHp5ZHJ6U3phYTZKd0s2d3BTcysycHAxMzN3Mlc4S29hNzBYdWQ2MzRwN3JUNERucEdoY05zbCtmWUx1NnAzYm5rVEhzdXQ1Mk9lQS81YmxoenAvRUxhV3lpNlNPMXB3ZERFdzZ3blJZOGt4b1BHZmRDN1J0OUhlcmVQb2JYcjliS2dMOHpjeGppNENDMjVnSG5DTTBYOFIvdXpGdjVsTFpCUTlMa0R4TW5HRHhSNzhVeHRmUC9MTGRtdjE0OEU2MnBNL2RZbFp3TzBrZ0FIWTB2eHByeGZISnhqdTFwbkdUdEFQQUVNZFR4T252UHRRNnBleVBNa2NrakhnOU12WENwWFFUcjhtNXk0YlVuRE55RG01OXVZQ2VHaC96dWFieDFYMVhpdnJwWFBKTU1qYkVuVHpxNGo2dXVUVDZHRDNoMmhTTkJ2R2hxVTR6dGRpN3FtWEd0OHoxazdGVjJSbHZBRDRnbW0yRFZtU3hXbmJFM0tNNFljMnF1dVZnZlB4ZE1GM0xvTE1OVjU1WGh3Y1VlWlZvZHByYzM2UUVNWjF2T2g3eCt0K2RVekFvWUtmQ1N5dTlwT3ppVEZ0a0Y2cTFOR2ovWXF5ZlBBZW1kQ2ZkNkt4WTVwY0pQYWcvcjNDMVFSNFB1akhYWStjZ3E3SWxRL2FyS3FxQWVmMS9pNmxDYXVid1JmMjVRSXhkOC93dnpYbStZODJFd0dRLzZ3WEozODVlNzQ0YjhSdjVtblBuNFFweUhQQzRMMW44R05WVE8xUlpuWi82UVhsV3F2aGRORHduVGFLcnJZWHlSeDRyOFdNWXRCZFZSMmJrekwyUE51YVRlc1ZyYjVGbHVlRXcyNDAraGx4OEFEeEo5VkNlbTlvL1l5OUJYd1pnWDhrYXVPenpLUDFNUmJ6STlIS3pKREtVWFg0a2FFQmhMeW5WaDlvUmVXTjFNNGxVcFBsRjdrczV2OFF6Y1g2K2FsK0FGQ0R4a0VjK0k4MmZJL01Nb1RqWFhGM0hhRUVlZDJkTXlyWno3T3V3MmNIVjZ0NStML3E5MGEvYkE0aXFRR0doOWh4cllIdlRiTkhKRWhWMm8xOW5ydW5WUDNqZVVTL3VYMUc1eHZ5VFExeGtQV0UyVGNKU2VpNXFkVDVoQTgzZnErQ2xkZDM3MUR0NFFkT2RwZmVrODRHMUx1YVU3cFB4TjM5RzFlNVg0dFNKK3VVSHY0NmZXWURNMFVPWkJNVnNFdnNQdXlnUFhMWlRyTUJsSURSNFpMK2kxTTdudk5qTnpYa1J1QlR4WHhlbWs5Y0V3L3JMK0EzendqTVlVL1Fuayt6WFVXRkRiOG9qZXE3S1BPRHQ3UStnWGxlK3VjMEpOZE9UdnoxZWQvbksxNHI4TDlYZTF2NlEydTR2eHN2azd3R09EZkt4MkxrRDlST1RPT29iUlo2ODRFOGJiL25JZGl2dlp1WXVjWldVRmI0dFY5NDIwWW93NUVIc2IrNVQwWGM1MHRiVEVuS2d6MG54bU4zaFpSMVBrNzByUFpjeFZsL09BYVc3VTFuWU9lTStZNjhsUzcvcTI0Ky9LdlBjNXBoV3dDZzMzMnpWMW5ROVQzNFQ0TUxyWFl1Z2xTcDBMcHJYUitybm9ENldmdnFyYllLMUlZUmhqdy9OZjFVSGh6RXYyQWZYRUFSZjNtVlhkTS9NVE1yVVdVUk9NKzdnenpiOU9TL2x5NEw5cnIwVyt0Y0QxR1ZlUXN4NE1mYmxhbjlQOEhmUVVodkYwZkhHZkdWeDg2aTJMZU9mTzlUUU12MCt1TFJmNmlFR3huVWVpOUdwMW5YU045d2hiSzkzdHVnbytjb3BQWTFOVHB4MUh1eU9yNXdDK1ZjU3JFRCtqamg2YzVhaW5yR05hMXJObG5FMngzNTJQTlhCK3AzejlvRWV0dmdmcTUreEI2U0tBdGtoUUlQNVdlWHZDbVpCVzNmTTQ5SStwUGYxTjNQWGlYZnJ4dUdYbE9jSGJjbGkrTFhUTzFZNVpualllZk4yTC9WTVBWdk5zUks1NzZDQUd6NEwvZnh6eWZrem44czNuWkMzdUxQdCtxZXY4OHg1Q3plc0UvLy9Da3ZuZVNjd2grejdtbzM4cjN2ZTdrNHdIMHVySHo3L2dYaDA1UDRVdytySldLYmxHaGVKeEtQKzFyb2dsaHZQVkZjZVJZNllSLzZMak8venZERWNJZnB0SDRpeUQ5L2Y3TXk5UzQrdFlYaXpXWHpPdTRzY21odnNrZUlsSkg1Wncwdkk1bE1lOTlEN2hNUWVySlJjMXJDblgrLzVIMWlVYTVnZDVuT0c4VEFjd2p3MDV3ZFhVQzNPbXI2dGRPUXVrOXArTWNjdmdiV2JOL1dYcmhUNi8wVjQ5Zy80MkJhMFM1L0VlZGo3V0lnYXB1cGJDTDN5Umc5TytWK2ZtbXJ5dlNMZldpSitoeDRLNnM1clg1cHdnUHY4UHhlblJRbXJRSXYrdUZzOFp1blBFb1RscmZUejBFbENlQURic3dWYURINEhXd1pTZWFIaUd0WUMzSEhhNDU3ZzhsMG5qME5CL28vd1FkZnVOY2JOdm5mR0c1c29WKzZlRS9FZnVKY292S3RKcDUvUDY5N1VsWis2dGRrRi9QZ3lHM25CM1dkNy9GU2Z2MmVjVS9yRXVHV3FPd0pwR0RpWG1kdGd2MEdkeVRyb3htQzlPeTJ3L0x5aVBrNS9YTlVZVEcwWWVhYzVEbmFIM0srbU45ZjF4NjRmMkRva20wcXNkNTNpRXVFSkRnMHl2ajJzUythQzFndjdjTDhvbmZJMzF5aVpjNFZ2YXpwUTNJMmxYMXV2SFVGTk5XVjdGK0hJaUR2NE5IaEhvenk5cnA2RER5UGo3NGc3YXJiR2ZCM0hQWXRIOUpkNkgvdTdzT2RTYmRBT0tYNGhib1hVY0FmZWRpbi9jYm5zTXZGMy9WTHZySkNaSjZ1SkFYSis1NVRVSmI0Y1Vld0wxKzFEaW5xQnViZVNQVXFzK2RNNkE4eEZ4MElidHg3YXZmRUd6ZHIvSVJmN0xmRnMwTnpwNGVNLzRMSEZQbDRUck9Yc09uYU5pTFRNZmJEbDNYL2R3eFAxZHdwcUY5OEM4dkEzMWQ4eDNOVTZMWVVKUXE4Mm9tWXF4dUs2amZwbTZzdWJWQVZ3WThGQndEdFNkd1hqZkRYR1UyVStXZXdLL2s4NGo4bElUZVIxeU9CRFA3N25vSDBxZmJVa1BNb2lGZ2FkVm5wUG9pVXRFL1greEowQm5yT1c5enJoT3pBZm1QVmZBbDBsY2NqNUEvbkUrUUYwTE1ZZmsyM1ZuTlpaTndIdmQyRXMvZTY4YjlWN0VHN1hTU3NSMGdlUWFmU2JoN1NyeXU5amVuRDBuTDFXY1VBVndsaWV3VjNEZU9mWUU5WGlESFo1ckV2dXRlRGxGM0o1TFhCUnhkRlI4VGp5Yy9qMjEvV01TV28reHluUHduT1A5Q01uYnlRQjNULzRMeW9zSThzdkNHemtXYUtxNi9pSEJNK1lENjFvNTlyR2dGNE5yYlR5Z21zdytQM0NOTEhsV1lxd0NjZEpCbkFGcnhwV1MybHZTRjY3aHJGcW05MmV0ZDYyTGhYcXhNWEF5b0FaN3dWNi9mM2wzQVJmY1Fsd0M2cTk2cng2c2p3bWV1ZnhaYVU2dkRkL2RlNUhmKy94OU1mdmJsODNDek4xMHpCQjJjSXh4YnZYK3h2SCsxN0Z5Zys3S0liMWIrbnRmbi9XN1Y4ekh3L2lzbVBmWG9lenJFblpkUDFjYU9xalpqWjVrVEpmcCtzUzNySjN2c3E2SzNzREE3NFgxYzViOE9mNVo5QVdqT3dReGZhRDdrRjFyR0J4NkRxclJ3ZWQvdm5vSDZCM2Ewd0wxbUtFZkNIeC8waDNFM0JPNHI1eWZvM3FXakljSGVudXRtbjc3dDNvTGFuN1ZQbGJucGp3cmpOcDJOdkl2dWR2OVNPMHIrTzFSenZTL3pwMElkL2VzNGVVU2YzNVVsazE0NTNYNDQ2VFhyN1ZMNzVaOFhwVS9zVFVXS0p5NitaN3liOERiQW5rUlJabU9ldUplL0ZnM2FFb3VkOTNWZk5HN3ZXMGxUdTM3OTZ2cDVKRytDY1NnTGRCaDMyTmZKYS9LUXQ5SFNuTmpPUTlFYmcxemQ1UVl6NlFLaW53RUdDVEQ4NFBqb01ndkNuTTRaN3BjbXV1eFRDdTZ6eHBpcktVMWQ3eFhqM01yMjlSTEVERitDYlVKckZrUXgxYms4c0V1ajNycWZDUU51MU5jQlNJWE9jV1IvM3M4d0pvcDc4ZG9IQkt0ejMwZys4N2JSTVRvcmxWazFSRjY4RWw0cTJUZFdOMDVrRHV1ekx4TzE1dE80MGp2VSswTmd6cFp1YXU4NFF5dFhzV2xZR2RyeXYzZVlVeHl3SktrYmNaL0JFOFdGWWVlMC9iOG9MVVB5aFBzSGVxei9HdHRqdUhKV2UwNnpuTFEvN1ZzdFVDbkpIRDhYOHUvMS9iNHlUVVp2T0h0a082RGwyOTBJMFhzM3RKY0pQK2NoTmZOc3RXZGV1N3BrTG8zaVdOclk2MVc0WVY1SFAxWXUxMHJkYkZldkJibk5Nd1orZXBRN1E1cjVOMnFvWDZzODJjOHB4cnZYakdYb0t1bGU0V1lPNGJFU3dFY2hleHBkeTlwMEgxQXpCUjBpOFQ5bEhnT1E2T1I2bXFBODlVOWRiaEhkNG1JT1N2eUl5Q081UnE4dUxxZ0RSWFU2bTZaVFhkN2pZOExmb09oZFNYT0lzV0V0WjZhWFJ6RStQRm5rT01QZVcyWUFNNmV2SUFnN3hMclZkd2pYTmRIYzNHZi96WVZNYVhickNtcGNndFpleGhObEphYThubHE0cU5VUC83UlBrS1NjeWJtYWFVNEVYU0hYVks3ZGNJeFdwM2ljUDVmYjFBb1hCWDNSbm9QZzhlYjlOT1h2cENnYSthVFJuTnBKd3Z3L1Nycm1xMkFOZGxQTCtrb0FINVdRRHB3bE9kYzBvV0ZhMkpoaVRWeHl0Vi9COHd0OE40QWgrVVNuMW4zRXVYZU9CczZTcTZEOGM2Mkgwb05mNGdwcUlaQnVzWG9INmUwVzByd3J3YzlGWW5qdCtOTmFuZFBVUnUwTk1ySWRuWnI2dlUwZTAzVmV2dWs1Nm4xZ1FsWENkeVVXNUZHZllsRkw1RHJSbkh5b0hXYnZQYXVGR05kSjYrOXIzNXZrSVRUZ21LaVR1WlNQWGVoOGk2UkR4ZXB4aWtjc252dmlyVWU3Rk1odGlNQkw5WTBkRm94OVRHLytEMDlqNHUrOUVlZ1oydFlTMjdud25oUEVmYkludWFiNmJCZUczMFVZN3Q3emtmK0phWDFiM2gzYTg4Skt6UDBqaFBFNzZzK2d0eUhRNnFUL0htdmo5bjZ5U3JVUmhzdlBkQTE0bkg2NUtOM25ReDZuMnUzM0dOOVRmcXFJdzhINnFEaHJhTnhwZkljYU5KWENNN1p5RC9rVlhsTVF2Q3MxUjR4d04yQ2VBWTh2NWltQlhvMER2cXZzNkQvbjVWVkxpUExkMWF0YnJEYVRSMFJCMld1czEySE43RWV5dXkrWS9wNHpobXhuUUZxM1JuNFAvQ0pvYlZ6Slk0Ui9QNU84bCtBandIbkdkU2tEdGpQb0hXbmNmQXF4aVJONHdQeTdqaW1TbkU0WU0rTkk5eHo0eEQyWEN1OWcvNnQzTGRicVRjZ3Y3ZU9sNml2eFhHazFrbUw2bFlIcW5FcW53L0taWXAwbEJmdmVPNSt4SGFnOWMyL082dGVlN0FPdk5mTmRkTDcvSXY0b2orZUIvN2JmSFdWdmFaclRQV3U5U2pZSjFFZjlHeitOdFl3OUs5WnZNM2poNkQyT3d2eE80ditUT1RuMlYzWG9BbDNMUFZkdG1ubzdQS3FmSWp6bmVPVFJFN3NWWVF6MzlZNFBJUE5KV3VYajdGOUtqUHcrTzJlMGtVWC9RcmE1Ty9tZEQ5ejhkdXVzMDhXWFJVWC8xd2dYb2MwUmZsYWZXZytCTVgraE5GSXF4K3FwdzFZd0szRVRsb1BpYzNHbXJ1c2plbjNpOE1iWU1hOTdaVmoxRG1uRjd6ZDBxaFB1bUt5SnJXQ2VtaFd4Mmh3dlRGNWgydStsYTRwYm93Y1ZlcGdhcjRZcTgwODlleVVKckNJSTQ2ZmsrMk9jRHpUUzhEd0k0c3dwaHdaTlNxa253cmxGdGVzQ2lyWk0xN2JRWmxoVEtwekZNa2RBUjh6SExQYStET3VYRytiVmorMlhKTjRiUWYzdEFxTzZLSHRpN3VvTnVhcWY3ZGJSMVBrODRpOFlkRHZKTkhrMzJyb2JXWkJmelpmZFliZXNQdTJkSGFiNWFvN25DOTYveHVOcVlHeG5uVjgrOVMvOE55NWxZS1BnKzUva0U4WjZ1VGFSK1ZkazRiUXQrUDU0RDYxdXp2UERjNXBPOWl2U1g4ZmZRdnJQa0h5REFZdG5VZldEa3BEdDB6bGhESWZtR3hxZU1KcjJrWU9UQjdOVVMrTHVJckFRU1V0UitqYlYwRWJjSXg3aVRHS05kZkp2VjFFSHZyVGxWZ2pyRnV3bmwwVFArUkI5Y2ZMR25LdzNWZTQvbjQyUXQ3UUV2VlhYZXpMRTlmVGRZNmtCNisxb2lYWERIb0NrSlBLT3BDNE8yM3dIV0lZZSt5cCtDWDROVzc3dXp6eUM2bVozcWhWR3JFK25NRjlBcjVRQlQwL2NhZll0MFBjM2pFT0l2ZnExaDUyY2x4SXcvNWc2blgxajhoUElVOEE0a1BCM3lDL0FYVWdJc0lONkR0dmwxVU9lR3pFb0U4QU90alVneCt5bUxSL3lXMnBNU2ZPWGVRK3hieVBSVnpaZFJnM2E2Nk84anZpVXI5ZmU3cHVVQlF3cC92SmtYUlVwVmN0OWJyRWR5a01QOThiRWlOL3o4UE9XZGEwc2ozRWhzZjNSbC9Rcmt2bnoySSs5S0F2azlubEEvZ1Iwby9STmVxTEc4WGZIRTFCTzVTd3phd0h3bXJrRE5zbyt4djRtMkwrOUhkQ1R3MDVyMWIyeEg5bjJKTWgra2lwdXFXcTR6R2ZDdFBuY3B1QVY3NjNTVWJCUFE3OVErcVdyZmRGZjUrSHpqMEdiWTJncVg4M2svaU4yQzdLMkQ1dTFxTjVLeHROL2huZnUzZDh2czRodlhkYmFidC9pTnVUUzMzc2txODlYWlMrUVJ6MXdZK1V0Sk9OUG54QXVGWElYMEhybG5sbzB0L0pPaTlxWDM2ZEUwOGxQNjRLMm5CL0FjNXl5UDBocjNBMkRTenFpWWk5UnR3QmRXWkkzaTVnTlI4SjE5T0NaeUVPSnVTUHl1c1djREU1K1JTcnZpNzIwYmJnOTNoSGo1ME1hN21BSzZKNzM4cnNKay9WMW1hRytDWDZMTk5UaHhxTGVLOU9rVUZQSGZKWHhSbGhlQXJ3ZnlCT0JIaU1zL0ZsdURaK1B5a3VnOFFsZmlwUEVzSVlFV2RuTjk2Q2wyV3B4bEZqRjBxeE5oRlAvOEovUjlhajd5aytCK3pIbjY1L1NDdUhlTGIrSVE1dmgvZEt4SHpBNGUwdlcvSG01Mmhldm8vbWxzakZHZTc2d0hCcEovQ0diUHNsYUlRQU53cWZDelZkU3NBNlNVdysrbnlXY0lmV3ZsUHBDNUwrQzl5M3ZCL3ZNWDRTblBmZ1VXNWlWOGl6K0o1RXlRRTFzdUZjL3dvenBwNEZhN0tkUTRLNlFuS2RLRncxclRYUXExdnpjMEgyK3JuWHI3aGZOdXk4d0RHUWVUNnVVOUtFa1p5OHpDNHVlWGpia1NhMmZQZUc1MjdhUzdTSGxXWWQ2WjhUcDEzdVU3TWZNV1N4TW1CUFduQ1hNKzl6NmYydHZuK1JQMUQzSkRtODQvbTRKVDg1eGVQMWJYbytYQU9nSyszZm56MExERTluZUhiazI4dG5sTTh1L1psVEczeUREaW4xU3dteldNUlYxOUsrT2NFdEQrbHV3VG5wWkkxemIrSmd4NmpoaHZkaU5ZZTVwelBSMEJVMno5Tk9rZHJ4c1FrL1Zic3ZZQXdncCtNWW5NZy81Rld3YThCMG45UjVpZWZ2T1E2NzFmaGplRVpjWmVlZXVCNXFVeTc2VzMwT3JMaU9mZE96bmllTER0UVV4cFZ6U2JiWDVzOXMrV2Y2NktjUGRRamd6SWc1b0wyaDE4bDRvY1lPMWlUK2JZZnZwd0o1QWxhUlZtV0ZlQUY2NXRwZEJXTVhvbTY0VnoyUGc3ZjVyUG1hVFMvcFBpblRxb1NZYzZ6djkwZnVkdSs0UDI5SEl6YmR6OVR2U1UxUnVaY0ovN2tUMzRIZXJ6T0dHeU8vOWJiZmtSemgrdDNKUDBPWWlUSkgzL2F6cVRFaDMyMStBRStzMFBCSk1QRjMyLzQxanZ3aURVWDg3ejJQbVZ2ZThUbDZXMk5PeFRoc3ZaOTFYeWVNa1RjSHVEZUE0eFljVlQxdnFEaEtJbzlZRXVkUllRcHpBOSt6VXZwVmdCT0twcjlyT0FYbzgwSytZanNTRDFReGZBZmgyY3U2bHFicTd3SmYzN2JFY3kyVmhtMGx0YmFTWXg1Tk5XYlpSUzlCNmowKzFvRFA2cDQwNTZUL2E2WGlQb1V0cGxxZytLZHNlVU5uT1F0NkRmbVE2dkZaMlFpMG54L1VmeE14eXdIMFR6SE9QNlgydlB5eUYrREtIa0FDdWF2U21uTnZwVHpIbHRiRTVMSFFlekY4UGZRaHMvc0xlbGk2d2QzUTVzT2EyVC95Tnp6WHFWQ25PMEQ5SXVtM3EydjNoY3p6S0ZZOHBuWjI5cHpwTVcyRDMycUIrL2lGZWZ3a1piWXZIMG5JZndmM0VtbEZRVDhYUDdkVFBEbnljUWI5bDNVMExmOUs1K3ZlMjdMZjI0NEgway9NQVI0dTB4dWlPays1WDQrSXR6anlMMmxZUGloV0IzNHU2N3RDdjVaeUZJbVZGTy9hZWwrOGJCYlJiQSsxYkx6N1VkUEUvYkhKeFo2TGZQS1AweHFvV0plQm5zZUwwaUZpdFdtdjZseThyYXl4VXIzZlZkNEFXa3V3eWpaWkcyTDlrMXpqWCswUDZoMHlMYzhaNnE2QTd6cmNjeXBIZWNMRkRRclFuMkllZFpEellpN1BOZGpMWFJLS2ZSVnpqTVZKNzkvYlJlU1k0dHdDN0dMMDdERld6MStvOXFMbVVNZlVXRVAreWZUcGxHYWY5T2pkeis5eDVIZkdwRUh0VmM0eHQ1MU9kdmNvaGhSeGlseDNVQXRIVGJaRmZ3czFRdHVoT2x0UnBJYU9ZSEIvajZabDNLUm5TT2RWRXMyTE5YbzhTUStNajdVYnNKaVF4MWpPUFhmTEQrNHg0cmxGS3gvMVJKNVhwSHZBOS80enJxYVhkTkc5cHUxcFMzblZSV1l0QmJEVUVYZ1NnbC9DdUNwYXFmYitNMnFNZWRnQmpSSTlQcmp2eFI3VU5UN1FvcE94bWp3bmNCeXZ0ZnRsUCsya2xiSG5XZS9XL0l5QnMrY2E3dVRsVWF2UGJJanZwendpY0I0aC8yRHpRWGdnZDJoeVFsbFBJeGJ4dnRnM3FyYmIrNFQ0S0p6K1R0bythWW1RdGw3Ym96b0IrSHJXUHVPWEdyc0t6NmZYdk5vL2lMa1RmMDg2RjRUL3pRdW9WU21kWmJ5RDFzQVRodjB5V1ljZDY3M0J3NHZWV1dUOEFud201T01lTjduYnZZQ1dDT3UxeTNQMzUyQ0h2SUxCUzAwM2lHdXpkUzRpNW5vZm1MeG02dkZ4L013UmU3dkViemJmV2M0ZmFvT1k5NTdHZFpIR0ZuQm9ybHhiMmF0ajhtVWNnVFZ6ZkllR05XM3lxZEpRNUd4NVFieHFxU2NHWGkvaURvZnpwSWJ2a2xpMWVxd3VlL2RQR21LMjBvT3drZXVreDVvMDB5VDJVbkovREcwdm1IT3U2d1lhdDMyR2JmSkhxNVlUempIWEhzd3Qzd2tzM3crR0FlVGRhNHBGeFhja2JiL00ycE92OWUxSkwxYm16L0szdElmRjlITU51U1hFTDRTamxUaVF1VmlEMkk4YzdRemN6OXJFNjZxYW5NZzlkR3d1enc1eHR5RitNaHVoSm82WVQ4QkpWZFpEY3hxb0g2dDBTMmExUFdiT0czbWcwQjNjZTB4QTUzcDZRYytyYmtWN1dOVnpjN3Q3QngxS3hadjlzZm5KN2pJV0s2cTdhZW1XNXp6YWFKMms5cVJKZjlTdmFaMS8wUnRDdlZsYWw5QmZlUStEaHhpYkpjZE9BZDQ1SVIxUHBxYzU4TStwdXNkMERSTHZyR25MRy9VUDRqemcvbWtTbHd0eGRsV1dPZGE2ekZxNjRuVjBMdVBRbkR1UkE0MGplZTZ0YWx3cHg4cmRycXhsMzVPSVlrZk4vYXZIanVqRHUzazZ6NEFycnZIdjdIdHQwcXlwQXFtcmpEVnA4QndtYjFuUXVpdy8xaEh3UEdEUEdYVndzWjkyUWJUYWxhdjVDdTRhclNlOHdGb1crbkpQRCsvVmFnUG52WWhaWkQ1bThqZ052UFRYMm56aW53Sjc3ZUNMNGYvT0hwOWNJK3VVQUo3T2wvMm94em82OExHRDV5SnZvU0xaenlVWG51bmZPNjFFYWxIVC9QeDB5d3IyRy90M29NOGlhL3Znb1ZQWGpFUDhpOWE4SUMrSFdwK0lhdll0aVpmSm94N0RoT3krUElPSTgwbnZSejNKcUU5K1BpclBVUGNNemNOWmFZZysvemZqWElqSkMwSHFNZjF4enJUdW9GeFRzSmVrcHdKeU5VMy9JWXlCTzZYa1ZzbjYyUHNDYWhlSHRDcFBjWGlWWTZlOWRMbFBtY1NWeUxrWnpjdDBTMWdhaHZXdWU0bkhVWEpaSXg0S25wZlZrdmthZ1Y0UzQzZlZjUDFZaDQyamFXbDZvMnFQS2V4WnFyNDdhbVZCdlhUZTByb3ZEYlYrUGhaS2c0djZsbmE4ZWErQ2Uvck0wVkY5WkhsVzVOSDhrb1lpNXNIK0VNZUtxWnFDd3ZXcWZqVDgzVGgwTHNuV1VtY1F4TWpzT1NiTDN2WGJ6NGZXSWQxYXVFWmY0MVlhZXZ5Y081dCtjOHI3c0VMOUVlWEYyOHIySW9laCtxcldHNFVjVXZLemVSK081WnRxVCtuWTRDcnplcmIvTU45UDdLQ1YzVVV1RHJ3MGpIMGx4N0JCWTBCaWVVVGN1S2JZWG5uYm1QNFhiZEp1NUdlejZ1dHhIODA0bW40bTRDbFM0M2ZoTTVOSHdLd2xhLzZ5WGtUOWRTdmRhdzBqN044WjJDRElIMytGeUsrQ1hwM0VKZytLVDRYZHAxeGE1TmQrZS9iMGJqcGV3UjVudy9Oalh6WDBzVzd6NTc2bjdIWGltWTZjTWF6cmpScTF5ZVU0Z3RhMTVuWUdMNWlQYTk4SDhoQlFkeE5wYThIN0lMN2FFL2RVa1dDTkEvcmo5ZnBXSEpseDBzKzZWclBidWVUM25mUmNnalhIemd4K25oelF3ODdJcGY1aW5VdHNyK0VCb2p6S2F4akJROGI5UWJZdmpUa3IxTGhENk1XZThwRnZwZFcwSUIwZmhnOENIQXI0WUJxZk1mWnQrY0NlcnVxdG1ER3NydU9WMlI2MFp4NjV5Tk5IazAwU1dnZUplME85cHd5eE9OUmZwZkVqejN0MWgxTi9YKzlETTg1VDQ2N0d4OHg1TzVkbkhTcG5tN2I5bHZLbFpuNSszT012VVg3K3NwZEtkL3lXOEoxLytidWtSNk4xK0UyK1RyV09OZzMzSE9lUEF4NFFlUTdZeno1QnJYN2J0OFErRXZHbnVCTVQxSXdtYnk5ODFwcmZvK1QxTi9Sc09wZGNZMGtPWnI4ZlkwU203VncvczJILzVsRy9WY3ZURG9rNzU3MmFHbVpZZWFiQi8wMmlRbXQyc0RrWkt3Nk0xbXZDM2h6MThRQzdWcFRwYzB4TUdvbnpPL2M1azMxOWhXbXB1cWVHdmF1MTR6VmVhZnR1OG5jMVo1ejBWT1haOWVWKyswTHZGYkVheWxkWnh2d25pdm0zWmorNkZHTnpvSm83OUpwMXpZWDZkOEFkZnVaUWdoN04wTnRRblZKeHRxZ3VWR21kOEk0ZXB6Q3AxaUlPUkc4dzZLZUtQVzd5VVdGK3pseXpYMkg1a1lzQnRkSTRuUDdPVVhjZGV2aVFuMUFPNVkzNlZyYnZYd0NQek1jUk5IMnNlK0o2cHd4aUxRdk9aWkgzRFo3bi9KRkgvU3Z0YjNHbmlIaUpZb2J5QlBzaXRLNmdsVk4xVzFLRGlmVklZQTFnZktwMEVHQS9wVzNmMEYzbnZRUEtGd3NUcjQzNHIzRlluc2VSMUVkVFhIbURTMFJyNE1vd0xwTEQ5YWpOSDYxUk5YK2dTeUxtajJzVkVYWjVLN0VTT000M1ZYZm0zaWV3YmtiOUl0dUxNMXRoM0l2VWprOTh6TVlody96d0hQYnYvWDZYQ3lkWXpZZmRhTG45dDE3QkJsNXhHa2NGZWdCUUh3UnFVTFp6eUFjMTd6RjVObXo3ai9WSThUdDNhVHMvanhGL3FPb2REWEdIMWdPeUN4SFR5TDhyUERlL2cyNHh4T3JsQmU1Q2NWZTMwWS9GYzI5Rll1YzFMU0hwL1VqY2c2aUhzVXZOQjVEbnBJWlduTnV0a2ozYzFZcFRVOU82TDkvZDhvRjdIOWRVNWdiM2RkamRRZTlCangrcnUxRlBUOFE3ZDNFRzQvcVYrbnlvRlM2ZXY5dEp5ZE9XWWZCWm5WWHNjY0IvWWh3dDlrNURuUi9pbWtFT2M1RzQzWGE2dFFDUEkySlgvODY1RzFUamJmdWdCeVBmdzI5UEVBc1dTUjhjcmhFSlBTVWpyNlh6VTV5bm9GdERlNEI1bnpLZlJwSGYzN2t1dVlqRGZxaXpUdk9RWmY0RS9nWDFPMWErUXl1OTk2NE5hNnJ4M2IzWDRmV0pQNkppS2IrTTdRRDFZTjNoWnRVcVI0dFZad1dhZjg3VW4xdHpaN1ZySGIzUjlET1A1ckJHOFR3bW5nL0R3Y1RjcTRiNVRxZDBqM0RzMVZyV2p5SEhWdm5tYjNubWNDMUxydVdCTVJuMkFyQjJOcGY4Sm1POXNCcldpbklGcVFVQy9CYkFGSSttaDhUdUZLZ3Z6dDhQZW1tSHRKb2U4M0RlV0h1V2ZJVzNEZGUveFJqK2JkdmJyR3dIUEtoWHUvbkFHMDNQY1FROFFxYXRFRzh5RzJxUjE5UXVZZTBUL2tkN2N6TU1VWTAvRk1VaDZIdGhQOTUxOW9sTlhHQ3RleS9HOUNPTzVoOXIwTmw0WWYwL3gwNlc5TnhEc2RkQmo2RHdodkNzVXF1QithTzlRUDhvUmM5SThQVXlNY2hLdzRIaGxGKzRaeWQ4SG5odkR1QzcwQVA1NzM0UGRDSVk3dURmL25aYjhlMmM2ZTgxNE12ellrMjlXc1JpTnA2blo0TURWVTN4K1FkOUg3WDJnVmQzZmw5dzcxM0RZMWRycFN6WW1WalRQS2E3WFp5dExVTXpUdS9wZnJwSEhkNjRLczl5ZkxCZXJQaC9EOE5iWGVUTWJoZTlEZSs5TGE0emlyc0cvamx0dy83WktwODJxTGtINkZVQldpck9PUW1WcHBCOERrZGlydDYydmEyY1V6azJtTGQ2eng0RjRtNXo1NWZjZmptbDlzc3BzOHY5R3UrR0p4LzhwczhDL29ibHg5L3JhZmZmbHEyWDAzd1lyT2FCUDEyc092N0ttdnV6ZTMreWJIVkczdENmTEZ2VE1laHFENmUvbGl1cnY5ek5sOTlxSUxGNGVoazZMK3ZRc2xLSjgwU2RldEFvMXZjRTdzbDVrUFNYZy80amJ2dUhiQVI2eFZVZWRsRG5jeTl4c1NJdVJENEo2ZDF4amZSZERsZ3RRL3RhKzBxWVdIZk1neG5IamJRNjcrSjhYNk1PRmV3eGl1dVZEL2tYdlJLbE8wcnZXNzY3d1VkT2E0OXczZC82ZURkNlZVUC9yL3RnZHdQVDE5SmEyYk15V0laeVgyMmJlNHBVbTVENDNCb3VuTHltUTNGZVF6MEE5SlRBTDFyNjJYUHZIOWZVSDJacnZzNWg0RnBuNDhYcU5oa1ArbTZ3NnJ3R3cvTFhjcXYrSFl0RisyOUxhOW9QZGhMWHFMU0VPalQzVDNOdXhQbURIR08vdTdYTm8ybkhOelhKbm11OXJlbGlFZlJYM3ZEa0w0ZlVleDhtd1hJM1hTMVczVGY1N3luZnBselhSMTlINnR1QkRqdDRuVXcvc3FxODVsTEwxSjBma3BwZXdIc0lmbWxTOTBQams5Z1lreTlHNDVoZ1B1RnJuVklZRjlBOUJKMm8zTzFldjZnenNGckFGUEg0QytYdHFjYUk4TmZNUHdENVBnbHFkbEROWUhwZkF5Zk54T053blVEUXBiQmY5aEsvaFRVYmNZK1F2ekZwTU1UZ1dhbDZwNGUwMHZHMThzK0RNMkgyRjM0YzVjTjdYVFhGb0UrOVZzU2hrOTdJYTA5eVVjNEo5Tm9aUDlQMGNESnEvTlNQaHR4d0hVMVAzcUN3MHFvOEE2OStIMXd4MTViN3BMeWsyOTI1WHR0Um5rQ3V3L2Y1TTljd0JFeVBvVStHT0VpTjJTZWR4YmJrSzYxRFI2NGwwZzZrTVlYNkJkTWwxVDZGU3FzbkhRVUY1Y2tuNlVzOVhmYXVFLzJNc0wvR0VlUkZIZExjZUlBMjZxQm5UVjU3MTMvcDVRQTh1dFV1R0M2Q3lXYld1Z1VyRVV0di84WGY4N3VIL0VHWWRoN1hrdnFJUTFpYklpZS9ZczBZOVlobERXaG0zeXpJNHo2T0c4VXBzY0VYc1VuWER1OFQwaG4wM09reHA5cE5XblhSRjlSMnp1TXRlSW9idW01MER4Vk56MG42M1F3clM4KzB4V2RSdkorRjVIZXAvNjdxTHQ0b09PTjlHSnh6dDFtdnA0N0wxdDlqS1Q1bXZWWTJKNnpqOHpNVmhIL1dZOUNBOGNXK3Vhb2xVdCtiZEVJNXJqWkhUWEh1amJSYll3NjFmYWQ3aXJ3eURwdzNRalZqSzRPY21yUXQxUmgzTG9rYmNFNlZRMTRROGw1OFRVZkJBM0drSGVEMVpWVnd5OE1TTWRhMWZjakc0QW5yOUlSWEg2SWVCbmpiTFpUM0VWK2JqSE9tL1ZoaTRNbW9uczB1SmMwZndHZHdUL2NxdUtkUWkwVzhqbjZQQnMwaXJLMFNacjkyTityNU84bjVHNGM0VDJQYlArUnVwMGpEM1lWcTRSZXMzM1pwajNSZ0hGZ08vVFNlRUJPRlVMZFE5WVU0dEM2NTFGcCtqaE1MK2JkcEJEaDdzWGV0ZEkvOVh0Z0hYRmRleENHU3kwRDVEdUkxZ1JNcXpsM3dYRVIvczJsTDVPVnNQVXk1NXdldHczdUs5eFRVdVBCTVZMbDA0Ym1XbFk3bUI5QWExM2NYN2duNG0rQ1NSdzEzR0J0bk9Dc1dSaDJpZG81aWJzN1dHKzV4MUNhQkhqbjVWekZ2U0xZUDkwcVBSanovQTdWTm9CWjhTQ3ZDQk1JNjZaVG9rd28rSW1mZFk1bVdlWVBISU1Ndks4Mkd5ZUJLK0Z6VnA5aXlQb1hrbzBvTmRuenV3Ukg2MnBQWDN0bHp0QzVEelMrMXFYZWo4TW9NeDFBL0U3YzV4Z0gzWFBwdjY3dTV0bGVzTXVFYS9HeU84TytOT2VsempRK1JaMG8vVC9Ka2tmVkFpclhKaDR2MXNKRDM3QnhTOGdwWWh6SDVUMEU5a09GanVwZDFlMEw0U0hIUE50ZjBEQjFEdXlUOWU0Z1JLNHB6bUc0NjRKTSs4cEhrR1pDT0lIaUlGd1g0UllSQlFlY1Z4OUNBNW9aWFVaODJ6RXR2aS83TitYTy90SlhiUDRqL2VaSjdobXZCUG5NVFg0Y0gwM01YL3VZazRyeDExRDl5YjBnVGE1VVU2L0FHNTZEU20zR0RGK1hKN0ZwbDFwNFdSaTBmOWQ5cjJxZXFUN1ZIVFRlSXFYWjU1WnlSdjl6b3NWbmp5MDVieG05OFdVUHVmWm9ja2VTZTJxMTZQVm5yc1lRenprbmNlSVArZ28xRnZjKzJUK2dzUUwwcTU3eSt3OTE1U2Fya2tVVGFZekFiOWFVdUtMNFg1cVNtTjRIeVR0SGpqSjZtd1RHT2RvRDF3RDVUZWFIekV2RlFZWGxIcmFIajh4a0lIaGVTcnpFOXBGVitOTDAvQVY5bG9kOHA0NDNxYy9ZSWVxcDBUc2ZLenhqNks4YnpTMTgzSEZPbENZTyszYXFHZjBOL2I2b0JaRnVlSDZuNjc0NTd3a3M5cmRxYU1qMzZxSDhzN3FJVWFnekJ6dHZLbkh4M1pMNHhpaGNyenZFa3ZCWFpDTGlIajNYWStXank3WUM2dVBwZTdYRkEzNmQ4TkgvcUhyMGFYL3E4T0s5K0U1N055dllpdGdIOElkUjR1U2FYK0w4TDVXR0ZZOFg5SVdYL1haOVRoTDlsNTZUMFpVd05YcEplVXpWL2p4WnFzMzNSdzZEYXBqZnc3dDZXemVVbzBEdzA2UHUvUFB2YU5IbytRNzlPblUrMVBJbDdOUjhTT1BQS3M5YjhheDRQd3NVWWE4WHdOSnN4blVZUnY5bUVCM0Z6N0VOTERzZkhNOWZLRStkSFBYWVlmUEk0WG5zRlJFbVJ1dVVPY0xKaElwN3ZrbTEzbTU5VUN4OUhJaGJJVHN3clZZekRnWGtlTVkzV0g4cm5VM3JjaTd2cjZWa2dMNTljbFo0RThIVzBWc3RmUCtlR1l3cDdOeEZqWUYzUWVXVHQ0Q1M1dml3ZStkTTd3WGsyV2ZaWXplQmE4M2o4K3pVTHZSYW9LVUFOQlQ3SHRDRmJjWGo3YlhLTjZCemFtSEdyOG95VWZweVBJUis3QnJ6SWNKT0srOUgrRjJOSkhqS3k1bWYyYUhHdHB1QzlkdHNwVHA3N2c4Y3BYTitGNlozbG40aE5HdUwrSDAxUHlFbEZIU3pDR3Ricit5ejJ3cnN2cmdMRUpzbng0enFtYnZBaHZZV1Z0bG8wZzNkcHFNKzYyQXRSdGRraWgzZFFQSURqbDdybFNuZm9mN1ZHU1Y5UHZuZTM4bDU3eklNQnVRRmo1WHZFOUJvcFJsZGFSZm91NTJlUGlaMm1NMFY1NmJzMzFPR3h6WE9hYXRFVUYrbjdNZ2xueldlVWpqTStUUSt6b09QYkVNOUt2SXJTbWdiTml0R091TVUzbXU4dXhQaFNDMEhxSDY3Wk9rcnRwTUsrQ3NRSlRkakRkUkw1RjVidlVQMVRqckd1eVNidG9NZ2dWZ3RLelhNaEhLZjB1Z1NjeGZ3Z2V3eHJOK0RhY2ZYOFFjYnY4bjNSUzFqRm5jRFZPNlQ3b0FsRHI5WTMxY3ZFbWdVTnQzVTRGMnZ3bEZUT1J5N3VmN1AzclBObVE4OFRjMDc5MjlZaGFmdkVFZnF4U2R2K0ZmQXE0WXpwZkY0Tm4yVDE3N21PdjZ4ckxmckhKRXhhZUZZVkltOUZiZUdubnFtS253NXAxTCtUaDFSOTNCUXZ3L1NMOTB2Z1NBNzB1aGE1T1BRbjc0WkdPM3FPTnJ3VDluTHlGbUcreERrTStneEcvSURlaUlYeVRoTjdIM1dVUmV4MlFGMSt6SlcrZU1jbUxSaDFWcVpodWM4cTZLbUFybW0yaDVvVStaS0xNOUYvOEI2MjRjbWhZa1BtQ2NEeXZjUXVnWmVXN29OVFhCRU9VL2xzNUplc09qMWhXbFJ0WGNUYkVIdXBzMWxyZ2RIM21iaDVqRTNsKzJCKzRoZlozajhra2JjZGIvdDl2YzRnWHR6R2tYOWZoL1JjcjhNNk40dWZ6OXdqU055aHAzV1kzMlBrMWp5TkRmckN6c0FIUVp4WkU4MXBCNHd5NHJUMDJZOHhpT0hmWmVycGdIZDZjc24yODArcUZWcGFxOUF2aytwV3h1MzVvMGtYbW84dGNDWkdlWkh1WnpMdWdaeEZqNlBLMVE0cDhLZGdqY3JhUWNPOWJmcDBUUmE5ejZ4NWJURi9CVG0zOUZ0NzVONkEzb3owLzlOang3RTNQUDQrakxmOWxkSFBNT2VXZFBYaC9qdmtTaXNXYTc0eTFsQjZ0WXhqaVgwVlZqdkUrSUxIWG5MdXFUZjZZK1Bibll2UE5EWm1HcmR6U2JhOUs5UDhBWDBTNG5XZ0gwR1lXTG92QjdXc1hSTDZsc1FuWUh3NFIrM2hxbXZWL0Y3RXZiVExLVi84OXR3TytmaFlldTIvRHJubWhKVlZIZElTVFNyVkk1STRmOEljRU5ZRS9SekpyNXR6UmI2cko1c2VwN0t2bzd4S0hyVjUvT1pNUXU5RFBoZUVyVkNmcWZORXdXc1Q4dTdnbEkzbVRkN2VRNk1YTjhnN1NUVFplNE9DZXJMbWUvS3pwbEdYNzErc294cit0RmxEY2ZqY2w1RzkyOWllbGhuVkc3TW9LTE9xQk8yc1pDdGpKZEEyK2NCNE1PQzlIK0Q2TVorV0Fub2c5Z2I1K0lPK2xWWlR1SlBFM2ZVVHVNbU9MZTQ3aW0ycGI2SncrdkFNNjRqWGVLaFBnalU4VlhOZzZ3UjR3WEVrNGl2a3JDQ21yZmRaejgvaVJmOE8ybUtvNC9JWmc5N0M5SmkyNTh4M2hYQXVkL1NCcGg2T2piWHpIV25NMU9OMlgrUW5KK0xQUUd4UCtpbEg2RUZGY0QranpxYTVodG1hbUtvek9SOEZkOEI5c0wrRGZ0aG9lZ0hlaGRLNndmNUk2blk1dG9tZXRWOGt0bk5vOHA5bXNld2p0YTBTc2JYbUdVODhJaXRHbk9lbFlkeWwzaFZnS2VUZE5EWnI1S0FIdGc0N2hFT1VhMjNHMTVubTEwRk15anczMFNQOGtibk9CK3NYcWJvUzk4U2pOWFpHdlM5V3kzUWhsN2tvL1pVdjh4cXNxNC9GbWVwZVR6U09SY0o4Y2t3L2hjN2xqN0Z1RkJ5eWFuVkNQMDdyQTJMRUN1cW5wczZxWTU2VlkxbWpyL05oUmd3UFo4VEVWRE1kK1IzQ2NkZHo4eGJYNHBUMXNHUVUzR3QxZWhhTFB2czJzMW9SMUpra1gwSnBCM0RldTJzVjZUNEFIU21kdDZGbmovaHNiTXUrSnMzUGQ5eGJmZGM5K1pSeDMrVHhvRjlTRDRUcVc2cUhpQjZjMkZ0VHZhb252cFVkbkhFL00vLzIvUVE5VnlGbXpVdTVQMGdqOUpESXZLTkMzN200V20xUWk2WkxISlQ0cWEvNy9FeFFMMmlKM0hBK25MQTQvWG52TnViaVllY2ljbkE5MzRZR2ZJMnpvbmlJU3U5TTNCOWpoaHVYOXdOaFJlNkFuNjJDSWhtQUxsNkZuQUtxZGRROUVOV1pXRDRrUGhmUFkxbnJ2ZFl3aDByTC9BQnJEZi8zSmJjN0QvTjhhNngvU2s2ajR0aFNEdEJHUE9zVTFySFV3MXBIdnJpamFOeWg5NjQ1ZXRqak1MUi8yZnE0Sk5FVU9JbXFGNDRZNHNjYWVKQ2RqM2U4VTZpSElXSWh5S1hvZm9PNXNSQUhTcjdaa01NY3dWTW9KMjFDcnJXMkJDOTFmWGZSbWFqNDlTSXVqTzJpcExNQ2N1S003aXk4SzFnUEZuRUpXazl4MFQrd1hxYmhXY0pxZG9pZEFxMzVyMnJQU2lQWFFvMVQ1UWVNdmJZNjlrSG5SN3NVOFZHbkpGUzZTTUNSU1VPclRLdDV5WG1LYTVHbkxNam5ialRCR0ZqZFU4elRpV05QVUhlSU5CZkYzU3I1RE43Wkd3NmZhMGRLbTVjMFQwUk8xL1kyRSttdk4yakNONkFQUklaZUVtVWN6aTVLVzZFZElGZDc5T1FUV3FJZVVPMHVaYnhaSTI2R08rQXE2MU5pYnp4a1QwdjFPb2xib1BGMDhsMFlaMWh6SmNBekxtMzdGbW1FcXBnWDhGS0lPMituVlhEUDdPS1FEWXkrQUhHQlJBNGZ0RkliOUJsSkcvM2JzMHJpRXFWL0ZleTVjUWo0M1pxVzBGL2VoVHFmVU5na3RtYXZlZWcvOHREYlpIWlJaQlY2U3lkVmNvaWxSc3ZzeTFyWElkTzZOL0I4V1Z2Y0R5dlN5MEZ0bmpoQ0RhNjRDbzdyTUFEOHZ2amZhVHMvYXkyUDJ5VWZmYTNub3ZRV0FHdGFjcDBOM3B1U0dISFVsZGJlZi9nYm8yQ2J0WU90NXlZbDRnbFhFZzl2ZXFZOHhheEtHMTZjeTFBN3BQZlVuc1hEN25pODFSaGYwdVA5VVBrcjZvOFJWdGY1RFJxNDBLODIrWGQwVjM3R2tiK3J4L3J4QW52TTZSYlhWbG9GUjYwaG85L0oxRTA5UVF5SmRZbEczV1dXdStJNkdVZDlFY3VLZitBNXhoSGdOMDkwTjVueEdNK1YzUEs4RnVzSy9Vc3MwRUdDZnFGMTRQZ2RpUlBVbWsyU3R5L09Sa2ZtSE1RVm1SL3lxdHlKSEtFaDMwT3NpbnM3cE5WeG56My90bGlieVArOHYyaXNIdlV3TVJaWCtxUGc2NXNNZUM0WHZJQy94aFBlOG5aSXc3S2xjV25TODZkL1g0ZFdrVlZsalpzd0xaSEhvL3o1a0wvcTVuZkZld2s3aUh0eGlVTUQ3M1RpdWZXRk9KamdHZXVOK2lYazU0UENHVmZaMlhQNlZseE9yWGpiUHlYUjlFR2VHVktQNlVvMVR5dGplaVhxL0tENUFEMWN5WnNLYTd5andZdjAyZEtZVnZvN2pKRjYrelFNVHBFdDU4Yi9ENnlIOW1UdkRjdTMrZTdISnFuS01uVk5EZXV4M2IxN2cveUJ1cU55M3ZBTUpKNzkzbk9EY3o3eUQxS0xORWMrMnV2U0NaYkJNRmg0dzV1LzNKMlc4WUQxMzhYNVBlcEx2aHZrVldrN2VHQU5zZk9CUGhNRzNnNjBUUEt3eGRabnZKbUUrVmJwaFJBK0VuR0cwNHVxZDlUV0ZWdC9xSDFRbGNUNU5PcTMwQTlPYkJaYk44d2g0QkUxcCtQc0RRcnA5M2lDdkhDL095bGQwQkRYcGVGWFM3VTNxQnVHK2ZibjdMdjlEL3ZvbE5uaUhYMHIyVnEwZDN1TnZRYUZoMkFjSVYxM0JLNnVsVmFBUi9oTTI5TVc2Y0l5UDBpT1hYN2hNV3BCT1BjTGFaTExlTW5RYVRQUFdLMmZsZUkrVnJXellIaGJlbzdTTm5pRDJ0U3dQQ2ZzZlA3cFROOFdpOTJHdUpORmlwZ094RVlNNTI4cnFldXN6NEs3aUVFZ2o5L1c2a2hTNTVLTlBjVWRJbjRVWnloZ2tSS1hla3FWY3hSbllPNDZkZTFYdmNhZDZXUnB6WmNOM3ZiU3MwRGhHU1NHQ1dOTjhSNjlQWXN2eUZQRnZ5ZmhESHg3U1N2cmxJL0thN0xRWHZmcWZGTjlNKzY1Qzc5dnBSV01JWElWTVU4eFk0VEt0eWplZ0g0YTVVdEg3cWVrOEplZ0UySmQ4OUZPM0srWWIydDkyNVBJaTJ0M05GOVh5SlVrMysrczZsNWpyWWNITmUwMDdOcmMzN1c1ZnRnNWkzTTR0bGVudGR0OUlINTF0Zkc0WnJDNjgzekpFeW9TcUhuUG9ROGw1bGg4NTVxNHQvbytscGpKbWVwcnBuby9LSjE2aWNGYUJEM1EraGE1VUhhLzhqNDY2VzJJZlk0YXl1eFpFUjlFNTBaczN3cktyK2hPUTl3ZStoR3B1VDk3anV3M0IrZEU0bVJNblo1UDVIQ3FmSW12SS81ZFdsTkRQSU9oaWNGclBxRFRVV1o3djB3R2tNY2dYM05nZ1RlQnNjNlEyMEE0SmVtVDFkdXZvOTUrUE9qdDJidnZ4NFArSmR2MjlublkrWjFXd05kbDM1MnAzcGJjbTF5WFJjeGJiWDJ4dndVOUtDdXJvRDRPT2R0eTFRM25xOWxsRmhEM2JRUjFyREpyQTk3MzRZM3lFdnJ6a2RRZElHOUxOemtrc0I3QWMzb1NCTlBWUFBBMnE5YnRWK0F3ZnFUV0FmdHlySEhQbXByczVscUFzK0VNKzYvcVhQS3c4MUZiTDJxK2dDTS95UDUvZnBOV2hxeTFBbWRjNlZnM3hPdkkwNDZOK05uWjVWVWdjdmRIRW5IZkZkUm5reDdtNHF4UHE5TVoxNWxlaCtoRG1rT05SSjNaaVBjdDh0NFhPaVdzRHJHMk81ZjhMczZLalB2OVkxMnVDb3BZYVVyckhwelNjQU9ORDlLUXczanlJNGw4OEczUWExVFdLS2pQYXBldFBKVDlDbFZ6YUtuYVE3VXl2UFU1NXlpcnVoSy9lT0YxQ2VXbFoyQ08xSjNHUElyRitHV0s2ME82MDRaUGRPNTJMMnZ5OVpaYXArSnVlOWJjQWMrWWw4d2xudVAxS1E4OEpJcXpoZmg2RC9ObTVYMlEyWEEyODMxMGdMNnFyZlJGVG5GNFl2NUZoS21FMmxId0VQazgxakNDeDVNbURXSzBsWWRTd25sUzRzeDB1K2VzeWRPZjQ3U2hyeHZjZ2RzZXNqVVhnVS9DWmgzMWZwcitHQno3Sys2dzRBcGVaZEQ3VUhFZ2VCbExEMlBpYWhhSjBzRHRmdVRrSFFEM1A5TXBsNWdqNk1HSW1MelJBNmZmVGlCZkwxdGFEKzV2dERsWVBER2MvNXExVHM1cTIzMmJCVE9tbS9KbkhoV0xCWDIrSHp6dzI3cGQzdkhkSHN4M29NYnJBSTczTGdGZnI0bkVwQ0t1Rit0LzRtKzMwanVVOVp2b2I2YktoMlM1YzFaampEOVExMXY1alpJZVBmYW9xclR0dDBVdUM3MDF3czYrUjMzVVl5WGNCOWVnbUx2Z2wzNm4vcWZtOTVKbmk3ajdmeTcrUnBjWGN2M25jV0RuQmVoaHRJT1A5YUJmcHZ2a2tGWGRNK2wySE5HVEJOYkp4OU9keURnNklnZEQzUjlIZkEvVk11RXNmUkRtNFpxRDlzK0V4UlJ3YjV5VE1OaEJQOGd4YW04MS80NnVsVzJsYmxaSGppdmZ4eGpQajZZZmFidXZ6cXM0OGh0OC9Ydi8vVExtaW5yYW4yeHIxQ1pVUGpHT3hOek8vdUp6ODJOMnR3QlBwbkhDbjJhdFRkNkpDMnViUnhQa2JmU2VjaVFIenphNDkrNTVPRzJwV2thRnRWUHlYQUd1QTR2WjJCbEo2M0ZRcUhxdndtRHZKeHozb21xUHlqdDEwRjh0bmNtQjFxTEJQMEdPd29vNE96QXVaNnJoMTMxaHFQN0M2MXg5SzY1dWg4d3VqTE56N1lKL090ZHpJMDZNSS9hRWVQZEhxbkJna3Z0RSsxcGlFbmw5bk9lYVdqTlE3STJyck9NbDd2d3VjdDVuVHBSNlJuWkhsR2VwcGZRRkhzTlArSnFBZFdER1NPL28zMnlNNTFkcmgzU3lUbXZ3NUo1QmpsalRrTGw0bzBPWlZlakRULzdKVFd1TWVGZDA1ekJ1Rk9Tb2N2NkkrMHU1REl6em4zS1YzTDA5YUYrUTdtM240cmxRRi9nZ2JiaHZ4eU90ZmpUNVFhazZhMXgxYmEyYnAvWS9ZcHkxTnpMb1ZZZzFsemFlL1k2VnV6OU9pUnUwRXNMU01NOCt0VzdJVytxUTdxZXRKSFIyRGZQN2xyYm5kYnptUFFtdC96OTdiOWFkT0phdGkvNlhlcTFUOTBqQ1JBWm5qUDJBQkJLU1FUWUMxTDBoeVJZQ0NhaWc1NDc3Mys5WWN6VmE2Z0E3N014ZCsrU0RSMmJZb0dZMWM4M21tOThIZmxyK0xCQjdramtFUERIR1dtY3pqcnZSMzc3aG5CdmxhZUo3bHhpZkE1bWIrUG5TQmUzcmtZSjdtRGlOQ01JRjZyY0pmd201TDZ5eDNMWVVOZUs1dk84VGpodWhqMmtGUEtjNFpnVWV6RlVodDd5Mjg3bW0rV2RTKy9DZ2RnZjdtZmJ0RkRRcVNOOGMzMjlIYkxnS3RlUElVZXV3MFRsSHllMzhjYjUvblBTazkvcW40YkovR0UyZXhJK3NYM001YXIyTTcxeWZmSGJVdmZjY2FBMlFmZGZ6cmkrOTdpYzQwRVpMbkg4SjQybS9NN2pKYTNMYlg0SytUTm83UHNNNkhLTkFDakdXY1NKZmVXMGh6TTJ0aXI2TGM1K2tIcGkrYVdicUV5N1BBdDl6UGhZMXZDS1VuNVRuR2FEOVVTaFdJdXRJU3cvSWR2azBiOUpmSGFjRkRxRTJsd002YitmUXo2THVDQjZXN3lXaThjWU81Nzh0VG9zT2N3RlFqZXdBYXFDR01GZTRIQWRnOTRnZUVYeUg5Tk5tZHByM2VmUDlpUFM5WnJrbUNzNlBnYi9IYWtqd3R6TG5ZYzdaelBXYUZzZVErRmZrV1RiRW53Y2Uxd0Q3aXJTWEhPSkt1aWRSZkphUEY4WGs4bmtDbHVzRHZYRThWM1djNHFDSFhKOXZuWkNhQU9iOXAzUFFDaTY4UnBaeGZTR2NUMVRiaXF4RHp2Y29hWHk2aTlTREhDZmdlTFk0bjRDNWVieVdjU3oyd3Z4RW4xOWk3U0F1VHNxMXBua3RMenJHck84UXJYVmZBajFuRnVmbTQ4WHI0ZkYxSlB2Zzgzd1ZITTlDUGg1UHNVM3cvQkNuWC9nYUFlYkY5U1hJbGVKclN1Y1YxbUxySEhJdUh2RUlmWHhjdjJWK2JxSDlTZm8yOG1zVnVHVEtXbU5GYlViRytaTytBV1lKK2pZaEpnaWNkQmxtblp6ckVQWUtPWDk2M1JPSno4K1JrMHFlYzBaN2plTlkrVm5TNWkzcG9HaDl0SmZXUksrZXc0NXpHTkhLMnNJY0lnRS9sd1VNcnZ3RDkxMHc3ak9tV1VCNDFOQm5Vc0tod01hSW5qZFFBNWJRZmNSZElJVjcvRy93VjNCL0V6NjdpdU5aMEhJaDlRK1NPOEUxS3J4R2hvbjhqRFhGb0VlNFJUUlJtZDRHT1E4QnB4S0JUYXh5aVR2NVdZOTgySjNucFB0aTdaTHdSelR0U1RoRG90RlVDT1BaeXA1YU5zMmY0YytpY1JvNjR1Sk5FWGMrdksvKzlCbHVsR2xmblZtemRzK1p5T1pVYUJ0MnZ6TjUrTXdxNitFeUxvenpBblNxV3Nodjd4em1yblVrZWVWcjVCanMzQW9sN0NlRWx4SUhEY2MxeU9IcmtMMjVSS0FUUzNtL2VEeWllUXkwTStUTENSYm40anRud3NrTDlWYXVEOHM4UnE2eEpGcmdSYTJJSEhOVXk1OVM0Kzg0YzZkUHpyK3piUGZ0bDdHNEt0Z3RVdmN0eENHRUw0N0g3REwvbnZCSms3MVg1dldFdk5nNnpOVFRmRUE1ekRwSnBLbGJXR3N1amgyYmRPRnlYVFNpTmFkMTFtSHB6TTU5WmJ2Y1UwLzFIY2tjSUh1aVFnMGhQN2RLdmFYSlF6d2MxQi9lUXM5WWxpNUtOcHBweFF3ZDhSaGtxUkMwOUgya0xaQU4zT0Ird2hvdUVxSWxPWGY5bFBGTjRQd0d6ME5hMEVxR2VBKzBHRTRzeDFoWnkrUmNpVndEOXc1SmZsWXozc1U2WC9PZTJJWmN6d1RYajAxeEVIdW9XNkc1QXArcmpmMjUzSDlqK25tKzFxSDgva1Y5SGNLM0ZUSWRNTHBYQ1A4aTNpOGJvb25LNXR0RHo4RmgwZ05YWG5pdDhZNkxwVEJ2T0xiUlJQdml4T21TaTZubm1wZzdkZ0MxOEl1dUdWdWZhRElNRTNsRW41SER0NUw1eGJ5OCtGcjJJcFFBSjVIZy9ERGhEOEk5amlMMHlEbGxiWHZtMCtVOXpTdnpkYnJ5RGVzaUkzdks3WGR4SDBqdGJhUjFMaVhPcVorQmsrNENMV1huNm11aUUrd3A5aTNwdkQ5d3JkTnYydWZaYktYMkprTDZZbDBlamtmSy9nU05zOU8zZ1lYeGdBcS9Ub3BqSHcyTUJYQnJNSzBVbmJkcjlIdGJwdUZNdWFNNFA5RjNGNlJIazlYMW1PWUs3dW0xdHJoK2E5QTRROHJ0S2NhQ3NMRUZ6bnZyeXRlelMzeit5OGdSUmZSNXpLK1I3emtmZUpPTkxZb1ZjSzJsdTVrRFgwMEgyZEo5ZUZubGRtY2lqOGEycFU1WHBzL2RxeWJuVWNCYjBMNkJoOFlXOERNRUkxUGlZSWd4bm4yUmVnN2ZhK1hGYzhsT0NYOEUxZEhtK2djcTg0TDFjNW1PbzdnSXRCTlhoMkpqc3lmekRNOTFzK2VGdlIrY01jWDN5elZ0aURhOXYvWEkrMHhtYlczSzJYRElVUTg0MzU3aktjN2pwcTRJZVpQZXFrMzlmUFQvTDV5UHhlMDVQQjdnTjRxUXkrUzBiZkR6OUdZbnZiZHFvNS9oY3ZYQnVGNVc3Wlg5WWl2eXkxUzBER3VWOXNhMlpVeUZwL2dUY1gxQjZ3UTA1aHkvRFhpZXBET05ISjJ2TzlKY01kYklHT1JhSnlVdXIxKyt1NHJEbHJ6d2VKd1NxVXZtZk5iNHJBa2tVOFRjYmNTR2dxYW1mSDFKZmxMdXJjUGMrWG1NdE01cDdwalhvZFErWXQxTWMxSEtRWmUwcEhtZXVUU0RQaFBYUEFHUE91bmZ3UndHRnZCcU1vN3Z3bDdndENySk9IQTU2RFRFZVdyZ3liYjY5cWpRVTVCQUxSSEdRcy84WTNEUmNTOFdxVU9Uc2VwN3JyWEFlbHZkMDFBQkhpRU90MnhmQVZmb2p2aThGNjZIdUZnREN1eEVQbDlWbmlGVnRzZXJzekVUNHRnVk83OThOOFc5TnJQdXlSVi8vdkN6emhIWkRhNHZmR3pQak5IRU5uVmQ3YnpQSmJ0TitsRzZJN1h6L3BKWmFRQTYvVCtyTmFSbUxzb2Q4bjBLR2lzRGxoY3FjYlhpK1gyYnlBdmttNEEyWjVHWDZ3ZzVZVTI5Z25aRHdyanQ4Tyt3RDdQMU5lQURCSDFWakNuSmNXdTZCdmpRaFFmOGh6VjhJLzBkNGNLdVd6TW53T09pY3hoNGJrbFBhbWxzZi9xYS9rOVgvQm5qT20zNnhQTVpXUlBNUHoxaFl6dU9hYy9QVUNuTkw2Nmp2THZTUG4xejhET01lK2VWdDJ5L3U1aGJQNXU3TWNjTExxOEpKL2pBZDlwcG1LWExBcit0c2pnRTBoUEJUT1crcm5kQi9uZjZDNjFKYTNiYTZYM2JtL1hUaVRVNW9aanZaVHdUMWFIU1BRd1RuaWRuVEhtMEJlSS81dm1EdkdZV0I0U25mS3BCUDN6dFo4SUwvc3dNOTlleTUrWGVhMFBlUzRlZXZ2clAvQ0NmbWFKekhvMWYySHk5Si9KWjlXMGdiL0crcEhQYzNiQWVMQzFLZ3d6OGVIVEcwQndBaVRuNjZCeHNZNndCY0NkdXVldW45UHBSbGk0SlYrcTk2NU0rRlhwZHlKTkljOEpmZ1hzZHhjVWJpOTN6WEtDdVBaRTFDN2tpc0R2c0hzb0M2ZzR2Q2VGVWROckxZQUMxVXg2WEtnT1hNT3doN3JvRGZvN3RSVENwbnorZnpqSGxMTVo5ZllDSll1L05yd2x1RHd3ZGNRdjE5T3J6VXQ3TGp6OTN2MC9HQS9QRWtuemUydERPMS9sZysrUzcxb3B3eCtiNnVwTnVNcDd0VmVDc0dtRGZpUGI4YzcyWTFINFYrS0x3ejBKOTAzRHY0N3p1dlJnM0N0U2cwamNONnduNENzRlY0M2RaUlZSanBNUWZ3dkg5aTBHV25xRTNQVk5SN0pmVzFmU3hudzNjN0hDdUQ1M2NuZzBkdWhaUmJLeitBcjhaZm93MXhuZ0FIeThiQjA3REZEUmVnaGFQS2UzeXVvR0FqZUY0N0paelRjVWNMSzV4eGRqTVdSVXZXZEtTSmMvTStyVDR0WU4xRVZpK3I2Yk8xbzB0ZDdFSTBQMm5tMUwvMEhrYkFtOFJPdGZ4M3BzN0k5Nys4aHBORlB1RHpoeHA3dGl0YXM2VzEySG94dFNlTSs1aTE2ekRFY1MzNTBSV0F5MnNPWmZ5WHJIUmtyeVh4SHFyMEZ5bG5pTnd2YlhFTGpsNFBZWWs1K1cxaksxSHNKWEJKZS9KcU5lV0FKMVp3TnVSTXc2di96N3hIOXpGYVk1N2tjVlFtbFg5RDRYNFdPdlZIcDRCKzRYN1hQUEJmcXI1VGlsZm9SSmVLdDVYWTdWY1BsK1I0MmcwOFJpU0dtKzRIckY4Qk1USzNMb2xPTExNZC9BKzRubTdPRjhWOGhGRTl4djZMd0ZyVU1sTnB4bGdxaWFrOTQyN0Q2OC95dlhTWXkwTHlZc25lTitvUTR4NXpIMmszTzliK2M1NVMzdWdTZjcxOXRncWV2THhPRitXTGRXWHB5dFR0UlM1TnhYYTJtUVdmb3FqZXFLcHlFZWk4NFRpclNPdWdSRnNyUWFjS3Z1Z2hmd3pHM3BPQVh1c2tCN0xnU21FYTN0SjVpRFhBTWFhbUZKQmc1dnljR2x0TVhDTU5FeHd6ajVZSS90Q2VsOVpmY2JZK2xLVW92VUIrdzM2UlRvcFBXZnllbENmY3RUd0hQQXN6NGR0R2VuVEFyNmZ4VEhRckN2SDUxSFVMQ3BpaW9zNEpTNC95SHBFTWM4Q2lrdWZoZzZ5V3hheUU3K0dUdDVYWWs3N0pOK0p1UTVvSG43dW1nTGdYaTRpeVM5MkpiUEw4WWRqN1NaaVMwRTdGNDNGTXBBWUhwSFZhSUhQQ210K0hhbldEbWdxdG5DdlNWMnNWK2FaZ1hIR1hBQzRUeEI2dzJYYzY3UzIwakJyTHdKRmh1ZW1QTWdzZDFkZkt5WTgzQlFIZ2Z3aTNBZEQ5WkJEcUozbHZ5L3lES0dZUkN4cVhoQXVOUTZMc00rMXYwREhlSWY3OHJwN0U4LzVNWEtpamE0STU2R0M2NkFGdnZGTGQyOU9OOEROUnI3L1ErOTVndDdmSjdyUy9UbWNDS1RlV3VyUndiNEswWXM1RWQ0bTBNSGsvRmRCZUlHK3poaS83M1FUajY1NlBKSDBXTytkOWtPcTQ1TFo0Sy81VGh2NVRXeitoOVBSRHhnYkJlczh2eVRkczVuSVF5L3B4cStLc0NjNjZBdlFwY0I5b1EyOXU5MDlPb3VLN3hqajV5RHY2RXVkWStIemxURVozL2k4UEE1YTVwWm9GcEExWlJEdCtTY1NVOCt3dnBuMk0zWWxkRWFhUWpCSTM1a3YwVER2aFZnK0theTk4bHJlekoxb1F6VGJhZHhQdGFqeUdnckJvUVNEVlR5YzZ2RXpHUWU4SG5HUHpuRGFqNS9KKzVMZmMzbER3THlUSExwOUlUMmdlUy83d0Q3TVhSWDRwejNISWx3WFZBUERncndtNFJjNytJNEpHTHR3VFd2eStQMXE3QVBXVUZhRUM1Y1hHc0hmTDR4RDhjcTBOeVhvdzBHeE42K0wwbU8vdndCT1NKanpmWlA4K0E5VWNlNll2d0ljQy81QVBtSSs3amJqdVhqRytQWi9VLzRGdmpaR2FpSGJrUFNqUEdmMkU4RisvSnZ4SzBvZHdFaUhMWE1iU0U4SFhjRitKejYzNlZtZ2JnT085d1NlcVpUL3l6a0tzYzRBdVNicnBmQXpPTWRQRWJLOUxma1lLc1g2MVREQk1TM2cwRnVqSXE3MDBqMjlKRHhIRmZnNVpEeUFFL2lDdFhzNHZGbXYvd1B3eWdOcnczT1M2WmwxQkJ3OTQ5em12NC9PSE1pSDdIUk56UURUaHI2TE1hQllnNXJ3RE1NYTZSYTRsOWNCcm9HVDNrK21CU3B3NHdsWUNjOUpkM3FSdDNrYVhEZXhJeTFTejdHaTRiU05ld0xZZjU4T3crUnAvNXJCbnR1L3BudTRobHZ3cmVVQTdxRUtPMTBsZjUvVWNoVUNEeEY5Wjk4Wi82RnJLZkpycXhoUE5vOWN6MHBQLzZHcis0M3ZxQ3QzSXZ6VGtkcnAyK0NoWjRaK1dmaE95MXJNblhOVThLTjdla3o2SitCOENLOGI1b3R5ejhHUEl6d0R1cC92TGdUQ21ieVlPNmY5NnhxOW14ZGpMaDIwZGsrRjJCQmpqL0l4WUg0ejdwMVBmTmRxK1E3eG9SeUJlL2RSMDdzSFFXWS9SYXFRdnkvOWI0TEdRZmduWGtQbzNZRzNCcjZEM2lsS2hacjVsTk5JRzVYc1VmNjhRNGV1YXg0cllhWWsxd3orSHUrVEVIK0ZZZEhuYTV2NTFOQjNpV0kvaXFFaFhHLzE4U3ZZQU1vZGhITlpMWmFmM0hpdWZNSWFqbGhyQWJpUG5RamlDc0RBWitwcTdzYkFzOHZ5RXNEeEdmRVlxZ3pPZnMwQWZvZTVFK0grdC94YWgxdDRteHFORVdiemNUOUhiaGR4TDIydXJRSDJ2UVpyNUxzRXI4UGgvbkVQQXRIenBEdzc0TnVJUjF5N1VTWHN1NE05WFBFYWRkQ0xoYzhYMEdIMFhlalRKSDVmVnh4TmRYNWUwWFB1UE5lZ25Pd2JxdStPWTNQd2R6RjJpTXZsaGJsZFJtZFNRY2UrNEwvbVoxTkJqd1pyMUlFR0thNy9EMGpzelhyaTgvZmlkSVlwdHJmRmFYSHZmS2U5Qmo1Q3A3M0s1em4zTHlqdlR5Z1JYV0s4QnZIelp6YndFdGRvQ2VEZTVjR0l4Tkx5RDI1YytYT2J4VFo2cjM5NUlXdjVEYkRBSXZJTDkzQ2VEWkJ2dnR2VHZrRnpPZWI2Z2hadGRGWk50YzU2Q3BoTjgrUzV4cFZ3cDZNOW1mZjZNRDRDeW90QWNabjVlc05uTU1GZjVUWWMrWlgwdTJCamNKOGE2YmR6bnVMSklEMzVyakVLcEFnd3BZWGErZTFuQXB4WldOSXQ1bnI4Yys1ajRLK0ZYbGVDMFdabjNzcDMyZzNYcitiVU9PN0dOZEhpeVhtc3B4NWdsQWszdkVDMEhrV29meUQ3bHRkV0YweERqZmFzRnZmbWpXZWlPQXlENTU5SWdmZEVBdHhxazQ3WU5YS2l0ZThTTG1TdXgvczk2VjRKTHErRVk4STl0eVJtVGdPb05lQjFYZGJXSXZ4dC9ITVU3RFBYSDNLbHVreVVld1h6Nkl1aUo4WHhyTy9MVnArcnBiT2NhWHJWK3o4MzAyUlY0SEZHc1dlNE50T0NQU0k1eHJ4WGxzYVJ4bUtPOXpIZjIvRlB2ZGZIdUVTaTFUc1daWnRpOHpEZm9Ya0U3YUxzaWZhbDB2ZmRNaHdMV1Vza2I0SFBtbE5CMXhDZk9Rcmg0M0hhN2ZMK3l6VVB6UVhXRVZlSjNqN1RWampwaWhDUHBqTllaMkVHUEQzMFBOMEUybWxQeDRQWUM3THY4UHh5L3YwVTV3cEYwSXJ3V3NhUmFRL2xjVms4dk1qYlNMUDNoQWM1eFdjajFBRHE4ak5id3BHMDhMWDBpVnNmRjk4aEdPVXNYZWUrR05WK3dEYTdxQytVQ2o0OFc0bzFqU1pQc1ozYkJIS0dGM21hT082MWVxNXpYa2QzUW5wcTRYbjR1bUFwN3dEN3dXaEhXakYveFBQZjFlY1cyUFBUL2czV2Y0ZXU2MmRZdHhhdFk0LzFCLzNFK254dVNQM3lJcmNQcWJYN0dITUJud3RiYUd6VlBjY3pjb0RlRjl6SHdlSWFYZ3N0NXkrSWFGNk85dExrR281RnpCbTE3K2g5MWdGNmRnZXc4VWVtcmJRMkJhK0lFME5yL1RvdjhJeU5xWDlXNEE5OFUvSWNYWDR2MEVsaFBBczQvNFhuZ2VvWlloOEIxbmorL1FGbjAxMFRhbnI1T3NUOTk4eFhJV00zZExBL1c3aEhiM3g2bVpKNGs2MTVFZnYvVHVtZXlIWndlYlV4eWVHQnppcmtQMkcrMEJsd3hmRWFqK0hDZFYva1Y0Mm15UDVXc0lob0Ruc3pkY2J3MWcxK3pjWjN6cWZTUFNuUC9UWklXSTJkOEtGYU9ONVVGZ1E3M3NaYURRT1pyTVhPYWVpYzA0aXZDUUIrQW1NU3FjN3dNK3ZOd0h5d2xHTnFEalVLRzN3L2lxdWd2U09ZUzYyN0NTVWJhamhlYTN6d3VMb2Q0NW5FK0wrZDUyN2JoZmU2YmlqM0V1UjlDbHJnT1BkK2lWQXM0TFF4cDNQeDJmZ2NBcTFuWFh3SGZRYjJJYTN4NGZPMU1KN2RCUHJpQnFPa1J0K0o3SWUweHNjbTJxVEFBV1F4TGNNd3MyRXVjait6bmVMZWRZaUhkajV3dkpFK0Uwbk0zNWZseXlsbkpzZExCUG9FbGZsNFRGZTB3RG1XWHN0ckVhMXpvdk4ycGJ6Z0hEZmd0cUQ3eU9Ha3ZaYTFSZXZvYlVMSE9kY0dRYkdIcjZWTHdpVkQ4L1RBWjBWcmdzUy9JWDUzYnRNYmVpZkZZQTI5NnoveWZRLzUyc1NqdWZYQ3VMZVBlcEpqVmttTVNUak1jcndlNDROa2ZqM015N1oweHVNZXZZbThEcVFPK0FNNUxncjMyZnRPVzVxN3hqSElSTUpuVU1DL1VGNEgwSllnWE5WVUorbEkrbGdLMkdDT1h4ZjdEVDA5TG1ORUFkdWpxWFZjMXNBeHBJTXVRd3A4d3B6dGFQc3VXdWVsZWhiRXdqN21ESmJpbUhBbU1sNWQwdnNOZVFqT2Y4czVITmZBOGNoaVNjODFGNkhTUExlMWMxYlM2YlFKL3dXcEd4MGoxenBGYnM1WlJzK1VnZ1lXOVFGeC85YVMxQkRST2ovUS9rNmlDMDI1Y01wMkEzTmgwTnk5VThBdTgvWGpYTmNkNXduVElPdUl2aFFURGxPczlZMDV2VG9IWFZrc1NqeEZSOXl6b1Y1enpTbWlQVkNEMGN2MUlsQ3NZNHJRZDhaaHlMQitBdWJ3SnJuWjNPN21tQ2FpTzhHNDR3azNsckJ0d3ZGVDNqR3VYb1A4WDY2UEFuUzJPQTVvd0NLRC9RZStzUXptam1HNlNtTmZyU216WHQzdS9wV3JrM0JZeFcyUUFiWUM1bVU2Njd4TWJPdDF4dW1jMStrZkRhZFBCZjdqNm1jSnYyQUM5K1Y2YklGemNCbG1hUUt4RldqRTVQb091SitKZmpldnQrUGNucnlJUUJ1NmtYKzFqV0svTjZYVWcwUzQxSUtXTFlRRFcrQTQ2Q2h2NFFydFNXeC9aMXdQSVpkcnVHN3ErRHhoREljTzVhRVRrd2ptVVdjNnlhK2F1Zk5jOC9xYWRIOFNHNER2Mlh1S1h3Zm0wVitQNlpyNHA5NDdYd1BKRnpoOXAzL1c2VHZsYXhqOHpIM2cyS3U1b3dxK2MyNWpyQWZUN1lRWUNuQ2RoRXVMMk92Y1R5V2NMbkF1QTZkVVdvbFg0Wm5xdnhOVEhUenduYkQrQlBEdzBwdy96VXV3bXFSU3FIWHlXaEhFait0dWdLOUpTdytSMHhGRDZkem05ZVp5bmJFU1pyWHAvWG9qck9FcHFUU3ZrdGUyaStOZjRBWVpUVDFrRDlZZTlYT1ZuN1hhWUp3OUpYbjJDTzluemtiaTNLVzRSMmNYWUttNXZsU3FkVUxqeUJ5UHdyZ055Wm95MkxoWDM0bnk1ekN0cUN2cHVjengvQVZOUU1EVlptWE9JRHAzSWM1RDdYMG5XbmpyVk1qempFelg2Qmk1SnJKVGdPOGdYUCtWbWhPZUF4VDNkTThqUmM1N0hPLzIzREIrZ2R4dWNGd0VSRyszaUdHaFBmV2tYaEJtOXRKM29BNEs4VGZQUVVCMWpEelh4UG94eW9MVThORTVIMFA5L25seUt2UW5lNDZQdVVpSjVxenZtZ0xCeElIZUNCZDdYdCtjOW5JK1FMNUxSd3g1ZmdFUzMrSmNHT0FDcnA1a0h6elhBTDRmVXZ1Zy9JQlhyb2NZOWxOWno0YjBhVzBwTHlEdVY2N2pxMmxmSTQxeUUzSDVCNDVEa3U0QmZOWXkrNHZ4K3pWMm51WG5lTjF6aHBjQzNvdmlkOTFSWlU0b0gzbzRzSzl6L0g2YkJxNlBBaGNFUEtmV1NVUENtVTE0bU5KZ2JWYTAydXFldmJxM09OMHh5Z3NLWFAvRlhqaTRsaUlpLy9nWDlIRzZlTS9TZW9PdUxKanVCcHhGR2NNa1hTUEhCSnhNcWU5RndQNWNSVmNRK3FYTGU3WmdCekdYMEtLdWZ3N0hUeEU2NjFOZjZXN0s5cVhwUGNwOEVmejlDRzhueDBGR09BWlpqRVg4S0pmVitQYzhkM3g0S2ZiS1ZPZGxYTmFGd2p6alZMc1ora1NnenphM2g5WCszVHkza0hWWTNwT2N1MGVtMnlCMXNraGhuTVhNMXkzejRvYTBGbzA1ZGZZY0J3ek5JejdpV3pDZmE2UjBUM3F2eXpUVjhia2hVais4eXZIS3JZdlJjaVlGamg2YlMydnZKVjJKY21JODRvTXdUdXplNklLdThhS0ppZDd6aW55djlBekFmTE04ai9IQ2s5QzgyanVzMFZYc3I2ZjV6amZLZVpmYlpwSlR3SmdqYnQyanNVTG5aVkswK2VWOE90UEd4dnk3V0RkUUNKQnZBL3dxYUgrWm16RHJIT2J1bHVUN3NjWU5yeTJSK3dnVzAxd0I3dDVMem9WRXgvQ1oxY3JQcVVkOFU4Ylp6TlgxSWhmek1jMkxXTGVVOEhpMGMyN2dnbVlJeE0zWTd5L2tWMEYzanZTNDB4aVN4STZrQjR6V0Z2TWFMUEI1UVg4RnRnUG9uTmxFd0NXTWM4TkR5WDd5blZIT3NUY1lRUzNjYzREUG81WXZqNnhIOVBuTDI2UzZqa1pPbEpSNDRYQytaWUJzVzNzUlp1a3hQKy9HWmY0cnlyTjRoQndmTjU0QmNGRXhqTzNyVkJDNFBrVGpFclFNb2hPQmRVbDgxOThTTGQyRHJoYlhDdmp1RWh0bkZET1RQbWFUOVJoaTNVQnN0d3E1RDdMdk1UYVMrWFdGV0JmOFU4QzNGOC9JQVBlSTc3aFliRHRNNUZmc2UwY0ZEVm53NFNqZWlzV0R4Ykhpc2F4aDFnRitJSjUzZ01YS2F5TWwvTjlpbUs4UE9yYVVKNHg5bmx3WDRpaGtxNG5tekNWb2RmUCtXMTd6djRqRGhKNW1MaWROYzA1RVMrUXB0dkhZbzN2UTNGaUt1WXJUYXdCNjF6UjJ3YjBhY0ZiVTFRN3JQc2R6U2Jld2hsYXhkNWp2OXhENW1KUGx4NGt1SXRaS3lHTTZaSnYzM0p5bnVBK0YxUkE1M0hSM2svT2xyK3BxbnJtZHFOVFU4QnBqdW95Yzc4MnQ2U0p1dGx2VUEvWnpyRDZ2MmZGRTEvUFF5VG1KUjA1WTkzeXNqeGZyY1JEZVoyV1JZMTU2ZlpKUEJSNlM5Sm5pY2NxY29QemNETGllNlc1QkR3MXphbU8rMEFYWGI4cjRlS3B6bCtNMWhnbkdtYkwzNW1va2xUN0R3bHBSQmIwM294cEgrYlVmR0Rkek1pdnlnUTRLUGRqY09RUXh3bTUreVdPQ2tyYnFyb0J4UU9jNVlKOEJYd2E4R3VnZCtWdzc3ZkdBbUE3T0JCSUxBZjhSOWd0bzNzU2M5bEVjbUF3VFdROWFFYzZKRDNnT0ljd1JYcXJ6NTdFbnhBSTB6aEZ4bkpQTjRwRWpKdGplTWs2SXlqb0tCOFl4MG43U1dwQVlhTHQ5Z0h6WjN1dzh5c1Nrdm0vMnZBc3ZSUE1oeHpGbmtkTmVjaHFGckZhQU5iTld4UGVMTHVRY0ZsRGNoc1lIZXZCNERqR3RRN0R5SlJ0V3pKRVIzRkc2OTVIUHBFQ1A0b1Z3MTZSNWZ4dXQ0YkM1ek5jTjBiWmlaNnVXY3hxRkpEOFJhWEZOM3ptdWtXUE5ZZlU2SnhoSERpZUxjVE01djlZVmF5ejZlSDFCenpTWkw4WnhZbTU4QjQxSGtUZWZYaDl5MzV3ZW1TZVp4NUR4ZFAyc3ljOTBrL2xnazVScmdJMnh1bUpzM2hJOTV3T0htbVAvTkV6a2llZWsvTmxCc1NEWXg4TDFFMXc3NnB0anUxekR6VGxjME04cTBCalA5WUxGZHBoM21PVDljZTZqeE1YS2FsTmhTMGJ4Q2VUM0FPY1c4enpESEdlekEvVmc2RStsUFVGNFRhbENZVTRZVnhhSjQ0aStQY01CYytzRk5JSzBjejYzcEQ0VkFwWTl2VGJFdkpqM0JlTVdNSGRjWmd1UlpLZEIwajBUK3l5T2V0MGQ4cWtpaWVpdGNWeE5ZQTk2L2ROSUlacGdWT2RXYXg5NTdLNnVSY2RBR3NkengwcTl5Vk04ZFRwWHd0OThDVGs5TEpabktmanRvUGQ3SXVOd1FYUE82bUxBbTJ3ZE9Ud3VlaGFxWHd2ODMxR1dYZ0twdlNlNWFKb0RJVHpCd0oxWDRrV2dPb0k1cG5vKzJNU2pLYy9oek52TXRLd1BTL0J6UHB4eGVuOHhaMmNnajU4WnlKZWdCWHdKeUlZc3lQZUtPdXNGSEVOdVgvaVl2YWdmVTlEdEl6WEFVeVdmT1N4aWJoWlIxdG42VklNZnI4OXlYZ3lkU1V2S0swWjBQb0h6dk01Mmd0WjcxcUY5L0Z3dXNvaHY5RnovT0hkNHZoWDVHaUtiNjlacE9DRS9yR1o5OE9OYjFEbkJhMXJxSERBWE9lYitDQWFyb2gyaE5iOFRoejlGc2RWNlJQY2U1Wlc1bHE2L3kzbE5zZVk0VjdmRmVnNmFlaUs5RXJxVGtIMHo1bmp4c1o0bnNWZmdMeDlEcUwyQ0xpbmdveWdPcXFEbFRjK3RRcjZWclk5R1BuMS9rQjQ4Ujl4NkYzZ2U0SHVobkRuRFBJNFJNSGRUMFErZXFKdEsvb2JQU1FJdlE2WmVmZEIvWWJZMDd6M0ZuRnBjREZDNk52Rmx1WHNzdkpZbEFtNXZ6TmRKQ2M4bzVUdWk5UWRpODNpT0RLTFB5dThWSTJBYzA2QnZDNzZDWDlDbTVHSjZZdk94WGFKNjFLa1FhV2Q2cHRDekFXc3pvakZZMjllM1NRR0h3L1FQZUM2ak1PUDU1ZEVhb1gxbVZqdkkxUDNjR2UyUjNTbnhycmkwSngyd1NocmtQMXRoaG5Qb21CdEhmYlVTT1VQUE0xUnkvZDRDN29ocFV4YlhRS2t1azJHOXlaeFQxMTlEemhINHZpaFd4bFJrYzV6d1dveDhELzFUbldaa3N6MkF2cXRVS040L3h4SE53YmJnc1NQNlN4alhnckdkaENzY2JFcGVRd05jR1ljZmFNbmJ1WlJybUhsT0p4dTZSa3AwQlBmRjY1NzI1SjNyNTJGQWZBam93N092dW1yMHgzK1AvY05qSDJaV01uU2hoL0hSY2FkKzE4aEtaNFdZOW5sZ0FwN0JjeGNjUHA3bVYxZGNqR3lKUVFhMklJOXBHQzY1WCs1MzIvcWF2U0E1Zjl6TFF6aEdzQjNMejVxUTd5dkMzSHVBVmVkakpOOFJXSjFuN3JRbEZNL05RVitvb0l1eHdWajBuNERkQ2pGbk50R3FJSDYyb3g0OGlYR1BiM0xzT280cHBuM2ZCbDRWb3IyTjR6YmlUeElmaExOM05maE1aQU5sckRHVWMxKzlqbGRiZFN5T1l5czExRmtOOTJiUnQ4eDkzbWdRSGZHNEU5MUQ0Q0FRVTZML3hmS2tGSmVHbngveSt4akhvdUVjLzB1VkExYUVPQytSZDRFVUxaQWRuR3RDN0FPT3BuUGgrOGU1ejY1OHgxeFEzcEJoem11eERUQkhJc1hJNUxHTzAxNzVybkdOOFBWYU9VY0ZjQVNWM3dkeUdSeTJsR2g0NW5uK0psK2N6QnZ3SVRLY0d1QTB1MC9RcXpMQW1Eek01M0dLNSs1NGplTUIyaGViYTJ6cFBWMDBKNWhmdk1MUnl6UlVhVjlwQ3IwTWMyZFUyTnQwclFkYVorMjV5RDR1OXFEOUFCZ2dmeHUwOUlQZWo3WlJ4dm93eWo1TzNzOUh1QmpKdSsyb1grTVJqaXJ3MVJ5VCtwaTU1bnVMYWtSanJreXZSYkJOdU1aOEtQY2FSSkxhcnVGNE9BOFRXY1o5UU5ZeDRQcWhad25YaTBXeHJMMCs1cDV5RjhBZkZ2RzhGcGZ1QlYrTEh6dXJyYXRkNG0rcU82K0ZheGsrWUh1NjUrRUZldEhmaVkvejcwRHpSVmM2SDMyeGswRi9iRXYvTmVMNG12WGVpT1pWNzd3L3RqRnp4NHRuU2ZlbnJuWWZ3QmVlczJpQ3VYSHpmWkplU1V5ZHh4S2drWTMzSzNETVVWNTVySEY1amh5dzZYVjdrYXgzM09NSFBUbVRFbzlySWE1Umw4aVdoZHpuZlMyRjJsQXg5M1krK3BKNkFkMWVKMTNxbW8vOHcyTzRyc0VrS2J2OWNDS1FILzcvNGVkWDZkLzc1NHRRK3N3RDM4bjM3ay8yTEluOGs4U2dHK2pOVUxyeE84NXhublJ0QWZ0WEg1d0FYenk1ME0rZzc2Z20renY5VGwrSTU4Qkoya1hmeVhWS0xyLzUzQTk4Sjk5VFVGUEU3NG1mVytCNGIzNWlHNU56azd3cjNZczVuZVZjSmVnN3k1bDQ4enQ1Zit1dkw1K2o2bmZZT0tJeDVwNzcvTUp6ckF4T3NkbGJ4Yi83cm4vWmV1ejFUL2x6MC85dmZ0ZlJkSHo1NEx2K2RldHgyajNSNXk2OEIzN1hjK2xkaFpkSjVWMnYvdzNYWTg0RnN1ck1yT21HWUduVkpHajVLZXNSR0VTTDhDSWZ2YlcxbUR1Z0laaThBY2ErZldqaU1tRmNtblhZVGZEQndUZEE5dmpnU1l1OTV4cS9kRVU4MEQ0czZLRkRQa0ZTNEJsRVkwZTB4TVJsb0szaVFETCtEYnlDa0V2dW81am5XSk9mZnJYN21DK0pZSVZ6WDhkcGJ5TU4rbHM1RHVhdVdLM2JSNWhyUGdQK3AyU09ZdnNCOUNmQXVlTkpSVngyb1M0N3dUYTN5ZjlxOGhFSkpuOURjOEZEbkY5RE1ZdEkrcEVJNXhDdWNmak9lUkVPekFJWGVYNk9NUzBEd2l1WGp3SHRhZmExbEdyUm9ma0ZIL01aMTZmVGt2K1Q0ZGhsZ2ZsWGlQL0huWm5Rei83YUU5QythY1FNNS9WR052WTV0aEw3QzJROHhIdzhldjJEM3UvemZja2Noei8wejFBT3NUdy9DMXFpYXJ2cTI5RWVCc3pYREZoSjBtTkY5STBTeUl0TGdOV3RpemQyL25xMng5ejM5Q3p1bmpsZEYvaTdyOWxMejEzdGNmOU85L3doUHFhKzJyUDdxV01CSjZNL0djOGkwNXExWncveXZWYnh4TGxPeG9MaWd0RThoSm02NW1PZTE5eUhMZHVYeHAvcXZpTjlCWlB1SnBEYU8yUTduckZQZVBHY3FOQWJoT0o1clBmV1ovRVkwM0trdlh1WTc3dXNJd205MnlFYWE4Y0hqWVJvRUtYSXh5Y2N3L2phRXVPS0pYR3lsWlovRHh4RkdMOFArNHpFOHp2ZTE0L2NFWDFXVm1zQ2ZoMU4zUVlUR2JCbnQvQmIxdHBZK0pKWTd1VmQ2Rm9iZU1ZODV3UTFTUEJObVU0WjBmQmNqMmpmSzhXQU02MXh0RytlTlVPTStMWG5tbGVzOVkzOTIwbG03L0U3ajNaZ0Q5WVFHd08rK3BubVV0Q1lZKzcrVnRBeWZnVmFaK0VQUm9kaTdhSFA1cWFBb1c5WmkxelhpV2pkVk93bzFzWElmZnJpdXNNYXVBVitOTnlqTWJDdmM2NjJBMXhVR3NWanpPaTg0WGRvR1NuR2RDRWJwYTQ5SnowVWE4bld4c01hK3FUMmdlSU9IMzFINU91aGZBOGJ4ZEJNVzhZaVNHVFpieGtMWWxOSmJxZ3JESmVNUzQ3VkxVZ2ZCZU9QOE54eEhLNXRySlhEYzlrbjhrSlhqRTNRR2ljNFIzeksrZXh4TFpQcXBVSy9HajE3NitxWW5tdUNOaVJ3Rm1EdUN6eEc5V3NQNTJrZ3Q4dm1mZ2Y4Y1FycDBTdjJzMVg2YmxsdWNUMmluQVpiVnVla0d0aGtiY0JadythSFlPNWE4cGJQMDVmN05VbXVobWpoUjZDRnoyRjBMcjRUa1hxNFFYaFl6OGM1MGRubDNvbmp1WldmZllmbzlPZmp4dmovZ0l1OXpJbFJ6TVZzL1FUWFd1ais0M0E4QzRyZHFZdzNwNVdLc2ZvL09kdEV6aCtjbTBoODE0S3pPZFRPQzArYWJYTk5Tb2J4Qno1R2ZLYWNhUDNpNGp1ZzBWK2VzMk9nQVJicmhIdHNtVTRoNUc5enJYVDVFa2dtT3J0M0dLTnBMMmkrSXovL0NjOEcxT0x5L1FmY2d4WHRaUTdEWHJQWGVZeVdoL25qMFg3TU9jOUlqMmxkbjE4eFo3YkF2Y3k0RGdhNkRyaVdNcTc2bnNoL2FPQWg1emtrZVN3QUhYdWlndzkyTWVSMExvRERSMHNCWDF2T2VhSC84cHdxMlArUTIxZy9lNXVDUm9YV1dlcURDTTNwWnU1Mmk5d0dVa2NNb2M1a0hna0hGcjNIb2NBeHBKWjF3dkljTWJuZUNQbU5iNEFOVDNkK1hiMnVweCtJVnRlQllEc0JqNG5uaVdncFRDcjJFdkpBV0V1UThFOFJESFh6K29jWWFCdTJUTEcyNXRwRDUwMEgrZFRrdXFEamZKazdvTGRYWThkT3ZKWmhTdk85RlY1UG5Qc3J6RTJ1eWNibjEzUDl0YkpHQisxSHBENFQ5Q0plOUtiOFY5Vlc4bnBnYThhOXlIalNRUk1mK2Q0TzA3NU9mQWQweG8rRXo3S1FpNjd6M2JoOWpMa0FNSGFLNjFmRTJzNmVZMEMvQ05GT0l4cjdtRk92M0RmRWVscTFkT1dESHNaUHdMZm0zQ0IwdlZsWHpEUFdFWEcvRktjaHh2ekJlaDhROW1RSnE4NWloRzZsbjVoY0k0eUQ3Q2QzRDNFYlpKaVBvYWp4VTcxZkpLblhpUExUay9PSnppKzhEMXBubFQ1bThPZGh6SWNPNFVLWU1JNk44NmduNzcyWTQ5aDAwc01jeFlGbGZHTFRNMzMyV1FyYUxpTHlUMU1TaTNEUG9qNTk1Rm1vcGc1b3pFdTRaNWJudS9BZFB5dm9FMnQwZmtVNk53Vk5wS0ZybjBLTllIZTZsVEZDc1Z6cVp6NW9ZK0x6aGJ3M1B2K0JBd0Y0OVFCbnFLN2gzQ094YXgwM0U0d0JqNGRpL0t4RW80RDI5SFZ2emJIWjlxUnpPblRFYlpEd3NadHNRdjBETUF0MkJ0ZzR5Z2RJYlFQeWZYRzl2akRlUTRYRmxoaFh3R0V0OUFFZUl6N215T2VWY2hXb3kzbXg5NkF5N2w0clhRYUUwMEx2NldMbHVWMTdYK0xKdmZydStBajkzMG9IODAxSm1GL1J6OUlVT0cyWnpsS3VRMUhBNTZ5TlkxRFN1U2ZjRXl1S1gvVXdaOERTNCt3d1hlZERoODQzNXE0S0pXVFB4V3p1Mk9pOHdocDYzTHJoNHBrS0htZ09lUFM4N3l2TUlzcEJSSitkMDIwcTRHc0lIaUkvbTRlT1FmZlh3bGVnTDU3SDBkWnp6UXhrOHQ1NS9RSDJncU91V0E4WmpmTm92elB6bWFIdVM3R0xYRHh0am0wWDE5RFJlUmNtVEhOMVY0Mno4RDRGM3JkYzV5algwZUp4TVN5MnFQUkY4VFg4Mk1POVIwV2VoNHQ4SWh3T3JIYkN2UWNlTTRKTnJhMnY0SGRpR01nQWMyaFUzbVV1emVJUTk1V3duQmZqQ3FyUnhlTmpKQjVqVThTZkxqQS9PTGVlNTA3N1FISEloWGZDejFtTGZXVnhNWWRSOWpFR2xZeGZ6c1dpcjYxRktPM1JYa3Q0M1NnZTYwak9YdHp2bXR2OE1wOE93Uk9CcmhIRElsZGpNMnNiQWc3cDNCNHFjaEtBNWlpeVMrZHRzTGFmU0sxYUN6TTdIYWRtdjhiWDlsbC96eUN2bWRQNGZ5aWtyOXc4bzNuY0JoZTYveXpNbVlSNzh6QmVDUEtsS2JKbHpIWVEvN3JVWjJ1c1F3bTRPS3FmVDVoMklEb0huZ3I3aGZHZm1LZG9RbmxVV1I2VnpMdDZMZUZlTVBhNm9CTlNFenVvMEg5SjhzK3M5K1E0ZDM3eWV4djQ5TU1COHEvOERQTExnMVU4VWs2WFlXKzhNM090R1RhR3JtU2VJZ2ZiMnBFaXRGNldWVnc2MWtRcGppM0ppNkgzWFBpWmovd2U0VzNTUFE5N2VjNGR2aU4ybHVIQXhtUFI2KzlHcDhvY1Q2SHZ3RUZ4SWNNazVWZ3ZMaDlWOTI0dnlxazk3UFZQdzE3Ly9NTEh1SkwvenViZDVwOGgzbyttL2FaM2JKejM1dmZGOStiZUdWL0RMcjMzdEF2M0xmWkFZUDRONEFyRlBnSG1LTUkySWNYWXBHZ1JabTNLbDNVZ0dqQVloN1hHZkRuQlJiNUdtbm9oM00xYnJKVnVwVjdMS3F3MUxuNXZoeTByRFNZRUE1TElDVHF2UUlzTU1PRk41NG9waGtSckYvZUdteW4vZk53WUZQaXphamdtaWEwSWN4K1Bhb0RrWEg2Z04wQjdNd2hmTS9JVldwNXJnRzNsWW40OEJxNk1PYUNyYTJ6clM4aFd6dmFScEY0Q3dxODZ0ZzNUWEk3M1k2SGpEbWVHYloyMmY3eGRCSWdwaHluTi83VEpubXRUKzdiMzNHNzg3Z3JQYjYzZG50ZjkxalBLbWRJV1F1Mk1hd1B1NkJCbVJPOHg2VzZBYjBqcEpnUVhrZWhLMitFK0I3RTE3WDBPSFBXa0t3Ymtub0NMTittdW5pZnlUMTFENDIzQnVXNHFjdWQ5akovYkI5NElzYVBFLy9WZi8vai8vdGYvKzQvMVBIdjd4Ly81eC80dDI2YnovZHZ1ZjcrZDk3L20vMHFUM2Y3L3VjeXo5Qi8vNngvUmZELy94Ly81Qjd3S29ZemxING5BUWZxK2kxemFGYncycE52WCt6OSsvOVdmOFBmV1Z2bzJHQ2U2TXQ3QzQ2LzNmd3pCUlJyRC9lcGZaZkUyajlLMzNlNWZ1Mk5ZZWhuUGxiZDJabDlDS1QwR3kwMGNMZnZQb0lmWDI2Qjlmb215ZE9tUHR5Z09Ya0R1RnZxWDVBT3l6eStKL01mYlJSWjh5TCtxQW5BM1FUMnhjeGhtN1VYZzJOZGg1b3VCZG9iUDYwbjNnQjU2NkFESE5PUzkwVDRBL1JXaXE0S3YyVDNNTWh2eXl2NmsvWUsrUzNRTDRuZEZQa2NPNkhoMDNwRVBxNTBYWG1idnd1c212ckhHZHA1anBNRmdSUHdPYXhGbVl4alVkMFZHKzJNRnZrTVBEeUt1QmNQQWJ2MmtlN0JwZm90ZWIwWHVlU0hQb0hUano2eHZ3cWtXNjJ1Q3k3cDVMeGpiUTZUWlQ1R2l4NGJTM2VxRFV3ejdVN01Qa2RJVllFSGd2dkRpR2svWTgyWDhncVZ6TlhiYWg2QmxzZm9LSGdOMDFyZVBORmR4WjN4Lzh4M1ZRNUIxQktZVlU5ckh1ckpxbUtmU2U2NlJiNEhQVk5CTW0yN2lzWFFXZ1F0dWxZN1I3ejN1M3krSi9CSkliY2hqTTA2bGZ2c1lxWEJ1dDhlT3RTTDgrZGVYUkJiQ05hNmRobHJud25FZDdZbm16Zzk5WUMxRFJid1UrZ1VVR1hSTTZicG03NzdHdnZBUWIycW8xNGNwMFdCZVU3K2N6aWRhajJqTlJtbWtvcytNYSs4MW5MQjlLWGl0N3A3Vjd0ZU1jemVHY3dxK3YvK2p5WjVDSGo2ekx6UDhuZ2YwL1llZjVTSW1FZVNqNUN2a3VGdldNVncrdGpjRFJ4VThhVEVpLzI3Y24vVkdMbnZiLzByQzNiKzJ2emJaMjM3eGR0alYyVzBOVTI3NlNuZkRIVnZJdkYxQXNqSWo2Vk5udk5XVm1GdXFZZ295c0swUmFSZEpsLzZNU1VvZmNobEtiUGZMWnJVbzNkeGVCaTBqRFZwNEN3NWIzbG5KOWx2a3lpTFhOVno3VzAreVRTb0hyS0I3YXlxVUFNQnRZOHR0L3dkcEM4SFVDTEJ0eEgwZ1BSMndTUjBkL0xXOUMvRG44WEJ5MjZaMGRPZGpzSzQrQXpYbnhOMGdwcGY3M1JTbStMUFgrOG1ud1llcGtRSWRselE3VExtakFabTcwTFdQeU9VdGJ2L3oxWGZ4OHZ5dG8yUlFQRXQxUmFaTDh3YzlEZ2hWV1hHc05UVkJ6ekRFTFIwcm9JQ0NvKzYyZVM2TlA3bGVteTcveWxGVWQrOW9JTzhpenFRRUVPN3I4Yk9DVXptNlloRFloWDd6WGlYZklxNTNuZmlqRHRJMzVlT3ZjTHdFamkyRVdib01MMjBJd2VhT21VNlpGRHJiOXQvNW5uZlc0QmNmclZybjhzangrdmp6bFk1RmNqK3ZlTDBmRDZ3cHVYQ1UveWx1eTJlUDlHN05QbXh5eDI3YlpLL1dyZmtyMXRsWGprV3p5L09KUGZqdlFES3dEYUI3V2RzZVBlSnlWbHlXTytNOXp6ckpGR3pocWY1Wmt5NzhmNmgxUUhJQ3B5QUU3RTcxMEJsSm52WDBhWnVDMi9yUnV1UnNFOGgydUdqZVRoVzM1elBYK3lMN2QvVmF4aUxVN0JsdDNlWnNUT1Z2SDUyTFVESXZuaXVuTnFNWitQTG52L2dPWGlkRXlvcGRLOHhzYk50eHU5T1BQMzIvb2V2Z014bW5ndTZrQlY2K2Ztem84MDJheG9oK2YvWlhqeFZkUitJWGp0bkFSUDRidEk3UU5HUEp0WC9NbjhyRVJhU1pteW41ZDQxUEpSWERrbytmRVZUdVBHanB1YzM5NUxsNEsxMTF6eGF3VUNrcCt5TGxzOEdyZWM3aWVrV2hlempvSHVZdE8vRmQ0d0FRaGt0N0cxdzZXTnBDYXFNNS9LRXJCbHNiZWx6eTUrM0dPY1ErTktNdUVvamYzK1N6RjNOVVEvZFd5bzJHY05VMDFaMDltSmNJMGYweTlUUzMvVFJjZzV6Y0QzMVFGMS9ObnRIM1BRY292WDZ3MklIRU1TQ2xBYTJwaGJtSDhEcTh0TFBJT2Urd2JMQWVEeE81OHo0UjJWaitaNlcwYXZiSHBONDMvMW8vOGZaOXZ5TWVvZjQ0c3llVmVJeElsdk5wekxWMUNnWjhlcnU5OGwwOTBaVTR2clhmSy9mNlhmOVhVMCtoMHY0Vk9VWWFadTBVMmdxeTlEaVVBRzU5RERMN2dId29QUi9YcENsVytFUXE4TnZHcDN5L2grZTl3UysrbjlPWU5jUUZrTXIrNW5PM2V1L1B2aSswVllBTnhyTDlEL21Ia3phVytLL0VyWkFQdS9kZE5QZlhTTE12RTdzYlAydjIrZDc1Tmx4YjdSRFppcFc1aTRBNjJEQm1pcjVsY1d3eEZmdkk4eGVlb1NuR0tPZjVmTGQvZDE0Z1hUenBKbE90cy9EN3hpS0FWaUZreDFaM3Z4dVV2c005Mnk2UTFOVTRVM2NZeW1FWXM5NGplYktiMTZ5OGIyTTZXbU5qeVB3RkdtdTlUUHVYVWU0dkNKNXJySDNYR3BOVTlTWWFXS2VodzMvLys5SzVKZnZkNEJ1czMvYW56YS9WZHBNbTRlVVI3d0RJcWpxWHVTZ2ZBeTFkdmszS1hnTHhDUHJ0TkJwRXh6RGJqd1BwdlBWYXEwcjJ0dW9SVkw1ektId25JVjdCRnhmT3dMTWdKd3ErUm9OVlpwbXROZ2JDQXdFeFBGTzlkYW5ONUQ2YWhmMjdXUGFmWGl3THRjNXFsa2RDTktPNDkxeHJPZTh6YjVSWkVjK1ZUOE5zTDNxWmZVSDdETDNIM1BsNS9JQUhYVm5YdDcyY0hERFc1RTF6MW5BM2Q4eTJEVUtWbkZYc293Z2JCSHhaNUdJNTBZVVdvWDN5L3h3d1JnNHdBZHlLQ0V0Y0Era3M4Z0Q1NFFRWDkvaXhvYjk3U2JvaUEvRGd3dHNsYUZsSFQrcnNYaExadHRRdUowUjJCb0hSb0dVTFh0WVJjWU5YaVpCWCt4a0hMV3NESkh2MDVFemtVeUF4NE1vZUYvZXMvQjNJZTFLclh6cDVlTEFHQ043NXJnRW5RUDQzUHFyODlMV1N5QjBWb3RaSSsvbUR6VGtkTThtYWNpZk1zMTVvM3Y2MkRNSTV0NEZzZmZ6Z2dQQkF6QVQ3dUg1ZW5ndmprcC9DcGJYd204WGZ6MTRyTThUaUhHTEJvOEw2WUxZYmkxdHdjM3J3WFF1YWFHWmtUdzB6UEI2V3UwRGUzTUZqbVY3Mm5MQUdmYldhUGVDYTZodnRDdmVaVHdKTENNa2Rpb1RXMWdWRkhmL3QxbGx4M0l0Um50Sll5YW1aQzdwZXpaZVpVTHAvZGUwYzhveUQvYUgzNTY5VHlEb3hCSlQxeTNkWE8xMnhTQlRVL2ZFNjRjK3RxcThFMmRETXZvWkNlem90M3ErOG5yZ3g2YTZnSWI3b2Y1Q01QcjIzL0ZNZnFDSVc2eWlPd2UyTTJSZlBoeWdmL2Y3ZE9mbndXdnp1dVpocG5kVi82L200azhIS1VSamN0Zkp6L0lSc24rK2lNOVMrNmdOekdXWXE4aEZJRTBzNVdycG4wN3Z0MFZRLzEvcVFENkh5dHBzb1NuYS9EdHQ5c2xrSGh5aCsyejhRMXlCZnpkTFNhN2kyY1RQdnloQjlMUHFFNG8xRnFLV083eHBYUW9qV21OWHdKUFhrT2NZMjBGSUJ4QnpYTEU0cVhJUDVhQ3lEaXRhMnRRMWJoaGdPd0FkVklzY0NzYWN2emFqK2RsenlOM3Jqb1d6cHpkanRNUVRDTjc1akNibndlRnhYZk04dE5KV0RML0tYVktlb3oyTS9BUUYveTRUeDVIeWp2VDdZSTl2OUF5cndpUWo3QWtnV05DRHNoS3pMTk9zSUUrZHB4eHJ1cjV2WWFYMEtCYmJQWXdoUkRFSFl4STY0OVNBRVlyb0luQk0vSitpODZzOWQ4eElSa2FYeDJsNzVRSlpjZU8vTEIyd2dBK3Y5T3FSdnR3RjdkMHgrUS9Kd1lCeVJXWnBydGhpS2hoaG9zOUl4VVRHWmUxb2NCZDZHekR5R21YM0VTMUk0RnZEUjFXdC92UW04VjdTcGViK2dYSUJyS0VqOXp2WEk5dHFGRWpPM25JczVvMENMQ2VVNUdLNUtnTCtTVzFBeFMzL2p1aDlLVmQwdmZNaVhRQkxUU0Z1a2tXdE9JdWVjRGpOMTVjT3gzemw0em5uMDV3THhIbitldjQrMWp4eHI4S3hZMzZHK01GTndmMmRyZStkUDJoYzAvbXk5YTlDWGUrS0wrNTlJNmEyS29BeGtRK3piNmVvUEZSR2Y3cTZMbDRhaTJXT0ZodTF1VzNjT0tkWXBiTWx5bEtuYmdQQkF2Q3dGNEpVT1hEOE5WNWozS3N4bXNiNDhuWWRMWFJ4T3V3bG9lejdpZnVOMGFzSHRmcDZzTUdCaXpWSTAwSTlzRE9ScjJGY2x6MGwzbU91RFR3Zmg5SXZYc2k5ejEycm40YW1KdFhRbXRXZmVpWVNEeDJpcEpyNXJMVWJqN1M5a1AxOFNlWXpEVkZNTXMxUjRzMG1ZOEIybGpiLzdnUDR1Ylh4eGFZTnd3STNETEpYbXpqbjFKVnNGdm9LY016enpuUE1WT0pnMC8ycTFqR1BrZG1rSkJPempTOUpkVDEzN0dxbUdHS3pVcTNHaVFFZk1ZMXh3NHpWeFMwdUdKZGM1MzBNelpyOE8vdG9jaEZsSERNdnBEMDFjdlBWKzR6clFNMjhacy83b2g2Nmg3NXZRdXpUWE90ZUlsVHgzMWIrcHNtSDFOckdmcWNpM1EyTjc0c1p1VlJndjNOLzhHbVRuOWl6ckhLTyt2MFcybm5BZEZLNk5PYUhUaSs5WS9URHJuTVlsKy9lU2wxVGthZi8wak1lK0xZZWlmZlZkL1UrYmozQnRIOGF1YVlmQWZWZE1XUVdPK2xSTnZ4ZnQ3Wmp0elRiLy9IU2RYdjBaN3Vlbnp4aWljM2k2aVEwUnY4dllhYmZoZlhEL01OVnVXd1Q5MHRrTTUrcnNoNjVFWnVTYXdneWVlN1NtNHdUYy9pNmZ1aExpd0VrUHYvZjhmQW8vcnZhUTRUTGlNbktOYlRSSWUzVHZEdGY0M1d6WFRFTVcxL2pIWUdEdkN5VTZKYUo5dzZibmR0ZmM3NisrWTE1OGQ4ei9EdlFqMzJiV05reEM1cThZTFJtQWY5Q3p2YmFjUURxTGdXUDNNTzlqK0tBUDhPc3RTbmIvK3JWcERra0xyWFBHd3J1MG1hdzJITmtWREdJamZtN3B1VXdpYU10ZDcwNFd6amgrUzdqNWQ4YnQ3NHpiMTRRbU9MVEFHRFdZdnhxMzljZnJCS2dyOTFGbVg4WkF6NmRla012NDJ1c2ZSc3ZaZnFUbzhmT0Qrd2J3enZtZVEyN2Q5bm5TM1pmeGdVQXJXK1BPTng0UE5zdU1zejFPMXRwZTE5VFRmTVpNYyt4Y29vcjdXektMQmNRUWNUZG9WbTd0NWowVTE2QUZGRm9vZEFxTWxuejBCN21aSmlnSDlON3NPMmdNUGJRMjFOMDZjczNVRU9sK01GSktUNGozTC9yTS9sTnV1c3ZUSnlnaW8xTW8wMEI0bWJvY3JzRkdIZUNJSXdnQVhLMnlqbzZqN2dPbFVNVk9QQWZadmc0ZmxoYjIxQ2dwMFRkdzk4Ly9mZCtrQjhrNlN0YnhmMnZMYml2SXlRVlNwSy92L3YydFJOMjM0TS8reHlHMlA5R05xUlV0LzljbFRMNFBkUTI3MVRaU0gyclhNbHJYT0FqcGJXSzYxaVBYMmdRdFkvdEdpSzZHMmU0SnVsR1FrNnNWdlpuZlRpS3NUZEhMdGtEbVE3c0xLMlFtTTNXSmlmd3BnVnpqZnNvRkRBanFtT3Vna2owSkUvTlBDeDdVeDZ6Ujd1M1hNUW5mNW1HNE9hd2ZLdjVXWCtMQVdKcXhPU3huZGlRdWt6T2wwT3l4WTJKMi9lN2pXUnpHSnNFS1J6blVtMTJ2LzdleCtTdU5UZEFxdUhUVitWSGFpNUo3OTJrWHRDbWJWTHRHdjZ5dFpISExoWDNrZmUrMDE0M3Z0eFY4YTl2TTRndGM5SSsrRTNQWmtiRStCZzZvbkZSdGhXb2Q1NUpkazBHb0dzVmhwb3FSMXRuajcxWC9ibXVkWDc3elZNcktZMWY5cHNIY3ovZHY3NGQwZHdNcVU4aTNWMDA0ellQYnBnQWFiR3Q3QjN4MmtHLy9YUWhOZmszZ1pTMjZpc3dxc2lNSlZveU5BdkhwUGZoTXZlWDdPNS8rZHo3OXo4Mm4xNGRKbURzcWNrR25JSjIxTEt3eFMwandkRVdtRUpOcE5ERFFmOWR2VS9MZTljRWdoalN2N1JQeVROQmVEVUgvSkdvL2xuejRhMkErWVdhZkFpMWRldTZva2h2bHZLWkRJRmw1elhYQXJPTUw1M25WUDlNTk9NOWNzeGMrMW5PQ25IMGdXYWJudEJlK2hIVlJhQjJ3RVQ2K3hwRFZJRlBYSk9kTUV4VjBEbk52Y0VweTBGb3BOTVc1NGE5TUFqN2RiZkF2UEgvVmZ0QzFIR2tkMzNQRVhkMjZEYlhPS3ZmNjd0Ni9BaEgrRXB4UzRSa3E5NnlEWS9HWUN2N2RHNGthNnZFajNXcm95VVAyTlhQak8rYXZzR1h2aHkxekdXYnBLU0p6eTl1czU0RjhtU01ib293UGRwNTRQb3d6OWVyYjhpTFM0bGhQT2xldlpXekRnWFVkT2tUalhSSVhvZEp1dzl3a0sreTFEOHlOTjlWRmMyMkt3YVFXRmx6WHJwQythZWtWdEpKRkUzVFFva3BOcmZBdStETzl5dm02Q1FmR0ZvMmRvYlJuZVFUVVZsREVNa04yVytrbTdQc2ZmL1k2aVBseXJ0bkxlUXQ5cDBQNVhqODd4anozNnVFTmJLdStKV2Z5ZGE3MUwrYlV2MGFPVUwrR0cvYkh1SWxNaVVIUWI5bHh0RDdMVWNWZnQ4OCs5UzczcmxFNFIrTzdKQjE1QXpmK1RLVXUyOERQV1BwYy9malVZbEtlT25xdmZ4aE5SNytKU1NuWUU5cFN5NktGcVpZZTVxMWl6Zm1CT2MxOUg3cG1ITm8wcm9QbWhDL1o0OGc1STE5OUdXYTJFRjVxSXZ5a2F1dEtLYmptK25sZDZ3QTBQVmMrUzgrMUkzQk9QMUQvMUJVamJ6MEdHMEhYMXlkczlhQWhCVlVUSjN3dVkzUGZIdUExcU83bUR1Ymk1cjlYK3R2bkNsVzNmRnZXN2diNEJqblEwZ1hvTW55QXNLaDViRy82RjVlNTB5RTE4dk1pYkptRnRsUGE0bG4zbVJzKzF3UFh2R01MNnpoY09jNTMvanZjNzc5eFh0VE16OUlEYUo1L2FrN09WNzlvWTNJTytTbmZJZ1UrcnN6OTdWWWN4YTVCVzExOElDUmcyUlpNak5Ib1YrYnZOSU5pbWkzY2U3ZlJ0RnMrNCtGNWc3VzFIVDg0RDJ5K3RKVGFybXVCYUFwSUsvUzZOdHlhZTZYak1MT3Z2anV1SVJJdnRpcU9LbjVUKytocjl1ZkdPb1B2UHZyY0VCdlZQRE1qNklDV3M5cDFWM3BHRzdqM2tYLzJ5M2RYYk0zQ3VmR1IrNUw3M0p2ZkJpS3VXeHo1Y005WkF3RlprSFZXQlJLdTVNdXppWTNQY1dkOVBQMnVmWXEwenM1M2pWci9xL1MzNzdOVGErc1k0TmFhMnR6STE1OGY1c1p6alhSR05UcUVHa0psNG5QTU5mWGkyMVFiem55cHFhQlVmWFJwc1FnemUwdzFPS1kxUFJ1Zm5hOVFRbkdUSmFMeHd1V3U0dk9DTnRmQVJ2TjI1N3d6UVE4TGl2dFErYW5KTzM1NmZLMWpxSFYyZ1JTMVp5M1EzbHFOcGM0aGJGa1h6MGtQMGFDeXprNkJkRDc2clhRYVlod2o4dGV1MGNCWW9CanJXL0p5SDNqV2h6SHVOK042amhKZ1hXbGpQZnhHdnFuWUVxeWxlOCtKNnE1VmszL0huNjFRZitEMzJBYU91dlp0V1F5ME04MC9WZFk4amdkbWgzQmc3d0tWZ25OdXRSbzNsZU1aVmNVSFlnSkNwRlRqNTFNYkhVamlObEpLK1ZoR3pWQ0h0ZXdtK2IxMHRDZFl2cWNZVi9ZdlRlOVdtZnZtOTE3TkhYVWRaSjFycEtYTHFkTlorV1ZxcE9JMVlEMTR1SUw4MVdkUTNiT3crOTMzc2ZUcVdxVDJEZXZyWncwYUIvdkFVUTkxODhyKzF0dkUzNmhaUSs1L3IzSjNhNzdMZm5MMStaMUxlUFN5OURDVWpFVW94ZXVoMGwwUG5Sd3dkcmNGditGYzhMVjBBUnBCTFd2ckNlTFJyL1JVbHA3Sk5kYWZ0YWUzeHJQdU9lQmVsOThlMS9vekpsTXZmcXVHRWtHRDMzOW5UQVgzdmV1M0owM3poL3MwSy9hUDJXVDdDZjAzeU5UZDJER3hkbHN1aE5INHZsVTZCeUYrNzI3aUtsM0VLQjVuNm5MZWloWmhabDNoWEhKbDVPTWxjK2NNY2FvbkxZRENvbzRpQWoyM1BwRUQ1OUxkKzBuM0dMUmtZU2daMndqT3BOV1I3S3VqNzFyTFlZdWp3OG04MkxXRlAwQi9pK2xZVm4rOFZqY2VTcDFUcEhTU3VXdWhjM0hMcmlQWmduZnAwSE1zMTVvbTEzL3NlMWdQcSs3ZC9HeFZSNitCNHJkM1dLOXUzSGxXeGh2Zk1UZkJwWnNZcXZ4cXFaMlg4VXhVU1M3cG9pdjZYays2aWFzOUpjK1QrOWZURSt1UFVPdXNYQW5XenBOekVjNnVLeVMxWSsvSzE5ZEp2SHJXN09WYyt4bnI2OGE2VnZvMnNOSXdheStDdnJyRU9uUWNHV1IyUG5xT3BYak9HZXMrcnRJeDJvUHdEcG9wUmtwMzd5dHlvQ3RpTmlyK0xrSy8wM3Y5N2ZPNFptMkI1alJvdWs2c21XWE14RTV2cXRwVHUyOVBYRUY5bWE0NjluUmxxcTZRamw4bit1cE5TaytodUZ2eDc5LzA3cjY3QUtvUFhUVlVxNTlPWGFIOWF2WHRhWDZkZmJmcHUvVjFZVFpXRUtNMlVhS2c5ZTZJdTFoUExIN2VFcjBuZEhSRlArbUpITG5USFdqRkJmR21kazFYbjkwYzJiWTVzMnpqZlN3YTZ0aTJYbWRMSVhsemJFeisvTUZyekZiMmVOcFBlMk43MUxteEppNitLKy9tanJtQW10eEVyMXViMmJ4dVhodHJKZXluYWdjazh6SjNaU0hNOTJ0dTR5VDdFQTJNTmhZZkdCOUNLYTdadTZ5K2Rhem1UanVYeUhsQzMydjJONnBueWlMTW9tdVZBcXU3MXdlbnVuZGE2bjFqNFVuN2x1Y2FLNndUS3A1UWpFcGd4RzFkTXpmUTIxTzdGOUI2NjhQYUdUb2ZzMDI2S2tZdm9GVnFIK3JXSk5scllBUEdRbWZzek5JWDZ5SnJrOWxaYmY2OGVhcWRwenA3N1RBQklLenA5ekU3LzlGMVZjYWZjTFdHOWphcThXR29kcGF2ZHNEL2ZPc0pHME5acEo2ME9PcUt2cHIxTzMxWGFNdlQyU3hCNTNJMDBHTTlFUkpkTWNJZzBldHRWL0Y2aVRIWWMvdDlFUXluYXRTd1o3WitBdWRoWXZEWFVQVDRkU3JFK3JLYjNKOVBPWDNEV21EeGJHWDNKN2I1UGhiTzlreTAxRm5hNmMxV3RtejNPNVBYaWRIMjNWSHlpV3RNTEZzZVRXYW1QTHNLU2FuL2pvUFVHbW1vbmJlZXBFTGR1OVlXYWY3MlE5UlI3S2R6REFkajVBTUxLSmFkVDdqNmM2dFNaem9pM3pCY3A2ZEFTZytSMHI3T1AycGpXb1lZSk8zcnZQdTRmKzA3YmFuV1BsQllNbmZlMTQwQjhTbTFDcTFmd2NjQVhmQ0o3M2cvbXZlcXYvV2Q4d3JxMjBTTWhXRFJjQjZnTXI0Tk1mVm5mY3BpVHFMbUxMZjg2VW8xSnpQemZXTEwwK2F4bVAzUUZlTVFYS3I3cHNwWmN2ZitMMVBCVW1lbnVyMkwzL2tsNmNMYU5qUmNpOU43bTg0ZDNNOVBGQU9CalhIM2YzRFViZHVoMGwxRlNmZkg2MFFXZzdXMURaVHVpaUJvNDNkWC9HQ2VCc1o0ajU4TjZrQ0hqellGR2dvSUcyeDhSMTBGR3VnS28yZWdaM0xWSnR3NXMrdDhvZ2hqS3E1aEt6cUcyWVByUWpCSEU3c2oyN2FsZjNaUGhLU09QSkhzOWl5enM2YlBmUmdSRDMycTFrc3R2VzFseiszVHQ3cG16Wm9hT0gzZWZLeXNvZSt1NnZOeEQ0MjFwYzJkY3dNdFg4NzdRZTM2cks5T1oyTDBPbHRaNzlZcUhWbmoyM3VpMGZlZ3VCbk94d3J6K1c5ZVU3WCsxYjFuSGRlZG5UalBNUE12Z1NRMDJFT1p6dVBRZDlNN2R2Tmo3U1B3N3YwYnVWUStEcERzOWdmWDNkaHp6V3NrZFM1K2Y1Kys4WTI5eXFNNXc0K04rWGgySGszRjZOMmFpV05iVFI4Yisra20xdGRwR2piYjZLWXpuVHNYYVV5aXZscHBSNTJ1VkdYYXQvczN6NFdHMmduYUYrTlpSNXRwUU4rTzV1cFFpNG0rOXl5aU5acUpIM2dXRWkrSDZ4VWRqMWpQMnNkaURzamFGUVZ1YXVqWDcrMTc3ZnlaczNjMlZkRmU2a3hzdGZOaXowVEZzdldiYy9vSmV1azc5S0Q1T2l1Tk1kaCtGSTlPWnZhTHJZN3VQaGZ4UlM1dmt5Nk9lWk51RW1RL2srbzRxV0trTFhxQmxxYkIycnJlRys5ODNMck0vdGo5TTRxVjFWbjZpSzE4YUg4THdjRHMrYTRoTko4cGpXTTF0T3oweTU5alF1cndIM3lXM3RqdU5NYU01YjF4MjVaYXUxQXc1YkZrWHlMbHRwMHIrYWhDTUJnZGZHMHg5bHhqRWJnbW5JTkJwYTVaczgrVjR0NncrZ3RrN3liam1UaDFCZCtZOW1lUHJNT2I1enhhZzFhZlB0dm96dm5lWkNkdjF3anFiWmY4aXRick5MWE44Y3FlZk1hTzFtbEhrNy9kc2FVUG5VY05PWG43S1JvWUM4dHBTM2FtWHFxVTlkL1R3VWZmbVlqK3E4SGFkenpYZUtESG9xNzJjTWQzempIUHgvQ1JNUkJNODVGbnBWakttcnhWR3F6OUJ2LzVKcVlsZlJ0WUYyOW1INkxVWDRScnN6ZHRYSDhFL3kySWkxQ2xMY1IzL0t2dnFNWFhqbDNOSEg1eUR6NDRUbFBDYjlOMHhsRC83b1l2ZXIrZS8wbGlrTHZQWElOVitPQWV2L20zaXNSR2pjL0M2OTNYMmVDS0QvSVZrZ3psc3k3U3pOUFFwVGJkRU1PNnZJRld2djV2YXZHWDFscVFkWVRmcWRYZXhKVzIwTm5iMlUrMVZQTFI4N2ZNY1poMWtqcWJIcFEvTS8zR2VucmpjMzFYSGZpOGpkQXp1dVlWOEZ6WjdUR3RHWXZuYXMwSGNKNkxvRytsZ2FhMmtXME9wUGFLMU0zcjl1TnU3dnBwa05uWFVKUXZnV1NrUTR4UjNYck91ZTg3NThXYmJhYVFTMitnOFE4MSt6SjNNR2I5dy9kYXkybVlwWmc3N01ZOTlJdjhHbVF6eUxlZ2UramErUmhrVVJvbXNqRFgxQVBzQjBjRVhzc29GeXUrenJXT0dHampPQndZS1JyclNKSFhNSWFFUmtMWE9waysyQjREeDlqNkU2RDJoeHdqV2hmVnM5WGFCbzU5akZ6QS9oK0R6Q0tNQXZMQzE4Ym51alZWbWJOSlc2Qml6R3k4Nm4yTmEwVHluYmEydVBpdXVRbWs4NnJaM2xUWFV0aXljZjFVdERaaFpxT3gyRFdjTVpubnBMdklOZExQM3N2UDFHMHdzQysrZmZkZTZSdmxtcTJ6YVhnT20vSWtlMzFnYmhyL3Bvakw1ci94T1h0MHJrWHYzTnk4QjFwbjZUa25xT2M5dm5hcjYrRUxjRlVzM2tXK2ZDQ0pFOTlSVi9NN2RqTE03SVd2cGZ5Y2ZDT094RVJ4M0RHd0FlKzQ1Y2ZrdTdCV05lOTNHMWRYTXg2VnRhRTEycmxtZkd6TmN6VGEzUHA5ZmZKZFkwdjZoemdiVW9mdnJJN3YvM1I3V1RlKzdQbnV2SE90dld1V0dMdFU5MVc3MXViVyttdWF2NWc3WnpITTdOa2NlamtXeDBBYmYyamQvQ2ZhVFA0OVhPbDg5Q1IxTjF5Ym00Kzg5MFB6K1ZBY2U4czJtWUxuR2tMa3lzMDJzMlV0d3JVbGhpcmVXOS9ZRzBGdCtUVFMxRXMwc0U5a0xMNGFpMGZ2ZHkzZDU3YXRMSTlETlZZWHZKWThEU1R6bCsvV3J6TXE1OGZITGw5aWIwdlA5bzIrYVdYTUt0K3R0K2RWZis0RDkvZ20yMVo5bCsveUJkZmxmZGF1L2Y0WCtrVzd1ZU9uWGl0ZEJwcXRCMUxuVjkyOEJGcWErWTdaOXFUemQrN3JtbWY1blZpeC9aWGpoTWIrR0xuR3N0eGJXeWJ6ck9SRXZxMVhpcnZuMTQrVFJEaWFUZWhISHRUamltbU9oZUZ2YW5NckltQXdLSWFGdy9OOVczMjhwb1pkbDM4aVRGakEwZkNqQnBkRTVyNUQ4M3pYNGVtRE9mS2Fad0pXdi9IOWNTcHpvME8vUDNDNHQ1ZitwSDN5WEd2VGhHTUlXM2J5NEhXdWtXT01tNitWUDcrdjJabm4ycnRJRVNrWHh1K01hUnBwT2RZZ3YzWXpKcHQvcDhlL1Z4My9TQk5QbU9mRSsrM25mNndtVXE0VlA3Wk9QTW0rUkZxYXpSMXpFV24ydFc1TUNDc2N6Ti9MRFd3bVhHdFFtNE1GdjMwcXRYZHYwMDBjRFF6Ui80WTZrSjExZHBFanBsUDh2TmRiMS9tMkhMbE51TzFuZUo4OXdERlc2eS9lR285YXlmdGM2NmR4RFhBNWM4WWZWTnVEOTJDOWtyc24vbDRENXFUQTRkSEVSY1Z4ckh4UmoxL09rWFMzQis5bUQ5eUhlRUM0TWJuWFl4anJPUzRENDRZcFQ5WGo4Y1QzOVcxOVl5OWNiZS9XNy9YRllhejluOU9qQ1BmNjdaelpyVjdMT2t5dzBrbm16dFBSeTlRS3hyZzVKOURRazFWclMyM2drUXBiWml0b0dTc3JTM2NOK0lHNnZwdngyRGFudHRDWldEMGhNWlQ0cDY3b3F6ZVI0UXZrbVdpNlU5SG9ZNnlFM2RHVFZmSXBYUGNBMnlGWElzK2cyWmVQeVNCemZGRzRKaTdEZkE3RWpxNVF6T3crZlVQdlBoVkI2cGlzWVlMRC9aVFBud1pyNzZadk8xNmxNOEE0MjUyK05UTnM2L1FBWHNjMURwNXJ0SFhGRU1JMStPOEowZTVCNjdxSUZ5QzkxOFBNU3IyMXZYN2NOcXcram9VVDFORmtwazQvaVBQNWVPOTVQWFpOdHZyV2ZRd0w0VlB6azI1aXVLTWZ3OHZQODJnWkhrYkswMm00N1A4d25CQ05JVC9HK0p4dmpaSWNrNlJYc1VYY3VIMHBIbTVRMUlIanJpMkdrcDFqUDVYdXBsd0hyb3R0bmgvSEJyRzkremZlK3VtcnNDREZPUVB0cklmN0VuSmJxejZBcDFQMFJuODlaSHhxckovbGxLOGovU3ZlczdRbkhyVWZ0Z2ZZMDc0OW9kakJhVDlWcDZuMVBoRnMveXZ4ZG9BaHZJbVgvdGp6alFWN1lxdGZpbk5Ndy9YNEkvWlBkVlRBODZtekZHTVZ4NEw2SGMvMUVQN3lYZzZzeEZwZnV5OCtzcDZpVWd6NElJYnRNL3V4dW1lNkQrU2xIdWlOK0pMZW1vL2h2dGtjKzY0aHpCMS82MG1xNE5manFSN05YY0MxYW5OMW5IYmdTeUtENy9JSlRHVEQzekJ1NjJaZm5iWVFva0YzejJLMVI3RmF2ZFY1dE93L21KTnQ1aDdtWXNSaXZ2ZE9uTk5vZjI5elQyMTl6VjRDUHJVK2ovQU5IRWZjUGU5aVl1TXlWOTROL3FmdUtzanMxQitZVk50djdMdkdmdTZhVjZLRzhPTjFVdkdQcFByUGNqRi9rYjg5eDkzVjZSazI3S21jbjdaejBSWHI0RHYyS2hSSkxzaVcwekFUdDFUNnYxQXphNlZYcjJYdEppVG5VY3RoeS9KY1VFZnJjVDVrY1U2MTZ0OEwreUJmSjNmR3NXeFhPWndqc2E5RHQvaE90L0pJZDNoSm0rYm45M05LNi9yeFo3SFF1c0ExZFRQT0tYTHI2SVJieDl3RXJlaWdKNmRZVDhRSi9MZkNoM0JuUFpYMU1hZmJSelU2czFEQTRuT1lTNk42NzdEWTAzUUlnYjlhN3J4UGpPaVJIRmZWSm5QUHV0ekVvMjRGdjVNTDE4VTFPYWxhbnVpR09TclVuUjdKclpUeXJyY3h3NHpUeFhPdHhmMmNkMFUzTmRjWnpVeTBqb0IvdTc2ZlQyYTFqL3ZYTVVVdnJidld4M0xCelRhbGVWOWo3Z1B4K3VhYXkwZzczZUo0dXh1WGtXdlFQTzVOM3JnWm4rTWw5aUt2dDNTVDR2bGl0a1BKRklMK3gvZnY1OVptK1g0ZlhaTjE1M0xwbWhsZXJ4UFFYemJiZFhYeCt6NXR3YmM1aHEzeEhxMkJSMm81d05rTTh6NTYzTWRxeEMvZDBGc29yVW1PaCsyTHh2SFB5L0hYdk10TkcvOG9CL2pObkhGVk4rQmpOb0h5ZDZOOTNpOXdROVplOTVabVJ1MDFQdTNUVmQrTnJ2ZVNEYy9YK0tDaHRzLzNGZldxOXY5M05KV0diak9lZ05tclB1Uk9mK2k5YnN1Y3pwNi9JT2JrM3BuNGdHNmVvNjladzVkYXJOZWcwSHRlN2FlNmtRT2Jsa1dpUzF3MGtHTzUxdlp2N2ZtYzIxMXUrZy8xc0ZPY1dMRk9YNC9EYU40bm5EK1FjN3RSYlpKVHhmODcrRm02bmpycXFTYW44RHQ4cWptK29MdjU0ck9ETzkrYjdEeWNGK1E4cUw3WGlaNFQ1Zk9rT1JmNEFTd0VXanNEcTIxcEtYQmNQeHpUbHVyOWxmZitzMnI4N2tlNWV1L2I4NC9sVHorSzUvaGFHeEZwWjlaSGVzZE9zUDBGTmRUcEpoNHRaOUxOOWNUOGVYUG5PZWsrMTd6Si9iZmhSQzRwbUZiMlk2T2YvMEYxMGIzbldzczUwMW1xNm8vVWNQN1hhcENVY0ZHTFdqbGdwVUdiNmV2cjIzZWU1MjR0L3ZSWWprcStobVVzdkVaNElxSGVhTmZsS1M3QWRUZTVFUzlseFd2VTFILzJHS1A4MUJ3Yk5POUhQamRYOW5NdnZxdUt2bXZXeHBsaHl6cUdXWjcvdUlXTG03dmJ0SmxuNHRaOG0wTFFNb2ovZVY3Z3VpU2I2OUo5YnMxNU4vR2w4OUhMMUYxUlJ6RGFCWkt4Q0I3TTE5WGs4c3Z2V3RwRHQrWVY2KzVaN3VLRTRyWlFxbW9GWUZ0MlRqMDAxc3ZOUi9kZDZWbHFzTWdsdmNDSDQ1eFN6cVYwblEva2VMRWk2dWZleTM0S0IwYks4bzNWZUtmMmM0L0h4US9PMTIrK2E2NUJXZHlqTjFWaWoyRkpIZFp6NWEyZHdhd2NnK1VtanBiOTU0b3crUGh4TGV6L2NRcXNUTU4zeHBRWmlZQTVuYVd2WmMrZ1l6NWh6Lys0Q0gzVHF2a2ZwaXo3WWIzdEprL2l5NWt6OHJWUzF2VitlQTV2YUpqZjE3c3VYT01yUGZ3SDliV2I1N0drcDUxN1BBT3JIV28xekRuNTNHRUZxcktxY0ZucGtCOTdHam12MHJHdUxOSndVdjg1cXB3MDVqK2ZNRlZYVnRHZjJOMWJ6OGQvN3I1R09sVEE3ai9UVk9zcy9MNnhDRFQxZ0tJVzlGelBtbjIrT1VhSzhRS0tSWUErMUxmMDNyNUxrRnJPZVJaaUZiSmxjMVVvZjVaYjM2dDZaYmZlR2VacTQ3djlXazM2NFJyV1FLeXZTa3pvaWI3VmxRV29tVDZUYUxqSlZnYVN1aHBuNnM1REo3MXJURWsyZXdKZXNqdmFQdWRuUi9FZUtmRmliWXlRck9sMGEyWnFMMy8zY244UFkvV096ODUvK3hpaGNYVEVVelJZUGZhTXEzVDhQR0ZydWp4T3hxejNnZmNselBUMXF0SzN6ODVRSXA3UGlsUEJvK3JRTlgrN3RTNXZYZXNybm10TXNsbTNubzkrNWh1aVRtNWZtTlQ3ek5YYlppUURkemY2SERmdXl4QXo1bEN2bmN1aVdzdFFFWEZXZ0dYNE1NdlF6ZmtvTTVvVjFLVFVpeS9ad3V4V04rMUF2Z1F0NitoSm5kMUxJcy9HWXJkSjJYYURvcWdQMjhIUDdiZEhiYytCM1NzZmcyMUpEVGIvek0zOUJrcDlaZVJya3hMazFrL2tENTV0emM4VXJPMWQwTDJsbWxYcmgzRFBqck9PWkJ3cVB2WFhkVjRXejZjd1U4bDRQYm9mNnJJYWhXajVvWmlpRkxsaVZ1bWErOVZIWTd2d1Y3TGQ3LzRWYnRidlNaek50eCtJeXNaY3JsM0pTanJ6OXpuaGF2bXNJUzg1RVJrM3duOVVoUFlmSE1uVWE2SGcwNk5laTFzdVJqTGZvY1hIM3JHa1MzNFhxOVp3NG1UQWxmOERuenpwd1JjN1BFOEp6MVAwUXgrYzl1UlVXT29UM05QRGRFVUdaZ3E2TjJPU3oySVlmSE0ydGkxN0ptTDg3dXVrSXdSdTkwanJJYTVFYy9MR3V5Y3RVay9hUGQrd2FMZnJqb084dnVoS3F2aldFMk5QVWdWZHNmNW81QU4zeFpqY3I2d0owWnYyMC9leGJjOG1QV0dWMStlc2Q4KzFuNHBycHNoWENqbzRsKzVDVjhRZm9MRlI1ZmRPZEpYcE8xWDBhc2JDMlhBRjFiYjdjY2VvNldWNHVjalpmTHA3YnN3QlExNU1QZ1pyTTMyZGpITXVGc2FQTTQ2SDdpZ2VYYnFyMFVRTzg3L25kWkk1LzN1bEd3K2RPTVpyNGJ3SldxYWdxNmZuVDJCMzk2SFNYUlg0aGt2OHJlaTYvT2VIcm9Wc1J2RlpKaGpyKzBrY2V1d1dzRi9DSHJSNVAzU3RRazlGNVhxZXBINzArWXA0ZERUMjYrWit1NkhialkwRy90dDhYdXF3dHVpa3B6M3BSRzhMelorNmkvVmsvTC8xcEx0SFVhQys3RjlNUlkrcldrMHkwWTB4Wm5OSFRIMUZSbXNwNzRYVDdLZTVPNDVINUo1TUk0emR3N3FnTXd2WkszU3U2Vk1oMWxQNWRib0srZjN3bkd1TUVPMHdiajNyM0xPOGFhbWc5d2ltV2ZPM1pNeVE1d1dlNFcvcGU5Qm5ub0IyVzJJMDJETTlrYXQ2TlUzN0R6eHV5bjNWM1llWDdsVlh4dWZpbXMveDdJRzJLcTJ0K24zNDJmNlY0anFDWHBEeFZEUm1ydEMycHpORG5TWEZmZGUwSCtIM0R1eXhqL1d1OE91OWNqM29ZL3cwdDNmSmpuemR2a3p1NmJHSUoxMnhXTDlUM1hqZTZrVmlPa1NKYkV4WC9pdnlWL3lXa1laY3hzdHRtUUk4TjlGckdqcmoyQkIzUDZqV3NqdkplU2R5L1Nhc3ZZVE9vOWNMK2c2SzB2VHphRG11M1h0Mzl6cldXZHRHU3ZlYzczOU83K2pXbnMveU16OEVIMnIySTVCMmQ1NURYMEY5UnVzY1FtbDI1emxnYnZockNFSExYczZWRy9zNHR5dE1md3ZacjJyRzRpYVg0OGQ4cEUvME1wZjlrRmRIWG5ydU9EWUcrOFlldTNlSFJPemwzbWRPaitaMVl1VzlRR3BuRWJueGMzUGZOMTFML1hqb2J0QWNWKy9ObngvSmJkK3F4ai82QTYybGw5T21zUzdQcllXT29jVFBqOXBYem41c3k3N0dIREp3NWlMQU9OVFk3VzQvWVZjTCs3OU9pNkxpTHlCN1dQRjd2dENlRGlmaUw5OWRmYjZ2c0hxOXBmZlI1eFBVZ2c0RTU2ZlUyZEdDbjFnZHYyMGpMZzVpR0xKdW5vditlR0wwZmlhNklxYmhwSnVNcHJwUWUzWlR2ZEFVZk9XVnJxRzFsUGVURm0xTmJpdnk5V2hyYzllNFJpcGcrVHE1MWg1dkIrV2Z1clpJUFdjY0Q1Mm5NN0xqbmh2OTBwWG9qM0JnYklQMU9EWjYvVC9lSitHMnVOK0tObEJYK2gxZE1jWlRvVDFBNzZJclh0WG16dnh0dURZRkcvZkZZdnU3T3IrT1o1WkIvSzdZU01qNGNINkxsYVdYc0dXNXlBYnBTWGZ4T3VrbTA1a0ttbVpXditOT2sxditZWU90cnZFUEd6SXdiK0d2dDMwcDdkSmNYQ3FhVEpvWTVMWXNjaFd2RVlTM0JDcW1yT0toaThKZjlUUzNmWUFFQk5MVEQzM2duWlZzdncyeThROWRKWi90L2w5Y1lQODdmZlBmTzMyekpnWGFmdWZrdWFyb2o3ZDV1ckVHZGwwRDg2MXhmYm05Qkd2MkZIdExEMkE2NWNKaUdkRFFzSjJQNGIvQzlMRGJ2LzM2MTl0NS8vWnJQVS8vTlEvRHQ5MnVhWTgvTHRWY2JJMVk0MVpMZ0Nwak9HajhzaFErREptbjF3bXl6c3AzelI2MERTdGxPaGFPVGdvK0I3Q2hMWlk5SkdPaldKZEE2aEI1UmR4S1JNSlVDaEZjelNlbjJORHdjMFpPVzVnNzZOOVFiTGlPbVl3aXU1N2d1Y2JhZDYxeElJM2hPL2pJc0RKZDBkUHdJcVRJekQ4WEtVSVNYYkVncFl5aHJpc3FyVWl2K1E3UGg5M1RsYTRZL0QyUzhqM1I5LzVrWU5JS3R6SHMvOUFWYTB0YUdpVHZSRlBxNktoUmx4U3lhQ2p0Q1JRTVhETWRycmkvMTlCd2ZSQktlNDNRMmFPcGNKUWFTalBRSjlRNmxNSjB4UlhaYWdzMnhzQTRCcTN4bjJselYySFdPVVkxZG5IS1FGU1AycVBhZ2szWmpqNC85cjRsbTFpMDQ5LzJ6dU52QUFQVnZDT3pGUnh3US9Za013MWJmeG9ZcW1ZTUhwWEJ2MzFlUFRwR1lVdE9QYndlb0JoTTk4aW5uNHVBVTc1dy9Lc2dES1VCbkxKS3gvbDVhcVZ2eXUrTWJ3MllnOWk2MjhBSlRCbUFpKzc0ckhrNDdma2dzT1VMeDdJTS9Ha0N2cFEvUjlzWmhVQk1Gd0U2SDcvem1iNGZxUEViNngyblVUNEk0cWgvdG91WVJGeEwxYTNyRkdXaGJyL0xvekpRb1lUaUhWTUlXdnBONlJCNlJsT29OanVqd0M5b2pBZlFXUzM0amk4RzROZTBmMFdPZ2NZMWpUU2dsRHNPVy9MUlYwVE9KNms3cTRYOWNMejlCS1I3bis3K2RUdU1WUmEzM2ZETXZQaU9LdmkydFF0WjJLckh3NlRndWkwOVlBa0UxWXpldURaRExpNjlpUjZQcnA3SXU3WWhEVGRudkl1RVhkekdVSlM3TDMxT1MrdnNQU2M5TkNxSXI2eGo0S2piQVBBdGVDZ05qWFB2MFBjK2lvYWcxeGxRRTJhLy9QYTFJQ05qN1VBNWdwcUxXUjVDRk4xc1hsMWNqNTgvZE0vQy9DMkNBV2FCSXd3d3U3bHJDcnF5T0lWWmVvZzBMOWFUemNGd1IvQVR0dnpsTUFFVjJGVllla1pqWUtTQlppOUNNaFowemd5TlpkdjdnU1F1NXM3VHRuaDkrNHF1T1Z5YmtuZDVBalhmeXJncTFvVzYxRk11ZFZHM0RwNG4zUTAzVnY4ZTFsMy94bGgvNlh0ODJYMTBubUV4MFJXRHp4U3o4Q3BYWTZWcnlyemdzQkgyNTNUdVJBZmZzWEFtdFBpZEF3NzcxQjN1WXJTdmVtOGttWlB1eXBQNmo0UmMwTW40eFlpalpiZ2VzN0NOVnBjSTF2cFBDYkhLbllyVlhvcjY5QTQ3SWlyaDF0ZjFnbnh4eVBUeFBvSXY2YkI4N0IyL0trUUNOM082aWVjdE8wRXVtdTlhS2JBbFhUcENNQmc5YzZtQ3BUZHBMM09WU1hUT3RmRyt1WkdPZ2tvZmNqTTQ5d1Q5LzNDRnF4WHZpcHlZU3lzTnNocGwzd0d3MFAveTNSVzdaN2dlSDZDcS9GQUtESzd6WC9YdXdHRWJ6ZmR2TkF2MmFHYWI4Mm9qVjBiYkdrVmlLNytQczBObytqRGt0dmw3ZGQ1d0xWSFhiMFZJcS9oWitUem9na0xneXliT3kxVEJrK0lqYitvbVdTZTVhZVkrVHN6THUwcGlxRUZCK20rejkrZVl2WnBNRVhwdVkrTTc1LzF3Ylc2RzB1SVlTTHZrSlVGUmh5a01YZnZrdDR5RnI4MXVGZEZQeUpUNHMrM1JTNW9iMWIrZVJQRFdmWCt2bXZHcEkrSmJxelNmcldCMGIyV0ZGbDdMMmthWjNjZnVkWHJ3YjRoMlVadUliTUl3VTVlUmxrcit6QUtYYis2MDA0cVFGbWNiYU1OdzROaUM1K1FnV0Z5by9Nb0tXL3dJdVFLZHg3elordUZtK2o5ckgvOGVzVnRocnRieTBXOXFZUC95bG9UQ25qd0ZralZxYU4wdDc4ZW5Cd2tpR216WTUvZnN0NHpEZy92MmkwbGd5SGxxUHdlU2ZnaTF6cXErOHZvNzYveG11OWJkKzMvRkdzanRWd001YlEwb3BrQUN5c2pNYTg3K3BOcGlkR3VNZ1N5cHIrN21qbm90QzdHVi92YmptL2NhQUZUSHpubUwvS1g3TFVCeERTbHRaYS9kZlgvUDhUTWdlUnVzQ3RmamZ2L2Q3NzFnN1lDVFQ3MXpCUkRGUDNzUjdJVFc4MlB2eGE2aHBVQytFVWpXdFNCMkF4V0FlM3VIM2lzZGg1bDk5ZDN4ZlVIUktnajk2UGZWUTZTbGVkdmtiWkY5TnA1elNpbzdLQkRHNExiQzJ6WmZEdGJXOWt1ZUgxZm1QL2ZzR1luYlBqRHVnQ3lZNWEydE15RHR0Z1hXbHAwUm9ONUh2dy9mbzc0QlBGUFQrRUVyWXMzWUhlaDNxd0pDM1MvWnkvRHN0cGtHbXIyTXRFNlJoQVhQdy9UQjFzQlBpVDBWL2N2Uy9aSS94NTVGV21mbnUwYnRlVm42MjNmYk5TR1F6a3lZKzgreTU1QktiaEZTVWsyOWhnSk8zL0xYYnZqTTdYaGhMVi9tVG9jUXJaNFhZY3ZFcWU0SFNENXI2VXcwTE56N0tPbDZXUE5abWlzSUpIRWJLWThRYVhlVFBKZWpvL0ZuRmRKUHpBV3JNbzRkY3dtSXA0K1JicEwwdXJyMEFMWFVJRzV6UDE0SGV6bm1xb2VsTnV2cTM2L2Z2ZmRyeU9zLzVEYzN4RXBhZ1lqMlJ3UEJweEJtNmRxWDdNdHZFTlYvZ2NqaHg0bXJHM0pWbnhJcHlJa2VTM3VBaWZ4MTluTzNsSC84VzhUd3p4SXhMRkVmTk81dEpoUjRVMFF3K2Q0NDhBdmY5WTdZUWtqRUZveEZLTVhyb2RKZEQ1M1IydjJ6MTVKcnJML0RSdGF1STNTdnk3ZXVvUVVWUGZ5VGhEU0xhK2RyM3E5cGp1cUVIMzdXa2VFUDY4U01xY2o0QmRsdzQ0QjhkTlo4VnZ3NTFJZ2ZNWUtKSWJMdFdlYzZYSnViV2xHNmk2eDRqdmtya3RTTFB4akJtZ2RDYThmWUJocUtlK1hsWEZNUHZsUXJkSWJtZHFHciswQlh4T3hCQVd3NE4veEVqcXBOSjVYckwwT2xXZWpaZDYwbEU2NXlyTlRQVkRFWWpNbjFIL3hlMWlpT3pScUNpbVRSdUFsbkNyRllPbjZkakRlUnBHNGp0Wk1GTGVQZDE5cFhWem9mQTJrdmhzcm51a3FHMCs2aDBvejFXSm1mZzdKMHo2TmxOellucTdwM3E4OWxmclN4dWtRKzdyc1IwQUZocEx1VmhrdmhWTGZtL0t4eklUR2ZNVU8rRC9LNWFMTldSYmlHK1QyMG5uY0lNcnRsNVhWTlk0Wno3SER1ZXkxYjBCVnhwYXU3ZU9oNGwrTHZCUFM3ZURUcGJsOHU4aW80MWErN3p3cVpZYjhtMm9Cb1AreUo4YWJRcEtpSUcxM1JjU2ZDTEIzckNUVEhKYmNidC9WNE9CR0ZZRERLeVJJNEVnd2dYaEJNZFpaU0VneUJOUWx5amFUUXZKaUxGdHFkUWhOMTlYb3kreHdtR3RqaUJyVUlHdFNNQzk2N3Z2YXpZUXh1Q1F5ejlkS2FhOUFRR3ppWDd1cTVRRmpSM1VPREwxc2pPalM0ODgycDVUR0Nac0hMQ3ByaURCR0lDTmE2S2tiMzUvbUd5Ryt4ZVJyV3RxNVlrRU9aMk4wWUJFNnhpRng3cU1ndHowbUZ1ZE5lNjVwL0RCTjVFV2duc0c5a3JWLzFnWFhVTlNObDMwbWVEbnF6N2JzR21wMkdTbGRzR0w5VklMWFRocjlkQTAyVi9LbXdlVzU0TDdUM241VTRKdzBRekpGdG16UExOdDVuSzNzODdhZTlzVDJLWDVjQzdKZm5TVGN6a3U3bXVXNmZKOTFVVitJTjF5emJtNnIyRkF0VEd1cXNmemJHZ2pyVmxSMjkxdmI1dnUzSDd6RFpkWjRWZmMvRnAvdFFPaStpYkpZMHZSc2pxM2hJY0JxZ0lqZEVXY3JydGJ2UVMydVZlN2EvZHE5cTZzcFh4QU5lcC9ycVRTTDdaeUQ4S0YrLzJJaHJkUFNrbTVEWWMrVzdjZndaNUhsUVFweWpQUUk1MSttR0UrR3VzWEZySVVIdmhlZlZEc2FxMkhsZzN6YVFOcFRzc05Jdk5vb3JQRVpFWHZqYWVBLzJlTkpOak1HZTdHMjU4NUx3UkVOLzFWZ1ZDV0hlSnpwYUozaGYyUHV1NndwLzZKcDFiRml2TjRSUEMrSVgrTnhkOFd2SCtnT2RzY1RIUWZIRDAvdWtpOVpUR2dsc1RjVitwbTdSbmhrQ0ViMTFlVVB4K1VXdm53L0lrNTFUMyszR1p0TysxVG9IditGdno4cWl6dTc4ZXAxMHo4LzFQZzYyai9IbVMrMUFKQzJBcUVxZkZNbGQwSDZuY3cvMm5XS3FKcFJvSlNjQ0tPOUZYaFQzZlVJSlU3cmxQVE8wN0pTM0c2eHh2M285bFgwTy9Da056NkgrVmQwc1BhZ0pQR0pUQ25ZN2NzMTA2R0NLeDZFakx1RCs2MUhqR3I2L3p4K3p5V0ZtSi9UNWRjWGd1M3krQ0RQWEJRR0tPemJqSzhiaXBxOUNTWlptL1B0cS92L1AzcDh0cWExMCtjUHd2ZFJwNzM1YUVvWGI3SWp2QUttUUVBV3lFYURwalQ3UWdDVkJTdWdwRUNBNjlyMS9rU3N6TlRCWGxlMHFkL3dQSExZWkVtWG1tb2ZmaXJBY2RLUmRDSG5wRkdGN0xyNXNOMXkxT2Q0NlhQc1VzS01waHhNWHk5R1AxSjIvaVM3T0FhWDltS2p2c2FNdnl5SEZ5ZWJTaCttcTYzdEtMdnFSdCtUMjlmTW94RHd3K1JqenZTZlkyUGNyL01UQS9sdGJWWFRrSy92dDNNVHluY2dMVmFHOEZ4T1kxZ3REbUhrL0hTQXYxVFdidEJPQUh2SzVOdTlOdVhpQWJkLytiYisxZkpaZW0vZk1BZktYbldUS3VzMHhQUmRnWHgvRjZzL1ZEWmZQODQzc2RmRGRRUU84dDh3V1pJaW5OV3p0ODNleG9QSUVhakZkczVPclNpZFJsVFlLQ3F6UHhiVnJhcEVQb0NveXAvYTFsZGN5MW80a3hzNEVVQVV5UjJoamZ1ZThRdHo2Q1VwZHN4MTVKVDJLRzV2S1g5cFIvM3pSeHA4Ui8wZzMyOHVaMGpsOG42aEw3SnNjd2ZmV1VBMW9ESEhTWGdUV29IRE1OamROalkyZEdNVlVjTWpkRkdMbng2VDdndjJTV3o3T2NQSnp6dng1c2d5ZjQrNnl1bWRLVzB1eVAveU1xclRNenZwOHhHY2s5cGVDY29nZENNWWUvLzM4MUh0NS8xa3NzeXMwbXRjK2Q4Mm1MRzJ3Q1pFbkhUVWVyNTZwVDZ4SzJGZThzRDhZZkZqYWxEZmlaa1JtdlQ3K3hUVnNWSkRsZmU0bnhOTFVjRFJWZCtyVExQc1ZlcEhabENhL0RnZFMxSlRuWmhpcXNWNmR1OUdOQ1RDVmVoMThNLzVZdS9NZDhaajcvTHFyOGJXS3prNWpiTWZuSk81Y3M1MCtUd0FZS1ozMU90LzB3Zzh0NDJmNlZwZ2VaK0ZBcWZsUHRNZkNUNHpJNlMvWGFqK0lYRXZIdGhtTmo4cHJUOEt5ZDhia1p4Z29YME03bWJIdjVNUDRNYjc4MjdYZmV1S1d6MlQ5SDNodFM5QnpuKytzUGFIekVsaGQ0aU84b2RjQys4dE5lUkIxaG05Y3kxV015RkgyQ0FhSVBmV0trZFRsbjhjZkV4dFRDK3hYR0RrQUdFNllUU2h1blpqZGg5RWlNYjFaNkZxamtNZ0kwSk81cXB6WGFmYTMvL2k2SU90RmpxSmplY0JrL1VGVklFYXg4eFMwc0NkVTN5cnl3UmRRNmlYWVZ0RzNxdElwWERQSXNJMTJ5WGE1UUFzTHpET08rVWhqa2RRWHhMcWVQRS91V0Q2aHNZbUk5WGFLNll2NHNmcktOaCtoTDhteFpONDJkNFFHKzlyYXRoeEViQmROOWhKOTdMVzA4TC8vdXhoQlBsaEJITmxYZXh0SVlxUXFQTy8xOWN4WDlvallHQlVnWEFtU2lUb1QzUkJIazVrbXpvcnVpL29raDBOSy83YXBMeDF6WEg5RzhQZUk3dTNoZlVYNGQ0NXNFa3liNjNsMTNrMTc1S2ZIUmVIUDhqaHVvajd0d3NIWjh4cVJYcW4rRG40UGZsTTUwbDFTOXorK1Q3cExHaGVqTnFlUk83SzQ5WXZHYjUvK3JqUzdheC9QUlhjUE5rbnR6d21RM29rTUp2dDVQbkFyTlc3MFhOR1lyWHBKVDU3UHFmMnNuTXY5c2I2UGpjbkVqZmphK0w3NHFMcWNDODNjNDU4VVY2M3NsOXV4MVVGL2t3RHdZdTlzL1BwbjdQSGVuSTlZMjhjNTJ6STgzdHZyNGkyRWx4elR3TGJseGJpcFF3QWNtZjNYR1VnUjVKb3N3ZG42cUxQMFVnQ3UzYm90WTBmakdCK1VjNzVsSi8vZnRrc3V4cThWZmVzbHMrZkxjYjIzeUwyM3hENHBRQzN3cWxFRTBvazhlOUlOekZ0VjdBd0E5VS9pWmh2Wk5PcXlVWXN1clRldVBuZUxyLytnR1BJdFdYeWF0Nm5INVlhV2NYQW1QS1pGYmo3aHFWMHlPRnlVV3pkalpuV3cyM3J1UVV4c0UyRWFBcHN4NkEvYWtKKys0Si9mek0vOG41RkQvNWZqMkcrekU2Nzd1ZWZyM080OUQyenZOR25uaGcwUXZsRjMzNVN6MStveXo3L25tRzNoMituelZDaGN2Y0hBNkxYRjZRejkwSHVHWk16OGN6S0cxQ0xTK200YWF5K2daNmMvZ0JwRk5jRjBxR0UrV0IwTnNLYjEzdTJsWXc1NHB4R24xRFBiREhJU3Y5VTBmTFkxdlpGZEh1aDlyYWI3RlFpdDhjL0txM0lFUlhtNnFnMGJPdFpIczN2TzlYWGc2dU1yOThxQTlVOTQ4U2MrUngyWS9SWFBVdm9TNTNpQTFzU2VRMmE5TkhCalBHc00xVGxYdDhyNkY2NkI0VCsvVnZlZVdiY3BsMDc0N25iY2pkWTJmN2tTNjc0UGxlOUtMOFJ0dWZobS9YTGx6aXQvOU9hK1h6OUk2Y3JkZE1OTHR0L1BlNDdHRUtaWFBBdlRleitKSjQ4R0cxeVRVOWRpN3hmazRwVzg1ZW02ZC9MV1pWM1lrQU4xZVZ5cmUyYjlTZ2pUdkY2K2Q1L2V1UGpiRlExZmp6M2R2TFB6K2E1Nnp1MzErZzM3RDdOeThNcjRQcmxVRzY1eW1lWU54VTg2bTI4WGJXdUNDekFSalBZc01aSnZsK3NlTHlKcm41SGZCOGZVQ3NlNjBKOTNZaDl0MFB4T2ZtRFBXNTNWZFI2OVRoTzNlMFBwaUZIWlN4M1R0Z2FIYS9iRkwrcUp4WHFoc0dkR0hpQW44bS9qU1p6dEpidXVvNnB6T0xMeHJwN0ZtT1B1L2l6RG56anoyOGhMblFzMCt2cjd3YzkwZ1hjV250Qk9YRFBRYkV1Y09LYjk1Vkl1dVVibnYrbE90YWZwT1J5SDMwRFBsKytGeVArUzM2N0lCcVlqam50RWYyWlAxTVhuUHUyUmZSUHQzK0tMaTczamlYR2c2TTduK3NVS3g2SWo0czhnVE4rMzVrL3FFMVU2eGJWWTNvMXpOejFoejN1bW9VSFA5Z2wyRk9qMXJkYzNOczZNM3dabW16dlhaL2JXbUdKTjc1VzJHcmFIWE5QQitwYTdVTU96Z1dlVnhTaFF3aTlYZXNCZ3JiUDFWYVFmNHJ1WDdOdlFJNTBhNktJTmRVRm4zOFNwb21PemphU3pEa3dlVFUyb0lmNDRQV01jM2VPYitoQnZuTXVGOXpEZEI0cGNCTEs0OVJTMHdEYkJWR2dydG9uV2dUVkFwLzM5NHRhLzV0UGZlZVpIdmY4Q3BmVkRKZS9lNGpkVnRuTmxIeGxGb0tERU5UWE1YNGNqV1VGdHB2R3BYdXBUYU83ZVRhamR0K0VRQUErQ3Y1TTVDVnJnYzZyZ3dLL3JwYmRpYmh6SmxjTTUvSWJmUXVmV1RYdEt1Qit2ZzUzREVacDd1UHIvUGZ6elAzODliRjJVejljUGYvL3ZBd1ZweGY5azA0cTZNS3dJWGtsZEQ4MkRoNzkvdUdnOS8rdGhQWC9aeHY0Y3YrV202V3JqYnVKVmlqLzV6MThQYU9VR29vdmMxSisvcU44Zi92Ny8vcWY1Mm1TVnYvaHozVTFEL01QNDNXejFzbm40KzB2cnZ6dC9QV3lLYlA3dzk4T3c5b1dIZi83NTZ5Rk80ODNEMzV1WGZQN1hRN29LOEZlLy9QWHdNczlRN0x2cmg3LzV2eDRJMml3OFV4Qm81RFAwZWYzODVXV2ViclE4OGVZdjMzNW81UUpIYitqMTlkTDVya2RQUXYwT2o0b2ZoSjdUMHlweDQvVGhiL2IvZjZHVjc2S0h2eDc4VlpLc1VuS01icEtodVlHUEdIOFEzdmhQUDNKZk5nOS9QWVJvNWJrSWZ5NU8zSEQrUFVkb0FzajU5RkRnVlgwZXh1dk5TL0h3OThNRDNtMFF3M1ZrN25xOVc3MEUrT1YvL25wWWIxWXZiamlYa0l0djZ3SE9pL3hhOS9oeXlNdEQxNXVqOHBWMDQ4YnAvR1V5OS9PWGVGTklxM1F6MzI4YTEwN08vU1ZQdTJ0dGxlcXIxYWJ4Mm15TkNZZm5PUDZmdng2QzJBM1QxWG9UKzZOVlFLN2pKY1NiZW9qVEgvZ2FpNGYvSVEvaXBnRitlWTNtOHd5LzFxU3lmLzU2bU8vajlTWk9RM0l3NUJDYXIzMm5KL0U4TDlqYm14ZjNhWjZoVlVITzhVZU9VT29tODIvYitjdExqQi9vNFJlZlB2MDIvbWd3OS9Ld3BNSWdEdWRydW8wc1IrajdDc1UrWGwzOW9hMDIzMS9tNjNtNm9lODFudWFsZXBCZzVTL25MLytLVi9CRTJXb2RiMWJ3aGhkdlVqZUovd3NlazBFdVAvejFzSEhEaDc4Zi92dGYzTC9hL3huTXZkaE4vNVBuLy9PbGc1OHpjZmV6MU4yNk1jSUhUeDRzbVc5ZVlwK0loQ3VrNFNLMDJuMS9pYmN4bW9mejN0cDNFZEJadWRuVHl6eVNJWEJUWFNDTi8yMmMyZTg3cGZrZWk1N2FNZkgvZW56OEYxYy9KeDRPS2xzRlRWWjZ5RjVXeVh3VHpmUDF2K0xWZnhFSjl0RGhCUjQvV2VPOXRmL2lna3pEREVNWHF6Tmc5aEt2NEhBeEFXa0VRcnV4aUo0akp0VmkvUHN1cW4vOStGZ3hyYTh6MTZmTHZPU0lpTmwvOEVtc1FmYlNiMTRUNHBSK3NQekdxNkRhRHg3TGQvdytsZHBTK2ExcStkRXF4WWQvOWxlT256MU9OL09YTGVaTHZPaGk1Y0ZHVHgrQjBLZytoOWZpTktRRWNMejE0L2ZKVFV6alpMN0tLWUd0NTJqdWs4ZjdCNHZOSkU2N1RYNDRsUjNwZkxOYnZTd1pYVkplWUtxQ0NjYlR2WVV2OC9WYW00emNqUi9WYjdCODUvc3FPSG9UazBkTjJ2ejFrTTFmMXZGNk0wL3B2WUdHSGhGMTl2ODk2SE0zTUYvaXpmd2JmdjkvL2pvOThRU3YzOXRuK0FlUFhtM1FwTHVKSHY1KytLOEd1L3dYQUxmLzliQ09EL2drdmlyeHc2bjArK3Roblh2ZnlkY3BzVC9GNjVjOHd3OGg1a0dJNWZqL2tqZHVhNXdmYStWbGxXZEV0NXdvbTc4ZTFzWGEzeUJHMzdVbHE4dnhYK1pnRlRBeDlPSzUvc25yZnoyOHJBaVRWZnp5VDAza3V6K281b0pIcC9xc29jWGdQK21QT0V6Y2pKeERLVDIvcjE0MnNJcVhZOE9DMkRsMGFmd2Z6Rzc1ZXJOS2h2RjJuczdYNis4dksyOU8rUkRld1BjYW4zMW5zbkZmTm5sV2V4M0VhaS9kR3U0TGZjajZLOUtvcGlicGEwM3R1bmx4alJYS2svbG9sYWViK2hMa1pmcEt0RnB2dWloMjEvVVhOTUlaTlpxUE54STdCdm81RlArWSs0V1A1djNWYXNsRXl0SEdUOGpBalZIK01wOUdML04xdEVMQnc5OXRzbmpzb3FjNWNvdkozRitsd1JwZXorWXZNUkJDK2NvNkJ6YXBmWjMvNjJGRHhFRDF1WCtJWWRtbFZ3MktCbWh5eVd3TEt1VWVLck1aeUE1L2ExS1RJMFJkSEMwRHpIdXNSWmhtMmNRbkgxK3ZmbXdlVG5VRmxoQ3BHODZUZWJvcEZlTjM5OFZGYUk0ZUxpcVRsMk1DK29nVDVvOVUwQU9LazNoRGQvWXkvM2MrWDIrWTFGdjcwVHpJMGZ5bDJzTTZjbC9tMzE5VytJZTBTdEl6anlRTzVuNUo4dXNtVzV3STQ5UHRmcm13M1JiSFZlTHc0V1R2UFBjSzh0cXMwUHlGWFQ1K3pNMHFXNkZWV0V3eWZFSFNLbDF2WHR5NDVEcmkwRXcyTCs1bUhvSXdlMWtock05bXBhZVR1UytibU5oZDNEOGxoZXFOai8zejEwTytubmUveWQvcnl1T2htSzhmWG1jRk1MOXcrb0xsb1YvU24xUWFteUFucUx3RFpyOWhOMXozQ3pGamxjS1RDa3lxVkpvdlVpbTZKa3F0V3dyckIyMlZ6aDlPM3BCQVVKT251bUs1ZEgwZmk4Q3pKK1BtbTFXQzM1MDBQanRkTGVlVkNYeWtZdWg0RlBnRjBGc3FNM21QMWNpOURsbkc3Ty9nakR2Ry9kUDBPSTU1QUI2L3YxcHZKa1hsS1A4eWc1disvWi9yYUk3UXcvMkNnTnJsZk4wbWYyemhNd1M5LzcvNEppSUp4WFBnR25JSStIS1VlWXA1cmJaZmYvNnlrYnB5ak9acEtWUHdhNmV2UE0rTDB4ZmpIN0h2YnVZTmJSbEVXUFFtNithblR4MmRZeS8ySDhiYmc1Vkh6TGhOdkowL3pkMEF4ZW04bEJsZnNPdzVNajFPQ1BHOExmSlJWc0E1amYvNXRlb2xwWGtuaVRiRk9oRzMzMHV6bmRCazdTVk1MU1Z4Yk9FNHY4OWZrcmkweU44cUFwZ3AyNVFCSjQ3SWIzVzBqL24rTWovZmQ5ek1PRWpjaDcvVEhLRy9IbjdFeEdJdjUwLzlLNXFqSkE3VDFjdThtamFsRnVMWXRuUkFKZkFMNkhyS0FNVXhtWVdCRUNFdkZ1UEFSR3NIdWpIRm5XMXFMN1laSUw5NGZGWUxjZVpDdFlmRyszMVNBYUwydFpWajd0ZXFFcXc5UVEwOVUrWnNJY3E4eEljS1lrK1JPZGR5a05xSGJFL3pmVVhPbmU1cW9TcHQ1QWdFV1pvTTlUTVMxNHFRSTRrdDE5SlhxdFRMaHJFSTJSNVY2ZVRPUk55eFBhaDlFZm14Q0JOZmh1RXExMlh0eDZ5bDQvM2c1MzJpMGVuUVdHcFRWZEV6UHgwOUQ1TWdDNlN2NUc4RnBWN1NLWnp4S3JmVHJCanV5Tjh1VkVrT2tCUzNWMDZCUHh1bHRkY09RZks0bGVKUk9LYVpWRlVaUkRaQjhFdGNjNC84M2VyZncxUnIrZDNWdjRmSklITGgvL29HLy85SHVGcW9zaFA1Q2RvRzFpaWN6SFRaMzYxeXZ6L1l1b214Q0xxcjNEVjFaRSsrUGovSGJjNnp4TUlUVm8xWm8zcXYrelRxL1NzSnFxdjlMdlUyd3drWDJwYTRHNXBsUVEwVWFnelNBWElPNjNCY0ZvSjBOOFBwNHpOc29VeThWZGRObThzbkpCRVhUWjRuNGhNcnFKSENyUDQ2Tk5kNXNiajFvUUdTSmxVbnU5Q0hHWWx5N0Ntek5SeDlTeTljYzhBSGlyRlVGWlFQVFI1NVpxZVlUOFNGYldvclp5SW1Ya3VGNTRmR1JqcWtaQmlMZzBEQ24zbUVadGJBMGxqRDNpRlFPb1V6SVdPUUNiREdMSVE1Y2hNeDgyanpwWk4wQ204Q3paaUhvRC9JdkNRNERDVnhaVnZheXJGR2ExWFo0MmZEcngwY1N6K1FRV3ppd1dzTk9NZUVkVGxNL2hMYWZBOFNBTzlBUVFIcjBYTndDc2YwLzF2dGxiTWpnMmNsNG9KKzk4dXdZTW5NZHVZVnkyZHBxV2Urb0sxdEUyMGNTeTN2cDliVW1icGtEZGlqbjhoTHgrUWpQMWtET01XTUpLekNhVjlmRG1OUjlOSmxDRUFLZmN5SytncC96OFhuWkJIUU9ISW10Q0dVL1Zadnp6blNZemcyMjIyMWJ4eWNpUmpQSjZMa1ducHVtM3hHbmdYdXYzQk1CeEV3REJSNWtyZ0xyTUhPYTJuSUw4UXRZVWM0cTZVbkdLeDVNL01TblNSLzhiM2c1MnVKV3kvVnRuNnFyVnlydTRaa2pOSXBmTUhZT0dhYkcwb2lnTi9Cc0FRRkVVRDdXSXdkUzI4NXBwRWZQZmZGcHFmNkh5a2VMVlJaSDMzajlJa1VacUd0aURHK2J5a2VoNjVpckwwSkFGWnNDUUNhdUpsUGVQcC9mRy9pNFZ2OGRXc0xVUVJGYmtrSkNBcmd3VFdBME9lQkpNS3dNa3pQTUFoSzJZV2V0ZHlVODNVbjFkb1Y4R2haTlBWc0sySW9ZWEZRaUFNdjFRdFAwSG03aGVrZTA1dSt3bmRObm1NYzJrbG5HL1ExVEJNN2FHaVZOdzM2c3liUkt1anJPLyt3Mmc0RkxOb2lub0F1Yy9Ya2VoMFkrekJzNllWanp1aU0zazdNYUlBOTYvTkVYRHFXdVBaYUNPNEtpMTlNcHlhMzRlM0VLTHpFNEJ4TG8vUk96dTEwdnVNeXJCWDQ4NzRBcWdWNDArUWk1Q2w4OC90d1ArMkRLeTFEWDVFWHJpQ24rQnh0c3gwNWdsRU13OVZ6VFdZdFhFVXVBZ0NpbFhNQ2xtZ2NNTjhHQXVKY1NmUW0rSGxNZWVmM3p6d252RDdLSGNVUWhzV1NOdEl6MEJjZXdOeEpneklmZVltY092UTF6SXNUUWtkUDdQZUI3OWcrMDFGTzdoV3JpR2lMZVFZL1c5QVBrR00rTWo1T01MOS9LMFFWYUtpbnJXeHJ3RkdldWlCYjFPYnZkbGZQcHRuaFZVWERNbmpoS3AydEw4endNN2RyRGR0Y0lIdzkvNXNLK1UyL0lMTFhVWXlkcDNSSTA0L1NPLzVPVlZRWlpoWUQ0N3kybDN0cGtwN2hOdWdQa0RNaHM0VFBBUEZtYWovSU1JK3g1OFRQNkpreWJaSWlUY2FxVXAxVllHa0FrSEQwakZOTXk5aGs4Q1FLdUhuRVN4ZlBXK1pXYmwvbi9QNEl5L1lVbXllQnFSN0xoVXAyM09Ddm1pdzR1N2VqNTM2cUFPUHdXWWFoajM4bkFSQ0lITXNMd2ljb1Z4VUgyWmJPK3dtV3k1MUVWWXpJRnNKS2xvQiswSW5PRmZacnJ4WGdOYjVJWWZiMTJHYTRSOTdXLy95NFFydXZYYXRXaFBGVlNuZll2dms1ZjZ5ZnVOYlpQengrM25EV01uWStHWDhmZXBheERoUzA4eFJxbzVpRHlNZDY4NTc5OTQvV0V0cnIrUVRyNFBwYXMxenRZUmtEY2paellySHR0V2FoQ3czMllxUXFnOHdwb05nRy95NTM1bnpER1piTndoNnAvYUJ3TFIyYjdWc1h5MzBwT21DWmdKK2Q4ZHZ6NVByelRtdjdEVnFZTjJhaHIzUXlLS0tTb2sxZzdqblhFdGRBczdTaDhlcWFaNTVYTlk3NFZ0YTN2dEpaZTBMUXRpWlI1cGsra3gyYlFPbnNQR0cvZFZyTDNGZmFLUXp0a0dUdklvOWRXYXNHWU1CNTJMNVJPdWw4MHQ0QjhIRi85MHpzRDJ4akRKQnZHWmt2SUNpR2sySXVuRFQwWTNjL1hQVGF6N3ZWUnUxaFhjaUZvK0t4R0M2NkwvaXpNOWtPc1ZzUUpPaUEzU05vTEdWMElGVTJiZ0NGbTRNMUFkVEVOcGhUNERQMVUyTVI5QTNzM2p4alhUUXhZZGpzMmxNcUhUd21NZ0hiRzl1NkhVUEFQNmhPb3ZJR1hpdG5wODlDT3IrOGFmT1kzUzhYYks3TVN6WE9CbmVSYncrdDJqcmsrenV2dEplcnBnOHBFVU83dTNvMnlQTnNQWk1IZTUvSlNiODRramZZUmlHeWJSaVlBK1FuYlJRb1dBNVdjc2d0d1UxS0VQZ1FRT0FUbEFac3FGTDhHQnBFTjR4dGF4QjVwZ0UwYWszQ2hhL0loVzN5ZU4zQ0w1WmtvQSt4VzJHR3YwL1B0dms1QnRRQ3VqcDJxc0puTEtlWHFvTGxOYjAvZWs3RUIzck1wVEQ3TnVWMStWdU5yeDNNdzBvdkRCUnNtM1g0UUJLUm53NndMWDBNTEEzUGdtMERsN2o4QzAvZ2Q1NWljQVNzUml1b3JVcjhKY1ZJYk15N2tzaTUyTjRCTVBUd01Ib1NzVDJJdngrcFNwUTVRb1RsREpaQmEvbzdhSzdJRzEvWm8yL2hpdGkyQ2FGcGw5R2RCRUFhbVdjYTI4QWFoOXFpaTIzWnpmeVZ0UEE5N3Y3N0dlbVpMNjMrL1MwV1Ivak1LUUJTd1lZMCswVnBhekw2Zzd2QjM4ZThZSmp0OHB6aHJBak5sSGFWb1h6RmZGVitaaWpvaUo0WkFabHAwTEFSSHRtTmwzaGdpWjhQeThJR3o0enhaN3ZQVklmWEJxVU1zSThzT05nUHdIeHpucTYzbm9YdmdSUUEyNVoyOEFRdHN5MjlDcUdRN3hFN1N4SVovNnlKREtLMFd2b3NqMHgrUlQ0QUhZQTlTMTRyeEw2bmRHTGIzRFZwZTdkNi9pR0pwS25raGg3VEZZTU5tOEMwL1JiN2doUklUb2dPdUsyTHNaeC9uejdIejAzL0hmN29abDlWUlV6cE9iQmhuaFBIRENER01UZkw1eXpQU2xjNkMxY3dDbFVoZzVRQU9FQkFoNkEvYUYvVGNhclNqZFVFemcyZmIrZ0krNjJkeUdzMmtHbldOOWFlVEF0Qyt4bzVYL29adGFkdmJXR0RpQjlQbjIxU0ZyT0dGTVFpdElHMklHWlEyQllVRVljbXo1YzYxb2JRM2lEeXBEYkVXL0R2MHFGcDFYUDIyR2ZFYWZNekkrSlR5VmcyYWZnWndIOWlCYjdQL1ZIRzZNS1cxTmpHNTNaMHZtd0lpRjgxRnAyM00vc0E2TlR5V29PbEtrWGJJREVLUDBFQWhHYlgzck9sNWRuelpmN2FSWHVneDRwNXhWMWRINEROVEFxQTMySGZOdWk3NTFqYXdrL1FqdWlVN2s5WjkzZi9xZmowdWczMzgyenU5L1A1NS9oemV4OU1IZ0FQejdCK0dCUVFNbjdyZllGL29SZFVEMjZCbDFJOXd6b0greGtsTDFIZGRBRUVwOUVrK0V6OVdmQjlvWEgwOFlMOXVQeDVkRmVUSXhmcGtzaVhDaERrbmVmM0E4czhpQ3Y3QUhZSDU5RmZobDdMd2ZaWTVtQmI0UnFRU2FQcCtVUDVOVlRqd1UyZnl5N3Q2RUhQRS9qSU5kdHY5dW5WWGoyT09LcmxKMFM2OXVNZklPdXdIcW5GeHBMOTFoYmt0ZDJrUytCWFJnZk5RZVRhbStqOGVKZzVBQzJhT2dWL0JGdVl4VzZ4SGJpMWt3elpMZjN3cWM0TzgydC8wN21EWDluZ2ZEckFYM3NQbmRNMS90QXpxL0hydk1YZndhK2txVXFuL3JMOUhqcnZ5WVdmeUcwYVU0UjFWYVVUUTlxU25tY1p2N3dRTTNoV0RHaUVvdjVKUk1BNUt4bDRmd3pvWGZ6cVdlWlZ1aVQyOXJWaGk4cnI2RnluMzFPVk9nalBLUFJNQUF0Y0VmOU9MRHhoZ0gyeWxndHhrZ0Y4M2hkbzR4ekpEUkQvc3h4a1dmOXNxY3VXanZtWS9SSitWUWp3a0gyZFg1ZXVLYWRlMGprRUNscE1ZWS9WQUZEN2RYVCtWUG5EQUd4YjZtdktzNDJjRm9DaEUzKzNtYnY2QlB4cUZnTUtSRHdJN0l2OGVnNmtTUzZjbHZZbWZuVmFoQzhiOWdqUVMyTUFjU01tVnM5L2ZSTDk2cWtKeXRrZ2V4WHhaL21WK09Lem5PWFIvUlM5M1I2K2tQdDZuUS8vQ2ZTcnd1SUE3Y3dUTHZJckF3MkRYTFV2SU01ckRkcHZ0SWVQNHJIMXVDdmNEd0d2Ym1sWm9IU0srZVRUK3EvaGFWTjZGWXUwUzM1bHc3SDF5QkhlU2VkSHViZGEzcHplajhqWnBoOCtLMmpqV1FZSHpmbndXbkJRRmJsd1lNZ1V4Q21nQWRlUmxoL0VyOTNXY05ITnRRbS9kTXhCWnB1UG05RzB0L0VYNkN5L09ncEtIVXZqM3VXLzN1SlhSYzhjd1RnMDhpYUMzRmI3MnNxZXFyeTJ5Q0o3OHBnUDQ4ZHdwcEFZTXRTMDRNOHBVZVlYOWJpUHVnYndnTDZHQW1rWEJnTENlcWp1SjVQMUZUbjlSZjRyNDlkZGZYRDdMK1BYdm9IM3QyT0QzejhydjA1TTU1dlgwc2QrWWh5d3pyZlA2dGZHTVBzcEJVUTYyRy9pVjIzbm1Gcm1wTXZRb1RIZW9WWFRDd3dnZ0lMWFlGdVgxc3RGZmpxSVBvZnN1OThlcnZqVmlBTXplSmRlcXV6aGtqK1JuUnFwcW9DZC9XZkVPZSszaDNQSDBsdGVhL0RDZUxVQ1Y5RmZTK2N5QWRLWWhkUEU0QUtoVTdnOEJlYVkvRkh4NGRCSjVEWGt6cTc2cjIwVTlJT3RuMnpHVlA3azJINzFXb0ZjQWpNcTkvSXIrQVZzSGVKN3NTRVZscmp6K3N0YzdlbGJMdzVnVUMvazdoUHNhKzB6VXYrMmorekVZUGxPN0hma2prbUdZZm5GYitWWEFMMnhiL0NyZDBJZjdjeExnc0t4dE1NVWFacHQ2UXUzUi9ia0M3ZmlUZmpNZmNpVGV3bk5kNmVqMEVrSFcyOGlickh2NE1kVXpyWEVpQUJsUG9hVEZIVHVBWEpPaWh6ajg2WUR2U0VXNml2eW9sYkRlM3pHTzArQWVwRXR5UmUySTA5YTVyOGgzblNHWDFIdXRBYkliMm5mWnJ5NGRYcDhGQ2phYWdwNzJsL1VIejhrVWZGYWF1aTE5QlVaSmlKdkhFdmJ3ZUFIR0hxbUwxd0phbkIzbnNET2FNL3FrR3ZuT2F2ZSs4enhwajRiQkdpSXRxQUJXTkdRMUJod2p2bEcvWm9nRWhOUkRNNEZtNjRYenRnZ3habThzR0hBSzZhZmFCdVkreVdKaGJEZkhIOEcvWnJZNXY1d2NmK1VYLzNUUFpFOGkvbDZPaWYxTWlRdjR3azJyWE04dlJzU1U2Rm5OZm1FK3ZVK2U3Z0U1QjJiMmdJQXhxUjI1Q1hZZmlldEpiNXdONTJMamUvUjJ0aXhJQjk4UWM2ZC9pQ3F6bkVXVnIvM2g4YUh6L0tyekFkS2h3SzFuYjV2S0owWDV5VHZBL0dtNm51U0tNNTZ5OUNHV2xmYVE5Q245UUJLcjZMMUNaWnQ5SGZqVDJNUDM4ZXZ5U0N5aS9hQ0RzQjZGNTNQV2lLeUJaUzRBTG9WckJ5TDZJdlpjaUNPaXdaZzRTZVZjNit5aHdzN2tSZERiRHNvczl4UGpiVmphVytsODBsZzdoRnRaNk4zTWN2Vkh1S3dEZUVwKzIwQU1WRElRK0RmQy8zeXJMWG9zOVJZVkhVM3QvaFYzRHBRODJNVXJxVzN4eVVJWEFXd1o5OGRINlkreU9Ta2xtYnJTQ0wyalhrL1FkeDhJajZWWUo2Zk0vOTZsejNzSzUzbFREQVdnVFhJZ2o0cTl6Uk1uSVBlR213RFM3emZmNFhQZDhQSmJFeGtHc2s1VUh1MSsrZjRyMCs5M2VoSnZxVmY4YjRxZXBpVndIeVlkL094cFJsWW50djMwVGw4VnUyaFhyMCtGZC9ONy9PaGZnNi9qcWJkM2NoOE03OGU1cGEyQ0pUOXdiN2ZIcTVpU2NUSFdxcDlyZTBMR2xmcTFrOVBoL2ZIbXpCTjZBbzYrS2xCYXVHV0E5NVJBaFFvcjZmenFZSTJya1g3SkNmTm9kK0U5cXFCbmVWd1RaYWo3cFBoMXJUR213M2NMSnlKdVBSYVFhNzJ0WXowZDhpNVkzWjRYOWkzVmNVcFBJRUxBNmgxYkhPMk5XaVRQdGdCVDMzWnd5LzBYemV1MlJhRFJNNUlENjd4SGpyWFhQTXg5T2lRYU5KWEptNGR5UGZESU0xTllHbWMydGU0S2c4dEM3YUoxbFMzUkU0S09ReFNYMjQ1R2UxeC9LVDFUWHcwbDQzY3RtQXdIOFFvN1RmWFMvRFJYRHBMYThlOUFMeVhmTDR6TzZtVHZjR3ZCSkJXenJ6RUtNN3IyVHRqbnZYNGNLK1JwMDdWbWl5bDcyRTk5SG4xYTE4dkF0TzRvNzZwckdGNGw1NjlwRi9yZCtNWGovOTM5R3U5amdHZDFiTkZZTFpGbjJ0dlBUVFllaTM5V3Y2VjkrTDZYYWhRSCs4bG5SeDhoOWI0VDZsSHZNc2ViZzQzMGQ5RjU0YWxvVVlOdmlMejJPZnlVb0lIUU9BOS9nQjcrRDUrM2RtV2RnaUVUdUVvNzZiemEzME1GSjRGTURPZzVzNjFOT2p0cWdaRVlKdHcrU240OVQ3OWVycUh0K3ZYS3I3cFdGSG10OGhBZkRZY282eE5sTG9yWWh0ZnA4L25TZmRUNjlkcWp3SExXNDlMT3V4dDBOeDhoVDFNZWpleHpRdkRKQ3Y5UUtGLzJMb0VheVdHMmhKTEwxelRFQnh6elBJKzFENDVjL2FmS3o3TSs0SlJPeXNuZTZ0TmpPMWhHdCtzenFoUCtxaWNCSzBkYTBUN0hZM0lrZUI4a1pjNm1aOTBjcytFN3dtMk5jakFEckpHbnovLzJtOE9iM2hmL1hBWmI1cE41Vkc5bHhsaTdEVy9DMnpkb0Q4QVhCaTcrSFQ2OWE3NE1CbmdBSExteVZNUWxqVUgrKzMxVGZ2QVJBWDA0TkMxYU4xNlE0NWhudlpqTWYrVXRzcjkraFdHZU5pV3dYbGNnTEROQ3I2NDhpWTY3enZZTmt3SUpsRmc2VnZQeFBKZWl6eGxEelU2bm1KdmZBR2xIdGF6c2o2YUZlTHhJSnMvcDE2Qzh1dGNRWWRBUWJuREJvWW9iNmx2SXJFUzZGT3E4R1NxdFl1cW41VEdBa3JibWZVVkc3MzlWRldPaHBnVW4xTy9YaDI0OHRwNi81NHhuaTJOcDdHaHk3cjBTTzNqQzNjamtaNS94NVNYZjJqK2xmQXJES2tGM1FvMDg4WjZ4S2NHNzAwSXBCN3BGZnl6NHNOMzJjT0VKa0RlVEFTanJXTWJBdkQ3akRmbzF5YnR3Z0RIUCs3ODNzU3ZUK1BaTytpdXZ3dkhYQzhjTndaQnpZZzlaLzY4M3U3UHhxK09FaEZzRTB0VFNob3hYMDNuOE4xYVB3bjRBWG92WkJnUkIrekhBa1prUW1LYWdOMW9pVHV2TmVEVW5xNnFDbUFoTFZWRnkzd2xRbjQ2eWo0dnY1YTFIem5GWTZJWUJkcTcrMThadm1PdE5vS2MwZWZuVjJGMDhOczM4Ni9sdnRxNUoraG85dGJ6QS8rMXN5elBwNEZYK2dmaEpMeWh2b2tOeVNObnA3MkZ6bVVZdEViUGp0Wk5vSGxmQk96QXFrKy9xbkY2VnRwYlArR3B2ZHpBVnlTeDViNldPWXF4c0sxQk9VajZWOGRTN3ErWHFQalZmbGZmTmJhSHhjSnJPYlNIcnQwRy9GQUZRZXpJTm5laGZkeVRMVVNaTFFEc2NadGdVN0thWW1QNWNiVk80TC8rOTQ5NzhxOFZ2NjdmMVhjTjljUDYwclZZRGErNFpqM1lKQzdIQm9sWE5QZDU0OE4zNVY4cmZrMzF0disrL091VXJhWDI4VnF6RXFlVVlaZjVKM3JqYzlyREpiN0RFbzN0ZS9qMTZ1ZnZxNWNvNnpTclhyckI3SS9DMHJuZkhxN3pxeWZJeTNFaXIyMFRmSXZCVEhsdHZVUW5jaVF4dHMxOTVHRWJHODROOE9mcXY4UE5MUkhaRXVDQWsrLzBCcEdueU9BTDJuK2tmdDF2YlZPWHluMGpXbmRwRENJdkNkQ3RPdUlHdi9id1d1T3d1Z2MxOUlVTzcrTjFpOC92djc1V3Z6cFdCTEQ4dHJtZitZbWNZRC8wL3Q3RUpyOVdhKzFxY2VEUDNZTlkwNjlQVlovd1hmeDZjQ3dOTUQ3SHBwTmdIeXJvbzlmRmh3WGo0QXRRbnlRQ2xqcXAyNFM0ZWhOenRFYnJOVng5ZGRuZWVza3NKZ1BKQnl4ZVBaaEo2dS9sMXg1K0R1TVYrbFZEZmt2RGRrVzE3NW0yOVJJbnU2Y2YrNGNraW82aVoyQ3pKZklhOHFsOXlMRWRHdldKN0h5WFFOY0VoK0NQclBldllmRWwrUHpFS0ZDaU4vYXJrN0VlZ0M5aGtoNGM0anZRSWM0VE1ZTCthT1VyMUJxb1NvZjI3NUNlejFQc1Z2YjY0Ky9XcitjRzBBTldzdDJvUnpRS1gwQ1lyM1B3LzF0R1BGTmt6bFhlMkovVDEzZzcwYkUvc0NCWUNGVU5Za0F4RWttT2h5OTdkWVlTNURLVHdOeUJyK1lvaHFBcVJoNGtxUENFTm1DZFFJOXhNZzQ5b1kxVVdUUXBIZGN4bDB2K2VaY2V1bCsvN2h4cmNJRFpGbGdQVGk1aFNkNkp0MGEvcXlyYTJyWTBpbkVPSTFnSTNydnNQUDNmaVE4ZjhXc2k1MTdTNGRoOEZQdDEvSG9XaDFQdGtaa2txdEpjK3hQcjEvdjgxeU4rdFUxdEFiMnZabWZwdkRMZU5LdXRGVWdpSFpCUCtyL3dtbXFQM3pxS2NmajA4U1o1SGM4U0kzSmtndkUrRlRBL1ZuaEVsL2pWdGJJMzR5UGk3eEllMWFOQTZWV3k3Yy9DTXcyLzlZTE1malcvM3Rjbi9DcCtoWncxMFJtZlA5NzVkbjZsNDhMa2VSLzYzdzUzOTNIMmQrSFo3eGJpdUViWG5DcVhkc29CY01OYit0WlBSMzlpdkVrZzhzakErOXU0NVg1Zlg3ZFR4NWNBUDBScTFzT3lQTCtyeUxrakdJZWFyYmRyL25hRnMxUGhjUzNEWjRxZFFESGFXOWdlUElNOS8vS3RQd3J0L29EM2x2TEJ3SjlOdW5RV2o1ajR2SUh0bHpMVzdCZmkwaXRJelF2Z0hSVExWOVJMME9jM1JPUW5mRVo5aVFQRDJCNm1GWjZMZlRPZmcvMkNjYVBXdWpvZi92UjhDS1pURFovNzAvRHIwaE8wRjhkU2M5ZnNYTTYvVW5tRWRhTm5JdUlmcGFPOGhzTlc0WHhkNS85d2NvN1c2UHBEcTNrM2RRdzJYK2tjWEF2ejdmS1Q5TC9XNWdDVlBnVi9BUHgvNVNhL01sd256cjRUWCtlSEpBNnd6OXZBODR2WityT04zN3liRXRQcDFkaFV2NlhldjdkeEZDTjJUVGtmVG52N29hVnlJK0dWL0pwUW5DL2xudnpybS9oMTZXSWZ0VFd1NWNxQ2FENFJENjdTSzdTcC9jVTJlL2t3ZnN4VldXUno0SEt2cGNQTUpZalQxMlluREVsTTllQlk0eldiQVZYSGFpVHI2NUZUL0lSNmlWdjhDdk1FS0ZiTUwrRlhrY2Y3ODJsTThGUHdhdzhsMDZURHpjaTh4UHlZYnU3a1Y0TERSbXVmcjlrbzJCNzJGV1BobWs1YkxiRVorVmZOYVBpejRzT1grUFZtMzg2UjdkS29IMzZxWTc0T2lqK2xWLzJWL1RrWCtQVm1uMTNhdEp0WWY0NGZpd09kMWxvSGJKNVMxVnYzWi9UblBGM3YwYi9CcjdmNzdQcURMSUM2cndEcWpRbSt4R05UUnlqeVFlMkxoV3RCelZuNktiQTNmbHI5OEFWK1RiRjhaTG1yOXRvMStleDYvVWxaUDl6QUx2RllIL2FGM3NRLzJYKzl4SzkrWWh5OGxsSFlna0hPMFRLUTM3clNDMURHaDh2UElrZHFubU90MTcraGcvL1Flb2ttdm9SUjR0VzlHbHZuaHlSYUpVNVlBOXRLakZTNWljVlFZcnZGb2pVMkJ0OG1zM2IvV3l5T3p6OEw1TGlYamdVWXV4R2JZMzFjd3hjc2V2bG8wUXNCODAyUkNWWnN2OWxQVGpESzdmMXdvZktRYjRPWktVM2F2NHRmUTVobHRqakdEZmFoQnNsSUFuTVB1SHR2bXRYMWkrZDQvWFFlbFVrczRPZlBHUHAwYzRYQ0gxTDMvT3NVVzRuT0hIOHIzdjVSVHM3SWcvNmdUV1ozamtPZnpna2F4dUxzYUE0QnEwUGEwTG5qQmEwTFFYTUYyeWdnd3pLUzMySXp6MkZtK001UE9vSnI0dmN2eGF3M3AzajVKUVlYbVE5bVc0UFVGOTVRbDJZTjBnQ3c3cHM2aWM3ZFhHTGRYdHNqZnY3Y01ZM2xyOUg1bDdCUm1HNm1jNE5UWStkZzJXTEFQSERPTVlQMjdUb3pPZzlBK0JvYVFxZHdCV2Z0dFlLRDJ0YzQ2SzFLalRYZ2IvYXJOVm05MmErMFNXWkpoOHdqNWVtZXpPNHhIZk0rNUEyTWFkQWY0TC9UK2FSZGVBS1oyMmhZTU5NVzh0aCt5dkw0c1BiWXRnYWN5M29KNmVjYSsvc010dXNSSGZ0S1p6azE1Uno3eTlBdmVxYy9QanVTK1RPbGN6SzNuUG5kUTBuRXZqdlFNYTMvaloySlNIb0JsRDN5cXA1Zm9xK0lIdDE2bGdnekkwdTdvOFJZejdiTldVMUF4OVY2eWdVNlRxS3QzOUpGVDBFd0MvbCszTExtakFvZjlvclhHb2UydWM5SWJQbmpmZUVqT2w1NUxZMHJNWnZ2eDZOVThmZlVDZ2VaOUZsRFB5aWMvN0tTVytoQXNOdktmak44VC9DN2c5YW93Z011R3JpeStVL0IrRHVpNDhEUzBIaldVV2FObkk1eHV5NUNpQkRGRXNZMHlQdkNMTVRyTkhKaGlZWVlUampZV1VtSCs0VzJmL3MwVjN4TXgvVllocmlGMmU4cGVjOSt4YndIMGd2OXNUNml0aGkxdnBsWDZianVRNDlKRDBFN0RtN2swMzlJMUY1SWpjT005SHdmWEtYRGU4b1k2czg4WVVEV3hQclcxSmN3aXhDdzZibzdNcE9RK3BMNEdYaDh4dU5jN1FHbUZxdUQvbEorWGxxVGZVeTZIZldwQjcwcEY3RHZUdnRXanVqWVUxRGltRnJiRnZab29uUzI3ajIxS2dSdnJQazlJbWRCTnR2Tld2amFIR2lLazZJTUVQYnZhQzgzdzRJNkJJcGNCSDFqTjR4Rk9VamtkVUJ4UHlFK09CRTV4K1IzNEhOTTd2VmhqK21ZOUphd1BQTjk5aFRFNWNnc01CWTdzSTVtcS8zbWVVeDN5bU1FZlRBR2ZlWVpxYkc2bzc2WDljK3dIQXV0ZlN2NzhaY1VNK1AzeERidXRZOWJXRmQwTmxNRkNkQVAzOUxHZnRLSm5SdDJ4YlNXaTZqbFo5ZXU1U0F2TVE1K0FmWjcvSHQ2RHU2bFk0MzNXL3JXTXdiSU52VU1ucE1uczlXdXl1TmVmYlpZbzc4aWNyQ05hbWtITnFQdEkyczZqK1Z4WUdtY0ovQlRKaDltL2NIV1RveWJmZGJrZXh6RUMveFU1MzJaN3EydnIyeHJYTXRER1llU2gwMG5Dc3c5cHlxZC9LZmUrYVZZMFJFZFEwMUNBeFB1UG5tc1d4SG5KNzB6TlEyRHMzekw1aGdTekphUDh2UEt2cnJYMVEyVjhwaDlYejNDZnlOei9CMWxUR3B6Zi9IY3R6dmw4YzRUOUZmUDl6eXAzNmJ6SXhodSs5RmNLSml4OENFeHoyTS9yei9JdkJiTjJ5anl3ZWZ1NlBrL25YT2wyWFJXRS9oQWZiRnd6UTdObzBGZDdmdmlmRy91VFRwakgwTTlQaC81eW12b3VObGZlVExqNjhSdXF1STNYdEpaL216Y2xrczF1MmZ0aXBtUkI4aUovRHY3VEdIdVFEa1hxdUpQaDhvdHgyd0xyalhZZWduaHp5Q1JDOWVFL09qaEkrMEs4bnl5N0tXT2llWFVtT1B2aTdzSm5keEpVRG8xNVIyYkZmdGhlNzJianVrc1hiTXRHSWxjM0ljTlEvcWFLTTVMeTdYMFZUVTd0MW0zci9hZHlFOFF4RngrWmZ6aVRqckc4bGg4N1F5TjAvang5UjdwRDh0QkhjdmplbzR1MldlZWlXNzZBbzA4WFprYkZXbHU5Q055ZEhmYXg4MWNidUZZTXU5WTJvMzkxdk81NVBQWTk2eWYyKy9PNmQ1cEh4OXNJVUpPMzFnNzF1RGJ2Zmd3QkVkM1J1cHV6RDNwUlNUeDQ0V3JHRXVZT1JIdlFtZlNUb2R4TjhiK2hwK3M0MS9XMTMrcDErYVlqb1VvOGhNRCszYWsxNkUyYjhxK0IyKzVyNjFzYTRBY2twY2h2UTNOV1YwWjFsTXN6dmg3TWZhTzVmRStDeElEL0RMaTg5d3puN3RSUjFUNXNmenY4K3ZPMFhIUUgvRE85YmpieWJNT1NSOWlacHY3bm1QdW83bWhJY3gzVHMxK1p2V2hyb2x0WXgxNWlrem1Vc0xuMkR5ZWszUDh4WGtRNDJZZXhEdU9VMHphTzhjYVpEUTN2L1dTTS9VVHRFL0hOYkV0L0lGN2JOb1YvR1dzZzh0MEhDaG80NWdkUHBCUDc3UW1qelBQTkxhQkJiUHpzSTVaTXIvbjlQeCtVL3pZN042U3gyZm9HR29qZUQ4eFppN28wbWpyS2ZvSnpwUnRvblZna2ZnRTFqdXUwbGs3MGdmdDkrMTBmQWhvejVpaFJJVmphU3RQMkMvdGszeWVzU0F6RkVXdU9wUHhCOUV5MFBIK0poMm5wL0cyMjVqL0RYbGNPS2E4ZEg4ejNiNVJIcDk1MW5iR1pLMnVHR3ZiUWlleTZpNTUzRDg5eDQrbTQzb01sTWtvbjhyYUdaTTl3aXZrOGUvYzQydmw4VGs2VHBtc3ZhUi9yc3ZqTStmM2Uzb3Fic3ZqYzNTY01GbDdTVWJka3NlL2ZiL3ZvV01tYS9uYVBwUlh5T1BmVHN2M3ltT05zNjBCRjFnaXU5YzcrZ0ViOHZqUXpDbk1QbFh0OHJHZmQvU3N1WDhITmdPcEU5Slh0TVpsNVpqYUMvVmpQMmJ2NE9kMWJ0UHhVYzdtSGwrZzdOdFJVT1JKNGhJK1IvcE5RSjc5L24wREhSOUdKM1ZSTituNHRpL0ErcWNUdEhXa2o5empjWStiZUROZWNVekh0MzBCV2w5aDhzaHJrWmtnVFYxN2ZINi9xOTdOZUFNZDMvWUZJRjZSeUpuWHA3M0RKL0w0ZCsrWFlLQytRUjdmOWdWSS9KaTNCUTM1Wkk1cCtibVBvdVU3N1FxSUg1ZVlUQWIwTDl6RVVUOHpEd2Z6YjFURHROcGhIZTFZNDF6dG9kUkxPb1ZqamtQWHRHditkSVhSUkd1UTZlZmx0YWQwV29CZkN2VXp4dUViNE5sMUV2eGMyRzZ4bFNocXpFSzZOKzZtZEpaanM4MjVzK3EzYVU4aFo5K2Z6NFA4cEkzWG1mQWZzR2VJdXgwOHdlSHNxL0dLOXRaUmpOTzdsUmdlNEgzMWJoN0I4RDIzenpEb281MHplUXduWnBCN3JRR3JIYS9xV2VvNGFSUTdOSkFldzdHNVgzdXRBSDllc00wOTcxaWpMOVdlb0o0cWRCVzVvTDFkOStSQkFLdTRoc3MyWm5maENrYmJ2anNQMGliMWlvQURzZ3Z4ZHltMkUrQ0R2UHBlZjFIOEdPN2tEQTBQVTRxMUlOeEZ4M0JtTEJkZncybmd2RUxjMkphK2NLWFgzKzFQcjY5b25PMnI4dElWQnR3cFh0eForZVczdE14aGViNlB5WU1RekczQldEdW14bm10d2IxcmY2dmY1ZVc2Q214YnlRY3lSK1huMTVDOE5wOFhZQi9PR3J3TzZ4bnllZlh2VWZ2cHRFNFgrL1cvOUU1ZlZ5ZWtiMzJscy9hRW9EMXJrUmphV09oZzI2cXdUWlNmNzlNRSszZ0xOVTh0Y2VzcG5SVDdBajc0c2dRVG9mcis1WFA0UFhWQ3EyY3BIaTNVb3NMVlZQdTBYMlFpL3RzVDFKL1Q0L2JwK3RyS2N6RkJsMDBvVDBzL3JXZnNnLy9VZStzWVRkTjduV1ZiTzI1SGRrdlBnc1RvWVpxR1BxRVR2eGJtQVBLZU9VQitEUGlKbGE5SGN1L1BtRDZnSHJrMVFQYTUvaFdLdTRGdDUwQ1FNenJicU9xVDc3VzN0QVp5eTNEY2JWTnZYODMxZ3Y5ajcwWktmZDRtNlVHYUpKMFlhcUpNUHZLdXpkMmtkVEpWM3puN3pqaDg3aHNIcUpGdjRyN1U2ak5SUXZ2cnNMMlEvU28rTGVmcmtSNHRmTlozOWVMOWtPb1lEbW9JM3ltNnE4RFNvTCtsMlc5ZjFlSmkyd2o2UFg3SjNNdTZ2RDFMajlCTE0yWTlSc0tmMFo5MFVzOTFsaDd2d0pYczcwTDgyYytHRTFtM2Y4N1JJL1hOcnM1KytDRVJPVUh1NnJQc3IxN1BjNVllNzZpWkxmVThvbjBMNWV5RlQ0TU5jSlllajJydGhFdHpKU3BjbkxMbjVCUFUxMTJUai9mVVRGTDVtTGhtb05sVzkzZytLN3ZMM3p4YnRGNG5lWlllajJ0ZjJaemFTL1dRWlYwYzBXVWZlRzkxLy9nS1BWN3RqYXIxR1RBc2tOOWRhLzhPZXFTWXRnYVpiM3NrVHo1ZDM5TjkraHJpU25VYjZ2VGVhdjBTeWlrZTNJZmQzeTE5bllwYnAzY2oxZ2k0VDdUdlhjSG53ZUtMTEw2eURIMFczNG5GUVhQVytKRk45eFBpYmVmcWo2L282NnV4VktqUGhPL01RaGZiSkRUTzRxVjZOalRyOFJrV216eU5OeDNaUHo4NWZucVdIaS9HRWlIZWFUTDUyUFJ0M3hJbi9lbDd1eWtmTDhhRVh4d0xYYUxIWnB5UXpLdXN4UWpmUnBQdnFZYy9SNC8zeEVSUDZQRW8zc3ZPdHg3emZTdlAvVVQ1V05HVWVXZThrOFE0K1JQZWd4bm8yc0hGZFBoTGV1WmVhejhDUFU1TFhPZms2aHpCbzNsa3g3R2wzeFh2dTgrZnVTZTIrVU1TWjU2d1I2dzNpc1Z0Z3hOOThKdml0dmZSNDg1UDBKWmk4c0ZzaCtuSlRGSXloNC8xdVZVeklENTRUdXN0K1hnUGZ0Nm42eWU1MDcrK0E5K080VDgwY0V1YSt6eVBTeG4vUnYrYTRhbjF0SFZBK3lxOU9oYVBKTzRBMDhZME9NY2FIS1F3KzZyMmZpYmQwZGlSb0JXdUpaS2V4cytBb3diMDNQMGRHR1lmaktGR1paSlMzai9wTjFmZUp4ZXEzaHJnM2JKRzJMVXlJc1BqYXU3UFVWNnR5bmU4UzAvcVJXQ2VyWjByWStCVVh4N3NkOUVPN0M4UFRENEczaEZzekQ4VUk0ckYwTFdWMXpMV1lLdjNnMmh1alNEdS9uM0JoYU5pRjNvdGZlVllnNVlMODZJcVBxU3hlNExsSmFDMUo0bFFvM3F6Qm9mSzRuS1daTnd1SEF2TFZDMTZOVjVjTFNkYTN5UGczQ3RvWVROY1RzVVFIR3ZReG5ZZW5UbFp6a0tvbnVObjE5K2MwbTV0SHA5STY0ZnU2SSs2UUx1S1hOYS9NaCtmemF2K3RYajZwMWhUcDdSclBPSy92VVJlczNrOE1CZU96aVdzZkt1cnRGdk5WaVY4V3B1UkJUTzNDSmFOWWp6NlN1ZmdURVFVSkVZeG40amo5Mk1LZ0I0YUhjM3NQRWU3YU43WGtaKzBJNi9IN3FOZG00VUgyRk0zNjExck03UFpiRHN5aDlBYXdadzJHc2NwWjBJN2xvUDhkRWt3NVg0Snh0Ujl0UHVxK2FZRTJ4SGl3aUNIenMwekxYdkRqTWdXd3JNMUxNTllIRGxtT3cyVU1QUXM0eEJJZ0l0SHowMkdHWGQrY1NwSEwvWFB2NVoydmFPWnFqTnFMODBTTW4vRlBwcWJTZWUyU3JWOVZ2MjV2N05HNGJXMGUwZitDVEFTNnYzbzUySno1VHhTZkFkMFZybnlOWFNzYU9lMXNFNmhzcG5rUkY2bGQ4L1gyWnpTTHJQN2g0bThkSHB2MEt1WWRwUE8xbE9NeUNNNGVJZHFaZ0JLMUQ3YUJoT3haZE9aZ0RUMkN2U0svVlNLRjBibUNGcGk2dVBubVB3Q3VjdHdTQ2Z0UldBTkN1d1hUMU5qWXlkR01SVWNxQnU2MlZQZXpOMlg2M2o5WlluQmcrL3dIRysrUHhkd3Q4M0E0aDI1M1RJS1B6SHlnRDMzc3BQTVN2MnYzVzB6bE9zbyszWVZUemFXSnpVMk5kdmk1OWZzWHFQZE5ncTRTalpORFBFK0dxWTVFRGE3RjM5UFZUb3hqYWN2VmNVcFBJRTc1ZFVHZG92UnF1ekZjN21GS3piVVJibGIxaEJwanFVWHJxa2Q2dmhJUHgwais5UDVkdStyTzdxSzMvNlQ4Ykh4SFg2K1dxWDNZb1F6WHVOUjBCOWs5bXR0OGF2elVPVWlrRVNLOXpYYjJJSmNFSnc2SHJCVUEreVhnUDRiY0I4K0krQVNmdXdaK2V1WkJ1Y25hRkdiczFQTnlUSGY0cDgyWld2OVROaGNyUHFzdWs4eHMwUHBMRndCMjRsb2ExK2VuN0JoTXEwK3Q2NmFqWVplZlVkSCtwYjRBaW4xWmNrY3JOeitORE04d1FhTlhVdkh6NVFOVzdRdTFnUmZyU0J6MkUvNWo4MjlDaFE1dGQ5K1I4ZDQrZVZ2Vm5PdnJzM3Yrb2daT3IxY2V4cm5JNGxmT3VZZ3M4M0h6V2phMi9pTFh0dSt6bjkwOXBuK3h2alFiZjV6RkpRNmxzYVJHUm5naDdld0QrY0xVVFJheklSdmlSd040OGQ4R0l0amJCOWoveFQ3RGNRbkEvenJ5QWZNR3gzd2VWelREaUZYSjRrdDE5eXZWYVdHOFVuVzUyelRmK09NNW12OEovS2VzaDk3d2o2elc3K0UvMkRtbU5wbjgwaytuUDhHenJLOURXU1M5L1ZPNGhDWCtZL01uYU0xUWEvQWZ2d2o1Nmxkd3RXN3J2OXFzMyswZDlpZjVkazNlSy9LMzlUeU0vMFJuYmRLc2RDS2o2M3J2Si8vU0MzUCtDM3pRTTdVY2RrWDVvUFlDY3B0YTlDRzNwZVdkbkJKdnp5cmdRbE5JVUorWWdUUFNzUUZmZkh3TGY2NmRRVEV1WDJEMUg1UHNIK1BCTWRTZDZNbmUwdjZWclFmYjdQVDdwaFJkWWIvN3FtTGZUMys2bEh0TERtenl1ZXE2MGVvMmZsOE02bk84Titic0dsdjRabDZkQ2I0cHp1amQvSGZhK2M2M3NnNzFHUldvNDZ2OE1OcTl1RXlyTmIvTVAxM0JxL3VPdi9kbk9PWWtQcXNXVzBtb1c1cEM5dmNSN1U1TjZLbjdMZEJJWTc5QkFtdXVVZllqbXA4THFZWVdTVTlmK0RNdUxmNWYyV2NlR3AyY3ZCcDR0Zk9Ob2Q1djBrMWUzTlg5Z1A1QmN5R2EvakwwNVlJdFRQUTY4anlEak4rNnlVSVhudFc1TFV2ZktYNkVoVmdWMXp3N2FFdVBabVZlZGpueWMrYTJYaUcvOHJjZ2FGNVFodG1idytUR242amVkOGRUVnRpSmFkcUdKSnFQMWk1cHJZNlBpK1lhNXdhT2ExUHo3ejRkL1BmalJuSTUvVGY2YjNtcm9sNWI0RDErQ3ZtOC9paFErdGV2RlJmMHhyR2c5MGFSTDR5cTlFeDlEY2hWV25NTFZtcm1CK3duWlg0b1ozSUN6b3JaT3duSFh5dks4Y3lEb09pNnUxNm52d0NITkhYOHgvZG4xSGlqdGkzNndOS2ZDemJkTURHQ1lRb3M0V1F4WU1YZmlMdkhESnJFWG5KaFpsd3YxSC92ZHIvTzhkL3FZWTh4VmpnZjk4YlE1LzFCMXQ4L3E1aThEQjdQTlU0eUhXQ1AwTnJHdU5QMHN2elZ2dnpEUDh4bThoK2hmOTNTcHVmck5mcC9mYm5PZjZMWG9mTlhjOFRWN1Q1MlhyNTNtMS9udFYvMmRaZWtocHorMjRjZ0FpeG1sSlBzR2xkSXF0VDcrUmw3TWdhcEE3Qis2TzFDZFhjTWh2bUlFVmxyVHZFU3lHdTFkQ2QrV2ZTZno0K0k4d3pDc3FkTzJaZGtmZ25PUmVHNmMveThuNWZySFFoektZeURyWFpWbFIvWUh2aDA4ZGZ6dkVmbzdseS82N1p2aEp6cU1WZmVIeStJT2RZangvTGMrNThaVTl3WWZwYVJPWXRqa0k3TVJLdk5RRGFjUVRqUUd6Nnp6RGoveHovMVdsYm13VG0vZzRNMkRQNkQyYVI2aXVYemhJRFBGWkNTM1FtTkpuUld1cElmc0FUK2dKZnVtRTdxVXBuUitybE84Vm44djlPbjMrV04yYkQ5U2ptaXZDbStUZWNxOGljcW1pUkYwUE5FcTFoMDdaTitVUHV5QzlZZkJ6VG1aNzVncllORWdQd2lPeDBlV1NQL1A3NFMvMCtaNm14ZGlidDJneEw0ODQ3YXVEWXQxd0Y4T05PMThhK1REMG1La1Rid053dnlkblFlZUxtK0pQYW4yZjRMeVc4WWIrbS9xakV5dEIyanFsbFRvS1FJNG1lRCtlak5lS2FEVG91MnBsWGRKYWVvQjJHcllhZTI1SjU2Qm8zRk9nOElIeStwS1ozYTJNYVRBRkg2UWY1amRIMmViSUxiU0ZDdHJDdStxY0lmMk9hUm5ORjN2aktIZzNqU3pnNU4vbnY5VE9ZVHUvb1N0eE9QTi9QTXVsK2pqNlZOK2kvMjNPbXIrbS81cXo4V2MxbW1sc2lVcVdJWWxWVjlQdzgrVmo3Yzh4cWpaWm9iTC9LL2p5dDNad1k0djA0VkRDL3Q3UmxSeWYxcnFRZXFwekZvaXE5MEcrSnlCWlE0cG9qbU9rWEtHaWg5dEI0S0lsYm1LbWJCaG5rU3hVakNwSlphQ2Y3eUV2V0h4OS9tYnpXbDdsYUUxcjFFVFZxUWFIdnNyUnovMVQvYjVqY3RnbmVtSDhndFhkVmpMajh6VC9ULzV2bDlnM2V2V0YvTXRsVTFRTDMwUGh6MXVyZHlYK3N2MDNXMnI2Z2NaNGtEbGd0d2Evb2Evc2hpVDNIMGhaK2duYS95MmQ1ZDYvYkwraDcrK1QxakhmMDRyRmVYVW8zUFZyajhscS9yb2t0ajIwNDZJVTd3akNEL245UDBETW5YWVlUQWV5RmRRTm44d056VTFUZUhPYVd0Z2lVUGVXZjlzSVQrSTF0dHBldmlGc2VyU0dXYTdBK0k4ZlVlT3puZmxBODk3bzl6ZkEyVytoZ3QvVDFoTlh5bFBXVDZPNHpQMXFEWU5STHpSemxSOVZsM3E3QnZNQWJyNjYvRkwrcVIydW92Vk04R3VpWkx0ZGQvdWE4N1NBTHdJZGVibTFzUnlYeXhwM3dCMWN4MXA1eWtUYzQyd3hlZStiSHZERTRKeWN1MWUzOWp0a2JvOGx4N2VTNDhxOHY4QWFyYlh5TkgzNFBiM3hVemVUdCtNUWwzbmh0YmVTOXZJSFgzWVcrMGxtN3B0YityYnpSUThrMDZYQVVHeVkvN2htL3dCdFF3emtUaklXZkdOeWQ4MVUvY2IzajIvVUd4UkpUdlpiR3pmQjc5OVFvd0hmR05NZEM4VFdsRGo3akVQczBucUl6ZXlJY0N2RCt4cjluN1Y4NHMrWW1iN3k2ZnFwaFV6M1Y1OW9QQ25HS2JRaWZZRWFWZFVXLzM5ODl4Uis0ejZZcTkxTHRZd2JuZytiOWNlNm5SajYyTk1NWERNaXJrNW10NEtmMUxzMmk5WXZIai9UUmR2ZjQvY2U4Y2JOT0xCVUwxM0l5VHpGU3NNV3gvNW9ha0dlc1hoK0RIUEJydFdRZldWZDRicjdlWFRiVkxReWRpek9MV2YzMEtQUVV0SEV0L2JmUEszNUxMT2dDYjlUM2sxYzEyMWY3VHo4aC9zNHI2a2Y2dTJjcHpHcTZqL1RzMS9zMlZZYUpUV3lVY0RqaEFTUFBGWXoyZDR2NCttYXhmM0dzWllmbUV3SmJ3clpQd0ZOOEg5QVZZTTlPV00zTmZtMUxqNkZPY0FJZVNSNTd0cGJDTExRVk1iWXRiU1hGNDVQdnFBcmZIbG9EeE93dHE3c0tWWW5iK0pEWEJDeXhsdGNhTEw5YnJPK2hlazJWZDgrd1o3cUdyM3lsOWVHalRSblRndC92UGtzSTloclpTVWRvK3BEWVg2YjFCOGM5eFJEYkFudXArazN3T1pudG9POXNTenNFUXFkd2xHNHVoYXYvVUh2dDcwWnY5a1h0ZFhKYm1PRjFNNzhRRnk3cFBjVC9YanFXdVBaYUNEblNMc1MybVl0NURiQzZ4YTNmMGpLS2dRTnoxbXl6blRJY0Jkc1NhWTh6NUlKU3Z4QWpOdS9JaGw0dWJFK2h5T3VQMW1wZjQvRzkyeFNyd3FlMWphclNhZXpITDNZaHd4S2Z3TjA4aG9ieU5iU0ZLUEtTZ05peFVJc0hPZmZNRmtqOG1PVDNkT1NsTUV2dG9DcHlRbnE1R3BpZmRIYW53VUVjSTEyR3ZtSVV2b0F3WHdFT0w4VlNQYWhTTkRiU1VjYXdDT3gweVhoc1pWc0RUbFhrM0pIRXdzSCtCSnpmRXAvZG11ekhPRnc1b3pndzBUcVFlSmpIN1NoODVpWG9FUFFCRjA2QVhMblFXZnNGNEVGR1FTSm5ub0x0aGxrdWhabm9VU3dHK0t5NWJ3OGxNVkpsSkU1bnU5REIrbUZDODhlMS9KOVArNitQY25FRUM2UGVQMTJJQzdBM0U1S2pEeEswQkJ3R0ljbzhaUmE2SnN3NFczc0VaNS9LM3lqeTAzR3U5aHhTdjhWeWU5M1ZzNjJJb1ozSUI3ZTdXcXBLaER5RnE5YVF4TTE4Z3UzZlBiTHhmVXA4VXMyYmFiZHRrMS9meFVlTHgvQTV6bWF1MWYzMzgySVZtbWFIcDdsenFPVmh1SzhNaDk1c05YL0Rta1NzOXlPZm0vTEdrNVpzelc5ZVMwZjByRGF1MmM3Y2xzSHk4WVZmclA3OUxSYWZHTzZCMm5lUW4ycTBkNktUcU9SZVh3SnpnRlFwRWtiU1k2RkpqM3NWN29iNFlpN1VGWFVTdFI4VVVEdVErQm5rK0Z0TzVndFEveDI2U3VjUXlHSVVLRkdvOWtYNERieC9zSjlyV01Xa1prQXVuSW00OVpKOW02NUpNWUFHYmJVLzJIcXRjYTdLNWZ3QlNzZnNiTEJlMVNLb2N5VTUwSEtXYUoxZXpzNjlnanBpL0xmT09TYS9JL0xyYXhpMEJsbUE2YTdFMysxVzhRZXppLzNmZ3M2MGFROWpiUFBPUWc4d3BUYzhwa0VYeXpKekZwcUhYdnZiVkx6V2t3UG43Q2R0VE1lSG9WQ2QvVkJBQjcrRjcvdnIvdHQwdVh1ZXNKcDZxR1hLdk1UWitnbFA2KzBmQ2RaQTd5VFBUWHVxRU15OTg1U3lQbi9wV0ZqZjdnOVN1RnFveFNnMCtjR1cxUVFiYUJST1RINFRzSHZvNjVIVGF1YmdIYVd6OEl0MjFRTkw5bE8zb1EvWUJ3b0tudk9LRHU4bE9xWUJEai9QMENwL2F4TW9jdW9YZlBON3hmSlpXaUtPWXBCeWZ0TEpIUUhUeGdEWlFtZURkYWVqVUh3a0lyTXl6K1Q1Z01pYmtLd0pHRmdScVQzUmVidEZ6c014MjRLTGY1OWdUK2JZWHNONnc4SDhqWG0yRU50ZTYwVCtobzdTd2UvbEh2YjVtRXhYWkQ1UU9odDgxcllncjczK0VtSVpOQmNJK1F6OExHUWZGTHNFNUJMaVhDei9GRDF6RWdjQkxvZkUraXdmbjZWbEdmZGkyR09WdkZGNkZLK0M4Z0ZkbC9BRzRwcTlGb01Ed1htbDN5bDUvYkZXWThoSExwYWROWHQwS0ltQXErcWFEdDRYZmphc2Q2RVdiRWd3bGhjK1lNcHBrU2VKUW1EdThXOUZkb0xXV0I0NHBQOC84MXZqbk5HWFFaL2RVVkRpUUoxUG16dTJFd0xBeTBaYkwxdzlZOTNwbVowbDJGNUU3a0I5SC81TlNzTUMzaC9vVUtycjhENmFkc0t1ekZIUEp5Zm5YWDBmWkJuRnlpUHhQOTRYYXJwQ1lmNkFIamxDdDJrRGdqN3RRSTNJMGZxRlk0bGJYMEFnSjQ1dFJiZUtYKys4bGdaMW8zT3p1ZllRWm5zNUxLWUF6MklLcGZ6YjJpMERzR0VacnhOc0tYN3JKNkR6RXE4MTJMRDNBTWRPaVJEV0xVZTZFK2E3dUVxblZlTW56bFdNamRvUHNrQUo2Yk9DL2dVc0ZSdHFtSkJBNm5VR3lCSEFEbWhiazJnVjlQV2RmMWh0aHdKK3ZsRmV4VzJ4ZjgxdFFSZFpneHhpZjBVSHk3SENoamk3c1FoZ3ZtYUgxbVR3RmU3UHVmb2R5b05Eazk2TlZkTDI5bm55ZUdaK1V6V3pTZ3F6bVZlSTVTeE1KeldBZDMxYUE5aWMxV1BzaHBLWUJXVnNzbzBZeHBPcnlOanVpUUpKWER1bWZBaWs3cUdHd1VjeGd4NHB4cXEreGZhRHFqVHdoeGlHVWtac21QMGlnQjRxQS9wZ1hXRzJVWlVTZTZnRDM1MTFraW5GT0FRc1lXc1VQaGVBZ2ZqZFdkTGZYbElzRzJsVncvUFJ3bUVzcWc3VTlPK083QXVzUTg5Z2lqMXhvWlowcVE2cDR6Qmgyd1pzV1BqTXlPeUdubWxFWGpwYXEwK2pHZ1lqNW8zdWdlUVE4T2Q3QkZzYzI5SkVybUc3cEdiSGkvRjgwclRQcERDVDVwUGFuQ0Z5UDAwTWhCcCthdWtETVB4QUFZRk9jTkxCMXB1STI4RFNEN1c0OHJDdWYydjRqMnRhSDF2TjRMNkcyVVg1d21zWm5DK2dwVFBCT21URzZBUHFrYkZmZURkVzRoTlBlOGFBdHRqNTBOa1VldWFaczF6dElhNmNJOFZxNTZwNGZPSmFnd1BvRk9aVGxuS2d2WjVQdW9MYTIyOXRVMi9ndGxYNGd6djhPV1kvSVJ2NnI4N04wb1RQTFk3M2k4L0tPY1ZrU2tvZnVxcDFnTzlSV3NnZGsrbDBFZmxnMzNBUVI2NHd4Y1Fkd2Z3bWNoVHcxWHBvWE1lSWZDMm1uMzJFNlVkajFwanVXUHlpeE1PcTBTek12QnVhblJ6a1J1MHpkYjBLdkppT2NyWFg2TCtpZDREdDNWbjlMS0FIaVdBZ0drdFZpbHF1WXVSMHBsWkRIOVhQMXFZeURNdDlSNWxsdzFoMGFtZUtiWUVjMjZxQTRXYXBvUzNzTTRmaHVCRmFxWDZ6ckYrYXJZbGNsd3RIMllOZlBBZi9wSko5TU5lZTJBSXRiQXM0Mk44VklrUnNMckRoVVZVSERmbzY4dE5CRmlTc05xcFhuZHVrSmwvSmpNR0NQRE9WeFFvaWZrT0p1WWQ5RFJIVDdNWm11TWxBajZkeGsxTHZsbk1wZWJ4ZXlERHRqbVY2NlQ4eU9TVHhDMXNTRXcvc09PQ0hzT2JUWlRhSjRTU2VzRjk3TFo4K1g3VUhZbCtjMkltWXZvdzc3M1JObjVYNHVFSW45eEpqUVdOSEVBc29hWTdoNHBPY1BtQ0tlcGduSzlvbFowQy9UN0hOQ0QxVXN1TUFmU1A5SUpvVHJFbE1IMnV3SjgxeDJSc3dsTVE0c0ZndUJQeGlXQTk0dlRiZnp1OGJNYjdqWWJoNm5zRHp5MldNb2RJVEdyWUJWbzQxZ2w0WDdBczZzUWgydVMvc0kwSXo5VFVIVzgvc2NPek8yRHJEbU1ZY2hmMFcrM0krNFBCalhUcGdOdVRDeDM0OTZOZFNUMWQxNkgwanR5MllCMDc5SG9nRHJSdG5pV1dyMmM3OHNvY1FhbzYzMUE4TEo2YU43YU9TTG9udWhQTnA3b2Z1ZVNnZFk4dzE2dUszQWJiYnpEYm5ta3dtVTF2VjVFRFhCUmJXendHMjRiRXZnM1dXNEFsb1NiN2JCbCtkMmk5WXZ0U3hJNkMzZ2ZhRDhOaG1KSGZac0UvT3pCUW1kNEh0d3Jxc0pYcGRDMmw4aWR3dnhXWWt6MXl6R2ZyNnlyYkdkWG5LWmgyVVdMQ2djK3AzWk9tclN6YkltWGpwRnlsY2JjN1pOTituS0ZTbE1Cd1YxUjM1eXA3M2kyN1JlTWE2N2l1ZlkvazhuRnpBZGo1d2hkMWRQYytvL0tqWitpVkdoMjNpOTJiclMvTWdpZjZzMlpBcDRlV2hkUHdjTzNaMks5dHlrUHFrMW5YUVVmeTBxWHZPWVkzWDdvSE1lRkcrVmprMExCZVVUdUZRRzVyTUxJSllaVFpuTkhOa0c0d3JXaTV4cUowRUZYNXJYSXZGa2ZnbnpDU0pXUzRBZW8yd1ROd0YxZ0R3VTRrL1BtTTZzNFpCU3YzemlVam5nd1NGWGRsMXpLNEdHV1ZienRZMUlVN0ZZcUhRVTNIays5WHVvNUszNEJNMDZBajJIOUw0TmV2QllYN3VndGE4NGoxRVdLOEViRFoxcFcvTHRZaU5BVDBoR1dBQ2tMNDlHZ2V0NUoxalJjaHVHVVRlc1htVkV6SDBsYzRoa1BoeTc3WWtyanloODNMRVh4SEZheUMyVmptenJsZkR2WndSMlVGaktkaHZCbjFmWWFmdi9LUWpFTHRaMjNybWlROVoybCtsclRaZFBVc3hGODRVK1FDelRBcjh2UExCYndWYk10OEh6cUtLKzB1MFg2alNReWUyYTZDZ0RaazlaRk43Uk04QWg3WTFydXZ0cUpGbmdMdzg3QitlRCtpdlA2RHhvUGFoZ1E4S1BHTk1oNm4rU1BWcjZwUTZMa0JlQXY0bmxsRzE1MzdFTW1GYWZVNUh2b0NnajZraC81anNoSGpuT1J6ODQzWE80OVJlWE9jK2JOd2M3b1Q0dVpnZWk4Q2MzWUVsL01qeVB0VE9DUWd2MWVSM3ZUK21ocUVLTmk2TldRSWZmQXRKZkYxS1NGeTloaGU4R1ZwVnY3NjI2Tzc4b3Z2VlR3endyWjNwWTVsZlU5TmFQbXVpLy9kc2FmUW1odlpqMXBPbk16NzRQbHZxbmVHSmJocDF0R0ovN3J3aVI5SEorUnlJM3pVOGV4NGE3NmNENUtVNnhkVWRmSGVXVEtmWThYMjVzMkRsUUZ4YW5PZ3pmVERqTytPeG9VME5yalBSbFM3UjU4U21xTkZ2RGN1VzZ0MHlaMHBuOHdaS2hQM0V5TytMeUlhWUg4MGgzZlFGcWQzWUkzY3haajQzdWpDdkdHS0VLTWMwZyswT2xsL3hFL3c1dVdDeW04ejRBVHN1Wm41TzJadmNsM212TmVBOUl2T0FkejJRWXl4bWcyVm9oUU9zTXV6dUhiWWZHZDlEdm9ENVJCWE90MVRtOGRZMUdqeVN3eGZzZml5SGswN2hUVVF1RUw1V2RHbGgvODNKL0ZRanNkYldJSEtVV1dubnMzenJpVnc5NnkrTDlMNitoZzdvbFI3QlQyLzA3SFJyUHVFNXU0YlFFczMvVm5ydmFWL0dpTC9IbUpjMEZFamR1Sks1NDg2Z3Z6bWx1ejYzdm9HWlh0Yi9mTGRBWHF6dm53OEFNdzQ2eDNzY3ZnZDNYMTd2ckNuMzlialh5Ylc2bTlIVDQvM1BsaHpGUDVab2JCN2s0UHQwWDQ4TFJPWGEwL2V1UFRoZUcrOG44eVd1K0I3djM0elBQekZFYjhSem5lOEsvR1kxYnlCQnUrRjA5Qi92UEd1dVBHdWxlZGJhdTgvYXVIUWUvSHZQUTBQY2Jma1BkdHk0UTJybVpxRm5MVGRnUXhlbjhXY3BFVU5zMjMrUHhZRm5BUzVtNUtWUWcxRlFQNnBtSDRIc1hKL3BuMnYwdkZ6RUgxZU1qZC9YU1U4K2lmMkFEWUp0VWRkc0x4MHJEQjFyVUhndEZmTHFmaUcybkZOcy9vYk1HMHJ3bWNnbjhTYU95dW02SDBQczVRUFhzaVVxbzJwOWV5UTNTdXNJZXFkM2VYNHYyTS9SdHBkOG5aTTRpOUFwYUZ3QzY0dGNTajY1amx6S0pWNkFyM1F5cU5GbzZKYUk5RHhPeE55eC9PUFlNY3h3b2M5VXhyMDhVODQ4NGpPRmdGVWhSQ05QNk96R2lieHd1VTdpSkYzYVp6a3JZd0w0bm83UDhweE9xYzJaZ2VlcDZaam5hZEpwWVJxeFRjUWR4VHhxOTBieSt4UWp2MXpuZGI5RmFLdXVhK2s4bUlVbnRKYzEvZnIvOUZ4ZHp5bS9YTTh4MmJ0L3R5NUNsM1NSK2w1ZGRMaDRIb2Yzbm9kKzZUeTRkK3NpNDlKNXpONTdIc0pGM2J4b25FY3AyNGZIc1o4bm5zUXZKdS94aTA3bmRwZ0hzVHpQb1hueWJQZjVTc3YyRnVRYzRCb05VQ1YvcXBnNTZCcVMvOEZ5OU96OEZQeVphajdJZmpEcmF5R0x1VHJKUGpyU2c5WGNGVk5mMHZ4cWg5VU9nOTNlbksxSHNXR2FNL1VtTUtPV3hHRHdPdjV4TElqRVNIUElGNVQ3WS8yRy9oVTlXOGFxanVVcTZDM0hsSmNrMW9EbG80TlVCWEhNbmhpR1lMOThtL0s2L0MwV1p4NCtzNlNUc1ZodGZkNWRwZk5xOGFoRzNLL1VBUmZ6c0RRbXZiNGp6MUkvZitqUC9HNnluc2pTSnd4bmdoWkJIbGZwdEU1bTI5RjZFZi9NWnk3bGJJZFNNMmNEZFJGNHJmNEk2eDZGMmdNN3h4cEFIUVh4NnpxRlo4cnJ1aDlZczZkTzhvOWxUSnpXQjlaaWdQajFqT1FtenRVRFBJWVR3UGhpT0RCZ0I4Yllyb1M4RUtZdDh6RzBuNXhHdkwxV1c0TnBJbllzdmVXWVJxNHFMSFp4TVNaVlc4TTR1QmJNOVQ2NFNvZjNsREhFSUQwRjh1QVFFL2N0QS92YVVMdDhhYzRoK01NUWR4MkhmbUpzTU85aTJtN09aNXdSdTliU0QycGZXMk9hcGJ4Y24zZEdjaGl4S0hyWW5sUm9YUmpRa3M3eUJjZjI5MUZjc1hZL05idnhYSjAxc2R2Zzh4dkF3S0puclpWM3N5UDBlNDBlb1Y2bks3RHovZENZVjZ5R3cyYnQ5dlc0anRBcFhISmV5OEFhVlBLb21sRWQrUVgyYjlxcHFzaE1EdXdEczFNRU5DZEY2aS8yVzFyL1ZlVWk2dm1wTytVbnlWR2d5RlBRRjhjYTNjbzNSSTZBYldnV3Z5Yjc4eExqbEU1T1l2ck1GelJDTEN1bnBLNGh3dCtuOFZqR0t3WEwvODhuT3hMSG9UNmZDejJSZGI0cVk5bjFlcUpHSGRpWTJ4c3pYcGRuV0RaenVqd1R1aUdwY2NROCtVanFncG5QSkJna3Q4eDRuR0dWd2ZOMWNubys0Rk5BbkJGOGlvN2dtT05jbFZsT251WVV5ejNOd3NsTVA5UjFDODJkc0hyc0ZaYVJ0Z0o1MFhDSWZlQXlwOU1CdkdpU1h5OTVpUGxlcFM0Z3ZHSXMyVytUV3B3dXFUZDdzbGxOVU01cy9ucCtYWlg0U0pYMFUzdGVFcCttc2pFMWVzWUUwNWZlTTZaU3VNcUg4ZU96dlZBUGRxSWxUdExiTzhsWTBKNUd3amRsekdsUHhtSmtqdHQyTW03YnBoRi9tNnFDOXRUYmo1Nk1SQ3U2KzVIMHVCc3V1cmwyNkg2Qm1aR3o3aDcrTG5PL2V6b0RsZ3RIVTV2VHB2WmhkT2dkdmsyN3dranE3dFNuYnBXZlY0eWxGRC9tSmU4dFVjN3FYMnB5Z3ZubmFLNFlpOEFxNVZjanpsNm5Cekw3RGZERWlLKzM3UFIwb3pQUUpaRzhia2EwRC9IeG1jUXRzbHJkd3pJY21yMXdJQTlrdlllbUZpK0tNMTZ6cHZ5Z3AvYTBrV0ZvTTkxUVEzM1ptZWljTWFQbittTXlHeFA1RldibDNmdjlBUW9TdEtXem5naDJZT1hMaytmdGo3QThBUjNpS1oydEM3UEZONGo1emE3NUdEcW12SENsR244UW12enlkbHB3dnMrV2dXeElZanhhYUxFdE9JazlsUlBueWVaR0IvdlJlUnB6bWpuYU8wOG9kcDVRNUpocWU3U3d1ZEcwdDlOTXU4VmlQUVMzaFBGcUk1K1VlY29NN0kyQTFyVFdmRS9XeXdENXpDUGJnK1F4SzFsVTRncmF0UjdhcWc2MzBsbTE5WWs4bFRLdzQ1NFhLN0FUeUZueU1NZUJ4b0ZJL2cvNEVKNlgxUndmcjFlZk1icXd6ZjBhYWp6NmRKNlJWZE9WM2RYem1OV1Y0SHVqc3hJcHZhcU91ZCtvdmJJbXVTN2ptdjNCUkgvVVltRXF2V3VvUlRoNHdoNUpxWEZ3akhyUEV2amp6L2k4WjFVT1VYSE5QV0x2a1hwandPdVkwdC9yTU5xcDdYZmowOTVuS1RtRG5VN3I3cG8wUUh0aXlYNEsyM1FBNzRybFlZM2VmaXFGMld3cWowSy9aZXdBajAycStsSEt0YVg2VEdhSUlVRnZUbG1mYk5adEZIM3RGKzJ3MFNlZmpzcDhTMm1ya3p4d0dROWg5UzhOdVh5MHhoRzJZRmxYVzdmTGZlekw5WmZIdnM3eEhrOW5UQzlJenBjK2Y5VTMvTFNxNWl2SSttaFdpSWZBRW9GZWg3SFlZN1dkTkk5YzlqSFgxNW9yaU5RRzhMUi9UZWwrWVpoQlZmMFRmVThxc1NoWlh5R3pVN0R2ek5HNmRvN2tkdHJiZWgzc2tOU05jRjUvQkQ1cjBJTitWc0IreFBzWTQ5Y1VsSkE2OUJuaGR4T2U0NDYxTm1nK3U3NmVLeGh0d3JQa004TlkvT2JWc05qOUF2TEVZYURzRDBQc0Y2YjYwL2g0VGE3MzJ1ZDhQcE5ub2o1UXJiNzBpSi9yTXNWdS9CN1VpdU5uS20xZkxOZDhvYk4yeGhuMHQ5Z3RmVjFpVzliV2RBUWpkNnhCWmhjbmQ3V0JQYlArUmFtN0dacVF1OS9BM3FaY1BoVHdlWXh6WHpFMnFzUnRpSjNCSnlBbkpvOWJlRWFwL2VKWVMyeFhKMzdTd1d0Z251b000ODdDbnJSM2pza3hYVGR6RlNNZlN2VitMRnBMUU96alJqei96RDdoM2l2WndzVUVVMVo5Sm5kblBHSjdFZk1vdzJQNFBobmMyRFA3THR3N3lEK1FxVk11cG52RHp4OUxLZkFNckRVUmpMWmUzWDFIVGNnWkFaMkZXWTAyTmZIb2M5RXdGWkUzVWVsNXJLZ2ZqcFlPOXZGb2JSTER4V2pNU21ua2FtdHhjQlBtc1VLdlJCTkR0dGIvbXhLYjFvZCs4aUFMbEtpVU05UWZMSHUzbXZxMXUzSW03WFJJc0RxUDFxOW11a0FQbGRKSm5USjN6T2FjTFJ0MWxnNzRlRi9ESUVFUnM5WDljdTlhV01yT3BpN0xWVm5Mc0MxRWE5WXpMNW5CT2ZoeEUwUEZOclVGMW0xVXIyd3YxS1BYOFdkZ0p2T1EwaG4wL0hVenFHVzNCYm53RDZ0blZlcHVLSWI0RjFydnU2RjlKaHVnay9FS2VwdnBhOGVmb1QzQXBKOWlCalBTNkt5MzZTb2NtL3VXYmFHREJQM1pSSGJUMzRRMWgzUSs0N2VZdkZmL1BmeW5nU21BOWNmVEtoeE4xWVBXWmI2cGxua21XdHZXWUkzOXFublZEd256dGgwNkg4czl3YU1aSEU1N2E5cFowS3ZUbE5iVXBjdzI3cVBJTTNmUHA1OGZmY0g3ck8wSmVzTEtYaFBDSTQzek92NE1QU2ZTVDJUVThXZVdYOVNldkE0RXVlM3Z5UG1BUHUyVDN5VG54UkZiYWJvaTd5bTEzeVA5Ni9YOXczejliM0YzUDFxTXVJYnRVdFdpc2ZrRXlFdWR6RTg2T2UwL0Yyd3NhODNCMnJGRzFFZlJvSjZCK3M4UnE3c210UTFrMXBtcUdIbVFvTUlUMnJRbndZbjhCSUdjWXpOSG5OUllsN3plZHlDR0NmWGlDdXZoYVI5b2owdG90N0R0MzltUUdPTTRaRE9ML2FMSms2VEhrOXd4b1FkWjlsTEh0SzNCd1NZMWFqc3M4K2FUNXYwZWYvWmJ1R3FjTVl1bEdGd2tHajNEMUEyVm5EV04yMzJMYVEzbm1QbHk4cHJHdXpuWGNwRFhQL09jU2k5aytQUlRVOTVCZjdYU0M1bXNiK1lwcjUwbjZTT244bWpkNk5HbTk2R2JiY0ZJNU1Mbk5NMG1OZm5uMzY5c3A3S25lc2d3R3F1NVYyV2NpUGJhYi8wK3hRZUgyZUhBazRkeUJyQnlmc1lmNUFEbFRRUHJ1dEVmMXNScXpsM3phOGJzMXhvbUtQSVNmZWNKS0ErazdvclluZDMyYUtydW40LzdKV3IxNjJXdXB6SGpyTVFsWjNOa3F0bmcySTY1R3F2UktONDA4TkxCTmZuTVUrU2lGdjlhVXR6SnVOYUhpRlI1VTlYRUhjMHZ3alJ1VzJMREJxZDhjYTFmdUhHZXgzalhkckxmMm5HSDFUVkRqeTZkSlVoamJKM3llZnppYUMyemdaV2N6MDErL1V4ckxXdjNFWkU2Y1RKZml1M0JrVVN3cFZTbHd3ZGtKdlJ4REdoOVZyLzE1UEdFNEtFL3ppZVZ6eFRnYzFEUUYrYVRsUDBRdEYrbG9vbXl6dzl3bk5UZUJ0YjJZRWFMRHJhVnY4dU9hdGo1YUQ0aE9NWXV5YnRBUFN2cko2Ujl3NlJXbEdGQlZyR3hGZnlPd2tjMjlzWG9XVURNdENoN0piQnRTekFwekVlb2t3MFVCSDE5VUErZGdNM2IwRmUrZ084c2dsNGRXNkt5aHViS3NSK081WFBsZjdZUGVFMVNDeHJ4RHVublRDRitocUF1ZW92M05KUkl2TUVXNUJ4eVM5aU9sVWcvZEIyajUwVDNzVnA3OW13TmJDQ2pidmV3dW5ZbTUwdmErc1ppTjAxY0lkQnZsVDI4SXBnODJFWlErRzFndHJrSllBWm9iZjlRZjYrczRXRDZjYU5LbmRnMUg3ZStFRDR6ZlRrMFIrVy9mMGhjcVN2Wk02Z1MzNEljbk5SZVFQOUtpdGVWSHlGZXQrRDJvNmZ1YnRSbDlncjJ5YU10ZkQ0eEN2WHBzWUhuTlJRWW5YVTIzcVNEZFV2dXR6QnZHSGtnZDFhQkdTQzRrMG1uOUlHWlhoNmJlNUtMdFBRc1NBeXdkVUJXSG1HVmp5YVArMUc4cnR0QnBJZXdMMjRkK1N4T0Y4UHN3YnF3NVNwbzRaWTlxelUvZjFKaSs3QWFwR2F2Q3MzRDBGNmlYTzBkMXg2S2dEOGhwUmVlNHduYmhOVnZIT3RhdkQ4c3kveGtsdGZwbnRwTGhLYW1xMUJkOUhiNFR0VGpmRENKYjFNY1FSYmY3M0JraGdUdC8rOFBJaS9Wc0YwT09TKzNiNlFFUXhEc0hGcXJUMk5XY3BuTGU1YVcvNjlYNHZmMVNvaGo2TC9INTJ1MkY4NTQ5VHhPbDZHakdJbHRHZXRBMmgzaDFoQVpRV1luYnVyZjVWVFoyWHA5WStNWTNNcnQ2NXpmSDMwWkZrZllHZ2xpUGVsYnpQTzJZT3lDL21oTGVzU0FWM2YxTlljV1hSUG1RbFE1U1J2TEhvcDVZVU5Objc1aWRndkROU0g1eVdwdUI0c1ZPbjFFdmxjd3ZKNnlkZ3R3Q0xDTXAvWllPRTBNRHZRS1QzMndNY2x4bHpFNUxKdjZ3ZFpQMWhYK0pPSG5ocjRiMW1yYUpMU0pxdTl0NEpsOFpjOWpYN2pLdDhIY0pMQkRXZC96cE5HekwzNXpMTDNsdFFZdk0vYTdCTE9uWWJjMCsvenJNenIweUJjMmg2RWdMd0V6aGZCWFZmOFJkN0NQamYxQTdHZXhQVzdLUFFwc25oT1BhWDFqSjBicW1vL1pzSnVSMmpKQ2cvbnhNemF3b3drOTBoN3J4MmRwQ2VmV3RFMzY5bjY0bUlXRFdCUkdrMGVCNlZNYUw0ODhVdHZJK3duQlZqaTVMMUw3Zm1CMmlKUUMzNVN4VGwweDhqbjFMOGxNbVJtV3Y5VnM1Qml2MmVHd0xLU1lGbFNXR3puZVA4eUorZit6OXg1TnIycFJtOWgvK2FaMG15eUVaK1Fna1RNemNrWklTQ1NYLzdzTHBEZWNlKzdYN3E1eWRibXIrazUwejZzTjJuR3RaNlZuLzdudStiN0cvbmYrL1RlZS9mMGJKNmI0K0FEMjlmRU9UdmJ2dXhEKzBmYlhXYVNxdDl6ZWJRZnU5UzlyK3ozZlYvL0xad0FUUGlNUGNaZXVPM2J6R2VtVXdYTVYrZXIwSmMvMnYvbU0vT2VjdUhPVisxREZGSU4vNEJEdWU3OSsyYysvZk9yemw2eDdqL2tQbStxUGVwM3ZHdUwzSFFUemp4dzNodklYVDlnVWQzZ2JvRys1L3FkLzZlQngyTmZoZlY4Wjg0LzdpMUI2RFB6MkR6Ly93UWNndWhEVGZYRjZjVVdDdWg5ZWdoQ09mNTNOL2R5N2IzL3FvU1AvM0V2NDl6emFyYW9HdmxsSHYrNXFTZ1N5U2RadkRBNUY3emphejkxRHZ2TEdnZjhZM3ljKzhwTDRBeC8rdi8ydUVTUG1YNy85cWIrRjN0eDRaUFByUHFoOUhwNUgrOFBXK24wWDByL2xYWVFmRHBVLzdrejYzQTIzUC8rcFhkN2duL3crNGNOTjhhbDcvdGhkdTZ6K1l4OS83cDNZMSthUDJ1MWR4cjNqUjI3eG5RZnN1ZVArcmovaUpEdCtabTkvK0JUK21pdjd3RDNmZUUrcjN2Smx4eldISGRLNVd3TGh0bjNNVmZtNTIvdkw1L00xdHR2dk92REw0VC82YjgzL2wvL3RLMTducVdQa3VhLzBHMXQvc05QYlJ2cTJpU1NlbmtJbVBYS2d3N2VPeHQvKzdrTnZmZkhFSFRHazVGZmQ0SnNmNWNNajhPMnorWG5IUC8xd0hsOEcxKzduKzdlK2xOdVByL1NXck0xUlc3UEw3WC9udFRwNEJ1R1VPZktsRDU2K3NBdVBITEhNK2psbkh2SW5kdjdMN20zL3gzRkI4UEhkcE4vOEJlU25SaG5iZFZGejlZNDQ5U1FoUCtPN0hqRjZ1SXg3YzdoNlAzOC8rR2dhL3NpejJ1ZjF0Ky9vVHp2dDhPMTg1OEVrYjI1bjZGOThCRi9ZL2UwTFAyS1MrSkFlZnFpREErMnZQbHcvZWYxZmRVaS81dkUzVjEveEhUZm1uei9jWHNoaGcvMXpIdnRkUHFlZTlBb1E4bmxGZm5HMUgvRk5jOWYxYStnNTB6dXZuZno3ZlpYNjNZL0ljN2ZMdDgvcG56NHZ0ZjNHWDN3WmVNeHhQejc5UFFiMzRGdHRVNEVhSllFT1BMNTQ3V3RrZURnVU9UOXo4T0hLaG9KZGI2RFMxN3NPL0d0OHoyRnI3R2MxUEhEckg3SFRMOXpxSkIwSkg3NDVwSnppSSthYzdCaml2MmNmMzk3NWh2dllqaHk2VDEzNzEzelFiZExMMHhHbjdkenhvN3VnZUtXWnI3bVRVZVhETC9tWnE0L2M4OURQM1lVN25qenNIUFVXSStTSEZ5eUZJODlzLzN2NG1UN3h0ekpteUwydnoxUTRULzk4NTlVNzh0aWVuemoyODgxM3Q2L2Z4eC96YlZPMXIzRCtpcU9iazhRbUw0WEI1aDlaQTVmUlVTdndVMGVYZE84NDV2cytvTEJOT243ODRWZjhPdk4veUtuWHZ0OURZY2M4OExDZjBRTnJkMjU1OEVrZC9vbC8ybVh2dXkwUFBranJEMy9IR243bmNQSGJ2bGQrKzRPTTc3bjZtZnMvK0x2MjhiZjc3NnZmT1M3Zm5HYlZUeTdwaDUvczllYlUrdkZiSGhqTUMrSDQyTzl2LzFHTXlzMXhiN1Z3L3MyRDg5YjE0dDdmY0lqUkhhLys0bkY4MjJRL2ZEby8zS0Z2dVhKZ1RMZExkM3ZNTjRvWWtlOEgzOHJQWGFsLzFuSi8rZE9QZU5TTzM1ekxML3pZN0xvMS9aZjM2cUlLSFh1NDM3R0NDeDEzMGRuWWY3T200eE5iQWFRdm5rMmZucTdvajM3N3lpbjd5b3Y4d2pDLzZ6LzBmOGx2MG9zL2RLRVRyeFJ5cmFtWFF1MTIxWi81YXI5ekRyOXlvcU9Pckw1am1aM2J4dFd1cytFcDdkem15SW43NUY5ZnYzTnN5T2FIUCsxZHQ2VjgrVW4vZGIxLzZvYml6dnpPcGZxM3Z2eHdEUDM0Sno2MVlFY096WEZIMng4OFgrOTdiNnlPckFMbU4rZkh4NjQvOGlZKzQzeHpuRlJIM3ZDdi9NRnZIai9oWEtqV2tTZDN4QW1PZkUrUHZ4OCtpWis5L3Ntai8wL3l4TC92RWZqbTIvdUx5Ky9EMTFXb0ZUWi9PSGIyLzErRGI3L0FrVSsvZlhNK2Z2LzJtMjh0NlQ1NTlRSStmY3VaTHg1Z1gvbngwZjhwUjZCUFRkOG45OWw4eWVnNy96bndjRndTNU4ybWYzenprUDU2MTV0SFZDa0NObmdwSFZVRXZkd0czdk9Udi9mdFc2N0Q0NzUvYWUvYmxMNzliUi8vODFlTzMxdFBCNTE3Qzk1biszZS92L2hxbjkvMzg3NXowdC8rb1NNSDhGdU9kbDl5dzRQLzlEbnQ4L2hiNWg1M2MvenpqczJPUjYvZEVYK0hnMzdYaC9JUmN6eDhJKzlZeENldjhPdnpqRnhyYVZKWTZ1azBybUk2dkcwNmJ6NkZYM3g4KzdtRHZzNmRCNUZITGtyYWZYTFNXVzY3TXRTcXNOSjhaVDcrT1RGWUpWR0ZreU5PYnhUcEZ6ZExCMy9pVVFjR09EaDkvdFJ2bjc1WEg5N0JRK2FRWDNLN1BtU1Y2RzVYait5dS9yNUg0VG5weUVNT1h0N241cmdYTXZDR2ZiNS9jVVcyMnk5ZDhlSHpDcjdyd1JQZi9lVDEvK3lQRDVmeWx5NS8rMVRlTXBEOXhOajJ2MWR2WHUwdlc3UjlIVFdSQXJuK3lyMXBJaS9zd285Zjg1ZU9PK0t6WDdHbno3c1JaZjJwTnovMjhKR2I4czBaL1Z2dmZlYWFYbU5rT096RHlEZTMwRnU2SHg2d24veTA3L2RYTkc5RDh5NGI3cGMyZmRlNy9PejFkdzZ5MEw1Mi9CQ0tidjBQanM2LzVsWmZiL2VEdDRmL1QvVGF4Lys0eTV4L3pOLzcvbk9CbnlQM213ZnlKSW5CRWpEVTdaY2Y5WTF4KzZZSU9uSzN0ZC9qWmorK2IxWVpybCsrNVQvclBkLzc3amVINno2bmYvL2UrcC85M3J1LzFNR0xFSXZOY0szbzJOcGx6WjgreTl2ZW4ydXYzcjVza2xRZzUrT2V3US92WjdLZTYzMnZYVDEram40NEw1OWgxN2F4WUF4LzVMQjA3UzVQL2xWV1NIdmYwTy9jOVgyUER1NlhETzJvNHZPK2d5L0U5ZzZ1OXliMGo5aGJHM2NxL3ZmN2Z2R29NTU4zZk8zSU14Qy9PS3B2UC9ucXpQQlp1emVmOVdWZmQrNnJKbGVHNHc1L3k4NFAvM1lvdUhPNDYxRVByelByVzc4VUI0LzR6N3ZHR0ZFZmw0bytjcjdlZnRoLytJRStlUk8vODFQZmZHZS9PVWovNHFLWms4NUZJbytFazVXNnYrODBhSGY5djl1WTIxRlRpSXozZmE3ZVdPSVBIdGdmbjhMWFhUMi9mRVNYNXIydTEvN3dLOXkvOG5VamdYL2ZYZitOQVkrYW5ESVc2VnZneVcwcXRFZSs3c2NPTGlXaG5HS1A3RU1QYjkvbjV1QnZPMklGeC8wQTczRjgyeEYvN205ek84NXdjK0M3SWZ5ZG95R21SNzd2RnhiOG5hLzBKNzc5bkYydTdiNXF2cjdqRDMvd1pweS96djh2bWZxYlYvWnJudCs4SVQ5bjZhZTIrMGUrL1lPblNNRDY5T0QvUG5qMlgvdmNKS2dLaDc1eXVWcEg3T1RETjhsLzNiM3dPeGJ5TDJQNnJoMzYxa1hmOGtGVWQxMWVKbDA3ZmVxUnBwVDV5V3Y5dXYvazc3R2FVK2lyQjY3NGxVdjdvK3YyZm5zSGgrOGZmZjV6SHY2NUozL2pwMy9NVWZWVno4Ky92dm5OZit5SWp6NXF0OS9jMEorOHpxOCtiZjhacnZqNENhYmREZytRZHJkbjM4Lzh4VTM4WjA3RFd4ZmpXOFI4eHdTbVJHanJaQ1VScFNVUkJTYWZrWmQrYy8xS0NEenMrK2R0UzhPN3JIOGVQSUsrTW56TE1lRzd6YjVlYjV6OTJlTnAvZWx2clZ5WTZuWjN2L09UbGlIdW50dWxldWN0LzVMRDczNTEzejZOdDQ4RE5lSGR6b3M4Zmp4d2o2OU9zUmkySDN0NC9YeHVWNTgrWXNXeDEvWmZHUHZxZmZPNTcrdjZDNmNjejd3U3BQaHdxcE5Rak5MRElmdHJPVTlyTmYvalBmUHRLZjM3WEZheFFQYlg3N2x5dnZKZjN6ckZEOWFyYjA1ZnRudGFLOU52VEsrc2YyTDZYMmZnMngvMW5iZnVtV1VpbXQ4NTFiOHd6SWZYa2R3Ty9tdFBQWERLTDd1NU91eHJrVjZEZ3h2emlGbSs0emFvdWRzOVpkS1oyN1dpMVhlZXhYZTg4VS83NGErOCtFTm1QMk0wL0FOamZkVXhmT2RVSEhrM2J2MjVHL2FXb0c0ZE1WOTVHK1lhT080cmJjTXk2WTk3UDNZNVdBZSt2SDM1emhMa1hNUUlObnh5c3Ivd3k1ZU0rZGdiTHBZSTcvb2ZTVERoNUZjZHh4LzI5QThlWHYrd1EzK2R3NERsRG45SndORG81LzZScjV6L3J4akV0eDV4L3JTOSsrUTd4dWl5c2NBUHNXdTJzVStQWDFoeXgycWgwRFp4bFg3N2V2K1cxVC8yMFUrTTgzdGZGRXExN3htNjJIVlc5cEZMUnd6eGZmL0JTK0w0Y1orejZLY08rb05GRG16ekswOUs1ZzNIVkUwTGY0WmZPVDNjTWdTSSswb1E1OEkwNnBTSTdScDU2UzFscUM1QXlEbXp4MEtwcVZXcGZuUWFVd3hLZE95NUk5ZndmZWZBbCsvR3A4c0FPZXFxdjk0N1N2elBYTzlqa1pqeWFDczEzMjJxaXoxZTNqa1lSOTdRd1ZmMWxZZDQzQnZ3cnZkcE0wRnRFL0dOYjNkWmNmQkl2dXR3ZitQczcvNWRpK0hnNlkwOUh2L21Mem4wK0Q3V1g1eXVQLzB0QXQrNGZPSUZoL3pZejMrS3B1aTE0K2ZBVTIraGhVOUpseHp4aU5ERGQvazQyVnpMbWc1dW14YTB2cyszKy9yVThuNWp0QS92OWplLy9qdSt2SlRwdTk2M0RGSDVoL044WDdQamZveDlYODlGZ3BCZEtxYmxycS8yczNia0F2WWZyc0xEN3lIOU5ZNWozdjdSOW4xWEJWWklEVzlMWEd0TEZjMFlyaW83NjN4eG9kYXhPTkoxR2RvM1hOa3lITnl4SE5lV09OS1NPRlczRzFOMnVWYTNXNld3b2FBd0hEeVV1S2RzTjhZb0NlNXcxSGRYUjI3Vyt1YlZKVmRKYUk4MU9ud2JyZHIrY0tkODVzNzY0MTczcnp0cDZuMWU0aTZGanpzaGhYUzNYZGRQcmRZYyt2TGhDLzNjQzcvTGpNdm43cSszN3RwbDFiL1B5ZXMvL3UvLzhuLzlSeDkxMlgvOG4vOVJkUVg0eU5KcS9LOUoreHFmMmVPL1BtL0RyYjBWNi84eDlNVi8vSmYvU0tObnRMZHphYzJjb1l0UTNDaUtvbFRMS1Rtbm9DaXFWQ2lLNGtLR0N2YS9QNkZMbnU5L3FGQ1Q5MFR6bWIweEppWGJLaHY3NVlHVlpWdWFqenRiR0djekdXZFZPbjVPR0x5SlBINlhXYzlreFYraGI3UktMYlZLL2JrdnVkdHQyay83V3BxVm1ub3FyUEZVYk5WUmJLcFZJQTdTR0djemJHVzkxc0dxdExldjU4dnd3TUZmenpvdlpmOWtTalh3MUNIdXpTbEJpa0cycFhYdlYraWJaYmgrMmpiQkhIajhTVUZNVzYxTjF2UEtJSUFwV1BPZTBGZjdIeG4xOVg1dXZkYk5TN0c1cjkrSE1wOXVaVnZsOW1kQ3dUM3lSZC9QcS93K0w2SFE3dnUrakMxblZZUzIrV3JyUTN3WE84WVMrVzBYYmh3Y0kzeHJlZVdrd3VldmR4Lys2Ni8yenBFSEJpMWY3MWJkOEdaM0VwNmdLZWV3MU9JSUVKS2lNaGVKNVQzMmQ5MUROeUdjYkk1QXRoSFBiMWxYaGlHY1FDYlNYaHorMWlxTjFDcE5XRG9kaDhXZGE5bmQwZ2ROZUZLY3NEUGFkdGI0UWRBNFY3ZUYwblBiR3hhenNoMzBjdTg2QVJyQ1RxczBzdUtLQmFiQ3ZHdDBjTy8yK3p0RDM0YjVMWUxhSVdyVUtVU2VZZGJ4am1QTHFPY1crL2RNaUVxd1dUZFExcWhyMHVDV2dhaThXMHRiME1pK0RYTnd4ajBYazNQdHVBbTNvQStocUhKV296RWIxMDdyQ0VsTkUwMEh4M3QyTVpMc2ZWQVQzN1JpeCsxaUNPOUNSTjBjeE5pc3ZsVkNJVlJUcDFuZFRXWTl6aDBTaDFRY2IraENwK3hqb2ZSTVByeEd2dW1uRUxlbzNqQ0h6WWpLdGl3RTdyRHVueDRYWG16WVhLeVdRNDYvSXlXbnJNNXF0UElhTXM1cXRpN3Q3UGFHQTZ2Si91OHU3QlF1Z1F3RVYwTWtGRFZ4Z0pMTzlCS0Ixd3l2ZlNrT2licXVpVGw4aVNtdWVZa2Q5ZVIxTXEvNkx1UTB3YUo0d3hLZzNJN0htTkRteDlqakVaZHZWZ2ZpQTdOWDBKQkxOYWR6a01oMW1RZ2hSUWVsSWNWTEpZc0x3OUFkcWdBMTc5RkdRNDRINDVsb0NpNVV5amJYOWdrU2VnNGJiaUdFVzU1STMxeTRuT3kyUlIxT1dXSlhmVGtPQjhjYmhabzEvZEM0WWM3OEFESjVGVmM5R2RlY1ljc2NXYlpnZVl6WVVGV2RKeHNoSEJKNHlxYWd2T0RDcnBTMjdzbjIxTTNoQnRycFd6aXE1Vkh6NEpzRkQ2VWxMTFBkdTIzY0RwalROL3Q2YlVwSHZvSjJHRndCRDFVb2ZJVWkzWHZPYzFZMk9VejhBQXJhdEUxYS9oVDRadVh4Y3BNZzVNdHJ5ald6MHpaQUJpUHV6bEFrd1BjQUx1SE13d1hONXZYQTRUblBjMmEzNWRrQVNmQ29lWW9LcTZ3UjB2SVp4NytjWHI1NnJpc0Z6Zk51dHFwcWVlWkY1Vnc3NDdsOVQ3WnEyeXp1UmwvMmRVNWgxekdRMEhhZzBOci9MZHN5azBCRGE5bThsZkRwc3Y5YmFYa2tnTlNUeHgxbjZHNkpMbU1oQldRaWFhUjIvQkp0eWJHWFROYXRYQzZVQW8rL1dRZzh4YlpxT1hWYktpMDlwMjRwcUVnNEptTHBLMXNvZTBJTEpWMzdTQjFsVTJ0akMzMFhOamFWeld4ekNUcjNGSE9rcmRuOFlzTURiS0h1WWduRjF4a09UYkgxVWk4OEpXaW9tR2c1cTVENjBqaXk4emdTQ25sNlZXeDMwdmdDOTFqYXRVVVhkMWhUaWFDbmtObHA1NkN1cUxCeWwvRzBhMjc4c2RkalcyWHN5bG5OdXFSM0diYi83WmNjMjB6TDJZeDEzL013OXNZdHptYW00TU53RTRwaUtNcHlUTm9WcTRSSVljS1JmUmdaNDJXQmJENnl4MUNtVDNQT3VVeDV0dmNkVlE0SWg0d1FyTG9zNHh0Q2RiTkF3V2dkOUtsZmhFNE43NUZnNGxSbkdhdk5MV2FDUEZ0dmVJUnRZU0RCdlc0a1IxVTRtSEw0MjJVOGdTaExwWUpSaUI3V2s4RDJHTTlLRGl3SUVxQjZlb1lUWTU1TWxZTllIYXhwRmlYbVlnSFBtSlNvNG5LWEtxbVNoSnRjRjdkS3FvU05VUnllTXprRHdjS2kyTC9zVUZyaGFNNXNIQWlUOXpaSzBZbTB5cG1jMlhBWUp1OXR4cUlYYVpvenViVGpBdXdpVlZJNXpqVlBtNXpKcVM4aGtCaXBrb2JuYk5PVXlZVzhxakdSVkVtMUpKZXp2YmNKYVUxakxLbVNIcEs4ekliSm1XSllDaHF6OXkxV3BNVndUTTVrNDdKanFFcXFMbkhDelFabkNxWnRGOTNlWm1XQ2hJTk16aFFNdXk2YXZjM0tKQW0zZHhJSnpQKytzUlZtY0tXalpqaWxOUURHejBwQzFDWGJ3bkhqRVlJdkZJR2xLSGxRWkhBaWdKTmFMUko1UitMZzVWM2RpVUZUS0MwQ2dVN0VGRFhQTCsrYUNranNQaUZDTGN5OXZTSzNpc0RTQmFWRXFvRGx0NU5RYzhzWVZ2dnY3RXJmRU5yaG5sdTlWVDg0c0Nrc1lGTzZ1bWhFQVBCOEgyZWNWakpDQlFtS0MxTkl2VDNBeGVORmFPY3JNOWYwRFdLWVlQTmlwYmRIUHlLamNRNndWTU1ac3dtRTJzVEFDcjYwOXFwTVZ3UGhTOG1hUFFaajR1ditiSE50OE13djkrODE4UUZkV0dsVkhuUzl6QVMzSkc2NURUT3V5Sk1xc09hTjQyVFdJSVhSczNVTW1JWnFsYW15WS9tYUhpNVdNekJwYjZGbkRicHFpNDVMM1BUY1JITzIweUhLK2h2ZXJuaFlJbGU2ekRTR3BoY3FFYW5WWGdNYlB3TkpMVnNPUDRIRTZRN3IwNXIwOGh3R1QyK2pRYkJmQTVzSkZHRUxsSWQ3aDQyZW5oV1dPSjg1dFFrRkF5Tk5mTDNxb2RnOHEvd0VYSUtSNTNuVDhLd0cxeDVUdmZrM0tORnRHVHJ4TG5rK0d6NEE2cXAreXRWN3FvdVY2VzNSaytxbVNaY3VyejZmNmp1ZXZsWUpVbWtyVmp2RTBtL292Y29SVTlaRHNiV0xUbmhWdHIwUmRNUHdiS0tjU1hLbEdwa3laY3Zwc1BTRlJDVGZxTW5rMzkxb3lhZUZvT2RFTkZRS1pzdVo0QWVjQkM0OTVNSEJsV3dzR3pIUnZPb3VsZGlqSUNCa3VsQUhtdDh1YVphOW1qWld1OVhNYjAxSlZ1Zk0xcGw1dkJhbnJKRkhzbE9lVndNNmhZcEVTR1F6MnNDZFRWSk9qSlp3bkNNeW0zem1ocDJCNmxGaG10WnVQWE5EMURJZ016RG1BdXhNbGxPTlpWcTcrZlNWQ0ZEQVFtaVF1TTh2clhKdm8vK1lnNGY3UXBkbnRRUzRFSFhWUU5iM2tpMW5yRlJxeVhwL2QybXRrNjhuUmo4U1M0emc2SFo4a21DQ3lkMWpCcWRwd2tpY0lNNGVGS1hxVEdhRGUvSlZDRS91N2dXdG44ODBOMjZOYzczeXA3T24zeElEa2NIMG5BT2lCSktvaVJLdjdhVlYzczNpeXFzeFFPZDgwa1ZCT04rQkxpbkQ2bmEvS0FJYXFaUWgwSlcwS0s1NEVqbTF5RkZmQkYrckRxWk9Db0Rqb3k0YWFzSE91UW1BMmJRTGxJUUQxUWpKckdhNGNEU1cxU05MR1pjVVpJbldISytBRUtBQUVxQm5kUUh4VjVJM2krTHBBcXZYT09DSitkU2oxckNXVDRJOGtTZlZHamdrMXZzS0pxdjJHdlFvTWs5WVdPWmdUSVB0Z3RueWZFcU5PekE5OExPQ0llblY3VlpheElGOHFwOVBFbWhza29QSlZ4SVFGL0tGeUdUOUVtWHdXamRkMEtrMUZQTzFDZGdOemxWNTBOUml2WUNpTVovSjh1bytZT2llMzVwcDNBZ3g4QUUwNkJFTmovcnpTMTFqSmF4MUpYem9rR0RoNVNZWFN5WGRMMDJOc3k1WjVXZUNBU2RFQnJlWGVnZmozdWwyTTFkaGtEaDlOUnRLSGFmMXBBcDFDUnJoYTJTQmZsK0Q1QXIwQ3VBQ3ZTWXJuckI0R2x0aWdhaHMzRFk0OEdKbC9lMDBYZGV6dytQWnRVY3VqQjcwRllnc090UzlvQUVzRjh6bWc1dEF2TFpwUFlOYWE2UDh3Szk0VXNpdnVEcy95ZFBTRTlDY0l3dUlOUzlIQnNzU3MybkQ0Yzk2anJiYmliMi9lbXN3WHBmcWR0LzdlQ0h2Q1VoSTUwYUlHOURBQU5tOFFkSHMzV0ZySUdrNHROdzI0dVZtamExd0szaUFWSEt5eWF4YVhmTWdTYmtUR1QzUFNaTG5VSlVidGk5dENjSS9pUXdsNlVaYmNnS3FRTVNVTHpvU25vdEY4YStOUmM5NDB0Z245akx3K3pqbjhjb01Damt6ZXRUbndLckxkTGZvWjAydDdEelBhZVhLcnlkSHYrbjNRQkVZT2l5QVBINUFnaC96NE5PbXdhYXlvUHkyd1hJZFRQNklBcFAva0ZGSWdCTmwyN2FWSlFpQ3NLZWI4a0pvOE5UeG9LeTBFbWkybmMxWFQvZGgzdUZnbURSZVZqeTNDWkdIT1Vnb0lteHBsWGZQSXJkcytaSmpETDJNVnFCNGFrS01KS05pdTJSTWExQ3ZGNmpMZzFKSGhtTjhqQTdSUzluWWd0bUhKL1hhcm9RVjRwU2FpekRaNWlodEFJdWVaNnN1WC9yRVgxMjJsanFhbXZOcVhRR3daVTlzTEROV2M3c1VONFlkbE9YT2dWR25neUhYdFBuck1laHJnRnpUU1R4SG1tZzlTZnJaMC90ek5hV0liRlBsamdXTzIxWUhJdFJhWXd6ZVcvcHM3enJUY2xvWjZqSkR0SXhPcnFTenptK25XaHpLL0J3ZjgxWk5zRHVBVm5CaG1zSEk5VzZMZkYxaW4zZm9ic2pyK0xnTUNuRGp3TERYdGFQZkRvb2pqbGdxaTJJTGdTcDBGa20zalFub1luM083M0QwYXJkVFlaTmRjdDczMFQyMTh6NDBNZzdoeThBcGRSdFBnQUtZYjZydHVEcytnTHJjWWZKeEU2ZFFiRnI3VGtERXBiNzFGdFJLVUVTR0NsQXNhN0hyYlVBWGFuT3lRdEs2Z0diakE2c3FYeWJUNXhCZlhLNTVudCtlZlkvQzN0R2V4VW5ndFM4NTRPdDMxU01VQUVOb1VuYnVBdGhWQlNHL1lxMFBwbkJFMG1zUENtajYyZ0xLUVcxd3V2UVE3cmx0SnVJNERvZzFkdFozR1NoTTVpTkV3dTUyWjRxWnh2dlQrSUJPcWJZRUNzZWNiUFcrNUVUUXJ6YXlnQVJrUG5kNUpqSzB0bVdUTzUzcUsrRDI4cXpZcVY0UUFLQ2ZwK3Q2ZjREQXZtNkdxa0NaMk9KcVh2Q0t6eFlHUFo5U3Bjd0c0Q0U4V29SSWRWQlFwbGdFSzJ2UndhaFh6M2V0MnMvWE1vTmdidGtrM1lKMzhNb1BRaFBWNVJuMEo5OXZWenpObnEvcjZ0MWhxY0plajlkanFvT1RabmJ0Y0FtWTJDZXYwSG02TUVQWFl1Y3poRHJ1a3VUcUNQWjRGeklaMjRrSVcyT0F4dklWSEFWcXQ0Wnh1V0J6ZUxHZ2FVRzYxNFRaSUFnWTVEa1hWNk1iYnZmejlEVEVPZEZFaGJidERXcHpKM3J1T3E0NTJ3QWlnOW1GSFR1eEo3QWduTEhFdVg3bVkxV3dSQk94RTRLaTQ3VmFncEdtNk9oSzV3UUF0dFVXTnFoYkFmM2pRUURDMERWWW9sSFUrTGlzMEFXTzFkTVNQMmNjQktlbVZ6bVU3V3VZYUdRa3JUMGlmWFVpQU9vTmxrOHpKdmJUcUNRMnQxeVk0a2F4SUppUjRNMXJJclVEcy9wcVFhcGVZOEFPQ2d2WEJWZGNoUWg2RjNMSkpKWW1JT1lOc1VCRVdxeXBobWJlc1lja2tMUThHU1E0Y21wcHlCWkxMRnNWVUc4M29vNFJOSG5SWE5mTW5jaVdDTlBqNTN3ZHAyc1RlaTV0bjBFZDNLWWNCQjVaTGFSNkQwWGxmTTdwZ2s0bS8rYmVvRXczbTBWaHVWT3VGN0FLZ2F6cndrQTVYZWNFUHdQNVFuWmJPSXNKcU9vVDlMeGFGRVYzNDlKdDRZamNnU2wvSWJFaTdrTzVNUE5ZWGdGd2d1WHBkRzJoa3ltZGRSdlp6NklMSUNyWVBJc2NJSlU0VEZJdUVKaUNwRnA0N01YYUxBeWVqZ1RzUlJlQVhoTVltYWI1Nk5XbTFHOFE1T1FZRWVmNXZjV1ZDUVFCRFF0MEVTYmcwTVpWYUtGc2J0WWVjSEFQT3JtNlQxc0luVlRtenBQTTlVcmdBWm1lbFFGYXcrUTVnaDdZdFBOMVBldUNCMHg4bHFJRE1LRXY0TEhvV0dTK1FOMEZRTlQxWkpDTjlNdjVCR3VJTFpSUUxla3N0WEt3OStCSnJiYzUwM0ZwODV5THk3eXZTMi9qd0N1cmhYRHpRczVzUWk5M2lBMGZVZmI4OHEvN25xNVp0ZC91ekhtaU43RXVVZFpEQUxKTVQyUjJ5SkVYT29XbElwY0tBT28wMjhxWlB5T1hCVk5YUE5uS0dhT29rYjg5MStzYXVHM2RmK00yYUhtMkMyYmN3VE15bjBmWGNWeUIzckZoSkE4ZW1YbEFMNi9KdmN6dEhac3JvdjdXTFozWmhjM1ZWcGtsSEF0VHJNdVZidkhFVDNwMW93dzZ6NmVtZmZYK283emRMOVg5bHA4N2JSL3lIYlllR0tEWHhYeHpyaGNHZWk1WmJkNFd6dUVseTJyS2ErczM4eDFrVTVZY2MwQytjaUI1VDlEMWhzbHVTcWlUNkQvZys4MkhDUGNCazh6VDI1TFJqMjhPSmJMVlFyVlk1dmZsT2pnUDVQcEVDUVRPKzM0aXlUUXJJM01BUUowWGEzcEVpVWN3b1FBYWpuTk9QZnlVRTdjRjR5NWVPOFE1bVR2bjg5a3dYbjQ4T0tRUk5iVTBLMnNLQ0ZrcmxtaXlqVFVJeTBFUGpqWUNPS0twbW83TFgzS1poSFBUOEhsQXR3Ym5OWHQzaUNxRXlYKzBQcG1EUFE3WUpVcVU4OGlQenljSWJlMFRJbDBRZkRxQUx2ZXhIeitSbXk4M2EzcnRZZTVCOW9rTjREb05kbmlWZy9lU2tLdEFSY0FzenNCTXpsUU1BQkQwbkowSUFycm5qalVoSWJ5TjlXb05FRStxKzluTndIZzBVZ0RJZHoxSDVUYzBIbEh5aGNZeUNndVB0TXFUbUFPYnU4bmttMnVtelpKTUtKYmE0WWkwOW9rVk5TYkxBSncySFk4bjZRNE9lbEJZY2x4cWlnY0pPM2FvR0J5RlpXTHBwdVJtSzVIUkRmZUxFNm1DRlpLbURHeDZwaGE1NVY2R2FSc0gzUXE5QjEvUmxhbjBPNzVLT3dQcEZpNFcxaWRwRHNpc0EycVpyNlk4NU1ScjBLMWc1SXR4dDNGMzNFWW90YnBsQ05LdnAxdjQxM3NEU21JTmlOY20vL0hXdDRWazdaYjJSOStDNDhhKzllMzQyQjd0Y3JZQk1COU53V3lHM0lqRE9Tck5HOHJPR0NjT0NuRG5RYk1SMy9vMjlQdGNycW1DempLTjQyUDFoZGo1VFJsSGNSZElTNnFWeHNsV29oMEwxVHNXa24zaWpsaVM0b3RuUUJReElHL2xIdUtRc3k0dWM5TFo4c25YSTVwRmhvMUFURngyaUR0Z1NVbkFVZEljcXpPK0pMNW9oVERGUHZnVjUxcmVkRks1UnlTYnZBY1QyVmhHVFZKSkVIRXpWVnl5ZmlDdVV5bTZMbjhiK1RpOVE0MU5zTmRubFdkdi9HYmxXQkJ4NklRU2pWc0VGeFlTWEVPM041QlU5WGhDVjVJc1cyVFdRVy9XY2JrWmRFeFJyWUJLZlZLcXFuSEZpdk1qNk1GN0lKNmIxYXRKd2NNVmlxTURUeTR0blFBelB2SzZvWHFRZXVyQmdRK2VGaENYbWxJa0ZNQUtLSXFlWWdSczhGZDQ2U0VPMWtTOVk5a0JPakUwV1RiYW9vTndsYSsyZk5laE1HMW15cENWem5acHo2MUNrbTVkMjJrdkRENGlzWVdESmE4dGVrNGU0MWx6TE1nNHlPWE5uRVhKZlkxUGp3RzlObHQxZTEySGhKeVpLZXIxTjRiR2RValRHWU82WFMyRTcvQXh2cllySm9uSXhkcWUrNW1EN0VTSFQyVFcyaWgzSisrSmZ1ZzYvOEtEeFF6S0JWUHN1c2h2OGN6aW50ZG1JM2g1SCs5ZFRsOW9iSVZZV2ViRU5SREJsNDB6RC9LVldNRmR0YllRSWtmMHNZUkFzZnJOc0NZMWZ5S3pwc3R2eGpSdVlCK2dLenB1WUp2Y2JjQVhTb1ZTQkpHaDlaT2pXMG1vZWpkSGJvRHNLaUxDNDBHQk9NS0QrZGtIZWlYZjdTUjhQMk83SnNoMGxxWnhJZTB0bUt3cUx0WDltME9rZDNnbUJ2aDBNblhJOGhFY3JzY0hHbzhid1NkUEcvQkZXcUVTUFI0OTN4Nmd3cnZ5RldMcG8ydndGWjR3SWdubStFeWtFSEhpZWJqT01ZSUdYM2NCdER2aEF1YjkyR21WMDV1UUtpN24vRXIzMjBJTURtNGptNTNuTjA0VDJhRkFZNXlBTHM3d3RsSEx1d0NtalFnQVdrQlJUS0tMalpYbkUySjY1ZTF5d2RQWEdwSjFlN2xVdDZGUWhuNUdSVjNIa2pWVXlHdC9rWHBTTlRkaVhGQWkybW9rblNmUlpQMEhmQ0xGUUtBS3YwZGgxMTJCbk85UElnODlMa3hOd1pmV2hpSXkxMWVqbFowdUQrWjZmQUJFMElQSU1oRkRuYU1ncjdnQ3kyNEVSdWw1bWk1QVp3L0laUjVsNXVTcmtHeWZRUkhXT2xzUlNaSUU5REI1ZVZaSTFwYTJUY1N6eWpGQ0FGK0lDcWJuWkhHQ1o3dmlVYm1QUjJEaGswcGhtYzZVWkgwdjhoeWN6VjNXUkdyMkVzTmc4bGVjckhjQVFtU3pEcVQxL2prUm9LaTRuQ2lpNEZrSmNRd3JXb2dnc2ZRQ1o2OVNkZSt0VGNnWDYzYS9QT2hxTVc0Y1RkbkZhbVc1eWNsTU1abnk5ZGFUbzAzSysxNkZEVjgwV2JnSkJhTzRWTGZMZnY3bnBESWxYRWg2WWNWNE1sS0ZMWnVUVEJWcXVsaW9PeHc5a3l0WG1kcXVuSWZjakdndzVFYXl5V0FzTEc4MzVRd0E4MXhLRm4rREw0VlpGbk5ZakRabkNuNys1TTNBa3lxdXBBeU9Ocnd5eVhSQllQR3p4b1lqd3RBay8vU1kzVjRqbXhURmhtb3VWamgrVnRSWnA1ZjBoWVk4Zk1KVHhlc3RXZHdBSUV1d0hEeWRTYUdCZDd3NFk0RXFiUFNDTmNiNVBCYjFhZS91S2xYU3dGaE5KWk5DN1ZDN0hDYWtNMVVYSGFHaDE0WVI1Q3FZMktwYWdXclhVUUk3UUJkT1pveWE3cmR5R1pHSElTOFlsaWJBalVUU1ByUTRYRnVHR1U4V3l1SU9PNU9CNG5UMEpDaFNadW5tWG5ER2JUUGZ5YzdWc3R0TVFRKzhLa1JuWnVlVWFKTFk0TUt1UkpKYVk0dWd0NTlvT2J4aUFabzdEbnlnQkFaS0sxY3JYZTFjOXltZW45SFRRMFhzTFBCTjJBV1Z2Q2JpSys3d0hUZWJVQ3N6QmxNTUY0TUQ4aDVmRlZRMUhWeGphMmxUM3MrTWFIeHo5LzJ3S0d1b0xGd29CRDBBNXM4YVZ5b3pVbGRNaVFmb0ZGeU1ocWJmZmJLYlVMTWJmSDZjYTV3N2RQNmlrem10V01JaHcwd01TK1prdDl5NFhNUkkvQXlFNVh3elpJRmRNRVc1TXZPK3FCU2QrekNKWmVqRXptZUYzY0lSTlJHNmtPUWJHcytZenM3djcyQXk4ZmN0d0ZEamRRWll1bGc0bHc5Y0ZPMGJjWmROeUxYZFpPS3lqajFiTHdVNjJMZ0xWZnJoMSt4dGVyYVpxbmhjenJyVVdLcnB0a0dYRzNkYyt2aFVoYnJvZUozTk1nQW9yVkRwc3Yyc25seGRNdk8zZnhwVzJBVXptSzUySDNTRDJ0QmxDUldndFZmS1czVDh5b0ZQbTFJaWZpTUlGQldIR3hJYmd3cVJEQlM1Mml0QnBUdlpaQllpbjA4YUUwS1AvdUs2S0Q3M29iS05ObUF0T3VITXRsQUdwT3NETmdpY0RlRFhNMlIwUENQMDlqQ3hFQ2xaNkhOTElOdlJpUFNGR3ZmV2VhZ0NHcm42RFVvSzhUMy9oRHZiV3Uyb0pIbW1JRkszVjZPVGl3c0dSQlFsc2R6Q2hhZXNuK3JUNlhSdXQxVmpBL1RjVkRreWxJaktjUDRpeUZKLytHNEg5Snh3MktOUVZubmYvODFvZ3lTR2x3WXRuODNkTHR2Ym5VeFFMSmtyVm5PRmRad1REZ1ExSm5CbUwrVjI4Yk8zQThaa3VSa0ZJTzN6dE04bHFZQjEwZkpudWp0OHp2djhnejJ2WEtTclhqSFdlejRuU3crZ2ZmYUQ1dTJianZwOG1lM3FSVzFTMDcvSENhSjF4MU5jdi9CeTBPOWpRQWZ4bkhIU1ZDa1dmU1VrcUI5dDhJekpwVTJIa0dXOXp4WjRXamFoWkZpc2J2YkpwNjhFdEFFYTQvaXpjTWlRZmM1QklISG1XekVDMG83ejkzYWtSTlpHeVovTnlwSVBXWE5QUVpIV0xoaXJWRmEyNm5zN01OTUNoN0p5em1tcmZMVmtNR3Z5QlRNcVFGb2tiaHBySzF0MGNDczZYdUY3VTc0R0l0UldPZmdRbFlpVDlFcXozckdFeWRZeFREWnpLano4NS9nMTZFRjhzWm1LMmJDaStld1hxUDdmYS9XLzErci9kMnZGbGJOd1dTUVdJc1VkcVVMcEdETkx0K0VuZGZSME1SZ1ppcktaME5aWmxJUnlzUzVSODluQjhWUFlRdTVGdklpcEFrRndCRi9YRjNGRC9HdmIxZkd6Z2s3cGE1WnlsQVE3YnU1WXVwZ3BUUmRxUjRWUzFxd0NSRnZ5L0ltRWd0bmNyaGJrNm9NdG0vQjdUYzNHWGpDTEJmUHI5UXFWRjJ1OEtJS3RHRHh0Y2ZZQW5lWVVUVVdQTHdPemdDS2FWY0phNzdZQnVhcmU1QVZLcG9sSkxhMEthOTZnZERrOWpRSFgvUFlXTXpOSFIxYzZZVlVlNGN2QUV0ZnpKTS83OXlJTG4zaTZDWVcwV29JNXI3Q1hOSWRuTE9rVXVHUHBHOFJjaFBMbTFkNkRicys1RHkyaFVoaWJYQ3dVMU1wV1VtdGJHUU9peGZmdk9VZHc5b2JKR3ZUVTdYTzJoc2s0eDJveDZ6cExVWE9oc2JkWURwWHJHY2cxc3hrdWpJK0NKQnoxS0s3WlRhQzh2R3RZZ1BtR0szS3BDYXo1RXR3N0hFbDJnUWswQ1FBTXR5cjFKY21LTTg0ZmUzM1RVNTlYa0V0VjNZcXJ2Q2F0NitQRUE0b1VjV2hPYVZVQkFFREpJRGgxUFNrMjhLdXZGNmtPbjhqTjlQMis0ZEg0aVpwazl2Sk5MaEp1ZzlwdG9keERNZncrSTYvYUttZWJ6VzFaeHNsaWxhbnlwV1ZaOXNaQ3pjQ1l5UXNOVmVBK0N5Ly9BVitlMGVSajRON1JXM2VMU2dQTEt3ZzZnNjE5dWthamVNaUEyL1pjYk5WbXR3MEVhMUdzbDFHOHJ2TTRUYmxoUGJzdGxIckVNcEF0bStpMkREeHhKbldMUTd4RjhOcDdSSElOUnpiWml0Q2dXM1pheFQ2ajBRdlViUElmSmVRa3Vla3VTYThidUYwNnNZQzlNdDJmcWpGSk1nTmR6cE51NEg5aFlBYnlydkJKZ2U5d0hBQmJNRHFsYW9jT1lKSldhV0NKSVppZC9QNnV0NGIwMnI4b2U3Y3JpR1Fqams4QUhSTnVjekVRUk5Fa0EwZ1N1VVpQb2NPeXlidVRiSGRLWHY2Rmp6Y0U2WjQzS0pKNHZpSjNHMDJUNHJkZFVJODVRTndJRWpWUjBXUWRtVEg2RzNSS2RMU3ZhOWJ6YzFzelJ0TngrWTRObjBJaHNSUXVCTjF1TTFUQ2ZOZ25ZQ3lDcjdzRzVwQzd6QmFGblRQOWh1WVRlcXVrU21QeXJnMTEyWEphaGpyck95YTdxUnBZa3ZNTjRVRjJ0TUY0akkvWUl2clMxK0NJajAvYkdielNFN3J0ZHBxRnBBQ1pwZHJEWVdLMTMvQUFNSzErM0RZaThNL2FySVBQSWwreHM5eWNVcTF3Y3g4R2dDNkp0YlphUXFvK2ZMZ0lnb0RXQUJRUmdDb0syU1lvb1p3WC85cUE3VExiWXl3c1IxNENLcS9KM2RTVnlLNFhES3h2UVpMTnp6c2NuZHgvdFVlRlJlM0dwZTFHdUQreGNqS0g0eHlZbk10YklWQmVnRTNQMGpyM0NRN0VVUUVHMitWdTc2QlRZT05uaDFvaFVUbXRiRGlrVnBzR2VGTjhqd2EzTVFmaWpnZTNWM29CNDU3cnJuUncxZG41ek5GZGVJK2hpNFVOdWcybHV6MS9ZYzVUdStFOHJiL3Nkd3pEOUU4Sk9BZG51Um9UTmtWTkZBZnkzaHFJQ21LVzVEVXJxTHBsSGtBR0cza3k5TU12NmwrNEkwNVkzQ1FHMENmQ3dra2FQbXhybHpjZC82ODQ0UzFKdVJzVXFjSFZqWVlFS0tMeGNWbWZUR09aK3FEZ0t3Tm1qYjdyR1BORjZLT2dWV2syZVlDbTZmckoxbS8wbzhGZk1ZT1F6eGdvVnZHUTh6a3VOZTNiMXlLdzdTcExXS0paTWtrL25Xb2ZaK0R4SmRRbEdLMVB0ZzZHWW5QYmdoNFFoVVYrVHRPdDQ1a2x2ZlFRRDQ4Q1MxUE5tdXN0ZWpvY1I4QlE1S3N0UnpvVVJzMDJvZzhvQnZNSDNHd245dlFTd2hBbjZKUWtTUmxGQkQrbVFES213S2F6R3JDWU4vbStlQmY0RGtlamc0cE0xejB1cy9MbGt3cGZpMjVuaDErbTFjODBGU0JYcFdPNUY0bGtwWEQyOTRlV2ZGcXdrNjJPODBRNHgvaEs4VVROOHlvL0x0dElDcTIxNUlOeUxvVHBjUUxXaVNpa1BPcjF0ei92OWNDbGNobHRxakQwQlEvVDNCcElXbTFLMlhKNHc1RlpTREJRQm56YUl0aFUxanJCcnRQakNxRytVQmJSeFhwd2dBTFlpdjI1NWNheDlNblc3M1NPaE12YmY0cndKTHplem5KejdyamhZalFuVzVmWVVySzVoY3ZFQ2lmTngrR3pMUExWbEpmOGRIZlFRV2xseTdtSi9ZWS81YjZoSVRoS0pTNzAzUGJ2dUI5K3FiRXU2T2hTNldwVEJvcDF2WUZpdlNBNmZIcjZWa2dhTXJBcDJiNlBYTzB4MmMxZHIySm1WaTVXUDBDdjNQQWpweHZ1bDBvcXBMM2JwUTZGTERqV2x2V0EwelZ0RjhnY0lxdUxWRy9zY2lQQWpWMXYrK0pobXluSWd3ZHY2M1hIWjN4K2YxU3hYR1BQNXpTZHZXM2JzRWZ1UkN4dkdvN0Vua0YvUDJmWnd4NW1BQUJCbkhqSC8wNUtCVUs0T0wwSWJmRlBkNnhiQStUNlFxOWRvUHN2aEtSN3VCMGlqeTdQZVg5KzVKbFk0cG5yazBnMjkvYXdVQUFZUHgzWGRHUnhiUjlhYncrSVRoZUYveFByUkpXRW5ITFUxYXBKSHU5YVpUUzIzTEVvOFVUM050ZkZ1OUFUY1FiaE81NVdwMHNsdFN1UTA4MmkyRWN1REo3NURaWmtFdmZPSTZBTlNVVHVkeDRoMGxjUDFKNC9ia1FkOUlpMnkyRHpGZ1BSTzJZSG5wTjhneUFJdEVMU3ZOb05yc0hHcTNjYWw2ZDNvMVJpa2w3ZVlyOVp2UHZpTG9uUHU4eUduYlR5M2c2Ukc3elErQm5iWkFWb1Y3NWFDaUJuaXd0VERJYlByMG9PZ2dSS1VoQ2JuRUZ3VzlmeElUVjZnOFNpWGM0VWR5YkowSWFFMkszeUxWdjBwUitKTlVhR0JielV0MDRVVVN5UW9WUFNzS2ZhZjh1T3A3ZGxVS1J5eklvbjB3S0liQW56Z2NmWE1BaW5vT0tqSkpubWhrcEJJbHN1bE5zRzNoRnY2ZjBIL0JKRUVUMVJMWjc0ajNiRnFZS1c3T1lrdk9OM2o4dFpXN2NOdVJhekpFcmJTQWkzeHJ0Q0Y1bG44Qm5NWWVJT0ljZ2NuRFB0NXV2OTlwUjdXSHA4NitOVGdLekIrY3JPa0M2cklKMU1ZbUVlOXZoalBVK1h3U054WTNCZ092TjdJcTZBSGpxbENwYnJPNTVrZHhrUTZQNE5DanE1U2pRMFV2TWpWcGxQUFRKN2R4U0RDUkFvazhOSDFkdkRTZzFkZzJWZ01GS1hJOTRGZ2xvQ2poNGFxMk9yUHlIdTVjYzN6b1pJL2Q5aTFaeFpCQmNSWmliVDhYbEFYL0hrNllMRXE3aFJUS3gyQ0ROMGZmQVVlanUyZ0E1RlFWQk1OSkU5a2FmWjY2SnlxQUtCb2xBVW5lR0lERWIvT2tCM2J5QmQ0aFFRMHhLTVNLVENsL1RCRVJEb0UyanVManJpb3VrcEovRFRkRHAzeEFWOHVlSUtyRGRNNXNNY0J5Yi9nV1Y1WDRMWDlmeWNnTmV6SFpmWGxhOFFrbERDWGcwYlV6RGJrS3dudmR1U3ZhOGpUY2xkMkhsMVB0VVFBTHlLdXBRaVllN3VzRlNQaExCdi9ib0V3WHE5Vk5pekhOMXlQbXMwN1Y4WERNcTZmRGpCanFmRi80aFhLWGV3emxsVVhaSkl2Z3V5OC9KdUY2dWhkNXlka2lDNFFaQ2Q2UHYybnJKTlVBVmJFUlFrMTByVnZadGUySVZQQjZUSjdjUU5weTdLYXdSQnpqVEtiL2l1YjVFclhWSXpXK0E0Q1piM2NOREVCOVFCU3ViUEZFV1RpMnh5dkhOWDZ4NkJxWCtON2ZFcHFMSVVuZWU1Ny9vRTVqeVJLOCswTzZLeXlFNjZYNm9IalJJa0VVOWxUcEJwbXBlbi9UZnNHMGRSaFY1am1WNWp3Qk9GZGJJNGc2REl4Zy84RlhSTURVZnB3SlYrc28wYmlNallqaWtCMHZGRFpjY2hsendsNGNGNytRU2dKVUN1WWNFWkJCdDZpTEkyQlFtaXdqbzVlZldHN041SGx4TFpKL0p3VG1CNjg2L3RTaTNlWlVFSVZIdDJrMzl0MWt6bisxUE4zNWVKbUVEa3Rlbm50TTVSbjN5U1Zjb2lOcmZFSkhiZTVCdHNnVGNsdVRFb2ltSXhRUkRFWXpMQ3B5ZUR5K2dEbGl4ZHdOVGxFRnRZd3ZNNUl6VTBkby8yYkRiNXp4b2xjSExYTGRVRWhmeGIva1B1b3JiTDJZWlBaRzQraGRiZTlSYVZuWEI4d1IyWE42VWpwdGlseVR0ZmhjN3QwRWk1bVRMRThxUWR1WCsyTHRXdGJEc2JmNGVaZWxDQU93ZWFiNXh5bVZ4VVB2bmlJdDNjeStHN3RRZmxYR21iRUd4QnA5WkQ4cSs1TTE0MSs3dVZhWVU0bGI3aURnY3pSMyttZXovK2tUY3pVNFpRM2k5a052azd0a29IeG1na1JxcW8rbDlqYzhFRUFtQlFLYlZzQUFXd0ZQQ2xORFd4bm0rNkVaTEpGYWdsbld3c3d3Vk9UdzJ3T1pwaWdQTlp1bGo2Z21qeHN6dG50aWF3SlhUZmRkN0lndkJvQTlZZ3ltQnJ6SXQ4dzNKOXhrQjlBdy84c2U4blRlelhRVGRDTnJrQ3NKSURsbnk5Z0s2ekxuSkJGYnM5VkhHdmEwT2NXT0ZPdGRiVGw2cmIzWnB1U2tkUVlCcHpPMmJpd0lKaWE2T2h6cm9OdVhxVWpoZmlFanlFd2c1SEJPcnlnTTZmOXFITG5maSt3WFFkdk1Cc01ncUZQY2I0S0U5UmxpOFRRUUluWHgrcENSa1dBakh4aXdMTFFMa1VWa0VVcEp3NHJnQUtQRTl3NS9USWI0c2djTVlnbWFLS0t3T3Bnbm1MSWNHMXJyQnFPa01NOUs4NkhtMFFERVNvV1lNZUVFUmFvVEFOZmRicGx2aGFzOTJwc04rR2hTNW5MQjBVY3I3b1VlKy80MjJ3ZnRZMHhxQnZ2L0tuaXFnWkx0YVRPV2YrM3pnWEVyVHFmaWtrY0NJQXFFc05OWVNJRkFxWEpCWWh3U0ZvY0xMRUhadElZTnFmV0k2bUxsNDcrUFNXbkRXZVdiTEdSdmtCUDUvUzRoUU9MNUVnWDVNeDJLTVBrSko0NktQSGs4bXhKT0VvMmZMYnMzNWQ1K2NRZVFldWIvYnhQb1hKdDZlYm9tU0x6ay9QT3NmbFpOaHRFMXB6c3lrZXF3U0pWZWlWWSs3RmFuRGR2TVBKZExKVnFNZ2hYQVJmUkpsRGVMOU9NQTdMTlZWUW5TM1hWRTljZS9taUNuVnliZFpRYXplU2NzbFhjaVkwNEowaXlRL2d0VTQ2aXFFQXZjUjBmU3FLOGFGdGczTmVob3NxMWljNWZhRmg4RVJPS2NsMHAwWEhrZ3BFM1hxQzhQWStJVGkrL3hhcjlUVnl2YmJJS1ZDRnlrd3Z2YUE4bU5LWVNnSUE5RjFlV1NGUVJjQ21LMm1ab3pFRkxpamJndTJDMkx4MXFXOG5vY2JPT3ZuYVFnbEZMdENEd1BIeUNaMVVpajREc2Rwc09IL0pObDEvbHZsTVVDQ0EwT0MrRHdwWjZlMlRQS0VFSnJFR3lqKzl5UjhVMHJSYTN1U2N1ZU53bkNEcUx0RjhWUURLdWYzWXBkODVyMWhZM2NJSlBaSDdIbGFzeDRNNFhYYnNZdUZBSGMwT1Q0ZkZLYlVlSnpKN2lRZk85aFdseUZGWHpGK2JEb1orQ216VFl5dTZhR0pwZWdHTGFacGVNMmtOem81N2poZ2MwZUJBV3ErRE1ieDBFQUFJZmtUczY1RE1xd3ltVUFxZ3lwbnNVNVRRd0pmR2hQZlIyMExsWVU3b2NxcE5EQlRtUUJHSDVHeVNtYWJycTFSSnhmV0pQUHdqdDJaSXlJWEp0b21mNGo3WGprK1UzSXJ1OUdMcmVnTUZEanFmaTR4SVg0amVyb08zNHhWTDNscmVkQnpldlM5QkVUQVV4VzQ0THF1U3hWV0dQamJ0YUgvMFRneWNNTG02bGRpcXNKekpteEd2ZGxzUWFMN1VOSU5tczNuT3ZIcXhwdXZ3aFVxRktVRlI0VVpQcjJQTFJhcWxUVG41dXZTZ3dHYjBnVHNiSk55TVFvaVg1WkpsTkxRRVJXcHlNU1JITXpxNXVoSHl5Mk9LOGRxRWpIRWs5clBtQzZWcnRweEJzU3lnZUZDQXlqdmVaUU1uRGtzNE5KckRaUFJLS1JOdnlPUS9YblgwdE1iT0R1L2N0b0dncU9WNmp5ZkF3d254ek8rRFVlQll1VGtsRlpka21XR1EyV1JTSm1kd1RpdGJBd2ZVZEVjZnZsVXVvWmJBVDhXNlhHaWJteFcvM3hZek5nZG9EdGx5eG5tTEt5UjhYTU1DUW1MMUpRYWpwMnFUbFJEYU1zbHIwZ1VLa21oR0l6TWNiVGpsTlh3aXlKV3JhRDRZUFluZjRYRXYzblROakE4LzZZYTZpODNXUVdVcWZTT3ZTYTNWdDRneVJQcWtidmdabnhOVVkxZlBaRUNRSURtekNTdTMyOEpPZE8rdEg3eDY1OEdXWjZCV05zWFc3QVpuS0ZSZGNoekltd01lVVcvSERLZ3ZBUDZLZTJsTldqcnNndTU0NWdMSFQrUzY3NGRBODVWT3FwUWFpa2t3eCtaRU15K3FzS1ZDdStJcFIwdFc4YXB2RVdQMDhxcjBNcFJqS1dZbGI5OXczR3QxMGRHN0RBTjBxYkgwNE9VclBmYlNhOFVETTUxYkE0VVNXSG9tQlk4dkFxcVFHRXliSGd4Q1RqRmFZdG1GeHM5QUlMSFV3dTFuRzh2RWt2TElLUWJyRTdBYmpSUmRCaDRYNkdJeDMrNlg2cXhnQkxFZXNvbElBWnpiN1liNHVXSlNqZ3hOY1hyN3IyK3IvTDlVdlExc3FZei9xVCtpRWhCUUJMM3NpYk5PRFB3OWlvWHc2V25VL2gvWDhuWmp2WXlPWWY2OXB2ZC9zSmJYZFNpS1lwZDNMUzlOa0pWWjdiOGkvMCt0NWVWYUJlSTI5YWpsbGRacjNTQ0srLzlCTFcrcndGZHZNUUova0IwbzdFTDNqR3UrYktwaU9md3ZVY3NMaDlHZnRieDRsY0lTbkFrTGxyVWxwSGhQT0VWbEoyWnB3L0ZJMyt0VDJQRmwxMmpUTVBhY1ZtbkNMdWJmdFlvdWh3dXB5QXNtQnl2TzVscVdtTm9XRWlxWmtBWVd6SysySDZ6SkpwY3EzQzYyYmVJR3hPdWhLMjhSaE0wbUJCLzFmeUUzNys5VUhLNlpIU2hkcmFhOEdMN2N1N1V5RzQ0WlJqNkZHMjdMUngwWnhJMDZPWDNhMnEwTFdWQ3pPZDJndWszb0dlM3c4TnhtVnJ6em9yS3lldFFWY3ZJcDdOMm5iYnNueTVHaFRIVE5BQWt0VTFBRnM1VUZFdzBybFN2RHlDNHdVekFseTNOVzF4OFlUWUFuWXpORHR5NW13MVdmYW1ORzFpWjd0Z2ZCYm04K1U1Y2ZvMzR3SXN0WnpaWkNOUWZHVW0rR0l5ZkYwNzdWMHkydHJZMlhsSm9mUWp0b2xVYTJqTDF0VjJBQlJDNG1Sd2FhRzFaTzM0YU83YW9xeW8rUjMwS2VweHFPRzVZcXJHNDJoRDlpdUwzWW5hbFpMbzhsaUlsbi9nQ25HN1ZhZ2l3WnlNSllxTWxhbmRuRVFoZ21hR2w2dlRsWkxMV3FkWGlQR3Y3aE91NFN3dW85cXRYQmRNcXJXcGU4NlNYN1hMK1NUWDRHTlYxbVRudE40Vll6b0htMUhGVTFhbGRRRVBJVk9YaHRPczZ5ejZQam0wL2JWMDJsbDduUVM2T2dMM3ViRDgya3czVlBWSm5ZRzFhdmNWMmxXWFRYNXEyd2FhK3h6VmVhMTE1ZE5yd2xkaGlZYnJLdk5hTTZwRzc0TGFTSkx1UTFmSmRDcEtDS3Q5VVdTRFcyU3l2MFRTWGQ2QzVBamoxaGU1V3pHdDB4aHpmYkw0T0VUWFhOcFhIWFM2Q2pEcm8zZFkwTC9VUllIaUd2ckprRDIwZWZIUlZ4QlBPVXRNRm13ZUhUNGZhK0t2dDdGczh6eFFneEViY1o3cHFZcXJISDM3TTZiTzIyWEJUb2hxVjFDb2V1U21lMWc4U3Vhb1orU3R0OEdaandnSHJDODJuYUlhTkFPSno0eXF4Q0pCenhiWnM0dzgwU1RUVkVZTXVFeWpybytWZnFQWHNGQ1FYWE9XcGFtUWh5TjlVcjlhUld6Y2lSaFFDQlc4ZFd1OVJKbnlGaWNqR1VYbFRPclUwMjFRelhRR3lSeDlQYVFlTldXY0plcmxXazFWUmJ3aU1IUWgwNzVUVHV0b1ZOc1k4SnpYb09Qc2J0T3EwQ0dhMEM3V01OdjJYbmwwdzV6c1czdkZYNVcycHJmVUZSRWtVZnZvaE0zcDZvOTNSYzNZbm9pWGthbWpTNGEzREM3cjdTaERUck4wKy94VFVCY2UraGR5K0x1cUZ2ekVXOWhaM1hWNmZvWm03UHE3UHBMTE1XRDhoWU5vdnB0MGp6V3VXcTFFbmRTRkxJK0N6THF3Yk5CVGg3MVlHTXJwcUhYSVZUck9UQW1kd1E0QWxZMUt5Y3dXS2l6cE55VmpJcmxKcXpZdGoydGkyeStwU3Brak8xNE5SYWpkRkllSERuUWtIeExnTm5zbkoxTnlWekRhci9DZC9kbWxKdFI3TVBFYldQbjhqTjQwcktWdnJ0bkVPcGFCNXhDV29XanR1MVNXRUxJUkk2cFJKUHBDKzBKREpVeFM1TThXTC9IKzcrdk5kUkpkc2JoTDhLYjk2M2RUS3ZjMi9qQVd5blZHcmhFWS9nQVR3OGVWVUtJQmpNVElBQjMrR3p0eUlBRysrOVQ1MHFQZDFxcVhmOWNaeEFUQ3RXclBWYlUxVGNPM2ZhUFMyNTdoazFZVGZ1ZllHL2IwL1MyWGlZTTVQckpGdHZqWlhWRlVaYmU5RmV5ZEcwczhBd1N6bm1OellJbHNvWnVIdTYwMmsyZFcyK2w3eGhaK1hjSjd1MHlMMUV2TkxPYm1ZWFRvaHY4VG81WDZjV28xb2NyV3dLWHpMQmJMclhiUndDbWpXMTFWNXlkcEs4SHFLTklYUlA2Q3hQZDVLLzJuZW1vU3g0OXFLaFg1bGM1WVU3dk8yU2hYVjJ6bWpHRFhHL083OFByOG9vWGE4SWptM29YdmU4YnAvWERHSTFpOWxMMCtGV21uTFh4alVZSFpHOFcyaXhkMm5MVmd1WXA5bDFsL0JYays3TnJhMDk1TUNZTzZQVGlyNkFveGswR3NLRWR4cm5ZR1gxWnZlQTdxSFROVHVieG5yb3A4b21aVFhCazBjWUwzZThUdWNFRHphek11aHgyMWIyaktTMjR1dDV0QkFYRjdIZDB0VVJ4MTJNRnNqT2plYk52RGJGMVdyRnJxNGQ3VEMxTXJoemczQTViVEZkVHUvMEJqVFVSWS9lVGswd3c3WXlyVTNuakd5Rmw1VytjZS9hOWI0d01yQnBzeHRwTWQ0eXM3M3RMOFBRaW5ZSVp2a0FCckt5YWJQVC9jU2NYemg3ZEJUNUs1SjR2cE1hZ2dtQ3lTU1JGWDZGMm1OK2txMTNYREFRVFd5dlpDcXJDYlRNcTc2dkNaMnpJWTVUVmJ4MkcrdGh1TW5YMFhKaXRoZnlmT25zclhaK1Z0Y3pFczhYZFYyLzkvZVRiRFBOT3JQQW5HOG40MkhhbmN6WC9KaSs3S1ZnNVF2TFhicWFubGdKRzNLMDd0MERlc2Z2MmhzTWxlalRiQ0o0RWIxY0xpMC9IakZxRzZMVHl0bHJ3MnkvWEp6RGpuWlFsRjVqYzJ3M0JsTmw0OTM3aWh5MnRHbldta25MRmt5NnkrUHBaQyt4NFpmcW9wUFRwK244TEZ0aGE1TGw2blU1RzV2dHBkeGltSjBpaTBMa0xDOUh5Ym1nQnJ5Q2tUR2YzUy9JbG1sK09wODdsai9rT0g4MXVrL3RmRGljN0d3bGo1Z2hrcWViZzlHMTVpTnVPeDBxWG4raldMWTR5dVEwemhtMXdkOTYzU1k5NEE4N1NUN0UzZlZzekc2TzBiU2hpRjdlWjBlR041RTgrUnJRckdZRURaMW5CclN0dWN2cC9rWnFzdmhPc3krZHR0TEVIemxzZUNhMXNLaXRpZE9oZXJLNnJMVS9INmVtY28yaUtDRTVwTFRNenpQWkNoVmsrcHYxd3QvTVE2RzdBKzVoNFk3YUcvTk1IL2k1aWQrSGwxdW4xK3NPTmh0eHAycnBzdTBFWUdlazUvbllud2xiYXpXVk91Y0RVR2d3SFE4YkI1ZnhRNkViZ0J6MUJKTnVPTnRUcTM4VERKK1pTVGQ1ZkxsdUxwN1pnNnlBb2tsR1QxZGF1NnZPcDVBUDJMNGxSek9rN1Z2S05lOTc4OG5RQU11clBlbU1PR08rbmNsT0FJMHpNOW9pK2R5S1dzQ1hWME93WW9jbWJmUkNWdkJNQnA1ZFlTdjFSbEo4VFBHNTZqYWdybWRueldpelZyRGNUanBLMEpwazdiRTNIem1oTXprczZONmtEMFYrcDBKRFpHYWFkKzZrZlg2OFcwdW11NXBLRzNnN3lYSnZTclB5YXJjR3h0U3hzb3R4ZGU2TWJ3bmJ3OElLajlINjVuVjZhLzdlVlRlVExPZUFLTjU4LzNhTHd1VmdrdTFIWnlSdjI5bHhkUGRiUy92Z01lYmVWVUpXdUYzWmhoL2lQc3p3R00yZGtYTm9ySFIzR2NtTjVpbFllNGRBMXJoOHowbXhQRS85NWNqa3RwTVJ4dzZ2SG5mdk44Umg3N3JqRmlEYytTblliRU5kMThHRkhWNXRZN1duTjlnTzdpYkNkc3RZNFRIZ29PZXpmaWhjZDZwcXpBNzNUb2RmZDNYUlN2SDN1SThobGp2aDNnN21lRTJyTTNLbEZiYXhkbXZWR1BhR2tneFlOekF1Y2J0M2x2bnp4bWFFazJQaU5jU1RMSjkwa1h3NXJxN2RKbjhkMm5mY1ppYTFOY0U4UlMyMmYrTFBJc3FtQ3puUng2azYyM2tYUEsvRGFwbXZUZTR5Mjl2czBMUVhEQWl0K0hSc2hZdU5ld2ZXbWVFT2tEZTcvbkptYmsvYk5USTJLMWs5dFh1RGhwaGxUTy9BYjllcXZ5UTVMQ3piYUU3TjlyaTNIdTVsWlRZZFpURHNYanV1MW1qQ3NlVHU5WnQrT25seVN6dGQ4M3dQelZiakZvdXVlVmZjYnBLajI0bzVXOEdTRjkzN2VyWmZTSGhCWEE5TmQ3S3lDV21nV1IyRmFmb3p2cm00akJkRDI5cE9oc2E1RGJzTnQ5ZHJOdmxnYm0rQmZtakw3YlZQZzAwYXo2Njd4bkVabW1adjBPZzVFNFlMTTNraG82MEtJVGZXZFIxcTdOQnNoc0NSRnBJek9oOW41Z0N1STVsbGtCejZSeXM5THF5emQ0eTY3WlhWRXhyZVFHdzA5Y1NrRzdheDN5Mmdyc3V5UE5WT20zdmNwRE1FZ2hCNlc3WjU4bHZ0bnVaZ25TT0JtUmxzajYxazViUVlkcVEzbVh1blliUWF5YzYrVEV4R2pBMnJML0RqaG1pYVdmK0k5eWFkTG1SMHVpWEpWcHZ1cEtOMWJxYU8zWGZKbWVqMlRxY1RLbUpUSjc1L1Q5R1kyODd1WjdTZWd0QVo5UHRieWQ2ckt6UHR3cDNEUUY2L2RkaXpKcmdIL2VvNHJiNngzODBGZm14eGhqOGZEWVRiYWR3bCtzODg3eWV6Y2NhdUc2TFpkUmJ3MU8wMW04MTkzOTZyUzRFL0pGdm5JazF2TWlzdXBPUjRYQTVXdHJWSHg1NHFUUE1CbklxcDFqZ2lFbXZ1RGRnQjVtbUI4R2cyTmxNMmhITmR3bGdrYlhOcFY3anUvT2E0TTZDMWdYN281UDNiaXNqSVpyTnowd2VYdlhqcXNKdngvTDVPSjV6TURtQUdEd3ViNUZNM0R3RTlHTnZXcnQrOGVWNjRiTnl5cG5kbk9ueTdON1c1VnJNQlZpTVVqZEtoc1JuNkpOYkROaVVvOEJ3SEl4cE9kNUk4NHRLMXZKRU9JcU1tcC9OU3ZIYWIvbXkyNVowd1hHTElZSjE3MjNsTWN2bFNkVHdLUXpiQnZKbWxhYjlKYWxWUDE5dE4xOU51dDk4ODJyZFd3QXdhNmUyYWRkbDJzMmtuZTFPOGR1SFVRRk4wNExNV2FtNDhCUjFueVU2OGlldjFRT0hsbVM1NEd3L2RKclE0dnV5UFRoaTVyV1pYQ2VHcDZUREJOUVRoMmIwcXNyL2tqT01vUGQ0WDluM1ltMlZJRzBlRGc1bDFqWjNnM1psNEpSK3Y5Tm55dzlFMVV1U1FCc1BwTVdxeEd6WUpRbS9zM0llM1U2djhIc0lHM1JvUDdYekkwWnV4MmxxMmpsemEzYlE2SFZyRzlGOWZycUxnSFJJKzdhcGkyazdiSWN0SUNYRERLUjNMbVhiSTNWbHdDQS9uOXNhYVI4czAyUyttdGo2MGpHUVZnU01iYkFPcE9YYmRkbk4wamliRzVxNmViR3RuWm1kZkZ2aGVYK0MzTEM4Rnk3M0JjVjZuMDU3cFVZdnQ2clBNVnFMMHVFVlQ0M2FNWk1SanZocGxhdUt2UUh1S3hTeDlTZFh4TUFSdUlNbHMwRDlNajRQajBnK0Q0T0kxNzAyR0dXNmlVTDdJTXBqcXR3NXpUazV6aDF1Ty9KQXpXRy9MbkNMblBrelBhOTV0ZGtEenRscXRhR0cvNE8rOW5nTG4xdGtKQnU1dFlHelhQQ2ZlMlpFL3YrNjZyQkZIb04zVzFFRkRHSTBUL2hEWXQrTWlESEtWWC9ENk1MaWw3Vk96ZFE3ZDhEakxVRFFLWU5BT1Y1amVwMVZBNTdyZk9MWmtXZFlVMGJrYzVhNldNK3A5cE56VmprQTM5M21ZSmMyRFFZdFdNNy9jVHJkTzkrWjVYcVpxUnVQT1NjNHgyNTNSY1hOSzJtN3ZjTDBlZEpoTzQ5dHRMN0hEMkIwR0lMQ0dhVmROVjBNenhZcC9wSjdYN25aT3grTGhjYzdnSGNUSHBNdGNMZ3FXOVl2MlZVdXVFcGhsOGJTU25TdHJicVczRUJ5MDVRempzY1BDcC9kWWpwdWJsUXhQeDJqcWpqSEN0YnJNY0gyZGc2dGt6dmRERHM5eElqa1Nnd2IyV21rUGJ2UmhPdDhGTFBSUVcyRHNVNWc2SzlsWWpkTDE3SzRsamt5UEY0dWg2czN6RGgxTU1ZNmRlV09mSGswbk8rbTR1TnFUM0IzdmdvbmZWWVg5bkIxZVhTNEEvdTV3NzdTbTQ5NWdNQldKZWhNNkNrbzNWbmFtVC95Y2c1azhQbHBveFcyYnQxN0RkNFV0MTl5eG9zUkNjV1RqUHVZQjhNMzFZWkx0SjlsNk9teVBlNnRodXlkSGt3d1JuSktmbDA1NG5UZkVNZE5uWk5POXQ3ZVpmbW8xZDJ2SmNGZlQ0MFk0WGRNNU4waWk4VklVeGZsOGJOTHNZdXpQOHZQZUNlMUpmemJYMlA2UzY3YlJadDhDMTdUUEQyWCswSlQ0bzJ4ZlJLNFY3cUlKeGpaSzNHYVA1OGJ4MEE5eUJxVVhramZYMmE1Vlkza00wWVdCSjllTVFrYlF1SnpkU3EzTldBdmJ5aDVobGIvWXQwN1hwWVVpa2k4eDltY2RNT3owQnF3ZmhkMGpmeFpVYzNrS2gyNFFnUVlmc0dkN05jM1orVFZaSFRHZUd0THVudVJ4YU5OZFBuZk9vY3RhdDZnTGhhQXRaSzJ1dkJpdHJ4eldSNmFrR2EyY0MyRGdEbzJ1YWczcG51WmJRbGUrckJmbWVqYmUrYlpnQUdZMHVjbGpxYTFzL0JZZm41YTcvV1h0OXVYV3JyUE5WaTJKZGhiN2szbS8zbTY3eVhSb1FNTjNnejAyNjVJVHlXQytiRENFc25wVHFhTmRMNml0N2liREVYZFJrNk4xWnEybGxKeFd0bXljUjJQQk95QlBNUHhGT3AwNzJmbzAzWUxtcWRzZkRUbDJlUTAzNGVuVVlSZjh0VlhFM3NoV2NramV6amx2bkRFVEpNekcwdVo4SEZwaEdBYVRyRFdUY3hRc1oxdzZFOFZldDNzMzc0eC85NFhSOXJ4bmpxQ3RCSzBsdG9OSkxWUFR3aWFLbjZ6OW8rY3d3bEhadVA3SlRMdnFkYkdYcDlnbUdSR2JaTnZyOWZKeHU5MW84c3JHdlV1TDZlNTg4b1Y1c0pjZE1ITVBHNi9yZDNzOU5BcGxnSEhLYkhvRzN0NXJoUzFnSGxtdDBSRHl5OXBMbXJSQ2V4MGlmNjd6Yk5KaUdRMmRvaGFJcDlsK09UMkg4ZGJDMkVVMG1YNS93dE85UVY4SEE1aVlxbXhOZHAzRll1Y3JzOTdVdmU4aXVxZWgwL2plb1NlTDVjSEdob0l2WDhQTFlxTjZpM3d5Uk1xb05kQlBkSzRLdzRscjA4NTlxTjIyOUh3Y3QzdmFOZlczQzNMbkRYc1J2VzVQN1V6dk95UVp6bkVaMkhIYWJ6YUhJOU1IVXg5aitNeFBMNlMyTEx5MmM5QmVXb1pmaEhUR3hwazN1M0EySGpURTFTVnU1MmQyR3RyYlBTUGI2Q1I2QjNzMzJTMkhvbmZ2a2R6Y0M4clB4cm5mYUJoWDc4NzBUenhzdTNzN1hwSDhJVHZYUmJQVDZYam9OalRTczdHK3p2Zkx2Uk9jWFdGblJieGtuUzc4WWREZ1JUN3JuNjZ1ZTlRTnRwR3MwRkhrNTljdFBlWFFjVFVaaHNBS0JHOThOZWxyaWszLzFKVXk0aXZZMnBzeDhVK01HQzF4eHlPVGM4Nm9mZDcwYjZ2OHRBajVlTjUyOWpaemtxZmJDY1pYeWNyb212UDl4TWVvaWRRZkhZYm45V2crMmErMzA5MXh5Z3FtZjEvMG16eURPZ3A5Y1MvV0pWYzdtOTFwbXEvdFlMNTNGa2ZaQjhBZG9uSExiNENUY3ptYTJMN0pWUHhGWjdNN1h0ekY5WExyK0JtcERjdURiV0ROdzJYcUc3czV5ZTNZZFNGdkdQTVJ4L2xnWmxyelpHWDBIWHZyVFRNRXg3ZlJ6TDdzbWVPa3dENzhOZXROdlh2V3RmRjV0UFlRR25QSUQxdGhSekZhQ3pzZXNkb3g3a0l2R21HUUJiM0l0aVVJZFBWK29IdmlwZFdKOFNiYStXSTYzOXZScUxqbkFwN01McGdONDBuSDBkTDFucEdrYnVONE90RUtmelhiU2k4NEhDVUd0WlhEOEpvWktkZEtCMHA3ZWRtNGc4SGdlbTZJNDJhUHVYZjZ5NXNoVDFaVGVlOU9OUWkzUjAzb3dMWVRIanZ4SFZvK0t5aTYyckh6aTJqMllDdHU3Z0w5MUdyMG03Y29Nc3o1WWFOcSt3V2NsTmdnNGJHZVB0L0dSbnE4eXFFcDJmdno4dVJrMnV3Nk5ETzZ1U1ltSHVaSGU3UmQ0UCtTZUhTSDEzVmRNNXQ2MUZyWmpOZ2FaaXZudkdYZ2JldGptNHNHZ2J5a2MyVmp0QzVIMmUzcW9wMjNvMTFnREVCOFpEZTNUbzlwd2h2YnhKZ1ViSTdoVk1uN3QrbFFscytuOVgyU3JiMkRMOXZXMWx4WTV4bXBmUnhNNHJudXkzdEdWdGxJVTlqemVUTmpnc0V0dFB6UlNvZlFpbW5CYWE5V3FNbG5xZFpzREc2NktrUlNlRHpyQnpwYk0rSmx1WTJHVXI2WGt6ZzR3Y09FRVE0K1dzV1NoK20rODVoQmsrNFBNcGpMcHpQcjd1bm1YWmFUSU94TWU0dXBiSVdMVmJLK3p0T2pBbzZXeWlQbjBsNEd0cFVsblluUFk1bXVqK0o0ZVdSdml6RThMcS9PaEpYallJOGJLMjRxcngxMzZxTXBPNEEzZWRBNnRwMlZla0wyYmpXVlE3UkxPblRvSEFJMmFDL2JkS0NFQTN2TW5NUG0zbzBWVm9vejJKYVBmdWpzcjFDMkw3T2h1ekRPOGNCWkhydVJzbXpTc21NRmwrYnBIQjBrckpkYkMvcllVMC9tZWoreEQvejhMQnZoYnRtUkRNMjV1TW9JakhjNXpDVnVOVDEyTXRDUkJNVWFUT3liZkQ5eGtiWnRKVkdEWFFYUW43bVJzbTgwMk42MWxRVGNKb09kYmJ5UzFVMGpZV1QzNG9MbE5Ua2NrMVdiSFRJZ0hIcVRTRDR3U1RTSXBsSjhuQWRoUzdLdFhSTHNvMUZQbG5zWVUyWnNTeEo2MWdCZ2UvWjg3RHBIWDRsYld1dk11dUZvcGUwSGZUR1dUNjF6YUFTZDNzYklsUEEwNmNueTlMajBseTFsTDNlOFpyT3BaY3R3NXlSUlA1cEpqclJWUXBtUVgyYkZYUzYwNUxsc2hhTmd0TFhYbzlnWjVudDdNZVo2c21RZWwrR29zN0xrbWQrYUthRmtqOXJzclJ0TnBkTTVVNWFLdll4YmFuWmMra202YkVzN1lkVm1IUi9KZTkyUzdXQ1pOanB5UTdiQzlUVnU5NmJXUFRvUGxlWGUzc1V0M1RzRGI4bXNRZXdNRVJkdTNZN2NjVE41Mk9HaXk1NDJOMGtrVHExUWM2OXNyckt4czlvdjIrd040K3Q0c0VsaVo5eWM1cnRXQ251U3RtOUtOM1dFbk1UdkthQ2ZkQS9BQmZmanhiNjB0U3ZXWWZ1Sk9VL0ZPOVBQSmhwL2J1L210RDQ2anpsalBlYTI0dW5XM2kzVTVLU05Hdm9wN3NMTzdkcUxiamZUaC95d3pmWjZod3Z4VVpQdlprTmp6cVV6amdZQ1AzZlA3dkE2eVZRTVFDZkRwS1BFVzVzUnhoajcwQ2RkSGkyVjltR3V4NE5XZTNaUCt5SS83blJPK3JnOVFBcTJNWm5PWGQwdUJLZHg2M1E2K2RwWmJPVTcwMmVtS3MrbDhIWUtoOGZCVGVudWViTXQwdXhta3M3ODFqbmhPWFBqM3MvR3B0M1Q4clczU0VuZVFWZUR2b1IxbFNSUGQ1d2lYc2JDbVBWQTIvS05wUk1BaWJ6djM4UzdmUkVPeG9DMHpkYTd5V3BxNVJ4OXZFN1l6ZXc2MloyUDV2VVN0OUZZdktlRGErYmZpZC9jdml6M2hyOGNjWWpYSjJDaHF3ZFczV2VDNHdadDdTb2ZJOW5sMVlUbi9mWnFjdDNhQzB6WE0rS3YyVG5jT3dHYzhYeUhTY0dsWjNYZEZlcXM3SU9WcVRjVFRZMTBaV2Jkd1NpUWNqZ3g1d2VqYzlMMW5jUUlWL3QydC9uYlZWOVp4NldkdEpBeTJTMENjZEZ3Ynd1RG00elhzOXR4eGQvN2ZWWHZNaGROMzYxaEx6eWoweXFmdHpZNzZYWVR1VkhqcHQrdWQyYlFzRGkwNHZJZ0JLN2xNL3hNSGZjbWtuTU1sSmp0ejQ3aTdEcmhvMVpJNzJabXVIUVdXMG1leXJKMVpoeUhqVTlSZTRYZnpVZGJkN2lZMkdlaGMwYmk3V3B3ZzFtMlgwdGR2aDhhamVraUZreHJjUWoxTWVyM0d4WkQ5N1J1S0RERGJVOUxNZzd5UmxmbnMvNTV2QVgyNVNndkR2NCszSTY5YmNlV2pxeVBrUnJuVDJiampyZ3dGcHk5R08yTXJqcmlpSDhqV0c1dCtqU2RHd2REendOYXpDNm5rTGlyRmVkK29YZjhMbDlmNS9TRzVwY3pnYisybCtIUzhEV2hwODcyOFNreXQ1cVo3YmwrY3hJRktzdWY3YWpWVTNROUM5dWRqaDlkVUZ1L3N2RXh3cmd5RDZSSWJvNzMrN3hobnBTNGZWd3gvUVFhM1FVMzlycmRmcUFjMkluVERqNzRyaVV4ak9LdmZkZjhmSGkzOWRYeUtEWE1oUnllanhPenVEZmdPdCt2OU80eVJVeExPMGdrZGRPZURyZDdwbm5kejVoaG9vLzFjT1Z0YVN2QXRzSzAyV3MwYlZNOGRQUmdjSXcyMkU2bVFYeGE5WE5kYkEzbzZXSytZK2cxOUJObEhBQ1paZU50MEJBOVpnbUQ0V1hmSW5rL1RiRXo2RU5CRkx1aHNEVjZoajYyK0xDaGp5L2dDT3pGaU1OWXdvK3NibHZ3VHN5NXV4eWxjZFpxdFRwbktNNnVHTWNQNlM3Zjd6bjV6VW4zd0FaWDZYeStTc0E3R1pxMmFaK1cwL1ZobGhFL3JHTG9LMHRZTnBReEMwNGdiZzkwWFl5Q2dHWjd1aGdPNHRXV0hnK05kTXR2MThEZ0JiT0JHSGhuVlRrTVhKVFptdUR0T01WbGs5NUMyK2c1M1JNeXhIcmJYbXVnSHkxL01OeGd2bFdUUzE5WXl0TDllTDdmVnUyQkpGK09pK1RtMkM2ZG5GWUdkNkFINHMzYThXZk1MOGtJTlM2amdieStyZkpzY3A2TnJncHo0YStjTVI5SlUrZXlQUGd6UXhmTUhiOFN6VWJ1dE1OQVhyWU1OSTN0NUpwbEo3bWw4cXU4ZjZNUGs3bkg5UjNidzkxMTVJZFBuRkVjWkp0d3NaY2NkZ05pdDJHY0ZiOXo5K1Vzdi9zYUNnNUIxclczcXRoaFZOTysycXVOZDJsdkRYR2NxVnFhdHpJeDJJblJ6ZDBHOGs3WGRWbGVUZHRzUzVpa0RKK3RIT3MrOU1iT2ZiZlcwaVdUaW9QTDhDcWFhZEk2ZFhvRGwrLzJoWWxnN3NjbmVEdnNkazFlbGx1TnhUV1pISVZoTSt3MnpMNHczWWNZSjNpSG9OVTF4TnZTMlp6a1ZDdnM2TU5lN0xOVDRZcFlmc3RLN0VYMXBXYlladlpoUzc5bHpDR2d1ekl2aVFmY0Y2T2EvZmEwSFE2MzBuVEVHWE1reE12OXp1czN4YXpMY1gydmU4cDlyOWU1bjA4d3VKcCtheFFNQm9QQTJ6QzU2T3duOFdyYkdhWklNTTR1T2pEU2VOQmora0lpMlMzeFFHdTB0anBzWkZwWjlnZlovZDdnMDY0cVdPZTJzV1RvZGErM3NNV0VqbVNzbnhiNzB6UzRDZHUxMjdrZ1E5cE5kck9YNzF3NmFRWGhlYVpvU1RzK1NNcnlZcDJjVEEvWkpKaGtBMjV5OS9WMmUrenJtMEFMZFQ3dFl4dm5MUFhiVW1nRkVxdFpHSGY2N3NibkVtME0yN2syWnVMVjVwRDJlYnhmK3NXZWQwODFYN3NGVXRIYjhzN05TOW5MUGdMdGVIZEJiUVhlTnpzamNydHdOalQ5ODR3K1RLV3JMcGduUlZtYmROdEp2R1pUdjk3Yjdaa2dYSVpDZUZ2bDZqQlZHaHd0OEdOME9wMDYvVmp3UWFnZVdEcG5GQVl0SFdtYU0ycTRqanJ1dXJuTS9RV00yZzBXYWVOQTI0Qm1iMCtIUzN2VjZjVWRyV21OQmJXaHJOUEwzTm5UQjE0YW53U3pvMXpXWnIvdHdKQUdtcEFxZzM1ajExc3kzc1pCTzNkb3pNZVhwRE8vTG5NN1VHOWVldW5yZklZeGVRQ096bkxraDRiTmV0dU93eVRROHJkSlIwc1lUVVJqYTk1bnAxcU1jdjRBVG16S3JjWHU2bmE3ZVd2YjdTTjVtbWxLTHg5dVppWlMxc2NPMkF5M3Ara2Q5bWg4cHF5dHUzQ0M1aG5wMHd6TTJyRjVWalp0Qm1tSjFjYTY4SHk3ZC90NzQ3YWl0Wloya0tIZWJMWDJpK1Zrd1F6NkU4OWg0SDZSQkdndDhIZDJiV2FEeHBIZnJtVzQ2WjhFUGVtM3A0ZFFZKzczTyswdnJTQmZMRzZybG5hU2ZiblIxTjNyS1RKYnhOOTZYMmRyZWJxVGp1TkJzOHQwWEN0dk5JelJiaUh3OSs1YVhPWDllSFE3M1Fma2pwUk81MzRmbjdZc0R4ZzEyYzY1OWNKWjkwVzlzMnUxTkg3SDlIcmoyWHAybFlnZityaTZvSmtXdGtCWHZ6UDl4aXFKbkxiUTRhMGhIM1Y2RnMyYVlaQ0pWME0zNW0ybkhVN0h3NWJVc1BsTzFyVlAvY2FnMlRSdDFrTk5WdklPem4yUlJCSEwzRFFnc2Jyb2Q5YjNTY3FsbTJNazM2ZE0zejFNc2o2OGhxRy9oQkVOV2VnRmFHb2dLQ3dYaStiWU5MTUd5UnUzcllQWncwcDFQbVliWHRUdlpzMm1KSng2eWJUQmFwemRFSytzZFdZTndIVEZPNmVaNXhEcm4zUFBub1JMTmpIRDA2clZhRGVqcEg4YkVzeXdYWEJ1RUFKdjA3dHVtMDE5ZThqOHZxNzBXdGY5WlRscGlHYVgyMERkWEJnZEplc21KeVd3bTBkUDBaWTYwenQ2WTlOb1cwcklqRnZpdFJubXU3QXBNcG5vaEVtZ041cHVQSkRpZGs4YmVZT21QamljV25lOWwyeW1maWF1bkJ6VDRKek41dXpTOHNPOG8yb3pheWRiQTNpVnVQbFk3VXd4ZnV0cnZWNnZ6YU1WbHg1SDZYRTYzRXJicFg0ZzI4QmFTZVFyRjJVTmRuTmFTL3R3TVhVR0EySFhtUjYwM2Qwem11dGhzcDVlUTB0eUZoZk9IdTNqWXpRWmJnN2J6dnB5RlJyTld4QmgvdFAxVzN1ajNBNkhoWjBQajQxR2cxeTdGdWRxUjRpWmROTm9hdkxVdGc2bzArdnJxWGpVMld1b2plT2tyV3pYcFB4bHZKamI4ME8vZVJwYzQzaW42bEpIVWduZGxlc1FOZnRjWC9ROHI5bE1aSVpyZ1FFd2tNTHZZQWlEYUhtZkVKOTRyM1hzWVp1K2U3YjNCNU1kakF4dVByS0QwU2tjM0dJbkdrUTloZ2xpMStuRlRwNWRkcHZCMnRSRlJWY3ZxWGczTk9QTWVyTU1nYkRueWQwRFlMU2tlN2t6L1o3Sk1JUG16bTNGdmQyZ2NUckpyYzJlMFJKM056aXhzekFNL2VOSkI5TlJwaG1iSUhieVJoekNwcDVrdWlpS2ViL2c1MXV2aStKV0lMcHAySktPcTZuTHd4dnZDcGVSTUlXSnNOazB4OGRqdTdHNGh0UFE0NW94Y3FXR01vcGtMbFdGODhaS3oyZkdubmNsOFBTTmE5dU55dkphYk9mOEhjaHNKRWV0em5pMVV0U3U3ZE5TNkoyaWxtc2laYmpWdGdPcHl3OENKKy9jei9yNExsdHpZMzZaeVU3N2tteW1JK002VDRYRHdxYjN2TFRHT2d5Y0czRy9QYzFEY2grN2Znam9SbnUrc3dObk13eDM5b0l6QlAvc3FtT1d6Z1lLZzFiT0ExdjBWR2MyU2s0QnE3dTlhYWR4MEErRzNuYkZTTitZYW1od0pBY2trcE5PT3dqeHVJeHdjVzdCZm42LysxcTdQVjdyV25BS2ZVbmdKME5Kdm1nYlpyK3dTWDc0bklhQ05XZk41U1VWZThyUUU1TTBsTGZETGh1Nm5zeTc5RXlQNUt0Sjk5YThnbzZiU2JhWmUzZi8xR3ZmZlYwTDVPQjg1TXltM21rb2QxcGYrcG9lcWZySzNtc2Z2dHY2WE9Wamo0V2t2OWdvSUQ2aTNTeERrZUFEVnozMHBKemhHWFZwU3B3NjVyT3VMdkxMWk4wKzVyT0liZHpZb1psZ2JDVDZQY0hzQ3c2OGpZMnRMRUZ2QXpWUlg4M245OUxwUG1PSGZYYlN3RmdpWmFWbGY4YXBBQzNIZW1SQWhsNFBtSVVoSGlWZjV0YXJjY3JNRG5aRFRKbkwrSDZaN2V6KytCZ1lIdGR3Sm8ya2NSbkZNamN6amowdFdZN3N3SWJIZkQ5bFNFM05OZXNPTUE0Q1RDb3lsOFZkZExleHZCMm4vZHRpZEpMYm1yTFErR3VZQktIRUs3SGJtbWI1TUJXRDNieDNjN2MzZVJzdGM0Uk5Wci9kT082Nm5halQ4enNoNjBhNzlkWlN4L2x4RCsrTXZXcEpYTGhzeHlhQTNpSm4xR1EwanBqTEl2N29yMmM1b0k3YmN0cnkwbTRnNzRkc281R0VHekdBczJ5eFBjenpkVHhxZ1JZMnh3enhpVmRia3B1bXFqRGtzRDJVdHBQVG9jYzQ2NFdSZ3MzRXBNY3pmM2ozOVVnNG9ZWTNaVU51UEl6YjF5Mk1WVzI2c05zZzQ3V3B2UE1FczVGMHoxZEdsY0tJRytqcTVOWVVCYUUxM1VyQ21HWTdDNzZoZXd5N0NWdkwreVZ1VzF0MkZMdkRmbU9xUmtFcU9vd1Vjb3QwQUxQemtOdE96N0diWC9ac1R6enRNeTB4OTBQalBPbHFEVlpsUjFlYlc3Tzgyak5aMGNsQWFIZXNickkwV28wNDY2NjVvZE5pYnkzdnpqQVgzYWZCbXA5YUxiQVkrOHY4ZkwzUHQ0TmRQNS9aTXNjYnpObzl6TVlYTkZ1dlJxa3psR1Y0eXRrV3ZIL3A4eGUyRTQ5cjlxeExWenlERTdnSXQyTzBOWllqdEZ5dGV1dzhaOVRicUorWXcrVGtNQ1JQQzh6R1dVUEF0aXA5NHVmRGc2R3ZBSlFhdXlFTTdRNkVVTlU2ZksvWEszSzZ3cVZGNGcwU2l1YjVmWkV5azQ2dXFsdnRHTW0rSXhqZFJTcDYzVE1kS3VQK1VRTEJSZzVid01UeXpoMW5ESXFUNWx4cmR6b2RkcFd2emJrbWRNQVV4S2NvTzcvWWxsMDdiT1g2N1hicjlubStrMjZiK3EyVERjSVdhTSt5NDJUSHE3NDN5MnlBanNwNmhuVktKcTFGOFh5d21kbGhaMHZXVUJnMmw5NjJPWFhjOE9BdFVqVmJLN00wMWs5VDRyNDhMQzZibGNvRHkvUzN2QkszbTd6SjJRZDY2UndXZEs2TFpwdEpGTmM2TTVPbE9tYWxYWFBtd0hBdGlzMTA2NE9aU1h5aUtsalB6dXY0MkFQK0FQRTl5L2VYaTVIcXplOUdkemJzUXQ0MG12bzFieXNhY2dVVEJETkJHOC9rblJ4ZWRaQ2MxdDdjbWx2MFVoUDU1aUdnVS9WK1FYZHVsdzBHcGloNjkyNGlhSTdnQk9CMGpsMWFDZXlHZnZWdXQ5dE9IUStOakx2TXRqWWRyL2E3aVhvZHcwWGZXb3BBaWpxN1BoVDV5YTZ2WDlzUXdpMW8zS0l1OFM5czdjMFlIY2RETHR5N1FiS2FXTHQxY3BjM1c0a2JIZkx6ZGpyS3pzWm12SlZTbFIreW02VXp5aTlyZDQ3MTU5bFk1VTB4T0xsQzFGcWRPSTRiYXBJejJjcUgrZTAwYVp3bTZCRG9nYktUNUNuR2M5WThXVzFwY3o3Q09NM0FOa24vUE9iQWVqYWVqQ1I1dW5QSDJvMlBRWHpzYXFKNHN5ZnV4YjJRdUFEZUZTbFk3cDFoRVVBd2ZhN1Y3Uy9MQU1KK1ltNkxBRUlHTCs3RjZ6S0xqWWg0SlQ1R2Q0WUprcm5sUnlOck9MbXVlZDdhOFdZWFlzT0tHNWsrbU0ydGJrSnFidFRUTE9zSy9Ua04rbDIrenpxNXZCeTRlc1JDTTIzcVp0WWJKTmxRY3VaN2ZQN01tWGNJRWo0SW1NRU04a2EzY1ZQaTBiM2ZGRHVIcUdYUXhLNXU5eTd4WkZmV0JMR0xzWm4yL0ZaSUswM3gzcWRYMnUzVTNmTm1ReVI5S0xNVU5XL0htNTVQZ3VYV0lXT2RuQzZjbVQ3WWJRYlNQSWd6TVRsY042RzgzQW5iNVdvcVdYUFR6ZVM1Tzcrc2QvdkZmcm1mU0lsc1RjelovK1B2WnR0WXZqRGRybTk3WHJKbG1ydm1jYVpjcDgyR0c3SmJEclBBWWljeGs4aGVHSWJ4dDc5OSsrLy8rTytmMzF6Z1dUcEU4YmRmMzk3ZTNuNTcvMGJ0L1NSUzRTL3E1ZitqcmhsRE4zQkFERkVUUVRXQzhYc09YT2UzQndKTGhoR3lmTzhYZFd2OTltekwwMzVSZS9MSmI4K0ZNZEJBREg3OTlpaktBeTc4UmJuNVc5SHhTL2ZWZXhRQVBQVHZieHJVUWVMRXY3L2hOdzVRb0lOSUp4UUZndURkVGhRWWVUQ0c2TjN5bTBYSG4vcWpLQk02N2pzeW02b0pvdmpERjIvOTkvWjc3OCs2dER3VUEwK3R6ZmZQdm5TQkJ3eW92U241TDRxSGp2dmJpL01BL3FLRUFJUUovTzA5bGwrTUhnQ0VVai9TeUJvZGJhbTFOOGYxVVZ2S3h0LytoaGY3VCs2QjZudTZaYmdnK0lmYk1DSmZyVUh3TCt6RVcwWDUvdy90eUljOUtGZnlqb240aS9xdnQ2S2pmNk4yK0MxVmtEYUpRR3o1SHFWYkRxUmdCdHpBZ2UvbGg5WDNHeitHVkd5Q21MSTh5bzgwR0ZHeFQwVVFhRlJzd2k4Nitsa080U1lvcGhSWTlZTmlFTVZRbzFJck5rbExNbWdBWXBNQ2lOS3RDTVVVaUl6RWhWNzg2OE1jM3N1eU13U2pHNHlvSm03VmpQM2lLVm5oYis5bHZyNUhKWjRWbzE5VWFrS1BjcUhyUnptRnJEdWtMRVI1RUdwUSswbFpNZjVYNENOa0tRN0V5MElCVkMwOXIvcXl5S0x4WkJPVUFJZlMvY2lsZkoxcTJSUXpHMUxkTlFVOGpVSStmaEdiSDJmZHNxbS8vVTVvdWdPcEZrM1RsSkxIRUQxZktyVzM3ZTZIdCs1TDA4K3QzZGZXLy81RkY4YkhMajczWW56UnkrZXVxczhKUlNrUVFVb0ZDRktXaDZDSHJOaTZRVXlDMW14SXRXWUsxVEtHNUJ2Z09JUnlDTGlZcDhwTy92S1BtbTlHSzJrODJmOFQzLzdiYzlmbm51b2tHdDU0U1BrUjVmb1JwUHpZaEZISm9JVGJFR1hDQ0w1VDFNRzBFTjc2QkVFOWNTaExwM0kvcWJveXdRMVNBUE9ycDRGSW95cDVWQndDdzRjSWN3cGVYc0huQlZNaVNrbGlDampJSit4VmRSYjdsSnFnMkhjeDZ3RktoeWtWd0toaVpBVGoyUElNOUU0OUZsRE1Vd1VlWlJWUHFwNksxWkRYUHpHOUU0Um5aQ0VxdFJCMDhqOC90bjVBanVidmIxV0gzNmpVOS83QVo1T0tZQnBaY1F3OVNza3AxWGRkek0rL3Y0MkV6WFErbzNhVDQyNSttQlRDRUhlcVI3NUxBYzBsa3FCYy9oNTZzZVZCNTUzYVc1NEt5NmZBU1VGT0NJd0lGemdBeFZRUStTcEU2RWtkeC9JZ1B2MDM0Q1FRSHl6d1FaNW9WZ1JWekdFLzhRNzlvVkVLakdNWVVVRVNWL1I1Y0RPSXlVZ0tOQ3pQc3p3RDkwY0lSQVFOM3JLYmIybVVmNE1SWGpUK291UU4xUVNlQVhFSFVlTEZsdnRKQnM1MXpPMHhsbm01bnhEMnRyd1lSaEJoaVdaNVZJSndkOVdNOEdCNG1NalNQZ2pJeDJhU1BVR1ZDQ3BYRlJlN1duYURDZk1nSGFiVXAxa1YzMmxFaUNMS0JYZ0x2UmhZSHBWYWpxYUNTRVB2Rk9jNEpWTzVJRlpOUEUvYzYrTUwvTXVwdWxRZW81TmxBU2N3Z1FKalN3Vk9JZnZmdjFBTE92WGsxa0tnbDlOQUZLaU5nOCtINTlmbmdsZVA1ZlBqc0dCeFVad01mSzRLaGZHVFBLNjZSekdJSVZZUlpOcGt2b2JuUjFBamt0anpLUmhGZnZSeFRkREZUSzdoWTBib2pZQU9TYjhSMVAwSS8vUWZJMVFUTGlkS1dCNjZRZnhRQ2dWUCtwRUYwY2NkcWZwNEtDakhWNEZUS3FnLytZU2M2My84aVI0QkE2OFpOZis5L3VHL0lGVFh3bGhhL1hNeXRTNVZWejdRS05mWEVrd0pFQmRia2dUditFQzhicGJueHhRb2xhaFRhMVhUcEdURGdPSkg4WHU1RFhYTml4bmZUWnpZQ2h4SWVpZzZlRXFBVDhTdWZmU2dsSnYvdlhqMGp2eC85QjBoZXYzVGY1cVNtOG5oS095Vy95b2xoemxWQXJLZitNQjRQdlg3bTJKNTJ1OXZmeWJ4Q0o4U09HTGhRMUNJVmNkQ01mUWVWTlY5b3Q4ODNNTDNTbWJGbWduY2dPV1EvZkJnblBxUlhjZ3JIYWdRWVhDRU44LzBVVXk1QUl1RWgyajVZbU9LSWZHdkt3WjBsWUt0dGdwQkI2cUZGSHdNUUtSaC9WRC8xVnAvVXJydk9INEtOYXlINmpwOExsSkEweUtzTlI0TVFFMkFhbGFQaWFwVUlCVkVVTGV5b29QZjM5NStmL3RKcGFhbG1wUUxnWWNLU1VYZ1lzR0htRjkxWURsVTdMOEFWTHc1ZU1aVjd4VnJWL1I4cDRZUWk5Q1hoNVR2T1RrVlFSM0RnR2VIajRrWG8yc1lPZUIycWg5RkVBVytweEd0NU9XZk4rbWQ0bDRhUDdva3dBcUQ3N3hRTzdBOFZvVzZ4U3Y2U1NSaDRxRWtDSHlDdUlQSWozM1ZkOURMdDhQSlkrR1dBNzNZeVNsa1cwRUF0WThIYlZJWUJ1Z2p2c1Y3U3JVRzdmY1cyMzl2dmJkb21tclI3L2gvTGFyUzc0UmRDY2VsRmJxMlZHb3UzcnBQOHJ6MjErNlZYZno2VlhUeitIdnB6L0g5UUFHcVhmYmxhZmdIKzlMVnYxTnZ2Mzc5Ty9YVkgrN0tobVNuSDhmeTlkdzgyZm5EcXYvbmYvNkhPbks3elh3ekk3OUxVYWo2YnBCZ0pSNGxCZm9vRHF5RlNpNTNjZ3BtZ1k4ZzJmVFloRTlwSHhPejdpZVpORkhQL2dNODF3NFY3Z25EbE1oUEVGa3YyY3lpejlmK0NoTVNkd052TU1vVlg4dXJNMThOOWs3dGZYeFN5c1ZUS2FRU0QrTS9yRmxyblJYSEVrK0tVTFIyWUFsTGt5bm9mdlNBZlU5NVFZNUVNZXBEdHRSM2l2cU9jVU5GN2gvUC9Yd3N1WFordmhNY1Y1emszZE1xL3JkaUFtUW9CVDcwRDFCVkdNU1U2bGg0Tlova1kyV1VGQUt3Z0RCWTZsVjlWaHZvZXo4K0lhNHBkUllraXR0TnFMMjBtNUIvSExuTkFmL1lVZlBOL3NCdFJoUHFJRkNyK2Y0dzJlQmYzR3BGSGZnSk5kOGNKcnNwTjVyc3E5NUd3bm85MlJ3b1FUcVFMNmJDYWlVY01WK3Q1cHZKeDdIUGZsS2QzOUxHSUFZcmpDbEFWZjRXS3ZFY0xMVXdTSVZaNEZpcWhSbFBzeENoRFJZRVJGaFhmYnErOWhUOS8vTi8wMS9SMzRmRC9QYnJWK3RyYmVnbnNlR1hZUHl4VWQvSlRrVVFMd0hnZGJvQXhURDZXZXhnWlhMVVpHM0Y5ZWduVlRwYUtDVkJQeWtZcSs4L2lOakVrbGZ4azFMb1BtVVJnV2dWcjcxVGMrOUpIQlFUU3hmOXBHcjhoOW5IRHlCV1laNUJvUnpGMEMwMnhnU2U1cFNnV0FINHBQc2VGZmxKWE5PR21QMWZEallWbTVHZkdHYXByVXFYU2ttSXd0cjBrL2dqTTBpb09wTnZpRGpSM3ZBQ3ZuQm9WQW9YMXBkY0tiZllKMTA4YmRXSHpnUjV3V1pBMTZFYVU2YWZmcG9aakJGWjNKL3FpNi9VeGN0c0syWHg1QXV4WWxEQ21YZ3RnSEpBRGlOc3l5R29KcEVWNXhVYlc3NzM4OFVuVmRoM2RYVlp5dUNLTnlnSDZ0Z2VKdUxwUlI0V2lsVXRyRk95U2ZqNCtOWVhxenVhMEh1ZXBNZEVmZSt4dDVWUVRSQ01LQk5ncGY4NG9UOXJ1UGxoREdMNVZRZ3RWTExqbDBLcnJqV3A3NCt6OWVObklWRExOMVd2MzMvOWF2M0FPRXJ5ckl6U2ZCZmJoY2hYYlJoL2d0TFA4L2pGeXFDSGhZZjJUaVFRTXYzRTBSNFN4WXFMMlZzUDQ2V3lqeEhtT2Z5UEZIaVZMQzdYVW5neXNQUkZKWXZpdGVLZkw3SWQzcUJYWW1XUXhDWSs4MnFCRzJ2K3k4ZitQT2I5UnVhZFk3Mzl5Z2JFRjFFdDB3U1JCajJvUGJucVQ2QXBLcnlkV3FLK2FGa1F4MWhab2FRNHhIaFNudWVyV09IZ2JVZnYxT0ZwWFNLc2g0RkRQZjFsWHpvRmFtTVNENFBySmpHbThzL1N5K2hDS3ZCalRBZmdPUG5iRXcyVWpwdWltZUxnUGY3RXRxTS9YUjRXVjloZ2ovektVVUFlRlVSTEl5c3VhUEFkdmh2dlA2ay9OQ3Y2b3k3Ti90QVUzTW9ETHZ6alIza0dBRGxRM2g5eDRUZDFjc3hNeEpDaHRDVENvcXQwdE5SeDdaUHpsSnh5Z1YxNkt0d25JVDZ2cVZ4M3NZYkNDeEZCVUFDaVQzdWtWNzZwcitkWTlhb0N4eWttUVhheVR0UWFaUG80bDRNSkVheU1rUnJTZ3hiaGRnem82b2ZhandwenFqanV2Z2NSN3J2MEJ6NU9BTFp6ZkwzbVp5OHRRSTFTb0lObDhxUC80aXNFQzFmYUo2anUrZmkvYjlRUXI0T1lqZGpzcUluejd4RWtBdUpCNngrUEF3MFJhY3BoSlBobFV5emVIaUw1eDlQc3hpdXIyaEVwZ1J0L2ttL3ZsSUJYNzBlV1lYbUZVcTBrWHRWVjlmZlBDY0IvU2ZJVnd1M3RLVDBxT252K2gwODBxQ1RHVytVai9mUzY4Q1c4dksrKzRFbzhXdC8rUXYwODdIc0ttMm8vSDlMSlFoVGI2UTJvNzNOdXcxSC8xbTh4blc3M3gzdk5IWW0vcCtnWEgwRjFZaXZ6OWdIRUtVQWRSbUpKZ1VwYzR2WjRqT2MwOFRkRm0rOC9LQXpGSGQvNDdIS2tUTXN3cVFpR0NVUXhlaXVjMlNxMlphRjNzeUxmSTQ0cUl2a0pSZ1ZGZzdLL2g3NnUrY2NMdFkwd2wxUnFvc1pkRmtJSlJPODFmeU1tM01yeWtveXlzZTUyWG15Qmh5MGJSNG1uZ3Bpb3FNTGdlbnFabTBIa3EwMlVvNllINDZicVI3Q0pmQmRrZUZqcTZUaHlnVjNxTWF3Q2dJVWdwZmhsOE9yUjE3TWhFU3RxOEhjWFpIOUh1ZmYzY3NsUGhQcEVLZ2FNUzZTQXJBaHFGQ1F3cXlSMnJBWnZGYm1ZVmcwZEVYWisyY1hIdnV5THVCWHBsSGhnOFZIRC82aTFxWmxzQ3NTeVRhdVphN29mMWR5UHZ2c0JrSmZxckhDSFBMRTc4cjltdWlleW9RQ1YxS1pBb25INHV3Zlh2bjhPTW1YbHg4MG84Y29RSDM3eStZc0FSaTdWbytrbmlVWk9hUTNYV1FqbzJCd0FsVUdJRVNIRzZaaEVHNnBnWGtSOXB6RTFTbHhUQ2pHc29md2twdWpYUTJKREdBREh1bjBWSnZCODcrME9JLzhuOGMzc2hiOHZKeE9SVzgzbFNXR3RlUnJwZ2hzdEMreFRNcnpsVVVCQjBGT2Y0UjZkcVBYRUswSFArOGVnRmRuaGxFUmlrZTk5a3ZpdEg5UVlZcGxHYVJCb1ZBQXhLS2xldG45UVUySzFWNDRuR0NaV1FJei9NdDdwV3ByMnNDQ1FSZmoybGFyWWVLaEw2QzhwSW5qRlVmMzVRZHdWeCtjN2xzc0YvWC9nbFJIdWhaSGxhdy8ySkJURDFQb2k4RURvOThWK2s1UGxKOFF4VnloUHZKSFB3Tzk3YlhZRkZpMEV5Y3NFTkJoQXpCZGxmOFVYcjdqdDQySzVjaThJTWk1V1dCeERiQjRFRlhMdDBIUzE2TXJjS3BmdXdmUVZzVmJxZ0hnbThZa2tzZlBpWGVlOS9kNnFTWXdIVStJQmFyb25DSnljRXZadkQrUFBoYW9KUEF1NWhWa2QyVVdRaVp4Yll0R1dKN1VLMHo4MjdjSGxZeEl2S2YyTEZOQnUyTGpTS2t1WHlFSGRjbUpJZ0o0S0FxQllqaFYvRVM1NTVZNzVHQnY4RVVUa1JJRDZqdUpwMW5kdEdrRTQzSSsvYmxjdVFQVjkyOEp2NncyRkFIcC8ycEJZc3hSQlA3Vm1OWUQzMkpCaWN5MUUwWTh0ZEFQSEl2NWRNbGtTRFVSRVRWcFJqZU9LdWIzaFQ5NHNyU1pZL2pMdWNGanRtL3Y5Nm44bjdsQjFRWHlTcURUcURuNkpZQ2dyL2xrNjYyTUh2ZUc5L2Vpdy8yU29WSGkzT3EwYTFDMFA0b0hlbmd5RmUwTDFnUTZyL1FmUDRNUDRKQ2dvUVo5OEJ3WGNlWUNHY240ZkFNeW81dXM0dlRQMGdGSmhGR09teHpnQXMyVVFXVGY4MjRaNUZYTWlnTFptWGhaR3gyTy9pZ0RYMDBxRldpV3pmNVkrS1lMbEs1OVRJV2FwMGhvb3JLblNaSDRLUzNHeUpwa2tJUDdDdllEWGhxZjlScUxXWllKTEZOZGYyekN2djdWaC9sa1BGVElyTDJMZnhJaFhvenpBMHk5QzFZWFBNREFqZ0NDSlFwYzcrWWorWW5YL3NNNFFsVUxIK1dxcTFWeEl5aGVGeW95NHA2eU9YR0wrMVN6d2gvdTF2amw0RndpMktnbXVKMTdsQ1N3Y0l6V3JxQVpMQ251ejFPdTFOcVhqOEdsTWdJY0RFU0o4d0MxazFudDhlZ3pydlpmZXcwOVl5M2NoVmlpb3ZvTFNaTWRndFV4eEFuRWNXVW9TUDhJL0VGbUdWK1NSUUpjQzZEazZudjViNFRDUFNnb1UvNndQOEk3QmQybm9JZ0pyWFVEYzNoV0lMQmo2ZVVaMUhVYkVBVjZmSlNiMEErQjlMOFlxcVBqd3czNHZKdlRqQzNxVFU2ejVaQm8veXd3VVdBc1NQTjBLdjc1aTYyS2hUKzR1SG54azcvS3pCNWVYWC8yL3l1WWY1dlExdDlmbHo1aW5BaEFCRnhJSlVXV2dsQUp3Yk9tNkJkOTQ2RGd1OEtqdlkvNEhXUVhNaWt5VW40OVFSS2svU0ZUVXdTRHNWdVEvSW94c3NETEQ4dnc3U2VGU08rLzBqM2RxQTlQNlo1cFA0SGJaMFRNbSt5a0ZFTE5BQklzUWtFWUJBMWdlaWlrci9vb2FtdmxHRm9mcVlrZ3p2NmJFaUt0ejRIZjBnMUlTNGlmM28wY3FCWkhHTlNrTUsxMzFla1lLMTAwbFl3dVpVcTRNdjNxRVBENHN6ZGNwRUZNT0JFWDR1b2F3aWN2azV6T2Foa2xGTkhrUk42a1kvT0hrLzVqTzh5V3JnRHFIZzAvY1hiN1dySWhxd2xodEl1UTA4UlAwdGRLdVZ2NjlZRm5pT3l2REltWGkyWS9TeEYvdEN6V0pCVkhGT0hVenUwN2U0blRjZ0dNOXhDY2lxNnNMbk0vSDdmYzN6Ly85N1VObVFoVm4reWdNYTN4WFplZkVwWnU3aG9oSXJ3VTZCczQvM1hmVkRlbjNRNkpwc1NwTHA0TEl2MWtrMFpPazVuMlkwbGQ3aDJuMFZsSDg2ZUw1OU9veDN5KzNERHhZczlpblIrQWZLM3czSUliTFF3MlZPL2NVc2s5M1JteFNWb3hLemZVNUF2U253cmNtYVVxbzlkQ0h2a2M1bG1lanJ4WmYvK2pGZlY1Zkd4NnlXTjJvcGpTSllnZFU0QURMSS9idGN6azE0UGRBMHF2OXd6K0JXMWY1Q2Y5UW8zeXRVSW9wL09sc2lSSTlyUGEzMW51YnNFcnh1ME9Zb1l4cmtPZEY0TXkwREpNa2NwUmlzSForU0NJbGtjQjZoV2swYkR0Z2x0U2U0aGIzYThNZ2ZnRHMxK2pCQjVmMGV6MjJxOVlFbUpOWG1jaUVXSS91bjJiWG95bFg1czBVZnQrdnMzUEpDc3Vrc3QvZkNBMStmL3RaL1h4LytVZjc5N2VIK3FtZWRYNS9vNzVYMnFiSUYvNGIxWHB2dlJkdTFzSWY3Q3JFZmZzVWlqWEUvMmY3OENYV0oraitrYkx5bUJmMW1NdVhlcVlrZzJvRlpxRWU5ckIwREJSUHZyY1FjbjVRTHZBQ1lCU0FreVFZV1Y0QnhXc25EeWgrRXBlQzM0dEI5a2drUlRFMmFiL0t0UDMxcFVvTkNwdVFyRDcyQzhxcGY2c0k4YVh5S0NaTGpTZFRUbG9kZnYzLzFwUHhYRnIvb3hWWExGMDJUU3lDRmYvSjVUOTlmZzhxL05YeXkyaFU2VTRnSndIM1Z1MU9wYkRycy9uemhaTDN1TzNmUnp3MzRyazIvWGRSV0oxYkhacjUrNTduMmd6N1hEb0p2S3FtNzVmSXJ1amlLVFFLZGZnSElxbGdHUHFxOEpHMVd3VlJpUHgrR0pXUDc5NC95YmpLRGlHQ0NOVWF2L1QvL2lYcjRyZGxodmRqUS85VVJPSHpqU0RDNTV0U1FaR2Yrd3k2bHJsQWZrcnBSQXNRMnBNVUQ1Z0YrSHpmNEJNcjFnTU1TdjVBRGtSMlZkNGFLMzcvSzlWUmlxNW5PSXhNNnF1bGx2TitxK1pkRDNxTWlwenFlanpjUzF5bENGWFZGbzNJQUZCN3B6anFEaU8vOUswZ0dKZFV4MjlyTUNieEhNdTFzTkJGMWgyK3Y3aGxxdnFPTnQzdDAzODFZZmhHUG1mb0YvL3g1MWxYVG1CZkwyZjZNdnZYQ1ZUZkZtNitweE9CZVB2K2VrSlZjL1pmOEF2TkpwdkpqdnZmOEF0VnZzWUtwRVNKaHkwaFFHa0F1bGgvWTNiNUk0Zm9qN0pPb29qclBDMkRta2UyRmd3Z2dXT01DU3l0dE00OHFua0RVYzJwajErUmdFQXhrbld2d1VKeTJCOHBkQ2dKWUhTelVCbVdEWXBVVFd3c0UyU3VsUWs2RDR1cnlycXczQUE4NGlxUFVWNzRkRjZzQ2ErNkdJNzRDNzRhb2l5Y0lsSG1HRVpBTFoya3VaODhZaWZWUklrYk9vTHduUktLVFA5ZlQwOTViVEZGV0phaTN2Q3ZldHRxaEpwV2VtbFl6ZStOSWs0RjUvRkF5YWtnSVVIa1IvSkw3RlA3K1d4L0VFU1MwdkV4cVByaDcyRlAvZjZHUll3YVV5ajJBd3pNUGJMU3gwaFhYeW4xM1pjekxNbjJuR0gxUU1tcHF2eGlOK0hHNTcrMThMSCsvMitFdzN4Ni92dGVHQzBuaDcrWW8rOVZtZWhsc211Z2dkcVNVUXppcE1qSW9TSm9KQTZJL3FKREJTRHJHV0Y0V1FkSTRqSjJyaFhobE0rc1Fia3dObjN0a2ZQMUY0Tko0djdBN1E1L1h3aEQzTW5Md3V0QlZPb0dJZ3RMWXZRUmFVQUVYN2lsR0w4RUdpVzVmMzhycTIwS1B6VFE4dmRuSFUveGR6QmhYamtJU3FDbStsNXNlWW1QVWJubEdZakViZkgra0sydnh2U2pmK1FjdDFCcEp4TG9qdzlXNG1IZ1hCS3UrVGhRZVlsNkVUYTU4MmNDYWoxem5GUUlrV1NIanpEeHd4NjluT2k2MlBraWk3NU1haW1xVDZKNlhPcFo0MUJQY1ltZzY5K0tCaUNtWVBiWkswTEVWUTAzUkltSEJWQmR0UDBrYVdDMWFha1JKTVlEU1hIeVlDMEQ5VG1mTWhyMzZuVDROQnBKRFg2T1E2Slk1VUFQZ0ljS0ovMHpxU3F1MDZYY3V6TDcrUGUzejVMNjk3ZFAyVGQ0L3FXVHJiWXNCYUtZZ3JydVIvRXZQTkpEaU5kTFJJcTFVMWI4VEZDSkNZUlFnRWFaSU1EWTVnV0lGY0Y5Y3ZESWppUWU1WldHMkQrb2ZQT0l4SXZLTUZONVhqRjdmbHdibmg4eEJ6Q2wvY2o5a0xINWNPRVhSQ3hSWlpWS1lXbGs3VTAvaUp1S0ZYdkF0WXErbTdFYkZMLyt6blo2QXpLVTkxWEl2bHprRFVhS2o2dzRweHg0Zzg3VGtES3RSNTBES1k3UWZ6MGpKMHBpVU44QjVmZ0VvdFNBL005NnBGakRIZm9reE51TUljTDc5bkR3RnNOQzZydUxMYmtJUkxEd2ZaSFNTRS8zZjVhbFd6RUZLQmRMbEZydVBCNmRUUFpIYlNjdEZYZUdLUTlpM0ZjNXdFOHF4YnZ5U0FxMFNCNmxsaFF4dmlEeUZhQTQrYU9qRkVRa2Z2U2RpTFViakhLc3ovMG94bTJibElxVmlBb2NNaVZnbExhdjR4c0cxTW8rSE44Z2N5dm45RFh0SGI4b0RpVjE0TzhVNTZBaVc0VFVmSlUyejhjNEYwbDVmNDNWa3JvbjQ1SFlVeFdQK2trY0pQSDdhN2tjcGdDMldxcXZIaDVKOG5HWkptVVk1RHdrOGZOcy84U1AwU09GQTVGa2ZaOXFhdkRXOUpLcTRzM3hEYktlMzkvcXB2TFRHSys2THJOaVN1Y21JVnowczhoS1F6Q20va0E1Y256anJiUkUvaUJhQUtLZjlYTlIrY0V3djJBZFhIQkZFVk12bXRlOTRNUjdZY1dGTHNFZzhxbHlYOGQ2QVdndjU2VG8wOUtnRjF0eC9yRTVlVTZWWmZQL29MME9WTXZCN2FsMTRUcWtwUDFraDVXeEF1TVVRbzlhQ1NOdVJiK1IvL1ErRGxNMUwzTFo2QmNhVjRteGhXL0xjZ2lYcXhGQUpxWndGUzBtTzFpbWFlZmxJY0FHSmdRZXFWaCtHdVphNGdhb1FNa3hWdGZFaTFtV3I3OVViRHl0dVkrS2tveis5bWZrL1RCbmJHWlc1ZktxQ2JIeU53RTJla3V6SUNEUXA3U21QeXpySlJIcnNUb0hWb1ZYTWNTQ0ZYTUo4bjJQbU83L3lncGM2SklaZmMwbFpVYlYwOGJVUUF3d0l2dGdvbFdQc2NRZkR5bTZCa05JSmR1RHZXc1JOQ0p6TVpvTXNFWC9URXNnc0xIMHBlOG5xOG5vVVBwNE5NWFN5cnI2dEI1aHdzK0xyUFp5bmhXLzBXVXFiVFhuUDk1YWxkRlNQcUZhN0QrdzNwRHBweVFFd3UxSDh6bUZOOG54RGI5QWhJUjdxdXNYU2puMVdvUDBRVndWRGtQOUswbFd6UDV3T0JkNnNUaFBsVVI1SXBobmZzRVFvTkpMOUZKREFlS0gvcVpBTWRjaUxTRndRRTVRdEpOVGx2ZFNKQVVLRjhYRDlQN0FKYnlmUW9LR1BoVkJGQlZLQkJaRjhLMzdUbE1LTk1ITjhndC9TbGtRaDJsSWdZZGY5WldRMXNQa0tHVHdNMW4zZ3l1bFRQUXBoR1U1eFdLQU56ekFHK250VDcxQjVjMFpSYkowbVk5VXd2allpaDFJZlFlSVFwaGpMSS82SS9hRFB3ckdDZEFmUDJyVk1HWGtvOGdaTDFPdDY5RGdxd0xjcHhRb1U2UWRDRzZ3anNXcm1XQkZpV1VCektDYWxQbmFYeE1qeHNaRlNRUUU0emZjdzF1eGtCY1NsSzQ5NEJsVkh5K3Ivdmt4ZjZBMnd1TnloaUpUTFk0UzljV0FlQ1NlazU0KzJTMVY4NGV0VlJRdjFBRzRta1JPVGlrUktCS0lpVFI1VHVDbFljMDJLV292UDBxeS95U3orTythTmJqQnhQVDF4NExyZExWMExHK2hGLy9FdWluT0EvS2xhbHFPVm4zLzBFMy9XU1Rja01xYW92K2hoWG03ekluMkkrcVBmLy9qcGN6Mk1CS3B3bkZieEEyZkdUc1lPL3Ivd0dhdUo1VmFldW5mTHRURXMxRDJNYkhTRTRyeFlERXhvcEV4Y1BNMStKT3kzdUU3OWZ2Yi8wSmxVZGQvL1A2R3AvWDcyLzhxd3p2LzhUUTlxUC9FTTYyVGo2eml5K2xUOUxOVmxURDBhUG1uaTY2M2VpYWEvbmR0M1MvNTVKL2JZOVQxN0tJdzNFZ3MrTDlmdHZ1TCszY3d1SHpseitkeGVYdncrZTl2RlErOTd2Z0xtV3ZBNzYvOGgvc05KKzU1NFhDWWIyWi8vWGxONFlKYklWTEh3MUo2MkI4UEY4S2ZGQXF4ZElHV09yRjRWdVE2Vk0vKzF6Lzc0ZnY3KzM5OEdLam1ka1MxYVpVYXpMQ3d6ZnNFQmxYR0wzUkFnQjd4ditmUmpRSkFxc0MrYWx0NE5jdnlQeEx3S3hNbGlpRS9wUXA1SUVDbVg0akcwb1pRZlRkd0lMR0xIa0hDSW1HSXdrREMrV0I1VkZjaTFaSlVMSzhtZitEWHhYWUY3Yjg5WEQ3UEhISVNQWGdLT0FMV1V3dGJaOHBIVlBHUm9qVW41cjlUSE1tcTdyRFBkRmJxTy9BbzAwK2lIK1JPa0NybG9sWGRyNUppL0FnanJJV2VrZFZhVi9XZUdNcTF2Q1NHNkVOZk5GMzJocWdVUnZBZjljYyt1L3ZReFY5MThqRXNpd3B3aVdBOVFLdlVQRmFmTmQ5WDk3VVFTaEtDdGNoaThXSll1cGhRcVNQeEZ3UDhxdmJ2NHRQYWc5YzJYNkRCMGxuaUI5UWplZTdoODlLcDNYaElvWkl4VVQwUy9xZ2NyR2ZMRkVNR3Z1WEZQeDRWanVSNnRwZzRCNDJJMU5TU3IzUmdPVFVmL3NHczVrSXFLWXBydEdCRWdSUVArdDNDaU5yRTBESUYrWTh5U1E3RW9QSVZCVEJDRnFwbi9wSENOV1JqdVJqQXlNbC9Qcm1YYktoYXF1OFNYcExwVjNrOWxnb2ZaWFIxbEVxaWFtWDViaEJBNy8zckpMUFhwWkswMWxKaDF6eFRxVjlrL2hLaFVOdUx4OWxOWWg4RHNBSVBGM0c5Y2w5SWt6OUZ0SVhMZ0Z4TWhTREdvTVNFTHNoQXViNW54WDcwdVBFSXZ0eExWVGZYUzRwQ1R5M3VVeUlaaE1RVjh4SC82UkRFU1VUdTlmb1EyS2xsQmNhV2x4RGdSVW9JQUNvdlNhdGNqT1I2bmFxeVQzR2dpd281aDdmdzRVVUlzRTFZNFBtZkw1ZXBWYWd4OW9PM2drWnZ2dmVtR0pqUjNvcExmbDRnNU1oM0E0SjBTcm5wSzFlb3hwVjF0cnBNeTFCVDRnYlVlNlFwVDh2cS8vemlIS2xsYjJYTy9pTlZCRkVXUVRrT0tRNHZEUWRBcGMrOXF3SktGVm5Kd1NBNGZDUktsVCszWktFQ3lXSHBVaFFwL2VINWYxQks4b0pmOFRRUkxPdDJITXVHeFYwSGltVVlIempqTWVkSCtRR0JmVGJNSzVRWWFVcDlZUy8wS3k3dktqTk5LSVpVUzQ2SEZLQkd1eEhiTFh3QktIR0oxZUFBdGZDVkV6K1o5d2l2WXhqemV2cnh3YThnTzdZOUNpZHJCREVibGdSUy9TaEtDcU5KS2ZJT29yTHl1eFRMb0ZZVll4YUVDa0JPZlFmRmNXelIvOGVQMHNRdHFFcHNGeCtRVkRtOGhPZVZhWldsLzZ4ZXJsK2s0NExNY2hPM1B1d25HL1BSMzhON1QxajZRWjJIUmk4dmtYdTg4UFVpdXYyb3dYcnNNU3l2K3FpbXJQcGFjUldoYlFXRm13WDNVZHZCcXN1WDdadDRoUkZDa2lwUjhWdFBpUHIyck5pNkZ6aXphRXRXZTdjQ2pCOExhbGtvRG9CcVV6QldYeTdrcXVZRVBMSnlQNkoyay8xQjJFM3dEdUNYWlZWU2tlRlVCdXhMUVV4dWM4TklLaXFTTUtNWGJ3NVJJUkdXNktscE9ROTdyeUJBVWRYN3JOdjRGRUt0NHFZa0xyY2hNckxjdGMrTGZyWXFLbG5MVmx4eGR2K0pabFVlQldrbS90bjN6d3BYb3VQcVNkTi9Za2hOc3VLMnVGOTFMcTNvK3lqcGpxQUtyUnZVbnRjQUZQbUFmOUxwYzl5ZjlkejRlbXBJNFlJMFMxajNKLzFnN25zcjF3ZmZ5dDJtdU5HSzBoMWd2SDhWOTNzR1NmNG9TVWFFR1VhMUtzbFhWNU1vS29vemkyc2xFUFZ5YStxL1libUE4UUF4cXkxQXJlZXpIWGVZVkpma1lSUElqMEJrT1htQnlDcUIrYWMxMlkvNVk2bi9XTVNMOTdPVVdzU2xVUVFEc1NyRVNxS0F2S1VYN2xIaVR0NWgvVkcvWGNEMWI3QW1HcEl5VDZHZVVHbDV0V3Nvc016d2s3aXVqMStyaWJWNlF0TEhBckpLeHZ5a3pCSWZQRFZ0dlFiMzRZNGxiekZuRnNId1J3RjY2YWV2WFlDZ3dnanI0ZWRTcWhuV3c5b0VncEVTL2FMOHBWN1lxa09vVmV0R3hCNUdNYm1kcjRKdVQ3S2dyd3BqeVFhUitvZ3FRZFRDVzBqU0J6elZqSHl2UEc0L2EreW1RV3hQYVUvUEhTZSsxZ3MveVNkc1ZtZnFLT3lXKzljZElSK1NJMEdxVURoaFdzZE5tQjYxdmFydHdCTi9rdXkvaDJWWFhrcjRxVUxRbzRBVHc4Z0R4SlA1dlFLa1JUbEpjUXZrRHd5SHlRMlNDcm5LOFZFdlV4UUoxNXlzWlFVVHBpc3g2dXI4aHJVcFhvbjdUQnVyNlA1YzludUZNR3RiVWVSY0llS2tlRzdrWTR3cWpsc2lINjhrN0ZNOXZXblFlY09iOVZadzBNZlRWbUhrUityL1Y2a0U0K0VqeUZYZFQycVJLdFJpTXg5dGY3N2VKa3dPNktkNlJhRGc0MW5nUVB4bC9jS0tQN3YxNDZ0SmNkZzgwQ2dCeS9rcDFsblAyNWl3V1Y5Rjg3K2E1NStIcUFrS0p5RzNNa3dGYWtVUitPRCtMQU92enhCbEtaS3NpUG9RYmNaUThaOVBITnROeE5WOHhCM213b2I2RnhMSDFvU2gzblpsYm51TjU0cE1zZklCUm9SK1lmZUJEOWZ3a05MT0lLZDgvWG5HQ2xGVXQxdmVLWTdjbGt2U0FsQ1IrYWZCaUlRanlCRXY4MVJmVXUyL3FzbWdxTWJicDc5R29lVSt2bWs4Ry8xWDhVV3gzT0wzZjFGdmIyK2xGNHE4cm9pQTM5VmJmaStWZG1uYy9hZzYreStLK2c0em9NYUVBRC9xamY3MU9kWUt2VC9SZ09EblNtTDZDU29pK0JYOHJkOEpWY3FIWitpZ3RMbSs5QnhZTVlWdFpGREVjaFZZM21aWUZVYVdaVytGNzZCZUdmN0pqVllKbG5wQitzc2l5aXFQTWpSUmdUUkF3bzlZRzBUd2d6NTRDSUxhdU9YYVNqZmd4eG9JVENNSFczR2tBcFNLb0VPRU1nWVhMcmtLMFBVVEw2NXhhWGtoUUhFUFV0MXlmdEx6NHpqVk5RNGswL1E3S2xPeVBaalZ5WU1lbDRMVTdpdis4ZkFKUXE5bTBaVmw2WVcvK2F0QWV1ZEh4WlVQUHFpY0RrUUpQTkk4U1JJbmdhb2t0bmFEWG5HR0M5OFpxTTJ2dWlPQTBKNzArdHlrRjRkR1hOUnhQUktSbi9lMm9UbzNFRlgwM0Q3NDJEcjM0OUY5eXBMQ0VWeDBaZ1V2M3VIaUlTbFgvci9JZXhlbVNJNHNUZlN2dU5IYkJraVpXVkFQVGF2VzFyWVJSVW1NS0tnTFZHczB3NWphTTlNek01ckk4RlI0QkpDeXR2N3QxL3k4L0hoRUpGV2FuYjczbWwydDdYUUJFUjcrUEg2ZTN3ZS96aExCa3I0TWhpdkQ1Q1dvb1lOMEw5enRVZTVqZk96enBjK1FsSFk0RUcwVWkwN0IxMlhGVjFPQWhjcGdSN2tQZXZOMGR6aVpTRnJwVU1QVE5tWHRGcHdVWDR1Y0JzQ1c3Z3pqeTdGMzJXd0tnUU5QNmFCYnFsbWx4QzVYQVlnZCtTUGk0Y1dKeFZOOWNub1J6TUZDTU1QSnpjQU5maE1WeFNWY29QWGhhQmhIamI0RGNBSUk3TUE0amZIUmp6Yy9YNTRtMXhSaThOaHEva0xVWERHb01IdUM5R0YxZVVGMUxlUlpRWFh0Zm9JbEZYRHVIcGllTGJGenBJbkJSbGFONmxLSnJSWk9PTXRzS09xU2tXQkNPK3N4Q2FqbmNabmlQNk15TUxnK0VFMVZyK1Fwa0hwWG9BYWo5MllxL0F6NXg1VUNWYmxIYy9McDlnZnc2YnpGZnc1MWkzNlo3NlZKSitvcktrUVV4cEJqbWNIL2lIN0g5ZHUrbG13WVBkVXF6ekUwY1ZTWVhMYXM0Y1RvTWNjYk1GN0JCV0xTcGl5UHFORU9vS2dVY2wxaFRjYzROTFowWS9aVXN5VUtDZklIYXRzZTltWTZ1MkpqSCtNZnR3a0dSbENWUmlsN0JzWlA1UWVRWUJXL2krSGc3SzZEN3NTK3hJdnBiNVRWaElHa1lpRW5GUlhsT3FxYnVYRHB5b1dYaDFGNmZzbTRvd1hlMjFJNE1PZzd1R3BWUisvMlBwemMzSjVkdjd2NjZkSmN4SHNZSHNOZmdubnJIeXR0cjN6dTYxbFdNMEhud21NSTV5Z0hmMlRjRTFmUWlqQ0loODFZN1ZveTU1ZnZyMGFzSFYrOUg4SCtIcG1iSHo3ZHhqN2puMDZ2THQrUHpQWFZ4ZG5JSUZuQ3lOeDgrdTdtOVByOHU3T1JhdTNUWmZxMSthai9uZi9sMDNjWDV6Yy93RDl1UG4wM0FtellrOHQzSS9QeDZ1WldOL2pEMWMwdFRNL0Z5ZTNaNWVuUCtjcnRuTFBNV2ZqemdDTEk2NmZoZ3dsSWx4UkFYMGNKUERFL1VmWStpWXFVTU5WcmdnQUtLSlcwOGVnTVFHKzQyNnpjR2xBUm9YOEhVemV6WU0yQ0VVT2VDN0w5dkJZVGJCZzZHd3Fvd2dUam4wQ2VVTEhvU28xRDdWUVhiRlA4bnNRbWlrV3FNcStkMUNnMFBsN3gzRHUvU0tyUnVnalBGb05yT295WGsyOTBlRFhUY210bjV3RDNNRnhZQ0V3N0JEQ3Uzb3FYSVVKS1lGSlhqanJZVmszZEJvVldva0pvT1E3MGViTWZVR0JZaGVKSHFLdDhHNnlMUUtQSGwzRjlSZW04QVdsbSsxMkZMdFZOMEdObmFHdWdFU2xDVTF0Q3hNUWptZUx3Y0RMbGRMMDcrKzdUOTUwUWtibjF4aHF1QjNOUFRSU2liT1VVNjAzdEh4U1NDN201d1B6b1RTbmVidnMxdUFVWXhROXlYc1BLenYwamR6dGh1MmU5ZjJINmFKeVQvRWpLTW5leFNaUEdGNVVZQTIyNjVmWXRPc3g4dlFQeTdkSTlxaDFCNkExNGJ5YU1nQ0JBbDNuNnZRVHZWcTZqYkd0VkUvY0ZHclBvczFsUTRXTVlDUUwxM0dOYU42aE9nSnhwVS8wd3Vzbnp1K1p1YjJKT0tuRXl3cjFVMnlvZ1IwZlh6OTNKVk94YWp0cEJRNjF3TFdWRkVkMHZ2dW5mRmVFZWtQZmMvQzAwU05sNDJBOTA4RUR1cG50TStXa1F6eUdRMUJWNGdYZmxUY0ZneVE4Nk1SY1EveEFlTEo2RWhhc0o3d09oL0dxVit0SDlUL3JnOVEwY0VBUjE3YXBHVjBmRUsvMGRlZkYrMytnRXZ6NE5jN0JIc3FCZ0F4SkVCYUp1anNUbDNmZzJjZERBQnJjZ0Vub0ZOUndwcGdYSjFXcU1HZEY4eXdRdVhRVVZCL01SaHhselJ6TWw0UHphdXBiU2Z1Q2FWSlJrMGxyVXd6M3E0K0FReGNnRkJteFZrdVc4bmZGWTVOVkZsQXNyMG1TajRUeEpnK201YWFtU0pFbG55bFBsdllEV0ladzJmZHJyR2c4azM0VnFTRmJEeUVrek9rbUJ0V2NlbEs5Y1NzME9nNVZOdzMzSFNNY29zMEp0d2RodGVERkdnZFB6cEVBNmFnYitoeVp4Ymd0TDV3dm1LOW1RMDVUSlI3cENnZXlaT0R0T3JFaHBob2xDYkIzRlZLbkxUYk5kQjBpa2NjUW9WaUVqL3FDMDlkS1pxYTNtajhXOFdSMnlWMFQ3eGdmTUVYaUVMRWgxSDR6NUhmQ1Vaejd5WitlYm9rT2paNEhlMFFZcDdYYUFWZ25YUjBkY3dzWSswbjZBYkFRTW1kQ2NpVXlEZUJ3ZVpoVjkwRktuTDVEUjVFZ2xPeGdIM0wzRmNVeVErYU1aK1dMSHBiWm82QlNNY21CVE9nc2NQNnJjVXdNajRPK05NS21sQy9IR094ZG1MbzlKdVNhWEo3VERobXNnNGUyUVp4QUwzR1BjVDBvVktvSjVJOVhocWhKRGtTWkZ3eHpxc2FRdUJ6TWdVbTViYjUrcnN3NmhzRjNiYm95ZGZmUDc5aDc3SmVIbG9ZMVl1aXgvSmZOb1lZa3lubldVR3BoeUlkTldPeXl4THhiNjc3TDhQUWV5d1JwbFRyZ1FYL1RFdktNNTlndHpwS3NPTWk4TWZwMTJIWUlYb2hUVmhleTJvUEtVcU10QVQzZFA2ZG8ramFWdnFqSm8vTi81bnl3WHN0Qmcvb0FzRzRSUUM1eVp1a0ExZ0xuNUN2SnhZUktaV2g1eGI3Sjd1Rml2M2J6QThqMjAyamdIQkhmSWlBSG9rdFZtU2g4QzRidExYbzB0U3Y4QWdDejlUbjZkeWgzYWtyNExIQnJ4QmpoL2NRVjZlaENETFYzajhZdFNkUWVNWXBDblQxSEwrQ1o0SGJneno4V1JsUmQyNmJwMkkwYTBpT0FBREl2N3lqK21Lc2FvVnMrOUFzZjRwNnh6eDFLQWU0emo1RENyUlVNekphcHpMOVloT2x3WFdoMWxlb3JVUzZOQWtvSzZFTmdXbHE0Ry9CVVkyMFVES2IwcDdLMmdTQVp6VmdiUXhLSGtGRWhXa2tZWU4yanBIMEU5dGhWSmNiaHR5ZjZqYkVlVjZLVWxqbWhpYXhEa1JBaWdwd1QxRDJENWdGeEZUUnFBUFUzZTMxTUlWVmJnOVhCY0dhZmNVMmJhUnJNaUpIUjJjbytQb3FZUmV1cGhieVc0a2lEMk5zb3B1czBjU0RSMTJTN0tOZ2cvVElNd1pJdE1rWlBTTmlWaFFXalY4MmxjcWU3eVRNeDdoaWRHNEdMKzZtQkpVODlpdXR2alBJaTdQVXlPZXVlUlRzRjFEdnBCMmxxeEsyd2t5SUtEUy9Jd3RldXJNYmd1eC9QcDNaNFp3eW5NVzB4MWJYZ0JxZFNMWUJmSk0zRzNGeDd0QnBxaHZLOGZuZHVrR1p1bXlTd3FjMzN5Z2RQUjFOS0JiT05sMjJuYzVhczU0ZE1hUk9ZQ0xVazh1L2V4QjFIckFFOGs5bVJYcytMV3hXNTFydVRNeCsyZXdGa0hsSUJ3bnJMS3crNS9VRXc2czNHOWFqZnpTd2pFY2JKSWlMc0FLL3VsQXpEQVlOYzdXOVI5V3hWQnB6MzBudTBrNXdqbVNHZ1hpMklHdm5BOGFTTVd2SFBZV3JBNWkyYTBxMTFBY2dHanNqSlhWeC9NZlNHV1pYNVp3eWFTN2R0SmJrRFE4WS9ubDk4SGRQOEZiVnVEbjh5eHNvREIwM2pEZ2lOTktVSnlYVEdrRUlLeHdOUHBvb2tOLzdJcHF1VXY5SWxmQ0grYzhtcDBocDBDT0VUMDZlT2pYZGhDTU5yWUxHc2pZMnIyK0tpVC9OWXRYQlRncGE3QTlGaVpQdUEzK2E0dDc1UDZHYTlmdW5kdmZyNDhIYVdqQVVVRVVXZzlGTzVSYVhIYVJVRXJJQi84M0x2QkhHQkVCT0JLRGdmaTRGL1FGbWV5SGJCcjM1eWMvdGhwTVNmSVRGWU5aN2tnVDRSc2FWa2pDbXVtcXd6KzBrZjY0SGprNEtxbGlHOGFEdHM3Q0V1VDBwMkE4dyt2T01tbEJxNlkyc2JESlNYSHltcG5FNExYNDlsTjk4M3ptMjRBdzhxOG8zenIyOU9QdjF4ZXZUdTdPUG1aSGRHNW80Z1VpN2h2L25lL0RpT2ViaXpTTm5kN1d4ZnU5clNlM3NMc1FPNkdxelhXMk9sSHM4SGF6VGhRU1cyT2Q0blk4MEkxQVBJdU9iREN4SHpYTmh3WXJveWR6OFZHVkpRWmNrMUVyUWt5WkhyaksrWnVaS0xTN2Mzckk3TXV5ckpnQ3k0S0EySGNWY1FtUVVDTVUxbkNNL0dHN2d3QlZLczRBeEFGNUxOOTdESW5ZMmIzSFBLSHdBaE9VNVl4aVhURDZic0p4aDRkaUJvZ1JFZWtpMGRJQnE5bVcweFRLaW9FK3dEZUdONjFjYVlnK1NSRk1sUWdlQ2pMTVNybm9GMnUvQ1lZK3hpdDFhYXRLV1VBYlFmZVJ1dmtMSm5HWGJUMGZtNkt1Yk9keXdPWWZwclpabHg1bk5RaENJSmRDVUI0cklRSUp4aldIY2xIUDV1MTZ4WXFxenArTFZ3MkdHdzJ1amtFb0NqNWFnR0JnalZ5WFl5a2NBZmVzdDBHSDIzVmhEeFhCMEk5SStNWERRVGxVVy9FYUZxUk1vWUVURmVjb0ZsQ0Z2b0pmTHRjRVpESXhnYlJvNkxFSkRobTNJZDk4M05kUU9VbEtqdDZlRU8rRmlxQjJUSGxJeXFxcURyUElNNXFOU2RQbVVwcWxwbUlaZ1hJN09udlNrRWI3R05hYldUNUswcy9ZOVNuVk9xaTYrMmtuN3ZHRHB1UkdrWU13K08xU2tlbkJDNCtFNFNFbHphS2JLSE9qbWxVZCtsb0o5cC9CMVFSUS9xQytCMVJheEJmci9pbnNCZ1BnMFZ5UjBIcDdTajVlK1Z1NW5zTFdlL2xBS2l0TUVyWXdUbkJFaDhtaUlWaWwzZW0zY29rVkpESkZKL09KZ0ErZ1RmWmlCeVhvREZqUkZ0RkFOYWVRRFZZaDRDZE0rcWdScVc0VzAzVzM5MGU3U050TmF1a3VMczlTdjJBNUNYdTdsdXpjdElYYXA1VHNVVjg3T0x1T2tta1ZlSVI4elFCdFN2RkF0N3hlcmJ0bXFhRVN0WmNtZVRsMnRTRmgxZ3JJRW1BMXJ0TWQvS21CZUJyakhKeGFqQVNzbHkrdjhxeGtCaW9na3NxOEhIaGY4MGMyWGp2V1oxMlJ3dWtVRVI4T2hsRk56Mnc4aXd2T0VsZDFtdUk2b2ZURWNBZEdtOHhHVFlORkFHQmdUd0pHUHNnalN6dUxPd1dWakY0WFlJbW1STlorV1N6aXR0VEJUbWFWZnJXOGRISUhCOGRqY3pMTnpJdk9SQlBNVU9LSDZ5RzdiN2JVT3dXcGVYalFJNGdwL3VsbkRkcEFMZVNyZTh6azhIWUhPeU5aYWNPNDNyTTRlT3NydUN6REEvZFNmZ0dWdkZDTjZhS2MzNjZ6U0VBWkdOa3MveU1Nb0pRSTJtM0hoOGRkY0wyYXJJNnUzMVQrNDFkNHFXREJhbUNLa04wbWdHSWM1V09DZzg0NWJoSW5HWThXVVFpYkNXTGNlcFV0WEdDQk16OTZyV3o2NXpwUktsSjZWMzJJbUJWSHo1Zm1aT3I5MWk2YWM3UWJZcmdlYk5aVzdNbHA4YXFLVHZiaXYzdlZHMW1LKzBRTGlyWS8xQTFzNTBreDVpcVY1b3ZzZHhFVndNNVc1ZEZoK3VDSmhGdlRQUTdpcTNOOTBFaTYrSEpBWklKcXR6cFpJZHk2QjVrNk1JV1pkU0dGeTFVUGZPSCt3NHluWmJLcTYxU0R4dFBsVCtZdmtKZWFKZ1p6cmg0cHRCUkExZ1Nlamd0c09ocnJpSTdVNUh4b1h2cXdkVkxMT3p1STVHTHRTa1hFdWZQYld4VnpQWUYwQkQyTmQ0U1lPMVFiVXYyOU5oWEV1TFlWLzVKMEcvZ0NWSTZVeEpRTll0S0FYQ3A4bEh4dTNZeDBJSHFXREhnTGpTUG50cW13bVk2VGpPL3p0R2F5VXl0eVBrSnk4a2hSOXh6S2NGSWZFM0JMbHl6VGN4bzZGa3JMV2JCYldyM0FQeEN0Z3hSaTJVSzM5cUdWVDllcms0S2xxbVBSU3JnMXVpbC92Q1dBVmNvQW96UXhoRXhBdGN5TndPRnRTSXJueEVsdFBHTnBWWlpvdVR1K1VReElUZ3VHcExxR2NxWVRoYW9zS2hnZ2ErK0VOZ0hLbGJjSkhlbklDK0hzQzZBcXFUY1pnS1B4UVdQK3Q0blNCWGJGQ3B5aXJwVGp6R0hna1pwS0p3VTBQamxrdURXTVpOWDRmUkZReVlWUkVkem5KRXBrU2Njd0pwZ3VQazBGNDFaK3Vaek1SQytaM0FUZ0ljUzhRN0d0QW0waWZsUENTUDI4Y2VVZm9VbHlwRDlwbjJnNUJORlpyZVRyaGtuTE1oRXNnUlRrRGU5SDJWQjVkdHFCcGxLQVZMQzJvcC9OKzgyeWM0R0txemtCS2w5Um8xS3ZkTjFESmh5dnE4ckFzd2plSktURXEreUpudGRwT1RKd2R3R3NuOGtZanBMMFBINnFIYjFpSWs1ZTNCVjV2UGhSOUxnMWJIcUo2OVAzWURoTVRHM0N2ME5CUmJzYys3TENCcnRhVFdOTjBlN3RtVHFUNWF4MklHT3cvS3BKRUYyVm8rbFc3K2szTExFRTVlV1Q5bDVFb1FvN1JMZjhiVnh2N2EyUkcvcWgxMk95SGlMWFdvYlQxSmtpd3JDUzJWUlJRc3JOTFlaVE9PSUg5UjVHNVIxaEZuMVRPTXh3R2c2b2l6SUdSaGl1UEV6Tk90bzFHNHdQN01iSXFYdUpvMmNxZE1CNWhXOXV0aWhMOXFPMzM4NnVUNjV2RDA3dy9ZdXUwbFNtTm90VW11a1U2UUphMlJOaVErUFJUWDM0Q2lIczlMVzdMZ0xrdnJJNFhkVkN0VE52b09DUGthSEd3bjZyRXhnRDZDck84eW9peEhhRmVwNEVEUkt6cE5YSFJNSjl3MnZWb3FWREhIT3JJdWsxSXdianhMWXZCcjg4OW8raldQTGpNbjBCK1VBYkxBeXoxR0JCcG52a0s4anNCeWdtU0MrempPV3lYQ1AwcFY3WkE0WXBJZmpXSWZhdnozWTVmVDY4WkVxeERuSmMwR2oxYzdKUEFWaG16R09JTUFJK1lRQkM0UkdxeFI5MEpkRW5uQTd5UmNRQ3U2aXdaK2x6ZTF4TldRaWFhTTBOUEFTS0d4clljN0ZIRVM3OW5IbWFicDlHVWE3alVPdFBZQm42U0c1V0ZSeGZDcmF4MlpSSVNTUUNPNFBUQmJ2YXBOY0dZU1dpck9Vb3RIWFZ4ZG5VRnFJOXhHb2NzTjZ3UzJUOHM3TitjZis5QXQ0S3Q3Q2VDT3FFb3prSmdjVWdXUTNKZ2ZlbzkyKzdkVktuMy9FNUdEK0lCV1FTcFFKaUdWV2JuWXZYbDNuYW40Nk5VTzdnNkk2N0wzcEZFV3l3N1diZGRQcjFFZkFrcjhsSHpMRis0a2F1OSt5U3ZvWnlNZzBZR0dIbGIwbjRqOVFQMmt5MlUyZGlPYlRoSElCbktxVVR0enBRM2d2WGY4SnFPclErc0xYajRSejRtdHpTZlcxSnpUbHQ3V3RBc0owbUlQTGs5dERyZHlIYmdrZlpFZk5HcndxSUdCalp5dGtvQzQwaG5IY1JMUjVrdSsrcUh0NHB0SFNvb1NQRFBVODMxN3BCS21ERHhQbnRVRmhoU2NLNUk1ZjZHNmtJQVVnVldqbkg2VGdYVjJjU1RVWnJva1BER3cxY0ZyRUlPYnJ2dFY4L1R3a1RXRVRqZFlIVjlmRjNHVkt2dXdDRXVMcC9IMU9VeG9YRy9ObUF2OXY1eVBROHZITFY2Ky9FS3JCL0hqMjg0MjV2VDQ1L2ZIODh2dmZBOVZBdnRVb2IwSEhaZ2VKRFlUcHdxUlFzSUUxQ3lUeE9mbEZaN3AxVmk4Mm1waFdLMU5VUUwxSUtRTUVKZ2ZPOXJXTGQzc1k0Yk9xWXN6T2l5ZWdQaTJxdVh2Q2JSWi9yT3lhNlFLNEtJczhaMUhxQTZRWkZPeTJkWlVacU93cXpoM0RRSCtuK2lhTUFZbUJmMkkrZ2djOFpXMGc5amxValM5ZEIzOENJcUdKSjQwdTRyNDBYVFhOSnJ4OVFVd1RoWC9SK0UweEN5K0lUalpPTnBObkRSS0sxSFoyM3lFRVEzVWJHeGhKTVZXcWFQcTFkWFhCTEpraHRPdU1CSFJLaEZweklxeUQ4NFh3MkpKUWljbGFtaEd1NEtLeE5JZlNKbUQ5WW5manNtRFlsVENYUitnR3k1b0ttTWptNWhTU1ZTckw4Qm9CSGpNeEhTUWF0b1JkdzM3OEtFTXA5MVhRNHB4OWdCcEJqOFVOaE1wa28wcFBiRTdnRUl1U0FwZVUxNWJ5L0hnYjZaejMycEkvSFlhN2NNMk1RaG1ZeWpoc01YYjlpTS9sNzF0SlRGN0UxVUdQMWlLditPMGZ0UXd4Q3B0blZlOURQTWl4dDNqaGtUdXNDS2ppSy9jbFpWK1BjaGhSaTJMZFBSU3pCZ2M5c0Ird0V5b0hoU0VndHdpeEdnMkR0QzBnTm96aDU5SVdhNXB1dlNlTC9IQW5CSGRodGZQcCt5NHh4VEVSWmc0ODcvTHU4Znd5WDV5TnF6cDNVZG5NMDJOd0YyUndqb0FCbEVOckl1QVBiNDArbGVManluUG5Ib0U0bS9OdDdCUjVKUHlpVzZZSmN3UHdUL1FpdzFrV0ZmVnFaL1pIazdLTXdFN0FURzFLZ0djTHZQSzQrTFFsK3ZDZTlIVWJjRnZqMFJid2hKMGJZS0pTZTFIRmp6WjJ1TnVENjUyVis4UzVzQ2hBTmcrUlQ0bzl5RTArdi9XQW1RbU1aQVNiV2Z0NFBRMlgxRDZTdE1vRUxOOGIwOXJiK2N3QzhDeEJsRmRlQkFJKzE4SExvbnMxSU9TK3BOZzNxZVZ5UUhuZ2o0K2gvMkNqd1JBQjIvZm95eWtBLzJCdXprNC9YWi9mL214K0Z3WGdUK2pGZkV2eGJlRnAydFN1YWJaUTl6UUNoSysyZ1pFaFhJV3RBT2NGTXBra0J4RHptWHdsQ0N1QUhFY0d0MVFSVzJaam12b25BbzVVaFJsYjMzYmlGRkVzbzl1anFhTjFKNDEzSUZDMjRoMkVwNTBONE5lYTFzN2VENUFVY2kwM0ZsZ1NJZ3hLUDJTakNDdGJneE51VnJzbUV3ZzVmeWdmWTF6K0xPWWZ4ZDJVQkVqeEc2blAxZGFzMnJXdFJ0bW51MDVUTEd1M0VJcG1NRnR3RWdITlQxdmJhdTdYbVAxa0c0eW5CUTlvMUtpSEpWYzFlYWpiYXRuR3kzUmFxdkZXY1g3YXhwRmtKVjVpbmtlK21DWmRaZkxrOUFMMkFTVWdTUkpzeDdURTg5elhoM1lpbUpqSlpHTHNyRFExVklKTUpzODRmM1kwRys5L1Y1dXYvd3craTYvL3JFQkUvdkUzUHcxdnZ6SytJdmJpeGNKKysvTG8xZXoxdDYrcy9mYmJBZE5idzdzQXJOemRIaWRFN29tMGlKZHk1UjR6NHc5UmgvQUp1U0ZXVkVkNnQxZDVRaGVLQTRXTlVIV2JTTDV1VllPalFWcm1DZ3NlVzAxZHc2bmdZdHNWa2dXQm42SGFadmhId0l3T05xSlNLd0RLaFp3VEUzT1Z3QTBYd3graTBNMml0TXNsbDRhbE1XcDdxamMrMUN1S0NqTUY5T2pRTGF0WStjblRsM1h5Z0d5ekg4NHVMcTdFbndKL1FsUHZzQnNreXIraDFFN1JjS0JZZHdqNDcvU0M5aVhXUTdzd3E0dXBRL1BFSnJrNDk1U3U4UXlWVWR5RENnSzJFdUtsMk1yYkFiMHdSK2NKYVcrbDVQcW90c2gvN3hTWkU3ZTVyM05iZGpVK25GTlB2aG42WmdZNWFtd0p2SktkbVZVcnZhdEpXSDZvclZNenZndHoxaGdCeGMxZ1hEUHczWGpoM2hlYmpVS2ZOME10bVozTnhSYm9oYms1WUF5ZjFOclh4RVdCTzQya2xrSDZkY1RCaGtBZ0pUakNSdUdETkR3Tkh3UWNoUTdPWC8vK1Y3VHVXSXFHZGlySkNnZHVzalIzZTEram1mRDNwV3Z1OXFSaXhveUhPeGYzd245Ly82YWxSNlZwb0g5ajZsL0krL2YxbjZtRHRuRkxYMitwaHpzbWo0MWFhYnlvMEpDVTEzZHZWVkFMK1VHMmc0R3Y4TThBMlRFeWZ3NnVpZjhYdktidzczVGJkRnJVWUNNancvQjlrQm9MbDB5bS9rMW1XTmowVE5sTnd1Wm5nZFd3MjVpRkNzWW82V0xkMFMxOVAvR1VtRC9IV1VOMXFqdC9tTElyNk12RGpXNXFCMVoyTmlZMlZWUjVkVHdzNnNxSERJdmhGdVBkUXFXZHp4K2p2MFA5MTlqV1N6NVB5bStJY0ZYTWdvSTNXVkwvUGtPMUszRHNjcWRoOEJLSmNwbWt5VUFhSyswMUhaamQ4Ujl3TlUvSGFYckZqZHdJS3ovWVNrc0VoNG5hMEdlYWhCMDZSZzY1dngrUEtGbDRQc2RVRTBtVHBRdjJhK0RXWFJYaE02MXlnQWoyMTZaMmN2VXhNaE1TMjNaV015MldMVXVaRjNOU0ZwUTAvSFhjYXhtbFpRTU9RV1lzWTdPMjhad2RzZU40MFQ2bE5CMzVGRzB4MGsya1BCaUpLbFB2S3A4NnAzbzMvck9DRXpIbUh3eEMxelN1cnBMY2hrSU8raTM3UjBnc29pSytSa1JNWEV1aVBSd2VoK1J4Z1pZcU9aei8rQXAzUXpxUTZMZUVPQVoxWjdBOThFZ3NTejhkaDJaYnlzT0pkaFU1WU1FeHZFTkU5T25kR0lXUXNUTzQxWFEyLzNnOVBGZHhxcUt4REQ1Rzdndk1GQWR2Zy9MTDh2VFZDdGFrWHlxWlB2clQ4eC9Gc09lWGZuWEh4VUF3WW8zUHRqYThCLytsemZPUHIrU0pLQThiZnVhOUZOK0M0TWRMQ2c0NlBOR2JTN0F6WG43ejNONGJXR0MvTUIvYjZZdWJkZ3JaSkZBQ3BMYmtqbE0wbytST0NvT0JidmdsRzRBK3NlTTY2STBvQ2dQdWxKb3hIR2huMnRLRDZiL2RVMGhQNzVqRlYyNElSaEpua2Z6elpOV1FnNWliUjFWQS9zcFpvcm51blAybkE5VDRtZlUydms4cEUvTzV1ZHZEMzl6dDZhL3R2S2NGQXh3U0JrdEVUczd0d0dnN0lUUXdWQTRjZGdZL0d4NDhjUTdrNDVkVWt1RVpDRnAwd3JCNDk1ZDA1VGZLZjBNUlhDUnNxdVdxU001TGJkLzI1QmRiaEphTGUrUHRWWGxwLzYxMlNyTG5idGRPcE9FOXNzV2dTTmZZRmhLck8wMzNydHRSTFBjdXhPeUkvSWU1T2Q2dGhla01kWmVKbm9MYUdZb3RXZWE3MU0ydEVJeGxwamhid1BPYzFnQWhpNE5yY25PN3F3THhoR0J1WnR5RXU1SXhqYlQyL0lGTk84cDg4TFdqL0Fua3lOOUpLYUwyZkRUdzI4QlkwOWtnMHFhandpVWJncDhWMnVzeHZEMEVDRWZpd0VTamtCblE3Qm1KcWxVS1JIYW9UL3hhT2NvT2ZKMTh1VTNjMEdvZzNTTUxBK0YyaUNxbXkxaHEwVForbXlaN2xPNmFVVFRtZDVTM28ySUQ2Z05NVU8yYXRxNEUvZzA0SXNCMUV2c1paMDl0emgwYmptQThpTTFJYjRVRGxEc1VOa2V4YzJnTWt2NDdnb25ET2d4ZnA4M09ZZmFVMWhYL2hPcmxydldMVnNuS0JZY3JpQWxGaEhLVTdyT3orRXN1VWVjMDloM3J0N0d6S00wMkZzRGdLTUVCeklqWnl0WjJGZ2ZOeVh3SGl0TXU3RGlYL2JmU2txTlFwM25JN2pzUzBWSDN5M0U2b3FpZ3JDbVp3WjBrUVgzUUJJREk3ZWVjM3UzVjNvdGpUdE9xZmI1bDFLUFlkNlhlVFdnbFVJMEFwbEtPeDdqN1ArakhBUWNQRXBvaExIV3ZyRDc1MkVoL3pBQzBvbVFFWDk3YnZFeEtxTHNSMlU2WmJpcFdBRDdXZUNFaElVM1VLa1hUa0NCeWxjbFZ0cnkwcHorMDA0WXBxTEduSUZCUGZ6aTUvUDdNZkRnN3VUeS8vRDdINTRjVEVidXRJWUl5RzBGOENwL2o4NlQ1dEdVQkdHcG9nNWt4b0tKR1N3TlBhQlJkbmJoQ240d1JYVUozZTlBV0tqSlFPOS8xdXNpaFJtUVI4UnpKck9ESDZYa3VrOFNPMlhtMDRIcE5zcWh5aVVPK0EvdUtBNHhyMmdieUFXTXRMbjdzRVJRSzBFU3lCSUJIQ0FtNnVrbHpuaklJSWFkSk8zR0JnUTVxMFJsRGdkT2tQamZ0Tk9FNHlDK1o5a3YvMk84NkZjaEFveXM3TjF2WFlJMXU4bmVwYWFKYnQxdS9OS0tKNlUweVpIN01vVlE3SkJFcVk3VTVQQW5YTDREdUEyUXJ2YVJVQ2FTbk9TUldSN0k4U3Jkb3hvMGYxOFZ5MVF4NTBOUDJCdHVXOVFsV2I3UzdEcVZ4VVlOMldGVExoTTM5RmRoYUlOekhBa0lOc0FPcW5BMHZVZUYyWktSMGFLK3hHbHdhMUxmS1dPVFZ0c3ZLaDZhWVJhMWhZczY1N3VIZDJZVndzbzNNdTA4ZlBzWWZMMDgrbkkzTTJiK2QzOXplak15NzcyN08vejBEL1FiTFBEN3c4VHkrZG50N01UTHZMejdkL0hCeWNURXlycGxOekdsV2hRYllUMzVPTEFFeXpxek5LTGQ4R29aaUg0TE1xTCtDcGZ4WGNRaDJQMEZ3eDdsUm5uMXMrQXVDQi9YWCtMSnFQeTBMT0FiRzVycTdEdVlnc1ZCeW80ZGFoYzFMOFFEaUoxOGRKUDFIU1lRcnkzU3UyQzlYUUdZdWRjM1hQQXVxYytoQVNCdW04YnY3bHQ0Q1g3RVptNU5oa09vNGlIcHRTMTJrRjNTUnFzcEI3TXgzY0dwN0taVDVEczcxemNsZnprYm13OVhsK2UzVjlTaWVQQTFCSDdkUTZteUNuaDZiajc2SnlpNGMxL1Q3QXhmVnAxVCtwOHFTa2IvU1lrNi83dXVEcll2NExtWXNoVU9LMkV0SlVOclF3dE1uQitYbTZ2cDJoS2RBTjNsNmNYNTJlU3RqUktSOWdjK0hFYXNaeVFlcExMSngydHBJSk1qcHZ1b1p4ZnN4VE1TWUQ0WXcvc0gvcXNEM3VjTm5wejljalFBUnF0c3RDWWJrVXkrLzduU3JyWnFpNUdwN3lncUFmdXF1ZGVNeVh5RUc3ZGk4ai85emRYQjhxRGJpQjdzMXBmY2IxamRTR1FYN3pNbi9IdzlOUjNGTHp6cE9FYVdyNTk3cEF3Nkl1R053Rk9SSGxuSEZZOGZVODV0Mkd0cHBuQktrTlRBdkVqa0NFaTJsNit3clJJNnl2TFEvbmR5ZXhoYytmTHE0UFRjdnpObS9uWjN5TzMxcTBLOU1tTlVGVmhxTnpZMzhtMTdRejdrNGcrOEFlR1M3Y1c4UjZHcmdPWTRMNVUvL3R1Tnh1TXF5SitOdmhwNWMyYkRLbjF4QkFlbFFIekRySSs4dS9HN282V25Sck8wbWZ4cC9OOWlON2NiVnBWK1d2dk1CL1lmK2Ewdm44OGZqTHdaNzd1eTYxM05uMTcyK2FIMTQzYzA0eFRTd3FHL2tKYWVia3NBY0YxbnllUXFzUGJxcENWSGkyMlpuOXEyZGxhcjI1ZlRDWEZ4OXZ5UHNmK0dYbUtjVmlOeGNxVm5SV0UyK0JVQUJlRUQ2aUo3TEFvVHN5ZWtGZWYrNVpmUmVFVGRHVS90MldycXc4cjdwZlF6a1NXcHZ1aDF1amNnMlU1S2dVSDNrbVphWnFVUXpFS1gzMlMwQTV4WlZEcy9ycXFiZW10SlZ5MmJGaWp0L0ZXaXdhRTN0ckN6OUVxdU5YR1dPWC80cHpmTW56aEozVDBDQVdTS1piRkc2SGlnbzFLS2pmb2hySDkvRXJDTjA3MVNKSjIwSWdWaGR1dFpBd3ZiWWxyNGlwSDNJUFMyUldCNWJ4V21NUnNMYU5Tcy9CeHVVTTdpS0p6Y1hGWlNxQjFLdXJ1b1ZPaStTS3dhUWJBQWxOdHFNbktUS285ZVRqK1BRS04yWTlZSWtYaDZ0MjJHMUdqaTFhVVd5aVFXVm40SHhnWE9RRW1HaGJ6YnowMUV6cWU0dzBWamkwWW5qaFdJcHpuekJhZXYweU01SytPQUwxOHlJa1JLZnk4N2IrWWVQVjllM0o1ZTM1dkxxOXV4dEo3YUpoL2liSGhkYklSd2xYT3NOSVViSmRRTzJrbmdEeG90d2tWaXFUaTg0YkFnVFJnNGtZbEpsaTRpaHRac09rR3d2ZEtCZHVSTnpTcG5JS3A4bDh6Vm10UTZLSkt2ank3ZFM2UW5HQ29oQzlnSXppUks4elY4ZmFrVnRVRWlJUklOTDVtRlQrOGJQZlBrV0MySWV1N2szT1lpUFRMeVFya2w5UFZWVzBrclRkTElIRFFYSnlidU9wVG9pREFmMFAwUHFwZjRHRmVZT0UrYnFCeGZlVDIydDRUb3YzYVBLUmlTRVowamdJU2EyZUdtaXgwWTd0YWFxNEwyVEFCYy85MkJMeWpRQUtjTkdyOW4zaTRXS0NvSTdkbjlpYm9ZMjhPVGx5R1NwOVZvK3JXMWxsNDc1cVJyZkQvcnhmY0hXZHJ6WHlQY3JnR1cwRzNydnBwSEczVkRKRkJXQ0oxRktzRkFkM1RFcWJlTkJxTUVVUmVEQ1M2d2ZEaHlLeGhWR2s2cnJRMUdCdzdkbVdRT1VTUnE3TGN2ZUdCUWlWb29sdmpXMWUvRDM3Z3RmRnZVaVlRLzh5K1JvTkRSVStsOW9jVC83NXI2YXpRRngxMjBvZXpkdDAxT0o0bFIySFhmS3didXpqOWRucHllM1orOTZqdEIvR2tpOGZmREZYRmo4RktQNElxWDd5dVViRHltUU5rSWh3bHJ4S0lsS0l0SEdQSVlHMVgyWWU3b202UFFLUXlwb1U4UEZwSEs5a1hnR0U5OXlZM3ZUMWhzZlZQTFFQd2xYdlI4cVYyNTF5UDBGeE1JdXZSTTZqekJYUExHM0MvMTZKeGtrdG9XV3JuaTlKQWNuZm1PTzRHUkFCcTdLd2N6S1ltQWJVcmlsWUxKbzlLMHpWWVgxNUI5SFRXQ01Db1JQSjRvTndmeDVKTTRwZHhVdm5RMjdwSE91TEI3ZDlFK3ZqeGF6bzVmek55OWZINzErOC9ybHQ5KytQcDdOanQ4czNuenJYaC9QcHY4eWRkL00zcndjWEFSd1orVlZVWUxyZlk4Y1l3S0x0VTNuS2FxQVZiSUdvcElKeklkb00zMVp2Ky8ySklMS0QySkZvQW9Od0w0UUZremFHWDJMdVBRUSt5NDZvUktHMlFLWHBDSzhVbWl6aWxHQmVla21YMTRIOGdmeVY5eDh5Yk4vNkFPWHJ1MlRjZ2treEVpaHhldG90N3JrTEt2Q1JPZ0lEVFp3ZEhURXpTZ1VuNFV5M0VqMVJZMGpVYmNQa2Rzd094Vk1Kc0ZVZUFwckNCYVloSSt5SXJmK01DVUpoUWFaZXEyaDlkT25GTDVDRzh5cmwrYkFCdUd1aGtFRVk0RzVIT0grSFRvb2ZCMnlveG5sWUQ4S2RzV2lRbWFRQ1ZGVVJkNnM5Q3BjMHkwZUNCaCswbWNCQUxmMk82dEx3NlgyOTN2bFpLeW12OFhhVHZ6K2Fka3lRb1NtZmhyWU5saHNIVExpRHFxcmtialNqRnFidHVFdDUxNzR1YUIzOFo4RjNibDVUS0RxNlNzajBFR0thdWJYak1uRWZQSytiWlpBenpHRTJnM0ZmK3A0NHBUYjJjeERaVDVlWE13cEFwMUREaWpxVnVoVEtUL3hwQjUvZWYyVytYRDI0ZXI2Wi9QaDVQTGsrN01QWjVlMzV2Y2RYTXNtZlJ1aVVpbkhJVDhFQ1paMXVsVWtYMVJtbkVvZG45dDNRdThOY2Uyb0F5ZFZpQ2FOUHd5MW91Q3Y4V1V4MnliQVJraDBXdHNuL053WS8zdzRVTXRJYWRKRVVDQmY3SDhLbXdEVGllUUpmVFBsL3lRMEplN1gvbkNKYTVlMk50QVZsRVVvRld5ZzFBMHpXUUZrYU42YzNZN014Y2RQTno4SVhTVlRRZVA1SlNqQXJOYVRpSUFUU1dUS2hvMXRmbjkyK3h6cWowSUxJb2NTUkJnMUJUZVFSSnFMNjA5eHBpN2VmOExDVW95UGVUMVRGbldPYkVPQWRsWWxiVWF4cHV0Wk5UdldVM1JRS2xLRjJFMkNzdVpraUNqRTFVZGdIV1N2eERuTUNNM2k4U1ZUbjhCV2lJbUZpMVFiYnhZUWhsbTVIRGViSS9sSmJ4TmRGbndmOUVFQUxVd2dGVUtEejRTeEx3aXhOeStjQlRkN2pkRFVGajN6Q0JrajFmRXdYWnhKUjNYT2FoZ2RPR05OZFZBRUxENkFtWGwzZGhFa2NabmE1QzhMZFlrclhZNm1nL3MxRllOemVRTkZKaGpJSG1oa2NsNlZxRklWZlF2OUhQSng2bVl5bWJCN2JNZnlra3JRTHBjTzBDZTQ2cE4ySFREKzVNSTRicnUwQVhnaEpNY0xyQXFBYnI0KytjRHhEM1QzYUR6NkhGRllkc25CbElIOU0zenpuaFRKZHZqaGdOU243cUZiQnNRcisyU0VWdVRrMzBqTWY3eTZPRC85K1cwWEY1YXdpNkdnTEluWVIrUnhwdy8wNi9TVGQ1ZmVCeDhuYitVVWMyY0l1SjVsL3VCTDJ4U2xHNWQxU3pWRXpweEJuVDhWazI0MnRYOHExaEI4dWJqK1JJVUpzT1hRRTFRWjk3UXBBS0loUllBb3VYcWdXYW9sMzlIOHBOK3h4WmQwN1Azdjd0amk5M1RzL1VESHFBeVhHK0ZrTDBPL2owMHhmTjJ6UGZsOE95UHVXNzhUVFZOMjM2VGdYVkt5S21kckZ4cnVBMUpmcll2SzErYjI5dUl3aVMyNXM3bEZaSE55UEQxZ2xvNllFaGlFbGtaenhUaTczemowR1BYVW8zanpZTUx2QmFDMVhic1o1c0o5VXZYMDhWN1NENzBIUnZ6dVk1S1k0cHNWN3NyNFhwUm0yY3lBVDdDUFU2T1dWaXhDbUd4d0hOcHk2ZXVpV2EzRER1Z0EzRnhid1QrYnhsa0hZVkc0TUJKS2lvU3pFTm9DcTd3UUx5UUYyWG5DTTEza0MyYVdRWFd5b2xpbGhvQ2JNT0QzV1N2SWpWVHl1VVRUZ1c2Q09UR2ZwTjVST29wN29rZ0oxcTZjZ0dWRE9XcHduYjFGZmVmODh2UjZaSDdRdXMvTnA4dnpxMHZNQ0JDTjllcjYxaHpNVytIL3drcE1EbFVmNHFVRU1kOERFc1E2UEp6d1NLdHR4eUdWelVxZ3FUZ2M1dWhrOXMyM3U0UTVLYWJxVkNSaG5tMjRkVkVWYTF2R282UzJqc1RGTjdXYkFXdFAraE93Wnd6c1FmWElRWVplRkM5VEdnMG9JNXp6MkxRVlpQb0NqY01HcXJ4cnBaQzN0WjF0TTFBWWJVSUN1dEdpRUsyNm11YzQ4YWprMmd4M2pHQVdhenE0Q2NSRHVjc0NGaytBY3BaMFJMbUtsUGsyNUZ4K2JyWDh3cndoeW1VWGtLQkZnQ1pEV3paaFlvNlB6RW1hMllCR0cxakxLUUc2cVZzSHNnaEtJbjFvQWg2ZDA0K2ZKdVlWYUZpV2pGTDBsRUVqT0o5OXJOQzBZUUtkQ01XbWVpWkdVSUw4eGtwUEllMWZ0QlVWR2JpeTdKY01VRXhxb3V5aXhCbFNtYmJpNDQyV2FUTHlVR1FRZDg1SU0xS3Q3YlpMeGdHd3FNaUFPSjhZODg3QnY4Vk5uTjVETGlBbTYyRjNFUEN0cGRJNE56QnFqTGNWRDY3S1FBS1B6UC9DQTlTdUV3UFFjZnl0aEdlT2orS1A3UERoN1AzYUxja3RTcS90WEJidXpiaHhsWjBoakwreW56UDZFVHdmYjBhYW9WZVRFcFFsSTNVandwM29wWG5rOEtDdEFLdVc0dEk5cEY3S3VyZkNqUXBSUDF2QlNoNkNxd0t1d016ZXpJeHFWdnF6K0NYeUJrZ1ZtQkFyVURaeWxyWjcwY3ZJVmN3TnlaNWdSd3oxT3hSek4yaUVDdHd4b3ROTFRtTWd5SGZGT1JNYXV6VkNDdEJJNlN4dFpNbVhZTlBnMFZaTjVqRGMrcmJXb0l4eHB5T2dySzhWVUZPZldxaWhQRW1OaVpndklIYUdlVjBCNXBhZGJJUnlTMFFXR2FKYU5udHhiOHpkZXVOeGNKQjVIaHNFdDI0ZjBCeHRrQ2wrVExXcGtPYjZYTE9IdTFsdGhLZ21rWk9tclN4RkE3QzJ3dC9yS3RhTTFsNnBFemd6UWxvWDc0Um9wa0ZOdCt6OGc2VG96RndOZ0ZGc1hYRmFxeEl5SUtTNnlQK3dia2d5MmRUdHJJSDlFL3NGa1pCaUhYZVR2Yy9jTEZsU1BwbXZoeE56bzRuNFlOSjlWVFM0SzJwbGprTGtKUkgydVcwS3RUdzR2bE40L015UHN5cFFGdGd5bXBGanZ4aUxrNENLcUJUcGFoSkR5TUJVRUtPaWVMSG5mZW54R1ZqNDlId0d4YzErWjhqdENhVGp6eE5TMWlOVVFZVzNwdDM0aXVPbXBLTDZrSHdTS1JPa3JSZ3FteHJEVXdHQm1RTEp0WloxZkdvVWYzeWtsSkdaaGFCeUJuVkxwUkprZDl5N0xSYXRvM21DYWR4RTlGdHV5UldDNmI3RkE5QzR6bXhWcFpOV2VuOVB5RUw1TUJPSzNFaUh4em9SUGZBUzVOc25xL20ydFF3NE9lcUViMFpLYktId2tBTi9nRWxhckovVld0eGlvY0NTYVM1bTIxbnBNcDhxeG1iSllGempOa3JvNkkycm91aVpVVlpDTm55TUFFckNsM0l6WmsxSGtkdXUxUzBsSHpFdjMvd1IrdWNiVzJwKzQvanVmQzYzUGJ1VUtadUdhaThVVTMxbnhqTlNaUnI0M1I3T0I1VDUyU2FEM2tVbmJkbyt4M2Q3SXlTaFpnWk5RbGhIRHNXRWNYZTNkM3dVdDlaSncvY3lLQlFFZ0tlWXJ0RXhKTkVFVnZ0R0RJd0R5eEtRRjdweHMxVkZWUTlJSTkyZzZwbk5IODNOb1o1MVgwWTdqVER1R1NGbllNa0liNk9MSkVmVEMyU3lCRXVvVVFsNWxVOC9mcExhbUdxMjdlY214Rk0weHMrT2FSTWVmMUZFd2x5Yy9QdlA1djMxMmRrWG9jME9BTTRDMk5Xak41dTZXRU1WVmNEY3NkSTFESUZ3VlRrbE5xSkNRbnFBbGN6cGxPZUNMa3p4OVFJUVlsS1RrbjdFS0h5TjN3U3RmV0tFTEhmaWF3dUxVeVA1c3VjeklGbWM0bEhDYjlQNUo2NDIzMHFqV0RxeUVCOE1EaG5IMVcwTWlVcXB4VkdpdmtNbjVGQTNOZEdJVXVGaTZ3aVNCdzBpMTlCNlkydU9uYTU5YUV5V1l3NFo1TDQyVndlbFgvNXllWmlsTk1BYTlzQlZBYUozWUJpSkRXcTVqRnA1d3dDY0VPV3dCZENrRURoZzBJbm1XYjRqbFB6RmRkZnVFVUxBUTRjVkFJb1NmbitPN01VZWFpby9kY1BjcU84cExJenVHaXBwNE1oSXZOc0laNzd5VmNyZGw2MlhkbklpRDVxdG9yTDg2ZkxpL1BKSGM1Qzk5KzdzNGpBbHhkMzhmSG5LY1JxL2tMSUpqVUFHdjN2M25TcnRHdHFmQ1pNMjNjTHhSbzBYZWErTXJtWk1KVXdIanZJZkE1OFF0MmRJKzJZRnRUdUV1RHFyWVcxQTZERWpZb0tSNTYzUEZJSFlnVGdKVUoyZ0NMbTZrdzlGVkRSVGdOTDJ6SlRJWEZqS3JoMm5wRFZGR3JRZjFEMkFGclY0NUJSdlZsZVhGcjU0cEhpVll6WjNsc3NndStRTjZTajBjaFdTaWdvaXoyY2lpNVFyWHl2aS9zZVZMMVY4SldxakNCcEtDYWwrUVVVcmZUZXF1U0ZBSkZnZDdBWitKeWhzV0t3K1JZY3BjQXNRTmgwQjZ1cVVYd0VabTduSzFvVVBBOFRlVjVWeVVqSnNwbWZheENlbExLU2Z5SE9XZVhpeUdtUzl0VUVScjcxZkM1UWlrbm16b1EvUmV3QnB6K1BacWprZHA5UkU0dCtsN3VJMStKWnB5Y1E5YmlzdDBKQjUxSnN5YXEwSElkLyt4bEExSDUrMFE2a0ZaeWtQUG9RY205ZTh5dnJSVzJ5Yk95OGhleitRSTVaNzJqV2tBRGVKdFlvaU5IMWFEYXhQek5MTWFFZkNwaTVCRFZITnhRTUdKQjNwZUVUcnc4NlNsS2RkV2JtSnVTbldSV25yY3F2OXU2bzFYNk9URjk1RTd5NmRkTldSamxjNWFzdzNaN2ZjWmIxWm11REtoWUJMZ09POW5FdVhtV1pDOGh3UVNsN0xUaGhJMW1MeXM2WDNNRk5NMXUzMW9YbUhaUWVLUVdMVTViWGJNTUJEUnBlc0dJRzdZR0tKR1dIRUJxRWVSa2M4RkVIamMzWDVGb3dCbkN4YzhYZmZxZG9HWnVLdkI0TzFyT1hnVFFqVWk1blBzZERhbWtLZFRwcFoxSE5HS1ZCN0QvQ2dVU041dEt6U0phRXBQbUxKNElKU1JNaXJDVXFrRFdrOHhFb281TFRwQXJUeG9oN3JEa2xIOEo1SktobDNhVFRrajk3bGlFNVpkNlg5YlJ2dnduSDhoN2dUZ1pSdDRNOW81Z3ovRVMrTjhkeVY4Z0FiK2ZCM3ZDWTAyOXRBVG1RaVA0WVpSRk5ldG5rcTlwNzVPV21KdGt6Wm43RHg2U0tHUDNEbzI5bXdIYUd5S0VYSVhacEwzcVh2emk1Nm9SY2ZMUTRwTTRHbHdNOTh3YXduQm02YS9MZkRjdy9LQU05ZVIzUFM1ZFUzcDlmbkgyL3hGNmhSZkxvOHZUMi91cVJmTWVrRlZFSllwY2FqUTZtdjFyTWF5S252QkZDUko5TnJvdlAvaVByTjMwSEwrVThFbnVqbGdxYjZ6WjhRQVJnTG1SZEUwaFJidy9TNkROSW9ZOXduVXA1NlhWU2Q4Zy95cDBtMUw5OVFlckJBYWJ4em1udDc4WE9KcDdjL1hKK2R2RHQ3Wjg1ZlhQMFhLRW9DV0NubDFzUTVMQjNwcGNBQmw1U3ZqcWVSbnhFTk5RVkljKzE4aFBXcnNXZmt5TUdsWmhVWXlpclpDeVQ0SWV6cWpUY3hJWmdBYzhSa0FPQ2hHRTVlSmlwZlNtV2ozRUNpUklLMjBHMEF2bVVsL3hSbno0c3IrYXk1QWVldUkrRFBFcUh4S0tZVVBJeHhKTzZVZkg2eEFBU3lpb3VOSzlFcXk0S01FRCtNR3JYb3VEUUJRSVVWZjBnN3R5WmNqckN4ajFXQ2t4UGlyTHpsbVMzUjF6S2hFc0R6RjFjcHRJSFQwUGNlRVFvNjlDdDI2OUViMUxRNWlNbUJvT0Ryckd6TDZ5Rld2b2FrMHptUjJTQnpBSGJ6V1ZKb2hwU0EwNGNRb2lQejZEaDVDY2xZS1BPY2F4eld3T1BpOHJnTmhoeVlvZTYxRkhqRldReWorR3ZNRWVFbndNKytzZlRFSkMrZVRENjdQNldwQzZhdG9zREYvTUdWS3pkbTNjNVdFL09Ud3gwcHZLcDVRUm9mSDloa09JWUZseXRpVUJINnJyYUJaTDZOVktsVDJyZTgrc2hYYlZNdHBySG0xN1pvbkprV1MvWmoyaVZveEtjZlA4RzZqdnFJcmhySmErTUxSS1pWMVNzN0dQUnVmSTlJWFZMU3JGbjR0c2E1TjFQL0ZGZUF2S1N4bXkvajZyd2EySitqVGl0LzR1VlRMMytURHVwNVgxbEQ4aDU5bmcwekVIeFdGK25hWllVZmN4dXZkeEFRcWtjYWI0NFRqYTE4ZFowa3FCUWc1a25CdXEvZ1RhalNNWUR0Z2szaEEzSEtVWTRKZldVV0lvUHZTQ0R0NE9XaENkc3dZMzhWSzZ5S1lpSEZrYkpyRTRXbjhrNE5DMTdIc09wOGppR0prZ1N1SW1xR21raXpzWFhBV3VBdjFnOGhSdHlKKzJMYTliWmYvNVpXWXp6M1krd0hhNEIvU0NlOEphNGE3ak0rT1BjdVZQdU5PdGpkKytmcTlzd2N2OFZJN0k3dXFucG1qRUpDcFhMZFZtRHpQaFFTSktWYUdLZ0RQeW1ESDJWblRRR1lTVEFSVW1KQkRiMjV1VkRMVHR0bHNMY3ZKUkdZV1hVYVJ6U1Q1Rjhoc1k4ckFxWEU0Nm1yWnF1MXJlOUg0RFZJamppSzlxR3NhOGsveFErekFhbjBCZUowa2RWTzFXVzhtOGxlQmY5RU0xdDFZRFdZUTVwRVEySWkyZnAySDhGcFZOQ1Q1V0RsbTRJVTlHSzlxZjBEMFI1L2lZWmxmank3dmp5N01GZFhIK0lLM1Y1ZlhaZ3ZWYkN1S25OUlZPM1RVSjM4cXFCUStiMnJLMWRDKy9kRldXS1FGbUo3alBFVStoVHk4T1NjZ1BWZ0IzZ2t2QnptSnpyakt6UGJVWEVweFEvTG9UL1NyTkZkNGRlL2hDaHVmN0h6djZGcldaV3RnelVicldycDU2aUh3RmJVcHZhbG0yUnh1WUNYZ0U3Y3RrM2oxcHRHRWdXVWozTzJLc3A1K2dZUG5TSys0TWVQdXlCa2JHWVNjYzZmcHJTSTd2VFF4a2ZiSkZBOUxhRXBkZ1ZLNWQ4eTJRT2thSUlYRFE4MkNFenYxMk1ZNERqT1daL0xJTW9vRFh6Y2VLaTNMNkhzRWloWVhRYnI4QWRqcDhHWGJlUGVtcjhnYWxKVThmUlh4b1NtRkc4S2hsdkdoSFh5MGVJV202VEp3YTlKZytUdW5jdGYrRVdxNnFhb2dsOTBka1RjZUgwc3dpd2NaT09FUWhBYncvT1ZtWlYydmFHQ0ExTkRXb1pmbVBIeDBkRVJsNnNONERHeUo2L1piaFN4V042L0lwaWprZUlrOG9zR2NyaEpqUFFiNVpuTmlSYnpGZFFHTDl6TitaOVZNVmFPTjR6SEtHaFgxNHkrazdGWVlabzl1cVVrbGFXYVAzTUNKcnhzT0huamx6aHo0bjZOUHg2c2ltVTBzREJLaC9GUzBWTkZmdlN5V1Q1Vm03cDRLRW9YYjZsMDVBN2laVk43MzNDc0ZRMkEwNU9Qdjl6OGZQUEw5ZG5OMWFmcjB6TXpzeHVFbnk5Y09OVFVTdEhDQlVVOWhhVUxpU2x6c3QvYzBWK0xCazhBQ0JkYVlsVWtFKy85MEtld1lwellmSDI2eHd0c0ozcFNSMWlHemxNRGlnMnlBTkN2Q1BmdDBXN0IwSjA1dVdVSFd6aUtxMkgraFBWb3UrOGF2bU5BRjBPZ1RyTnFsdzdJTDUrL2REVEdTeXZuZ3U2VVc5WGVEKzNTbVk5QTZzZ2lQbFZiM3UydDdmd2hHZ0I3S3BIVjErWnVEL0l3N3ZaME10UEJpN0FOTC9BYkw5YnJGNnJidjNDM1g1QU9ja2lwS3NWc2xUWkVjQUtDdkNpV0REYU1ydmxKdkRVeEVoL2sxWnhUOFc0UFYrQnViNVJFbXFUWHFxdUV6TWY0dG5aM2loc1AzK0lFeHdHK1NjemY0Q3dNS1Q3S0dnTnpiT0hyKzZoWlEwMnovMGtualVLS3NGOXo0QlAwcFExaktKbDc1emF4ZjZMaEM2cXFhN0pKMHVrWmxhZWRyTlo2V2ZxcExmUHBFUVdISm1MY3JEWlpEdFB6ZnFXVGp4L1BMdCtacTh1TG44MkhxM2RuNW9zOVM3M0U1OXo3QmVRL1FieGxBTFVaTmVad3o4Y2FLbEZGNzlFSngyRHNWOXNNL0E5bGlLMU1FVUxyVW9qaE9sdGZIZDNlK0Vjc1VZMG5ETk5yQVpNVVhJVllRYnd1cWhZQ2ZBdk9RQVRPL1FPdDRuUkl0ampCRE5MR3dXNE9nMG53SnhzZ3NyeUtsdHg3Z2dteWxiRWxsQ2N6WkFxbWFjNGN6a1pER3VGRE1VOEtZYlJKek5RMWphdk52SzJKKzZPRGZwQk1LOGxHdEkwMWk3Z2tGREdVOUZtQndwYzZZTng5aTZKMGg2a3UxRUFWTkJpMW1Kd0lWSU5wcG9vcVVlSE5hN3UyVFRGRGdDNzBUMXRXRVBRNlFEYWlaUzhrVWU0ditxZ01qOEJIdUdPUnllUlkyVGpGdERGVWNrSzE1RlFrVmFFS0tVRjFXMVZvZE5hSXV0d0RTYjU2ajNTZDc3N0xWb2VwQTRraXVJZEN4YmVsd2hUUUNlWFFycUlZOWdTbzNHNTB6WUJFbXdDY2tmTzN3RnhPSUY1cFRucGJ3aXhiVzl1cWNYMzJiZ0phd0txRVhhaHRlc0NMQWN3NGtUUXc3M1B3VVdqTjZSYnlGa0lDYnFCa0FWY1JjM0ljeHJCYS9pOHc2NVdMR3dVZFdnek5DNitQNVhXOHNMR2pXcmJvbEZWVzFCbFJHeGpUSjhSZ0RpcnFvNDhkTFdhQW53ZW5IOXRHOUpTdU5UQTIzOFZSd1NNakJlVnRUYWpzSnF5aTN1UW8yeXdoVWxMU0RPTEY1N0RPUmlRaWJTU01qTk5DWTBnTlV2TG1FL1ZwMllRWXlTaVVWdDRRVkJsWXorKytNd2ZUb3JLUStsb1RYaE9rSThWZGVOQzRwNmExQ1djeVdTMWpjNTR5VlBMaFVxNFJ3WGI3eW5aeEtvR0NtQ1pjOWN0bjhsOXg0QVBJaEhzQS9OT2hiWEdldmpXS2QwR3hjS0doZVJCTEppT0xwci9SaFluK3dUUkhPSXpFbGt6enF4bEZwektBbmxUb2JFTFk0TmdQYm1mS0tTT0toaUNaQklTR1BzbWc1YmloZlNDRVhSUlA4YlJQQWJXVU1yajNjZmZISitIQjRiRGV4dFoyN2NDMndJOFQ3R2xhcW1INjN3Q1ZmelBFMVlzSDRSbEdVSERRNXIxUnVscVNCeFByRjZNdVZha1NYamh4c3hRM3E0dUhoUDZYTm1MZTR1UjRFdWRsVXMrbm1OSXo1VU14ZWVhVmFJaGdmenAvZWlsL0FndTZ1K2QzdHluN0VEcVI3Y3FPYkpSSnV0dkwyN2piVTZGVkQrQzVENjRxNGpwd2xTSWxxZGl5VEZkUU15QUlJVW8vZC9PY3NSU3RVeTVTekVTeC9BbUxwQ2l5S1FVdCtJVjVnYVN4ZzNWa3N0VTZ3NldYc3RIT2kxb1BGclo4MUVZT0RqRmRxbkVsV2M1WGNtM2Y0TFdOMGU1V1luQk9NbmFpK3FnRElnUmorV2d4VUNlM0ZqeGZWSDNzZ29tNWlXcjYxUTBYZzZLdFVMWkJUQmY5clJGcTlSakk1SmNvQndUTTdIbThXOHpKemNuSHovcWJhdWQwWll5ZnUwRy9FNEIwNDFSUkxYQko2RUZYTnlyVERmSERLYUhvMFFKZi8zdHdNYWdLYUN4TlFDVVFpNklRQklhcTEzenZoaTc5Y21KdUlOQjVZK1BtbmlqQytYb2IzSXliZzhlaGtESGVYZGdzcW9pQWk3NnAvYm9JN3ZucVVITzN4ODNlN1kwUU05TkM1cUV5Y3dIeUh1NVRiSkl6dFVXemc4Z3FjRHBDVU40dVhOU09WUVpqdExieVBFVkdHUVhZMXRJK29SSFdzNzRTTFNNdlFVL0RUQXVTYmJQTWE4WUxoS2tscExabDBWK29VbEtkS2pFWGdSUTlTSjVNOVgrd0kyR3NwUTlCa01ZejVYL1FzdGdQb3JERUlSeU9sQS9BaXlYUTFMYmVqa0FMUzBZbXY0L0xYUHBITk1iTU5GcmRGaU5MS1ZXWkY3VzcraC9nYUxyR0ZtVmdvR0ZVU1RzRVBuVlR6QkljR2lpc2IxKzhzRlZUMU82M3ljeXZYMng4YUZDQkhhdXhqdWR1dlEwTlpKeE5WczI2N01QZXRGQkJ4K05MMjA4UmNaTUl4MU9ERTZCRk8veGVYaHg0cCtkTlpBdEFXMlA2K2tSWGs2K2xWU29KVXY1QldYd01aN01sZEtDZlFaT1U5THpTTC9XZmFrZkpESWZLS0tJOWlNcEs2VUhoaGlRT1lmOXlKQVVaWVJBaUhaM1UwMXpnQWVZZVpKbzNIaG1SZVc5cDZkK2gyWkk0ZE5TQ1ZJWTYra1k0SmdZU0F2TFVWY2R4VHZFdUZPR3FzNjZoTXdtaHBOWUpTQ2xhT2xPVWxrb0hUWG0wUlZNc0xkTURrWm1IeE04ZFlPVE9Yc1lJUXc1dFJOVXBZQ3J6ckVCeUswYjJxV2hEYWtPTEt0WG5ycUxXS0diM2Q5L2ZuUHpsTEM3NWQ5OWZuLzEwZlg1N1JwWW12ck9zWFFpREZhWEtwMHB0VWdvcStxR0JxL2tCU2paaEV5UWJVK0p6S2dDdFFJOVpBNUNUc0FmaCtnMlVuYzFzdlBicmRTQlB1dXBFb1NQYWVrYkJDWUZ5L05VUkZ5akVYc1FOVGxQMDZPdlFTSjYxT1dESjJVVnl4ZDNMM3VVaFVDekpRZWk1QXdsRHFLQmd6dGFGT0xSRTRGNjYrQnJ3bHczZEltVElCN2hVRVFsQWNHUXcrY0l2ekVQaEhnRUtNM2w1V0pKVWZxd21kdXlyTVo1b2wwbWJrN2J4NklmaHYzN0dDay9wWVRZUmxtTVRjQUZ6TTRDWTU1ZUVkNzBXN09UNGxQTGFaTHZ3VVl1KytESmdGaXhyL3hoWTVVenB3U2xyWlhDN0ZnRUFmUW9NaDRlM1VwZTVkdXVwSTg1SERWZ2xVSkNvOW1nVU9ndXhjQjdaUWJHSWdvZC9YTmxBZmlVM3o2cDl3Vjh6MHQvUjJ4LzhSbzA0ZFNoZ2REaGN6QTJadWJFTmduOEN6TDRPSEdMOHU1UTY2VitxWXpKRkRDd3BJUjZhelJGMW56eHRnZkdyM0J6ekR5Umk2VnVoVkdFZVV5dmdHL0JoZHFqTDFHS1VDZHR1WElXSFdvRW9KZVI5ZExITEhaUTNBeEtkTWFGUzhoTEhrZnFvVEtCN1VMQ0FLLzJhaHVxemV1bEtNcGc4TWVvM1Yvc3NqMjZ1YVAzbEVNUmVwdkFEVG1MS2l5SzFvRzM4MlBvRm44aXgrdER4MGRHT2g5WkZOWVpwL2ViMWVxcE9jSlVtaHVCcmRjbHdVN2NWY1V3VFpFSFVlMXVCSThzeXhuZzMwdVV4eWs4a2FKQkwxd2diZE5RVzBEZmVxYkhBQzhOdTZXQ2tacmpnRXk1d2tTVGtaRTN3dzBEQ01jb1NLeUhOSDVnS1hxTTF5LzVhQXdnYkxzVWZ0UmkzamYxZnNGNXV6aWtrQnlsOVZkQU1kVGVwVitBdzd2UUlQTkZUTU01Mk9wQnhmNEhNU1U3ancyRlRMeXJ1NUp0elQxd0VJVEJETkdsRlNHNXJYNlBMMXdidzhXZjJweXIyQWhBQXVjTXEvNGdSS01SVUxEcmlEanhRU2wvY3ZXMG1IZDR3bWxBVjAxYkFFd05YWmR6TXNmdmoxSGhTYWJkeHdhMzZydTRnN1RlVnlkRXYvTUtjQXJjdU1JcHI0UUtCaWdYd2Mwb2FQdGQ5UjExS05teTZsV2w2RW9najlhL3lXWGtrYllOc3hiUkhHWmtpUXFLS1NIcjl6cWFKUVJUUmt0UnlSQlUzVzdJVXVybmJRNHNHYktJeGVJdE0yNkRleGVBSG51K2lUUHVDWWV5R3JlanVFazV6MTZJbGJ1OTIweWpGczVqUFM5Zi9qQWJHN20vMFNRYWJpU3o3RzJTdTF6YnhFT3FwblN2bmpXaEgwbWxPSWFBWUllSUFTbEJFRFlpNVV2b2JkQURhQVVwbmlISlZ1ZGlteWUxZXlMRytmdmNkbTFmb1VBMlVjcDN0NDNmZk1kOEhaRTZDYlVlUVIxQXRCdlFUaTBVeEt3U2ZCZThlQnRvT01HMHAvdzQ4U0VTcEhJWDBvNjNuT1V0SEY4azlEcjBOYmx6UHArTk43ZXc2aXBHQndZdDNxbllDK2xxczQvNWFid3hrTkZLK2Y1SHVqWGdHcU1BajdrUmZkOGFmVms4N3dLT0tPeTZxTVZiSFVuYnBTS2NiUzE0SkE3bUVyb0xGc3hwdFBhQWVabUkvenJ6c2tHaElEVng4ZVdOclJha1NKMGhHT3VhdzNPOG94MkNtdUMrcTMxZEI4dzhFbnNDMWtJK1dBTVlrbVEwdWlyQnFVZkROL1dPRjVqZGFQcjNLWDd6NzQvUDByRFhMMnM1QWxTcjhITkczc2E2dnRNdWxxcmhEN0YxSW5HbzNXU0Vka3ZXU21weHFmZjFpRVdWY2dtRmgvQldZYU03V29lL09ranVJVFYzeFdXVzZRQno4M0cxS3YxMFQyUXRlL0NyVVBpL0NQZXo4ZGhPR1BJcjdjZmh4OUxDbXZtMzJVN0pZN0thZWtQMEE1aFdCM2NtMFlpbVl1QWxFYk0xQUp4U05SK0x0S3h0a0hpZm1ObGNmU1VNY0dSV1lUSEFhalRkSDNWRjBCNUNCYUNsNDhOck5YSUVBNkRmbjM1OWYza0kxNlBuM3QyZlhIMGJTQ2pvQWlxYVFFTmUwQnlOdks1QlVFc0VrcEtjR3k5MWd4dk9hUktuK2dYaDlTbjdBTUpnc1ZoYmpZckxxTm5DWno3S3k4YVJKVDJkV01BYzdqcE9jNm9TNy85YVlHeHNuSU9zOFYxZDhRYmZTZnovWm9zSEUrdWNPeGtSNTNod21kYjczOVF5V0lIWUIvWEZwY3RpYXFmeVg5S2J5M096SG1yak5ubXVVU3VmaEN2bWkxaDhwRGZYbXZ0aUVMRXpTSGZORTVTck9jS0RuZ0l5RXNvUFJ1aE0wdCtESzhQRldHZ0tJLzZnYkRPQXVuVlFBbGprdEtwWXFuSGNIMXlYR0wyMUExeUY0bE9KSUtSZnFiZzluTFA1SUNKQlJKSVZpM1phTnJSelgzZVcwR3ZJYURpN09TNCtLUWs2Z2ozYlpzcWlhN29ucFBORzRlcDBlR2I0MnpPWFY1ZmpkV1R5ZDU1Zm5ON2ZucCtiaTZ2Sjc4OTNGMWVtUDU1ZmZNdy9tRGo2SkhkZEdVU0hnQnp2RDRuS2UvZVhrZ3BnYXcwaFFEd01qWUlQekZrcVJGZnBvVzdxd3J4andVSzRudFFndERJWHpBdGZVMzRnT2xOeUZ3NFFtNTR1YzNnNkFNaURsdjFpN0hlajNIWkI0QWxicHNlSVF1c3QzbjI1K0pvMno3N1lGaFFJekw5UUhVS29EaVlXRjBzRkZXK2I4SWdUTGhhZ2VnM3ppVXYzNjQvbkZ4U2hWdnVLUG9oVmNYb0ZqRmxBLzBZeER2TFY4OXBOK3RBL2RHay9ic04zdmNYQ0tLeU45T1MrN2hkK2tJYXFpaU5ENFRkVERZR01RQ1hBeDF4VVVXOWNZcWhQaXVHQUNTUW0rTnlSeVNpQmtYVFRsN1pZL05HQXFjSUlaZ0hIa3pVT2FDd010UUU2ZlJLS3B1OXBlRUl1S3kzVzRzRVVVS0dTTWFkcWFuTXhLdnFRMlB4T1BmTlBSQnpKUGRCUTBXSUowaEVsc2xWdmFsRGVzVEx5a0M0Q1RPNnF6UlZpYmc3WUNCRFl5cytSUVpJek5OR01iRzNMR0YwbWpuV2VSanNxdWhURU1RaWlQbUdSWVdGdytxTUVXK3JDNTcvcnM2WDR0V3d1cXh4aGg0ZDhjc2QvcUR5YnV5VEVjU1NqZkNTdGZ6dW1CTDlTVnI4L2VuZCtZMDR0UE43ZG4xK2JMRTB5SkFacGNPRkwraUU2ZWFaeWpta0ErTXU2VS8ya29NMjN1K2xYSElHVHdnbUgyRTN4d1pxdXNzSkRFa2UxOEhsSS9SQ2FwRmxKSlhPSlZZVHVwcmJCQXRPbVZ2K1VKQVBTZTJDT1p4WFpHWUx2cWt5dklRK0ZmNWFrYTRPVkhqWno5THVyVXgzMVlFWVZERkhuemdwS1lvbGpremE5enBOck5QTTl6Z2xtYjVKM0xLV3lnaXdJWHJUZnRNejFPRjE0Q2tJUlR3YXZQS1p3TTUyYlg0b2VjZStFdEYwWCt3ZFdsM1d3Z3JMYnpxNWlXTkJsY0MzeDZqTHliMDZLcDdMb2c3czFvejd6QWVZaFBLVG82UFFPczBaTXRraUNFc3p2YzRzTU1lZE5XY0VIR2JhQnJTRkQ4NVBUaVJRVTR0M0dxNE1aTFV5aXdaSWtUQ2E1Zk9PT0JVaGlsdXB4SlBWV2Z1OUtTNXlRK2t5eVZUQmFBUk9XWmhzMVA0NFovQzVLY0lpYWlCQXVJNEZObDhSUXJZaFRQa2EvSTVhWXRLcCtsUEZDaHlkRkl1TnVtemt6WndVVTVtV3U4a2V2R2ZJMGNRaE1wNlZWUXpGMnZIU1dRY0Z5a093Qm9EMHhFRXVscXM2MmRvaVRnK1lNWDFKeWRTRkVRU0xPNG5GQ05iaE03RTBaUWxGZ1NiT05pQVNVMGNUTnFLTThBOFhkZnpnZXVQQW0zQjBEdmh6c2NhdjJrSHpvREMydXlLd1FmTVd0bjRWaW0rRmY4K3QwZWVxMlg3bTZQVUVLMUxkYzhla3owd0YwbjBBOERpRmlDd0IwZmxNMlp3R1VaYnBTR1Q2Vmc3b25BZjljdUJLdDhSeDA0TFBJMUxnc2NrcDAvV0F6VWRIQ0dWWkoxdW9jVG5veDJoeHdNK0N4cDViaTRLZ1VDNC8rNUZrK1A4bjR1TWNHb3FFMXRxL3NvWnJGNXlnVFprRVlNSWs5N2Y0M2hneXNid3BxNUt5MkVydU5Hd3hSUWZKZWE3MjZKbDRja3dDa3RuMmRoNXRjYktJK1FIR1g2Vm1sRGs5QmtuNE5ob2l1SVVwZmwzUTJaRXpNaDdnUy94bHc0Q2ZCdDNhUkNZa1ZmdWREbjNlMmg1RHNjTWE0YzVWUGJ4cmpTYm9JTzVhb201MFZJTWlZdE9TMGU5MFF2ZVZsVTkwYW5wSURQTFZ2ZDh4MHpWTWlCSEhWMkdsWTA4MGJnWmRSb1pJMFpDR3plU3ViQTNkN0x1ejJaNHBaU09wRkNPUU8xcy8ydjBsSFVhcUdTTENNVkFoOWM4d3dKbldkZTBzQm83b3NnQ0xQTnlsYmRRMi9NUVhhaGZDVnlrdEdiSG14WnpJdG1PMTdZV2VQclEvTTFER1FjZDVFOGhPNjlZYkFLQm04RHY0ejZWQkZVVXNsSWtzYy84MzBWa1Q0K29nTWFFUHdYRGg5VDFRNzNNSjZoWS9WUnRTYy90eWRRMW9QaEJCU2pKQXNiVzk1M1YwTnJEWVMrQzNrQ3I5S25lNDZabkg1djErakJBa1FyT3ZtczRlTzR2VkVVRHV4a0t4dUZNbzdnRFFSVlRSUUkycHZFbDZqS2phSXhweTNtWnBwRFlQaW92RWVXSzNCRkVDOHJCQnFHU3ZhRGEzN1BIb0JLTXFtY1BtSlREREtiUnN5WW91VTlCWVM2SzlzSE5VY0tCZ0E1MWxLWFMwVzJjaFkxNGVNNnp3QStVTWlhMi8zZTEvRmFlZmErU0ZqZWNObkYyNk1YL3Y1M1NLVUl5U2VBODhIYlU2cVNPTjNNSll5OGFNSVZxT0t0WENvQTdwRlRVcitWWjRNNS9uYnBxTHQycjNhc3M1NmVjZGNKcW0reEJKanB4aHRmYjFhMkFsQjVnQllZSlVoeitrMlczd2NNdFc3UlNDamowZGYzbWErVmtwb1FwaUprdzdVNTd6N0dlNkhZeWJPZUQxU0RDUlhEVnQwT0poTTV2dUhtUmg5RHhibkpkZ09LRmFyUTdYVzJsK3pBVExxN0owZ2M4a21WSS9wK2htRVNYVFdxWXBVQy8wQ0RwZHNKOXZBVU5ZaVlUTGZBZDVWUVJ2VUF1d2U4QWJhdUMxY0RoTG5wL1Jya3NVNUZ0RjFpQzlpQlBOcDhaRVZJUXpvZTdqc1picUVqbURXM0FoamNuUE5ldTBVSmtKQTVLSXJNaEtDNkxEaGh1Q000aWdvSkdXaEg5U0tHeWQxMWJBN3E3bXFxOFJXMXJHZnRJQTBWZmE4MDRCUXNFMjNtTUF1RnBhbUdNb2JrUDdPYTdaV0VaNjBaTXZrUW8xZVVqM0pxRDdsR2hWTFhuQ2dSeklvUWhDcnhqcWRFTk14K2hIRGp0TVhvQjVZTkVQRzRPaUZJZ3pTRWM4MWRrODZNZVI4ZEt5TzRyU3RFUlZwa1RQQVVqS1ZFWVFTd2wxU3pRZitFUW1SR1h4NU5iakRaYlBRT0lGSm44Uk9JbkRzZ3FxWnVadGNPeWJ5ZjJTajdXeGYyelFINXpxWEg4b0YrTHUzblZqQnpiZlVxeVU4ejF4dzZzV2N6dHdIVCt0ZlcxWVVMdEVtM1VNazBvelJ5SlFXU3FJbVNiV1ZDNmRFVDl3QnVrNFBLSzQ1MlpFWEc5Q05Nd3pqTTA5K2lpVXdHd1N4Uk5NUDFCYWNXZ3BrSFd0ZFV1Q2Z5L1F3OXZQTENpNEI5T3BSclVid0xidWJYa0RzWGRTS1FEeVBUVnRKdnZUdTZpYnROVzFkQkRkRUdFN3dIMEJqK0RIU0pnb2M0SzVENTMxMUxWaUlTR25kR0F4VGFLUlhyWnRjMnU2UkpISTdVamNaM043b1o0cnJLb3JJbm4zMjdUVVpud3FuVWNKbWt5TkFENXJOcTcrM2NtK0JIU2ZEa0toMjRkOGFMdGl6SDhMWmRKbytoUUZOVmZyZHVNZEJBdnFWVkVoVGxYZXJNdUEwSGU5UDlCcTZEZWt1OHkwbmpUM3VHeER0bGU5SlByQkxrSU9waXdFTVVyOEJLUWtpY3M2bTFxcldsOHFNVUM0eU96bVg2ZG1WaWt6ak5nRFFGNUR6TDdkRGhINzhRZDA2VzZUaHpVWTlWNEtJalNpaDlkTGpIQUh3QThFRjlJb3dSMWk4dzZib2tIL3hCUzZRcjcwNTVvajZuTGxaK0xIT2YxN1kvdDU0azF5bms0REg2aFJsdFJCRkhObzhHcUUxaUJLdFhvZ1FCUDhaSWg3OFJKNmR3VVU4c0d1TWZxNURPN21kV0NBN1RvOGZBNzhSUTJYRWRHcHlnZ21BRktSbFhnVzNJQWxHd2pUWjg0aFdiUVNFSXJCL3RSNUNnb3FBQzFqeXhPWXVLbi9Jekt5ZGkwaStFSXRneVl6YXV2NW9FY1V5dmJFSVVNVVhUeDB5VHdDZXNRREVZOENNa2kzZ0Y2M25JcTVvb1dJcndYODR4NHhraGZTcUNNcWpyQkF4VXpDUG13Q1RGZzhRUkhMc1BTaC9ndFFMK3hzU2NkQTQzZ1pYQWhqaU9zL2dTbSs0RUxRQW1LeUJmMXZ3RlZYcTB5cEdaUUFJYldEZXhwVGlwT3VrazRHUUV4YTRRVVltYUxjYkxqVzQrSVZoU1M5YjgydnE2QmVRQnNZN2dxdldQbGF2RHF0Z2tkd2I1YUxPYjZuT0tnNTJIY2R5aFl6Z2YvNmRIY3ROT1F6dWxPYzJPNXBEcCtVODhta1dmU2dQVGFnQTZSVldTVVk4WnpnOHlnYnFCY2U0dndRTUZaTVBGL0FmQ0g3LzZVYXBKc20vYWVBczFtdGhONTU2QzZJVzVVcnFSSlpzdHJtYmx5ZzZDcFlJdmpQZDZORmo2Y0NUNUl1TVE0VHRxcWJQcmxCVkNjTUFHVjgyNXpoYmoxV1QwNFE5VWJraFk5bTJnZ2c5SU5Kc1hEOFc4VFk0R0hjYUpiZStIclBXaXdqVGpTZGFCUUVzMVJXNzB1V2lpN21ubXRHUW9BckZteU9vM1NOcGs2MElsVHFrdmtpS3dyREZ1MG1Jb0RKUG40Tk5KaTRJc1lDakYzVGhnV3orYkxDZm1ZenU5YWFjU0JpR3YyUWE4QU8ybW85VEs1REVFczhvVG5DQ2VwRlBEd0VPMnYzYnJYMmplZm9FKzdadnp5L2RYWmxHNGNxN00yeGUrTnZ0eGJHTWNHNncyNUdIdlI3bUVPandCWFhCeXdNWDU1WTgzZjVXd0FOVlVrNzZJc0ZKY0Y1VGluRXh3aXF1L01NZkxLYVlZaWJBVzNycVoza2UweUlCZFYyQmVjYklaTUJRaStEblp0R2JUZElBcFVPT293VzU1cU5pWExEUUpCdmR5ZXJqaktNUWVqZU5zVGRzRnZkNzNWSVVPMHdNYTZiYXFmRnRGelczbFF3TkFERHF2R3A1T1d4QXBVWHlWN2o5TkNhVUF0M0RHdUNnc1BuMTdjV051TUxIbk1uN2x2SnF6SURtNHVUd0hqSm01c3hDOGhCdmwzZVVOSXBxSWg5dERlSFNTZzRGTDRKVXZuYkNLRWlCYUtnbkVaTzBhcTJFZGVNdmNYRnpkM25TeXhCQVNpbWtFQ0pBWDUyUmZnckFBejFhNytkaFZjOHhQYjdZYkFWbWhDZU4rNlErMFZVSEZOTWlmbFNSd0ZDTlEwRjNpeFRNU0dFSnlmRlJvYWhNYkNtTlFyUDFEZHYvSU1nb3g1S2IyRzB2MXh3N2ZzT1ZPcVVyN1lTenQzTzFwS0k1c005bjVnNnViSWpnb3NCUU1mWlRpRkI0anBXSk5VMGpWRUxqNXpqL0dSYXBkU0JSRVJJbzBkd3VBRitGZVFIUU9UczZzdEZ5eFJ1SGxLdXBMdUFvVDh4T1lqdnl6QnZIaWJVSHdRYmgrK2tuMCtteFZUYzFubGp2SE9jRmRTK21vKzhWbWYyVDJ1ZnY3MFAvOXRycXYvR01scmV4bkcwV3FwMWIrVWErb2RCSHRjaXJtK0hEMWw3TjNMMDV1SUJVVWlQaERBODVkSUt1MmpQMVZBOGFNS3lGMGxHMzdMc3pZd0p6RVFhcnFwTFFZV0U0ekpEenc2Wkd4WnY5LzczY3JiR1FBQkwvUzNZUS9JWU9QdUxONWV3bHFHeFRZb2lKUkdacE42ZTRJUytvTEVpeXdobmFnMUVrc2svaDZ0bk1SMDhNU3FEVDdRRk1VbW9vRGk0cHBMaVJaR3UwVnFLWW9tcFprSUpvaUF4a0pFak9LSXMwSkNtOEYwTmNVU0V3dXpYNmYwVCtDVFBDQ3lkNTRmeitSQk5Zb25MTXl0UUlJYURIL050Zi82RzBhT2NCRXEveW9kRUFhVE1WSFBOcDdQaU1sc3M3RC9zT04wV1kwQVpqaFFyaUVVaDlXdTdEeFZkaHBVdTg0Y2FiWUtBSWVuWERubW5hVHVhNDFqVEFWaUlIeDUyY3RBRFpwVTFVNXVwb2V3cDE1ZE5PNHF1NEwwTURsaEwyN092M3g3UHJGNWNtdEpQS1p6eWN0bnN2RzBsVXRvMEhISmdsT1RFUUFsM2cwb0lNd3djblk4RG1DSExzOHVSM0gyd2V3WkJBd0dZdTQ0aDhYdm82S29adGoxU2doS2JPZEs2NWRQN3VuY2pSSzQwWjhOMWNQb0NKMDJlVHlrZkNaS1Nva2hYSFZRMUg3aWtadHdRb3Bac053VW5pNFlNdUNkUjhQUmtDMDhYWmFGak9ab0dqRUFHMG5GSzMyS2ZhQWRZS0xUUVFlRG4ySlVack4vSVpPcGExNzhINWY5Uy9PWXZQTUgrTmtQL1BucGd5ZmUyVGFabzlJRW1XY2lDaFc2MWJpUCtBMUFNZzJTTm1qbTVaUFBLNzdBWGt2T0Z0T0kwV0NqVTV3emxGL3c5cmhsSjFHK2l4bHNXRk5zSWFMUThzcWxYTEZkUW1ySkFSV3pzNVRHUzYwWTJmM0RtaDRVSUhFRFlZYm5pK1JUaFJmS3F2TjJpSkREaSs4VGtxa2I3UFF5b0VwdTlVSFBPY05VbkFsejRBZWYzL1JRQU5kRncyZHJ6emI4RGRYK3hIam13OXNDZ01DVDY2Q3FDM2pwRUoyTitoeCtqYmIzWWtNS3psYWw4T2o2VHVvMmNJSDVqbDlIaXJmQ0lTNW85S2R6a0VHaEFLTXBTaXhtaEZpN2JqeVUvSTZHSWkxVzhjN2xyNGxDWktxVUpPU1FCZkZVNXhtekN4SStZUjhrK3MwVGNncEZOUmtoblNvdHZnUVZMalJtVXJzQk1tSkFRb0NLSnRMSUliQy9vbERSRjRsWHdrcFB6dTZCLzNKNTZYTDc5S3RQL3Fjbmw1c3pQSFI1SGh5UEhueitjM3h6YXQvK1hiblU1eFp1dVBQTXRKdlh2M3BpL1AzLy9DSHFHeitaQzZ1dm9pdE9rOEZ4ajEyVS9wSGMrR1hhSDhHUWZrcmZRcm5ZYm9lZUZEaWxQYXBTUE1pSWhSVm5jSWlJVTNSSllWQXZ5VFJoWXhXc2JIbGZhRnhobkh2amNBbHc0SUd5NUYwdkg2VWFpTWFRZ1BNMmFXei9GbE5LODJPalFQMmVYUE9qS3BQUUhjVlA1bEdLS29vdzFzVkFhc3pLVVUvSGczY3ZyVktnQWZwSzdZRmwvWTdDOHcwdmN2KzV4NlpKRGswSDJHdGNKNGVmUUtDREc5Umh3VXd4d3g5NUZIQkh1WExOTUlLdGxudFV4S2NwNlZQMmJvVUNSeGdRb3lIdVBUTFpSUXhndmNLNDVSdWlVZlFWVXNwZ0pFNXB1Rk0yRmhSL09XSVR4SGJaaTVYUi9qWGlpeVU4M3k1d1Y5Ymg4a0g5S1lxNE1yZ0wxTStORlhCdWFjTktIYnovb3dFWk1tSXNpWSsrR3RiUE5oUzBkazNYcUZ5NndJaVZaZEUyU09TTXFEWGNwUzd2VlVTR3lEakxMREdsWENmbGtUeGhEQ1BORHphTzdIQjBpL0g4Zi9IZjhkcmFtVXI3SDAyQVpKMmp1NHR1Q2JqZE1NYVRjeS9VdTJEZmJSUzlrR1ovRE5maFhidHVzQTBQd3VHWThiZkRUS1pTOG15clJ2bFdCUmoxMmMzWjdlZC9xL3QwN2gwbFRsKythY3ZybXk2T0xrOXV6ejkyWHk0dWp5L3ZibzJ2MTh5TXM3WTJsY0ZZaWxBUEozUVorRDZDQ3JNMnBkamltWXFKMjB2SVRVU1BHWkFqWUZTU2N6VzRGdFk0WFN4Y1ZkVVJkVXVLcisvRkJabWw4ZWZTSmJocFV4OVRJWVo2VVhnSEVKdnJNWUlpUGJwc3JhYkZYRkhUc0dHcWgzb3VJTmhQSndreGkwTm1wOHlZVklubWtrSTVTQmE2YSt0TFZYS2tjNU9mcTVJSndGc1BlQUVkS1p1VEt1b0N1VjI4SVdSNklrNnZYZytkeWliM1MwQ29nMWRNSDZ4ZUlaa2NXQnJhVmMvWm5hai81KzRRZVB0Z1JlWW9qdU5XaGVHUVROZ1BLallwSnhwMm15QVZ4SDNHOWFsS1lSVGFXNjlzYk5tcEhFSHNlNWdiY3R5eEE1YktqR1pJMklya0JxVzNzNG41Z0svbllwb1pXQ0F2WVNNbGpsTVA1OE41UkRNS2JEdjloSWwyelByZU5jZUhiMmE2ZDBBdjNGM2U1Q0JnTVlwczczdWF1VG9kd3VXMitzVExCVC8vWkxGUFZHSjM4QStBTlQwd0locmNuenh5WUtNSkp6RnhEZjN0RUVtVUEzVUZsZHdYb1NtTHFaNHY5UEJ3SWdRZlRrMHRnbmltcytRK3R0MVMyUlUzRXZkV2pBSHF5STBmbG5iZFRpVXRqdFNaL2NSR0pIeXNYc2lGQ2REcW5Ud0Q2Nk9kbTNLZlFZR0Y1azRTWFhLcGcwUVhkTnVublJsQTd3YTI5aVYrb1o5SmF3ZndaK1VlUTZmbjF1ZFhRYUw5T1pvWkRiZmZvdW5kUFB0dDkvdTdOVTRTdTJ4L3RxYkkvUHR0K2JiYnlmZmZ0R3VOV2QvT2J1OE5aZFh0K2Z2ejA5UG9DNzk5M0VVay80YUxidVA3ZlRGVFRzVlV4QTlJSlF6aFI1Y1ZRTXErV0Y1ZEpNajBsSG9rY2NRWmNJdS9ndjRPRWUvQmtvSU5PWHB2ZHRpU2hwMVNyK3JkaFVEK2VKQU9yaTdBQ0Z5ZHFGd1Bud0ZnN25iVzNnUFZVMitUcTZXZDB4YmZ6U0tPcmhJUVE3MXNrbWFmRFJ4dzlCVWRtM1FqNSsrdXppLytjSDg4Z3VQNU05SHYvenlkdUdCbVg3d0tSZ3BQRFYzcFlrOTdEZ2ZCbW9wU3NyTTVHa0N3YThnR1dpOTdkb2pZVUs2QXFNSlZGcWtRdVBTWjR1dXdHSWU5eWpjdzlOdElwT1pyU3lVUTlTOUFxTWZBUVBseDN6SlJtcWlRRGxVVTRIU2ZqNUZHZi9MTDBUUWtPcTh6cmhGak9BLzF5Sk8yMmRiWEVLTDM3dksxY1VzUVZJY1ZMNUN0emxqUlJ5aTZmcnU3R0prenY3dDQvbjEyY2hjbjEyZWZEZ2JtY2trTmZnL0VQZ0ZBNDNjbnZ5MWhMOWVGS0hwL3kzZ20yN2dUeXY0MHc4MnJQcC8rdzFmUS9rVmh0NStnaWZPbmpZRmhLaHdTeHpRL3k3ajBFRk5SU3NEcm0wTDU4SEJHNGx0empoczZLR1lOYzgxaEpsdDBFUThrdlE0QmorZTBGaEliY0wvbWt2M2lKK2tOcU5kOVZhN0ZPUTQ3cC9zNDVaTVRUUTg1YzZ1KzZPZncxOC9JUEpIL0FZc0szNUlIbHJ6eGhxdml4QTYzVGdYRjlVWGRPWkU4VS9HSVMvL1J4bFd2ejI1Wmo0UzN5eFdTcHo4ZUFiQ0J2TktvUkNDTTRRN3ZjUC9EczZlSUdmM3Z0UEx4SXpqbnFoN1lDbkh6czFiMTZzcDR2L2FxdmkxSmZDT3Zrc0NWSnE3UFpRVVl6NmlZK3Jabm1tQTRCU0tkNVlnNUNIb1VIUHNrRUYydmNwQ0VDczM3Z1FPNkluNENPUmEwb0Y2VlI0eWRFc1lHRFdyMXIwUkNBNVJTZ3NzNDhtTGQ4T1NUanlMa04ybzBJUHNsaWgvTUtJN1FGMWtocWZObkpYTEhaMDBMOStxZXVRNC9yaVpHV2FUam01c0R1elVXVjFNS1dXWjBzSDZYVFJJUXRLNVE3aXAzOVBwcCs2RFNudXlmSnRJK29wZUVvbVVSVXVIMlByUnFLbFV4bGFleWNhdUpmNTVCUm4wNjZRZlRuS0VUVEdVa2lCbFI3VW1uL2NMODJQY2VHY2o4UEhUMGFHN2UrN0tBclBaR2ZaN2NDYXlmSTdQRWZ5OSs4dko1ZW5aTzZhZS9tTDM3UStJa292VTVETS9seFFheTQ0V1FiRWs2ZzBJWE1XcFlydzhCZzhRenhzVWU2YWlKa29EUzI0OGdMUUcrdittVmh6WTVCdWt6RU9kZWd1R0ZSeFlJa3VIWDBqQnVRSVJIQ0lmRjN1Y0hRd3JHMWJvQ1NwQ3M3R3orekZucXIwNWZybnJFYlRndjNtZHBpN2VxMVJOV0FZdjB3Y2VDTXFPRitBa1pMd245b1d1R3V2Nmt5VVlhUnNON0FIeUJNSmtYUDdVZForRFRZNHhEYTZGUlNEekdpcHo4VGZxYTZYd1p5Y05lS2dCcE5JWXY0bXpEOENzNCtNUnlFc0ZiMlBHYjk3R2wrQ0Z0K2FiMStiSHFTR2JlanlHSmRiWmV2RzZvaGpWbzYvdm8vRXZrbmI4V3JmMDZ1V3pMY2xMci9STHg5L2tMMjFxUDdWVDhuOE12ZjFTdi8wbmVEbTl2ZlErUFhtc24zejl6Sk1mbVhNV1p4eTVFRkRoSjdhRFh3QnZvOXorUXRkT2IyV1VOWkdXUDlzN3dBOGNHazJYa2VDS3VkNXcvTkljd0poaXB5R0ZiM3hzRGw3TGI3SmdCNHE1T3N1ZHgrdDdaT3hjUWlGTXNSQTNYZVZtMFVJUnQyM3NhbjUrWUJ1T1gzYVBEOWFaQjgvUXJ1Z3Bsd0dlMHEvTTNHMmFGVHY4MHpUOTJoYXplNWlYMzRxTnpBOGwySDdsN0d6MUZaYVY1RWorSmRYYWZrVTZ6RmY0QW5lZzhCVVZVc1FiQU9XV0xVb3AwUzVTWFNRZWY2aGJCZ0FvZHZYSDNiMEFFSXcyckY1cy9FWTVMaWVHOFdpQ1RsVXdSMitscXRJU1dvN3Vrc1FtMzlKc2NFSHIzUjdlY29nYUkyOUFhbkZUbE1TT2NFejFieFY1YUdQekkzV1JMejBrV1FDb28rVCs0UVQ0R3NZdmNJcG9BcncxL3hILytwOWpOSGNBYzZIM3o4bGswdi9sZjhUVy9sTTFoZzJORFA2aFd3MnVKL1ovbXFLcThsUUQvcU5zbXBlZG52MUg1WjZhLzBvM043VjcrTTlkZlg1cElOZ0JTOENFWHR3Vm1iYjR2OXl3ZTJwNEp1bFhzWDMrbFY0S3lHdmxwaVRQbERteElFdFRCdnZxdWNIKzk0eDg5elM0WnFZUFBQZDVqUHRUQlladUhQaDA0QmJrdXhFdVRQTHdDQUZ0bERkdjJhYURZdUsrWnU4WFZQSUhhanRwN0pUeWg4aFo4Y1pjUm9GYlZLYTI4K0xKSEI5SlJwdXRWQ0hnSXQ1VFFIQlZMREhoRWQrY0RNZjBjazgvNS8wRzEramFCRVl0UzB3bHV1eFpCM0JhNXMvbU9TR2RpN0JoZVlZNGlPVlFwaFpWRS8rWktTMHkwY1c2S0cyTlFFSXJVdTZxT2F3UEJCelpjRmVhU3lybFN6cE1ZZzNqeEwwQkZRWmRjR2tkS2JFYlFuT0Nwa3pSV2VXNTVMc05nMUNwUzlBajVJdlBOVGpFTWlNNStSdFBRMDk3ZzZEZThDTjk3ZTJIN2NiVkYzNTU0WmR4TkhWd2lkK1ZvQU8yUUJYTnRSMXBkZUhLQ0hwZGo3K2hwekZUaW1QT1ZmYVZwSnNPZjI5Vyt4QTBJRHFYWkRDQ0NkQkkxZ2plTDdob1ZhK2hQdVFMamo0TGdCMS9RMEZucUozRVJTc2g2d3hkNUpadzNDaS9XTk1zOWIrSTBhWGE5VXlHd1loZUM5cS9tNmVnMkQvTUsraU5PaGtnS3hDYnEzS0xvZ21kRzV5Y2ZHS2J5Q2JrZkxqQTJyOS9yQUNEQmhpMlA3NC9lZmR1bFBQRkZzRmNIVndlcHZ3UVdoNDVmZEJ0U3YxR3ZidTJCVkxUY2t2LzRJeWh1TzZuSHoreEM4ZkdSWnU1dXNLTVcreDFvV3dodEtsY2sxY2ZnTGpEYXJ0cXF6Y1JvZkRNYkQwdktnczQraVJ0anN3WVVmcFF3TEdwVTVaakhBNmNCOXlrcjdLWVBYcXlvaVkycXowQkZKSjJhMTZZb25GcjhwV1FsNkJqQlVLeUQ4aFlXWjdhZ2R5YkZrdU56NG15SmJsaW9HVlRBTVFoTVN6b1dwWU8vMjBmd3lkbHI2ejhJM3hNbk1UYVJPTHFybDYrZHQ4YW9oNWhGaHVUSVJOZ2NuZ3NtdG1LdkNDWVRBSmYwVlY2U0MwQmRiTHVrYWVMaEJQa29jWEZaQ0EzRVc1QnFZS1U5TWNOcXZBd0YzRVZBTmVOM3IxRkZxNFlCRG1DZTFLVmd6K0pnWWt0VHJkeWlhWDlBZUMzZ0MxaG4wUzRpc0FKUloydVlqZ1ZmRDNCZ0JFM01qWDIrdWpiYjRiL0xtSmI3OFlUc05STjdlTGRCU3BzaUkvb0VEMjVqbytQanZMQXZWL0F5YU1zaWQ0RnRuTGxSclVyckhzWXFBRDBCaXlwUE1CMHJmaG54QlJ0L0daY3VvZms5Z0xQV09PcGh1UVFqNGRxQVFBWEpYbWR2Z0FEQVZyK2VURnJKclBEZ1VCUmFYL2JwajYreFU3RzdaZWlSMXZmbXJxdDhBcXc2cXNaNUFma01WRXpvOVJNR3Y3ZFhtamNKaERFdXVSUHdMNHFGZ04xRFJDU0tiazBpWnVCbk8wSGpDNGpGVHFtMEsxZGRpRVFWWm9ZbVppMmsvcitHY1JtclNucGpYQjhoRXdtR1RPdHZrYmtaTUt1S25sdTArTEhwU2g4WmRGQnRhaWRRMGN3OUJxRU9aK295UzZXVVRIZmlFd1ZQcFZtQ05nQkMwVTZDSlcySFBtbG1udFVoeUF6VGQ4RWVJTXN2WWVrRzlTVXdUSlgrZmM2Mm9acFVwdHlTdzVtb2gvUmNIMk5sMXhNdUVsZTVtY0lRTUs2UXgwZUdKQWpEdVNPUUlFQURESWIzTFFWbTVtTDUrTjA4MXpiWURlREV6NzAyUTRPTFNnQU9UTXZvZC9TSGNBODhrZ01rQ05DUWdpeTBLNFdnZmRDVDVHZFM4cUx1TzJaQWNFR1lTcUt3aGoyZmUxczhKVTVzRHFwMFZmOCswSUFxUEw0TjhGNXBTUTRDdmhhNUJXaVFyRnVpajRXdGlLUUVaek45ZUhRV1VKaHJ6Q1RKTm1Nd0pJNDRkUmxBTTRRbVZVejFHZXlCdmNkbVliOEk4ZnpVVkdPazhlWmM1MkpaZ0FUZmw4QVRmTEhxRGllbjVMcVJZcE1VQ0t1OXI3VEd4U3NpQlkyY2ZNUEpwaFZqWDFTZVk5WTZJdmJxVlBweTQ1azlrUHRRUGordzNPTm9LTVE1cFlHaEw5QnNSQWZ5WDRkL0tMWjllczhSNm1yOU5PMkFnaTZ0WnNYdG9rQ01HMStxRGVuWkpqMGNVWGJBS1dRUmE1MVMyODB2UU5pdTBaNW1uN0hteXBsMDRtZWxTNFdsRGtIdXZJN0ZhL2ZkQldjeFVCWFg3MDBhN2UwcUdxd1RwMzFVcGxvNmNrWFhYQk9uaTF3S0MzaGdLaDVVaE9vY3VhNmJLU1pCS0taeURxSU5nQTV0d0tFM3hLaHYvN2NRbmNKWnpUa0E4Q0VQRlV3N3g5Y0RUQlN1WnR6VGJ3SnV3RkJWWFN0YzM1WkJFSXJLcnFHZUZ3ZUlXTUEwVGZEcFphQ3BBQ0pVQWNRRDltMFlXVWU3Zlp3bE5McDBTMXBVMDFpOEZtV3ZOVWN6dHdwVU0ySnlTMlJBV1BXUEJhT0IyNHc3c0lNalE4TVg1S0Q5VUNKeXpsV3ZpalV2NVJtS1ROSnNnWDNmQ2F2eUhST2xHNGtud2lvVFZDZzlLU1pORHVMZU1IMXJYY1ZmV3lrdUJSTEpzRVNWMmltbmY3a0d6S1ZSTVNSUUFwM1NvVUZHTnVwbmQxRGZuZmMwMVFxZlVEZ1o4Q25UUXd1N1V3RFlOQ2hxM0pjMis0UlVzYzZxZ2UyNDBoTGhnMXEzM3lzK3YzU0pUa2RvQXVlSE5CQ1NLM0E2NVRDSVdzRmU2QlpmL1dzWlNWUlljVkpkdFFIT2R4NWpycWNKVThlQkJCU0xBR1ROS0lMV0FOeEJBR214MktaYVBKTm1KeGc1eVZDSi9Vby9yL1BQc3dEZlBubW0vVVVtR2pOTjU5L2kvYjVxNWZycWZrVHZaS3dCVUF5QVJpR1RJbWRVYUtuMDZVVzZEdllJbHdxQ1JJd1hDREdLSnNJVTdFVDRrYm1DeUpZZk5TYU5yVnYvTXlYMFJJbCtWRDhSdkFVQ3VOQ3JnM0tTYkZtMmtvdUlRNzdrRWdKNE1oN2htSEpJV1dLRElKSER6aGhzVzE3NVRSRmc3RUJyZmFqaFlLZTFsU043cUFLSkI2Sk5waFZ1eVQveUF2MzVHYXBvTWZYeHBiRi9VQVI5aTVRa3VQbE5LdFdCczFVNE50RTVWVGtDMUEyNzVlbTNmQU1sS1Q2TnQ1Y1hYMFE1eTF5aFBrYTVSZmtXMEc4N0RZdFZCSE1JenBnWmx6cUtadURKMWdaRjVqaFY1WkQzVHFJdjFjeU43K2pEaWZtS2k3eW8wTFhSbFFBSzJkT05TWUpHTFhmYkZUNUNQT1pvZlhYYmxMV0paeHl3aE5MdEtoUm1WeHZ3SWFKVFZHZWNQcE84dlJxY2l1YVZvQjZtSmlmSERJeWRlaUQ3dlpvRW5oaTcvYTZxMzZhUDJDVXl5ekxnSkQwdDdHb3pDUnNJRmtNb0xOUzdOR016YXpmc0lpcUF6cVloejA5azRhVitVZFZaYmJyTlNzSkhDT05YKzd5TXNxQjNoOHZlOTlXSk56NC9RT09rUjMvRWJiTDhkSFJIdzhsc2V1WnZpaE1VY0N5TWI3cXNZbG5rOHFUT1lHY0NRYTZvOXM0djB2a2E3WXhiLzZJYmwxcTVabmh2dmxqZG9JVGV6Skx3S2hLbGZjaUpSSmU5U2hGV01SUGo0Z1hHdTJJb21jajB2T0k1MC9KNkRmSEw4MTZPaURuRU9BdHhTZTR4U2p6VUw5amhwdmo5VFJLQ29vOGRKWVB4b0dld3JhOGg3S3NOOGN2TlU4NmV6WEtNaUN5RitYQk1QTWQxRG9SNWlWNHl1TTF2YXlSRHNhRyt6Q0NOTm9rTG4yZ0lGN2luRmtvZTVVcGNVWm0wOVpRRHBmbHduVnBwdER6SmRybUtJZDc3dXR4bUhBWis1VTczVlRrd2E0QmJ1elgxbFd6TGM0bFRRSVNxNmdiRGh0U00yQm5RdS9yTzdiWDNkN3F0N3U5ekZzN1pBRFFZNm40L1Bob1lxNXRJU0lGRHhuSVFNeXpxeDM0WFB1a3orUXV4Q0ZRRWlxTURweFNDTGFkY0NiSU9RbFFJMUUxN21EZk1TeExYR0pZQ1ZnV2tHU2Rsc25MajhzWWlNZE85cWV0NWlWUE4zeHlVN3RaRVFhMDdsc09GSU5BWUprQ2piODVPaG9aSnFTWGlzcjR3ekZHMURqblJpR1draE92bURzN1Fjb216RTRrQkNhR0FlUjFRUElJTUJwc3dZNVBTQmhTOWVrRTRsMWxZQnhrQ1NIeXRuL1VWU3ZraldPclovVmJocEoveVFLZzBHRGFISWl6bGZuaDMzbjFPV2cyUUNVZ0owTmlLb0xZdzViQVpBQmhGalM5VVdidWo3VDNsbWlSUE80QWJaOEsrUTdlSWZIdTc4Z0FVMVFQUGdjODdldVdQRTFoVTl6M2dReHZ4RmJnQlpMSjBCb3JEREtxQ1phY3pYS0lSbm5SdEFlRmVhVHJyMVJESTBKM1FKWnNjbjBEaHBmZGdQT0pQNTVITVpGbnlLMDN2a2JnUWR3NkhJYlhSeWg1R25ZUWUwTDBlcjZ0N0xxWXhjL3BVaGZVNXByV2xscnIrT0hmTThzc1MwZU05MmxaVkhJMVlQd3ZwQUlyM1lxU01GTW41Zldac21nWkp3YjlWM0NROVo1UVc0MUJsaDd0Rmk0UVJYVXZCb0pJTXp3MFJkT1VMZ1dTbU1WazJvWnQ1NTJwSXZyTXhCZE5KMDNnZVBWYjdyUm04S3hWVWM1TjdRQjVOV1FzK0NOMkFhVW9ZVXJwbzVYSXlId3l1djlvRm8ybHd1SzErZkNkd1BoSzFVVDNGQTRkaldqQkZVMzZBRWNBaTNDUEl3YVFSZ2h6bFlTZEFLZEpvanpGY3ZoZ1diOFkwN2pIcW8weDlIeGdybXFrc1JkRzZQOGZURkU5bjQ3amdEODNQM2g5WHJ6L2xKUk1DREgyMU5URGpEb3FLWFVvN20yV3RocXZxY1JDSjhvSkM3b1VzSzdtZUFtSlJ1alc1TlVycWdjWG1tSnBOWW9aQUxSNFprVGhDbE11SDhiMkNNUUZyL2s0TG1vYitYTUs0VUZWK3JxT2VSZFZWSG9hcWFLOCt1NWZ6MDV2emZ2cnMvOXJWeVhwclFqSDV0SEg2WUVRYnNLK1lLZEJtdW84dlBzMkI3Qm9BZWk4OUV0YkY4MXFiWWlSUmxpbjZJRzVtOWt0WVp5Y2s1YyszcVlZR2hONVY4MWRIV1hPSEpFMklFeVRJWE5nU2pFbEtjQmNzVGRwU0tXQkNhVWVGQUhkc0g4eVV3RGpjbldjZE1MbTQrUUlTZEY1K2VZTk9HaXppNHp3cVRHMXVpaUwwQlN6dE9WeDU4aE1GRE16ZFN2N1VQaDZZcjRIY0dGUktWVTZIZ0Z5Y0RkSG5mb3VPOFA3ZnBUTkpnQVMwR2V6OURXVy9qME93b2s1aVFyZTNFc0N5TFhvZWFoNkhTTjJSNFBzU3ltNU5MNHBJMjYyNXFOQkcyVkc3ZzBielBHTEExL09mNEdoZlZVdTJsOUt2L3dGTjhMWHg4bHIrUW85Q3pzR3dSd3QxeFR5TVIrZmk1S1hpeGJBT1dpN0FXdVpob1BGeEFTL2tBTW1Wa1ozNitLQkV3cHV4VUlzU2gwdEFqMGpUeVJteXJUazJKOWU1UERyTWYwbi8vZ3YvOEJOL3AyUDJ0OUJPMTdGVFczd0IvNEpmdmd4L2ZDQm40Sy95RTkvLzZmMjhnakxwZUlYWDNQdDFOL2orZnE5UC94VGUza3N2ZnlUU1o5Ly9hMzUvMVl2ajJRdVZjZXlMaCsvZnZuL2ZpK1A4SXVwWC9HM3g3c205dmoxcS8rbmV5bG00Tlh0MlZzUUxBZ3ZoMkxqMFFhQ2FrR25LZE16TjUzY2FQVDQ5NmtmUVlFYlQxMDFXNjF0ZlcvR1ZZSTlxbWExS2pPWGgyZGxZZnowYi9FdWo1SnFvQkk5ZHRXOGZKdUwwS3FBYUpWY1cyOHlkUTBZWVN2M1NDMERUUFpLUTVjZ1ZRMkhNYUk0R0pLNS9UdWNFd0lVOEZYVlFzUVhmRWJnRGtPaVRPbVA5bjB5dmdFM2pFbnNBR05QWHVwSGJ3NEFkMXRkY3NMblp2TkxGQmluOE03NFgrYjQ2UEM1YXdNbml2c1FMeEVZMUpnSEJmY2tKNmNyK2kzeXFQcVVGUXhUb1NaSDFYY1huSjBmYUdSaFpxdXFYMExidWNPT2ovUWZWTCtPdjZBcTBweWMzcDcvNWN5OE8zdC9mZkw5aDdQTDIyZlJLbm9HTU9iUVlmSlJuSzNhTGtYais5OVNDZmI4ZjExM05UWjI0S3RvRFI5MlcyVXlDNFpsb29BRFdoa2JPOHV5c0NHUk9DQUJJYXN0V0hkSitQdFlIRnZOQWFvOS9ZYXRuTGhGd1Q1SWpFMnJscW9PeVlQSWVGdFRPN3ZmRWU5OG4vVWY5QXlvNzdZbE8yWjBiUWFwQzdneHFGTytOZ2NxTXd5MmJ2RDQ0TCs2TlR3RmpxR29semV1M0JLMEtZSHZTdUhnSkRtd0xNMWNpZ2loSFNQd3NwbEk0RUI0VklqVVlDRDNSWEtLR204V1pSdkU2TENQeUk2YU1yaWhVNWlXVURSRXNLWEltbXgxSHdRS2pVcU5GVnhTeVdkNnVqVlh0YTNNeWJKR1NrSGNDcThuUi9ncXo2ckN1RTd3UjhwQXRlWnViK1didTcybys0NFNMWkZLNWlRWjN2TUcyMERrWWxMQXNlaXVNaEZROHlKQWFpeWFuWmtscEFQOERGTUsxUjJIR2h3RUZ5ZnVjcHcrakIxdkNuRVFaYW5HWUkxQjRzdXk5UzNINFUzdGx0Zzh3RWlVdmtCNmR1b2dnMnJJamhMWml5c1JJRWtsRmVVa282c0FScEYwZ0ZEVnh4QmJOaTFaTm9Ubk56QXJPeTdIMURYQUZWN2FtVHNrdkppZTY1cUlBdUtleTZZU3pTRTFKYkRuU0x1bkxURXl0ZHM0aTlhUDlqa0E1VHR0MVdoVVp3a09rdERUV1dRT2JNTFpCeEJhaUxyaUV2VFNacExodXNKNkxEMkhBNVpYRDdpblQwd3lTczZGZU1ZRGg5S2pLQVNhazh3T05VYVQ2Y3o4QnRMc2ViWE5vek5FVWNSaEZvREZNMUNQNEJmWWxxYjN2bFc0blh4VHdzc1hSZFUrbVdsYmxQMUVxcGNUZ0NyRW9CQVRhamhGcnlJajdxWE1EbTRsb0VNUEEvUDlpb0xlc1JIM3RIRjE0ZUtQSGZuRjBicWhIdWp3aWpFc0ZoTStLa0ZlWmFocGVCWGluWVc1djhPcWtUNzF5azJoU1hjWFJZVitLQ3J3UWFkQTU3aDNiMGZhNTFCSEVjZkcyV2tBSEkvUVVld2kyYUpUSkV2L1V4RVlFUHVPNjR0b2ZZTnBxOGEzc3hXb0paMHJ1OXVYNFQyYko1dlRUR2t1Sythd1NjQ0RlYk9QTmlEVExzckVUUG5JR3gvakw4ZVlORVdWRnNkSFJ6cDR5bC9MWTlpOWMvN0YzNUpRK1JqdlRCMDkra0R1b3VlK2hXQ0FzMVU4amhBOHBIZmNZcUdBMUhkOXM5MXNNTUxXR2FBdHFRSGlmSVZKTDdBR0svVm1SSXBucHpJeGpxT0hNNkV5VzRjN05kdk9TamRlRjVVbWc0VVorRC9wREF6d3Y5d1orMlJldnVtdlIzTFpCTmU4V05td2V2RmIvQmVVbGdQYkNLTm9NcXhZaXFmVmZxMGQ2SG01eEJaMCtPRXVyZTNUT1A1MVRCODR6c3JOUkNyck9CMUNIV042SlFiZXVVTU0zTmM5Wm4ralpzWlQzQ1Yybmp2Ryt6aGxtLytidmFQZGJSdEh2Z3FyRFpBV3NHekp0dXhZUlhCd2s3UWJiR0liZG5MRklRb01TcUpzSWJLa2s2aTBidE4zUDRoZkZ2WGgyTjM5Y2RzNy85aHV4T0Z3T0J5U3crRndSa3BsU2V0UUZabDNPaFdiQVprWVRHc1FiamV6KzFROHdLQmhTVnVTS2trRTJ2OVdZOWhtdXpaVnZ0b055ZUpJNHQ4aVBwbGdSaGNqdTFoVUpKRGR0d2RwVkNKTnBOaWc1MUgyQms4T0FDdVV3bEtpVGFLaXJLTzBJQ1orZm40amFvSWdNRysrNnZUQWxISytHN2xNQjk1NUtWa0tjV1JBdWJJcUVqdXQ1ZHVKSUJVSHplS0kwcHhTUGo4dzFVVmhEYll0d1ZpNmVlY0QvakZCNk1QaXNpa3Vkc3o3VGNhcmN6M2xiRzhCMjQ5MmYwRGlvVW96SjlMYlBLR01GVjQ3a3oxdVJaNVBTMER0NHZNRElXL3NFQjFuTlB3RFUwTElDRURKdDV0eGpmT3NyR1l0U0F6ODNUbXlzeU9jS050eEJxRG4rYUdQdDBCcmRWdjkxc0NVWDN3dG5UZ2pOR2pxME96V29MZjNvTlJiUFhOM3lSVUpYSHFyVjRPcGtaRVZ2R2V0VVV2WFdyb3VzTVBJVzdLNm9wVXpWZGZyQ0s0WmhScktDWDVCUEtsVG9GL1hDUEt5YnlYSnZzbzRUbVlKSXJuMElFa1J6a0t0UHBPN1RDOUxDNXM4dGVMUWpBenlDeVM4aTM1TVUxVGEwT1g1S1dzZWUyWXhEUmVCU1pBazNuRGh4VjNCMDdnUzBJRHR6Q3pLR251bTdDTHVERWE2SG5rVnJJVjJTK3htaW9uby8zaCtPK2lyRjlQUDZvZjdUMVpJakNPL2dRWFJ3MDFoOGlPSkREb1liZUlBWXBSMlVpZnhZNXlxbE1nTmpOdGJ1QW1zRU1iK1AxR1Nrc3UzWjkwS24velFOY0VGZ2JxRnNSWHlOSEpFU2tLNFFTYlliRlhhak5TWXlwcmdjS1RuSnJBVXZ0bVFrQ2NCdEZIQTdab3dqdHRQbVkyU0VHRkVJb3ZTQmlTOHpNY0dCWnQydXU0NGE1amdFb1I2MXU2MmgwMG8rWks4bzdzSmNnTkR1RUt1YW05TjhEc0tObFlvT2g3NzRXcEpIN0NoTkYzbVI5S2duYTVOOE1KTlUyODZ0aDkydUdFalgwNVV4R1Y3Zm5WNXZWZ3U3c1ozOTR2bHgrdWJxL01PM3NTZE5xRkc1SVlrZm1tMGd1K0JCL0FHcU4rQXBaelEyclB4WXZGNU9yKzBGUEQ0bmo0VG9NRnZLZmFMbSt2bCtQN3U5L01TK0h2ZytlL1pSVGpMUDNWKzhwWitBTnk3QzZncDZJRVRIVmdXTDltWmpuZmZBRkRYZ0hTZDdHQlNRUXg0dzlQNTNYSnlmL3ZoYWk1QnhHSXpmRmZvbzZXYy9NTlNnSXIrRFN4RjcvWjN2ZU0xa2JPT2dLWGMrUnRFOGx2eXlEa0FvSzgrQm14MThYd1pLZStycFlBMzU4QlNadFBKcDBiY0JlaFhjYjhCcXJjYmxNS1FWckhYOEhzZng1dDR2b2ZyaC9BZGlQeGNKQXp5QzFnbEtPYVpUcFkwNSswTHdBbFFYWEQ2WU5KWiszaktFYnpqLzNQZ2NPMGJNSm10TzhZMkQ1dEVwaGs5N1dtdlpoREw3YUdBcHdpalpvN01XVGNNWlpsQytpOVpCQUwvR1IyM0J2eC9RditKQ2MzNytORlBVdnc1U3R6ems3Y0VneGh2OEVKRFJLbWhEbDRBL1BJRVRyL1Q3QWduK3ZzZnArOE9XeGpJTFU5M1FQOHJnNHFtZVoyYjZmankrdmhxdCtOOEdsNU9QMC8rekVwMDRINmZzeVJBYWFxbXo4N2VyWDZCa21mZlFjZHM5QnozcjdUVDUwY0dRaXZleHNqa1NiNnVaL2tuaC85aGdra1VraG5OSG8xUElqeEgwTjJPZWNKQkUrQ0VYaCtTTkJ5czl5cmpKM2JpSWwwVXlDeGtxQUlBdzJTRjhJeDhMNEZYc0toMlZzS2t2NHFLMTZHaHhxUGsrUEU1ak84SGlpbjkvdGZMNks4a21vRGtuS1dtdjV6b2ZhS2EwdmlHWTNZRUt3anNYeTZPUUx5ZU1jSGR4WXgvRENNWFVmZ3dDNEwvUGxITE5Ra3ZDMUtFYTBRT3huSGFLY2dkQTE0Zy9EOHFlMExXc3RpRkdDMXdBakZhY1IvQUpBb0NQMXpka3pKVGlBVk1zRS9kT1puYkFSWFVlUkc2UmpBMkVEdnJteUo3am1MUTRWM256OGROTUtCa2tOVmxjdWlXRjBmdUxXSFVCb1Y0RmdXK3N6WEJEQ1l3Q0doY0l5NXp2RjlGd2FFSmI2UStIdG5MdzBYaE9IRTRmRGtpa05LU3hPdlRwMVhaaHBzYlRJQzhJWUxRN1VOb1E4ZldvV3RyM21Db28xRzNqNXllYXlEZDFYcTlyZ1pkNUxpOVVjL3BkMGVHQmlIcUczM29EWHAxdUpHVElHeUN2dGJ6SURyVDNLN1JNd3h2b0krNnc1SGo5RFhIc1kwell6QTgwMFplMS9NUWRNK1EweC9ZYmsvckdVNFhqWkNtOTN0dURXcHFIVEZCenpCY1F4djFERzlnRzZNK2RFZG5BN2MvR3JydWNHakFVUjk1eG5EbzJhN2pRQmYydEM3cUdscHZhRGpJUTJldTBiWFpBWUJQSGpKb1VZb25OR1cyQ1R4WU9JcFF1enpiNDI3ODhDa3RBZkIvVStSa2lZKzNGMUdJMFZkYzRMdVhma3FpTERhQnJtbDY0VUNaaGVQMFBrVkp1U0RkcGc0T1VoTThQTzZRay9iSER2RTZvcE5CdWlZQXdyQlhhRGlPM0hIMTY0NWtDaEZpdnhaS1pMeSt6QkkvWEMyY05YS3pmSTI0cGhFTTZPY3JuZ3hScXB0dlk0WFc3MUN5S1pXTHFiYVExeG41VjdmcXlMOGpaK2YrcXZ0bVh6SDhQL1ZLcXFWSUxXOHA4ZzlIY1JSRXErMGZhR3NDdVhHZXNiNWM2UXZ5Vit0Y2Zkd1Y1TnY0M3BIZFpjQXVGS3V2Ym96ODUyL2dLcGN3a2xnN3A4MzJjOUw4amxUREhMYTF0cUc2eVBaaHFPcTZtb3dxU0daWkVQQlYyRkt1dlVtRVovU2hyc3lkNXRranBzb2tDdWRSaEhkS2ZLbThiaW9CY1cwQUhrN0orZCtHNmZxMEJVNVY1L1N4Q0FlVFZWb1I0WmZ5V1B3R1BrRG42UXRNWEJxdEYyS2ZlY2RUYi9JeXZPK0JOK0RoQWFnZTZFUXhsdm5ZUWRoaGFadnlwUTA4VnF3bmhjd1krUkgwWWpyNzEvWGtFeUJta0JvZ0p3WjdtMUdaWU5MbVhpV28zTVRPSWxSWVBwWis2S0t2NTIvWndkOVNUbWJUeStWa2ZIdGxLZFIwWlNtcXBRQkxzYXpRVXQ2OWE4WmhLU2ZmeFY4UHF2NzRvenFEZkM5bnA2V2NDRUJMQWVmNUFWN0x6KzJOSEN3YWI1Yk01cmE4bUYrTjc2YnpjMHNoZmg0SDFwcGZ6VzZ1TDhhTGMwdlJxNVdxVEpMNHpMWmVlU0oxU0lJSUVvRzJuYTRQcVpCa1ladGJzdmcrOVZ3Ulh6cmR4WGlVNkNKT1RoK1RxRzVsSmpmYWMrVFZMbkdrY0FieDJoVGFVN3U2Y1BIbUtmTW0wOHVyUlMwRiticlFvTmRwN1ZjVXZpYUZVUC9aaXQyZnJkajcyWXI5bjYxb3ZGcXhMSnpTaUhBTDVqRlNRWFc3UDlDMlNUSU8zVi80N3luZkJTbFVETlAwUzVTNCs0UklHR1gvUmpTUHB4K1hWNVB4aDV1cnkwYnhyMWw5WkNSM040dFhrWVRSZmh3RlMzRWpEbUpja0xBVUxSTmx2QldUdzI3UFpkckhyR0t5YU1CUU5KWTFZTkhMYUxpdGY1WkVOaXFSeU41SFhLSUFiaGMwSHB3SkRCa21Sb2tmdVUybHY0R3BTRWdOZ2loYzhUQmlJanN3TSthejBBWnhRcE5Yc1dlMUxPTG10MmhqK3p0dkkrNDNVcnB2RWpRTTVHSVNnU3hONzdpVGxLUURrcFVZK2tHV29BSkFxUmZvYStHUVUxYUpxdEt0QW5sVDRWOVZwKzZyMkp2cXIxNWtXc1QxN0M4MFhOMi84WEJWcjh0bGFoUEVjbXFYMm1VcENzRDNIeVVWbkVYbktaYzhSMEcyUWJmNXNiVnBIU200SmtobnY3d09WVE02dFNDOFB0TnRSV2pHZWhTeXBsc0huV1kyaGExdmhpblB6RWxqWDFPSHF1Q05CTHdHS3ZjY2IySzFEdDNySlBFYWRKRHF6b28xakhlNCswbHBPQTkxUDluOVdBZHZJeGVaUUJzYVJyWDlacWIvRkJrbG04a2huQ1NaRXkvOWhBczI1ZFZGQVAzTkhUZGZDOU45eFpvSTlzaG9VTFZySEczTk9NYUdJVm04QUh2Y25ETmZwa0VGbGpKSDBQMmMrQmhOUTBlNnM2OWZGc1RrTHkySU9FcUlJY0ZTemo3NU9ScWxwVHhUYzc1aTZpMUYyRklVa3h0TmxCLy9DUUFBLy8vNUF3aUwvdlFIQUE9PQ== kind: Secret metadata: - labels: - name: test-secret - owner: helm - status: deployed - version: "1" - name: sh.helm.release.v1.test -type: helm.sh/release.v1 + name: test-secret + namespace: test-namespace +type: default diff --git a/test/integration/manifests/resources/test-small-secret.yaml b/test/integration/manifests/resources/test-small-secret.yaml new file mode 100644 index 000000000..5baf4b873 --- /dev/null +++ b/test/integration/manifests/resources/test-small-secret.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +data: + release: YXBpVmVyc2lvbjogY29vcmRpbmF0aW9uLms4cy5pby92MQpraW5kOiBMZWFzZQptZXRhZGF0YToKICBuYW1lOiBjb250cm9sbGVyLW1hbmFnZXIKICBuYW1lc3BhY2U6IGFwcApzcGVjOgogIGFjcXVpcmVUaW1lOiAiMjAyMi0wOC0wMVQwNzowOTowNC41MDgxNTFaIgogIGhvbGRlcklkZW50aXR5OiBjb250cm9sbGVyLW1hbmFnZXItdjItNTc5YzRiZjlkYi03NzU3Ml80NjA0ZDUyZC0wNGE4LTRmODEtODkyYi1lNTQ2N2U2YWMyOWQKICBsZWFzZUR1cmF0aW9uU2Vjb25kczogMTUKICBsZWFzZVRyYW5zaXRpb25zOiA1MwogIHJlbmV3VGltZTogIjIwMjItMDgtMDJUMTk6NDg6MTEuOTI1NzMwWiI= +kind: Secret +metadata: + name: test-secret + namespace: test-namespace +type: default From 65af7f7e9f02667e421a7749b3bf9e9e7cd5b6b6 Mon Sep 17 00:00:00 2001 From: Arvind Thirumurugan Date: Tue, 9 May 2023 00:44:44 -0700 Subject: [PATCH 27/42] fix UT --- pkg/controllers/work/apply_controller_test.go | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/pkg/controllers/work/apply_controller_test.go b/pkg/controllers/work/apply_controller_test.go index f31413618..844d2ad8e 100644 --- a/pkg/controllers/work/apply_controller_test.go +++ b/pkg/controllers/work/apply_controller_test.go @@ -155,7 +155,7 @@ func TestSetManifestHashAnnotation(t *testing.T) { "manifest's has hashAnnotation, same": { manifestObj: func() *appsv1.Deployment { alterObj := manifestObj.DeepCopy() - alterObj.Annotations[manifestHashAnnotation] = utilrand.String(10) + alterObj.Annotations[ManifestHashAnnotation] = utilrand.String(10) return alterObj }(), isSame: true, @@ -222,7 +222,7 @@ func TestSetManifestHashAnnotation(t *testing.T) { if err != nil { t.Error("failed to marshall the manifest", err.Error()) } - manifestHash := uManifestObj.GetAnnotations()[manifestHashAnnotation] + manifestHash := uManifestObj.GetAnnotations()[ManifestHashAnnotation] if tt.isSame != (manifestHash == preHash) { t.Errorf("testcase %s failed: manifestObj = (%+v)", name, tt.manifestObj) } @@ -366,7 +366,7 @@ func TestApplyUnstructured(t *testing.T) { updatedLargeObj := largeObj.DeepCopy() largeObjSpecHash, _ := computeManifestHash(&largeObj) - largeObj.SetAnnotations(map[string]string{manifestHashAnnotation: largeObjSpecHash}) + largeObj.SetAnnotations(map[string]string{ManifestHashAnnotation: largeObjSpecHash}) applyDynamicClientNotFound := fake.NewSimpleDynamicClient(runtime.NewScheme()) applyDynamicClientNotFound.PrependReactor("get", "*", func(action testingclient.Action) (handled bool, ret runtime.Object, err error) { @@ -384,7 +384,7 @@ func TestApplyUnstructured(t *testing.T) { updatedLargeObj.SetLabels(map[string]string{"test-label-key": "test-label"}) updatedLargeObjSpecHash, _ := computeManifestHash(updatedLargeObj) - updatedLargeObj.SetAnnotations(map[string]string{manifestHashAnnotation: updatedLargeObjSpecHash}) + updatedLargeObj.SetAnnotations(map[string]string{ManifestHashAnnotation: updatedLargeObjSpecHash}) applyDynamicClientFound := fake.NewSimpleDynamicClient(runtime.NewScheme()) applyDynamicClientFound.PrependReactor("get", "*", func(action testingclient.Action) (handled bool, ret runtime.Object, err error) { @@ -514,7 +514,7 @@ func TestApplyUnstructured(t *testing.T) { } else { assert.Truef(t, err == nil, "err is not nil for Testcase %s", testName) assert.Truef(t, applyResult != nil, "applyResult is not nil for Testcase %s", testName) - assert.Equalf(t, testCase.resultSpecHash, applyResult.GetAnnotations()[manifestHashAnnotation], + assert.Equalf(t, testCase.resultSpecHash, applyResult.GetAnnotations()[ManifestHashAnnotation], "specHash not matching for Testcase %s", testName) assert.Equalf(t, ownerRef, applyResult.GetOwnerReferences()[0], "ownerRef not matching for Testcase %s", testName) } @@ -966,7 +966,7 @@ func createObjAndDynamicClient(rawManifest []byte) (*unstructured.Unstructured, uObj := unstructured.Unstructured{} _ = uObj.UnmarshalJSON(rawManifest) validSpecHash, _ := computeManifestHash(&uObj) - uObj.SetAnnotations(map[string]string{manifestHashAnnotation: validSpecHash}) + uObj.SetAnnotations(map[string]string{ManifestHashAnnotation: validSpecHash}) _ = setModifiedConfigurationAnnotation(&uObj) dynamicClient := fake.NewSimpleDynamicClient(runtime.NewScheme()) dynamicClient.PrependReactor("get", "*", func(action testingclient.Action) (handled bool, ret runtime.Object, err error) { From 7dfff4a9a8522be6016ed3b17a26cb28e1083afb Mon Sep 17 00:00:00 2001 From: Arvind Thirumurugan Date: Tue, 9 May 2023 09:29:33 -0700 Subject: [PATCH 28/42] fix integration --- pkg/controllers/work/apply_controller_integration_test.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/controllers/work/apply_controller_integration_test.go b/pkg/controllers/work/apply_controller_integration_test.go index 195d10f28..c21db5564 100644 --- a/pkg/controllers/work/apply_controller_integration_test.go +++ b/pkg/controllers/work/apply_controller_integration_test.go @@ -509,13 +509,13 @@ var _ = Describe("Work Controller", func() { appliedCM := verifyAppliedConfigMap(cm) By("Delete the last applied annotation from the current resource") - delete(appliedCM.Annotations, lastAppliedConfigAnnotation) + delete(appliedCM.Annotations, LastAppliedConfigAnnotation) Expect(k8sClient.Update(ctx, appliedCM)).Should(Succeed()) By("Get the last applied config map and verify it does not have the last applied annotation") var modifiedCM corev1.ConfigMap Expect(k8sClient.Get(ctx, types.NamespacedName{Name: cm.GetName(), Namespace: cm.GetNamespace()}, &modifiedCM)).Should(Succeed()) - Expect(modifiedCM.Annotations[lastAppliedConfigAnnotation]).Should(BeEmpty()) + Expect(modifiedCM.Annotations[LastAppliedConfigAnnotation]).Should(BeEmpty()) By("Modify the manifest") // modify one data From f70588d91fb07acb2c842540c889b6ed220882e2 Mon Sep 17 00:00:00 2001 From: Arvind Thirumurugan Date: Tue, 9 May 2023 10:04:30 -0700 Subject: [PATCH 29/42] update comment --- test/e2e/work_load_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/e2e/work_load_test.go b/test/e2e/work_load_test.go index b8b1dbd59..c90ec1384 100644 --- a/test/e2e/work_load_test.go +++ b/test/e2e/work_load_test.go @@ -29,7 +29,7 @@ var _ = Describe("workload orchestration testing", func() { crp *v1alpha1.ClusterResourcePlacement labelKey = "fleet.azure.com/name" labelValue = "test" - // Ignoring typeMeta to get the tests to pass, not sure why. + // Ignoring typeMeta to get the tests to pass, it because on Create and Get Type Meta is not populated but it gets populated on Update. resourceIgnoreOptions = []cmp.Option{cmpopts.IgnoreFields(metav1.ObjectMeta{}, "ResourceVersion", "UID", "Annotations", "CreationTimestamp", "ManagedFields"), cmpopts.IgnoreFields(metav1.OwnerReference{}, "UID"), cmpopts.IgnoreFields(metav1.TypeMeta{}, "Kind", "APIVersion")} ) From b4924d376655936dbd65f98c93a144c387903b57 Mon Sep 17 00:00:00 2001 From: Arvind Thirumurugan Date: Tue, 16 May 2023 17:55:49 -0700 Subject: [PATCH 30/42] improve comment --- test/e2e/work_load_test.go | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/test/e2e/work_load_test.go b/test/e2e/work_load_test.go index c90ec1384..5eb125e72 100644 --- a/test/e2e/work_load_test.go +++ b/test/e2e/work_load_test.go @@ -29,7 +29,7 @@ var _ = Describe("workload orchestration testing", func() { crp *v1alpha1.ClusterResourcePlacement labelKey = "fleet.azure.com/name" labelValue = "test" - // Ignoring typeMeta to get the tests to pass, it because on Create and Get Type Meta is not populated but it gets populated on Update. + // Ignoring typeMeta to get the tests to pass, because on Create and Get Type Meta is not populated but it gets populated on Update. Known issue: https://github.com/kubernetes-sigs/controller-runtime/issues/1735 resourceIgnoreOptions = []cmp.Option{cmpopts.IgnoreFields(metav1.ObjectMeta{}, "ResourceVersion", "UID", "Annotations", "CreationTimestamp", "ManagedFields"), cmpopts.IgnoreFields(metav1.OwnerReference{}, "UID"), cmpopts.IgnoreFields(metav1.TypeMeta{}, "Kind", "APIVersion")} ) @@ -425,20 +425,20 @@ var _ = Describe("workload orchestration testing", func() { By("update secret so that it's small again") // Using a new variable to prevent failure, leads to 409 if not. - var smallSecret corev1.Secret - err = pkgutils.GetObjectFromManifest("./test/integration/manifests/resources/test-small-secret.yaml", &smallSecret) + var initialSmallSecret corev1.Secret + err = pkgutils.GetObjectFromManifest("./test/integration/manifests/resources/test-small-secret.yaml", &initialSmallSecret) Expect(err).Should(Succeed()) Eventually(func() error { - if err := HubCluster.KubeClient.Update(ctx, &smallSecret); err != nil { + if err := HubCluster.KubeClient.Update(ctx, &initialSmallSecret); err != nil { return err } return nil }, utils.PollTimeout, utils.PollInterval).Should(Succeed(), "Failed to update secret to be small in %s cluster", HubCluster.ClusterName) - expectedSecret = &smallSecret + expectedSecret = &initialSmallSecret expectedSecret.OwnerReferences = ownerReferences // Ignoring Annotations here because fleet.azure.com/last-applied-configuration has live fields, checking to see if it's not empty instead. - gotSecret = utils.CmpSecret(ctx, *MemberCluster, &types.NamespacedName{Name: smallSecret.Name, Namespace: smallSecret.Namespace}, expectedSecret, resourceIgnoreOptions) + gotSecret = utils.CmpSecret(ctx, *MemberCluster, &types.NamespacedName{Name: initialSmallSecret.Name, Namespace: initialSmallSecret.Namespace}, expectedSecret, resourceIgnoreOptions) Expect(gotSecret.Annotations[workcontroller.LastAppliedConfigAnnotation]).ToNot(BeEmpty()) Expect(gotSecret.Annotations[workcontroller.ManifestHashAnnotation]).To(Equal(testSmallSecretSpecHash)) From 103556a10e1e3d66fec2ab3b3f82bcb0c9677273 Mon Sep 17 00:00:00 2001 From: Arvind Thirumurugan Date: Tue, 16 May 2023 18:02:30 -0700 Subject: [PATCH 31/42] add period for comments --- pkg/controllers/work/apply_controller.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/controllers/work/apply_controller.go b/pkg/controllers/work/apply_controller.go index a27805dea..ef45fe17b 100644 --- a/pkg/controllers/work/apply_controller.go +++ b/pkg/controllers/work/apply_controller.go @@ -401,9 +401,9 @@ func (r *ApplyWorkReconciler) applyUnstructured(ctx context.Context, gvr schema. // We only try to update the object if its spec hash value has changed. if manifestObj.GetAnnotations()[ManifestHashAnnotation] != curObj.GetAnnotations()[ManifestHashAnnotation] { // we need to merge the owner reference between the current and the manifest since we support one manifest - // belong to multiple work so it contains the union of all the appliedWork + // belong to multiple work so it contains the union of all the appliedWork. manifestObj.SetOwnerReferences(mergeOwnerReference(curObj.GetOwnerReferences(), manifestObj.GetOwnerReferences())) - // record the raw manifest with the hash annotation in the manifest + // record the raw manifest with the hash annotation in the manifest. if err = setModifiedConfigurationAnnotation(manifestObj); err != nil { return nil, ManifestNoChangeAction, err } From d8a8436b648b3aaa3eff199c0cd81a87e281991a Mon Sep 17 00:00:00 2001 From: Arvind Thirumurugan Date: Mon, 29 May 2023 16:41:28 -0700 Subject: [PATCH 32/42] address comments --- pkg/controllers/work/apply_controller.go | 23 ++------ pkg/controllers/work/patch_util.go | 17 +++++- test/e2e/work_load_test.go | 75 +++++++++++++----------- 3 files changed, 61 insertions(+), 54 deletions(-) diff --git a/pkg/controllers/work/apply_controller.go b/pkg/controllers/work/apply_controller.go index ef45fe17b..162e00244 100644 --- a/pkg/controllers/work/apply_controller.go +++ b/pkg/controllers/work/apply_controller.go @@ -27,7 +27,6 @@ import ( v1 "k8s.io/api/core/v1" apierrors "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/api/meta" - "k8s.io/apimachinery/pkg/api/validation" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/apimachinery/pkg/runtime/schema" @@ -358,15 +357,6 @@ func (r *ApplyWorkReconciler) applyUnstructured(ctx context.Context, gvr schema. if err := setModifiedConfigurationAnnotation(manifestObj); err != nil { return nil, ManifestNoChangeAction, err } - annotations := manifestObj.GetAnnotations() - klog.V(2).InfoS("validating annotation size for manifest", - "gvr", gvr, "manifest", manifestRef) - if err := validation.ValidateAnnotationsSize(annotations); err != nil { - klog.InfoS(fmt.Sprintf("not using three way merge for manifest removing last applied config annotation, %s", err), - "gvr", gvr, "obj", manifestRef) - annotations[LastAppliedConfigAnnotation] = "" - manifestObj.SetAnnotations(annotations) - } actual, err := r.spokeDynamicClient.Resource(gvr).Namespace(manifestObj.GetNamespace()).Create( ctx, manifestObj, metav1.CreateOptions{FieldManager: workFieldManagerName}) if err == nil { @@ -408,15 +398,11 @@ func (r *ApplyWorkReconciler) applyUnstructured(ctx context.Context, gvr schema. return nil, ManifestNoChangeAction, err } annotations := manifestObj.GetAnnotations() - klog.V(2).InfoS("validating annotation size for manifest", - "gvr", gvr, "manifest", manifestRef) - if err = validation.ValidateAnnotationsSize(annotations); err != nil { - klog.ErrorS(err, "not using three way merge for manifest removing last applied config annotation", - "gvr", gvr, "obj", manifestRef) - annotations[LastAppliedConfigAnnotation] = "" - manifestObj.SetAnnotations(annotations) - return r.applyObject(ctx, gvr, manifestObj) + if annotations[LastAppliedConfigAnnotation] == "" { + klog.V(2).InfoS("using server side apply for manifest", "gvr", gvr, "manifest", manifestRef) + r.applyObject(ctx, gvr, manifestObj) } + klog.V(2).InfoS("using three way merge for manifest", "gvr", gvr, "manifest", manifestRef) return r.patchCurrentResource(ctx, gvr, manifestObj, curObj) } @@ -576,6 +562,7 @@ func computeManifestHash(obj *unstructured.Unstructured) (string, error) { manifest.SetSelfLink("") manifest.SetDeletionTimestamp(nil) manifest.SetManagedFields(nil) + manifest.SetOwnerReferences(nil) unstructured.RemoveNestedField(manifest.Object, "metadata", "creationTimestamp") unstructured.RemoveNestedField(manifest.Object, "status") // compute the sha256 hash of the remaining data diff --git a/pkg/controllers/work/patch_util.go b/pkg/controllers/work/patch_util.go index 3742a283f..c810bca04 100644 --- a/pkg/controllers/work/patch_util.go +++ b/pkg/controllers/work/patch_util.go @@ -5,6 +5,7 @@ import ( "fmt" "k8s.io/apimachinery/pkg/api/meta" + "k8s.io/apimachinery/pkg/api/validation" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/jsonmergepatch" @@ -106,7 +107,21 @@ func setModifiedConfigurationAnnotation(obj runtime.Object) error { } // set the last applied annotation back annotations[LastAppliedConfigAnnotation] = string(modified) - return metadataAccessor.SetAnnotations(obj, annotations) + if err = metadataAccessor.SetAnnotations(obj, annotations); err != nil { + return err + } + annotations, err = metadataAccessor.Annotations(obj) + if err != nil { + return err + } + if err := validation.ValidateAnnotationsSize(annotations); err != nil { + klog.InfoS(fmt.Sprintf("setting last applied config annotation to empty, %s", err)) + annotations[LastAppliedConfigAnnotation] = "" + if err = metadataAccessor.SetAnnotations(obj, annotations); err != nil { + return err + } + } + return nil } // getOriginalConfiguration gets original configuration of the object diff --git a/test/e2e/work_load_test.go b/test/e2e/work_load_test.go index 5eb125e72..2b9830aae 100644 --- a/test/e2e/work_load_test.go +++ b/test/e2e/work_load_test.go @@ -19,7 +19,7 @@ import ( workapi "sigs.k8s.io/work-api/pkg/apis/v1alpha1" "go.goms.io/fleet/apis/v1alpha1" - workcontroller "go.goms.io/fleet/pkg/controllers/work" + pkgwork "go.goms.io/fleet/pkg/controllers/work" pkgutils "go.goms.io/fleet/pkg/utils" "go.goms.io/fleet/test/e2e/utils" ) @@ -34,6 +34,11 @@ var _ = Describe("workload orchestration testing", func() { cmpopts.IgnoreFields(metav1.OwnerReference{}, "UID"), cmpopts.IgnoreFields(metav1.TypeMeta{}, "Kind", "APIVersion")} ) + const ( + smallSecretSpecHash = "16b6e8df987984815959a61a429a20de6c5271cf3d8cf0e5450bc621768be4cf" + largeSecretSpecHash = "c984ffbb45374f70ae42d74aa12ce9667b5284feda69378350cea64d1fd4c5ab" + ) + Context("Test Workload Orchestration", func() { It("Apply CRP and check if cluster role gets propagated, update cluster role", func() { By("create the resources to be propagated") @@ -108,9 +113,9 @@ var _ = Describe("workload orchestration testing", func() { Name: crp.Name, }, } - expectedClusterRole := clusterRole - expectedClusterRole.OwnerReferences = ownerReferences - utils.CmpClusterRole(ctx, *MemberCluster, &types.NamespacedName{Name: clusterRole.Name}, expectedClusterRole, resourceIgnoreOptions) + wantClusterRole := clusterRole + wantClusterRole.OwnerReferences = ownerReferences + utils.CmpClusterRole(ctx, *MemberCluster, &types.NamespacedName{Name: clusterRole.Name}, wantClusterRole, resourceIgnoreOptions) By("update cluster role in Hub cluster") rules := []rbacv1.PolicyRule{ @@ -130,7 +135,7 @@ var _ = Describe("workload orchestration testing", func() { Expect(HubCluster.KubeClient.Update(ctx, updatedClusterRole)).Should(Succeed(), "Failed to update cluster role %s in %s cluster", updatedClusterRole.Name, HubCluster.ClusterName) By("check if cluster role got updated in member cluster") - expectedClusterRole = &rbacv1.ClusterRole{ + wantClusterRole = &rbacv1.ClusterRole{ ObjectMeta: metav1.ObjectMeta{ Name: "test-cluster-role", Labels: updatedClusterRole.Labels, @@ -138,7 +143,7 @@ var _ = Describe("workload orchestration testing", func() { }, Rules: rules, } - utils.CmpClusterRole(ctx, *MemberCluster, &types.NamespacedName{Name: clusterRole.Name}, expectedClusterRole, resourceIgnoreOptions) + utils.CmpClusterRole(ctx, *MemberCluster, &types.NamespacedName{Name: clusterRole.Name}, wantClusterRole, resourceIgnoreOptions) By("delete cluster role on hub cluster") Expect(HubCluster.KubeClient.Delete(ctx, clusterRole)).Should(Succeed(), "Failed to delete cluster role %s in %s cluster", clusterRole.Name, HubCluster.ClusterName) @@ -275,15 +280,15 @@ var _ = Describe("workload orchestration testing", func() { Name: crp.Name, }, } - expectedNamespace := namespace1 - expectedRole := role - expectedRoleBinding := roleBinding - expectedNamespace.OwnerReferences = ownerReferences - expectedRole.OwnerReferences = ownerReferences - expectedRoleBinding.OwnerReferences = ownerReferences - utils.CmpNamespace(ctx, *MemberCluster, &types.NamespacedName{Name: namespace1.Name}, expectedNamespace, resourceIgnoreOptions) - utils.CmpRole(ctx, *MemberCluster, &types.NamespacedName{Name: role.Name, Namespace: role.Namespace}, expectedRole, resourceIgnoreOptions) - utils.CmpRoleBinding(ctx, *MemberCluster, &types.NamespacedName{Name: roleBinding.Name, Namespace: roleBinding.Namespace}, expectedRoleBinding, resourceIgnoreOptions) + wantNamespace := namespace1 + wantRole := role + wantRoleBinding := roleBinding + wantNamespace.OwnerReferences = ownerReferences + wantRole.OwnerReferences = ownerReferences + wantRoleBinding.OwnerReferences = ownerReferences + utils.CmpNamespace(ctx, *MemberCluster, &types.NamespacedName{Name: namespace1.Name}, wantNamespace, resourceIgnoreOptions) + utils.CmpRole(ctx, *MemberCluster, &types.NamespacedName{Name: role.Name, Namespace: role.Namespace}, wantRole, resourceIgnoreOptions) + utils.CmpRoleBinding(ctx, *MemberCluster, &types.NamespacedName{Name: roleBinding.Name, Namespace: roleBinding.Namespace}, wantRoleBinding, resourceIgnoreOptions) By("check if namespace not selected by CRP doesn't exist on member cluster") Consistently(func() bool { @@ -306,10 +311,10 @@ var _ = Describe("workload orchestration testing", func() { Rules: rules, } Expect(HubCluster.KubeClient.Update(ctx, updatedRole)).Should(Succeed(), "Failed to update role %s in %s cluster", updatedRole.Name, HubCluster.ClusterName) - expectedRole.Rules = rules + wantRole.Rules = rules By("check if role got updated in member cluster") - utils.CmpRole(ctx, *MemberCluster, &types.NamespacedName{Name: role.Name, Namespace: role.Namespace}, expectedRole, resourceIgnoreOptions) + utils.CmpRole(ctx, *MemberCluster, &types.NamespacedName{Name: role.Name, Namespace: role.Namespace}, wantRole, resourceIgnoreOptions) By("delete namespaces") utils.DeleteNamespace(ctx, *HubCluster, namespace1) @@ -398,16 +403,16 @@ var _ = Describe("workload orchestration testing", func() { Name: crp.Name, }, } - expectedNamespace := namespace - expectedSecret := &testSmallSecret - expectedNamespace.OwnerReferences = ownerReferences - expectedSecret.OwnerReferences = ownerReferences + wantNamespace := namespace + wantSecret := &testSmallSecret + wantNamespace.OwnerReferences = ownerReferences + wantSecret.OwnerReferences = ownerReferences - utils.CmpNamespace(ctx, *MemberCluster, &types.NamespacedName{Name: namespace.Name}, expectedNamespace, resourceIgnoreOptions) + utils.CmpNamespace(ctx, *MemberCluster, &types.NamespacedName{Name: namespace.Name}, wantNamespace, resourceIgnoreOptions) // Ignoring Annotations here because fleet.azure.com/last-applied-configuration has live fields, checking to see if it's not empty instead. - gotSecret := utils.CmpSecret(ctx, *MemberCluster, &types.NamespacedName{Name: testSmallSecret.Name, Namespace: testSmallSecret.Namespace}, expectedSecret, resourceIgnoreOptions) - Expect(gotSecret.Annotations[workcontroller.LastAppliedConfigAnnotation]).To(Not(BeEmpty())) - testSmallSecretSpecHash := gotSecret.Annotations[workcontroller.ManifestHashAnnotation] + gotSecret := utils.CmpSecret(ctx, *MemberCluster, &types.NamespacedName{Name: testSmallSecret.Name, Namespace: testSmallSecret.Namespace}, wantSecret, resourceIgnoreOptions) + Expect(gotSecret.Annotations[pkgwork.LastAppliedConfigAnnotation]).To(Not(BeEmpty())) + Expect(gotSecret.Annotations[pkgwork.ManifestHashAnnotation]).To(Equal(smallSecretSpecHash)) By("update secret so that annotation limit crosses threshold of 256KB") var testLargeSecret corev1.Secret @@ -415,13 +420,13 @@ var _ = Describe("workload orchestration testing", func() { Expect(err).Should(Succeed()) // testLargeSecret has the same name as testSmallSecret Expect(HubCluster.KubeClient.Update(ctx, &testLargeSecret)).Should(Succeed(), "Failed to update secret %s to be large in %s cluster", testLargeSecret.Name, HubCluster.ClusterName) - expectedSecret = &testLargeSecret - expectedSecret.OwnerReferences = ownerReferences + wantSecret = &testLargeSecret + wantSecret.OwnerReferences = ownerReferences // Ignoring Annotations here because fleet.azure.com/last-applied-configuration has live fields, checking to see if it's not empty instead. - gotSecret = utils.CmpSecret(ctx, *MemberCluster, &types.NamespacedName{Name: testLargeSecret.Name, Namespace: testLargeSecret.Namespace}, expectedSecret, resourceIgnoreOptions) - Expect(gotSecret.Annotations[workcontroller.LastAppliedConfigAnnotation]).To(BeEmpty()) - Expect(gotSecret.Annotations[workcontroller.ManifestHashAnnotation]).ToNot(Equal(testSmallSecretSpecHash)) + gotSecret = utils.CmpSecret(ctx, *MemberCluster, &types.NamespacedName{Name: testLargeSecret.Name, Namespace: testLargeSecret.Namespace}, wantSecret, resourceIgnoreOptions) + Expect(gotSecret.Annotations[pkgwork.LastAppliedConfigAnnotation]).To(BeEmpty()) + Expect(gotSecret.Annotations[pkgwork.ManifestHashAnnotation]).To(Equal(largeSecretSpecHash)) By("update secret so that it's small again") // Using a new variable to prevent failure, leads to 409 if not. @@ -434,13 +439,13 @@ var _ = Describe("workload orchestration testing", func() { } return nil }, utils.PollTimeout, utils.PollInterval).Should(Succeed(), "Failed to update secret to be small in %s cluster", HubCluster.ClusterName) - expectedSecret = &initialSmallSecret - expectedSecret.OwnerReferences = ownerReferences + wantSecret = &initialSmallSecret + wantSecret.OwnerReferences = ownerReferences // Ignoring Annotations here because fleet.azure.com/last-applied-configuration has live fields, checking to see if it's not empty instead. - gotSecret = utils.CmpSecret(ctx, *MemberCluster, &types.NamespacedName{Name: initialSmallSecret.Name, Namespace: initialSmallSecret.Namespace}, expectedSecret, resourceIgnoreOptions) - Expect(gotSecret.Annotations[workcontroller.LastAppliedConfigAnnotation]).ToNot(BeEmpty()) - Expect(gotSecret.Annotations[workcontroller.ManifestHashAnnotation]).To(Equal(testSmallSecretSpecHash)) + gotSecret = utils.CmpSecret(ctx, *MemberCluster, &types.NamespacedName{Name: initialSmallSecret.Name, Namespace: initialSmallSecret.Namespace}, wantSecret, resourceIgnoreOptions) + Expect(gotSecret.Annotations[pkgwork.LastAppliedConfigAnnotation]).ToNot(BeEmpty()) + Expect(gotSecret.Annotations[pkgwork.ManifestHashAnnotation]).To(Equal(smallSecretSpecHash)) By("delete namespaces") utils.DeleteNamespace(ctx, *HubCluster, namespace) From f2bede544811f49905a12dcf3446d9a26a312192 Mon Sep 17 00:00:00 2001 From: Arvind Thirumurugan Date: Mon, 29 May 2023 19:46:18 -0700 Subject: [PATCH 33/42] fix UT, add comment --- pkg/controllers/work/apply_controller.go | 3 +-- pkg/controllers/work/apply_controller_test.go | 1 + test/e2e/work_load_test.go | 20 ++++++++----------- 3 files changed, 10 insertions(+), 14 deletions(-) diff --git a/pkg/controllers/work/apply_controller.go b/pkg/controllers/work/apply_controller.go index 162e00244..e969020ac 100644 --- a/pkg/controllers/work/apply_controller.go +++ b/pkg/controllers/work/apply_controller.go @@ -400,7 +400,7 @@ func (r *ApplyWorkReconciler) applyUnstructured(ctx context.Context, gvr schema. annotations := manifestObj.GetAnnotations() if annotations[LastAppliedConfigAnnotation] == "" { klog.V(2).InfoS("using server side apply for manifest", "gvr", gvr, "manifest", manifestRef) - r.applyObject(ctx, gvr, manifestObj) + return r.applyObject(ctx, gvr, manifestObj) } klog.V(2).InfoS("using three way merge for manifest", "gvr", gvr, "manifest", manifestRef) return r.patchCurrentResource(ctx, gvr, manifestObj, curObj) @@ -562,7 +562,6 @@ func computeManifestHash(obj *unstructured.Unstructured) (string, error) { manifest.SetSelfLink("") manifest.SetDeletionTimestamp(nil) manifest.SetManagedFields(nil) - manifest.SetOwnerReferences(nil) unstructured.RemoveNestedField(manifest.Object, "metadata", "creationTimestamp") unstructured.RemoveNestedField(manifest.Object, "status") // compute the sha256 hash of the remaining data diff --git a/pkg/controllers/work/apply_controller_test.go b/pkg/controllers/work/apply_controller_test.go index 844d2ad8e..de1fd830c 100644 --- a/pkg/controllers/work/apply_controller_test.go +++ b/pkg/controllers/work/apply_controller_test.go @@ -514,6 +514,7 @@ func TestApplyUnstructured(t *testing.T) { } else { assert.Truef(t, err == nil, "err is not nil for Testcase %s", testName) assert.Truef(t, applyResult != nil, "applyResult is not nil for Testcase %s", testName) + // Not checking last applied config because it has live fields. assert.Equalf(t, testCase.resultSpecHash, applyResult.GetAnnotations()[ManifestHashAnnotation], "specHash not matching for Testcase %s", testName) assert.Equalf(t, ownerRef, applyResult.GetOwnerReferences()[0], "ownerRef not matching for Testcase %s", testName) diff --git a/test/e2e/work_load_test.go b/test/e2e/work_load_test.go index 2b9830aae..28463f37f 100644 --- a/test/e2e/work_load_test.go +++ b/test/e2e/work_load_test.go @@ -16,7 +16,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" "k8s.io/utils/pointer" - workapi "sigs.k8s.io/work-api/pkg/apis/v1alpha1" + workapiv1alpha1 "sigs.k8s.io/work-api/pkg/apis/v1alpha1" "go.goms.io/fleet/apis/v1alpha1" pkgwork "go.goms.io/fleet/pkg/controllers/work" @@ -34,11 +34,6 @@ var _ = Describe("workload orchestration testing", func() { cmpopts.IgnoreFields(metav1.OwnerReference{}, "UID"), cmpopts.IgnoreFields(metav1.TypeMeta{}, "Kind", "APIVersion")} ) - const ( - smallSecretSpecHash = "16b6e8df987984815959a61a429a20de6c5271cf3d8cf0e5450bc621768be4cf" - largeSecretSpecHash = "c984ffbb45374f70ae42d74aa12ce9667b5284feda69378350cea64d1fd4c5ab" - ) - Context("Test Workload Orchestration", func() { It("Apply CRP and check if cluster role gets propagated, update cluster role", func() { By("create the resources to be propagated") @@ -107,7 +102,7 @@ var _ = Describe("workload orchestration testing", func() { By("check if cluster role is propagated to member cluster") ownerReferences := []metav1.OwnerReference{ { - APIVersion: workapi.GroupVersion.String(), + APIVersion: workapiv1alpha1.GroupVersion.String(), BlockOwnerDeletion: pointer.Bool(false), Kind: "AppliedWork", Name: crp.Name, @@ -274,7 +269,7 @@ var _ = Describe("workload orchestration testing", func() { By("check if resources in namespace are propagated to member cluster") ownerReferences := []metav1.OwnerReference{ { - APIVersion: workapi.GroupVersion.String(), + APIVersion: workapiv1alpha1.GroupVersion.String(), BlockOwnerDeletion: pointer.Bool(false), Kind: "AppliedWork", Name: crp.Name, @@ -397,7 +392,7 @@ var _ = Describe("workload orchestration testing", func() { By("check if resources in namespace are propagated to member cluster") ownerReferences := []metav1.OwnerReference{ { - APIVersion: workapi.GroupVersion.String(), + APIVersion: workapiv1alpha1.GroupVersion.String(), BlockOwnerDeletion: pointer.Bool(false), Kind: "AppliedWork", Name: crp.Name, @@ -412,7 +407,8 @@ var _ = Describe("workload orchestration testing", func() { // Ignoring Annotations here because fleet.azure.com/last-applied-configuration has live fields, checking to see if it's not empty instead. gotSecret := utils.CmpSecret(ctx, *MemberCluster, &types.NamespacedName{Name: testSmallSecret.Name, Namespace: testSmallSecret.Namespace}, wantSecret, resourceIgnoreOptions) Expect(gotSecret.Annotations[pkgwork.LastAppliedConfigAnnotation]).To(Not(BeEmpty())) - Expect(gotSecret.Annotations[pkgwork.ManifestHashAnnotation]).To(Equal(smallSecretSpecHash)) + // Not checking spec hash equals some value because ObjectMeta.OwnerReferences has some live fields. + testSmallSecretSpecHash := gotSecret.Annotations[pkgwork.ManifestHashAnnotation] By("update secret so that annotation limit crosses threshold of 256KB") var testLargeSecret corev1.Secret @@ -426,7 +422,7 @@ var _ = Describe("workload orchestration testing", func() { // Ignoring Annotations here because fleet.azure.com/last-applied-configuration has live fields, checking to see if it's not empty instead. gotSecret = utils.CmpSecret(ctx, *MemberCluster, &types.NamespacedName{Name: testLargeSecret.Name, Namespace: testLargeSecret.Namespace}, wantSecret, resourceIgnoreOptions) Expect(gotSecret.Annotations[pkgwork.LastAppliedConfigAnnotation]).To(BeEmpty()) - Expect(gotSecret.Annotations[pkgwork.ManifestHashAnnotation]).To(Equal(largeSecretSpecHash)) + Expect(gotSecret.Annotations[pkgwork.ManifestHashAnnotation]).ToNot(Equal(testSmallSecretSpecHash)) By("update secret so that it's small again") // Using a new variable to prevent failure, leads to 409 if not. @@ -445,7 +441,7 @@ var _ = Describe("workload orchestration testing", func() { // Ignoring Annotations here because fleet.azure.com/last-applied-configuration has live fields, checking to see if it's not empty instead. gotSecret = utils.CmpSecret(ctx, *MemberCluster, &types.NamespacedName{Name: initialSmallSecret.Name, Namespace: initialSmallSecret.Namespace}, wantSecret, resourceIgnoreOptions) Expect(gotSecret.Annotations[pkgwork.LastAppliedConfigAnnotation]).ToNot(BeEmpty()) - Expect(gotSecret.Annotations[pkgwork.ManifestHashAnnotation]).To(Equal(smallSecretSpecHash)) + Expect(gotSecret.Annotations[pkgwork.ManifestHashAnnotation]).To(Equal(testSmallSecretSpecHash)) By("delete namespaces") utils.DeleteNamespace(ctx, *HubCluster, namespace) From 4d436f9d7ab31ed955e33920b46f64aaf44ac8f2 Mon Sep 17 00:00:00 2001 From: Arvind Thirumurugan Date: Mon, 29 May 2023 19:53:02 -0700 Subject: [PATCH 34/42] add period --- test/e2e/work_load_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/e2e/work_load_test.go b/test/e2e/work_load_test.go index 28463f37f..319263b0e 100644 --- a/test/e2e/work_load_test.go +++ b/test/e2e/work_load_test.go @@ -414,7 +414,7 @@ var _ = Describe("workload orchestration testing", func() { var testLargeSecret corev1.Secret err = pkgutils.GetObjectFromManifest("./test/integration/manifests/resources/test-large-secret.yaml", &testLargeSecret) Expect(err).Should(Succeed()) - // testLargeSecret has the same name as testSmallSecret + // testLargeSecret has the same name as testSmallSecret. Expect(HubCluster.KubeClient.Update(ctx, &testLargeSecret)).Should(Succeed(), "Failed to update secret %s to be large in %s cluster", testLargeSecret.Name, HubCluster.ClusterName) wantSecret = &testLargeSecret wantSecret.OwnerReferences = ownerReferences From 38fdab3c1994c759044f551502160e814cf114c6 Mon Sep 17 00:00:00 2001 From: Arvind Thirumurugan Date: Wed, 31 May 2023 13:15:50 -0700 Subject: [PATCH 35/42] add UTs --- pkg/controllers/work/apply_controller_test.go | 64 +++++++++++++++---- 1 file changed, 53 insertions(+), 11 deletions(-) diff --git a/pkg/controllers/work/apply_controller_test.go b/pkg/controllers/work/apply_controller_test.go index de1fd830c..1d2d1f2e1 100644 --- a/pkg/controllers/work/apply_controller_test.go +++ b/pkg/controllers/work/apply_controller_test.go @@ -307,7 +307,7 @@ func TestApplyUnstructured(t *testing.T) { dynamicClientNotFound := fake.NewSimpleDynamicClient(runtime.NewScheme()) dynamicClientNotFound.PrependReactor("get", "*", func(action testingclient.Action) (handled bool, ret runtime.Object, err error) { - return false, + return true, nil, &apierrors.StatusError{ ErrStatus: metav1.Status{ @@ -368,9 +368,9 @@ func TestApplyUnstructured(t *testing.T) { largeObjSpecHash, _ := computeManifestHash(&largeObj) largeObj.SetAnnotations(map[string]string{ManifestHashAnnotation: largeObjSpecHash}) - applyDynamicClientNotFound := fake.NewSimpleDynamicClient(runtime.NewScheme()) - applyDynamicClientNotFound.PrependReactor("get", "*", func(action testingclient.Action) (handled bool, ret runtime.Object, err error) { - return false, + dynamicClientLargeObjNotFound := fake.NewSimpleDynamicClient(runtime.NewScheme()) + dynamicClientLargeObjNotFound.PrependReactor("get", "*", func(action testingclient.Action) (handled bool, ret runtime.Object, err error) { + return true, nil, &apierrors.StatusError{ ErrStatus: metav1.Status{ @@ -378,7 +378,7 @@ func TestApplyUnstructured(t *testing.T) { Reason: metav1.StatusReasonNotFound, }} }) - applyDynamicClientNotFound.PrependReactor("patch", "*", func(action testingclient.Action) (handled bool, ret runtime.Object, err error) { + dynamicClientLargeObjNotFound.PrependReactor("create", "*", func(action testingclient.Action) (handled bool, ret runtime.Object, err error) { return true, largeObj.DeepCopy(), nil }) @@ -386,14 +386,36 @@ func TestApplyUnstructured(t *testing.T) { updatedLargeObjSpecHash, _ := computeManifestHash(updatedLargeObj) updatedLargeObj.SetAnnotations(map[string]string{ManifestHashAnnotation: updatedLargeObjSpecHash}) - applyDynamicClientFound := fake.NewSimpleDynamicClient(runtime.NewScheme()) - applyDynamicClientFound.PrependReactor("get", "*", func(action testingclient.Action) (handled bool, ret runtime.Object, err error) { + dynamicClientLargeObjFound := fake.NewSimpleDynamicClient(runtime.NewScheme()) + dynamicClientLargeObjFound.PrependReactor("get", "*", func(action testingclient.Action) (handled bool, ret runtime.Object, err error) { return true, largeObj.DeepCopy(), nil }) - applyDynamicClientFound.PrependReactor("patch", "*", func(action testingclient.Action) (handled bool, ret runtime.Object, err error) { + dynamicClientLargeObjFound.PrependReactor("patch", "*", func(action testingclient.Action) (handled bool, ret runtime.Object, err error) { return true, updatedLargeObj.DeepCopy(), nil }) + dynamicClientLargeObjCreateFail := fake.NewSimpleDynamicClient(runtime.NewScheme()) + dynamicClientLargeObjCreateFail.PrependReactor("get", "*", func(action testingclient.Action) (handled bool, ret runtime.Object, err error) { + return true, + nil, + &apierrors.StatusError{ + ErrStatus: metav1.Status{ + Status: metav1.StatusFailure, + Reason: metav1.StatusReasonNotFound, + }} + }) + dynamicClientLargeObjCreateFail.PrependReactor("create", "*", func(action testingclient.Action) (handled bool, ret runtime.Object, err error) { + return true, nil, errors.New("create error") + }) + + dynamicClientLargeObjApplyFail := fake.NewSimpleDynamicClient(runtime.NewScheme()) + dynamicClientLargeObjApplyFail.PrependReactor("get", "*", func(action testingclient.Action) (handled bool, ret runtime.Object, err error) { + return true, largeObj.DeepCopy(), nil + }) + dynamicClientLargeObjApplyFail.PrependReactor("patch", "*", func(action testingclient.Action) (handled bool, ret runtime.Object, err error) { + return true, nil, errors.New("apply error") + }) + testCases := map[string]struct { reconciler ApplyWorkReconciler workObj *unstructured.Unstructured @@ -481,9 +503,9 @@ func TestApplyUnstructured(t *testing.T) { resultAction: ManifestUpdatedAction, resultErr: nil, }, - "test apply succeeds for large manifest when object does not exist": { + "test create succeeds for large manifest when object does not exist": { reconciler: ApplyWorkReconciler{ - spokeDynamicClient: applyDynamicClientNotFound, + spokeDynamicClient: dynamicClientLargeObjNotFound, restMapper: testMapper{}, recorder: utils.NewFakeRecorder(1), }, @@ -494,7 +516,7 @@ func TestApplyUnstructured(t *testing.T) { }, "test apply succeeds on update for large manifest when object exists": { reconciler: ApplyWorkReconciler{ - spokeDynamicClient: applyDynamicClientFound, + spokeDynamicClient: dynamicClientLargeObjFound, restMapper: testMapper{}, recorder: utils.NewFakeRecorder(1), }, @@ -503,6 +525,26 @@ func TestApplyUnstructured(t *testing.T) { resultAction: ManifestAppliedAction, resultErr: nil, }, + "test create fails for large manifest when object does not exist": { + reconciler: ApplyWorkReconciler{ + spokeDynamicClient: dynamicClientLargeObjCreateFail, + restMapper: testMapper{}, + recorder: utils.NewFakeRecorder(1), + }, + workObj: &largeObj, + resultAction: ManifestNoChangeAction, + resultErr: errors.New("create error"), + }, + "test apply fails for large manifest when object exists": { + reconciler: ApplyWorkReconciler{ + spokeDynamicClient: dynamicClientLargeObjApplyFail, + restMapper: testMapper{}, + recorder: utils.NewFakeRecorder(1), + }, + workObj: updatedLargeObj, + resultAction: ManifestNoChangeAction, + resultErr: errors.New("apply error"), + }, } for testName, testCase := range testCases { From d7b29e0846586fcbbce4cc1a171a33cbb7d8c452 Mon Sep 17 00:00:00 2001 From: Arvind Thirumurugan Date: Wed, 31 May 2023 13:49:00 -0700 Subject: [PATCH 36/42] address comments --- pkg/controllers/work/apply_controller.go | 2 +- pkg/controllers/work/apply_controller_test.go | 12 +++++++++--- pkg/controllers/work/patch_util.go | 15 ++++----------- 3 files changed, 14 insertions(+), 15 deletions(-) diff --git a/pkg/controllers/work/apply_controller.go b/pkg/controllers/work/apply_controller.go index e969020ac..b7244d28d 100644 --- a/pkg/controllers/work/apply_controller.go +++ b/pkg/controllers/work/apply_controller.go @@ -394,7 +394,7 @@ func (r *ApplyWorkReconciler) applyUnstructured(ctx context.Context, gvr schema. // belong to multiple work so it contains the union of all the appliedWork. manifestObj.SetOwnerReferences(mergeOwnerReference(curObj.GetOwnerReferences(), manifestObj.GetOwnerReferences())) // record the raw manifest with the hash annotation in the manifest. - if err = setModifiedConfigurationAnnotation(manifestObj); err != nil { + if err := setModifiedConfigurationAnnotation(manifestObj); err != nil { return nil, ManifestNoChangeAction, err } annotations := manifestObj.GetAnnotations() diff --git a/pkg/controllers/work/apply_controller_test.go b/pkg/controllers/work/apply_controller_test.go index 1d2d1f2e1..6c8902c56 100644 --- a/pkg/controllers/work/apply_controller_test.go +++ b/pkg/controllers/work/apply_controller_test.go @@ -360,12 +360,15 @@ func TestApplyUnstructured(t *testing.T) { t.Errorf("failed to marshal secret: %s", err) } var largeObj unstructured.Unstructured - if err = largeObj.UnmarshalJSON(rawSecret); err != nil { + if err := largeObj.UnmarshalJSON(rawSecret); err != nil { t.Errorf("failed to unmarshal JSON: %s", err) } updatedLargeObj := largeObj.DeepCopy() - largeObjSpecHash, _ := computeManifestHash(&largeObj) + largeObjSpecHash, err := computeManifestHash(&largeObj) + if err != nil { + t.Errorf("failed to compute manifest hash: %s", err) + } largeObj.SetAnnotations(map[string]string{ManifestHashAnnotation: largeObjSpecHash}) dynamicClientLargeObjNotFound := fake.NewSimpleDynamicClient(runtime.NewScheme()) @@ -383,7 +386,10 @@ func TestApplyUnstructured(t *testing.T) { }) updatedLargeObj.SetLabels(map[string]string{"test-label-key": "test-label"}) - updatedLargeObjSpecHash, _ := computeManifestHash(updatedLargeObj) + updatedLargeObjSpecHash, err := computeManifestHash(updatedLargeObj) + if err != nil { + t.Errorf("failed to compute manifest hash: %s", err) + } updatedLargeObj.SetAnnotations(map[string]string{ManifestHashAnnotation: updatedLargeObjSpecHash}) dynamicClientLargeObjFound := fake.NewSimpleDynamicClient(runtime.NewScheme()) diff --git a/pkg/controllers/work/patch_util.go b/pkg/controllers/work/patch_util.go index c810bca04..9915a252c 100644 --- a/pkg/controllers/work/patch_util.go +++ b/pkg/controllers/work/patch_util.go @@ -107,19 +107,12 @@ func setModifiedConfigurationAnnotation(obj runtime.Object) error { } // set the last applied annotation back annotations[LastAppliedConfigAnnotation] = string(modified) - if err = metadataAccessor.SetAnnotations(obj, annotations); err != nil { - return err - } - annotations, err = metadataAccessor.Annotations(obj) - if err != nil { - return err - } if err := validation.ValidateAnnotationsSize(annotations); err != nil { - klog.InfoS(fmt.Sprintf("setting last applied config annotation to empty, %s", err)) + klog.V(2).InfoS(fmt.Sprintf("setting last applied config annotation to empty, %s", err)) annotations[LastAppliedConfigAnnotation] = "" - if err = metadataAccessor.SetAnnotations(obj, annotations); err != nil { - return err - } + } + if err = metadataAccessor.SetAnnotations(obj, annotations); err != nil { + return err } return nil } From 32a51c830a5844027ddc330eee6279344e06854d Mon Sep 17 00:00:00 2001 From: Arvind Thirumurugan Date: Wed, 31 May 2023 13:59:37 -0700 Subject: [PATCH 37/42] fix comment --- pkg/controllers/work/patch_util.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkg/controllers/work/patch_util.go b/pkg/controllers/work/patch_util.go index 9915a252c..d3904d39a 100644 --- a/pkg/controllers/work/patch_util.go +++ b/pkg/controllers/work/patch_util.go @@ -79,7 +79,8 @@ func threeWayMergePatch(currentObj, manifestObj client.Object) (client.Patch, er // setModifiedConfigurationAnnotation serializes the object into byte stream. // If `updateAnnotation` is true, it embeds the result as an annotation in the -// modified configuration. +// modified configuration. If the annotation size is greater than 256 kB it sets +// to empty string. func setModifiedConfigurationAnnotation(obj runtime.Object) error { var modified []byte annotations, err := metadataAccessor.Annotations(obj) From cf063fd408a0d8e726a41c4cfaa436e3166c3d85 Mon Sep 17 00:00:00 2001 From: Arvind Thirumurugan Date: Wed, 31 May 2023 14:08:42 -0700 Subject: [PATCH 38/42] fix comment --- pkg/controllers/work/patch_util.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/controllers/work/patch_util.go b/pkg/controllers/work/patch_util.go index d3904d39a..4c22bbb75 100644 --- a/pkg/controllers/work/patch_util.go +++ b/pkg/controllers/work/patch_util.go @@ -79,7 +79,7 @@ func threeWayMergePatch(currentObj, manifestObj client.Object) (client.Patch, er // setModifiedConfigurationAnnotation serializes the object into byte stream. // If `updateAnnotation` is true, it embeds the result as an annotation in the -// modified configuration. If the annotation size is greater than 256 kB it sets +// modified configuration. If annotations size is greater than 256 kB it sets // to empty string. func setModifiedConfigurationAnnotation(obj runtime.Object) error { var modified []byte From d19b99dd6696cb61982560ebdb4ddb237cb8b000 Mon Sep 17 00:00:00 2001 From: Arvind Thirumurugan Date: Wed, 7 Jun 2023 09:45:10 -0700 Subject: [PATCH 39/42] address comments --- pkg/controllers/work/apply_controller.go | 2 +- pkg/controllers/work/patch_util.go | 5 +---- pkg/utils/test_util.go | 5 +---- 3 files changed, 3 insertions(+), 9 deletions(-) diff --git a/pkg/controllers/work/apply_controller.go b/pkg/controllers/work/apply_controller.go index b7244d28d..58552a348 100644 --- a/pkg/controllers/work/apply_controller.go +++ b/pkg/controllers/work/apply_controller.go @@ -391,7 +391,7 @@ func (r *ApplyWorkReconciler) applyUnstructured(ctx context.Context, gvr schema. // We only try to update the object if its spec hash value has changed. if manifestObj.GetAnnotations()[ManifestHashAnnotation] != curObj.GetAnnotations()[ManifestHashAnnotation] { // we need to merge the owner reference between the current and the manifest since we support one manifest - // belong to multiple work so it contains the union of all the appliedWork. + // belong to multiple work, so it contains the union of all the appliedWork. manifestObj.SetOwnerReferences(mergeOwnerReference(curObj.GetOwnerReferences(), manifestObj.GetOwnerReferences())) // record the raw manifest with the hash annotation in the manifest. if err := setModifiedConfigurationAnnotation(manifestObj); err != nil { diff --git a/pkg/controllers/work/patch_util.go b/pkg/controllers/work/patch_util.go index 4c22bbb75..b30d552e4 100644 --- a/pkg/controllers/work/patch_util.go +++ b/pkg/controllers/work/patch_util.go @@ -112,10 +112,7 @@ func setModifiedConfigurationAnnotation(obj runtime.Object) error { klog.V(2).InfoS(fmt.Sprintf("setting last applied config annotation to empty, %s", err)) annotations[LastAppliedConfigAnnotation] = "" } - if err = metadataAccessor.SetAnnotations(obj, annotations); err != nil { - return err - } - return nil + return metadataAccessor.SetAnnotations(obj, annotations) } // getOriginalConfiguration gets original configuration of the object diff --git a/pkg/utils/test_util.go b/pkg/utils/test_util.go index 23156a70d..4adb45093 100644 --- a/pkg/utils/test_util.go +++ b/pkg/utils/test_util.go @@ -53,10 +53,7 @@ func GetObjectFromRawExtension(rawByte []byte, obj runtime.Object) error { if err != nil { return err } - if err = runtime.DecodeInto(genericCodec, json, obj); err != nil { - return err - } - return nil + return runtime.DecodeInto(genericCodec, json, obj) } // GetObjectFromManifest returns a runtime object decoded from the file. From 5f8ddf01b1c641971f63e575b4c66238377c9e7e Mon Sep 17 00:00:00 2001 From: Arvind Thirumurugan Date: Thu, 8 Jun 2023 11:56:16 -0700 Subject: [PATCH 40/42] address comments --- pkg/controllers/work/apply_controller.go | 36 +++--- .../work/apply_controller_helper_test.go | 4 +- .../work/apply_controller_integration_test.go | 4 +- pkg/controllers/work/apply_controller_test.go | 111 ++++++++++++------ pkg/controllers/work/manager.go | 4 +- pkg/controllers/work/patch_util.go | 20 ++-- pkg/controllers/work/patch_util_test.go | 45 +++++++ test/e2e/work_api_e2e_test.go | 4 +- test/e2e/work_load_test.go | 23 ++-- 9 files changed, 162 insertions(+), 89 deletions(-) create mode 100644 pkg/controllers/work/patch_util_test.go diff --git a/pkg/controllers/work/apply_controller.go b/pkg/controllers/work/apply_controller.go index 58552a348..f6c590901 100644 --- a/pkg/controllers/work/apply_controller.go +++ b/pkg/controllers/work/apply_controller.go @@ -86,11 +86,11 @@ const ( // ManifestCreatedAction indicates that we created the manifest for the first time. ManifestCreatedAction applyAction = "ManifestCreated" - // ManifestUpdatedAction indicates that we updated the manifest. - ManifestUpdatedAction applyAction = "ManifestUpdated" + // ManifestThreeWayMergePatchAction indicates that we updated the manifest using three-way merge patch. + ManifestThreeWayMergePatchAction applyAction = "ManifestThreeWayMergePatched" - // ManifestAppliedAction indicates that we applied the manifest. - ManifestAppliedAction applyAction = "ManifestApplied" + // ManifestServerSideAppliedAction indicates that we updated the manifest using server side apply. + ManifestServerSideAppliedAction applyAction = "ManifestServerSideApplied" // ManifestNoChangeAction indicates that we don't need to change the manifest. ManifestNoChangeAction applyAction = "ManifestNoChange" @@ -338,7 +338,7 @@ func (r *ApplyWorkReconciler) decodeManifest(manifest workv1alpha1.Manifest) (sc // applyUnstructured determines if an unstructured manifest object can & should be applied. It first validates // the size of the last modified annotation of the manifest, it removes the annotation if the size crosses the annotation size threshold -// and then creates/updates the resource on the cluster using server side apply instead of three way merge patch. +// and then creates/updates the resource on the cluster using server side apply instead of three-way merge patch. func (r *ApplyWorkReconciler) applyUnstructured(ctx context.Context, gvr schema.GroupVersionResource, manifestObj *unstructured.Unstructured) (*unstructured.Unstructured, applyAction, error) { manifestRef := klog.ObjectRef{ @@ -354,7 +354,7 @@ func (r *ApplyWorkReconciler) applyUnstructured(ctx context.Context, gvr schema. // extract the common create procedure to reuse var createFunc = func() (*unstructured.Unstructured, applyAction, error) { // record the raw manifest with the hash annotation in the manifest - if err := setModifiedConfigurationAnnotation(manifestObj); err != nil { + if _, err := setModifiedConfigurationAnnotation(manifestObj); err != nil { return nil, ManifestNoChangeAction, err } actual, err := r.spokeDynamicClient.Resource(gvr).Namespace(manifestObj.GetNamespace()).Create( @@ -389,16 +389,16 @@ func (r *ApplyWorkReconciler) applyUnstructured(ctx context.Context, gvr schema. } // We only try to update the object if its spec hash value has changed. - if manifestObj.GetAnnotations()[ManifestHashAnnotation] != curObj.GetAnnotations()[ManifestHashAnnotation] { + if manifestObj.GetAnnotations()[manifestHashAnnotation] != curObj.GetAnnotations()[manifestHashAnnotation] { // we need to merge the owner reference between the current and the manifest since we support one manifest // belong to multiple work, so it contains the union of all the appliedWork. manifestObj.SetOwnerReferences(mergeOwnerReference(curObj.GetOwnerReferences(), manifestObj.GetOwnerReferences())) // record the raw manifest with the hash annotation in the manifest. - if err := setModifiedConfigurationAnnotation(manifestObj); err != nil { + isModifiedConfigAnnotationNotEmpty, err := setModifiedConfigurationAnnotation(manifestObj) + if err != nil { return nil, ManifestNoChangeAction, err } - annotations := manifestObj.GetAnnotations() - if annotations[LastAppliedConfigAnnotation] == "" { + if !isModifiedConfigAnnotationNotEmpty { klog.V(2).InfoS("using server side apply for manifest", "gvr", gvr, "manifest", manifestRef) return r.applyObject(ctx, gvr, manifestObj) } @@ -426,10 +426,10 @@ func (r *ApplyWorkReconciler) applyObject(ctx context.Context, gvr schema.GroupV return nil, ManifestNoChangeAction, err } klog.V(2).InfoS("manifest apply succeeded", "gvr", gvr, "manifest", manifestRef) - return manifestObj, ManifestAppliedAction, nil + return manifestObj, ManifestServerSideAppliedAction, nil } -// patchCurrentResource uses three way merge to patch the current resource with the new manifest we get from the work. +// patchCurrentResource uses three-way merge to patch the current resource with the new manifest we get from the work. func (r *ApplyWorkReconciler) patchCurrentResource(ctx context.Context, gvr schema.GroupVersionResource, manifestObj, curObj *unstructured.Unstructured) (*unstructured.Unstructured, applyAction, error) { manifestRef := klog.ObjectRef{ @@ -437,8 +437,8 @@ func (r *ApplyWorkReconciler) patchCurrentResource(ctx context.Context, gvr sche Namespace: manifestObj.GetNamespace(), } klog.V(2).InfoS("manifest is modified", "gvr", gvr, "manifest", manifestRef, - "new hash", manifestObj.GetAnnotations()[ManifestHashAnnotation], - "existing hash", curObj.GetAnnotations()[ManifestHashAnnotation]) + "new hash", manifestObj.GetAnnotations()[manifestHashAnnotation], + "existing hash", curObj.GetAnnotations()[manifestHashAnnotation]) // create the three-way merge patch between the current, original and manifest similar to how kubectl apply does patch, err := threeWayMergePatch(curObj, manifestObj) if err != nil { @@ -458,7 +458,7 @@ func (r *ApplyWorkReconciler) patchCurrentResource(ctx context.Context, gvr sche return nil, ManifestNoChangeAction, patchErr } klog.V(2).InfoS("manifest patch succeeded", "gvr", gvr, "manifest", manifestRef) - return manifestObj, ManifestUpdatedAction, nil + return manifestObj, ManifestThreeWayMergePatchAction, nil } // generateWorkCondition constructs the work condition based on the apply result @@ -547,8 +547,8 @@ func computeManifestHash(obj *unstructured.Unstructured) (string, error) { // remove the last applied Annotation to avoid unlimited recursion annotation := manifest.GetAnnotations() if annotation != nil { - delete(annotation, ManifestHashAnnotation) - delete(annotation, LastAppliedConfigAnnotation) + delete(annotation, manifestHashAnnotation) + delete(annotation, lastAppliedConfigAnnotation) if len(annotation) == 0 { manifest.SetAnnotations(nil) } else { @@ -620,7 +620,7 @@ func setManifestHashAnnotation(manifestObj *unstructured.Unstructured) error { if annotation == nil { annotation = map[string]string{} } - annotation[ManifestHashAnnotation] = manifestHash + annotation[manifestHashAnnotation] = manifestHash manifestObj.SetAnnotations(annotation) return nil } diff --git a/pkg/controllers/work/apply_controller_helper_test.go b/pkg/controllers/work/apply_controller_helper_test.go index 4185e2da9..e0cd3f935 100644 --- a/pkg/controllers/work/apply_controller_helper_test.go +++ b/pkg/controllers/work/apply_controller_helper_test.go @@ -51,8 +51,8 @@ func verifyAppliedConfigMap(cm *corev1.ConfigMap) *corev1.ConfigMap { for key := range cm.Annotations { Expect(appliedCM.Annotations[key]).Should(Equal(cm.Annotations[key])) } - Expect(appliedCM.Annotations[ManifestHashAnnotation]).ShouldNot(BeEmpty()) - Expect(appliedCM.Annotations[LastAppliedConfigAnnotation]).ShouldNot(BeEmpty()) + Expect(appliedCM.Annotations[manifestHashAnnotation]).ShouldNot(BeEmpty()) + Expect(appliedCM.Annotations[lastAppliedConfigAnnotation]).ShouldNot(BeEmpty()) By("Check the config map data") Expect(cmp.Diff(appliedCM.Data, cm.Data)).Should(BeEmpty()) diff --git a/pkg/controllers/work/apply_controller_integration_test.go b/pkg/controllers/work/apply_controller_integration_test.go index c21db5564..195d10f28 100644 --- a/pkg/controllers/work/apply_controller_integration_test.go +++ b/pkg/controllers/work/apply_controller_integration_test.go @@ -509,13 +509,13 @@ var _ = Describe("Work Controller", func() { appliedCM := verifyAppliedConfigMap(cm) By("Delete the last applied annotation from the current resource") - delete(appliedCM.Annotations, LastAppliedConfigAnnotation) + delete(appliedCM.Annotations, lastAppliedConfigAnnotation) Expect(k8sClient.Update(ctx, appliedCM)).Should(Succeed()) By("Get the last applied config map and verify it does not have the last applied annotation") var modifiedCM corev1.ConfigMap Expect(k8sClient.Get(ctx, types.NamespacedName{Name: cm.GetName(), Namespace: cm.GetNamespace()}, &modifiedCM)).Should(Succeed()) - Expect(modifiedCM.Annotations[LastAppliedConfigAnnotation]).Should(BeEmpty()) + Expect(modifiedCM.Annotations[lastAppliedConfigAnnotation]).Should(BeEmpty()) By("Modify the manifest") // modify one data diff --git a/pkg/controllers/work/apply_controller_test.go b/pkg/controllers/work/apply_controller_test.go index 6c8902c56..f9d70132b 100644 --- a/pkg/controllers/work/apply_controller_test.go +++ b/pkg/controllers/work/apply_controller_test.go @@ -155,7 +155,7 @@ func TestSetManifestHashAnnotation(t *testing.T) { "manifest's has hashAnnotation, same": { manifestObj: func() *appsv1.Deployment { alterObj := manifestObj.DeepCopy() - alterObj.Annotations[ManifestHashAnnotation] = utilrand.String(10) + alterObj.Annotations[manifestHashAnnotation] = utilrand.String(10) return alterObj }(), isSame: true, @@ -222,7 +222,7 @@ func TestSetManifestHashAnnotation(t *testing.T) { if err != nil { t.Error("failed to marshall the manifest", err.Error()) } - manifestHash := uManifestObj.GetAnnotations()[ManifestHashAnnotation] + manifestHash := uManifestObj.GetAnnotations()[manifestHashAnnotation] if tt.isSame != (manifestHash == preHash) { t.Errorf("testcase %s failed: manifestObj = (%+v)", name, tt.manifestObj) } @@ -284,18 +284,27 @@ func TestIsManifestManagedByWork(t *testing.T) { } func TestApplyUnstructured(t *testing.T) { - correctObj, correctDynamicClient, correctSpecHash := createObjAndDynamicClient(testManifest.Raw) + correctObj, correctDynamicClient, correctSpecHash, err := createObjAndDynamicClient(testManifest.Raw) + if err != nil { + t.Errorf("failed to create obj and dynamic client: %s", err) + } testDeploymentGenerated := testDeployment.DeepCopy() testDeploymentGenerated.Name = "" testDeploymentGenerated.GenerateName = utilrand.String(10) rawGenerated, _ := json.Marshal(testDeploymentGenerated) - generatedSpecObj, generatedSpecDynamicClient, generatedSpecHash := createObjAndDynamicClient(rawGenerated) + generatedSpecObj, generatedSpecDynamicClient, generatedSpecHash, err := createObjAndDynamicClient(rawGenerated) + if err != nil { + t.Errorf("failed to create obj and dynamic client: %s", err) + } testDeploymentDiffSpec := testDeployment.DeepCopy() testDeploymentDiffSpec.Spec.MinReadySeconds = 0 rawDiffSpec, _ := json.Marshal(testDeploymentDiffSpec) - diffSpecObj, diffSpecDynamicClient, diffSpecHash := createObjAndDynamicClient(rawDiffSpec) + diffSpecObj, diffSpecDynamicClient, diffSpecHash, err := createObjAndDynamicClient(rawDiffSpec) + if err != nil { + t.Errorf("failed to create obj and dynamic client: %s", err) + } patchFailClient := fake.NewSimpleDynamicClient(runtime.NewScheme()) patchFailClient.PrependReactor("patch", "*", func(action testingclient.Action) (handled bool, ret runtime.Object, err error) { @@ -341,36 +350,26 @@ func TestApplyUnstructured(t *testing.T) { }, } rawTestDeploymentWithDifferentOwner, _ := json.Marshal(testDeploymentWithDifferentOwner) - _, diffOwnerDynamicClient, _ := createObjAndDynamicClient(rawTestDeploymentWithDifferentOwner) + _, diffOwnerDynamicClient, _, err := createObjAndDynamicClient(rawTestDeploymentWithDifferentOwner) + if err != nil { + t.Errorf("failed to create obj and dynamic client: %s", err) + } specHashFailObj := correctObj.DeepCopy() specHashFailObj.Object["test"] = math.Inf(1) - var largeSecret v1.Secret - if err := utils.GetObjectFromManifest("../../../test/integration/manifests/resources/test-large-secret.yaml", &largeSecret); err != nil { - t.Errorf("failed to get object from manifest: %s", err) - } - largeSecret.ObjectMeta = metav1.ObjectMeta{ - OwnerReferences: []metav1.OwnerReference{ - ownerRef, - }, - } - rawSecret, err := json.Marshal(largeSecret) + largeObj, err := createLargeObj() if err != nil { - t.Errorf("failed to marshal secret: %s", err) - } - var largeObj unstructured.Unstructured - if err := largeObj.UnmarshalJSON(rawSecret); err != nil { - t.Errorf("failed to unmarshal JSON: %s", err) + t.Errorf("failed to create large obj: %s", err) } updatedLargeObj := largeObj.DeepCopy() - largeObjSpecHash, err := computeManifestHash(&largeObj) + largeObjSpecHash, err := computeManifestHash(largeObj) if err != nil { t.Errorf("failed to compute manifest hash: %s", err) } - largeObj.SetAnnotations(map[string]string{ManifestHashAnnotation: largeObjSpecHash}) + // Not mocking create for dynamicClientLargeObjNotFound because by default it somehow deep copies the object as the test runs and returns it. dynamicClientLargeObjNotFound := fake.NewSimpleDynamicClient(runtime.NewScheme()) dynamicClientLargeObjNotFound.PrependReactor("get", "*", func(action testingclient.Action) (handled bool, ret runtime.Object, err error) { return true, @@ -381,22 +380,23 @@ func TestApplyUnstructured(t *testing.T) { Reason: metav1.StatusReasonNotFound, }} }) - dynamicClientLargeObjNotFound.PrependReactor("create", "*", func(action testingclient.Action) (handled bool, ret runtime.Object, err error) { - return true, largeObj.DeepCopy(), nil - }) updatedLargeObj.SetLabels(map[string]string{"test-label-key": "test-label"}) updatedLargeObjSpecHash, err := computeManifestHash(updatedLargeObj) if err != nil { t.Errorf("failed to compute manifest hash: %s", err) } - updatedLargeObj.SetAnnotations(map[string]string{ManifestHashAnnotation: updatedLargeObjSpecHash}) + // Need to mock patch because apply return error if not. dynamicClientLargeObjFound := fake.NewSimpleDynamicClient(runtime.NewScheme()) + // Need to set annotation to ensure on comparison between curObj and manifestObj is different. + largeObj.SetAnnotations(map[string]string{manifestHashAnnotation: largeObjSpecHash}) dynamicClientLargeObjFound.PrependReactor("get", "*", func(action testingclient.Action) (handled bool, ret runtime.Object, err error) { return true, largeObj.DeepCopy(), nil }) dynamicClientLargeObjFound.PrependReactor("patch", "*", func(action testingclient.Action) (handled bool, ret runtime.Object, err error) { + // updatedLargeObj.DeepCopy() is executed when the test runs meaning the deep copy is computed as the test runs and since we pass updatedLargeObj as reference + // in the test case input all changes made by the controller will be included when DeepCopy is computed. return true, updatedLargeObj.DeepCopy(), nil }) @@ -506,7 +506,7 @@ func TestApplyUnstructured(t *testing.T) { }, workObj: correctObj, resultSpecHash: diffSpecHash, - resultAction: ManifestUpdatedAction, + resultAction: ManifestThreeWayMergePatchAction, resultErr: nil, }, "test create succeeds for large manifest when object does not exist": { @@ -515,7 +515,7 @@ func TestApplyUnstructured(t *testing.T) { restMapper: testMapper{}, recorder: utils.NewFakeRecorder(1), }, - workObj: &largeObj, + workObj: largeObj, resultSpecHash: largeObjSpecHash, resultAction: ManifestCreatedAction, resultErr: nil, @@ -528,7 +528,7 @@ func TestApplyUnstructured(t *testing.T) { }, workObj: updatedLargeObj, resultSpecHash: updatedLargeObjSpecHash, - resultAction: ManifestAppliedAction, + resultAction: ManifestServerSideAppliedAction, resultErr: nil, }, "test create fails for large manifest when object does not exist": { @@ -537,7 +537,7 @@ func TestApplyUnstructured(t *testing.T) { restMapper: testMapper{}, recorder: utils.NewFakeRecorder(1), }, - workObj: &largeObj, + workObj: largeObj, resultAction: ManifestNoChangeAction, resultErr: errors.New("create error"), }, @@ -563,7 +563,7 @@ func TestApplyUnstructured(t *testing.T) { assert.Truef(t, err == nil, "err is not nil for Testcase %s", testName) assert.Truef(t, applyResult != nil, "applyResult is not nil for Testcase %s", testName) // Not checking last applied config because it has live fields. - assert.Equalf(t, testCase.resultSpecHash, applyResult.GetAnnotations()[ManifestHashAnnotation], + assert.Equalf(t, testCase.resultSpecHash, applyResult.GetAnnotations()[manifestHashAnnotation], "specHash not matching for Testcase %s", testName) assert.Equalf(t, ownerRef, applyResult.GetOwnerReferences()[0], "ownerRef not matching for Testcase %s", testName) } @@ -758,7 +758,10 @@ func TestReconcile(t *testing.T) { happyManifest := workv1alpha1.Manifest{RawExtension: runtime.RawExtension{ Raw: rawHappyDeployment, }} - _, happyDynamicClient, _ := createObjAndDynamicClient(happyManifest.Raw) + _, happyDynamicClient, _, err := createObjAndDynamicClient(happyManifest.Raw) + if err != nil { + t.Errorf("failed to create obj and dynamic client: %s", err) + } getMockAppliedWork := func(ctx context.Context, key client.ObjectKey, obj client.Object) error { if key.Name != workName { @@ -1011,12 +1014,21 @@ func TestReconcile(t *testing.T) { } } -func createObjAndDynamicClient(rawManifest []byte) (*unstructured.Unstructured, dynamic.Interface, string) { +func createObjAndDynamicClient(rawManifest []byte) (*unstructured.Unstructured, dynamic.Interface, string, error) { uObj := unstructured.Unstructured{} - _ = uObj.UnmarshalJSON(rawManifest) - validSpecHash, _ := computeManifestHash(&uObj) - uObj.SetAnnotations(map[string]string{ManifestHashAnnotation: validSpecHash}) - _ = setModifiedConfigurationAnnotation(&uObj) + err := uObj.UnmarshalJSON(rawManifest) + if err != nil { + return nil, nil, "", err + } + validSpecHash, err := computeManifestHash(&uObj) + if err != nil { + return nil, nil, "", err + } + uObj.SetAnnotations(map[string]string{manifestHashAnnotation: validSpecHash}) + _, err = setModifiedConfigurationAnnotation(&uObj) + if err != nil { + return nil, nil, "", err + } dynamicClient := fake.NewSimpleDynamicClient(runtime.NewScheme()) dynamicClient.PrependReactor("get", "*", func(action testingclient.Action) (handled bool, ret runtime.Object, err error) { return true, uObj.DeepCopy(), nil @@ -1024,5 +1036,26 @@ func createObjAndDynamicClient(rawManifest []byte) (*unstructured.Unstructured, dynamicClient.PrependReactor("patch", "*", func(action testingclient.Action) (handled bool, ret runtime.Object, err error) { return true, uObj.DeepCopy(), nil }) - return &uObj, dynamicClient, validSpecHash + return &uObj, dynamicClient, validSpecHash, nil +} + +func createLargeObj() (*unstructured.Unstructured, error) { + var largeSecret v1.Secret + if err := utils.GetObjectFromManifest("../../../test/integration/manifests/resources/test-large-secret.yaml", &largeSecret); err != nil { + return nil, err + } + largeSecret.ObjectMeta = metav1.ObjectMeta{ + OwnerReferences: []metav1.OwnerReference{ + ownerRef, + }, + } + rawSecret, err := json.Marshal(largeSecret) + if err != nil { + return nil, err + } + var largeObj unstructured.Unstructured + if err := largeObj.UnmarshalJSON(rawSecret); err != nil { + return nil, err + } + return &largeObj, nil } diff --git a/pkg/controllers/work/manager.go b/pkg/controllers/work/manager.go index 5bb03a3fb..067471bc7 100644 --- a/pkg/controllers/work/manager.go +++ b/pkg/controllers/work/manager.go @@ -32,9 +32,9 @@ import ( const ( workFinalizer = "fleet.azure.com/work-cleanup" - ManifestHashAnnotation = "fleet.azure.com/spec-hash" + manifestHashAnnotation = "fleet.azure.com/spec-hash" - LastAppliedConfigAnnotation = "fleet.azure.com/last-applied-configuration" + lastAppliedConfigAnnotation = "fleet.azure.com/last-applied-configuration" ConditionTypeApplied = "Applied" ConditionTypeAvailable = "Available" diff --git a/pkg/controllers/work/patch_util.go b/pkg/controllers/work/patch_util.go index b30d552e4..d4b71370c 100644 --- a/pkg/controllers/work/patch_util.go +++ b/pkg/controllers/work/patch_util.go @@ -80,19 +80,20 @@ func threeWayMergePatch(currentObj, manifestObj client.Object) (client.Patch, er // setModifiedConfigurationAnnotation serializes the object into byte stream. // If `updateAnnotation` is true, it embeds the result as an annotation in the // modified configuration. If annotations size is greater than 256 kB it sets -// to empty string. -func setModifiedConfigurationAnnotation(obj runtime.Object) error { +// to empty string. it returns true if the annotation is set returns false if +// the annotation is set to an empty string. +func setModifiedConfigurationAnnotation(obj runtime.Object) (bool, error) { var modified []byte annotations, err := metadataAccessor.Annotations(obj) if err != nil { - return fmt.Errorf("cannot access metadata.annotations: %w", err) + return false, fmt.Errorf("cannot access metadata.annotations: %w", err) } if annotations == nil { annotations = make(map[string]string) } // remove the annotation to avoid recursion - delete(annotations, LastAppliedConfigAnnotation) + delete(annotations, lastAppliedConfigAnnotation) // do not include an empty map if len(annotations) == 0 { _ = metadataAccessor.SetAnnotations(obj, nil) @@ -104,15 +105,16 @@ func setModifiedConfigurationAnnotation(obj runtime.Object) error { // the produced json format is more three way merge friendly modified, err = json.Marshal(obj) if err != nil { - return err + return false, err } // set the last applied annotation back - annotations[LastAppliedConfigAnnotation] = string(modified) + annotations[lastAppliedConfigAnnotation] = string(modified) if err := validation.ValidateAnnotationsSize(annotations); err != nil { klog.V(2).InfoS(fmt.Sprintf("setting last applied config annotation to empty, %s", err)) - annotations[LastAppliedConfigAnnotation] = "" + annotations[lastAppliedConfigAnnotation] = "" + return false, metadataAccessor.SetAnnotations(obj, annotations) } - return metadataAccessor.SetAnnotations(obj, annotations) + return true, metadataAccessor.SetAnnotations(obj, annotations) } // getOriginalConfiguration gets original configuration of the object @@ -128,7 +130,7 @@ func getOriginalConfiguration(obj runtime.Object) ([]byte, error) { klog.Warning("object does not have annotation", "obj", obj) return nil, nil } - original, ok := annots[LastAppliedConfigAnnotation] + original, ok := annots[lastAppliedConfigAnnotation] if !ok { klog.Warning("object does not have lastAppliedConfigAnnotation", "obj", obj) return nil, nil diff --git a/pkg/controllers/work/patch_util_test.go b/pkg/controllers/work/patch_util_test.go new file mode 100644 index 000000000..1528c2613 --- /dev/null +++ b/pkg/controllers/work/patch_util_test.go @@ -0,0 +1,45 @@ +package controllers + +import ( + "testing" + + "k8s.io/apimachinery/pkg/runtime" + + "github.com/stretchr/testify/assert" +) + +func TestSetModifiedConfigurationAnnotation(t *testing.T) { + smallObj, _, _, err := createObjAndDynamicClient(testManifest.Raw) + if err != nil { + t.Errorf("failed to create obj and dynamic client: %s", err) + } + largeObj, err := createLargeObj() + if err != nil { + t.Errorf("failed to create large obj: %s", err) + } + + tests := map[string]struct { + obj runtime.Object + wantBool bool + wantErr error + }{ + "last applied config annotation is set": { + obj: smallObj, + wantBool: true, + wantErr: nil, + }, + "last applied config annotation is set to an empty string": { + obj: largeObj, + wantBool: false, + wantErr: nil, + }, + } + + for testName, testCase := range tests { + t.Run(testName, func(t *testing.T) { + gotBool, gotErr := setModifiedConfigurationAnnotation(testCase.obj) + assert.Equalf(t, testCase.wantBool, gotBool, "got bool not matching for Testcase %s", testName) + assert.Equalf(t, testCase.wantErr, gotErr, "got error not matching for Testcase %s", testName) + }) + } +} diff --git a/test/e2e/work_api_e2e_test.go b/test/e2e/work_api_e2e_test.go index e8449df8c..e0677fa1c 100644 --- a/test/e2e/work_api_e2e_test.go +++ b/test/e2e/work_api_e2e_test.go @@ -305,8 +305,8 @@ var _ = Describe("Work API Controller test", func() { By(fmt.Sprintf("Verify that either works %s and %s condition reason should be updated", namespaceTypeOne, namespaceTypeTwo)) Expect(workOne.Status.ManifestConditions[0].Conditions[0].Reason == string(workcontroller.ManifestCreatedAction) || workTwo.Status.ManifestConditions[0].Conditions[0].Reason == string(workcontroller.ManifestCreatedAction)).Should(BeTrue()) - Expect(workOne.Status.ManifestConditions[0].Conditions[0].Reason == string(workcontroller.ManifestUpdatedAction) || - workTwo.Status.ManifestConditions[0].Conditions[0].Reason == string(workcontroller.ManifestUpdatedAction)).Should(BeTrue()) + Expect(workOne.Status.ManifestConditions[0].Conditions[0].Reason == string(workcontroller.ManifestThreeWayMergePatchAction) || + workTwo.Status.ManifestConditions[0].Conditions[0].Reason == string(workcontroller.ManifestThreeWayMergePatchAction)).Should(BeTrue()) By(fmt.Sprintf("AppliedWorkStatus for both works %s and %s should contain the meta for the resource %s", namespaceTypeOne, namespaceTypeTwo, manifestSecretName)) wantAppliedStatus := workapi.AppliedtWorkStatus{ diff --git a/test/e2e/work_load_test.go b/test/e2e/work_load_test.go index 319263b0e..0a355b064 100644 --- a/test/e2e/work_load_test.go +++ b/test/e2e/work_load_test.go @@ -19,7 +19,6 @@ import ( workapiv1alpha1 "sigs.k8s.io/work-api/pkg/apis/v1alpha1" "go.goms.io/fleet/apis/v1alpha1" - pkgwork "go.goms.io/fleet/pkg/controllers/work" pkgutils "go.goms.io/fleet/pkg/utils" "go.goms.io/fleet/test/e2e/utils" ) @@ -405,10 +404,7 @@ var _ = Describe("workload orchestration testing", func() { utils.CmpNamespace(ctx, *MemberCluster, &types.NamespacedName{Name: namespace.Name}, wantNamespace, resourceIgnoreOptions) // Ignoring Annotations here because fleet.azure.com/last-applied-configuration has live fields, checking to see if it's not empty instead. - gotSecret := utils.CmpSecret(ctx, *MemberCluster, &types.NamespacedName{Name: testSmallSecret.Name, Namespace: testSmallSecret.Namespace}, wantSecret, resourceIgnoreOptions) - Expect(gotSecret.Annotations[pkgwork.LastAppliedConfigAnnotation]).To(Not(BeEmpty())) - // Not checking spec hash equals some value because ObjectMeta.OwnerReferences has some live fields. - testSmallSecretSpecHash := gotSecret.Annotations[pkgwork.ManifestHashAnnotation] + gotSmallSecret := utils.CmpSecret(ctx, *MemberCluster, &types.NamespacedName{Name: testSmallSecret.Name, Namespace: testSmallSecret.Namespace}, wantSecret, resourceIgnoreOptions) By("update secret so that annotation limit crosses threshold of 256KB") var testLargeSecret corev1.Secret @@ -420,9 +416,9 @@ var _ = Describe("workload orchestration testing", func() { wantSecret.OwnerReferences = ownerReferences // Ignoring Annotations here because fleet.azure.com/last-applied-configuration has live fields, checking to see if it's not empty instead. - gotSecret = utils.CmpSecret(ctx, *MemberCluster, &types.NamespacedName{Name: testLargeSecret.Name, Namespace: testLargeSecret.Namespace}, wantSecret, resourceIgnoreOptions) - Expect(gotSecret.Annotations[pkgwork.LastAppliedConfigAnnotation]).To(BeEmpty()) - Expect(gotSecret.Annotations[pkgwork.ManifestHashAnnotation]).ToNot(Equal(testSmallSecretSpecHash)) + gotLargeSecret := utils.CmpSecret(ctx, *MemberCluster, &types.NamespacedName{Name: testLargeSecret.Name, Namespace: testLargeSecret.Namespace}, wantSecret, resourceIgnoreOptions) + diff := cmp.Diff(gotSmallSecret, gotLargeSecret, resourceIgnoreOptions...) + Expect(diff).To(Not(Equal(""))) By("update secret so that it's small again") // Using a new variable to prevent failure, leads to 409 if not. @@ -430,18 +426,15 @@ var _ = Describe("workload orchestration testing", func() { err = pkgutils.GetObjectFromManifest("./test/integration/manifests/resources/test-small-secret.yaml", &initialSmallSecret) Expect(err).Should(Succeed()) Eventually(func() error { - if err := HubCluster.KubeClient.Update(ctx, &initialSmallSecret); err != nil { - return err - } - return nil + return HubCluster.KubeClient.Update(ctx, &initialSmallSecret) }, utils.PollTimeout, utils.PollInterval).Should(Succeed(), "Failed to update secret to be small in %s cluster", HubCluster.ClusterName) wantSecret = &initialSmallSecret wantSecret.OwnerReferences = ownerReferences // Ignoring Annotations here because fleet.azure.com/last-applied-configuration has live fields, checking to see if it's not empty instead. - gotSecret = utils.CmpSecret(ctx, *MemberCluster, &types.NamespacedName{Name: initialSmallSecret.Name, Namespace: initialSmallSecret.Namespace}, wantSecret, resourceIgnoreOptions) - Expect(gotSecret.Annotations[pkgwork.LastAppliedConfigAnnotation]).ToNot(BeEmpty()) - Expect(gotSecret.Annotations[pkgwork.ManifestHashAnnotation]).To(Equal(testSmallSecretSpecHash)) + gotSmallSecret = utils.CmpSecret(ctx, *MemberCluster, &types.NamespacedName{Name: initialSmallSecret.Name, Namespace: initialSmallSecret.Namespace}, wantSecret, resourceIgnoreOptions) + diff = cmp.Diff(gotLargeSecret, gotSmallSecret, resourceIgnoreOptions...) + Expect(diff).To(Not(Equal(""))) By("delete namespaces") utils.DeleteNamespace(ctx, *HubCluster, namespace) From 1f28abd80ad330c885777bfc1aae88a72d827485 Mon Sep 17 00:00:00 2001 From: Arvind Thirumurugan Date: Thu, 8 Jun 2023 12:03:32 -0700 Subject: [PATCH 41/42] fix comment --- pkg/controllers/work/patch_util.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/controllers/work/patch_util.go b/pkg/controllers/work/patch_util.go index d4b71370c..cffdd4696 100644 --- a/pkg/controllers/work/patch_util.go +++ b/pkg/controllers/work/patch_util.go @@ -80,8 +80,8 @@ func threeWayMergePatch(currentObj, manifestObj client.Object) (client.Patch, er // setModifiedConfigurationAnnotation serializes the object into byte stream. // If `updateAnnotation` is true, it embeds the result as an annotation in the // modified configuration. If annotations size is greater than 256 kB it sets -// to empty string. it returns true if the annotation is set returns false if -// the annotation is set to an empty string. +// to empty string. It returns true if the annotation contains a value, returns +// false if the annotation is set to an empty string. func setModifiedConfigurationAnnotation(obj runtime.Object) (bool, error) { var modified []byte annotations, err := metadataAccessor.Annotations(obj) From eee4cd27c68c5b13dd03b9e9c4805b1a50120ee4 Mon Sep 17 00:00:00 2001 From: Arvind Thirumurugan Date: Thu, 8 Jun 2023 12:04:47 -0700 Subject: [PATCH 42/42] fix import order --- pkg/controllers/work/patch_util_test.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pkg/controllers/work/patch_util_test.go b/pkg/controllers/work/patch_util_test.go index 1528c2613..ec44c9a6b 100644 --- a/pkg/controllers/work/patch_util_test.go +++ b/pkg/controllers/work/patch_util_test.go @@ -3,9 +3,8 @@ package controllers import ( "testing" - "k8s.io/apimachinery/pkg/runtime" - "github.com/stretchr/testify/assert" + "k8s.io/apimachinery/pkg/runtime" ) func TestSetModifiedConfigurationAnnotation(t *testing.T) {