diff --git a/Src/Witsml/Data/WitsmlAttachment.cs b/Src/Witsml/Data/WitsmlAttachment.cs new file mode 100644 index 000000000..b2367b667 --- /dev/null +++ b/Src/Witsml/Data/WitsmlAttachment.cs @@ -0,0 +1,50 @@ +using System.Collections.Generic; +using System.Xml.Serialization; + +using Witsml.Data.Measures; +using Witsml.Extensions; + +namespace Witsml.Data +{ + public class WitsmlAttachment : WitsmlObjectOnWellbore + { + public override WitsmlAttachments AsItemInWitsmlList() + { + return new WitsmlAttachments() + { + Attachments = this.AsItemInList() + }; + } + + [XmlElement("objectReference")] + public WitsmlObjectReference ObjectReference { get; set; } + + [XmlElement("subObjectReference")] + public WitsmlObjectReference SubObjectReference { get; set; } + + [XmlElement("md")] + public WitsmlMeasuredDepthCoord Md { get; set; } + + [XmlElement("mdBit")] + public WitsmlMeasuredDepthCoord MdBit { get; set; } + + [XmlElement("param")] + public List Param { get; set; } + + [XmlElement("fileName")] + public string FileName { get; set; } + + [XmlElement("description")] + public string Description { get; set; } + + [XmlElement("fileType")] + public string FileType { get; set; } + + [XmlElement("content")] + public string Content { get; set; } + + [XmlElement("commonData")] + public WitsmlCommonData CommonData { get; set; } + + } +} diff --git a/Src/Witsml/Data/WitsmlAttachments.cs b/Src/Witsml/Data/WitsmlAttachments.cs new file mode 100644 index 000000000..4a31ab5ef --- /dev/null +++ b/Src/Witsml/Data/WitsmlAttachments.cs @@ -0,0 +1,25 @@ +using System.Collections.Generic; +using System.Linq; +using System.Xml.Serialization; + +namespace Witsml.Data +{ + [XmlRoot("attachments", Namespace = "http://www.witsml.org/schemas/1series")] + public class WitsmlAttachments : IWitsmlObjectList + { + [XmlAttribute("version")] + public string Version = "1.4.1.1"; + + [XmlElement("attachment")] + public List Attachments { get; set; } = new(); + + public string TypeName => "attachment"; + + [XmlIgnore] + public IEnumerable Objects + { + get => Attachments; + set => Attachments = value.Select(obj => (WitsmlAttachment)obj).ToList(); + } + } +} diff --git a/Src/WitsmlExplorer.Api/HttpHandlers/AttachmentHandler.cs b/Src/WitsmlExplorer.Api/HttpHandlers/AttachmentHandler.cs new file mode 100644 index 000000000..86b262bc3 --- /dev/null +++ b/Src/WitsmlExplorer.Api/HttpHandlers/AttachmentHandler.cs @@ -0,0 +1,26 @@ +using System.Collections.Generic; +using System.Threading.Tasks; + +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; + +using WitsmlExplorer.Api.Models; +using WitsmlExplorer.Api.Services; + +namespace WitsmlExplorer.Api.HttpHandlers +{ + public static class AttachmentHandler + { + [Produces(typeof(IEnumerable))] + public static async Task GetAttachments(string wellUid, string wellboreUid, IAttachmentService attachmentService) + { + return TypedResults.Ok(await attachmentService.GetAttachments(wellUid, wellboreUid)); + + } + [Produces(typeof(Attachment))] + public static async Task GetAttachment(string wellUid, string wellboreUid, string attachmentUid, IAttachmentService attachmentService) + { + return TypedResults.Ok(await attachmentService.GetAttachment(wellUid, wellboreUid, attachmentUid)); + } + } +} diff --git a/Src/WitsmlExplorer.Api/Models/Attachment.cs b/Src/WitsmlExplorer.Api/Models/Attachment.cs new file mode 100644 index 000000000..f8f9419c2 --- /dev/null +++ b/Src/WitsmlExplorer.Api/Models/Attachment.cs @@ -0,0 +1,30 @@ +using Witsml.Data; + +namespace WitsmlExplorer.Api.Models +{ + public class Attachment : ObjectOnWellbore + { + public string FileName { get; set; } + public string Description { get; set; } + public string FileType { get; set; } + public string Content { get; set; } + public CommonData CommonData { get; set; } + public override WitsmlAttachments ToWitsml() + { + return new WitsmlAttachment + { + UidWell = WellUid, + NameWell = WellName, + UidWellbore = WellboreUid, + NameWellbore = WellboreName, + Uid = Uid, + Name = Name, + FileName = FileName, + Description = Description, + FileType = FileType, + Content = Content, + CommonData = CommonData?.ToWitsml() + }.AsItemInWitsmlList(); + } + } +} diff --git a/Src/WitsmlExplorer.Api/Models/EntityType.cs b/Src/WitsmlExplorer.Api/Models/EntityType.cs index abc8ef85c..8128548cb 100644 --- a/Src/WitsmlExplorer.Api/Models/EntityType.cs +++ b/Src/WitsmlExplorer.Api/Models/EntityType.cs @@ -28,6 +28,7 @@ public enum EntityType Tubular, Trajectory, WbGeometry, + Attachment } public static class EntityTypeHelper @@ -62,6 +63,7 @@ public static WitsmlObjectOnWellbore ToObjectOnWellbore(EntityType type) EntityType.WbGeometry => new WitsmlWbGeometry(), EntityType.Well => null, EntityType.Wellbore => null, + EntityType.Attachment => new WitsmlAttachment(), _ => null, }; } @@ -92,6 +94,7 @@ public static IWitsmlObjectList ToObjectList(EntityType type) EntityType.WbGeometry => new WitsmlWbGeometrys(), EntityType.Well => null, EntityType.Wellbore => null, + EntityType.Attachment => new WitsmlAttachments(), _ => null, }; } @@ -113,6 +116,7 @@ public static Type GetApiTypeFromEntityType(EntityType type) EntityType.WbGeometry => typeof(WbGeometry), EntityType.Well => typeof(Well), EntityType.Wellbore => typeof(Wellbore), + EntityType.Attachment => typeof(Attachment), _ => null, }; } diff --git a/Src/WitsmlExplorer.Api/Query/AttachmentQueries.cs b/Src/WitsmlExplorer.Api/Query/AttachmentQueries.cs new file mode 100644 index 000000000..6c7a96148 --- /dev/null +++ b/Src/WitsmlExplorer.Api/Query/AttachmentQueries.cs @@ -0,0 +1,51 @@ +using Witsml.Data; +using Witsml.Extensions; + +namespace WitsmlExplorer.Api.Query +{ + public static class AttachmentQueries + { + public static WitsmlAttachments GetWitsmlAttachment(string wellUid, string wellboreUid, string attachmentUid = "") + { + return new WitsmlAttachments + { + Attachments = new WitsmlAttachment + { + Uid = attachmentUid, + UidWell = wellUid, + UidWellbore = wellboreUid, + NameWell = "", + NameWellbore = "", + Name = "", + FileName = "", + Description = "", + FileType = "", + Content = "", + CommonData = new WitsmlCommonData() + { + ItemState = "", + SourceName = "", + DTimLastChange = "", + DTimCreation = "", + ServiceCategory = "", + Comments = "", + DefaultDatum = "", + } + }.AsItemInList() + }; + } + + public static WitsmlAttachments QueryById(string wellUid, string wellboreUid, string attachmentUid) + { + return new WitsmlAttachments() + { + Attachments = new WitsmlAttachment + { + Uid = attachmentUid, + UidWell = wellUid, + UidWellbore = wellboreUid + }.AsItemInList() + }; + } + } +} diff --git a/Src/WitsmlExplorer.Api/Routes.cs b/Src/WitsmlExplorer.Api/Routes.cs index 6586d0a59..80c97b92b 100644 --- a/Src/WitsmlExplorer.Api/Routes.cs +++ b/Src/WitsmlExplorer.Api/Routes.cs @@ -57,6 +57,9 @@ public static void ConfigureApi(this WebApplication app, IConfiguration configur app.MapGet(routes[EntityType.BhaRun], BhaRunHandler.GetBhaRuns, useOAuth2); app.MapGet(routes[EntityType.BhaRun] + "/{bhaRunUid}", BhaRunHandler.GetBhaRun, useOAuth2); + app.MapGet(routes[EntityType.Attachment], AttachmentHandler.GetAttachments, useOAuth2); + app.MapGet(routes[EntityType.Attachment] + "/{attachmentUid}", AttachmentHandler.GetAttachment, useOAuth2); + app.MapGet("/wells/{wellUid}/wellbores/{wellboreUid}/changelogs", ChangeLogHandler.GetChangeLogs, useOAuth2); app.MapGet(routes[EntityType.FluidsReport], FluidsReportHandler.GetFluidsReports, useOAuth2); diff --git a/Src/WitsmlExplorer.Api/Services/AttachmentService.cs b/Src/WitsmlExplorer.Api/Services/AttachmentService.cs new file mode 100644 index 000000000..caee073e9 --- /dev/null +++ b/Src/WitsmlExplorer.Api/Services/AttachmentService.cs @@ -0,0 +1,63 @@ +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +using Witsml.Data; +using Witsml.ServiceReference; + +using WitsmlExplorer.Api.Models; +using WitsmlExplorer.Api.Query; + +namespace WitsmlExplorer.Api.Services +{ + public interface IAttachmentService + { + Task GetAttachment(string wellUid, string wellboreUid, string attachmentUid); + Task> GetAttachments(string wellUid, string wellboreUid); + } + + public class AttachmentService : WitsmlService, IAttachmentService + { + public AttachmentService(IWitsmlClientProvider witsmlClientProvider) : base(witsmlClientProvider) { } + + public async Task GetAttachment(string wellUid, string wellboreUid, string attachmentUid) + { + WitsmlAttachments query = AttachmentQueries.GetWitsmlAttachment(wellUid, wellboreUid, attachmentUid); + WitsmlAttachments result = await _witsmlClient.GetFromStoreAsync(query, new OptionsIn(ReturnElements.All)); + return WitsmlToAttachment(result.Attachments.FirstOrDefault()); + } + public async Task> GetAttachments(string wellUid, string wellboreUid) + { + WitsmlAttachments witsmlAttachments = AttachmentQueries.GetWitsmlAttachment(wellUid, wellboreUid); + WitsmlAttachments result = await _witsmlClient.GetFromStoreAsync(witsmlAttachments, new OptionsIn(ReturnElements.Requested)); + return result.Attachments.Select(WitsmlToAttachment).OrderBy(attachment => attachment.Name).ToList(); + } + + private static Attachment WitsmlToAttachment(WitsmlAttachment attachment) + { + return attachment == null ? null : new Attachment + { + Uid = attachment.Uid, + Name = attachment.Name, + WellUid = attachment.UidWell, + WellName = attachment.NameWell, + WellboreName = attachment.NameWellbore, + WellboreUid = attachment.UidWellbore, + FileName = attachment.FileName, + Description = attachment.Description, + FileType = attachment.FileType, + Content = attachment.Content, + CommonData = new CommonData() + { + ItemState = attachment.CommonData.ItemState, + SourceName = attachment.CommonData.SourceName, + DTimLastChange = attachment.CommonData.DTimLastChange, + DTimCreation = attachment.CommonData.DTimCreation, + ServiceCategory = attachment.CommonData.ServiceCategory, + Comments = attachment.CommonData.Comments, + DefaultDatum = attachment.CommonData.DefaultDatum, + } + }; + } + } +} diff --git a/Src/WitsmlExplorer.Api/Workers/Modify/ModifyUtils.cs b/Src/WitsmlExplorer.Api/Workers/Modify/ModifyUtils.cs index cfdff8622..b7bdfc769 100644 --- a/Src/WitsmlExplorer.Api/Workers/Modify/ModifyUtils.cs +++ b/Src/WitsmlExplorer.Api/Workers/Modify/ModifyUtils.cs @@ -214,6 +214,17 @@ public static void VerifyAllowedValues(string value, List allowedValues, nameof(WbGeometry.CommonData) } }, + { + EntityType.Attachment, new HashSet + { + nameof(Attachment.Name), + nameof(Attachment.FileName), + nameof(Attachment.Description), + nameof(Attachment.FileType), + nameof(Attachment.Content), + nameof(Attachment.CommonData) + } + }, }; public static void VerifyModificationProperties(ObjectOnWellbore obj, EntityType objectType, ILogger logger) diff --git a/Tests/WitsmlExplorer.Api.Tests/Models/EntityTypeTests.cs b/Tests/WitsmlExplorer.Api.Tests/Models/EntityTypeTests.cs index 78521d0e5..d327dcd21 100644 --- a/Tests/WitsmlExplorer.Api.Tests/Models/EntityTypeTests.cs +++ b/Tests/WitsmlExplorer.Api.Tests/Models/EntityTypeTests.cs @@ -26,6 +26,7 @@ public void EntityTypeToPluralLowercase_Get_CorrectResult() Assert.Equal("trajectories", strings[EntityType.Trajectory]); Assert.Equal("tubulars", strings[EntityType.Tubular]); Assert.Equal("wbgeometries", strings[EntityType.WbGeometry]); + Assert.Equal("attachments", strings[EntityType.Attachment]); } [Fact] @@ -40,6 +41,7 @@ public void EntityTypeToObjectOnWellbore_GetAllWellboreObjects_CorrectType() Assert.IsType(EntityTypeHelper.ToObjectOnWellbore(EntityType.Trajectory)); Assert.IsType(EntityTypeHelper.ToObjectOnWellbore(EntityType.Tubular)); Assert.IsType(EntityTypeHelper.ToObjectOnWellbore(EntityType.WbGeometry)); + Assert.IsType(EntityTypeHelper.ToObjectOnWellbore(EntityType.Attachment)); } [Fact] @@ -54,6 +56,7 @@ public void EntityTypeToObjectList_GetAllWellboreObjectLists_CorrectType() Assert.IsType(EntityTypeHelper.ToObjectList(EntityType.Trajectory)); Assert.IsType(EntityTypeHelper.ToObjectList(EntityType.Tubular)); Assert.IsType(EntityTypeHelper.ToObjectList(EntityType.WbGeometry)); + Assert.IsType(EntityTypeHelper.ToObjectList(EntityType.Attachment)); } } } diff --git a/Tests/WitsmlExplorer.IntegrationTests/Resources/attachment.xml b/Tests/WitsmlExplorer.IntegrationTests/Resources/attachment.xml new file mode 100644 index 000000000..372179b93 --- /dev/null +++ b/Tests/WitsmlExplorer.IntegrationTests/Resources/attachment.xml @@ -0,0 +1,18 @@ + + + my well + my wellbore + 1 + Rig 1 + subObjRef + 123 + 456 + fig1-Pacific-Santa-Ana.jpg + Rig 1 + image/jpeg + /9j/4AAQSkZJRgABAQACWAJYAAD/4QAC/9sAQwADAgICAgIDAgICAwMDAwQGBAQEBAQIBgYFBgkICgoJCAkJCgwPDAoLDgsJCQ0RDQ4PEBAREAoMEhMSEBMPEBAQ/8IACwgGAAeAAQERAP/EAB4AAQEAAgIDAQEAAAAAAAAAAAAJBwgEBgIDBQoB/9oACAEBAAAAAKpgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfGx71Xj/a753H3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdW061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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//8QANhAAAQQCAgEDAwQBAgUEAwAABAIDBQYBBwgwEhEUcAAgIxMVIUAWIiQQMTIzUBclNtA1N0H/2gAIAQEAAQwB/wDskEuYiQMZ99KCD/Rm2dYgevu79BN5c5A6ba8sKv8AG/TfIfTDvr430DH0LvHURf8A2thQuPoC7U6U/wDx1qiSfptxDqcLbWlafmWds9eq4uTbDNhxzNs5ga2hMqYgBzZ16ycydjSWVIgI6NiGpvcm0rFnP7teZZxJJhZavMsp59X2YznGfXGfqLuVthF4ciLNKB5gOUO4oLOEuWNMm1WObLGcoZuNPWj6qG8tYXbKGoa1DIJxnGf5x8wX/cdB1syr/I5tv3d+5hXOe/UCpYTcCJMTkzYTFSE5KlHkdmM5x/OPqi732XQFIbirA6SHrvl5TLFloC5jZgDQjgpEZBseWySP8t2y51mjxS5i0SzAI20+W9lsSnomgoXDRxBJBj6ySn3Hnv6OvtuXnWhWHa3LrwNqjkvTNifoxcotMJN/LO6ORdc1i25ERf6crYbnerPf5hc3aZRwt/8AqYUpCsKTnOM6Z5UTVUWxX7849KREJORFkjGJmCkGTQvlXOcJx65z6Y37yfTFZJpmuC0rLeeeJdW+Q6txz+vqTc9o1PKfqxzvuouh3+t7GgGrDWzcOtfKec4xj1zn65H8j/c+5oFAO/F/a1rsqxawsLU7Av8A+nXWw4DZdbYscA9/p+Uc5wnHrnPpjkfyP9z7mgUA78Xahp1z/obUr6yKSn/qHdx9ZxnGfTOPTt1NtOb1TZW5mMVl0Sq2iGucAHZIErD4fyfnOMY9c5+uR/I/3PuaBQDvxdVap1ouBfsqxBGSLtO4Z3OUSkm3TAkM3XOImqIbxXKtHzTsVqHWEJ6fttEhmlNwEEz/ANmFAR9Kh4lePRcWJn6kKNTJVHhJVSJIxN8btNziFJcpzAa7Pwnh3kOO1C2EjOXPj1tSkYWQfXVmiZxlOfTOPTPTxy3Q9rWxphpglWa824262l1peFo+Tc5wnHrnPpjkfyP9z7mgUA78XTWqrYbhJtw1aiSDy9ZcPIkFpuU2UV74mGgYauAIjIGLGAF6dhcf9cbDQ6+bEIAkdo8db1rX9WQ/Q/d4bp4l7ezPROdczxXkf8mZzjGPXOf45H8j/c+5oFAO/F06b0LZdsFe8x6x8FQ9d1XXEOmHq8ahhPYttDqFNuIwtG6eKUdNpIsut2kBSB4BsWY9HyIro5P31ixSdSnwbHDvZbLolwjb7VI61RefxfJWc4xj1zn65H8j/c+5oFAO/F08fuPxmyTEWKxtOD1uNjAIYFiLixGhRO/euhIjaEa5KxTbQdklYqQg5EiJlg3BTPv4dbHVGTpWu5F//bfJOc4Tj1zn0xyP5H+59zQKAd+Lp4/cfjNkmIsdjacHrYAAcWEzHRwzY439Hkro1q+RC7fXBsJsCkqRnKVJzjP3QUydXZkKdjXctlVCyB3CsRlmAzj9H5HznGMeufrkfyP9z7mgUA78XTx+4/GbJNRY7G04PWwAAosJmPjhWxxv6fK7UOKrOYvsELhEX9/DC5qkatJ0sp71c+Rs5wnHrnPpjkfyP9z7mgUA78XTx+4/GbINRY7G04PWwAAosNmPjhWxxv6l1qcbeKvIVaWbwpiy18+qz59dlG/Ar7uNFqzVtuxH6jvgP8i5zjGPXOfrkfyP9z7nX9AO/F08fuPxmyTUWOxtOD1sAAKLCZjo4Zscb+tzNoiQJyNvwTHi390ca9GnjSI6s4dr8q1OwUdNMK8m/kPOcYx65z/HI/kf7j3NAoB34unj9x+M2SYix2NpwetgABRYTMfHCtjjf19/VJNy1VOR2GvMj7+M81+9aagc5V5L+LbTaYOmQZNhsJyBQtS8m6/sewlVySDTEE/085wnHrnPpjkfyP8Ac+5oFAO/F08fuPxmyTEWOxtOD1sAAOLCZjo4Zscb+w8y2Qy4O8nyRc4Vdct0zArxnGfu4VyXuKFLxmV/z8WWm0wdMgybDYTkChbm3PObam/1XcrFhmXnR3UPsOqbc468imri0xSrqUluc/o5zjGPXOfrkfyP9z7mgUA78XTx+4/GbJMRY7G04PWwAAosJmPjhWxxv7XJmMxGbnn8JT4p+7g+Z+S1gZz8WWm0wdMgybDYTkChbn3NObbnMuu5WLDf8GXnR3UPsOKbc468imrg0xSrqUluc785wnHrnPpjkfyP9z7mgUA78XTx+4/GbJMRY7G04PWwAA4sNmPjhWxxv7fMFhLe3cup/wCf3cI3F4tVkaxn/T8VWm0wdMgybDYTkChbn3PObam/1XMrFhvsZeeHdQ+w4ptzjryJauDTFKupaW5ztznGMeuc/XI/kf7n3NAoB34unj9x+M2SYix2NpwetgABRYTMfHCtjjf3OYbiVbbwhP8Az+7hH/8ALrF8VWm0wdMgybDYTkChbn3PObbm/wBV3KxYf7mXXR3UPsOKbc468imri0xSrqWluc685wnHrnPpjkfyP9z7mgUA78XTx+4/GbJMRY7G04PWwAAosNmPjhWxxv7vKGSxJbom04V64+7g8Ln31sNzj+Pii02mDpkITYbCcgULc+55zbU3l13KxYboCwZktjEfh33WpcXlNDjMbEy3mZ6c5xjHrnP8cj+R/ufc0CgHfi6eP3H4zZJqLHY2nB62AAFFhMx8cK2ON0uOIabU66vCEDFDGjtlhkNvs/0lKShOVKz6Y2POYst+sE6j/o+7hNHfpVGfk1Y/n4ntNpg6ZBk2GwnIFC3Nuec21N/qu5WLDdDDDxTyBx2luu8duOzNKZZudzFQ7O9Oc4xj1zn65H8j/c+5oFAO/F08fuPxmyTEWOxtOD1sAAKLCZj44VscbpW4hpCnHF4SnkZyMXZVkUWimZRE8fOQRWuS26xZnnCK2EaJJCMngEtkDf0dv2hqn62n51xzCF5znOfXOf5+7irDZidNxbykeKvia02mDpkITYbCcgULc+5pzbU5l13KxYfoYYeKeQOO0t13jtx2ZpTLNzuYqXJ7pznCceuc+mOR/I/3PuaBQDvxdPH7j8ZskxFjsbTg9bAADiwmY6OGbHG6VuIaQp11eEI5GcjF2VZFFopmUxP/AA4+8gi9clt1mzPOEVsI0SSEZPAJbIG/oc0rslI0RQBH/wDX9zTTj7qGGk+S6NCIrVOhIBCfTHxLabTB0yDJsNhOQKFufc85tqcy67lYsP0MMvFPIHHaU47x247M0plm53MVDs905zjGPXP1yP5H+59zQKAd+Lp4/cfjNkmosdjacHrYAAUWEzHxwrY43StxDSFOOLwlPIzkYuyrIotFMUiJ+zj5yCL1yW3WLM84RWwjRJIRk8AlsgbulpQGDiypiTfSyLsO4mX65SlrMzn1+7Q9Wzb9qwEWprzY+JbTaYOmQZNhsJyBQtz7nnNtzf6ruViw/Qww8U82OO0t13jtx2ZpTTNzuYqXZ7pznCceuc+mOR/I/wBz7mgUA78XTx+4/GbINRY7G04PWwAAosNmPjhWxxulbiGkKccXhCORnIxdlWRRaKZlMT93H3kEXrktusWZ5withGiSQjJ4BLZA3by/2vhLbWsIQvGc/fwqpy8Ymr0S1/p+JLTaYOmQhNhsJyBQtz7nnNtTeXXcrFhuhhh4p5A47S3XeO3HZmlss3O5iodnunOcYx65z9cj+R/ufc6/oB34unj9x+M2Saix2NpwetgABRYTMdHDNjjdK3ENIU44vCEcjORi7Ksii0UxSIno4+8gi9clt1izvOEVsMwWQEZOBfQ+P17x28BqmqrJbW27MyMgbLHkSciQt8r7hh3jCGhBm8uParpjVAoMPV0px+r8R2m0wdMgybDYTkChbn3PObbm/wBV3KxYfoYYeKeQOO0t13jtx1ZpTLNzuYqHZ3pznGMeuc/xyP5H+49zQKAd+Lp4/cfjNkmIsdjacHrYAAUWEzHxwrY43StxDSFOOLwhHIzkYuyrIotFMyiJ6eO/Hd68Ps3G4jLagB2GRGGxhmUNM9Wztm13VtdcnJx7ydvl6ndiWQqzWAjze+/ijrpVuv2LIYz6x3xHabTB0yDJsNhOQKFufc05tqcy67lYsP0MMPFPIHHaU67x247M0plm53MVLs905zhOPXOfTHI/kf7n3NAoB34unj9x+M2SYix2NpwetgABxYTMdHDNjjdK3ENIU66vCEcjORi7Ksii0UzKYnp478d37w+zcbiMtqAHHYEYbGGZQ011bN2bXdW15ycnHvJ3YWwrDsqxPWKwk+S/vEEJPKZBDZU6/prXI2saKDAJSnJvxFabTB0yDJsNhOQKFubc85tqb/VdysWG6GGXinkDjtKcd47cdmaUyzc7mKh2d6c5xjHrnP1yP5H+59zQKAd+Lp4/cfjNkmIsdjacHrYAAUWEzHxwrY43StxDSFOOLwlPIzkYuyrIotFMUiJ6eO/Hd68Ps3G4jLagBx2BGGxhWUNNdWzdm17VtdcnJt7yc2FsKxbKsT1hsJPkvo4jaj/cj87NnRf9t8RWm0wdMgybDYTkChbn3NObbnMuu5WLDdDDDxTzY47S3XeO3HZmlMs3O5ipdnunOcJx65z6Y5H8j/c+5oFAO/F08fuPxmyTEWOxtOD1sAAOLDZj44VscbpW4hpCnXV4QjkZyMXZVkUWimZTE9PHfju/eH2bjcRltQA47AjDYwzKGmurZuza7q2uuTk495O7C2FYdlWJ6xWEnyX0ae1bJ7VtrMMMlTYENER8BFCwsUMkcP4htNpg6ZBk2GwnIFC3Puec21N/quZWLDdDDLxTyBx2lOO8duOzNLZZudzFQ7PdOc4xj1zn65H8j/c+5oFAO/F08fuPxmyTEWOxtOD1sAAKLCZj44VscbpW4hpCnHF4QjkZyMXZVkUWimZRE9PHfju/eX2bjcRltV8cdgRhsYVlDTXVs7Ztd1bXXJyce8ndhbCsWyrE9YbCT5L6KlVJq7T4lbgBcvmao1lDasqrMBG+jpHxDabTB0yDJsNhOQKFufc85tub/VdysWH6GGHinkDjtLdd47cdWaUyzc7mKh2e6c5wnHrnPpjkfyP9z7mgUA78XTx+4/GbJMRY7G04PWwAAosNmPjhWxxulbiGkKccXhCORnIxdlWRRaKZlMT08d+O794fZuNxGW1ADjsCMNjDMoaa6tnbNrura65OTj3k7sLYVh2VYnrDYifJfRAwMtZ5caCgwXCzdHaUi9TweFvJbJnviG02mDpkITYbCcgULc+55zbU3l13KxYboYYeKeQOO0p13jtx2ZpbLNzuYqHZ7pznGMeuc/xyP5H+59zQKAd+Lp4/cfjNkmosdjacHrYAAUWEzHxwrY43StxDSFOOLwhHIzkYuyrIotFMyiJ6eO/HZ+8Ps3G4jLagBx2BGGxhmUNNdWztnV3VldcnJx7yd2FsKw7KsT1hsJPkvogYGWs8uNBQYLhZujtHRGqInBJOGy7B8Q2m0wdMgybDYTkChbm3PObam/1XcrFhuhhh4p5A47S3XeO3HZmlMs3O5iodnenOcYx65z9cj+R/ufc0CgHfi6eP3H4zZJiLHY2nB62AAFFhMx8cK2ON0rcQ0hTji8JTyM5GLsqyKLRTMoienjvx2fvD7NxuIy2oAcdgRhsYVlDTXVs7Ztd1bXXJyce8ndhbCsWyrE9YbCT5L6IGBlrPLjQUGE4Wbo3RsTqiJ90ThsuwfENptMHTIQmw2E5AoW59zTm2pzLruViw/Qww8U8gcdpbrvHbjszSmWbncxUuT3TnOE49c59Mcj+R/ufc0CgHfi6eP3H4zZJiLHY2nB62AAHFhMx0cM2ON0rcQ0hTrq8IRyM5GLsqyKLRTMpienjvx3fvD7NxuIy2oAcdgRhsYZlDTXVs3Ztd1ZXXJyce8ndhbCsOyrE9YrCT5L6IGBlrPLjQUGC4Wbo3R0RqiJwSThsuwfENptMHTIMmw2E5AoW59zzm2pzLruViw/Qwy8U8gcdpTjvHbjszSmWbncxUOz3TnOMY9c/XI/kf7n3NAoB34unj9x+M2Saix2NpwetgABRYTMfHCtjjdK3ENIU44vCU8jORi7Ksii0UxSInp478d37y+zcbiMtqAHHYEYbGFZQ011bO2bXdWV1ycnHvJ3YWwrFsqxPWGwk+S+iBgZazy4sFBguFm6O0bEanifck4bLsHxDabTB0yDJsNhOQKFufc85tub/VdysWH6GGHinmxx2luu8duOzNKaZudzFS7PdOc4Tj1zn0xyP5H+59zQKAd+Lp4/cfjNkGosdjacHrYAAUWGzHxwrY43StxDSFOOLwhHIzkYuyrIotFMymJ6eO/Hd+8Ps3G4jLagBx2BGGxhmUNNdWzdm13VldcnJx7yd2FsKw7KsT1hsJPkvogYGWs8uNBQYLhZujdHROqInBJOGy7B8Q2izwlNgyrFYDUjBbn3PObam8uu5WLDdDDDxTyBx2luu8duOzNLZZudzFQ7PdOc4xj1zn65H8j/c+51/QDvxdPH7j8Zsk1FjsbTg9bAACiwmY6OGbHG6VuIaQpxxeEI5GcjF2VZFFopikRPTx347v3l9m43EZbVfHHYEYbGGZQ011bN2bXdW11ycm3vJ3YWwrDsqxPWGwk+S+iBgZazy40FBguFm6O0dE6oiPck4bLsHxDKykfCRxMtKltjCb13VJbXnlNiuOjwHQww8U8gcdpbrvHbjqzSmWbncxUOzvTnOMY9c5/jkfyP8Ace5oFAO/F08fuPxmyTEWOxtOD1sAAKLCZj44VscbpW4hpCnHF4QjkZyMXZVkUWimZRE9PHfju9eH2bjcRltQA47AjDYwrKGmurZ2za7q2uuTk495O7C2FYdlWJ6w2EnyX0QMDLWeXGg4MFws3R2jonVETgonDZdg+IcqwnGVKz6Y5NbyXdpZyl1k3P7D0MMPFPIHHaU67x247M0plm53MVLs905zhOPXOfTHI/kf7n3NAoB34unj9x+M2SYix2NpwetgABxYTMdHDNjjdK3ENIU66vCEcjORi7Ksii0UzKYnp478d37w+zcbiMtqAHHYEYbGGZQ011bN2bXdW15ycnHvJ3YWwrDsqxPWKwk+S+iBgZazy40FBguFm6O0dE6nicEk4bLsHxFyr3TmtR2de1ozxlOhhl4p5A47SnHeO3HZmlMs3O5iodnenOcYx65z9cj+R/ufc0CgHfi6eP3H4zZJiLHY2nB62AAFFhMx8cK2ON0rcQ0hTji8JTyM5GLsqyKLRTFIienjvx3evD7NxuIy2oAcdgRhsYVlDTXVs3Zte1bXXJybe8nNhbCsWyrE9YbCT5L6ICBlrPLiwcGC4Wbo7RsRqeJ9yThsuwfEW2djR+sKYZZCspWROTUlYpcucmCVEGfeww8U82OO0t13jtx2ZpTLNzuYqXZ7pznCceuc+mOR/I/3PuaBQDvxdPH7j8ZskxFjsbTg9bAADiw2Y+OFbHG6VuIaQp11eEI5GcjF2VZFFopmUxPTx347v3h9m43EZbUAOOwIw2MMyhprq2bs2u6trrk5OPeTuwthWHZViesVhJ8l9EDAy1nlxYODBcLN0bo6I1RE4JJw2XYPiJSkoTla1YwnkZtVeybu6OA/nML97LTpDqGGG1Lc47cdmaWyxc7mKh2e6c5xjHrnP1yP5H+59zQKAd+Lp4/cfjNkmIsdjacHrYAAUWEzHxwrY43StxDSFOOLwhHIzkYuyrIotFMyiJ6eO/Hd+8vs3G4jLar447AjDYwrKGmurZ2za7q2uuTk495O7C2FYtlWJ6w2EnyX0QMDLWeXGgoMFws3R2jYnVETgknDZdg+I+Uuz1Uak/sMW/4SvRxg0JiHZY2LcQf991cot9ORvuNa08vKSenj9x+M2SYix2NpwetgABRYbMfHCtjjdK3ENIU44vCEcjORi7Ksii0UzKYnp478d37w+zcbiMtqAHHYEYbGGZQ011bO2bXdW11ycnHvJ3YWwrDsqxPWGxE+S+iBgZazy40FBguFm6O0dE6oicFE4bLsHxG882O0t99eEN7s2E7snYMhOoczkH7+MGksXaVxdrIN5QmMYxj0xjq5A7aRqynKcAcTmaJJINJdMLeU6/0cfuPxmyTUWOxtOD1sAAKLCZj44VscbpW4hpCnHF4QjkZyMXZVkUWimZRE9PHfjs/eH2bjcRltQA47AjDYwzKGmurZ2zq7qyuuTk495O7C2FYdlWJ6w2EnyX0QMDLWeXGgoMFws3R2jojVETgknDZdg+JOU2wP8N1u9FCP+B/36w1/I7LuQNXA9Uor0BF1WEDr8KMlgPpeeaGZcIfXhDe6djk7MvZs3lxXsOjj9x+M2SYix2NpwetgABRYTMfHCtjjdK3ENIU44vCU8jORi7Ksii0UzKInp478dn7w+zcbiMtqAHHYEYbGFZQ011bO2bXdW11ycnHvJ3YWwrFsqxPWGwk+S+iBgZazy40FBhOFm6N0bE6oifdE4bLsHxLyju/+X7RKCGe8wvv4xasTQaQiZkh/GZ6uVd8XUdbLiwn/AAN6OP3H4zZJiLHY2nB62AAHFhMx0cM2ON0rcQ0hTrq8IRyM5GLsqyKLRTMpienjvx3fvD7NxuIy2oAcdgRhsYZlDTXVs3Ztd1ZXXJyce8ndhbCsOyrE9YrCT5L6IGBlrPLjQUGC4Wbo3R0RqiJwSThsuwfEuxLQ3S6TM2dxWMZJIeMIdLJcyt37uOmuP/UPYgqC2fOLxjGMemMdfLu2Lndn/sSHPUf7+P3H4zZJqLHY2nB62AAFFhMx8cK2ON0rcQ0hTji8JTyM5GLsqyKLRTFIienjvx3fvL7NxuIy2oAcdgRhsYVlDTXVs7Ztd1ZXXJyce8ndhbCsWyrE9YbCT5L6IGBlrPLiwUGC4Wbo7RsRqeJ9yThsuwfE3NG15AqEVUmHfRf38XqB/hWtRzy2fGQ6nHENNqdcz6Ju867ZrhNT73/V92iNVO7UubceRhaImPjwooJiNjhmxxelbiGkKccXhCORnIxdlWRRaKZlMT08d+O794fZuNxGW1ADjsCMNjDMoaa6tm7NrurK65OTj3k7sLYVh2VYnrDYSfJfRAwMtZ5caCgwXCzdG6OidUROCScNl2D4n5ZWf9/20THNuerH3arpy75f4asYT6tsstjtIHZRhDfVsCS/Z6PPyf8A/c5yrOc5/wCf3cVqazWNVhya2sYL6VuIaQpxxeEI5GcjF2VZFFopikRPTx347v3l9m43EZbVfHHYEYbGGZQ011bN2bXdW11ycm3vJ3YWwrDsqxPWGwk+S+iBgZazy40FBguFm6O0dE6oiPck4bLsHxO88gdlwh3Poi5zS7HbZieWryz93CqppIlZy6Pt+uOvepGRtQWtxPr6/fTgURlShY5tPonoW4hpCnHF4QjkZyMXZVkUWimZRE9PHfju9eH2bjcRltQA47AjDYwrKGmurZ2za7q2uuTk495O7C2FYdlWJ6w2EnyX0QMDLWeXGg4MFws3R2jonVETgonDZdg+KNuTP+P6ys0thXir7+MNaxXdPxK1I8XuvdgvvNS2sf0/n79bSrU5QK7LNKwrH3rcQ0hTrq8IRyM5GLsqyKLRTMpienjvx3fvD7NxuIy2oAcdgRhsYZlDTXVs3Ztd1bXnJyce8ndhbCsOyrE9YrCT5L6IGBlrPLjQUGC4Wbo7R0TqeJwSThsuwfFPLSTzH6cMYSv0z9wg6iymRG/+qvRjcJAx0O0nCU9drjsS9YlovKfL6dbU04ptX/P7uHd+bmaeTRy3v959y3ENIU44vCU8jORi7Ksii0UxSInp478d3rw+zcbiMtqAHHYEYbGFZQ011bN2bXtW11ycm3vJzYWwrFsqxPWGwk+S+iAgZazy4sHBguFm6O0bEanifck4bLsHxVzZP/Sp8BHJV/P3agi0zW0KvHOJ8kdu2a5/ieyLDBYT4t/dQbvMa8tIVphXPR7X2wK9smusWGvlJWn7HXG2W1OvLShHIzkYuyrIotFMymJ6eO/Hd+8Ps3G4jLagBx2BGGxhmUNNdWzdm13VtdcnJx7yd2FsKw7KsT1isJPkvogYGWs8uLBwYLhZujdHRGqInBJOGy7B8V84C/y1QHH38XAkmbphFZT693M6m5jrVGXQdv8AD99F2BaddTKZurSShndfcvKNYWmxLk2uAOirfVZ1lJEPY40xBMnGhJ8zJAZjFw5Daqpja/dWVk8nbnJW27JQ5DxqVQsH08d+O795fZuNxGW1Xxx2BGGxhWUNNdWztm13VtdcnJx7yd2FsKxbKsT1hsJPkvogYGWs8uNBQYLhZujtGxOqInBJOGy7B8Wc3Xc5s9aY9Men3cPmEubdw5n07t70D/1F1xIxDKPU5aFNqyhacpV0Iccbz6ocUn6WSQ5/DhDiuvjvx3fvD7NxuIy2oAcdgRhsYZlDTXVs7Ztd1bXXJyce8ndhbCsOyrE9YbET5L6IGBlrPLjQUGC4Wbo7R0TqiJwUThsuwfFvNz/5dXfv4c//ALYc7+Ueq1Ua5qsUYx6Q/wDT478dn7w+zcbiMtqAHHYEYbGGZQ011bO2dXdWV1ycnHvJ3YWwrDsqxPWGwk+S+iBgZazy40FBguFm6O0dEaoicEk4bLsHxdzeY8bDVyfHP38RSv0Nwjt5V6d+x6HEbIqZlWl0+ibjU5ej2MysTrH6Zf8AR478dn7w+zcbiMtqAHHYEYbGFZQ011bO2bXdW11ycnHvJ3YWwrFsqxPWGwk+S+iBgZazy40FBhOFm6N0bE6oifdE4bLsHxfzgE9Raqd4/fxskcR26K4pf8J79+6RC2rB+9jUNs2KTjJCGPfi5QRwYvv478d37w+zcbiMtqAHHYEYbGGZQ011bN2bXdWV1ycnHvJ3YWwrDsqxPWKwk+S+iBgZazy40FBguFm6N0dEaoicEk4bLsHxhzSjfc68i5LCfv17L/sN6r8z5emMZxn+cf0N4aAhNqCKlI/9MCx2mpWGly7sHZYx4IvsSnKs4SnGc50RxeLm3GLZsgNY8aOOwIw2MKyhprq2ds2u6srrk5OPeTuwthWLZViesNhJ8l9EDAy1nlxYKDBcLN0do2I1PE+5Jw2XYPjHlBEZltMTWUp9Vfcham1pcRn0Vr2cRZKPBTqM+v8AR2BrWp7LiFRNnjku/W1OMl11/l2Th21zsNnGU58c49M9NG1rctjSGI+rQzpH1qDjHWNeqam7AtE1Odezdm13VldcnJx7yd2FsKw7KsT1hsJPkvogYGWs8uNBQYLhZujdHROqInBJOGy7B8ZXyH/yCkzsJ44z9LQpteW149FfdxCs/wC96u/ZnV+r39LYPHzW2w8LINiMR8jcuG95ifIipSYk2xYNdXqrKUmwVOTDx9kbDS8y9gaIjCjXanxf23Z3E5eg0w49F4eUqBW2bbz3p8iMio2FDbj4gAcMbr2bs2u6trrk5NveTuwthWHZViesNhJ8l9EDAy1nlxoKDBcLN0do6J1REe5Jw2XYPjPOMZx6Z+tswGavsixwnh4o+7h5cP2TYb9ZIc9B/wCotCHE5QtGFJlNeUObxn92p0MVl7j3ph//ALlAj/pnjjpVnPriiCKzG6b1XEK8wKDCpUHGx8e3hsAEcZHbs7Ztd1bXXJyce8ndhbCsOyrE9YbCT5L6IGBlrPLjQcGC4Wbo7R0TqiJwUThsuwfGvMur/tl+AsrSPRv7qzOmVewR1ij1ZwRX5oOxwYE/Hrwsf/wuzdm13VtecnJx7yd2FsKw7KsT1isJPkvogYGWs8uNBQYLhZujtHROp4nBJOGy7B8bctqh/kWr1zDDfkT9/DnYOJesmUI5/wBSf/CbN2bXtW11ycm3vJzYWwrFsqxPWGwk+S+iAgZazy4sHBguFm6O0bEanifck4bLsHxvNxIs9DmwpqfJizQRlXsMjXT0ZSR92sLyXrq7RlqG8soipMGajRpeNfS8L/4LZuza7q2uuTk495O7C2FYdlWJ6xWEnyX0QMDLWeXFg4MFws3RujojVETgknDZdg+OeY9GVEXAO6iM+g338QdrpIFXrCaI/N/4HZ2za7q2uuTk495O7C2FYtlWJ6w2EnyX0QMDLWeXGgoMFws3R2jYnVETgknDZdg+Ot2UNGxNdSkEhvCjHG1srU04nKV/dCTEjXpYSbiSFMGai2XHbSpw9gEylBf9/Z2za7q2uuTk495O7C2FYdlWJ6w2InyX0QMDLWeXGgoMFws3R2jonVETgonDZdg+POU2t/8ACr+ubAY8Iz79NbWk9UWtuXY83o6Dm4yxxIs5DFoJC/u7O2dXdWV1ycnHvJ3YWwrDsqxPWGwk+S+iBgZazy40FBguFm6O0dEaoicEk4bLsHx7ubXA2zqKbAZSnBpYpABTwJbKmn/v47b1f1rK4r9gfW5XBCxjhmjQn0Psf29nbNrura65OTj3k7sLYVi2VYnrDYSfJfRAwMtZ5caCgwnCzdG6NidURPuicNl2D4/5dal/aZPGy4Qb/adHHzkSTQHmqlbHlv14I4OTDZPAJbIG/s7S2rW9VQKpaaewsrYWwrDsqxPWGxE+S+iBgZazy40FBguFm6N0dEaoicEk4bLsHyBYYGMs8KZX5kbD4e09cymsLeVW5HClNdGkeQU5q0pEVJZdkK5VrZX7pDsztakmjRP6+5d+VrVQSwm1okJ+33Gw3qbfn7KessvogYGWs8uLBQYLhZujtGxGp4n3JOGy7B8hb01EHteqKFZwhuZko46HPIi5IdY5XRrzZtt1lLfulZkMoTqXkDTtnsNh/rojJz+oYaJHDOGyBTQw+5OWqGv1q7q5eFrNMLkS3TjiHCCOiBgZazy40FBguFm6N0dE6oicEk4bLsHyJye0Qq2CuX6piY/d84ynPpnHpnoZddHdS8w4ptzVvLazVjDEPeWVzcdS9i03YIODqrOMGY/oZzjGPXOf42ZyVoGv0uhBl4m5fZe6rxtEj/3w/wDQA6YGBlrPLjQUGC4Wbo7R0TqiI9yThsuwfI3Jnj4oVwnY1ICzljqipeUgzW5KGkCAiqDzDuMF+mFdQG50WlcgdW3nwZAsTYZaFoWnCkKwpPXLTcPBCKOmpQUEe8cvdfV7Dg1YZfny9gchtl7B/UFLl8x0d/z/AJz1QMDLWeXGg4MFws3R2jonVETgonDZdg+R1oQ4jKHE4UnkTxvdg3Cb1QAcuRvZVdrbEpXomt2w8Zqtc0rqDhLVmr0dKJg+Zetj04xNRktFri+QenJdOMj3yPayFeaZIp8wbZEP4xLxSseqZMTOFSAKMYys1hOHZ2DY/l+ZBb+pDaWuInGf3C8wjP1McodMRHrjFoUcuf5s19jzRWqeaXmzctNsz3m3HFhwrMzYJyxFZNnpcs9/rr1embVMDwNfAcMO0do6J1PE4JJw2XYPklSUrTlKsYzjfvGDLqibprYP/UtC215bcTlKu/BRSceiSXcYVIHqxjCjX84ceed/7jq1/wBCkUWybCnGq/WQFEEad0rXtSxXgPhJkx8mbv40Q+wMP2OqYajbBP16Zq0o/CWCOeCN/v6j0ha9sSGMhN5CiNe62q2s4VMNWgsI+T9k6mp+0Y32VjBxgja2h7lqwlT5Q+ZCH/uDDEGENiiMree05xKKkP0LDs5KxhoyMjoYFmMigmRBPlAgYcsdwUthDzO1+IsRNqdmtcOtxZlqp1mpMkuIs8OQAT/Z1noG/bMWgoIH9vitXaKo+rmEvRwnvZX5Us1SrdyjlRVmhxpAbY3DRSf1ZHWsp5fVlp1opxuQLPBlxz39XX+hdj7DcbdjIRYgGt+KlCpmWpGf9bDJNtttNpaaQlCPleZgoawgrjp2LFPGu/DqkTf6hVRkSIIi5cadr0/Ljv7FmWEIGJDeUOWO4w73wFRs9qIwLXIE6RcpXDq8zWUE22QGghqLxy1hRVNlMQ2JM5KUoThKcYxj5csdDptvR4WWtR8h9Wfh3rSX8nYIuRhHZ7hZdw/JdfsUZIpmOPO44XKvcUc19J1bsMWvLclBSAys4zjPpn7mWHn1eDLS3MxGur5PqxiHp8uV9QfFbccznGX4FiMbr3CN7OUuWm6pTiscY9Q1rxX/AI9mTeAjo+LHSHGhMCMfMbzDL6fB5pDmD6RTZT+ZGqxJH0XpDUZnr+tr2Ex9L46aWcznKqGHj6b40aSaV5pozOcs8e9NMZ9UUGPz9Caj1eD6e1oECjIdfgY9OEgwoI+MY9P4x/8AZHP/xABOEAACAQEDBggMAwUGBAcBAAABAgMEABFREiEwMUFhBSIjUnBxgbEUIDJAQlNikaHBw/ATJGNDcoKSohUzUHOy0QZEwtIQNIOz0OHio//aAAgBAQANPwH/AOSQV1/izKt3vNhsNdHf32Xmlj3Cw5yyDvW36lSI/wDVdb9OsjPzsdRU3jpmA8qomCX9V+uy5r4l/Ch/mbP7hY6jkGaT3tm+Fm1pHP8AhJ/KlwtjI5Y/Hxlzj8GqdfnYehXQK/8AULm+NvSn4Plv/of/ALrP/wAtVchJ1XNr7OmG69KKDlJ2/hGrrN1jm/GN0tSw6/JXsHbZtclRKXb46ZP+TrSZorsBfnXsIs/F/Gvy6Vj+9rXt99pRlJLE4dWG4jpcTVlnjOcFXWx6rHi+FN/5qUbtidmffaQ5TySMWZjiSfMib5KOY5cEn8OzrGez5vB5m5KU/pv8jn6WmGanVuTp98pH+nX1WbyFOaOJeai6lHmozgi2ZEq/KqKYb+evxtUrlRzRNep+8OlYWF8dXwmmdYsVixb2tmy0jFmdzeWOJPnE7Dwvg+RuJIOcvNbfZs0sR/vIH2o42HpVzxcI8IRN5eMUZwxbs878mppWPJ1Ee1WHcdlm4s8DHlKeTajfefpSFs8XCPCMTeXjFGcMW7NNuF9t6HTS3JXUhPFnj/7hsNqyMOh2qdqtgR0o54uEeEYm8vGKM4Yt2aPb+BESF6zqHbZs/wCDFy83bdxR7zYa/CZyifypd32HpGlV297Xm2vi0yD5W3wL/tb9SjjPysfTonaAjsBu+FvQhroxInVlLcfhaPOamgP4yXYkDjDtFhouFZAs4OcU0moSj57uqzgMrA3gjHpOFs8XCPCMTeXjFGcMW7NFJ6ES33DFjqA3m2ZhwfTPdCm531t2XC0fkxU8YRfhopBmrqICOS/Fhqbtsufw6lQ8QfqJrXr1b9FwamXQO7Z5qfmda93V0nZ4uEeEYj5eMUZwxbs0UL3TVzr5eKxj0j8BbN+NMc8s7c5226VhcykXgi2eSXg3VDOf0+Y27V1Wp3McsUq5LIw2EaCgmWaM43awdxGa1dEGZNsb+kh6jf0mZ4uEeEYm8vGKM4Yt2aKnf91qxh6C+zibUyCOKGJclUUbAPMKdORnuuFQB+zk+TbLUrmKaKQXMrDQcJ31FDlHyJ1HGUfvL8V6ShbPFwjwjE3l4xRnDFuzRU79TVjD0F9nE2p0EcUUa3KijUAPMuD475EUf+chHo/vDZ7rA3EHZ49BOlRE3tKb7cI0yTgc0kZ17DeOknPFwjwhE3l4xRnDFuzRU79TVjD0F9nE2p0EcUUa3KijUAPNOF5LqpFGaCpO3qbX136DgmbwinB9TJrHYw/q6RxbPFwjwjE3l4xRnDFuzRU79TVjD0F9nE2p0EcUUa3KijUAPNa+Ex37Ub0XG8G424PnaCQY3HX26/H4ULcHzZ83KeT/AFhekfPFwjwjE3l4xRnDFuzRU79TVjD0F9nE2pkEcUUa3KijUAPN+El8ErCBm/GQcUnrXN/D49LKkyEYqbxaupYqhTuZQfn0i54uEeEYm8vGKM4Yt2aKmfqasYegvs4m1OgjiijW5UUagB5xTQ+HU2Iki43xF47dBRLJRPn5jm7+kr0XUq5TM2snYqjaThaSY/2ZlyXioj2KTsk3eaC2eLhHhGJvLxijOGLdmip36mrGHoL7OJtToI4oo1uVFGoAecyqUYYg2oK6anz4K5A8ej4SygNzoP8AbotpVymZtZOxVG0nC1Kx8CocrMo574ufhaNgyOpuKkbQbRjIpapzcK0DYf1O/wAzzxcI8IRN5eMUZwxbs0VM/U1Yw9BfZxNqdBHFFGtyoo1ADzuqaKpA/ejW/wCN/jgUswH84/26LKVcpmbWx2Ko2k4WpWPgNFlZlHPfFz8P/GNgyOpuKkaiLRrkUtU5uFaBsP6nf5gLZ4uEeEYm8vGKM4Yt2aKnfqasYegvs4m1OgjiijW5UUagB55LwbTk/wBQ8dqCJj1iT/76K6VcpmbWTsVRtJwtSsfAqK/Mo574ufh4sbBldTcVI2i0a5FLVObhWgbD+p36fPFwjwjE3l4xRnDFuzRU79TVjD0F9nE2p0EcUUa3KijUAPPU4Mp7/wCrx/7Oj/8Ac6KqVcpmbWTsVRtJwtSsfAqLKzKOe+Ln4ePGwZHU3FSNotGMilqnNwrQNh/U79ILZ4uEeEYm8vGKM4Yt2aKmfqasYegvs4m1OgjiijW5UUagB59RrBTe6MH5+OIqWIe+Qn5dFNKuUzNrY7FUbScLUrHwKivzKOe+Ln4aH8Rfwfwr8vLvzZN22+34fHyfLyPR/E9u7Xdo88XCPCMR8vGKM4Yt2aKnfqasYegvs4m1OgjiijW5UUagBokF7MTcALSrlJJGwZWGII8zAvJNqzhCeRP3Mo5Pwu8eor0iB3In/wCuiilXKZm1k7FUbScLUrHwKhysyjnvi5+GhlYIiILyxOoAWlXKpqZheKIH6ndo88XCPCMTeXjFGcMW7NFTP1NWMPQX2cTanQRxRRrcqKNQA0Si9mJuAFlJjra2M3GrO1FPM7+q1Q9ynW1Ex9JfYxHbaoQSRSxterqdRB8yjo3ih3yvxVHvNj4/CM09Wcbi+SPgvRPSrlMzaydiqNpOFqVj4FRZWZRz3xc/DQysEREF5YnUALSrlU1M2cUQP1O7RC2eLhHhGJvLxijOGLdmip36mrGHoL7OJtToI4oo1uVFGoAaJBlMzG4AWQmOtrYzcas7UU8zv6v/ABqHuB1tQsfSX2cR7rVCCSKWNr1dTqIPmLt/aFYoOoDixg/1Hx5GCqMSbUFBDAesIL/j0TUq5TO2snYqjaThalY+BUV+ZRz3xc/DQysEREF5ZjqAFpVyqambOKIH6ndo88XCPCETeXjFGcMW7NFTv1NWMPQX2cTanQRxRRrcqKNQA0Si9mJuAFlJjra2M3GrO1FPM7+rxah7gTnaiY+kvsYjttUIJIpY2vV1Oog6eiiaeaRjcFVRebVs5aNCf7uIZkXsW7x4qkVdR/lxcY9wHb0TUq5TM2snYqjaThalY+BUWVmUc98XPw0MrBERBezE6gBaVcqmpmF4ogfqd2iFs8XCPCMTeXjFGcMW7NFTv1NWMPQX2cTanQRxRRrcqKNQA0SC9mJuAFkJjra2M3GrO1FPM7+rx6h8xOdqJj6S+ziO21QgkiljbKV1Oog6Zrp+FWQ6h6EX/UezQNdwdSsR/FIR/SOiWlXKZm1k7FUbScLUrHwKivzKOe+Ln4aGVgiIgvLE6gBaVcqmpmziiB+p3aPPFwjwjE3l4xRnDFuzRU79TVjD0F9nE2pkEcUUa3KijUANEgvLE3ACykx1tbGbjVHainmd/Voah8xOdqJj6S+xiO0WqEEkUiG9XU5wRpK0GPg+nOfjesYc1f8A6tVSNLLK5vLMTeT48ziONBrZibgLU0AaoI9KZuM5956JKVcpnbWTsVRtJwtSsfAqLKzKOe+Ln4aGVgiIgvLE6gBaRcqmpmF4ogfqd2jzxcI8IxN5eMUZwxbs0VM/U1Yw9BfZxNqdBHFFGtyoo1ADRILyxNwAspMdbWxm41Z2op5nf1aKJsqCnYXNXMPp99olCIiC5VUagBo2vWkpVPKVEmA3YnZac3Rxg8SGPYijAaD/AIdunN4zPUH+7Xs8rsHRJSrlMzaydiqNpOFqVj4FRX5lHPfFz8NDKwREQXlidQAtKuVTUzZxRA/U7tELZ4uEeEYm8vGKM4Yt2aKnfqasYegvs4m1OgjiijW5UUagBokGUzMbgBZSY62tjNxqjtRTzO/q0UTZVPA2Zq5h9PvtEoREQXKqjUANG160tIp5SokwG7E7LNxYIFPJ08exFH3foKh1ijRdbMTcBZx4RXyD052GfsGodXRHSrlMzaydiqNpOFqVj4FQ5WZRz3xc/DQysEREF5ZjqAFpVyqamYXiiB2/5ndo88XCPCETeXjFGcMW7NFTP1NWMPQX2cTanQRxRRrcqKNQA0Si9mJuAFlJjra2M3GrO1FPM7+rRRNlQU7ZmrmH0++0ShERBcqqNQA0bXrSUqnlKiTAbsTss3FggU8nTx7EUfd+ho2MfBiOM0kuppepdQ39XRHSrlMza2OxVG0nC1Kx8BosrMo574ufhoZWCIiC9mJ1AC0q5VNTNnFED9Tu0Qtni4R4Riby8Yozhi3Zoqd+pqxh6C+zibU6COKKNblRRqAGiQZTMxuAFkJjra2M3GrO1FPM7+rRRNlQQNmauYfT77RKEREFyqo1ADRvetJSKeUqJMBuxOyzcWCBTydPHsRR936GEiXhCpAzRRf9x1C1FEsMMajMqjoipVymZtZOxVG0nC1Kx8Cor8yjnvi5+GhlYIiILyzHUALSrlU1O2daJT9Tu0eeLhHhGJvLxijOGLdmip36mrGHoL7OJtToI4oo1uVFGoAaJBeWJuAFlJjra2M3GqO1FPM7+rRRNlQQNmauYfT77RKEREFyqo1ADRtetLSqeUqJMBuxOyzcWCBTydPHsRR936GrfJUbFG1mOwCz8pWVV1zTy7T1DUB0RUq5TM2snYqjaThalY+BUWVmUc98XPw0MrBERBezE6gBaVcqmpmF4ogfqd2iFs8XCPCMTeXjFGcMW7NFTP1NWMPQX2cTanQRxRRrcqKNQA0SC8sTcALKTHW1sZuNWdqKeZ39WiibKggYXNXMPp99olCIiC5VUagBo2vWkpVPKVEmA3YnZZuLBAp5Onj2Io+79DVuEiiQZyfkN9qxB4bVgav009kfHoipVymZtbHYqjaThalY+BUV+ZRz3xc/DQysEREF5YnUALSrlU1M2cUQP1O7R54uEeEYj5eMUZwxbs0VO/U1Yw9BfZxNqdBHFFGtyoo1ADRIL2Ym4AWUmOtrYzcao7UU8zv6tFE2VBA2Zq5h9PvtEoREQXKqjUANG160lKp5SokwG7E7LNxYIFPJ08exFH3foatwkUSDOT8hvtVr+aqrs0Y9XHgu/b0RUq5TM2snYqjaThalY+BUOVmUc98XPw0MrBERBeWJ1AC0q5VNTMLxRA/U7tHni4R4Riby8Yozhi3ZoqZ+pqxh6C+zibU6COKKNblRRqAGiUXsxNwAspMdbWxm41Z2op5nf1aKJsqCnbM1cw+n32iUIiILlVRqAGja9aSkU8pUSYDdidlm4sECnk6ePYij7v0NW/4cUSDOT8hvtVoPCqq7NGPVx4Lv29EVKuUzNrJ2Ko2k4WpWPgVFlZlHPfFz8NDKwREQXlidQAtKuVTUzZxRA/U7tELZ4uEeEYm8vGKM4Yt2aKnfqasYegvs4m1OgjiijW5UUagBokGUzMbgBZCY62tjNxqztRTzO/q0UTZVPA2Zq5h9PvtEoREQXKqjUANG160lIp5SokwG7E7LNxYIFPJ08exFH3foatxHFEgzk/Ib7Vafmqq7NGPVx4Lv29EVKuUztrJ2Ko2k4WpWPgVFfmUc98XPw0MrBERBeWY6gBaVcqmpmziiB+p3aPPFwjwhE3l4xRnDFuzRU79TVjD0F9nE2p0EcUUa3KijUANEovZibgBZSY62tjNxqztRTzO/q0UTZUEDZmrmH0++0ShERBcqqNQA0bXrS0qnlKiTAbsTss3FggU8nTx7EUfd+hq3EcUSDOT8hvtVoPCqq7NGPVx4Lv29EVKuUzNrJ2Ko2k4WpWPgVFlZlHPfFz8NDKwREQXsxOoAWlXKpqZheKIH6ndohbPFwjwjE3l4xRnDFuzRU79TVjD0F9nE2p0EcUUa3KijUANEgvZibgBZCY62tjNxqztRTzO/q0UTZUEDZmrmH0++0ShERBcqqNQA0bXrSUinlKiTAbsTss3FggU8nTx7EUfd+hq3EcUUYzk/Ib7Vafmqq7NGPVx4Lv29EVIuU7nWcFA2k7BalY+BUV+ZRz3xc/DQysEREF5YnUALSrlU1M2cUQP1O7R54uEeEYm8vGKM4Yt2aKnfqasYegvs4m1MgjiijW5UUagBokF5Ym4AWUmOtrYzcao7UU8zv6tFE2VBA2Zq5h9PvtEoREQXKqjUANG160tKp5SokwG7E7LNxYIVPJ08exFH3foatwkUSDOT8hvtVoPCqq7NGPVx4Lv29EVJGZZpZDcqqLUTEUdMTdl/quOcfgNDKwREQXlidQAtIuVTUzC8UQP1O7R54uEeEYm8vGKM4Yt2aKmfqasYegvs4m1OgjiijW5UUagBokF5Ym4AWUmOtrYzcas7UU8zv6tFE2VBTsLmrmH0++0ShERBcqqNQA0bXrSUqnlKiTAbsTss3FggU8nTx7EUfd+hq3CRRIM5PyG+1Wg8Kqrs0Y9XHgu/b0RDOTbg+S6eRDmrJht3oNmOvQysEREF5YnUALSrlU1M2cUQP1O7RC2eLhHhGJvLxijOGLdmip36mrGHoL7OJtToI4oo1uVFGoAaJBlMzG4AWUmOtrYzcao7UU8zv6tFE2VTwNmauYfT77RKEREFyqo1ADRtetLSKeUqJMBuxOyzcWCBTydPHsRR936GrcRxRIM5PyG+1Wn5qquzRj1ceC79vRHwhHfXSxtnp4D6H7zd3XoZWCIiC8sx1AC0q5VNTMLxRA7f8zu0eeLhHhCJvLxijOGLdmipn6mrGHoL7OJtToI4oo1uVFGoAaJRezE3ACykx1tbGbjVnainmd/VoomyoKdszVzD6ffaJQiIguVVGoAaNr1pKVTylRJgN2J2WbiwQKeTp49iKPu/Q1b5EUSDOT8hvtVoPCqq7NGPVx4Lv29Ed34VFAT/AH058kdW07hatlM00jbWOglYIiIL2YnUALSrlU1M2cUQP1O7RC2eLhHhGJvLxijOGLdmip36mrGHoL7OJtToI4oo1uVFGoAaJBlMzG4AWQmOtrYzcas7UU8zv6tFE2VBA2Zq5h9PvtEoREQXKqjUANG960lIp5SokwG7E7LNxYIFPJ08exFH3foatxHFEgzk/Ib7Vafmqq7NGPVx4Lv29EYF5J2W4HZqajAOaQ38eXtIzbgNBIwVFUXlidQFpVyqambOKJT9Tu0eeLhHhGJvLxijOGLdmip36mrGHoL7OJtToI4oo1uVFGoAaJBeWJuAFlJjra2M3GqO1FPM7+rRRNlQQNmauYfT77RKEREFyqo1ADRtetLSqeUqJMBuxOyzcWCBTydPHsRR936GrcJFEgzk/Ib7VaDwqquzRj1ceC79vRJw+GgQg8aKD9o//T26GZcvgyllX+4Q/tWHOOzDRsuTwpVxtnjB/YqccT2aKmfqasYegvs4m1OgjiijW5UUagBokF5Ym4AWUmOtrYzcas7UU8zv6tFE2VBAwuauYfT77RKEREFyqo1ADRtetJSqeUqJMBuxOyzcWCBTydPHsRR936GrcJFEgzk/Ib7Vafmqq7NGPVx4Lv29Ekal3Y6gBrNom8GoVwgTUe3O3boODZLoInGaqnH/AErt35tHwnfBQIfQ50pGC991p3Mkkjm8sxzknQ079TVjD0F9nE2p0EcUUa3KijUANEgvZibgBZSY62tjNxqjtRTzO/q0UTZUEDZmrmH0++0ShERBcqqNQA0bXrSUqnlKiTAbsTss3FggU8nTx7EUfd+hq3CRRIM5PyG+1Wv5qquzRj1ceC79vRL/AMQE0cdxziL9q3uzfxaCVsuqmuzQwjym/wBt5FqGIRRIMBtO86zoolLux1ADWbQsafg+PYkCnMettZ69DTP1NWMPQX2cTanQRxRRrcqKNQA0Si9mJuAFlJjra2M3GrO1FPM7+rRRNlQU7ZmrmH0++0ShERBcqqNQA0bXrSUinlKiTAbsTss3FggU8nTx7EUfd+hq3/DiiQZyfkN9qtB4VVXZox6uPBd+3om4CXwCK45ssZ5D/Nm7NBw6qzzZQ40UP7OP5nedH/xBJ4GtxziG6+Q+64fxaGnfqasYegvs4m1OgjiijW5UUagBokGUzMbgBZCY62tjNxqztRTzO/q0UTZVPA2Zq5h9PvtEoREQXKqjUANG160lIp5SokwG7E7LNxYIFPJ08exFH3foatxHFEgzk/Ib7Vafmqq7NGPVx4Lv29E1DSO8e+S65B/MRaZzI7HWWJvJ8fgm6trLxmYA8RO1vgDpOAqdYAv6j8d+9R2aCnfqasYegvs4m1OgjiijW5UUagBolF7MTcALKTHW1sZuNWdqKeZ39WiibKggbM1cw+n32iUIiILlVRqAGja9aWlU8pUSYDdidlm4sECnk6ePYij7v0NW4jiiQZyfkN9qtB4VVXZox6uPBd+3on4VqjPMP0otX9RH8ug4eIrprxnEZHJr/Ln/AItGgLE4C1dXTTdQLG4e67x6ACo4QkHMvzIN7HN77UyCKKKMXKijUBokF7MTcALITHW1sZuNWdqKeZ39WiibKggbM1cw+n32iUIiILlVRqAGja9aSkU8pUSYDdidlm4sECnk6ePYij7v0NW4jiijGcn5DfarT81VXZox6uPBd+3oo4Fp46Nf37sp/i13Z49VUAz7oV4z/AG0ShFUbANWjp+Dqhx15BsfH4dY1srXZ8jVGPcL+3RILyxNwAspMdbWxm41R2op5nf1aKJsqCBszVzD6ffaJQiIguVVGoAaNr1paVTylRJgN2J2WbiwQqeTp49iKPu/Q1bhIokGcn5DfarQeFVV2aMerjwXft6KI1LsdwtX1009+5nN3j0kS0NOTzn4z/AD36T+zZFF2/N89BTcH08QHVGBoUF5Ym4AWUmOtrYzcas7UU8zv6tFE2VBTsLmrmH0++0ShERBcqqNQA0bXrSUqnlKiTAbsTss3FggU8nTx7EUfd+hq3CRRIM5PyG+1Wg8Kqrs0Y9XHgu/b0Uw8GzBDf6bLkr8SNBwoX4Qkza8s8X+kLpDwZMR1gX/AC0FRwbTsbudkAEe+/QIMpmY3ACykx1tbGbjVHainmd/VoomyqeBszVzD6ffaJQiIguVVGoAaNr1paRTylRJgN2J2WbiwQKeTp49iKPu/Q1biOKJBnJ+Q32q0/NVV2aMerjwXft6Kq6rp6frGVlf9PjzSLGOsm61FSxQAD2VA0lXRTQ3byhFkJU+PwI5lgUnO1O5vzdTX+8eOovZibgBZSY62tjNxqztRTzO/q0UTZUFO2Zq5h9PvtEoREQXKqjUANG160lKp5SokwG7E7LNxYIFPJ08exFH3foat8iKJBnJ+Q32q0HhVVdmjHq48F37eiuo4QeQjcsf/wCvHk4TgZxiqtlH4DTU9dI0Q/TY5SfBh49K3HjJ4s0Z8pG3EWcATwFuUp5NqONnz8VBlMzG4AYmykx1tbGbjVnainmd/VoomyoIGzNXMPp99olCIiC5VUagBo3vWkpFPKVEmA3YnZZuLBAp5Onj2Io+79DVuI4okGcn5DfarT81VXZox6uPBd+3osK1Ux//AJj/AH8enWefquiYfPTcLQ+DTnCaPV71P9J0GqWM54pl5rrtFrrmkIMlM53MM69vvs2ow1KN87a75ZVXvst91Nwefx3J6xxR2mzZmp4nvknH6j4eyM3XoomyoIGzNXMPp99olCIiC5VUagBo2vWlpVPKVEmA3YnZZuLBAp5Onj2Io+79DVuEiiQZyfkN9qtB4VVXZox6uPBd+3otShmb3yf/AF48XBtQRm/dGmpl8Mov81B5PaLx22U3EHYdDuN1t7E6OJsqCBhc1cw+n32iUIiILlVRqAGja9aSlU8pUSYDdidlm4sECnk6ePYij7v0NW4SKJBnJ+Q32q0/NVV2aMerjwXft6Lv7Ok/9zx/7Mn710/D7tMlwzQ1Gt07fKHXu80ibKggbM1cw+n32iUIiILlVRqAGja9aSlU8pUSYDdidlm4sECnk6ePYij7v0NW4SKJBnJ+Q32q1/NVV2aMerjwXft6L5KOdL9mZ1/7vHnoKmPrNwPy0865UMt3GhlHkuPvVaifJODrsZdxGfzKJsqCnbM1cw+n32iUIiILlVRqAGja9aSkU8pUSYDdidlm4sECnk6ePYij7v0NW/4cUSDOT8hvtVoPCqq7NGPVx4Lv29GCyVMV/WEPy8eeWSnP8UbAfG7zCgQ+CTahMvqn3YHYbUzmOaGRbmRhsPmETZVPA2Zq5h9PvtEoREQXKqjUANG160lIp5SokwG7E7LNxYIFPJ08exFH3foatxHFEgzk/Ib7Vafmqq7NGPVx4Lv29GNHwmAT++jD5ePScJU8rfuhxf8ADzGFLoqm7izgakl+R1i0J8lxmYc5TqYbxpTmAsLpKbg580lRgZOam7WbRKEREFyqo1ADRtetLSqeUqJMBuxOyzcWCBTydPHsRR936GrcRxRIM5PyG+1Wg8Kqrs0Y9XHgu/b0ZULQ1YH7rgH4E+OpvFqyghkP72SL/jf5iAfwKhM00DYo3y1WW9vx4E5WFf1E+YzdVhor+UnYZMMQxZ9Q77Jxldk5Cnb2FOs+0fhpGvWkpFPKVEmA3YnZZuLBAp5Onj2Io+79DVuI4ooxnJ+Q32q0/NVV2aMerjwXft6M63g+eEdZQ3fGym4jA+PwHVvT/wDpvx172HZ5m3/O0IEb3+0NTdosM4ic/gT3dvFPvsut3p2yP5hm8Um7IghZz8LHXNwg+Rm3IL2Pusuf8G78Knv6hxm99ohckUEYRR2DSNetLSqeUqJMBuxOyzcWCFTydPHsRR936GrcJFEgzk/Ib7VaDwqquzRj1ceC79vRrT18pjHsMcpfgR4/DtMVQE5vxo+MvvGUPd5qdYIvs2tpKKMt77r7X38VpF7mtffx5pT/ANVtd70qyEfzX2HoxRBB8NM160lKp5SokwG7E7LNxYIFPJ08exFH3foatwkUSDOT8hvtVoPCqq7NGPVx4Lv29G3DFGFc/qxZv9JXx+DqlKhN+Sb7rcIU6VEZGDC//BmvWlpFPKVEmA3YnZZuLBAp5Onj2Io+79DVuI4okGcn5DfarT81VXZox6uPBd+3o34AnWrH+UeLJ3g/w6Dgdvx6UE52p3OcD91v9Q/wVr1pKVTylRJgN2J2WbiwQKeTp49iKPu/Q1b5EUSDOT8hvtVoPCqq7NGPVx4Lv29HFdA9PINzC63B1S9O+/JOvt1+PTSZNTGP2kDZnX3fG1XEs0Mi6mVheP8AA3vWkpFPKVEmA3YnZZuLBAp5Onj2Io+79DVuI4okGcn5DfarT81VXZox6uPBd+3o64ai/CnIGYVEf+63e46CDKn4LZz5Sa3i7NY7f8Ca9aWlU8pUSYDdidlm4sECnk6ePYij7v0NW4SKJBnJ+Q32q0HhVVdmjHq48F37ejuOPwqiOE6ZwO3OO2yG5gdYPj0UqzQyLsYWTkq6nBzwzDX2HWP8Aa9aSlU8pUSYDdidlm4sECnk6ePYij7v0NW4SKJBnJ+Q32q0/NVV2aMerjwXft6PeH76mO4Zkm/aJ7+N26Coui4QpQc0keI9oaxasjEsUqHMQfPmvWkpVPKVEmA3YnZZuLBAp5Onj2Io+79DVuEiiQZyfkN9qtfzVVdmjHq48F37ej6MeEUEp9CddXYdR67QO0UiMLirA3EaCvkGVnv8DkP7Rd3OHbadBJHIjXq6nUQfPGvWkpFPKVEmA3YnZZuLBAp5Onj2Io+79DVv+HFEgzk/Ib7VaDwqquzRj1ceC79vSBwg4j4SVR/dz7JOpu/r0Mr3RTHO1CThim7ZaoQSRSxtlK6nUQfOpARR0SNylQ+7AYmzcWGBTydPHsRR936GrcRxRIM5PyG+1Wn5qquzRj1ceC79vSDXRGGVDgfnYH8SknuzTwnyW+R36GVuUpr73p/biv8A9Oo2mGZkOdTzWGw7j5xInI0SNmjwaU+iN2s2mO3yY12Ko2AYaGrcRxRIM5PyG+1Wg8Kqrs0Y9XHgu/b0h0F8vB85522NvZbvuNqWRoponFxRhrGhcj8emfPDOuDL89druPQTP5Zxib0x8fNYVypJZXCqoxJNs6S8LMMw/wAkbf3j2WnYvJLI2UzsdpOhq3EcUUYzk/Ib7Vafmqq7NGPVx4Lv29ItJH+dp0XPVxD0h7Y+IsNChyldTcVOINkuUVIP5qNevU/bn32uveK/Jlj/AHkOceZLeBS0jgqjfqSah1ZzZTfFQUxKwr1847zoqtwkUSDOT8hvtVoPCqq7NGPVx4Lv29I7ky8J0US/3Z2zIMMR26OI3pNBIUYdosM346XRVIH+lvh12f8A5Wv5F78BfxT2Gx1EHSIL2kqJQi/Gy5gY+Sp7/wB85z2C0mbwOhvjQjBm8pu06OrcJFEgzk/Ib7VaDwqquzRj1ceC79vSQwuIIvBFjfLXUMYz02LoNqbtnVpV/YmTLi/ka8WGuWEmnk+a/AWP6YmT3qb/AIWb0anKgP8AWBY8ysjPztiJl/3sdV8gz29qoQfOwxrU/wB7D0aOmeT43BfjYeS9XMsSnsF5s2oUcN7/AM73n3XWPp1Exc/HVpKpsmONB8TgN9qtPzVVdmjHq48F37eko5iDbPJWcFRjXi8P/b7sLKbiCLiD5huc2Gq+Q29pr/MJM7tqSJOe52C1Qv5uvZLmb2E5qdJpGU63XQ1Z9rmt7XvtTtkvFKtx6943/wCARNdUcIypxB7Kc9t3vsbjPUPnlnfnMflqHSfGPy9bFmnhO47RuOaxPJcIwIci7Bx6B+HnsrZKRxrlMxwAtmeLgpTdI/8Amn0RuGfqtAuRFDCgVVG4DpRlUrJHIuUrDAg2a9noJT+XkPsH0O7qsuoSLxXGKtqYdXnRPGr6sFUI9ga37M1rrpOEalQZP4B6A6ulVvRmS8rvU61PVbO39n1r5+pJP+732BzCaMgN1HUezzZjnrq0GKK7dfnbsFkuYNULdBG3sx7f4r7ILlVRcAMOlhxcYqiIOvxs2cRHlqe/qPGHvsn7fg4/i5v3PKHushuZJFKsD1HzAm78vCzAdZ1Dtsc5jHLTkdQ4o99k/wCa4QulIOKr5I91hmAHS7qypoQXH8Wux1CN/wAaL+V8/wAbbElDQN8xYelSZM4P8hJsNYlpnXvHj4It9jtjpHu991j6dZUqv9K3m3pRUNPeerKf/ay/teEJDL/TmX4WTMscMYRR2DpkwZb7fqUcZ+VjtjphH/pus2Eko7mt7VVOw+L2vv4+W3ebDb4ChPvusur8KnRe4f8AyR1//8QAKhABAAIBAwQCAgMAAwEBAAAAAREhMQAwQVFhcYFwkSBAobHhUMHwEND/2gAIAQEAAT8Q/wD0kFtL/wC30GnbWygoyAJfWkkdpg2Oks+tcYRP8DBOgRl5gapjQIMxiZfrTBXBE8J8zNWo40zBSuwLpf3uXjtyO6nfUjbCGjhki6kqkqlng/rS9oZXp6yn8QSBGRGx0oAhIdMUQ09qSXackH2LRehgNj3qn1oeQCEZXhCKas6AEEbE5+YGKypi+Lq90auhEP1BI+0dHl+vj8KYOxRuoCIjInGobaEw9AoNRUFFjrFI16UNAfrVmwqRPHy4A1GXjWsdA6lnuiHBlWL5djTTlqQZQVe7+kJvKw03LYT2O7RItH374Fe10T8tSNxJ9ErFPQW5hen0sibKQNDoZ5l/VYCQhCJhHRT/ACzwwpsjhYGFxo2VDZenZMKhGk+VkhgSqwBqagzhuFY4HDqNjlGEusqLVeX9gE9El1nQTAzhE1Fr10II5EOuEsU+VEBACVWg0qfD62F+QWbFSqqy/tL3Uiq95DoWrORm6mFoJROThwIT5SSGBKrAGlUcXwkL8gs2KlVVl3aC/i+3rRcmtSD/AK0iUikSE3V6PGs2ztIvA9l0abQvaDlSI4T5QQEAJVaDSp4PrAX5BZsVKqrKyu1D70j3HxvkaB2wijHiQf8A8GgAZsqev9NWp3EMMEdST26j6VhmOtaFg4yCSfejJHmSQnvpJTWHy8n8qjV8EvYgjDzLxoTZMFxwEPh08ciESEdpsRPqNPwYCZtkaJZUJMkCUiMz8nJDAlVgDSqOL4yF+QWbFSqqy7KcNIeJo4j5QDTqVkDmwIXhPIdEFuBR3QW9VldlBESRyaRGjsogPPCXrqPJFCF9ZOGbbU6ReXEzJzLXefJpEABKrQaVPB9Ai/Qs2KlVVlb2QqTj7Ibb2vkZrUMgoYYdyu2DgN1q0iSRCI0icagMSeM0qwntdGKMFUQosdgRjhaS8qQjougL3Ukdd4Y7wPPyWgIASq0GlTQfWQvyCzhUqqsuzKXvYrrXIGj8F4KnAgRAD9BktUYcqHM4yKMlabJMdpCI/wAOEhNhucYqMpMATB/I/JSQwJVYA0qji+AhfkFmxUqqsuzLZ1YvrXgNH4LwEl/xqAMAfpPrvEksqjJkvkHohyzgIUZE4fzIYEHAQPZiE5F0wAIGYCbv9B8kIEACVcBpU8H1sL8gs2KlVVlb2ZpW7F9a8Br1l4AZ/wCNQBQB+o2I8fmlgUXjgHUbCrDXpSWLsp+RyQwJVYA0qji+MhfkFmxUqqsuyOv7YvrXIGj8F4A5/wCNQBQB+rToJZhz0Aw8aa+nBAogdhA7J+arYjggQ3irHSfkZAQAlVoNKmg+kBfkFmxUqqsrezLPXYvrXIGvWXgFPfjUAYA/XFhTisI3MsuYfmgBIIQtnk0dANMPyI0iAAlVoNK3AvjIX5BZwqVVWXZO1lsX1rwEj1l4AZ/41AFAH7Eto4CeCeHxrYOd2FoSHtHxcEXLW+0DqBa6eQSOo5VRMKZgsv8ATSGBKrAGlUcfQAv0LNipVVZdmanexfWuQNH4LwEl/wAagDAH7JsFawJE+l0QMcCJQPCA+/zluZNcJyeV/Xxai5a32gdQLXTcGRdAoomXAo5VOHE3UgLEbE0AG4QdT4AH9y5H9FAQAlVoNKnw+thfkFmxUqqsrezMZ7YvrXgNH4LwAz/xqAKAP26bQpBMx7C9/mTDWWMyu+o+x8WOsWt9gHUC10IBcegUUTLgUcr/APG82TVSgsRJE0CXQA9T4Af9y5HfSGBKrAGlUcXwkL8gs2KlVVl2ZafrF9a5A0fgvAXP9GoAoA/cqwE4iyz6D860lEZQH9vitFy1vtA6gWukYtj6RRRMuBRyv4M342qkQsRJk0KCQAVA+AB/cuR3UBACVWg0qeD6wF+QWbFSqqysrszU72L61yBo/BeAGf8AjUAUAful0xkyrWfx+ZZYr/o/FSLlrfaB1AtdIQfn0CiiZcCjlfyVnRNVIhYiSJoBGwAqnaAH9y5HbSGBKrAGlUcXxkL8gs2KlVVl2TsdbF9a8Bo/BeAOf+NQBQB+8YIlRkJ49LPP5oaS7PKR/HxSb8tb7AOoFroGCR9IoomXAo5XYRgQC5B1mCIudQ566SseD4qe87SIACVWg0qeD6BF+hZsVKqrK3syz12L61yBr1l4AZ/41AFAG0kCJIIlVaAOdE2I9PiQE7n6Yp3kIAMrp4p9cr+H81XvVkV/tfFCLlrfaB1AtdNwZF0CiiZcCjldhHpDX0AWqoAaG8QkepeFDb4ly7SAgBKrQaVNB9ZC/ILOFSqqy7JWOti+teA0fgvADH/GoAoA2mreJBEqrQBzp6EjQGArC5f9pYcCr6yypscYXIhUBAakCkR/SlwADZY3eP6XjTZykq5X87UaohIV9Kdn4nR9tb7QOoFroUDR9AoomXAo5XYSyA11AFqrAGjPYJD2UwobfEuXaSGBKrAGlUcXwEL8gs2KlVVl2ZbOrF9a8Bo/BeAkv+NQBgDaahEAESqtAHOmoZNAYCsLl/2/+GHAtXVllayeM2kQoAgMSBSJ+ielVzZCd1i7Hb83YCPlUB9uhpEQIrG92S934mQctT7QOoFroEnR9IoomXAo5XYd7wVxAFqqAGhPAJD1KYUNvXBcu0gQAJVwGlTwfWwvyCzYqVVWVvZmlbsX1rwGvWXgBn/jUAUAbTVvEgiVVoA509ERoDAVhcv+34Sj4MvrLKmxxYuRCoCA1IFIjvzjewCJPg9uiIVUOAegA8z+a8SlEhmugvkD4mRdtb7QOoFrpCD8+gUUTLgUcrsJQAaygC1VgDRuIEj2XhQ2+Jcu0kMCVWANKo4vjIX5BZsVKqrLsjr+2L61yBo/BeAOf+NQBQBtNWgSCJVWgDnT0MmgMBYLl/2/KMGBS+ssrWRxhciFCEQqQKRN5eRzTBapytPY9dg/hlgYRjp/3dPiV3y1vtA6gWugYLH0iiiZcCjldhHpDX0AWqoAaJcEkPUphRl8S5dpAQAlVoNKmg+kBfkFmxUqqsrezLPXYvrXIGvWXgFPfjUAYA2mrQNBEqrQBzp6AzQmArC5f9tgw4ic+ssqbHHUkQix3JiRkRHcg2l8mMPAmlnLHLSh0sLyHuv5lThGQQDlVDQJJz/21ceA+JEHLU+0DqBa6Qg+PoFFEy4FHK7CPSGvoAtVQA0AgxI9l4UNviXLtIgAJVaDStwL4yF+QWcKlVVl2TtZbF9a8BI9ZeAGf+NQBQBtNWgaCJVWgDnT0JGgMBWFy/7bJ4HqmH2BLfEqXQ5BmlIAoAAA2xYFF6VHwKcI9C0GdBCb7AfbK27F+vaaY8ihXTvHxIi5a32gdQLXQoSj6RRRMuBRyuwh2hr6ALVUANFYgSHsphQ2+Jcu0kMCVWANKo4+gBfoWbFSqqy7M1O9i+tcgaPwXgJL/jUAYA2moRABEqrQBzpqGzAmArC5f9tk0Tglh9gS3xKl0CZ5pSAKACANs2JRulR8DK0PQtCeoLEpYDlyrdgmTTSeAdVQ0MQfBImeae13fEaLlrfaB1AtdNwZF0CiiZcCjldh3vBXEAWqoAaO8QkepcKG3rguXaQEAJVaDSp8PrYX5BZsVKqrK3szGe2L614DR+C8AM/8agCgDaat4kESqtAHOnoCNAYCsLl/22TwPEWH2BLfEqXQJHmlIAoAIA2z3nF6VHwMrQ9CgZ6gsdiDlyrdl1RrcmQDmxOtfiM6xa32AdQLXQgFx6BRRMuBRyuwlABrKALVWANGIgSHsvCht8S5dpIYEqsAaVRxfCQvyCzYqVVWXZlp+sX1rkDR+C8Bc/0agCgDaahEAESqtAHOnoZNAYCwXL/tsmhecsPsCW+JUugTPNKQBQAQBtniIJ0qPgUrQ9C0J6gsSlgOXKt2ZvvpRtg4pg6y4HUe+AgMB3eV5VfiJFy1vtA6gWukYtj6RRRMuBRyuw73griALVUANG/AWFKUwoy9cFy7SAgBKrQaVPB9YC/ILNipVVZWV2Zqd7F9a5A0fgvADP8AxqAKANpq0DQRKq0Ac6ajI0JgKwuX/bZMAsZYfYEt8SpdAkeaUgCgAgDbFSUfpUfAytD0KB3qCxPBBy5VuyMPAB+vitehoW4B0zLOTxA7r8RIuWt9oHUC10hB+fQKKJlwKOV2EOENZQBaqgBoFACR7LwobfEuXaSGBKrAGlUcXxkL8gs2KlVVl2TsdbF9a8Bo/BeAOf8AjUAUAbTVoGgiVVoA501DRoDAVhcv+2yaB75h9gS3xKl0CZ5pSAKACANsWBQelR8CnCPQpEeoLFlgOXKt2ZhX0kZXgC1UArpsRkwGZHbKJeRLwHxC35a32AdQLXQMEj6RRRMuBRyuwh2hr6ALVUANGoCSHsphQ2+Jcu0iAAlVoNKng+gRfoWbFSqqyt7Ms9di+tcga9ZeAGf+NQBQBtNWgSCJVWgDnTUJmhMBWFy/7bIIXHLD7AlviVLoEzzSkAUAEAbdAGr0qPgZWh6FIz1BYngg5cq3ZnE3SRyuALVQCujaNjki7rBzk7agPiFFy1vtA6gWum4Mi6BRRMuBRyuwj0hr6ALVUANDeISPUvCht8S5dpAQAlVoNKmg+shfkFnCpVVZdkrHWxfWvAaPwXgBj/jUAUAbTVvEgiVVoA509CRoDAVhcv8AtskgeKsPsCW+JUugSPNKQBQAQBtisKJ0qPgUrQ9CgZ6gsdiDlyrdk5f5EjK9AlVQCug4vjki1mwc5MlqA+IUfbW+0DqBa6FA0fQKKJlwKOV2EsgNdQBaqwBoz2CQ9lMKG3xLl2khgSqwBpVHF8BC/ILNipVVZdmWzqxfWvAaPwXgJL/jUAYA2moRABEqrQBzpqGTQGArC5f9tk0Lylh9gS3xKl0CZ5pSAKACANuOFROlR8ClaHoWhPUFiUsBy5VuzOK+EjlcAWqgFdC0WXkXdYOcmS1AfEKDlqfaB1AtdAk6PpFFEy4FHK7DveCuIAtVQA0J4BIepTCht64Ll2kCABKuA0qeD62F+QWbFSqqyt7M0rdi+teA16y8AM/8agCgDaat4kESqtAHOnoiNAYCsLl/22TAPHWH2BLfEqXQJHmlIAoAIA26RlfrUfAytD0KBnqCx2IOXKt2ZwfwkcvAFqoBXRGN9yRazYOaLJagPiFF21vtA6gWukIPz6BRRMuBRyuwlABrKALVWANG4gSPZeFDb4ly7SQwJVYA0qji+MhfkFmxUqqsuyOv7YvrXIGj8F4A5/41AFAG01aBIIlVaAOdPQyaAwFguX/bZNG89YfYEt8SpdAmeaUgCgAgDbjhUTpUfApWh6FIz1BYssBy5VuzPL+Ajl4AtVAK6Hp6OSLmbBzkyWoD4hcs+9TySqC1dAwWPpFFEy4FHK7CPSGvoAtVQA0S4JIepTCjL4ly7SAgBKrQaVNB9IC/ILNipVVZW9mWeuxfWuQNesvAKe/GoAwBtNWgaCJVWgDnT0BmhMBWFy/7bJgFjLD7AlviVLoEzzSkAUAEAbZror9Kj4GVoehSM9SWJ4IOXKt2ZxN0kcrgC1UAro9G05IuZsHOTtqA+ITaO1DSq/0ZWA0rQbkoogpDA9DMzsI9Ia+gC1VADQCDEj2XhQ2+Jcu0iAAlVoNK3AvjIX5BZwqVVWXZO1lsX1rwEj1l4AZ/41AFAG01aBoIlVaAOdPQkaAwFYXL/tsngeqYfYEt8SpdAkeaUgCgAgDbFgUXpUfApwj0KRnqCxZYDlyrdmad9JGV4AlVQCuj4fXkWs2DnJktQHxCXEShgAyrqYFETThkZMgwp6NlDtDX0AWqoAaKxAkPZTCht8S5dpIYEqsAaVRx9AC/Qs2KlVVl2Zqd7F9a5A0fgvASX/GoAwBtNQiACJVWgDnTUNmBMBWFy/7bJonBLD7AlviVLoEzzSkAUAEAbZsSjdKj4GVoehaE9QWJSwHLlW7M4r4SOVwBaqAV0NXWci7rBzkiWoD4iTZQMJoJgc8ni2Xe8FcQBaqgBo7xCR6lwobeuC5dpAQAlVoNKnw+thfkFmxUqqsrezMZ7YvrXgNH4LwAz/xqAKANpq3iQRKq0Ac6egI0BgKwuX/bZPA8RYfYEt8SpdAkeaUgCgAgDbPecXpUfAytD0KBnqCx2IOXKt2QjfmSMrwBaqAV0RjfckWs2DmiyWoD4iANFcgtOUWhhNJltOVkvgMBwAbCUAGsoAtVYA0YiBIey8KG3xLl2khgSqwBpVHF8JC/ILNipVVZdmWn6xfWuQNH4LwFz/RqAKANpqEQARKq0Ac6ehk0BgLBcv8AtsmhecsPsCW+JUugTPNKQBQAQBtniIJ0qPgUrQ9C0J6gsSlgOXKt2Z8/wkcvAFqoBXQtFl5F3WDnJktQHxE4hSEAMq8GqojLLCDmp/YbCkGLKoAWqoBouwSQ5SmFDb1wXLtICAEqtBpU8H1gL8gs2KlVVlZXZmp3sX1rkDR+C8AM/wDGoAoA2mrQNBEqrQBzpqMjQmArC5f9tkwCxlh9gS3xKl0CR5pSAKACANsVJR+lR8DK0PQoHeoLE8EHLlW7Mwv6SOXgC1UArrN08yLZrBzkyWoD4jw+JOEgORRA9zxsZ0KaJJIEjME1SReWtrCIL41mwxImh5LCqy7J2Oti+teA0fgvAHP/ABqAKANpq0DQRKq0Ac6aho0BgKwuX/bZNA98w+wJb4lS6BM80pAFABAG2LAoPSo+BThHoUiPUFiywHLlW7Mwr6SMrwBaqAV0fLZfRazYOcmS1AfEbfbDgaUeABdSLIdpiEdXJ32J0R8EdBOWh6ocHQAgBABQbUgCsDKO4AkdUOumRY4XqTlVVdmWeuxfWuQNesvADP8AxqAKANpq0CQRKq0Ac6ahM0JgKwuX/bZBC45YfYEt8SpdAmeaUgCgAgDboA1elR8DK0PQpGeoLE8EHLlW7M4m6SOVwBaqAV0bRsckXdYOcnbUB8STDUvo8h2mbEWMfs15fvFDkGjnP/gLTlJTKq7TlezgZUeABdM7KRZAAcJLdezZKx1sX1rwGj8F4AY/41AFAG01bxIIlVaAOdPQkaAwFYXL/tskgeKsPsCW+JUugSPNKQBQAQBtisKJ0qPgUrQ9CgZ6gsdiDlyrdk5f5EjK9AlVQCug4vjki1mwc5MlqA+JcZA0jdH3k+n8wVAJXQJ3nConqlMXY423/OPEaD7NnZS2dWL614DR+C8BJf8AGoAwBtNQiACJVWgDnTUMmgMBWFy/7bJoXlLD7AlviVLoEzzSkAUAEAbccKidKj4FK0PQtCeoLEpYDlyrdmcV8JHK4AtVAK6FosvIu6wc5MlqA+JT9C7y+Qmhprn7yqQ8qq/mz2m+EpfECc6AAgBABQbaSH/NBCJ1jwBsTSt2L614DXrLwAz/AMagCgDaat4kESqtAHOnoiNAYCsLl/22TAPHWH2BLfEqXQJHmlIAoAIA26RlfrUfAytD0KBnqCx2IOXKt2ZwfwkcvAFqoBXRGN9yRazYOaLJagPiYWgTtoCE6LvOwEJacEYbwqdVthJdLAEr9aYlRI/9KiD1+dXIj6W3AvAFxoGa7ScAMAbTVoEgiVVoA509DJoDAWC5f9tk0bz1h9gS3xKl0CZ5pSAKACANuOFROlR8ClaHoUjPUFiywHLlW7M8v4COXgC1UAroeno5IuZsHOTJagPidUopGBSvoX50nK+JLq+t7NF6CSAwAOgBtqK8sRAjftNMXKKvV/OoB/zmtehE89pq0DQRKq0Ac6egM0JgKwuX/bZMAsZYfYEt8SpdAmeaUgCgAgDbNdFfpUfAytD0KRnqSxPBBy5VuzOJukjlcAWqgFdHo2nJFzNg5ydtQHxP2uBwCr9GotwMplD+EfnGVJWGkO4eurruNsGsoRjPYCAICICKquNlq0DQRKq0Ac6ehI0BgKwuX/bZPA9Uw+wJb4lS6BI80pAFABAG2LAovSo+BThHoUjPUFiywHLlW7M076SMrwBKqgFdHw+vItZsHOTJagPiidIRoQq7Y0+1qwaH/uy7lVGWiYgn72CszjAHmQA9zYahEAESqtAHOmobMCYCsLl/22TROCWH2BLfEqXQJnmlIAoAIA2zYlG6VHwMrQ9C0J6gsSlgOXKt2ZxXwkcrgC1UAroaus5F3WDnJEtQHxSs9sB5zPFfzPxTEJUQj26xpDIJ3+TcPeBkTI7+U1/I9QMP5lFyQ30dHD0735tW8SCJVWgDnT0BGgMBWFy/7bJ4HiLD7AlviVLoEjzSkAUAEAbZ7zi9Kj4GVoehQM9QWOxBy5VuyEb8yRleALVQCuiMb7ki1mwc0WS1AfFUMBJK1xjyPzpimMwQ/bupJDpaNmoMa9T1+YBoVIoI3YdmHjRjjgMCgtHDgQlfis14wYlRoAuXT0digMBYLl/22TQvOWH2BLfEqXQJnmlIAoAIA2zxEE6VHwKVoehaE9QWJSwHLlW7M+f4SOXgC1UAroWiy8i7rBzkyWoD4rjWGCTiEK7z9H861Wu4B3q9RIcBy8KOuwDogZO8mu9kyI6USxygqB8Rg6tHDKUT2Ej2aZCYIqDhlFaMxeGBYFbeoGmXGpejlE+B1bQwCxlh9gS3xKl0CR5pSAKACANsVJR+lR8DK0PQoHeoLE8EHLlW7Mwv6SOXgC1UArrN08yLZrBzkyWoD4sXkFXlSH+v5o/IsytsHil3hD5qCVcg83raa8AaEGETh2ZQl5b+mh4XiP7x2zQPfMPsCW+JUugTPNKQBQAQBtiwKD0qPgU4R6FIj1BYssBy5VuzMK+kjK8AWqgFdHy2X0Ws2DnJktQHxb/7nX+trdv/ANQKMT4EfqAQuOWH2BLfEqXQJnmlIAoAIA26ANXpUfAytD0KRnqCxPBBy5VuzOJukjlcAWqgFdG0bHJF3WDnJ21AfFwwKy7KZB3P7H5g7AAEwHPlvioiHKXe9HJyk50uhlweY7mMHv8ApEgeKsPsCW+JUugSPNKQBQAQBtisKJ0qPgUrQ9CgZ6gsdiDlyrdk5f5EjK9AlVQCug4vjki1mwc5MlqA+L8lsXxUT/7X5tkJR4f6we/0GjVkgK1upyZOi6V3tJhCD+gaF5Sw+wJb4lS6BM80pAFABAG3HConSo+BStD0LQnqCxKWA5cq3ZnFfCRyuALVQCuhaLLyLusHOTJagPjBZJi0wQntH1+bKB4OKO9mRoAQRJE5P0AuVjiZSMnH2hWmXsHPdZJ4RN1OJACVXAGrtu65os4HDkgyCR5pSAKACANukZX61HwMrQ9CgZ6gsdiDlyrdmcH8JHLwBaqAV0RjfckWs2DmiyWoD4xrXQksODw7wP5oACY4RkdC5n+ZsU+8P0VBQiGukk7qVyOr9DjSdGWAzPydHqkQiQj0dor2Ac68votcDo3mHlWxny9DcRwqJ0qPgUrQ9CkZ6gsWWA5cq3Znl/ARy8AWqgFdD09HJFzNg5yZLUB8ZE0ka9P9qaUW07IMJ+Y4TE5G/t8QfpIJCSOgK6ox9Rn853NMz6gABQDV8Hsal4apodYGPedYz+BsYCUnqFjQLnEJi7hR2Hc1F+GFH3Mh2QdR0cUBQwigDcNdFfpUfAytD0KRnqSxPBBy5VuzOJukjlcAWqgFdHo2nJFzNg5ydtQHxmgARIRwmgKokIz87LvzwExAJvZ7aH6tKLBg+R0ayh7AFR7jp2RsuUvi+tGipl9HDFOyaJmbBydRmPWgzhAKHgG8LAovSo+BThHoUjPUFiywHLlW7M076SMrwBKqgFdHw+vItZsHOTJagPjWpMyKUnPd+j+akUcYkK8EEezpkJeTXg9yYThH/hjYlG6VHwMrQ9C0J6gsSlgOXKt2ZxXwkcrgC1UAroaus5F3WDnJEtQHxsquiAlx3gNhpy6f2ogX1/woe84vSo+BlaHoUDPUFjsQcuVbshG/MkZXgC1UArojG+5ItZsHNFktQHxuQ9eCb7fJMnjRikRIkoDsIHZPzegajH9xJTsNOrfiQifTjj/gzxEE6VHwKVoehaE9QWJSwHLlW7M+f4SOXgC1UAroWiy8i7rBzkyWoD45dyNVkC+8467E62DsaheVJdEcf8EKko/So+BlaHoUDvUFieCDlyrdmYX9JHLwBaqAV1m6eZFs1g5yZLUB8dOZgksKJ4jLqtvJcCYROEfzUqJELZPI4TkU0EnCsFSM8xyPUf8AgBYFB6VHwKcI9CkR6gsWWA5cq3ZmFfSRleALVQCuj5bL6LWbBzkyWoD486Vb1P4qJQDo+mwznJoPFgznkwups+6BueiYRsRH96gDV6VHwMrQ9CkZ6gsTwQcuVbszibpI5XAFqoBXRtGxyRd1g5ydtQHx6nooFkUz0Z7UuDU9L5zyDhETYtScUkRF18HBCywe0uISBSIzP7grCidKj4FK0PQoGeoLHYg5cq3ZOX+RIyvQJVUAroOL45ItZsHOTJagPj9Y6oLIQwYEhenZBuY4uLRlVlysnJog+BhUgUiftAb2hE4HCpLQd4NJEeqLEpYDlyrdmcV8JHK4AtVAK6FosvIu6wc5MlqA+QOTxWxZHgMI8IOkmOfFpgcSYOA7JNtrzC2ig6qTsN6lWGwrvJPmB/YZM5MUcJ5TwALHryRcSOj4wPct7M4P4SOXgC1UArojG+5ItZsHNFktQHyETlI4YWOgB26BmcuZBcIeTZNmQnlPtdBA4dL+Kh4w2iDsYcnP6rVIEH5SAPOnjNa/Gi5diOhzpcdW1EqLV2Z5fwEcvAFqoBXQ9PRyRczYOcmS1AfIiMjWuHEZM9EZCUDkQiQjsiJijMsBYnU1EQpoxiVSHEKaRopLNvER/Ud/0UQAEqtBoukdlnEmOR4DOl4/ZyOiZ769g2pxN0kcrgC1UAro9G05IuZsHOTtqA+Ru8yQaAc7SKsVMbQGbOr7IPrVESt+olCXyJ0rA8IHXI5eLJ0CeZCROybiKsBceWT41Je4ZDqRg8s9TOhJ5E6vgMPaB6aVSirau1NO+kjK8ASqoBXR8PryLWbBzkyWoD5HUb48gQiORONLCuRnzlkyiXM6NvGnGEErRxhewag3cIQ5UJnwGollCxnVgQ0iEYCgejqBMImU/wDU0fcsJmmbvIZ4S3o2Bdf73Ro5iNfQJdWODMy8NGisoXbEky+9GS7AondJu40TTqptPSTDsQbgqZz5eqYAtUAZ0NXWci7rBzkiWoD5JMO6BIjkTk0diUKgskOeX30Kp8+AYRGxHjfxZqMQcAP71gRaWHi9fymH9v0EMAJmWhwT65cAuo69QyOQZQeJlyzx8mLExGHGCZegvhyIT0uLoHCZBImH/gAA0UQmQqngwcjQtmKAYhhy9h2D5PTNKDOKpy5mXZvTW7yQJq09ltwv7oJcOE2AFq9DUmSlMcyQ5vM5cNCTUAfgoHyiSbiCZDICJw6fTCpyuVb0vUhNWTAMRrHVJ+0xkzqpOU8O5NC6eaGxZYdq3VflUjxsEQ/wRaGtFoEgMdVG+gDzy0yyh3Jsb3T+sFHUQOTFP2byZ0FCYCZcypB5XgaFOkoMQAKAOD5YfK5Rp5AMPcvSSzpa3QMD4UdNXEIjJHlgeLRw1A6uEBHz+gVf0FR6JB3QahDBBxmJxfKTo6i4OiBeSS9yR10AZwCADgPl169iBY7ED6dWMGgg/wATsHUSvlap0xN70qX/ADCdQ+wDWc4pJ9GkAIjCOR/Lud0P6NcUfp+aoB3nVxoZcHkn7Iao89STygPM/Gg3hzJFOYQ+tBd1B/7CB8ydhOo/TpST9Uft0kTGSZuZnJpxNKa3xDHrRUAIj64po8zBYMnZ67aXUaQVIZJSX3qkfghfo0AAACAOP/0jn//Z + + 2020-06-11T10:10:19.506Z + + + diff --git a/Tests/WitsmlExplorer.IntegrationTests/Witsml/GetFromStore/AttachmentTests.cs b/Tests/WitsmlExplorer.IntegrationTests/Witsml/GetFromStore/AttachmentTests.cs new file mode 100644 index 000000000..469b05bfd --- /dev/null +++ b/Tests/WitsmlExplorer.IntegrationTests/Witsml/GetFromStore/AttachmentTests.cs @@ -0,0 +1,44 @@ +using System.Threading.Tasks; + +using Witsml; +using Witsml.Data; +using Witsml.ServiceReference; +using Witsml.Xml; + +using WitsmlExplorer.Api.Query; + +using Xunit; + +namespace WitsmlExplorer.IntegrationTests.Witsml.GetFromStore +{ + public partial class AttachmentTests + { + private readonly WitsmlClient _client; + + public AttachmentTests() + { + WitsmlConfiguration config = ConfigurationReader.GetWitsmlConfiguration(); + _client = new WitsmlClient(options => + { + options.Hostname = config.Hostname; + options.Credentials = new WitsmlCredentials(config.Username, config.Password); + }); + } + + [Fact(Skip = "Should only be run manually")] + public async Task GetAttachmentSerializesCorrectly() + { + // if the following attachment does not exit, add the file attachment to the server manually + // this affects wellUid, wellboreUid, nameWell, and nameWellbore values during comparison so adjust them here and in the file accordingly + string wellUid = "8c77de13-4fad-4b2e-ba3d-7e6b0e35a394"; + string wellboreUid = "ae75db48-5cef-4bd1-9ddf-6035b0d2cd49"; + string attachmentUid = "attachmentUid"; + WitsmlAttachments queryExisting = AttachmentQueries.GetWitsmlAttachment(wellUid, wellboreUid, attachmentUid); + WitsmlAttachments serverAttachment = await _client.GetFromStoreAsync(queryExisting, new OptionsIn(ReturnElements.All)); + string responseXml = XmlHelper.Serialize(serverAttachment); + string serverAttachmentXml = TestUtils.CleanResponse(responseXml); + string fileAttachmentXml = TestUtils.GetTestXml("Attachment"); + Assert.Equal(fileAttachmentXml, serverAttachmentXml); + } + } +}