From: <che...@us...> - 2009-06-16 02:59:53
|
Revision: 2927 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=2927&view=rev Author: chef_koch Date: 2009-06-16 02:59:51 +0000 (Tue, 16 Jun 2009) Log Message: ----------- fixed starting plugin as process plugin improved connection test in configuration Modified Paths: -------------- trunk/plugins/FritzBox/FritzBox/FritzBox.cs trunk/plugins/FritzBox/FritzBox/FritzBox.csproj trunk/plugins/FritzBox/FritzBox/FritzBoxClient.cs trunk/plugins/FritzBox/FritzBox/FritzBoxConfig.Designer.cs trunk/plugins/FritzBox/FritzBox/FritzBoxConfig.cs trunk/plugins/FritzBox/FritzBox.xmp trunk/plugins/FritzBox/Tools/FritzBoxConfigTester/FritzBoxConfigTester.csproj trunk/plugins/FritzBox/Tools/FritzBoxConfigTester/Program.cs trunk/plugins/FritzBox/Tools/FritzBoxDebugger/DebugForm.cs trunk/plugins/FritzBox/Tools/FritzBoxDebugger/FritzBoxDebugger.csproj Modified: trunk/plugins/FritzBox/FritzBox/FritzBox.cs =================================================================== --- trunk/plugins/FritzBox/FritzBox/FritzBox.cs 2009-06-16 02:49:27 UTC (rev 2926) +++ trunk/plugins/FritzBox/FritzBox/FritzBox.cs 2009-06-16 02:59:51 UTC (rev 2927) @@ -33,7 +33,7 @@ namespace FritzBox { [PluginIcons("FritzBox.FritzBox.png", "FritzBox.FritzBoxDisabled.png")] - public class FritzBox : IPlugin + public class FritzBox : ISetupForm, IPlugin { public class Settings { @@ -240,7 +240,7 @@ #region Variables - public const string _version = "0.3.3.0"; + public const string _version = "0.3.3.1"; private readonly List<CallAction> actionList = new List<CallAction>(); private object tempNotify = null; @@ -537,6 +537,68 @@ #endregion + #region ISetupForm Member + + public string PluginName() + { + return "FRITZ!Box CallMonitor"; + } + + public string Author() + { + return "chefkoch"; + } + + public string Description() + { + return "Displays FRITZ!Box calling information."; + } + + public void ShowPlugin() + { + try + { + FritzBoxConfig config = new FritzBoxConfig(); + config.ShowDialog(); + } + catch (Exception ex) + { + Log.Error(ex); + } + } + + public bool CanEnable() + { + return true; + } + + public int GetWindowId() + { + return -1; + } + + public bool DefaultEnabled() + { + return true; + } + + public bool HasSetup() + { + return true; + } + + public bool GetHome(out string strButtonText, out string strButtonImage, out string strButtonImageFocus, + out string strPictureImage) + { + strButtonText = null; + strButtonImage = null; + strButtonImageFocus = null; + strPictureImage = null; + return false; + } + #endregion + + #endregion } } \ No newline at end of file Modified: trunk/plugins/FritzBox/FritzBox/FritzBox.csproj =================================================================== --- trunk/plugins/FritzBox/FritzBox/FritzBox.csproj 2009-06-16 02:49:27 UTC (rev 2926) +++ trunk/plugins/FritzBox/FritzBox/FritzBox.csproj 2009-06-16 02:59:51 UTC (rev 2927) @@ -54,7 +54,6 @@ </Reference> </ItemGroup> <ItemGroup> - <Compile Include="ConfigConnector.cs" /> <Compile Include="FritzBoxClient.cs" /> <Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Caller.cs" /> @@ -85,16 +84,10 @@ <SubType>Designer</SubType> <DependentUpon>FritzBoxConfig.cs</DependentUpon> </EmbeddedResource> - <EmbeddedResource Include="FritzBoxDisabled.png" /> - <EmbeddedResource Include="FritzBox.png" /> </ItemGroup> <ItemGroup> - <Content Include="FritzBox.png"> - <CopyToOutputDirectory>Always</CopyToOutputDirectory> - </Content> - <Content Include="FritzBoxDisabled.png"> - <CopyToOutputDirectory>Always</CopyToOutputDirectory> - </Content> + <EmbeddedResource Include="FritzBox.png" /> + <EmbeddedResource Include="FritzBoxDisabled.png" /> </ItemGroup> <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> <!-- To modify your build process, add your task inside one of the targets below and uncomment it. @@ -105,7 +98,7 @@ </Target> --> <PropertyGroup> - <PostBuildEvent> - </PostBuildEvent> + <PostBuildEvent>rem xcopy /y "$(TargetPath)" "$(SolutionDir)\xbmc\bin\$(ConfigurationName)\plugins\process" +</PostBuildEvent> </PropertyGroup> </Project> \ No newline at end of file Modified: trunk/plugins/FritzBox/FritzBox/FritzBoxClient.cs =================================================================== --- trunk/plugins/FritzBox/FritzBox/FritzBoxClient.cs 2009-06-16 02:49:27 UTC (rev 2926) +++ trunk/plugins/FritzBox/FritzBox/FritzBoxClient.cs 2009-06-16 02:59:51 UTC (rev 2927) @@ -111,44 +111,57 @@ public static void StartClient() { - Log(LogLevel.Debug, "StartClient"); - connectionFailed = DateTime.MinValue; + try + { + connectionFailed = DateTime.MinValue; - Thread thread = new Thread(new ThreadStart(Connect)); - thread.Start(); + Thread thread = new Thread(new ThreadStart(Connect)); + thread.Start(); + } + catch (Exception ex) + { + Log(ex); + } } public static void StopClient() { - Log(LogLevel.Debug, "StopClient"); try { // Release the socket. _client.Shutdown(SocketShutdown.Both); _client.Close(); } - catch (Exception e) + catch (Exception ex) { - Log(LogLevel.Error, e.ToString()); + Log(ex); } } - // todo - public static string TestConnection() + public static void TestConnection() { - TcpClient TcpClient; - try { - TcpClient = new TcpClient(Address, Port); + Log(LogLevel.Info, "Testing port, please wait..."); + TcpClient TcpClient; + + try + { + TcpClient = new TcpClient(Address, Port); + } + catch (Exception) + { + Log(LogLevel.Error, "Port test failed: Make sure you are using the latest firmware and the call monitor is enabled (#96*5*)"); + return; + } + + TcpClient.Close(); + Log(LogLevel.Info, "Testing port succeeded."); } - catch (Exception) + catch (Exception ex) { - return "Error!\nMake sure you are using the latest firmware and the call monitor is enabled (#96*5*)"; + Log(ex); } - - TcpClient.Close(); - return "Succeeded!"; } #endregion @@ -157,17 +170,21 @@ private static void ReConnect() { - Log(LogLevel.Debug, "ReConnect"); - connectionFailed = DateTime.Now; + try + { + connectionFailed = DateTime.Now; - Thread thread = new Thread(new ThreadStart(Connect)); - thread.Start(); + Thread thread = new Thread(new ThreadStart(Connect)); + thread.Start(); + } + catch (Exception ex) + { + Log(ex); + } } private static void Connect() { - Log(LogLevel.Debug, "Connect"); - // Enforce a minimum wait time between connects. DateTime nextconnect = connectionFailed.Add(minConnectWaitTime); if (DateTime.Now < nextconnect) @@ -199,15 +216,14 @@ Log(LogLevel.Info, "FRITZ!BOX connection lost, trying to reconnect."); ReConnect(); } - catch (Exception e) + catch (Exception ex) { - Log(e); + Log(ex); } } private static void ConnectCallback(IAsyncResult ar) { - Log(LogLevel.Debug, "ConnectCallback"); try { // Retrieve the socket from the state object. @@ -227,44 +243,43 @@ Log(LogLevel.Info, "FRITZ!BOX connection lost, trying to reconnect."); ReConnect(); } - catch (Exception e) + catch (Exception ex) { - Log(e); + Log(ex); } } private static void Receive(Socket client) { - Log(LogLevel.Debug, "Receive"); try { // Create the state object. - Log(LogLevel.HeavyDebug, "StateObject state = new StateObject();"); + //Log(LogLevel.HeavyDebug, "StateObject state = new StateObject();"); StateObject state = new StateObject(); - Log(LogLevel.HeavyDebug, "state.workSocket = client;"); + //Log(LogLevel.HeavyDebug, "state.workSocket = client;"); state.workSocket = client; - Log(LogLevel.HeavyDebug, "Available {0}", client.Available); - Log(LogLevel.HeavyDebug, "Connected {0}", client.Connected); - Log(LogLevel.HeavyDebug, "IsBound {0}", client.IsBound); + //Log(LogLevel.HeavyDebug, "Available {0}", client.Available); + //Log(LogLevel.HeavyDebug, "Connected {0}", client.Connected); + //Log(LogLevel.HeavyDebug, "IsBound {0}", client.IsBound); //Log(LogLevel.HeavyDebug, "{0}", client.Connected); // Begin receiving the data from the remote device. - Log(LogLevel.HeavyDebug, "client.BeginReceive(state.buffer, 0, StateObject.BufferSize, 0,"); + //Log(LogLevel.HeavyDebug, "client.BeginReceive(state.buffer, 0, StateObject.BufferSize, 0,"); client.BeginReceive(state.buffer, 0, StateObject.BufferSize, 0, new AsyncCallback(ReceiveCallback), state); } - catch (SocketException e) + catch (SocketException ex) { - Log(LogLevel.HeavyDebug, "{0}", e.NativeErrorCode); - Log(LogLevel.HeavyDebug, "{0}", e.SocketErrorCode); - Log(LogLevel.HeavyDebug, "{0}", e.Data); - Log(LogLevel.HeavyDebug, "{0}", e.ErrorCode); - Log(LogLevel.HeavyDebug, "{0}", e.InnerException); - Log(LogLevel.HeavyDebug, e.Message); - Log(LogLevel.HeavyDebug, e.Source); - Log(LogLevel.HeavyDebug, e.StackTrace); + Log(LogLevel.HeavyDebug, "{0}", ex.NativeErrorCode); + Log(LogLevel.HeavyDebug, "{0}", ex.SocketErrorCode); + Log(LogLevel.HeavyDebug, "{0}", ex.Data); + Log(LogLevel.HeavyDebug, "{0}", ex.ErrorCode); + Log(LogLevel.HeavyDebug, "{0}", ex.InnerException); + Log(LogLevel.HeavyDebug, ex.Message); + Log(LogLevel.HeavyDebug, ex.Source); + Log(LogLevel.HeavyDebug, ex.StackTrace); Log(LogLevel.Debug, "Receive: SocketException"); Log(LogLevel.Info, "FRITZ!BOX connection lost, trying to reconnect."); ReConnect(); @@ -277,7 +292,6 @@ private static void ReceiveCallback(IAsyncResult ar) { - Log(LogLevel.Debug, "ReceiveCallback"); try { // Retrieve the state object and the client socket @@ -364,9 +378,9 @@ Log(LogLevel.Info, "FRITZ!BOX connection lost, trying to reconnect."); ReConnect(); } - catch (Exception e) + catch (Exception ex) { - Log(e); + Log(ex); } } @@ -377,10 +391,10 @@ LogEvent(logLevel, String.Format(format, arg)); } - private static void Log(Exception e) + private static void Log(Exception ex) { if (LogEvent != null) - LogEvent(LogLevel.Error, e.ToString()); + LogEvent(LogLevel.Error, ex.ToString()); } #endregion Modified: trunk/plugins/FritzBox/FritzBox/FritzBoxConfig.Designer.cs =================================================================== --- trunk/plugins/FritzBox/FritzBox/FritzBoxConfig.Designer.cs 2009-06-16 02:49:27 UTC (rev 2926) +++ trunk/plugins/FritzBox/FritzBox/FritzBoxConfig.Designer.cs 2009-06-16 02:59:51 UTC (rev 2927) @@ -33,15 +33,12 @@ this.tabGeneral = new System.Windows.Forms.TabPage(); this.checkBoxExtensiveLogging = new MediaPortal.UserInterface.Controls.MPCheckBox(); this.mpGroupBox1 = new MediaPortal.UserInterface.Controls.MPGroupBox(); - this.mpButton2 = new MediaPortal.UserInterface.Controls.MPButton(); this.mpButton1 = new MediaPortal.UserInterface.Controls.MPButton(); this.numericUpDownPort = new System.Windows.Forms.NumericUpDown(); this.pictureBox1 = new System.Windows.Forms.PictureBox(); - this.buttonTest = new MediaPortal.UserInterface.Controls.MPButton(); this.textBoxAddress = new MediaPortal.UserInterface.Controls.MPTextBox(); this.labelPort = new MediaPortal.UserInterface.Controls.MPLabel(); this.labelAddress = new MediaPortal.UserInterface.Controls.MPLabel(); - this.labelHelp = new MediaPortal.UserInterface.Controls.MPLabel(); this.tabIncoming = new System.Windows.Forms.TabPage(); this.groupBoxImport = new MediaPortal.UserInterface.Controls.MPGroupBox(); this.mpLabel3 = new MediaPortal.UserInterface.Controls.MPLabel(); @@ -87,6 +84,7 @@ this.buttonSave = new MediaPortal.UserInterface.Controls.MPButton(); this.buttonCancel = new MediaPortal.UserInterface.Controls.MPButton(); this.openFileDialog = new System.Windows.Forms.OpenFileDialog(); + this.labelHelp = new System.Windows.Forms.TextBox(); this.tabControlFritzBoxSettings.SuspendLayout(); this.tabGeneral.SuspendLayout(); this.mpGroupBox1.SuspendLayout(); @@ -120,6 +118,7 @@ // // tabGeneral // + this.tabGeneral.Controls.Add(this.labelHelp); this.tabGeneral.Controls.Add(this.checkBoxExtensiveLogging); this.tabGeneral.Controls.Add(this.mpGroupBox1); this.tabGeneral.Location = new System.Drawing.Point(4, 22); @@ -145,15 +144,12 @@ // this.mpGroupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); - this.mpGroupBox1.Controls.Add(this.mpButton2); this.mpGroupBox1.Controls.Add(this.mpButton1); this.mpGroupBox1.Controls.Add(this.numericUpDownPort); this.mpGroupBox1.Controls.Add(this.pictureBox1); - this.mpGroupBox1.Controls.Add(this.buttonTest); this.mpGroupBox1.Controls.Add(this.textBoxAddress); this.mpGroupBox1.Controls.Add(this.labelPort); this.mpGroupBox1.Controls.Add(this.labelAddress); - this.mpGroupBox1.Controls.Add(this.labelHelp); this.mpGroupBox1.FlatStyle = System.Windows.Forms.FlatStyle.Popup; this.mpGroupBox1.Location = new System.Drawing.Point(6, 6); this.mpGroupBox1.Name = "mpGroupBox1"; @@ -162,17 +158,6 @@ this.mpGroupBox1.TabStop = false; this.mpGroupBox1.Text = "connection"; // - // mpButton2 - // - this.mpButton2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.mpButton2.Location = new System.Drawing.Point(434, 46); - this.mpButton2.Name = "mpButton2"; - this.mpButton2.Size = new System.Drawing.Size(121, 21); - this.mpButton2.TabIndex = 11; - this.mpButton2.Text = "Stop Listening"; - this.mpButton2.UseVisualStyleBackColor = true; - this.mpButton2.Click += new System.EventHandler(this.mpButton2_Click); - // // mpButton1 // this.mpButton1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); @@ -180,7 +165,7 @@ this.mpButton1.Name = "mpButton1"; this.mpButton1.Size = new System.Drawing.Size(121, 21); this.mpButton1.TabIndex = 10; - this.mpButton1.Text = "Start Listening"; + this.mpButton1.Text = "(Re)Start Test"; this.mpButton1.UseVisualStyleBackColor = true; this.mpButton1.Click += new System.EventHandler(this.mpButton1_Click); // @@ -212,17 +197,6 @@ this.pictureBox1.TabIndex = 2; this.pictureBox1.TabStop = false; // - // buttonTest - // - this.buttonTest.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.buttonTest.Location = new System.Drawing.Point(307, 19); - this.buttonTest.Name = "buttonTest"; - this.buttonTest.Size = new System.Drawing.Size(121, 21); - this.buttonTest.TabIndex = 2; - this.buttonTest.Text = "Test Connection"; - this.buttonTest.UseVisualStyleBackColor = true; - this.buttonTest.Click += new System.EventHandler(this.buttonTest_Click); - // // textBoxAddress // this.textBoxAddress.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) @@ -251,16 +225,6 @@ this.labelAddress.TabIndex = 7; this.labelAddress.Text = "Address:"; // - // labelHelp - // - this.labelHelp.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.labelHelp.Location = new System.Drawing.Point(165, 73); - this.labelHelp.Name = "labelHelp"; - this.labelHelp.Size = new System.Drawing.Size(390, 49); - this.labelHelp.TabIndex = 6; - // // tabIncoming // this.tabIncoming.Controls.Add(this.groupBoxImport); @@ -791,6 +755,18 @@ this.buttonCancel.UseVisualStyleBackColor = true; this.buttonCancel.Click += new System.EventHandler(this.buttonCancel_Click); // + // labelHelp + // + this.labelHelp.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.labelHelp.Location = new System.Drawing.Point(6, 161); + this.labelHelp.Multiline = true; + this.labelHelp.Name = "labelHelp"; + this.labelHelp.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; + this.labelHelp.Size = new System.Drawing.Size(561, 190); + this.labelHelp.TabIndex = 7; + // // FritzBoxConfig // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); @@ -840,11 +816,9 @@ private MediaPortal.UserInterface.Controls.MPCheckBox checkBoxExtensiveLogging; private MediaPortal.UserInterface.Controls.MPGroupBox mpGroupBox1; private System.Windows.Forms.PictureBox pictureBox1; - private MediaPortal.UserInterface.Controls.MPButton buttonTest; private MediaPortal.UserInterface.Controls.MPTextBox textBoxAddress; private MediaPortal.UserInterface.Controls.MPLabel labelPort; private MediaPortal.UserInterface.Controls.MPLabel labelAddress; - private MediaPortal.UserInterface.Controls.MPLabel labelHelp; private System.Windows.Forms.TabPage tabIncoming; private MediaPortal.UserInterface.Controls.MPGroupBox groupBoxPhonebook; private MediaPortal.UserInterface.Controls.MPCheckBox checkBoxSaveUnknownCaller; @@ -891,7 +865,7 @@ private MediaPortal.UserInterface.Controls.MPLabel mpLabel3; private MediaPortal.UserInterface.Controls.MPLabel mpLabel2; private MediaPortal.UserInterface.Controls.MPLabel labelSuffixHome; - private MediaPortal.UserInterface.Controls.MPButton mpButton2; private MediaPortal.UserInterface.Controls.MPButton mpButton1; + private System.Windows.Forms.TextBox labelHelp; } } \ No newline at end of file Modified: trunk/plugins/FritzBox/FritzBox/FritzBoxConfig.cs =================================================================== --- trunk/plugins/FritzBox/FritzBox/FritzBoxConfig.cs 2009-06-16 02:49:27 UTC (rev 2926) +++ trunk/plugins/FritzBox/FritzBox/FritzBoxConfig.cs 2009-06-16 02:59:51 UTC (rev 2927) @@ -129,26 +129,18 @@ private void buttonSave_Click(object sender, EventArgs e) { SaveSettings(); - mpButton2_Click(null, null); + FritzBoxClient.StopClient(); + FritzBoxClient.LogEvent -= new FritzBoxClient.LogEventHandler(OnLogAction); Close(); } private void buttonCancel_Click(object sender, EventArgs e) { - mpButton2_Click(null, null); + FritzBoxClient.StopClient(); + FritzBoxClient.LogEvent -= new FritzBoxClient.LogEventHandler(OnLogAction); Close(); } - private void buttonTest_Click(object sender, EventArgs e) - { - FritzBoxClient.Address = textBoxAddress.Text; - FritzBoxClient.Port = (int) numericUpDownPort.Value; - - labelHelp.Text = "Please wait..."; - labelHelp.Text = FritzBoxClient.TestConnection(); - } - - private void checkBoxCloseOnTimout_CheckedChanged(object sender, EventArgs e) { numericUpDownTimeout.Enabled = checkBoxCloseOnTimout.Checked; @@ -378,27 +370,31 @@ } else { - labelHelp.Text = logMessage; + labelHelp.Text += logMessage + Environment.NewLine; } } private void mpButton1_Click(object sender, EventArgs e) { - FritzBoxClient.StopClient(); FritzBoxClient.LogEvent -= new FritzBoxClient.LogEventHandler(OnLogAction); + FritzBoxClient.LogEvent += new FritzBoxClient.LogEventHandler(OnLogAction); + // stopping client + FritzBoxClient.StopClient(); + // clear text box + labelHelp.Text = String.Empty; + + + // set current used text FritzBoxClient.Address = textBoxAddress.Text; - FritzBoxClient.Port = (int) numericUpDownPort.Value; + FritzBoxClient.Port = (int)numericUpDownPort.Value; - FritzBoxClient.LogEvent += new FritzBoxClient.LogEventHandler(OnLogAction); + // port test + FritzBoxClient.TestConnection(); + + // start client FritzBoxClient.StartClient(); } - - private void mpButton2_Click(object sender, EventArgs e) - { - FritzBoxClient.StopClient(); - FritzBoxClient.LogEvent -= new FritzBoxClient.LogEventHandler(OnLogAction); - } } } \ No newline at end of file Modified: trunk/plugins/FritzBox/FritzBox.xmp =================================================================== --- trunk/plugins/FritzBox/FritzBox.xmp 2009-06-16 02:49:27 UTC (rev 2926) +++ trunk/plugins/FritzBox/FritzBox.xmp 2009-06-16 02:59:51 UTC (rev 2927) @@ -7,8 +7,8 @@ <SubType>YAC</SubType> <Source>FritzBox\gfx\Thumbs\YAC\_noImage.png</Source> <Id>04010</Id> - <Option>OutputFileName=|DefaultFile=False|</Option> - <Guid>fb39a919-8c64-4cdd-aabe-32f33081e726</Guid> + <Option /> + <Guid>b572e856-14e4-4f14-843b-5dd085b37daf</Guid> </File> <File> <FileName>_unknown.png</FileName> @@ -17,7 +17,7 @@ <Source>FritzBox\gfx\Thumbs\YAC\_unknown.png</Source> <Id>04010</Id> <Option /> - <Guid>3afdd58a-7f90-4271-905a-d8b7cfbe0ea7</Guid> + <Guid>42e38b37-e056-4f15-86e2-9f119c0064ae</Guid> </File> <File> <FileName>FritzBox.dll</FileName> @@ -26,7 +26,7 @@ <Source>FritzBox\bin\Release\FritzBox.dll</Source> <Id>01020</Id> <Option /> - <Guid>c1872ff9-27d8-48f5-adc2-8cbf41223e36</Guid> + <Guid>de6ec925-acda-4337-bb1d-71fb08154ea9</Guid> </File> </FileList> <StringList /> @@ -36,12 +36,12 @@ <SetupGroups /> <SetupGroupMappings /> <Option> - <BuildFileName>G:\MediaPortal\mp-plugins\trunk\plugins\FritzBox\FritzBox_v0.3.3.0.MPE1</BuildFileName> + <BuildFileName>G:\MediaPortal\mp-plugins\trunk\plugins\FritzBox\FritzBox.mpe1</BuildFileName> <ProiectFileName>G:\MediaPortal\mp-plugins\trunk\plugins\FritzBox\FritzBox.xmp</ProiectFileName> <ProiectName>FRITZ!Box CallMonitor</ProiectName> <Author>chefkoch @ Team MediaPortal</Author> <UpdateURL>http://www.team-mediaportal.com/files/Download/MediaPortalInstaller(MPI)/Input/FRITZ!BoxCallMonitor/</UpdateURL> - <Version>0.3.3.0</Version> + <Version>0.3.3.1</Version> <Description>The FRITZ!Box plugin is a process plugin, which is able to notify you within MediaPortal on an incomming call on your FRITZ!Box. All strings are multi language. @@ -54,7 +54,7 @@ <Group>Input</Group> <Release>Stable </Release> <Script /> - <Logo>iVBORw0KGgoAAAANSUhEUgAAATcAAAD5CAYAAABCt3JCAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAALDQAACw0B7QfALAAA3FhJREFUeF7t/Qd3VGe27o/uO8b5CPeee84+d5/933l3u9vttrvbbrttt912226Hto0NBoPBYJNzzjnnnHPOCEkgEQRCJCGCCEIEiZxzBpFq3ud5a83irVerSiUM2LIWY8xRQipVWFrrV8/M/69QKCT/EPwLjoB3BK5du/YPe/bs+YebN2/+w//+3//7H5577rl/+B//438Exyc4AmXvCBBugQXH4MaNG9K1a1f5wx/+IC+//LK88sorxv7617/KokWLgnMkuE7K3DnwDwHYArBBpcnnn38uL730kgHaxx9/LC1atJAGDRrIO++8Y2A3ZMiQMndyB+d2+T63A7gFn8jSqVMnef755+X3v/+9vP3229KvXz+BayqbN2+W5s2by+uvv27At2nTpgBwwflSZs6BAG7l/GRFjE3+/d//3cCNAHv//felYcOGMmjQIOnbt698++23Bngvvvii1K9fv8yc2IFqK9+qzeQSgpOgfJ8EmZmZ8s///M+CxIFxST/77DOpUaOG1KtXT+rUqSPVqlWTDz/80MCP8bjgfCnf50tZ+vsHcCvnym3x4sXyj//4jwZub731llSuXNmArWnTptKkSROpXbu2VKhQwcTdfvGLXwRwK+fnSwC34AQoMxBYsmSJ/NM//ZOBG91PKjW6pS1btjRJBYKuYsWK8uqrrwZwC87rMnNeB25pcLKKwu3Xv/61vPvuu/LNN99I48aNpXXr1tKqVSsTZ/vqq6/ktddeMwAsS5/cwWst3y504JaWc8Ap3BhTe++990wCoVmzZtKuXTtp27atNGrUSKpUqWIypgRgAIzyDYyy9PcP4FbO4ZaUlGQSCi+88ILJlNaqVcu4ox06dJD27dubuFvVqlXljTfeMEmFsnRyB6+1fIM4gFsANwM3lnp88MEH8v333xt3tEuXLqb+jSqOruqf//znAG7l/Fwpax8WAdzK+QlL5fYv//IvBm4fffSRKf+gO9qtWzcDOKo4loYw2UB1V9ZO8OD1ll/1FsAtgJuBGwt42XbFBALd0Z49exrAMbFQs2ZN04ZFAAawKL+wKGt/+wBuAdwM3Nh69cknn5h+UrqjvXr1MoCjimMcjplUArCsneDB6y2/MA7gFsBN/u3f/s0U6bI7gdlRuqN9+vQxgKOKYyEvM6kB3MovKMrih0QAtwBuBm5svWInArOjdEf79+9veks7duxo4nDMpFLdlcWTPHjN5RPKAdwCuBm4sQPhyy+/NNlRuqMDBw40gOvcubOJw7G/lOouAEX5BEVZ/LsHcCvncFu6dKn8x3/8h4Eb26yYHaU7OnjwYDMZhCqOcThmUqnuyuJJHrzm8gnkAG4B3Azc2F5VqVIl01PKeNvQoUMN4Hr06GHicMykBnArn5Aoqx8OAdwCuMl//dd/mfYq9pC2adPGDKscMWKEDBs2zKg4xuE+/fRTo+7K6okevO7yB+YAbgHcDNzYXsUeUpZ+MN42atQoA7jevXubOBwzqVR3ASTKHyTK6t88gFsANwM3tlexh5SlH3RHx4wZYwDHjClHjXPHAtVdWT3Rg9dd/qAcwC2Am5nTxkGV7CFlAS/jbePHjzeAGzBggInDsUwkgFv5A0RZ/lAI4FbO4ZacnGzgxt7R6tWrm9IPxtomTJhgAEcXlS1YLBOh61qWT/bgtZcvOAdwC+AWmcLLBnl2JzDWNnnyZAM4uqhMMrBMhK5rAIjyBYiy/PcO4BbAzcCNjfFskO/evbuJtU2ZMkUmTZpk9pVycCXLROi6luWTPXjt5QvMAdwCuBm4sTGeDfKsaxs9erRMmzbNAI4uKpMMLBMJ4Fa+4FDWPwwCuAVwM+PD2RjPQZWsaxs3bpzMmDFDpk6dalxU9pdyKxbjcmX9hA9ef/kBdAC3AG4GbmyM5/QPwo2JhJkzZ8r06dONi8okA2vg6LoGcCg/cCjrf+sAbgHczPhwjhjn9A+2XjGRMHv2bAM4wo1JBtbA0XUt6yd88PrLD5wDuJVzuKWkpETgVrduXVO0y0TCnDlzZNasWabWrWvXrmafaQC38gOGn8OHQAC3AG4GbhxpxAXMHHPEMpC5c+ca9cb4GyeDsMCXcbmfw0kfvIfyAekAbgHczOIXjjTi3DZ2JDBLOm/ePAM4xt9YHsICX8blAjCUDzD8HP7OAdwCuBm4caQR57axI4FZ0gULFhi4Mf7G4ZUs8A3gFoCtLEEvgFsAtwjcGjZsaDoSWOO2cOFCo94mTpxoMqjcRM+kQ1k6uYPXWr5hHMAtgJtZ2cfNVxxKSbixBGTRokUyf/58k1wg3Ni9wLhcAIzyDYyy9PcP4BbAzcCNwyg5lJLtViwBWbJkiVFvjL9xphu7FxiXK0snd/BayzeIA7gFcDMr+ziMknDjuCMbboy/sfaN3QsB3Mo3LMrah0UAt3IOt9TU1AjcmjZtanpJWd+WlJRkXFPCjbVv7F5g0qGsneDB6y2/QA7gFsDNwI2TdjlOnHBjfRvhtnjxYgM37lQI4FZ+IVFWPyACuAVwi8CN48SHDx9u4MaVf4QbM6cs7GVrFpMOZfVED153+YNzALcAbmaTPMeIE26cAsLWK8KNSQWFG1uzAriVP0CU5Q+FAG4B3AzcOEacC5lHjhxpinc5ftyFGzOqZflkD157+YJzALcAbhG4cRGMrdwYd2PNG1uy2HcawK18waGsfxgEcAvgFgU3VW50SxVubMli3ynLRcr6CR+8/vID6ABuAdzk5ZdfNgtgqNxst9RWbgHcyg8Ufi4fAAHcArgVgxsTCoy52cqNTfWBcgsAV5bAF8AtgJuBG7dbtWrVyig3zZYq3AYNGmQmhrAWriyd3MFrLd8wDuAWwC0m3JgtZUKBMTdODAngVr5hUdY+LAK4BXCLwI2b5VW5UbUFcAtgVtaAZr/eAG4B3AzcuJdU3VK7/YpFvFRudEtZ6FuWT/bgtZcvWAdwC+AWBTfWubm9peqWBnArX3Ao6x8GAdzKOdyWLVsmr7zyilFudEsJN04FoUvKqSCq3BhzC+AWwK0sAS+AWwC3YnBz57mpcmOLVlk6uYPXWr5hHMAtgFsEboy5cSoI4caJIJzEy5FHbL+icgvgVr5hUdY+LAK4BXAzcKtcubJJKHCeG+FGsCncOPKI+xUCuAVwK0uAC+AWwK0Y3GbMmGHAxgUx3KFA5RbALQBbWQIbX2sAtwBuUXDjDgUW7nJvKVf7cft8oNwCsJU1sAVwK+dg4wmg2VJ1Swk3Zkip2jjXjav9CLcg5hYArqwBLlBu5RxwLty42o9JBIKNxqXM3KFAuHFySFk7wYPXW36hHMAtgFuUW2rDjQ30EyZMCOBWzs+RsvoBEcCtDJ242w89+U9hW7lxnhs3zjOJQLCxmJdw42o/JhQC5fbkj39ZBUdZeN0B3H7CcNt1OCSLN4dk1PKQjEkPybiVIZmwKiTjV4dt5vqQLN8RkuyDj3/R+cGNSQS2YLEkZPz48WYpcwC3xz/GZQEEP8fXGMDtJwi3nYDa9DUhGZYSkiFJIRm0KCT9F4RvhyWHZGQqgJcWkrGA3XjAbkLGI5uyNiTJ20KycX9iF6Mf3JhEINho48aNC+D2EzxHfo4wetLvKYDbT+zEXbgxJEOXhmQgQNZrdki6TA1J+wkhaTMmJB0nhqTHTHx/Vkj6zA1Jv/nh+xGAwwFCo/BWeMCDslPoTfaAt+lAceC5cONgSiYRCDbWuwVwS+xD4klfmMHj/fDjHsDtJwK39XkhGbwkJAMWhqQnANYBQGs56qE0HnxXGva/Iw0H3JH24wA0QK0vrDcA14ugUwMIFXhUeATeCALPU3gTPNhNhMqjTV8XdmnnrCiMJBS42o99pIyzEW6sdxszZoxRbkG29IdfbAGwnu0xDOD2I8Mt71hIpgI8BBuVWqdJIWkx4h5gdkvq9rkh9fvclKaDiqQtQDceoJoNZTcjKySTAajxiMONAsCG4ncHAooEX585YWVH642vCcIBcGkHLw4rQrq0jN+NZ/yOoIP7O8mzscuuyJjFBTJhwVYDNpaEjB49Wnr16hXA7Uc+TwIwlh6MAdx+xJN2U34YOnQvu8L9bDX6vjQceEvq9LoGqN2QVkPvSq/JABiU2BSAbTXcyu2XQpJzDjG1kyFZg+xpGh4jKTck87cgwQDoTQIox+C+wwGywYzV4bEJOAM9wDMCPMCQQGUMb9QyD3iI31HVKex4OyHtkoycu1u6DV1k9iwEF1npL7LgmP04xyyA248EtwXIdBJsVFjtJzyUJkPuQKldk7oAW7NBtw3UpgFSGbtCsvMU7HRIDl0PyQW83vOwM7ATsCOwA0Uh2X0tJFvPh2T98ZCsBARTdodkYU44o0qVN9YG3rxHwCP0CD9C0HZnR+P+JjursEPcjrG7qZnoaoA7u6XgxzlhA1AExz3RcyCA2zOGG8s7qJj6Qzl1nca42l1pMOC61O51RRr0uy6dx8L9RLwsA3AquBKS697ru4/byzD+/ybslnfLr/m9q7BLFvQKH4Rk782w0qPKWw0YGeBtDcmsDY+AN8JTeAMAN43nEXZ9AUDG/1TdjaS6Y7ICytC4soDcZM/mbsLj7wGAjwYXXqIXXnC/p3+uBHB7hnBj0mAQ1FpvwKPjxIfSbOhtqdf3KtTaFWk5+LYMhopbClDkw+0kvOwL4KEFL6q3Kx7UeL87sCLYXe+W/7/t/Zz3Owc7CTv0EI99ywPeiZCsQn1cPIWnwCP0+gF2Rt0BeJqssNUdVd0UwE5tKSC60Sc7G1zUT/+iDo5x+BgHcHtGcEtCMS5VEDOhbcfel0aDbhi1Vr/vNekCtTYZiYHNgM0FAMjv5LyB15l/FfG2syHZcwOu6N2wS0poEV5Ubdc8Naego9qj3fPAR+hR6RF4dG1PEXhQeAZ4F0OyAcBTl3YBXVqN4aHEZDjU5GCAjYAzsKMrC+AxkWHH7sZC3TEzy3gdQUc3ljYbanEVlOOOI8HFHcDn2ZwDAdyeMtzyEQMbBzjQxeuGpEHLUUVSv981JA0uS9OBN6Q/XNMkXPgHABeqM78TnyDafSEkK6D8lmwPJxEyCkOShcfOBuxyL4ckDy7oQQ94hJaqO0KRKo6qjqB7AOPz8JbQIwht4DGOV3gfjweAMoa3Dq5m+r5w0mJuNuKAANUExOJGIes6lAXGeF9UeASdgR2LjR11x8wsExUas1PgJQGgG/DYeYBqcMEHx+BJnwMB3J4i3HYim0lVw/hVp8lwQ4exvOOK1O19WdoMvyOjAYFMAOs81JPfH5ZQOgRVtQlqJxlQm8pOBCgjwoGJAsJmEb6fDEVEADF7SvXFbGou4nX5t8OgOobHYQLioqfu6MoSaoQdQafmBzyqwuOwgnvhpEX2GS9LuzcM2jkoTZkKl5RlKSO9shTCjQqPxjIU/p/HYTgzswC9JioYszOgQ80djbHAlYG6C0D/hK7JAG5P6EC6cNqAi9/E15CNbD/hHopxr0ud3pekAeDWddwDmQ5I5QJEhIwf2Ki8dkM5rQL85uKinwB4UCmxvIO3LNAdTVDgcSbCDTTAw/1YErJkB2Jp+D26mGsBxo3Itm6D8tuNbOt+ZFYP47HVnaWLSnVHl5VKjoBzY32EIF8n78ekBkF5FMbHIkQ34fEzkLBIRVKBCQuCdxJAbEpSADRmhem+UuHRjCuL79l1d+yZnbzGc2XhDk/1LAmtZBvwPgJ1Fyi70iq7AG5PAW7puCAj8bUxRdJoIN3QS9JkwDXpB9c0CWrnEOJnfn8swuUYoJENd3ApHmcaIMFCXca7GNQ3sS4PEEYRERKEHVURXEWWfNBtnAJQTAcgmMlkSchSuJV0Z5k1zULhMBWYurMFlrrT2J26srFcZQKPQGSmloqQrvARJiyYoQVI+Rwr0d+azBo8KMwZgO9Ez50d5kGaLqwx733YiQq+B8btIsoO72UajEXMqwDR3CAzGyi8Eq7dAG5PGG5z4V5RsXWfgaLcUbelfn+4oQBbyyE3ZRjgxLq1czHcUMa+9kMJrYVSmYeLmGqNIDBunlebpmUaLPxlMz3dPsKBPaYE3RC4f4Sd6TVlNwJgx5gXlRTjZbPwuPOg7hbDpUwBJGx1t5XqDq6nn7rja1NXNtYnKIFHKDKxQeXJ+B3BScXI2ODaw2HAGncW0J0KeEW6LLyEBd8r34+pufNxZU2SApAjuNVS8HhMxpT2kz24/8/7mAVwe0JwY+JgjJc46DL1IVqobkq9fpekHlzR9iPvyATUk21BEoCQiOWG5kJNpQF+M3EBj0Fd2RDPnTMZShoBx44D7/8a12LNnAGcBQaCjuqRamgYntv0mQJ2LN8wAX66soiVsZVrLjK5C6ESl+K5TbJC1R2TFYAtkxWuuqNiI8gItFiQoOpjIoMxPi1JYfxv/52watwIt3y1XY7CtjK8LlNwDCVKuBFyRqFarqxRqAA/s7ImSYEPlGlwhad7RqW4BmGB3fibBAArv8cggNsTgNsexLUIEgKo8+T7SBxcR+LgojToe1m6jr8vMwGTPIAr1oV2AllOuqFJiFdNwQU70otTUZUp2CIgsxQbf84srJoNNwMFT83xtdmgIzgM7FiYy04Elm8g5qWuLF2/+XBlk3YgjubF7jKd2B27IliKoplZFhETYoRZLFeW758/0/gdXWBTjgJ3ltlZJkL4PNpSRujSLTXZWbxedWcJOn1vkfijKlSoQcKOqm4GYKeWthPZXyRcAtiVn2MQwO0Hwm071NhgqCNO5Og48a40HXpNOjXJlBHVp8jUpkmSNmaDFOYdldCDB8UuLIKgABf1OiilBbiQJwIy2jFgAvA0Ao5uqR/EeJF7F3oEZgo0Kjc1vD4qODUCgWqORveVWU6qIcKOqsk01XsBfkLCuLJQQ8aV9TKzGQBFlpuZhbvNzCozrEw8MAFBkLlJChcwGr+jO8uyFz4G6/h22skKQNburhiH18nXbYDH9+m9b4Udp6EwK8sSFAKSqm4GEi5MutD4QbIBMcG96N4IgPfzPAYB3H4A3Dah/GIoVJDJiI4vkiE1Jsvqf31Rdv+v/yVHXnxRDj//vBT8x3/I/n/8R8n/n/9TCn73OzlepYqc7dJFzmCM996sXbJqxx2ZDYBw4odeqBp3sl1NE4eKBzNPnRmVxgveMRduzFTytVPFqVHNERhmGCZcbLqwdP/GexlZKjvG7QgHlqHQlU2CIloOF5CJinVIImyGQmXLF5UY6+6YVT0NYwyO8CrJlVXQMHOr7iyzs1SJTFZsY+0d1N0Kr/ZuHj4UpnvqbjTgzA8HurMKdhN/ZLIFP9PMMuN2RtkRdAA3jSpxNQC6E+8hgN3P4xgEcHtMuDExQGBw0kafLjmy7BdvyHZAreCNN6QIc9FC69ZJaO1aCS1dKiGMDgphTloIG92vf/ONnHnvPTkM+B34l3+Rvf/f/yVbn39VMj74TpbUxlq97qtlxORzJkFAM4oMykRNY2kRV9OLqxWDF14bL2xjnkpTtWZuccHTInAD1Ag3NQM4NQ90dGFNrMuL2bEh38AOqmgO4MCuBhb7qivLBALjajkA0i4kKvYh1kYXlGUoVGiMwzEGWZIra7uzjPVFkhWA566rACpLUaCglwFOi7ze2Sl4bePwWtWdZfzSmKdaCXGOfjIKFXE7ZmLpwirseLsM72VL4MqWWdgHcHsMuKXiIuZF0nP6fZn8RU/Z+P/+n7L9F7+QY1h9d79bNwlh0GPo0CEJXb8uoWvXJHTlioQuXJDQyZMSOnBAQjk5ElqxQkKYdBvCNvcHTZvKZfzu8ddfl4P/9V+SD0hu//dfSebblWVpjb4ys0uajJp82sTNNHYWE2aeIlN4mVu6bzC6oH5mA41QizIoHqoeYx7kqOg0VmdcWA92VHZ0AZmkYHEv43YRV5aJCrqyCPJrVwUb+1kcrEXGjMEl6soSeJqdJSRV3e1F0TOzvn7qjqUoTNSwbIbQp8KjUTHzGPA98b0Q2ozbEdo27BYDnOvhyuYFrmyZAF4At1LCbT5cmSEASP9hxyT5N+/KJoBo58svywkosmtt2sjdnj3ldvfuYcAtXiyh5csllJkpoa1bJbR3r4QOH5bQqVMSOncubKdPh7+3a1dY7S1cKKERIyTUtq1crVpVTr79thQ895zk/9M/yY7/+JWse+drSflugMzsuUrGzDgfjps5CowAs1XYCACLFoEWLnBO+VCz4UWA+RoufMaxCDY1woDqxyyvgetK03gdS0+mMJNJZefVp7EEhR0VzMrSlV1FVxaJlE0Y57TtYrhkRHtmNVFRGleWwKMKtNUdXeNI7A7qjqqSdX+zAC5CTNUd59+p0lXYuXE7VXazUMZCo2uegfcRuLI/TTc2gFsp4MaJuaaqvu0Kyfg//yqb//mfZfef/ywnataUC82ayZnGjeXQt9/KLqiwK9nZcgq7CPZVriyH8XP+7FrHjvKA7inGeIew0d2ot82bJZSXF1Z6VHZnzoSBd+RI+Pvr10to0SIJjRplgHcNwDvx1ltSAKWYj1jejl+8KGv/VkuS64+QWf3Xy5iFNyIQi7iVtvryFJgLMBta7tcGYrEMYKOraswCnCo6un0sOzFqiO6fBbtI3A7uH11KU3NnubI74cqyhYyuLGvmmKhQV5YxuURiY0xmMM4XUXd4LCrGrcjMuupO+2ZZ0sOMNYcFEHSRUhqN23lJCoXdbIBOjaU8W/EeEnltwX2e7nEK4JbARbIfcSO6M4x/Ta06QLL+P/9TsuE+5iF2drRGDTleu7YUVq8uOz78UNa98opsx3b2h/fvmxN8/9Chsgz3XfnrX0vGSy/J+tdek5x335Xdn30mhfhdQu9G584SwqZ3E5tjjI5KLzdXQgUFEjpxIgw7qj0Cb88eCWVlhRXesGEmjnf5q6/kOGJ9B/A8e//P/5GtL70pGV80lSWtpsm0MbsRO3tgVJervKJUmKfAVInpLYGl0FJ15nsLd47ZSdsIOFVyhJwBHcBAVcdWKwM7uH90Y5mRNbCD68e4HQuMmTTwdWWtjgo7KxuvBMUGia3uTGaWbWSXw325TIykIiNsBn3idZnYHY8dXXrGKpmgoBvrJSkIdbtmkG7sLMQfZ3u2dAfijqjl24e4YACzZ3sMAriVADcW51KtDZp9Sxa+XUOy4IZuQRY076OP5BCAVgB3dBdAtRFwWQPb/P33sqFWLTlIdeY99jG4p/sAIn7vMLKk/P9pqLZ8LF4h9DJ//3vZBAWYi8c8AKV3sl49udaunTxEPC6ENXuhpKQw8HbskNDBgxI6fjwMOxoV386dElqzRkLYNcoY3j0A8wJe0xG4y/uRrd39z1CZf/5MVtTsLgt7pMiU2aciSkvhxTWBLpz8QKXAiroFtLhiMJ4ZuEHBRcyDnIJOXVgN7CvsFgB2plcWwNH2MZOVhSvLMU3xXNmSSlD072PH7pjZpVLcAxd5C4qYI3V3eA1zAS4CmXE59vUyKUHg0WzYmZpB3I8ZWcKOoJsDcNOY8FgXxO2eCegDuMWBG5e30CUZOvG0pL7wlmTBDcyB+sr75BMpgHuYD/czB+ptDeC05p135Cag8+DOHbl79arcAnj4/3tMKOA5Ht67J6dWrpRjS5bIkXnzJB+KbhHc2kWIpdEW4+tkZE+XA0YrEWMj8DYDlrlQgwegzE7UrStX27cPZ12xNNkAjzE6W+ERdlR6BCBjfGlpEsL2+FCPHnIT0D3zwQdS+MILsg/Ps/NXL0nWJ9/JsmajZc7IbJmQeseorIja8mrdVHHFvLWBVZqvATfdxKVqLgp0XrzOAMJTdoQDM7JMUmjcbiVUkSkwRpBfs7K2K8usrBYYJ+rK8u/F+jzG++gKM+GxD+5xpGcW7nMySmDsvRWq7gg5AzuvpEbb34xSZZLCgd1cxCFXM26HD9FA2T3ZYxDALQbcduGCYR3YyCF7ZMV//kayAJ8cuJx5n34q+wEbupUbobZWQMUlARYLaIDfQhpgpbYC9yHoeOKeQ/wsGUqNPzNAs2zJ//P/yM5OneT8pk1yZfduOZ2eLgcQZ9uBWN4GPGcGauTWAXjZAN5OAO8g6uVO1a8v1xHHCw0eLKFp0ySUmiqhjRslhN83io6g43MfOyah/PzwzwBXE79D8uMKVOJxvL6DgOnef/lXyXnjQ8mo0VGSeiyRGbOPRi17tgFECD0tIwTUqH7UmJhgTMzADskAo+xYfuIlKVhvZ0pQoIo4+mk9XMyorKzjymoJSqJAobrj72hXBbO8LEMxE1GsMhQO5dTRVAxlUN0ReIzhub2+NuzokqulQ6Vuw/mX6GsL7ud/rAK4+cBtB05WllCM7bpaVv/ff5MsgCsHsbI8AG3vl1/Kdi+2thxB/WUAztbmzWU/gEG3c9/Ikeb/y199NQK4ZXAPrwM2jMNtAZBsqJmv/+//lfMbNsi1/fulEG7ocbitVxBbowpU1bflu+8kCYBdCkv9t3+TdMTXMgDWLDx2DjKqe6AmD8FFPgeX9E7XrmGAwQU2SYstW8JwO4pOCcKOiQvCj6ovIyOc2e3bV4oaNJCzH38sh6BO9+E5dv3qRdnw91qS1mK0zB+TLVPS70TAw9qwp20GbACacVk9JaeDLk0/KWvTHNhRTZniYi9uxzl32iurBcZ0OZmV1QJjTjVhhpVTThKN2/F+vD9V4VkYi4yZqGALWSRRQVcWACaUWYbC7g8CzgDP6wrR8hMz2MBTdqwZpKJTSwW4swHs/SiQDkCW+DEI4ObALQduDmvCJjebLWv+f/8k6wGRrVBLu6Ge9nz+uWxBMiADQEvB9w+MH2/czauAEuNox5EMuLpvn4QePjQn4QXUs62GK0iXM/W3v5X1UFv8mrbEsgy4tkUXL8rSf/93A7CIQc2tevNNWYPHoDpUI+CM4Xt0ZVMAIuPOAraZKA7eBBBvx+vcV6GCHEf87wqSDg8BL5OlZebVTlho/I7qDu8jhCyvSWpgGXMIcb8rcL+PIzt7EIoz79//Q3Le+kTWfNdFkvulyOxFJyNjxCPQwYX8NL+2R5fboIv0kxJ2UE9Udpw8wvITJik0brcc9XYsQdFe2RxvEooWGDMrW9puCgWOJiroCuuAAMYFuZHM7KtAJpVKk2622TtrwU5b4HSwAWGnM/oYszOqzgOeSVLgPexD3DGAXexjEMDNgttmuDSsEZtRc5CshXtpwAa3jWDLhTLajIt8FeCxFDDZ2rKlObHOInO5EKCxjWqugIkA/Jzxt+Rf/aoY0BRuBQSOwhBlIfuHD5ccJBRWQ40l/eu/GqARYLEshXDzseV4jSuo7gClLLyeHAIairMQrugZqMebdGeZoWUhMWvx4A6b0hPW3NGd9VN3SIDcwe+qumOyYudvX5H1FRtIWvtJsmBKLsYY3Y9M1tUJu1G3uLDNIEqolMc2F6B8LP2e97hUQToSSd1YlmuwR1bjdsmst/NKUHSK8RYoL05CYTEwN4gxm0plZndTJAoUJjTYQhZxZeEaa0fFGngHy5ER1n5Zjn9iooJlKKruirmxLKMBuCPKDvHHubBFUKpZiAPuDTKyUbAP4ObBjZNzGRuZ+0WbMNgQh9oKwOwC1HYgi7kecDDxNUBjAWC2AWUcPMnpOu7GRZ8KV84kCDxlthxAeXj3rty/dUtSf/ObKKWmYKNS24SMax5+/wRiYXRLqQTNxQPg7UAblwu1WDDj91Nj2DJ8fxledxpgtBrvax2SCpsQP9yBJEg+1Ogx1OZdhiv9AJvlQ+PGhctMmH3dvj1cjmKrO7q3BCETGnR9W7eWS4hBHkN3xQEoxz3/8V+y5f2KktGovywdniGzll+Jmr1mz2Er7dd0Q43RJfUxA0tCTn/mQdTcF1+bflLPjWVgn8qOioidFCwuNq1jAE46PuRMCQoSShzq6dcrS1dWuykex5VlR8VhZGXz4CLzOaKysnhd2i+rrqwONnCnL7PWzig7qLp5eB80AjMzyMgG268IknU4oUcm3ZOFH9QOgw1qh2DbifjTHrh1+9DovhtKZyNiWov+8z8jKm0joHCFascDJONqTBpc3LbNQO96YaFkffFFBGxMEBShDSsTwMxFQe52JAvoci4FdOhiGjcTX2fiexuQiVWwxQJaLJjx+wZozL6q0XW1vk4j7KDsVgFIawHtDYwdQqXugbo7BHV3DurxtqvuWHDMLgvW21HZUeHhPZoSFWSCTZ0eOjSYmT31/vtSCJWbj/ez/U9/laya7WV5n4WyYOGRyGQOndARuWW7UwyzxxeZrz1Q2bcR+CkEnVuFaTHQMUFBRaSwoyvrwS6qBIXdFFBHZqgn43aoj2OsTbspGLdjljVR2NkdFerKMtPLkfBmkrFfVpb1iFR3SFZwUIDJxqIW0XZjVdkR2jQq1bWIPe5BkiVR1flzuF+5V24ZCNaOXHRblvyliqylIoOqyYGi2Q01cpkXM8GFcUX3b982XxddviyZANYixMOWI5hPhZb+pz/JFgTj8xDXykfmcheKcjP//vcI1BhDS/nv/5ZcZCi31KkjWxs1kvs3b0ZONKq1a4jVMZGQ17u3LPvlL00czTUmEmIZlRmN7ijjb2pUa4laOuN2AN4aqLv1ANMWxO52InZ3AOruJLosrtIVx+szsTu2lmnsjoDTzKx2VrDQeMECk8m9j97Z83iMw1CL+/H4u15AXV/FurKywwRZPD0XMSjMvIOSKpVZ44sIR074MEbwWeanDhVufj9jPEx7SjnXjgkBO25HVzYNKl+7KXQhD1u8TAkKXFnG7bQEJdEpKHbNHbOyVIZ8HAJ0xyVvsCfibPaeWRYYR1xZC3buXg2W0NB9Vdjxdg1ijz/3YZ7lGm4rEJgdOe+qLH3tEwO29QDbVlzMe+Aq3qYrhpPrHC7gFABsIVTPLvaMMo6CjoF7N25E4HQXjfGFUC3JgMIS3I9mJwDM14AOjfE6tQyow63oZjgIRXcWE0TuoNc0v3//KKg9SZgRXrFsBX5GW+nd6teEnYnb4dhkA+bboe7yoWiPINFwEa/9LjOz7IVlATEzsxwKwMQEExRad8dhAczYpqSE3d4OHeRKtWrhRAULon/xnOR8VEXWNB8sKWPXydzVN8yuBDUmB+JZFBQt6PkBz0zr9VxUV8m531dVaGCnSQrCzovbmT5ZfDiydWyF58oyeUA3k0CyJxgzbncZRnCVpt6OKpCA5O9SIXKbWSRuB9eZMUM29JsSFC9uR1eW7ms8ZUf3lQXSahmA3a6fmbIrt3BLQxB29OwLkvoKinABnw1QKgRbHlqpitjQjhOJSmoRgvoEWzIuwkt0v/D9q4g7MfO5/A9/kGwU12pCoBAFs35QU5jRLb2NC/7MqlWyHx0LOVBxq6D6ElVofuosnipLBGSEWUxj2xhdV9zHGFxYGpXdOhyPTYD+dsQi8+CCHoIbfRbv5xYyrKbQmC4qYcbaOraM2a6slqHgOJj6PHVl4Y4XIHaZ/9+/QDzwE8mq302WD10mC5afjbQzaVuTufV6OrWRPXLrwTCmEnQBGEPp2QrPdn8VdiZu57WNmbidVYKS5pWgsJtCBwNoCQpdWXZC2FNQSuMG0vVlCQrjdtpNEYnbQVVyRwW7KUwJCrolOByA7iuBp0XFOsTTvAfA2sAOr18tA69/dxmHXbmE2zL8IcdMR9fBS3+WtVBSjDex33MnYk236V55MbRzuDD39OsnWQCZKfHA96mwkuE2qkLbgdiZSSwUFckG/L6fSkvGc2xGAqLo0iW5jgD9TaoaL0Nq4i5QfufRbbAbisZWaiW6mgAP42ZqrH3zM2ZNCam4BmixlEQBthpfx7IM/Mw2wi6LsAOYtsKV3Q23vgBu6CnEJK8hURGyExVu3yzVHevvGLukK8uBAnBl76Je7xzqCo0ri+fb9drbsunblrKyz1xZsrgwUvCqbU1Rt1Zvp4GgpwJd9ReBnw27ElxaW91FgKdxQjxOxJXVPll4ByZuR1fW6qbgwmvOuNNlPPYUlMeN27Gbwq63y0KM0B7qOQOJlUlsk+OQA28Qgm5Ls2N2mmRhvaDaWijTPWVs1FO5g9tSnHRjpxyX5S+8+ghsqDNjYe5GlnpAjWWhUHcPejTZLUBoKeyYJNiJ5MIKqBXCjTE2/owu6ka4aa7byeQAY22nli2TqwjEr8SFn8Lv0fXD81zBmKOzKKI9gdqz+56bm4XXsUxjZgDScs9siP1gmCUIMhdixaBGFedjaz1ltxFqmF0du+B+H4ArexzH6DLjjerKzp0bTkTQlaXrqllZ3vL/rLmzsrIXEQc9imN/ACDd8/s/SnaVhpLRdbIsnb0LKwwfRIBnV/sb6LmwcxVfLKVnJTds5VZSltdkZL16O8JOExVsxjetY54ry7iddlNoCUo+SlDsuF1pRz6Z8xHG5EYkSYHHJEx13SLXPNK11no7LvpW2FHlmbWKiOfpiHkeT7qvTLIYA/SYjf2pl56UK7gtxkk+buIhSfvNK7IGAFlPxQawbVWwQXmwOJdu6GKorSWMj0GlbUAM7iAKdq8wU+gprjvnzxuw8XYtkgcm4wkj0NQIMWZEeb/LaG7PRElJKr5HW48C29sYb7QTSQZ2OlzDY1+AUowHM0LtsZSZBbNE1ViUMvMDGLOsLBqmsReWxiEAas73jLLzYLcTcbt9OOZHAasLcOuL2DPLFrLp0yWEDwIzBkqzshq3Y0kKstCmXxajpEJoVbuGv8sJqMSDiAfmPY9EUIWasrb9KEmZukXmrS96VOVvtTYp+GIqPYLPL7nhqTs7aWFDTjO1/J7tzmoXhYEjYempSCYq7G6KSAkK6t+0BGXH5UdxO91NwXo71s7F2zrmurjaOqYTjLl9jH2yG1hcDMCyuFj7ZFlcTNixV5bAM8uDALvJiOcZ2DGj7LmwCrvFUKfrWVT8E+ugKDdwW4Q/yvjxByT9178zYNsARaFgW0/FBrAlAx6LADQFG+GmpgmB5ejxzIHLdBTN7xcRJF+F37WhpspMb1eh/ov1axH1ByXI2jcqtf24oPORfbyKmNQlNLqvxMXvKrRYMIvpahJkAAttFYx1bX6Wge/7GV1M26jCaL4As2C2Dl8nYllMTtAAu43MTCNJkQs1lo942xEo5nMovbmF2rkQwgFmIgq7Jeiusl+WBcYsQSHw+DWnoaxe/Shuh3jpKcbt8KG19/nfyPa/fy3rWg2W5ROzZEHmjZiwiwe6uHE8LzvrBzmtreNtpO6OhcVWcbFbc0c1ZXdTcAqKGeiJPlN7oKfupmDMjXG70iYpWFzsZmRZy8fMr8JOOyk0I0tFR+AZ2GFAgk49MYXRrK1TVYdbZpSzDyPTe/bHLT0pF3BbgE/L8WPzJf25Fx+BDUHwHFwI66EiCJVk9on+8Y/FwKZQi9x6Cs1Ppdlg24JaL6ozlnVQqWX+7W+mCX4nLtwtqJdbgec8hUb327hYD6BTIB0XfBpeAy3dx1bgezTGxYpZCTB7kiCLB7AIuBRgPresIVTT+5v/q7Ij7PCBsBeK+hDidmcQt7sRK27HEhSFnc66Y0yPPbWA4x2U55xhrywec9+vfi25H1SQ9U37SProlbIw43K46NXq4bTdWfM11BVdWrqVNJPAsOJ3xWJ2fvE6LSj2iot1AIDeajGyQk9LUTR2F+mmgCur3RQ6BYWuJpdoa72dnaRgK1iiSQrNyBKU3G8RVX7CtjHEDO35dlRyjNsReLo8yLSK4f3zeDG5Qtgxm0xbgYxuLhIrib6eJ3W/nz3c5uHTdcJoTPZAE/gaKDOj2GywQbEtBTB2sGAV9Wx3UGS7Fu1WUVADnJJsqOFxqPJodGNtS8X/dyMup38gdilwysdRlErsQiYxC64p3VAFWUlA84WZp86ozGKps5JUWUmKLBbEVHVReblGQJVkG6jYPNVG5RZlLCam4fu0zXRjocIM7OB+HsLf5RTHuTdpIiHuqmCHBBS0UW/aTeFOQuEkY6/e7i7q7c6x3g6xz/14np1//btsbNRDVoxMk8UrzxvQqbmgi6g7jd9p3M4qU3GLkemGFlN12naWQA+uGeTJZnovfmd6ZanuvKwsXVmWoKxFSUik3g6TSuh2svuBSQrtpHiisLN6ZM0EFA92BJ3G6wg7M7nFG2SwCK6rMcBuHVzh/GfQF/uzhtscnFwTRu2SFc+9IBmAznpM6lCwZXmKjWDbyx5LnAhsXjdxNJSCsDA3Cb9DWwrbgdhYFrsGfIBGuBFqtmXAXd2Oi/AwZq9dZ3Dc+yQ9g1qwNEApFtRiqjMLaCW6mZz6C1tj2Vp8TTMxMVzYrrG0wzU/gPF78QAWE1wuyJz/b2JLWAmWzXIdKjvAibArRKfHKWSyr6De7gGnGaMvN6rejsddJxnzluEBxvM49gn3vQ9FeB5/0yNMUuC5d73zkWxs0EVWDkuRxelnIu1MkQkdTuzOJCrs5ISbmNAsrCo6q75O3VV7yIAOBdDBnZyEEvnag6H2zFIlGXVH2EEp2QM9OYIpsoiHxcVMUgB2VGWMu2knRaIKyU/Z2W4s3VCN2akbS9BxNiBLUaYgXkcXnMdKVR3jdLRlUIXbkNVN9LWU5n4/W7jNwcGcMDIXiu234Yp7gG0LFNsWuKI22ApZZ4U/OBMGbHg3ZRr4P0s/UnHCszD3JOek4Xv7Bg3yVWoKtRzEfDYgbrQcjfImMQAgqUojOLeiDiwdP3PdzojL6bmXGjMzt4DRKthqHyPAbEsUZomCLBbESgMwP2BtpiorpWWziJgGwEUMqnubwg4Z2UKo4pOEHVrH7uucO45zYhKCmVeW87jFxVZG9iFCBheQ5DiCDz7CbvfbH8imep1k5dClsjjt1CMX1oWcl5F1Yee6rZHOCRtyXq9spC/WG/FEqDGI796a73mmYGQ9m4nfeS1kBI0O9GQJiu6UZS1cLmJrOhRAYceMbGnKT2zYmS4KL0Gxni1jUJLJyMYSulSdJkEByDFJYVQd4nXGhVUwQ4VS0S3G79A2IMb4pGJ1P0u4ccnxRAO2F8Jgwyc9wbYdJ34WPqVXMCsKBbIZFwE7C3ZjUi3dTqq0DMTGtPvgFC6KC/ikp2u5A2OD/FxQBRtdzkjSgK4oyjyOzpol+9BxcB6uEaG5AhdMOl6P2gp8reYCzQ9qLsxcdUa4xVJmVGoKtYRdSs89ZIEzyzoSMbqS8SwKTjaoSvh6C9vB8HeLMgd02TbsuEQHsDsBWF1CRvYu/z74cIoM9aSC4xAAwo47KnSCMctSWHzMkU+oYbyIc+YIHusAHnv3X8KwW2XDzgKdlp1EQc52WzULGysRYU838ZSaDuucBKCZScUw95bfoxno6QRjz52lutNEBUtATNzOq7fjvlczFABz6ArQ+aBtYwq7RFUSYccEBVUhRz2xDU1LT9KRFEliUTFUGyFMuBnY0axx7KxHNIXQFugy4b7+kAzszw5us1ioOHJHMbBlQ7FdBGRYMEtonSe0ODwSQWfb/aQLuhkKi/E3rWHbjL7KFKgwtVR8zbYpkzAAoJYxGcEsI1ylXEzyOIKSBsKNz8VG+RPodOB+BUKttECjYoun0KKABhhlWsbpH2psn7KNrWaumVhXAhBjSUcsgJUEr2KAcoHl/Z/j3J+EUdntpBvLFYkoPzGwg8K+y+Jr7qjgGHbtpGD5iQ70ZEaW5SeEHZU728YAyAjscAx2/+Vvsql+Z+PGLko/W6zOLhbsjKKL57I6ak4HdhJeVG4KOEJOJyRzSY35P271a7NeEffXQZ9mEQ+el4kSXcSjC7SZpOBQAM6fI+zY5qWz7Urrxmo2lnV2HAiadwNDPJE5zTwchmtkzBNAzKJiBR3fFxMr6r4SdEs8RTdt9XW5fjO8dClR+1nBbbaC7XkkD5ipoysKqBFs6+BqZHNTFYtCrQPEPQdHURW/FcHm5Ug2MGuahgLbYxj7cwYFtutQJW9DjWDb6xXv8nFY1sGSkEKc/Ns4hw3PaWJqlkKzoean0KjSIm4nFNZqGKfs2rYG/7fNxMwcmPH/pYIZLtCSYFZaiEXgBRd/i2VMDJTGtnJKSQzbhu+XZLF+dzv+xjuZoCDsqOwqVTKwK9LyE+6nSE4Ot42xa8KeXszsLHdTEHZQdg8BuwtUdixSBox3vfeJbGwcTlAsXHXxUReFl3WNxOdcNac1dFYCwh7tFDX804vDEXI66t3sotD9FYSFYwZ4+J5CT9csEiSM3VFVMSvLuB03f7G4OAI7R9lpzK40CQotKjbtYhgsoOPZVzMTiyzwfLqwAC9fFycW8/WbycTG3X4oX3c+KH+osk3++G2mzF0X3kmSiP1s4GYU26hcSQfYmCnMwqf1DmTWbiCIfB6zybIQfGZ/6Aqoq72oL9uEUo1tUFlHkUm7xXICHjAU6F5DEPomTmh2I7DrgGAj0NSMSmNRK0oVWIB7DFX2JmHgKT0+zk3UYHE+WzZLPgAuGgEWMbyOlbBVHsgIs2cBNIKsGMxwUW70jO1Tmx2jq+dnNrj4dSLgUuDEA9N29qs+RbOfm8mJHeygAOzy6cZS2SHBcAnnRgR2rLUj7DAGvhjsbGU3erQ8wPlwAS14dGP347jt/BtKT5r1lbSxGbJgzbUI7FzIRcXmrOQDL3hTFBzLXfVRchMY41I1xCym5wK6t+oaEnp0FY3C82J37JfVuB3LQExGFqrLVnaHoOzsBEVphgEwvncZRmXIxTsc8cTl3Kzr43YwqksOARib9kA+ab5X/vB1jrxcNUd+8UWq/LkeliKVJ7gxxjZp9C6A7aUI2LIRY9sDNXYC8DmAqRWrUe9kNlIhtkKgcc9BGuramC0lwDL++lfZiSA0dxgcwB6ENfj9KKixGBYnbR76JA/D7aRS2wJ3NY31aQz64yJhwqBw7Fi5CJeXRbmr8T0/qCnMfijQjJsJYKlxTJFtBmYWvBRieuuCjP93QeZCLB7I4sErLrA4bYSgcY0DNZ+GWc9jXpf3/FR1O6C8dxN2TFAQdlR2NuziKTvCjtNPCEOUqdxDnPYcfv8QOzJ+93vZ8RmKitsMk2VTNkOB3Am3hVklJe50E51bF5le4tXMqZJTd9XssvBTcp6C041mZlUjuw8c08xmJBYG2Km6052yLJFhkkJhZys7JiiYjWXpiRYVJ9pBofE69sXyMXailIWbzJbvfSgV2uQBbFsAtm3yu8qb5LkKqfKfny2W5HXhpF9JVuaVG7Oik8bukbTf/iE8mgeKjW6ouqJMHqzHeJ0tKMvIAexcpcasKKd5ZMM1WcZEAyCWapmJqcH2oij0ARIFzHreoHviHdxd+LRmAS5NVVqUUiuNSgOs1qirCTBxH4Jt6yyQxQQa3kMsoCWizHwVGZfQWEbFQ2M8Sy0CCAWFDYwSAJWLn/8ULAJSvnYu1+brIuwQL93nZWPVjb1LNxbJIrNmUWN2boKCip6JC86+wyrHIpx/ZxCnLcTj5f/xVdlauY6s7TZJls7Zg5FFD6PGOhWLy7F9K5aS0y1hjpKjuxpxUS0FR5gZwLGB3muiZ6uVbaYjwSvSjWQ58ficEMx4IZMUCjt1Y7NRu8bl1kwoHMH1QTeU7WJcpFMSiPTndHcvwHWt03+v/PGbbHntmxx5tepWeemrTPlFhWT5r88Xy9v1kP1O4DHLNNzmQsJPGr/3EdjwiUvFZoONfaE8EBwIuQ3DFpcCVCzv4FKWXSi2PYUVencxgJL3OQTIKdgUassArUKUifDnVGtpGBlOpcaWKX6P2+Vjup4A1SrYassy8LUaQWabiaH5AM2FWjGFVpI64w5Uz7K5HtCyLbiQ1WyA6dcuxAizYiCLA6940NrJ+FcM20V30cd243ulsViPE++5475mfHjuIexYVMzSEw41hWKPJCg46okxOZaYKOzs9YosKubAACQzbiKZdZI7cLlZ7Y23JbtWK1k5YJEsTDn5qL/VTjxYgFN3NeKyxgCcnWRQd5VKTtWbwo2jkMxYJDXOg+OIJL3VXlOvsZ7AY00b42J0IxV2LCwm7Ohmcqk142vseGBvLBMMTE6UpOo6DN8vr1XfLG9Wz5HXqtG2youVV8tzXybDNV0s//n5fMndH65JjWdlFm7sPJg4cb+k/e5VE3hfR8UGsG1m8gDu4woGoxFT4xhwKi66pKvgelKZuUagrYULwlsbassBsUNs0sZBPIBPXkItHc+1F/PH+L2jWK7CvQqMn0UMgFoZB2gE2w8CGpUo1Rne30Yf44w1BRlvfyjMXJAVcxOhbKhu/Gwnvm/bLvyftjuecWSSj+0hVH6A+T2m+V6c16Kv134P7vtkJjaPdXEYmXWIRcWIuZk6O3sYAOvs6K5SyWmdHRMV7Jflrgou6cEg1Cvoqz2G8/cAj9uHFSSreX9JHZ8lc9bcDk8p1knDTjEwAeMmHeK5qep+KuSKAc4DGkeZRyw1+msOwiT8THO9Bzzjylqw41w5DvLk5i/WwHE8OzOnTCqwVYyqjvE3G1D9JhfKnwi2Gjm4DYPtrW93ym8qLZfnvkiSX36xBOptgfSYiP0eP0e4LUCcYsKUQkn7/WthsEGxHcSSlUMYAJmNGAfBxuRBLpUZOgK4gUoTBhw4uQ/V6evxiZuCglqj1AAtKjRj+L3lsDTYftZFeQeQ6u4s2nyOsigUiYcTyKY+MagBVpmwdbAsxwgyNbqbflCLBzTjZnrqzFeZQQlt80xdMb1l/Mm1Yhe3D8B8gWEBKx6k8giLZ2jxXksUEB0IKvh4q/AzLqzCDp7BEbSLnUZS6hoU2kNMMQnh/DQdFBzzxHaxgwfD9XU0DvDk9zgVBXHbewh3nMU5eggf1HtfxRj7qg1kZe/ZsmDx0cieCR3DxMxqZJOYXR/n56baWVUv4WC7qa6CGwWAmeU0MK4fHGndjvL+z1tdYEOlR1hqG5YqOyYouICHSQO2i7HGjlvGVNWxTWzs4mNhsNXMkTdqbMXX2+Ttmjvk8yYHALdU+TWU2y+/XALALZQ3a6MW8ecGt0UIwk6cfgT7C96IgO0oZ/rzUwDjhzYAbizQTQK0lgJW3PCewlgcvp+PNivWt+my49so3lz1l79EwKZQI9jUsnCCUqmdgfuq7Vl8rnvXr5sBk2x650b4Yq4n3MsMz9bgVs24nR7M9NaF2mMDDRDjKPAtgJUa56nZttWCGaFmA600IPNVYB7A9uDDxrU8fC+W7WVpxk/A4r1Gv/cUgZ8FPlftMV63l+PU4VUcRV/rWWTQr2OqTKQ3lsM5qd444YSAI+io7thNwQwte2cR770GNXgMbvABHOPcD7+Qta2HypJp22VG5sNI/6o24fsmHLzi35huquequirOwI3mqTiFG5dKc1scV2GaWxhv+X0DQQ94qu4iM+IAXxYWs9aNyQlOIeFo9uGpZ+X1GpvkDYLt222w7fKX73Ll08b7pHqHw/LCV8sAt6Xyq4pUb4sQf5sn+45c+fm4pYsRxJw48wS2ub9t4laZ+EOf5B8fsOEE3XWADMG2FAuQTwJGNzApIhfTbQk3Naq05SxChQuwDnPYXLVmg40uKI2up9oGuB75CjsU6N45e1Y24KRbbcGMULOBxq/9gBYXaupyAlYbLduMr9UIMrVEgVYizHjxcDGMZbtcNxEgYkYxEYDFg1Y+s5KuMdhu2T7Gt56g2Y9tvvZ5DfFesx8A3ePAY6Pg47GjmePJ7/M5vYLiY2jVu4CM+21OPdHFO6zD1LITTjrh4E5VdXRvoeqKkIU9hd89iMfa9Zf3JatJb0mavM20O5n6OB83laUeNFNLpnVxWg/nk2wg5CIqznZTLRVHkBFuw5dikTktybrl1zD+jDYS4CPw6M7q9F/G7DgUoO/cS/J69U3y5rc5UG3b5M1aO+Sd73casNXvdUa+714IuC2X5ysmy68rAnBfLpb//mK+TFkano4dy8pMzG0pZO3keRgN/qd3TU1YJk6Us5TwnmLLRMwsBcBLQQEu1Rm/z5HgyzB/zQZbLBfUQA2/T0u3jC1TNMbRjAFUNC5nJtDW4FNbFVqpoAZ4cVkyjUMz1TY4MCPYHgdoxtXEa6NtV2Ptn2WEmFpJMCsJZH5AiAIJF8uwJMKx/fi/bQcYv3qG5j6//fr4eiNmAdfvvbrQiwU8F3Z7eDyYnECpkumeYHKCrWIc3slYHD6kI5OKCTvOsWOsDgXm7K7gfU8CdPtxPez44FNJ7T0vrOTilY04Ks7OqEbKRqxMqiYaolScuqdUbp56M4CDDQXUaEOcW8KO3x9OA+zozvaYeQNqDYoNYHur1jbYDnm39i75pFG+1O1xSgZMRxFv221IKKTJC5VS5DcA3K8qLkFiYb7U7xO/5q1MwC0FEnbCvHOS8sYHxv2jYtuNtPrV3NzIGHC6iafxB9ddB8eQfk9BZjOi2gCvVBhjasbwOMs9mCnUbLgp1FywEWoKtphqDW7nWgAr0zGFmX1LqDGORqi5YNsUS6Wx88KzHE468Wwrbmk/GGieMqPKYGYwz7G9dLUsi0AsBsAIDEIkUWgdxH1jWQF+VhqL9TiJvhbezwWy/t+Az4aec1zc48ZjyWNqlJ2n7mzY7eJxZh8rXNgj6Iw5gxKma3RhuXWNva4YR2/WKaK1z8TrWFeHa8AMBkAceSd+Z8ebbz1yU31UnDbiRyUcGIezVJxJNNhuqqvibBcVkDNwo4Kje2qpOMKNNniJZ4txq4bv9Zx5R97+fksEbG9/Fwbb3xvnS+1uJ6Xv1PuSgjDUm7Wy5HdVALevUmFL5deVliBzukBeq4XjUZaV2zJMDZiw+JKkvPVJGGw4KTYio7QZruA6fOJx0i27DQ4g7naZn2hepwDHFp1AMSXd0lW4nw01gs0Fmio2G2oRsNlqDeBaDcuwbA2+VlvLeFoJUIuoND+oQXFxG/xmz7JxS1OY8bY0QItSZzhWdI1orMqPXGR60SUAs5JAFgUNXqiWHWTsybMCdgSo0U1zrJB1ZU/R3OeLej3W67Rfv/nagbQLPlfp2R8CMWFnQY9/F/M34vfwXBztxDax44gZX2CbmKo6Jra4ShElJxeQ3MpEmGUyJkePfONvJuEQqYlzp47YJSOegjNuKowTdqO6G7x6OOOieoDTUhETg3Nc1AjgADl1U42Kc+A2aBFc0Tn35YMGO+TPNbfI299thxuaK3+tQ7DtlVpdjkuviUWyGO8jK/+WvF17g/z+a8ItRV6onIzkQhLU2yK4prPl1PlH+39d0P2klVsasisTk65J8rufG7CthWLbyHIPuKBZ+KOvxIVOVzSJcTYY421pvPg5Rw1ZqRuU8B7Z9yBOlpBaA8g4Jde4nwAVjSPIaaWF2jrL9TTuJ5QYjQMzaRst8wNaLKgVU2g4LtvplljGAY80hVkU0BKEmQGZuma4sPdZtt8Blx/E/OAVC1iHALLS2mH8jp+V9nF4/1ivKwqCHowV0MXA5x0T+zjxa7Z26XFMGHbeB5ANuz3sYeU4diYm0Cd9CrYbcWZeF4twHUzDZJspTQeGm/K9Nq6o7gYrFqfTRqjgtBFfm+7teriYNXElJRq8WJvtog7xIDdwYUg+a7EnDLbvt8k7tcNg+7hRntToeES6jbsl8wHhPIxoWphxRt6ttwkFvSvhmqbKbwG43xr1tgiZ0zmSkfNoW12ZgdtKNNROSr0pS/9WxcS2DNg8xRYBG75PsLHsg2CzjS4obTWyodlQdhG1ht9JsyzdgxmBFoGaB7ZSQw3gyoStg2VZ9kOgloP3rca1ebTttpUWaIAV4zyszVLbS4XgmbkIvQvSvkj9LuRiKsxTXwYUHCZp2SHGlRw7jP/HsiP4WTFDLdmRxzGfx4r33H6v1X0/fI8R8CUAPftYRsHOOvb234R/I+PC+qg6Kro8HIf9+JDPwXtbi3MgFR++szDRZubCw1ETR3xVnEKOKs5LNBRrwnf6U1n0azKpMVxUUyrixeEiiQYqOC+xoJCji/p1p4Py51rZUGvb4Ibmyvv1ALaGeVKt3SHpNOq6zMRz7UQL1rmbD6XD5AtSs9d++bjZZsTmVkLBLZPfGvW2WH7x5VwZvwSTXGK4pj9J5ZaBFPHE5XdkySc1TIX/GlzMG6DYNkGeZ+GPahRbLLDh/hwySZgZw/1oNtD0a1+wWWqNSi1KrUF9rfGMMbW1HswINDUbavzaKDVPrfkqNbyXbM+24H2quVDbVgLQjErDhUBj7MZcFLxAPIsFtFjKLAIzqgXPDtoXNN2lxwBYBFg+kDqK76kdw9dP0+zn8gWmB0QXgi74XOjxmBjzjhWPmR4/c+uj7vxgVwx03t8xD4+Rj2NTgAQE43LH4K5m4m/N62FOpTqmzILjve32La2H00SDPRiTZSNGxcEttUcpRVxUD3Km/1RbtpxuhkipCN1Urwwklotat+9xJA02A2pbodYItp1IHuRJ1baHpN2wKzIVj7EN45cuoTG/09RL0mLUCanTb5981XGrfNhknbxRK11+9/VS+U1llIMAbl3GoTi6rMBtLSqaJ6Tfk8Wf1zauYRTYUBi5Chd5Kr5PNzSZ2VHHXLCx7MMFW1y1Bmitgq2GZVimUOOtSRY4YHOhdhQtW6dQprIB4KJt9GwTbjd7Fg9qqtIiUAO8uN19h2fcGEVToJkYjQO1mEBTVwkXCnsmaVEXYAyYxVNiEQjgwjus4GIhq2dHcUs7loAdx31OPEXj49MSeS36uvV9mFvvPfJ96vu2oecLvFiws/4G/DuwTESVs6ppBR1/dhDeyzFA7RKSDecwbuko4MYBrEuQPJs7Jy+8yMbd6+COOWcmtQQXlZNCzBglhZtX8Btp2/LasXSTvQ24iILzat80ydBy5Hm4opug2LYCao/AVrl1gbQafBEqDJNH0M1wGbDqMu2KtBx9SuoNPCBVOm+Xz1pulPcaZshrNZfJS1WWoOZtPjKmc2TYHNQHlgW4rUP18sRVD2RR5aYmI5nhKbbN+JTKgnJj8oDyeymA5oKNUIuArSS1hsdgQz3NxNUAK5pCzQZbQlBD7CzLs/W4LUDR5T10RZxDFisHdXEKthKhhve31bNthJmaAzQbaq5K28PJJZaxgJRmLhjnQnKB5iqzQly8aofYXuSZuahtiBFmCUIsLrhw4Z6AnYxhXNv3OBbr8fhc8SAaD4DFoGcDz/vaPmb2sVRlx+NdTNlZfyMbdCwXKSDYEG+7iK6Hm0ggXIedwdf74dEsqtfZjFTymwIcUXF225bPKCVTBwfzdVE9yMXMorInVYt9LfdUFVyXKdfkL7U3y1+h2Ai2D+pDsTXeI5VaHpDmA87JqAXoR8VI9HNozRq88Jq0Hnda6g8ukGpdd0iF1pvkg0Zr5I3vl8vvqgJsleajkHeOvFE3VTbu9bqPfAD3k3FLN2BmFD8pFlRvaxQbwbaerqiCDRd4KgAUC2zF3FBAK82ydHxNU6jZYCPUSlRrgFamYwo03hJqNKq0zTi596JU5Sx2brJt6yLS9wSbUWp4X7QtABctxzM/qPmqNLgnXGoccTkBrd3xgOZAzQANF4raQXWj6OokCjMLZEb94O/k2gl8r5g50IoFqtO437OwWM9vw9AA0Oe9+L3nkoCnsIsCnXfcCTz+Ley/Df9WRlXT/VfFRrAhhnwTmdNzUG/5uD5Wfl5V5mfdfjQcUyFnrSFkc3sk0aCQ8xScq+JMkkEh5yk4zn1ze1LNVBFPwZksqp1ksFzUfvPuyHv1t8i7dXMAtVz5sAFibAZs+6Vx3zMyZDY6FRBjP4UG+wnLb0jb8Wek4eBC+aZbrnzZdjPc0bXy59pp8so3SfI8wPbcF3PlpWqLpP2kg5Kac+mnrdyy0YLBT4v533cPgw0QyMJFo2DLANiWJwi25Q7UCLhYUFO1Fg9sJq4WB2oKNmY/j6J6/ArGUt9Bk/5FtNTk1a8vmwGvbdjL8ESh5gEtUZUWD2glqTMTjyoBZvEg5gLED1pncOHGsrP42VkEzp+ExXse/szvtbmvX8HnB71iwPNc8YhLa6k7P1XHDxdjFuj49SECFortkqfYbgFsF9DGdQCZ0syPKiCjeCm8ktBeXGNN/2UMzsThvCxqSUkGDoqMyqKyVMSnm8EemxTVzaAN9wDckMX35e/NcuU9gq1BrnzUEOUeTQi2fdKgF4t078lyTAE+iob6uWtvSbuJ56Tx0ENSo8cuqdg2Wz5qmilv1V0hr1RHnO2rhUaxPf/VHKnZcwuSDQUyPePsTxduOVhDxmF7cxsOMi6iL9gAmCjFBgAygMrYmyYMOIvNVmr6dUlgi7igeI4M2BrL1pZCreViefC9a9dkFz5VL2/aJNtxMnLM0na4pQkrNSiyHbBcz6jQaLtUqflALeJ2MlaDC4Hui1osheYHtMO4EGnmQmQRKXshfRTZcVfFWGrMBsFpAMm2M/i/bWfhStl2Dv9P1M7jvolYoo/H+0W9Hue18nW778d+r7GAx2PlAo/H1Bxf73ib4265/Pq3MSqaP+PATMbYALbbcENvo4PhEkpAuLA6890PZMmyY2ZEOJerRBZM20trCDk7yWBBTodhuj2pkSSDUyZSrA6OcTjNotpJBk/BMfZWuf1eea9ejnzYcLt81Ggn6tjCYKvb47j0nnxHkvB6Ci5jvHn2HekAsDUZfli+7bVbKrYH2JplyjsA2x+/TUEZyCLUts2DzUbmdKV83ydH2k04IEOXYtfFTzHmtv1QOFMzp+W4KLBthNRej4smAxf1cgWbBzRC7bHBxtgaHm+VZ6s9oBFqNtio1lyw2S4odzNwVeAGxgRh+7BsZDtaZ05jwu/9mzflJqrHr6MR+hAmlbjuJ93QrVCi22BMEJgkQaJQA8CYLaNxBwDNxGUSAFoBLhReLLRDniUCtAjMNB6Gi+0k7JRliUAsFmgIqQs0/M0TtYu4byKW6OOZ+3nA9HudNvhcSNvv3T4mPEYnaN5xo7qNCTr8TP8WvDV/H3648FhTsSFxcJvTgLHF6xI+RI9gFPqGt9+RpQv3mAXNC9DBo4Dj9A17oTRjcJE4nKPgfCf92lNFvAm/kSyqTydDpA7Oc1EjM+EAuO/7HALYtkCtbUcN2y75FIrtyxb58n3Xo9J9wg2Zj+fKPxeSjJ1F0hElH02HH0HZx275qsMWjBdfJ+/UWymvf5uK7oTFaLuaB5d0jvyt4TL5vNVqADBbWo3Nl94LfoJ1bjuR7qX0ndlxlomDUbFl4tOKrqgBG1RKGsEGmCXHAht+z0+xpQNiNI4+omnCIBbYotSa7YbyNdFFtoxQs8G2EXA7itaYe9h0dRj9gNmEFwdmAlpbPMvBLY1QoynUtseCmqfQrmNU+VXE684j61oi1HDsOFOMdlDdm0SBxniOZZELkhdmgjAzAMDfjnbOsfNxwGUgBXV7qQS7jJ//ECvp8fka+FpiAZHvwX1f+n7P4L0r9BKF3XHnmB9lca6qOoIQj3nKc0Wp2O4CbFdxy06FbNRupk5db7a3E26csMHFzLaCMypOFRwBhywqLeKiUsEhi8rG9cjoJKcf1SyFZh0c3NJIkkGzqLqez1NvkTo4T8G1HHkaiYNsKLZtUGtogm8CNdYyX2p2Piydx1yTmfi9Xahl27j/nnSeelGajzwqtXrtkcodc+TTFlnybgOArVaq/L7qYnQmzEdd21z5uMlKuLjLkTldJdW7b5Tmo/Kk+0z02/6UlNtuDK4zyyh6JQM+fzAbowi2jTjB1uOPasAGl7BEsAFcaY75gg3AUrBRrdmKzYANz0Vb68GMQKOt8wGbKe1gQTFsP2Z0XcrKkjNof2Hy4GFRkVxDr99WQIVgiws1vMcdsFzPduKWxuTAbqgx2oGvv5YLGIlDwN3BaPMLc+bIVcTy8vH4+3C8aAq0uFCjMvDsCC8iGC+mWECj6jDqjBcY7LRl5kKOAzI/OBAalxAfcu0yvmfbFfw/nl3Fzx/H4j2m+xr4f/d1XsT3/N5XTOB5x4jHyT525nh6x9YoO1V17t8Cx+u0p9juAGj3MO7oOpTbKSi4HPzN00YmmRHftIUKuCep4NwyETcGF0/BAW5dpl5GAgGJAIKtCcDWdLd8CbDV6HhI2o+8JJNQC5dzmPVs91HycQmQOgaVlyeVOwFsLQm2VfLm98vkD9WT0G61QH5bZb5UardRvmi1Vj5tTritkGpd1kuTEbul28zD8hDzFf0A98yzpXkn8EmAgzd9UIas+ANAo2CjYiPYcFEr2Ag344ZCoalRqXEzPI1JBhduqtYiis0CG5e4ZDhmoOaBzYabL9igyjawt9Wz3TjpuF3rJhqY6YIewsq/Qix4LgY2KDSqNGMxoLbLghrBdha9slcxL+4m3NuTGEldANAdxdz+QmTICLX9FthMEBrwohXC6NLQIkCjIvCAZkPtuLpOvOXIbA9mNtQiMHOBhg+i85ZdwNdqhEEsmPmBJgpYuKivJWjXcT8/S/T3r+L37ef2e21+sON7M8Cz3rMei3P4njFPxVLd6TFU2Onx5S2PuzH9G/D+2LPAGNsdAO0+zrGbiLNx6GUu/o4re04I7/LcETaqN1vBRdxTLwYXUXA+7qlJMlC9Wb2oscaX2wmGyEw4nwzqgPm3EFvLgW0D1HLls2ZQbK32AmwF0nroBRmLWrYNSCDuPvNAugJsLUcfk9p996KWbat81ipL3m+4GmBLA9iWAmoL5bdfz5ca3XPl2x7b5YvWmfJ3wq1FulTptE4aDs396cBtH2QowTZtZLakv/JqlGLjTLQMxI7YG7qUtWwW0EoNNg9oKwEtGqFWEthUrRnFBlXGRTNq3FhPqCnY9mBvAoF2dds2ubBqldzF0pgH2F+6t1EjyQHAaFs922ZBjWBzldouT6Xtxnun5cH2Y4TNgxs35DiU4XWMbzqE7Nh9lJQYqEG1HfCMcbQSoYaLhrEb2jHPIlDzLiz7YqPSOMMLjBcnLlJa5IL1g5kLMgS/L8OuOHYV/zfmA65YkOL3bzxhi/dcLhQN/LzX7b6fSwzy07z3XxLs9FjyVo8vj3XUseexBtguQ6FRsd1Htv023NFz2AOyh9dHqz6ShJIJTrRNcuFmKTi6qCbBoEkGO4tqbduK6mTwXNRicLNataKWQTtFviwTGZ58Tyq0ZOJgm3wGsH3enGDLk2/aH5Tmg87ISNSyrcGOhbwLD6X7jCvSavRxqQOwVQXYPm+1AbVsGfLnOmnyxxrJ6EJYKC9WXWAWxTQefEBqAm5fAm6fwC39e/N0xOXWSoPB26XL9ELJLfTfZfrMlNt+bMYxE0InYlPVn96UVYDIWlzIG3AR0bitPQ0QSS4t2AAyxuZWWEYXNGGw4Tk5QknNBZtJGlhqjUW5+7EC8CDG0OzBJ2ouTsQ8fLruh6pywaZKzag1QCzXs524JdQM2CyoEWyHAEgqtOOYZnINLi+V23UsCD6J54sLNSizw54dAcRovkCjQsDxPmXZaQ9mfkBTRXKBSsWzyIXtXeAuzBQINiwMVHDh2nYD/1e7ia+jDIC/Cbv1hI2Pacx5Pvu1uK+zGPR8gMdjYB+Xi/i/fcx4HO0PCYWdgu4Mju15gg0KrQiK7SHAVgS7gMxoPn53bb3WgNqDR3AD4CIKznFPGYOLlWDgtnk7wRAp8HUVnLsr1Yu/qYKLarKHghuX/lCqdspDKxUUGEo/viDYWqKtCmBr0u+UDJ51X9LxOvcRbDOvSOuxaKvqny9Vu2xDkW4YbH+pk+6BbRGKdRdKoyEF0hb3M3DrucOD2zIkG5bDTV2D7oWt0mlagWzZF17w9KM0zhegu9+kl2cUyrI3MaaIYGOMTcHGOAIgElexAVjLYMyeEma2JQw2PC+HS9LogrIZ3wabrdb4dUStIX62EVYIt5Mz5I5ir+lpbDC6d+mSnEYcrJhaA8wItO2AF82GmoJNoWbUGt4/7VjnznIN25EuIoFwhxlXlJScRrdDFNQAMFaqs6iT9U80G2pRKg2f9sfV7cGxPhkPaLi4znl2nheaBTNeqPaFG4EZgHWF6oaGC/OaZ7Eg5sIrClzIAN6OYXfw/R9qsR6b379FsyBqwy8W9PS98pbvnceAx8KYp17tY3bBgp0eXz3evL2I57+KD8oiKLaH2LlwF2C7hCm9B/B466rVluStt2Upeq6X7oJqo3orScElkGAo1qbFOrh4y2fc7Cnr3zwFV7dfAToOcuRzgq3FbqkEV7Rq+wPSsPcJ6T+tSJIB1QMXOcPtqrQZd1LqDsiXb7pQjW2UDxsDbHXT5bVvk+UPVcNgY+a069QLFty2o+6Nym0ZkgrLUNy7Wur2z5EOUw/I+j3+hbxPXbkdwnovA7Z5pyT1L38zTe9UaRzXzQRCJlyrdCo2FunSFcWtbSa+VkqwEZ5qzMKqRcCG57PBFqXWoNLW0wUFzGiEGm0TjKPMT2I66haAKxvuZiEWNN/ArPsc/H+rZwZqHth81RqVGkBGU6jxtgAnchFm59/GOriTGDl9ABfDYWbHMFKawwsJtJhQA8COesYsGy0Sy7FVGo73abpFnp3FRUXjxeULNAa1PYtcuCXA7AYuUlpEISk8vFsXMgqtIvy8mCEzWGTZXXwdMZTe3I1n1n3txzBfO89lg9N9fQZ8nt3Erb4vfZ82yBV4BvYW7C5bx5HH0wYdv76Ex70GxXYXii0EsD1A2OMKvj6E76/5rJKkbrps9g0k+8FNFZzG3uwMqio4Fvg6JSJGwVl9qKbAV0cl6QpBpweV2VPNoNpjklqPPhkGW3N0FLQMx9iqtt+PEeHHpNfkm7IQj7Mfm696zb4mbcedkvoEW1eArQ3A1mSNqWV7DbVsf6i2WH6PzoNWo09Ib9y3GNzaZCKOB7cUcKvQZpXU7pct7Sfvk8xd/mv+nircDqOGhWCbtPiipL7/uQEbEwbrqdgINly06YBGMks+HKgRcAmBDfG0FV5sjY9fKrABYtyclWWZDbY9cBFPTJsmx7CvdCcC+XQ/GWdjjO0WspeXEPDfiVVuUWCz1RpAttOzXRbUbLDtpWKDm8uY2gFA4Qie4wIAehuJiuOonzMxNVVqcCkPwVjYSTsSC2o4vie4Zs4zAk2hdn36dCmCq3sOF46BGhWFmnMRukC7htendh1f01yY2TCIgAJAueNZFGgApyIfQN3D92y7j/8/CXMf14UjX4sxC6j6um/je/p+4sLOOy56nK5SkcUCHRTfFfwdruPcuosPshCg9hCTd68hxnoUryPrI+z4WHtSUhCnUrgp4JaqcnPcU5Ng0PIQ2z3VBINTHmI23mujvXYw2PtRvfIQ06Jlw80r8O0x8xLAtgWu6A64oVBsrcNgq9sDc9nGh0s+dmPT1ZBF11F0C7ANxMKX7lBhyH5+1BRgq7dC/lSTYFtiwNYGPaUD5t+OCbePm8ItbZYKV5aFvJul3aR9sib3wrN3S1k/M2nZDVn6cZUI2LIssK0oCWyeaou4ooAYM6k0Ak3NxNdKAhvVGiBG4zRfWjywHcdy3Ttnzsgh1K5dwCo2023wxRdGtdFstbZNXVAAbAcs1zM/sOVBqartxdf5gNQV7IIg3K5h58NJuKYHcYyMUsPPaIU+UFOwHcN9aYyjGXOgFlFpANg1tIfdxnu5AyjfQXnJJQSri7CM5BKzcx7YLvOC88y4mh7QFGYKNKNgqGRw0d/yzADAD2Q+ELuHDwXa/Rj2EN83BlftiZr3uLGeV1+XDT4XelHAs94/jwWPSUTVeaDjMeNxNKDT48vv4f43ALZ7VGwAWwhgu46/yQm8501/+0jSl+VLKqbk0Ai4ZJqn3iLuKZMLzJ7SPPUWyZ56kGNyQTsY7BYtE3ujxZgiYu9iKNZ/CtANWXwTUNsiFZoDbK12SeU2AFuHfRgRjrlsoy/JFLRhbUU96/i0mwDbaWkwaD/aqrabso6Pm62Vv9ZfgRFGKfLyN4thi3CfsxhJfk8GLFC4nZc2Y44h5rZfvu25TSq2XiufAG4fN01BAmKF1OqzCXDLB9zOP1u4zcMBm5xeJElffh8Fto3sh4MaWQG3LoW1bPEUG36+3AJaPLDZcGPTvRpHJtFKAptxQ/GaaCdmzTLjyvOhnDYDXFRo1zC3fguKJwm1HKizrZ5t85Tadh+wRdQaILbbhRrH7iAbehlgu4IN5YytHcMS6Uuoa7sI5WZDTdUagXYEADvqAY1QO+5CjbsyYQxQ084CaneQmKDdxnOdp1tEJYRlIw+w2vAK1CnhZgONFyEvxutUFZ7dIMhKgpkqHwDkrmexIBYLXiG4Z8/SioEzBmz5PvQ98baI5r1fwk7BzluFvTlehJ11HCMfFvjdWwDbfYINf4MQpkffhGo/jZ7RLehFXjV/syzHlAwuNaYZ9eYqOEe9LfEyqAZyBJsHNyYX7ARDBHBeckHdUwM5p/9Ux5Vz4Uxk8TPANjbtnlRqg2RAc8Cq9S6pQrC1D4Ot3YgLMh5DKjei5GNG5m1pP/E0GuEPoJxjh1RqvwnKay3q4AC271KQQFhi4NYerVfDlj7EjoV7MpBwm3VNukw5Z+DWaPA+A7cvWq8B2FJhyR7cNqIXNV8ydz5D5baYm6pW3ZfFVZtFKzaCDSpkpQs2uKUpnml8bVkMsKW7ig3gWgnjnDdaQmADyDgDS03BthGvi5aHE+0kAEfX8z5KMgi6Q4APG+BtsGnCIAI2uJi5sJ2wXYyreVDb44KN9WjffWfKRwqR5r+F3Q90Qe8gfncU3yfYDgFktMOeKdQUbAZqUGkncExPeeZCjWA7R5hBCdzE+7mdkiL38Bx3ANO72IB+DSvlDNQ8VXGNsZ94QMMFeduzOwoy3saCGZ73viovQOuhZ6WGFyAQUsPFHyqN2b9bCnDqa43ceu+F74eqL6LwvPceBTvrON0ixDxFpx8ON/E7d/AeDNio2DBBpgixNo4O34G/fcak5bIc478M3DzAqXrzdU89yEXBza5/c+Gm8Tc/uNm9p6576pWFTM54KN92y0PiYFsYbG33SrX2aKvqVohatrMyCmPE10BhLth8B21VZwAngA3Zzq86bEamM1Pea7BC3vwuFWBLkj9WXywdATaORlK4DVhwS3rNuurB7Sh+P1++7Z4DV5RwS/Hgli61em+UthP3IqHwjOCWik8P+uYLv+9soLMaSmcdLtANuNAM2PD/FNayUbFZUOPXLth8VRt+dwWMSo2PnxDYADJOK6WtKwFsmwC3TUwYeLYdF/vhgQPlMpRPEZbO7MLJTdVmwAaA0Qg0hZoLNuOCAma0g7i4zowaJSdR8Huia1c5j0Ldu5ggUgQVdRWz3wi5QwCNCzUDNoDsmGcKtZMu2HCMzwJmNEKNKu0mVGARsq738Nh3sFDkasuWcg0K8RoAbtwkF2h0lXgxUoHwwowFNByHu57dsy98B2YRkNmQ+SGwKg3YSnvfWK+R37fgbIDnvGceAz0eRcx6qqqzjp/5YODP8IH2EHE1o9iaNZN7uOX+0t34O68dNM1sZVcj3CKuqSo4gIOQY/Y0KnPqxd8IOeOa+iUXvPo3u/80klzw2rPs5EJU9tSDW6NBhQZsldvskq/boY6tQ75817VAWgw+LUPn3JV0KMalW+9Kp8lnw2UcvXLRVrUZbVWZ8kHDlfLW96lIICwB3BbjPucj03sN3JbcRcyNcLsCuJ2V1qOPSMNBKAI2cMtAC1aygdtnrdLglgJuk/ZKdv4zSCisxMGmdJ3XZJCs8MBGoBFsBNxKAMGADSBjEsEXbp5iM2DDfW0j1BIBWwbiaWu8+NraksAGiG30jFCzwZaN17sFRrVmFBtcTxqVWkywUa0BZDSF2l58nQ/bhyXQl7By8D76UAk0lnycAGhOdesmJ1HXFqXWcKIfAcxsqB2nUlO1hmN6CnYadsYHaqyZugC7gzheEdzq+wcOyDVcSA/Pn5fryMAy3kO77pkC7aYNNCoMdcF4a8HMBpq52AEAWkRh+X1twwYXeChRg6IJ/VBL9Ln0fvZrjfG+9D3z9j6OgVF1sGKg844dj989BRtX9kE5P8DtJYAuHx9EWV0GSRrmGirYXPWW4sAtkj3V8hALbhp/M4Bj76mXXFD3dK5P76kmF0ztm9N7qvG39kgKVGixFWDbKV+3x94DgK1W14PSdMAJGTDjtiQBkMtz70pngKnxkIPoFyXYsh+BrfayMNi+XYz7AGzeFi0ubB4egdtN6YVauM5Qfa1GHUGsDgDtli0VWq0C3JYawH3WKl1qUrkBbrkFT7nOLROfNgTb7PaTDdhWARSZnmJbhwt1FeCQCjglMTPqBzbAbBl+TlvuQI2AU7DZcDOuKCBGmNkWF2xQZlmw9Yyv4TXSCDdfsAFiXMBBiwk2wGwnbJdnvmBDcoCJg2MA2EXE1M4MHSqH4X6eRmHuVcTBrgM+x3CCczHvYULNAdtxKDS6nxx9Q6DZUDNgA8RY2U5TqN1Ahvcu1r7dAkBvTZwod/C8RXBHbw0aVBxqABpdpVuw255FoKaKBBfvPV7AnsUE2uMADJMuQj+2EZ6JAjAG+CKws44Tj5kxAPABn4OKzQMb3dErKAQ/APW8vnknWZH/UNIJt31h83NNI8kFqzTEZE7VNdXWLDe5QLjBTHLBKw2JSi54WdOozCnib/bkkH5zLwNsOQBbLuJre+SbjmGwNe53THpPuS4LcP2v3H0fjfAYXTT0gHwPsFXplI1e0Ez5W6NV8ladZciMLpFXPbBx+3w03B4g5nZX+s8n3C5Jp0mnpeWoQygdwXN12Yzuh5XyUeMk+QiA+5zKre9GDKzMl3tI9vn1lz6RUpBNDBzCP5/Td6mpWWNMbS0u5vW48LKgNFbBbUsFgKLABpgxoUBjfM1YImDj4+OxCDXa6pLAhteS6QGNUPMDm8KNSs0YYLYlFtgAse2wXM8UbCa+pooNMMuD7SXUYPuY8cTFS7V2AoA7B3f01o4dJsZ2Dst0FWoGbFRrABntGMwXbPiUP0P3EzBTsCnULjARALf3PmrmrsLduQGAFsHlvY/nugGX9DpARrtBoFGlWVAzQKPbRKCx7soPaLiwH8Zy92w4xFJaiUAMLlrINZZK/BBzHy+R18H7+L0PF4I+x4PHiMYPgwf8mo8FkBmwQa1TtV1HAuEQlPPG2o1l5Z4iWQGw0QzcLNeUsbflmljwUW/JdlGvo95Mc71TGmLUm99wS3tyiFX3Rtd0VOotZCvDYKvWYY/U6BQGW8M+R6XHhKum5INg6wKwNR12EGDbibaqbEBoHYp0V8nbBmxJRrV1nXZezHBLZyz5sKT7MmjRHek39zqKfQG3iaekxchCFOvuxmNtlM9brJAPGy0Jw611GnpSkVCYlPf04LbtEJrg8ebHJ12Ryc+/IIvoVgIMWaysxoW6GmBbpmDDz5ItqBFsqZ4p2KjaopQbYEZgUg2aGBseKx7c6IauJVw9qBFs6xy4RRQbQLaRrmeFN+TAzOdl/+iXZHe9NwA3ZEVtxYb3sI3xNQdsBJxRbIQaIEYj1NROIglxGK7gPijY81OmyJ1Dh+TWnj1yHstjjuITvJB1bTj5D+E4EWpHLKhFwIYPCE5h5fgbGqGmYDNKDY9BuwgleBPlKzfQPXEDcb3b+Poe6tnuYWzSbag4Fokq2Ai1mwDYLc4JYx+jZ0Ue0AzU6Gp5Zi5OP6jxIi/JXeRF7Qer0sKLwfcfYiWBMZHXGAt29jHgMXHVqw02fMAQbjeRQDiK4575VTVZteOqrIRAWEED3Kje0j31Rsi5iQU3ucCyEFe9meSCn3rT5EIM9cbBlm5pyKRV96RaJ7iXbQG2jgBbZ4IN3Qd9jmD71CWZCkit2v0Q0DonzQC22r13YmoH3MjWBNtq1LItR8lHEkYYLZFuM9A8741FItzMaHIMtRyRzHhbEVTbDcTbLgOSZ6TduGMA5X75vvd2qdwhSz5rnoZ5botR+JuEIt40tG9tlDYTnyLcRi89Id37r5V+XZZIv3/5FxmMrdejsD/RgA0XvVFsLPnwwOYHt4g7Cngth7EVS61EsAFmHENOW1MS2OiGAmY0Qo22tcbrcnDJb+Vk5otyKfv3cmnzy3Jq2R9kd+c3ZXsFJA2+QvfBB38pDja8N0ItFtjYD3gCnQZXUFdGxXYtI0NO9+8vx5AdOwu1dgP1ZcdR0+QHtuMAGo1Q47DCKLABZGdh5zyoUanRLjIJAKDdP3pU7qMA+M6SJXITpSa38Fy3Ud92HaqMrqcv1FhE6lkxqDFG5CoVF2i2CooHCQLmcQFFd+6H2OM8rwIx3nuy37sf6Pm7VGxI4IQINsQ7b+McOAEAbviikqzefFpWYuOTCzdXvdlZ02JwY3LBR735TQ1h7C1u3ZtT1EvhUqd3PsC2w4DtW4Dtu277pUGfw6hluyATsHx55a6H0m36ebRMFUidPrukWmfUvmHCx8dNLLB9t0R6zLyAHlT0odpTe+GaMt42LOkeVNtt6Tv3mnTHY3WYcAJr/QpQ9LsLRb+b0c2QAcWWguGX87F/YQngli51B26SrtPz5O7du0/HLe0+rVCaVe8rbWoNNmAbga3X4597TqZi9d5ctFPFBZsXY1vmQS0W2GzVtgoAo622oBYTbMzUwrI8W+... [truncated message content] |