From 8bf4f81a04c91a09602ffd44754b8eaf069bba1b Mon Sep 17 00:00:00 2001 From: "kay.one" Date: Thu, 6 Oct 2011 23:36:04 -0700 Subject: [PATCH] More nzbdrone.exe refactoring. --- NzbDrone.App.Test/ApplicationTest.cs | 39 ++++ NzbDrone.App.Test/AutoMoq/AutoMoqer.cs | 166 ++++++++++++++++ NzbDrone.App.Test/AutoMoq/AutoMoqerTest.cs | 187 ++++++++++++++++++ NzbDrone.App.Test/AutoMoq/License.txt | 22 +++ .../Unity/AutoMockingBuilderStrategy.cs | 84 ++++++++ .../Unity/AutoMockingContainerExtension.cs | 40 ++++ NzbDrone.App.Test/IISProviderTest.cs | 38 ++++ NzbDrone.App.Test/NzbDrone.App.Test.csproj | 26 +++ NzbDrone.App.Test/ProcessProviderTests.cs | 53 +++++ NzbDrone.App.Test/packages.config | 3 + .../NzbDrone.Test.Dummy.csproj | 57 ++++++ NzbDrone.Test.Dummy/Program.cs | 17 ++ .../Properties/AssemblyInfo.cs | 36 ++++ NzbDrone.sln | 15 ++ NzbDrone/Application.cs | 59 +----- NzbDrone/NzbDrone.csproj | 2 + NzbDrone/ProcessAttacher.cs | 5 - NzbDrone/ProcessInfo.cs | 18 ++ NzbDrone/Program.cs | 15 +- NzbDrone/Properties/AssemblyInfo.cs | 2 +- NzbDrone/Providers/ConfigProvider.cs | 58 +++++- NzbDrone/Providers/ConsoleProvider.cs | 3 - NzbDrone/Providers/DebuggerProvider.cs | 7 +- NzbDrone/Providers/IISProvider.cs | 179 ++++------------- NzbDrone/Providers/MonitoringProvider.cs | 115 +++++++++++ NzbDrone/Providers/ProcessProvider.cs | 78 ++++++-- NzbDrone/Providers/WebClientProvider.cs | 2 +- packages/NBuilder.3.0.1/NBuilder.3.0.1.nupkg | Bin 0 -> 100571 bytes .../NBuilder.3.0.1/lib/FizzWare.NBuilder.dll | Bin 0 -> 93696 bytes .../FizzWare.NBuilder-Silverlight.dll | Bin 0 -> 93184 bytes 30 files changed, 1092 insertions(+), 234 deletions(-) create mode 100644 NzbDrone.App.Test/ApplicationTest.cs create mode 100644 NzbDrone.App.Test/AutoMoq/AutoMoqer.cs create mode 100644 NzbDrone.App.Test/AutoMoq/AutoMoqerTest.cs create mode 100644 NzbDrone.App.Test/AutoMoq/License.txt create mode 100644 NzbDrone.App.Test/AutoMoq/Unity/AutoMockingBuilderStrategy.cs create mode 100644 NzbDrone.App.Test/AutoMoq/Unity/AutoMockingContainerExtension.cs create mode 100644 NzbDrone.App.Test/IISProviderTest.cs create mode 100644 NzbDrone.App.Test/ProcessProviderTests.cs create mode 100644 NzbDrone.Test.Dummy/NzbDrone.Test.Dummy.csproj create mode 100644 NzbDrone.Test.Dummy/Program.cs create mode 100644 NzbDrone.Test.Dummy/Properties/AssemblyInfo.cs create mode 100644 NzbDrone/ProcessInfo.cs create mode 100644 NzbDrone/Providers/MonitoringProvider.cs create mode 100644 packages/NBuilder.3.0.1/NBuilder.3.0.1.nupkg create mode 100644 packages/NBuilder.3.0.1/lib/FizzWare.NBuilder.dll create mode 100644 packages/NBuilder.3.0.1/lib/Silverlight 3.0/FizzWare.NBuilder-Silverlight.dll diff --git a/NzbDrone.App.Test/ApplicationTest.cs b/NzbDrone.App.Test/ApplicationTest.cs new file mode 100644 index 000000000..0713810c5 --- /dev/null +++ b/NzbDrone.App.Test/ApplicationTest.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Text; +using AutoMoq; +using FizzWare.NBuilder; +using FluentAssertions; +using Moq; +using NUnit.Framework; +using NzbDrone.Providers; + +namespace NzbDrone.App.Test +{ + [TestFixture] + public class MonitoringProviderTest + { + + [Test] + public void Ensure_priority_doesnt_fail_on_invalid_iis_proccess_id() + { + var mocker = new AutoMoqer(); + + var processMock = mocker.GetMock(); + processMock.Setup(c => c.GetCurrentProcess()) + .Returns(Builder.CreateNew().With(c => c.Priority == ProcessPriorityClass.Normal).Build()); + + processMock.Setup(c => c.GetProcessById(It.IsAny())).Returns((ProcessInfo)null); + + var subject = mocker.Resolve(); + + + //Act + subject.EnsurePriority(null, null); + } + + + } +} diff --git a/NzbDrone.App.Test/AutoMoq/AutoMoqer.cs b/NzbDrone.App.Test/AutoMoq/AutoMoqer.cs new file mode 100644 index 000000000..27b2eee78 --- /dev/null +++ b/NzbDrone.App.Test/AutoMoq/AutoMoqer.cs @@ -0,0 +1,166 @@ +// ReSharper disable RedundantUsingDirective +using System; +using System.Collections.Generic; +using System.Linq; +using System.Linq.Expressions; +using System.Runtime.CompilerServices; +using AutoMoq.Unity; +using Microsoft.Practices.Unity; +using Moq; +using Moq.Language.Flow; + +[assembly: InternalsVisibleTo("AutoMoq.Tests")] + +namespace AutoMoq +{ + public class AutoMoqer + { + internal readonly MockBehavior DefaultBehavior = MockBehavior.Default; + internal Type ResolveType; + private IUnityContainer container; + private IDictionary registeredMocks; + + public AutoMoqer() + { + SetupAutoMoqer(new UnityContainer()); + } + + public AutoMoqer(MockBehavior defaultBehavior) + { + DefaultBehavior = defaultBehavior; + SetupAutoMoqer(new UnityContainer()); + + } + + internal AutoMoqer(IUnityContainer container) + { + SetupAutoMoqer(container); + } + + public virtual T Resolve() + { + ResolveType = typeof(T); + var result = container.Resolve(); + SetConstant(result); + ResolveType = null; + return result; + } + + public virtual Mock GetMock() where T : class + { + return GetMock(DefaultBehavior); + } + + public virtual Mock GetMock(MockBehavior behavior) where T : class + { + ResolveType = null; + var type = GetTheMockType(); + if (GetMockHasNotBeenCalledForThisType(type)) + { + CreateANewMockAndRegisterIt(type, behavior); + } + + var mock = TheRegisteredMockForThisType(type); + + if (behavior != MockBehavior.Default && mock.Behavior == MockBehavior.Default) + { + throw new InvalidOperationException("Unable to change be behaviour of a an existing mock."); + } + + return mock; + } + + internal virtual void SetMock(Type type, Mock mock) + { + if (registeredMocks.ContainsKey(type) == false) + registeredMocks.Add(type, mock); + } + + public virtual void SetConstant(T instance) + { + container.RegisterInstance(instance); + SetMock(instance.GetType(), null); + } + + public ISetup Setup(Expression> expression) where T : class + { + return GetMock().Setup(expression); + } + + public ISetup Setup(Expression> expression) where T : class + { + return GetMock().Setup(expression); + } + + public void Verify(Expression> expression) where T : class + { + GetMock().Verify(expression); + } + + public void Verify(Expression> expression, string failMessage) where T : class + { + GetMock().Verify(expression, failMessage); + } + + public void Verify(Expression> expression, Times times) where T : class + { + GetMock().Verify(expression, times); + } + + public void Verify(Expression> expression, Times times, string failMessage) where T : class + { + GetMock().Verify(expression, times, failMessage); + } + + public void VerifyAllMocks() + { + foreach (var registeredMock in registeredMocks) + { + var mock = registeredMock.Value as Mock; + if (mock != null) + mock.VerifyAll(); + } + } + + #region private methods + + private void SetupAutoMoqer(IUnityContainer container) + { + this.container = container; + container.RegisterInstance(this); + + registeredMocks = new Dictionary(); + AddTheAutoMockingContainerExtensionToTheContainer(container); + } + + private static void AddTheAutoMockingContainerExtensionToTheContainer(IUnityContainer container) + { + container.AddNewExtension(); + return; + } + + private Mock TheRegisteredMockForThisType(Type type) where T : class + { + return (Mock)registeredMocks.Where(x => x.Key == type).First().Value; + } + + private void CreateANewMockAndRegisterIt(Type type, MockBehavior behavior) where T : class + { + var mock = new Mock(behavior); + container.RegisterInstance(mock.Object); + SetMock(type, mock); + } + + private bool GetMockHasNotBeenCalledForThisType(Type type) + { + return registeredMocks.ContainsKey(type) == false; + } + + private static Type GetTheMockType() where T : class + { + return typeof(T); + } + + #endregion + } +} \ No newline at end of file diff --git a/NzbDrone.App.Test/AutoMoq/AutoMoqerTest.cs b/NzbDrone.App.Test/AutoMoq/AutoMoqerTest.cs new file mode 100644 index 000000000..4d31e398e --- /dev/null +++ b/NzbDrone.App.Test/AutoMoq/AutoMoqerTest.cs @@ -0,0 +1,187 @@ +// ReSharper disable RedundantUsingDirective +using System; +using AutoMoq; +using Moq; +using NUnit.Framework; + +namespace NzbDrone.Core.Test +{ + [TestFixture] + // ReSharper disable InconsistentNaming + public class AutoMoqerTest + { + [Test] + public void GetMock_on_interface_returns_mock() + { + //Arrange + var mocker = new AutoMoqer(); + + //Act + var mock = mocker.GetMock(); + + //Assert + Assert.IsNotNull(mock); + } + + [Test] + public void GetMock_on_concrete_returns_mock() + { + //Arrange + var mocker = new AutoMoqer(); + + //Act + var mock = mocker.GetMock(); + + //Assert + Assert.IsNotNull(mock); + } + + + [Test] + public void Resolve_doesnt_return_mock() + { + //Arrange + var mocker = new AutoMoqer(); + + //Act + var result = mocker.Resolve().Do(); + + //Assert + Assert.AreEqual("hello", result); + } + + [Test] + public void Resolve_with_dependency_doesnt_return_mock() + { + //Arrange + var mocker = new AutoMoqer(); + + //Act + var result = mocker.Resolve().VirtualMethod(); + + //Assert + Assert.AreEqual("hello", result); + } + + [Test] + public void Resolve_with_mocked_dependency_uses_mock() + { + //Arrange + var mocker = new AutoMoqer(); + + mocker.GetMock() + .Setup(m => m.VirtualMethod()) + .Returns("mocked"); + + //Act + var result = mocker.Resolve().CallVirtualChild(); + + //Assert + Assert.AreEqual("mocked", result); + } + + + [Test] + public void Resolve_with_unbound_concerete_dependency_uses_mock() + { + //Arrange + var mocker = new AutoMoqer(); + + //Act + var result = mocker.Resolve().CallVirtualChild(); + + var mockedResult = new Mock().Object.VirtualMethod(); + + //Assert + Assert.AreEqual(mockedResult, result); + } + + + [Test] + public void Resolve_with_constant_concerete_dependency_uses_constant() + { + //Arrange + var mocker = new AutoMoqer(); + + var constant = new VirtualDependency { PropValue = Guid.NewGuid().ToString() }; + + mocker.SetConstant(constant); + + //Act + var result = mocker.Resolve().GetVirtualProperty(); + + //Assert + Assert.AreEqual(constant.PropValue, result); + } + } + + public class ConcreteClass + { + public string Do() + { + return "hello"; + } + } + + public class Dependency : IDependency + { + } + + public interface IDependency + { + } + + public class ClassWithDependencies + { + public ClassWithDependencies(IDependency dependency) + { + Dependency = dependency; + } + + public IDependency Dependency { get; set; } + } + + public class ClassWithVirtualDependencies + { + private readonly VirtualDependency _virtualDependency; + + public ClassWithVirtualDependencies(IDependency dependency, VirtualDependency virtualDependency) + { + _virtualDependency = virtualDependency; + Dependency = dependency; + } + + public IDependency Dependency { get; set; } + + public string CallVirtualChild() + { + return _virtualDependency.VirtualMethod(); + } + + public string GetVirtualProperty() + { + return _virtualDependency.PropValue; + } + } + + public class VirtualDependency + { + private readonly IDependency _dependency; + + public VirtualDependency() + { + } + + public VirtualDependency(IDependency dependency) + { + _dependency = dependency; + } + + public string PropValue { get; set; } + + public virtual string VirtualMethod() + { + return "hello"; + } + } +} \ No newline at end of file diff --git a/NzbDrone.App.Test/AutoMoq/License.txt b/NzbDrone.App.Test/AutoMoq/License.txt new file mode 100644 index 000000000..5ead6991a --- /dev/null +++ b/NzbDrone.App.Test/AutoMoq/License.txt @@ -0,0 +1,22 @@ + Copyright (c) 2010 Darren Cauthon + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the "Software"), to deal in the Software without + restriction, including without limitation the rights to use, + copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following + conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + OTHER DEALINGS IN THE SOFTWARE. diff --git a/NzbDrone.App.Test/AutoMoq/Unity/AutoMockingBuilderStrategy.cs b/NzbDrone.App.Test/AutoMoq/Unity/AutoMockingBuilderStrategy.cs new file mode 100644 index 000000000..af393fbee --- /dev/null +++ b/NzbDrone.App.Test/AutoMoq/Unity/AutoMockingBuilderStrategy.cs @@ -0,0 +1,84 @@ +// ReSharper disable RedundantUsingDirective +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using Microsoft.Practices.ObjectBuilder2; +using Microsoft.Practices.Unity; +using Moq; + +namespace AutoMoq.Unity +{ + internal class AutoMockingBuilderStrategy : BuilderStrategy + { + private readonly IUnityContainer _container; + private readonly MockRepository _mockFactory; + private readonly IEnumerable _registeredTypes; + + public AutoMockingBuilderStrategy(IEnumerable registeredTypes, IUnityContainer container) + { + var autoMoqer = container.Resolve(); + _mockFactory = new MockRepository(autoMoqer.DefaultBehavior); + _registeredTypes = registeredTypes; + _container = container; + } + + public override void PreBuildUp(IBuilderContext context) + { + var autoMoqer = _container.Resolve(); + + var type = GetTheTypeFromTheBuilderContext(context); + if (AMockObjectShouldBeCreatedForThisType(type)) + { + var mock = CreateAMockObject(type); + context.Existing = mock.Object; + autoMoqer.SetMock(type, mock); + } + } + + #region private methods + + private bool AMockObjectShouldBeCreatedForThisType(Type type) + { + var mocker = _container.Resolve(); + return TypeIsNotRegistered(type) && (mocker.ResolveType == null || mocker.ResolveType != type); + //return TypeIsNotRegistered(type) && type.IsInterface; + } + + private static Type GetTheTypeFromTheBuilderContext(IBuilderContext context) + { + return (context.OriginalBuildKey).Type; + } + + private bool TypeIsNotRegistered(Type type) + { + return _registeredTypes.Any(x => x.Equals(type)) == false; + } + + private Mock CreateAMockObject(Type type) + { + var createMethod = GenerateAnInterfaceMockCreationMethod(type); + + return InvokeTheMockCreationMethod(createMethod); + } + + private Mock InvokeTheMockCreationMethod(MethodInfo createMethod) + { + return (Mock)createMethod.Invoke(_mockFactory, new object[] { new List().ToArray() }); + } + + private MethodInfo GenerateAnInterfaceMockCreationMethod(Type type) + { + var createMethodWithNoParameters = _mockFactory.GetType().GetMethod("Create", EmptyArgumentList()); + + return createMethodWithNoParameters.MakeGenericMethod(new[] { type }); + } + + private static Type[] EmptyArgumentList() + { + return new[] { typeof(object[]) }; + } + + #endregion + } +} \ No newline at end of file diff --git a/NzbDrone.App.Test/AutoMoq/Unity/AutoMockingContainerExtension.cs b/NzbDrone.App.Test/AutoMoq/Unity/AutoMockingContainerExtension.cs new file mode 100644 index 000000000..d9979df32 --- /dev/null +++ b/NzbDrone.App.Test/AutoMoq/Unity/AutoMockingContainerExtension.cs @@ -0,0 +1,40 @@ +// ReSharper disable RedundantUsingDirective +using System; +using System.Collections.Generic; +using Microsoft.Practices.Unity; +using Microsoft.Practices.Unity.ObjectBuilder; + +namespace AutoMoq.Unity +{ + internal class AutoMockingContainerExtension : UnityContainerExtension + { + private readonly IList registeredTypes = new List(); + + protected override void Initialize() + { + SetEventsOnContainerToTrackAllRegisteredTypes(); + SetBuildingStrategyForBuildingUnregisteredTypes(); + } + + #region private methods + + private void SetEventsOnContainerToTrackAllRegisteredTypes() + { + Context.Registering += ((sender, e) => RegisterType(e.TypeFrom)); + Context.RegisteringInstance += ((sender, e) => RegisterType(e.RegisteredType)); + } + + private void RegisterType(Type typeToRegister) + { + registeredTypes.Add(typeToRegister); + } + + private void SetBuildingStrategyForBuildingUnregisteredTypes() + { + var strategy = new AutoMockingBuilderStrategy(registeredTypes, Container); + Context.Strategies.Add(strategy, UnityBuildStage.PreCreation); + } + + #endregion + } +} \ No newline at end of file diff --git a/NzbDrone.App.Test/IISProviderTest.cs b/NzbDrone.App.Test/IISProviderTest.cs new file mode 100644 index 000000000..29de777be --- /dev/null +++ b/NzbDrone.App.Test/IISProviderTest.cs @@ -0,0 +1,38 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Text; +using AutoMoq; +using FluentAssertions; +using Moq; +using NUnit.Framework; +using NzbDrone.Providers; + +namespace NzbDrone.App.Test +{ + [TestFixture] + public class IISProviderTest + { + + + + [Test] + public void start_should_set_IISProccessId_property() + { + var mocker = new AutoMoqer(); + + var configMock = mocker.GetMock(); + configMock.SetupGet(c => c.IISExePath).Returns("NzbDrone.Test.Dummy.exe"); + + mocker.Resolve(); + + var iisProvider = mocker.Resolve(); + + iisProvider.StartServer(); + + iisProvider.IISProcessId.Should().NotBe(0); + } + + } +} diff --git a/NzbDrone.App.Test/NzbDrone.App.Test.csproj b/NzbDrone.App.Test/NzbDrone.App.Test.csproj index c7e205acb..2c2c2cec6 100644 --- a/NzbDrone.App.Test/NzbDrone.App.Test.csproj +++ b/NzbDrone.App.Test/NzbDrone.App.Test.csproj @@ -31,9 +31,21 @@ 4 + + ..\packages\NBuilder.3.0.1\lib\FizzWare.NBuilder.dll + ..\packages\FluentAssertions.1.5.0.0\Lib\.NetFramework 4.0\FluentAssertions.dll + + ..\packages\CommonServiceLocator.1.0\lib\NET35\Microsoft.Practices.ServiceLocation.dll + + + ..\packages\Unity.2.1.505.0\lib\NET35\Microsoft.Practices.Unity.dll + + + ..\packages\Unity.2.1.505.0\lib\NET35\Microsoft.Practices.Unity.Configuration.dll + ..\packages\Moq.4.0.10827\lib\NET40\Moq.dll @@ -56,6 +68,13 @@ + + + + + + + @@ -64,11 +83,18 @@ + + {FAFB5948-A222-4CF6-AD14-026BE7564802} + NzbDrone.Test.Dummy + {D12F7F2F-8A3C-415F-88FA-6DD061A84869} NzbDrone + + + + \ No newline at end of file diff --git a/NzbDrone.Test.Dummy/Program.cs b/NzbDrone.Test.Dummy/Program.cs new file mode 100644 index 000000000..c5356034a --- /dev/null +++ b/NzbDrone.Test.Dummy/Program.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Text; + +namespace NzbDrone.Test.Dummy +{ + class Program + { + static void Main(string[] args) + { + Console.WriteLine("Dummy process. ID:{0} Path:{1}", Process.GetCurrentProcess().Id, Process.GetCurrentProcess().MainModule.FileName); + Console.ReadLine(); + } + } +} diff --git a/NzbDrone.Test.Dummy/Properties/AssemblyInfo.cs b/NzbDrone.Test.Dummy/Properties/AssemblyInfo.cs new file mode 100644 index 000000000..fc658c5a9 --- /dev/null +++ b/NzbDrone.Test.Dummy/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("NzbDrone.Test.Dummy")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Microsoft")] +[assembly: AssemblyProduct("NzbDrone.Test.Dummy")] +[assembly: AssemblyCopyright("Copyright © Microsoft 2011")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("7b773a86-574d-48c3-9e89-6f2e0dff714b")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/NzbDrone.sln b/NzbDrone.sln index 29c1f300f..86479c451 100644 --- a/NzbDrone.sln +++ b/NzbDrone.sln @@ -13,6 +13,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{57A04B72 EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NzbDrone.App.Test", "NzbDrone.App.Test\NzbDrone.App.Test.csproj", "{C0EA1A40-91AD-4EEB-BD16-2DDDEBD20AE5}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NzbDrone.Test.Dummy", "NzbDrone.Test.Dummy\NzbDrone.Test.Dummy.csproj", "{FAFB5948-A222-4CF6-AD14-026BE7564802}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -91,6 +93,18 @@ Global {C0EA1A40-91AD-4EEB-BD16-2DDDEBD20AE5}.Release|Mixed Platforms.Build.0 = Release|Any CPU {C0EA1A40-91AD-4EEB-BD16-2DDDEBD20AE5}.Release|x64.ActiveCfg = Release|Any CPU {C0EA1A40-91AD-4EEB-BD16-2DDDEBD20AE5}.Release|x86.ActiveCfg = Release|Any CPU + {FAFB5948-A222-4CF6-AD14-026BE7564802}.Debug|Any CPU.ActiveCfg = Debug|x86 + {FAFB5948-A222-4CF6-AD14-026BE7564802}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 + {FAFB5948-A222-4CF6-AD14-026BE7564802}.Debug|Mixed Platforms.Build.0 = Debug|x86 + {FAFB5948-A222-4CF6-AD14-026BE7564802}.Debug|x64.ActiveCfg = Debug|x86 + {FAFB5948-A222-4CF6-AD14-026BE7564802}.Debug|x86.ActiveCfg = Debug|x86 + {FAFB5948-A222-4CF6-AD14-026BE7564802}.Debug|x86.Build.0 = Debug|x86 + {FAFB5948-A222-4CF6-AD14-026BE7564802}.Release|Any CPU.ActiveCfg = Release|x86 + {FAFB5948-A222-4CF6-AD14-026BE7564802}.Release|Mixed Platforms.ActiveCfg = Release|x86 + {FAFB5948-A222-4CF6-AD14-026BE7564802}.Release|Mixed Platforms.Build.0 = Release|x86 + {FAFB5948-A222-4CF6-AD14-026BE7564802}.Release|x64.ActiveCfg = Release|x86 + {FAFB5948-A222-4CF6-AD14-026BE7564802}.Release|x86.ActiveCfg = Release|x86 + {FAFB5948-A222-4CF6-AD14-026BE7564802}.Release|x86.Build.0 = Release|x86 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -98,6 +112,7 @@ Global GlobalSection(NestedProjects) = preSolution {193ADD3B-792B-4173-8E4C-5A3F8F0237F0} = {57A04B72-8088-4F75-A582-1158CF8291F7} {C0EA1A40-91AD-4EEB-BD16-2DDDEBD20AE5} = {57A04B72-8088-4F75-A582-1158CF8291F7} + {FAFB5948-A222-4CF6-AD14-026BE7564802} = {57A04B72-8088-4F75-A582-1158CF8291F7} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution EnterpriseLibraryConfigurationToolBinariesPath = packages\Unity.2.1.505.0\lib\NET35 diff --git a/NzbDrone/Application.cs b/NzbDrone/Application.cs index eee088d86..0e820235b 100644 --- a/NzbDrone/Application.cs +++ b/NzbDrone/Application.cs @@ -1,14 +1,12 @@ using System; -using System.Diagnostics; using System.Net; using System.Threading; -using System.Timers; using NLog; using NzbDrone.Providers; namespace NzbDrone { - internal class Application + public class Application { private static readonly Logger Logger = LogManager.GetLogger("Application"); @@ -36,22 +34,14 @@ public Application(ConfigProvider configProvider, WebClient webClient, IISProvid Logger.Info("Starting NZBDrone. Start-up Path:'{0}'", _configProvider.ApplicationRoot); Thread.CurrentThread.Name = "Host"; - AppDomain.CurrentDomain.UnhandledException += ((s, e) => AppDomainException(e)); - - AppDomain.CurrentDomain.ProcessExit += ProgramExited; - AppDomain.CurrentDomain.DomainUnload += ProgramExited; } - internal void Start() + public void Start() { _iisProvider.StopServer(); _iisProvider.StartServer(); - - _debuggerProvider.Attach(); - var prioCheckTimer = new System.Timers.Timer(5000); - prioCheckTimer.Elapsed += EnsurePriority; - prioCheckTimer.Enabled = true; + _debuggerProvider.Attach(); if (_enviromentProvider.IsUserInteractive && _configProvider.LaunchBrowser) { @@ -79,51 +69,10 @@ internal void Start() } } - internal void Stop() + public void Stop() { } - - - private void AppDomainException(object excepion) - { - Console.WriteLine("EPIC FAIL: {0}", excepion); - Logger.Fatal("EPIC FAIL: {0}", excepion); - -#if RELEASE - new Client - { - ApiKey = "43BBF60A-EB2A-4C1C-B09E-422ADF637265", - ApplicationName = "NZBDrone", - CurrentException = excepion as Exception - }.Submit(); -#endif - } - - - internal void EnsurePriority(object sender, ElapsedEventArgs e) - { - var currentProcessId = _processProvider.GetCurrentProcessId(); - if (_processProvider.GetProcessPriority(currentProcessId) != ProcessPriorityClass.Normal) - { - _processProvider.SetPriority(_processProvider.GetCurrentProcessId(), ProcessPriorityClass.Normal); - } - - var iisProcessPriority = _processProvider.GetProcessPriority(_iisProvider.IISProcessId); - if (iisProcessPriority != ProcessPriorityClass.Normal && iisProcessPriority != ProcessPriorityClass.AboveNormal) - { - _processProvider.SetPriority(_iisProvider.IISProcessId, ProcessPriorityClass.Normal); - } - } - - private void ProgramExited(object sender, EventArgs e) - { - _iisProvider.StopServer(); - } - } - - - } diff --git a/NzbDrone/NzbDrone.csproj b/NzbDrone/NzbDrone.csproj index d18b326ca..b7f3cdc3f 100644 --- a/NzbDrone/NzbDrone.csproj +++ b/NzbDrone/NzbDrone.csproj @@ -86,6 +86,7 @@ + @@ -97,6 +98,7 @@ + diff --git a/NzbDrone/ProcessAttacher.cs b/NzbDrone/ProcessAttacher.cs index a1b7a4e56..851c8b6fb 100644 --- a/NzbDrone/ProcessAttacher.cs +++ b/NzbDrone/ProcessAttacher.cs @@ -10,17 +10,12 @@ using System.Runtime.InteropServices; using EnvDTE; using EnvDTE80; -using NLog; using Thread = System.Threading.Thread; namespace NzbDrone { public class ProcessAttacher { - - private static readonly Logger Logger = LogManager.GetLogger("Application"); - - public static void Attach() { DTE2 dte2; diff --git a/NzbDrone/ProcessInfo.cs b/NzbDrone/ProcessInfo.cs new file mode 100644 index 000000000..06f3ec607 --- /dev/null +++ b/NzbDrone/ProcessInfo.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Text; + +namespace NzbDrone +{ + public class ProcessInfo + { + public int Id { get; set; } + public ProcessPriorityClass Priority { get; set; } + public string StartPath { get; set; } + + public bool HasExited { get; set; } + + } +} diff --git a/NzbDrone/Program.cs b/NzbDrone/Program.cs index 619245c57..58a559e18 100644 --- a/NzbDrone/Program.cs +++ b/NzbDrone/Program.cs @@ -1,10 +1,11 @@ using System; using NLog; using Ninject; +using NzbDrone.Providers; namespace NzbDrone { - internal static class Program + public static class Program { public static readonly StandardKernel Kernel = new StandardKernel(); @@ -14,8 +15,20 @@ private static void Main() { try { + Kernel.Bind().ToSelf().InSingletonScope(); + Kernel.Bind().ToSelf().InSingletonScope(); + Kernel.Bind().ToSelf().InSingletonScope(); + Kernel.Bind().ToSelf().InSingletonScope(); + Kernel.Bind().ToSelf().InSingletonScope(); + Kernel.Bind().ToSelf().InSingletonScope(); + Kernel.Bind().ToSelf().InSingletonScope(); + Kernel.Bind().ToSelf().InSingletonScope(); + Kernel.Bind().ToSelf().InSingletonScope(); + Console.WriteLine("Starting Console."); + Kernel.Get().Start(); Kernel.Get().Start(); + } catch (Exception e) { diff --git a/NzbDrone/Properties/AssemblyInfo.cs b/NzbDrone/Properties/AssemblyInfo.cs index c1e66ade6..75ee50ae9 100644 --- a/NzbDrone/Properties/AssemblyInfo.cs +++ b/NzbDrone/Properties/AssemblyInfo.cs @@ -36,4 +36,4 @@ // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("0.5.0.*")] \ No newline at end of file +[assembly: AssemblyVersion("0.5.0.*")] diff --git a/NzbDrone/Providers/ConfigProvider.cs b/NzbDrone/Providers/ConfigProvider.cs index a05ce610b..859b7a71e 100644 --- a/NzbDrone/Providers/ConfigProvider.cs +++ b/NzbDrone/Providers/ConfigProvider.cs @@ -3,15 +3,17 @@ using System.Linq; using System.Reflection; using System.Xml.Linq; +using System.Xml.XPath; using NLog; using NLog.Config; namespace NzbDrone.Providers { - internal class ConfigProvider + public class ConfigProvider { + private static readonly Logger Logger = LogManager.GetLogger("ConfigProvider"); - internal virtual string ApplicationRoot + public virtual string ApplicationRoot { get { @@ -27,38 +29,74 @@ internal virtual string ApplicationRoot } } - internal virtual int Port + public virtual int Port { get { return GetValueInt("Port"); } } - internal virtual bool LaunchBrowser + public virtual bool LaunchBrowser { get { return GetValueBoolean("LaunchBrowser"); } } - internal virtual string AppDataDirectory + public virtual string AppDataDirectory { get { return Path.Combine(ApplicationRoot, "NzbDrone.Web", "App_Data"); } } - internal virtual string ConfigFile + public virtual string ConfigFile { get { return Path.Combine(AppDataDirectory, "Config.xml"); } } - internal virtual string IISFolder + public virtual string IISFolder { get { return Path.Combine(ApplicationRoot, @"IISExpress\"); } } - internal virtual void ConfigureNlog() + public virtual string IISExePath + { + get { return IISFolder + @"iisexpress.exe"; } + } + + public virtual string IISConfigPath + { + get { return Path.Combine(IISFolder, "AppServer", "applicationhost.config"); } + } + + public virtual void ConfigureNlog() { LogManager.Configuration = new XmlLoggingConfiguration( Path.Combine(ApplicationRoot, "NzbDrone.Web\\log.config"), false); } - internal virtual void CreateDefaultConfigFile() + public virtual void UpdateIISConfig(string configPath) + { + Logger.Info(@"Server configuration file: {0}", configPath); + Logger.Info(@"Configuring server to: [http://localhost:{0}]", Port); + + var configXml = XDocument.Load(configPath); + + var bindings = + configXml.XPathSelectElement("configuration/system.applicationHost/sites").Elements("site").Where( + d => d.Attribute("name").Value.ToLowerInvariant() == "nzbdrone").First().Element("bindings"); + bindings.Descendants().Remove(); + bindings.Add( + new XElement("binding", + new XAttribute("protocol", "http"), + new XAttribute("bindingInformation", String.Format("*:{0}:localhost", Port)) + )); + + bindings.Add( + new XElement("binding", + new XAttribute("protocol", "http"), + new XAttribute("bindingInformation", String.Format("*:{0}:", Port)) + )); + + configXml.Save(configPath); + } + + public virtual void CreateDefaultConfigFile() { //Create the config file here Directory.CreateDirectory(AppDataDirectory); @@ -69,7 +107,7 @@ internal virtual void CreateDefaultConfigFile() } } - internal virtual void WriteDefaultConfig() + public virtual void WriteDefaultConfig() { var xDoc = new XDocument(new XDeclaration("1.0", "utf-8", "yes")); diff --git a/NzbDrone/Providers/ConsoleProvider.cs b/NzbDrone/Providers/ConsoleProvider.cs index 886d636ff..911cc36b8 100644 --- a/NzbDrone/Providers/ConsoleProvider.cs +++ b/NzbDrone/Providers/ConsoleProvider.cs @@ -1,7 +1,4 @@ using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; namespace NzbDrone.Providers { diff --git a/NzbDrone/Providers/DebuggerProvider.cs b/NzbDrone/Providers/DebuggerProvider.cs index 28c6668aa..552fea34b 100644 --- a/NzbDrone/Providers/DebuggerProvider.cs +++ b/NzbDrone/Providers/DebuggerProvider.cs @@ -1,20 +1,17 @@ using System; -using System.Collections.Generic; using System.Diagnostics; -using System.Linq; -using System.Text; using System.Threading; using NLog; namespace NzbDrone.Providers { - internal class DebuggerProvider + public class DebuggerProvider { private static readonly Logger Logger = LogManager.GetLogger("DebuggerProvider"); - internal virtual void Attach() + public virtual void Attach() { #if DEBUG if (Debugger.IsAttached) diff --git a/NzbDrone/Providers/IISProvider.cs b/NzbDrone/Providers/IISProvider.cs index d7335f676..99ea975dc 100644 --- a/NzbDrone/Providers/IISProvider.cs +++ b/NzbDrone/Providers/IISProvider.cs @@ -1,104 +1,79 @@ using System; using System.Diagnostics; using System.IO; -using System.Linq; -using System.Net; -using System.Runtime.Remoting; -using System.Timers; -using System.Xml.Linq; -using System.Xml.XPath; using NLog; +using Ninject; namespace NzbDrone.Providers { - internal class IISProvider + public class IISProvider { private readonly ConfigProvider _configProvider; + private readonly ProcessProvider _processProvider; private static readonly Logger IISLogger = LogManager.GetLogger("IISExpress"); private static readonly Logger Logger = LogManager.GetLogger("IISProvider"); - private readonly string IISExe; - private readonly string IISConfigPath; - private static Timer _pingTimer; - private static int _pingFailCounter; - - private static Process _iisProcess; - - - public IISProvider(ConfigProvider configProvider) + [Inject] + public IISProvider(ConfigProvider configProvider, ProcessProvider processProvider) { _configProvider = configProvider; - IISExe = Path.Combine(_configProvider.IISFolder, @"iisexpress.exe"); - IISConfigPath = Path.Combine(_configProvider.IISFolder, "AppServer", "applicationhost.config"); + _processProvider = processProvider; + } - internal string AppUrl + public IISProvider() + { + + } + + public string AppUrl { get { return string.Format("http://localhost:{0}/", _configProvider.Port); } } - internal int IISProcessId - { - get - { - if (_iisProcess == null) - { - throw new InvalidOperationException("IIS Process isn't running yet."); - } + public int IISProcessId { get; private set; } - return _iisProcess.Id; - } - } + public bool ServerStarted { get; private set; } - internal Process StartServer() + public void StartServer() { Logger.Info("Preparing IISExpress Server..."); - _iisProcess = new Process(); - _iisProcess.StartInfo.FileName = IISExe; - _iisProcess.StartInfo.Arguments = String.Format("/config:\"{0}\" /trace:i", IISConfigPath);//"/config:"""" /trace:i"; - _iisProcess.StartInfo.WorkingDirectory = _configProvider.ApplicationRoot; + var startInfo = new ProcessStartInfo(); - _iisProcess.StartInfo.UseShellExecute = false; - _iisProcess.StartInfo.RedirectStandardOutput = true; - _iisProcess.StartInfo.RedirectStandardError = true; - _iisProcess.StartInfo.CreateNoWindow = true; + startInfo.FileName = _configProvider.IISExePath; + startInfo.Arguments = String.Format("/config:\"{0}\" /trace:i", _configProvider.IISConfigPath); + startInfo.WorkingDirectory = _configProvider.ApplicationRoot; - - _iisProcess.OutputDataReceived += (OnOutputDataReceived); - _iisProcess.ErrorDataReceived += (OnErrorDataReceived); + startInfo.UseShellExecute = false; + startInfo.RedirectStandardOutput = true; + startInfo.RedirectStandardError = true; + startInfo.CreateNoWindow = true; //Set Variables for the config file. - _iisProcess.StartInfo.EnvironmentVariables.Add("NZBDRONE_PATH", _configProvider.ApplicationRoot); - _iisProcess.StartInfo.EnvironmentVariables.Add("NZBDRONE_PID", Process.GetCurrentProcess().Id.ToString()); + startInfo.EnvironmentVariables.Add("NZBDRONE_PATH", _configProvider.ApplicationRoot); + startInfo.EnvironmentVariables.Add("NZBDRONE_PID", Process.GetCurrentProcess().Id.ToString()); try { - UpdateIISConfig(); + _configProvider.UpdateIISConfig(_configProvider.IISConfigPath); } catch (Exception e) { Logger.ErrorException("An error has occurred while trying to update the config file.", e); } + var iisProcess = _processProvider.Start(startInfo); + IISProcessId = iisProcess.Id; - Logger.Info("Starting process. [{0}]", _iisProcess.StartInfo.FileName); + iisProcess.OutputDataReceived += (OnOutputDataReceived); + iisProcess.ErrorDataReceived += (OnErrorDataReceived); + iisProcess.BeginErrorReadLine(); + iisProcess.BeginOutputReadLine(); - - _iisProcess.Start(); - _iisProcess.PriorityClass = ProcessPriorityClass.AboveNormal; - - _iisProcess.BeginErrorReadLine(); - _iisProcess.BeginOutputReadLine(); - - //Start Ping - _pingTimer = new Timer(300000) { AutoReset = true }; - _pingTimer.Elapsed += (PingServer); - _pingTimer.Start(); - - return _iisProcess; + ServerStarted = true; } private static void OnErrorDataReceived(object sender, DataReceivedEventArgs e) @@ -109,19 +84,18 @@ private static void OnErrorDataReceived(object sender, DataReceivedEventArgs e) IISLogger.Error(e.Data); } - internal void StopServer() + public void StopServer() { - KillProcess(_iisProcess); + _processProvider.Kill(IISProcessId); Logger.Info("Finding orphaned IIS Processes."); - foreach (var process in Process.GetProcessesByName("IISExpress")) + foreach (var process in _processProvider.GetProcessByName("IISExpress")) { - string processPath = process.MainModule.FileName; - Logger.Info("[{0}]IIS Process found. Path:{1}", process.Id, processPath); - if (NormalizePath(processPath) == NormalizePath(IISExe)) + Logger.Info("[{0}]IIS Process found. Path:{1}", process.Id, process.StartPath); + if (NormalizePath(process.StartPath) == NormalizePath(_configProvider.IISExePath)) { Logger.Info("[{0}]Process is considered orphaned.", process.Id); - KillProcess(process); + _processProvider.Kill(process.Id); } else { @@ -130,41 +104,14 @@ internal void StopServer() } } - private void RestartServer() + public void RestartServer() { - _pingTimer.Stop(); + ServerStarted = false; Logger.Warn("Attempting to restart server."); StopServer(); StartServer(); } - private void PingServer(object sender, ElapsedEventArgs e) - { - try - { - var response = new WebClient().DownloadString(AppUrl + "/health"); - - if (!response.Contains("OK")) - { - throw new ServerException("Health services responded with an invalid response."); - } - if (_pingFailCounter > 0) - { - Logger.Info("Application pool has been successfully recovered."); - } - _pingFailCounter = 0; - } - catch (Exception ex) - { - _pingFailCounter++; - Logger.ErrorException("Application pool is not responding. Count " + _pingFailCounter, ex); - if (_pingFailCounter > 2) - { - RestartServer(); - } - } - } - private void OnOutputDataReceived(object s, DataReceivedEventArgs e) { if (e == null || String.IsNullOrWhiteSpace(e.Data) || e.Data.StartsWith("Request started:") || @@ -180,47 +127,7 @@ private void OnOutputDataReceived(object s, DataReceivedEventArgs e) IISLogger.Trace(e.Data); } - private void UpdateIISConfig() - { - string configPath = Path.Combine(_configProvider.IISFolder, @"AppServer\applicationhost.config"); - - Logger.Info(@"Server configuration file: {0}", configPath); - Logger.Info(@"Configuring server to: [http://localhost:{0}]", _configProvider.Port); - - var configXml = XDocument.Load(configPath); - - var bindings = - configXml.XPathSelectElement("configuration/system.applicationHost/sites").Elements("site").Where( - d => d.Attribute("name").Value.ToLowerInvariant() == "nzbdrone").First().Element("bindings"); - bindings.Descendants().Remove(); - bindings.Add( - new XElement("binding", - new XAttribute("protocol", "http"), - new XAttribute("bindingInformation", String.Format("*:{0}:localhost", _configProvider.Port)) - )); - - bindings.Add( - new XElement("binding", - new XAttribute("protocol", "http"), - new XAttribute("bindingInformation", String.Format("*:{0}:", _configProvider.Port)) - )); - - configXml.Save(configPath); - } - - private void KillProcess(Process process) - { - if (process != null && !process.HasExited) - { - Logger.Info("[{0}]Killing process", process.Id); - process.Kill(); - Logger.Info("[{0}]Waiting for exit", process.Id); - process.WaitForExit(); - Logger.Info("[{0}]Process terminated successfully", process.Id); - } - } - - public string NormalizePath(string path) + private string NormalizePath(string path) { if (String.IsNullOrWhiteSpace(path)) throw new ArgumentException("Path can not be null or empty"); diff --git a/NzbDrone/Providers/MonitoringProvider.cs b/NzbDrone/Providers/MonitoringProvider.cs new file mode 100644 index 000000000..76dd24442 --- /dev/null +++ b/NzbDrone/Providers/MonitoringProvider.cs @@ -0,0 +1,115 @@ +using System; +using System.Diagnostics; +using System.Net; +using System.Runtime.Remoting; +using System.Timers; +using NLog; +using Ninject; + +namespace NzbDrone.Providers +{ + public class MonitoringProvider + { + private static readonly Logger Logger = LogManager.GetLogger("MonitoringProvider"); + + private readonly IISProvider _iisProvider; + private readonly ProcessProvider _processProvider; + + private int _pingFailCounter; + private Timer _pingTimer; + + [Inject] + public MonitoringProvider(ProcessProvider processProvider, IISProvider iisProvider) + { + _processProvider = processProvider; + _iisProvider = iisProvider; + } + + public void Start() + { + AppDomain.CurrentDomain.UnhandledException += ((s, e) => AppDomainException(e)); + + AppDomain.CurrentDomain.ProcessExit += ProgramExited; + AppDomain.CurrentDomain.DomainUnload += ProgramExited; + + var prioCheckTimer = new Timer(5000); + prioCheckTimer.Elapsed += EnsurePriority; + prioCheckTimer.Enabled = true; + + _pingTimer = new Timer(60000) { AutoReset = true }; + _pingTimer.Elapsed += (PingServer); + _pingTimer.Start(); + } + + public MonitoringProvider() + { + } + + + public virtual void EnsurePriority(object sender, ElapsedEventArgs e) + { + var currentProcess = _processProvider.GetCurrentProcess(); + if (currentProcess.Priority != ProcessPriorityClass.Normal) + { + _processProvider.SetPriority(currentProcess.Id, ProcessPriorityClass.Normal); + } + + var iisProcess = _processProvider.GetProcessById(_iisProvider.IISProcessId); + if (iisProcess != null && iisProcess.Priority != ProcessPriorityClass.Normal && + iisProcess.Priority != ProcessPriorityClass.AboveNormal) + { + _processProvider.SetPriority(iisProcess.Id, ProcessPriorityClass.Normal); + } + } + + public virtual void PingServer(object sender, ElapsedEventArgs e) + { + if (!_iisProvider.ServerStarted) return; + + try + { + string response = new WebClient().DownloadString(_iisProvider.AppUrl + "/health"); + + if (!response.Contains("OK")) + { + throw new ServerException("Health services responded with an invalid response."); + } + if (_pingFailCounter > 0) + { + Logger.Info("Application pool has been successfully recovered."); + } + _pingFailCounter = 0; + } + catch (Exception ex) + { + _pingFailCounter++; + Logger.ErrorException("Application pool is not responding. Count " + _pingFailCounter, ex); + if (_pingFailCounter > 2) + { + _iisProvider.RestartServer(); + } + } + } + + private void ProgramExited(object sender, EventArgs e) + { + _iisProvider.StopServer(); + } + + + private static void AppDomainException(object excepion) + { + Console.WriteLine("EPIC FAIL: {0}", excepion); + Logger.Fatal("EPIC FAIL: {0}", excepion); + +#if RELEASE + new Client + { + ApiKey = "43BBF60A-EB2A-4C1C-B09E-422ADF637265", + ApplicationName = "NZBDrone", + CurrentException = excepion as Exception + }.Submit(); +#endif + } + } +} \ No newline at end of file diff --git a/NzbDrone/Providers/ProcessProvider.cs b/NzbDrone/Providers/ProcessProvider.cs index 0f684c2a4..88afc9004 100644 --- a/NzbDrone/Providers/ProcessProvider.cs +++ b/NzbDrone/Providers/ProcessProvider.cs @@ -1,8 +1,6 @@ -using System; -using System.Collections.Generic; +using System.Collections.Generic; using System.Diagnostics; using System.Linq; -using System.Text; using NLog; namespace NzbDrone.Providers @@ -12,31 +10,77 @@ public class ProcessProvider private static readonly Logger Logger = LogManager.GetLogger("ProcessProvider"); + public virtual ProcessInfo GetCurrentProcess() + { + return ConvertToProcessInfo(Process.GetCurrentProcess()); + } + + public virtual ProcessInfo GetProcessById(int id) + { + return ConvertToProcessInfo(Process.GetProcesses().Where(p => p.Id == id).FirstOrDefault()); + } + + public virtual IEnumerable GetProcessByName(string name) + { + return Process.GetProcessesByName(name).Select(ConvertToProcessInfo); + } + + public virtual void Start(string path) + { + Process.Start(path); + } + + public virtual Process Start(ProcessStartInfo startInfo) + { + Logger.Info("Starting process. [{0}]", startInfo.FileName); + + var process = new Process + { + StartInfo = startInfo + }; + process.Start(); + return process; + } + + public virtual void Kill(int processId) + { + if (processId == 0) return; + if (!Process.GetProcesses().Any(p => p.Id == processId)) return; + + var process = Process.GetProcessById(processId); + + if (!process.HasExited) + { + Logger.Info("[{0}]Killing process", process.Id); + process.Kill(); + Logger.Info("[{0}]Waiting for exit", process.Id); + process.WaitForExit(); + Logger.Info("[{0}]Process terminated successfully", process.Id); + } + } + public virtual void SetPriority(int processId, ProcessPriorityClass priority) { var process = Process.GetProcessById(processId); Logger.Info("Updating [{0}] process priority from {1} to {2}", - process.ProcessName, - process.PriorityClass, - priority); + process.ProcessName, + process.PriorityClass, + priority); process.PriorityClass = priority; } - public virtual ProcessPriorityClass GetProcessPriority(int processId) + private static ProcessInfo ConvertToProcessInfo(Process process) { - return Process.GetProcessById(processId).PriorityClass; - } + if (process == null) return null; - public virtual int GetCurrentProcessId() - { - return Process.GetCurrentProcess().Id; - } - - public virtual Process Start(string path) - { - return Process.Start(path); + return new ProcessInfo + { + Id = process.Id, + Priority = process.PriorityClass, + StartPath = process.MainModule.FileName + }; } } } diff --git a/NzbDrone/Providers/WebClientProvider.cs b/NzbDrone/Providers/WebClientProvider.cs index d7a6bf2cd..872b0f6e2 100644 --- a/NzbDrone/Providers/WebClientProvider.cs +++ b/NzbDrone/Providers/WebClientProvider.cs @@ -6,7 +6,7 @@ namespace NzbDrone.Providers { - internal class WebClientProvider + public class WebClientProvider { public virtual string DownloadString(string url) diff --git a/packages/NBuilder.3.0.1/NBuilder.3.0.1.nupkg b/packages/NBuilder.3.0.1/NBuilder.3.0.1.nupkg new file mode 100644 index 0000000000000000000000000000000000000000..c1f1be45d6ae360964e8e562928425de16c94b16 GIT binary patch literal 100571 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ⅆ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 literal 0 HcmV?d00001 diff --git a/packages/NBuilder.3.0.1/lib/Silverlight 3.0/FizzWare.NBuilder-Silverlight.dll b/packages/NBuilder.3.0.1/lib/Silverlight 3.0/FizzWare.NBuilder-Silverlight.dll new file mode 100644 index 0000000000000000000000000000000000000000..cad1f60abf9e4d82d5aa306a218e39e70368f616 GIT binary patch literal 93184 zcmeFacYsty);C=DcK7W(d3qAiGsI>BVE_q&1d%L=fD%-)N|39!NixnbsDJ^~F`yVR zV$Q5-)pZrjidk31uq&dhIj!Qt_dDm*?d}6 zIrSptQA&C7w{M?P55uS5Aa)P#G(w#fe>6)y7<{?nVPnk86%$XMmn=Wku}^Ylo>D%0 z=AuRR;__K@%bg{Q%I7UAA3APA`6>3Cxm}{sP#_*_X>PL=sQ~Ow%6=5Tw z)Eq-8OQf%y30w}m2|neHuqpWl;{21ZK87B0`gzo#)k@{?|7l-SF;QnA-f@Hx??qG* zEq{M8R0Ohrt};}smb!!Sa-~p$)Gq)&BE^*IvUu+D#o%wwLVls+vg&-hW)RQl;v}8f z5OCg*M=t1z@H2jcP$6BMxeIL=QeGAE%ylq-Kf56r!5H34^@<h?*&Tr|3Rtd zA=%_Va@LrMY^6e`rylhlGQIV=%m4%d zD5zx@ko8nEvBFT6JsFy0I}=VJiEGUaGR#cwgH199O`?d@Z6p_!ZB0+2m;^}ER8Ud1 z%^8HVms^f_MyttV%oy#8!oz zmccZEP*v$T(4PsE&FVcy;~MAPpbl@Oq~Bil%f8 zJA+d>^@KdW$>FM~Sx5F((bZPb9&j?sPKHa#4wvNl$}Z{NO^3DksD**0bhIEHP?RpY*W<@;7DWuMzDBr^&LRRZZr zNCrBk%bVGsPi$Cheg%@E-^xULl5~vCHwEcXSCCZWjT!jL415*gR2k44tjejeWLuQ7 zu&^)|OQPw75>;#@VpEuo_UdNA*AW|nz)H16wpJ#(lAx9arVt(Onr7kF6PtykACRWTBEVkFc|2iD505V`- zL@^!4R`JI8O1mi?GhJO+Tu2g~iyH|qYQW&1 z&^Uq7K_TlHb>4@%Y(MRR0&ski?`g<)2>Et?Kh?E&|| zT)rbT(g0Te9@Ire$)1R#5zt$njcXl`#N#5Ou2FswDrG&cBvp(v4oRXqoN4SAI}6w^ zaq8GFb)99!}KDneXY8 z3Fzf?5^#vqOF(aDpnyKkXaRklNdo#ga|Img*aG@HrwbV1tQT;YbGd+l&h-KYId=&d z>^v@Di1VU=!<}~o40S#iaD?-NfML!)0mGf3kMlgjDG@NzsSq&A=`LWjGf==7XS9GL zonr-zb><2f=hy;{a_R((cPe}J-D-iVRVDHObla67?g67DYeEW(2YpG|mz;MIhu3tmIm7QB{lo#1l_pDXxW z!W#vjNBB0u=M#QhFy=1Gc~&syBg%P0Fs4Mx`MY4;_m%UNV9XMfvqvyy2+HvVxm=ia zC?{L+C4|caUrM;MU`!m9(@XFM!ovk)nx~v&1!MB2oVkKAc|#cmWAcVF3dZCOWfY8= zm~t)=jMZ#22yq#2CY&w! z7Q!WhHxuq4_*TL_1m8w@u;AMXA1N5K0_98-d?(?#g6|@Hn&7($pC$Mn!cBtjC47zG z`v~7A_lAlOHEoM4OabisbYO9Tf9 zuM!+2e2L%?;p+s43Ev|)LilmPQNqs)&LaGd;B3O53(g_@li*y!!5l729^n$fnB1f9 z2reMpTW}%aBLv3?PZC^2c(&kT!b!m;gx3l#C48aaGQ!sgZbf*r;MRm65Zs3FQ-b4! zUlv?W_P>qS0@ z@HK)56TU<65W1!6T;){4M~M71!s7+g8m}{5aFXx>!HWr>E_eyya|JIY ze2w5`gl`tSobY{uPbd7eU@T9gjDoR3fOaVO48mUst|$Df;0D6M7?*J+;Ud9}gxd*T zMYyZrGYJn6d=}x+g3l&AP4H^MCkb9d7;E7)hO8xgmf&*;uNQnS;j09nNBB0u=M#Qh z@H)cJ3tmt7Ex{KM{=47{3ID{nF@SZH_#9qD3HxJ?uLwEt7dg4?7dsW~mpDDxFLeg8 zU*?Qvzm+qE{npN0_S-l~_OXbvRzS$POhDM#EFdDYEk71fcxA#L&vG6SRkri8fE<}A z`{TLtcr)s4$f8q9i7(%baFlvkZ^Vj z=|^=Npj>bc|BY z{2(V=z+jn%_~S#I5|JG4v=cB??oR&r5l&Z;408qu814)gFv1xpV5Boez$gbhI&^VI zJEsd6tYKKYo;Rk4VNlj|n*1*(zXy^M-(l&PM_!IlBcMYnI~YnbGm>T&Uyheos9x!IhzH{ zcD68R45A~ZcEG-No`y8WYo5IK!i&AJ^3OfkT507j{mWxus^4f}2MdIoy^ z11yM#oTmhYomT}!oc9Gpojn4wob1+=T0GmS5|HBz7m(|mBp}Z@O+dc0RzQJsvw%Y9 zNdYnE4FN^Y-vtyqzBU|liPKI1dcA-$XPSUk&H@3gomB$bIF|^BJNF1Ecb*hb;k+!M zt@FNscFs=%+B?xWr`5r!5YW*X$e@v`z7kIgo^C#MIDGm!6QC=nXWAB*@<6hdmtQXL zQfD>dC`pu}6%?~u%C39y!|97pFyrDQRl5F%!KdrrDs}m<;S3i!H?m*s+{S*1a}WEa z&KCB|oX6O2q-awuHDqE>Cvhw?gU#cJXzJKM#@!{YKLpJZd&<43b;{nxc;q3A_7Cbv zXk+ok^6+MJDA@;suvtf8>|-F0#G+O0#4cv(-Kc!8-;?X*t!BF~41-0JqrpJ!dw$AR zKL{$%G?(^!J&^2ncslOD4wo`=5UFaf+74456Cpj=gBnUA{B$Y^PPvlcUV9K_ zNGDUSlNr2UGTs7v2pOh!$2*!HZvrh#@8gspek7fnTuHk(2_Lqt!&VY0hy1h|MMdWQ z9+Zam=W@-WyBLe!0rkaZ);-F_C&I@C&BI7 zRg2KvLN#qAsqK^}-VL)~z+r;wu;VMomewgK-HQEV=$IKpNoJ08Zmi6lp%O!tCp2t8 zb=8=jO0$k?!-M5@RppUAIW%fIuaIjdCPO8Wn{`w}_7oNnO!yIiF4;5?ode504g|Z< z62_C6EL8|ynG?uIE2?L}ZK49{Q9m%3c&V)ynD%rSC1$`u0`^P_VHRMA8GRjgbWo%% zU3**?@{?zw$sy|Gt#t7#W2PsToJC;>dIhe){_1SV;LQ z+XzXQpc7(i(LMmh(D;L@xjE^?Kzy1QVLgOAryQ?7(jq#CISW!EOG@5Ah2Bl0|-ua z1q>iK%@r_k`>>3^QDnZ5%9(UvRiA`oCKnT2l7>qO%H=i_%Sg#~W@35D&`g|8m@Vr_ zo6&7nfY!vF7tn1oq;-%c&VZAwhqEHB*^c{x!5yy0V6&kC%5@}38zfdz&_*~nbKhJA zWR@k)Bo7yze%}sEoCR9d!7Snl(|-||4ku7lmVGutQ5(p|y_%jdW2hUhnvk^}BbMaL z+-t3dU2+W^do3JmJ8o7f-8n6E7{gM!b6e=phf=!pTIfb)=+1AU8=awB*FrZYL$|(# z?#K+?1ub-AGjtcW(2dK`UDQH{F)CGtrWU$GGISTW(50?3>hqH3y2=x?4Kr~mg!2=Z z!Q~c^*Z@>H%he<<|0Bf}f27#>M~W+(D^jV?OI-DbnyZ^@()qfkxq{o$CbX#{YD?6& za7Y0~z7{BX9UL3VkW~cH_02`a5Z%yRR07eB%|)dU-PByv3Zk2vi&{f;OLI{fM4Ow7 zD(AbkJAZD=iceL_+?F+;p=nX|8JZS#pP^|{`Kc_-o7=MXGgU3BKO?^Xu>Nt2YFYoc zH5XC+-`-qA^?yfm5!L^l%|%rIcQqGL{ombOMD>49a}l4Z>5sO;V{+ZS(AHR{eII-? zR!`KdyC3d48m<0tP{VEiFx=+I&@AFmm5a=lqw)jL+7H6Py_=)c-OH@wkw3A8^nZfm zu^&2+)lvw}{jBI22RBFlnTdyCQ`60Cc!d1ig1y$G0LjPTG?IwrsDwY0^l>Ix2 za^e|6Zk4#=DI%6So<-<*CE5dMow*e%dh0{nPmNz`-DxW9i3#23w%M(E<@Qbd^ zOJu_lkf?#3mtEy6q~r)l)Ig3z;AZz#NTd|o3AGeYNwAo%5&B4rGQ5TmT!z;Hl5fCi zBvAu9Z@S92NclD?Nz_12BE)4#x61@&Bi4P8+3*ek$N4UR#7QESH@xR6|3*rVlSC|+ zINkie4{>E4E>5aMu4GCjNLRqiI`KS@cV267USmgS+uVpN>30Ju0`14x`CVtK$4R0FawJZ-0RM)h`DJn?sdjhXe(i2A0&&{=0Fuf;mPypW zjseO_6Cmj!C5alyNnk!igP#|eZF~R{0f|`NV7W>^DLDcXv0Nf>GarDsdFEY-+s5|K zd(e$NM6rkAG?J)+ortT%GeanuMM@GikV6j#l=p04&O3IKbp#}0c>{KpMTsqC9RZ10 zE)lqS$3C+xZxj&NPm1kknxs=d*}n|ff0k5=0Fu~s4mFaffgNl-ixRuep(M7OLyaVA zASaO{Wx&R>*kIRLM?j(mcCh;_N^Cvr2uRdGjzr+*wj7e?_3ujlxc(~;hO4hFK(Za2 zMiMo!)818fAZ15VlBj{4M6Tq$6EH`R0FVes)WA+>S6N9)j(|iBFO%6%NY<24h zNYp@%MBwKA5J+S&>P@JncuIoB2W~sqBbO}n1xR9NJk&^{26nJHF3SF-#FludkwgvT zB=V&UhXHdXU}s!MK%xeA2D!??q~r)l)Ig3zAZ_|^cTDkmWMX3vfrZCR91f4MJrsyn zCjW2_DAOA}{T~5SUQ%EH!7x|A0D|GJfB^&}Tmb{TtFsRaUkTK_Rau7ja7H74#k^)P z5{9%;;7u(CEoOoO;@G%73hGEzR=^$&5H|e@l*7`CB46$Z1*$<7U~K$A)=Ev)QI!s& zqwcf@W2yo0OAeHdhhq*`W%)T~TKS@w{j%JGnElltI%Z7&(6LSAxU^Q{#x#%ZO=>0@ z4Kp)Nz2m}Ll}mXd?Dg1Vkoju7twZJX*hhkOG*J&8&R;3=mk|;ty)8_b$8y251NJyB zxaCh2pnd3)f6=_;ZvKi?na&@rQKH;Q3_mWSiQ@W<=cHSk-(&ST^JLMU97?YGAR zph~=nLZqqd1Zf_qPW-B@t<(vvcbtN_T2oxI&Yk7qRr16$sEul)5({iGL>RIXo3YMT zV^pH<(8}?46|mnv8mZbi9}&VnLzgUnY`uYk@iJIdp1+70t&!=av53bTpjW-{#+9te z9s|D(rJb0M*zuG@wQV)4d&{1P=qs(n2vjl_-^jwx7BzX6ynbL7RHBukKUr8y6+MS> z*St5O*`II%FMz0bcp=SBt;t_*;j+NAQQaoWku=q0s6S{9T2==kfOo z{yLaSO~79r{%*tHJNWDK9vrh!aw5rdVLI&fUy8ycry}b#c6jmRNVzSlJh1U)WIQcp zTzpXD4P<;=%DCj9#+Q@v@hRidgBo8!#wVnV%MNP1k&LIOj9VSl_)0RKkuq+5P~)q} zcxKAD%|VT?CgWKt<9P6(*4L2r?6h_0pw`!t^_;YI_@LI;k@eiPb>yJdo5=dav~~1= z)_X17rmW;iX}hcg+PSUn28#9Mv~~7Dt#2gjd1>pM=GHOV)}Yo~S(=;=E4&u!3h@3B zCaJVx!JRPOQR}In$~a{5`)cLrck#V$57nKMx*7Hb`oXV&9{VYX-d+Ib4+bl_QSc~a zd6Ems8vQd=dAG?soArx8QdzQzc0$)`OV2H18X1A8$^ z4@j1fM#k7fkar9rxv>!TQ4>p{u46PE++-Ok}5X#>EN}mRvzQ^d2Yh( zrcA^>dj;g!XTg1;4hS1BXONfWt*<8qvPztM=3IXs)fGNQCcH1!0BxwM6gwIejB{YG z1mt~ON#AY+FPdEYKJA5hRnHb-<5>5hz*r!o$fnq<;Cd|kOp)pgt&=^R(NdEEQXV4j+5pXh^x9(La!6_BbOrp5@HfJjd(Rx$ zw3T+!SyHs@E1?Z%+{byv(B0>f%I3V;xc`J|pU1nI*aoKT1njHfdT@9L6Ci#olg0Km zWcLBzJ2Bv^cGM>7sM6CjTHbHX;E8LY#{TOHs@scjr_9(iN?a$pyHh%=x|LZ+HHb}2 zj#wDI>|GVEN*qKN5qo<3yDIE&wm(Z%>9H|M!v5@uW^xl~{q=BC&E^J>%3)?536nR% zv2P;Dmmd3O_+}mHyN8{BQZ_N)vd}zkfhdMI#2;$w$|ShQ-b_K|x*^v%NkDZ(G1JSK zXd#R(`!+~A;1@A%3LL4194$1`%=wX(F7sUtQ4RearZ{G=*v(ro< z8PBk|i_FlFEd3@rsW_q9EtZY8EAuH+bwPUE*AsWc0;3M*LS$=6LiZ5lZpu=L;loNa zV=_vVqZkPcwNUJQs^$ism6C;0k0Cemd%=+IY3VQN3*G3GFY z(c^YE%-ASW9`H;a-t6;`g|Ism${6U+7y~7yXK5hjd|a&CD&J=6*U(I_j@%;qA&NPH z(bJ-%9Q(<53?7TTbVM6UJ`7`OJ#owF)lQx2=WSM}FJR&ksO(4K==MP|*^hzOzF|58 zU}4#R21`5+r+zKneCJDY;<9Pc6p#G`^py<(|4LDL>z^jiSN{xoxMEw`_tkG>->QF>eSiIP><8+fXFpi~ z0{L=ass2UahL_;*0>H}vvd}>ymZQ2bF6Q{HEIjwV0_o&1kBC{`+TDKNRNRIs3V+u! zXK=bko7@`JpPb+}?NOh=M_aR&}bGl|=!Rlgk&Jp>y*RJ0i1)5GXz7}ZD> zuyNZ%kEaq;7mJUtNs!7$ZwuM40pSb@#pvgIF`lSi2XW(jgK!7VYS9!fwC==IceUr@ zkXE;hoJh<#mL_=e=orqXUWa^paF5Qyph>^< zop3v*o&3FtP!F@HGDCi7T3(zf$K$ALUy>=ul8P%Y&6Hz^aph&1@_}i2t4#Tzw7hku zd~jOcCR08nCHKUGnTo?R6roJT&HsZI92VD?yLD&Tm7erl<<$`P%wQ zh+yI?3KF9}OwR>0=cqzEO@1!xJoOZoQ@~2nF36H!!#;r_ys8>qT8EQw6IIjLMV}|3 zZxekBGhT<2IS?jyiu5?A%Fh+@#8K2EB6JC+rZ}jU%6j^g9u^(Em6fLb9pa-e#2_9z z=Z35+Jk({ZVTP=Df&D$KqOp8$RemtndnJ}`JvKsAZ6=h z$sd8~BPdn&&p`RUs+?S({R?2k4CufleDV+R^neMAgX(*Y5xj@)4=v`@V8^J z&fqf#sOVTFo%_KQldf~NP7G7-(rifCAHq$46 zt;!R%ZFc4&t!_xv{sx-(Mj6WGN#NdPg&L@{Rnt@jy;ZN~;<8uaK1dD2Z)4^`Yq|xI zjAL#+u;p&!9&N1~fec6bAgIbX>Bef@spb1Kkv_Q1LOs$gI;(LPwAPU*(q}WPu>>PE z!)grT);bbJ`rrv0p+_}SV_3J=ktot<9;-(;Q)8UB){!XEXB4Z)G*e@|v(}L)(x-~m zM>bPq7_`=rDAFgwYD{f2vWC&oT1TQtpRaJ;tnGc9sWBK@>qr#o^9rlSHB)0Owbqd+ z(&rvlPj9BikZY|YQKZjBtj@C=Wh+v3yp=xJ(u0Cv zkhb`|OQdSBW$&RzXf+FmQ5)epSle?_VhV>r+*(JXNL3Jf3tqbmS_K|s0(Msb8gmT# zW)iP)xF7JL<);K@wK(9r-+1yAY!NcIAfFbHv38j;Kx6*f2cxiZ2bg?cEZ?ds&GqG4 zSJEiqw|_^zWuU>FGT+Lza(x(ScF0JR>#fPcXwwb(;?af%qKpy8Ulq&s^N15QgU#a7 zdmx`+-0@@F(K|z!!&3H&CUY)%I_9zejSLJt4xj6y@lnR5q-wW8#-+n_iBS6PR5`Ss z5+*y8*Yq5Z57L<)3_x&UvM-Zh>ng1= zGRgP2EU7SNrUtJY;DM9!QR?Q8lfe{1G7%qy^*#4Y(}D7fVA@p943SM?^SD;J23}5$ z?t32EKT)_s>G_!tN_=fgidi&eVFJa)E!Vw&QsMd0F=0_GSkfX%@$uDWtg;9ffyOdS zauq7v9m}i)CJnR!M3#Qrk8qrmh~*F9wGgB(PclV`08~q;8&F+%Rd2+D?UUSi&U)&a zxO-C!i6G_Bibwnz_SyvSox-Gd{&MmQRg~5!3Ovm2jxm* zmJmu5K$otL*V6FyG(1V_d;qeFwd>q$BT+~RXPfMY{fQW;#cs2D5fQ!s$2F2HqNK0@ zOgSsIi@}O;UoPb&avog~_se-ER|Ho8%dwi5@u5R>Gu(X53S^0Xjj2x-+UN!N zWT6==wA&EsV#ekd&bQ-)4>9$3_VA4`3o9D<5@C5GLd(|()88eewv2E7ne?r}ef+^e z8{LP}bH5{~k}?6+~+v5$8ws|19c?gH?UQ2`NWoPek^ zS3s7tKtQ&0x_}&KrGQ*#y?{JtBZEe28n~bd+=j3RR7)3hDK02JWy<#g9Kfa4#wRut z7*DHGTDlQHOYJXN4oqLSOlzM(w}+M*2p?iiV4SPsHB+xAQHWa}l+*$ESQfp+SjD?b zNEQle?R?xVfsr6nK^=q-qb1O+GZoZ`c>ykgc9*H3j>@N>5}3cGv)5a4KpmXV=Fsbd znZc-6^C`##?njvl>f*^yXiUSrJ{=$3osn_s@_fiJfnkj13?8)z?FLEbn!dzgkYPt- zGb&zQgUO;B!cb%-R252N>>J>kq#t$d3e>J8uO_wyta(DQW-DXpwE@zj_27MBV^-rL8v;nIWMC1DSDWt`)$Zjv|oxf%8oF_OERhXd9o7( zb^?yIou=UYtduDndmte_h3sdEi@U!t^$?O7=cof&rk*G=EphMKKTeu5?3X&t;rA1! zo)j|Ttfvcz$8vuDM*YyU_rD3L#z`%Y9Kn6nK+WraNSx@#3x zY7EaJ*e}KhJ41U-XNfDaEV~OtF;CHyWLE&blfYk$jfOIQ_!&%H8ExFBCL(Th;%0Fd zblflQ<6M!X=9v=KiQv=Jl)O$Uf{g*(EHhFX!YN6ALUt7{x0{ybiAi93^_LdE^Sk-^ zY#vJK+HhHabrVmQbzmo*MV$?tpF*-8uP=$={s0BWYHStX)qOfKD*Nfp%PyG-dt#{G zzq#>y{CmBaSvi#nouHR$|C|)l>bG5i$1C>TIycWCcD3nJG_N2W-}BNN&H7r*Mt*Q* za=FlFx)JEBZrME$-o^)Qv5&n3)8Mj503Q&49cHo-8?bvpNAHh&CKpY~_v)I#`WL61 z@593=U!0D)K5hhPRy3ab)Fhqm!BbjanNA5EAmo|yAEz|jy}lv3{t9iv{WdvXmhVk* z*?rjU%Wgk*4~5ISl^(l4U_o*K+{9sUu&0f-65?+W{BOm@UsZ1zpTW<5Xo`4ucr~gQ z3uPvb;qkZH!+7rY^Jms^Bf3E^mgTivEbC&LSWv*qRVaa>Uhb7`QC>8@+~i=0aneJt zP1-|1aqff06~UN#<6Yy!AtvM%beOsL0%XNw4}~13HdFkF792N>D(GopV-zKwG8`_3 zLv%!58#fHs61TIe)Jp4lc+VQP`gQ&qq>8t>Ay{`2pgjmnC*UIM1+1K%~}o^b87Q1xE{`d(@h(-O!tO#l03gjmv!0!%NncRzpN)i z)~u{8g0@VP=Xe?_Utjo&jrlnlg1E-rdYME|ElGu~ z3;H5fZK%Cw+Ith!B|7Q=+(+=>T*c!92mLQawXg3802M^2RSw`3i z6!su#@i3NQ&)K8VE}c&g|NAHhs0$hLGV219o+=(?6O1U`BDWq7{BLti_0rB%8EtiW zG%Cb%g1f^871|iBec@J@F&|FMKtJV4Yj{URsO7lv0rjObU|}Vj&;eKAw#M^6M1v2; ztBRSR6z?){+)y&&^(2l(vj|xnb-r)MlrW!XiFop@SiZliH5Q)zS4IOt{`dtCQhc5z z7puhiSU}Fj8bj^-&X5``Y^9H~H!OTOS?r>|J!czOkEiIRZb6%%in79(w_}4;kaAqS%!|kdg>~O>Q zW4mac$Gb3r<$WZaN+G@ac?;c14kUj}R4 zjNzu0*7b`An^P?LW@@o^nMtvDnWoe^PQmR++W8_vqx8R1vl6+FB`%>d(1|Y}f1{!S zqf#iAxD-;{K<}jDK5BY-n?!RQFWL;TnPt`A#lE-xR`z}Mw~;yDQd&<|G%<{ zleuj(pSEq}xpkpxccJ_I=b^Ku3ZpyD15y3g_<1?E%7~#g&~>sh{s|jg1F<)n*<+!% znLXBLZBzoUsd{KXp8gFgH~w%1IQ<%{umgDV;B*H!h)gsot*Am4#J5yTxKBsvQL@fUnjkZbuV>GiQkXgqa zqK>+Q{M$C%CtgE9+!Iko>NnNn#keT$9_QkfRa(RDq|@e>Z%;?N)}INB`U4Hr!h=`d zz$fmk+P8QW+s|hZD|ImW*K+8(($*sP5!s^b{zviRW`NC0P7d3OGmzjlx$e%TxAytO zOi1w5I165WKv*D_8^8+nY=~%ghU&_`qoJL8Cea59#n1PZ56B!!|Wl$Ao+DU_2!xha&F zLis6FkV1ti6iXppDC9tw3P=|VNS6yp7Ys<33`iFZC|$O=#EkYbWWuN+2DKXeBKTWc z+ofBVUfp`vV)dR*IWL4eaX#J$Xuv;%2mj9gz!Mfb^A??yB#VU@!gqCpY|;cZ@m)pV zxl`?iPa26e0yPKx-BR!&3+-8Cj34H+#XKP1VO3a`>dNj! zt1s|zj89}Y$?lo#UJ7kUb?`_1AywU*R|ZJ_GrRqRgqN_pBm7d> zQs+l0?8YpTM{+36(j3AI^T}<cuzN&X#63c0*1ko|cbmUXby26o?IiKipU5AE2oBd!JGIqa@vcQw1`vwH`pbur_O>~3OrC(9dp zQEsp8MXBG$?#|v`q?_GmZ*QdDhf=0&Q+_Nc#eg>r%QOBrN$k{M3AK0-R%XqN& z&8!_*f3PISQfpG2t<)0M9RcP8Tfw>su%!2;)-ao+*)3A@CZ*R_ZRT+6%qElAt*pC^ zSvz$*v%56Ai!J}cskc-2aGbAmoE_BztlP<{cf^|vR7*dyE}>OzSLA}5F5>G0T{(O#dESpsl}v2Eu9O7Z{ew)23@~9JyiCk zYAEX-1*=3oOknmh>&{S9IF=8=lsXe%8KyXQYBrB8e`Cut)k0=bFXj4dwTxMwcNj>sU-O^`La#R(wbJQBn%OEe+=VfXg>&Ai&0lS;oF<`^M?qN0^Y!ukN%;tiP z1-p;g0w%qv-7}C1bc|t#bEQn9%gnG z*dnk;xUO&F(q5(><$AdfCBjSF>NzgaQ(mg;tJF&z?p3gI;~Mn^v(Gu)wQ3);U%(Q^ z4XT|pv~25HMNCL&cQfVGBhl1X*# zXx$XHT+QqjzCY%uD|~cSZc(SR<=vXqF?*a-xJ5NGds?%zn7x2l=AbuR1cra=*GJ{s ztS)BVuZX2m-HjL3xkMJ_^KNwy>vA-E%=DnNTYJ%HbFcc4SrHBd_|*OCqYT}j)aT50 zV|&%79#UW6z|JO185QbgD*$(k6)`OJynm0;U47&a7`f_uf3}&cJb`SpyDA9e!;Qnu zRV#voFNa&9-VR0(_KV;kqWrpXh*owXqC@UeWTwX-IYf6p6@b9UNs3iB6%2(ljT8V`!)uxK@)GET) zRE2YL)q7Q?a0{ymkFO?tS@m$ZuU8)fH@k-Lm>R-OH4SiIu2~N^*oE*BT?nu1vIXu7 zU7mp(=t_84SHkPNeh2r(uD`(zb|XBz8{zfc+UCN(TNPY?cfv!v6JFPSBHS0dp8z*h zOL$~0;oEC3guAo$3b<{15I&&?;p=<+1?~quo`+l1lkm|!318mxJGgK5{0(kyFT!Jc z{g!K4q5Oz(Ok-aDX#X*dt>C(nPWg{n$23;6+lSqO><(jhG`l$#*{m}k!_}m=>Qzhf z&+@ldKjmi!+ACi{5!}*(cmV(EbwR&Cg<4TS?V*ufYBPqS_G75C3noB&X~D5@uPvA! z$W>SN*`8m4mw(AVT4+N~ZMZ@m&5|jFPaw`2h14eRFQlIGMB!%SVJmCjVD~+CsqeV$ z_QS&aVDn|+^9cLzLdumtMr|)Q_6ny+wM5#OdZ;)Lt>vBKNDwt#+{%Y5SW*))-F{IU z&+}KPBjed9*Ce>z)$#E)k?v}Kocb^Ibi8-VHs{1C73xivdbii#^DH&Jd{>^KZagHA zZ>XNVsT2d@y4p1rHH8+AJ-kzFsY}b>FFvXq1DIM<{D_qe%f-UflU5o2E%Z&yHmGN; za z5mZN|*b*Z|X83LM?Ll6`Lcsd^S7)%1{woZ5Vj;_@_eT7CV)EPOOZvAMSt+*C|BR8H zVi)^Az*y;8-sIn9KN$t8ff?1=J|m_s6{cSHD zi@{cDc1PfJvr?^3v3jtpG`kodvd4voHMTm^JFP6k895V~Tu@o(gO*yQ=Rr zdj+hU^6>M@2DKw_4fvPxWrf@=sSNYz zP-i2SeySB#I;eaXG3&$3wY(F@mq;g;do;V2ElX%C3AzU)95Xi@X{d)k5)31SGg)^w zk2d|(dCb-X{t|o_I{CSl>qW;swV%40*)~P7aF#jF4}za&u#cJDlnVC)bbl6x9ictu z098T{BRpabGFZW}-0#n1H~CNSrgi@cos3zo{I*5C;jlR<#oB~zZ<_UQrW@9bjSVl$ zu$&cc1gqd^H>fYdo56-^rXqKH2dg_ZD~>$mJzV|HjK-{?#xUjMB#Axc9jKKyb9^&1*mB?O z4A$VAo59xlPRd~Gee*KdCB6k2Y@_d#40eOhPO%+xrv+}$V5bD` z&R|a9{tUJ}@TUy6GVo{yyFBn@2D>BhbOzfQcs7IW4!oGbzVN@A!LovHX0Y!9@A*zm zmFVZdhZ$^M@Y7~&R|cCO9b}xQ#_+Y>piYf`<2y~A&P?w1jygwJ;Oyv+zNETLTdu=8 zcT!!W*`-((TdZzPu`Fw;dO))QzL<5odOgMB)*0$MW|YD%Z=>=bP8lcG**a4dGm~Dm zT6Gtlx-Qz?TAeE2jnO{VnhZA3TAO0GLr3er^xNjUJvz`jR|wdB(NWfUDfSZB`RdSA z>c?5@)I^=$w}|Be*E0H3G;Cg&V*8@|j5G^oh0Tjny0WZ&Mw-$5@uJj<|Dz^;2C$h`H`Zv=}K7!P%)V!SUtgF;b!-cKN`5mnNNMW}!qxV*6 ztdm%ZM-kg*e3G*Zang}MrJgaq&KYD}tuA7=O8v~tJDPN>ls}hrr)pNjtmhcfwP)r% zQdoCpZ)!G>*_}MNuTo=}oiR=wj;ONf1T>1+4s4%V1qTY@}Bl>QX@5s z=k@h(Qb%jnC+{%-^=hhS!}5lLy*o_uvbp2L>>Jegn!O2jqYCS*Vsx6AeUoahSr@RI z)d0<=f!(5x(d-JiN2LkZLKQEc~Z63%&7L|Jf$i%8&F-4^H=quW{uT@bDmLOYW8^b zQ8`=HH=6wh-LvX<&3e}ymGhjsn_Fv>s;^m|^MZOzvqx&y=Deu>qS;T-y{ul=tb3QW zIj^XCZr4p}X_tF)wyX0rd$7wBIj^ZpHTxdAH`Mi-b?f>>&YNly_kbp~tn2Qax794o zwsfsG-%%%N_5*b9sl}Rg?^bXAP33X#Xj03&waWcK#WmZ~ZISt*YOmS%(0!!3Yu2^< zBJ*SQie^i?ADR29dS9~#yH7R$uKuCf572$4zSFF>cB;8kUCjNjNo}Y-H+Pr1PP5l* z4>P||H))pDORdz^*GG@ry9#WwMkvj4h>J0d8^Nq_NX#FMx zY({<`Ymb^OJ(Wk(-_@xpw%-4{dN;)`@&8-(9#9 zl<;izQvPRH#~H(uz_Zn-`QQ43#zM{3<^Kw{ge_O8y}h;uLdN}~L;3dkL&gqfJA?F8 z5HWUYMo$G1<7>_6*&<^6%xq1dqM%bCVo0TJi_()uG{xviBWmoEa6C_r8j<73cBese z=%`Vm8O@AS;e0fQjv5KpZ8PYpC#|EW9`_4C^3;=U%xBAIjDZE+0@+3*GrIo`4&)gd zC6)l?EM{D<8RaZy+$oIb>@j1PW|TtANbtmYTY#Rcij2O@D9)1uMaCJ-b{e#5RBZfR zGg>t&F}~7_R*g!H-!-FEBdj-_AZ4djqgF<_X0&S5#;Dee)}`XcQJT>jQr!59X0(P> zZp`LM{7!?`kjjk{IE5xv*XQ~C3b*Ec_Y~|h+NRh;1!YFN6niq0MPDokn`s@@e44#q zkjZuy+~8|x)N$%m6Z>F!na&GYwl_9wc27ZFpuO=A%^oUP9q3?$XGqzfWL7LJNU3)) z63o`9@>)H0J;dKkwFQ>PRTGI|&bnXOWF%(iLWMTPsI`$V&=pzCQEvpG(6TjAC~PotU{ z#rX!x-*R)X zv7L2If#I=M=HbRaPbA9?*j4&>;BX`NBxZq$v2)C!Mu}$AnN?^upIK+kmN4tCStGN) znw`&Vux1;WjnwRVX5%%xli5_w9%43Iv!|IY)a+GeOEi0*S%YSuGh3_K56mvoY#+0Y znuUv~d^c!T#Ow~u+A(`jv#!h@*X&Sc+cX=_>{ZPsFnd?C>C8USYyq<`HCx8)2hGl6 z_Pb^mGV`4**WoH=S(}$;)0vm4Z(d_k-A;A$w-aKjLJ4;3dM;b#l`>kX=*rl4~m(B`~GG1cV zq!Ohk2S*$K)ND-Yir^TdXgk3-TTKI{aLropnLz(#+%G8RackZ?VVusUqI1d?+zYo{H)pQr4I+E>J*;w{iF2h;PEN;Rq6A=6H@Hw(pQ7iQ*2-9TfrGA z7ApH7I5Wix%03OwO0hO&yMnV*EK&A#a88QVmi-uvz&`BwFWSJE@ zImM=wMMLvaY<5|GXnu+q>xF8dmUTVxb0q&j=Xp!t$* z%vdBfxUsAzbehqHYqv@D?YFSdF_y57uI1LX?VfJ@MKh}16~@b&QSH_lf76U=_YC86&8T+kjUP3m+HEk5 zQz`Xl6xHrZBTF-?-A1F8W>hb$jG>xQ?Vf3ztQpn(S;jiesIJd89@32JdbRPYW>nW} zjE^;=+FffTPLtHBcF!>yxL%snOQ^GRjfJd}{&1dgaf^l)Wa;=WHsUF^+;^!_onj5X4aO5Gw$^ur@qCJ{_g!hc znPQjtt~Neqwi9t~^j&LoPP!@F;M-*MW46tyOL^_Gw0I zm79#{V#zhFRcMZTa778NhjC+R^udQ+tl3Xdf%J+=gce`<8immnC zX*`u;4ZgdL9VxclcdzkFiaEafjhtna0>ycv??Iz;iY@g0$rzGiGkgylGg54#?@{CQ z6r1Y%vvF~XjrBcY+{PO2^o(%@vz-R5({42$rWdy{CyKXn zLR*bfSGeqSu)A5;q|Q5ZVc|C8WY#sQO@|f~J!_QLiDlp?8htn$2u=Q|JTZ- z`^X5?ODszf?o(r#W({EfFd8*G7i_2TiDs99?K1wU*-fqf6#CNW(;%@t0QOJg9A-`G znN}}{zBV4vx_4T=8~VohK(p^!eH8lE2(6TGv||08QIKL;)(=J-%|`ma4E=0$(X6lk z_t3wL!!(O}W8vS7v6@{MjfH2QndBQl~i03+C+l(7mJGoRHg z(k3@jYi`%99IU7Lfo470R7LO&u(KuC!@&BO5zUhRJ>h<456vdG*%R(>_Sftru*1v| zu4S76kwNCEn$?3HZm!VmVz6Q6+05j8$VhWDvz^9GZKg#=nNKj25p0b4oYv7yZj4#J zTIza6>AK(;^FhsMCWqI^*NBd0a%0V&%p{g^W`AaQ`t&V`j5Ft?m=hUqZpg5lXkMFQ z`;3X^UBUu)wpkIGWIm?Z!_1!7Y%8;OG<%iVXPUjo><7(0VP>qQe69(6$t+v5ADFe) zY%jBF%_4D1{ZP${nT^t{1G6c@(2|E5lgwEu_LTP+b76`NGA5fVQ*3=?vUzoiT^^Zc zzQj!KBs0y)=TJUno;A}fKbM%yrDmB&X-0FY*=D0=G?$uVKCBtdrRJKyYesXa6U}bt zNh~y%ItgEW6-INZlg%?Vqq)>Pvq>|WOU*ZL(2QnJ3(PH=(d=oVxlJ>gJ)L5HtQpOo z7MYKqFDcOM$u?imjAmq~njdRMbE(tJ_Upuw=2DJ%B$pj)mHihMCe7}wqqelqzu4^0 zOjaG1n#(n#RfnbKJ;HchYMJ?G&1iLNnfatoLW_y_xX%>l7>gAdhGwZBb2WCB)aoLS! z=A;z6KeF6hAPnmh4@Xv*D}`Zw;#FUrd5&h&nKfxPpV^g~En#+}W{u45)a-m_TQu9i z>HbJuq%#PP=I2#cZQyo0;9H*#pcv9?PZW`(K^eMVR`u*FW>>%(Iz&VstxXFW5_(Ej{F|tUB{e z&0gqm18O378pZNS@ZLir`E_QAFyqHV1{rl`xn?E3iM7?16MMgpSSp!G%c?Vvo0rbZ z8Ri^e>bt((3(qiD@ti@%@_O@JVanfsmr-xtsaYNvy$6Le!WO+bbu(N8r=H3Eg5BLw z!k5O$y_(&dGw>sfx3c>hyI->VL?PLeYvP15;m;%Fe#2UEe*iYszgZG0C+&&?k~G5g zsC<@Gu$zEus_u-%?e`x@{`;XQ21BP?!T7+gsfIx7QDfMKu%V{2o32R{XKzV9hvmr( zw}EjZTvMITm?VNdIC)B;r2fe@)s-yylMs>fNL#vZkmB`>q~b+{h&&H*J}K7DKObun?W zp6W;Hkg!MBB(=uo?KZOwf5tJ3`#D0ntzB&NwPTzA4*r&7@K#X#5x8g%e-P(B*8Wep zrZU=6PSR=p|C0avY9q6)%Gh4OEu?jZEB&hjOJw}%3ha(Wjc93^*d5s*GEm zZ8CFYJCx%giAN3M_|x_t9__t6+8atj$r$yY+)ajYY?-BN>O-xOQZ)FVJ9Dv@`?ZXF zG8#)yC)XVEE(u3_!@8Lr%g<(gi~ zqlDDz2DXtJYvgO1#_lyu%ia6VwFrefGGD<=dy*I||Nq)G^_<~0{;q36{S0Hp|7OnT)AtGHLA2 zc4!1PmGphVGKvb8vEskR9z8nkZ}~2A;*JTT&6Iost*Lf#ZYAgBqUUlb(i-Yt?8=BF zu2{-=m=4u^tfMCmQ%U~!$C-H$?f#O?u>Y%Cd5V#kr9KairT)bx6KBSAFznX9#6Xq@ zm&km>y=&}0@~3CT2EUUgvt_r<$SivQCyS5#ROd9tdQ>gy-@sdR%_UyEZ%22=NpLN^ zT}L)@e`)+5xi9FuK*rod<`3s^PRKR!o*(7P!*kT0y$Q=qwRL~Ot^50t^8mhI5P+YJ z@9pHOES1OqW#P+qF}&-ahrcYm9bJmQJp5&;xLS@k?c3m;<+gao{y}^xD~7+0_{+mz z7XHPGF8B-K&r&_`?@si@_nvyf9|7A@2s>JxfxqSWO2Vc1im-#Ph_o`M;?4T0i01?~ z$~Zy!@HZBJLHtFH3WL_zJHs7nbZ56OyMx&s$?kY|r?5K{?$eQZj8B96Tx1p8ea5+P z2N_N51{LAo`Q7N><$Y6wPAvV-Z%9XsciMdxDS+h>meU%v^VHH zS1W_g(^WIRjpdKP-Df;y&^ez+jP~vEv0Fa#b2`HAGsrzT+7mXr46+<#^oP4T+TW;Z ze_@pDFN3yc`x|^cjlu29aBgS<+}Dib+ut80_YroVjN)Wz`&XjBs&m@E4cr9#|EIlg zkB_Uk@0~fjl2(shS*xcV2}H1oo!YKt%f>dcV`2FrkZfbgaY#(8wRSCUywb|ME87Co zNW_#!ASubVX$mAJkPsTDA-8S=DG<4k1{x?KgplWr-ICJOp^0zOwA?1m{eFKlXZNgD zH1fUo(|iA@VSh7cp1=9M<~NUXbQj(Q`*MJ|oedsBFMfyR|0!6f`QCP&<~y%F(qoT) zX#PKFj%9;BtG_V6J#Gl-f!EZ*H(SkA4N)gNmTPq?x^N_+fmK;aif~==0-K&=gy$auaV0)V4`woFe-1~ z9AkP}M)Pi2M)MX~M)ST{RP!yKjOP8YjOLxOsKAWoe(8A~UhqIDio0_EhBCY-_Bz^O z8NM%GuG$y0hqSYK!Q-KFwQIp2mEQ-@w1vY^s}0`_OqHd`Lmk0`?H$&+z+Yhh3^6mO$#H{ht#DD zhX7XyTraR&;Le4QRDr4jV@Szr-gQ3-3QSbqW3l3W_pH{qp`O*e-wu2P@;-Z3^B#Lv z^Zt5P^WJ(^^S*jk^PYNE^L{$0ireN{&HLzC&3ous&HLwB&3E*(@_s^A^R4{{pt-l= z4*8-Mj)FJ&Pf5y2oCMyA^1P#;)qHn9t9fVrF~Kvdd1L)48|Rw>SVEHE+2?67ao&tmYl}HfMP0A0Wj+uR8}V(< zq2=$X8CN&pmixH61rQ^`R}-?DH{?59eDDPYj0m^nyKD--rT~0UCad{Pg{h%kx_cS3lj#yS7M!KcRI z-Hne*oA)^ltLN3;=PX=Z>3ls|3~wY!*0Q;9`O80y_kD z3G5O05L(!vf24P=ZV&Y%rL%gEkMm}~e1)Q4zDv=s_+5%9ayKBI_vQQL>lE`9-yCgL z^bqMFp0Uj1tAqfT(mYqj5Y_N@6?ZNKK1F#0v` zliz{56P4%nd)AcIo!5ufTvpew`Q;4yFdOtS!R@%gQ0DP|%)G!yZl?ERw*3c`;fRjO zSdL5lxWw;L<7?=R+y0q&9!xlWps;Wyjkh%yuNqMU|rTn zIXSQImpEyamG&1a-q_D*-bi08_qNaL&#$=!_`g(lFIuBluvl)4XD}yr1|IOy=Xt=# z?|ek1{gcu=XWKuoJ1Hqq!TF@`(3;2VUeJ%Md9p6*dwk7{fPb~-*ZRDE9_|0g`Qe%y zol`!39psdcUk5qm`S^8^Q$Btjl#ky9IpzDK z)z8$N^6{Q_RCMQ*k6#Tr<>U849`jL~PWgDlyGpa)Q$F7BKIP*L@TZX5iJA9DYi@Op zDc@+`34Bc8Qv#nA_zi*IGbuuoZwP!AH0i8<)<9V^BWGSb8DY3Avc#bysmz}7IoFH*RE>NzVH>B8zwQj9>6zU z@mY9-mtIkcFFn!!)VM9UzeMZbzT!#D=D)k*-3{Yv?G;0Sn+5K=B8m17EgwVskt_Zf zWs=KoLj2LvTN+sRLk%zJgI84eUeN53y?+ELhpzZ?K`8R^f}#1-Fds6&|zNFl64ZfEs;iO-jk^Zk^}W`T?S^oJMw`Nn!X z%5(-6`}wB%Vn5$7??MXRYw+`3_Z~mr1nKwFdi49np7{B$=^j7dV%_8Cd#-!%MWH zU(;EAk5Hpo^BpC6@{i8No!$;g+O-|un0rXYJ8pFjsdPuR(;-%?L)JAf=wlsa^EzZT z*CCd3uJ02aZ<#k2Qn3W^+Bdb&YgeRX2;aF2`a)`hdMjX;+61^&y&JGcjRWpbS-^hv z1;BTxzXjZ*eg!z7D*Pc8Ro(sozM?r*8dQ&|r%MBBO1%L1fR2>~)TcG$4@>-%#2?Y` zLHc7l2{@%QfKTZulzCc@BmS)Z9l(ThfB8~;U3TZZrC2$~0k05vsY)U~s2&Dr`vjgAcvheeNO^&s z0wV$^1>Ps{w7|0hHP*4fN?@nJh`>pK_X)heoMSmH@h2sIR^qyXb$t~wQi*p8j0hZ* z^ht@|C-AhuvjTOc^eeDaU_{`gz!R0{)V~Gqllc7tPYZlf;8}rxCs0=j4gxO`*eNg~ za8lrX0#6G(D{w=QI1dP%5O_&7+nK6nzn9Emd_v#}fsPs{OdZ=fQBOD} z@JtiSsJVo#0yhX85I7<5gup3*X9TKwQeNN&16!CfAaFw934v1r&j?f(NiBgJ1P%zC z5O_l1l)y6r)x}a?;0A#M0w)BX5I809j6l^YYm8w3sr zoDg_I;FQ2K0@a(Pyub|t2Lw(CJRxvO;2DAHQYkNR{-xB84H6#^I3e(az$t-e1giN` zOW+290|F-mo)9=C@QgsUK*|f;AaFq7guoL5rv#o6s4kQ80tXf{eny~L#Q4M_O4I|3 zi0!~{-Cc#0#Y`V)BUI}MUs*5K<86$e*i1Mj@XTh))hnBstF|z%wwzP@8(Sqle~VB6 zDerIGASnX^Cj_2A`j;9{NPJ4-QxZQTP;Hggww_ZjG`3271LBQM8zep;aKgfK>a9&D zBt9ijb+c}(zzGY_soR^5cN3ozk}@Umj6ijjloz-`;DEphlYTYFyFuW9zzG9;SnEX3 zIkjN!35ib$JR>P*B(8d;Wq})dS#pEK2P|aDgv3t>oU-toS~>R&$`i5$wavhDYRBAG ziMMWJe1pUX5dYBJ0f|poC|F5+%EEK%V{^}-B%!pni{m=;uD_^2`+EpC2pkZ2Lg19Z zb5*~p3I`Vi`-20)Bf)!u4+Z}!_}$>E!CwU561qC{p3wE7KMI`+{V>!~-CcdSdLWz% z|3UcE;i>S8;qQh2HQZYJiQ3ESHq;%ho2>imy1%Xam%2dxoccZWL-k**|62Xu*Dq>V z->|dc+J?b~8yfCt_*lcqhHo~UZTLmQg2uNuUf=k!#?LkWYvVOd15J}nziPT@?&s&8 zp8Nf|ug(40++WTO&1;x9Z{9`oE}hpg@9KHg*x7Et-gh&0wOdrBx&(XDZ^7>NLRF7F z>o;MK`eLtZI|jlV(hPIWD2);;*|0QRGKt@XL`@8fn@ zrt&twQny#$3HX4-|5)IkRQ^6vo~Zm7;ODDY=8ILq5~aRU)d*Oe5-k0nNdLCIuc5_+Ejx2>hVHj|lv@zy}3>PT;F8U#wK>p9OC7PvAV~?E?1-j0rp_ zFexx2a9rSoz}p3WNZ{Q9i>bHGe^Oc|+$-^zz=Hyl0y6@~1x^UOUEqfV-YxLy#wXCi z^8&vq@cRN^5qM7E{}A}PK-I+ZWdf@OHVV90;9CU#w!q5;zD?j3f!hV{7Pwd7kiewC zBLd$m@D_m|6!;N=9~bzbz|RSM@8vZ(iTcvz4YdxuWgqk}inB3C#c=-v_d{^=!%;)f zMh99I1dKx?9h~~q03LzI>fo;`)&pLTb07zo)MQyi4x|{E&_Sei$#FJ1VPVfWNPY0RKS8 z0Y9P-0{)>M2K=Z_0{#)s9vpQyRtXNiEItN!uRa3!F`QaC>f`zbz!UmL!29%j0Y9N9 z0q@uE1AIW=4ERaBp5UlY>DvGw)b9uUw7wJYA$;%2QGblDH#zDv`on-H@nt1PU5l?K zY4uJ(N4?AWDB^nn!FT6wz?+?W0e{!|IN&YLeSo(*_XFPMd=l_>=Rv^tI}ZWg;d}=0 zPUo|LA88O3e0#-FUv_=~_*c$Zz^~w|Dvo;E`61vl&Z~fbjqjyE-kfuQ&pNLGK8G)%IO=bl z^MKDgKLh+4zHtJ1bN&VJ>(1+dFFOAQ_zmY*fG;_}2K**=H*hZk-+p$~x118dZ#!jx z-*L(Tzw1;2eh**eaMa&A)qp>AYH+stM9J^tyWUeJ&tsnZ%aWG>pDOtXQvRysvw%;R zyo{8;E_nfGxizW@y7gA*!fLFSx2o-!Dc_B+$)}*NH>vmIB==tRDfKz5hfhP3UR2*x zKZNwZt_CZfuli=yf3NyU)i0__gY$xig6|D}HP{;37fOdFLbrr&4}B=~^UyCtCDp;| zmg?c^6V(q_KU#gh`t|B1b5_oY&PmLfcxYQ2poYU#|b}^^Y_>)$p~3pEPV}+|szc@xjJd8h_f@+0@;1ebZN)e$e!zrXM%` zqN#qae*$xF!N1R3$}@Q05itL>!bf!RuP{w>&c@#YsDxdtRM+A3{N4ENRhzNXu!C8+ z3)CR>N^MwW!;lT<*s#WiwKlA`Ax`q8{>3UPeZAQ}U#f1GXMBlO@-MUDVjC{CVY>}i z+iVP4aaPF#D?QGyupSy+VH(LoV4NlYc5bnoq68xQqU;};!5I^p_E);dH3;mh8E_9=Qs`^H)=iI2*;g`Yh zGx)uVUsKJEx*Naa`29J4uj1DdzTOE2kKy-CwDm3gF7aJlcd2hhT}EFQ`ViXvJ^c2g z?Q49=x?T81eA&7|{3cN*finB?8vzcZ_}%Wito{eS-Su}MeAX8Xeht5KzWeJxhVWDP zJ%HaY@w*4V0sp!=1OBOo0l!9gyk@}PgkLv)uj2RT__c%w{GUNy2ESM5?DGeM@4@c_ z_>JI~!tW@4hw=Lz{BFYUck!F_k2T%t|9aCs{>$p`LU;mcpF;en2%kpyEPk&b{vG_z z;P;Ps-cb?^Hex<+gty&_zs7k9;*0R>!>?a{^$4%Wt*jdS>hY6T;qe9d-ehzv5nHb| z$FIMBcO(^Cy6wubcp@50E$NFV4#!f7_|SpO(r6-~c1A{`$>HuyY%O`mRU@#OOZ|Q;hY;he3>-xLg^_9Ert7y!d%UuP>H593PCS-myd` zzIhC+r{HyOje`TJ!2{!cqp?BYKmEBoha@ulVqnooCLT$6Q*-gIcnY#4&5jJFMC6F3 z>fVt`g3+1rZIR*FOvCczL&%jK6Xe2>@9mMqSj|H!GZq^YJ@S-u z(`HE89nT!FTJFgO4R%D3k)u*>?4%AAY_K;uk~x5B32apVwtf~)x9&eKVc}o zD}z=GNt9<+Vfu8DoLM3_jf@R%jU~V~uSk2Ot$%#fD}0^6zt})|%6ml7SV7VRb;5j-_L^xv2q9)(?|xt%ul{$vz172-odfZN7YOzc8ljo(n1W-=SwM@(awDTdR7 zNtph9s&5=td{`OLf|R<}+oUhum`qr1q>YV?4=OQuz*a<+y5 zphT?f_%M!C%#HWNM-DCBbaXTYLo9PrK8{h*j3A({7^^cTm`r=_Obw+?(dDY2RaB=~ z3DoRLy7A?R%kVK*seV&H8ZH!GOi>Bfc%|)JgH9DKi|QQ041_WFMn+X<)Jzr}aep!s zNvI)r+RE8ZH5?!5JCva4#ZqFaK+VF0{qa;f!^YDp0lt_RSQSgf2hE?Z#MG2gJCf;m zCVn`^c;A6!DxYGWdXg|}ZXtQt#iF}R)RX~V;={nxE#^LNP9!7w_RLdPa*X1WD{3Cy zIYBt>KJ*_*CC7#is4J7nL@Y9*t{jI&?i0B204A9&WAP|v8aqtYV@IiW97sjdC@FuR zQ|%gsUT#E!eeOvfDR|yCmPpu%yeF2)z-nw7j=&`CK5}GNDxvu69tBS*MQ(g*yk-l*_O-J|cO2;te3XRnCRMM+3 z(U_USG@vb`onCue?C7-G=x9eOb~v8ISGo#HPgAPG%&z3-WNK3c^GiV;s8_)=2VamN zvmDscpX|jrKy%X2(02QNuWOi=98-vPC6_l6jU5GdSP#sA;0qTlH$2V|-6P2>n3&bf zeZ6r%rVny^dfSEVT9cfgBvjrHq`Yj7#}d))Dc87&6c#6o)yBL$y|_u2872mLDib3{ z+xPdyuaBuQs*6o7M2zIw7#WQWLWqSP9&?_+omOdb_l=wFc;meF2lwv1GBS7&u7Qvo;s=S}8AFSzJKYuA zAAvh+$T?1zm*m0JOV74%6xNCnm7uXvonX2lG^|mSdJo2UJP4C#e2ZyWro7FH#u6&Q zA#yIUEEt7P$3b?%1v?;Vu3+v=CNqWrg(*a|H$D;{9vj|x0BgilY(!d^o+jlYM~ll% zOJg~3-{MGI@=r3&t}tjtFlP;UN?}IICm8e#5uJ`u@3fBd-4ry{A#D}0ucM&x;_PX? z%}}7Q`{DvQe2TNY2o~j9wZO{A2vv8%5@e=CBX-ksOlo&mTr4&`_<`ltM^PF0Z=KP@ z5iI1f_N53?Jl&LBhcjhDL(PJSncX9B7OhDjchHXjJ-=7o>$&pIbG5qFMY*~*MNGS}oaO^-n<-q-#WYv&EN(uO$u`GFtJt!THJx}; zbKP<#u#0MOQIg*MHE}Y4&G5L)iDc~?yCyJP+(gT{QXOwtw1`n@@tizc|kN|sIg z?M6*n4SV-(u=55l8k;d=w09=Nkm-yP2T=rZpN$iZoq>1~ZZkN>HB$zYe7b1SE0bc* zrI0qg&PZCQ2WrKq?;6rg$CM2HvpY~&8q3C?iVRC$B6c{INGobS963&^s zBkS%v9B}u+3>gIPQEv70r^c<5VY~?X(D}5D+-1PZGaAi#0W=4>6+Iu|(zn6gu+in< zvW>35KCF$lTekycSLUOu^3lul(bf6rntZfvnJ3=ni7)rWS9s!{F55hPws|^j^Yq&0 z>9)<&?{ZJS%e~|D40O3?q{}`1F8B1i+|%!JPru7O{VwZDV`!Tay7AdICiLR7ZBFQfXQ2^8;>pk= zCUoJmZBOXIXWO38fzP%*89$z7>!ND8lE*+HZA8|JNlh*!M~|3n>{5Ilf5OjW*uZ{&TJzw*X~0hYWAPFd4s)AJj+&;m*lE5m4YXMEEcg7|K7Bm zLJYdwM9AfyMq#4egh{~w;6N)rvOAfIrWKB;a99_$4RI-I7S`O9<;Jqz!P=JW1;0(H z&coQoVmh&~6`^@%Ge~xna!-iJZjhUrf3VoNyFgOFeLyW)6JvSnMiJ)rfJ}1kQCyYW z>4Up}n@<3eoDIDm4U))udQ-`WaK(5po9bWwIeWxJK&;E zQrIZm*jRrOj2&k4=BXQgO>W<=u#hFWr>IS_#{uFtxF<{`S?-jH59XwaF>~5v(#&>~ zoH{WxRJoVe%Do1*!>Ih9n+s!NS4j987d87v=b*c z2n7HBr0ai^AUvE>5wp#K{R6u^vk{9nB=h0o-o=?Z=g2ZwsPGl1{&)x215{rQ?5=qBmQF|iBU??V=uQ^wqN7^cr+wina z0dZc!0F$k;!VF9cb`;mMfynm#;z+`vr7^(7cz-;Th~-7cP3D3)6_?u^#hId|Bjd#x zpiC6=d~wFcss-= zZ20Z*G*2G$RXFM9pKJqN@d$h#to87hL%L%7#)gKdeEDJ~4XQ}@2Ogdrj4s`2yXElX zSk!y_MS>jo?2IKMMEr_vr|5IlY7M>pHy^z!+Sx8v$=Z`i^V%FmMn^~ zpvDfvNG7jH+xMk$D25%a=>+WO-kGsSu3<4APbW6^;ZtC4kVUjK4l8ZUz!vKvY=>CO z#y2-g1WP42WXVib%q*(Wl6=Xr*WP>$Ied^c`yCD|N4v4PwM!T1Ok z_;6&zGwH>>32~~hjhh}#%7TSAo)FD%fLt9jGop|b3>^e}P#^oUQMrV`X(2Bvy{^%> zq%zwl@#{sDl~u$XKiEzx9vOktE*eUK5xd%LOGpR-gL7@%Y3qH{ zxkefTc-su%YGdEf-9GNJ9=5w%n%maH{>J)!d-pECkisi2r0@lyvGPJ%UUeabFTaq& zt1qPR8fqE0I&qsM>C%~Lo}EuQuQR)!5`~P&9E?)j1vP1OW+X=Omk5MD{U4zM_bPW* zKrZgPkivr(QaE}cg<}^|c>jeIZd-OirQ0s3G<3japQ|P$YTF96v2T9I`ZarD1qTmc zw__wZGLHSqw6Txw26Y=mY{vS~fEm+Q&az!du~tgJe`r%YnU+Gg1VEKO0}<+H2{!&6jumO`=|LQ+(> zeU|;MCc}9tr=#FJO~yS-b}t9Ji!0BP-^*w0d6o=c4u%)^JWGzRAjjQVjiFc6SIm;< zE5P%jy0hf@3h=zB?kst}0z5COJ4>FgAkSGDvwFv_f@4jxeZ?%uOQ!x zYtNGLE6Dib+Oy<*yUTfaHywqC!z4iaEP3A!-p^2bmfUZjx$jx>AK#jtsqa}zKszPC z-s0;hI1ZQb&r$%|AppgdXUYF|@V~h7EZN@<_7_*4CHGg7`_{$9J(Ggde-3};EZM)3 z?4P0fEcw5Z{GXxvECpaC1z?8ivy_09A_1m8wzqiQ$LvHQ-Z!?7Th+2L)#1GkA=H_r zaIA!I6xE%jY^;QA6xE%jXsm>26xE%jWUQiOK6$D~> z)maL|DhR{$sxq+_9}3@xbiI7y$b9ut~^VAUvBx$ zg>Qakk4>AMv0<#?Wr=V1D@<@DH&ag z>)ZG4%^Zj$bIVNELa0<&f#mbdK8#sHV^usuMig_DyJ_OtxNxuiFLeilO_UCIOU>SR zS&u?;oQ3@j?qb+%Z!4bK(+YR2U%q!Q_f2^zVuqTsLlYm&^^XpU`ycY`o6OLL+dJwm zm7`p@BhO~aQg<_@V}0A+z1R_^`?@}{cdxyXflKGHNVFSwgNinHytpm>4XDg&IPMnE zZ|KS`X0|S4sjcy7G&WMa^Cy_|xW|mayUXNB>5YuwSOO<@cAR*nuMfNbxcMLRyw=Cz z?Zm4(DRcOW9Vgk?+YyPUaI4UBT-?EfBJ2^l$G}D;aeg5ima|((@YN(7bx%emjO9Y_6v8PREwqr2}5iz>_^(m6Kpxf;TTuFk=@EQBsL< zw^!oPowj-)c%Y2u5gW~-ayY?aQJP07ye%CEB5n z=0Hn{E*duGqHVZ?9*N@CBi@2?uV3f)hDptCa|R&9_b9SELwSrp&+7R+9pGmZ>8js+sNJsE&^7HBL^R)68 zPfx!A-#24>H{hE^_|xBQCchQqB;GE@#G@5>m~rMQv=o1;%cYj8ybAaduYLF~Sua`` zlo8?819>L(IK~+8Rl%!JE{&%#)KQHa5lcy*8KjR&sgzPR+iWXI;XoSoI)MX@D+^k| z>lmn^f?YzdIP%bAWk0x>KpgE=Rft-v`ODF@`$#GMt>dHFtVV|nnrK0VttlN%-bWh0`sk@W~ zj`y&kAoxkjQA){YQqxEVxs&5vImeJ9htM}ASZGm8dhL@Mw5f)290T=#1Sv_BC+BE6 z$sP8^zK2P_O5)|pCoRnoN*XCA-;JJAcB!)m(H8Dv)yvvk5@VB~Kc z{ZrQar4BB*00&h~?VvTsbrf=`+Q^5oT9gn{Q$`tlyYP%-V!b|@RYs&uJO>SB1`P$v z$u;6`tP^{%+7x^TayVM)9oEC81nI{9nX(`Mkv^afB#_kSye4!Ny(6E28{))8<`hVL z6t*0O2fiOAgxDGgO-&NNZTkqikujnDI0wv8>AQI zgfb_VrMe4oW3@!%twg)>PTCn-Q7UME&A2H^+c7#y2B-*GF!LnJRC7esdya_Q-GMsR zLRD@>d;~chA8AdQ6pF%UJgkv`l;QFXHs?${c+?N8|(`C4;u(;owKpf zebyxJ1qW+SX&+ttBDS!6yKs)ux*cs8N_L?|(KCBk9(LNJ}Dv zpgwV;C8j1BeWo-(PRfkzdc6tAX*sQmXolEbwv5q<4LJge3O(^;JPCP%G?Ugsz2I(% zTgd=-jLkK(9&He2K;Ub9JR?DQ8$cUK?Id25Jjys_dC0Ua8cpf6T*Zt;9t;@_D>>s^ z-@y7+)-u>}h`d1NDYLeP8p=E^JE>_)QbS#Thcg;yEm~V@A!Q(^cQu>9D@tOHyF!5@XrGkn1T=mh=eGk$HU8Wv zj(L`cE z`uCw8XLot3rPNU3sgKv2(%_(xMk`4*-NI$|!F03%`E}Qa%6dega1A{U(<95F-`Xum z$$Pqz7NmS9@t^n}q2dcpBoJc5)dwh_aB)7M&}Vb)_J zC%BsBjApPfRB}Bv@*jA~$}EFX4U@itB`M+dM(rY2!gsMvW@R8fVWn3j-(~Lv1;|H3 zQBo6}5-(D80)8+(L*XtgE8C6ZiPWOpam|487$y6(w$(}jSJg%edXS6D*Qkkl_4#^6 zHbk=FpSrRq7}yn+kz&r7QVLdw{1W+)Sx#so_KdR_DLh?%9d_r)HIieY@c2!pNYR$nmR$7TrJTH&Zv|} z+HYED(o@DMbxD8r4_rip=@YY6!)a?bL^jMkg+470G1{6!ny_YG#)Lz#rtX}^e$0G9 zJ8pQxIh5AjYPF>d$74J}7f;S;xl+}f)ARDinI^w7BMx~Q7(F13Ic7r_(tt5zSLkbT z{-VBPmIB45SwYMfoR2s^68}C>+h{I)0C2_h;93o9PimNMw8hS(p4FA%n~@wN*}z%$ zVW@57>D9tR;zYSpnE5zw(4VobO|!({1n{Ef4ogW@z7?gp*XOlo7B{;tpoXC@Xd&lH z;RaSt+zqh2fR39PpW`N0?s|ti4aAC)M~fYiIvfKn66FlJvO41&3LG#4vkk_@dK6H{ z(2q6ETuN=A*0UwX(XMBvLTm6~xSwg{$7o2-8JTcdKf$TsZ+HTh?v^QcwE zd69J5g7Wm|&I;9u6{Xi*A#vS8jWqjMtiyE)Mpwh}(0j+>nY5rV8uExVCna{MA0ZSB zVQVbcE3ZXa?w$^zL?=ocPSbL5M8>-#4!cp8KF$HqgR;VYSjX%S82dr5$nA~xJ%VwQ z?%U97j;iR}@Q24ri7z@{1NWtu5yleK;kCBiUGG0892OKf- zU{{P582Xs~8F$Bt`Ns1$DHvgJGcYzhWXop#K??9`n@EiDAehHq>6O#&>_i!3C7>;` z&q{CE?0Iu`q2zEJwA1E^+%|hX#{Pp>I0c|Aa5tA0UGx)_{u!ucSWARzSN(O4sc5&~Pbu(_d$G;~{*f*^vaV6Ky{uV}w9XjJdp%liL z0tN8RUC8N}NQh7z@x^`>?{IO{1q^B!N=H9V2>YhH~4{Gd)7!D68cWaKy?1Jj5}{qi$I3ki9xSnR$fy z>=}F!zu!n0@B;pn2YQpp!|hj|Sgpm+{CA^jl`}Fo#XK+1mB1O-Tv9lSnURu4?r_#4 z7OIvx)NxPR#a9AX+IFLRoW-eMxjHTMf%en&)-gi`ez(Sy4> zq?I8*RDGA=!WE6DHuj%bn^dO0aF;HH-iQIU($F8Wc<~lck2Z#q;Bwp34lF3^&_3pH zeUq`O+)FN^jLpl;ly|Xv5@aZ3_FX*f!fsKbfp2|}jE>%cC%=XE)X3}%n9enGI`^;= zXvI?xD{)fX?4^++7&rC`h&x9>8>}ud&z#-Nc+LKor|ShZ@~S=?dWv| zdWkkrf?aO*0fQ9UDxf&Dh_jT@QQ_#DXb~f5ai%t@b0$Z|CZ4R(ALJ{e;-JdY{cIXQ6*bcCt#1jZR%P{N6JR-d|VIg+>?9SBg#-KMrZb~ z-IM(`DZ_L2A>f=pcUKcn(pg{=?m;#W-eaZQAAHdfF)|Y~ryDY>75#Cufo-{1x%e=jSgHs`f#cxBHq)r7YFspt4s0oc z-y2cLlqE$eoaXw3T0x`9NzSDUk7()GvMpXUpt_kUikks4ovr&#b+~z9IK&zp$spP^ zn+$5=nNB2do->K`q)8|auvKia83^r(VagE@z|7)?m3ibyR6Y?&mOhGjp;Q?bnxPnh zFn2&kWiV!!>5Z6aB-YrQ=`0lQB=u7Ak+ zE-u!TR$En4tWBOOqnOciqQw`h+UN?W5m}~j-c*fd|9=$aS%-Tq;vLAr6zvLaC;d2s>nNVkT0LvC4X&(s4k>e93C)5EQV{n^IrteRX7K3M{3M$u`8NOgk)DNe85z2o#2r7w94 z>W~I`qhPpBNhf`Ex50tF7rhU1i_|r%7(UJ3-rjqmP0b{Z87p{Xn|A_m)AItz6eDV8 zfcr3f!{!;4Ym33I2X+3>hI#jeHT0i4$W2@W(st4N_}}N`M=zwA|I`6)=X}UHz%}qo zFii5(HFwj+)irN4%EeBCzV1TX`;SIT_t!fSXqmmIW9v>b(=mPHiH1{IOzCT9!u5?> zyC6KTxsaCM7|%Q(w4Fe<0dIWt1Uw?2{$s;pM)?MOns}5eIO97Tt4ISuo8F2Wo1Cli zU5$(N@>;IE!}cCnJ)`~%jXyvq#|S*#Dz46E@+3HbIPO!%@N30ijy1h{?WPg1LQ>){ zPEMTuO{klz9Xtl6*`=}m|7-}?Yy)Pk;u&(1Fs?WykNz7SAWl`Z#e6bTGq>sJN|DIq zKRx5TKdjOuA~&^I#^pT6?lP5&bK^PEJt0v!wU2`MCeAINVqCa+;$qS(bqpR0@h6Vd zZx{tz=O)|#`%&!jU{W-S*i4>&Ucf2LbY1CPb0deer%j?;Y&b)@<*kG3KozckRLNr0 zQ%g1qZ>TVZt0OKyGf+F@wwQI2df#x~hoi1=MNA*VAZ+p|5Ugs9fe{TCg+d>WCFpNW z_uc`ev&gga;#5UdGU39JBD%OnDOK> zB>hawgcJ_8z*91+C)>(XpUX_+P|?RVEmMe$LeM{?Z%q}?)5g%%EUZT*m$ulfp15yD zN|F-vTJ^6vsX^rls(fLZ*5ZMj45z?Fsn(9Fe!N)BkNPbP0WmvwG)Dc%W3w( zy&ba(an+NOOM05R^%Q^UF^>IR1gs`f!u3RS239RPd=j95g9iCU}PlMiG?NhbQi_;R7alt9^XTJhmdJ zM5(9I3@ft6vo@Tv;VTFONPk6#C;q{W{Me2B)Q$Yyjr^+{`K66ay45HBZc4z7RJoBk zZln&Qy2PS`aqb}&2sub!Y51s98mMe_?5M*>{jK;L)8*K~5BCtw3O5$+K(tobdaX+P zTeS{V&(YHIMabByFH)6wX1p2D>A{!)++rxJ)~4ft6B#xB&&XSa{-832+2+*-EV{QI2*(zS0(ls0T`0eL4^b zU`-wHmDa35ddRPIDBx2nfTGC4Bl49h#baq{DIQBp@mPV!ii!$6R#f1z9KTBZ%KSKB zSr<@F%{u;9ieozj$f!d3s;VlKud2c${^C9UvSJXA1gd5YtE}OFtbzb#9Q;b~^W*1Z zp-x0XmC6?i)Yoj%PKz&~v`?ZXb2Mm!s^PieZZI$0;a><4XcdkKi&ulq$I8It@apg} zp(1&2IO&vzns-4vX)~sKYIFwX6=u4tLS{9&S>8oZK^=M^d9S`8tI!u^)|=htOxAQ? zk44_<7Wt32=L$ONg2~v7AO4gO3>S~2s@ztXwcdT`6vM)*#t?JD;Y48kF1{4S15_F# zd^s&ww$82YV#Ef@Azp^MkUZT2bt5x^5GIDSBNCxh`WC7{*+QGkP;wbzF1gwr?hVY* zPII{TB2_*|`!plXrQl{LTpqxlix@6ZSlX*Vm4a4C4D!!n;iG|a_A6#cxKF!etP|zs zSUJ0sTuRO{e<>;gOg8&VfqMX^V&ZG4Q9*q{7BU2V%1{Z$7d}?f>Xen00hX7S16Ed6 z0zzQ`p+$hu7C`6#AVfdVYIOvUKA#V;1pitczu(U+(FLfbgI_6r75J6oSBYO4FosgK zsw(_~_?6)2XW|+tHI%m%`husr2v~x#PVOne5GVJLuoK4vrO>=<0)aB+ zV-N@+MCXA(x$>JxpbUcs0bwjq;r9ZiFiJ2n6%35EvC%f9Ld#m5QejQFrMZGMr(ME) zAo5`1lDx}Tt3n}@Y~mHJ%~KD2B-FI}3tGTDQQFdM>V;dVGjU+}holkorBa@a z%9(Le1qCTaN+6912&0HtnQ|y;n1Xb8L!hp;w4k5xF^FlYG)GwvQCYJD-+OawIZ7JC zZe)fM9X{&H4a(6Ppj)&IA;%07@CTqb6=-dkQZsSN;(rM2(m)6JoH9Wc@`eT~=7`)= z*vlAYKBgZ8bLKeI2+re697v5uCr$xqg}U8&#p_E5o*V7$2; zj3J6Q)wrY=DMP?~PD^uf``&@Ww!rbuPqCb1Fr{#gL4es1^UtWvLZe2HeKaoNqc9Ur z2-^e(5hp$ z2SVYA?}y6Dz}fF(xUD7hu`$2b(`_w7&kRebHyAhNHbw&or586Hm3&oYegskiMykvy zl`5t1eM8O7@SPEWrlC+vv%gHYGz0B2N`1}5Yp@;7fs!((1rX#4g-Q_*wS>x)pLL~t zXueh#b0l~%K97BCa(}CQL_t#F@w59{RaI63Udl{>)c`n0^8_RioA_r~)8^)uX3!T2 z5a(w43QPe#4KJQThyjEr`)Mfa!v{FjGO?QV;S3%yX!4BS6~am8my%s?P5rlwK}t!U9vqA3L)p|XlQY#{gB@!NpN6nfb+A~f_ zjVbKu3UzAH4$M}~8jKw@qW4j=1}GJHDAEKoAfCI#NrM7Zpc49lFGT@oMISJRL&?Wo z2(fa~zGi{|#wrC6N{+8Wqp&W?*DXO^c%h~)BB)lvx+QMi5~+(E)J0)knXg-ky6}2U zT|`i=ve|Z7DbC7&!-OehcGbExj3RWOr0S1R%K@Bke zfLnodkVI6Vw*&W<una!{+(B8PKjzH~U^ymZ7U3mmc5|}I%o{ReQglT;yGcLa22=XJ$k8tG| zf$I(fi`nKHDR&fRdXX6GMIa;Nr2;DimJ6&DNWXCrxyhhPU{E0JK2rQ9dyPDV1o}); zXL)_iq@hJfCa>HhtW3BYMdQ*nJZ@CLU1)t5BUr0qWXdHld4_~#+ zfh0gS;;6~Fo{ZUn(9CI#%OKL>Lx`cVTxu!& zjqc`V2nYQYQtdf}7nKFV-2o{qD5EoPB`AM|EQZ$6dQ=ev3Cam73H$*llT2!GI55Fu z4h(mPV0_VA_(s-kDG8LojcF;Nt5MQYLPB<;W+3BFs5?fcZ4n7G;F7_%| z;YZbq5}4_VAfhm4baLpn_yZva>~_l0KAJ@Hm|zgc$aeX#O#)%`W0#p$h}>@$`JjIz z>mqP8=+4WMElLBAowQ?uk!jEn|2Mmog&8NCtSW(4^U6%KmIVc6&3c1`obmu< zBe5f`z2-xN3-LL(w#BW0%NMl*6ExTg1kku>YA-f(G&Ff~LZ&LmeV`(vDAziTWC0^C zL|JBoBQmYEa0Y2P_>fLA0hp3pY*_$y|7OxK)EwgW0oEF@FO#>` zj8~VHFoOS~?vuB1MF8UvD6@WJMVV~wQLW*AVtwF)6@;_c;)BYT;#WZ>UWW)a?lFJd z$x`byZ6TKZLGtZxOb-lH=*~aRy+H;`d00{bobAyZvB&+ z-pPHrjcfPd&zc?FlN?R&*=GMt$(}y^;eo-}9vA7QxeWXrojv&DD-_t`T<@PxSvnfs zryfAx?!PA(Z*`vv!-qZPl-j#7nd(X;dhz!~)o^+cf7~gyG>X5M$$!6IpjtOb?7zVO z4h6KDgKAAmO%&FqTq(RkQk>3mTk(6x39Z^GF!o=&uN|?st3I_Ca1(9@^{H;$Ro{l^ zZotjFw~l|0`+xH9*iV$W7rf0r_z@Z@&*yd_s?jR1WANq>uVHlK44C(t_;0>qEq>*P zxA^#0H_xB#)oLm6us@4NHE`mU44yd;&Ct@QlyTpjS*F@?LlrbYhyxY5{LOn2>|-1w zG8aSGJaM`n|Cx6TV$x%e3ZssTEpJEhJ2mW^C+d0Jrq^AHmJ2WOkPiV*TW?2O<_Zr_ z*ZFT5uJ`1B3Wrp0MtM?*hgN*IhBq7X82{!zmw-~FGjAI3+Kc