Index: xword/UICommons/AddinSettingsForm.cs
===================================================================
--- xword/UICommons/AddinSettingsForm.cs (revision 0)
+++ xword/UICommons/AddinSettingsForm.cs (revision 0)
@@ -0,0 +1,431 @@
+using System;
+using System.Collections.Generic;
+using System.Collections.Specialized;
+using System.IO;
+using System.Linq;
+using System.Threading;
+using System.Diagnostics;
+using System.Windows.Forms;
+using XWiki.Logging;
+using XWiki;
+
+namespace UICommons
+{
+ ///
+ /// Provides UI for changing the add-in settings.
+ ///
+ public partial class AddinSettingsForm : Form
+ {
+ ///
+ /// Specifies if at least an instance of the form is visible.
+ ///
+ public static bool IsShown = false;
+ bool connectionSettingsApplied = true;
+ bool addinSettingsApplied = true;
+ bool loadingDialogFlag = false;
+
+ const String connectionDocUrl = "http://xoffice.xwiki.org/xwiki/bin/view/XWord/User_Guide#HConnecttoaXWikiserver";
+
+ #region connectivity
+ StringCollection connectMethods = Properties.Settings.Default.ConnectMethods;
+ Dictionary connectDictionary = new Dictionary();
+ #endregion
+
+ #region Properties
+
+ ///
+ /// Gets or sets the value of connectionSettingsApplied, indicating if
+ /// the connections settings are applied.
+ ///
+ public bool ConnectionSettingsApplied
+ {
+ get { return connectionSettingsApplied; }
+ set { connectionSettingsApplied = value; }
+ }
+
+ ///
+ /// Gets or sets the value of addinSettingsApplied, indicating if
+ /// the addin settings (XOffice common settings) are aplied.
+ ///
+ public bool AddinSettingsApplied
+ {
+ get { return addinSettingsApplied; }
+ set { addinSettingsApplied = value; }
+ }
+
+ ///
+ /// Gets or sets the value of loadingDialogFlag.
+ ///
+ public bool LoadingDialogFlag
+ {
+ get { return loadingDialogFlag; }
+ set { loadingDialogFlag = value; }
+ }
+
+ ///
+ /// Gets the connect methods.
+ ///
+ public StringCollection ConnectMethods
+ {
+ get { return connectMethods; }
+ }
+ ///
+ /// Gets the connectDictionary.
+ ///
+ public Dictionary ConnectDictionary
+ {
+ get { return connectDictionary; }
+ }
+
+ ///
+ /// Gets or sets the URL of the server that the add-in conncets to.
+ ///
+ public String ServerURL
+ {
+ get
+ {
+ return txtServerURL.Text;
+ }
+ set
+ {
+ txtServerURL.Text = value;
+ }
+ }
+
+ ///
+ /// Gets the user name that was provided.
+ ///
+ public String UserName
+ {
+ get
+ {
+ return txtUserName.Text;
+ }
+ set
+ {
+ txtUserName.Text = value;
+ }
+ }
+
+ ///
+ /// Gets the password that was provided.
+ ///
+ public String Password
+ {
+ get
+ {
+ return txtPassword.Text;
+ }
+ set
+ {
+ txtPassword.Text = value;
+ }
+ }
+
+ ///
+ /// Gets or sets the datasource of the comboProtocol combobox.
+ ///
+ public object ComboProtocolDataSource
+ {
+ get { return comboProtocol.DataSource; }
+ set { comboProtocol.DataSource = value; }
+ }
+
+ ///
+ /// Gets or sets the selected index of the comboProtocol combobox.
+ ///
+ public int ComboProtocolSelectedIndex
+ {
+ get { return comboProtocol.SelectedIndex; }
+ set { comboProtocol.SelectedIndex = value; }
+ }
+
+ ///
+ /// Gets the selected value of the comboProtocol combobox.
+ ///
+ public object ComboProtocolSelectedValue
+ {
+ get { return comboProtocol.SelectedValue; }
+ }
+
+ ///
+ /// Gets the checked value of the ckRememberMe checkbox.
+ ///
+ public bool IsCkRememberMeChecked
+ {
+ get { return ckRememberMe.Checked; }
+ }
+
+ ///
+ /// Returns TRUE if connection tab is selected.
+ ///
+ public bool IsTabConnectionSelected
+ {
+ get { return tabControl.SelectedTab == tabConnection; }
+ }
+
+ ///
+ /// Return TRUE if repository tab is selected.
+ ///
+ public bool IsTabFileRepositorySelected
+ {
+ get { return tabControl.SelectedTab == tabFileRepository; }
+ }
+
+ ///
+ /// Gets the text value from the txtPagesRepo textbox.
+ ///
+ public string TxtPagesRepoText
+ {
+ get { return txtPagesRepo.Text; }
+ set { txtPagesRepo.Text = value; }
+ }
+
+ ///
+ /// Gets the text value of the txtAttachmentsRepo textbox.
+ ///
+ public string TxtAttachmentsRepoText
+ {
+ get { return txtAttachmentsRepo.Text; }
+ set { txtAttachmentsRepo.Text = value; }
+ }
+
+ ///
+ /// Gets or sets the text value of groupBox1.
+ ///
+ public string GroupBox1Text
+ {
+ get { return groupBox1.Text; }
+ set { groupBox1.Text = value; }
+ }
+
+ #endregion Properties
+
+ #region Public Event Handlers
+
+ ///
+ /// Actions to perform when on form load.
+ ///
+ public EventHandler OnFormLoad;
+
+ ///
+ /// Actions to perform when applying settings.
+ ///
+ public EventHandler OnApply;
+
+ ///
+ /// Actions to perform when OK button was pressed.
+ ///
+ public EventHandler OnOK;
+
+
+ ///
+ /// Actions to perform when user changes the protocol.
+ ///
+ public EventHandler OnProtocolChange;
+
+ ///
+ /// Actions to perform on canceling settings.
+ ///
+ public EventHandler OnCancel;
+
+ #endregion Public Event Handlers
+
+ ///
+ /// Default constructor. Initializes all components.
+ ///
+ public AddinSettingsForm()
+ {
+ InitializeComponent();
+ }
+
+
+ ///
+ /// Event triggered when the "Apply" button is clicked.
+ ///
+ /// The control that triggered the event.
+ /// The event parameters.
+ private void btnApply_Click(object sender, EventArgs e)
+ {
+ this.OnApply(sender, e);
+ }
+
+
+ ///
+ /// Event triggered when the "Cancel button is pressed.
+ ///
+ /// The control that triggered the event.
+ /// The event parameters.
+ private void btnCancel_Click(object sender, EventArgs e)
+ {
+ this.OnCancel(sender,e);
+ this.DialogResult = DialogResult.Cancel;
+ this.Close();
+ }
+
+ ///
+ /// Event that is automatically triggered the Form is loading.
+ ///
+ /// The control that triggered the event.
+ /// The event parameters.
+ private void ConnectionSettingsForm_Load(object sender, EventArgs e)
+ {
+ this.OnFormLoad(sender,e);
+ }
+
+ ///
+ /// Event triggered when a connection setting is changed.
+ ///
+ /// The control that triggered the event.
+ /// The event parameters.
+ private void txtAnyConnectionSetting_TextChanged(object sender, EventArgs e)
+ {
+ connectionSettingsApplied = false;
+ }
+
+ ///
+ /// Event triggered when the OK button is pressed.
+ ///
+ /// The control that triggered the event.
+ /// The event parameters.
+ private void btnOK_Click(object sender, EventArgs e)
+ {
+ this.OnOK(sender, e);
+ }
+
+ ///
+ /// Event triggered when the select pages repository is clicked.
+ ///
+ /// The control that triggered the event.
+ /// The event parameters.
+ private void btnPagesRepo_Click(object sender, EventArgs e)
+ {
+ FolderBrowserDialog dialog = new FolderBrowserDialog();
+ DialogResult result = dialog.ShowDialog();
+ if (result == DialogResult.OK)
+ {
+ txtPagesRepo.Text = dialog.SelectedPath;
+ }
+ }
+
+ ///
+ /// Event triggered when the select downloaded attachments repository is clicked.
+ ///
+ /// The control that triggered the event.
+ /// The event parameters.
+ private void btnAttachmentsRepo_Click(object sender, EventArgs e)
+ {
+ FolderBrowserDialog dialog = new FolderBrowserDialog();
+ DialogResult result = dialog.ShowDialog();
+ if (result == DialogResult.OK)
+ {
+ txtAttachmentsRepo.Text = dialog.SelectedPath;
+ }
+ }
+
+ ///
+ /// Checks if a path is valid
+ ///
+ /// The value of the path.
+ /// True if the path is valid. False if the path is not valid.
+ public bool ValidatePath(String path)
+ {
+ bool valid = true;
+ try
+ {
+ if (!Path.IsPathRooted(path))
+ {
+ valid = false;
+ }
+ }
+ catch (Exception)
+ {
+ valid = false;
+ }
+ return valid;
+ }
+
+ ///
+ /// Checks if a url is valid.
+ ///
+ /// The value of the url to be checked.
+ /// True if the url is valid. False if the url is not valid.
+ private bool ValidateURL(String url)
+ {
+ bool valid = true;
+ try
+ {
+ Uri uri = new Uri(url, UriKind.Absolute);
+ }
+ catch (UriFormatException)
+ {
+ valid = false;
+ }
+ return valid;
+ }
+
+
+ ///
+ /// Event triggered when the textbox loses the focus.
+ ///
+ /// The control that triggered the event.
+ /// The event parameters.
+ private void txtPagesRepo_Leave(object sender, EventArgs e)
+ {
+ bool isValid = ValidatePath(txtPagesRepo.Text);
+ if (!isValid)
+ {
+ UserNotifier.Error("The path you provided is not valid. Please select a valid path");
+ }
+ }
+
+ ///
+ /// Event triggered when the textbox loses the focus.
+ ///
+ /// The control that triggered the event.
+ /// The event parameters.
+ private void txtAttachmentsRepo_Leave(object sender, EventArgs e)
+ {
+ bool isValid = ValidatePath(txtAttachmentsRepo.Text);
+ if (!isValid)
+ {
+ UserNotifier.Error("The path you provided is not valid. Please select a valid path");
+ }
+ }
+
+ ///
+ /// Event triggered when a repository setting is changed.
+ ///
+ /// The control that triggered the event.
+ /// The event paramaters.
+ private void anyRepoSettingChanged_TextChanged(object sender, EventArgs e)
+ {
+ addinSettingsApplied = false;
+ }
+
+ private void comboProtocol_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ this.OnProtocolChange(sender, e);
+ }
+
+ private void linkConnectDoc_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
+ {
+ if (e.Button == MouseButtons.Left)
+ {
+ Process p = new Process();
+ p.StartInfo = new ProcessStartInfo(connectionDocUrl);
+ p.Start();
+ }
+ }
+
+ private void AddinSettingsForm_FormClosed(object sender, FormClosedEventArgs e)
+ {
+ IsShown = false;
+ }
+
+ private void AddinSettingsForm_Shown(object sender, EventArgs e)
+ {
+ IsShown = true;
+ }
+ }
+}
\ No newline at end of file
Index: xword/UICommons/AddinSettingsForm.Designer.cs
===================================================================
--- xword/UICommons/AddinSettingsForm.Designer.cs (revision 0)
+++ xword/UICommons/AddinSettingsForm.Designer.cs (revision 0)
@@ -0,0 +1,374 @@
+namespace UICommons
+{
+ partial class AddinSettingsForm
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AddinSettingsForm));
+ this.tabControl = new System.Windows.Forms.TabControl();
+ this.tabConnection = new System.Windows.Forms.TabPage();
+ this.txtServerURL = new System.Windows.Forms.TextBox();
+ this.ckRememberMe = new System.Windows.Forms.CheckBox();
+ this.txtPassword = new System.Windows.Forms.TextBox();
+ this.lblPassword = new System.Windows.Forms.Label();
+ this.txtUserName = new System.Windows.Forms.TextBox();
+ this.lblUserName = new System.Windows.Forms.Label();
+ this.lblServerUrl = new System.Windows.Forms.Label();
+ this.groupBox1 = new System.Windows.Forms.GroupBox();
+ this.linkConnectDoc = new System.Windows.Forms.LinkLabel();
+ this.comboProtocol = new System.Windows.Forms.ComboBox();
+ this.lblProtocol = new System.Windows.Forms.Label();
+ this.tabFileRepository = new System.Windows.Forms.TabPage();
+ this.grp = new System.Windows.Forms.GroupBox();
+ this.btnAttachmentsRepo = new System.Windows.Forms.Button();
+ this.txtAttachmentsRepo = new System.Windows.Forms.TextBox();
+ this.label5 = new System.Windows.Forms.Label();
+ this.btnPagesRepo = new System.Windows.Forms.Button();
+ this.txtPagesRepo = new System.Windows.Forms.TextBox();
+ this.label4 = new System.Windows.Forms.Label();
+ this.btnApply = new System.Windows.Forms.Button();
+ this.btnOK = new System.Windows.Forms.Button();
+ this.btnCancel = new System.Windows.Forms.Button();
+ this.tabControl.SuspendLayout();
+ this.tabConnection.SuspendLayout();
+ this.groupBox1.SuspendLayout();
+ this.tabFileRepository.SuspendLayout();
+ this.grp.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // tabControl
+ //
+ this.tabControl.Controls.Add(this.tabConnection);
+ this.tabControl.Controls.Add(this.tabFileRepository);
+ this.tabControl.Dock = System.Windows.Forms.DockStyle.Top;
+ this.tabControl.Location = new System.Drawing.Point(0, 0);
+ this.tabControl.Name = "tabControl";
+ this.tabControl.SelectedIndex = 0;
+ this.tabControl.Size = new System.Drawing.Size(416, 260);
+ this.tabControl.TabIndex = 0;
+ //
+ // tabConnection
+ //
+ this.tabConnection.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
+ this.tabConnection.Controls.Add(this.txtServerURL);
+ this.tabConnection.Controls.Add(this.ckRememberMe);
+ this.tabConnection.Controls.Add(this.txtPassword);
+ this.tabConnection.Controls.Add(this.lblPassword);
+ this.tabConnection.Controls.Add(this.txtUserName);
+ this.tabConnection.Controls.Add(this.lblUserName);
+ this.tabConnection.Controls.Add(this.lblServerUrl);
+ this.tabConnection.Controls.Add(this.groupBox1);
+ this.tabConnection.Location = new System.Drawing.Point(4, 22);
+ this.tabConnection.Name = "tabConnection";
+ this.tabConnection.Padding = new System.Windows.Forms.Padding(3);
+ this.tabConnection.Size = new System.Drawing.Size(408, 234);
+ this.tabConnection.TabIndex = 0;
+ this.tabConnection.Text = "Connection Settings";
+ this.tabConnection.UseVisualStyleBackColor = true;
+ //
+ // txtServerURL
+ //
+ this.txtServerURL.Location = new System.Drawing.Point(102, 25);
+ this.txtServerURL.Name = "txtServerURL";
+ this.txtServerURL.Size = new System.Drawing.Size(271, 20);
+ this.txtServerURL.TabIndex = 12;
+ this.txtServerURL.Text = "http://localhost:8080";
+ this.txtServerURL.TextChanged += new System.EventHandler(this.txtAnyConnectionSetting_TextChanged);
+ //
+ // ckRememberMe
+ //
+ this.ckRememberMe.AutoSize = true;
+ this.ckRememberMe.Checked = true;
+ this.ckRememberMe.CheckState = System.Windows.Forms.CheckState.Checked;
+ this.ckRememberMe.Location = new System.Drawing.Point(297, 196);
+ this.ckRememberMe.Name = "ckRememberMe";
+ this.ckRememberMe.Size = new System.Drawing.Size(94, 17);
+ this.ckRememberMe.TabIndex = 18;
+ this.ckRememberMe.Text = "Remember me";
+ this.ckRememberMe.UseVisualStyleBackColor = true;
+ //
+ // txtPassword
+ //
+ this.txtPassword.Location = new System.Drawing.Point(102, 110);
+ this.txtPassword.Name = "txtPassword";
+ this.txtPassword.PasswordChar = '*';
+ this.txtPassword.Size = new System.Drawing.Size(271, 20);
+ this.txtPassword.TabIndex = 15;
+ this.txtPassword.Text = "admin";
+ this.txtPassword.TextChanged += new System.EventHandler(this.txtAnyConnectionSetting_TextChanged);
+ //
+ // lblPassword
+ //
+ this.lblPassword.AutoSize = true;
+ this.lblPassword.Location = new System.Drawing.Point(21, 113);
+ this.lblPassword.Name = "lblPassword";
+ this.lblPassword.Size = new System.Drawing.Size(56, 13);
+ this.lblPassword.TabIndex = 17;
+ this.lblPassword.Text = "Password:";
+ //
+ // txtUserName
+ //
+ this.txtUserName.Location = new System.Drawing.Point(102, 68);
+ this.txtUserName.Name = "txtUserName";
+ this.txtUserName.Size = new System.Drawing.Size(271, 20);
+ this.txtUserName.TabIndex = 14;
+ this.txtUserName.Text = "Admin";
+ this.txtUserName.TextChanged += new System.EventHandler(this.txtAnyConnectionSetting_TextChanged);
+ //
+ // lblUserName
+ //
+ this.lblUserName.AutoSize = true;
+ this.lblUserName.Location = new System.Drawing.Point(21, 71);
+ this.lblUserName.Name = "lblUserName";
+ this.lblUserName.Size = new System.Drawing.Size(63, 13);
+ this.lblUserName.TabIndex = 13;
+ this.lblUserName.Text = "User Name:";
+ //
+ // lblServerUrl
+ //
+ this.lblServerUrl.AutoSize = true;
+ this.lblServerUrl.Location = new System.Drawing.Point(21, 28);
+ this.lblServerUrl.Name = "lblServerUrl";
+ this.lblServerUrl.Size = new System.Drawing.Size(66, 13);
+ this.lblServerUrl.TabIndex = 11;
+ this.lblServerUrl.Text = "Server URL:";
+ //
+ // groupBox1
+ //
+ this.groupBox1.Controls.Add(this.linkConnectDoc);
+ this.groupBox1.Controls.Add(this.comboProtocol);
+ this.groupBox1.Controls.Add(this.lblProtocol);
+ this.groupBox1.Location = new System.Drawing.Point(8, 6);
+ this.groupBox1.Name = "groupBox1";
+ this.groupBox1.Size = new System.Drawing.Size(383, 184);
+ this.groupBox1.TabIndex = 20;
+ this.groupBox1.TabStop = false;
+ this.groupBox1.Text = "Settings";
+ //
+ // linkConnectDoc
+ //
+ this.linkConnectDoc.AutoSize = true;
+ this.linkConnectDoc.Location = new System.Drawing.Point(330, 148);
+ this.linkConnectDoc.Name = "linkConnectDoc";
+ this.linkConnectDoc.Size = new System.Drawing.Size(35, 13);
+ this.linkConnectDoc.TabIndex = 25;
+ this.linkConnectDoc.TabStop = true;
+ this.linkConnectDoc.Text = "Why?";
+ this.linkConnectDoc.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkConnectDoc_LinkClicked);
+ //
+ // comboProtocol
+ //
+ this.comboProtocol.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+ this.comboProtocol.FormattingEnabled = true;
+ this.comboProtocol.Location = new System.Drawing.Point(94, 145);
+ this.comboProtocol.Name = "comboProtocol";
+ this.comboProtocol.Size = new System.Drawing.Size(230, 21);
+ this.comboProtocol.TabIndex = 24;
+ this.comboProtocol.SelectedIndexChanged += new System.EventHandler(this.comboProtocol_SelectedIndexChanged);
+ //
+ // lblProtocol
+ //
+ this.lblProtocol.AutoSize = true;
+ this.lblProtocol.Location = new System.Drawing.Point(13, 148);
+ this.lblProtocol.Name = "lblProtocol";
+ this.lblProtocol.Size = new System.Drawing.Size(67, 13);
+ this.lblProtocol.TabIndex = 23;
+ this.lblProtocol.Text = "Connect via:";
+ //
+ // tabFileRepository
+ //
+ this.tabFileRepository.Controls.Add(this.grp);
+ this.tabFileRepository.Location = new System.Drawing.Point(4, 22);
+ this.tabFileRepository.Name = "tabFileRepository";
+ this.tabFileRepository.Padding = new System.Windows.Forms.Padding(3);
+ this.tabFileRepository.Size = new System.Drawing.Size(408, 234);
+ this.tabFileRepository.TabIndex = 1;
+ this.tabFileRepository.Text = "File Repository";
+ this.tabFileRepository.UseVisualStyleBackColor = true;
+ //
+ // grp
+ //
+ this.grp.Controls.Add(this.btnAttachmentsRepo);
+ this.grp.Controls.Add(this.txtAttachmentsRepo);
+ this.grp.Controls.Add(this.label5);
+ this.grp.Controls.Add(this.btnPagesRepo);
+ this.grp.Controls.Add(this.txtPagesRepo);
+ this.grp.Controls.Add(this.label4);
+ this.grp.Location = new System.Drawing.Point(8, 6);
+ this.grp.Name = "grp";
+ this.grp.Size = new System.Drawing.Size(383, 206);
+ this.grp.TabIndex = 21;
+ this.grp.TabStop = false;
+ this.grp.Text = "Settings";
+ //
+ // btnAttachmentsRepo
+ //
+ this.btnAttachmentsRepo.Location = new System.Drawing.Point(308, 57);
+ this.btnAttachmentsRepo.Name = "btnAttachmentsRepo";
+ this.btnAttachmentsRepo.Size = new System.Drawing.Size(54, 23);
+ this.btnAttachmentsRepo.TabIndex = 22;
+ this.btnAttachmentsRepo.Text = "...";
+ this.btnAttachmentsRepo.UseVisualStyleBackColor = true;
+ this.btnAttachmentsRepo.Click += new System.EventHandler(this.btnAttachmentsRepo_Click);
+ //
+ // txtAttachmentsRepo
+ //
+ this.txtAttachmentsRepo.Location = new System.Drawing.Point(81, 59);
+ this.txtAttachmentsRepo.Name = "txtAttachmentsRepo";
+ this.txtAttachmentsRepo.Size = new System.Drawing.Size(221, 20);
+ this.txtAttachmentsRepo.TabIndex = 21;
+ this.txtAttachmentsRepo.Text = "C:\\Temp";
+ this.txtAttachmentsRepo.TextChanged += new System.EventHandler(this.anyRepoSettingChanged_TextChanged);
+ this.txtAttachmentsRepo.Leave += new System.EventHandler(this.txtAttachmentsRepo_Leave);
+ //
+ // label5
+ //
+ this.label5.AutoSize = true;
+ this.label5.Location = new System.Drawing.Point(6, 62);
+ this.label5.Name = "label5";
+ this.label5.Size = new System.Drawing.Size(69, 13);
+ this.label5.TabIndex = 20;
+ this.label5.Text = "Attachments:";
+ //
+ // btnPagesRepo
+ //
+ this.btnPagesRepo.Location = new System.Drawing.Point(308, 21);
+ this.btnPagesRepo.Name = "btnPagesRepo";
+ this.btnPagesRepo.Size = new System.Drawing.Size(54, 23);
+ this.btnPagesRepo.TabIndex = 19;
+ this.btnPagesRepo.Text = "...";
+ this.btnPagesRepo.UseVisualStyleBackColor = true;
+ this.btnPagesRepo.Click += new System.EventHandler(this.btnPagesRepo_Click);
+ //
+ // txtPagesRepo
+ //
+ this.txtPagesRepo.Location = new System.Drawing.Point(81, 23);
+ this.txtPagesRepo.Name = "txtPagesRepo";
+ this.txtPagesRepo.Size = new System.Drawing.Size(221, 20);
+ this.txtPagesRepo.TabIndex = 14;
+ this.txtPagesRepo.Text = "C:\\Temp";
+ this.txtPagesRepo.TextChanged += new System.EventHandler(this.anyRepoSettingChanged_TextChanged);
+ this.txtPagesRepo.Leave += new System.EventHandler(this.txtPagesRepo_Leave);
+ //
+ // label4
+ //
+ this.label4.AutoSize = true;
+ this.label4.Location = new System.Drawing.Point(6, 26);
+ this.label4.Name = "label4";
+ this.label4.Size = new System.Drawing.Size(40, 13);
+ this.label4.TabIndex = 13;
+ this.label4.Text = "Pages:";
+ //
+ // btnApply
+ //
+ this.btnApply.Location = new System.Drawing.Point(248, 266);
+ this.btnApply.Name = "btnApply";
+ this.btnApply.Size = new System.Drawing.Size(75, 23);
+ this.btnApply.TabIndex = 16;
+ this.btnApply.Text = "Apply";
+ this.btnApply.UseVisualStyleBackColor = true;
+ this.btnApply.Click += new System.EventHandler(this.btnApply_Click);
+ //
+ // btnOK
+ //
+ this.btnOK.Location = new System.Drawing.Point(167, 266);
+ this.btnOK.Name = "btnOK";
+ this.btnOK.Size = new System.Drawing.Size(75, 23);
+ this.btnOK.TabIndex = 17;
+ this.btnOK.Text = "OK";
+ this.btnOK.UseVisualStyleBackColor = true;
+ this.btnOK.Click += new System.EventHandler(this.btnOK_Click);
+ //
+ // btnCancel
+ //
+ this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
+ this.btnCancel.Location = new System.Drawing.Point(329, 266);
+ this.btnCancel.Name = "btnCancel";
+ this.btnCancel.Size = new System.Drawing.Size(75, 23);
+ this.btnCancel.TabIndex = 18;
+ this.btnCancel.Text = "Cancel";
+ this.btnCancel.UseVisualStyleBackColor = true;
+ this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click);
+ //
+ // AddinSettingsForm
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.CancelButton = this.btnCancel;
+ this.ClientSize = new System.Drawing.Size(416, 295);
+ this.Controls.Add(this.btnCancel);
+ this.Controls.Add(this.btnApply);
+ this.Controls.Add(this.btnOK);
+ this.Controls.Add(this.tabControl);
+ this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+ this.Name = "AddinSettingsForm";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ this.Text = "XWord - Settings";
+ this.Load += new System.EventHandler(this.ConnectionSettingsForm_Load);
+ this.Shown += new System.EventHandler(this.AddinSettingsForm_Shown);
+ this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.AddinSettingsForm_FormClosed);
+ this.tabControl.ResumeLayout(false);
+ this.tabConnection.ResumeLayout(false);
+ this.tabConnection.PerformLayout();
+ this.groupBox1.ResumeLayout(false);
+ this.groupBox1.PerformLayout();
+ this.tabFileRepository.ResumeLayout(false);
+ this.grp.ResumeLayout(false);
+ this.grp.PerformLayout();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.TabControl tabControl;
+ private System.Windows.Forms.TabPage tabConnection;
+ private System.Windows.Forms.TextBox txtServerURL;
+ private System.Windows.Forms.Button btnApply;
+ private System.Windows.Forms.CheckBox ckRememberMe;
+ private System.Windows.Forms.TextBox txtPassword;
+ private System.Windows.Forms.Label lblPassword;
+ private System.Windows.Forms.TextBox txtUserName;
+ private System.Windows.Forms.Label lblUserName;
+ private System.Windows.Forms.Label lblServerUrl;
+ private System.Windows.Forms.GroupBox groupBox1;
+ private System.Windows.Forms.TabPage tabFileRepository;
+ private System.Windows.Forms.Button btnOK;
+ private System.Windows.Forms.Button btnCancel;
+ private System.Windows.Forms.GroupBox grp;
+ private System.Windows.Forms.Button btnPagesRepo;
+ private System.Windows.Forms.TextBox txtPagesRepo;
+ private System.Windows.Forms.Label label4;
+ private System.Windows.Forms.Button btnAttachmentsRepo;
+ private System.Windows.Forms.TextBox txtAttachmentsRepo;
+ private System.Windows.Forms.Label label5;
+ private System.Windows.Forms.LinkLabel linkConnectDoc;
+ private System.Windows.Forms.ComboBox comboProtocol;
+ private System.Windows.Forms.Label lblProtocol;
+
+ }
+}
\ No newline at end of file
Index: xword/UICommons/AddinSettingsForm.resx
===================================================================
--- xword/UICommons/AddinSettingsForm.resx (revision 0)
+++ xword/UICommons/AddinSettingsForm.resx (revision 0)
@@ -0,0 +1,659 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+
+ AAABAAQAEBAAAAAAIABoBAAARgAAACAgAAAAACAAqBAAAK4EAAAwMAAAAAAgAKglAABWFQAAQEAAAAAA
+ IAAoQgAA/joAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAAAAD//////v7+//Hx
+ 8f/6+vr////////////+/v7/iYn+/3Nz/v/+/v7///////7+/v/8/Pz/8PDw//7+/v/+/v7//v7+/+Xl
+ 5f9ZWFj/hIOD//n6+v/+/v7//v7+/3l5/v9iYv7//f7///7+/v/8/Pz/kpGR/1dVVf/W1tb//v7+//7+
+ /v/u7u7/X15e/1JQUP+VlJT//f39//7+/v96ev7/YmL+//3+/v/+/v7/pqWl/1JQUP9aWFj/4uLi//7+
+ /v///////v7+/9TU1P9YVlb/UlBQ/6yrq//+/v7/xMX+/7i5/v/+/v7/u7u7/1NRUf9VU1P/xsXF//7+
+ /v/+/v7////////////+/v7/wcHB/1NRUf9TUlL/wcHB//7+/v/+/v7/z8/P/1dVVf9SUFD/srGx//7+
+ /v///////////////////////v7+//7+/v+sq6v/UlBQ/1dVVf/U1NT/4ODg/11bW/9SUFD/nJub//39
+ /f/////////////////+/v7//v7+///+/v/+/v7//f39/5WUlP9RT0//YV9f/2dlZf9SUFD/hoSF//v7
+ +//+/v7//v7+//7+/v/+/v7/4bd+/92ubf/erm3/79m7//7+/v/6+fn/goCA/1JQUP9ST1D/dXR0//X1
+ 9f/+/v7/u9r+/2qv/v9qr/7/erf+/+K4gf/er2//3q9w/+/ZvP/+/v7/+/v7/4iHh/9SUFD/UlBQ/3p5
+ ef/39/f//v7+/8Dc/v9ys/7/crP+/4K7/v/+/v7//v7+//7+/v/+/v7//v7+/52cnP9RT0//XVtb/2Jh
+ Yf9SUFD/jYyM//z8/P/+/v7//v7+//7+/v/+/v////////7+/v/+/////v7+/7S0tP9TUFD/VVNT/87O
+ zv/a2tr/WlhY/1JQUP+jo6P//v7+//7+/v/////////////////+/v7//v7+/8jIyP9VU1P/U1FR/7m5
+ uf/+/v7//v7+/8nIyP9VU1P/UlBQ/7m5uf/+/v7//v7+///////+/v7//v7+/9ra2v9bWVn/UlBQ/6Sj
+ o//9/v7/w+3d/7jq1v/+/v7/tLOz/1JQUP9WVFT/zc3N//7+/v/+/v7///////Dw8P9jYmL/UlBQ/46M
+ jP/8/Pz//v7+/3nYs/9i06b//v7+//7+/v+dnZ3/UlBQ/1xbW//m5eX//v7+///////j4+P/VlRU/3x7
+ e//4+Pj//v////7+/v952LP/YtOm//7+/v/+/v7/+/v7/4qJif9UUlL/09LS//7+/v///////v7+/+rr
+ 6//4+Pj//v7+//7+/v/+/v7/it28/3PXsP/+/v7//v7+//7+/v/6+vr/6Ojo//7+/v//////AAD//wAA
+ //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//ygA
+ AAAgAAAAQAAAAAEAIAAAAAAAgBAAAAAAAAAAAAAAAAAAAAAAAAD//////////////////////v7+//7+
+ /v/+/v7//v7+//////////////////////////7//v7+//Ly/v8+P/3/JCT9/+Pj/v/9/v7/////////
+ /////////////////////////v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+/////////////v7+//7+
+ /v/v7+//2tra/+/v7//+/v7////////////////////////////+/v//4+P+/xAQ/f8BAf3/w8P+//39
+ ///////////////////+/v7///////3+/v/19fX/29vb/+np6f/+/v7//v7+//7+/v/+/v7///////7+
+ /v/+/v7/6erq/2xsbP9WVFT/a2pq/+Tk5P/+/v7//v7+//////////////////7+///j4/7/EBD9/wEB
+ /f/ExP7//P3///////////////////7+/v/+/v7/8vLy/317e/9WVVX/YWBg/9TT0//+/v7//v7+////
+ ///+/v7//v7+//7+/v+wrq//UE5O/1JQUP9SUFD/cG5u/+zt7f/9/v7//v7+/////////////v7+/+Pj
+ /v8PEP3/AQH9/8TE/v/8/f/////////////+/v7//v7+//f39/+Hh4f/UlBQ/1JQUP9SUFD/iYiI//39
+ /f////////////7+/v/+/v7//v7+/8LCwv9QT0//UU9P/1JQUP9ST1D/f35+//Dw8P/+/v7//v7+//7+
+ /v/+/v7/4+P+/xAQ/f8BAf3/xMT+//z9///+/v7///////7+/v/5+fn/m5qa/1JQUP9RT0//UVBQ/1JP
+ T/+fnZ3//v7+///////////////////////+/v7/+Pj4/4uKiv9RT0//UlBQ/1FPT/9SUFD/kpKS//n5
+ +f///////v7+//3+/v/j4/7/EBD9/wEB/f/Dw/7//f3///7+/v///////Pz8/66urv9UUlL/Uk9P/1JQ
+ UP9RT0//cnFx/+/u7v/+/v7//v7+//////////////////7+/v/+/v7/7+/v/3l4eP9SUFD/Uk9P/1JQ
+ UP9SUVH/p6am//7+/v/+/v7//v7+//Dw/v8xMf3/GBn9/93e/v/9/v7//v////3+/v/ExMT/VlVV/1JQ
+ UP9RT0//U1BQ/2RkZP/g4OD//v7+//7+/v/+/v7///////////////////////7+/v/+/v7/6urq/2xr
+ a/9RUFD/UU9P/1FPT/9TUVH/ubi4//z8/P/+/v7//f7+//Pz/v/v7/7//f7+//7+/v/+/v7/1NTU/1lX
+ V/9SUFD/UlBQ/1JQUP9eXFz/1NTU//7+/v/+/v7//v//////////////////////////////////////
+ ///+/v7/3d3d/19eXv9SUFD/UlBQ/1FPT/9aWFj/ycnJ//3+/v/+/v7//v7+//7+/v/+/v7//v7+/+Dg
+ 4P9nZmb/UlBQ/1FPT/9SUFD/VlRU/8XFxf/+/v7/////////////////////////////////////////
+ /////////v7+///////+/v7/ysrK/1lXV/9SUFD/UU9P/1FPT/9iYWH/3Nzc//7+/v/+//7//v/+//7+
+ /v/s6+v/dHJy/1JQUP9RT0//UlBQ/1NRUf+vr6///v7+////////////////////////////////////
+ ///////////////////+/v7//v7+///////9/f3/ubm5/1VTU/9RUFD/UU9P/1JQUP9oZ2f/6+vr//7+
+ /v/+/v7/9/f3/4B+fv9SUFD/UlBQ/1JQUP9SUFD/m5qa//n5+f/+/v7/////////////////////////
+ ///////////////////////////////////+/v7///////7+/v/8/Pz/paWl/1JSUv9SUFD/UU9P/1FP
+ T/94dnb/8PDw//n5+f+Tk5P/UU9P/1JQUP9RT0//UlBQ/4uKiv/29/f//v7+////////////////////
+ ///////////////////+/v7////////////////////////////+/v7//v7+//7+/v/5+fn/kZGR/1FP
+ T/9RT0//UU9P/1JQUP+Mior/o6Ki/1NRUf9SUFD/UlBQ/1FPT/95d3f/8fHx//7+/v//////////////
+ ///////////////////////////////+/v///v3//v79///+/f///v3///79//7+/v/+/v7//v7+//7+
+ /v/19fX/fHx8/1FPT/9RT0//UlBQ/1NQUP9UUVH/UlBQ/1JQUP9SUFD/ZmVl/+fn5//+/v7///7+////
+ ///+/v7//f7+//3+/v/9/v7//f7+//3+/v/+/v7/+vTr//Tm0//15tL/9ObT//Tm0v/05tL/+fHm//7+
+ /v/+/v7//v7+//7+/v/s6+v/cnBw/1FPT/9SUFD/UlBQ/1JQUP9ST1D/Uk9Q/2FfX//a2tr//v7+//7/
+ ///9/v7//f7+/+Tw/v/O5f7/z+X+/8/l/v/P5f7/zuX+/+jz/v/RjTT/x3YI/8Z1B//Hdgj/x3YI/8d2
+ B//LgR3/+vTq///+/v///////v7+//7+/v/f39//ZWNj/1JQUP9SUFD/UlBQ/1JQUP9ZV1f/ycnJ//7+
+ /v/+/v7//v7+//7+/v/t9v7/HoT+/wZ5/v8Gef7/Bnn//wZ5//8Gef7/Kov+/9GON//Hdgn/x3YJ/8Z2
+ Cf/Hdgn/x3YJ/8uCIP/69Ov//v7+//7+/v/+/v7//v7+/+jo6P9qaWn/UlBQ/1JQUP9SUFD/UU9P/1xa
+ Wv/U09P//v7+///////+/////v7+/+/2/v8nif7/C3v+/wt6/v8Le/7/C3v+/wt7/v81kP7/+/Xt//Xo
+ 1v/26Nb/9ejW//bo1v/26Nb/+fHn//7+/f///v///v7+//7+/v/z8/P/fHt7/1FPT/9RT0//UlBQ/1JQ
+ UP9SUFD/UlBQ/2dmZv/j4+P//v7+//7+/v/+/v7//f7+/+r0/v/Z6/7/2uv+/9nr/v/Z6/7/2ev+/+72
+ /v/+//7//v79//7+/f/9/v3//v79//7+/f/+/v7////+////////////+Pj4/4uKiv9RT0//UlBQ/1FP
+ T/9SUFD/UlBQ/1JQUP9SUFD/UlBQ/3FwcP/v7+///v7+//7+/v/+/v7//f7///3+///9/v7//f7+//3+
+ ///9/v///v7///////////////////7+/v///////v////7////+/v7//v7+//z8/P+gn5//UU9P/1JQ
+ UP9RT0//UlBQ/399ff+TlJT/U1BQ/1JQUP9SUFD/UU9P/4SDg//29vb//v7+//7/////////////////
+ /////////////////////////////////////////v7+//////////////////7+/v/9/f3/tbW1/1ZT
+ U/9SUFD/UU9P/1JQUP9sbGz/6enp//b29v+EhIT/UlBQ/1FPT/9SUFD/UlBQ/5iXl//5+fn//v7+//7/
+ //////////////////////////////////////////////////////////////7////+/////f39/8bF
+ xf9YVlb/UlBQ/1FPT/9SUFD/YF9f/+Pj4//+/v7//v7+//Hx8f90cnL/UlBQ/1JQUP9SUFD/U1FR/6qq
+ qv/7/Pz//v7+//7+/v/+/v7////////////////////////////////////////////+/v7//v7+//7+
+ /v/W1dX/Xl1d/1FPT/9RUFD/Uk9P/11bW//Q0ND//v7+//7+/v///v///v7+/+Tk5P9raWn/UlBQ/1JQ
+ UP9SUFD/VVNT/729vf/+/v7//v7+//7+/v/+/v7//////////////////////////////////v7+//7+
+ /v/+/v7/6Ojo/2ZlZf9SUFD/UU9P/1JQUP9WVVX/vLy8//z9/f/+/v7//v7+///+///+/v7//v7+/9XV
+ 1f9gXl7/UlBQ/1JQUP9SUFD/WVhY/9HR0f/+/v7//v7+////////////////////////////////////
+ ///+/v7//v7+//Hx8f93dXX/UlBQ/1FPT/9SUFD/UlBQ/6mpqf/8/Pz//v7+//7+/v/x+vf/7vr1//7+
+ /v/+/v7//f39/8jHx/9VU1P/UlBQ/1JQUP9SUFD/ZGNj/+Dg4P/+/v7//v7+//////////////////7+
+ /v///////v7+//7+/v/z9PT/hoSE/1JQUP9SUFD/UlBQ/1JQUP+Xlpb//f39//7+/v/9/v7/7/r2/y/D
+ h/8XvXv/3fXs//3+/v///////v7+/7W0tP9TUVH/UlBQ/1JQUP9ST1D/bWxs/+nq6v/+/v7/////////
+ ///+/v7////////////+/v7/+vr6/5iXl/9SUFD/UlBQ/1FPT/9RT0//hYOD//T19f/+/v7//v7+//3+
+ /v/j9u//ELp2/wG4b//D7t3//f7+///////+/v7/+/v7/6GgoP9SUVH/UU9P/1JQUP9RT0//fXx8//Pz
+ 8//+/v7//v7+//7+/v////////////7+/v/Jycn/UlFR/1JQUP9SUFD/UlBQ/3Vzc//s6+v//v7+////
+ /////////f7+/+P27/8Pu3b/ALhv/8Pu3f/9/v7////////////+/v7/9vb2/4yLi/9SUFD/UlBQ/1JQ
+ UP9RT0//p6am//7+/v/+/v7//////////////////v7+/6ysrP9QT0//UlBQ/1JQUP9mZWX/5eXl//7+
+ /v/+///////////////9/v7/4vbv/w+6dv8AuG//w+7d//3+/v/////////////////+/v7/8vLy/3t6
+ ev9SUFD/UlBQ/1JQUP+GhYX//f7+//7+/v/////////////////+/v7/4+Li/2RiYv9TUVH/YWBg/9jY
+ 2P/+/v7///////////////////////3+/v/j9u//ELt2/wC4b//D7t3//f7+///////+/v7//v7+////
+ ///+/v7/7e3t/29ubv9TUVH/WlhY/8nJyf/+/v7///////////////////////7+/v/+/v7/5ufn/8jH
+ x//l5eX//v7+/////////////////////////////f7+/+P37/8Qu3b/ALhw/8Pu3f/9/v7/////////
+ ///+/v7//v7+///////+/v7/7u7u/8nJyf/d3d3//f39/////////////////////////////v7+//7+
+ /v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7////////////9/v7/8/v4/0HIkv8mwYT/5Pfv//3+
+ /v/+/v7//////////////////v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+////////////AAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAoAAAAMAAAAGAAAAABACAAAAAAAIAlAAAAAAAAAAAAAAAAAAAAAAAA///////////+/v7//v7+////
+ ///+/v7///////7+/v/+/v7//v7+///////+/v7///////7+/v/////////////////+/v7//v7+////
+ /v/+/v///f7+/8zN/v8hIf3/DQ39/6am/v/6+v7//v7+//7+/v////////////7+/v////////////7+
+ /v////////////7+/v///////v7+//7+/v/////////////////////////////////+/v7//v7+////
+ ///+/v7//v7+///////+/v7//f39//39/f/+/v7//f39//7+/v/+/v7//v7+////////////////////
+ /////////v7+//7+/v/+/f7/+vv+/319/v8BAv3/AgL9/0lJ/v/q6v7//P3+//7+/v/+/v7///////7+
+ /v///////////////////////v7+//7+/v/9/f3//v7+//7+/v/+/v7//v7+///////+/v7//v7+//7+
+ /v/////////////////+/v7//v7+//7+/v/+/v7/8fHx/9HR0f/Hx8f/397e//z8/P/+/v7//v7+//7+
+ /v/+/v7//v7+///////+/v7//v7+//7+/v/+/f7/+fn+/3Jy/v8BAf3/AQL8/z8//v/n5///+/z/////
+ /////////v7+//7+/v///////v7+//7+/v///////v7+//3+/v/q6ur/y8vL/8rKyv/n5+f//f39//7+
+ /v///////v7+//7+/v/////////////////+/v7//v7+//7+/v/x8vL/ioyL/1xaWv9WVVX/aWdn/8LC
+ wv/7+/v//v7+//7+/v////////////7+/v////////////7+/v/+/f//+fn+/3Fx/f8CAf3/AQL9/z8/
+ /v/n5///+/z///7+/v///////////////////////v7+//7+/v/+/v7//f39/97e3v96eXn/WVdX/1hX
+ V/9xcnL/3Nvb//7+/v/+/v7//v7+//7+/v///////v7+///////+/v7//v7+//39/f+oqKj/TEtL/1JR
+ Uf9TUVH/UVBQ/1taWv/Hxsb//f39//3+/v/+/v7//v7+///////+/v7//v7+//7+/v/+/f7/+fn+/3Bx
+ /f8BAf3/AQL9/z8//v/n5///+/z//////////////v7+/////////////v7+//7+/v/9/f3/4ODg/3Fw
+ cP9RUFD/U1FR/1JRUf9QTk7/fn19//Ly8v/8/v7//v7+//////////////////7+/v////////////r6
+ +v+Gg4T/UE5O/1JQUP9SUFD/Uk9Q/1FPT/9qaWn/2NjY//z9/f/9/v7//v7+//7+/v/+/v7//v7+//7+
+ /v/+/f7/+vr+/3Fy/f8BAf3/AQL9/z8//v/n5///+/z+//7+/v/////////////////+/v7//v7+//39
+ /f/v7+//h4aG/1FPT/9SUFD/UlBQ/1JQUP9SUFD/Z2Vl/97e3v/8/f3///////7+/v////////////7+
+ /v////////////39/f+Uk5P/T01N/1FPT/9SUFD/UlBQ/1FQUP9ST0//b25u/+Df3//9/f3//v7+//7+
+ /v/+/v7//v7+//7+/v/+/f7/+vn+/3Jy/v8CAf3/AgL9/z8//v/n5///+vz/////////////////////
+ ///+/v7//v39//Pz8/+RkZH/UlBQ/1FQUP9RT0//UlBQ/1JQUP9ST1D/cm9v/+jo6P/9/f3/////////
+ //////////////7+/v///////v7+//7+/v/W1tb/XFtb/1JQUP9SUFD/UlBQ/1JQUP9SUFD/UU9P/4SD
+ g//r6+v//v7+//7+/v/+/v7//v7+//7+/v/+/f7/+vn+/3Jy/v8BAf3/AQL9/z4//v/n5/7/+/z+//7+
+ /v/+/v7///////7+/v/+/v7/+fn5/6enp/9VUlP/Uk9P/1FPT/9RT0//UE9P/1JQUP9TUVH/r66u//v7
+ +//+/v7//v7+///////+/v7////////////+/v7//v7+//7+/v/8/Pz/vLy8/1xbW/9SUFD/UlBQ/1JQ
+ UP9RT0//UlBQ/1NRUf+NjY3/8vPz//7+/v///////v7+//7+/v/9/f7/+fn+/3Fx/v8CAf3/AgL9/z4+
+ /v/m5v7//Pz+///+///+/v7//v7+//7+/v/6+vr/srKy/1hWVv9SUFD/UlBQ/1JQUP9ST0//UlBQ/1RS
+ Uv+WlZX/+Pj4//7+/v/+/v7//v7+/////////////////////////////v7+//7+/v/+/v7/+Pj4/62s
+ rP9UUlL/U1FR/1JPT/9ST0//Uk9Q/1JQUP9TUVH/pKOj//n5+f/+/v7//v7+//7+/v/+/v7//Pz9/4+O
+ /v8FBv7/AgL9/11d/f/v7/7//P3+//7+/v/+/////f7+//v7+//Hx8f/XVxc/1JQUP9SUFD/UU9P/1JQ
+ UP9SUFD/UE9P/4iIiP/t7e3//v7+//7+/v/+/v7//v7+///////+/v7///////7+/v/+/v7///////7+
+ /v/+/v7//f39//f39/+ampr/VFJS/1NPUP9RT0//UlBQ/1JQUP9SUFD/WFZW/7Curv/6+vr//f7+//7+
+ /v/+/v7//f7+/+zt/v95ev3/aGn9/9jY/v/9/v7//v7+//7+/v/+/v7//P39/9LS0v9nZmb/UU9P/1JQ
+ UP9SUFD/UVBQ/1JQUP9TUFD/dnV1/+fo6P/9/f3//v7+///////9/v7//v7+//7+/v/+/v7/////////
+ //////////////7+/v/+/v7//v7+//7+/v/w8PD/jIuL/1BPT/9RT0//UlBQ/1FPT/9RT0//UlBQ/1ta
+ Wv/Ew8P/+/v7//7+/v/+/////f7+//3+/v/5+f7/9/f+//3+/v/9/v7//v7+//7+/v/+/v7/4uLi/29u
+ bv9SUFD/UlBQ/1FPT/9SUFD/UlBQ/1FPT/9ubW3/2NjY//39/f/+/v7//v7+///////+/v7///////7+
+ /v/+/v7///////////////////////7+/v/+/v7//v7+//7+/v/+/v7/6enp/3l4eP9SUFD/UlBQ/1JQ
+ UP9SUFD/UU9P/1FPT/9mZGT/z8/P//z9/f/9/v7//v7+//7+///+/f7//v3+//7////+/////v7+//7+
+ /v/r6+v/gYCA/1BPT/9RT0//UU9P/1JQUP9SUFD/UlBQ/2BeXv/Pz8///v7+//7+/v////////////7+
+ /v////////////7+/v///////v7+///////+/v7///////7+/v///////v7+//7+/v/+/v7//Pz8/9zc
+ 3P9xcHD/UU9P/1JQUP9SUFD/UU9P/1FPT/9RT0//a2pq/+Hh4f/+/v7//v7+//7+/v/+/v7//v79//7+
+ /v/+/v7//f39//Hx8f+Lior/U1FR/1JQUP9RT0//UU9P/1JQUP9SUFD/XVxc/8HAwP/8/Pz//v7+//7+
+ /v/+/v7///////////////////////////////////////7+/v/+/v7//////////////////v7+//7+
+ /v/+/v7//v7+//39/f/Q0ND/YmBg/1JQUP9SUFD/UU9P/1FPT/9SUFD/UE5O/35+fv/p6en//v7+//7+
+ /v/+/v7//v7+///////+/v7/9/b2/6Khof9RT0//UlBQ/1FPT/9SUFD/UlBQ/1JQUP9UUlL/ra2t//v7
+ +//+/v7////////////+/v7//v7+//////////////////////////////////////////////////7+
+ /v/+/v7//v7+//7+/v///////v7+//7+/v/8/Pz/xcXF/15dXf9SUFD/UVBQ/1FPT/9RT0//UlBQ/1JR
+ Uf+FhYX/8fHx//7+/v/+/v7//v7+//7+/v/6+vr/q6mp/1hWVv9SUVH/UVBQ/1FPT/9SUFD/UlBQ/1VT
+ U/+fnp7/9PT0//7+/v/+/v7//v7+///////+/v7/////////////////////////////////////////
+ /////////v7+//////////////////7+/v/+/v7////////////+/v7//Pz8/6+vr/9UU1P/UVBQ/1FQ
+ UP9SUFD/UU9P/1JQUP9QT0//oJ+f//X19f/9/f3//v7+//39/f/Hx8f/V1VV/1JQUP9RUFD/UlBQ/1JQ
+ UP9SUFD/UE5O/4qJif/x8fH//f39//7+/v///////////////////////////////////////v7+//7+
+ /v/+/v7///////7+/v/+/v7//v7+///////+/v7///////7+/v/+/v7////////////+/v7//v7+//X1
+ 9f+jo6P/VFNT/1JQUP9RT0//UU9P/1FPT/9SUFD/V1VV/6alpf/6+vr//f39/8rKyv9kY2P/UlBQ/1JQ
+ UP9SUFD/UU9P/1FPT/9SUFD/goGB/+rq6v/9/v7//v7+///////+/v7//v7+/////////////v7+////
+ ///+/v7//v7+/////////////v7+/////////////////////////////v7+//7+/v///////v7+//7+
+ /v///////v7+//39/f/z8/P/jIuL/1BPT/9SUFD/UU9P/1FPT/9SUFD/UlBQ/1ZUVP/Hxsb/5OTk/2hm
+ Zv9QT0//UlBQ/1FQUP9SUFD/UlBQ/1JPT/9ta2v/4eHh//7+/v/+/v7//////////////////v7+//7+
+ /v////////////////////////////7+/v///////v7+/////////////////////////////v7+////
+ ///+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7/7Ozs/4SEhP9SUFD/UlBQ/1JQUP9RT0//UlBQ/1JQ
+ UP9eXFz/amho/1BOTv9SUFD/UlBQ/1JQUP9SUFD/UU9P/2hnZ//U1NT//f39//7+/v//////////////
+ /////////v7+/////////////v7+/////////////v7+//7+/v/+/v7////+///+/f/+/f3//v38///+
+ /f///f3//v39///9/f///f3//v79/////v/+/v7//v7+//7+/v/+/v7//v7+/+Pj4/9sbGz/UU9P/1JQ
+ UP9SUFD/UlBQ/1JQUP9ST0//UU9P/1JQUP9ST0//UU9P/1JQUP9SUFD/WFdX/8PDw//7+/v//f7+///+
+ /v/+/v7////////////9/v7//P3+//z9/v/7/f7//P3+//z9/v/8/f7//P7+//3+/v/+/v7//v38//z4
+ 8//79u///Pbw//v28P/79vD/+/bw//v28P/79u///fr2//7+/v/+//7//v7+//7+/v///////v7+//39
+ /f/Z2Nj/a2pq/1JQUP9SUFD/UlBQ/1FPT/9SUFD/UlBQ/1JQUP9ST0//Uk9P/1JQUP9aWFj/tra2//39
+ /f/+/v7//v7+//3+/v/+/v7//v7+//3//f/1+f7/7fX+/+31/v/u9v7/7fX+/+31/v/t9f7/7fX+//D3
+ /v/8/f7/79q8/9ypYv/YoVb/2aFW/9iiVv/Yolb/2KJW/9iiVv/YolX/3rBu//fr3P/+//7//v7+////
+ ///+/v7//v7+//7+/v/7+/v/yMjI/1lYWP9RT0//UU9P/1FPT/9SUFD/UlBQ/1FQUP9RUFD/UlBQ/1FP
+ T/+hoaH/9vb2//7+/v////////////7+/v/+/////f///9zs/v9qr/7/UKH+/0+i/v9Qov//UaH+/1Cg
+ //9Qof7/UKD//1im/v+w1f7/y38b/8VxAv/GcgH/xXEB/8VyAf/FcgL/xnIC/8ZyAv/FcgL/xHEC/9un
+ Yf/8+fT//v7+///+/////////v7+//7+/v/+/v7//f39/7i4uP9ZV1f/UlBQ/1JQUP9RT0//UU9P/1JQ
+ UP9ST0//UU9P/5GRkf/6+vr//v7+//7+/v/+/v7//v7+//7+/v/+/f7/9fr9/2et/v8Ddf7/AXf+/wF1
+ /v8Cdv7/AXb+/wF2//8Bdv7/AXb+/wJ2/v8Sff7/y4Ae/8VxAv/FcgH/xHEB/8RxAf/EcQH/xXEB/8Vx
+ Av/FcgL/xHED/9ynY//8+fT//v7+///+///+/v7//v7+//7+/v/+/v7//v7+/8nJyf9cW1v/UlBQ/1JP
+ T/9ST0//Uk9P/1FPT/9RT0//UlBQ/6GgoP/9/f3//v7+//////////////////7+///9/f7/9/r+/2+w
+ /v8FdP7/AXX+/wF0/v8Cdf7/AXX+/wF1/v8Bdf7/AXX+/wN0/v8ZgP7/8dzB/92rZ//apVz/26Rb/9ql
+ Wv/apFv/2qVb/9qkXP/apFv/37Fz//bs3f/+/v7///7///7+/v/+/v7//v7+//7+/v/9/f3/2NjY/2Bf
+ X/9QTk7/UU9P/1JQUP9RT0//UlBQ/1JQUP9SUFD/UlBQ/1NRUf+0tLT/+Pj4//7+/v////////////7+
+ /v/+/v7//v7+/+Tw/v99uf7/Yqv+/2Gq/v9iqv7/Yar+/2Gq/f9hqv7/Yar+/22x/v/A3v7//v38//z5
+ 9P/79/L//Pfx//z48v/8+PL//Pjy//z48v/89/H//Pv3//79/f/+/v7//v7+//7+/v/+/v///v7+//7+
+ /v/m5ub/eHd3/1FPT/9SUFD/UU9P/1FPT/9SUFD/UU9P/1JQUP9SUFD/UlBQ/1FPT/9gX1//x8fH//39
+ /f/+/v7//v7+//7+/v/+/v7//f7+//3+/v/5+/7/9Pn+//T5/v/0+f7/9Pn+//T5///0+f7/9Pn+//b7
+ /v/8/v7//v/+//7+/f/9/v3//f79//3+/P/9/vz//f79//3+/f/+/v3//v79//7+/v/+/v7/////////
+ /////////v7+/+7u7v98e3v/UU9P/1JQUP9SUFD/UU9P/1JQUP9RT0//UU9P/1JQUP9SUFD/UlBQ/1JQ
+ UP9SUFD/YV9f/9XV1f/9/f3//v7+//7+/v/+/v7//v7+//7+///9/v///P7///39/v/8/f7//f7+//3+
+ ///9/v7//f7+//3+/v/+/v///v7+//7+/v/+/v7///////////////////////7+/v/+/v7//v//////
+ ///+/v7//v7+//7+/v/+/v7/8fHx/5eWlv9TUVH/UlBQ/1JQUP9SUFD/UlBQ/1JQUP9XVlb/XFtb/1BP
+ T/9SUFD/UlBQ/1JQUP9SUFD/UlBQ/3Z0dP/j4uL//v7+//7+/v/+/v7//v////7+/v/+/////v////7+
+ /v/+/v7////////////+/v7////////////////////////////////////////////+/v7//v7+////
+ ///+/v7//v7+//7+/v/+/v7//v7+//7+/v/5+fn/np2d/1JQUP9SUFD/UlBQ/1FPT/9RT0//UlBQ/1FQ
+ UP+ysbH/1NXV/11bW/9ST1D/UU9P/1JQUP9RT0//UlBQ/1BOTv97eXn/7Ozs//7+/v///////v7+//7+
+ /v/+/v7//v7+/////////////v7+//7+/v///////v7+//7+/v/+/v7///////////////////////7+
+ /v/+/v7///////////////////////7+/v/+/v7//v7+//n6+v+4uLj/WldX/1JQUP9SUFD/UU9P/1FP
+ T/9SUFD/U1FR/5KSkv/29vb//f39/7m4uP9cWlr/UlBQ/1FPT/9SUFD/UU9P/1JQUP9TUVH/kpGR//Dw
+ 8P/+/v7//v7+//7+/v/+//////////7+/v////////////7+/v/+/v7//v7+///////+/v7/////////
+ //////////////////////////////7////+/v7//v////7+/v/+/v7//v7+/8LCwv9bWVn/UlBQ/1FP
+ T/9SUFD/UlBQ/1JQUP9PTk7/jIyM/+/v7//+/v7//v7+//r6+v+zs7P/U1FR/1JQUP9SUFD/UlBQ/1JQ
+ UP9SUFD/UU9P/5ubm//39/f//v7+///////+//////////7+/v/+/v7////////////+/v7///////7+
+ /v///////v7+//7+/v////////////7+/v/+/v7///////7+/v/+/////v////7+/v/8/Pz/09PT/2Zl
+ Zf9RT0//UlBQ/1FPT/9RT0//UlBQ/1NPUP91c3P/6+vr//7+/v/+/v7//v7+//39/f/29vb/mZeX/1VT
+ U/9SUFD/UlBQ/1JQUP9SUFD/UlBQ/1hXV/+ysrL/+fn5//7+/v/+/v7///////7+/v/+/v7///////7+
+ /v///////v7+//7+/v/+/v7//////////////////v7+//////////////////7+/v///////v7+//39
+ /f/d3d3/bm1t/1JQUP9SUFD/Uk9P/1JPUP9RT0//UU9P/3Fvb//c3Nz//f39//3+/v/+/v7//v7+//7+
+ /v/+/v7/8PDw/5CPj/9QTk7/UlBQ/1JQUP9SUFD/UlBQ/1JQUP9ZV1f/v8DA//7+/v/+/v7///////7+
+ /v/+/v7//v7+//7+/v///////v7+//////////////////7+/v/+/v7///////7+/v/+/v7//v7+//7+
+ /v/+/v7//f39/+np6f9+fX3/UlBQ/1JQUP9RT0//UVBQ/1FPT/9RUFD/YF5e/9PS0v/8/Pz//v7+//7+
+ /v/+/v7///7///7+/v/+/v7//f39/+vs7P95eHj/UlBQ/1JQUP9RT0//UU9P/1JQUP9RT0//ZWNj/8/P
+ z//8/Pz//v7+//7+/v/+/v7//v7+//7+/v///////v7+//////////////////////////////////7+
+ /v/+/v7//v7+//7+/v/+/v7/8vHx/4yKiv9RUFD/UlBQ/1FPT/9SUFD/UlBQ/1JQUP9cW1v/vr6+//z8
+ /P/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//3+/v/f39//cXFx/1FPT/9SUFD/UlBQ/1JQ
+ UP9SUFD/UU9P/2tqav/c3Nz//f39//7+/v/+/v7//v7+//7+/v///////v7+//7+/v/+/v7/////////
+ ///////////////////+/v7//v7+//7+/v/39/f/np2d/1JQUP9SUFD/UU9P/1FPT/9SUFD/UlBQ/1RU
+ VP+ysrL/+fn5//7+/v/+/////f7+//7+/v/4/Pv/9vz6//3+/f/+/v7///////7+/v/8/Pz/1tbW/2Ri
+ Yv9SUFD/UlBQ/1FPT/9SUFD/UlBQ/1FPT/97e3v/5eXl//7+/v/+/v7///////////////////////7+
+ /v/+/v7///////7+/v///////v7+/////////////v7+//n5+f+trKz/V1VV/1JQUP9SUFD/UlBQ/1JQ
+ UP9SUFD/U1JS/5ycnP/4+fn//v7+//7+/v/9/v7//f7+/+z49P9017H/ZdOn/9bz6P/+/v7//v//////
+ ///+/v7/+/v7/8LBwf9eXFz/UlBQ/1JQUP9RUFD/UlBQ/1JQUP9SUFD/hoaG//Hx8f/9/v7//v7+//7+
+ /v/+/v7///////7+/v///////v7+//7+/v///////v7+//7+/v/+/v7/+vr6/7+/v/9ZV1f/UlBQ/1JQ
+ UP9ST0//Uk9P/1JQUP9RUFD/kZGR//Ly8v/+/v7//v7+//7+/v/9/v7//P79/47ev/8Et23/Ardv/1zP
+ of/v+vb//P39//7+/v///////v7+//r6+v+1tbX/VlRU/1FPT/9SUFD/UU9P/1JQUP9SUFD/UU9P/5mZ
+ mf/19vb//v7+//7+/v///////v7+//7+/v/+/v7//v7+/////////////v7+//7+/v/8/f3/zczM/2Ri
+ Yv9SUFD/UlBQ/1FPT/9RT0//UlBQ/1FPT/98e3v/6erq//7+/v/+/v7//v7+//7+/v/8/f3/+f37/3LX
+ r/8Btm3/Arhx/z7IkP/m9/D//P39/////////////v7+//7+/v/4+Pj/oaCg/1RSUv9SUFD/UlBQ/1JQ
+ UP9SUFD/UlBQ/1dVVf+oqKj/+vr6//7+/v////////////7+/v/+/v7////////////+/v7//v7+//7+
+ /v/g4eH/Z2Zm/1JQUP9SUFD/UlBQ/1JQUP9SUFD/UU9P/3Vzc//h4OD//P39//7+/v///////v7+//7+
+ /v/9/v7/+fz8/3HWr/8Btm3/Abhw/z7IkP/n+PH//P39///////+/v7///////7+/v/+/v7/9fX1/5WV
+ lf9RT0//UU9P/1JQUP9SUFD/UlBQ/1JQUP9XVFT/wL+///39/f/+/v7//v7+//7+/v/+/v7/////////
+ /////////v7+//39/f+dnZ3/Tk1N/1JQUP9SUFD/UlBQ/1JQUP9SUFD/Y2Fh/9TU1P/+/v7//v7+//7+
+ /v/+/v7//v7+///////9/v7/+f38/3HWr/8Ct23/Ablx/z7JkP/n+PH//P39//7+/v/+/v7//v7+//7+
+ /v/+/v7//f39/+rq6v9+fn7/UlBQ/1JQUP9SUFD/UlBQ/1FPT/9RT0//d3V1/+3t7f/9/v7//v7+//7+
+ /v///////v7+/////////////v7+//r6+v+CgoL/T05O/1JQUP9SUFD/UlBQ/1JPUP9hX1//ysrK//39
+ /f/+/v7//v7+//7+/v///////v7+//7+/v/9/v7/+P38/3HWr/8Btmz/ALhx/z7Ikf/n+PH//P39//7+
+ /v///////v7+//7+/v///////v7+//39/f/k5OT/d3Z2/1FPT/9SUFD/UlBQ/1FPT/9SUFD/ZmVl/93d
+ 3f/8/f3//v7+//7+/v///////////////////////v7+//39/f+dnZ3/TkxM/1NRUf9SUFD/U1FR/1RU
+ VP+ysrL//Pz8//7+/v///////v7+///////+/v7////////////9/v7/+f38/3DXr/8Btmz/ALlx/z7I
+ kf/n+PH//P39//7+/v/+/v7//v7+///////+/v7///////7+/v/9/f3/1dTU/2VkZP9SUFD/UlBQ/1NQ
+ UP9RT0//dXV1/+3t7f/9/f3//v7+/////////////////////////////v7+//7+/v/p6en/eXd3/1ZU
+ VP9TUVH/XVxc/6ytrf/39/f//v7+//7+/v///////v7+///////+/v7////////////9/v7/+f37/3LX
+ r/8Btm3/ALhx/z7IkP/n+PH//P39/////////////v7+//7+/v/+/v7//v7+//7+/v/+/v7//f39/9DQ
+ 0P9paGj/VFJS/1RSUv9jYmL/zMzM//39/f/+/v7//v7+///////+/v7//v7+/////////////v7+//7+
+ /v/+/v7/5+fn/7m6uv+rq6v/zc3N//f39//+/v7///////7+/v/////////////////+/v7///////7+
+ /v/9/v7/+f37/3HXr/8Bt2z/ALhx/z7IkP/m+PH//P39//////////////////7+/v/+/v7//v7+//7+
+ /v///////v7+//39/f/c3Nz/srGx/7GwsP/Y2Nj//Pz8//7+/v/+/v7//v7+//7+/v/+/v7/////////
+ /////////v7+//7+/v/+/v7//v7+//39/f/9/f3//f39//7+/v/+/v7/////////////////////////
+ //////////////7+/v/9/v7/+/78/37atf8Ctm3/Abhw/0rLmf/q+PP//P39////////////////////
+ ///+/v7//v7+//7+/v/+/v7//v7+//7+/v/9/f3//f39//39/f/9/f3//v7+//7+/v/+/v7//v7+////
+ ///+/v7///////7+/v/+/v7//v7+//7+/v/+/v7///////7+/v/+/v7//v7+//////////////////7+
+ /v/+/v7//v7+//////////////////7+/v/9/v7//v7+/8/x5P8kv4H/ELp4/6nmzv/6/fz//f7+//7+
+ /v////////////////////////////7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7///////7+
+ /v/+/v7/////////////////AAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAD//wAA
+ AAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA
+ //8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAD//wAA
+ AAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA
+ //8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAD//wAA
+ AAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA
+ //8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//KAAAAEAAAACAAAAAAQAgAAAA
+ AAAAQgAAAAAAAAAAAAAAAAAAAAAAAP////////////////////////////////////////////////7+
+ /v/+/v7//v7+//7+/v//////////////////////////////////////////////////////////////
+ //////7////+//7+///9/v7/9fX+/6Gh/v8iIv3/DQ38/3Jy/v/o6P7//f39//7+/v/+/v7/////////
+ ///////////////////////////////////////////////////////////////////+/v7//v7+//7+
+ /v//////////////////////////////////////////////////////////////////////////////
+ //////////////7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v//////////////////////////////
+ ///////////////////////////////////+/f///P3+/9nZ//80Nf7/AQL9/wEC/f8QEP7/rKz+//v7
+ /v/7/P7//v7+//////////////////////////////////////////////////////////////////7+
+ /v/+/v7//v7+//7+/v/+/v7//v7+//7+/v///////v7+//7+/v///////v7+//7+/v//////////////
+ //////////////7+/v/+/v7///////7+/v/+/v7//Pz8//v8/P/8/Pz//f39//7+/v/+/v7/////////
+ /////////////////////////////////////////////////////////v3///39///Jyf7/Hx/+/wEB
+ /f8CAvz/AAD9/46N/v/5+f7/+/z/////////////////////////////////////////////////////
+ //////////////7+/v/+/v7//f39//z8/P/7+/v//f39//7+/v/+/v7///////7+/v/+/v7///////7+
+ /v/+/v7////////////////////////////+/v7//v7+//7+/v/+/v7/8/Pz/9DQ0P+4uLj/ubi4/87N
+ zf/08/P//v7+//7+/v////////////////////////////////////////////////////////////79
+ ///9/f7/yMj+/x8f/v8BAf3/AgL8/wAA/f+Pj/7/+fn///r7////////////////////////////////
+ /////////v7+//7+/v/////////////////7/f3/+/v7/97e3v++vr7/tra2/8LDw//n5+f//Pz8//7+
+ /v////////////7+/v/+/v7////////////////////////////+/v7//v7+//7+/v/+/v7/8/Pz/6Sm
+ pf9qaWn/W1pa/1pZWf9oZmb/oJ+f//Pz8//+/v7//v7+////////////////////////////////////
+ ///////////////////+/f///f3+/8nJ/f8fH/3/AgH9/wIC/f8AAP3/j4/+//n5///6+///////////
+ //////////////////////////////7+/v/+/v7////////////+/v7//Pz8/8XExP94d3f/Xl1d/1pZ
+ Wf9fX1//hYWF/9va2v/+/v7//v7+//7////+/v7//v7+/////////////////////////////v7+//7+
+ /v/9/f3//v7+/7W3t/9UVFT/UE5O/1FPT/9QT0//UE5O/1RSUv+lpaX/+/v7//7+/v/9/f3//v7+////
+ /////////////////////////////////////////v3///39/v/IyP3/HR79/wIB/f8CAv3/AAD+/4+P
+ /v/5+f//+vv////////////////////////////////////////////////////////+/v7//v7+/9DR
+ 0f9mZGT/UE9P/1FPT/9QT0//UE9P/1BOTv9/fn7/9/f3//7+/v/9////////////////////////////
+ /////////////////////////v7+//z8/P9ycHD/TkxM/1JQUP9SUFD/UlBQ/1FQUP9SUVH/WFdX/7i3
+ t//+/v7//f7+//7+/v////////////////////////////////////////////79///9/f7/yMj9/x4e
+ /f8BAf3/AgL8/wAA/f+Pj/7/+fn///r7/////////////////////////////////////////v7+//7+
+ /v/9/f3//f39/+Hh4f9xb2//UE5O/1JQUP9SUFD/UlBQ/1JQUP9SUFD/U1JS/8/Pz//9/v7//P39////
+ /////////////////////////v7+//7+/v/////////////////y8vL/Xlpb/09NTf9RT0//UU9P/1JQ
+ UP9TT1D/U1BQ/1JQUP9eXFz/vb29//n6+v/8/v7//f7+//7+/v/+/v7/////////////////////////
+ /v/+/f7//f3+/8nJ/v8dHv3/AQH9/wIC/f8AAP3/j4/+//n5///6+///////////////////////////
+ /////////v7+//7+/v/+/v7//f39/+Xl5f98fHz/UE5O/1NRUf9SUFD/UlBQ/1JQUP9SUFD/UlBQ/09N
+ Tf+zs7P//v7+//z9/f////////////////////////////7+/v/+/v7/////////////////+vr6/2tp
+ af9PTU3/UlBQ/1FPT/9SUFD/UlBQ/1JQUP9RUFD/UU9P/2pqav/IyMj/+Pj4//39/f/+/v7//v7+////
+ ///+/v7//v7+//7//v////7//v3+//39/v/Jyf7/Hx/+/wIB/f8CAv3/AAD+/4+P/v/5+f//+fv/////
+ //////////////////////////////7+/v/+/f3//v39/+jo6P+NjY3/U1FR/1JQUP9RT0//UlBQ/1JQ
+ UP9SUFD/UlBQ/1JQUP9VUFH/xsbG//7+/v/9/f3/////////////////////////////////////////
+ /////////v7+//7+/v+lpaX/UE9P/1FPT/9SUFD/UlBQ/1JQUP9SUFD/UlBQ/1NQUP9RUFD/eXh4/9PT
+ 0//6+vr//v39///+/v///////v7+//7+/v/+//7////+//79/v/9/f7/ycn+/x8f/v8BAf3/AgL9/wAA
+ /v+Pj/7/+fn///n7/////////v7+//7+/v////////////7+/v/+/v7//f39/+3t7f+dnZ3/WVZX/1JQ
+ UP9RT0//UE9P/1JQUP9RT0//UU9P/1NQUP9PTU3/cm9v/+/v7//+/v7//v7+////////////////////
+ //////////////////////////////7+/v/+/v7/6Ojo/4aFhf9RUFD/UlBQ/1JQUP9SUFD/UlBQ/1JQ
+ UP9SUFD/UVBQ/1NRUf+GhYX/3t7e//38/P/+/v7//////////////////v7+//7+/v/9/f7//f3+/8nJ
+ /v8eH/7/AQH9/wIC/f8AAP7/jo/+//n5/v/7+/////7///7+/v/+/v7////////////+/v7//f39//Ly
+ 8v+rq6v/Xlxc/1JPT/9ST0//UU9P/1JQUP9SUFD/UU9P/1JQUP9QTk7/ZWNj/8XExP/+/v7//v7+//7+
+ /v/+/v7//////////////////////////////////////////////////v7+//z8/P/Y2Nj/fHt7/1BO
+ Tv9SUFD/UlBQ/1JQUP9RT0//UU9P/1JQUP9SUFD/VFNT/5GQkP/r7Oz//v7+/////////////v7+//7+
+ /v/+/v7//f3+//39/v/JyP3/Hh/+/wEB/f8CAv3/AAD+/42N/v/5+f7/+/v////+////////////////
+ /////////f39//f39/+4uLj/YmJi/1BOTv9SUFD/UlBQ/1JQUP9SUFD/UlBQ/1JQUP9QTk7/X11d/7W1
+ tf/4+Pj//v7+//7+/v/+/v7//v7+/////////////////////////////////////////////v7+//7+
+ /v/+/v7/+vr6/8zMzP9xb2//UE5O/1NRUf9SUFD/UU9P/1JPT/9ST1D/UlBQ/1FPT/9VU1P/nJub//r6
+ +v/+/v7//v7+//7+/v/+/v7///////79/v/9/f3/1tb+/ysq/v8CAv7/AgL9/wkJ/f+iof7/+fr+//v8
+ /v///v////////7////9/////P39//z8/P/Jycn/Z2Zm/1FPT/9SUFD/UlBQ/1FPT/9RT0//UlBQ/1JQ
+ UP9RT0//WFhY/6moqP/y8fH//v7+//7+/v/+/v7//v7+//7+/v//////////////////////////////
+ //////////////7+/v/+/v7//v7+//39/f/5+fn/wMDA/2RjY/9RT0//UlBQ/1JOT/9ST1D/UlBQ/1JQ
+ UP9SUFD/UlBQ/1RSUv+ysbH//v7+//39/f////////////7+/v/9/v7//P39//Dw/v+Fhv3/ERL8/wED
+ /P9UVP3/39/+//v9/v/+/v7////////////9////+/39//3+/v/g4OD/ampq/09NTf9SUFD/UlBQ/1JQ
+ UP9QUFD/UVBQ/1NQUf9UUFD/U1JS/5aXl//r7Oz//f39//7+/v/+/v7//v7+//3/////////////////
+ //////////////////////////////////////////////7+/v/+/v7//v7+//v7+/+3t7f/Xl1d/1NP
+ UP9SUFD/UE9P/1JQUP9RT0//UU9P/1JQUP9SUFD/VlRU/727u//6+vr//P39//7+/v/+/v7//v7+//7+
+ /v/9/f7/9/f+/9na/f/R0f7/8fH+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//3+/v/l5eX/dHNz/01L
+ S/9SUFD/UU9P/1JQUP9SUFD/UlBQ/1JQUP9SUFD/VFJS/4yLi//o6Oj//Pz8//39/f/+/v7///////7/
+ ///9//////////////////////////////////////////////////////////////////////////7+
+ /v/+/v7/+Pj4/6mpqf9XV1f/UlBQ/1FPT/9SUFD/UU9P/1FPT/9SUFD/UlBQ/1BQUP9mZGT/xsbG//n5
+ +f/9/v7//f7+//7////9/v7//P7+//7+/v/+/v7//v7+//3+/v/8/v7//f7+/////////v7//v7+//7+
+ /v/o6Oj/h4eH/09NTf9TUVH/UlBQ/1JQUP9SUFD/UlBQ/1JQUP9TUVH/U1FR/4B+fv/e3t7//v7+//7+
+ /v//////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+//7+/v/z8/P/mpqa/1JQUP9SUFD/UlBQ/1JQUP9SUFD/UlBQ/1JQ
+ UP9RT0//UU9P/3Rycv/Qz8//+fr6//3+/v/+/v7//f////3+///+/v///v3+//79/v/9/v7//f////3/
+ /////////v7+//7+/v/t7e3/mJiY/1VUVP9TUVH/UU9P/1JQUP9SUFD/UlBQ/1JQUP9TUVH/UE5O/3Ny
+ cv/W1tb//v7+//7+/v//////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////+/v7//v7+/+vr6/+Ih4f/UU9P/1JQ
+ UP9SUFD/UlBQ/1JQUP9SUFD/UU9P/1JQUP9TUVH/gYCA/9vb2//8/Pz//f7+//7+/v/+/v7////+//7+
+ /v/+/v3//v7+///////+/v7//v7+//39/f/w8PD/pqWl/1xaWv9SUFD/UlBQ/1FPT/9RT0//UlBQ/1JQ
+ UP9SUFD/T05O/2VjY//Pzs7//v7+//7+/v//////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+//7+/v////////////39
+ /f/9/f3/3t7e/318fP9QTk7/UlBQ/1JQUP9SUFD/UlBQ/1FPT/9RT0//UU9P/1VTU/+OjY3/5ubm//7+
+ /v/+/v7//v7+/////v/+//7//v/+/////v///////v7+//7+/v/09PT/tLOz/2NhYf9RT0//UlBQ/1JQ
+ UP9RT0//UlBQ/1JQUP9SUFD/UE5O/11dXf++vb3//f39//7+/v//////////////////////////////
+ //////////////////////////////////////////////////////////////////////////////7+
+ /v/+/v7////////////+/v7//v7+//v7+//T0tL/cnFx/09NTf9SUFD/UlBQ/1BQUP9RT0//UlBQ/1FP
+ T/9RT0//VlVV/5mZmf/x8fH//v7+//7+/v////////////////////////////39/f/6+fn/xMLC/2hm
+ Zv9RT0//UlBQ/1FPT/9RT0//UlBQ/1JQUP9SUFD/UU9P/1hXV/+sq6v/9vb2//39/f/+/v7/////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+//7+/v/////////////////9/f3/+/v7/8jIyP9nZmb/UE5O/1JQ
+ UP9RUFD/UU9P/1FPT/9RT0//UlBQ/1JQUP9VVFT/qamp//v7+//+/v7///////////////////////39
+ /f/9/f3/1tXV/2xqav9RT0//UlFR/1FQUP9RT0//UU9P/1JQUP9SUFD/UU9P/1RSUv+dnJz/7e3t//39
+ /f/+/v7/////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////7+/v/+/v7//v7+/////////////v7+//7+
+ /v/5+fn/vLy8/2JhYf9RT0//UlBQ/1FQUP9QT0//UlBQ/1FPT/9SUFD/UU9P/1JSUv+4uLj/+/v7//7+
+ /v/+/v7//v7+//7+/v/+/v7/5eXl/29tbf9OTEz/UlBQ/1JQUP9SUFD/UlBQ/1JQUP9SUFD/UlBQ/1NR
+ Uf+SkZH/6enp//39/f/+/v7/////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+//7+
+ /v/////////////////+/v7//f39//b29v+srKz/XFxc/1BQUP9SUFD/UlBQ/1JQUP9SUFD/UlBQ/1JQ
+ UP9RT0//XFpa/8bGxv/6+vr//f39//7+/v/+/v7/6evr/39/f/9MSkr/U1FR/1JQUP9SUFD/UlBQ/1JQ
+ UP9RT0//U1FR/1RSUv+GhYX/4uLi//39/f/9/f3//v7+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////7+/v/+/v7/7+/v/52dnf9WVlb/UlBQ/1JQ
+ UP9RT0//UU9P/1FPT/9RT0//UlBQ/1BOTv9ta2v/0M/P//r6+v/9/f3/7Ozs/5OTk/9PTk7/U1FR/1JQ
+ UP9SUFD/UlBQ/1JQUP9RT0//UU9P/1JQUP97eXn/2NjY//3+/v/+/v7/////////////////////////
+ //////////////////////////////////////////////////////////////7+/v//////////////
+ ///////////////////////////////////////////////////////////////////+/v7//f39//39
+ /f/q6ur/kZGR/1BPT/9SUFD/UU9P/1FPT/9RT0//UU9P/1JQUP9SUFD/U1FR/3x6ev/Z2Nj/7+/v/6Gg
+ oP9YVlb/UFBQ/1JQUP9SUFD/UlBQ/1JQUP9SUFD/U1FR/1FOTv9ubGz/zs3N//7+/v/+/v7//v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/v7//////////////////////////////////////////////////////////////////v7+//7+
+ /v/+/v7//v7+//7+/v/+/v7//f39/+bm5v9/f3//Tk1N/1JQUP9RT0//UlBQ/1JQUP9RT0//UlBQ/1JQ
+ UP9UUlL/hoSE/5ybm/9hX1//UU9P/1FQUP9SUFD/UlBQ/1JQUP9SUFD/UlBQ/09NTf9fXV7/xMTE//v7
+ +//+/v7//v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////7+/v/+/v7//v7+//7+/v////////////7+/v/+/v7/29vb/3BwcP9OTU3/UlBQ/1JQ
+ UP9SUFD/UU9P/1JQUP9SUFD/UU9P/1VSU/9ZVlb/UlBQ/1JQUP9SUFD/UlBQ/1JQUP9SUFD/UlBQ/1BO
+ Tv9VVFT/s7Oz//n5+f/9/f3//v7+////////////////////////////////////////////////////
+ ///////////////////////////////////+/v7//v7+/////v///v3///38///9/P/+/Pz//v38///9
+ /P///fz///38///9/P///fz///38//7+/f/+//7////+///////+/v7//v7+//7+/v/+/v7//v7+//z8
+ /P/Nzc3/Z2Zm/09NTf9TUVH/UlBQ/1JQUP9SUFD/UlBQ/1JQUP9SUFD/Uk9P/1JQUP9SUFD/UlBQ/1JQ
+ UP9SUFD/UlBQ/1JQUP9RUFD/oaKi//Pz8//9/f3//f7+/////////v7///7+/////////////v7///z9
+ /v/7/f7/+/3+//v9/v/6/f7/+/3+//v9/v/7/f7/+/3+//z9/v/8/v///P7+//7+/v/+/v3//f38//79
+ +//+/Pv//vz7//79+//+/fv//v37//79+//+/fv//v37//78+//9/fz//v39//7+/v///////v7+//7+
+ /v/+/v7///////7+/v/+/v7/+vn5/8PBwf9jYWH/UE5O/1JQUP9RT0//UlBQ/1FPT/9SUFD/UlBQ/1JQ
+ UP9SUFD/UlBQ/1NPUP9TT1D/UlBQ/1JQUP9TUVH/lpaW/+3t7f/9/f3//v7+//7////9/////f7+//7+
+ /v///////P/9//7+/v/8/f7/+vz+//r8/v/6/P7/+vz+//r8/v/6/P7/+vz+//r8/v/6/P7/+vz+//z9
+ /v/+/v7/+vbv//Hgxf/r0Kv/68+q/+zPqv/r0Kr/6tCq/+vRq//q0Kr/6tCq/+rQqv/qz6j/8Nm6//nw
+ 5P/+/v3////+/////////////////////////////v7+//z8/P/39/f/tLS0/19eXv9RT0//UU9P/1FP
+ T/9RT0//UlBQ/1JQUP9SUFD/UlBQ/1JQUP9SUFD/UlBQ/1FPT/9UUlL/i4qK/+bm5v/+/v7//v7+////
+ //////////////7////+/////v////3+/v/k8P7/tNb+/6LN/v+izv7/o87+/6PO//+jzv//o83//6LN
+ //+jzv//o83//6LN/v+82/7/7PX+/+XBkP/NgyH/yHkO/8h5Dv/IeQ3/yHoN/8h5Df/IeQ7/yXkO/8h5
+ Dv/IeQ3/yHoN/8l8Ev/apV3/+/bu///+/v///v////7///////////////////7+/v/+/v7//f39//Hx
+ 8f+lpKT/XFtb/1FPT/9SUFD/UlBQ/1JQUP9SUFD/UlBQ/1JQUP9SUFD/UlBQ/1JQUP9UUlL/f35+/9vb
+ 2//+/v7//v7+//7+/v////////////7+/v/+/v7//f7+//3+/v/w9/7/Xqf+/xB9/v8KfP7/Cnv+/wp8
+ /v8KfP//Cnv//wp7//8Kev//Cnv//wp6//8Ke/7/GIL+/325/v/MgBz/xG8C/8ZyA//FcgH/xXEB/8Vy
+ Af/FcwL/xXIC/8ZyAv/GcgL/xnIC/8VzAv/EcgL/xHID//Hcvv///v7///7+///+////////////////
+ //////////////7+/v/9/f3/6enp/5GQkP9UUlL/UlBQ/1JQUP9SUFD/UlBQ/1JQUP9SUFD/UlBQ/1FP
+ T/9RT0//bm1t/87Ozv/8/Pz//v7+//7+/v/////////////////+/v7//v7+//79/v/+/v3/yeP+/wV2
+ /v8Cdf7/AXf+/wF2/v8Cdv7/Anb+/wF3//8Bd///AXf//wF3//8Bd///Anf//wJ1//8Sff//zIEf/8Rw
+ Av/FcgL/xXIB/8VyAf/EcQH/xHIC/8VyAv/FcgL/xXIC/8VyAv/FcgL/xHEC/8VyBf/y3cD//f7+//7+
+ /v////////7////+///////////////////+/v7//v7+//Pz8/+dnZ3/VFNT/1JQUP9SUFD/UlBQ/1JQ
+ UP9SUFD/UlBQ/1JQUP9RT0//UU9P/3Z0dP/b29v//f39//7+/v///////////////////////v////7+
+ ///9/f///v7+/87l/v8Lef7/AnT+/wF1/v8Bdf7/AnX+/wJ1/v8Bdv//AXb//wF2//8Bdv//AXb//wJ2
+ //8Dc///GYH//+fDlf/NhCT/ynsR/8l7Ef/JexH/yXsQ/8h6EP/IehH/yHoR/8l6EP/JehD/yHsR/8p9
+ Fv/ap2L/+/bv//7+/v/+/v7////////+///+/v7//v7+//7+/v/+/v7//f39//f39/+3t7f/ZGNj/1JQ
+ UP9SUFD/UlBQ/1JQUP9SUFD/UlBQ/1JQUP9SUFD/UlBQ/1JQUP9XVVX/kZCQ/+bm5v/9/f3//v7+////
+ /////////////////////v///f7+//7+/f/z+P7/crL+/x2E/v8VgP7/FID+/xSA/v8VgP7/FYD+/xWA
+ /v8UgP3/FYD+/xWA/v8VgP7/KYn+/4/E///89/L/8+HJ/+3Usf/t07D/7dOw/+3UsP/t07D/7dSw/+3U
+ sP/u1LH/7tSx/+3Trv/x277/+PDl//79/P/9//7///7////+///+/////v7+//7+/v/+/v7//f39//v7
+ +//Hx8f/amlp/1FPT/9SUFD/UU9P/1JQUP9SUFD/UlBQ/1JQUP9SUFD/UlBQ/1JQUP9SUFD/UU9P/1dW
+ Vv+fn5//7+/v//39/f/+/v7////////////+/////f////7+/v/+/v7//f7+/+rz/v/H3/7/t9n+/7bY
+ /v+42P7/uNj+/7fY/v+22P7/ttj+/7bY/v+22P7/t9r+/83l/f/x+P7//v79//3+/P/9/fz//f37//79
+ +//+/fv//v37//79+//+/fv//v38//79/P/+/fv//f39//39/f/+/v3//v7+///+/////v///f////7+
+ /////v///v7+//39/f/V1dX/cHBw/09OTv9SUFD/UlBQ/1FPT/9RT0//UlBQ/1JQUP9SUFD/UlBQ/1JQ
+ UP9SUFD/UlBQ/1JQUP9QT0//V1dX/6ysrP/09PT//v7+//7+/v/+/v7//v7+//7////+/v7//f7+//7+
+ /v/8/v7//P7+//z9///8/f7//P3+//z9/v/8/f7//P3///z9///8/f///P3+//z9/v/8/v7//P7+//7/
+ /v/+//3//f79//3+/P/9/vz//f78//z9+//9/vz//f78//3+/P/+/fz//v79//7+/f///v7////+////
+ /////////////////////////v7+//39/f/d3d3/eXh4/09NTf9SUFD/UlBQ/1JQUP9RT0//UlBQ/1JQ
+ UP9RT0//UU9P/1JQUP9SUFD/UlBQ/1JQUP9SUFD/U1FR/1BOTv9aWFj/ubm5//n5+f/9/f3//v7+//7+
+ /v/+/v7//v7+//7+/v/+/v7//v7///3+///8/v///f3///z9/v/7/f7//P7+//z+///8/v///P7///z+
+ ///8/v///P7///7+/////////////////////////////////////////////////////////v////7/
+ ///+/////v////////////////////////////////////39/f/m5ub/hoWF/05MTP9SUFD/UlBQ/1JQ
+ UP9SUFD/UlBQ/1JQUP9SUFD/UlBQ/1JRUf9RUFD/UVBQ/1JQUP9SUFD/UlBQ/1JQUP9TUVH/T01N/2Fg
+ YP/Kysr//f39//39/f/+/v7//v7+//7+/v///////v////3////+/////v//////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////7////+/////v////7//////////v7+//7+/v///////v7+//7+/v/v7+//lZSU/1FP
+ T/9SUFD/UlBQ/1FPT/9SUFD/UlBQ/1JQUP9SUFD/UlBQ/3V0dP+FhYX/WFhY/1JPT/9SUFD/UlBQ/1JQ
+ UP9SUFD/UU9P/1JQUP9PTU3/bWtr/9jX1//+/v7//v7+//////////////////3/////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////+/v7//////////////////////////////////v////7+/v/+/v7//v7+//7+
+ /v/19fX/pqam/1VUVP9RT0//UlBQ/1JQUP9SUFD/UU9P/1FPT/9SUFD/UU9P/21ra//Hxsb/4uPj/46O
+ jv9UUVL/U1FR/1JQUP9SUFD/UlBQ/1FPT/9RT0//U1FR/09NTf9+fHz/3t7e//7+/v/+/v7/////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v7+//////////////////////////////////7/
+ /////////v7+//3+/v/4+fn/tLS0/2BdXf9RT0//UlBQ/1JQUP9RT0//UU9P/1FPT/9SUFD/UU9P/2Bf
+ X/+8vLz/9vb2//39/f/g4OD/fn19/09NTf9TUVH/UU9P/1FPT/9SUFD/UU9P/1JQUP9SUFD/VFJS/4uK
+ iv/l5eX//v7+//7+/v//////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////+/v7//v7+//7+/v/7/Pz/wsPD/2dmZv9TUFD/UlBQ/1JQUP9SUFD/UU9P/1JQ
+ UP9SUFD/UlBQ/1JRUf+vr6//9/f3//39/f/9/f3//f39/9ra2v9qamr/T01N/1NRUf9RT0//UlBQ/1JQ
+ UP9SUFD/UlBQ/1JQUP9XVVX/mJeX/+3t7f/9/f3//v7+///////+/////f//////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////+/////v////3////+/////v7+//7+/v/8/Pz/0M/P/25tbf9RT0//UlBQ/1FP
+ T/9RT0//UlBQ/1JQUP9RT0//UlBQ/01NTf+dnZ3/+fn5//7+/v/+/v7//v7+//39/f/9/f3/0dHR/15c
+ XP9QTk7/U1FR/1JQUP9SUFD/UlBQ/1JQUP9SUFD/UU9P/1hXV/+mpqb/8/Pz//39/f/+/v7//v////7/
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////7+/v/7+/v/1dXV/3Z1
+ df9PTk7/UlBQ/1JQUP9SUFD/UU9P/1FPT/9RT0//VFBQ/1JPUP+Qj4//+Pj4//7+/v///v7/////////
+ /////////Pz8//z8/P/DwcH/X11d/1FPT/9SUFD/UlBQ/1JQUP9SUFD/UlBQ/1JQUP9QT0//W1pa/7Oz
+ s//19fX//v7+//7+/v////////////7+/v/+/v7//v7+////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+//7+/v////////////7+
+ /v/8/Pz/39/f/4SDg/9RT0//UlBQ/1JQUP9SUFD/Uk9Q/1JPT/9RT0//UlBQ/1RQUf+GhIX/5ubm//7+
+ /v/9/f3//v7+//7+/v/////////////////9/f3/9vb2/7CwsP9dXFz/UU9P/1JQUP9SUFD/UlBQ/1JQ
+ UP9SUFD/UlBQ/09NTf9iYWH/wMHB//r6+v/+/v7//v7+///////+/v7//v7+//7+/v/+/v7/////////
+ //////////////////////////////////////////////////////////////////////////////7+
+ /v/+/v7///////7+/v/9/f3/6+vr/5CQkP9TUVH/UlBQ/1FPT/9RT0//UVBQ/1JPT/9ST0//UlBQ/1JQ
+ UP98e3v/2NjY//z8/P/+/v7//v7+//7+/v/+/v7///7//////////////v7+//39/f/v7+//oaCg/1tZ
+ Wf9SUFD/UlBQ/1JQUP9SUFD/UlBQ/1JQUP9SUFD/TkxM/2ppaf/Pz8///v7+//7+/v//////////////
+ ///+/v7//v7+////////////////////////////////////////////////////////////////////
+ /////////v7+//7+/v////////////7+/v/+/v7/9/b2/56env9SUlL/UlBQ/1JQUP9RT0//UU9P/1FQ
+ UP9RUFD/UlBQ/1FPT/9xcHD/y8rK//n5+f/+/v7//v7+//7+/v///v////7////+//////////////7+
+ /v/+/v7//v7+/+bn5/+SkpL/VlRU/1JQUP9SUFD/UU9P/1JQUP9SUFD/UlBQ/1JQUP9OTEz/dHNz/93d
+ 3f/+/v7//v7+//7+/v/+/v7/////////////////////////////////////////////////////////
+ //////////////////////////////7+/v/+/v7///////7+/v/+/v7/+/r6/7KwsP9XVlb/UU9P/1JQ
+ UP9RT0//UlBQ/1JQUP9SUFD/UlBQ/1FQUP9mZWX/vr6+//f29v/9/v7//v7+//7+/v/+/v7//v7+//7+
+ ///////////////+/////v///v7+//7+/v/9/f3/4ODg/4SEhP9TUVH/UlBQ/1JQUP9SUFD/UlBQ/1JQ
+ UP9SUFD/UlBQ/1FPT/+Fg4P/5eXl//39/f/+/v7//v7+////////////////////////////////////
+ ///////////////////////////////////////////////////+/v7//v7+//7+/v/+/v7//v7+/7++
+ vv9hX1//UU9P/1JQUP9RT0//UU9P/1JQUP9SUFD/UlBQ/1JQUP9ZWVn/sbGx//b29v/+/v7//v7+//7/
+ ///9/v7//v7+//7+/v/+//////////39/f/+/v3//v7+///////+/v7//f39//z8/P/b29v/dXNz/09N
+ Tf9TUVH/UlBQ/1FPT/9SUFD/UlBQ/1JQUP9SUFD/VFNT/5KSkv/t7e3//v7+//7+/v//////////////
+ //////////////////////////////////////////////////////////////////////////////7+
+ /v/9/f3//Pz8/8rKyv9pZ2f/UU9P/1JQUP9SUFD/UlBQ/1JQUP9SUFD/UlBQ/1NRUf9QTk7/oqSk//f4
+ +P/+/v7//v7+//7+/v/9/v7//f7+//7+/v/2+/r/1PLn/8vw4f/v+vb//v79//7+/v/+/////v7+//7+
+ /v/9/f3//Pz8/9TU1P9jYWH/UE5O/1NRUf9RT0//UlBQ/1JQUP9SUFD/UlBQ/1JQUP9WVlb/oaGh//Pz
+ 8//+/v7//v7+//7+/v///////////////////////////////////////v7+//7+/v//////////////
+ //////////////7+/v/9/v7/+vv7/9LR0f9zcXH/UU9P/1JQUP9SUFD/UlBQ/1JQUP9SUFD/UlBQ/1JQ
+ UP9OTU3/mJiY//r6+v/+/v7//////////////////P7+//z+/v/w+vb/g9u4/w+7df8Bt27/UM6d/971
+ 7P/9/v3//f7+//7+/v////////////39/f/+/v7/ycnJ/1xaWv9QTk7/UlBQ/1JQUP9SUFD/UlBQ/1JQ
+ UP9SUFD/Uk5P/1lXV/+rrKz/9PT0//z9/f/+/v7////////////////////////////+/v7//v7+//7+
+ /v/+/v7//////////////////v7+//7+/v/+/v7/+/v7/9vb2/+BgID/UU9P/1JQUP9SUFD/UlBQ/1JQ
+ UP9SUFD/UlBQ/1JQUP9RUFD/hYSE//Dw8P/9/f3//v7+//7+/v/+/v7//v7+//3+/v/8/v7/1vPn/yrC
+ hP8Btmv/Arhv/wi3cf+g48n/+v38//v9/f/+/v7//////////////////f39//v7+/+ysrL/W1pa/1BO
+ Tv9SUFD/UlBQ/1JQUP9SUFD/UlBQ/1JQUP9QTk7/YmBg/7u8vP/3+Pj//v7+////////////////////
+ /////////v7+//7+/v////////////////////////////7+/v/+/v7//P39/+Tk5P+OjY3/U1FR/1JQ
+ UP9SUFD/UlBQ/1FPT/9SUFD/UlBQ/1JQUP9SUFD/fXx8/93d3f/9/f3//v7+///////+/v7//v7+//7+
+ /v/8/v7//f7+/8nv4P8fv3//AbZt/wK4cf8At27/jd6+//j8+//7/f3///////////////////////7+
+ /v/9/f3/9PT0/6alpf9aWFj/UU9P/1JQUP9SUFD/UlBQ/1JQUP9SUFD/UlBQ/1BOTv9ramr/x8jI//r6
+ +v/+/v7///////////////////////7+/v/+/v7////////////////////////////+/v7//v7+/+/x
+ 8f+ZmJj/VlRU/1FPT/9SUFD/UlBQ/1JQUP9RT0//UlBQ/1JQUP9RT0//dXNz/8/Ozv/5+vr//v7+////
+ ///////////////////+/v7//P7+//3+/v/J7uH/H79//wG2bf8BuHH/ALdu/47fvv/4/Pv/+/39////
+ /////////////////////////v7+//39/f/s7Oz/mZiY/1ZVVf9RT0//UU9P/1FPT/9SUFD/UlBQ/1JQ
+ UP9SUFD/UE5O/3Nycv/X1tb//v7+//7+/v///////v7+//7+/v/+/v7//v7+////////////////////
+ /////////v7+//7+/v+3t7f/VlVV/1JQUP9SUFD/UlBQ/1JQUP9SUFD/UlBQ/1JQUP9QTk7/a2lp/8PD
+ w//39/f//f7+//7+/v////////////////////////////3+/v/9/v7/yO7h/x6/f/8Btm3/Abhx/wC3
+ bv+O377/+f37//v9/f////////////////////////////7+/v/+/v7//Pz8/+Li4v+Lior/VFJS/1JQ
+ UP9SUFD/UlBQ/1JQUP9SUFD/UU9P/1JQUP9RTU7/goCA//b29v/+/v7///////7+/v/+/v7/////////
+ //////////////////////////////7+/v/7+/v/c3Nz/01NTf9TUVH/UlBQ/1JQUP9SUFD/UlBQ/1JQ
+ UP9RT0//YF5e/7e2tv/29vb//v7+//7+/v/////////////////////////////////8/v7//f7+/8ju
+ 4f8ev3//Ardu/wG5cf8At27/juC+//n9+//7/f3////////////////////////////+/v7//v7+//7+
+ /v/7+/v/2NjY/3p5ef9RUFD/UlBQ/1JQUP9SUFD/UlBQ/1FPT/9SUFD/UU9P/1VTU//Pz8///v7+//3+
+ /v/+/v7//v7+////////////////////////////////////////////8/Pz/1tbW/9OTk7/UlBQ/1JQ
+ UP9SUFD/UlBQ/1JQUP9UUFD/V1ZW/6ioqP/39/f//v7+//7+/v/9/////v//////////////////////
+ /////////P7+//z+/v/I7uH/Hr9//wG2bf8AuHH/ALdu/47gvv/5/fv/+/39////////////////////
+ ///////////////////+/v7//v7+//v7+//R0dH/amlp/1FPT/9SUFD/UlBQ/1JQUP9SUFD/UlBQ/1JQ
+ UP9PTU3/tLS0//3+/v/8/f3//v7+/////////////////////////////////////////////v7+//r6
+ +v9paGj/T01N/1NQUf9SUFD/UlBQ/1JQUP9SUVH/UlJS/52dnf/4+Pj//v7+//7+/v//////////////
+ //////////////////////////////z+/v/9/v7/yO7h/x6/f/8At2z/ALlw/wC3b/+O4L7/+f37//v9
+ /f/////////////////////////////////////////////////9/f3//f39/87Ozv9iYGD/UU9P/1JQ
+ UP9SUFD/Uk9Q/1JQUP9SUFD/UVFR/8XFxf/+/v7//f39//7+/v//////////////////////////////
+ //////////////7+/v/+/v7/pKSk/1FOTv9TT1D/UlBQ/1FPT/9SUFD/UU9P/4yMjP/w8PD//v7+//7+
+ /v/////////////////////////////////////////////////8/v7//f7+/8fv4P8ev3//AbZt/wG4
+ cf8At27/juC+//n9+//7/f3//////////////////v7+//7+/v/+/v7///////////////////////39
+ /f/+/v7/vr6+/1pZWf9QT0//UlBQ/1JPUP9ST1D/T01N/25ubv/w8PD//v7+//7+/v//////////////
+ ///////////////////////////////////+/v7//v7+/+np6f+OjY3/XVxc/1VTU/9UUlL/W1pa/4aH
+ h//m5ub//v7+//7+/v///////////////////////////////////////////////////////P7+//3+
+ /v/J7+D/H79//wG2bv8BuHH/ALdt/47fv//5/fv/+/39//////////////////7+/v/+/v7//v7+////
+ ///////////////////+/v7//v7+//z8/P+tra3/ZWRk/1ZUVP9UUlL/V1ZW/3Bvb//Hx8f//v7+//7+
+ /v///////////////////////////////////////////////////////v7+//7+/v/9/f3/6Ojo/7m6
+ uv+dnZ3/nZyc/7e3t//m5+f//f39//7+/v//////////////////////////////////////////////
+ //////////////z+/v/9/v7/yO/g/x/Af/8Bt23/Abhx/wC3bf+O377/+f37//v9/f//////////////
+ ///////////////////+/v7//v7+//////////////////7+/v/+/v7/9fX1/8rJyf+lpaX/mpmZ/6yr
+ q//V1dX/+/v7//7+/v////////////////////////////////////////////////////////////7+
+ /v/+/v7//v7+//7+/v/6+/v/8vLy//Ly8v/6+vr//f39//7+/v//////////////////////////////
+ ///////////////////////////////////8/v7//f7+/8rw4P8gv3//AbZt/wG4cv8AuG//jd6+//n9
+ +//7/f3//////////////////////////////////v7+//7+/v///////////////////////v7+//7+
+ /v/8/Pz/9fX1//Hx8f/39/f//Pz8//7+/v//////////////////////////////////////////////
+ ///////////////////+/v7//v7+//7+/v/+/v7//v7+//39/f/9/f3//f39//7+/v/+/v7/////////
+ ///////////////////////////////////////////////////+/v7//f7+//3+/v/a9Or/NsWM/wK1
+ bP8Ct27/ELt3/67o0f/7/fz//P39//////////////////////////////////////////////////7+
+ /v/+/v7//v7+//7+/v/+/v7//f39//39/f/9/f3//f39//7+/v/+/v7//v7+//7+/v//////////////
+ /////////////////////////////////////////v7+//7+/v////////////7+/v/+/v7//v7+//7+
+ /v/+/v7//////////////////v7+//7+/v/+/v7//v7+/////////////////////////////v7+//3+
+ /v/+/v7/9vz6/6Xky/8mwIP/ELt5/3bYsv/p+fL//f79//3+/v/+/v7//v7+////////////////////
+ ///////////////////+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7///////7+
+ /v/+/v7///////////////////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
+
+
+
\ No newline at end of file
Index: xword/UICommons/Properties/Settings.Designer.cs
===================================================================
--- xword/UICommons/Properties/Settings.Designer.cs (revision 0)
+++ xword/UICommons/Properties/Settings.Designer.cs (revision 0)
@@ -0,0 +1,38 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:2.0.50727.3074
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace UICommons.Properties
+{
+
+
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "9.0.0.0")]
+ public sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
+
+ private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+
+ public static Settings Default {
+ get {
+ return defaultInstance;
+ }
+ }
+
+ [global::System.Configuration.ApplicationScopedSettingAttribute()]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Configuration.DefaultSettingValueAttribute("\r\n\r\n XML-RPC\r\n Velocity Services\r\n")]
+ public global::System.Collections.Specialized.StringCollection ConnectMethods {
+ get {
+ return ((global::System.Collections.Specialized.StringCollection)(this["ConnectMethods"]));
+ }
+ }
+ }
+}
Index: xword/UICommons/Properties/Settings.settings
===================================================================
--- xword/UICommons/Properties/Settings.settings (revision 0)
+++ xword/UICommons/Properties/Settings.settings (revision 0)
@@ -0,0 +1,13 @@
+
+
+
+
+
+ <?xml version="1.0" encoding="utf-16"?>
+<ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <string>XML-RPC</string>
+ <string>Velocity Services</string>
+</ArrayOfString>
+
+
+
\ No newline at end of file
Index: xword/UICommons/UIActionsManagement/AbstractAddinSettingsFormActionsManager.cs
===================================================================
--- xword/UICommons/UIActionsManagement/AbstractAddinSettingsFormActionsManager.cs (revision 0)
+++ xword/UICommons/UIActionsManagement/AbstractAddinSettingsFormActionsManager.cs (revision 0)
@@ -0,0 +1,58 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace UICommons.UIActionsManagement
+{
+ ///
+ /// Abstract actions manager for AddinSettingsForm
instances.
+ ///
+ public abstract class AbstractAddinSettingsFormActionsManager:IActionsManager
+ {
+ ///
+ /// Action to perform when OnFormLoad event is raised.
+ ///
+ /// Sender object.
+ /// Event arguments.
+ protected abstract void ActionFormLoad(object sender, EventArgs e);
+
+ ///
+ /// Action to perform when OnApply event is raised.
+ ///
+ /// Sender object.
+ /// Event arguments.
+ protected abstract void ActionApply(object sender, EventArgs e);
+
+ ///
+ /// Action to perform when OnOK event is raised.
+ ///
+ /// Sender object.
+ /// Event arguments.
+ protected abstract void ActionOK(object sender, EventArgs e);
+
+ ///
+ /// Action to perform when OnProtocolChanged event is raised.
+ ///
+ /// Sender object.
+ /// Event arguments.
+ protected abstract void ActionProtocolChanged(object sender, EventArgs e);
+
+ ///
+ /// Action to perform when OnCancel event is raised.
+ ///
+ /// Sender object.
+ /// Event arguments.
+ protected abstract void ActionCancel(object sender, EventArgs e);
+
+
+ #region IActionsManager Members
+
+ ///
+ /// Enqueues all (known/custom) event handlers defined for an AddinSettingsForm
instance.
+ ///
+ public abstract void EnqueueAllHandlers();
+
+ #endregion
+ }
+}
Index: xword/UICommons/UICommons.csproj
===================================================================
--- xword/UICommons/UICommons.csproj (revision 22817)
+++ xword/UICommons/UICommons.csproj (working copy)
@@ -1,4 +1,4 @@
-
+
Debug
@@ -47,6 +47,12 @@
+
+ Form
+
+
+ AddinSettingsForm.cs
+
Form
@@ -54,10 +60,20 @@
AddPageForm.cs
+
+ Settings.settings
+ True
+ True
+
+
+
+ AddinSettingsForm.cs
+ Designer
+
AddPageForm.cs
Designer
@@ -69,6 +85,12 @@
XWikiLib
+
+
+ PublicSettingsSingleFileGenerator
+ Settings.Designer.cs
+
+
-
+
\ No newline at end of file
Index: xword/XWord/AddinSettingsForm.cs
===================================================================
--- xword/XWord/AddinSettingsForm.cs (revision 22817)
+++ xword/XWord/AddinSettingsForm.cs (working copy)
@@ -1,404 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Collections.Specialized;
-using System.IO;
-using System.Linq;
-using System.Threading;
-using System.Diagnostics;
-using System.Windows.Forms;
-using XWiki.Clients;
-using XWiki.Logging;
-using XWiki;
-
-namespace XWord
-{
- ///
- /// Provides UI for changing the add-in settings.
- ///
- public partial class AddinSettingsForm : Form
- {
- ///
- /// Specifies if at least an instance of the form is visible.
- ///
- public static bool IsShown = false;
- bool connectionSettingsApplied = true;
- bool addinSettingsApplied = true;
- bool loadingDialogFlag = false;
- XOfficeCommonSettings addinSettings = new XOfficeCommonSettings();
- const String connectionDocUrl = "http://xoffice.xwiki.org/xwiki/bin/view/XWord/User_Guide#HConnecttoaXWikiserver";
-
- #region connectivity
- StringCollection connectMethods = Properties.Settings.Default.ConnectMethods;
- Dictionary connectDictionary = new Dictionary();
- #endregion
- ///
- /// Default constructor. Initializes all components.
- ///
- public AddinSettingsForm()
- {
- InitializeComponent();
- }
-
- ///
- /// Gets the instance of the addin.
- ///
- public XWikiAddIn Addin
- {
- get
- {
- return Globals.XWikiAddIn;
- }
- }
-
- ///
- /// Gets or sets the URL of the server that the add-in conncets to.
- ///
- private String ServerURL
- {
- get
- {
- return txtServerURL.Text;
- }
- set
- {
- txtServerURL.Text = value;
- }
- }
-
- ///
- /// Gets the user name that was provided.
- ///
- private String UserName
- {
- get
- {
- return txtUserName.Text;
- }
- }
-
- ///
- /// Gets the password that was provided.
- ///
- private String Password
- {
- get
- {
- return txtPassword.Text;
- }
- }
-
- ///
- /// Event triggered when the "Apply" button is clicked.
- ///
- /// The control that triggered the event.
- /// The event parameters.
- private void btnApply_Click(object sender, EventArgs e)
- {
- if (tabControl.SelectedTab == tabConnection)
- {
- ApplyConnectionSettings();
- connectionSettingsApplied = true;
- }
- else if (tabControl.SelectedTab == tabFileRepository)
- {
- ApplyRepositoriesSettings();
- addinSettingsApplied = true;
- }
- }
-
- ///
- /// Sets the new connection settings for the addin,
- /// connects to the server and refreshes the active wiki explorer.
- ///
- private void ApplyConnectionSettings()
- {
- Cursor c = this.Cursor;
- this.Cursor = Cursors.WaitCursor;
- if (ServerURL.EndsWith("/"))
- {
- ServerURL = ServerURL.Substring(0, ServerURL.Length - 1);
- }
- Addin.serverURL = ServerURL;
- Addin.username = UserName;
- Addin.password = Password;
- LoginData loginData = new LoginData();
- Addin.Client = XWikiClientFactory.CreateXWikiClient(Addin.ClientType, Addin.serverURL, Addin.username, Addin.password);
-
- if (ckRememberMe.Checked)
- {
- String[] credentials = new String[3];
- credentials[0] = Globals.XWikiAddIn.serverURL;
- credentials[1] = Globals.XWikiAddIn.username;
- credentials[2] = Globals.XWikiAddIn.password;
- loginData.WriteCredentials(credentials);
- }
- else
- {
- loginData.ClearCredentials();
- }
- //Write the settings to isolated storage.
- XOfficeCommonSettingsHandler.WriteRepositorySettings(addinSettings);
-
- this.Cursor = c;
- }
-
- ///
- /// Sets the pages and attachments repositories.
- ///
- private void ApplyRepositoriesSettings()
- {
- Cursor c = this.Cursor;
- this.Cursor = Cursors.WaitCursor;
- if (ValidatePath(txtPagesRepo.Text))
- {
- Addin.PagesRepository = txtPagesRepo.Text;
- }
- else
- {
- Addin.PagesRepository = Path.GetTempPath();
- }
- if (ValidatePath(txtAttachmentsRepo.Text))
- {
- Addin.DownloadedAttachmentsRepository = txtAttachmentsRepo.Text;
- }
- else
- {
- Addin.DownloadedAttachmentsRepository = Path.GetTempPath();
- }
- XOfficeCommonSettingsHandler.WriteRepositorySettings(addinSettings);
- addinSettingsApplied = true;
- Thread.Sleep(500);
- this.Cursor = c;
- }
-
- ///
- /// Event triggered when the "Cancel button is pressed.
- ///
- /// The control that triggered the event.
- /// The event parameters.
- private void btnCancel_Click(object sender, EventArgs e)
- {
- this.DialogResult = DialogResult.Cancel;
- this.Close();
- }
-
- ///
- /// Event that is automatically triggered the Form is loading.
- ///
- /// The control that triggered the event.
- /// The event parameters.
- private void ConnectionSettingsForm_Load(object sender, EventArgs e)
- {
- loadingDialogFlag = true;
- if (Addin.serverURL == "" || Addin.serverURL == null)
- {
- groupBox1.Text = "Test server settings";
- }
- else
- {
- groupBox1.Text = "Settings";
- txtServerURL.Text = Addin.serverURL;
- txtUserName.Text = Addin.username;
- txtPassword.Text = Addin.password;
- }
- addinSettings = new XOfficeCommonSettings();
- addinSettings.PagesRepository = Addin.PagesRepository;
- addinSettings.DownloadedAttachmentsRepository = Addin.DownloadedAttachmentsRepository;
- addinSettings.ClientType = Addin.ClientType;
- txtPagesRepo.Text = Addin.PagesRepository;
- txtAttachmentsRepo.Text = Addin.DownloadedAttachmentsRepository;
- //init protocol settings
- connectDictionary.Add(connectMethods[0], XWikiClientType.XML_RPC);
- connectDictionary.Add(connectMethods[1], XWikiClientType.HTTP_Client);
- comboProtocol.DataSource = connectMethods;
- switch(Addin.ClientType)
- {
- case XWikiClientType.XML_RPC:
- comboProtocol.SelectedIndex = 0;
- break;
- case XWikiClientType.HTTP_Client:
- comboProtocol.SelectedIndex = 1;
- break;
- }
- loadingDialogFlag = false;
- }
-
- ///
- /// Event triggered when a connection setting is changed.
- ///
- /// The control that triggered the event.
- /// The event parameters.
- private void txtAnyConnectionSetting_TextChanged(object sender, EventArgs e)
- {
- connectionSettingsApplied = false;
- }
-
- ///
- /// Event triggered when the OK button is pressed.
- ///
- /// The control that triggered the event.
- /// The event parameters.
- private void btnOK_Click(object sender, EventArgs e)
- {
- //If settings changes were made or there is no client instance
- if (!connectionSettingsApplied || (Addin.Client == null))
- {
- ApplyConnectionSettings();
- }
- if (!addinSettingsApplied)
- {
- ApplyRepositoriesSettings();
- }
- this.DialogResult = DialogResult.OK;
- this.Close();
- }
-
- ///
- /// Event triggered when the select pages repository is clicked.
- ///
- /// The control that triggered the event.
- /// The event parameters.
- private void btnPagesRepo_Click(object sender, EventArgs e)
- {
- FolderBrowserDialog dialog = new FolderBrowserDialog();
- DialogResult result = dialog.ShowDialog();
- if (result == DialogResult.OK)
- {
- txtPagesRepo.Text = dialog.SelectedPath;
- }
- }
-
- ///
- /// Event triggered when the select downloaded attachments repository is clicked.
- ///
- /// The control that triggered the event.
- /// The event parameters.
- private void btnAttachmentsRepo_Click(object sender, EventArgs e)
- {
- FolderBrowserDialog dialog = new FolderBrowserDialog();
- DialogResult result = dialog.ShowDialog();
- if (result == DialogResult.OK)
- {
- txtAttachmentsRepo.Text = dialog.SelectedPath;
- }
- }
-
- ///
- /// Checks if a url is valid.
- ///
- /// The value of the url to be checked.
- /// True if the url is valid. False if the url is not valid.
- private bool ValidateURL(String url)
- {
- bool valid = true;
- try
- {
- Uri uri = new Uri(url, UriKind.Absolute);
- }
- catch (UriFormatException)
- {
- valid = false;
- }
- return valid;
- }
-
- ///
- /// Checks if a path is valid
- ///
- /// The value of the path.
- /// True if the path is valid. False if the path is not valid.
- private bool ValidatePath(String path)
- {
- bool valid = true;
- try
- {
- if (!Path.IsPathRooted(path))
- {
- valid = false;
- }
- }
- catch (Exception)
- {
- valid = false;
- }
- return valid;
- }
-
- ///
- /// Event triggered when the textbox loses the focus.
- ///
- /// The control that triggered the event.
- /// The event parameters.
- private void txtPagesRepo_Leave(object sender, EventArgs e)
- {
- bool isValid = ValidatePath(txtPagesRepo.Text);
- if (!isValid)
- {
- UserNotifier.Error("The path you provided is not valid. Please select a valid path");
- }
- }
-
- ///
- /// Event triggered when the textbox loses the focus.
- ///
- /// The control that triggered the event.
- /// The event parameters.
- private void txtAttachmentsRepo_Leave(object sender, EventArgs e)
- {
- bool isValid = ValidatePath(txtAttachmentsRepo.Text);
- if (!isValid)
- {
- UserNotifier.Error("The path you provided is not valid. Please select a valid path");
- }
- }
-
- ///
- /// Event triggered when a repository setting is changed.
- ///
- /// The control that triggered the event.
- /// The event paramaters.
- private void anyRepoSettingChanged_TextChanged(object sender, EventArgs e)
- {
- addinSettingsApplied = false;
- }
-
- private void comboProtocol_SelectedIndexChanged(object sender, EventArgs e)
- {
- //If user generated event
- if (!loadingDialogFlag)
- {
- String selectedValue = (String)comboProtocol.SelectedValue;
- if (connectDictionary.Keys.Contains(selectedValue))
- {
- addinSettings.ClientType = connectDictionary[selectedValue];
- Addin.ClientType = addinSettings.ClientType;
- connectionSettingsApplied = false;
- }
- else
- {
- UserNotifier.StopHand("The selected value is not valid.");
- }
- }
- }
-
- private void linkConnectDoc_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
- {
- if (e.Button == MouseButtons.Left)
- {
- Process p = new Process();
- p.StartInfo = new ProcessStartInfo(connectionDocUrl);
- p.Start();
- }
- }
-
- private void AddinSettingsForm_FormClosed(object sender, FormClosedEventArgs e)
- {
- IsShown = false;
- }
-
- private void AddinSettingsForm_Shown(object sender, EventArgs e)
- {
- IsShown = true;
- }
- }
-}
\ No newline at end of file
Index: xword/XWord/AddinSettingsForm.Designer.cs
===================================================================
--- xword/XWord/AddinSettingsForm.Designer.cs (revision 22817)
+++ xword/XWord/AddinSettingsForm.Designer.cs (working copy)
@@ -1,374 +0,0 @@
-namespace XWord
-{
- partial class AddinSettingsForm
- {
- ///
- /// Required designer variable.
- ///
- private System.ComponentModel.IContainer components = null;
-
- ///
- /// Clean up any resources being used.
- ///
- /// true if managed resources should be disposed; otherwise, false.
- protected override void Dispose(bool disposing)
- {
- if (disposing && (components != null))
- {
- components.Dispose();
- }
- base.Dispose(disposing);
- }
-
- #region Windows Form Designer generated code
-
- ///
- /// Required method for Designer support - do not modify
- /// the contents of this method with the code editor.
- ///
- private void InitializeComponent()
- {
- System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AddinSettingsForm));
- this.tabControl = new System.Windows.Forms.TabControl();
- this.tabConnection = new System.Windows.Forms.TabPage();
- this.txtServerURL = new System.Windows.Forms.TextBox();
- this.ckRememberMe = new System.Windows.Forms.CheckBox();
- this.txtPassword = new System.Windows.Forms.TextBox();
- this.lblPassword = new System.Windows.Forms.Label();
- this.txtUserName = new System.Windows.Forms.TextBox();
- this.lblUserName = new System.Windows.Forms.Label();
- this.lblServerUrl = new System.Windows.Forms.Label();
- this.groupBox1 = new System.Windows.Forms.GroupBox();
- this.linkConnectDoc = new System.Windows.Forms.LinkLabel();
- this.comboProtocol = new System.Windows.Forms.ComboBox();
- this.lblProtocol = new System.Windows.Forms.Label();
- this.tabFileRepository = new System.Windows.Forms.TabPage();
- this.grp = new System.Windows.Forms.GroupBox();
- this.btnAttachmentsRepo = new System.Windows.Forms.Button();
- this.txtAttachmentsRepo = new System.Windows.Forms.TextBox();
- this.label5 = new System.Windows.Forms.Label();
- this.btnPagesRepo = new System.Windows.Forms.Button();
- this.txtPagesRepo = new System.Windows.Forms.TextBox();
- this.label4 = new System.Windows.Forms.Label();
- this.btnApply = new System.Windows.Forms.Button();
- this.btnOK = new System.Windows.Forms.Button();
- this.btnCancel = new System.Windows.Forms.Button();
- this.tabControl.SuspendLayout();
- this.tabConnection.SuspendLayout();
- this.groupBox1.SuspendLayout();
- this.tabFileRepository.SuspendLayout();
- this.grp.SuspendLayout();
- this.SuspendLayout();
- //
- // tabControl
- //
- this.tabControl.Controls.Add(this.tabConnection);
- this.tabControl.Controls.Add(this.tabFileRepository);
- this.tabControl.Dock = System.Windows.Forms.DockStyle.Top;
- this.tabControl.Location = new System.Drawing.Point(0, 0);
- this.tabControl.Name = "tabControl";
- this.tabControl.SelectedIndex = 0;
- this.tabControl.Size = new System.Drawing.Size(416, 260);
- this.tabControl.TabIndex = 0;
- //
- // tabConnection
- //
- this.tabConnection.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
- this.tabConnection.Controls.Add(this.txtServerURL);
- this.tabConnection.Controls.Add(this.ckRememberMe);
- this.tabConnection.Controls.Add(this.txtPassword);
- this.tabConnection.Controls.Add(this.lblPassword);
- this.tabConnection.Controls.Add(this.txtUserName);
- this.tabConnection.Controls.Add(this.lblUserName);
- this.tabConnection.Controls.Add(this.lblServerUrl);
- this.tabConnection.Controls.Add(this.groupBox1);
- this.tabConnection.Location = new System.Drawing.Point(4, 22);
- this.tabConnection.Name = "tabConnection";
- this.tabConnection.Padding = new System.Windows.Forms.Padding(3);
- this.tabConnection.Size = new System.Drawing.Size(408, 234);
- this.tabConnection.TabIndex = 0;
- this.tabConnection.Text = "Connection Settings";
- this.tabConnection.UseVisualStyleBackColor = true;
- //
- // txtServerURL
- //
- this.txtServerURL.Location = new System.Drawing.Point(102, 25);
- this.txtServerURL.Name = "txtServerURL";
- this.txtServerURL.Size = new System.Drawing.Size(271, 20);
- this.txtServerURL.TabIndex = 12;
- this.txtServerURL.Text = "http://localhost:8080";
- this.txtServerURL.TextChanged += new System.EventHandler(this.txtAnyConnectionSetting_TextChanged);
- //
- // ckRememberMe
- //
- this.ckRememberMe.AutoSize = true;
- this.ckRememberMe.Checked = true;
- this.ckRememberMe.CheckState = System.Windows.Forms.CheckState.Checked;
- this.ckRememberMe.Location = new System.Drawing.Point(297, 196);
- this.ckRememberMe.Name = "ckRememberMe";
- this.ckRememberMe.Size = new System.Drawing.Size(94, 17);
- this.ckRememberMe.TabIndex = 18;
- this.ckRememberMe.Text = "Remember me";
- this.ckRememberMe.UseVisualStyleBackColor = true;
- //
- // txtPassword
- //
- this.txtPassword.Location = new System.Drawing.Point(102, 110);
- this.txtPassword.Name = "txtPassword";
- this.txtPassword.PasswordChar = '*';
- this.txtPassword.Size = new System.Drawing.Size(271, 20);
- this.txtPassword.TabIndex = 15;
- this.txtPassword.Text = "admin";
- this.txtPassword.TextChanged += new System.EventHandler(this.txtAnyConnectionSetting_TextChanged);
- //
- // lblPassword
- //
- this.lblPassword.AutoSize = true;
- this.lblPassword.Location = new System.Drawing.Point(21, 113);
- this.lblPassword.Name = "lblPassword";
- this.lblPassword.Size = new System.Drawing.Size(56, 13);
- this.lblPassword.TabIndex = 17;
- this.lblPassword.Text = "Password:";
- //
- // txtUserName
- //
- this.txtUserName.Location = new System.Drawing.Point(102, 68);
- this.txtUserName.Name = "txtUserName";
- this.txtUserName.Size = new System.Drawing.Size(271, 20);
- this.txtUserName.TabIndex = 14;
- this.txtUserName.Text = "Admin";
- this.txtUserName.TextChanged += new System.EventHandler(this.txtAnyConnectionSetting_TextChanged);
- //
- // lblUserName
- //
- this.lblUserName.AutoSize = true;
- this.lblUserName.Location = new System.Drawing.Point(21, 71);
- this.lblUserName.Name = "lblUserName";
- this.lblUserName.Size = new System.Drawing.Size(63, 13);
- this.lblUserName.TabIndex = 13;
- this.lblUserName.Text = "User Name:";
- //
- // lblServerUrl
- //
- this.lblServerUrl.AutoSize = true;
- this.lblServerUrl.Location = new System.Drawing.Point(21, 28);
- this.lblServerUrl.Name = "lblServerUrl";
- this.lblServerUrl.Size = new System.Drawing.Size(66, 13);
- this.lblServerUrl.TabIndex = 11;
- this.lblServerUrl.Text = "Server URL:";
- //
- // groupBox1
- //
- this.groupBox1.Controls.Add(this.linkConnectDoc);
- this.groupBox1.Controls.Add(this.comboProtocol);
- this.groupBox1.Controls.Add(this.lblProtocol);
- this.groupBox1.Location = new System.Drawing.Point(8, 6);
- this.groupBox1.Name = "groupBox1";
- this.groupBox1.Size = new System.Drawing.Size(383, 184);
- this.groupBox1.TabIndex = 20;
- this.groupBox1.TabStop = false;
- this.groupBox1.Text = "Settings";
- //
- // linkConnectDoc
- //
- this.linkConnectDoc.AutoSize = true;
- this.linkConnectDoc.Location = new System.Drawing.Point(330, 148);
- this.linkConnectDoc.Name = "linkConnectDoc";
- this.linkConnectDoc.Size = new System.Drawing.Size(35, 13);
- this.linkConnectDoc.TabIndex = 25;
- this.linkConnectDoc.TabStop = true;
- this.linkConnectDoc.Text = "Why?";
- this.linkConnectDoc.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkConnectDoc_LinkClicked);
- //
- // comboProtocol
- //
- this.comboProtocol.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
- this.comboProtocol.FormattingEnabled = true;
- this.comboProtocol.Location = new System.Drawing.Point(94, 145);
- this.comboProtocol.Name = "comboProtocol";
- this.comboProtocol.Size = new System.Drawing.Size(230, 21);
- this.comboProtocol.TabIndex = 24;
- this.comboProtocol.SelectedIndexChanged += new System.EventHandler(this.comboProtocol_SelectedIndexChanged);
- //
- // lblProtocol
- //
- this.lblProtocol.AutoSize = true;
- this.lblProtocol.Location = new System.Drawing.Point(13, 148);
- this.lblProtocol.Name = "lblProtocol";
- this.lblProtocol.Size = new System.Drawing.Size(67, 13);
- this.lblProtocol.TabIndex = 23;
- this.lblProtocol.Text = "Connect via:";
- //
- // tabFileRepository
- //
- this.tabFileRepository.Controls.Add(this.grp);
- this.tabFileRepository.Location = new System.Drawing.Point(4, 22);
- this.tabFileRepository.Name = "tabFileRepository";
- this.tabFileRepository.Padding = new System.Windows.Forms.Padding(3);
- this.tabFileRepository.Size = new System.Drawing.Size(408, 234);
- this.tabFileRepository.TabIndex = 1;
- this.tabFileRepository.Text = "File Repository";
- this.tabFileRepository.UseVisualStyleBackColor = true;
- //
- // grp
- //
- this.grp.Controls.Add(this.btnAttachmentsRepo);
- this.grp.Controls.Add(this.txtAttachmentsRepo);
- this.grp.Controls.Add(this.label5);
- this.grp.Controls.Add(this.btnPagesRepo);
- this.grp.Controls.Add(this.txtPagesRepo);
- this.grp.Controls.Add(this.label4);
- this.grp.Location = new System.Drawing.Point(8, 6);
- this.grp.Name = "grp";
- this.grp.Size = new System.Drawing.Size(383, 206);
- this.grp.TabIndex = 21;
- this.grp.TabStop = false;
- this.grp.Text = "Settings";
- //
- // btnAttachmentsRepo
- //
- this.btnAttachmentsRepo.Location = new System.Drawing.Point(308, 57);
- this.btnAttachmentsRepo.Name = "btnAttachmentsRepo";
- this.btnAttachmentsRepo.Size = new System.Drawing.Size(54, 23);
- this.btnAttachmentsRepo.TabIndex = 22;
- this.btnAttachmentsRepo.Text = "...";
- this.btnAttachmentsRepo.UseVisualStyleBackColor = true;
- this.btnAttachmentsRepo.Click += new System.EventHandler(this.btnAttachmentsRepo_Click);
- //
- // txtAttachmentsRepo
- //
- this.txtAttachmentsRepo.Location = new System.Drawing.Point(81, 59);
- this.txtAttachmentsRepo.Name = "txtAttachmentsRepo";
- this.txtAttachmentsRepo.Size = new System.Drawing.Size(221, 20);
- this.txtAttachmentsRepo.TabIndex = 21;
- this.txtAttachmentsRepo.Text = "C:\\Temp";
- this.txtAttachmentsRepo.TextChanged += new System.EventHandler(this.anyRepoSettingChanged_TextChanged);
- this.txtAttachmentsRepo.Leave += new System.EventHandler(this.txtAttachmentsRepo_Leave);
- //
- // label5
- //
- this.label5.AutoSize = true;
- this.label5.Location = new System.Drawing.Point(6, 62);
- this.label5.Name = "label5";
- this.label5.Size = new System.Drawing.Size(69, 13);
- this.label5.TabIndex = 20;
- this.label5.Text = "Attachments:";
- //
- // btnPagesRepo
- //
- this.btnPagesRepo.Location = new System.Drawing.Point(308, 21);
- this.btnPagesRepo.Name = "btnPagesRepo";
- this.btnPagesRepo.Size = new System.Drawing.Size(54, 23);
- this.btnPagesRepo.TabIndex = 19;
- this.btnPagesRepo.Text = "...";
- this.btnPagesRepo.UseVisualStyleBackColor = true;
- this.btnPagesRepo.Click += new System.EventHandler(this.btnPagesRepo_Click);
- //
- // txtPagesRepo
- //
- this.txtPagesRepo.Location = new System.Drawing.Point(81, 23);
- this.txtPagesRepo.Name = "txtPagesRepo";
- this.txtPagesRepo.Size = new System.Drawing.Size(221, 20);
- this.txtPagesRepo.TabIndex = 14;
- this.txtPagesRepo.Text = "C:\\Temp";
- this.txtPagesRepo.TextChanged += new System.EventHandler(this.anyRepoSettingChanged_TextChanged);
- this.txtPagesRepo.Leave += new System.EventHandler(this.txtPagesRepo_Leave);
- //
- // label4
- //
- this.label4.AutoSize = true;
- this.label4.Location = new System.Drawing.Point(6, 26);
- this.label4.Name = "label4";
- this.label4.Size = new System.Drawing.Size(40, 13);
- this.label4.TabIndex = 13;
- this.label4.Text = "Pages:";
- //
- // btnApply
- //
- this.btnApply.Location = new System.Drawing.Point(248, 266);
- this.btnApply.Name = "btnApply";
- this.btnApply.Size = new System.Drawing.Size(75, 23);
- this.btnApply.TabIndex = 16;
- this.btnApply.Text = "Apply";
- this.btnApply.UseVisualStyleBackColor = true;
- this.btnApply.Click += new System.EventHandler(this.btnApply_Click);
- //
- // btnOK
- //
- this.btnOK.Location = new System.Drawing.Point(167, 266);
- this.btnOK.Name = "btnOK";
- this.btnOK.Size = new System.Drawing.Size(75, 23);
- this.btnOK.TabIndex = 17;
- this.btnOK.Text = "OK";
- this.btnOK.UseVisualStyleBackColor = true;
- this.btnOK.Click += new System.EventHandler(this.btnOK_Click);
- //
- // btnCancel
- //
- this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
- this.btnCancel.Location = new System.Drawing.Point(329, 266);
- this.btnCancel.Name = "btnCancel";
- this.btnCancel.Size = new System.Drawing.Size(75, 23);
- this.btnCancel.TabIndex = 18;
- this.btnCancel.Text = "Cancel";
- this.btnCancel.UseVisualStyleBackColor = true;
- this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click);
- //
- // AddinSettingsForm
- //
- this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
- this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
- this.CancelButton = this.btnCancel;
- this.ClientSize = new System.Drawing.Size(416, 295);
- this.Controls.Add(this.btnCancel);
- this.Controls.Add(this.btnApply);
- this.Controls.Add(this.btnOK);
- this.Controls.Add(this.tabControl);
- this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
- this.Name = "AddinSettingsForm";
- this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
- this.Text = "XWord - Settings";
- this.Load += new System.EventHandler(this.ConnectionSettingsForm_Load);
- this.Shown += new System.EventHandler(this.AddinSettingsForm_Shown);
- this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.AddinSettingsForm_FormClosed);
- this.tabControl.ResumeLayout(false);
- this.tabConnection.ResumeLayout(false);
- this.tabConnection.PerformLayout();
- this.groupBox1.ResumeLayout(false);
- this.groupBox1.PerformLayout();
- this.tabFileRepository.ResumeLayout(false);
- this.grp.ResumeLayout(false);
- this.grp.PerformLayout();
- this.ResumeLayout(false);
-
- }
-
- #endregion
-
- private System.Windows.Forms.TabControl tabControl;
- private System.Windows.Forms.TabPage tabConnection;
- private System.Windows.Forms.TextBox txtServerURL;
- private System.Windows.Forms.Button btnApply;
- private System.Windows.Forms.CheckBox ckRememberMe;
- private System.Windows.Forms.TextBox txtPassword;
- private System.Windows.Forms.Label lblPassword;
- private System.Windows.Forms.TextBox txtUserName;
- private System.Windows.Forms.Label lblUserName;
- private System.Windows.Forms.Label lblServerUrl;
- private System.Windows.Forms.GroupBox groupBox1;
- private System.Windows.Forms.TabPage tabFileRepository;
- private System.Windows.Forms.Button btnOK;
- private System.Windows.Forms.Button btnCancel;
- private System.Windows.Forms.GroupBox grp;
- private System.Windows.Forms.Button btnPagesRepo;
- private System.Windows.Forms.TextBox txtPagesRepo;
- private System.Windows.Forms.Label label4;
- private System.Windows.Forms.Button btnAttachmentsRepo;
- private System.Windows.Forms.TextBox txtAttachmentsRepo;
- private System.Windows.Forms.Label label5;
- private System.Windows.Forms.LinkLabel linkConnectDoc;
- private System.Windows.Forms.ComboBox comboProtocol;
- private System.Windows.Forms.Label lblProtocol;
-
- }
-}
\ No newline at end of file
Index: xword/XWord/AddinSettingsForm.resx
===================================================================
--- xword/XWord/AddinSettingsForm.resx (revision 22817)
+++ xword/XWord/AddinSettingsForm.resx (working copy)
@@ -1,659 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- text/microsoft-resx
-
-
- 2.0
-
-
- System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
-
-
- AAABAAQAEBAAAAAAIABoBAAARgAAACAgAAAAACAAqBAAAK4EAAAwMAAAAAAgAKglAABWFQAAQEAAAAAA
- IAAoQgAA/joAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAAAAD//////v7+//Hx
- 8f/6+vr////////////+/v7/iYn+/3Nz/v/+/v7///////7+/v/8/Pz/8PDw//7+/v/+/v7//v7+/+Xl
- 5f9ZWFj/hIOD//n6+v/+/v7//v7+/3l5/v9iYv7//f7///7+/v/8/Pz/kpGR/1dVVf/W1tb//v7+//7+
- /v/u7u7/X15e/1JQUP+VlJT//f39//7+/v96ev7/YmL+//3+/v/+/v7/pqWl/1JQUP9aWFj/4uLi//7+
- /v///////v7+/9TU1P9YVlb/UlBQ/6yrq//+/v7/xMX+/7i5/v/+/v7/u7u7/1NRUf9VU1P/xsXF//7+
- /v/+/v7////////////+/v7/wcHB/1NRUf9TUlL/wcHB//7+/v/+/v7/z8/P/1dVVf9SUFD/srGx//7+
- /v///////////////////////v7+//7+/v+sq6v/UlBQ/1dVVf/U1NT/4ODg/11bW/9SUFD/nJub//39
- /f/////////////////+/v7//v7+///+/v/+/v7//f39/5WUlP9RT0//YV9f/2dlZf9SUFD/hoSF//v7
- +//+/v7//v7+//7+/v/+/v7/4bd+/92ubf/erm3/79m7//7+/v/6+fn/goCA/1JQUP9ST1D/dXR0//X1
- 9f/+/v7/u9r+/2qv/v9qr/7/erf+/+K4gf/er2//3q9w/+/ZvP/+/v7/+/v7/4iHh/9SUFD/UlBQ/3p5
- ef/39/f//v7+/8Dc/v9ys/7/crP+/4K7/v/+/v7//v7+//7+/v/+/v7//v7+/52cnP9RT0//XVtb/2Jh
- Yf9SUFD/jYyM//z8/P/+/v7//v7+//7+/v/+/v////////7+/v/+/////v7+/7S0tP9TUFD/VVNT/87O
- zv/a2tr/WlhY/1JQUP+jo6P//v7+//7+/v/////////////////+/v7//v7+/8jIyP9VU1P/U1FR/7m5
- uf/+/v7//v7+/8nIyP9VU1P/UlBQ/7m5uf/+/v7//v7+///////+/v7//v7+/9ra2v9bWVn/UlBQ/6Sj
- o//9/v7/w+3d/7jq1v/+/v7/tLOz/1JQUP9WVFT/zc3N//7+/v/+/v7///////Dw8P9jYmL/UlBQ/46M
- jP/8/Pz//v7+/3nYs/9i06b//v7+//7+/v+dnZ3/UlBQ/1xbW//m5eX//v7+///////j4+P/VlRU/3x7
- e//4+Pj//v////7+/v952LP/YtOm//7+/v/+/v7/+/v7/4qJif9UUlL/09LS//7+/v///////v7+/+rr
- 6//4+Pj//v7+//7+/v/+/v7/it28/3PXsP/+/v7//v7+//7+/v/6+vr/6Ojo//7+/v//////AAD//wAA
- //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAD//ygA
- AAAgAAAAQAAAAAEAIAAAAAAAgBAAAAAAAAAAAAAAAAAAAAAAAAD//////////////////////v7+//7+
- /v/+/v7//v7+//////////////////////////7//v7+//Ly/v8+P/3/JCT9/+Pj/v/9/v7/////////
- /////////////////////////v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+/////////////v7+//7+
- /v/v7+//2tra/+/v7//+/v7////////////////////////////+/v//4+P+/xAQ/f8BAf3/w8P+//39
- ///////////////////+/v7///////3+/v/19fX/29vb/+np6f/+/v7//v7+//7+/v/+/v7///////7+
- /v/+/v7/6erq/2xsbP9WVFT/a2pq/+Tk5P/+/v7//v7+//////////////////7+///j4/7/EBD9/wEB
- /f/ExP7//P3///////////////////7+/v/+/v7/8vLy/317e/9WVVX/YWBg/9TT0//+/v7//v7+////
- ///+/v7//v7+//7+/v+wrq//UE5O/1JQUP9SUFD/cG5u/+zt7f/9/v7//v7+/////////////v7+/+Pj
- /v8PEP3/AQH9/8TE/v/8/f/////////////+/v7//v7+//f39/+Hh4f/UlBQ/1JQUP9SUFD/iYiI//39
- /f////////////7+/v/+/v7//v7+/8LCwv9QT0//UU9P/1JQUP9ST1D/f35+//Dw8P/+/v7//v7+//7+
- /v/+/v7/4+P+/xAQ/f8BAf3/xMT+//z9///+/v7///////7+/v/5+fn/m5qa/1JQUP9RT0//UVBQ/1JP
- T/+fnZ3//v7+///////////////////////+/v7/+Pj4/4uKiv9RT0//UlBQ/1FPT/9SUFD/kpKS//n5
- +f///////v7+//3+/v/j4/7/EBD9/wEB/f/Dw/7//f3///7+/v///////Pz8/66urv9UUlL/Uk9P/1JQ
- UP9RT0//cnFx/+/u7v/+/v7//v7+//////////////////7+/v/+/v7/7+/v/3l4eP9SUFD/Uk9P/1JQ
- UP9SUVH/p6am//7+/v/+/v7//v7+//Dw/v8xMf3/GBn9/93e/v/9/v7//v////3+/v/ExMT/VlVV/1JQ
- UP9RT0//U1BQ/2RkZP/g4OD//v7+//7+/v/+/v7///////////////////////7+/v/+/v7/6urq/2xr
- a/9RUFD/UU9P/1FPT/9TUVH/ubi4//z8/P/+/v7//f7+//Pz/v/v7/7//f7+//7+/v/+/v7/1NTU/1lX
- V/9SUFD/UlBQ/1JQUP9eXFz/1NTU//7+/v/+/v7//v//////////////////////////////////////
- ///+/v7/3d3d/19eXv9SUFD/UlBQ/1FPT/9aWFj/ycnJ//3+/v/+/v7//v7+//7+/v/+/v7//v7+/+Dg
- 4P9nZmb/UlBQ/1FPT/9SUFD/VlRU/8XFxf/+/v7/////////////////////////////////////////
- /////////v7+///////+/v7/ysrK/1lXV/9SUFD/UU9P/1FPT/9iYWH/3Nzc//7+/v/+//7//v/+//7+
- /v/s6+v/dHJy/1JQUP9RT0//UlBQ/1NRUf+vr6///v7+////////////////////////////////////
- ///////////////////+/v7//v7+///////9/f3/ubm5/1VTU/9RUFD/UU9P/1JQUP9oZ2f/6+vr//7+
- /v/+/v7/9/f3/4B+fv9SUFD/UlBQ/1JQUP9SUFD/m5qa//n5+f/+/v7/////////////////////////
- ///////////////////////////////////+/v7///////7+/v/8/Pz/paWl/1JSUv9SUFD/UU9P/1FP
- T/94dnb/8PDw//n5+f+Tk5P/UU9P/1JQUP9RT0//UlBQ/4uKiv/29/f//v7+////////////////////
- ///////////////////+/v7////////////////////////////+/v7//v7+//7+/v/5+fn/kZGR/1FP
- T/9RT0//UU9P/1JQUP+Mior/o6Ki/1NRUf9SUFD/UlBQ/1FPT/95d3f/8fHx//7+/v//////////////
- ///////////////////////////////+/v///v3//v79///+/f///v3///79//7+/v/+/v7//v7+//7+
- /v/19fX/fHx8/1FPT/9RT0//UlBQ/1NQUP9UUVH/UlBQ/1JQUP9SUFD/ZmVl/+fn5//+/v7///7+////
- ///+/v7//f7+//3+/v/9/v7//f7+//3+/v/+/v7/+vTr//Tm0//15tL/9ObT//Tm0v/05tL/+fHm//7+
- /v/+/v7//v7+//7+/v/s6+v/cnBw/1FPT/9SUFD/UlBQ/1JQUP9ST1D/Uk9Q/2FfX//a2tr//v7+//7/
- ///9/v7//f7+/+Tw/v/O5f7/z+X+/8/l/v/P5f7/zuX+/+jz/v/RjTT/x3YI/8Z1B//Hdgj/x3YI/8d2
- B//LgR3/+vTq///+/v///////v7+//7+/v/f39//ZWNj/1JQUP9SUFD/UlBQ/1JQUP9ZV1f/ycnJ//7+
- /v/+/v7//v7+//7+/v/t9v7/HoT+/wZ5/v8Gef7/Bnn//wZ5//8Gef7/Kov+/9GON//Hdgn/x3YJ/8Z2
- Cf/Hdgn/x3YJ/8uCIP/69Ov//v7+//7+/v/+/v7//v7+/+jo6P9qaWn/UlBQ/1JQUP9SUFD/UU9P/1xa
- Wv/U09P//v7+///////+/////v7+/+/2/v8nif7/C3v+/wt6/v8Le/7/C3v+/wt7/v81kP7/+/Xt//Xo
- 1v/26Nb/9ejW//bo1v/26Nb/+fHn//7+/f///v///v7+//7+/v/z8/P/fHt7/1FPT/9RT0//UlBQ/1JQ
- UP9SUFD/UlBQ/2dmZv/j4+P//v7+//7+/v/+/v7//f7+/+r0/v/Z6/7/2uv+/9nr/v/Z6/7/2ev+/+72
- /v/+//7//v79//7+/f/9/v3//v79//7+/f/+/v7////+////////////+Pj4/4uKiv9RT0//UlBQ/1FP
- T/9SUFD/UlBQ/1JQUP9SUFD/UlBQ/3FwcP/v7+///v7+//7+/v/+/v7//f7///3+///9/v7//f7+//3+
- ///9/v///v7///////////////////7+/v///////v////7////+/v7//v7+//z8/P+gn5//UU9P/1JQ
- UP9RT0//UlBQ/399ff+TlJT/U1BQ/1JQUP9SUFD/UU9P/4SDg//29vb//v7+//7/////////////////
- /////////////////////////////////////////v7+//////////////////7+/v/9/f3/tbW1/1ZT
- U/9SUFD/UU9P/1JQUP9sbGz/6enp//b29v+EhIT/UlBQ/1FPT/9SUFD/UlBQ/5iXl//5+fn//v7+//7/
- //////////////////////////////////////////////////////////////7////+/////f39/8bF
- xf9YVlb/UlBQ/1FPT/9SUFD/YF9f/+Pj4//+/v7//v7+//Hx8f90cnL/UlBQ/1JQUP9SUFD/U1FR/6qq
- qv/7/Pz//v7+//7+/v/+/v7////////////////////////////////////////////+/v7//v7+//7+
- /v/W1dX/Xl1d/1FPT/9RUFD/Uk9P/11bW//Q0ND//v7+//7+/v///v///v7+/+Tk5P9raWn/UlBQ/1JQ
- UP9SUFD/VVNT/729vf/+/v7//v7+//7+/v/+/v7//////////////////////////////////v7+//7+
- /v/+/v7/6Ojo/2ZlZf9SUFD/UU9P/1JQUP9WVVX/vLy8//z9/f/+/v7//v7+///+///+/v7//v7+/9XV
- 1f9gXl7/UlBQ/1JQUP9SUFD/WVhY/9HR0f/+/v7//v7+////////////////////////////////////
- ///+/v7//v7+//Hx8f93dXX/UlBQ/1FPT/9SUFD/UlBQ/6mpqf/8/Pz//v7+//7+/v/x+vf/7vr1//7+
- /v/+/v7//f39/8jHx/9VU1P/UlBQ/1JQUP9SUFD/ZGNj/+Dg4P/+/v7//v7+//////////////////7+
- /v///////v7+//7+/v/z9PT/hoSE/1JQUP9SUFD/UlBQ/1JQUP+Xlpb//f39//7+/v/9/v7/7/r2/y/D
- h/8XvXv/3fXs//3+/v///////v7+/7W0tP9TUVH/UlBQ/1JQUP9ST1D/bWxs/+nq6v/+/v7/////////
- ///+/v7////////////+/v7/+vr6/5iXl/9SUFD/UlBQ/1FPT/9RT0//hYOD//T19f/+/v7//v7+//3+
- /v/j9u//ELp2/wG4b//D7t3//f7+///////+/v7/+/v7/6GgoP9SUVH/UU9P/1JQUP9RT0//fXx8//Pz
- 8//+/v7//v7+//7+/v////////////7+/v/Jycn/UlFR/1JQUP9SUFD/UlBQ/3Vzc//s6+v//v7+////
- /////////f7+/+P27/8Pu3b/ALhv/8Pu3f/9/v7////////////+/v7/9vb2/4yLi/9SUFD/UlBQ/1JQ
- UP9RT0//p6am//7+/v/+/v7//////////////////v7+/6ysrP9QT0//UlBQ/1JQUP9mZWX/5eXl//7+
- /v/+///////////////9/v7/4vbv/w+6dv8AuG//w+7d//3+/v/////////////////+/v7/8vLy/3t6
- ev9SUFD/UlBQ/1JQUP+GhYX//f7+//7+/v/////////////////+/v7/4+Li/2RiYv9TUVH/YWBg/9jY
- 2P/+/v7///////////////////////3+/v/j9u//ELt2/wC4b//D7t3//f7+///////+/v7//v7+////
- ///+/v7/7e3t/29ubv9TUVH/WlhY/8nJyf/+/v7///////////////////////7+/v/+/v7/5ufn/8jH
- x//l5eX//v7+/////////////////////////////f7+/+P37/8Qu3b/ALhw/8Pu3f/9/v7/////////
- ///+/v7//v7+///////+/v7/7u7u/8nJyf/d3d3//f39/////////////////////////////v7+//7+
- /v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7////////////9/v7/8/v4/0HIkv8mwYT/5Pfv//3+
- /v/+/v7//////////////////v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+////////////AAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAoAAAAMAAAAGAAAAABACAAAAAAAIAlAAAAAAAAAAAAAAAAAAAAAAAA///////////+/v7//v7+////
- ///+/v7///////7+/v/+/v7//v7+///////+/v7///////7+/v/////////////////+/v7//v7+////
- /v/+/v///f7+/8zN/v8hIf3/DQ39/6am/v/6+v7//v7+//7+/v////////////7+/v////////////7+
- /v////////////7+/v///////v7+//7+/v/////////////////////////////////+/v7//v7+////
- ///+/v7//v7+///////+/v7//f39//39/f/+/v7//f39//7+/v/+/v7//v7+////////////////////
- /////////v7+//7+/v/+/f7/+vv+/319/v8BAv3/AgL9/0lJ/v/q6v7//P3+//7+/v/+/v7///////7+
- /v///////////////////////v7+//7+/v/9/f3//v7+//7+/v/+/v7//v7+///////+/v7//v7+//7+
- /v/////////////////+/v7//v7+//7+/v/+/v7/8fHx/9HR0f/Hx8f/397e//z8/P/+/v7//v7+//7+
- /v/+/v7//v7+///////+/v7//v7+//7+/v/+/f7/+fn+/3Jy/v8BAf3/AQL8/z8//v/n5///+/z/////
- /////////v7+//7+/v///////v7+//7+/v///////v7+//3+/v/q6ur/y8vL/8rKyv/n5+f//f39//7+
- /v///////v7+//7+/v/////////////////+/v7//v7+//7+/v/x8vL/ioyL/1xaWv9WVVX/aWdn/8LC
- wv/7+/v//v7+//7+/v////////////7+/v////////////7+/v/+/f//+fn+/3Fx/f8CAf3/AQL9/z8/
- /v/n5///+/z///7+/v///////////////////////v7+//7+/v/+/v7//f39/97e3v96eXn/WVdX/1hX
- V/9xcnL/3Nvb//7+/v/+/v7//v7+//7+/v///////v7+///////+/v7//v7+//39/f+oqKj/TEtL/1JR
- Uf9TUVH/UVBQ/1taWv/Hxsb//f39//3+/v/+/v7//v7+///////+/v7//v7+//7+/v/+/f7/+fn+/3Bx
- /f8BAf3/AQL9/z8//v/n5///+/z//////////////v7+/////////////v7+//7+/v/9/f3/4ODg/3Fw
- cP9RUFD/U1FR/1JRUf9QTk7/fn19//Ly8v/8/v7//v7+//////////////////7+/v////////////r6
- +v+Gg4T/UE5O/1JQUP9SUFD/Uk9Q/1FPT/9qaWn/2NjY//z9/f/9/v7//v7+//7+/v/+/v7//v7+//7+
- /v/+/f7/+vr+/3Fy/f8BAf3/AQL9/z8//v/n5///+/z+//7+/v/////////////////+/v7//v7+//39
- /f/v7+//h4aG/1FPT/9SUFD/UlBQ/1JQUP9SUFD/Z2Vl/97e3v/8/f3///////7+/v////////////7+
- /v////////////39/f+Uk5P/T01N/1FPT/9SUFD/UlBQ/1FQUP9ST0//b25u/+Df3//9/f3//v7+//7+
- /v/+/v7//v7+//7+/v/+/f7/+vn+/3Jy/v8CAf3/AgL9/z8//v/n5///+vz/////////////////////
- ///+/v7//v39//Pz8/+RkZH/UlBQ/1FQUP9RT0//UlBQ/1JQUP9ST1D/cm9v/+jo6P/9/f3/////////
- //////////////7+/v///////v7+//7+/v/W1tb/XFtb/1JQUP9SUFD/UlBQ/1JQUP9SUFD/UU9P/4SD
- g//r6+v//v7+//7+/v/+/v7//v7+//7+/v/+/f7/+vn+/3Jy/v8BAf3/AQL9/z4//v/n5/7/+/z+//7+
- /v/+/v7///////7+/v/+/v7/+fn5/6enp/9VUlP/Uk9P/1FPT/9RT0//UE9P/1JQUP9TUVH/r66u//v7
- +//+/v7//v7+///////+/v7////////////+/v7//v7+//7+/v/8/Pz/vLy8/1xbW/9SUFD/UlBQ/1JQ
- UP9RT0//UlBQ/1NRUf+NjY3/8vPz//7+/v///////v7+//7+/v/9/f7/+fn+/3Fx/v8CAf3/AgL9/z4+
- /v/m5v7//Pz+///+///+/v7//v7+//7+/v/6+vr/srKy/1hWVv9SUFD/UlBQ/1JQUP9ST0//UlBQ/1RS
- Uv+WlZX/+Pj4//7+/v/+/v7//v7+/////////////////////////////v7+//7+/v/+/v7/+Pj4/62s
- rP9UUlL/U1FR/1JPT/9ST0//Uk9Q/1JQUP9TUVH/pKOj//n5+f/+/v7//v7+//7+/v/+/v7//Pz9/4+O
- /v8FBv7/AgL9/11d/f/v7/7//P3+//7+/v/+/////f7+//v7+//Hx8f/XVxc/1JQUP9SUFD/UU9P/1JQ
- UP9SUFD/UE9P/4iIiP/t7e3//v7+//7+/v/+/v7//v7+///////+/v7///////7+/v/+/v7///////7+
- /v/+/v7//f39//f39/+ampr/VFJS/1NPUP9RT0//UlBQ/1JQUP9SUFD/WFZW/7Curv/6+vr//f7+//7+
- /v/+/v7//f7+/+zt/v95ev3/aGn9/9jY/v/9/v7//v7+//7+/v/+/v7//P39/9LS0v9nZmb/UU9P/1JQ
- UP9SUFD/UVBQ/1JQUP9TUFD/dnV1/+fo6P/9/f3//v7+///////9/v7//v7+//7+/v/+/v7/////////
- //////////////7+/v/+/v7//v7+//7+/v/w8PD/jIuL/1BPT/9RT0//UlBQ/1FPT/9RT0//UlBQ/1ta
- Wv/Ew8P/+/v7//7+/v/+/////f7+//3+/v/5+f7/9/f+//3+/v/9/v7//v7+//7+/v/+/v7/4uLi/29u
- bv9SUFD/UlBQ/1FPT/9SUFD/UlBQ/1FPT/9ubW3/2NjY//39/f/+/v7//v7+///////+/v7///////7+
- /v/+/v7///////////////////////7+/v/+/v7//v7+//7+/v/+/v7/6enp/3l4eP9SUFD/UlBQ/1JQ
- UP9SUFD/UU9P/1FPT/9mZGT/z8/P//z9/f/9/v7//v7+//7+///+/f7//v3+//7////+/////v7+//7+
- /v/r6+v/gYCA/1BPT/9RT0//UU9P/1JQUP9SUFD/UlBQ/2BeXv/Pz8///v7+//7+/v////////////7+
- /v////////////7+/v///////v7+///////+/v7///////7+/v///////v7+//7+/v/+/v7//Pz8/9zc
- 3P9xcHD/UU9P/1JQUP9SUFD/UU9P/1FPT/9RT0//a2pq/+Hh4f/+/v7//v7+//7+/v/+/v7//v79//7+
- /v/+/v7//f39//Hx8f+Lior/U1FR/1JQUP9RT0//UU9P/1JQUP9SUFD/XVxc/8HAwP/8/Pz//v7+//7+
- /v/+/v7///////////////////////////////////////7+/v/+/v7//////////////////v7+//7+
- /v/+/v7//v7+//39/f/Q0ND/YmBg/1JQUP9SUFD/UU9P/1FPT/9SUFD/UE5O/35+fv/p6en//v7+//7+
- /v/+/v7//v7+///////+/v7/9/b2/6Khof9RT0//UlBQ/1FPT/9SUFD/UlBQ/1JQUP9UUlL/ra2t//v7
- +//+/v7////////////+/v7//v7+//////////////////////////////////////////////////7+
- /v/+/v7//v7+//7+/v///////v7+//7+/v/8/Pz/xcXF/15dXf9SUFD/UVBQ/1FPT/9RT0//UlBQ/1JR
- Uf+FhYX/8fHx//7+/v/+/v7//v7+//7+/v/6+vr/q6mp/1hWVv9SUVH/UVBQ/1FPT/9SUFD/UlBQ/1VT
- U/+fnp7/9PT0//7+/v/+/v7//v7+///////+/v7/////////////////////////////////////////
- /////////v7+//////////////////7+/v/+/v7////////////+/v7//Pz8/6+vr/9UU1P/UVBQ/1FQ
- UP9SUFD/UU9P/1JQUP9QT0//oJ+f//X19f/9/f3//v7+//39/f/Hx8f/V1VV/1JQUP9RUFD/UlBQ/1JQ
- UP9SUFD/UE5O/4qJif/x8fH//f39//7+/v///////////////////////////////////////v7+//7+
- /v/+/v7///////7+/v/+/v7//v7+///////+/v7///////7+/v/+/v7////////////+/v7//v7+//X1
- 9f+jo6P/VFNT/1JQUP9RT0//UU9P/1FPT/9SUFD/V1VV/6alpf/6+vr//f39/8rKyv9kY2P/UlBQ/1JQ
- UP9SUFD/UU9P/1FPT/9SUFD/goGB/+rq6v/9/v7//v7+///////+/v7//v7+/////////////v7+////
- ///+/v7//v7+/////////////v7+/////////////////////////////v7+//7+/v///////v7+//7+
- /v///////v7+//39/f/z8/P/jIuL/1BPT/9SUFD/UU9P/1FPT/9SUFD/UlBQ/1ZUVP/Hxsb/5OTk/2hm
- Zv9QT0//UlBQ/1FQUP9SUFD/UlBQ/1JPT/9ta2v/4eHh//7+/v/+/v7//////////////////v7+//7+
- /v////////////////////////////7+/v///////v7+/////////////////////////////v7+////
- ///+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7/7Ozs/4SEhP9SUFD/UlBQ/1JQUP9RT0//UlBQ/1JQ
- UP9eXFz/amho/1BOTv9SUFD/UlBQ/1JQUP9SUFD/UU9P/2hnZ//U1NT//f39//7+/v//////////////
- /////////v7+/////////////v7+/////////////v7+//7+/v/+/v7////+///+/f/+/f3//v38///+
- /f///f3//v39///9/f///f3//v79/////v/+/v7//v7+//7+/v/+/v7//v7+/+Pj4/9sbGz/UU9P/1JQ
- UP9SUFD/UlBQ/1JQUP9ST0//UU9P/1JQUP9ST0//UU9P/1JQUP9SUFD/WFdX/8PDw//7+/v//f7+///+
- /v/+/v7////////////9/v7//P3+//z9/v/7/f7//P3+//z9/v/8/f7//P7+//3+/v/+/v7//v38//z4
- 8//79u///Pbw//v28P/79vD/+/bw//v28P/79u///fr2//7+/v/+//7//v7+//7+/v///////v7+//39
- /f/Z2Nj/a2pq/1JQUP9SUFD/UlBQ/1FPT/9SUFD/UlBQ/1JQUP9ST0//Uk9P/1JQUP9aWFj/tra2//39
- /f/+/v7//v7+//3+/v/+/v7//v7+//3//f/1+f7/7fX+/+31/v/u9v7/7fX+/+31/v/t9f7/7fX+//D3
- /v/8/f7/79q8/9ypYv/YoVb/2aFW/9iiVv/Yolb/2KJW/9iiVv/YolX/3rBu//fr3P/+//7//v7+////
- ///+/v7//v7+//7+/v/7+/v/yMjI/1lYWP9RT0//UU9P/1FPT/9SUFD/UlBQ/1FQUP9RUFD/UlBQ/1FP
- T/+hoaH/9vb2//7+/v////////////7+/v/+/////f///9zs/v9qr/7/UKH+/0+i/v9Qov//UaH+/1Cg
- //9Qof7/UKD//1im/v+w1f7/y38b/8VxAv/GcgH/xXEB/8VyAf/FcgL/xnIC/8ZyAv/FcgL/xHEC/9un
- Yf/8+fT//v7+///+/////////v7+//7+/v/+/v7//f39/7i4uP9ZV1f/UlBQ/1JQUP9RT0//UU9P/1JQ
- UP9ST0//UU9P/5GRkf/6+vr//v7+//7+/v/+/v7//v7+//7+/v/+/f7/9fr9/2et/v8Ddf7/AXf+/wF1
- /v8Cdv7/AXb+/wF2//8Bdv7/AXb+/wJ2/v8Sff7/y4Ae/8VxAv/FcgH/xHEB/8RxAf/EcQH/xXEB/8Vx
- Av/FcgL/xHED/9ynY//8+fT//v7+///+///+/v7//v7+//7+/v/+/v7//v7+/8nJyf9cW1v/UlBQ/1JP
- T/9ST0//Uk9P/1FPT/9RT0//UlBQ/6GgoP/9/f3//v7+//////////////////7+///9/f7/9/r+/2+w
- /v8FdP7/AXX+/wF0/v8Cdf7/AXX+/wF1/v8Bdf7/AXX+/wN0/v8ZgP7/8dzB/92rZ//apVz/26Rb/9ql
- Wv/apFv/2qVb/9qkXP/apFv/37Fz//bs3f/+/v7///7///7+/v/+/v7//v7+//7+/v/9/f3/2NjY/2Bf
- X/9QTk7/UU9P/1JQUP9RT0//UlBQ/1JQUP9SUFD/UlBQ/1NRUf+0tLT/+Pj4//7+/v////////////7+
- /v/+/v7//v7+/+Tw/v99uf7/Yqv+/2Gq/v9iqv7/Yar+/2Gq/f9hqv7/Yar+/22x/v/A3v7//v38//z5
- 9P/79/L//Pfx//z48v/8+PL//Pjy//z48v/89/H//Pv3//79/f/+/v7//v7+//7+/v/+/v///v7+//7+
- /v/m5ub/eHd3/1FPT/9SUFD/UU9P/1FPT/9SUFD/UU9P/1JQUP9SUFD/UlBQ/1FPT/9gX1//x8fH//39
- /f/+/v7//v7+//7+/v/+/v7//f7+//3+/v/5+/7/9Pn+//T5/v/0+f7/9Pn+//T5///0+f7/9Pn+//b7
- /v/8/v7//v/+//7+/f/9/v3//f79//3+/P/9/vz//f79//3+/f/+/v3//v79//7+/v/+/v7/////////
- /////////v7+/+7u7v98e3v/UU9P/1JQUP9SUFD/UU9P/1JQUP9RT0//UU9P/1JQUP9SUFD/UlBQ/1JQ
- UP9SUFD/YV9f/9XV1f/9/f3//v7+//7+/v/+/v7//v7+//7+///9/v///P7///39/v/8/f7//f7+//3+
- ///9/v7//f7+//3+/v/+/v///v7+//7+/v/+/v7///////////////////////7+/v/+/v7//v//////
- ///+/v7//v7+//7+/v/+/v7/8fHx/5eWlv9TUVH/UlBQ/1JQUP9SUFD/UlBQ/1JQUP9XVlb/XFtb/1BP
- T/9SUFD/UlBQ/1JQUP9SUFD/UlBQ/3Z0dP/j4uL//v7+//7+/v/+/v7//v////7+/v/+/////v////7+
- /v/+/v7////////////+/v7////////////////////////////////////////////+/v7//v7+////
- ///+/v7//v7+//7+/v/+/v7//v7+//7+/v/5+fn/np2d/1JQUP9SUFD/UlBQ/1FPT/9RT0//UlBQ/1FQ
- UP+ysbH/1NXV/11bW/9ST1D/UU9P/1JQUP9RT0//UlBQ/1BOTv97eXn/7Ozs//7+/v///////v7+//7+
- /v/+/v7//v7+/////////////v7+//7+/v///////v7+//7+/v/+/v7///////////////////////7+
- /v/+/v7///////////////////////7+/v/+/v7//v7+//n6+v+4uLj/WldX/1JQUP9SUFD/UU9P/1FP
- T/9SUFD/U1FR/5KSkv/29vb//f39/7m4uP9cWlr/UlBQ/1FPT/9SUFD/UU9P/1JQUP9TUVH/kpGR//Dw
- 8P/+/v7//v7+//7+/v/+//////////7+/v////////////7+/v/+/v7//v7+///////+/v7/////////
- //////////////////////////////7////+/v7//v////7+/v/+/v7//v7+/8LCwv9bWVn/UlBQ/1FP
- T/9SUFD/UlBQ/1JQUP9PTk7/jIyM/+/v7//+/v7//v7+//r6+v+zs7P/U1FR/1JQUP9SUFD/UlBQ/1JQ
- UP9SUFD/UU9P/5ubm//39/f//v7+///////+//////////7+/v/+/v7////////////+/v7///////7+
- /v///////v7+//7+/v////////////7+/v/+/v7///////7+/v/+/////v////7+/v/8/Pz/09PT/2Zl
- Zf9RT0//UlBQ/1FPT/9RT0//UlBQ/1NPUP91c3P/6+vr//7+/v/+/v7//v7+//39/f/29vb/mZeX/1VT
- U/9SUFD/UlBQ/1JQUP9SUFD/UlBQ/1hXV/+ysrL/+fn5//7+/v/+/v7///////7+/v/+/v7///////7+
- /v///////v7+//7+/v/+/v7//////////////////v7+//////////////////7+/v///////v7+//39
- /f/d3d3/bm1t/1JQUP9SUFD/Uk9P/1JPUP9RT0//UU9P/3Fvb//c3Nz//f39//3+/v/+/v7//v7+//7+
- /v/+/v7/8PDw/5CPj/9QTk7/UlBQ/1JQUP9SUFD/UlBQ/1JQUP9ZV1f/v8DA//7+/v/+/v7///////7+
- /v/+/v7//v7+//7+/v///////v7+//////////////////7+/v/+/v7///////7+/v/+/v7//v7+//7+
- /v/+/v7//f39/+np6f9+fX3/UlBQ/1JQUP9RT0//UVBQ/1FPT/9RUFD/YF5e/9PS0v/8/Pz//v7+//7+
- /v/+/v7///7///7+/v/+/v7//f39/+vs7P95eHj/UlBQ/1JQUP9RT0//UU9P/1JQUP9RT0//ZWNj/8/P
- z//8/Pz//v7+//7+/v/+/v7//v7+//7+/v///////v7+//////////////////////////////////7+
- /v/+/v7//v7+//7+/v/+/v7/8vHx/4yKiv9RUFD/UlBQ/1FPT/9SUFD/UlBQ/1JQUP9cW1v/vr6+//z8
- /P/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//3+/v/f39//cXFx/1FPT/9SUFD/UlBQ/1JQ
- UP9SUFD/UU9P/2tqav/c3Nz//f39//7+/v/+/v7//v7+//7+/v///////v7+//7+/v/+/v7/////////
- ///////////////////+/v7//v7+//7+/v/39/f/np2d/1JQUP9SUFD/UU9P/1FPT/9SUFD/UlBQ/1RU
- VP+ysrL/+fn5//7+/v/+/////f7+//7+/v/4/Pv/9vz6//3+/f/+/v7///////7+/v/8/Pz/1tbW/2Ri
- Yv9SUFD/UlBQ/1FPT/9SUFD/UlBQ/1FPT/97e3v/5eXl//7+/v/+/v7///////////////////////7+
- /v/+/v7///////7+/v///////v7+/////////////v7+//n5+f+trKz/V1VV/1JQUP9SUFD/UlBQ/1JQ
- UP9SUFD/U1JS/5ycnP/4+fn//v7+//7+/v/9/v7//f7+/+z49P9017H/ZdOn/9bz6P/+/v7//v//////
- ///+/v7/+/v7/8LBwf9eXFz/UlBQ/1JQUP9RUFD/UlBQ/1JQUP9SUFD/hoaG//Hx8f/9/v7//v7+//7+
- /v/+/v7///////7+/v///////v7+//7+/v///////v7+//7+/v/+/v7/+vr6/7+/v/9ZV1f/UlBQ/1JQ
- UP9ST0//Uk9P/1JQUP9RUFD/kZGR//Ly8v/+/v7//v7+//7+/v/9/v7//P79/47ev/8Et23/Ardv/1zP
- of/v+vb//P39//7+/v///////v7+//r6+v+1tbX/VlRU/1FPT/9SUFD/UU9P/1JQUP9SUFD/UU9P/5mZ
- mf/19vb//v7+//7+/v///////v7+//7+/v/+/v7//v7+/////////////v7+//7+/v/8/f3/zczM/2Ri
- Yv9SUFD/UlBQ/1FPT/9RT0//UlBQ/1FPT/98e3v/6erq//7+/v/+/v7//v7+//7+/v/8/f3/+f37/3LX
- r/8Btm3/Arhx/z7IkP/m9/D//P39/////////////v7+//7+/v/4+Pj/oaCg/1RSUv9SUFD/UlBQ/1JQ
- UP9SUFD/UlBQ/1dVVf+oqKj/+vr6//7+/v////////////7+/v/+/v7////////////+/v7//v7+//7+
- /v/g4eH/Z2Zm/1JQUP9SUFD/UlBQ/1JQUP9SUFD/UU9P/3Vzc//h4OD//P39//7+/v///////v7+//7+
- /v/9/v7/+fz8/3HWr/8Btm3/Abhw/z7IkP/n+PH//P39///////+/v7///////7+/v/+/v7/9fX1/5WV
- lf9RT0//UU9P/1JQUP9SUFD/UlBQ/1JQUP9XVFT/wL+///39/f/+/v7//v7+//7+/v/+/v7/////////
- /////////v7+//39/f+dnZ3/Tk1N/1JQUP9SUFD/UlBQ/1JQUP9SUFD/Y2Fh/9TU1P/+/v7//v7+//7+
- /v/+/v7//v7+///////9/v7/+f38/3HWr/8Ct23/Ablx/z7JkP/n+PH//P39//7+/v/+/v7//v7+//7+
- /v/+/v7//f39/+rq6v9+fn7/UlBQ/1JQUP9SUFD/UlBQ/1FPT/9RT0//d3V1/+3t7f/9/v7//v7+//7+
- /v///////v7+/////////////v7+//r6+v+CgoL/T05O/1JQUP9SUFD/UlBQ/1JPUP9hX1//ysrK//39
- /f/+/v7//v7+//7+/v///////v7+//7+/v/9/v7/+P38/3HWr/8Btmz/ALhx/z7Ikf/n+PH//P39//7+
- /v///////v7+//7+/v///////v7+//39/f/k5OT/d3Z2/1FPT/9SUFD/UlBQ/1FPT/9SUFD/ZmVl/93d
- 3f/8/f3//v7+//7+/v///////////////////////v7+//39/f+dnZ3/TkxM/1NRUf9SUFD/U1FR/1RU
- VP+ysrL//Pz8//7+/v///////v7+///////+/v7////////////9/v7/+f38/3DXr/8Btmz/ALlx/z7I
- kf/n+PH//P39//7+/v/+/v7//v7+///////+/v7///////7+/v/9/f3/1dTU/2VkZP9SUFD/UlBQ/1NQ
- UP9RT0//dXV1/+3t7f/9/f3//v7+/////////////////////////////v7+//7+/v/p6en/eXd3/1ZU
- VP9TUVH/XVxc/6ytrf/39/f//v7+//7+/v///////v7+///////+/v7////////////9/v7/+f37/3LX
- r/8Btm3/ALhx/z7IkP/n+PH//P39/////////////v7+//7+/v/+/v7//v7+//7+/v/+/v7//f39/9DQ
- 0P9paGj/VFJS/1RSUv9jYmL/zMzM//39/f/+/v7//v7+///////+/v7//v7+/////////////v7+//7+
- /v/+/v7/5+fn/7m6uv+rq6v/zc3N//f39//+/v7///////7+/v/////////////////+/v7///////7+
- /v/9/v7/+f37/3HXr/8Bt2z/ALhx/z7IkP/m+PH//P39//////////////////7+/v/+/v7//v7+//7+
- /v///////v7+//39/f/c3Nz/srGx/7GwsP/Y2Nj//Pz8//7+/v/+/v7//v7+//7+/v/+/v7/////////
- /////////v7+//7+/v/+/v7//v7+//39/f/9/f3//f39//7+/v/+/v7/////////////////////////
- //////////////7+/v/9/v7/+/78/37atf8Ctm3/Abhw/0rLmf/q+PP//P39////////////////////
- ///+/v7//v7+//7+/v/+/v7//v7+//7+/v/9/f3//f39//39/f/9/f3//v7+//7+/v/+/v7//v7+////
- ///+/v7///////7+/v/+/v7//v7+//7+/v/+/v7///////7+/v/+/v7//v7+//////////////////7+
- /v/+/v7//v7+//////////////////7+/v/9/v7//v7+/8/x5P8kv4H/ELp4/6nmzv/6/fz//f7+//7+
- /v////////////////////////////7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7///////7+
- /v/+/v7/////////////////AAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAD//wAA
- AAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA
- //8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAD//wAA
- AAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA
- //8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAD//wAA
- AAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//AAAAAAAA
- //8AAAAAAAD//wAAAAAAAP//AAAAAAAA//8AAAAAAAD//wAAAAAAAP//KAAAAEAAAACAAAAAAQAgAAAA
- AAAAQgAAAAAAAAAAAAAAAAAAAAAAAP////////////////////////////////////////////////7+
- /v/+/v7//v7+//7+/v//////////////////////////////////////////////////////////////
- //////7////+//7+///9/v7/9fX+/6Gh/v8iIv3/DQ38/3Jy/v/o6P7//f39//7+/v/+/v7/////////
- ///////////////////////////////////////////////////////////////////+/v7//v7+//7+
- /v//////////////////////////////////////////////////////////////////////////////
- //////////////7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v//////////////////////////////
- ///////////////////////////////////+/f///P3+/9nZ//80Nf7/AQL9/wEC/f8QEP7/rKz+//v7
- /v/7/P7//v7+//////////////////////////////////////////////////////////////////7+
- /v/+/v7//v7+//7+/v/+/v7//v7+//7+/v///////v7+//7+/v///////v7+//7+/v//////////////
- //////////////7+/v/+/v7///////7+/v/+/v7//Pz8//v8/P/8/Pz//f39//7+/v/+/v7/////////
- /////////////////////////////////////////////////////////v3///39///Jyf7/Hx/+/wEB
- /f8CAvz/AAD9/46N/v/5+f7/+/z/////////////////////////////////////////////////////
- //////////////7+/v/+/v7//f39//z8/P/7+/v//f39//7+/v/+/v7///////7+/v/+/v7///////7+
- /v/+/v7////////////////////////////+/v7//v7+//7+/v/+/v7/8/Pz/9DQ0P+4uLj/ubi4/87N
- zf/08/P//v7+//7+/v////////////////////////////////////////////////////////////79
- ///9/f7/yMj+/x8f/v8BAf3/AgL8/wAA/f+Pj/7/+fn///r7////////////////////////////////
- /////////v7+//7+/v/////////////////7/f3/+/v7/97e3v++vr7/tra2/8LDw//n5+f//Pz8//7+
- /v////////////7+/v/+/v7////////////////////////////+/v7//v7+//7+/v/+/v7/8/Pz/6Sm
- pf9qaWn/W1pa/1pZWf9oZmb/oJ+f//Pz8//+/v7//v7+////////////////////////////////////
- ///////////////////+/f///f3+/8nJ/f8fH/3/AgH9/wIC/f8AAP3/j4/+//n5///6+///////////
- //////////////////////////////7+/v/+/v7////////////+/v7//Pz8/8XExP94d3f/Xl1d/1pZ
- Wf9fX1//hYWF/9va2v/+/v7//v7+//7////+/v7//v7+/////////////////////////////v7+//7+
- /v/9/f3//v7+/7W3t/9UVFT/UE5O/1FPT/9QT0//UE5O/1RSUv+lpaX/+/v7//7+/v/9/f3//v7+////
- /////////////////////////////////////////v3///39/v/IyP3/HR79/wIB/f8CAv3/AAD+/4+P
- /v/5+f//+vv////////////////////////////////////////////////////////+/v7//v7+/9DR
- 0f9mZGT/UE9P/1FPT/9QT0//UE9P/1BOTv9/fn7/9/f3//7+/v/9////////////////////////////
- /////////////////////////v7+//z8/P9ycHD/TkxM/1JQUP9SUFD/UlBQ/1FQUP9SUVH/WFdX/7i3
- t//+/v7//f7+//7+/v////////////////////////////////////////////79///9/f7/yMj9/x4e
- /f8BAf3/AgL8/wAA/f+Pj/7/+fn///r7/////////////////////////////////////////v7+//7+
- /v/9/f3//f39/+Hh4f9xb2//UE5O/1JQUP9SUFD/UlBQ/1JQUP9SUFD/U1JS/8/Pz//9/v7//P39////
- /////////////////////////v7+//7+/v/////////////////y8vL/Xlpb/09NTf9RT0//UU9P/1JQ
- UP9TT1D/U1BQ/1JQUP9eXFz/vb29//n6+v/8/v7//f7+//7+/v/+/v7/////////////////////////
- /v/+/f7//f3+/8nJ/v8dHv3/AQH9/wIC/f8AAP3/j4/+//n5///6+///////////////////////////
- /////////v7+//7+/v/+/v7//f39/+Xl5f98fHz/UE5O/1NRUf9SUFD/UlBQ/1JQUP9SUFD/UlBQ/09N
- Tf+zs7P//v7+//z9/f////////////////////////////7+/v/+/v7/////////////////+vr6/2tp
- af9PTU3/UlBQ/1FPT/9SUFD/UlBQ/1JQUP9RUFD/UU9P/2pqav/IyMj/+Pj4//39/f/+/v7//v7+////
- ///+/v7//v7+//7//v////7//v3+//39/v/Jyf7/Hx/+/wIB/f8CAv3/AAD+/4+P/v/5+f//+fv/////
- //////////////////////////////7+/v/+/f3//v39/+jo6P+NjY3/U1FR/1JQUP9RT0//UlBQ/1JQ
- UP9SUFD/UlBQ/1JQUP9VUFH/xsbG//7+/v/9/f3/////////////////////////////////////////
- /////////v7+//7+/v+lpaX/UE9P/1FPT/9SUFD/UlBQ/1JQUP9SUFD/UlBQ/1NQUP9RUFD/eXh4/9PT
- 0//6+vr//v39///+/v///////v7+//7+/v/+//7////+//79/v/9/f7/ycn+/x8f/v8BAf3/AgL9/wAA
- /v+Pj/7/+fn///n7/////////v7+//7+/v////////////7+/v/+/v7//f39/+3t7f+dnZ3/WVZX/1JQ
- UP9RT0//UE9P/1JQUP9RT0//UU9P/1NQUP9PTU3/cm9v/+/v7//+/v7//v7+////////////////////
- //////////////////////////////7+/v/+/v7/6Ojo/4aFhf9RUFD/UlBQ/1JQUP9SUFD/UlBQ/1JQ
- UP9SUFD/UVBQ/1NRUf+GhYX/3t7e//38/P/+/v7//////////////////v7+//7+/v/9/f7//f3+/8nJ
- /v8eH/7/AQH9/wIC/f8AAP7/jo/+//n5/v/7+/////7///7+/v/+/v7////////////+/v7//f39//Ly
- 8v+rq6v/Xlxc/1JPT/9ST0//UU9P/1JQUP9SUFD/UU9P/1JQUP9QTk7/ZWNj/8XExP/+/v7//v7+//7+
- /v/+/v7//////////////////////////////////////////////////v7+//z8/P/Y2Nj/fHt7/1BO
- Tv9SUFD/UlBQ/1JQUP9RT0//UU9P/1JQUP9SUFD/VFNT/5GQkP/r7Oz//v7+/////////////v7+//7+
- /v/+/v7//f3+//39/v/JyP3/Hh/+/wEB/f8CAv3/AAD+/42N/v/5+f7/+/v////+////////////////
- /////////f39//f39/+4uLj/YmJi/1BOTv9SUFD/UlBQ/1JQUP9SUFD/UlBQ/1JQUP9QTk7/X11d/7W1
- tf/4+Pj//v7+//7+/v/+/v7//v7+/////////////////////////////////////////////v7+//7+
- /v/+/v7/+vr6/8zMzP9xb2//UE5O/1NRUf9SUFD/UU9P/1JPT/9ST1D/UlBQ/1FPT/9VU1P/nJub//r6
- +v/+/v7//v7+//7+/v/+/v7///////79/v/9/f3/1tb+/ysq/v8CAv7/AgL9/wkJ/f+iof7/+fr+//v8
- /v///v////////7////9/////P39//z8/P/Jycn/Z2Zm/1FPT/9SUFD/UlBQ/1FPT/9RT0//UlBQ/1JQ
- UP9RT0//WFhY/6moqP/y8fH//v7+//7+/v/+/v7//v7+//7+/v//////////////////////////////
- //////////////7+/v/+/v7//v7+//39/f/5+fn/wMDA/2RjY/9RT0//UlBQ/1JOT/9ST1D/UlBQ/1JQ
- UP9SUFD/UlBQ/1RSUv+ysbH//v7+//39/f////////////7+/v/9/v7//P39//Dw/v+Fhv3/ERL8/wED
- /P9UVP3/39/+//v9/v/+/v7////////////9////+/39//3+/v/g4OD/ampq/09NTf9SUFD/UlBQ/1JQ
- UP9QUFD/UVBQ/1NQUf9UUFD/U1JS/5aXl//r7Oz//f39//7+/v/+/v7//v7+//3/////////////////
- //////////////////////////////////////////////7+/v/+/v7//v7+//v7+/+3t7f/Xl1d/1NP
- UP9SUFD/UE9P/1JQUP9RT0//UU9P/1JQUP9SUFD/VlRU/727u//6+vr//P39//7+/v/+/v7//v7+//7+
- /v/9/f7/9/f+/9na/f/R0f7/8fH+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//3+/v/l5eX/dHNz/01L
- S/9SUFD/UU9P/1JQUP9SUFD/UlBQ/1JQUP9SUFD/VFJS/4yLi//o6Oj//Pz8//39/f/+/v7///////7/
- ///9//////////////////////////////////////////////////////////////////////////7+
- /v/+/v7/+Pj4/6mpqf9XV1f/UlBQ/1FPT/9SUFD/UU9P/1FPT/9SUFD/UlBQ/1BQUP9mZGT/xsbG//n5
- +f/9/v7//f7+//7////9/v7//P7+//7+/v/+/v7//v7+//3+/v/8/v7//f7+/////////v7//v7+//7+
- /v/o6Oj/h4eH/09NTf9TUVH/UlBQ/1JQUP9SUFD/UlBQ/1JQUP9TUVH/U1FR/4B+fv/e3t7//v7+//7+
- /v//////////////////////////////////////////////////////////////////////////////
- /////////////////////////v7+//7+/v/z8/P/mpqa/1JQUP9SUFD/UlBQ/1JQUP9SUFD/UlBQ/1JQ
- UP9RT0//UU9P/3Rycv/Qz8//+fr6//3+/v/+/v7//f////3+///+/v///v3+//79/v/9/v7//f////3/
- /////////v7+//7+/v/t7e3/mJiY/1VUVP9TUVH/UU9P/1JQUP9SUFD/UlBQ/1JQUP9TUVH/UE5O/3Ny
- cv/W1tb//v7+//7+/v//////////////////////////////////////////////////////////////
- ///////////////////////////////////////////////////+/v7//v7+/+vr6/+Ih4f/UU9P/1JQ
- UP9SUFD/UlBQ/1JQUP9SUFD/UU9P/1JQUP9TUVH/gYCA/9vb2//8/Pz//f7+//7+/v/+/v7////+//7+
- /v/+/v3//v7+///////+/v7//v7+//39/f/w8PD/pqWl/1xaWv9SUFD/UlBQ/1FPT/9RT0//UlBQ/1JQ
- UP9SUFD/T05O/2VjY//Pzs7//v7+//7+/v//////////////////////////////////////////////
- /////////////////////////////////////////////////////////v7+//7+/v////////////39
- /f/9/f3/3t7e/318fP9QTk7/UlBQ/1JQUP9SUFD/UlBQ/1FPT/9RT0//UU9P/1VTU/+OjY3/5ubm//7+
- /v/+/v7//v7+/////v/+//7//v/+/////v///////v7+//7+/v/09PT/tLOz/2NhYf9RT0//UlBQ/1JQ
- UP9RT0//UlBQ/1JQUP9SUFD/UE5O/11dXf++vb3//f39//7+/v//////////////////////////////
- //////////////////////////////////////////////////////////////////////////////7+
- /v/+/v7////////////+/v7//v7+//v7+//T0tL/cnFx/09NTf9SUFD/UlBQ/1BQUP9RT0//UlBQ/1FP
- T/9RT0//VlVV/5mZmf/x8fH//v7+//7+/v////////////////////////////39/f/6+fn/xMLC/2hm
- Zv9RT0//UlBQ/1FPT/9RT0//UlBQ/1JQUP9SUFD/UU9P/1hXV/+sq6v/9vb2//39/f/+/v7/////////
- ////////////////////////////////////////////////////////////////////////////////
- /////////////////////////v7+//7+/v/////////////////9/f3/+/v7/8jIyP9nZmb/UE5O/1JQ
- UP9RUFD/UU9P/1FPT/9RT0//UlBQ/1JQUP9VVFT/qamp//v7+//+/v7///////////////////////39
- /f/9/f3/1tXV/2xqav9RT0//UlFR/1FQUP9RT0//UU9P/1JQUP9SUFD/UU9P/1RSUv+dnJz/7e3t//39
- /f/+/v7/////////////////////////////////////////////////////////////////////////
- //////////////////////////////////////////////7+/v/+/v7//v7+/////////////v7+//7+
- /v/5+fn/vLy8/2JhYf9RT0//UlBQ/1FQUP9QT0//UlBQ/1FPT/9SUFD/UU9P/1JSUv+4uLj/+/v7//7+
- /v/+/v7//v7+//7+/v/+/v7/5eXl/29tbf9OTEz/UlBQ/1JQUP9SUFD/UlBQ/1JQUP9SUFD/UlBQ/1NR
- Uf+SkZH/6enp//39/f/+/v7/////////////////////////////////////////////////////////
- /////////////////////////////////////////////////////////////////////////v7+//7+
- /v/////////////////+/v7//f39//b29v+srKz/XFxc/1BQUP9SUFD/UlBQ/1JQUP9SUFD/UlBQ/1JQ
- UP9RT0//XFpa/8bGxv/6+vr//f39//7+/v/+/v7/6evr/39/f/9MSkr/U1FR/1JQUP9SUFD/UlBQ/1JQ
- UP9RT0//U1FR/1RSUv+GhYX/4uLi//39/f/9/f3//v7+////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- //////////////////////////////////////////////7+/v/+/v7/7+/v/52dnf9WVlb/UlBQ/1JQ
- UP9RT0//UU9P/1FPT/9RT0//UlBQ/1BOTv9ta2v/0M/P//r6+v/9/f3/7Ozs/5OTk/9PTk7/U1FR/1JQ
- UP9SUFD/UlBQ/1JQUP9RT0//UU9P/1JQUP97eXn/2NjY//3+/v/+/v7/////////////////////////
- //////////////////////////////////////////////////////////////7+/v//////////////
- ///////////////////////////////////////////////////////////////////+/v7//f39//39
- /f/q6ur/kZGR/1BPT/9SUFD/UU9P/1FPT/9RT0//UU9P/1JQUP9SUFD/U1FR/3x6ev/Z2Nj/7+/v/6Gg
- oP9YVlb/UFBQ/1JQUP9SUFD/UlBQ/1JQUP9SUFD/U1FR/1FOTv9ubGz/zs3N//7+/v/+/v7//v7+////
- ////////////////////////////////////////////////////////////////////////////////
- ///+/v7//////////////////////////////////////////////////////////////////v7+//7+
- /v/+/v7//v7+//7+/v/+/v7//f39/+bm5v9/f3//Tk1N/1JQUP9RT0//UlBQ/1JQUP9RT0//UlBQ/1JQ
- UP9UUlL/hoSE/5ybm/9hX1//UU9P/1FQUP9SUFD/UlBQ/1JQUP9SUFD/UlBQ/09NTf9fXV7/xMTE//v7
- +//+/v7//v7+////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- //////////////7+/v/+/v7//v7+//7+/v////////////7+/v/+/v7/29vb/3BwcP9OTU3/UlBQ/1JQ
- UP9SUFD/UU9P/1JQUP9SUFD/UU9P/1VSU/9ZVlb/UlBQ/1JQUP9SUFD/UlBQ/1JQUP9SUFD/UlBQ/1BO
- Tv9VVFT/s7Oz//n5+f/9/f3//v7+////////////////////////////////////////////////////
- ///////////////////////////////////+/v7//v7+/////v///v3///38///9/P/+/Pz//v38///9
- /P///fz///38///9/P///fz///38//7+/f/+//7////+///////+/v7//v7+//7+/v/+/v7//v7+//z8
- /P/Nzc3/Z2Zm/09NTf9TUVH/UlBQ/1JQUP9SUFD/UlBQ/1JQUP9SUFD/Uk9P/1JQUP9SUFD/UlBQ/1JQ
- UP9SUFD/UlBQ/1JQUP9RUFD/oaKi//Pz8//9/f3//f7+/////////v7///7+/////////////v7///z9
- /v/7/f7/+/3+//v9/v/6/f7/+/3+//v9/v/7/f7/+/3+//z9/v/8/v///P7+//7+/v/+/v3//f38//79
- +//+/Pv//vz7//79+//+/fv//v37//79+//+/fv//v37//78+//9/fz//v39//7+/v///////v7+//7+
- /v/+/v7///////7+/v/+/v7/+vn5/8PBwf9jYWH/UE5O/1JQUP9RT0//UlBQ/1FPT/9SUFD/UlBQ/1JQ
- UP9SUFD/UlBQ/1NPUP9TT1D/UlBQ/1JQUP9TUVH/lpaW/+3t7f/9/f3//v7+//7////9/////f7+//7+
- /v///////P/9//7+/v/8/f7/+vz+//r8/v/6/P7/+vz+//r8/v/6/P7/+vz+//r8/v/6/P7/+vz+//z9
- /v/+/v7/+vbv//Hgxf/r0Kv/68+q/+zPqv/r0Kr/6tCq/+vRq//q0Kr/6tCq/+rQqv/qz6j/8Nm6//nw
- 5P/+/v3////+/////////////////////////////v7+//z8/P/39/f/tLS0/19eXv9RT0//UU9P/1FP
- T/9RT0//UlBQ/1JQUP9SUFD/UlBQ/1JQUP9SUFD/UlBQ/1FPT/9UUlL/i4qK/+bm5v/+/v7//v7+////
- //////////////7////+/////v////3+/v/k8P7/tNb+/6LN/v+izv7/o87+/6PO//+jzv//o83//6LN
- //+jzv//o83//6LN/v+82/7/7PX+/+XBkP/NgyH/yHkO/8h5Dv/IeQ3/yHoN/8h5Df/IeQ7/yXkO/8h5
- Dv/IeQ3/yHoN/8l8Ev/apV3/+/bu///+/v///v////7///////////////////7+/v/+/v7//f39//Hx
- 8f+lpKT/XFtb/1FPT/9SUFD/UlBQ/1JQUP9SUFD/UlBQ/1JQUP9SUFD/UlBQ/1JQUP9UUlL/f35+/9vb
- 2//+/v7//v7+//7+/v////////////7+/v/+/v7//f7+//3+/v/w9/7/Xqf+/xB9/v8KfP7/Cnv+/wp8
- /v8KfP//Cnv//wp7//8Kev//Cnv//wp6//8Ke/7/GIL+/325/v/MgBz/xG8C/8ZyA//FcgH/xXEB/8Vy
- Af/FcwL/xXIC/8ZyAv/GcgL/xnIC/8VzAv/EcgL/xHID//Hcvv///v7///7+///+////////////////
- //////////////7+/v/9/f3/6enp/5GQkP9UUlL/UlBQ/1JQUP9SUFD/UlBQ/1JQUP9SUFD/UlBQ/1FP
- T/9RT0//bm1t/87Ozv/8/Pz//v7+//7+/v/////////////////+/v7//v7+//79/v/+/v3/yeP+/wV2
- /v8Cdf7/AXf+/wF2/v8Cdv7/Anb+/wF3//8Bd///AXf//wF3//8Bd///Anf//wJ1//8Sff//zIEf/8Rw
- Av/FcgL/xXIB/8VyAf/EcQH/xHIC/8VyAv/FcgL/xXIC/8VyAv/FcgL/xHEC/8VyBf/y3cD//f7+//7+
- /v////////7////+///////////////////+/v7//v7+//Pz8/+dnZ3/VFNT/1JQUP9SUFD/UlBQ/1JQ
- UP9SUFD/UlBQ/1JQUP9RT0//UU9P/3Z0dP/b29v//f39//7+/v///////////////////////v////7+
- ///9/f///v7+/87l/v8Lef7/AnT+/wF1/v8Bdf7/AnX+/wJ1/v8Bdv//AXb//wF2//8Bdv//AXb//wJ2
- //8Dc///GYH//+fDlf/NhCT/ynsR/8l7Ef/JexH/yXsQ/8h6EP/IehH/yHoR/8l6EP/JehD/yHsR/8p9
- Fv/ap2L/+/bv//7+/v/+/v7////////+///+/v7//v7+//7+/v/+/v7//f39//f39/+3t7f/ZGNj/1JQ
- UP9SUFD/UlBQ/1JQUP9SUFD/UlBQ/1JQUP9SUFD/UlBQ/1JQUP9XVVX/kZCQ/+bm5v/9/f3//v7+////
- /////////////////////v///f7+//7+/f/z+P7/crL+/x2E/v8VgP7/FID+/xSA/v8VgP7/FYD+/xWA
- /v8UgP3/FYD+/xWA/v8VgP7/KYn+/4/E///89/L/8+HJ/+3Usf/t07D/7dOw/+3UsP/t07D/7dSw/+3U
- sP/u1LH/7tSx/+3Trv/x277/+PDl//79/P/9//7///7////+///+/////v7+//7+/v/+/v7//f39//v7
- +//Hx8f/amlp/1FPT/9SUFD/UU9P/1JQUP9SUFD/UlBQ/1JQUP9SUFD/UlBQ/1JQUP9SUFD/UU9P/1dW
- Vv+fn5//7+/v//39/f/+/v7////////////+/////f////7+/v/+/v7//f7+/+rz/v/H3/7/t9n+/7bY
- /v+42P7/uNj+/7fY/v+22P7/ttj+/7bY/v+22P7/t9r+/83l/f/x+P7//v79//3+/P/9/fz//f37//79
- +//+/fv//v37//79+//+/fv//v38//79/P/+/fv//f39//39/f/+/v3//v7+///+/////v///f////7+
- /////v///v7+//39/f/V1dX/cHBw/09OTv9SUFD/UlBQ/1FPT/9RT0//UlBQ/1JQUP9SUFD/UlBQ/1JQ
- UP9SUFD/UlBQ/1JQUP9QT0//V1dX/6ysrP/09PT//v7+//7+/v/+/v7//v7+//7////+/v7//f7+//7+
- /v/8/v7//P7+//z9///8/f7//P3+//z9/v/8/f7//P3///z9///8/f///P3+//z9/v/8/v7//P7+//7/
- /v/+//3//f79//3+/P/9/vz//f78//z9+//9/vz//f78//3+/P/+/fz//v79//7+/f///v7////+////
- /////////////////////////v7+//39/f/d3d3/eXh4/09NTf9SUFD/UlBQ/1JQUP9RT0//UlBQ/1JQ
- UP9RT0//UU9P/1JQUP9SUFD/UlBQ/1JQUP9SUFD/U1FR/1BOTv9aWFj/ubm5//n5+f/9/f3//v7+//7+
- /v/+/v7//v7+//7+/v/+/v7//v7///3+///8/v///f3///z9/v/7/f7//P7+//z+///8/v///P7///z+
- ///8/v///P7///7+/////////////////////////////////////////////////////////v////7/
- ///+/////v////////////////////////////////////39/f/m5ub/hoWF/05MTP9SUFD/UlBQ/1JQ
- UP9SUFD/UlBQ/1JQUP9SUFD/UlBQ/1JRUf9RUFD/UVBQ/1JQUP9SUFD/UlBQ/1JQUP9TUVH/T01N/2Fg
- YP/Kysr//f39//39/f/+/v7//v7+//7+/v///////v////3////+/////v//////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- //////////////7////+/////v////7//////////v7+//7+/v///////v7+//7+/v/v7+//lZSU/1FP
- T/9SUFD/UlBQ/1FPT/9SUFD/UlBQ/1JQUP9SUFD/UlBQ/3V0dP+FhYX/WFhY/1JPT/9SUFD/UlBQ/1JQ
- UP9SUFD/UU9P/1JQUP9PTU3/bWtr/9jX1//+/v7//v7+//////////////////3/////////////////
- ////////////////////////////////////////////////////////////////////////////////
- ///////////////////+/v7//////////////////////////////////v////7+/v/+/v7//v7+//7+
- /v/19fX/pqam/1VUVP9RT0//UlBQ/1JQUP9SUFD/UU9P/1FPT/9SUFD/UU9P/21ra//Hxsb/4uPj/46O
- jv9UUVL/U1FR/1JQUP9SUFD/UlBQ/1FPT/9RT0//U1FR/09NTf9+fHz/3t7e//7+/v/+/v7/////////
- ////////////////////////////////////////////////////////////////////////////////
- /////////////////////////////////////////v7+//////////////////////////////////7/
- /////////v7+//3+/v/4+fn/tLS0/2BdXf9RT0//UlBQ/1JQUP9RT0//UU9P/1FPT/9SUFD/UU9P/2Bf
- X/+8vLz/9vb2//39/f/g4OD/fn19/09NTf9TUVH/UU9P/1FPT/9SUFD/UU9P/1JQUP9SUFD/VFJS/4uK
- iv/l5eX//v7+//7+/v//////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- ///////////////////+/v7//v7+//7+/v/7/Pz/wsPD/2dmZv9TUFD/UlBQ/1JQUP9SUFD/UU9P/1JQ
- UP9SUFD/UlBQ/1JRUf+vr6//9/f3//39/f/9/f3//f39/9ra2v9qamr/T01N/1NRUf9RT0//UlBQ/1JQ
- UP9SUFD/UlBQ/1JQUP9XVVX/mJeX/+3t7f/9/f3//v7+///////+/////f//////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- ///////////////////+/////v////3////+/////v7+//7+/v/8/Pz/0M/P/25tbf9RT0//UlBQ/1FP
- T/9RT0//UlBQ/1JQUP9RT0//UlBQ/01NTf+dnZ3/+fn5//7+/v/+/v7//v7+//39/f/9/f3/0dHR/15c
- XP9QTk7/U1FR/1JQUP9SUFD/UlBQ/1JQUP9SUFD/UU9P/1hXV/+mpqb/8/Pz//39/f/+/v7//v////7/
- ////////////////////////////////////////////////////////////////////////////////
- //////////////////////////////////////////////////////////////7+/v/7+/v/1dXV/3Z1
- df9PTk7/UlBQ/1JQUP9SUFD/UU9P/1FPT/9RT0//VFBQ/1JPUP+Qj4//+Pj4//7+/v///v7/////////
- /////////Pz8//z8/P/DwcH/X11d/1FPT/9SUFD/UlBQ/1JQUP9SUFD/UlBQ/1JQUP9QT0//W1pa/7Oz
- s//19fX//v7+//7+/v////////////7+/v/+/v7//v7+////////////////////////////////////
- /////////////////////////////////////////////////////////v7+//7+/v////////////7+
- /v/8/Pz/39/f/4SDg/9RT0//UlBQ/1JQUP9SUFD/Uk9Q/1JPT/9RT0//UlBQ/1RQUf+GhIX/5ubm//7+
- /v/9/f3//v7+//7+/v/////////////////9/f3/9vb2/7CwsP9dXFz/UU9P/1JQUP9SUFD/UlBQ/1JQ
- UP9SUFD/UlBQ/09NTf9iYWH/wMHB//r6+v/+/v7//v7+///////+/v7//v7+//7+/v/+/v7/////////
- //////////////////////////////////////////////////////////////////////////////7+
- /v/+/v7///////7+/v/9/f3/6+vr/5CQkP9TUVH/UlBQ/1FPT/9RT0//UVBQ/1JPT/9ST0//UlBQ/1JQ
- UP98e3v/2NjY//z8/P/+/v7//v7+//7+/v/+/v7///7//////////////v7+//39/f/v7+//oaCg/1tZ
- Wf9SUFD/UlBQ/1JQUP9SUFD/UlBQ/1JQUP9SUFD/TkxM/2ppaf/Pz8///v7+//7+/v//////////////
- ///+/v7//v7+////////////////////////////////////////////////////////////////////
- /////////v7+//7+/v////////////7+/v/+/v7/9/b2/56env9SUlL/UlBQ/1JQUP9RT0//UU9P/1FQ
- UP9RUFD/UlBQ/1FPT/9xcHD/y8rK//n5+f/+/v7//v7+//7+/v///v////7////+//////////////7+
- /v/+/v7//v7+/+bn5/+SkpL/VlRU/1JQUP9SUFD/UU9P/1JQUP9SUFD/UlBQ/1JQUP9OTEz/dHNz/93d
- 3f/+/v7//v7+//7+/v/+/v7/////////////////////////////////////////////////////////
- //////////////////////////////7+/v/+/v7///////7+/v/+/v7/+/r6/7KwsP9XVlb/UU9P/1JQ
- UP9RT0//UlBQ/1JQUP9SUFD/UlBQ/1FQUP9mZWX/vr6+//f29v/9/v7//v7+//7+/v/+/v7//v7+//7+
- ///////////////+/////v///v7+//7+/v/9/f3/4ODg/4SEhP9TUVH/UlBQ/1JQUP9SUFD/UlBQ/1JQ
- UP9SUFD/UlBQ/1FPT/+Fg4P/5eXl//39/f/+/v7//v7+////////////////////////////////////
- ///////////////////////////////////////////////////+/v7//v7+//7+/v/+/v7//v7+/7++
- vv9hX1//UU9P/1JQUP9RT0//UU9P/1JQUP9SUFD/UlBQ/1JQUP9ZWVn/sbGx//b29v/+/v7//v7+//7/
- ///9/v7//v7+//7+/v/+//////////39/f/+/v3//v7+///////+/v7//f39//z8/P/b29v/dXNz/09N
- Tf9TUVH/UlBQ/1FPT/9SUFD/UlBQ/1JQUP9SUFD/VFNT/5KSkv/t7e3//v7+//7+/v//////////////
- //////////////////////////////////////////////////////////////////////////////7+
- /v/9/f3//Pz8/8rKyv9pZ2f/UU9P/1JQUP9SUFD/UlBQ/1JQUP9SUFD/UlBQ/1NRUf9QTk7/oqSk//f4
- +P/+/v7//v7+//7+/v/9/v7//f7+//7+/v/2+/r/1PLn/8vw4f/v+vb//v79//7+/v/+/////v7+//7+
- /v/9/f3//Pz8/9TU1P9jYWH/UE5O/1NRUf9RT0//UlBQ/1JQUP9SUFD/UlBQ/1JQUP9WVlb/oaGh//Pz
- 8//+/v7//v7+//7+/v///////////////////////////////////////v7+//7+/v//////////////
- //////////////7+/v/9/v7/+vv7/9LR0f9zcXH/UU9P/1JQUP9SUFD/UlBQ/1JQUP9SUFD/UlBQ/1JQ
- UP9OTU3/mJiY//r6+v/+/v7//////////////////P7+//z+/v/w+vb/g9u4/w+7df8Bt27/UM6d/971
- 7P/9/v3//f7+//7+/v////////////39/f/+/v7/ycnJ/1xaWv9QTk7/UlBQ/1JQUP9SUFD/UlBQ/1JQ
- UP9SUFD/Uk5P/1lXV/+rrKz/9PT0//z9/f/+/v7////////////////////////////+/v7//v7+//7+
- /v/+/v7//////////////////v7+//7+/v/+/v7/+/v7/9vb2/+BgID/UU9P/1JQUP9SUFD/UlBQ/1JQ
- UP9SUFD/UlBQ/1JQUP9RUFD/hYSE//Dw8P/9/f3//v7+//7+/v/+/v7//v7+//3+/v/8/v7/1vPn/yrC
- hP8Btmv/Arhv/wi3cf+g48n/+v38//v9/f/+/v7//////////////////f39//v7+/+ysrL/W1pa/1BO
- Tv9SUFD/UlBQ/1JQUP9SUFD/UlBQ/1JQUP9QTk7/YmBg/7u8vP/3+Pj//v7+////////////////////
- /////////v7+//7+/v////////////////////////////7+/v/+/v7//P39/+Tk5P+OjY3/U1FR/1JQ
- UP9SUFD/UlBQ/1FPT/9SUFD/UlBQ/1JQUP9SUFD/fXx8/93d3f/9/f3//v7+///////+/v7//v7+//7+
- /v/8/v7//f7+/8nv4P8fv3//AbZt/wK4cf8At27/jd6+//j8+//7/f3///////////////////////7+
- /v/9/f3/9PT0/6alpf9aWFj/UU9P/1JQUP9SUFD/UlBQ/1JQUP9SUFD/UlBQ/1BOTv9ramr/x8jI//r6
- +v/+/v7///////////////////////7+/v/+/v7////////////////////////////+/v7//v7+/+/x
- 8f+ZmJj/VlRU/1FPT/9SUFD/UlBQ/1JQUP9RT0//UlBQ/1JQUP9RT0//dXNz/8/Ozv/5+vr//v7+////
- ///////////////////+/v7//P7+//3+/v/J7uH/H79//wG2bf8BuHH/ALdu/47fvv/4/Pv/+/39////
- /////////////////////////v7+//39/f/s7Oz/mZiY/1ZVVf9RT0//UU9P/1FPT/9SUFD/UlBQ/1JQ
- UP9SUFD/UE5O/3Nycv/X1tb//v7+//7+/v///////v7+//7+/v/+/v7//v7+////////////////////
- /////////v7+//7+/v+3t7f/VlVV/1JQUP9SUFD/UlBQ/1JQUP9SUFD/UlBQ/1JQUP9QTk7/a2lp/8PD
- w//39/f//f7+//7+/v////////////////////////////3+/v/9/v7/yO7h/x6/f/8Btm3/Abhx/wC3
- bv+O377/+f37//v9/f////////////////////////////7+/v/+/v7//Pz8/+Li4v+Lior/VFJS/1JQ
- UP9SUFD/UlBQ/1JQUP9SUFD/UU9P/1JQUP9RTU7/goCA//b29v/+/v7///////7+/v/+/v7/////////
- //////////////////////////////7+/v/7+/v/c3Nz/01NTf9TUVH/UlBQ/1JQUP9SUFD/UlBQ/1JQ
- UP9RT0//YF5e/7e2tv/29vb//v7+//7+/v/////////////////////////////////8/v7//f7+/8ju
- 4f8ev3//Ardu/wG5cf8At27/juC+//n9+//7/f3////////////////////////////+/v7//v7+//7+
- /v/7+/v/2NjY/3p5ef9RUFD/UlBQ/1JQUP9SUFD/UlBQ/1FPT/9SUFD/UU9P/1VTU//Pz8///v7+//3+
- /v/+/v7//v7+////////////////////////////////////////////8/Pz/1tbW/9OTk7/UlBQ/1JQ
- UP9SUFD/UlBQ/1JQUP9UUFD/V1ZW/6ioqP/39/f//v7+//7+/v/9/////v//////////////////////
- /////////P7+//z+/v/I7uH/Hr9//wG2bf8AuHH/ALdu/47gvv/5/fv/+/39////////////////////
- ///////////////////+/v7//v7+//v7+//R0dH/amlp/1FPT/9SUFD/UlBQ/1JQUP9SUFD/UlBQ/1JQ
- UP9PTU3/tLS0//3+/v/8/f3//v7+/////////////////////////////////////////////v7+//r6
- +v9paGj/T01N/1NQUf9SUFD/UlBQ/1JQUP9SUVH/UlJS/52dnf/4+Pj//v7+//7+/v//////////////
- //////////////////////////////z+/v/9/v7/yO7h/x6/f/8At2z/ALlw/wC3b/+O4L7/+f37//v9
- /f/////////////////////////////////////////////////9/f3//f39/87Ozv9iYGD/UU9P/1JQ
- UP9SUFD/Uk9Q/1JQUP9SUFD/UVFR/8XFxf/+/v7//f39//7+/v//////////////////////////////
- //////////////7+/v/+/v7/pKSk/1FOTv9TT1D/UlBQ/1FPT/9SUFD/UU9P/4yMjP/w8PD//v7+//7+
- /v/////////////////////////////////////////////////8/v7//f7+/8fv4P8ev3//AbZt/wG4
- cf8At27/juC+//n9+//7/f3//////////////////v7+//7+/v/+/v7///////////////////////39
- /f/+/v7/vr6+/1pZWf9QT0//UlBQ/1JPUP9ST1D/T01N/25ubv/w8PD//v7+//7+/v//////////////
- ///////////////////////////////////+/v7//v7+/+np6f+OjY3/XVxc/1VTU/9UUlL/W1pa/4aH
- h//m5ub//v7+//7+/v///////////////////////////////////////////////////////P7+//3+
- /v/J7+D/H79//wG2bv8BuHH/ALdt/47fv//5/fv/+/39//////////////////7+/v/+/v7//v7+////
- ///////////////////+/v7//v7+//z8/P+tra3/ZWRk/1ZUVP9UUlL/V1ZW/3Bvb//Hx8f//v7+//7+
- /v///////////////////////////////////////////////////////v7+//7+/v/9/f3/6Ojo/7m6
- uv+dnZ3/nZyc/7e3t//m5+f//f39//7+/v//////////////////////////////////////////////
- //////////////z+/v/9/v7/yO/g/x/Af/8Bt23/Abhx/wC3bf+O377/+f37//v9/f//////////////
- ///////////////////+/v7//v7+//////////////////7+/v/+/v7/9fX1/8rJyf+lpaX/mpmZ/6yr
- q//V1dX/+/v7//7+/v////////////////////////////////////////////////////////////7+
- /v/+/v7//v7+//7+/v/6+/v/8vLy//Ly8v/6+vr//f39//7+/v//////////////////////////////
- ///////////////////////////////////8/v7//f7+/8rw4P8gv3//AbZt/wG4cv8AuG//jd6+//n9
- +//7/f3//////////////////////////////////v7+//7+/v///////////////////////v7+//7+
- /v/8/Pz/9fX1//Hx8f/39/f//Pz8//7+/v//////////////////////////////////////////////
- ///////////////////+/v7//v7+//7+/v/+/v7//v7+//39/f/9/f3//f39//7+/v/+/v7/////////
- ///////////////////////////////////////////////////+/v7//f7+//3+/v/a9Or/NsWM/wK1
- bP8Ct27/ELt3/67o0f/7/fz//P39//////////////////////////////////////////////////7+
- /v/+/v7//v7+//7+/v/+/v7//f39//39/f/9/f3//f39//7+/v/+/v7//v7+//7+/v//////////////
- /////////////////////////////////////////v7+//7+/v////////////7+/v/+/v7//v7+//7+
- /v/+/v7//////////////////v7+//7+/v/+/v7//v7+/////////////////////////////v7+//3+
- /v/+/v7/9vz6/6Xky/8mwIP/ELt5/3bYsv/p+fL//f79//3+/v/+/v7//v7+////////////////////
- ///////////////////+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7///////7+
- /v/+/v7///////////////////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
-
-
-
\ No newline at end of file
Index: xword/XWord/AddinSettingsFormManager.cs
===================================================================
--- xword/XWord/AddinSettingsFormManager.cs (revision 0)
+++ xword/XWord/AddinSettingsFormManager.cs (revision 0)
@@ -0,0 +1,242 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using XWiki.Clients;
+using System.Windows.Forms;
+using System.IO;
+using System.Threading;
+using XWiki;
+using XWiki.Logging;
+using UICommons;
+using UICommons.UIActionsManagement;
+
+namespace XWord
+{
+ ///
+ /// Manages the public events handlers for AddinSettingsForm
instances.
+ ///
+ public class AddinSettingsFormManager : AbstractAddinSettingsFormActionsManager
+ {
+ private AddinSettingsForm addinSettingsForm;
+ private XOfficeCommonSettings addinSettings;
+ private XWikiAddIn addin;
+ private XWikiClientType currentClientType;
+
+ ///
+ /// Default constructor.
+ ///
+ /// A reference to an AddinSettingsForm
instance.
+ public AddinSettingsFormManager(ref AddinSettingsForm addinSettingsForm)
+ {
+ this.addinSettingsForm = addinSettingsForm;
+ this.addinSettings = new XOfficeCommonSettings();
+ this.addin = Globals.XWikiAddIn;
+ this.currentClientType = addin.ClientType;
+ }
+
+ #region AbstractAddinSettingsFormActionsManager Members
+
+ ///
+ /// Enqueues all (known/custom) event handlers defined for an AddinSettingsForm
instance:
+ /// OnApply, OnCancel, OnFormLoad, OnOK, OnProtocolChange.
+ ///
+ public override void EnqueueAllHandlers()
+ {
+ addinSettingsForm.OnApply = this.ActionApply;
+ addinSettingsForm.OnCancel = this.ActionCancel;
+ addinSettingsForm.OnFormLoad = this.ActionFormLoad;
+ addinSettingsForm.OnOK = this.ActionOK;
+ addinSettingsForm.OnProtocolChange = this.ActionProtocolChanged;
+ }
+
+ ///
+ /// Action to perform when OnFormLoad event is raised.
+ ///
+ /// Sender object.
+ /// Event arguments.
+ protected override void ActionFormLoad(object sender, EventArgs e)
+ {
+ addinSettingsForm.LoadingDialogFlag = true;
+
+ if (addin.serverURL == "" || addin.serverURL == null)
+ {
+ addinSettingsForm.GroupBox1Text = "Test server settings";
+ }
+ else
+ {
+ addinSettingsForm.GroupBox1Text = "Settings";
+ addinSettingsForm.ServerURL = addin.serverURL;
+ addinSettingsForm.UserName = addin.username;
+ addinSettingsForm.Password = addin.password;
+ }
+ addinSettings = new XOfficeCommonSettings();
+ addinSettings.PagesRepository = addin.PagesRepository;
+ addinSettings.DownloadedAttachmentsRepository = addin.DownloadedAttachmentsRepository;
+ addinSettings.ClientType = addin.ClientType;
+ addinSettingsForm.TxtPagesRepoText = addin.PagesRepository;
+ addinSettingsForm.TxtAttachmentsRepoText = addin.DownloadedAttachmentsRepository;
+
+ //init protocol settings
+ addinSettingsForm.ConnectDictionary.Add(addinSettingsForm.ConnectMethods[0], XWikiClientType.XML_RPC);
+ addinSettingsForm.ConnectDictionary.Add(addinSettingsForm.ConnectMethods[1], XWikiClientType.HTTP_Client);
+ addinSettingsForm.ComboProtocolDataSource = addinSettingsForm.ConnectMethods;
+ switch (addin.ClientType)
+ {
+ case XWikiClientType.XML_RPC:
+ addinSettingsForm.ComboProtocolSelectedIndex = 0;
+ break;
+ case XWikiClientType.HTTP_Client:
+ addinSettingsForm.ComboProtocolSelectedIndex = 1;
+ break;
+ }
+ addinSettingsForm.LoadingDialogFlag = false;
+ }
+
+ ///
+ /// Action to perform when OnApply event is raised.
+ ///
+ /// Sender object.
+ /// Event arguments.
+ protected override void ActionApply(object sender, EventArgs e)
+ {
+ if (addinSettingsForm.IsTabConnectionSelected)
+ {
+ ApplyConnectionSettings();
+ addinSettingsForm.ConnectionSettingsApplied = true;
+ }
+ else if (addinSettingsForm.IsTabFileRepositorySelected)
+ {
+ ApplyRepositoriesSettings();
+ addinSettingsForm.AddinSettingsApplied = true;
+ }
+ }
+
+ ///
+ /// Action to perform when OnOK event is raised.
+ ///
+ /// Sender object.
+ /// Event arguments.
+ protected override void ActionOK(object sender, EventArgs e)
+ {
+ //If settings changes were made or there is no client instance
+ if (!addinSettingsForm.ConnectionSettingsApplied || (addin.Client == null))
+ {
+ ApplyConnectionSettings();
+ }
+ if (!addinSettingsForm.AddinSettingsApplied)
+ {
+ ApplyRepositoriesSettings();
+ }
+ addinSettingsForm.DialogResult = DialogResult.OK;
+ addinSettingsForm.Close();
+ }
+
+ ///
+ /// Action to perform when OnProtocolChanged event is raised.
+ ///
+ /// Sender object.
+ /// Event arguments.
+ protected override void ActionProtocolChanged(object sender, EventArgs e)
+ {
+ //If user generated event
+ if (!addinSettingsForm.LoadingDialogFlag)
+ {
+ String selectedValue = (String)addinSettingsForm.ComboProtocolSelectedValue;
+ if (addinSettingsForm.ConnectDictionary.Keys.Contains(selectedValue))
+ {
+ addinSettings.ClientType = addinSettingsForm.ConnectDictionary[selectedValue];
+ addin.ClientType = addinSettings.ClientType;
+ addinSettingsForm.ConnectionSettingsApplied = false;
+ }
+ else
+ {
+ UserNotifier.StopHand("The selected value is not valid.");
+ }
+ }
+ }
+
+ ///
+ /// Action to perform when OnCancel event is raised.
+ ///
+ /// Sender object.
+ /// Event arguments.
+ protected override void ActionCancel(object sender, EventArgs e)
+ {
+ //rollback to initial value of addin client type
+ addin.ClientType = currentClientType;
+ }
+
+ #endregion AbstractAddinSettingsFormActionsManager
+
+ ///
+ /// Sets the new connection settings for the addin,
+ /// connects to the server and refreshes the active wiki explorer.
+ ///
+ private void ApplyConnectionSettings()
+ {
+ Cursor c = addinSettingsForm.Cursor;
+ addinSettingsForm.Cursor = Cursors.WaitCursor;
+ if (addinSettingsForm.ServerURL.EndsWith("/"))
+ {
+ addinSettingsForm.ServerURL = addinSettingsForm.ServerURL.Substring(0, addinSettingsForm.ServerURL.Length - 1);
+ }
+ addin.serverURL = addinSettingsForm.ServerURL;
+ addin.username = addinSettingsForm.UserName;
+ addin.password = addinSettingsForm.Password;
+ LoginData loginData = new LoginData();
+ addin.Client = XWikiClientFactory.CreateXWikiClient(addin.ClientType,
+ addin.serverURL, addin.username, addin.password);
+
+ if (addinSettingsForm.IsCkRememberMeChecked)
+ {
+ String[] credentials = new String[3];
+ credentials[0] = Globals.XWikiAddIn.serverURL;
+ credentials[1] = Globals.XWikiAddIn.username;
+ credentials[2] = Globals.XWikiAddIn.password;
+ loginData.WriteCredentials(credentials);
+ }
+ else
+ {
+ loginData.ClearCredentials();
+ }
+ //Write the settings to isolated storage.
+ XOfficeCommonSettingsHandler.WriteRepositorySettings(addinSettings);
+
+ addinSettingsForm.Cursor = c;
+ }
+
+
+ ///
+ /// Sets the pages and attachments repositories.
+ ///
+ private void ApplyRepositoriesSettings()
+ {
+ Cursor c = addinSettingsForm.Cursor;
+ addinSettingsForm.Cursor = Cursors.WaitCursor;
+ if (addinSettingsForm.ValidatePath(addinSettingsForm.TxtPagesRepoText))
+ {
+ addin.PagesRepository = addinSettingsForm.TxtPagesRepoText;
+ }
+ else
+ {
+ addin.PagesRepository = Path.GetTempPath();
+ }
+ if (addinSettingsForm.ValidatePath(addinSettingsForm.TxtAttachmentsRepoText))
+ {
+ addin.DownloadedAttachmentsRepository = addinSettingsForm.TxtAttachmentsRepoText;
+ }
+ else
+ {
+ addin.DownloadedAttachmentsRepository = Path.GetTempPath();
+ }
+ XOfficeCommonSettingsHandler.WriteRepositorySettings(addinSettings);
+ addinSettingsForm.AddinSettingsApplied = true;
+ Thread.Sleep(500);
+ addinSettingsForm.Cursor = c;
+ }
+
+
+
+ }
+}
Index: xword/XWord/Properties/Settings.Designer.cs
===================================================================
--- xword/XWord/Properties/Settings.Designer.cs (revision 22817)
+++ xword/XWord/Properties/Settings.Designer.cs (working copy)
@@ -1,37 +0,0 @@
-//------------------------------------------------------------------------------
-//
-// This code was generated by a tool.
-// Runtime Version:2.0.50727.3074
-//
-// Changes to this file may cause incorrect behavior and will be lost if
-// the code is regenerated.
-//
-//------------------------------------------------------------------------------
-
-namespace XWord.Properties {
-
-
- [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "9.0.0.0")]
- public sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
-
- private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
-
- public static Settings Default {
- get {
- return defaultInstance;
- }
- }
-
- [global::System.Configuration.ApplicationScopedSettingAttribute()]
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.Configuration.DefaultSettingValueAttribute("\r\n\r\n XML-RPC\r\n Velocity Services\r\n")]
- public global::System.Collections.Specialized.StringCollection ConnectMethods {
- get {
- return ((global::System.Collections.Specialized.StringCollection)(this["ConnectMethods"]));
- }
- }
- }
-}
Index: xword/XWord/Properties/Settings.settings
===================================================================
--- xword/XWord/Properties/Settings.settings (revision 22817)
+++ xword/XWord/Properties/Settings.settings (working copy)
@@ -1,13 +0,0 @@
-
-
-
-
-
- <?xml version="1.0" encoding="utf-16"?>
-<ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- <string>XML-RPC</string>
- <string>Velocity Services</string>
-</ArrayOfString>
-
-
-
\ No newline at end of file
Index: xword/XWord/XWikiAddIn.cs
===================================================================
--- xword/XWord/XWikiAddIn.cs (revision 22817)
+++ xword/XWord/XWikiAddIn.cs (working copy)
@@ -36,6 +36,7 @@
using XWiki.Clients;
using XWiki;
using XWiki.Logging;
+using UICommons;
namespace XWord
{
@@ -625,7 +626,9 @@
{
if (AddinSettingsForm.IsShown == false)
{
- new AddinSettingsForm().ShowDialog();
+ AddinSettingsForm addinSettingsForm = new AddinSettingsForm();
+ new AddinSettingsFormManager(ref addinSettingsForm).EnqueueAllHandlers();
+ addinSettingsForm.ShowDialog();
}
}
Index: xword/XWord/XWikiRibbon.cs
===================================================================
--- xword/XWord/XWikiRibbon.cs (revision 22817)
+++ xword/XWord/XWikiRibbon.cs (working copy)
@@ -111,7 +111,10 @@
private void Show_ConnetionDialog(object sender, RibbonControlEventArgs e)
{
- DialogResult result = new AddinSettingsForm().ShowDialog();
+ AddinSettingsForm addinSettingsForm = new AddinSettingsForm();
+ new AddinSettingsFormManager(ref addinSettingsForm).EnqueueAllHandlers();
+
+ DialogResult result = addinSettingsForm.ShowDialog();
if (result == DialogResult.OK)
{
//AddTaskPanes(); TODO: Sync all taskpanes
Index: xword/XWord/XWord.csproj
===================================================================
--- xword/XWord/XWord.csproj (revision 22817)
+++ xword/XWord/XWord.csproj (working copy)
@@ -209,13 +209,8 @@
AboutXWord.cs
+
-
- Form
-
-
- AddinSettingsForm.cs
-
Form
@@ -231,10 +226,6 @@
AboutXWord.cs
Designer
-
- AddinSettingsForm.cs
- Designer
-
LoadingDialog.cs
Designer
@@ -257,15 +248,6 @@
Resources.resx
True
-
- PublicSettingsSingleFileGenerator
- Settings.Designer.cs
-
-
- True
- Settings.settings
- True
-