Merge lp:~dangarner/xibo/client-170alpha into lp:xibo/1.7

Proposed by Dan Garner
Status: Merged
Merged at revision: 338
Proposed branch: lp:~dangarner/xibo/client-170alpha
Merge into: lp:xibo/1.7
Diff against target: 31227 lines (+19569/-9973) (has conflicts)
105 files modified
client/dotNET/About.Designer.cs (+0/-129)
client/dotNET/About.cs (+0/-63)
client/dotNET/About.resx (+0/-1060)
client/dotNET/BlackList.cs (+0/-210)
client/dotNET/CacheManager.cs (+0/-387)
client/dotNET/Control/Region.cs (+653/-0)
client/dotNET/Control/XiboCefWebBrowser.cs (+115/-0)
client/dotNET/DataSetView.cs (+0/-235)
client/dotNET/Flash.cs (+0/-141)
client/dotNET/Forms/About.Designer.cs (+129/-0)
client/dotNET/Forms/About.cs (+63/-0)
client/dotNET/Forms/About.resx (+1060/-0)
client/dotNET/Forms/OptionForm.Designer.cs (+469/-0)
client/dotNET/Forms/OptionForm.cs (+286/-0)
client/dotNET/Forms/OptionForm.resx (+739/-0)
client/dotNET/HardwareKey.cs (+0/-175)
client/dotNET/Hashes.cs (+0/-124)
client/dotNET/Image.cs (+0/-88)
client/dotNET/KeyStore.cs (+0/-178)
client/dotNET/Log/ClientInfo.cs (+2/-2)
client/dotNET/Log/ClientInfoTraceListener.cs (+6/-6)
client/dotNET/Log/LogMessage.cs (+114/-0)
client/dotNET/Log/StatLog.cs (+333/-0)
client/dotNET/Log/XiboTraceListener.cs (+275/-0)
client/dotNET/LogMessage.cs (+0/-114)
client/dotNET/Logic/ApplicationSettings.cs (+177/-0)
client/dotNET/Logic/BlackList.cs (+210/-0)
client/dotNET/Logic/CacheManager.cs (+387/-0)
client/dotNET/Logic/HardwareKey.cs (+175/-0)
client/dotNET/Logic/Hashes.cs (+124/-0)
client/dotNET/Logic/KeyStore.cs (+178/-0)
client/dotNET/Logic/MediaOption.cs (+101/-0)
client/dotNET/Logic/RegionOptions.cs (+80/-0)
client/dotNET/Logic/RequiredFiles.cs (+448/-0)
client/dotNET/Logic/Schedule.cs (+305/-0)
client/dotNET/Logic/ScheduleManager.cs (+529/-0)
client/dotNET/Logic/ScreenShot.cs (+46/-0)
client/dotNET/MainForm.Designer.cs (+1/-1)
client/dotNET/MainForm.cs (+148/-24)
client/dotNET/Media.cs (+0/-239)
client/dotNET/Media/CefWebMedia.cs (+261/-0)
client/dotNET/Media/Flash.cs (+141/-0)
client/dotNET/Media/IeWebMedia.cs (+253/-0)
client/dotNET/Media/Image.cs (+94/-0)
client/dotNET/Media/Media.cs (+251/-0)
client/dotNET/Media/PowerPoint.cs (+123/-0)
client/dotNET/Media/ShellCommand.cs (+97/-0)
client/dotNET/Media/TemporaryFile.cs (+71/-0)
client/dotNET/Media/TemporaryHtml.cs (+108/-0)
client/dotNET/Media/Video.cs (+156/-0)
client/dotNET/Media/VideoDS.cs (+139/-0)
client/dotNET/Media/VideoPlayer.Designer.cs (+63/-0)
client/dotNET/Media/VideoPlayer.cs (+109/-0)
client/dotNET/Media/VideoPlayer.resx (+131/-0)
client/dotNET/MediaOption.cs (+0/-101)
client/dotNET/OptionForm.Designer.cs (+0/-1076)
client/dotNET/OptionForm.cs (+0/-334)
client/dotNET/OptionForm.resx (+0/-739)
client/dotNET/Program.cs (+113/-39)
client/dotNET/Properties/AssemblyInfo.cs (+4/-4)
client/dotNET/Properties/Resources.Designer.cs (+1/-1)
client/dotNET/Properties/Settings.Designer.cs (+3/-0)
client/dotNET/Properties/Settings.settings (+5/-1)
client/dotNET/Region.cs (+0/-645)
client/dotNET/RegionOptions.cs (+0/-79)
client/dotNET/Rss.cs (+0/-672)
client/dotNET/Schedule.cs (+0/-290)
client/dotNET/ScheduleManager.cs (+0/-512)
client/dotNET/Settings.cs (+0/-47)
client/dotNET/ShellCommand.cs (+0/-97)
client/dotNET/StatLog.cs (+0/-332)
client/dotNET/TemporaryFile.cs (+0/-71)
client/dotNET/TemporaryHtml.cs (+0/-108)
client/dotNET/Video.cs (+0/-156)
client/dotNET/VideoDS.cs (+0/-139)
client/dotNET/VideoPlayer.Designer.cs (+0/-63)
client/dotNET/VideoPlayer.cs (+0/-109)
client/dotNET/VideoPlayer.resx (+0/-131)
client/dotNET/Web References/xmds/Reference.cs (+174/-99)
client/dotNET/Web References/xmds/Reference.map (+1/-1)
client/dotNET/Web References/xmds/xmds.wsdl (+54/-27)
client/dotNET/WindowAnimator.cs (+0/-107)
client/dotNET/XiboClient.csproj (+76/-77)
client/dotNET/XiboTraceListener.cs (+0/-308)
client/dotNET/XmdsAgents/FileAgent.cs (+45/-13)
client/dotNET/XmdsAgents/LibraryAgent.cs (+3/-3)
client/dotNET/XmdsAgents/RegisterAgent.cs (+171/-0)
client/dotNET/XmdsAgents/RequiredFilesAgent.cs (+6/-6)
client/dotNET/XmdsAgents/ScheduleAgent.cs (+4/-4)
client/dotNET/app.config (+5/-0)
client/dotNET/bin/Release/DEFAULT/0.xml (+0/-33)
client/dotNET/bin/Release/XiboClient.exe.config (+0/-145)
client/dotNET/bin/Release/XiboClient.vshost.exe.config (+0/-145)
client/dotNET/bin/x86/Release/cef.log (+9429/-0)
client/dotNET/default.config.xml (+51/-0)
default.pot (+8/-0)
server/config/config.class.php (+12/-2)
server/install.php (+12/-0)
server/install/master/structure.sql (+10/-0)
server/lib/app/pdoconnect.class.php (+11/-1)
server/manual/content/admin/release_notes_1.6.2.php (+162/-76)
server/modules/preview/HtmlTemplateForGetResource.html (+4/-0)
server/modules/preview/html-preview.js (+12/-4)
server/modules/preview/xibo-text-render.js (+31/-0)
server/upgrade.php (+12/-0)
Text conflict in client/dotNET/MainForm.cs
Text conflict in client/dotNET/Properties/Settings.Designer.cs
Text conflict in client/dotNET/Properties/Settings.settings
Contents conflict in client/dotNET/RequiredFiles.cs
Contents conflict in client/dotNET/Text.cs
Contents conflict in client/dotNET/WebContent.cs
Conflict adding file client/dotNET/app.config.  Moved existing file to client/dotNET/app.config.moved.
Contents conflict in default.mo
Text conflict in default.pot
Text conflict in server/config/config.class.php
Text conflict in server/install.php
Text conflict in server/manual/content/admin/release_notes_1.6.2.php
Text conflict in server/modules/preview/HtmlTemplateForGetResource.html
Text conflict in server/modules/preview/html-preview.js
Text conflict in server/modules/preview/xibo-text-render.js
Text conflict in server/upgrade.php
To merge this branch: bzr merge lp:~dangarner/xibo/client-170alpha
Reviewer Review Type Date Requested Status
Xibo Maintainters Pending
Review via email: mp+235183@code.launchpad.net
To post a comment you must log in.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== added directory 'client/cefglue'
=== added file 'client/cefglue/Xilium.CefGlue.WindowsForms.dll'
0Binary files client/cefglue/Xilium.CefGlue.WindowsForms.dll 1970-01-01 00:00:00 +0000 and client/cefglue/Xilium.CefGlue.WindowsForms.dll 2014-09-18 17:08:39 +0000 differ0Binary files client/cefglue/Xilium.CefGlue.WindowsForms.dll 1970-01-01 00:00:00 +0000 and client/cefglue/Xilium.CefGlue.WindowsForms.dll 2014-09-18 17:08:39 +0000 differ
=== added file 'client/cefglue/Xilium.CefGlue.dll'
1Binary files client/cefglue/Xilium.CefGlue.dll 1970-01-01 00:00:00 +0000 and client/cefglue/Xilium.CefGlue.dll 2014-09-18 17:08:39 +0000 differ1Binary files client/cefglue/Xilium.CefGlue.dll 1970-01-01 00:00:00 +0000 and client/cefglue/Xilium.CefGlue.dll 2014-09-18 17:08:39 +0000 differ
=== removed file 'client/dotNET/About.Designer.cs'
--- client/dotNET/About.Designer.cs 2013-05-01 19:24:35 +0000
+++ client/dotNET/About.Designer.cs 1970-01-01 00:00:00 +0000
@@ -1,129 +0,0 @@
1namespace XiboClient
2{
3 partial class About
4 {
5 /// <summary>
6 /// Required designer variable.
7 /// </summary>
8 private System.ComponentModel.IContainer components = null;
9
10 /// <summary>
11 /// Clean up any resources being used.
12 /// </summary>
13 /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
14 protected override void Dispose(bool disposing)
15 {
16 if (disposing && (components != null))
17 {
18 components.Dispose();
19 }
20 base.Dispose(disposing);
21 }
22
23 #region Windows Form Designer generated code
24
25 /// <summary>
26 /// Required method for Designer support - do not modify
27 /// the contents of this method with the code editor.
28 /// </summary>
29 private void InitializeComponent()
30 {
31 System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(About));
32 this.pictureBox1 = new System.Windows.Forms.PictureBox();
33 this.buttonHelp = new System.Windows.Forms.Button();
34 this.richTextBox1 = new System.Windows.Forms.RichTextBox();
35 this.label1 = new System.Windows.Forms.Label();
36 this.label2 = new System.Windows.Forms.Label();
37 this.buttonClose = new System.Windows.Forms.Button();
38 ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
39 this.SuspendLayout();
40 //
41 // pictureBox1
42 //
43 this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image")));
44 this.pictureBox1.Location = new System.Drawing.Point(12, 6);
45 this.pictureBox1.Name = "pictureBox1";
46 this.pictureBox1.Size = new System.Drawing.Size(160, 82);
47 this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize;
48 this.pictureBox1.TabIndex = 0;
49 this.pictureBox1.TabStop = false;
50 //
51 // buttonHelp
52 //
53 this.buttonHelp.Location = new System.Drawing.Point(12, 277);
54 this.buttonHelp.Name = "buttonHelp";
55 this.buttonHelp.Size = new System.Drawing.Size(75, 23);
56 this.buttonHelp.TabIndex = 1;
57 this.buttonHelp.Text = "Online Help";
58 this.buttonHelp.UseVisualStyleBackColor = true;
59 this.buttonHelp.Click += new System.EventHandler(this.buttonHelp_Click);
60 //
61 // richTextBox1
62 //
63 this.richTextBox1.Location = new System.Drawing.Point(12, 97);
64 this.richTextBox1.Name = "richTextBox1";
65 this.richTextBox1.Size = new System.Drawing.Size(397, 174);
66 this.richTextBox1.TabIndex = 2;
67 this.richTextBox1.Text = resources.GetString("richTextBox1.Text");
68 this.richTextBox1.TextChanged += new System.EventHandler(this.richTextBox1_TextChanged);
69 //
70 // label1
71 //
72 this.label1.AutoSize = true;
73 this.label1.Location = new System.Drawing.Point(296, 9);
74 this.label1.Name = "label1";
75 this.label1.Size = new System.Drawing.Size(35, 13);
76 this.label1.TabIndex = 3;
77 this.label1.Text = "label1";
78 //
79 // label2
80 //
81 this.label2.AutoSize = true;
82 this.label2.Location = new System.Drawing.Point(296, 45);
83 this.label2.Name = "label2";
84 this.label2.Size = new System.Drawing.Size(35, 13);
85 this.label2.TabIndex = 4;
86 this.label2.Text = "label2";
87 //
88 // buttonClose
89 //
90 this.buttonClose.Location = new System.Drawing.Point(333, 276);
91 this.buttonClose.Name = "buttonClose";
92 this.buttonClose.Size = new System.Drawing.Size(75, 23);
93 this.buttonClose.TabIndex = 5;
94 this.buttonClose.Text = "Close";
95 this.buttonClose.UseVisualStyleBackColor = true;
96 this.buttonClose.Click += new System.EventHandler(this.buttonClose_Click);
97 //
98 // About
99 //
100 this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
101 this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
102 this.ClientSize = new System.Drawing.Size(421, 312);
103 this.Controls.Add(this.buttonClose);
104 this.Controls.Add(this.label2);
105 this.Controls.Add(this.label1);
106 this.Controls.Add(this.richTextBox1);
107 this.Controls.Add(this.buttonHelp);
108 this.Controls.Add(this.pictureBox1);
109 this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
110 this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
111 this.Name = "About";
112 this.Text = "About";
113 ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
114 this.ResumeLayout(false);
115 this.PerformLayout();
116
117 }
118
119 #endregion
120
121 private System.Windows.Forms.PictureBox pictureBox1;
122 private System.Windows.Forms.Button buttonHelp;
123 private System.Windows.Forms.RichTextBox richTextBox1;
124 private System.Windows.Forms.Label label1;
125 private System.Windows.Forms.Label label2;
126 private System.Windows.Forms.Button buttonClose;
127
128 }
129}
130\ No newline at end of file0\ No newline at end of file
1311
=== removed file 'client/dotNET/About.cs'
--- client/dotNET/About.cs 2014-02-09 15:08:13 +0000
+++ client/dotNET/About.cs 1970-01-01 00:00:00 +0000
@@ -1,63 +0,0 @@
1/*
2 * Xibo - Digitial Signage - http://www.xibo.org.uk
3 * Copyright (C) 2006-2014 Daniel Garner and James Packer
4 *
5 * This file is part of Xibo.
6 *
7 * Xibo is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU Affero General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * any later version.
11 *
12 * Xibo is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU Affero General Public License for more details.
16 *
17 * You should have received a copy of the GNU Affero General Public License
18 * along with Xibo. If not, see <http://www.gnu.org/licenses/>.
19 */
20using System;
21using System.Collections.Generic;
22using System.ComponentModel;
23using System.Data;
24using System.Drawing;
25using System.Text;
26using System.Windows.Forms;
27
28namespace XiboClient
29{
30 public partial class About : Form
31 {
32 public About()
33 {
34 InitializeComponent();
35
36 label1.Text = Application.ProductName;
37 label2.Text = Properties.Settings.Default.ClientVersion;
38 }
39
40 private void buttonHelp_Click(object sender, EventArgs e)
41 {
42 // open URL in separate instance of default browser
43 try
44 {
45 System.Diagnostics.Process.Start("http://xibo.org.uk/manual");
46 }
47 catch
48 {
49 MessageBox.Show("No web browser installed");
50 }
51 }
52
53 private void buttonClose_Click(object sender, EventArgs e)
54 {
55 this.Close();
56 }
57
58 private void richTextBox1_TextChanged(object sender, EventArgs e)
59 {
60
61 }
62 }
63}
64\ No newline at end of file0\ No newline at end of file
651
=== removed file 'client/dotNET/About.resx'
--- client/dotNET/About.resx 2014-02-09 15:08:13 +0000
+++ client/dotNET/About.resx 1970-01-01 00:00:00 +0000
@@ -1,1060 +0,0 @@
1<?xml version="1.0" encoding="utf-8"?>
2<root>
3 <!--
4 Microsoft ResX Schema
5
6 Version 2.0
7
8 The primary goals of this format is to allow a simple XML format
9 that is mostly human readable. The generation and parsing of the
10 various data types are done through the TypeConverter classes
11 associated with the data types.
12
13 Example:
14
15 ... ado.net/XML headers & schema ...
16 <resheader name="resmimetype">text/microsoft-resx</resheader>
17 <resheader name="version">2.0</resheader>
18 <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
19 <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
20 <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
21 <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
22 <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
23 <value>[base64 mime encoded serialized .NET Framework object]</value>
24 </data>
25 <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
26 <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
27 <comment>This is a comment</comment>
28 </data>
29
30 There are any number of "resheader" rows that contain simple
31 name/value pairs.
32
33 Each data row contains a name, and value. The row also contains a
34 type or mimetype. Type corresponds to a .NET class that support
35 text/value conversion through the TypeConverter architecture.
36 Classes that don't support this are serialized and stored with the
37 mimetype set.
38
39 The mimetype is used for serialized objects, and tells the
40 ResXResourceReader how to depersist the object. This is currently not
41 extensible. For a given mimetype the value must be set accordingly:
42
43 Note - application/x-microsoft.net.object.binary.base64 is the format
44 that the ResXResourceWriter will generate, however the reader can
45 read any of the formats listed below.
46
47 mimetype: application/x-microsoft.net.object.binary.base64
48 value : The object must be serialized with
49 : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
50 : and then encoded with base64 encoding.
51
52 mimetype: application/x-microsoft.net.object.soap.base64
53 value : The object must be serialized with
54 : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
55 : and then encoded with base64 encoding.
56
57 mimetype: application/x-microsoft.net.object.bytearray.base64
58 value : The object must be serialized into a byte array
59 : using a System.ComponentModel.TypeConverter
60 : and then encoded with base64 encoding.
61 -->
62 <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
63 <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
64 <xsd:element name="root" msdata:IsDataSet="true">
65 <xsd:complexType>
66 <xsd:choice maxOccurs="unbounded">
67 <xsd:element name="metadata">
68 <xsd:complexType>
69 <xsd:sequence>
70 <xsd:element name="value" type="xsd:string" minOccurs="0" />
71 </xsd:sequence>
72 <xsd:attribute name="name" use="required" type="xsd:string" />
73 <xsd:attribute name="type" type="xsd:string" />
74 <xsd:attribute name="mimetype" type="xsd:string" />
75 <xsd:attribute ref="xml:space" />
76 </xsd:complexType>
77 </xsd:element>
78 <xsd:element name="assembly">
79 <xsd:complexType>
80 <xsd:attribute name="alias" type="xsd:string" />
81 <xsd:attribute name="name" type="xsd:string" />
82 </xsd:complexType>
83 </xsd:element>
84 <xsd:element name="data">
85 <xsd:complexType>
86 <xsd:sequence>
87 <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
88 <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
89 </xsd:sequence>
90 <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
91 <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
92 <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
93 <xsd:attribute ref="xml:space" />
94 </xsd:complexType>
95 </xsd:element>
96 <xsd:element name="resheader">
97 <xsd:complexType>
98 <xsd:sequence>
99 <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
100 </xsd:sequence>
101 <xsd:attribute name="name" type="xsd:string" use="required" />
102 </xsd:complexType>
103 </xsd:element>
104 </xsd:choice>
105 </xsd:complexType>
106 </xsd:element>
107 </xsd:schema>
108 <resheader name="resmimetype">
109 <value>text/microsoft-resx</value>
110 </resheader>
111 <resheader name="version">
112 <value>2.0</value>
113 </resheader>
114 <resheader name="reader">
115 <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
116 </resheader>
117 <resheader name="writer">
118 <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
119 </resheader>
120 <assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
121 <data name="pictureBox1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
122 <value>
123 iVBORw0KGgoAAAANSUhEUgAAAKAAAABSCAYAAADTld8/AAAABGdBTUEAALGOfPtRkwAAACBjSFJNAACH
124 DwAAjA8AAP1SAACBQAAAfXkAAOmLAAA85QAAGcxzPIV3AAAKOWlDQ1BQaG90b3Nob3AgSUNDIHByb2Zp
125 bGUAAEjHnZZ3VFTXFofPvXd6oc0wAlKG3rvAANJ7k15FYZgZYCgDDjM0sSGiAhFFRJoiSFDEgNFQJFZE
126 sRAUVLAHJAgoMRhFVCxvRtaLrqy89/Ly++Osb+2z97n77L3PWhcAkqcvl5cGSwGQyhPwgzyc6RGRUXTs
127 AIABHmCAKQBMVka6X7B7CBDJy82FniFyAl8EAfB6WLwCcNPQM4BOB/+fpFnpfIHomAARm7M5GSwRF4g4
128 JUuQLrbPipgalyxmGCVmvihBEcuJOWGRDT77LLKjmNmpPLaIxTmns1PZYu4V8bZMIUfEiK+ICzO5nCwR
129 3xKxRoowlSviN+LYVA4zAwAUSWwXcFiJIjYRMYkfEuQi4uUA4EgJX3HcVyzgZAvEl3JJS8/hcxMSBXQd
130 li7d1NqaQffkZKVwBALDACYrmcln013SUtOZvBwAFu/8WTLi2tJFRbY0tba0NDQzMv2qUP91829K3NtF
131 ehn4uWcQrf+L7a/80hoAYMyJarPziy2uCoDOLQDI3fti0zgAgKSobx3Xv7oPTTwviQJBuo2xcVZWlhGX
132 wzISF/QP/U+Hv6GvvmckPu6P8tBdOfFMYYqALq4bKy0lTcinZ6QzWRy64Z+H+B8H/nUeBkGceA6fwxNF
133 hImmjMtLELWbx+YKuGk8Opf3n5r4D8P+pMW5FonS+BFQY4yA1HUqQH7tBygKESDR+8Vd/6NvvvgwIH55
134 4SqTi3P/7zf9Z8Gl4iWDm/A5ziUohM4S8jMX98TPEqABAUgCKpAHykAd6ABDYAasgC1wBG7AG/iDEBAJ
135 VgMWSASpgA+yQB7YBApBMdgJ9oBqUAcaQTNoBcdBJzgFzoNL4Bq4AW6D+2AUTIBnYBa8BgsQBGEhMkSB
136 5CEVSBPSh8wgBmQPuUG+UBAUCcVCCRAPEkJ50GaoGCqDqqF6qBn6HjoJnYeuQIPQXWgMmoZ+h97BCEyC
137 qbASrAUbwwzYCfaBQ+BVcAK8Bs6FC+AdcCXcAB+FO+Dz8DX4NjwKP4PnEIAQERqiihgiDMQF8UeikHiE
138 j6xHipAKpAFpRbqRPuQmMorMIG9RGBQFRUcZomxRnqhQFAu1BrUeVYKqRh1GdaB6UTdRY6hZ1Ec0Ga2I
139 1kfboL3QEegEdBa6EF2BbkK3oy+ib6Mn0K8xGAwNo42xwnhiIjFJmLWYEsw+TBvmHGYQM46Zw2Kx8lh9
140 rB3WH8vECrCF2CrsUexZ7BB2AvsGR8Sp4Mxw7rgoHA+Xj6vAHcGdwQ3hJnELeCm8Jt4G749n43PwpfhG
141 fDf+On4Cv0CQJmgT7AghhCTCJkIloZVwkfCA8JJIJKoRrYmBRC5xI7GSeIx4mThGfEuSIemRXEjRJCFp
142 B+kQ6RzpLuklmUzWIjuSo8gC8g5yM/kC+RH5jQRFwkjCS4ItsUGiRqJDYkjiuSReUlPSSXK1ZK5kheQJ
143 yeuSM1J4KS0pFymm1HqpGqmTUiNSc9IUaVNpf+lU6RLpI9JXpKdksDJaMm4ybJkCmYMyF2TGKQhFneJC
144 YVE2UxopFykTVAxVm+pFTaIWU7+jDlBnZWVkl8mGyWbL1sielh2lITQtmhcthVZKO04bpr1borTEaQln
145 yfYlrUuGlszLLZVzlOPIFcm1yd2WeydPl3eTT5bfJd8p/1ABpaCnEKiQpbBf4aLCzFLqUtulrKVFS48v
146 vacIK+opBimuVTyo2K84p6Ss5KGUrlSldEFpRpmm7KicpFyufEZ5WoWiYq/CVSlXOavylC5Ld6Kn0Cvp
147 vfRZVUVVT1Whar3qgOqCmrZaqFq+WpvaQ3WCOkM9Xr1cvUd9VkNFw08jT6NF454mXpOhmai5V7NPc15L
148 Wytca6tWp9aUtpy2l3audov2Ax2yjoPOGp0GnVu6GF2GbrLuPt0berCehV6iXo3edX1Y31Kfq79Pf9AA
149 bWBtwDNoMBgxJBk6GWYathiOGdGMfI3yjTqNnhtrGEcZ7zLuM/5oYmGSYtJoct9UxtTbNN+02/R3Mz0z
150 llmN2S1zsrm7+QbzLvMXy/SXcZbtX3bHgmLhZ7HVosfig6WVJd+y1XLaSsMq1qrWaoRBZQQwShiXrdHW
151 ztYbrE9Zv7WxtBHYHLf5zdbQNtn2iO3Ucu3lnOWNy8ft1OyYdvV2o/Z0+1j7A/ajDqoOTIcGh8eO6o5s
152 xybHSSddpySno07PnU2c+c7tzvMuNi7rXM65Iq4erkWuA24ybqFu1W6P3NXcE9xb3Gc9LDzWepzzRHv6
153 eO7yHPFS8mJ5NXvNelt5r/Pu9SH5BPtU+zz21fPl+3b7wX7efrv9HqzQXMFb0ekP/L38d/s/DNAOWBPw
154 YyAmMCCwJvBJkGlQXlBfMCU4JvhI8OsQ55DSkPuhOqHC0J4wybDosOaw+XDX8LLw0QjjiHUR1yIVIrmR
155 XVHYqLCopqi5lW4r96yciLaILoweXqW9KnvVldUKq1NWn46RjGHGnIhFx4bHHol9z/RnNjDn4rziauNm
156 WS6svaxnbEd2OXuaY8cp40zG28WXxU8l2CXsTphOdEisSJzhunCruS+SPJPqkuaT/ZMPJX9KCU9pS8Wl
157 xqae5Mnwknm9acpp2WmD6frphemja2zW7Fkzy/fhN2VAGasyugRU0c9Uv1BHuEU4lmmfWZP5Jiss60S2
158 dDYvuz9HL2d7zmSue+63a1FrWWt78lTzNuWNrXNaV78eWh+3vmeD+oaCDRMbPTYe3kTYlLzpp3yT/LL8
159 V5vDN3cXKBVsLBjf4rGlpVCikF84stV2a9021DbutoHt5turtn8sYhddLTYprih+X8IqufqN6TeV33za
160 Eb9joNSydP9OzE7ezuFdDrsOl0mX5ZaN7/bb3VFOLy8qf7UnZs+VimUVdXsJe4V7Ryt9K7uqNKp2Vr2v
161 Tqy+XeNc01arWLu9dn4fe9/Qfsf9rXVKdcV17w5wD9yp96jvaNBqqDiIOZh58EljWGPft4xvm5sUmoqb
162 PhziHRo9HHS4t9mqufmI4pHSFrhF2DJ9NProje9cv+tqNWytb6O1FR8Dx4THnn4f+/3wcZ/jPScYJ1p/
163 0Pyhtp3SXtQBdeR0zHYmdo52RXYNnvQ+2dNt293+o9GPh06pnqo5LXu69AzhTMGZT2dzz86dSz83cz7h
164 /HhPTM/9CxEXbvUG9g5c9Ll4+ZL7pQt9Tn1nL9tdPnXF5srJq4yrndcsr3X0W/S3/2TxU/uA5UDHdavr
165 XTesb3QPLh88M+QwdP6m681Lt7xuXbu94vbgcOjwnZHokdE77DtTd1PuvriXeW/h/sYH6AdFD6UeVjxS
166 fNTws+7PbaOWo6fHXMf6Hwc/vj/OGn/2S8Yv7ycKnpCfVEyqTDZPmU2dmnafvvF05dOJZ+nPFmYKf5X+
167 tfa5zvMffnP8rX82YnbiBf/Fp99LXsq/PPRq2aueuYC5R69TXy/MF72Rf3P4LeNt37vwd5MLWe+x7ys/
168 6H7o/ujz8cGn1E+f/gUDmPP8usTo0wAAAAlwSFlzAAALEAAACxABrSO9dQAAABp0RVh0U29mdHdhcmUA
169 UGFpbnQuTkVUIHYzLjUuMTAw9HKhAAA+J0lEQVR4Xu2dd3hURffHg6B0COmh9xZKqNIJ6aQ3AgRCF0RU
170 9EVRAZFeEtIhEFBREAVEUCkCAUIKHVSqWPAFFBR9/VlRrPd3Pjc7y93NBkgI6B/O83yf3bs7d+bMnO+c
171 c6bcXbt/0z8ylTPhHkF5QQUT7jW85zuV7+9Kqn4lI/Ip/JPk/DfdYjIqFCVWElQT1BTYC2qZXqsLqggq
172 CoxKvluJuqiTupEBWWoIkM3BBKOc9wnIq9pX+nRm/Pi/HWcfHGf33iOP2U1+OcfukVcP2k1cs/+uYcIr
173 ++1e3pprl793j11OTtlBklGplYODg1zXrVv7+K5d2dn5+XkfFxQUnN+zZ/fxTZs2rkpMTBggedwFKBqC
174 QgJIW85W2WUJ6jDVRZ3VVqxYHrJ9+zuvI+Phw4e+O3jwwP+Qc926dWnx8fGdJI+LADJCRAbV7Q0WW4S4
175 2/i7CbiqjAkoSZEPBVV5/vkVoXv35pySpH388cfauXPnzPjwww+19957T3vjjQ2b2rVr11byuwtQMNZS
176 tzK26igLULZAJ1/Dhg0d3n777az33ntX++ijjyxk/OSTT7QPPvhAE1JeSUhY+IjkbyBwEjBYsIalJ6Et
177 Qtxt/L0EPGD34pZcu4Jc20oqDSShDMhTZdmypcGHDh36GeJ9+umnukJ5/e9//2txjYK3bNl8yNOzfTe5
178 r55AkfCOWELKFEAcnXzbtm3dfPr0KbNMxeHYsaPa/Pnznpb7mgmwhpCQgfYvAUuDh1YfsEt/K18IuNum
179 okoKScqqVGrbtq27uK/TRqsH8S5evKh99tln+ivXfI7isZAvv/zS23JvO0FdAbEirvEeW3XdDiQhJ8Sp
180 vmrVqoknTpzQZQDnz5+3gHGwgJycnP+1bt3aV+5tKsAS4o71gSIoWbJFiLuNv5OAD4sLnvF6gV2uuOC9
181 NhRVUkhSiq2xfHnWGBRrTb5Lly5ply9f1l+tSXjkyJE/oqOjRsv9HgI3QVVBmbtiSRCmcocOHerk5eV+
182 rGSEcJ9//rkuG2CgcK3kRMbTp89gBZfL/Z0FuGOsNa74XwKWFI+aXjfu3FsmcaAklIDrdHrrrTc3qnhK
183 kQ9lfvHFF9qVK1f0V6NyyXf27FktJSV5g9zfQ9BYwEwZK1hmBKQsAaSuMWfO7PDjx983Wz81QL788ksz
184 kJPPLly4oMtITLhx4xtn5H6sYGsBrriyAJdesmSLEHcbfycBARORhI0FZRIHSsKyYLVq79ix4xjKQrEo
185 DyUq8n399ddmEhqV+/HHn2ivvrrmhNzfX8CkBCuIiyszNywJAkJqx6ysZU+fPn1arxs5sXhYZyXjV199
186 pZNQyUge8sps/n9yf7QAK0i4wBINbS9ZskWIu42/m4BYwccEb2XfvhWUhGVBGQ2EgMcVAbEsKBZlotj/
187 /e9/ZuXyOd+Tj/wbNmz4VO5naaaLgAmJrlxb9ZUGkiAgFstVCDjvgw/O6HVjhY0EREZkRUYsNe4Z8gGJ
188 bb+T+4cJegmw1MSrtL1kyRYh7jb+bgICrOD8Nwrs8m4zFpSEEoiJGoub2q1mv1gPlKhIaCSfUbnkX716
189 1Ydyf7ygp6CRQFeurfpKA0kQEKtaOzExcQoW0BYBkRGoUMFIwM2bN1+R+8cI+gmYERMqEPuWLNkixN3G
190 P4GA4OFXDtiteSfXbt9tuGJJZgImJyclnjlTqFxFQqVgRT6uja6NGHDmzBl5cv8IQW/KMZVXlgQkVoOA
191 deLiBsccO3bsTyUj8uBukQ1APl4hoIpTiWvT09Pel/sfEHgLmgtYRP+XgLcDZsTPrNtnl70np9SuWJIe
192 3Asa9unTO3TfvoKrilyKhCgTJfNqJB+v7777rtavn1eW3H9XLGDFihU7bd265SyuHxmwcoQDENEIFSKA
193 48ePa5GRka/K/aMEfQUsx+iDRFCyZIsQdxv/FAICXPHM1/fZ7c7J0d2xLQXeCJIIxFmcJTDvLLPM5SdO
194 HLcgGUqGeLwaP8cVJiUtOi33TRYQA3YV3KkYkJk6s9c248ePf4YFZuRQsgAsnoL6DAu9fHnWf8uVKzdV
195 7o0TdBewFMOg+5eAZYGHhISzNxTY7SkFCSXh3gjwUS5LFP4SZ21li8uoXGBUOIvQGRnp56pXr75Q7hkv
196 uNOzYNbtcJvEb32mTZv2krjiv5RM1kDGM2fOaK+88sqVunXrpMs9bMmFCjwF7gJm/v/OgssKD63eb7dw
197 Y+ECNbClSFuQpJSLS2oouF8QNXHio6uzs3d+B9HY/yWOAij10KGDf4ilPC3ucJHk/Y9goECtA0KSO7UO
198 iGXFUncQhD766CMv7d69+0csMbLhlpkUYfXYr05JSTlXq1YtyPekAOtHjAqBHQW6jIKSJVuEuNv4JxIQ
199 PCSTEtYHUdqtWkJJKAFLgNXCCrYQoKjYOnXqPDVq1KgN8+bNPSbW7qOEhIVnJkyYkN+hQ4fV8v0cAeQb
200 IiCwv9M7IVhq3DDkIYaD8NHNmjV9+rHHJm5JT08/LbPxz5cvX37+2Wenvefl5cXi+HwB5GP5xU+Aha4t
201 gMi6jIKSJVuEuNv4pxIQKHe8WyYmBSUjob7PKnAX4IohYaSAbbbHBVME0wXTBE8IxgmI+yDf3doLhjQQ
202 3FXQUsCkJ0KAjAwGZJsheE7wlOAhwWAB5MP11hdg6XUZBSVPtghxt/FPJiBgYvLs+n12G3YULlTfzBpK
203 QrkoBMUQnLsLWKpgYdlHEC4YJMDaodAoQYAAKwRZIR+KvRunYQgXGChYW9wpMrLFxmDBzWLthgoYHEEC
204 Fp7bCCAfa3/Eu6WzfiRbhLjb+KcTELBEw44JceGmnXv1bbsbxYaSUAjkgYQo2FnAbBFLQ8xFbAjhOH7F
205 QU9cLjEf1gjLB/nK3PUaQdkCIwmVjK0EHQXMcCEclpEZOZYZd+0uYICUmHxktIAtQtwJWNcL1Hd3moDW
206 9QJb+W4GCIhL5n3am/l2O2/ilk11oWDcMTEhxELJxE1YEJQNsHjEiygVlwhpUSz3qjLUezNs1WkLVvep
207 soxgoEBCZEQGZKkjQDYGBWuRLAdhJY2ntm+JfKpiKuEGKuJmXukYc0ONhCkLUKYJxroVuNbdCyiOgOp7
208 I4zfFwdD/pu229b9N4JORJklP/nafruVW/Ps8m9gDSnfBOSgXiwbisbiKEA6rAnyKdl45ZrPya+g8pj7
209 zla9QH0vUHVzL2VQH+A98ih9qH6iTr5HNgYNYQTvVf3mvhPcMBkrr5IZHNZq08DBgS+GR/aRa5hM4apQ
210 vUG2iFQaUJapTL3uleGRHtS9yD+wvVwTO9Ao6qbBet2KgLw3gc9VpyhwzefFkofPTXn0umOnLfYcvnB1
211 /9ipGX3uq1SFWV+Rdtsq52Z4RKwh8WHypnyZpOy54e4JdRigrI4R6jNkrtSrVy/H559fEfb66+unbdjw
212 +qwVK5aPHD58GLEXB0CV/OTV+6GY+viO/qo8fvz4emvWvDJq06ZNyW++uSlj5coXHx49ejQTCWN5xv4F
213 vFdQMqo23DQpAe7zcHaueXjUiKXn4n1//GxwZ+3CkF5/Hhk5ZPdAjzbEIkViDluEKgkoQ4DAKLj64VEj
214 Uz4d5qfXfS7e+6fDI4ZsGeTRhngCd8TIMhPBBN7r5AmdOKfpkNnPe0dOWsixH4h7Q/JwLdDbXbdVR/ux
215 y3cuCcg69HP3zCOa17LDf8Yv332gY/+BxDe4GYu6jeWUBFhDJimcKSztkS7qF+htzspaFpibu/c4W14c
216 1T979gPt1KmT2oED+79+8cUX5kkeXGORvrMqiz6gvKqrVq2Ky8/PP6/WIAHH76W8b7KyspiJEw6UzTMe
217 hkQBEKrqnvhhT3w+uKP2dbij9lWEi7w6aV8MaK7tGxaXe+895Zl14e/VdFpvjC1i3Sok6QQQVN8zbPi0
218 zwZ30ev8KsJZf708oIW2bVDs8/I9AS1EMD5XwL0Vm3bu6zg2a3tKyIoD3/RcekTzXXbo2vBl2dmdgger
219 J7OwoEXIw3uB3u4H0jc91lvudVl0TKuddExzk9eWaUe1+JQ31sn3zEqJaVAispaagABL+Nir++1Wb8st
220 ze6JkrlKenpav4MHD/xYeIyrcBuMLTu1HcYJ65dffmmF5LWWXyeNoTydfM8//3zc0aNHfj937vpzKEa8
221 //77WmpqyizJa0sXt5UoAAU5vD8iNv+rSDftSqS7oLaOr4QIECOjf/BcycOCIoEwStWVYYtYtwLuFdCZ
222 1VICg3qfGx74y9dCPFUvMnwlyI2LxNcyszKu9kMmGl9t7NJtc7uJ1YI07ibytBDyDM98Z2/5CvcyS3MX
223 KBLeo4ggydzuYVm7susnH9PqCXgFEDF6ya4L4oqZ3bHsgCUh5jGXUVrgkpktv2FarrEmWnGgbkElT8/2
224 btnZOw+rI1wQhoMAxkMLfHbs2DHtqacmT5J7mFHjwSCN7r1MoB8rDx8+vKlYvq/ZSuM+DhQAygKKkJLn
225 O09PT5aB6I/be8bDkGgUBbkeGRa790pkHV3514kgJIxw1U7Fh3zbp0FDTrYWWXm3RbAbgXtM91apU72G
226 2/sjBx/5MqqeZb0RbtqX0Q2116PCdks+FjRVvSqmqdzOO7x+9Ip9l92TjgpprsNt0VHNO+vwX/eHDxsu
227 +VTnm+WFBJLoOD5zH7gs53gdqzJqSxnBi/d+a+9aN0byEIIw8LAiFawJVRowS06RGfKtumJJqs+qiyWK
228 4TSMkXzq6JY6kcznbJO98cYbHIdiGaeJQG2F6VZQQD/WlDjvP7hdyoN4xuNVgPIpD3c8deoUtgHVMx6E
229 ObdtBVEEI6Pu6ojImZcGttPdryUB3bQvYhprWwfG5Es+476eeQHUFtFsgbwC3X0Kau0dNnz5pYFtbNTp
230 rJ0f2vuvWI82SZIvTAAJCAEgDfdW7zvk4fv9lh341S1RSAOBTIA8nTMOa94j/sO2FdaTziJ00DsLAkhC
231 mVjGBjFLdp+uI/dYl9F/8d4farnX5ywbVhAF6mVYk6k0eETA7HjH7ls7yCCJftMttrjWWRDGSD51NN5I
232 QghVUJD/Q6NGDWPlPiZ1LOvQf8pqoT+nTZs2vgpZFQEhHwdMVXmKgORZtmwpBoFFcgY2XoEyyoaAbVxc
233 +5wcFvoNyjeSQRHi4pCeWqJ//zTJaxwBJXLF5BVAhOrrBgwceT7eSy/bsi5X7XJsS+3VyAgeaHlMwI4A
234 BFQdiCLsm3bq3TYsq+AbawJiAfsuPayJhWRryEtAHGTeCIcAkiAghGoqrvaMNQHd5Towfc9PNV1qUz8r
235 /nQ4ZdxnTabSgj3kpW/n3dLBVkn0GyGAi8x05ysC4naNhIGIEFIRUCYQ1zw8PNgawwqazwwKlOdz37jx
236 jbchlyI0pKMsQNmQUhFw+fKsQ3IP+lCnWyiDskqdlCAot8Oy4JAVnw3uVMQiqZjs5LCwb7vVrcf2kHo6
237 3+zabBHOCPKY8lYZ3aFTizMjoj6zjjlVPfvjwr5vUsshQ/JOELC1Q324UmTVCShoEpewdr1n+hHNNUGs
238 lhDRVdAo+Yg2YNGGCxWrVHtQ8ijyELMYCcgggFAtIjOyP6ideESrt+g63OQ6IH33TzWd3Tlzx5EnQgBG
239 fEVrIpUWJXnGRBJ9pxNmxowZD3HqBFJANCweRFHkUxYLAu7alf2dg4MDnc9AxHOpI/HK8NQTF/z8hx+e
240 NROQsiAh5RkJyEz7mWee2SL3GJ9DoQzKKnWiYZhRZjatK997b+CWgQPe/SKmqW6JjCTkGle8OdamK9bj
241 ClvEA3wnQFDyOh4cEf+m7TqctU+H9v0rpHmLjZKPTW72GDlNS11qEoLVhYCNHes28h40b9Vun8wDv3dM
242 P6z1XHJIi0pYf6l287bEKhxX51kETppYW0DK4LOWkRk7z96AgDzdHyxgANBH5jLKAupgK8+X5FqRzgjq
243 FOgEbNy4Ufft27edUw8yMfvFElqTj2WZtLS043KP9ZF42o4uiGnrjxs3duTRo0fNhKYMQJlAza4PHz70
244 Z6dOnQiJcOnqEGyZEFApFBPdo5mD4+h3h4b+H7GfkRyKIBeH9NCm9O47W/LiilkbIpbS4ytb5AOSICj1
245 1Nw0cPBjn8V11cuyLNtFuxTroS308XlP8nGkB9cRIlDxnz4JMIH3TAz4LqRZV6/pXcOHvdSqV8CKCvfe
246 96x8xr1s3rOXynk7PX4TWBOwVbEETNt11URAZLgjBASsD6aaJiTFPehEnQJcMF6gTXx8/GOHDh36A6Ip
247 EhqXYSDntm3bfmzRokWK5GcgsqnAEorRAuK96MNOEtu9zfk+dT/gvQLPrMyaNeuo5GVWzQEE1khVTH5b
248 LlhZJkYXjcPV+D/Tq0/WxcFFSVLoLt21w/GRl5yqVMEykF+5RpuumM9M31VL9A/s9eHIiG+tLV9huXW0
249 vMHh39WoWFEdZuTAJRvcTACU9aOxyIsycKtYRuIbJio8H8ERIWa/kA/LyVKMxawdpUuyJGCCEA8SmuAm
250 1yYCPiN5ICAL4neEgABLmLU5T3fFtkhInaa6kZk29508+ckVBw4c+JUFY3UamVcOhmZnZ//s6+v7muSD
251 MOrYPnE7xoJ+oB8VoT2qV68e/Morq98ntlTPfSgis7jNeb+qVauyuD1W4M89AvqDMpDtthIF6NZJgEXD
252 skW8GRP57pcxjYSERV3xpdjW2tqoaOIBZoiMLCNBzCTkvUAnTCsn59rvj4o7xvLKFT32M5bpon04LPCP
253 wKbNcL1YsJECZltFCG4C8mIFIReuBZkhHPcQ72D5IB+jlHbpsimFSzIQcIcQ8LAQ7zrc5PpuEpB4EBJm
254 vJVvk4TUKaD9Fpbf29t7ZmJiwr4NGzZc3rJl87evvfbql9OnP/uuWD4eWMJ6Y/3UMpbqR/RBebQFi8ga
255 a/eKFSsOnDRp0rq1a187L7Hjj9nZO3+S+PDzBx54YE+FChUg36MClqU4mcM9eBX6kbJuK1EAQunxmYAR
256 1rudq9tDx+PDvmdSYDlRKCQMM9ipvfuyOs6ug1ons3DFkiAkDbXPiY9Ptb3k4qKx/fZI1248ZsiCt9H1
257 WpT79EtmZSAv5fIdxGB0IzcTDghJOAE5IR/tMls/IOk6AdN3nHVfeFirm3AdrnIdkFpyAvKdEbbyFAd1
258 iuYGJKQvlY7wCgwyLD9Wf5IQaKa8og8GMIdZ8QRMoNCPWopCft1ICOgTYjj6iZ0uBi5eZ4JMXGbUqlVr
259 gbynPA7FohNiP/IwsCGz2asIbjspgSjUXUDM4z+1j1fWhaF9hCRFXTEz2CPxUZfFFdNIGoCCrC0VxKme
260 1j/E79Nhfr8XLYcF5wbaxuiwzyUfAa5yGZwxY5QxQs2d9tDaI7qyeC+gHkVClEKnIDsdinvG3eAidHmM
261 ypZ0YwIuKJaAEEC1DTAQKJ92IgsgD1DXfEceZXl0GOUxAhIuE3fM8oyRhKb7KAcdIQsDjtkoLhHLxIQN
262 z0EowqYBn+N6GZD0CwTkXvoE+dAVfUdfQVDaiBdhmYVDsJQFOHDKg0VMPLGkrJjQt/QheimzRAMp1MIV
263 r4kMy2NP2LYr9tBWhoWvl3zEYUbCKMVU6VKnTt3jIwe9fyWqrtxX1JKeHBLwq1jbVZKXR/joRGauWDIL
264 QivyAa4FygpWlVmvi++oJzx7xIxWAwFy0bl0tH6/UcmSrAh4SIh3Ha4LDtkioDEUgFSUjQWp2bZfWF2v
265 oY+0DBj7TAe/0U926BY5olWTjr3U5j3hCX2K8rmHe81kNMoFsIRs1WW+nacvUmMNeTXlR+HITr0sC0Ec
266 SAERIQgWChA7oz+P8vfe26xFN+/W0jeefmMmd6af7g8f1rJhu67MYtWgRVYITTuxrJSFHigL3eKN+J68
267 KqRRbSizpJRKJ6Ec3RXXrVFz1OGh4V/ZdsXO2ifxPr8Nadf+YclrdJkIyEhz2D9y5DpiRluu92JcN+3B
268 zl1yJB+mnucdsKZq1Z5yUFa5B9cfs1CSJBTBd1XGLn5rfOzy/A98M/df7b90/7cjlm7f2MizO6O+yEkQ
269 w/2WBBTC1YWEJrjOL0JAJRMjv2qnoEF1RiSuGTIyc9vzA5flHA1bVnApIHP/DyLDz34iR2Dm/u8jluZ9
270 Nihz16FhaW8+P2jGsjEmmRgcWCKIjAwWcikoEvKTcHM3FNjNMYG8AnPbBZQFKZjpM2jbVqxSraP/mKeG
271 D1m4ZvGQxe9kR2fuORuyrOAr/8z9Pyr56KeIZXkXBmfuOhCfsvHFAdMWPyqDSFk4jnPhAXlPmRgW9Mpg
272 suhPQZknClVmHleGMP6jO3ZKvDC0t344wUginZBi2fbFx34qRGXBWMUHjJJaG2MHP3xxSHedqMb7sJ6X
273 B7QS6xn6ieRLELDjYL1sQkN11ztxzQGzcrgW6NZ1ZNLagX5LD2puQiAXIY2zwCP5kDYsecMr8r06uWEm
274 sqGMWyJgDSc34h/iLOKoRmLVGo3L3DwvJivvfNf0g1qTxENabfLL/dyDDID3yFRHvmuy6JDWRfLGLMu9
275 MDxh9fwqNWoRv6k+MocIQMmnAAmZnBhhyku/cB/3U46LS4NmzaQ/Fg5etueDXhkHtRZJh7R6Ur+bSR4l
276 m1HG2iIjbeiYelALzsz/bkT6m5u9hjxMrAf56D+sJH1IHRCeftR1IrhjicJREKMdATDl4a9HRx5ki6yo
277 K3bRPh/UUVsZHrFW8mGusZx1xSp2+GBExBeF64lGy2na7Rgc9r1r1WrLJC+zNWIO1qqwEow0OlYfZUbX
278 C/hMADntxdqtqy8u00ggOjdiyZ7L1Wo5qRm6Ks/2LFgIqMiiQBn+WECX2gT0DIwe0U+nPj54ee7ZTqIs
279 lEoe6q1zA6Bg8pCXe+4XIg7J3PGu9/DHWUvDfSIDgx15TIPteluLA/kEEBBvVTNuZlb0kKy9x7ukHZR6
280 D2ou85DxoNRfeF0c+N5d8rkKuKfFooNa0NJ914YuWvtKvdYdMQbIWMSTCO5oogI6gwrpIJTYiwXqfUOi
281 Ll+JsnViBlfs+9ugNu14Ep4JRLt9w+J2fhnT2AZhzbsdb0k+Hufj15MImDH7uBPiG90qTHxV3NGr162f
282 qfORjdHoKi5uP51o7Gg6MjAj90fXRi2Y0RnDAvNJFkmWBBQFGBVDGRDwvspVnxUMi5u/+q1eiw+YlWXM
283 y2fcz+egOMXzGeXWW3hQC11W8GPk5EU8wshgxRoqBd+UhHwvgAgVHes2chi3bGuS75L9f1CHSzF125RR
284 YJ2Pz51FxlZJBzXp248lrmVCiEdiEDNQ7ooFJKkRpitagEn2DW/ZarrEfDZms4WuODcump8Mi1gaHJrK
285 0kpR1+uiXZZ4cKGPD8eEmOZDWGZdWFkCYUw95Cj3QsILdg+uO2pLAciFwuoPWJL9Pp1r7ESUHJCRe9Wp
286 XhNiSnWSRd8BMJRxUwL6Jm3/0aVB0+SBCWtPeIhCUIxSGnWSx1XQKOGg1ib5oNYh5YDWPuWg1lKsiCrD
287 WjZ1L/cJaf4cMCWV9TXiLAYebbqhJeRzgU4+h9oNHMesyH6rg9RJXbpsBnDN526CpokHtbYio6fICFpL
288 exrIQHCZW/i98T6AfHXlVeLY70MfnUV4xEDBFWMc7ioJqQxXjBVh+yX0+dDQnZdjW9mwbC4aBxlejIjJ
289 Pjs85Kr19/ris5A0Py7iO/tKlRZLWU8KONigXCWEwKXoZn7qi9l2D79W9Ok3SRCQGLFxdMbO49YdSKf6
290 pe/9WRTEQ9PGkyzmgwSSLAloo4zAlJ1Xhyet+wzycc3nulLlfSNRXo/0A1pIyjs/RD234tPACTOO9hv+
291 eIHPqCcPhD6ReCpqwdovvRcX/NFUyEl+W+RAySHLDmgyc+aBc3V4FhJaxKsGmdEHitfDj7FLt6R3FDI5
292 m2QzgrLrC9m7i4xhSVu+j5iy+BP/cVOPiYz7fEY+sT944rzjkbNWXgxMz7nmkXRAz+9u1QdcI2dUVsHV
293 +yOG88yvmkRhCXUPJbijydhglhKwJD0kbht2cEjE5UJSWbpiwAJ14W6HtZt20U4PDfzNu1Hj16WcG+52
294 vDU9wW78OsvYz6AIFIQ8zaPStp+0ScC0nF9qudcntmRWzUSKjqMdumIl3YCAKOSA1l/I0Sn1gJR3QP/M
295 TT4DvTMOaBHTsz7y6BO0qXJ1+0wpg4MPWHMW0RUWNmzX9eWQySmn+y25fj+vCrVNn0Vl5nwjkxu8AIcm
296 kNPcD1btVgahevy8lSP7SEjgbJLNWKaLlIncEbNevNTOJ3yHzIo5mp8qYLKHxVUyLhALn+U3duqB0Ixd
297 PzdKkHZLeZShoGQeuCT7vHP9pugKS2gRowvuaKICOoNOoXNYZ/OJa9t+zrl43z+KWjmIxmdFyYdLfrjr
298 /blyP40vdrfj43EP2KVmrLMbbzX5MCiCfJCnZVTaOychi7HTUIovBHSrx7qicQ0P62qDgNvPWpdRW66b
299 iULcTZ+jiEYLRakZO37s1H8gW5DJApTJiR0Wz1mGwuUTz3L6hPaxGzGtY0DM+sjUbd/XW1BYDmUroPAm
300 Us+gBWtY6FOL7+ZtTUObzXoIemh659jlBd/oZLEqj8HSJ2P/X/2GPc7BASZ4DA7ORWJlkZG9XGQEHFeb
301 KHjGrUmrxdFzX7nYPLGwDIsy5xzQWsnnA2e/wDYpC9vWqxR3PJlHngCyQJqQzODQLZ8P8tTJZSRbEZiO
302 16+PDP1M7lO/7FTsbseRiZPsnliVK5MP2w+fS1LkKSSgVYc5S4f5puoEhBw3J2CaENCGMt1Mn7nLa10h
303 YUzyW9+6NGz+ktyDtYPcKJSFc2bJWFosBIu3HH3i2Qm1ozChfuuOKZFL9lylTJ3UBjghr8SDnn5RnH2k
304 b40nf5S8Zk80OnPbaxDFVrt7iXX2HqGTj7OUrK0Sv7EfbJSRxWXkZI+Y/iEMGifW/NmBSW9crseAsyob
305 GfsvKfitRTdvyqI/WRM1TxYFdzRRgeoAtXndo1KFCoP2DIr89Ir18xxWgKCm3Q5+3emGux2fjB1jh/u1
306 XnoxQlJJCMgWUqkIqIAFCMrI+bVB2y48JYfVw+KhCNYH2brSdxwEuFBcFLESngIysbiLkkd2ixzxUp/0
307 /bp8xvJRdmOxrgNmvcBxd8hBObg55NUHpYD+qdZ70PgOwZkFPzjP3i/3XofbnP1a84T9WtjkFNZVOU3E
308 Y5RYZIhHX1vLCOh/FthZOgsUDJFQYH54Zu41yqs99zpc5brZwv3aoDkrkVGdz6T/7qoV1F2AANIQNPsE
309 Nm025dRQ/58KTzbbIp+rdn5oL21Mx064XiyH0fVajHQOL3w4bqxd8uLXS0jA64qgs1COb+qekhHQqsMV
310 XKSszin7tR4xY/IlLz8KifVmbxTrwaQMReAV6BPKY4DiQlk7w0owuSIfy0zxMc8tP9JCiGKtYGQOW5r/
311 W8sefvQPZDEvHQnM1m9Y4mtzWycWEsJ4P9ehqTt+ru7o+oLkw+Xiamk7a3kQzVpGwHsmPhzcoI8g/0CZ
312 FK3vmlrYdmMdXIctLfijZXdfiE2bjDLeWStoOFqlXLFaoI7cNijm1BdRDQpdbYS7Ba6Eu2jn47ppj97f
313 je02CMFsCquAYsyxjsBMwEWLN5SMgDaUWRYEdBfUEVJHzn/t63Ll7iGI53i++l0+1ixRAG1gVkg7KJP+
314 AVwzWFE0+ZDBTyYmT2BhdAtmqAvleibv10Iem8dvKkMEo4VRA999cGb2MTeTbEpGZIfUPmOePiZ5sNCQ
315 GPdPvIa3wpriLpWMlGeUkaUviIhR8Sp3zz1DolI2X6JcyldAxlZC/pDH53PO0FrGu0ZAyMIMiNHkMa2P
316 15Rzcb1+/zLMRfsyXEhnhS94le/eHxJ0tbWzC0+pcWpDHee2sH4AF/zGzGSZARdd/1OQZEFAF6uOcioh
317 ASOEgNZlqHJ6isvsGjY0W/JhVfixbbVgrvaq6Xw1G9TLNpXPtb5eJ1DLWFj94Kjnluc2ml9IHHcTsIh1
318 pM7IeWs4Qo/MuEZIAUEoo2bn4MFdAhYX/OQ06/p9gGvvtLw/67Zsz4EOBon65VRWLWgj7VZWylpG9AkZ
319 ISj16VuvoZMSNkBqSGeUsbYgesHaU5LHWsY764YVQSQpd+A0wKNNr5PDwq98EeqqfRHqrl0uBl+EuGqX
320 Ihppb8ZE8s8+EFA90FKEgB+OG2d3+LEn7Catzru1SUiqENDQSUohviklJKBVGcBNPotM3PTtfZWrcqyd
321 w5hYFfaEkd14HMmsVCP43PQ9/aWvWwp6SCw4o5u4OKdZ+6Se63CWa3Gj31SpUYsYmUOfbIOpPVjH6KeT
322 x3YSK0k+431ugrB5a/k/DlYXmIEzSIj3MBLm5RJbMgK+E1h4tnY+4Y/3TS/401pGroPSdn1f06U2S2hM
323 IpGRvkCPdy6ZyKdGdZU2Li71jo6MP3opvJF2OdhFuxwiZLsBvghy0i7EdtFmenkvkftxwWp3AiWaCQg+
324 uokbNt1jIGDRTio5AS3LcJXrpgulnLFTj0geAnpIoYJvi9DBWj4j+F5Anymv0caxTsPIoPTd39lSrld6
325 wR8yEeAAhNHFoWC3IQvXpDUTmYyyImfj+fs0/wmzcL+c3MH6KfIqYtxQRiDJbFgELWUQBISl7byik536
326 THCauU/rnbbvr9a9AthCtX7QibbemWQioHk07xg6bN75qLbapQBH7fP+bga4ap8HOhe+Wn1+KdBJXHHY
327 tz3q1ScOhBSYb/OquiLguQdG262fnWZzG87UWWVLwFQhoFVHO0tHd0zar3UIGPCm5GE9D+tnfBDnhlbF
328 CPIJaKOygr2ik9487WaoD6DcLmLhxNUyi2VWihXjRBJy1otL2fRmvbli8QyyQpB2i/Zp3SJHsjaJlVbL
329 TtxncQDjRpCkZMQKQt5uMYs2vldb6jDKWdgvUl/UKNYYWdZRlhZe3DkCSjILmB4U4vPRYN+rF31raRf8
330 XbSLJvAefDLIS7vQv6520c/Z4ruLfo7a+eBGWnZc7HtSDtaE0UPnQgxdoRCQicjBxyfb/eeVgiIHEUyd
331 ZUlAG6P0dglIGX1SC/5q0LYruwjMKC229AS3RD4FSQxeXCkE7hgz75WdkMnVikxtEsUKxj9GkA/hefib
332 2BHZGw9M33YIMhgJgZzdUvdpMnt+WfKwuMw6n3oMVbdKtuSxBfIKkBHD4Dlg7qqt9ecWiIwFUmchnOV9
333 q4R9ms+oyRxC5neiiWtVHHjHCKjIV6Vnvfr13h8We/K/Pi7af70dtf/6OAucCl+97LWPo+/Xpnn5fHh8
334 YMBv5/s5XP/OhPNeNbVz4e211MBAXDGxoIpz9M5SVpDJSEbqqzZ3Q0x5TQTcdpJOUR0EHGcWaD4pu0tA
335 wHfO2irDL2X3NYfa9dm+4og7+9VYL2TVLba1XDcC+QUQV3fD0dOzVjeeV6C5SD2qTmd532xBgeY//rlt
336 kodYmVUGdh3qlL/33uZRGTs+JI8bsprgOKNA80rL+6Neqw5YTcIECzltyVIcJCkZWULyiHlu+UtN5ptk
337 NNXH+6bymf+Emdslj3pAnUGCV2CQlXlCKOV6a+UMH77k48Bm2rk+QiQvx+voY6994ltPywoKPC/51j3W
338 rfuRj0Paaud617DM11fQu6Z2cnDQT73qN2A9TR3BsnDFEHDLtPk240BJlgS0oZQSE9BGGYGL3vmpqr0j
339 s1/rB7FL/AtZkuhHs9zRU5dkNheyGetFuY2ElIGPzmNbjt0J1vCIlRtI0N82LGP3BSeRy1pOv9ScX10a
340 NGWNUt3DqaLSyslkhJiuedSUxUtsyihWsf9jC1hW44fTVbyJ68aLlXmi4xCqxoaBg0eejen758c9amgf
341 9XbQPuplQE977cCA/j/Xr2nPodSlFe65J2NbdOjlj3o7yXe1iuT9qF9d7e0B0fmSVx1CRTFmV8zvQR97
342 9HG7J1fttfVzvHecgCi6/6Kt31WqWp0JAYdHLVyNUZ5bhSQGGHFgs+hpmRm2lNtQlBvwyNy9kof1RnW4
343 t5Fz/aYdQ9J3X7ZFwIBU3VLzQwHKamKRSiWnJCVj06gpGcktbMk4p0AL+k8CuiOWR0asNBOeMicg5EOg
344 qk/06OV5anDIlbP319TOdrPXznavdR1dqmlnovpocW3b75S8avP7Ge9GjZecjPT6ne8t8uv3VNU+CO6k
345 LQroz54l1oVRRMMhhm4FPx77gF1qetFDCaY8d56AiToBOTTKlhtrXgT25jJKCklKuU1ipi9b3ExcmfOM
346 fM1tZiFc5H2Tufma/0MzsYDqTwiJ5xq7NW7ZNTh9zxWn567nB45y7Ze651enek3Y92XbjYkSa5S3Q0Dc
347 d2MZJCnNbcjYcE6+FjhxPgQs4vIFZZYgH4ymwx0PDRuy63Q3V+10x+ra6S722unOAl47VtVO92umzfTq
348 xzJAooCFUNaiEG5MWmDg9tNeTbXTHSSfuk9HTe10p+raiZjAa1GtPXiuFZJgYcwb3MXtC0uyJKChg5RS
349 fJJLSEAbZQQk7fixuoOL+mmOImWUFJIUARsPnPPyS42EbMZ6neQ9Fsd71JNbJY8iIBOfJuKCO4em7/4c
350 uVwlr4KDXPdLzf29bitPtjmLTApsyXEjSDITMHbWC1lN5hXKqOrjfWOR22/8DAYJOmZJrcwJqOI+lGS/
351 aXDco6f922un2lfRTnWseR0dauivO6ND/69ShQpYMqwFQqEwZo1BrtWqjT4wOObrU51qmfOb4VldO9XV
352 Wds+MJrTG2pWbHHWrPBkjOWitCQzASOFgCjOWiklJaCtMnxTcq6JZeHcYlkTsMmghPVv151VaFFUnZCr
353 bUKB1j16NIcelHvTLeC9FSt7RqTtOFeEgNPztZ4pQtxu3mwV3naoIMlMwEEL1qytP1tIR53IKcACN5c4
354 td/IJ5go3TELqFxvtYzgUB+xUt+ebFdVO+lZQyATCIU2lbXjIb3/9G7cmP8HY7GW1XGOIRGHMLlg18A/
355 rl372SfC+vxG/sJ7KcdUVtvK2inftto8X192G4q4YluL0qbvCgmYIgQ0dBBAKSUiYIoQ0EYZvVLy/mrW
356 1YuQwuiCGRy3S8BmA9K2HtPJZ1Vnt+QCrVVPf35WgwkaOw3EgCi47YCUze+5zMizuMdR7umQWMB24YuS
357 h4fR6XOWem43BmwyKPXtXPeZeTJIqLMQjtPztHYJ+dr9kSOI9ZWV5jBDmcWAinxVIlu1avju0NgPT3Zw
358 0E60raadaFfjOjzEGnq10p7r25edAuMBU/3xRQGdwCsxSciSoKC3T/ZsrN9nUY6prGNRAd/3btCQwBuy
359 WMyK9b3hGxLwegcBB+kkn+RdJSSgZRl0dFvp6F4DH+TxztuOrYAkvc4Gbbt2Dk7P+QY5jXVy7ZuyW+K5
360 xhwoYEeDAanPggUeAxe+tqXeLCGEQVbkbiouMWDCrB2Spyxm6/osuFotp5YR6dnnnaxlfDZP65GMxfVZ
361 KvnUICmzWbByvWrJJfNk9wbaidaVhYBCFAUPIWMHZ21zTNSV+8qXx/Srn9PAZTBaUSwjgleuezhXrTq0
362 YEDoVyfayL1tJfazKK+qdqKzG787yJPXzIrVFhSE0V2xcVFa0h0noLNcN5idp4VOTiUzZLjd5Q36Vl8H
363 DJrw3LBuSQW6Ml2p1wQnuQ5duOl/5SvcS9wJ6RnMKJdZbUuZlWa0kJhMJ4XpHhd57y7yRsxe9YHkUTNn
364 86zUlizFQZKS0en+8Hhf77S8X61l5No/Zdc16VsOlhQhvOC2EgLom9IrI6MiTwb3/K0I+UDrKtrhCL9r
365 Hi4urL6jZGIB9gUJmFloxUrQEF651s8OPnx/t+RT/p21E60q2ShTXLFfJy0lsD/PWChXTFwBUcrNX/qm
366 uOHDqqMsCWhQiOokn6QSEtCqDMBnkWk7fnBp0IyTymr/GvekW2aj8m4GSSgHq14nPmXj+gbEVoY6eV9H
367 3F3olEz1s8Qq7oR8uP6mfeMmjMdF15L2YQUVaG//1F0/1XKvzwlttYfMPju6vGU5ySsgxHCLfW7ptDYL
368 CAss63KenquFzn3tsuR5UqBiTrNnEJQ6cbPueqNbezR9b1Dkp4WWyspaQRSf9trYTp2ZBbH2xOFEfhGB
369 bSN1wJSGY7l0MgvoRFxY6LrIiH0nu4lVxeoZyzWV/V6E39Wg5s3VsW+LWbGKAyVZEBB3aewkFORdAgKG
370 CwGtywAo1lPccMjEOcS4xLbse7JLwOAqqWLpC/vAcc8EBi/Ju1br2Vyp4zq47pqUr/WIGb1Z8rHxzokW
371 9SsTTMwaONSu3y80bddXDlb3ct12oQy6UU9wHKvI/qwtmaxBPgE6Q1/1Bi9+54irlA3hXExwlHqazMmT
372 GfD0fZKHfWfjL8fqfSsoVVKVU4jjwZEjtpzsWqcoSbju5Kq9HBL8qeRjyYWRSuCLe7J+UIUylTtnZR3r
373 0bOFk9OYggERX+nltbEiN+65g5O2MzbGuFesjqbrrviR1/S/6LIkIAoxdFStabklJ6DcYyxDwUE+D0/L
374 /s6xTkMC7iLHyKwVaQ3yCJAdy+I6InPb9oYSxzlZyUw9Eak7rtq71qFfmcypXzRFRvpV30OOnbtqe72Z
375 uUXuhyjRyW9fFvdtXIw2D15bshlBHgF94jDgmeThvZLz/qIfjXVwHZiRrzVq303tjxfZdxaUKkEUCqi5
376 OW7IJFxhUdcrZJHY70hkwLWWzs4rJS9Hf4g5IApCWCyfsJDMq4AOwDxDAEam34Su9ycV64pbMSvuoM3o
377 580ebJFZMZMR0/u7Q0Apu8XcPC1m2hKWHehwwgysoLmt1spU4DuBGoT2sVNTh/ZOyf/T3qou5G8s8WbA
378 hJk0jqUsY2xFLIfrxsp49B447snuYintp1qWQZs7irUOHDeV2TDPgChimA2CLRkB3wnQU1X3Zh4Nh2ft
379 /qj2DEuS876uED969ksXypW7h6UpFW8y0bytJRhVebWF/gE9TkT6/WAz7hOynAzq/tfIDp04HcyqO4vN
380 uKUirlIdKDCQEPdDR9KhBNbhayPC95/s4m7bFctnR6ODvi3OFQvuCgGdTeXWEmX3Ss7/K2j8s2z4q18H
381 JcYyW+ZilKoGdvWAB57qFZWZ+yVl6uUaQPmBqXt+c23UgiNOxf0rAPU1vad8+b6xizadqS3u0WnaXoty
382 HOU6KGPvr15DJvBDlcbBWywJ+UxAvzKgnEYtfmsVA85hKmVfh/2UvZpXcu5fTTr2ZFUAz8dpHWP8Rz+U
383 OFG57h6aOji4HYsfdOhEe4dCV2gkhEw6TnZvyM9pcFycTW/8P6vuxZ5msSKgsgIoXP+dGbGiDxyKCvqW
384 si3qAiZXnzNowOmK5csbD2YqhVsSEPKYFbFXFLpX816UfesETN521tGqw11NQMnO8opC+qbk/hk7bTGP
385 ZapTKtxP51MWSkQ22sorgw6l2sfNWBodu3TvRTchMyQx1kO5zebkagEPPcdOEpaFCZ3xB8VV2QxA3Grn
386 rmFDnwrKyPvDXu5FNgVkdZLX4PScq76jJtF24nIGPSREFhWbIyOgXMrHwjqNydi0pGNCnlhXy3IdpNwG
387 s2TyMTmFmTbGh0cTjO4X3aLnEidFDPutQ4ZOPdm3lW3XK7FaTnTw9/aVKjFDZauNUxDMCossl1gT0EBC
388 GouymNHhiv1ne/usZEJTrMX1bosrhvAQXf1uDJ2oyCwE3HqSDjJ2GB1YUgJCWmMZrtP3av3S8vVXSINi
389 ydN1UZ42JGlDXveokZw8of1YAMpBNmJDBfu2XiGNR6asnxmyJP+aq5DPWk4IQ5ligfkVLn6qRB37x7IQ
390 8ymrj56QXT+tLPCJnJy00WN+rm6ZjGXqsgr6p+f9FjMlLbO+RyfIjMWm/RAR2SiXV32pLGzi7D6jl77z
391 dmfIR3nIaQJl8VlI6q5rzvWbLpf8PBXIElGReFhQoqRIUW1ZaLjfySj/n21aI+K0/t35JStOBqsHc9SP
392 XkMmi2NUxYHvBcoVQ6bO5cuVi3hzQPS7tl0xxK+m7Y8JuVy3Rg1IpGZ2kJjRfJ2AVuQpFQGtOh6LODh9
393 27XQ1F2/oVSu+Rxl1JP4yDs199dBaVuPxM1fvTj6mZQxgQ9ODfIb/aRX+OPzguPnr3pkRMaWVyIW53zu
394 MU9m5XKPul9BJ5987p+e91d730hmvjwvzURHHftHNmVZlK5UGNO5wn0Vo2PnrznVUOKyIqSRuii7zfw8
395 LSx911dxietfj5mSPil4wnOR/mOe6idxonf008lRwxLWTI5f8s47vmm5v9SfWXiPRTkCyvZKyeeU9jtS
396 LxaasEgtuREL06cMkBInGkUDHQ4NHbyD2WdR11tZO9mnpbbQ15dfsuJ/O4hP1I81qgAZRd6QfIA8AjWS
397 6Vw6uXdzR6exB6P6f2szFsT1926uLfD1xToQe+H2sDS6yxC0jMIFWymXTvO5TkCb+7iSzASMKIaAAVNW
398 fN2qh29BUEr2r1w7Ts2R73L0V/spvN+rNZ61V+uwMFfrmZT3Z+/k3N+6i4VsM08C9udQaI4O7jHCScDn
399 Pql7/+waOnSXyGBczmLLD6tqjnlN8hqtIKsDfezd6o4ZkLD+k2azIWHRelT99Wbs1dqKtUS23km5v/VK
400 yv29S2Ke1mpuruY2vbAtqm0KXDsIfFNy/uw96ME8qa+4n1MplfUj4TKxJu7Hw72/LTIjhYyejtqmyPAv
401 KlWowG4Hvy1ifNyPpRUITMfclICAfAIEhkBYTx4BDJjap28W7raoDGIF29fSNkaEoAGsLutijDoarhMw
402 JmXLuygUqM6jQ/2Ssn8WBXGW72YEhMQf0NnWCgia/vLX8v2rzbt6bQ1P33XN9dkcreYzUpcpL68OUpe9
403 fGYEStcValUm14oUAem5f3UJieNXBjjFguvFrbGcxayS2E/vW2Q1yav6DmIyKWOS4l/d0fXB2FkvvN9J
404 3CeyIY9erwGO1Gkloy6nwMkqP22iHN6HpOf83sE/mpPPGB9+Q4YlHrXbZdR/qRKNQZENToT2/eFEq4qW
405 yhfrdyzc+7eO7rWZ9WBJ+Ml/Ak9IoFyhzn5bZCsO5BegfCwZE5gu4oojt8VEnWJ7T98rtiLg+rDgw5IP
406 y6v+II97dUswKHHDTohh7Eg6MDhxC49T8jBRcb+ORTigEzAmZeu7KE4nlgDyuAhhgqcsvSDfs+eZ3LhD
407 j5ei5q/93HOBTCQkb82nCxWr7rEFvtMh+VA29zSRYD5s0Zaf2vtE4NJQLDNKBjYxNZaNAWbuW0VAk8wo
408 mzbQfjwQloj2jfJ/cOqWwJRdv9QXa0f7IZiS72bQrZ1qk7xvJ9YyYt7ar2XgvSFlY/mUjMSTxt0uXUZB
409 qRI305BG+wYPOKS7YEjIhKDlffpa3ISuXRmh6sfD1W6HMr0osETkA9wjwPpauOKudepOOBQT+t2JdvaF
410 llDJ4d9JG9e5C8Evs271VBrBNPc2CZ+0cGYXGf3VniokXnXpRNxiyBNJ/Ksjclv8WaFBmciPpWk2aM7K
411 lR7iNlUZVeUVJfQY8IBacmLiNUnirqf7xD30RsSCDZe7igurY3KzNZ7eI/eBQsXzynXh50JGIXPzORLv
412 Ldr5a8CEGcclNODnM3C7WD4US9zHwMYrYOH0vjWSzySzse+QnQFMn/AE3XCZcCyQmerRwEXbr3qIe3WV
413 eu2VHCbYG96rz52m7NEazMjRuomLDpu79kr3mNF77q1UmX9FJeZne499fmTk924wAGb9C0qdFAEbDm/v
414 GZs7MOrMMe/2V4/0av7L4cAePy/09mbLgc7H76N85R4s1pVskexm4D4B9eOKaRAWyi/Gw+O5PVEhl472
415 af3Lkd4tfzkY1Oen+d7exEgq9lBP4hN7IkeDKjVq9Rg4Z+U7fRN3/dRm1s6fe8zf+UvEzBc/quHsTuex
416 WMp5NUIGFGb8hVRz+10ateAPD7N7J2RLGTt+oYzwqUtPVahYiTKom7N5EIXyxtxTvvwkT7+ol4KfSDoa
417 Mn/DlX6J2T93nbfjF8/ZO35pM2v7L+1m7rjWac6Oa70W7LwWmLDlh5BpK873iZ9Y4FSvCYvEuFwW8Rkc
418 uF0sn1GxeAe9b43kM8it+q6yADcICTEMeCdm5hMcajeY3yN27OaQKUvPBs3f+I1Xws5fus7dcc1z1o5r
419 bWaKfCJjp7k7fum5YOcv/gnbfgyd+fJnfg9OP9Kimw9bjvxXC3pnr5en7JiVq4OxRWQUlDrRCArDomHK
420 2dfjZDKxHjMyVuT5/Tg6Cb+PpcKK0HB9yUVwO4n7lStW7kQfyQKm+rh95CD2QPGsByrzr5YRzOQVsH6G
421 q0BuTufQFtpkHTCrRBsoh4CfGJFFdWZ4uG1VBgqg/SgXIuOCyIdF4DvyIiMKw1VBLpaN2MVhSw3wnuNV
422 LA5zyoWJHO3BdTKocbtYPuQzD2zBjZKRhAws2scqAURhoDKbph4sN4PIKJs1+Bz5aAN9Tt+zycBuDPvR
423 rHmie2Loksh406QmIcQcVADJEJ5RRAN45ZrPWXBEAPPMTHC7iTKUO2EkM8OFLLhMFIwMgPcQjO8Y7Vg+
424 7lGdz33MyhUxUC7WCvKhYBZ01cCh41TivQoDCKpZ14IUlME5N1655rwbyqWPAISnXGSCnFhHyIil5Peu
425 GTAMBICLVT9cCblRKqEMVg/S41Hof/q1pFZFkRBC4BEgMZYea0j51EMbGNDs20JIW/LxGW6JAUvfccKF
426 ttFG2s2SGX2EtyoTy6cShVAgrEZ4OhclQzgaQMfj8mgUVod85C+Tyk1JdSIDgUbSWBrNNhIWBznoCGZ8
427 kI885CX+AGo5BkWiUPJiBZAdRUA+Jbt1zMJ7PkP55IGEtJcy6ANeVfuxtNQNGIjIQsxG/EVe9l6xFlhw
428 SIvyAe8ZGFhQ2kK7aIsqkwGk2lMaxZKfQYxe6AsGMhaddlMP9VEv9SMf8tiSj0GPh6EtcABPQxvpFzwU
429 gxc9lRn5SEp4RhAKojJMOYoAWBa1yl+aEXqrifKUO8G6KQUjA4pCDpRF5xqVZex4ZERW8nIfhKQtkFO5
430 DfIbZTe2n/ZRBhMcVQavXPM5ZSAfFhMZUAqWi++pi8GL0hg8ACsJeE98hwehLQwwBjvEQ27qVh6ltP2q
431 7lXWkLZQPv1IaENbcPMMmOLkQ3baoHROv9FG2kofq74rrYzFJgpUiqQyOhoSAASgMXR6aUforSTVMNWB
432 yKEmGdZyGEch4D2y8R15yKvuU6QxdqB14jO+owzyco8qg1dVBt+TTxFf1QmJkBWFQ1RIyUBW4Bpl8p2S
433 SSn1dolnnVR/UC7lq/ZQL4P3VuSjLciHHlSby1JGm0lVQGUID6hcvTcq/E6m0sihrlXHW99zKx1oqwwj
434 blSvkpU6UTqKswafK5nIf6f7U5VNPbciH1ADorj2lnGys/t/E51CExxDXOAAAAAASUVORK5CYII=
435</value>
436 </data>
437 <data name="richTextBox1.Text" xml:space="preserve">
438 <value>Xibo - Digitial Signage - http://www.xibo.org.uk
439Copyright (C) 2006-2014 Daniel Garner and the Xibo Developers
440
441Xibo is free software: you can redistribute it and/or modify
442it under the terms of the GNU Affero General Public License as published by
443the Free Software Foundation, either version 3 of the License, or
444any later version.
445
446Xibo is distributed in the hope that it will be useful,
447but WITHOUT ANY WARRANTY; without even the implied warranty of
448MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
449GNU Affero General Public License for more details.
450
451You should have received a copy of the GNU Affero General Public License
452along with Xibo. If not, see &lt;http://www.gnu.org/licenses/&gt;.</value>
453 </data>
454 <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
455 <value>
456 AAABAAkAICAQAAEABADoAgAAlgAAABAQEAABAAQAKAEAAH4DAAAwMAAAAQAIAKgOAACmBAAAICAAAAEA
457 CACoCAAAThMAABAQAAABAAgAaAUAAPYbAAAAAAAAAQAgAM8wAABeIQAAMDAAAAEAIACoJQAALVIAACAg
458 AAABACAAqBAAANV3AAAQEAAAAQAgAGgEAAB9iAAAKAAAACAAAABAAAAAAQAEAAAAAAAAAAAAAAAAAAAA
459 AAAAAAAAAAAAAAAAAAAAAIAAAIAAAACAgACAAAAAgACAAICAAACAgIAAwMDAAAAA/wAA/wAAAP//AP8A
460 AAD/AP8A//8AAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4d3AAAAAAAAAAAAAAAACGxsfmcAAAAA
461 AAAAAAAAAHbOd+bGcAAAAAAAAAAAAAfmcAAAfscAAAAAAAAAAAAI7AAAAAZnAAAAAAAAAAAADGcAAAAI
462 7HAAAAAAAAAAAHbnAAAAAG5wAAAAAAAAAACMZwAAAADGcAAAAAAAAAAAfmgAAAAAbnAAAAAAAAAAAIxn
463 AAAAAOZwAAAAAAAAAAAG5wAAAAhscAAAAAAAAAAAB8YAAAAIbgAAAAAAAAAAAAfncAAAdscAAAAAAAAA
464 AAAAx+d3d85wAAAAAAAAAAAAAAbsdsfmAAAAAAAAAAAAAAAAdn5ncAAAAAAAAAAAAAAAAAAAAAAAAAAA
465 AAAAAAAAAHhwAACIcAAAAAAAAAAAAACIiAAAiIcAAAAAAAAAAAAI+PgACPj4AAAAAAAAAAAAAI/4AAj4
466 +AAAAAAAAAAAAACIgAAAiIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeHAA
467 AAAAAAB4dwAAAAAACPj4AAAAAAAIiPhwAAAAAAj/iAAAAAAACI/4gAAAAACIj/gAAAAAAAiPj4AAAAAA
468 CP+PAAAAAAAI+P9wAAAAAACIgAAAAAAAAIiIAAAAAAAAAAAAAAAAAAAAAAAAAP//////+D///+AP///A
469 B///h8P//4/j//+P4f//D/H//w/x//8P8f//D/H//4/h//+P4///h8P//8AH///gD///8B/////////H
470 x///w8P//4OD///Dg///x8f////////////8f/w/+D/4H/g/+B/wP/gf+D/4H/x//D//////KAAAABAA
471 AAAgAAAAAQAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAIAAAACAgACAAAAAgACAAICA
472 AACAgIAAwMDAAAAA/wAA/wAAAP//AP8AAAD/AP8A//8AAP///wAAAAAAAAAAAAAAB8dmAAAAAAAGAAdw
473 AAAAAHYAAGAAAAAAdwAAYAAAAAB2AADgAAAAAH4AB2AAAAAAB2duAAAAAAAAeHAAAAAAAAhwCHAAAAAA
474 D4APgAAAAAAAAAAAAAAACAAAAABwAACIgAAACPAAAI+AAAAI8AAACAAAAAgAAP/////4P///+5////Pf
475 ///z3///89////Of///4P////H////mf///5n////////+/3///H5///x+f//+/v//8oAAAAMAAAAGAA
476 AAABAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHNuZgB+dmkAenVtAHd1cgB8enYAenp5AHx8
477 fAC+eRIAv3sUAL58FQC/fRgAvn8dAMF9FQDAfxoAi3FKAIxzTQCafk0AnH9PAIx1UQCLd1cAj3tbAI98
478 XACWfFIAkntVAJd+VQCOfWAAi3xkAIB4awCGe2kAh31rAIF5bACAfXgAv4AdAL6BIgC6gSkAvYMpAL2F
479 KgCugTwAtYM3ALaFNQC7hDEAsYE5ALaFOAC5iToAvYo5AL6LPgDCgBYAxIEWAMaEFwDBgBoAxIIYAMaF
480 GQDBgR0Aw4QeAMWFHQDIhxkAx4kfAMiIGgDIiB0Aw4UjAMKFJADEhyQAxokhAMGHLgDCiCoAx4woAMCI
481 MwDDjTUAwo88AMOSPQDGkj0AxZQ+AJaAWwCuhUEAqYRHAK6GRgClhU8AsodDALKIRgC0iEQAuotBAL6O
482 QgC7jkYAsYtKALuRTQCsi1UAs49UAJ6IZgCNgnAAioV9AI6IfwCTiHcAnY10AKKLZgCljGUAoYxrAKyS
483 aQCokm0AuZpmAL+eZgCyl2wAt5poAK2XcwC2nnYAuaF5AMOTRQDCk0kAx5dIAMGVTwDGnlkAwZxfAMSd
484 XwDBonEAw6d6AMSpfACBgYEAhoSCAIaGhgCJiYkAjo6OAJaPggCSkpIAlpaWAJqamgCdnZ0AppiDAK2d
485 hACimYkAqJyIALikggCxpZEAva6UAL+xmQChoqIApqamAKioqACvr68AsbGxALO0tAC5ubkAvr6+AMKu
486 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
531 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//
532 /////wAA////////AAD//+AP//8AAP//gAP//wAA//8AAf//AAD//gAA//8AAP/8D+B//wAA//wf8H//
533 AAD/+D/wf/8AAP/4P/g//wAA//g/+D//AAD/+H/4P/8AAP/4f/w//wAA//h//D//AAD/+H/8P/8AAP/4
534 f/w//wAA//g/+D//AAD/+D/4P/8AAP/4P/g//wAA//gf8H//AAD//A/gf/8AAP/+A4D//wAA//4AAf//
535 AAD//wAD//8AAP//wAf//wAA///wH///AAD///////8AAP//D/H//wAA//4H4P//AAD//gfAf/8AAP/8
536 B8B//wAA//wHwH//AAD//AfAf/8AAP/+D+D//wAA//+/+///AAD///////8AAP///////wAA/+///+f/
537 AAD/g///gf8AAP8B//8A/wAA/gD//wD/AAD+AP//AP8AAP4A//4A/wAA/gH//wD/AAD+Af//AP8AAP8D
538 //+B/wAA/4f//8P/AAD///////8AACgAAAAgAAAAQAAAAAEACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
539 AAAAAAAAf3VlAHx2awC+eRIAvnoUAL98FQC6fBsAvn0ZALt9HAC4fiQAsn0uAKl/OwDBfhQAwH8YAIpz
540 SwCLdFAAjXZVAIl2WACLeFoAjHpcAIR2YACFeGMAhXhkAIV9cgC+gB8Av4EhALmAJAC9giUAtYIuALqE
541 KAC/hSsAuIItALuFLQCvgjYAsIA2AL6MOwC7iTwAvIw8AMOAFgDEgRYAxoQXAMKBGgDEgxkAxoUZAMGC
542 HQDDhB8AwYUhAMSGIQDChyYAxospAMCMMwDEjjEAwY42AMSONQCag10AnYNcAK6HSwC7j0UAtY1KAL6R
543 RQCmiFYArYlRAKGEWAC2kFQAvpdbAIyAbACeh2IAnolnAJSEaQCVhm0AhIB4AI2HfACUincAkol5AJCJ
544 fACekHkAt5hkALGWaAC+n24AqpRxAKyWcwCvmXIArJt+ALCdfgDCml0AhISEAIqKigCNjY0AkpKSAJaW
545 lgCZmZkAnp6eAKWZhQCpmoEAqJ+PAKCgoACqqqoAra2tALKysgC2t7cAurq6ALu8vAC9vb0AwMDAAMbH
546 xwDKysoAzc3NANLS0gDU1NQA2traAN7e3gDh4eEA5eXlAOjo6ABAUAAAWnAAAHSQAACOsAAAqc8AAMLw
547 AADR/xEA2P8xAN7/UQDj/3EA6f+RAO//sQD2/9EA////AAAAAAAvJgAAUEEAAHBbAACQdAAAsI4AAM+p
548 AADwwwAA/9IRAP/YMQD/3VEA/+RxAP/qkQD/8LEA//bRAP///wAAAAAALxQAAFAiAABwMAAAkD4AALBN
549 AADPWwAA8GkAAP95EQD/ijEA/51RAP+vcQD/wZEA/9KxAP/l0QD///8AAAAAAC8DAABQBAAAcAYAAJAJ
550 AACwCgAAzwwAAPAOAAD/IBIA/z4xAP9cUQD/enEA/5eRAP+2sQD/1NEA////AAAAAAAvAA4AUAAXAHAA
551 IQCQACsAsAA2AM8AQADwAEkA/xFaAP8xcAD/UYYA/3GcAP+RsgD/scgA/9HfAP///wAAAAAALwAgAFAA
552 NgBwAEwAkABiALAAeADPAI4A8ACkAP8RswD/Mb4A/1HHAP9x0QD/kdwA/7HlAP/R8AD///8AAAAAACwA
553 LwBLAFAAaQBwAIcAkAClALAAxADPAOEA8ADwEf8A8jH/APRR/wD2cf8A95H/APmx/wD70f8A////AAAA
554 AAAbAC8ALQBQAD8AcABSAJAAYwCwAHYAzwCIAPAAmRH/AKYx/wC0Uf8AwnH/AM+R/wDcsf8A69H/AP//
555 /wAAAAAACAAvAA4AUAAVAHAAGwCQACEAsAAmAM8ALADwAD4R/wBYMf8AcVH/AIxx/wCmkf8Av7H/ANrR
556 /wD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARxUUFhcAAAAA
557 AAAAAAAAAAAAAAAAAAAAAAAAAAAARR8FAwQDBAoPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEIJBBlATlQe
558 BQgQAAAAAAAAAAAAAAAAAAAAAAAAAABcDQw9AAAAAAA/BwgRAAAAAAAAAAAAAAAAAAAAAAAAADgFGwAA
559 AAAAAAAlBSIAAAAAAAAAAAAAAAAAAAAAAAAAHg0+AAAAAAAAAFMMJkoAAAAAAAAAAAAAAAAAAAAAAF0Z
560 GEUAAAAAAAAAACYMRAAAAAAAAAAAAAAAAAAAAAAATykbSQAAAAAAAAAAKSY2AAAAAAAAAAAAAAAAAAAA
561 AABQKRpJAAAAAAAAAAAqJzcAAAAAAAAAAAAAAAAAAAAAAFItG0EAAAAAAAAAAConQwAAAAAAAAAAAAAA
562 AAAAAAAAADAsEgAAAAAAAABeKCpLAAAAAAAAAAAAAAAAAAAAAAAAIysLAAAAAAAAADwrLwAAAAAAAAAA
563 AAAAAAAAAAAAAABMKy8BAAAAAABIICs6AAAAAAAAAAAAAAAAAAAAAAAAAAA1Kx0OAkYXEzArJQAAAAAA
564 AAAAAAAAAAAAAAAAAAAAAAA1Ky8cIRwuKzEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABNOTIzNDtRAAAA
565 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFtZVwAAAAAA
566 WlpWAAAAAAAAAAAAAAAAAAAAAAAAAAAAaW1rWwAAAABrbWpYAAAAAAAAAAAAAAAAAAAAAAAAAGNvcXBr
567 AAAAY29xb2cAAAAAAAAAAAAAAAAAAAAAAAAAAG5wb2gAAABlb3BvZAAAAAAAAAAAAAAAAAAAAAAAAAAA
568 Z2lnAAAAAABnaWcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
569 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABaW1cAAAAAAAAAAAAAAAAAWl9ZVQAAAAAAAAAA
570 AAAAY25ubWEAAAAAAAAAAAAAAGBtbm5rVwAAAAAAAAAAAABsb3BvbQAAAAAAAAAAAAAAZW9wcG9fAAAA
571 AAAAAAAAYm1wcXBtAAAAAAAAAAAAAABob3Fwb2AAAAAAAAAAAAAAbG9wbmsAAAAAAAAAAAAAAGZub29u
572 YAAAAAAAAAAAAAAAaWpnAAAAAAAAAAAAAAAAAGdqaWUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
573 AAAAAAAAAAAAAP//////+D///+AP///AB///h8P//4/j//+P4f//D/H//w/x//8P8f//D/H//4/h//+P
574 4///h8P//8AH///gD///8B/////////Hx///w8P//4OD///Dg///x8f////////////8f/w/+D/4H/g/
575 +B/wP/gf+D/4H/x//D//////KAAAABAAAAAgAAAAAQAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
576 AAC/fRgAvH0dAKt4LACxfywAqHkwAMF+FQCdekIAmXpGAJp9TgCNdlAAp39AALyCIwC/hS0AvYo9AMSC
577 FwDDgRgAwIYnAMWIIQCxiEgAu5BIAKqLWQCwjlcAmoZnAJ2JagCll34AsppxALGefACTk5MAlJSUAJmZ
578 mQCzpIsAq6urAK2trQC2trYAurq6AM3OzgDW19cA29vbAN7e3gDi4uIA5OTkAFHz/wBx9f8Akff/ALH5
579 /wDR+/8A////AAAAAAAALyEAAFA3AABwTAAAkGMAALB5AADPjwAA8KYAEf+0ADH/vgBR/8gAcf/TAJH/
580 3ACx/+UA0f/wAP///wAAAAAAAC8OAABQGAAAcCIAAJAsAACwNgAAz0AAAPBKABH/WwAx/3EAUf+HAHH/
581 nQCR/7IAsf/JANH/3wD///8AAAAAAAIvAAAEUAAABnAAAAiQAAAKsAAAC88AAA7wAAAg/xIAPf8xAFv/
582 UQB5/3EAmP+RALX/sQDU/9EA////AAAAAAAULwAAIlAAADBwAAA9kAAATLAAAFnPAABn8AAAeP8RAIr/
583 MQCc/1EArv9xAMD/kQDS/7EA5P/RAP///wAAAAAAJi8AAEBQAABacAAAdJAAAI6wAACpzwAAwvAAANH/
584 EQDY/zEA3v9RAOP/cQDp/5EA7/+xAPb/0QD///8AAAAAAC8mAABQQQAAcFsAAJB0AACwjgAAz6kAAPDD
585 AAD/0hEA/9gxAP/dUQD/5HEA/+qRAP/wsQD/9tEA////AAAAAAAvFAAAUCIAAHAwAACQPgAAsE0AAM9b
586 AADwaQAA/3kRAP+KMQD/nVEA/69xAP/BkQD/0rEA/+XRAP///wAAAAAALwMAAFAEAABwBgAAkAkAALAK
587 AADPDAAA8A4AAP8gEgD/PjEA/1xRAP96cQD/l5EA/7axAP/U0QD///8AAAAAAC8ADgBQABcAcAAhAJAA
588 KwCwADYAzwBAAPAASQD/EVoA/zFwAP9RhgD/cZwA/5GyAP+xyAD/0d8A////AAAAAAAvACAAUAA2AHAA
589 TACQAGIAsAB4AM8AjgDwAKQA/xGzAP8xvgD/UccA/3HRAP+R3AD/seUA/9HwAP///wAAAAAALAAvAEsA
590 UABpAHAAhwCQAKUAsADEAM8A4QDwAPAR/wDyMf8A9FH/APZx/wD3kf8A+bH/APvR/wD///8AAAAAABsA
591 LwAtAFAAPwBwAFIAkABjALAAdgDPAIgA8ACZEf8ApjH/ALRR/wDCcf8Az5H/ANyx/wDr0f8A////AAAA
592 AAAIAC8ADgBQABUAcAAbAJAAIQCwACYAzwAsAPAAPhH/AFgx/wBxUf8AjHH/AKaR/wC/sf8A2tH/AP//
593 /wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXAg4NAwAAAAAAAAAAAAAAAQAAABYFAAAAAAAAAAAAFQsAAAAA
594 BgAAAAAAAAAAABMJAAAAABAAAAAAAAAAAAAWBwAAAAAPAAAAAAAAAAAAHwwAAAAYEQAAAAAAAAAAAAAU
595 BAoIEgAAAAAAAAAAAAAAABkaGwAAAAAAAAAAAAAAACAeAAAhHAAAAAAAAAAAAAAoJQAAKCQAAAAAAAAA
596 AAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAdAAAAAAAhKCQAAAAAAAAnJwAAAAAAIykmAAAAAAAAKCgA
597 AAAAAAAiAAAAAAAAACIAAAAA//8AAPg/AAD7nwAA898AAPPfAADz3wAA858AAPg/AAD8fwAA+Z8AAPmf
598 AAD//wAA7/cAAMfnAADH5wAA7+8AAIlQTkcNChoKAAAADUlIRFIAAAEAAAABAAgGAAAAXHKoZgAAMJZJ
599 REFUeNrtnQmUXNV551+92qurt+pFvUvqVkutvdUSQgLZBlsSGBjAskEgwALbwpFtmNhJTpJJzIwnk0x8
600 sjlMHHsmZyI7CXiIjfclyBK2AQOSDVqRWktLve9d3V37+t7ci5M59b7ve071NOpS9fv+54hz+s9X9233
601 /t47d/muTbk+ZZuDbyc81SSW8nTC0whf/zWx+ZTJmr+o56eaeDbit1RsvnVCetSzzprEmpVxXck2/yIW
602 9LwYANYWA+AdFgOAAVBMYgC8w2IAMACKSQyAd1gMAAZAMYkB8A7regAAOgdVVe3in+Fh+f1+T319XTmM
603 3b79pluh53I5q0URvnyOFQqFrkDv/PnzPZOTk9O5XiwWi09NTQVhrKZpCeI4FEAU5TqsANexUAOGdUKq
604 s3PjSugtX97aUVlZWZ3r2e2qz+l0VcNYXddRo45Go6PpdDqS68lnf/ny5YswVnhDxLlnFAwGM4AUtE5c
605 DwBAD9UhBB92IBDwr1zZvgTG3n//3v3Q83jczaIIAyx0nb7eiYmJN6H38ssvv9Hf3z+c683OzoYHBgbQ
606 w85mszHimuTDz/cLgoWFnpPN9nb7R197t99+2zbodXV13dzQ0NCc64n6UObxeJthrAA4eoPPzMz0JBIJ
607 A+wHhY4Jwdjjx49fIM4/pdAAoL4WKCgsmBgADIDrUQyABRIDgAFwPYoBsEBiADAArkcxABZI1wMA0EOt
608 ra2t8Pv93lyvTmjTps5OGHvLLbf+B+jJTkC73e4Ftk0nmp9o2Fehd+rUqbOjo6Pjud6Y0OnTp0/BWBE3
609 SFyT7ASCD9asArCwVNHgDXXT6/V6xEsgAAP37XvwQei1t7evDwSqanM9UR98LperCsYKAJCdgKlUytAJ
610 KF4UY2+99dYZGPv8889/j/h9KJ1OJ+GhxL80ca0FrRMLDQDqeA5o7NixY/XSpS01uV5bW9um22+//SMw
611 trq6ZjX05McDqD+mEm9w5ImHPRiLxUK5Xnd399lvf/vbz8HYo0eP/owoVo4MZICnEZ6U1b8KyFEg+cbP
612 9err65ds2bJlPYz97Gc/+7+hJ2BR4XQ6PUS56OA68VYQTNB18D/i8Xhkejo4AmM//enPfBx6vb29A+Ir
613 YhbY8tnHietPXdO7+++IAcAAKLQYAAUUA4ABUGgxAAooBgADoNBiABRQDAAGQKHFACigFhIANup4omE3
614 QO/RRx/9rU2bNm3P9UpLSwONjY3tMJZ6qNKjfAoKmQxuk7JjGFaMeDwWDwaDUzB2z54PfhB64XB4LJVK
615 RYEte4CpIUOqZ9hKQi+AlpaWhoqKitJcr6ura/vjjz/+WzC2rq6uA3pmLwDKMwEAGUfFHj58+Aj0nhE6
616 I5TrpdPpqHipjBHXP60UUAwABkChxQAooBgADIBCiwFQQDEAGACFFgOggGIAMAAKLQZAAbXQAEDTfrcL
617 QW///g8/sXHjxhtzPbfb4ysvL0frue12nA9EevBhm40K5AsA8QCz8Xgc9dh+6lOffAJ63d3dZyYnp+DD
618 liMDIQWLyidgpZEBNzR27NjRKSBQn+t1dKy64Z577v0kjBUvBpQjQj5/sxdDPqKev/SoEaMLFy70QO/L
619 X/7yV994442TuZ6oO9PiBYJyTwgNKwXUQgJA3n3UWnft2vV+6D3yyMOfEAC4IddzOBwur9fnh7HCxwea
620 5xeAfNCwAkiPiv393/+9P4De8ePHXxsaGh4AtmzoFO2prwIrAQAN19155x07Vq5c2ZLrtba2bt65cxca
621 cvN4PKhOUQCQz36+AKCe/+joKPoqfPrppw8dO3bsRK4XjUYnx8fHu4nD9V/Tu/vviAHAACi0GAAFFAOA
622 AVBoMQAKKAYAA6DQYgAUUAsNANRad+/efQ/0HnnkkY9v3LhhS64nGrrT4/GiRJ9OpxMf6B0AAOwJNqsA
623 Tz311J9C79VXX/3ZwMBAH7DlNFBUWYQihGclAKBneu+997y3o6Njea63bNmyzltuufVRGOt2u9GDNgMA
624 1WFsNgqQLwAmJibglF/lr//6C199/fVjhtwRkUhEtP/xc8T1Ux2DC6aFBgBqrXfccccj0Hv44YcfE18A
625 huQf4uHZBe1Rj7HL5cIHmsMwEPVQpZdvL/DnP//5f4TekSNHfnj16tVLwJbDguMK1gzhLdbsQVR9Q191
626 Dz74wD3r1683DO81NTWt3rZt+x4YSz1/+VU4HwCYPX+qroRCszDxh/KXf/mXz7722uuGYcBwOCw+FkZR
627 QhkhCgoLJgYAA2AhxQDAYgBAjwHAAGAALIwYAAyAhRQDAIsBAD0GAAOAAbAwWkgAyLuPGvAtt9xyN/Q+
628 /OEPf6yzs7Mr13M6nS6/318CY+cyDEgp32FAWQGoOeJPPfUUAsArr7xydGBgAPbuhsU/lFBCaILwrASA
629 Cmjceeedu1auXNma67W2tq7fvXv3PhjrdqMqNadhQAoAZs+fegGIRh2G3tNPP/38sWPHzud60Wh0bHx8
630 /DRx/SeUAooBwABYSDEAsBgA0GMAMAAYAAsjBgADYCHFAMBiAECPAcAAYAAsjBYaAKjLVjxotLfb/v37
631 D3R2bjQAoLS0rLSxsRElD8k3H8DbF0t46TTOx0FNBRWg0BOJBCLA448//gXoXbp06RfBYBDuIyin/FJr
632 vycJz0oAQOv5N2zYsGXJkiWGfADr16/v2rdv30dhbCAQKIWe2fPPFwBU8g/5NwUA0dDhlG/l0KFD3zt5
633 8uTFXC+ZTE6EQqHzChY1MrBgWmgAoGHAhoZ6lOr5VwDo3JzrVQq1trYtR4USAJjLWgAzAEClUiktFoui
634 GvDgg/v+O/SGh4dPRyIRmBDE7AuAAQC0dOnStRUVFYa08F1dXVsOHDiAFgPV1dWhJDFzGQamZLY+gKoX
635 hw+/gBb4PPPMsz88c+aMYRhY1LOpWCxGbSRKfRUsmBgADICFFAMAiwEAPQYAA4ABsDBiADAAFlIMACzL
636 AICcClxZWbEKenfffff9q1atWpPrNQhSbN68pQvGlpSUoI7Fd2AqsA4f9uzsbGJgoB+t/X7iiSf/CnrT
637 09PnE4kEbNiyE5ACQJDwrASAMmjU1ta2+f3+QK63bt26jfv27UPTxjdv3rwRenPpBKZkMjKgJ5NJRIBD
638 h/7+Vei98MLhn/T09PTmeqJOBcVL5DJxuLfeiRv7/6uCJwQRaoTG2rVrbhCVoNHorV19//17UQruxsbG
639 AFHmvB52PB7PSgjkeleuXJk6evToRRj7xS9+8RBRrOwZhnP857oWYDGKeihoaNfpdNaKRmzwW1tbV+zc
640 ufN2GHvw4MHHoUetBZivBNCzMzMz6HPxE584+FXo9fb2nRYvDPgFKF8efUTRl5QCigHAAFhIMQCwGADQ
641 YAAwABgACyMGAANgIcUAwGIAQIMBwABgACyMFnprMOqpVBCeHNoxZIstLS2tbmhoQPvAHTjwsf3Qa2xs
642 qiorKzP8XlQI1UEsHBgYGEDbdR079nrf0NCQoWGOjIxMvPnmCZS8QQCEmsope/thtl+ZOILaGixOeIsV
643 AJRchCen98JJ/hIItTBw3759j0Jv8+audaKuGGK9Xq87EAigEYdkMoV69vv7+0X7NSb6EC+AiSNHjqDn
644 393djUYBhOQ0cPiszV4A1H6BCyYGAAOg0GIAFFAMAAZAocUAKKAYAAyAQosBUEAxABgAhRYDoIBaaABQ
645 x/MRnpwfbqgAou2WiodYDwNXr+64Cf24vKLa4/EYyrXZbDKxMMoeEQwGo9CTjT0SCRv8eDwRnp6eptbz
646 U/O75RZgsGHLHmRqH8DUO3N7i1Z2wpPPDsLaqxAvi6VLl6J8EvX19UtLS/2GWKfT5SkpKamEsZlMBh1f
647 1IlwIpEwPJdQKBQeHBxEzz8cDlNZfWVDhy8AuTckNeIzqxRQCwkAs+N5CE+mioZvBlkB0JCfeKhoLYEA
648 RbXT6YQAcIiPAC+MjUQiqFHGYrGZdDqdyPXEm95sb78ewpMPNQG8DOH9m29lUV+FEtQOwkNvcPFM26Dn
649 9/vrXS6XIVGIgL9XvBRQ/clms2h9SlRIPH8DAAQo4gIK1LoNam8/uQ4E1iv5RREmYqNKAcUAYAAUWgyA
650 AooBwAAotBgABRQDgAFQaDEACqjrAQBULzDVCSRBgZJHuN1ulCREPPxKuZOY4cACAOIfgo14qKhRplKp
651 sHjgcMsnGTdNnOsA4ckHDTv3Mgrd4ZdVrC0KALJRws45WU/QtGHxTFugJxp6jcPhMMQKULjFSwF1Imqa
652 hgCQTCbjAgyGab/i76SAAtWJ1094sp7AeiXLoxo7NQq0YFpoAFCieoHlQ1EJz0vEVhNeiYKTj5BpyRW6
653 AcqHAt/MsvFGiFjqqyBJ/F4zOZaVhvwoUXVQJXyz50etBaGGEWV9oEacqBeQbKwa4VENmBrai/1rfK7k
654 s6deAAX9AmQAMAAKLQZAAcUAYAAUWgyAAooBwAAotBgABRQDgAFQaDEACqjrAQBm52UjPAoWVKWgAGL2
655 e6oByocCK4D8O03EUp5Zo873fptlBaY8TSmsqF58s2nf16K+UUlmqFEEs4Q0VJ2QjRXea3mfqcYaz/P3
656 ulL4Z4XEAGAAzFcMgPx+zwCY43kxAPIrt9CVigGQ3+8ZAHM8LwZAfuUWulIxAPL7PQNgjufFAMiv3EJX
657 KgZAfr9nALwD50ZVNrtJXL6/N2toeTXAZcuWojXmra2tTZWVlYa56E6n0+P1etFU5mBwGvUiX758eSQY
658 DBpGHOLxeHJmZoaaS071LFPnP9fRhrzuX0dHRx2+J+KmVFYarlXmYnC5XOj6p6eDaLu0S5cuDU1NBQ3X
659 +muunxpZMYOPmmes2f2jGnAmz98rynU44nM9AyDf853Lm2a+14t+39m5sRl6mzdvXt3Q0GDY3NLtdpeU
660 lZWhjDZDQ8O90Dt+/PiloaEhw8KTcDgcGxkZoYYcqQVG1BtIUfKvgHk3oB07dqyA3qZNm9bX19cbrlXO
661 zff5fOj6h4eHUKr1119/vXtwcMiwt+Kvuf4k4Zk1wLl8geVbZlE0dDMxAOZ5fAYAAyBP77oUA2Cex2cA
662 MADy9K5LMQDmeXwGAAMgT++61GIAwFzi5nK9hlin02n3+/1o2ug999x9F/RWCVULgd+7fb4StB59amoK
663 dQKeOXP64tjYuAEAY2Oj4ydPnkIJKCORyKSCRU1lVZT8e6FRL77L5XKI60dTsffu3fsB6LW3t3dUVVUZ
664 rl8AQDDQjToBp6YmUaLNU6dOdY+Ojk3keqOjoxPCfwvGRqNRKklH1uRa59Mw9Tn8ngFQ5EKjCJWVld62
665 tjbU4//nf/5n/wy98vKKNo/Ha4i1yYwkDjsaschk0qgXe3Bw8IJ44xnedqdPnz77zDPPfg3GXrx48Qxx
666 /tRaBFkp812LYIfXHwgESlauXLkEX/+ffx164kunGTZ2ef2qqqL6Rl1/f3//+dnZkAEA4vrPPCMEY69c
667 uUJlZZ7L9VtaDABaDAAGgCXEAKDFAGAAWEIMAFoMAAaAJcQAoMUAYABYQgwA4h6UlJT4XC6XIaHIunXr
668 Nuzb9+BDMHb37tseh56o6LLCGw8i/ia2JpTppklP143tMhgMTojKfh7GPvDAA+j4yq+2oMo3LTkCQEVF
669 RanH4zGMeHR2dm5+7LHHDsDYG264YQ/07IJz8h7kI3idUqlUStc0zfA/+vr6el955ZWfwdjPfe5zf0IU
670 a5aWnRoyvO7m5y+kGAAMAAaAhcUAYAAwACwsBgADgAFgYTEAGAAMAAuLAUDMb6+srAx4hXK9rq6uLR/7
671 2EcPwtiNGzt3oQJF5YcNQALAjgcB5JZTyJMAEA3A4MVisfjExASaC3/XXXc+AL1EIjkqyoUZjM2yGqMG
672 UF1dvcTn8xm21hIN/caDBw8+CWNbW1tvgJ4EHXWtFBSo60+n09I3AEBc++R5IRj7kY985DeJa6L25jPL
673 6mvpkQEGAJFQRDSAWvEVYGgAW7ZsufETnzj4H2FsW9sK1ACoN+B8AZBMJjOhUAi9wXbv3oXm4kci0UHR
674 iELAlr+FnhQCQG1tbaPf7zdsxLl169btTz755GdgbH19PdqclQKAvH4KANQXkAQAvP6ZmZnZ3t5etA/j
675 nj170FeJ0JiCG7sZAC29OSsDgAHAALCwGAAMAAaAhcUAYAAwACwsBgABgKqqKtQJJgFw8OBvPAFjV65c
676 tRUVOAcA5DsKIACQpQCwa9eu+6EXjUb7RSOaBbb8LbW/PQWAJsE/AwBuvHHr9ieeePLTMLahoWEl9K4F
677 AKanp0NXrlxBALjvvvtQx6yQTDRKdYJSSUWprM6WEQOASBUdCATqvF6vP9fbvHnzDY8//vgnYey6detu
678 hN41AoAWDodQZd25c9ej0BMAuCIa0TSwZfpqKqMO+gSpqalZKgBgmMsvvgC2PfnkE+gLqKmpGWUEkgCg
679 rn8+AJiamgpfvnxpCMY++OA+dE5CMg5+7chhwVkilsqqbBkxABgADAALiwHAAGAAWFgMAAYAA8DCYgAw
680 ABgAFhYDgACAqKjlqmrz5HotLS3L3/3ud78Pxv7e7/3+f0YFOhw2qhc832FA0QB02ABGRkZm33zzTdQL
681 /pnPfOaPiGvqU3Bll1Nj8wKAx+OpEtfgy/U6OjrW7tmzZy+M3bt374PE/UNrIf7tHuSjWCyWzWTSBgKe
682 O3d++Jvf/OYvYOxzzz33d0QRZgCgRkEYABYXAwCIAWAdMQAYAAwAC4sBwABgAFhYDAAGAAPAwmIAEFOB
683 hUpFZTUkxCgt9VfX1+Npr3/4h3/4Oeg1NzfXlZeXlxoOYrerbrcbwSadTqGpuMPDIxEhQ8Xs6ekZ+/GP
684 f3waxh4+fPg54vwHFboBTBOxCAC/AqDqzvUCgUB9e3t7F4z9AyHoVVdXV/h8Pg8oU0IR3etEIoGGAS5d
685 ujQZDAYN6/kvXLgw+N3vfvd1IvZHxDXJqcBw2m9S4anASAwAGgByHYABAKLu+sWbsR4GPvXUUwgAq1ev
686 bq+pqQnkeuKNavf5vG4YK+f4Q+/y5Z7g9PR0PNfr7u4eEg3gGIwVYDhKnL98A8LKbvYGpBJilMLrF/Cq
687 EFBbBgP/4i/+4s+g968ANAyjCgCoTqcTATAcDqM3sPzSEV88BoBdvHhx4Ac/+MFrxO9/Tpz/qJL/WgBe
688 DGRxMQCwGAAWEQOAAcAAsLAYAAwABoCFxQAgkoIKyR5wQ1ZgUX9LRAWugYF79+5FCSnahaqEcj3xW1dJ
689 iTHHgFQ8HkcN8OrV3qmZmRlDJ9jg4ODYa6+9hrYBGxsby7cBmCUEoQCAACgAVurz+Rph4IEDB1Ci0JaW
690 lmYBAMNUYgFQhwCoF8ZOTU3B5J3K2bNnBycmJgznOjQ0NPrLX/4SdYImEonjxPnLbcVgQhCzpKAMAIuL
691 ugfyTW0nvHIYKBrFOug1NTWtKisrMwBAvEFLhFcLY8PhELE34NCYeLMZGrD4UghHIpFh4lzPEZ4c7qOy
692 4saIWCottuzBdxAe2huxurp6C/QEAFZVVFRU53oul8tbWlqKft/X14e+Svr7+wdnZ2cNAMhms+FUKjWS
693 5/XL0Y5804JzVmCLiwGAxQCwiBgADAAGgIXFAGAAMAAsLAYAA4ABYGExAGjJxm8jPDcRW0t4EhQe4Mle
694 dT8R6yI8WVFhxSTTWrt8JZPQ85UFMi6P19CwbaqqO5wu1Njj4Vk0DBedCerpZNwwF1/XNbuuadS51hBe
695 GXGvJFC8RKxOeLK3Hk7RNUvoQUFBxsLefV2hGzt1fMuIAUCLAcAAsIQYALQYAAwAS4gBQIsBwACwhBgA
696 tBgADABLiAFAy6bgeyOnDDuI2FLCk1NpncBzikbog4H+wJIGVOCS5kpXSZmhsdjdPrezLFABY3VvOTq+
697 w1fqtDvdIC2vqqhUQpJkFPaWK5loKKqnkkYwZNMJJR1HPfZTl0+hkYn49EQinYgZGmA2m1EyyQTV2Kj1
698 +HIdRIaIo6byUlCQsVRjp0Y8LC0GAC2biUctHKLeangYzWZzqqodxQaaWtugV9W6ttlXWWsYcnT4yso9
699 NU3NMDbtrWhBJ+ou8docLnh8m0214+tKx/HQYDw8o2RSRjBkkmE1GUFpuQeOH34TeqGRvqlkZNawmCmT
700 SmaTsQiVfSdp4kEAyL8TRCwFBdn4qcZu6bc9JQYALQYAA8ASYgDQYgAwACwhBgAtBgADwBJiAJjLRvxN
701 5Q5AIwOq3eG1qaqhE9DlLfH7q4gOv7bOHajA2qWNjpIKQ+eezeX1OUqrUI972lVSDT2b0+20qQ6cltim
702 4uedTeEGmIpHbVrG0Dlny2biaiYehKHhnpMX0c8n+oezsZAh+YYAQigy1o8AEpuZQqMYCt2LbzaVN054
703 svHDxs6NnxADYG6i7hfs7VdcPn+Jw+ky+BUNy5qXb7llO4x1dN31m9CbzrpqErrdkDwkoyu2lGZDAMpe
704 o2oNM3jLPx3E1Vc5UmhkwBcaPu9MhQ0NOzpy9cr4yZ/+GMb2nnz1JHF4ahRAvtWpEQPK48aepxgAcxMD
705 AIgBUNxiAMxNDAAgBkBxiwEwNzEAgBgAxS0GwNzEAABiABS3GAC0zIYBkV/Xvr4dei23fOiR8mVrNuR6
706 EZu3ftxRhbbWimbxhnnUgcxqNDUsodp0hejvJ72MRgwM6PTx8q0s1G89qpYJOLKox95+7Gv/BXq9v/zp
707 sZnhXsOIgZbNJDPpFJXVmBoFMLtdDAYgBgAtBkCeN4USA6B4xACgxQDI86ZQYgAUjxgAtBgAed4USgyA
708 4hEDgBYDIM+bQokBUDxiANBC7Uq1O5xOtwcm+VA27Pud34VeaknHu7P+6mW5Xlqxe2OKOwBjM0SVVEU9
709 FVgw/B+7ltFcWhJtY+UODeH9/hKRhJJNG2N1Tde1LFojr3r8aCqz5i336Q6PYRQja3c70+4ydP0JBe/3
710 R7Uyu03XnTYdHb9y9gra2ity5if/khrrvZzrRafHxyd63noLFazr08ThMgo9FZgBAMQAoCUBYLg3dqfL
711 5SkpRRl9tv/2l78CvVE1sDGi+upyPU20adHYqRc2cXBdh29rh5bK+rJRtJjGO949Cj0tEowo6YQhVjR+
712 Tc9m0JCZozSA9ivUSmvLFbff0NjTTp8r4atFyUciipvKEoRk1vLqnEkEsOy5F7+lT/Sez/VmR/oGBk68
713 /CoqV9MmiGLldcLFQAwAQgwAWgwABoAlxACgxQBgAFhCDABaDAAGgCXEACCk2h0OxWacdusrq6ysalmx
714 DMbW3/efvgS9oM2/NG5zGxJ46gIAGnG/ZY89lCsZTtizoMMvHkoowQHUWLTh82iNvZ6IRJVMyggAXdcE
715 BFAnot2LOwFt/qoym8tr9L1lXltlE+7ErOtogl5KsatZcswBq9yeRgk9nAMnX1ZDo325Xnjocs/w8RcO
716 w9hEePYKUay8diorMCcFBWIAEPfA6fF57A5j73bN8tXta3bueT+MvbDkXf8NemmNrmnUzXbZMQD8kxfG
717 3bEpQ8OIjfYGg6d+ehnGjl85hxqAeCvKoTH4tpenhABAnZbL5/fBtQzeiuqyquWrUUYi/22fvB1607rH
718 nVCcKHsSdf0a8U4OaKEJn540Xn/vmVPBl579KowdvfzWz4liqbTi8vo5LTgQA4ABwACwsBgADAAGgIXF
719 AGAAMAAsLAYAA4ABYGFZDQDU9aKprDWtq1eUVNYYerzdLetuKt/xwG/B2P6EY0m+B6K8loGfoKy6V1/6
720 9omZvm7DnnfZTDqSSSbGiCL6CY9qAGYJNajTkiMAdsJDw4DNG7bdDD3/9g/d6mpeuyzXE0Bwhmw+lBad
721 OrgqGiVcIeGNT45Wz1w8AWNf/R+//btEEVMKXiOQUeh1AxQULCMGAAOAAWBhMQAYAAwAC4sBwABgAFhY
722 DAAGAAPAwlrMAMi3DaKpsMtvev97K5vbl+d6mcqmDYnlNz0CY0MZ1UOUiQ7kVDKaX0mhXvjQ1z/3PegF
723 +y9eSsxOTeV6uq5FdE0bUbAGCI/Kqms2CkBJzu+HAJCjAmjdQEmgZi306m684z3+xpXLcr1USU11bMma
724 Dhib0vGUYWJ2tOLVE7EqbQbN+7/wxU99HHqx2WBfOpmYhYcS/8K4ZIXar9AyWqwAyDujj/KrjTwN6tj9
725 4AeqV6w3VNaYt2b1VPWaD8DYlGbL6x56lHS2Uomhynb5Cx/5CvRioele8baH8/4j4l++AKD21jMbBqMk
726 GzsFAB8MVB2OVui1bN31nvLGtqW5XqaiuSnRevON6Fo1FS+QogCgatkqZwbdv/4v/cZ+6M2MDV1KRsNT
727 wJb7ClIZhagNRy0jBgADgBIDwCJiADAAKDEALCIGAAOAEgPAIrIaAFBlczjdKMnHitseeqhqxQZDVt+o
728 O9A6Wdb2Phib1SkA6GhrLXc6mqxIjKEK2P23TxyCXioW7ctm0hQAUPIPoWHCk5WdWg9PAcBsZEQlPNyL
729 r6pLobdkzQ1b/TWNjYa42hWt9g23o/s3o3tQmZTcNk0rdWioEzP8td9FW6tN9F48FZuZgvdKNvQZouhY
730 PsdfrFrMAIDXJis0mp/uB8N9Ui23PfqZ8hWdhn38ImpJ9bizdhWMJdNvEwBwhUdmy0ZO9MHYk1/940O4
731 hLeH9mAvtgQANQw434w4JiNxyJf3zknENkDDV1Hd7vKWVOV6JW2b1tfd9rF9MHbQFqgjykQHl3/biTOt
732 fu1vn4Ze7xsvHZ0Z6b8K7JjJvaJGBiyzPoABwABgAGAxAIpcDAAGAAMgDzEAGAAMACwGQJGLAcAAYADk
733 ocUKAKoCy15sNO23tWvHBuh5t933m87mtdtyvbhm985oLgQLclxRT6UdStbQALNDbw1ljn/jGIwdOPHy
734 80QRcmgPjhjI6b1TRCzVi30tUmCToyhCZdBwuFx1qt1hGF2pWLZm3bJbPvQAjO2tf9du6L398MCN1XU6
735 yUrzwE9+Cr2+nz3/jdm+8+dyPS2bDWUz6UGiiEnC067B/bsuxQBgAOQrBsAiFAOAAZCvGACLUAwABkC+
736 YgAsQjEAGAD5igGwCLVYAWAnro2cy9669b0ooYXrhg8eVBtXb8n1UrrqDmedKCEGpRItmnDpxrX/qf4z
737 vbFXvvYzGDt66fR3iSLk9F7YO202lZVaz34tKq/ZWgpqenCVzWYz3OuK5vaO5TffeS+MHVr1gf1KHnqb
738 aMRVNQdPoiQhgy9+7Z9DvWffyvWy6fRMKhG7ShRNTa/OXqN7eN1pMQMAvq3IhBZt23a9F/14y54DasPq
739 zbleSrM5Y5oD/Z6qJf5sKOYWXwG5XrL39JXwS/90FMaO9174AVGEXPQDAWC2mIXK8nOtlFdCFaFKBSyy
740 qmhqW9m6bfdd6EI3PvQp6FENXXrUvW6JdJ+D3uCRf3oufPWMAQCZVDKYjEV6iCKoBVYSAJbYR5ABwACY
741 ixgAi0wMAAbAXMQAWGRiADAA5iIGwCLTYgWAg7g2megSrf1v3X4b7oXefO9H1frVm3K9tG5zypEAGEtt
742 bVWWnY24tYShYSZ6T/XM/OQfX4CxU0NX/4U4f9kxBQFgltQy30Sf74TI3c0Ir1yBAGhcvqJ16060jdho
743 1/7fgZ5GNXYTADTHLqGsykMSAFdOYQBEw5eIIqh8CvKeMgCKWFRCC/mmQkNWrTvuvAf9uvPuR5T6jo25
744 Vka32VOaiio7BYCK9OSsV4snc71Iz4mL40e+8n0YG54aP4pLeHvOfxR4acJ7+xQW5I6ay0F4crTE8GVQ
745 Ub90WeuW97wHBo7f+PifQi+j4caum/TJN6UG0PqKkR9/5esRAIB0MjGZCM9cIIqg0qpTaykWpRgADID5
746 igFQxGIAMADmKwZAEYsBwACYrxgARSwGAANgvmIAFLEWKwDkkB8EgOzBr4SBq9//yP3QS616395sdath
747 y6usrqhpXUWVnQJAIDE65c1EDPvQhS6f6B46/PffgrGJaPgl4vxl4go4x1/2TFMprAs9ZZVaHyCHSw2w
748 rKhrblq+6eZtMDC441Nfhl4qi++r2UU2pEfRMN7YkUPfiF45aRgeTCfiE/FQ8DxRBDU9WAKAyqBc6Hv9
749 josBwACYrxgARSwGAANgvmIAFLEYAAyA+YoBUMRiADAA5isGQBFrMQMAZgCWAEAJPdbcuX8v9JLt770v
750 U7UcAsCW1m35ASA5OuXLRI0A6DlxfuiFv0fJPwQAXibOXyapyBcAhRYFAJkLgADADgSAqZs/8T+hl9YI
751 AJg0vYb0CFrPP3bkK89Hr1IAmD5HFEEBQE67ZgAUscwAUAUD1971GMpSk1hxy4cEANbker/6ArChtOKm
752 AMhG4RfAuaHDhzAAIqG5ACCpXH8yA4AhhXhFXUtTaxcGwORNB/8X9N4hABje9r8GAFcIjwFQ5GIALJwY
753 AEUsBgADYL5iABSxGAAMgPmKAVDEsjwAOm5/mBgF2Hlfthp2AtroTkBiwmggNR70akYAhHtOnB8+/JVv
754 wFhRKX+GS3g7++/iAkB9S3Pr5nffBAMnbvz4l6BHAUCKgkBjeogYBfjqNyMAAJmkBMAMAwDI8gBYceuH
755 Pgi9zLrb9+q17fkNAxIAqMxMzXi1uKHHPnLl5LnxoxgA4cmxF4nzlwCIA6+oAVDZsGxp29Zb0VqAka6P
756 fAF6c1kL0JjsR6m+R4/+w7eiV09153r/uhaAGgakACDvMwOgiMUAWDgxAIpYDAAGwHzFAChiMQAYAPMV
757 A6CIxQBgAMxXDIAi1mIGALUWAE0Fbt226zZ0Uzbd+7CtfrVhz0A5AhDX7B4YS9WIMi0SdStpw5Zdqf4z
758 3ZFXnv02jB3tOfd9ooi5DAMWulLSawFsNiMAmts72m6+A20N1r9yz++QpRJ7A5Jbg4XO4qzALz77nXDv
759 WUPyj2w6NZWKx6iswBQAeC1AkYsBsHBiABSxGAAMgPmKAVDEYgAwAOYrBkARiwHAAJivGABFrMUKACor
760 sGy8KCHIsq533Qw915YPPmZvXGPYGiypq+6w5kJbi1EqUZJJpy1j2LIrO3T+UvoX3/gRjB049er/IYqg
761 EoLIShknYgtdKdH6CIfLXaY6HAZYVi5bs2H5rfc9AmMvV217CHo2G66Yumj91IU2Db98AnoDL33z+6H+
762 8wYwaNnstIAAtTdgL+GZAWDRyWoAKIeBSzduvwF6nq0fOuBsWtuV6yV0u3tWc6PfUzfQY0unnTbNUIH0
763 ke4e7cS3D8PY3uNH/4EoQgKASgseI2KvOwC4fCWVDqfLuDfg8nVdy3fu+yiMveBbezf05D21oS8AEwD0
764 Hj4Ovf5XvvuD2YELhre9rmnTWjZDJf/oIzwGQJGLAbBwYgAUsRgADID5igFQxGIAMADmKwZAEctKACC3
765 BqtfuWE99Mpu2vtxd8u6zbleXFTracWHphJTXeAuWzbjsOmGScLqZE+fo/sIygB88cg/f4koYlzBAJCj
766 ChQACr2FFZoe7fGX1zrcbl+uV966cUvLrkd+A8ZecixF04PnUinrzz//U+j1H3vhcGio53Kup+vajIBA
767 L1EEbw22CCXfSrBtyiy1qBe/rLquGXp17/vwJ0tbN27N9aI2b9mko6oJxqrEHRQH1qHviY6NVUyeOQVj
768 3zz0R/+VOH+Z5CICvBThSRX6TYX2SywJ1C51ef0VuZ6/rWtb3e0f+zSMvZrwLqcKtRF/2wnaBn7+N2h9
769 xcDp114KjQ3CN/usQjf2IcKTIzgMgCIWA2DhxAAoYjEAGADzFQOgiMUAYADMVwyAIhYDgAEwXzEAiliL
770 FQAqcW2yt9pDxKKe/bb33PuBwLLVHblevKRu+XRt5/tgbCqb3yic165lq1xaCvp9f/PRA9CLBCcuphKx
771 KWDLBCPTRNELuV8gqi92p6sUeh27H7ivpm2dIaFKxBVYOVbafic6+Ux+p1piz2q1rkwa+uf+7KE/RmVG
772 Qt2ZdGoS2GGFbuzjhKddw3t4XYkBwACYixgAi0wMAAbAXMQAWGRiADAA5iIGwCITA4ABMBcxABaZFjMA
773 oOTIgJPwUZKQmvYN20qq6gw9/va6lWtdnXehbcQmMp4yokw0l91u03W3qqOe5bKz3/wn6I2ffe1odHzA
774 MG89k0qGEpFZlAFXKER4ZhWY8vKtA6pCzPtv2rBtO/QqNt/5sKeh3ZBQJWbzBKZsFSuoE8UH0nUVnKo7
775 GQxXzPSgbcDOHvrs30Avm8n06LoWBLYcQRkjDhckPF1hABS1bMS1yQrsIGJRkpCyupZ1ntLy2lzP27K+
776 M/Duffth7EDaX0OeAD08iLQicuYV6A2+9v1vhQcvGVJYp2KR6UhwnFrMQn0VyKFBlFlbyR8AlEfev9Xv
777 24Oy/NjX7Nyv1rRuzPXimuqZzrjQvabuk0PR5DCq4Vxd4eFg6fAbKKHH6ef+6u+Ic5X3aQZ4cm0F9baf
778 JTwGQJGLAcAAYADkIQYAA4ABgMUAKHIxABgADIA8ZCUAyL8pAKAkH77KmnaXt8TQOVjSsmZd3Y4PPgBj
779 B7xtG6BHJa+gTkiqIdmPtquKdr96ND3Zb8hWmwgFR0IDF0/C2FhomuoYpNaz5w0AVbWrNlU18Mrp9np8
780 5QHUYdp4y31oFCNdv2FXtnRJa66X0lRXVLOXKHnIo6TSTiVrOH/bZO+4evEnZ2Ds5Re//ixRhJwGDBu2
781 zKUwQcRS06sZAEUus7cancIaSHU4lohGYPArm9pWtG7b/X4YO9B+72PQy2i6eIfld6IeO+4Ir00Ony/J
782 RgzDWNGRK92TJ1/8DoztP/uLN4liZfrwDPDkGVHrBtC9cnl8brvTaejxL69trG1ZfyNKnqJsewjt7Tee
783 UCujGdUw5KqbtCfqPgW0mYhPTxqGTGO9p/umXnoGJVSZHu47QhQrh/vg6IjMqFzoYdTrTgwABgADAIsB
784 UORiADAAGAB5iAHAAGAAYDEAilwMAAYAAyAPLVYA2Ilrkw+VmnnqIjw5v90NPL9NVetg4I0HP/8n0Av6
785 W9vj7kpDj3lWV2wpzUYBiBQcHvPY9WyFS0Fz4Wu06dfRjxPhYVs2FTZcvK5lFE1Dld1ZGqiGXspZ0qbZ
786 jUN2saxaNpV2NMLY2SQJVfLmU2qyh1Gm4+ib3/tleuTisMGbnhifvHLuDFEEBUCzrdWorMoZxcJiADAA
787 GAAWFgOAAcAAsLAYAAwABoCFxQBgADAALKzFCgBq5q3Z9E5qerBXwbkDpIeShzRsfBeaC+9btX2bq6rJ
788 kE8g4yorTZQ1ogYU0xwoR4GcSgxltym6U8UA8ypptJ7dpqfjNtngjdJEwWgUwOZwQdApGZvDr9tUAxgz
789 muIQAPPC2LRGTCW2vX3zDRfhFCX4lCRKiKKd+M4voTdz6Y1zieCwYd5+JpmYTkZmryhYZwlPTgOGsJPX
790 niRiLZH910yLGQCUKABQbzA5hOUgPLRuoCRQuxV69Zt33lra0GZId532VVfHazpWwdjZLG6AFADMZCdW
791 00iLWmRjI65f0/G9kkNzaCXRHM5JLuRBadH1VKZCiaIvkOkffuFH0Jvqu3gxPjtlyIgkvmBmdU0bIA7X
792 TXjy6wfCRgIgTcRaZsiPEgOAAcAAsLAYAAwABoCFxQBgADAALKzFCgDq2sweNAUA2QFmJzyUAdftL0P5
793 AAIrOm/wBuoaDCdTWlNjazRmypVKB5ajrcnSisORVVTD8WX7oxIQk3OeTZ4qCQCiCLO2ThXrVjXUiWZP
794 RRI2LWXohLQnQnFnaBhNxZ166dkXoReeHLmaioUNsQJAIfEfKqtvD+FFFdzY5XlSPf4MAIuLugfUMKJZ
795 WvEW9GOnq1G12w2wKKmqq1uyqmsTjC3f8eAd0AvZ/KVJm/HLIC2qbzyDzzU7h8ZKyaz2o3RKwnAQqKRS
796 dauTl0bVWNCQaCM+PhCcPvfqZRg7dvnsG8ThRxWcqEM2aiqr7zDhyd5+OOJhNgxsaTEAGAB5/Z4BsDjF
797 AGAA5PV7BsDiFAOAAZDX7xkAi1MMAAZAXr9nACxOMQBomSUUsRM+tTWYHC6Ew3vkVGKHy90GvUBTa4uv
798 rNIw5OjwlpZ6qhvrYWzCUYqGJtOaboOJNnSdbuxOO75Ul5LNyq3MjIUmUmpiNgxjB06+ghp1LDQznUkl
799 4vBUFToFNzW9V05vhr+XjTpMxEYJz2zat6V7/CkxAGgxABgAlhADgBYDgAFgCTEAaDEAGACWEAOAFgOA
800 AWAJMQDyl9nuXtTIgE/BawkkENBUYpuqohwBLm9Jld3pMqy9V+0Oj+ryVsBYTXWiMjVdV3V4rvr/uwbj
801 8Yl5w6qiazYIAE3L2rJptJ4+NjOJttvKZlIhXdNgrPwbZuqVonrx5QgAnMsvp/HGiViz+f3c2PMQA2Bu
802 ou6Xk/BkY7cTcdTeeLWER2Ukcpn83k941DCmGcAoyeEynfCoufTUW5lqwGZvcGrDTtnQYcPOEmX+mw/F
803 jT9PMQDmJgYAFgOgiMUAmJsYAFgMgCIWA2BuYgBgMQCKWAyAucls2jCUk/Blp6CXiA0QnmzoLqJMn0ks
804 lKrQeQ7mAwD5NwWACOHJ7LuwsaZNYs2264INO2tyfGp6LwMgTzEA5i/qHqqELz0qAzHVqKmMRBIobiKW
805 ggr1BWB2rpTMAEC9bameedmAYWOVfyfz/H1WwQ2bh/augRgA8xcDAIsBUCRiAMxfDAAsBkCRiAEwfzEA
806 sBgARSIGwPzFAMBiABSJ/i+AUUDvkRmAQgAAAABJRU5ErkJggigAAAAwAAAAYAAAAAEAIAAAAAAAAAAA
807 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
808 AAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABAAAAAoAAAAUAAAAIAAAACoAAAAzAAAANwAAADgAAAA4AAAA
809 NQAAADEAAAAoAAAAHAAAABEAAAAIAAAAAwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
810 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
811 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAGAAAAEAAAACAAAAA2AAAASgAAAFsAAABnAAAA
812 awAAAG0AAABtAAAAagAAAGQAAABXAAAARQAAADEAAAAbAAAADQAAAAQAAAABAAAAAAAAAAAAAAAAAAAA
813 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
814 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAUAAAATAAAAKQAAAEUHBgRoOjAg
815 lWJNLLtvUSTKbk4dy25NG8tvUCDLa1Epx1REK7QYFA6QAAAAdgAAAF8AAAA9AAAAIgAAAA4AAAADAAAA
816 AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
817 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABQAAABEAAAAvCQgF
818 V1NCJ6CsfjbqvoAh/r56E/++eRD/vnkR/755Ef++eRD/vnkR/758F/+6gi36g2Qx1iwkF6AAAABtAAAA
819 SQAAACcAAAANAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
820 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAACAAAA
821 DgAAACUWEgtbfV8xvbl+I/i/exT/vnoT/756E/+/exb/v30Y/799Gf6/fBf/v3sU/756E/++ehP/vnwX
822 /q17L/I9MR6pBAMCcAAAAEQAAAAcAAAACQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
823 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
824 BAAAAAEAAAAHAAAAGwICAT+LazjFvn4d/L97FP+/exT/v3wV/76FLfetg0K/mnhDmJZ1QoyogkeguYo/
825 1L+CIv2/exP/v3sU/797E/+yfi/1PzMfpwAAAGQAAAAyAAAAEwAAAAQAAAAAAAAAAAAAAAAAAAAAAAAA
826 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
827 AAAAAAAAAAAAAAAAAQAAAAQAAAAPBwYEMXBaN57Afxr/v3wU/798FP+/fxz9mXU9wDUsHkkAAAAXAAAA
828 DAAAAAgAAAAJDw0JE2FQNla8iDbmwHwV/798FP+/exL/qHgu7R8aEZAAAABMAAAAIwAAAAkAAAABAAAA
829 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
830 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAgAAAAZLSUWW7SBMerAfBT/wH0V/8B9F/+TcTvDIhwS
831 SQAAABcAAAAGAAAAAgAAAAAAAAABAAAAAgAAAAhSQylYuIIu5sB8FP/AfRX/vn4b/XFXLsgAAABjAAAA
832 MgAAABEAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
833 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAA8AAAAieV81m8GAG//AfRX/wH0V
834 /7yGMfYfGhJbAAAAIgAAAAkAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEGBQMOim5AjsGBHf/AfRX/wH0V
835 /7mGNvgUEQx9AAAAQQAAABkAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
836 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAABcYFA40pXkz
837 1cF+FP/Bfxb/wYAa/n1hMrgAAAA6AAAAFQAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGIhsR
838 NbiGNd7BfhT/wX4V/8GAGf9VRSurAAAATgAAACEAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
839 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
840 BgAAAB05Lx9SuIEs6cJ+Ff/Cfhb/u4Aj90M2II4AAAAwAAAAEAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAA
841 AAAAAAAAAAADEQ8KHJd0O7HCfhT/wn8W/8F+FP97XjDJBgUDWQAAACcAAAAIAAAAAAAAAAAAAAAAAAAA
842 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
843 AAAAAAAAAAAAAAAABwAAACJFOCJpvoIk88J/Fv/CfxX/sX0q7iojGHYAAAAqAAAADAAAAAEAAAAAAAAA
844 AAAAAAAAAAAAAAAAAAAAAAAAAAACAQEAEnBZNIrCfxb/woAW/8J+FP+WcDHZEA4JYwAAACsAAAAJAAAA
845 AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
846 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAACRUQSR3wYMf+cOBF//DfxX/p3kv5xcUDWkAAAAnAAAA
847 CwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAEWFQNG/Dghv/w4AW/8N/Ff+leDDjGBQN
848 agAAAC0AAAALAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
849 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAACRhTCt8woMf+sOBF//DgBX/oHYx
850 4w4MCGYAAAApAAAACwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAEVpKMmXDhB7/w4EX
851 /8OAFv+qezDnGhYOawAAACwAAAAKAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
852 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAAACFdSSl3woQg
853 +cSCGP/EgRb/oHUx4w0LCGoAAAAsAAAADQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAA
854 E1hJMWfEhR//xIEX/8SBFv+sfDDmGxYOaAAAACoAAAAJAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
855 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
856 BgAAABtLPCJqwYUi9sSCGP/EgRb/p3ov6RYTDXcAAAA0AAAAEgAAAAIAAAAAAAAAAAAAAAAAAAAAAAAA
857 AAAAAAAAAAAEAAAAGF5NMnfEhBz/xIIX/8SBFv+nezLgGBQNYAAAACUAAAAHAAAAAAAAAAAAAAAAAAAA
858 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
859 AAAAAAAAAAAAAAAABQAAABVFOCNXwIYo78WCGP/Fghf/sX4q8CcgFosAAABAAAAAGgAAAAUAAAAAAAAA
860 AAAAAAAAAAAAAAAAAAAAAAEAAAAIAAAAIWlUMpPEgxn/xIIY/8SBFv+cdTTVExALUwAAAB4AAAAFAAAA
861 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
862 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAA48MiI8vIcw5MWDF//Fgxj/vIIk+D0xHaYAAABTAAAA
863 KAAAAAwAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAARCgkGNYhpNrnFghb/xYMZ/8WCFv+EZTO/CAcF
864 QQAAABcAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
865 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAcVEQwZpXw5xMaDF//GhBn/xYUc
866 /3tfMNEAAABwAAAAQwAAACAAAAALAAAABAAAAAIAAAADAAAABgAAAA4AAAAoHxkQYLSDM+fGhBf/xoQY
867 /8aFHP9cTDCRAAAALQAAAA4AAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
868 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAALhmo8
869 hMWHH/7GhRn/xoUZ/7eFMvYZFQ6WAAAAZgAAAEEAAAAkAAAAGAAAABMAAAATAAAAGwAAACoEBAJMbFUv
870 qsSHI/3GhRn/xoQZ/8CLNfYoIhdVAAAAHQAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
871 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
872 AAAAAAEAAAAFPjMgO8KNNujGhRj/xoUZ/8aFGv+FaDjZDQsHjwAAAGwAAABOAAAAPgAAADYAAAA3AAAA
873 QQAAAFU4Lh2Qt4Qv8caFGf/GhRr/xoYd/oxtOrUAAAAsAAAAEAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAA
874 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
875 AAAAAAAAAAAAAAAAAAAAAAAAAAABDwwIDYpxR3vHiCD/x4YZ/8eGGv/GiSD/jGsz3iwkF6gCAgGGAAAA
876 eAAAAHIAAABzEg8Kgk9AJq26hzL1x4YZ/8eGGv/HhRj/soI03yskGFEAAAAWAAAABgAAAAEAAAAAAAAA
877 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
878 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxMQCxWrhES1x4gg/MeGGv/Hhhr/xoce
879 /rWCLPWNbDXdc1szy2xWMcR+YzXPoHcz5sCGJvnHhhr/x4Ya/8eGGf/AizHvXkwtdQICAR4AAAAJAAAA
880 AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
881 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMtJRgoq4VF
882 s8eKI/7Ihxj/yIca/8iHGf/Ihxv/x4kf/8eKIf/IiB3/yIcZ/8iHGv/Ihxr/yIcZ/8ONM/JqVjZyCggG
883 IAAAAAsAAAACAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
884 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
885 AAAAAAEAAAAGEg8KFnJdO2y+jz/cx4sm/MiIHP/Ihxn/yIcZ/8iHGf/Ihxn/yIga/8iJH//CjTLvm3lB
886 sjowIEsAAAAbAAAADgAAAAYAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
887 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
888 AAAAAAAAAAAAAAAAAQAAAAUAAAAOAAAAGgQDAigmHxRLZ1Ixd5FxPaOhejjBsoU6zraIO9CtgzvGmnY7
889 rodrPYZBNSBUExALOAAAAC8AAAAoAAAAHQAAABEAAAAGAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
890 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
891 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAA4AAAAkAAAAOwAAAE0AAABTAAAASQAAADcLCgYjJiAW
892 HS4nGxofGhIUBAMCEgAAABsAAAAwAAAARQAAAFIAAABRAAAAQQAAACoAAAARAAAABQAAAAEAAAAAAAAA
893 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
894 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAACwAAACEKCgpNNDQ0h0lJSag7PDylExMT
895 ggAAAFsAAAAxAAAAFAAAAAUAAAADAAAADwAAACgUFBRcQkJCl1VVVbE2NjahCQkJdwAAAFEAAAAnAAAA
896 DgAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
897 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAFAsLCzmJiYm6x8fH
898 8dTV1fvNzs74mZmZ3SMjI4sAAABIAAAAIAAAAAgAAAAFAAAAGBYWFkijo6PTz8/P99bW1v3Jycn3fn5+
899 zA0NDXYAAAA7AAAAFwAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
900 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAwQE
901 G19gYH/Y2Nj+39/f/+Pj4//g4OD/2dnZ/o6OjtIAAABVAAAAJwAAAAoAAAAHDAwMJIaGhqbd3d3/4ODg
902 /+Hh4f/h4eH/0tPT+1dXV6wAAABHAAAAHgAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
903 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
904 AAAAAAAAAAAEGxsbKLS0tMjg4OD/5eXl/+np6f/l5eX/4ODg/8vMzPgQEBBYAAAAJQAAAAkAAAAGICAg
905 NMPExNvg4OD/5ubm/+np6f/l5eX/3t7e/6anp9cAAABGAAAAHQAAAAYAAAAAAAAAAAAAAAAAAAAAAAAA
906 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
907 AAAAAAAAAAAAAAAAAAAAAAAAAAADHx8fJLy9vcrg4OD/5eXl/+np6f/m5ub/4ODg/8vLy/QQERFFAAAA
908 GwAAAAYAAAAEIiIiLcbGxtjf39//5ubm/+np6f/l5eX/3t7e/66urtMAAAA4AAAAFgAAAAQAAAAAAAAA
909 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
910 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEREREJaXl5nd3d3/4ODg/+Xl5f/h4eH/3Nzc
911 /6ioqMEAAAAnAAAADwAAAAMAAAACGBgYFampqa3e3t7/4+Pj/+Pj4//i4uL/2tra/X9/f54AAAAkAAAA
912 DQAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
913 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzQ0NB2/wMDH2NfX
914 +9zc3P/X2Nj8rq+vwiYmJj0AAAAQAAAABQAAAAEAAAAAAAAABDg4OCbExMTR2dnZ/dzc3P/X2Nj8q6ur
915 viIiIjYAAAAPAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
916 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAACAAAAAwAAAAQAAAAEAAAA
917 BAAAAAUvMDAifH19YJGSkoF3d3dhJiYmKgAAAA0AAAAFAAAAAQAAAAAAAAAAAAAAAQAAAAQ8PDwohoaG
918 a5SUlIx5enpmJiYmKgAAAA0AAAAGAAAABAAAAAUAAAAFAAAABAAAAAIAAAABAAAAAAAAAAAAAAAAAAAA
919 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAYAAAANAAAA
920 FAAAABgAAAAXAAAAEQAAAAoAAAAFAAAABAAAAAUAAAAFAAAAAwAAAAIAAAAAAAAAAAAAAAAAAAAAAAAA
921 AAAAAAAAAAACAAAABAAAAAUAAAAFAAAABQAAAAUAAAAJAAAAEQAAABcAAAAaAAAAFgAAABAAAAAHAAAA
922 AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAA
923 CgAAABgAAAAsAAAAPAAAAEYAAABDAAAANgAAACQAAAARAAAABgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAA
924 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABAAAAA4AAAAgAAAANAAAAEMAAABJAAAA
925 QgAAADIAAAAcAAAADQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
926 AAAAAAEAAAAJAAAAGwAAADYLCwtdGRkZexwcHIgQEBB+AQEBZgAAAEoAAAAnAAAAEAAAAAQAAAAAAAAA
927 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAADQAAACICAgJFFBQU
928 ax8fH4YcHByLDAwMegAAAF8AAAA9AAAAHwAAAAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
929 AAAAAAAAAAAAAAAAAAAAAAMAAAATAAAAMScnJ22LjIzMtbW16bu7u++enp7hS0xMsgEBAXMAAABEAAAA
930 HwAAAAoAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAA
931 GgAAADtaWlqbpqen3cHCwvK7u7vwjo6O2igoKJsAAABhAAAAOAAAABcAAAAAAAAAAAAAAAAAAAAAAAAA
932 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAhQEFBccLCwu3d3d3/3t7e/97e3v/d3d3/0NDQ
933 +2tra8IAAABhAAAAMgAAABEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
934 AAAAAAEAAAAMCAgILW5ubpnX19f/3d3d/93d3f/d3d3/3d3d/8XFxfcuLy+YAAAAUwAAACUAAAAAAAAA
935 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgZGho1qKmpzdzc3P/f39//4+Pj
936 /+Tk5P/f39//3d3d/8zNzfomJiaBAAAAPAAAABYAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
937 AAAAAAAAAAAAAAAAAAAAAAEAAAAQLy8vUMbGxuve3t7/4eHh/+Li4v/i4uL/4eHh/93d3f+Wl5fXDw8P
938 aAAAAC4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApAQEBYzs7O
939 7t/f3//j4+P/5+fn/+fn5//j4+P/39/f/9vb2/9ZWVmiAAAAPQAAABcAAAACAAAAAAAAAAAAAAAAAAAA
940 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAARcXFxeNnZ2f/g4OD/5eXl/+jo6P/n5+f/4+Pj
941 /97e3v/GxsbyISEhdgAAADEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
942 AAAAAAdKSkpk1dXV9eDg4P/m5ub/6enp/+rq6v/m5ub/4eHh/9zc3P9lZWWiAAAAMwAAABIAAAACAAAA
943 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAANhYaGhNra2v/g4OD/5ubm
944 /+rq6v/p6en/5OTk/97e3v/P0ND4JSUlcQAAACoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
945 AAAAAAAAAAAAAAAAAAAAAAVFRUVO0NHR7d7e3v/i4uL/5ubm/+fn5//j4+P/39/f/9jY2P9QUVF6AAAA
946 JAAAAAsAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIcHFx
947 YtfX1/zf39//5OTk/+fn5//n5+f/5OTk/97e3v/GxsbsISEhWgAAAB4AAAAAAAAAAAAAAAAAAAAAAAAA
948 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIjIyMctLS0yNzc3P/e3t7/4uLi/+Pj4//f39//3Nzc
949 /8DBweMTExM2AAAAFAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
950 AAAAAAAAAAAELi4uK8bGxtfe3t7/4eHh/+Li4v/h4eH/39/f/93d3f+Xl5e7Dw8PMwAAABEAAAAAAAAA
951 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFWltbQ8XGxtba2tr/3d3d
952 /93d3f/a2tr/u7u71UNDQ1IAAAATAAAABwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
953 AAAAAAAAAAAAAAAAAAAAAAAAAAABAwMDBlBQUErNzc3n29vb/93d3f/c3Nz/2dnZ/b6/v9gwMDA/AAAA
954 EwAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBgYG
955 CD0+PiuUlJSKn6Cgtp+fn7eKioqFLy8vOAMDAxAAAAAGAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
956 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQMDAwZKS0s+lpeXlqOjo8GhoaG+iYmJ
957 iTY2NjYAAAAPAAAABgAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
958 AAAAAAAAAAAAAAAAAQAAAAIAAAAFAAAACAAAAAkAAAAIAAAABQAAAAMAAAABAAAAAAAAAAAAAAAAAAAA
959 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAA
960 BgAAAAkAAAAKAAAACQAAAAYAAAADAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//gAAf/8A
961 AP/8AAA//wAA//gAAB//AAD/8AAAH/8AAP/QAAAP/wAA/8AAAA//AAD/wAAAB/8AAP/AAQAH/wAA/8AD
962 wAf/AAD/wAfgB/8AAP/AB+AH/wAA/8AH4AP/AAD/wA/gA/8AAP/AD+AD/wAA/8AH4AP/AAD/wAfgB/8A
963 AP/AB8AH/wAA/8ADwAf/AAD/wAAAB/8AAP/AAAAP/wAA/+AAAA//AAD/8AAAD/8AAP/4AAAf/wAA//gA
964 AB//AAD//AAAP/8AAP/4AAAf/wAA//gAAA//AAD/8AAAD/8AAP/wAAAP/wAA//AAAA//AAD/8AAAD/8A
965 AP/wAAAP/wAA//AAAA//AAD/+ACAH/8AAP8AAYAA/wAA/gAH4AB/AAD8AD/8AD8AAPgAP/wAPwAA+AAf
966 /AA/AAD4AB/4AD8AAPgAH/gAPwAA+AAf+AA/AAD4AB/4AD8AAPgAH/wAPwAA+AA//AA/AAD4AD/8AD8A
967 APwAf/4APwAA/gD//wB/AAAoAAAAIAAAAEAAAAABACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
968 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAOAAAAJAAAADYAAABGAAAA
969 SQAAAEkAAABEAAAAMwAAACAAAAAMAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
970 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAFQAAADEQDQhkOCwa
971 kUk1FqpJMxKrSTUXqj0wHJ4KCAZ1AAAAVwAAACoAAAAQAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
972 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABIUEAlRXUUf
973 p7Z9JfW+exb/vnkS/756E/++eRL/vnoU/694JfRsTyLJDgsGcwAAAD0AAAAOAAAAAgAAAAAAAAAAAAAA
974 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAALAAAA
975 LHpaJ7m2eRz1vnsU/75/HvuufjPMpHg0tbOBNMu9gSP1vnoT/7p7GfxrTiLEDgsHbQAAACIAAAAHAAAA
976 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
977 BAYFAyFgSiaPv30W/798FP+bbinPPTAcWAAAAA4AAAAGAwICCS4mGiykdSrMvnwX/Lp7GfthRx+9AAAA
978 RQAAABUAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
979 AAAAAAEAAAAJHxkOQZ1uJdLAfBT/voEh+zInF2MDAwIZAAAAAgAAAAAAAAAAAAAAAkg3HVOzeyTjv30V
980 /6t4Ke8IBwViAAAAIwAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
981 AAAAAAAAAAAAAAAAAgAAABJQPB1zun0d88B/GP6GYSfFAAAAKwAAAAgAAAAAAAAAAAAAAAAAAAAACQcE
982 EnxdKZnBfhT/wX8W/0E0HpQAAAAzAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
983 AAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAGGlOIpHAfxv6vX4b+l1FH6QAAAAiAAAABQAAAAAAAAAAAAAA
984 AAAAAAACAQEJVUMlbMJ/Ff/BfhT/YkoirQQDAjwAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
985 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAbe1kjpMKBGf24fB33RDMXkgAAAB4AAAAEAAAA
986 AAAAAAAAAAAAAAAAAAAAAAc/NCJNw4Ea/8N/Ff93VyS8CAYEQQAAAAcAAAAAAAAAAAAAAAAAAAAAAAAA
987 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAABl/XSakw4Ia/bd8HvY+LhWRAAAA
988 IQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAABzswIErDgxz/w4AW/3tZJL0IBwQ/AAAABwAAAAAAAAAAAAAA
989 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAE3BTIpTDgxz7u38e
990 +Es4GaIAAAAsAAAACQAAAAAAAAAAAAAAAAAAAAAAAAANQTQhX8SDGf/EgRb/dFYlsQcGBDYAAAAEAAAA
991 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAMaU8m
992 e8KEHvfAghz8YUceugAAAD8AAAASAAAAAQAAAAAAAAAAAAAAAgICARlWQySCxIIX/8SCFv9hSiScAwMC
993 KQAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
994 AQAAAAQ8LhhIt38k5MWEGf+hdCnpBQQDbQAAADcAAAAQAAAACQAAAAoAAAAUEw8JS45nJ8fGhBf/xIYg
995 /TEpGmEAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
996 AAAAAAAAAAAAAAAAARwXDSCecyy7xoUY/8KFH/1DNR2tAgIBagAAADsAAAAtAAAALgAAAEFOPB2ZuH8i
997 8saFGv+qey7cCAcFLQAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
998 AAAAAAAAAAAAAAAAAAAAAAAAAAAABAMCBEQ4Iz/Ahibux4Ya/7mBIvhwUyLPLSMRniQdEI8xJhOYY0oh
999 u8GGJPvHhhn/tX8m5UU1G2kAAAANAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1000 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBAMCB3ZaLH7Ahyjtx4YZ/8OFHv2xfCTyqXkm
1001 7LN9I/LBhR/7x4YZ/8WJJPlmTyl8DQoGIAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1002 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBAMCDjctHEGUbi64sH0n
1003 27yDI+zBhyTvvIQk6bSAJ9uJZy2rPjIdWgAAABsAAAANAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1004 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAgAAAAjAAAA
1005 OxMQCVMrIhNaRDUaWFlFJFdGNhxMMCUUQRANCD4CAQFEAAAAPwAAACgAAAAKAAAAAgAAAAAAAAAAAAAA
1006 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAgIC
1007 IERERIRxcXG7XV1dth0dHX0AAAAuAAAADAAAAAgEBAQoUlJSlXt7e8RUVFSwEhISbwAAACQAAAAIAAAA
1008 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1009 AAAAAAstLi5NxsbG7tvb2/3S0tL5iIiIzQAAAEIAAAASAgICD0NDQ2TPz8/03Nzc/s3NzfdmZma1AAAA
1010 NgAAAA0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1011 AAAAAAAAAAAACQkJD4ODg5Ph4eH/5+fn/+Pj4//S0tL5CgoKQgAAABEKCgoUjY6OouHh4f/o6Oj/4uLi
1012 /7q6uuMAAAA0AAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1013 AAAAAAAAAAAAAAAAAAAAAAAHBwcJc3R0eN/f3//k5OT/4ODg/8HBweEDAwMnAAAACQkJCQuAgICH4ODg
1014 /+Tk5P/g4OD/qKioygAAACIAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1015 AAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAIXFxcPnZ2dor+/v9CkpaW1Ozw8TgAAAAkAAAACAAAA
1016 ARgYGBOjo6OqwcHB1aSlpbY5OTlKAAAACQAAAAIAAAACAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1017 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAsAAAAQAAAADwAAAAoYGBgVLi4uKh4eHh0EBAQJAAAA
1018 AQAAAAAAAAAAAAAAARwcHBcvLy8uHx8fHwQEBAsAAAAKAAAAEAAAABIAAAANAAAABAAAAAEAAAAAAAAA
1019 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAAcBQUFQwkJCVgDAwNRAAAAOAAAABMAAAAEAAAA
1020 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAEAICAjUJCQlTBwcHXAEBAUgAAAAgAAAA
1021 CwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAGBEREUpra2uxhISEylpaWrMRERF2AAAA
1022 MAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAApT09PkYOEhMZ6enrIMjIy
1023 mAAAAEkAAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQmJydKqKio0t7e3v/f39//2tra
1024 /qOjo+IICAhaAAAAHgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBwcHHGNjY4vb29v/3t7e
1025 /97e3v/S0tL7Nzg4kQEBATkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmJiYn/U1NT24+Pj
1026 /+Xl5f/g4OD/2NnZ/jAwMHkAAAAjAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEeHh4vqqqq
1027 yeDg4P/l5eX/5OTk/9/f3/+CgoLBCQkJRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEdnZ2
1028 j9vb2/vl5eX/6Ojo/+Pj4//c3Nz/Pj4+cgAAABoAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1029 ACoqKjC6u7vS4eHh/+fn5//m5ub/4ODg/5OUlMYLCws8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1030 AAAAAAJeXl5l0tLS8eDg4P/k5OT/39/f/8/Pz/MaGho8AAAADQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1031 AAAAAAAAAAAAFhYWGJ6enqzf39//4+Pj/+Li4v/e3t7/dnZ2nQcHByQAAAAAAAAAAAAAAAAAAAAAAAAA
1032 AAAAAAAAAAAAAAAAABQUFBJ5enp4xMTE3cjIyOeurq7ETU1NXgAAAAwAAAACAAAAAAAAAAAAAAAAAAAA
1033 AAAAAAAAAAAAAAAAAAAAAAAAAAACJCQkJKytrb7Hx8fmxcXF45+goLMVFRUkAAAACAAAAAAAAAAAAAAA
1034 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAg4ODgwyMjI3NTU1QyMjIygFBQUMAAAAAgAAAAAAAAAAAAAA
1035 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACISEhITQ1NUEzMzNAGxsbIAAAAAYAAAABAAAA
1036 AAAAAAAAAAAAAAAAAP/AA///gAH//wAA//wAAP/+AAB//AGAf/wDwH/8A8B//APAf/wDwH/8A8B//AGA
1037 f/wAAP/+AAD//wAA//8AAf//gAH//wAA//8AAP//AAD//wAA//8AAP/8AAA/+AGAD/AP8A/gD/AP4Afg
1038 D+AH4A/gB/AP4A/wD/AP8A/wH/gPKAAAABAAAAAgAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1039 AAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAFhIOCFQkGgp5IRkMdQICAUgAAAASAAAAAQAAAAAAAAAAAAAA
1040 AAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAE2hKG6q8fBv8tHoj4Lt9H++lbx3uIhkMeAAAAA4AAAAAAAAA
1041 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABEk1F3G/fRj+QzIXaQAAAAYQDQkOl2khwKFuHuoCAQE4AAAA
1042 AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyNYh68mGke2AAAABYAAAAAAAAAADcqFUjBfhX/KiAQ
1043 bAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOoG4f0HxXGsQAAAASAAAAAAAAAAAeGRAqw4EY
1044 /0AvFH4AAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACJdqIMCKYBzUAAAAIgAAAAAAAAAAJh4R
1045 QsSCF/84KhRrAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJrTh2Cu4Ae+RMPCG8AAAAgAAAA
1046 I2pMHKe+giD2DgwHKwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGBQMEq97JdateB/wa00b
1047 w4JdHdDFhx/8W0McegAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMPDAcrYUcc
1048 kIdhIaJ5WB+UNioVYgAAACQAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwflZaW
1049 ynV1db4AAAAkEhISKZ6entNmZmazAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQUJC
1050 SePj4//V1tb2AwMDIUhISFLj4+P/ycnJ6wAAABoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAA
1051 BwYGBgtoaWltQEFBSgAAAAMNDQ0FbGxscUBAQEoAAAAJAAAACAAAAAEAAAAAAAAAAAAAAAAAAAAABAQE
1052 Ij8/P4YbHBxtAAAAFQAAAAAAAAAAAAAAAAAAAAAAAAASNzc3eC0tLYEAAAAkAAAAAAAAAAAAAAAAAAAA
1053 A4GBgaTh4eH/zc7O9w4ODkUAAAABAAAAAAAAAAAAAAAATU1NaN/f3//d3d3+MTExdAAAAAAAAAAAAAAA
1054 AAAAAAKgoKC45OTk/9vb2/wWFhY1AAAAAAAAAAAAAAAAAAAAAGZmZnHj4+P/4eHh/0dHR3EAAAAAAAAA
1055 AAAAAAAAAAAALCwsJn19fY9JSUlWAAAABAAAAAAAAAAAAAAAAAAAAAAODg4KcnJygWxsbH4GBgYNAAAA
1056 AAAAAADwD6xB4A+sQeAHrEHhh6xB4YesQeGHrEHgD6xB8A+sQfAPrEHwD6xB8A+sQcADrEHDw6xBgcOs
1057 QYPDrEHDw6xB
1058</value>
1059 </data>
1060</root>
1061\ No newline at end of file0\ No newline at end of file
10621
=== removed file 'client/dotNET/BlackList.cs'
--- client/dotNET/BlackList.cs 2013-05-01 19:24:35 +0000
+++ client/dotNET/BlackList.cs 1970-01-01 00:00:00 +0000
@@ -1,210 +0,0 @@
1/*
2 * Xibo - Digitial Signage - http://www.xibo.org.uk
3 * Copyright (C) 2006,2007,2008 Daniel Garner and James Packer
4 *
5 * This file is part of Xibo.
6 *
7 * Xibo is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU Affero General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * any later version.
11 *
12 * Xibo is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU Affero General Public License for more details.
16 *
17 * You should have received a copy of the GNU Affero General Public License
18 * along with Xibo. If not, see <http://www.gnu.org/licenses/>.
19 */
20using System;
21using System.Collections.Generic;
22using System.IO;
23using System.Text;
24using System.Xml;
25using System.Windows.Forms;
26using System.Diagnostics;
27
28namespace XiboClient
29{
30 class BlackList : IDisposable
31 {
32 private xmds.xmds xmds1;
33 private HardwareKey hardwareKey;
34
35 private string blackListFile;
36
37 public BlackList()
38 {
39 // Check that the black list file is available
40 blackListFile = Application.UserAppDataPath + "//" + Properties.Settings.Default.blackListLocation;
41
42 // Get the key for this display
43 hardwareKey = new HardwareKey();
44 }
45
46 /// <summary>
47 /// Adds a media item to the Black list. Adds Locally and to the WebService
48 /// </summary>
49 /// <param name="id">The Media ID</param>
50 /// <param name="type">The BlackListType, either All (to blacklist on all displays) or Single (to blacklist only on this display)</param>
51 /// <param name="reason">The reason for the blacklist</param>
52 public void Add(string id, BlackListType type, string reason)
53 {
54 // Do some validation
55 if (reason == "") reason = "No reason provided";
56
57 int mediaId;
58 if (!int.TryParse(id, out mediaId))
59 {
60 System.Diagnostics.Trace.WriteLine(String.Format("Currently can only append Integer media types. Id {0}", id), "BlackList - Add");
61 }
62
63 // Send to the webservice
64 xmds1 = new XiboClient.xmds.xmds();
65 xmds1.BlackListCompleted += new XiboClient.xmds.BlackListCompletedEventHandler(xmds1_BlackListCompleted);
66
67 xmds1.BlackListAsync(Properties.Settings.Default.ServerKey, hardwareKey.Key, mediaId, type.ToString(), reason, Properties.Settings.Default.Version);
68
69 // Add to the local list
70 AddLocal(id);
71 }
72
73 private void xmds1_BlackListCompleted(object sender, XiboClient.xmds.BlackListCompletedEventArgs e)
74 {
75 if (e.Error != null)
76 {
77 System.Diagnostics.Trace.WriteLine("Error sending blacklist", "BlackList - BlackListCompleted");
78 }
79 else
80 {
81 System.Diagnostics.Trace.WriteLine("Blacklist sending complete", "BlackList - BlackListCompleted");
82 }
83
84 return;
85 }
86
87 /// <summary>
88 /// Adds the Media Items in the XMLNodeList to the Blacklist (will only add these locally)
89 /// </summary>
90 /// <param name="items">The XMLNodeList containing the blacklist items. Each node must have an "id".</param>
91 public void Add(XmlNodeList items)
92 {
93 Trace.WriteLine(new LogMessage("Blacklist - Add", "Adding XMLNodeList to Blacklist"), LogType.Info.ToString());
94
95 foreach (XmlNode node in items)
96 {
97 XmlAttributeCollection attributes = node.Attributes;
98
99 if (attributes["id"].Value != null)
100 {
101 AddLocal(attributes["id"].Value);
102 }
103 }
104 }
105
106 /// <summary>
107 /// Adds the Media ID to the local blacklist
108 /// </summary>
109 /// <param name="id">The ID to be blacklisted.</param>
110 private void AddLocal(string id)
111 {
112 try
113 {
114 StreamWriter tw = new StreamWriter(File.Open(blackListFile, FileMode.Append, FileAccess.Write, FileShare.Read), Encoding.UTF8);
115
116 tw.Write(String.Format("[{0}],", id));
117 tw.Close();
118 }
119 catch (Exception ex)
120 {
121 System.Diagnostics.Debug.WriteLine(ex.Message, "Blacklist - Add");
122 System.Diagnostics.Trace.WriteLine(String.Format("Cant add {0} to the blacklist", id));
123 }
124
125 return;
126 }
127
128 /// <summary>
129 /// Truncates the local Blacklist
130 /// </summary>
131 public void Truncate()
132 {
133 try
134 {
135 File.Delete(Application.UserAppDataPath + "//" + Properties.Settings.Default.blackListLocation);
136 }
137 catch (Exception ex)
138 {
139 System.Diagnostics.Trace.WriteLine("Cannot truncate the BlackList", "Blacklist - Truncate");
140 System.Diagnostics.Trace.WriteLine(ex.Message);
141 }
142 }
143
144 /// <summary>
145 /// Checks whether or not a media item is in the blacklist
146 /// </summary>
147 /// <param name="fileId"></param>
148 /// <returns></returns>
149 public Boolean BlackListed(string fileId)
150 {
151 StreamReader sr = null;
152
153 // Store as an XML Fragment
154 if (!File.Exists(blackListFile))
155 {
156 return false;
157 }
158
159 try
160 {
161 // Use an XML Text Reader to grab the shiv from the black list location.
162 sr = new StreamReader(File.Open(blackListFile, FileMode.Open, FileAccess.Read, FileShare.ReadWrite));
163
164 string listed = sr.ReadToEnd();
165
166 return listed.Contains(String.Format("[{0}]", fileId));
167 }
168 catch (Exception ex)
169 {
170 System.Diagnostics.Debug.WriteLine(ex.Message, "BlackList - BlackListed");
171 }
172 finally
173 {
174 // Make sure the xr is closed
175 if (sr != null) sr.Close();
176 }
177
178 return false;
179 }
180
181 #region IDisposableMethods
182
183 private Boolean disposed;
184
185 protected virtual void Dispose(bool disposing)
186 {
187 if (!disposed)
188 {
189 if (disposing)
190 {
191 // Dispose managed resources.
192 }
193
194 // There are no unmanaged resources to release, but
195 // if we add them, they need to be released here.
196 }
197 disposed = true;
198 }
199
200 public void Dispose()
201 {
202 Dispose(true);
203 GC.SuppressFinalize(this);
204 }
205
206 #endregion
207 }
208
209 public enum BlackListType { Single, All }
210}
2110
=== removed file 'client/dotNET/CacheManager.cs'
--- client/dotNET/CacheManager.cs 2013-05-01 19:28:16 +0000
+++ client/dotNET/CacheManager.cs 1970-01-01 00:00:00 +0000
@@ -1,387 +0,0 @@
1/*
2 * Xibo - Digitial Signage - http://www.xibo.org.uk
3 * Copyright (C) 2009 Daniel Garner
4 *
5 * This file is part of Xibo.
6 *
7 * Xibo is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU Affero General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * any later version.
11 *
12 * Xibo is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU Affero General Public License for more details.
16 *
17 * You should have received a copy of the GNU Affero General Public License
18 * along with Xibo. If not, see <http://www.gnu.org/licenses/>.
19 */
20using System;
21using System.Collections.Generic;
22using System.Collections.ObjectModel;
23using System.Text;
24using System.IO;
25using System.Windows.Forms;
26using System.Xml.Serialization;
27using System.Diagnostics;
28using System.Xml;
29
30namespace XiboClient
31{
32 public class CacheManager
33 {
34 public static object _locker = new object();
35 public Collection<Md5Resource> _files;
36
37 public CacheManager()
38 {
39 _files = new Collection<Md5Resource>();
40 }
41
42 /// <summary>
43 /// Gets the MD5 for the given path
44 /// </summary>
45 /// <param name="path"></param>
46 /// <returns></returns>
47 public String GetMD5(String path)
48 {
49 // Either we already have the MD5 stored
50 foreach (Md5Resource file in _files)
51 {
52 if (file.path == path)
53 {
54 // Check to see if this file has been modified since the MD5 cache
55 DateTime lastWrite = File.GetLastWriteTime(Properties.Settings.Default.LibraryPath + @"\" + path);
56
57 if (lastWrite > file.cacheDate)
58 {
59 Trace.WriteLine(new LogMessage("GetMD5", path + " has been written to since cache, recalculating"), LogType.Audit.ToString());
60
61 // Get the MD5 again
62 String md5 = CalcMD5(path);
63
64 // Store the new cacheDate AND the new MD5
65 Remove(path);
66
67 Add(path, md5);
68
69 // Return the new MD5
70 return md5;
71 }
72
73 return file.md5;
74 }
75 }
76
77 return CalcMD5(path);
78 }
79
80 /// <summary>
81 /// Calculates the MD5 for a path
82 /// </summary>
83 /// <param name="path"></param>
84 /// <returns></returns>
85 private string CalcMD5(String path)
86 {
87 try
88 {
89 // Open the file and get the MD5
90 using (FileStream md5Fs = new FileStream(Properties.Settings.Default.LibraryPath + @"\" + path, FileMode.Open, FileAccess.Read))
91 {
92 return Hashes.MD5(md5Fs);
93 }
94 }
95 catch (Exception ex)
96 {
97 Trace.WriteLine(new LogMessage("CalcMD5", "Unable to calc the MD5 because: " + ex.Message), LogType.Error.ToString());
98
99 // Return a 0 MD5 which will immediately invalidate the file
100 return "0";
101 }
102 }
103
104 /// <summary>
105 /// Adds a MD5 to the CacheManager
106 /// </summary>
107 /// <param name="path"></param>
108 /// <param name="md5"></param>
109 public void Add(String path, String md5)
110 {
111 lock (_locker)
112 {
113 // First check to see if this path is in the collection
114 foreach (Md5Resource file in _files)
115 {
116 if (file.path == path)
117 return;
118 }
119
120 // We need to generate the MD5 and store it for later
121 Md5Resource md5Resource = new Md5Resource();
122
123 md5Resource.path = path;
124 md5Resource.md5 = md5;
125 md5Resource.cacheDate = DateTime.Now;
126
127 // Add the resource to the collection
128 _files.Add(md5Resource);
129
130 Debug.WriteLine(new LogMessage("Add", "Adding new MD5 to CacheManager"), LogType.Info.ToString());
131 }
132 }
133
134 /// <summary>
135 /// Removes the MD5 resource associated with the Path given
136 /// </summary>
137 /// <param name="path"></param>
138 public void Remove(String path)
139 {
140 lock (_locker)
141 {
142 // Loop through all MD5s and remove any that match the path
143 for (int i = 0; i < _files.Count; i++)
144 {
145 Md5Resource file = _files[i];
146
147 if (file.path == path)
148 {
149 _files.Remove(file);
150
151 System.Diagnostics.Debug.WriteLine(new LogMessage("Remove", "Removing stale MD5 from the CacheManager"), LogType.Info.ToString());
152 }
153 }
154 }
155 }
156
157 /// <summary>
158 /// Writes the CacheManager to disk
159 /// </summary>
160 public void WriteCacheManager()
161 {
162 lock (_locker)
163 {
164 Debug.WriteLine(new LogMessage("CacheManager - WriteCacheManager", "About to Write the Cache Manager"), LogType.Info.ToString());
165
166 try
167 {
168 using (StreamWriter streamWriter = new StreamWriter(Application.UserAppDataPath + "\\" + Properties.Settings.Default.CacheManagerFile))
169 {
170 XmlSerializer xmlSerializer = new XmlSerializer(typeof(CacheManager));
171
172 xmlSerializer.Serialize(streamWriter, this);
173 }
174 }
175 catch (Exception ex)
176 {
177 Trace.WriteLine(new LogMessage("MainForm_FormClosing", "Unable to write CacheManager to disk because: " + ex.Message));
178 }
179 }
180 }
181
182 /// <summary>
183 /// Is the given URI a valid file?
184 /// </summary>
185 /// <param name="path"></param>
186 /// <returns>True is it is and false if it isnt</returns>
187 public bool IsValidPath(String path)
188 {
189 lock (_locker)
190 {
191 // Currently a path is valid if it is in the cache
192 if (String.IsNullOrEmpty(path))
193 return false;
194
195 // Search for this path
196 foreach (Md5Resource file in _files)
197 {
198 if (file.path == path)
199 {
200 // If we cached it over 2 minutes ago, then check the GetLastWriteTime
201 if (file.cacheDate > DateTime.Now.AddMinutes(-2))
202 return true;
203
204 try
205 {
206 // Check to see if this file has been deleted since the Cache Manager registered it
207 if (!File.Exists(Properties.Settings.Default.LibraryPath + @"\" + path))
208 return false;
209
210 // Check to see if this file has been modified since the MD5 cache
211 // If it has then we assume invalid, otherwise its valid
212 DateTime lastWrite = File.GetLastWriteTime(Properties.Settings.Default.LibraryPath + @"\" + path);
213
214 if (lastWrite <= file.cacheDate)
215 return true;
216 else
217 return false;
218 }
219 catch (Exception ex)
220 {
221 Trace.WriteLine(new LogMessage("IsValid", "Unable to determine if the file is valid. Assuming not valid: " + ex.Message), LogType.Error.ToString());
222
223 // Assume invalid
224 return false;
225 }
226 }
227 }
228
229 // Reached the end of the cache and havent found the file.
230 return false;
231 }
232 }
233
234 /// <summary>
235 /// Is the provided layout file a valid layout (has all media)
236 /// </summary>
237 /// <param name="layoutFile"></param>
238 /// <returns></returns>
239 public bool IsValidLayout(string layoutFile)
240 {
241 lock (_locker)
242 {
243 Debug.WriteLine("Checking if Layout " + layoutFile + " is valid");
244
245 if (!IsValidPath(layoutFile))
246 return false;
247
248
249 // Load the XLF, get all media ID's
250 XmlDocument layoutXml = new XmlDocument();
251 layoutXml.Load(Properties.Settings.Default.LibraryPath + @"\" + layoutFile);
252
253 try
254 {
255 XmlNodeList mediaNodes = layoutXml.SelectNodes("//media");
256
257 // Store some information about the validity of local video to decide if this layout should be valid or not.
258 int countInvalidLocalVideo = 0;
259
260 foreach (XmlNode media in mediaNodes)
261 {
262 // Is this a stored media type?
263 switch (media.Attributes["type"].Value)
264 {
265 case "video":
266 case "image":
267 case "flash":
268 case "ppt":
269
270 // Get the path and see if its
271 if (!IsValidPath(GetUri(media)))
272 {
273 Trace.WriteLine(new LogMessage("CacheManager - IsValidLayout", "Invalid Media: " + media.Attributes["id"].Value.ToString()), LogType.Audit.ToString());
274 return false;
275 }
276
277 break;
278
279 case "localvideo":
280
281 // Check that the path they have specified is ok
282 if (!File.Exists(Uri.UnescapeDataString(GetUri(media)).Replace('+', ' ')))
283 {
284 // Local video path does not exist
285 Trace.WriteLine(new LogMessage("CacheManager - IsValidLayout", media.InnerText + " does not exist"), LogType.Error.ToString());
286 countInvalidLocalVideo++;
287 }
288
289 break;
290
291 default:
292 continue;
293 }
294 }
295
296 // If the number of invalid local video elements is equal to the number of elements on the layout, then don't show
297 if (countInvalidLocalVideo == mediaNodes.Count)
298 return false;
299 }
300 catch (Exception ex)
301 {
302 Trace.WriteLine(new LogMessage("CacheManager - IsValidLayout", "Exception checking media. " + ex.Message), LogType.Audit.ToString());
303 return false;
304 }
305
306 // Also check to see if there is a background image that needs to be downloaded
307 try
308 {
309 XmlNode layoutNode = layoutXml.SelectSingleNode("/layout");
310 XmlAttributeCollection layoutAttributes = layoutNode.Attributes;
311
312 if (layoutAttributes["background"] != null && !string.IsNullOrEmpty(layoutAttributes["background"].Value))
313 {
314 if (!IsValidPath(layoutAttributes["background"].Value))
315 {
316 Debug.WriteLine("Invalid background: " + layoutAttributes["background"].Value);
317 return false;
318 }
319 }
320 }
321 catch
322 {
323 // We dont want a missing background attribute to stop this process
324 return true;
325 }
326
327 Debug.WriteLine("Layout " + layoutFile + " is valid");
328
329 return true;
330 }
331 }
332
333 /// <summary>
334 /// Get the URI of this media item
335 /// </summary>
336 /// <param name="media"></param>
337 /// <returns></returns>
338 private string GetUri(XmlNode media)
339 {
340 XmlNode uriNode = media.SelectSingleNode(".//options/uri");
341 return uriNode.InnerText;
342 }
343
344 /// <summary>
345 /// Regenerate from Required Files
346 /// </summary>
347 public void Regenerate()
348 {
349 lock (_locker)
350 {
351 if (!File.Exists(Application.UserAppDataPath + "\\" + Properties.Settings.Default.RequiredFilesFile))
352 return;
353
354 // Open the XML file and check each required file that isnt already there
355 XmlDocument xml = new XmlDocument();
356 xml.Load(Application.UserAppDataPath + "\\" + Properties.Settings.Default.RequiredFilesFile);
357
358 XmlNodeList fileNodes = xml.SelectNodes("//RequiredFile/Path");
359
360 foreach (XmlNode file in fileNodes)
361 {
362 string path = file.InnerText;
363
364 // Make sure every required file is correctly logged in the cache manager
365 // Leave the files that are not required in there to be analysed later
366 if (File.Exists(Properties.Settings.Default.LibraryPath + @"\" + path))
367 {
368 // Add this file to the cache manager
369 Add(path, GetMD5(path));
370 }
371 else
372 {
373 // Remove this file from the cachemanager
374 Remove(path);
375 }
376 }
377 }
378 }
379 }
380
381 public struct Md5Resource
382 {
383 public String md5;
384 public String path;
385 public DateTime cacheDate;
386 }
387}
3880
=== added directory 'client/dotNET/Control'
=== added file 'client/dotNET/Control/Region.cs'
--- client/dotNET/Control/Region.cs 1970-01-01 00:00:00 +0000
+++ client/dotNET/Control/Region.cs 2014-09-18 17:08:39 +0000
@@ -0,0 +1,653 @@
1/*
2 * Xibo - Digitial Signage - http://www.xibo.org.uk
3 * Copyright (C) 2006-2014 Daniel Garner
4 *
5 * This file is part of Xibo.
6 *
7 * Xibo is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU Affero General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * any later version.
11 *
12 * Xibo is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU Affero General Public License for more details.
16 *
17 * You should have received a copy of the GNU Affero General Public License
18 * along with Xibo. If not, see <http://www.gnu.org/licenses/>.
19 */
20using System;
21using System.Collections.Generic;
22using System.Text;
23using System.Windows.Forms;
24using System.Xml;
25using System.Diagnostics;
26using XiboClient.Properties;
27
28namespace XiboClient
29{
30 /// <summary>
31 /// Layout Region, container for Media
32 /// </summary>
33 class Region : Panel
34 {
35 private BlackList _blackList;
36 public delegate void DurationElapsedDelegate();
37 public event DurationElapsedDelegate DurationElapsedEvent;
38
39 private Media _media;
40 private RegionOptions _options;
41 public bool _hasExpired = false;
42 public bool _layoutExpired = false;
43 private int _currentSequence = -1;
44
45 // Stat objects
46 private StatLog _statLog;
47 private Stat _stat;
48
49 // Cache Manager
50 private CacheManager _cacheManager;
51
52 /// <summary>
53 /// Creates the Region
54 /// </summary>
55 /// <param name="statLog"></param>
56 /// <param name="cacheManager"></param>
57 public Region(ref StatLog statLog, ref CacheManager cacheManager)
58 {
59 // Store the statLog
60 _statLog = statLog;
61
62 // Store the cache manager
63 _cacheManager = cacheManager;
64
65 //default options
66 _options = new RegionOptions();
67 _options.width = 1024;
68 _options.height = 768;
69 _options.left = 0;
70 _options.top = 0;
71 _options.uri = null;
72
73 Location = new System.Drawing.Point(_options.left, _options.top);
74 Size = new System.Drawing.Size(_options.width, _options.height);
75 BackColor = System.Drawing.Color.Transparent;
76
77 if (ApplicationSettings.Default.DoubleBuffering)
78 {
79 SetStyle(ControlStyles.OptimizedDoubleBuffer, true);
80 SetStyle(ControlStyles.AllPaintingInWmPaint, true);
81 }
82
83 // Create a new BlackList for us to use
84 _blackList = new BlackList();
85 }
86
87 /// <summary>
88 /// Options for the region
89 /// </summary>
90 public RegionOptions regionOptions
91 {
92 get
93 {
94 return this._options;
95 }
96 set
97 {
98 _options = value;
99
100 EvalOptions();
101 }
102 }
103
104 ///<summary>
105 /// Evaulates the change in options
106 ///</summary>
107 private void EvalOptions()
108 {
109 // First time
110 bool initialMedia = (_currentSequence == -1);
111
112 if (initialMedia)
113 {
114 // Evaluate the width, etc
115 Location = new System.Drawing.Point(_options.left, _options.top);
116 Size = new System.Drawing.Size(_options.width, _options.height);
117 }
118
119 // Try to populate a new media object for this region
120 Media newMedia = new Media(0, 0, 0, 0);
121
122 // Loop around trying to start the next media
123 bool startSuccessful = false;
124 int countTries = 0;
125
126 while (!startSuccessful)
127 {
128 // If we go round this the same number of times as media objects, then we are unsuccessful and should exception
129 if (countTries >= _options.mediaNodes.Count)
130 throw new ArgumentOutOfRangeException("Unable to set and start a media node");
131
132 // Lets try again
133 countTries++;
134
135 // Store the current sequence
136 int temp = _currentSequence;
137
138 // Set the next media node for this panel
139 if (!SetNextMediaNodeInOptions())
140 {
141 // For some reason we cannot set a media node... so we need this region to become invalid
142 _hasExpired = true;
143 DurationElapsedEvent();
144 return;
145 }
146
147 // If the sequence hasnt been changed, OR the layout has been expired
148 // there has been no change to the sequence, therefore the media we have already created is still valid
149 // or this media has actually been destroyed and we are working out way out the call stack
150 if (_currentSequence == temp || _layoutExpired)
151 return;
152
153 // Store the Current Index
154 _options.CurrentIndex = _currentSequence;
155
156 // See if we can start the new media object
157 try
158 {
159 newMedia = CreateNextMediaNode(_options);
160 }
161 catch (Exception ex)
162 {
163 Trace.WriteLine(new LogMessage("Region - Eval Options", "Unable to create new " + _options.type + " object: " + ex.Message), LogType.Error.ToString());
164
165 // Try the next node
166 startSuccessful = false;
167 continue;
168 }
169
170 // First thing we do is stop the current stat record
171 if (!initialMedia)
172 CloseCurrentStatRecord();
173
174 // Start the new media
175 try
176 {
177 StartMedia(newMedia);
178 }
179 catch (Exception ex)
180 {
181 Trace.WriteLine(new LogMessage("Region - Eval Options", "Unable to start new " + _options.type + " object: " + ex.Message), LogType.Error.ToString());
182 startSuccessful = false;
183 continue;
184 }
185
186 startSuccessful = true;
187
188 // Remove the old media
189 if (!initialMedia)
190 {
191 StopMedia(_media);
192 _media = null;
193 }
194
195 // Change the reference
196 _media = newMedia;
197
198 // Open a stat record
199 OpenStatRecordForMedia();
200 }
201 }
202
203 /// <summary>
204 /// Sets the next media node. Should be used either from a mediaComplete event, or an options reset from
205 /// the parent.
206 /// </summary>
207 private bool SetNextMediaNodeInOptions()
208 {
209 // What if there are no media nodes?
210 if (_options.mediaNodes.Count == 0)
211 {
212 Trace.WriteLine(new LogMessage("Region - SetNextMediaNode", "No media nodes to display"), LogType.Audit.ToString());
213
214 return false;
215 }
216
217 // Zero out the options that are persisted
218 _options.text = "";
219 _options.documentTemplate = "";
220 _options.copyrightNotice = "";
221 _options.scrollSpeed = 30;
222 _options.updateInterval = 6;
223 _options.uri = "";
224 _options.direction = "none";
225 _options.javaScript = "";
226 _options.Dictionary = new MediaDictionary();
227
228 // Get a media node
229 bool validNode = false;
230 int numAttempts = 0;
231
232 // Loop through all the nodes in order
233 while (numAttempts < _options.mediaNodes.Count)
234 {
235 // Move the sequence on
236 _currentSequence++;
237
238 if (_currentSequence >= _options.mediaNodes.Count)
239 {
240 // Start from the beginning
241 _currentSequence = 0;
242
243 // We have expired (want to raise an expired event to the parent)
244 _hasExpired = true;
245
246 Trace.WriteLine(new LogMessage("Region - SetNextMediaNode", "Media Expired:" + _options.ToString() + " . Reached the end of the sequence. Starting from the beginning."), LogType.Audit.ToString());
247
248 // Region Expired
249 DurationElapsedEvent();
250
251 // We want to continue on to show the next media (unless the duration elapsed event triggers a region change)
252 if (_layoutExpired)
253 return true;
254 }
255
256 // Get the media node for this sequence
257 XmlNode mediaNode = _options.mediaNodes[_currentSequence];
258 XmlAttributeCollection nodeAttributes = mediaNode.Attributes;
259
260 // Set the media id
261 if (nodeAttributes["id"].Value != null)
262 _options.mediaid = nodeAttributes["id"].Value;
263
264 // Check isnt blacklisted
265 if (_blackList.BlackListed(_options.mediaid))
266 {
267 Trace.WriteLine(new LogMessage("Region - SetNextMediaNode", string.Format("MediaID [{0}] has been blacklisted.", _options.mediaid)), LogType.Error.ToString());
268
269 // Increment the number of attempts and try again
270 numAttempts++;
271
272 // Carry on
273 continue;
274 }
275
276 // Assume we have a valid node at this point
277 validNode = true;
278
279 // Parse the options for this media node
280 ParseOptionsForMediaNode(mediaNode, nodeAttributes);
281
282 // Is this a file based media node?
283 if (_options.type == "video" || _options.type == "flash" || _options.type == "image" || _options.type == "powerpoint")
284 {
285 // Use the cache manager to determine if the file is valid
286 validNode = _cacheManager.IsValidPath(_options.uri);
287 }
288
289 // If we have a valid node, break out of the loop
290 if (validNode)
291 break;
292
293 // Increment the number of attempts and try again
294 numAttempts++;
295 }
296
297 // If we dont have a valid node out of all the nodes in the region, then return false.
298 if (!validNode)
299 return false;
300
301 Trace.WriteLine(new LogMessage("Region - SetNextMediaNode", "New media detected " + _options.type), LogType.Audit.ToString());
302
303 return true;
304 }
305
306 /// <summary>
307 /// Parse options for the media node
308 /// </summary>
309 /// <param name="mediaNode"></param>
310 /// <param name="nodeAttributes"></param>
311 private void ParseOptionsForMediaNode(XmlNode mediaNode, XmlAttributeCollection nodeAttributes)
312 {
313 // New version has a different schema - the right way to do it would be to pass the <options> and <raw> nodes to
314 // the relevant media class - however I dont feel like engineering such a change so the alternative is to
315 // parse all the possible media type nodes here.
316
317 // Type and Duration will always be on the media node
318 _options.type = nodeAttributes["type"].Value;
319
320 // Render as
321 if (nodeAttributes["render"] != null)
322 _options.render = nodeAttributes["render"].Value;
323
324 //TODO: Check the type of node we have, and make sure it is supported.
325
326 if (nodeAttributes["duration"].Value != "")
327 {
328 _options.duration = int.Parse(nodeAttributes["duration"].Value);
329 }
330 else
331 {
332 _options.duration = 60;
333 Trace.WriteLine("Duration is Empty, using a default of 60.", "Region - SetNextMediaNode");
334 }
335
336 // We cannot have a 0 duration here... not sure why we would... but
337 if (_options.duration == 0 && _options.type != "video" && _options.type != "localvideo")
338 {
339 int emptyLayoutDuration = int.Parse(ApplicationSettings.Default.EmptyLayoutDuration.ToString());
340 _options.duration = (emptyLayoutDuration == 0) ? 10 : emptyLayoutDuration;
341 }
342
343 // There will be some stuff on option nodes
344 XmlNode optionNode = mediaNode.FirstChild;
345
346 // Loop through each option node
347 foreach (XmlNode option in optionNode.ChildNodes)
348 {
349 if (option.Name == "direction")
350 {
351 _options.direction = option.InnerText;
352 }
353 else if (option.Name == "uri")
354 {
355 _options.uri = option.InnerText;
356 }
357 else if (option.Name == "copyright")
358 {
359 _options.copyrightNotice = option.InnerText;
360 }
361 else if (option.Name == "scrollSpeed")
362 {
363 try
364 {
365 _options.scrollSpeed = int.Parse(option.InnerText);
366 }
367 catch
368 {
369 System.Diagnostics.Trace.WriteLine("Non integer scrollSpeed in XLF", "Region - SetNextMediaNode");
370 }
371 }
372 else if (option.Name == "updateInterval")
373 {
374 try
375 {
376 _options.updateInterval = int.Parse(option.InnerText);
377 }
378 catch
379 {
380 System.Diagnostics.Trace.WriteLine("Non integer updateInterval in XLF", "Region - SetNextMediaNode");
381 }
382 }
383
384 // Add this to the options object
385 _options.Dictionary.Add(option.Name, option.InnerText);
386 }
387
388 // And some stuff on Raw nodes
389 XmlNode rawNode = mediaNode.LastChild;
390
391 foreach (XmlNode raw in rawNode.ChildNodes)
392 {
393 if (raw.Name == "text")
394 {
395 _options.text = raw.InnerText;
396 }
397 else if (raw.Name == "template")
398 {
399 _options.documentTemplate = raw.InnerText;
400 }
401 else if (raw.Name == "embedHtml")
402 {
403 _options.text = raw.InnerText;
404 }
405 else if (raw.Name == "embedScript")
406 {
407 _options.javaScript = raw.InnerText;
408 }
409 }
410 }
411
412 /// <summary>
413 /// Create the next media node based on the provided options
414 /// </summary>
415 /// <param name="options"></param>
416 /// <returns></returns>
417 private Media CreateNextMediaNode(RegionOptions options)
418 {
419 Media media;
420
421 Trace.WriteLine(new LogMessage("Region - CreateNextMediaNode", string.Format("Creating new media: {0}, {1}", options.type, options.mediaid)), LogType.Audit.ToString());
422
423 bool useCef = ApplicationSettings.Default.UseCefWebBrowser;
424
425 if (options.render == "html")
426 {
427 if (useCef)
428 media = new CefWebMedia(options);
429 else
430 media = new IeWebMedia(options);
431 }
432 else
433 {
434 switch (options.type)
435 {
436 case "image":
437 options.uri = ApplicationSettings.Default.LibraryPath + @"\" + options.uri;
438 media = new ImagePosition(options);
439 break;
440
441 case "powerpoint":
442 options.uri = ApplicationSettings.Default.LibraryPath + @"\" + options.uri;
443 media = new PowerPoint(options);
444 break;
445
446 case "video":
447 options.uri = ApplicationSettings.Default.LibraryPath + @"\" + options.uri;
448
449 // Which video engine are we using?
450 if (ApplicationSettings.Default.VideoRenderingEngine == "DirectShow")
451 media = new VideoDS(options);
452 else
453 media = new Video(options);
454
455 break;
456
457 case "localvideo":
458 // Which video engine are we using?
459 if (ApplicationSettings.Default.VideoRenderingEngine == "DirectShow")
460 media = new VideoDS(options);
461 else
462 media = new Video(options);
463
464 break;
465
466 case "datasetview":
467 case "embedded":
468 case "ticker":
469 case "text":
470 case "webpage":
471 if (useCef)
472 media = new CefWebMedia(options);
473 else
474 media = new IeWebMedia(options);
475
476 break;
477
478 case "flash":
479 options.uri = ApplicationSettings.Default.LibraryPath + @"\" + options.uri;
480 media = new Flash(options);
481 break;
482
483 case "shellcommand":
484 media = new ShellCommand(options);
485 break;
486
487 default:
488 throw new InvalidOperationException("Not a valid media node type: " + options.type);
489 }
490 }
491
492 // Sets up the timer for this media
493 media.Duration = options.duration;
494
495 // Add event handler for when this completes
496 media.DurationElapsedEvent += new Media.DurationElapsedDelegate(media_DurationElapsedEvent);
497
498 return media;
499 }
500
501 /// <summary>
502 /// Start the provided media
503 /// </summary>
504 /// <param name="media"></param>
505 private void StartMedia(Media media)
506 {
507 media.RenderMedia();
508
509 Trace.WriteLine(new LogMessage("Region - StartMedia", "Starting media"), LogType.Audit.ToString());
510
511 Controls.Add(media);
512 }
513
514 /// <summary>
515 /// Stop the provided media
516 /// </summary>
517 private void StopMedia(Media media)
518 {
519 Trace.WriteLine(new LogMessage("Region - Stop Media", "Stopping media"), LogType.Audit.ToString());
520
521 // Hide the media
522 media.Hide();
523
524 // Remove the controls
525 Controls.Remove(media);
526
527 // Dispose of the current media
528 try
529 {
530 // Dispose of the media
531 media.Dispose();
532 }
533 catch (Exception ex)
534 {
535 Debug.WriteLine("No media to remove");
536 Debug.WriteLine(ex.Message);
537 }
538 }
539
540 /// <summary>
541 /// Opens a stat record for the current media
542 /// </summary>
543 private void OpenStatRecordForMedia()
544 {
545 // This media has started and is being replaced
546 _stat = new Stat();
547 _stat.type = StatType.Media;
548 _stat.fromDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
549 _stat.scheduleID = _options.scheduleId;
550 _stat.layoutID = _options.layoutId;
551 _stat.mediaID = _options.mediaid;
552 }
553
554 /// <summary>
555 /// Close out the stat record
556 /// </summary>
557 private void CloseCurrentStatRecord()
558 {
559 try
560 {
561 // Here we say that this media is expired
562 _stat.toDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
563
564 // Record this stat event in the statLog object
565 _statLog.RecordStat(_stat);
566 }
567 catch
568 {
569 Trace.WriteLine(new LogMessage("Region - StopMedia", "No Stat record when one was expected"), LogType.Error.ToString());
570 }
571 }
572
573 /// <summary>
574 /// The media has elapsed
575 /// </summary>
576 private void media_DurationElapsedEvent(int filesPlayed)
577 {
578 Trace.WriteLine(new LogMessage("Region - DurationElapsedEvent", string.Format("Media Elapsed: {0}", _options.uri)), LogType.Audit.ToString());
579
580 if (filesPlayed > 1)
581 // Increment the _current sequence by the number of filesPlayed (minus 1)
582 _currentSequence = _currentSequence + (filesPlayed - 1);
583
584 // make some decisions about what to do next
585 try
586 {
587 EvalOptions();
588 }
589 catch (Exception e)
590 {
591 Trace.WriteLine(new LogMessage("Region - media_DurationElapsedEvent", e.Message), LogType.Error.ToString());
592
593 // What do we do if there is an exception moving to the next media node?
594 // For some reason we cannot set a media node... so we need this region to become invalid
595 _hasExpired = true;
596 DurationElapsedEvent();
597 return;
598 }
599 }
600
601 /// <summary>
602 /// Clears the Region of anything that it shouldnt still have...
603 /// </summary>
604 public void Clear()
605 {
606 try
607 {
608 // What happens if we are disposing this region but we have not yet completed the stat event?
609 if (string.IsNullOrEmpty(_stat.toDate))
610 {
611 // Say that this media has ended
612 _stat.toDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
613
614 // Record this stat event in the statLog object
615 _statLog.RecordStat(_stat);
616 }
617 }
618 catch
619 {
620 Trace.WriteLine(new LogMessage("Region - Clear", "Error closing off stat record"), LogType.Error.ToString());
621 }
622 }
623
624 /// <summary>
625 /// Performs the disposal.
626 /// </summary>
627 protected override void Dispose(bool disposing)
628 {
629 if (disposing)
630 {
631 try
632 {
633 _media.Dispose();
634 _media = null;
635
636 Debug.WriteLine("Media Disposed by Region", "Region - Dispose");
637 }
638 catch (Exception ex)
639 {
640 Debug.WriteLine(ex.Message);
641 Debug.WriteLine("There was no media to dispose", "Region - Dispose");
642 }
643 finally
644 {
645 if (_media != null)
646 _media = null;
647 }
648 }
649
650 base.Dispose(disposing);
651 }
652 }
653}
0654
=== added file 'client/dotNET/Control/XiboCefWebBrowser.cs'
--- client/dotNET/Control/XiboCefWebBrowser.cs 1970-01-01 00:00:00 +0000
+++ client/dotNET/Control/XiboCefWebBrowser.cs 2014-09-18 17:08:39 +0000
@@ -0,0 +1,115 @@
1/*
2 * Xibo - Digitial Signage - http://www.xibo.org.uk
3 * Copyright (C) 2014 Spring Signage Ltd
4 *
5 * This file is part of Xibo.
6 *
7 * Xibo is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU Affero General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * any later version.
11 *
12 * Xibo is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU Affero General Public License for more details.
16 *
17 * You should have received a copy of the GNU Affero General Public License
18 * along with Xibo. If not, see <http://www.gnu.org/licenses/>.
19 */
20using System;
21using System.Collections.Generic;
22using System.ComponentModel;
23using System.Drawing;
24using System.Drawing.Drawing2D;
25using System.Windows.Forms;
26using Xilium.CefGlue;
27using Xilium.CefGlue.WindowsForms;
28
29namespace XiboClient.Control
30{
31 class XiboCefWebBrowser : CefWebBrowser
32 {
33 private bool _handleCreated;
34
35 public XiboCefWebBrowser()
36 {
37 SetStyle(
38 ControlStyles.ContainerControl
39 | ControlStyles.ResizeRedraw
40 | ControlStyles.FixedWidth
41 | ControlStyles.FixedHeight
42 | ControlStyles.StandardClick
43 | ControlStyles.UserMouse
44 | ControlStyles.SupportsTransparentBackColor
45 | ControlStyles.StandardDoubleClick
46 | ControlStyles.OptimizedDoubleBuffer
47 | ControlStyles.CacheText
48 | ControlStyles.EnableNotifyMessage
49 | ControlStyles.DoubleBuffer
50 | ControlStyles.OptimizedDoubleBuffer
51 | ControlStyles.UseTextForAccessibility
52 | ControlStyles.Opaque,
53 false);
54
55 SetStyle(
56 ControlStyles.UserPaint
57 | ControlStyles.AllPaintingInWmPaint
58 | ControlStyles.Selectable,
59 true);
60
61 StartUrl = "about:blank";
62
63 var windowInfo = CefWindowInfo.Create();
64 windowInfo.SetAsChild(Handle, new CefRectangle { X = 0, Y = 0, Width = Width, Height = Height });
65
66 var client = CreateWebClient();
67
68 var settings = BrowserSettings;
69 if (settings == null) settings = new CefBrowserSettings { };
70
71 CefBrowserHost.CreateBrowser(windowInfo, client, settings, StartUrl);
72 }
73
74 protected override void OnHandleCreated(EventArgs e)
75 {
76 base.OnHandleCreated(e);
77
78 if (DesignMode)
79 {
80 if (!_handleCreated) Paint += PaintInDesignMode;
81 }
82 else
83 {
84 // We've already created our browser
85 }
86
87 _handleCreated = true;
88 }
89
90 private void PaintInDesignMode(object sender, PaintEventArgs e)
91 {
92 var width = this.Width;
93 var height = this.Height;
94 if (width > 1 && height > 1)
95 {
96 var brush = new SolidBrush(this.ForeColor);
97 var pen = new Pen(this.ForeColor);
98 pen.DashStyle = DashStyle.Dash;
99
100 e.Graphics.DrawRectangle(pen, 0, 0, width - 1, height - 1);
101
102 var fontHeight = (int)(this.Font.GetHeight(e.Graphics) * 1.25);
103
104 var x = 3;
105 var y = 3;
106
107 e.Graphics.DrawString("CefWebBrowser", Font, brush, x, y + (0 * fontHeight));
108 e.Graphics.DrawString(string.Format("StartUrl: {0}", StartUrl), Font, brush, x, y + (1 * fontHeight));
109
110 brush.Dispose();
111 pen.Dispose();
112 }
113 }
114 }
115}
0116
=== removed file 'client/dotNET/DataSetView.cs'
--- client/dotNET/DataSetView.cs 2013-11-09 12:14:38 +0000
+++ client/dotNET/DataSetView.cs 1970-01-01 00:00:00 +0000
@@ -1,235 +0,0 @@
1/*
2 * Xibo - Digitial Signage - http://www.xibo.org.uk
3 * Copyright (C) 2011-2013 Daniel Garner
4 *
5 * This file is part of Xibo.
6 *
7 * Xibo is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU Affero General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * any later version.
11 *
12 * Xibo is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU Affero General Public License for more details.
16 *
17 * You should have received a copy of the GNU Affero General Public License
18 * along with Xibo. If not, see <http://www.gnu.org/licenses/>.
19 */
20using System;
21using System.Collections.Generic;
22using System.Text;
23using System.Windows.Forms;
24using XiboClient.Properties;
25using System.IO;
26using System.Diagnostics;
27
28namespace XiboClient
29{
30 class DataSetView :
31 Media
32 {
33 private int _layoutId;
34 private string _regionId;
35 private string _mediaId;
36 private int _updateInterval;
37 private double _scaleFactor;
38 private int _duration;
39 private string _backgroundImage;
40 private string _backgroundColor;
41 private string _backgroundTop;
42 private string _backgroundLeft;
43
44 // File paths
45 private string _filePath;
46 private TemporaryFile _temporaryFile;
47
48 private WebBrowser _webBrowser;
49
50 public DataSetView(RegionOptions options)
51 : base(options.width, options.height, options.top, options.left)
52 {
53 _layoutId = options.layoutId;
54 _regionId = options.regionId;
55 _mediaId = options.mediaid;
56 _duration = options.duration;
57 _scaleFactor = options.scaleFactor;
58
59 _updateInterval = Convert.ToInt32(options.Dictionary.Get("updateInterval"));
60
61 _backgroundImage = options.backgroundImage;
62 _backgroundColor = options.backgroundColor;
63
64 // Set up the backgrounds
65 _backgroundTop = options.backgroundTop + "px";
66 _backgroundLeft = options.backgroundLeft + "px";
67
68 // Create a webbrowser to take the temp file loc
69 _webBrowser = new WebBrowser();
70 _webBrowser.ScriptErrorsSuppressed = true;
71 _webBrowser.Size = this.Size;
72 _webBrowser.ScrollBarsEnabled = false;
73 _webBrowser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser_DocumentCompleted);
74
75 // Construct a sensible file path to store this resource
76 _filePath = Settings.Default.LibraryPath + @"\" + _mediaId + ".htm";
77
78 if (HtmlReady())
79 {
80 // Write to temporary file
81 SaveToTemporaryFile();
82
83 // Navigate to temp file
84 _webBrowser.Navigate(_temporaryFile.Path);
85 }
86 else
87 {
88 RefreshLocalHtml();
89 }
90 }
91
92 /// <summary>
93 /// Handles the document completed event.
94 /// Resets the Background color to be options.backgroundImage
95 /// </summary>
96 /// <param name="sender"></param>
97 /// <param name="e"></param>
98 void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
99 {
100 // Show the control
101 Controls.Add(_webBrowser);
102 }
103
104 private bool HtmlReady()
105 {
106 // Pull the RSS feed, and put it in a temporary file cache
107 // We want to check the file exists first
108 string filePath = Settings.Default.LibraryPath + @"\" + _mediaId + ".htm";
109
110 if (!File.Exists(filePath) || _updateInterval == 0)
111 return false;
112
113 // It exists - therefore we want to get the last time it was updated
114 DateTime lastWriteDate = System.IO.File.GetLastWriteTime(filePath);
115
116 if (DateTime.Now.CompareTo(lastWriteDate.AddHours(_updateInterval * 1.0 / 60.0)) > 0)
117 return false;
118 else
119 return true;
120 }
121
122 /// <summary>
123 /// Updates the position of the background and saves to a temporary file
124 /// </summary>
125 private void SaveToTemporaryFile()
126 {
127 // read the contents of the file
128 using (StreamReader reader = new StreamReader(_filePath))
129 {
130 string cachedFile = reader.ReadToEnd();
131
132 // Handle the background
133 String bodyStyle;
134
135 if (_backgroundImage == null || _backgroundImage == "")
136 {
137 bodyStyle = "background-color:" + _backgroundColor + " ;";
138 }
139 else
140 {
141 bodyStyle = "background-image: url('" + _backgroundImage.Replace('\\', '/') + "'); background-attachment:fixed; background-color:" + _backgroundColor + " background-repeat: no-repeat; background-position: " + _backgroundLeft + " " + _backgroundTop + ";";
142 }
143
144 string html = cachedFile.Replace("</head>", "<style type='text/css'>body {" + bodyStyle + " font-size:" + _scaleFactor.ToString() + "em; }</style></head>");
145
146 _temporaryFile = new TemporaryFile();
147 _temporaryFile.FileContent = html;
148 }
149 }
150
151 /// <summary>
152 /// Refresh the Local cache of the DataSetView HTML
153 /// </summary>
154 private void RefreshLocalHtml()
155 {
156 xmds.xmds xmds = new XiboClient.xmds.xmds();
157 xmds.GetResourceCompleted += new XiboClient.xmds.GetResourceCompletedEventHandler(xmds_GetResourceCompleted);
158
159 xmds.GetResourceAsync(Settings.Default.ServerKey, Settings.Default.hardwareKey, _layoutId, _regionId, _mediaId, Settings.Default.Version);
160 }
161
162 /// <summary>
163 /// Refresh Complete
164 /// </summary>
165 /// <param name="sender"></param>
166 /// <param name="e"></param>
167 private void xmds_GetResourceCompleted(object sender, XiboClient.xmds.GetResourceCompletedEventArgs e)
168 {
169 try
170 {
171 // Success / Failure
172 if (e.Error != null)
173 {
174 Trace.WriteLine(new LogMessage("xmds_GetResource", "Unable to get Resource: " + e.Error.Message), LogType.Error.ToString());
175
176 // Start the timer so that we expire
177 base.RenderMedia();
178 }
179 else
180 {
181 // Write to the library
182 using (StreamWriter sw = new StreamWriter(File.Open(_filePath, FileMode.Create, FileAccess.Write, FileShare.Read)))
183 {
184 sw.Write(e.Result);
185 sw.Close();
186 }
187
188 // Write to temporary file
189 SaveToTemporaryFile();
190
191 // Handle Navigate in here because we will not have done it during first load
192 _webBrowser.Navigate(_temporaryFile.Path);
193 }
194 }
195 catch (ObjectDisposedException)
196 {
197 Trace.WriteLine(new LogMessage("DataSetView", "Retrived the data set, stored the document but the media has already expired."), LogType.Error.ToString());
198 }
199 catch (Exception ex)
200 {
201 Trace.WriteLine(new LogMessage("DataSetView", "Unknown exception " + ex.Message), LogType.Error.ToString());
202 }
203 }
204
205 protected override void Dispose(bool disposing)
206 {
207 if (disposing)
208 {
209 try
210 {
211 _webBrowser.Dispose();
212
213 Debug.WriteLine("Disposed of the Web Browser control", "DataSetView - Dispose");
214 }
215 catch
216 {
217 Debug.WriteLine("Web browser control already disposed", "DataSetView - Dispose");
218 }
219
220 // Delete the temporary file
221 try
222 {
223 if (_temporaryFile != null)
224 _temporaryFile.Dispose();
225 }
226 catch
227 {
228 Debug.WriteLine("Unable to delete temporary file for dataset", "DataSetView - Dispose");
229 }
230 }
231
232 base.Dispose(disposing);
233 }
234 }
235}
2360
=== removed file 'client/dotNET/Flash.cs'
--- client/dotNET/Flash.cs 2013-05-01 19:24:35 +0000
+++ client/dotNET/Flash.cs 1970-01-01 00:00:00 +0000
@@ -1,141 +0,0 @@
1/*
2 * Xibo - Digitial Signage - http://www.xibo.org.uk
3 * Copyright (C) 2006-2011 Daniel Garner and James Packer
4 *
5 * This file is part of Xibo.
6 *
7 * Xibo is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU Affero General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * any later version.
11 *
12 * Xibo is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU Affero General Public License for more details.
16 *
17 * You should have received a copy of the GNU Affero General Public License
18 * along with Xibo. If not, see <http://www.gnu.org/licenses/>.
19 */
20using System;
21using System.Collections.Generic;
22using System.Text;
23using System.Windows.Forms;
24using System.Diagnostics;
25
26namespace XiboClient
27{
28 class Flash
29 : Media
30 {
31 private TemporaryHtml _tempHtml;
32 private WebBrowser _webBrowser;
33 private string _backgroundImage;
34 private string _backgroundColor;
35 private string _backgroundTop;
36 private string _backgroundLeft;
37
38 public Flash (RegionOptions options)
39 : base(options.width, options.height, options.top, options.left)
40 {
41 _tempHtml = new TemporaryHtml();
42
43 _backgroundImage = options.backgroundImage;
44 _backgroundColor = options.backgroundColor;
45 _backgroundTop = options.backgroundTop + "px";
46 _backgroundLeft = options.backgroundLeft + "px";
47
48 // Create the HEAD of the document
49 GenerateHeadHtml();
50
51 // Set the body
52 string html = @"
53 <object classid='clsid:d27cdb6e-ae6d-11cf-96b8-444553540000' codebase='http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0' width='{2}' height='{3}' id='analog_clock' align='middle'>
54 <param name='allowScriptAccess' value='sameDomain' />
55 <param name='movie' value='{1}' />
56 <param name='quality' value='high' />
57 <param name='bgcolor' value='#000' />
58 <param name='WMODE' value='transparent' />
59 <embed src='{1}' quality='high' wmode='transparent' bgcolor='#ffffff' width='{2}' height='{3}' name='analog_clock' align='middle' allowScriptAccess='sameDomain' type='application/x-shockwave-flash' pluginspage='http://www.macromedia.com/go/getflashplayer' />
60 </object>
61 ";
62
63 _tempHtml.BodyContent = string.Format(html, options.uri, options.uri, options.width.ToString(), options.height.ToString());
64
65 // Fire up a webBrowser control to display the completed file.
66 _webBrowser = new WebBrowser();
67 _webBrowser.Size = this.Size;
68 _webBrowser.ScrollBarsEnabled = false;
69 _webBrowser.ScriptErrorsSuppressed = true;
70 _webBrowser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(_webBrowser_DocumentCompleted);
71
72 // Navigate to temp file
73 _webBrowser.Navigate(_tempHtml.Path);
74 }
75
76 /// <summary>
77 /// Generates the Head Html for this Document
78 /// </summary>
79 private void GenerateHeadHtml()
80 {
81 // Handle the background
82 String bodyStyle;
83
84 if (_backgroundImage == null || _backgroundImage == "")
85 {
86 bodyStyle = "background-color:" + _backgroundColor + " ;";
87 }
88 else
89 {
90 bodyStyle = "background-image: url('" + _backgroundImage + "'); background-attachment:fixed; background-color:" + _backgroundColor + " background-repeat: no-repeat; background-position: " + _backgroundLeft + " " + _backgroundTop + ";";
91 }
92
93 // Store the document text in the temporary HTML space
94 _tempHtml.HeadContent = "<style type='text/css'>body {" + bodyStyle + " }</style>"; ;
95 }
96
97 /// <summary>
98 /// Web browser completed event
99 /// </summary>
100 /// <param name="sender"></param>
101 /// <param name="e"></param>
102 void _webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
103 {
104 // We have navigated to the temporary file.
105 Show();
106 Controls.Add(_webBrowser);
107 }
108
109 /// <summary>
110 /// Dispose
111 /// </summary>
112 /// <param name="disposing"></param>
113 protected override void Dispose(bool disposing)
114 {
115 if (disposing)
116 {
117 // Remove the webbrowser control
118 try
119 {
120 _webBrowser.Dispose();
121 }
122 catch
123 {
124 System.Diagnostics.Trace.WriteLine(new LogMessage("WebBrowser still in use.", String.Format("Dispose")));
125 }
126
127 // Remove the temporary file we created
128 try
129 {
130 _tempHtml.Dispose();
131 }
132 catch (Exception ex)
133 {
134 Trace.WriteLine(new LogMessage("Dispose", String.Format("Unable to dispose TemporaryHtml with exception {0}", ex.Message)));
135 }
136 }
137
138 base.Dispose(disposing);
139 }
140 }
141}
1420
=== added directory 'client/dotNET/Forms'
=== added file 'client/dotNET/Forms/About.Designer.cs'
--- client/dotNET/Forms/About.Designer.cs 1970-01-01 00:00:00 +0000
+++ client/dotNET/Forms/About.Designer.cs 2014-09-18 17:08:39 +0000
@@ -0,0 +1,129 @@
1namespace XiboClient
2{
3 partial class About
4 {
5 /// <summary>
6 /// Required designer variable.
7 /// </summary>
8 private System.ComponentModel.IContainer components = null;
9
10 /// <summary>
11 /// Clean up any resources being used.
12 /// </summary>
13 /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
14 protected override void Dispose(bool disposing)
15 {
16 if (disposing && (components != null))
17 {
18 components.Dispose();
19 }
20 base.Dispose(disposing);
21 }
22
23 #region Windows Form Designer generated code
24
25 /// <summary>
26 /// Required method for Designer support - do not modify
27 /// the contents of this method with the code editor.
28 /// </summary>
29 private void InitializeComponent()
30 {
31 System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(About));
32 this.pictureBox1 = new System.Windows.Forms.PictureBox();
33 this.buttonHelp = new System.Windows.Forms.Button();
34 this.richTextBox1 = new System.Windows.Forms.RichTextBox();
35 this.label1 = new System.Windows.Forms.Label();
36 this.label2 = new System.Windows.Forms.Label();
37 this.buttonClose = new System.Windows.Forms.Button();
38 ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
39 this.SuspendLayout();
40 //
41 // pictureBox1
42 //
43 this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image")));
44 this.pictureBox1.Location = new System.Drawing.Point(12, 6);
45 this.pictureBox1.Name = "pictureBox1";
46 this.pictureBox1.Size = new System.Drawing.Size(160, 82);
47 this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize;
48 this.pictureBox1.TabIndex = 0;
49 this.pictureBox1.TabStop = false;
50 //
51 // buttonHelp
52 //
53 this.buttonHelp.Location = new System.Drawing.Point(12, 277);
54 this.buttonHelp.Name = "buttonHelp";
55 this.buttonHelp.Size = new System.Drawing.Size(75, 23);
56 this.buttonHelp.TabIndex = 1;
57 this.buttonHelp.Text = "Online Help";
58 this.buttonHelp.UseVisualStyleBackColor = true;
59 this.buttonHelp.Click += new System.EventHandler(this.buttonHelp_Click);
60 //
61 // richTextBox1
62 //
63 this.richTextBox1.Location = new System.Drawing.Point(12, 97);
64 this.richTextBox1.Name = "richTextBox1";
65 this.richTextBox1.Size = new System.Drawing.Size(397, 174);
66 this.richTextBox1.TabIndex = 2;
67 this.richTextBox1.Text = resources.GetString("richTextBox1.Text");
68 this.richTextBox1.TextChanged += new System.EventHandler(this.richTextBox1_TextChanged);
69 //
70 // label1
71 //
72 this.label1.AutoSize = true;
73 this.label1.Location = new System.Drawing.Point(296, 9);
74 this.label1.Name = "label1";
75 this.label1.Size = new System.Drawing.Size(35, 13);
76 this.label1.TabIndex = 3;
77 this.label1.Text = "label1";
78 //
79 // label2
80 //
81 this.label2.AutoSize = true;
82 this.label2.Location = new System.Drawing.Point(296, 45);
83 this.label2.Name = "label2";
84 this.label2.Size = new System.Drawing.Size(35, 13);
85 this.label2.TabIndex = 4;
86 this.label2.Text = "label2";
87 //
88 // buttonClose
89 //
90 this.buttonClose.Location = new System.Drawing.Point(333, 276);
91 this.buttonClose.Name = "buttonClose";
92 this.buttonClose.Size = new System.Drawing.Size(75, 23);
93 this.buttonClose.TabIndex = 5;
94 this.buttonClose.Text = "Close";
95 this.buttonClose.UseVisualStyleBackColor = true;
96 this.buttonClose.Click += new System.EventHandler(this.buttonClose_Click);
97 //
98 // About
99 //
100 this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
101 this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
102 this.ClientSize = new System.Drawing.Size(421, 312);
103 this.Controls.Add(this.buttonClose);
104 this.Controls.Add(this.label2);
105 this.Controls.Add(this.label1);
106 this.Controls.Add(this.richTextBox1);
107 this.Controls.Add(this.buttonHelp);
108 this.Controls.Add(this.pictureBox1);
109 this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
110 this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
111 this.Name = "About";
112 this.Text = "About";
113 ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
114 this.ResumeLayout(false);
115 this.PerformLayout();
116
117 }
118
119 #endregion
120
121 private System.Windows.Forms.PictureBox pictureBox1;
122 private System.Windows.Forms.Button buttonHelp;
123 private System.Windows.Forms.RichTextBox richTextBox1;
124 private System.Windows.Forms.Label label1;
125 private System.Windows.Forms.Label label2;
126 private System.Windows.Forms.Button buttonClose;
127
128 }
129}
0\ No newline at end of file130\ No newline at end of file
1131
=== added file 'client/dotNET/Forms/About.cs'
--- client/dotNET/Forms/About.cs 1970-01-01 00:00:00 +0000
+++ client/dotNET/Forms/About.cs 2014-09-18 17:08:39 +0000
@@ -0,0 +1,63 @@
1/*
2 * Xibo - Digitial Signage - http://www.xibo.org.uk
3 * Copyright (C) 2006-2014 Daniel Garner and James Packer
4 *
5 * This file is part of Xibo.
6 *
7 * Xibo is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU Affero General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * any later version.
11 *
12 * Xibo is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU Affero General Public License for more details.
16 *
17 * You should have received a copy of the GNU Affero General Public License
18 * along with Xibo. If not, see <http://www.gnu.org/licenses/>.
19 */
20using System;
21using System.Collections.Generic;
22using System.ComponentModel;
23using System.Data;
24using System.Drawing;
25using System.Text;
26using System.Windows.Forms;
27
28namespace XiboClient
29{
30 public partial class About : Form
31 {
32 public About()
33 {
34 InitializeComponent();
35
36 label1.Text = Application.ProductName;
37 label2.Text = ApplicationSettings.Default.ClientVersion;
38 }
39
40 private void buttonHelp_Click(object sender, EventArgs e)
41 {
42 // open URL in separate instance of default browser
43 try
44 {
45 System.Diagnostics.Process.Start("http://xibo.org.uk/manual");
46 }
47 catch
48 {
49 MessageBox.Show("No web browser installed");
50 }
51 }
52
53 private void buttonClose_Click(object sender, EventArgs e)
54 {
55 this.Close();
56 }
57
58 private void richTextBox1_TextChanged(object sender, EventArgs e)
59 {
60
61 }
62 }
63}
0\ No newline at end of file64\ No newline at end of file
165
=== added file 'client/dotNET/Forms/About.resx'
--- client/dotNET/Forms/About.resx 1970-01-01 00:00:00 +0000
+++ client/dotNET/Forms/About.resx 2014-09-18 17:08:39 +0000
@@ -0,0 +1,1060 @@
1<?xml version="1.0" encoding="utf-8"?>
2<root>
3 <!--
4 Microsoft ResX Schema
5
6 Version 2.0
7
8 The primary goals of this format is to allow a simple XML format
9 that is mostly human readable. The generation and parsing of the
10 various data types are done through the TypeConverter classes
11 associated with the data types.
12
13 Example:
14
15 ... ado.net/XML headers & schema ...
16 <resheader name="resmimetype">text/microsoft-resx</resheader>
17 <resheader name="version">2.0</resheader>
18 <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
19 <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
20 <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
21 <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
22 <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
23 <value>[base64 mime encoded serialized .NET Framework object]</value>
24 </data>
25 <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
26 <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
27 <comment>This is a comment</comment>
28 </data>
29
30 There are any number of "resheader" rows that contain simple
31 name/value pairs.
32
33 Each data row contains a name, and value. The row also contains a
34 type or mimetype. Type corresponds to a .NET class that support
35 text/value conversion through the TypeConverter architecture.
36 Classes that don't support this are serialized and stored with the
37 mimetype set.
38
39 The mimetype is used for serialized objects, and tells the
40 ResXResourceReader how to depersist the object. This is currently not
41 extensible. For a given mimetype the value must be set accordingly:
42
43 Note - application/x-microsoft.net.object.binary.base64 is the format
44 that the ResXResourceWriter will generate, however the reader can
45 read any of the formats listed below.
46
47 mimetype: application/x-microsoft.net.object.binary.base64
48 value : The object must be serialized with
49 : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
50 : and then encoded with base64 encoding.
51
52 mimetype: application/x-microsoft.net.object.soap.base64
53 value : The object must be serialized with
54 : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
55 : and then encoded with base64 encoding.
56
57 mimetype: application/x-microsoft.net.object.bytearray.base64
58 value : The object must be serialized into a byte array
59 : using a System.ComponentModel.TypeConverter
60 : and then encoded with base64 encoding.
61 -->
62 <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
63 <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
64 <xsd:element name="root" msdata:IsDataSet="true">
65 <xsd:complexType>
66 <xsd:choice maxOccurs="unbounded">
67 <xsd:element name="metadata">
68 <xsd:complexType>
69 <xsd:sequence>
70 <xsd:element name="value" type="xsd:string" minOccurs="0" />
71 </xsd:sequence>
72 <xsd:attribute name="name" use="required" type="xsd:string" />
73 <xsd:attribute name="type" type="xsd:string" />
74 <xsd:attribute name="mimetype" type="xsd:string" />
75 <xsd:attribute ref="xml:space" />
76 </xsd:complexType>
77 </xsd:element>
78 <xsd:element name="assembly">
79 <xsd:complexType>
80 <xsd:attribute name="alias" type="xsd:string" />
81 <xsd:attribute name="name" type="xsd:string" />
82 </xsd:complexType>
83 </xsd:element>
84 <xsd:element name="data">
85 <xsd:complexType>
86 <xsd:sequence>
87 <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
88 <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
89 </xsd:sequence>
90 <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
91 <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
92 <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
93 <xsd:attribute ref="xml:space" />
94 </xsd:complexType>
95 </xsd:element>
96 <xsd:element name="resheader">
97 <xsd:complexType>
98 <xsd:sequence>
99 <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
100 </xsd:sequence>
101 <xsd:attribute name="name" type="xsd:string" use="required" />
102 </xsd:complexType>
103 </xsd:element>
104 </xsd:choice>
105 </xsd:complexType>
106 </xsd:element>
107 </xsd:schema>
108 <resheader name="resmimetype">
109 <value>text/microsoft-resx</value>
110 </resheader>
111 <resheader name="version">
112 <value>2.0</value>
113 </resheader>
114 <resheader name="reader">
115 <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
116 </resheader>
117 <resheader name="writer">
118 <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
119 </resheader>
120 <assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
121 <data name="pictureBox1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
122 <value>
123 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
435</value>
436 </data>
437 <data name="richTextBox1.Text" xml:space="preserve">
438 <value>Xibo - Digitial Signage - http://www.xibo.org.uk
439Copyright (C) 2006-2014 Daniel Garner and the Xibo Developers
440
441Xibo is free software: you can redistribute it and/or modify
442it under the terms of the GNU Affero General Public License as published by
443the Free Software Foundation, either version 3 of the License, or
444any later version.
445
446Xibo is distributed in the hope that it will be useful,
447but WITHOUT ANY WARRANTY; without even the implied warranty of
448MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
449GNU Affero General Public License for more details.
450
451You should have received a copy of the GNU Affero General Public License
452along with Xibo. If not, see &lt;http://www.gnu.org/licenses/&gt;.</value>
453 </data>
454 <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
455 <value>
456 AAABAAkAICAQAAEABADoAgAAlgAAABAQEAABAAQAKAEAAH4DAAAwMAAAAQAIAKgOAACmBAAAICAAAAEA
457 CACoCAAAThMAABAQAAABAAgAaAUAAPYbAAAAAAAAAQAgAM8wAABeIQAAMDAAAAEAIACoJQAALVIAACAg
458 AAABACAAqBAAANV3AAAQEAAAAQAgAGgEAAB9iAAAKAAAACAAAABAAAAAAQAEAAAAAAAAAAAAAAAAAAAA
459 AAAAAAAAAAAAAAAAAAAAAIAAAIAAAACAgACAAAAAgACAAICAAACAgIAAwMDAAAAA/wAA/wAAAP//AP8A
460 AAD/AP8A//8AAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4d3AAAAAAAAAAAAAAAACGxsfmcAAAAA
461 AAAAAAAAAHbOd+bGcAAAAAAAAAAAAAfmcAAAfscAAAAAAAAAAAAI7AAAAAZnAAAAAAAAAAAADGcAAAAI
462 7HAAAAAAAAAAAHbnAAAAAG5wAAAAAAAAAACMZwAAAADGcAAAAAAAAAAAfmgAAAAAbnAAAAAAAAAAAIxn
463 AAAAAOZwAAAAAAAAAAAG5wAAAAhscAAAAAAAAAAAB8YAAAAIbgAAAAAAAAAAAAfncAAAdscAAAAAAAAA
464 AAAAx+d3d85wAAAAAAAAAAAAAAbsdsfmAAAAAAAAAAAAAAAAdn5ncAAAAAAAAAAAAAAAAAAAAAAAAAAA
465 AAAAAAAAAHhwAACIcAAAAAAAAAAAAACIiAAAiIcAAAAAAAAAAAAI+PgACPj4AAAAAAAAAAAAAI/4AAj4
466 +AAAAAAAAAAAAACIgAAAiIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeHAA
467 AAAAAAB4dwAAAAAACPj4AAAAAAAIiPhwAAAAAAj/iAAAAAAACI/4gAAAAACIj/gAAAAAAAiPj4AAAAAA
468 CP+PAAAAAAAI+P9wAAAAAACIgAAAAAAAAIiIAAAAAAAAAAAAAAAAAAAAAAAAAP//////+D///+AP///A
469 B///h8P//4/j//+P4f//D/H//w/x//8P8f//D/H//4/h//+P4///h8P//8AH///gD///8B/////////H
470 x///w8P//4OD///Dg///x8f////////////8f/w/+D/4H/g/+B/wP/gf+D/4H/x//D//////KAAAABAA
471 AAAgAAAAAQAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAIAAAACAgACAAAAAgACAAICA
472 AACAgIAAwMDAAAAA/wAA/wAAAP//AP8AAAD/AP8A//8AAP///wAAAAAAAAAAAAAAB8dmAAAAAAAGAAdw
473 AAAAAHYAAGAAAAAAdwAAYAAAAAB2AADgAAAAAH4AB2AAAAAAB2duAAAAAAAAeHAAAAAAAAhwCHAAAAAA
474 D4APgAAAAAAAAAAAAAAACAAAAABwAACIgAAACPAAAI+AAAAI8AAACAAAAAgAAP/////4P///+5////Pf
475 ///z3///89////Of///4P////H////mf///5n////////+/3///H5///x+f//+/v//8oAAAAMAAAAGAA
476 AAABAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHNuZgB+dmkAenVtAHd1cgB8enYAenp5AHx8
477 fAC+eRIAv3sUAL58FQC/fRgAvn8dAMF9FQDAfxoAi3FKAIxzTQCafk0AnH9PAIx1UQCLd1cAj3tbAI98
478 XACWfFIAkntVAJd+VQCOfWAAi3xkAIB4awCGe2kAh31rAIF5bACAfXgAv4AdAL6BIgC6gSkAvYMpAL2F
479 KgCugTwAtYM3ALaFNQC7hDEAsYE5ALaFOAC5iToAvYo5AL6LPgDCgBYAxIEWAMaEFwDBgBoAxIIYAMaF
480 GQDBgR0Aw4QeAMWFHQDIhxkAx4kfAMiIGgDIiB0Aw4UjAMKFJADEhyQAxokhAMGHLgDCiCoAx4woAMCI
481 MwDDjTUAwo88AMOSPQDGkj0AxZQ+AJaAWwCuhUEAqYRHAK6GRgClhU8AsodDALKIRgC0iEQAuotBAL6O
482 QgC7jkYAsYtKALuRTQCsi1UAs49UAJ6IZgCNgnAAioV9AI6IfwCTiHcAnY10AKKLZgCljGUAoYxrAKyS
483 aQCokm0AuZpmAL+eZgCyl2wAt5poAK2XcwC2nnYAuaF5AMOTRQDCk0kAx5dIAMGVTwDGnlkAwZxfAMSd
484 XwDBonEAw6d6AMSpfACBgYEAhoSCAIaGhgCJiYkAjo6OAJaPggCSkpIAlpaWAJqamgCdnZ0AppiDAK2d
485 hACimYkAqJyIALikggCxpZEAva6UAL+xmQChoqIApqamAKioqACvr68AsbGxALO0tAC5ubkAvr6+AMKu
486 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
531 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//
532 /////wAA////////AAD//+AP//8AAP//gAP//wAA//8AAf//AAD//gAA//8AAP/8D+B//wAA//wf8H//
533 AAD/+D/wf/8AAP/4P/g//wAA//g/+D//AAD/+H/4P/8AAP/4f/w//wAA//h//D//AAD/+H/8P/8AAP/4
534 f/w//wAA//g/+D//AAD/+D/4P/8AAP/4P/g//wAA//gf8H//AAD//A/gf/8AAP/+A4D//wAA//4AAf//
535 AAD//wAD//8AAP//wAf//wAA///wH///AAD///////8AAP//D/H//wAA//4H4P//AAD//gfAf/8AAP/8
536 B8B//wAA//wHwH//AAD//AfAf/8AAP/+D+D//wAA//+/+///AAD///////8AAP///////wAA/+///+f/
537 AAD/g///gf8AAP8B//8A/wAA/gD//wD/AAD+AP//AP8AAP4A//4A/wAA/gH//wD/AAD+Af//AP8AAP8D
538 //+B/wAA/4f//8P/AAD///////8AACgAAAAgAAAAQAAAAAEACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
539 AAAAAAAAf3VlAHx2awC+eRIAvnoUAL98FQC6fBsAvn0ZALt9HAC4fiQAsn0uAKl/OwDBfhQAwH8YAIpz
540 SwCLdFAAjXZVAIl2WACLeFoAjHpcAIR2YACFeGMAhXhkAIV9cgC+gB8Av4EhALmAJAC9giUAtYIuALqE
541 KAC/hSsAuIItALuFLQCvgjYAsIA2AL6MOwC7iTwAvIw8AMOAFgDEgRYAxoQXAMKBGgDEgxkAxoUZAMGC
542 HQDDhB8AwYUhAMSGIQDChyYAxospAMCMMwDEjjEAwY42AMSONQCag10AnYNcAK6HSwC7j0UAtY1KAL6R
543 RQCmiFYArYlRAKGEWAC2kFQAvpdbAIyAbACeh2IAnolnAJSEaQCVhm0AhIB4AI2HfACUincAkol5AJCJ
544 fACekHkAt5hkALGWaAC+n24AqpRxAKyWcwCvmXIArJt+ALCdfgDCml0AhISEAIqKigCNjY0AkpKSAJaW
545 lgCZmZkAnp6eAKWZhQCpmoEAqJ+PAKCgoACqqqoAra2tALKysgC2t7cAurq6ALu8vAC9vb0AwMDAAMbH
546 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
1057 QYPDrEHDw6xB
1058</value>
1059 </data>
1060</root>
0\ No newline at end of file1061\ No newline at end of file
11062
=== added file 'client/dotNET/Forms/OptionForm.Designer.cs'
--- client/dotNET/Forms/OptionForm.Designer.cs 1970-01-01 00:00:00 +0000
+++ client/dotNET/Forms/OptionForm.Designer.cs 2014-09-18 17:08:39 +0000
@@ -0,0 +1,469 @@
1namespace XiboClient
2{
3 partial class OptionForm
4 {
5 /// <summary>
6 /// Required designer variable.
7 /// </summary>
8 private System.ComponentModel.IContainer components = null;
9
10 /// <summary>
11 /// Clean up any resources being used.
12 /// </summary>
13 /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
14 protected override void Dispose(bool disposing)
15 {
16 if (disposing && (components != null))
17 {
18 components.Dispose();
19 }
20 base.Dispose(disposing);
21 }
22
23 #region Windows Form Designer generated code
24
25 /// <summary>
26 /// Required method for Designer support - do not modify
27 /// the contents of this method with the code editor.
28 /// </summary>
29 private void InitializeComponent()
30 {
31 System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(OptionForm));
32 this.label1 = new System.Windows.Forms.Label();
33 this.label2 = new System.Windows.Forms.Label();
34 this.label3 = new System.Windows.Forms.Label();
35 this.buttonSaveSettings = new System.Windows.Forms.Button();
36 this.label9 = new System.Windows.Forms.Label();
37 this.buttonLibrary = new System.Windows.Forms.Button();
38 this.tbHardwareKey = new System.Windows.Forms.TextBox();
39 this.textBoxXmdsUri = new System.Windows.Forms.TextBox();
40 this.textBoxServerKey = new System.Windows.Forms.TextBox();
41 this.textBoxLibraryPath = new System.Windows.Forms.TextBox();
42 this.buttonDisplayAdmin = new System.Windows.Forms.Button();
43 this.groupBox2 = new System.Windows.Forms.GroupBox();
44 this.textBoxProxyDomain = new System.Windows.Forms.TextBox();
45 this.maskedTextBoxProxyPass = new System.Windows.Forms.MaskedTextBox();
46 this.textBoxProxyUser = new System.Windows.Forms.TextBox();
47 this.labelProxyDomain = new System.Windows.Forms.Label();
48 this.labelProxyPass = new System.Windows.Forms.Label();
49 this.labelProxyUser = new System.Windows.Forms.Label();
50 this.splashButtonBrowse = new System.Windows.Forms.Button();
51 this.linkLabel1 = new System.Windows.Forms.LinkLabel();
52 this.label17 = new System.Windows.Forms.Label();
53 this.label16 = new System.Windows.Forms.Label();
54 this.splashOverride = new System.Windows.Forms.TextBox();
55 this.menuStrip1 = new System.Windows.Forms.MenuStrip();
56 this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
57 this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
58 this.aboutToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
59 this.aboutToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
60 this.onlineHelpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
61 this.folderBrowserLibrary = new System.Windows.Forms.FolderBrowserDialog();
62 this.splashScreenOverride = new System.Windows.Forms.OpenFileDialog();
63 this.tbStatus = new System.Windows.Forms.TextBox();
64 this.xmds1 = new XiboClient.xmds.xmds();
65 this.buttonExit = new System.Windows.Forms.Button();
66 this.button1 = new System.Windows.Forms.Button();
67 this.groupBox2.SuspendLayout();
68 this.menuStrip1.SuspendLayout();
69 this.SuspendLayout();
70 //
71 // label1
72 //
73 this.label1.AutoSize = true;
74 this.label1.Font = new System.Drawing.Font("Arial", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
75 this.label1.Location = new System.Drawing.Point(11, 46);
76 this.label1.Name = "label1";
77 this.label1.Size = new System.Drawing.Size(128, 22);
78 this.label1.TabIndex = 1;
79 this.label1.Text = "CMS Address";
80 //
81 // label2
82 //
83 this.label2.AutoSize = true;
84 this.label2.Font = new System.Drawing.Font("Arial", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
85 this.label2.Location = new System.Drawing.Point(522, 46);
86 this.label2.Name = "label2";
87 this.label2.Size = new System.Drawing.Size(43, 22);
88 this.label2.TabIndex = 3;
89 this.label2.Text = "Key";
90 //
91 // label3
92 //
93 this.label3.AutoSize = true;
94 this.label3.Font = new System.Drawing.Font("Arial", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
95 this.label3.Location = new System.Drawing.Point(21, 92);
96 this.label3.Name = "label3";
97 this.label3.Size = new System.Drawing.Size(118, 22);
98 this.label3.TabIndex = 5;
99 this.label3.Text = "Local Library";
100 //
101 // buttonSaveSettings
102 //
103 this.buttonSaveSettings.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
104 this.buttonSaveSettings.Location = new System.Drawing.Point(12, 508);
105 this.buttonSaveSettings.Name = "buttonSaveSettings";
106 this.buttonSaveSettings.Size = new System.Drawing.Size(387, 41);
107 this.buttonSaveSettings.TabIndex = 6;
108 this.buttonSaveSettings.Text = "Save";
109 this.buttonSaveSettings.UseVisualStyleBackColor = true;
110 this.buttonSaveSettings.Click += new System.EventHandler(this.buttonSaveSettings_Click);
111 //
112 // label9
113 //
114 this.label9.AutoSize = true;
115 this.label9.Font = new System.Drawing.Font("Arial", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
116 this.label9.Location = new System.Drawing.Point(468, 92);
117 this.label9.Name = "label9";
118 this.label9.Size = new System.Drawing.Size(97, 22);
119 this.label9.TabIndex = 13;
120 this.label9.Text = "Display ID";
121 //
122 // buttonLibrary
123 //
124 this.buttonLibrary.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
125 this.buttonLibrary.Location = new System.Drawing.Point(353, 87);
126 this.buttonLibrary.Name = "buttonLibrary";
127 this.buttonLibrary.Size = new System.Drawing.Size(109, 31);
128 this.buttonLibrary.TabIndex = 10;
129 this.buttonLibrary.Text = "Browse";
130 this.buttonLibrary.UseVisualStyleBackColor = true;
131 this.buttonLibrary.Click += new System.EventHandler(this.buttonLibrary_Click);
132 //
133 // tbHardwareKey
134 //
135 this.tbHardwareKey.Font = new System.Drawing.Font("Arial", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
136 this.tbHardwareKey.Location = new System.Drawing.Point(571, 89);
137 this.tbHardwareKey.Name = "tbHardwareKey";
138 this.tbHardwareKey.Size = new System.Drawing.Size(116, 29);
139 this.tbHardwareKey.TabIndex = 14;
140 //
141 // textBoxXmdsUri
142 //
143 this.textBoxXmdsUri.Font = new System.Drawing.Font("Arial", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
144 this.textBoxXmdsUri.Location = new System.Drawing.Point(145, 43);
145 this.textBoxXmdsUri.Name = "textBoxXmdsUri";
146 this.textBoxXmdsUri.Size = new System.Drawing.Size(371, 29);
147 this.textBoxXmdsUri.TabIndex = 0;
148 this.textBoxXmdsUri.Text = "http://localhost/xibo";
149 //
150 // textBoxServerKey
151 //
152 this.textBoxServerKey.Font = new System.Drawing.Font("Arial", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
153 this.textBoxServerKey.Location = new System.Drawing.Point(571, 43);
154 this.textBoxServerKey.Name = "textBoxServerKey";
155 this.textBoxServerKey.Size = new System.Drawing.Size(116, 29);
156 this.textBoxServerKey.TabIndex = 2;
157 //
158 // textBoxLibraryPath
159 //
160 this.textBoxLibraryPath.Font = new System.Drawing.Font("Arial", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
161 this.textBoxLibraryPath.Location = new System.Drawing.Point(145, 89);
162 this.textBoxLibraryPath.Name = "textBoxLibraryPath";
163 this.textBoxLibraryPath.Size = new System.Drawing.Size(202, 29);
164 this.textBoxLibraryPath.TabIndex = 4;
165 this.textBoxLibraryPath.Text = "DEFAULT";
166 //
167 // buttonDisplayAdmin
168 //
169 this.buttonDisplayAdmin.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
170 this.buttonDisplayAdmin.Location = new System.Drawing.Point(501, 508);
171 this.buttonDisplayAdmin.Name = "buttonDisplayAdmin";
172 this.buttonDisplayAdmin.Size = new System.Drawing.Size(90, 41);
173 this.buttonDisplayAdmin.TabIndex = 7;
174 this.buttonDisplayAdmin.Text = "Display Admin";
175 this.buttonDisplayAdmin.UseVisualStyleBackColor = true;
176 this.buttonDisplayAdmin.Click += new System.EventHandler(this.buttonDisplayAdmin_Click);
177 //
178 // groupBox2
179 //
180 this.groupBox2.Controls.Add(this.textBoxProxyDomain);
181 this.groupBox2.Controls.Add(this.maskedTextBoxProxyPass);
182 this.groupBox2.Controls.Add(this.textBoxProxyUser);
183 this.groupBox2.Controls.Add(this.labelProxyDomain);
184 this.groupBox2.Controls.Add(this.labelProxyPass);
185 this.groupBox2.Controls.Add(this.labelProxyUser);
186 this.groupBox2.Font = new System.Drawing.Font("Arial", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
187 this.groupBox2.Location = new System.Drawing.Point(12, 263);
188 this.groupBox2.Name = "groupBox2";
189 this.groupBox2.Size = new System.Drawing.Size(674, 150);
190 this.groupBox2.TabIndex = 7;
191 this.groupBox2.TabStop = false;
192 this.groupBox2.Text = "Proxy Information";
193 //
194 // textBoxProxyDomain
195 //
196 this.textBoxProxyDomain.Font = new System.Drawing.Font("Arial", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
197 this.textBoxProxyDomain.Location = new System.Drawing.Point(110, 95);
198 this.textBoxProxyDomain.Name = "textBoxProxyDomain";
199 this.textBoxProxyDomain.Size = new System.Drawing.Size(558, 29);
200 this.textBoxProxyDomain.TabIndex = 7;
201 //
202 // maskedTextBoxProxyPass
203 //
204 this.maskedTextBoxProxyPass.Font = new System.Drawing.Font("Arial", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
205 this.maskedTextBoxProxyPass.Location = new System.Drawing.Point(441, 37);
206 this.maskedTextBoxProxyPass.Name = "maskedTextBoxProxyPass";
207 this.maskedTextBoxProxyPass.Size = new System.Drawing.Size(227, 29);
208 this.maskedTextBoxProxyPass.TabIndex = 5;
209 this.maskedTextBoxProxyPass.UseSystemPasswordChar = true;
210 //
211 // textBoxProxyUser
212 //
213 this.textBoxProxyUser.Font = new System.Drawing.Font("Arial", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
214 this.textBoxProxyUser.Location = new System.Drawing.Point(110, 37);
215 this.textBoxProxyUser.Name = "textBoxProxyUser";
216 this.textBoxProxyUser.Size = new System.Drawing.Size(225, 29);
217 this.textBoxProxyUser.TabIndex = 3;
218 //
219 // labelProxyDomain
220 //
221 this.labelProxyDomain.AutoSize = true;
222 this.labelProxyDomain.Font = new System.Drawing.Font("Arial", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
223 this.labelProxyDomain.Location = new System.Drawing.Point(29, 95);
224 this.labelProxyDomain.Name = "labelProxyDomain";
225 this.labelProxyDomain.Size = new System.Drawing.Size(75, 22);
226 this.labelProxyDomain.TabIndex = 2;
227 this.labelProxyDomain.Text = "Domain";
228 //
229 // labelProxyPass
230 //
231 this.labelProxyPass.AutoSize = true;
232 this.labelProxyPass.Font = new System.Drawing.Font("Arial", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
233 this.labelProxyPass.Location = new System.Drawing.Point(341, 40);
234 this.labelProxyPass.Name = "labelProxyPass";
235 this.labelProxyPass.Size = new System.Drawing.Size(94, 22);
236 this.labelProxyPass.TabIndex = 1;
237 this.labelProxyPass.Text = "Password";
238 //
239 // labelProxyUser
240 //
241 this.labelProxyUser.AutoSize = true;
242 this.labelProxyUser.Font = new System.Drawing.Font("Arial", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
243 this.labelProxyUser.Location = new System.Drawing.Point(7, 40);
244 this.labelProxyUser.Name = "labelProxyUser";
245 this.labelProxyUser.Size = new System.Drawing.Size(97, 22);
246 this.labelProxyUser.TabIndex = 0;
247 this.labelProxyUser.Text = "Username";
248 //
249 // splashButtonBrowse
250 //
251 this.splashButtonBrowse.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
252 this.splashButtonBrowse.Location = new System.Drawing.Point(353, 136);
253 this.splashButtonBrowse.Name = "splashButtonBrowse";
254 this.splashButtonBrowse.Size = new System.Drawing.Size(109, 29);
255 this.splashButtonBrowse.TabIndex = 14;
256 this.splashButtonBrowse.Text = "Browse";
257 this.splashButtonBrowse.UseVisualStyleBackColor = true;
258 this.splashButtonBrowse.Click += new System.EventHandler(this.splashButtonBrowse_Click);
259 //
260 // linkLabel1
261 //
262 this.linkLabel1.AutoSize = true;
263 this.linkLabel1.Font = new System.Drawing.Font("Arial", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
264 this.linkLabel1.Location = new System.Drawing.Point(246, 226);
265 this.linkLabel1.Name = "linkLabel1";
266 this.linkLabel1.Size = new System.Drawing.Size(177, 18);
267 this.linkLabel1.TabIndex = 13;
268 this.linkLabel1.TabStop = true;
269 this.linkLabel1.Text = "http://xibo.org.uk/donate/";
270 //
271 // label17
272 //
273 this.label17.AutoSize = true;
274 this.label17.Font = new System.Drawing.Font("Arial", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
275 this.label17.Location = new System.Drawing.Point(95, 195);
276 this.label17.Name = "label17";
277 this.label17.Size = new System.Drawing.Size(509, 18);
278 this.label17.TabIndex = 12;
279 this.label17.Text = "If you override the splash screen please consider donating to the project. ";
280 //
281 // label16
282 //
283 this.label16.AutoSize = true;
284 this.label16.Font = new System.Drawing.Font("Arial", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
285 this.label16.Location = new System.Drawing.Point(3, 139);
286 this.label16.Name = "label16";
287 this.label16.Size = new System.Drawing.Size(134, 22);
288 this.label16.TabIndex = 11;
289 this.label16.Text = "Splash Screen";
290 //
291 // splashOverride
292 //
293 this.splashOverride.Font = new System.Drawing.Font("Arial", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
294 this.splashOverride.Location = new System.Drawing.Point(145, 136);
295 this.splashOverride.Name = "splashOverride";
296 this.splashOverride.Size = new System.Drawing.Size(202, 29);
297 this.splashOverride.TabIndex = 10;
298 //
299 // menuStrip1
300 //
301 this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
302 this.fileToolStripMenuItem,
303 this.aboutToolStripMenuItem});
304 this.menuStrip1.Location = new System.Drawing.Point(0, 0);
305 this.menuStrip1.Name = "menuStrip1";
306 this.menuStrip1.Size = new System.Drawing.Size(698, 24);
307 this.menuStrip1.TabIndex = 8;
308 this.menuStrip1.Text = "menuStrip1";
309 //
310 // fileToolStripMenuItem
311 //
312 this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
313 this.exitToolStripMenuItem});
314 this.fileToolStripMenuItem.Name = "fileToolStripMenuItem";
315 this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20);
316 this.fileToolStripMenuItem.Text = "File";
317 //
318 // exitToolStripMenuItem
319 //
320 this.exitToolStripMenuItem.Name = "exitToolStripMenuItem";
321 this.exitToolStripMenuItem.Size = new System.Drawing.Size(92, 22);
322 this.exitToolStripMenuItem.Text = "Exit";
323 this.exitToolStripMenuItem.Click += new System.EventHandler(this.exitToolStripMenuItem_Click);
324 //
325 // aboutToolStripMenuItem
326 //
327 this.aboutToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
328 this.aboutToolStripMenuItem1,
329 this.onlineHelpToolStripMenuItem});
330 this.aboutToolStripMenuItem.Name = "aboutToolStripMenuItem";
331 this.aboutToolStripMenuItem.Size = new System.Drawing.Size(44, 20);
332 this.aboutToolStripMenuItem.Text = "Help";
333 //
334 // aboutToolStripMenuItem1
335 //
336 this.aboutToolStripMenuItem1.Name = "aboutToolStripMenuItem1";
337 this.aboutToolStripMenuItem1.Size = new System.Drawing.Size(137, 22);
338 this.aboutToolStripMenuItem1.Text = "About";
339 this.aboutToolStripMenuItem1.Click += new System.EventHandler(this.aboutToolStripMenuItem1_Click);
340 //
341 // onlineHelpToolStripMenuItem
342 //
343 this.onlineHelpToolStripMenuItem.Name = "onlineHelpToolStripMenuItem";
344 this.onlineHelpToolStripMenuItem.Size = new System.Drawing.Size(137, 22);
345 this.onlineHelpToolStripMenuItem.Text = "Online Help";
346 this.onlineHelpToolStripMenuItem.Click += new System.EventHandler(this.onlineHelpToolStripMenuItem_Click);
347 //
348 // splashScreenOverride
349 //
350 this.splashScreenOverride.FileName = "Splash Screen.jpg";
351 //
352 // tbStatus
353 //
354 this.tbStatus.BackColor = System.Drawing.SystemColors.Control;
355 this.tbStatus.BorderStyle = System.Windows.Forms.BorderStyle.None;
356 this.tbStatus.Cursor = System.Windows.Forms.Cursors.Default;
357 this.tbStatus.Font = new System.Drawing.Font("Arial", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
358 this.tbStatus.Location = new System.Drawing.Point(12, 431);
359 this.tbStatus.Multiline = true;
360 this.tbStatus.Name = "tbStatus";
361 this.tbStatus.Size = new System.Drawing.Size(674, 60);
362 this.tbStatus.TabIndex = 15;
363 //
364 // xmds1
365 //
366 this.xmds1.Credentials = null;
367 this.xmds1.Url = "http://localhost/Xibo/server/xmds.php";
368 this.xmds1.UseDefaultCredentials = false;
369 //
370 // buttonExit
371 //
372 this.buttonExit.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
373 this.buttonExit.Location = new System.Drawing.Point(597, 508);
374 this.buttonExit.Name = "buttonExit";
375 this.buttonExit.Size = new System.Drawing.Size(90, 41);
376 this.buttonExit.TabIndex = 16;
377 this.buttonExit.Text = "Exit";
378 this.buttonExit.UseVisualStyleBackColor = true;
379 this.buttonExit.Click += new System.EventHandler(this.buttonExit_Click);
380 //
381 // button1
382 //
383 this.button1.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
384 this.button1.Location = new System.Drawing.Point(405, 508);
385 this.button1.Name = "button1";
386 this.button1.Size = new System.Drawing.Size(90, 41);
387 this.button1.TabIndex = 17;
388 this.button1.Text = "Launch Client";
389 this.button1.UseVisualStyleBackColor = true;
390 this.button1.Click += new System.EventHandler(this.button1_Click);
391 //
392 // OptionForm
393 //
394 this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
395 this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
396 this.ClientSize = new System.Drawing.Size(698, 561);
397 this.Controls.Add(this.button1);
398 this.Controls.Add(this.buttonExit);
399 this.Controls.Add(this.tbStatus);
400 this.Controls.Add(this.splashButtonBrowse);
401 this.Controls.Add(this.buttonDisplayAdmin);
402 this.Controls.Add(this.linkLabel1);
403 this.Controls.Add(this.groupBox2);
404 this.Controls.Add(this.label17);
405 this.Controls.Add(this.menuStrip1);
406 this.Controls.Add(this.label16);
407 this.Controls.Add(this.splashOverride);
408 this.Controls.Add(this.label9);
409 this.Controls.Add(this.buttonSaveSettings);
410 this.Controls.Add(this.tbHardwareKey);
411 this.Controls.Add(this.buttonLibrary);
412 this.Controls.Add(this.label1);
413 this.Controls.Add(this.textBoxXmdsUri);
414 this.Controls.Add(this.label2);
415 this.Controls.Add(this.label3);
416 this.Controls.Add(this.textBoxServerKey);
417 this.Controls.Add(this.textBoxLibraryPath);
418 this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
419 this.MainMenuStrip = this.menuStrip1;
420 this.Name = "OptionForm";
421 this.Text = "Xibo Client Options";
422 this.groupBox2.ResumeLayout(false);
423 this.groupBox2.PerformLayout();
424 this.menuStrip1.ResumeLayout(false);
425 this.menuStrip1.PerformLayout();
426 this.ResumeLayout(false);
427 this.PerformLayout();
428
429 }
430
431 #endregion
432
433 private XiboClient.xmds.xmds xmds1;
434 private System.Windows.Forms.TextBox textBoxXmdsUri;
435 private System.Windows.Forms.Label label1;
436 private System.Windows.Forms.TextBox textBoxServerKey;
437 private System.Windows.Forms.Label label2;
438 private System.Windows.Forms.TextBox textBoxLibraryPath;
439 private System.Windows.Forms.Label label3;
440 private System.Windows.Forms.Button buttonSaveSettings;
441 private System.Windows.Forms.MenuStrip menuStrip1;
442 private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem;
443 private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem;
444 private System.Windows.Forms.ToolStripMenuItem aboutToolStripMenuItem;
445 private System.Windows.Forms.ToolStripMenuItem aboutToolStripMenuItem1;
446 private System.Windows.Forms.FolderBrowserDialog folderBrowserLibrary;
447 private System.Windows.Forms.Button buttonLibrary;
448 private System.Windows.Forms.ToolStripMenuItem onlineHelpToolStripMenuItem;
449 private System.Windows.Forms.Button buttonDisplayAdmin;
450 private System.Windows.Forms.GroupBox groupBox2;
451 private System.Windows.Forms.MaskedTextBox maskedTextBoxProxyPass;
452 private System.Windows.Forms.TextBox textBoxProxyUser;
453 private System.Windows.Forms.Label labelProxyDomain;
454 private System.Windows.Forms.Label labelProxyPass;
455 private System.Windows.Forms.Label labelProxyUser;
456 private System.Windows.Forms.TextBox textBoxProxyDomain;
457 private System.Windows.Forms.TextBox tbHardwareKey;
458 private System.Windows.Forms.Label label9;
459 private System.Windows.Forms.OpenFileDialog splashScreenOverride;
460 private System.Windows.Forms.Button splashButtonBrowse;
461 private System.Windows.Forms.LinkLabel linkLabel1;
462 private System.Windows.Forms.Label label17;
463 private System.Windows.Forms.Label label16;
464 private System.Windows.Forms.TextBox splashOverride;
465 private System.Windows.Forms.TextBox tbStatus;
466 private System.Windows.Forms.Button buttonExit;
467 private System.Windows.Forms.Button button1;
468 }
469}
0\ No newline at end of file470\ No newline at end of file
1471
=== added file 'client/dotNET/Forms/OptionForm.cs'
--- client/dotNET/Forms/OptionForm.cs 1970-01-01 00:00:00 +0000
+++ client/dotNET/Forms/OptionForm.cs 2014-09-18 17:08:39 +0000
@@ -0,0 +1,286 @@
1/*
2 * Xibo - Digitial Signage - http://www.xibo.org.uk
3 * Copyright (C) 2006-2014 Daniel Garner
4 *
5 * This file is part of Xibo.
6 *
7 * Xibo is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU Affero General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * any later version.
11 *
12 * Xibo is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU Affero General Public License for more details.
16 *
17 * You should have received a copy of the GNU Affero General Public License
18 * along with Xibo. If not, see <http://www.gnu.org/licenses/>.
19 */
20using System;
21using System.Collections.Generic;
22using System.ComponentModel;
23using System.Security.Cryptography.X509Certificates;
24using System.Data;
25using System.Drawing;
26using System.Text;
27using System.Net;
28using System.Windows.Forms;
29using XiboClient.Properties;
30using System.Diagnostics;
31using System.Xml;
32using XiboClient.XmdsAgents;
33
34namespace XiboClient
35{
36 public partial class OptionForm : Form
37 {
38 private HardwareKey _hardwareKey;
39
40
41 public OptionForm()
42 {
43 InitializeComponent();
44
45 Debug.WriteLine("Initialise Option Form Components", "OptionForm");
46
47 // Get a hardware key here, just in case we havent been able to get one before
48 _hardwareKey = new HardwareKey();
49
50 // XMDS completed event
51 xmds1.RegisterDisplayCompleted += new XiboClient.xmds.RegisterDisplayCompletedEventHandler(xmds1_RegisterDisplayCompleted);
52
53 // Library Path
54 if (ApplicationSettings.Default.LibraryPath == "DEFAULT")
55 {
56 Debug.WriteLine("Getting the Library Path", "OptionForm");
57 ApplicationSettings.Default.LibraryPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\Xibo Library";
58 ApplicationSettings.Default.Save();
59 }
60
61 // Computer name if the display name hasnt been set yet
62 if (ApplicationSettings.Default.DisplayName == "COMPUTERNAME")
63 {
64 Debug.WriteLine("Getting the display Name", "OptionForm");
65 ApplicationSettings.Default.DisplayName = Environment.MachineName;
66 ApplicationSettings.Default.Save();
67 }
68
69 // Set global proxy information
70 OptionForm.SetGlobalProxy();
71
72 // Settings Tab
73 textBoxXmdsUri.Text = ApplicationSettings.Default.ServerUri;
74 textBoxServerKey.Text = ApplicationSettings.Default.ServerKey;
75 textBoxLibraryPath.Text = ApplicationSettings.Default.LibraryPath;
76 tbHardwareKey.Text = ApplicationSettings.Default.HardwareKey;
77
78 // Proxy Tab
79 textBoxProxyUser.Text = ApplicationSettings.Default.ProxyUser;
80 maskedTextBoxProxyPass.Text = ApplicationSettings.Default.ProxyPassword;
81 textBoxProxyDomain.Text = ApplicationSettings.Default.ProxyDomain;
82
83 // Appearance Tab
84 splashOverride.Text = ApplicationSettings.Default.SplashOverride;
85
86 Debug.WriteLine("Loaded Options Form", "OptionForm");
87 }
88
89 /// <summary>
90 /// Register display completed
91 /// </summary>
92 /// <param name="sender"></param>
93 /// <param name="e"></param>
94 void xmds1_RegisterDisplayCompleted(object sender, XiboClient.xmds.RegisterDisplayCompletedEventArgs e)
95 {
96 tbStatus.ResetText();
97
98 if (e.Error != null)
99 {
100 tbStatus.AppendText("Status" + Environment.NewLine);
101 tbStatus.AppendText(e.Error.Message);
102
103 Debug.WriteLine("Error returned from Call to XMDS Register Display.", "xmds1_RegisterDisplayCompleted");
104 Debug.WriteLine(e.Error.Message, "xmds1_RegisterDisplayCompleted");
105 Debug.WriteLine(e.Error.StackTrace, "xmds1_RegisterDisplayCompleted");
106 }
107 else
108 {
109 tbStatus.AppendText(RegisterAgent.ProcessRegisterXml(e.Result));
110 }
111 }
112
113 /// <summary>
114 /// Save settings
115 /// </summary>
116 /// <param name="sender"></param>
117 /// <param name="e"></param>
118 private void buttonSaveSettings_Click(object sender, EventArgs e)
119 {
120 tbStatus.ResetText();
121 try
122 {
123 tbStatus.AppendText("Saving with CMS... Please wait...");
124
125 // Make sure our XMDS location is correct
126 ApplicationSettings.Default.XiboClient_xmds_xmds = textBoxXmdsUri.Text.TrimEnd('/') + @"/xmds.php";
127
128 // Simple settings
129 ApplicationSettings.Default.ServerKey = textBoxServerKey.Text;
130 ApplicationSettings.Default.LibraryPath = textBoxLibraryPath.Text.TrimEnd('\\');
131 ApplicationSettings.Default.ServerUri = textBoxXmdsUri.Text;
132 ApplicationSettings.Default.HardwareKey = tbHardwareKey.Text;
133
134 // Also tweak the address of the xmds1
135 xmds1.Url = ApplicationSettings.Default.XiboClient_xmds_xmds;
136
137 // Proxy Settings
138 ApplicationSettings.Default.ProxyUser = textBoxProxyUser.Text;
139 ApplicationSettings.Default.ProxyPassword = maskedTextBoxProxyPass.Text;
140 ApplicationSettings.Default.ProxyDomain = textBoxProxyDomain.Text;
141
142 // Change the default Proxy class
143 OptionForm.SetGlobalProxy();
144
145 // Client settings
146 ApplicationSettings.Default.SplashOverride = splashOverride.Text;
147
148 // Commit these changes back to the user settings
149 ApplicationSettings.Default.Save();
150
151 // Call register
152 xmds1.RegisterDisplayAsync(ApplicationSettings.Default.ServerKey, ApplicationSettings.Default.HardwareKey, ApplicationSettings.Default.DisplayName, "windows", ApplicationSettings.Default.ClientVersion, ApplicationSettings.Default.ClientCodeVersion, _hardwareKey.MacAddress, ApplicationSettings.Default.Version);
153 }
154 catch (Exception ex)
155 {
156 tbStatus.AppendText(ex.Message);
157 }
158 }
159
160 private void exitToolStripMenuItem_Click(object sender, EventArgs e)
161 {
162 this.Close();
163 }
164
165
166 private void buttonLibrary_Click(object sender, EventArgs e)
167 {
168 // Set the dialog
169 folderBrowserLibrary.SelectedPath = textBoxLibraryPath.Text;
170
171 // Open the dialog
172 if (folderBrowserLibrary.ShowDialog() == DialogResult.OK)
173 {
174 textBoxLibraryPath.Text = folderBrowserLibrary.SelectedPath;
175 }
176 }
177
178 private void splashButtonBrowse_Click(object sender, EventArgs e)
179 {
180 // Set the dialog
181 splashScreenOverride.FileName = splashOverride.Text;
182
183 if (splashScreenOverride.ShowDialog() == DialogResult.OK)
184 {
185 splashOverride.Text = splashScreenOverride.FileName;
186 }
187 }
188
189 private void onlineHelpToolStripMenuItem_Click(object sender, EventArgs e)
190 {
191 // open URL in separate instance of default browser
192 try
193 {
194 Process.Start("http://xibo.org.uk/manual");
195 }
196 catch
197 {
198 MessageBox.Show("No web browser installed");
199 }
200 }
201
202 private void aboutToolStripMenuItem1_Click(object sender, EventArgs e)
203 {
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches