diff --git a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/App.Debug.config b/WebsitePanel.Installer/Sources/WebsitePanel.Installer/App.Debug.config deleted file mode 100644 index 18e7f2ee..00000000 --- a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/App.Debug.config +++ /dev/null @@ -1,20 +0,0 @@ - - - -
- - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/App.Release.config b/WebsitePanel.Installer/Sources/WebsitePanel.Installer/App.Release.config deleted file mode 100644 index 60bc4b39..00000000 --- a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/App.Release.config +++ /dev/null @@ -1,20 +0,0 @@ - - - -
- - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/App.config b/WebsitePanel.Installer/Sources/WebsitePanel.Installer/App.config deleted file mode 100644 index 60bc4b39..00000000 --- a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/App.config +++ /dev/null @@ -1,20 +0,0 @@ - - - -
- - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/ApplicationForm.Designer.cs b/WebsitePanel.Installer/Sources/WebsitePanel.Installer/ApplicationForm.Designer.cs deleted file mode 100644 index 1eba1298..00000000 --- a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/ApplicationForm.Designer.cs +++ /dev/null @@ -1,243 +0,0 @@ -namespace WebsitePanel.Installer -{ - partial class ApplicationForm - { - /// - /// 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() - { - this.components = new System.ComponentModel.Container(); - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ApplicationForm)); - this.statusBar = new System.Windows.Forms.StatusStrip(); - this.statusBarLabel = new System.Windows.Forms.ToolStripStatusLabel(); - this.splitContainer = new System.Windows.Forms.SplitContainer(); - this.scopeTree = new System.Windows.Forms.TreeView(); - this.smallImages = new System.Windows.Forms.ImageList(this.components); - this.pnlRight = new System.Windows.Forms.Panel(); - this.pnlResultView = new System.Windows.Forms.Panel(); - this.pnlDescription = new System.Windows.Forms.Panel(); - this.lblResultViewPath = new System.Windows.Forms.Label(); - this.lblResultViewTitle = new System.Windows.Forms.Label(); - this.pictureBox = new System.Windows.Forms.PictureBox(); - this.backgroundWorker = new System.ComponentModel.BackgroundWorker(); - this.lineBox2 = new WebsitePanel.Installer.LineBox(); - this.topLogoControl = new WebsitePanel.Installer.TopLogoControl(); - this.statusBar.SuspendLayout(); - this.splitContainer.Panel1.SuspendLayout(); - this.splitContainer.Panel2.SuspendLayout(); - this.splitContainer.SuspendLayout(); - this.pnlRight.SuspendLayout(); - this.pnlDescription.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox)).BeginInit(); - this.SuspendLayout(); - // - // statusBar - // - this.statusBar.GripStyle = System.Windows.Forms.ToolStripGripStyle.Visible; - this.statusBar.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.statusBarLabel}); - this.statusBar.Location = new System.Drawing.Point(0, 431); - this.statusBar.Name = "statusBar"; - this.statusBar.RenderMode = System.Windows.Forms.ToolStripRenderMode.Professional; - this.statusBar.Size = new System.Drawing.Size(632, 22); - this.statusBar.TabIndex = 1; - // - // statusBarLabel - // - this.statusBarLabel.Name = "statusBarLabel"; - this.statusBarLabel.Size = new System.Drawing.Size(39, 17); - this.statusBarLabel.Text = "Ready"; - // - // splitContainer - // - this.splitContainer.BackColor = System.Drawing.SystemColors.Control; - this.splitContainer.Dock = System.Windows.Forms.DockStyle.Fill; - this.splitContainer.Location = new System.Drawing.Point(0, 63); - this.splitContainer.Name = "splitContainer"; - // - // splitContainer.Panel1 - // - this.splitContainer.Panel1.Controls.Add(this.scopeTree); - this.splitContainer.Panel1.Padding = new System.Windows.Forms.Padding(0, 1, 0, 0); - // - // splitContainer.Panel2 - // - this.splitContainer.Panel2.Controls.Add(this.pnlRight); - this.splitContainer.Panel2.Padding = new System.Windows.Forms.Padding(0, 1, 0, 0); - this.splitContainer.Size = new System.Drawing.Size(632, 368); - this.splitContainer.SplitterDistance = 250; - this.splitContainer.SplitterWidth = 2; - this.splitContainer.TabIndex = 2; - // - // scopeTree - // - this.scopeTree.Dock = System.Windows.Forms.DockStyle.Fill; - this.scopeTree.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); - this.scopeTree.HideSelection = false; - this.scopeTree.ImageIndex = 0; - this.scopeTree.ImageList = this.smallImages; - this.scopeTree.ItemHeight = 19; - this.scopeTree.Location = new System.Drawing.Point(0, 1); - this.scopeTree.Name = "scopeTree"; - this.scopeTree.SelectedImageIndex = 0; - this.scopeTree.ShowLines = false; - this.scopeTree.Size = new System.Drawing.Size(250, 367); - this.scopeTree.TabIndex = 0; - this.scopeTree.BeforeExpand += new System.Windows.Forms.TreeViewCancelEventHandler(this.OnScopeTreeBeforeExpand); - this.scopeTree.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.OnScopeTreeAfterSelect); - // - // smallImages - // - this.smallImages.ColorDepth = System.Windows.Forms.ColorDepth.Depth32Bit; - this.smallImages.ImageSize = new System.Drawing.Size(16, 16); - this.smallImages.TransparentColor = System.Drawing.Color.Transparent; - // - // pnlRight - // - this.pnlRight.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; - this.pnlRight.Controls.Add(this.pnlResultView); - this.pnlRight.Controls.Add(this.pnlDescription); - this.pnlRight.Dock = System.Windows.Forms.DockStyle.Fill; - this.pnlRight.Location = new System.Drawing.Point(0, 1); - this.pnlRight.Name = "pnlRight"; - this.pnlRight.Size = new System.Drawing.Size(380, 367); - this.pnlRight.TabIndex = 0; - // - // pnlResultView - // - this.pnlResultView.Dock = System.Windows.Forms.DockStyle.Fill; - this.pnlResultView.Location = new System.Drawing.Point(0, 63); - this.pnlResultView.Name = "pnlResultView"; - this.pnlResultView.Size = new System.Drawing.Size(376, 300); - this.pnlResultView.TabIndex = 14; - // - // pnlDescription - // - this.pnlDescription.Controls.Add(this.lineBox2); - this.pnlDescription.Controls.Add(this.lblResultViewPath); - this.pnlDescription.Controls.Add(this.lblResultViewTitle); - this.pnlDescription.Controls.Add(this.pictureBox); - this.pnlDescription.Dock = System.Windows.Forms.DockStyle.Top; - this.pnlDescription.Location = new System.Drawing.Point(0, 0); - this.pnlDescription.Name = "pnlDescription"; - this.pnlDescription.Size = new System.Drawing.Size(376, 63); - this.pnlDescription.TabIndex = 13; - // - // lblResultViewPath - // - this.lblResultViewPath.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.lblResultViewPath.AutoEllipsis = true; - this.lblResultViewPath.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); - this.lblResultViewPath.Location = new System.Drawing.Point(47, 28); - this.lblResultViewPath.Name = "lblResultViewPath"; - this.lblResultViewPath.Size = new System.Drawing.Size(251, 21); - this.lblResultViewPath.TabIndex = 15; - this.lblResultViewPath.Text = "Path"; - // - // lblResultViewTitle - // - this.lblResultViewTitle.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.lblResultViewTitle.Font = new System.Drawing.Font("Tahoma", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(204))); - this.lblResultViewTitle.Location = new System.Drawing.Point(47, 8); - this.lblResultViewTitle.Name = "lblResultViewTitle"; - this.lblResultViewTitle.Size = new System.Drawing.Size(318, 20); - this.lblResultViewTitle.TabIndex = 14; - this.lblResultViewTitle.Text = "Title"; - // - // pictureBox - // - this.pictureBox.Location = new System.Drawing.Point(9, 8); - this.pictureBox.Name = "pictureBox"; - this.pictureBox.Size = new System.Drawing.Size(32, 32); - this.pictureBox.TabIndex = 13; - this.pictureBox.TabStop = false; - // - // lineBox2 - // - this.lineBox2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.lineBox2.Location = new System.Drawing.Point(6, 51); - this.lineBox2.Name = "lineBox2"; - this.lineBox2.Size = new System.Drawing.Size(366, 2); - this.lineBox2.TabIndex = 16; - this.lineBox2.TabStop = false; - this.lineBox2.Text = "lineBox2"; - // - // topLogoControl - // - this.topLogoControl.BackColor = System.Drawing.Color.White; - this.topLogoControl.Dock = System.Windows.Forms.DockStyle.Top; - this.topLogoControl.Location = new System.Drawing.Point(0, 0); - this.topLogoControl.Name = "topLogoControl"; - this.topLogoControl.Size = new System.Drawing.Size(632, 63); - this.topLogoControl.TabIndex = 3; - // - // ApplicationForm - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(632, 453); - this.Controls.Add(this.splitContainer); - this.Controls.Add(this.statusBar); - this.Controls.Add(this.topLogoControl); - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.MinimumSize = new System.Drawing.Size(640, 480); - this.Name = "ApplicationForm"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; - this.Text = "WebsitePanel Installer"; - this.Shown += new System.EventHandler(this.OnApplicationFormShown); - this.statusBar.ResumeLayout(false); - this.statusBar.PerformLayout(); - this.splitContainer.Panel1.ResumeLayout(false); - this.splitContainer.Panel2.ResumeLayout(false); - this.splitContainer.ResumeLayout(false); - this.pnlRight.ResumeLayout(false); - this.pnlDescription.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox)).EndInit(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.StatusStrip statusBar; - private System.Windows.Forms.SplitContainer splitContainer; - private System.Windows.Forms.Panel pnlRight; - private TopLogoControl topLogoControl; - private System.Windows.Forms.TreeView scopeTree; - private System.Windows.Forms.Panel pnlDescription; - private LineBox lineBox2; - private System.Windows.Forms.Label lblResultViewPath; - private System.Windows.Forms.Label lblResultViewTitle; - private System.Windows.Forms.PictureBox pictureBox; - private System.Windows.Forms.ToolStripStatusLabel statusBarLabel; - private System.Windows.Forms.ImageList smallImages; - private System.Windows.Forms.Panel pnlResultView; - private System.ComponentModel.BackgroundWorker backgroundWorker; - } -} \ No newline at end of file diff --git a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/ApplicationForm.cs b/WebsitePanel.Installer/Sources/WebsitePanel.Installer/ApplicationForm.cs deleted file mode 100644 index 75c23392..00000000 --- a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/ApplicationForm.cs +++ /dev/null @@ -1,650 +0,0 @@ -// Copyright (c) 2011, Outercurve Foundation. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// - Redistributions of source code must retain the above copyright notice, this -// list of conditions and the following disclaimer. -// -// - Redistributions in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// - Neither the name of the Outercurve Foundation nor the names of its -// contributors may be used to endorse or promote products derived from this -// software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -using System; -using System.IO; -using System.Diagnostics; -using System.Net; -using System.Configuration; -using System.Threading; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; -using Microsoft.Win32; - -using WebsitePanel.Installer.Common; -using WebsitePanel.Installer.Controls; -using WebsitePanel.Installer.Services; -using WebsitePanel.Installer.Configuration; -using System.Xml; -using System.Runtime.Remoting.Lifetime; -using WebsitePanel.Installer.Core; - -namespace WebsitePanel.Installer -{ - /// - /// Main application form - /// - internal partial class ApplicationForm : Form - { - private ProgressManager progressManager; - private ScopeNode activeScopeNode; - private static ApplicationForm instance; - delegate void VoidCallback(); - - #region Constructor - - /// - /// Initializes a new instance of the ApplicationForm class. - /// - internal ApplicationForm() - { - InitializeComponent(); - if (DesignMode) - { - return; - } - } - #endregion - - #region Scope tree - - /// - /// Adds predefined nodes - /// - private void AddDefaultNodes() - { - scopeTree.Nodes.Clear(); - ScopeNode componentsNode = AddScopeNode(null, "Components", Properties.Resources.Folder32, Properties.Resources.Folder16, new ComponentsControl(), NodeType.Components, null); - AddScopeNode(null, "Application Settings", Properties.Resources.Tool32, Properties.Resources.Tool16, new SettingsControl(), NodeType.Settings, null); - componentsNode.Expand(); - ExpandScopeNode(componentsNode); - scopeTree.SelectedNode = componentsNode; - - } - - /// - /// Adds scope node to the scope tree - /// - internal ScopeNode AddScopeNode(ScopeNode parent, string text, Icon largeIcon, Icon smallIcon, ResultViewControl resultView, NodeType nodeType, object tag) - { - string smallIconName = smallIcon.GetHashCode().ToString(); - if (!this.smallImages.Images.ContainsKey(smallIconName)) - { - this.smallImages.Images.Add(smallIconName, smallIcon); - } - ScopeNode node = new ScopeNode(); - node.Text = text; - node.ResultView = resultView; - node.SmallIcon = smallIcon; - node.LargeIcon = largeIcon; - node.ImageKey = smallIconName; - node.SelectedImageKey = smallIconName; - node.NodeType = nodeType; - node.Populated = false; - node.Tag = tag; - if (parent == null) - { - scopeTree.Nodes.Add(node); - } - else - { - parent.Nodes.Add(node); - } - //add fake node to show + - node.Nodes.Add(" "); - return node; - } - - - /// - /// Adds component node to the scope tree - /// - internal ScopeNode AddComponentNode(ScopeNode parent, string text, object tag) - { - return AddScopeNode(parent, text, Properties.Resources.Service32, Properties.Resources.Service16, new ComponentControl(), NodeType.Component, tag); - } - - /// - /// Actions on select node in the scope tree - /// - private void OnScopeTreeAfterSelect(object sender, TreeViewEventArgs e) - { - ScopeNode node = e.Node as ScopeNode; - //node.ContextMenuStrip = scopeItemContextMenu; - ExpandScopeNode(node); - PopulateResultView(node); - activeScopeNode = node; - } - - /// - /// Expands scope node in the scope tree - /// - private void ExpandScopeNode(ScopeNode node) - { - if (node != null) - { - if (!node.Populated) - { - node.Nodes.Clear(); - StartProgress("Loading..."); - string text = node.Text; - node.Text += " expanding..."; - scopeTree.Update(); - scopeTree.BeginUpdate(); - switch (node.NodeType) - { - /*case NodeType.Servers: - LoadServers(node); - break; - case NodeType.Server: - LoadServerComponents(node); - break;*/ - case NodeType.Components: - LoadInstalledComponents(node); - break; - } - node.Text = text; - node.Populated = true; - node.Expand(); - scopeTree.EndUpdate(); - FinishProgress(); - } - } - } - - /// - /// Action on expanding scope tree node - /// - /// - /// - private void OnScopeTreeBeforeExpand(object sender, TreeViewCancelEventArgs e) - { - ScopeNode node = e.Node as ScopeNode; - ExpandScopeNode(node); - } - #endregion - - #region Result view - - /// - /// Displays result view control - /// - /// - private void PopulateResultView(ScopeNode parentNode) - { - this.SuspendLayout(); - pnlResultView.Controls.Clear(); - if (parentNode.LargeIcon != null) - { - pictureBox.Image = parentNode.LargeIcon.ToBitmap(); - } - else - { - pictureBox.Image = Properties.Resources.Folder32.ToBitmap(); - } - lblResultViewTitle.Text = parentNode.Text; - lblResultViewPath.Text = parentNode.FullPath; - ResultViewControl control = parentNode.ResultView; - if (control != null) - { - pnlResultView.Controls.Add(control); - control.Dock = DockStyle.Fill; - try - { - AppContext context = new AppContext(); - context.AppForm = this; - context.ScopeNode = parentNode; - control.ShowControl(context); - } - catch (Exception ex) - { - Log.WriteError("Console error", ex); - ShowError(ex); - } - } - this.ResumeLayout(false); - this.PerformLayout(); - } - - #endregion - - #region Console - - /// - /// Application form instance - /// - internal static ApplicationForm Instance - { - get { return instance; } - } - - /// - /// Current version - /// - public string Version - { - get - { - return this.GetType().Assembly.GetName().Version.ToString(); - } - } - - /// - /// Reloads application - /// - internal void ReloadApplication() - { - //thread safe call - if (this.InvokeRequired) - { - VoidCallback callback = new VoidCallback(ReloadApplication); - this.Invoke(callback); - } - else - { - AppConfigManager.LoadConfiguration(); - Update(); - //LoadConfiguration(); - ScopeNode componentsNode = scopeTree.Nodes[0] as ScopeNode; - componentsNode.Nodes.Clear(); - componentsNode.Populated = false; - OnScopeTreeAfterSelect(scopeTree, new TreeViewEventArgs(componentsNode)); - } - } - - /// - /// Initializes application - /// - internal void InitializeApplication() - { - CheckForIllegalCrossThreadCalls = false; - LifetimeServices.LeaseTime = TimeSpan.Zero; - - this.splitContainer.Panel2MinSize = 380; - this.splitContainer.Panel1MinSize = 150; - this.progressManager = new ProgressManager(this, this.statusBarLabel); - instance = this; - - AddDefaultNodes(); - - } - - /// - /// Disables application content - /// - internal void DisableContent() - { - scopeTree.Enabled = false; - pnlResultView.Enabled = false; - } - - /// - /// Enables application content - /// - internal void EnableContent() - { - scopeTree.Enabled = true; - pnlResultView.Enabled = true; - } - - /// - /// Shows error message - /// - /// Message - internal void ShowError(string message) - { - MessageBox.Show(this, message, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Error); - } - - /// - /// Shows default web error message - /// - internal void ShowServerError() - { - ShowError("An error occurred while connecting to the remote server. Please check your internet connection."); - } - - /// - /// Shows default error message - /// - internal void ShowError() - { - ShowError("An unexpected error has occurred. We apologize for this inconvenience.\n" + - "Please contact Technical Support at support@websitepanel.net.\n\n" + - "Make sure you include a copy of the Installer.log file from the\n" + - "WebsitePanel Installer home directory."); - } - - /// - /// Shows security error message - /// - internal void ShowSecurityError() - { - ShowError(Global.Messages.NotEnoughPermissionsError); - } - - internal void ShowError(Exception ex) - { - if (Utils.IsSecurityException(ex)) - ShowSecurityError(); - else - ShowError(); - } - - - /// - /// Shows info message - /// - /// - internal void ShowInfo(string message) - { - MessageBox.Show(this, message, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information); - } - - /// - /// Shows warning message - /// - /// - internal void ShowWarning(string message) - { - MessageBox.Show(this, message, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning); - } - - /// - /// Loads installed components from configuration file - /// - private void LoadInstalledComponents(ScopeNode node) - { - Log.WriteStart("Loading installed components"); - node.Nodes.Clear(); - - foreach (ComponentConfigElement componentConfig in AppConfigManager.AppConfiguration.Components) - { - string instance = string.Empty; - if (componentConfig.Settings["Instance"] != null && - !string.IsNullOrEmpty(componentConfig.Settings["Instance"].Value)) - { - instance = "(" + componentConfig.Settings["Instance"].Value + ")"; - } - string title = string.Format("{0} {1} {2} {3}", - componentConfig.Settings["ApplicationName"].Value, - componentConfig.Settings["ComponentName"].Value, - componentConfig.Settings["Release"].Value, - instance); - - AddComponentNode(node, title, componentConfig); - } - node.Populated = true; - Log.WriteEnd(string.Format("{0} installed component(s) loaded", AppConfigManager.AppConfiguration.Components.Count)); - } - - /// - /// Returns installer web service - /// - internal InstallerService WebService - { - get - { - return ServiceProviderProxy.GetInstallerWebService(); - } - } - - /// - /// Checks for the application update - /// - /// File name - /// true if update is available for download; otherwise false - internal bool CheckForUpdate(out string fileName) - { - bool ret = false; - fileName = string.Empty; - Log.WriteStart("Checking for a new version"); - // - var webService = ServiceProviderProxy.GetInstallerWebService(); - DataSet ds = webService.GetLatestComponentUpdate("cfg core"); - // - Log.WriteEnd("Checked for a new version"); - if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) - { - DataRow row = ds.Tables[0].Rows[0]; - Version currentVersion = GetType().Assembly.GetName().Version; - Version newVersion = null; - try - { - newVersion = new Version(row["Version"].ToString()); - } - catch (FormatException e) - { - Log.WriteError("Version error", e); - return false; - } - if (newVersion > currentVersion) - { - ret = true; - fileName = row["UpgradeFilePath"].ToString(); - Log.WriteInfo(string.Format("Version {0} is available for download", newVersion)); - } - } - return ret; - } - - /// - /// Runs application updater - /// - /// File name - /// true if updater started successfully - internal bool StartUpdateProcess(string fileName) - { - Log.WriteStart("Starting updater"); - string tmpFile = Path.ChangeExtension(Path.GetTempFileName(), ".exe"); - using (Stream writeStream = File.Create(tmpFile)) - { - using (Stream readStream = typeof(Program).Assembly.GetManifestResourceStream("WebsitePanel.Installer.Updater.exe")) - { - byte[] buffer = new byte[(int)readStream.Length]; - readStream.Read(buffer, 0, buffer.Length); - writeStream.Write(buffer, 0, buffer.Length); - } - } - string targetFile = GetType().Module.FullyQualifiedName; - // - var webService = ServiceProviderProxy.GetInstallerWebService(); - string url = webService.Url; - // - string proxyServer = string.Empty; - string user = string.Empty; - string password = string.Empty; - - // check if we need to add a proxy to access Internet - bool useProxy = AppConfigManager.AppConfiguration.GetBooleanSetting(ConfigKeys.Web_Proxy_UseProxy); - if (useProxy) - { - proxyServer = AppConfigManager.AppConfiguration.Settings[ConfigKeys.Web_Proxy_Address].Value; - user = AppConfigManager.AppConfiguration.Settings[ConfigKeys.Web_Proxy_UserName].Value; - password = AppConfigManager.AppConfiguration.Settings[ConfigKeys.Web_Proxy_Password].Value; - } - - ProcessStartInfo info = new ProcessStartInfo(); - info.FileName = tmpFile; - - //prepare command line args - StringBuilder sb = new StringBuilder(); - sb.AppendFormat("\\url:\"{0}\" ", url); - sb.AppendFormat("\\target:\"{0}\" ", targetFile); - sb.AppendFormat("\\file:\"{0}\" ", fileName); - sb.AppendFormat("\\proxy:\"{0}\" ", proxyServer); - sb.AppendFormat("\\user:\"{0}\" ", user); - sb.AppendFormat("\\password:\"{0}\" ", password); - info.Arguments = sb.ToString(); - Process process = Process.Start(info); - if (process.Handle != IntPtr.Zero) - { - User32.SetForegroundWindow(process.Handle); - } - Log.WriteEnd("Updater started"); - return (process.Handle != IntPtr.Zero); - } - #endregion - - #region Progress indication - - /// - /// Starts progress indication - /// - /// Title - internal void StartProgress(string title) - { - StartProgress(title, false); - } - - /// - /// Starts progress indication - /// - /// Title - /// Disable content - internal void StartProgress(string title, bool disableContent) - { - if (disableContent) - { - DisableContent(); - } - progressManager.StartProgress(title); - } - - /// - /// Starts async progress indication - /// - /// Title - /// Disable content - internal void StartAsyncProgress(string title, bool disableContent) - { - if (disableContent) - { - DisableContent(); - } - topLogoControl.ShowProgress(); - progressManager.StartProgress(title); - } - - /// - /// Finishes progress indication - /// - internal void FinishProgress() - { - topLogoControl.HideProgress(); - progressManager.FinishProgress(); - EnableContent(); - } - - #endregion - - private void OnApplicationFormShown(object sender, EventArgs e) - { - StartUnattendedSetup(); - } - - private void StartUnattendedSetup() - { - XmlDocument doc = Global.SetupXmlDocument; - if (doc != null) - { - XmlNode root = doc.SelectSingleNode("setup"); - if (root == null) - { - Log.WriteError("Incorrect setup xml file"); - Close(); - } - Log.WriteStart("Starting unattended setup"); - ProceedUnattendedSetup(); - } - } - - public void ProceedUnattendedSetup() - { - XmlDocument doc = Global.SetupXmlDocument; - XmlNode root = doc.SelectSingleNode("setup"); - if (root.ChildNodes.Count == 0) - { - Log.WriteEnd("Unuttended setup finished"); - Close(); - return; - } - XmlNode node = root.ChildNodes[0]; - switch (node.Name.ToLower()) - { - case "install": - ParseInstallNode(node); - break; - } - } - - private void ParseInstallNode(XmlNode installNode) - { - XmlNodeList components = installNode.SelectNodes("component"); - if (components.Count == 0) - { - //remove parent install node - installNode.ParentNode.RemoveChild(installNode); - ProceedUnattendedSetup(); - } - else - { - //remove current node and start installation - XmlElement componentNode = (XmlElement)components[0]; - string componentCode = componentNode.GetAttribute("code"); - string componentVersion = componentNode.GetAttribute("version"); - string xml = componentNode.InnerXml; - installNode.RemoveChild(componentNode); - - if (!string.IsNullOrEmpty(componentCode)) - { - ScopeNode componentsNode = scopeTree.Nodes[0] as ScopeNode; - scopeTree.SelectedNode = componentsNode; - ComponentsControl ctrl = componentsNode.ResultView as ComponentsControl; - ctrl.InstallComponent(componentCode, componentVersion, xml); - } - } - } - - public override object InitializeLifetimeService() - { - ILease lease = (ILease)base.InitializeLifetimeService(); - - //Set lease properties - lease.InitialLeaseTime = TimeSpan.Zero; - return lease; - } - - } -} - - \ No newline at end of file diff --git a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/ApplicationForm.resx b/WebsitePanel.Installer/Sources/WebsitePanel.Installer/ApplicationForm.resx deleted file mode 100644 index 37d70fbb..00000000 --- a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/ApplicationForm.resx +++ /dev/null @@ -1,1571 +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 - - - 17, 17 - - - 115, 17 - - - 229, 17 - - - - - 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 - nI5yAJmLdgCZjHUAnI97AJ2QcwCekHQAn5J4AKCTdwCgk3kAopV6AKSXewCjl3wApJd+AKWZfgCpmn4A - x5hEAMKVSADInVUAxZ9eAMifWgDKoVgAyKFcAMKeYgDDoW4AxaVxAKGWgwCkl4MAppqBAKmbgACpnYIA - qZ2EAKidigCsoYYAraKJAK2kiQCuo40ArqSNALCihwCwpYoAsKWNALSpjwC8qokAq6GRAK+kkgCvpZUA - saaQALarkQC1rJMAtKqWALWslAC1q5sAt66YALWsnwC4rpkAuK+fAL2wkwC6sZYAvLCXALmwmwC9tJoA - u7GcAL21nQCzr6MAtbGmAL61oQC7s6UAv7ihALazrgC+uq0Au7m0AL+8tADEqoUAwa6KAM2xhwDOtogA - y7GPAMu3jQDQt44Ay7SXAMS5mwDAuJ4AxbqfAMm4mgDSvZYAwLejAMC3pADCuqEAxbmhAMW8owDBuKYA - wrykAMW+pgDKuqEAwLeqAMO6qADEu6oAxb2pAMC6rgDGvqwAyL6rAMi/rgDBu7AAwbywAMvApQDHwaoA - x8CvAMjBqQDIwa0AzcevANPBoADYyq0AycKxAM3DsADKxLIAzcaxAMnCtgDLxbQAzMa1AM3IsQDOyLcA - w8C6AMXDvgDGxL8AzMa7AMnFvgDOybgAysi/AM/JvADSx7UA0cy1ANHKugDRzLsA1c24ANDKvQDSzL0A - 1M69ANrPuwDX0boA1tG9ANjTvADh1b0AyMbBAMnIwwDNysEAz83CAMvJxQDNy8UAzszHAM3LyADPzckA - 0czBANTOwQDQzcQA1dDCANbSxADY0sIA2NTDANzXwQDY0sUA2tXFANzXxwDd2MEA3tnEANrVyADc18sA - 3djJANzZzADb2NIA3NnSAN/d0ADb2dQA3trUAN7c1QDh28cA4dzGAOLeyADg288A4d3OAODd0gDh3tUA - 4d/aAObhzADp480A4+DSAOTg0gDi4NUA5OHWAOvm0QDp5NUA7urWAO/s1wDk4tgA5uTaAOfl3ADp5toA - 7OfbAOjm3QDv69sA6ujeAO3q3gDv7N8A8e3aAPPv3gDz8N8A9PDeAOrp4QDs6uIA7uziAOzq5ADt7OUA - 7+7oAPHt4ADw7uYA8O7pAPTx4QDx8OoA9fPpAPLx7QD08u4A9PTvAPn37QD6+O8A9PPwAPX18QD39vQA - +Pf0APn48QD4+PYA+vr4APz7+gD7/PoA/Pz6AP7+/gAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIqKV1cAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIqPqK+vto9QAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAio2oq6+2wtTlya9sVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACe - jaCrr6+2yeXw+Pj42LZ7TwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACeoKirmK+20+j4+Pj4+Pj4 - 2LRsUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKCgqKiYmJi22PD4+Pj4+Pj4+Pj42LRsVQAAAAAAAAAA - AAAAAAAAAAAAAAAAoKCgqI+Dg6vK6Pj4+Pj4+Pj4+Pj4+Pj42K9scgAAAAAAAAAAAAAAAAAAAACloKCo - jXxyg7TY9Pj4+Pj4+Pj4+Pj4+Pj4+Pj42K9hdwAAAAAAAAAAAAAAAACgpqiDcmxmmMro+Pj4+Pj4+Pj4 - +Pj4+Pj4+Pj4+Pj41LROdwAAAAAAAAAAAAClqI1yTkFyr9jw+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4 - 0q9OcgAAAAAAAAAAALuYPD+DyvD4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4ya9MVQAAAAAAAAAA - AKg0qPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj0+PD00q9MVQAAAAAAAAAAxXJR+Pj4+Pj4+Pj4 - +Pj4+Pj4+Pj4+Pj4+Pj4+Pj09PDw8PDwyps/VQAAAAAAAAAAu2ao+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4 - +PT08PD08PDw8PDoyq8/VQAAAAAAAAAAu1Go+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PT09PTw9PDw8Ojw6Ovo - wqg5VQAAAAAAAAAAu1Go+Pj4+Pj4+Pj4+Pj4+Pj4+PT08PTw9PDw8PDo6Ovo6OjotK85cgAAAAAAAAAA - u1Go+Pj4+Pj4+Pj4+Pj49PT08PTw9PD08PDw6Ojo6Obm5ubmtKs5VQAAAAAAAAAAu1Go+Pj4+Pj4+Pj4 - +PT09PT09PD08PDw8Ojo6Obm2ObY5t7YtJgxcgAAAAAAAAAAu1Go+Pj4+Pj4+PT09PT08PTw8PTw8PDo - 8Ojm2ObY5t7h3t7Yq6gxcgAAAAAAAAAAu2ao+Pj4+PT09PT09PTw9PDw8PDw6PDo6N7Y5t7e3t7e3t7e - qKgvcgAAAAAAAAAAu2aY+Pj49Pj49PT08PT08PDw8Ojw6+jo3t7e3t7e0tLS0tLSmJgvcgAAAAAAAAAA - u2ao+Pj09PD09PTw9PDw8PDw8PDo6Nje097S0sXSxdLSxdLFmJgecgAAAAAAAAAAu2aQ+PT49PT09PD0 - 8PDw8Ojw6Ojo3tLS0sXT0tLF0sXJycrKg5gecgAAAAAAAAAAu2aY+PT09PT08PTw8PDw8PDo6NjS0tLF - 08XKysrJycnSu8nKg6gbcgAAAAAAAAAAu1GW+Pj09PTw9PDw8PDo8Ojo09LFysXJycnJycXKysq7ycq7 - g48bcgAAAAAAAAAAu2aY+PD09PT06PTw8PDw5tPSysXJycrKysrKysrKtravj3xOP5gWcgAAAAAAAAAA - ylGN+PT09PD09Ojw8OjexcrKysrKysrKyra2qINmQT4xLS8vLYMWdwAAAAAAAAAAu1GY+PT09PTo9PTo - 3srKysrCysLKtKiDTjwvGxsvLzk6TGFhNpgRcgAAAAAAAAAAylGN+PT08PT06NTSysrCwrSrg1EyGxER - Fy80PzopbF0HJZqyTIMRdwAAAAAAAAAAu2aQ+PT09OjY0ru2q4NRNBsREREvND9RYSIjeCUGW14kJ8fP - bIMMdwAAAAAAAAAAylGQ+PTo07SIUTkbEQ4RLzQ/TmxyfYibZCAhf1sofp1fY7+VbHICAAAAAAAAAAAA - xU6AyoA+GxEOFR40P05seXyam66/xszMnV1Ywpl4lZh0Zk5mmA4NAAAAAAAAAAAAylENFxs0P05RbHl9 - lZuyv8bMzNra2trUyZV8kXJmZmZyg4OAEQEAAAAAAAAAAAAAu6iDqKuvsq+yssbGzMza2trn2s3Gr5V8 - cmx0g4ODck42FAwEEQAAAAAAAAAAAAAAysrT09TY5+fn59rn5+fUybaYg3J5g42IfGY+FwwDBBI7cgAA - AAAAAAAAAAAAAAAAu8n09PTu9O3o2NK2mIODg42Ig3JLLw4CBAwqQQAAAAAAAAAAAAAAAAAAAAAAAAAA - u9L09PTt2NK2q5iDjYNRPBsMBAwUPHcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyqjU5dTKtJhyRC8R - CAgRMFEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI1mTjkXDQwOKkGNAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQTxuAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAD///////8AAP///////wAA////////AAD///////8AAP/////8PwAA - /////+AfAAD////+AA8AAP///+AADwAA////AAAPAAD///AAAA8AAP//AAAADwAA//AAAAAPAAD/gAAA - AA8AAPwAAAAADwAA+AAAAAAPAAD4AAAAAA8AAPAAAAAADwAA8AAAAAAPAADwAAAAAA8AAPAAAAAADwAA - 8AAAAAAPAADwAAAAAA8AAPAAAAAADwAA8AAAAAAPAADwAAAAAA8AAPAAAAAADwAA8AAAAAAPAADwAAAA - AA8AAPAAAAAADwAA8AAAAAAPAADwAAAAAA8AAPAAAAAADwAA8AAAAAAPAADwAAAAAA8AAPAAAAAAHwAA - 8AAAAAAfAADwAAAAAD8AAPAAAAAAfwAA8AAAAAP/AADwAAAA//8AAPAAAB///wAA8AAH////AAD4AP// - //8AAP4//////wAA////////AAD///////8AAP///////wAA////////AAAoAAAAIAAAAEAAAAABAAgA - AAAAAAAEAAAAAAAAAAAAAAABAAAAAQAAAAAAAJyPdwCiln4Au6V9AMWeWQDGomMAx6JpAMeocADMsH0A - pZmBAKabhQCqnYIAqJ2FAKmeiACtoYYAq6CKAKygigCroY4ArqOMAK6kjQC0o4IAsKaNAK6kkQCwppEA - saiQALSrkwCzqpQAtKqVALaulwCzqZkAt62YALmvmwC5sZkAurCdALy1ngC7saEAvLOgAL21oAC7s6UA - vbSmAL+4pgC+vLcAz7OHAMGxjQDOto4AyribAMC2oQDAt6UAwLmiAMK5pQDDvKQAxbynAMi7pgDCuqkA - xb2pAMK7rwDGvq4AyL+rAMe/sADVwJwAzsGhAMvCrwDMxq4AxsCyAMfBtADJwrEAysSzAMzEswDKxLUA - zMa1AM3IsADJxbkAy8e9AM7IuADOyb0A0ce2AN3PsQDazLQA0cq6ANbNuQDRyr0A0828ANTOvgDV0LkA - zcrBAM3KxQDPzMYA0s7BANTOwADUz8UA0s/KANPQwwDV0MIA19HEANjSwgDe18IA2NPHANrVxQDc2MEA - 2tbKANzWyADb2MsA3dnKAN3ZzgDe2dAA393RAODbygDj38kA4NvSAOHd0QDh3tQA5N/WAOXgyQDl4NEA - 4uDUAOTh1gDn5NcA6OPSAOrm0QDr5tcA7enWAOTi2ADm5NoA5+XcAOrn2gDo5t0A7urZAOzp3gDw7NoA - 6ujgAOzq4gDs6+QA7uzmAO/u6ADx7+cA8O7pAPHw6gD08ukA8vHtAPTz7wD19O8A9fXxAPf29AD59/AA - +Pf0APn48QD5+PYA+vr4APz7+gD8/PoA/v7+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFRXV0cpAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABUVFtm - c4SGZigAAAAAAAAAAAAAAAAAAAAAAAAAVFRUW2h8ipOWlpNmMAAAAAAAAAAAAAAAAAAAAABUVFRbbYSK - lpaWlpaWk2YwAAAAAAAAAAAAAAAAVEdHVF5thpOWlpaWlpaWlpaTZi4AAAAAAAAAAFpHQDhHZHyKlpaW - lpaWlpaWlpaWlpBkIgAAAAAAAABAL0VohJaWlpaWlpaWlpaWlpaWlpOWimQiAAAAAAAAVziIlpaWlpaW - lpaWlpaWlpaTk5CQjo6KZBwAAAAAAAA6ZpaWlpaWlpaWlpaWlpOQk5OQjo6OioRbHAAAAAAAADptlpaW - lpaWlpOTk46TkJOOjoqOioqKhFIcAAAAAAAAOm2WlpaWk5OTk5OQk46Oio6KioqGiIR8VxwAAAAAAAA6 - bZaWkJOTk5CQkI6OipOKioqEhISEhHpSFwAAAAAAADptlpCWkJOQk46OjoqOioqGhH+Ef3yBc1ISAAAA - AAAAOGiWk46TkI6OjoqOioqKhH96fHp6enpoSRIAAAAAAAA4aJaOk5CQjo6KjoqKhnx6enp6enp6emZJ - EgAAAAAAADhmlo6Qjo6OipOKin96enp6enptc25zZkUSAAAAAAAAOmiTk46OjoqThoRzc3Nzc25oc2hm - W1QwOAwAAAAAAAA4ZpaOjo6OioRzc3NzbWhmW0UoHhwSFQ4uDAAAAAAAADpok5COiop8c2ZmUkAiHAoL - DBQDKwQ8PjAMAAAAAAAAOGaWjohzUkUiHAoLDBIcMAUHCAQ7BUxfMAkAAAAAAAA4UmQ4EgwLChIcMD5S - YnBwKixMLVI0OUUXEgAAAAAAAEUSHBwwMElTYnB2doB2dmZLPkU4MDAhDAEAAAAAAAAAZG1zf3+AgIB2 - f3NfW0tFMC4XDAkNFi4AAAAAAAAAAABtk5GRhn9oZEs+MCIXCgoNHjoAAAAAAAAAAAAAAAAAAGSEhHNS - OBwODA0XJwAAAAAAAAAAAAAAAAAAAAAAAAAAADgSDBciAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////////////////8H///wB///AAf/+AAH - /4AAB/gAAAfwAAAH4AAAB+AAAAfgAAAH4AAAB+AAAAfgAAAH4AAAB+AAAAfgAAAH4AAAB+AAAAfgAAAH - 4AAAB+AAAAfgAAAP4AAAP+AAB//gAf//8H///////////////////ygAAAAYAAAAMAAAAAEACAAAAAAA - QAIAAAAAAAAAAAAAAAEAAAABAAAAAAAAtqF5ALumfgDBo2wAyaZrAK+ljQCwpo0At6iJAK+lkwCwppIA - tqySALKplgC0qpYAtayVALiulwC2rZsAuK+dALqwmQC6sJ0AvLKfAL+3ngC6sqEAvbWhAL62pQC/uqsA - ybGFANG5jgDPuZYAwbmmAMW8pgDKvKIAwrqpAMO9qwDEvKkAw7utAMO+rQDFvq4Ax8CqAMnArgDLxKwA - 0sSpAMfBsADIwrEAzcewAMjBtQDNx7YAysW6AMrHvQDOyLkAzcm8ANDItQDQyrkA0Mq+ANPNvgDW0boA - 3NO6AM/MwwDRzcAA1c/DANDNxQDW0MEA1dHEANjTxQDa1MQA39rFANHQygDY08gA2tXJAN7ZyQDc2MwA - 39vRAN/c0QDh3MYA4dzOAOHd0QDh3tQA5uHPAOjkzwDi4NUA5OHXAOrl0wDq5tUA4+DYAOTh2ADm5NoA - 5+PcAOfk3ADo5t4A6ejfAPDt3wDq6OEA7OniAOzr5ADt7OUA7+7oAPDu5QDw7ukA9PHmAPTy6ADy8ewA - 9PLuAPb18QD39/QA+Pf0APj49gD6+vkA/Pz6AP7+/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOzsvAAAAAAAAAAAAAAAAAAAAAABBOz5HW2RJGAAA - AAAAAAAAAAAAAAA4Oz5PXmdra2tKIwAAAAAAAAAAADsxMUNWZGtra2tra2tKKgAAAAAAAC8qL0VbZ2tr - a2tra2tra2tJIwAAAAAAI0pga2tra2tra2tra2tnZ2ZFIwAAAAA7Smtra2tra2tra2dnZ2ZmZmQ+IwAA - AAA0V2tra2trZ2tmZ2dnZmRkZGA+HAAAAAA0VmtrZ2tmZ2ZmZmZkZFtkW1s+FwAAAAA0VmtnZ2dnZmZm - ZGRgW1tbW1Y0FwAAAAA0Umtna2ZmZmRkZFtbW1ZWVk8zFgAAAAA0SmtmZmZmZGRgWFZWT1ZPT04tFgAA - AAA0VmdnZmRkZFtWT09PTkVFPi0cFgAAAAAxUmtmZmRbVk9FRTQqHBENBw0REAAAAAA7SmtkW0c+JRYN - BgcBAgMZBDccEAAAAAA0Oz4jDQUFDRQnNkQaGhsoHjMOFgAAAAA+FBwlJzdETVBQTEQzJyMRDgUIAAAA - AABKXmRhWVBJPjMjEA0FCxYqAAAAAAAAAABKXlc+KhEODQ4jAAAAAAAAAAAAAAAAAAAAKhYfAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - ////AP///wD//8cA//wDAP/gAwD+AAMA8AADAOAAAwDAAAMAwAADAMAAAwDAAAMAwAADAMAAAwDAAAMA - wAADAMAAAwDAAAMAwAAHAMAAPwDAD/8A4///AP///wD///8AKAAAABAAAAAgAAAAAQAIAAAAAAAAAQAA - AAAAAAAAAAAAAQAAAAEAAAAAAAC+ro0AvrKXAL20ngC8s6EAvrSgAL+3pwDBsI0Ay7OJAM24kgDMu5cA - zr6fAMG3oQDCu6MAw7qkAMK5qQDFva0Ayb+sAMa/sQDHwK4Ay8WuAMvDtwDKxbQAyMW6AM/JvQDRy7oA - 0cq9ANPOvwDUz7wA19G/ANjTvwDRy8AA087BANTPwwDSzcQA1tHFANjTxQDf2cYA1NHKANbTzQDa1coA - 2dXNAN3YywDc2c0A29nRAN7a0gDi3coA4d3SAOHd1QDj4dcA5eLXAOXi2ADm5NsA5uXcAOnm3QDq6N8A - 6efgAOrp4QDs6uMA7erlAO7s5gDx8OsA8vHsAPTz7gD29fEA+Pf0APn49gD6+vgA/Pz7AP7+/gAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACYAAAAAAAAAAAAA - ACksNT4yFwAAAAAAACYmLDlARERENyMAAAAiIiw8Q0RERERERDUjAAAAMEREREREREREQ0EwIwAALDlE - RERERENBQD4+JSIAADA5RERDQUBAPjk5OSQiAAAwOURDQEA+PDk4NzUiGgAAMDhDQEA+OTUyMCUjExoA - ADA4Qz43JSIWDQIBBwMYAAAsKSQTBQUNFAoICgsMAAAANRoaHiUuJR0RAwUFEgAAADk3MhoTDw8XAAAA - AAAAAAAAKQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//8AAP/7AAD/gQAA+AEAAMABAADAAQAA - gAEAAIABAACAAQAAgAEAAIABAACAAwAAgAMAAIB/AADf/wAA//8AAIlQTkcNChoKAAAADUlIRFIAAAEA - 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 - qCoM+LCbUQ/keqiYUzXq89e6BUBlkH9XzA/MBMCMPh2UwnAVE04L2wlCKLuX806pysgv31f98fntimYC - YEafJpIFAR8OlAuG3aIDXR5ljJ/+rSoMAPUc/00xPzATADP69NNu1IWd2g905aRUZfTXPS8THDdNMwEw - o88alRkT+fvdCAYdVUUBO/m7JzQTADP6LFNVdJBeVzH8yVN9kO6nGQZ18VV53jTNBMCMZpRTmTGvqmFR - RTtlbl38PaeZAJjRjIrEj+LT1hvI1zraCYOn5e4b46c0EwAzmlE1qmo70NE0KL/vzK6imQCY0Yx2Rjp0 - ID9P48jEp7slTD+jGc1o70m3UAiopiLMaEYzmtGMZjSjGc1oRjOa0YxmNKMZzWhGM5rRjGY0oxnNaEYz - mtGMZjSjGc1oRjOa0e7o/weShWoRQ/D8BAAAAABJRU5ErkJggigAAAAwAAAAYAAAAAEAIAAAAAAAgCUA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAACAAAABAAAAAgAAAAMAAAADAAAAAoAAAAGAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAIAAAACAAAABgAAAAwAAAAQAAAAFgAAAB4GBQYoCgkKKgEBASAAAAAaAAAAEAAAAAYAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAIAAAAEAAAACAAAAA4AAAAUAAAAGgMDAyYtLCs6aGZiXJaTjI2tqaG5q6edwYeDeo8qKShAAAAA - JgAAABQAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AgAAAAQAAAAGAAAADAAAABAAAAAWAAAAIB8eHTBYVlNOioeBequon63BvrTX0M3A89nUxv/c18f/3NjJ - /87JuP2bloi7JSQjRAAAACYAAAAQAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AgAAAAYAAAAKAAAADgAAABQAAAAcEhISKklIRUR/fHZqo6CYnby4r83Nyb3r1tLE/dvWx//d2cn/4t7P - /+nm2//w7ub/4+DS/9zXx//DvKX9e3dtjQAAADIAAAAeAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAA - BAAAAAgAAAAMAAAAEAAAABYHBwciPDo5OnNxbF6cmZGNt7Sqv8nFuuXUz8L52NPE/9rVxP/e2cn/5eLV - /+7s4//29fD//Pz6////////////6+je/9vWx//Iwaj/mZSEvQQEBjgAAAAgAAAACAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAA - BgAAAAoAAAAOAAAAFAEBARwrKikwZ2VhUpOQiXyxrqWxxsK329HMwPXV0MH/1tDA/9jSwf/e2cr/6OXa - //Lx6v/6+ff//v7+////////////////////////////6+je/9vWx//Hv6b/nZeHvwoKDCwAAAAWAAAA - BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAEAAAA - CAAAAAwAAAAQAAAAGBoaGShaWFVGiYaAbquooKHBvrTPzsq+79PNv/3SzLv/0su6/9bQv//g28//7eri - //f18v/9/fz/////////////////////////////////////////////////6+je/9vWx//FvKP/o52L - tRQVGRQAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAGAAAA - CgAAAA4AAAAUDQwMIEpIRTqAfXhipKGakb26scPMyLzp0cy++8/JuP/NxbP/zse1/9fRwv/l4df/8vDr - //v6+f//////////////////////////////////////////////////////////////////////6+je - /9rWx//DuqH/pqCNrz5BUQYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAIAAAA - DAAAABADAwMaODY1LnVyblSempSDubats8nGut/Pyr35zce3/8jArv/Gvqv/zMW0/9vWyv/r6eL/9/b0 - //7+/v////////////////////////////////////////////////////////////////////////// - ////////////6+je/9rWxv/AuJ7/pp+Mr11geQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - BAAAABAICAgeWlhVPpWSjHK0samlx8O5087KvfPMxrb/xb2q/8C3o//Cuab/z8m6/+Pf1v/z8e3//Pz7 - //////////////////////////////////////////////////////////////////////////////// - /////v/+/v7//v7+//7+/f/9/v3/6ebc/9rVxv+/tpz/pJ2LrVxhfQQAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAACDk3NiSppp6NzMi948zGt/3Du6j/ubCb/7iumf/Duqn/2NLH/+zp5P/5+Pb////+ - ///////////////////////////////////////////////////////////////////////+/v7//v7+ - //7+/f/+/f3//f39//39/P/8/Pz//Pz7//z8+//7/Pv/5+Ta/9rVxf+9tJr/o5yJrV9kggQAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAASEVFCL+7so3Pybv7saaQ/7Sqlv/Kw7X/49/X//Tz8P/9/f3///// - ///////////////////////////////////////////////////////////////+//7+/v/+/v7//v79 - //39/f/9/fz//fz8//z8+//8+/v/+/v6//v7+f/6+vn/+vr4//r5+P/6+fj/5uPX/9nUxf+7spf/opuI - rWFpiAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvLexQNLNwO+toYv/083C//v7+v////////// - ///////////////////////////////////////////////////////+/v7//v7+//7+/f/+/v3//f38 - //39/P/9/Pz//Pz7//z8+//7+/r/+/v6//v7+f/7+vn/+vr4//n59//5+Pb/+Pj2//j39f/49/X/5OHV - /9nUxP+5sJX/oZqHq2VtjgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAycW8i8W9rP+9tKP//v7+ - //////////////////////////////////////////7//v7+//7+/v/+/v7//v79//39/f/9/f3//f38 - //38+//8/Pv//Pz7//v7+v/7+/r/+/r5//r6+P/6+vj/+fn3//n59//5+Pb/+Pf1//f29P/39vP/9/Xz - //b18v/29fL/4t7S/9jTxP+3rZP/oZiFq2dxkwIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4cncEy8e+ - rb+2o//TzcL////////////////////////////+/v7//v7+//7+/f/9/f3//f39//39/P/9/fz//fz7 - //z8+//8/Pv//Pv6//v7+v/7+/n/+/r5//r6+P/6+fj/+vn3//n49v/5+Pb/+Pj1//j39P/39vP/9vXy - //X08f/19PD/9PTw//Tz7//08+//4NzQ/9jSw/+2q5H/n5eFqWh0nQIAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAACBe38Ey8e+r7+2o//UzsP////////+/v/+/v7//v7+//7+/f/+/f3//f38//39/P/9/fz//Pz8 - //z8+//8+/v/+/v6//v7+f/7+vn/+vr4//r6+P/6+ff/+fn3//n49v/4+Pb/+Pj1//j39P/39vT/9/bz - //b28v/09PD/9PPv//Pz7v/z8u7/8vLt//Lx7f/y8e3/39rN/9fSwv+0qY//npaDp2d1qQIAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAACDfYEEzMi/r7+2o//UzsP///////39/f/9/f3//f38//39/P/9/fz//Pz7 - //z8+//8+/r/+/v6//v7+f/7+vn/+vr4//r6+P/6+ff/+fn3//n49v/5+Pb/+Pf1//j39P/39/T/9/fz - //b28//29fL/9fXx//Pz7v/y8ez/8vHs//Hw7P/x8Ov/8e/q//Dv6v/w7+r/3djL/9fRwv+yp43/npWC - pWR5vAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACFfoIEzci/r7+2o//TzcL///////39/P/8/Pv//Pz7 - //z8+//8+/r//Pv6//v7+f/7+vn/+vr5//r6+P/6+fj/+fn3//n49v/5+Pb/+Pj1//j39f/39/T/9/b0 - //f28//29fL/9vXy//X08f/19PD/8/Lt//Hv6v/w7+r/8O/p/+/u6f/v7uj/7+3n/+7t5//u7ef/29bI - /9bRwf+wpYr/nZSBowAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACGgIQEzci/r7+2ov/TzcH//v/+ - //z8+//8/Pv//Pz6//v7+v/7+/n/+/r5//v6+P/6+vj/+vn3//n59//5+Pb/+fj2//j39f/49/X/9/f0 - //f28//39vP/9vXy//b18f/19PH/9fTw//Tz7//y8Oz/7+7o/+/u5//u7ef/7u3m/+7s5v/t7OX/7ezk - /+3r5P/s6+X/2dTG/9bQwP+uo4j/nJOAoQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACJgoYEzcnA - r7+2ov/TzMH//v79//z7+v/7+/r/+/r5//v6+f/7+vj/+vn4//n59//5+ff/+fj2//j49f/4+PX/9/f0 - //f39P/39vP/9vby//b18v/29fH/9fTw//T07//08+//8/Lu//Dv6v/u7Ob/7ezl/+3r5f/s6+T/7Ovj - /+zq4//r6uL/6+nh/+vp4f/q6eH/19HD/9XPwP+soYb/m5J+nwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAACLhIYEzsnAr7+1ov/SzMD//f79//v7+f/7+vn/+vr4//r6+P/6+ff/+fn3//n49v/4+Pb/+Pj1 - //j39P/39/T/9/bz//b28v/29fL/9fXx//X08P/18/D/9PPv//Py7v/z8u3/8O7o/+zq5P/s6uP/6+ri - /+vp4v/q6eH/6ujh/+ro4P/p6N//6eff/+nn3//o597/1c/A/9TPv/+rn4P/mpB9nQAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAACMhogEzsrAr7+2ov/SzL///f38//v6+f/6+vj/+vn4//r59//5+fb/+fj2 - //j49f/49/X/9/f0//f28//39vP/9vby//b18f/19PH/9fTw//Tz7//08+//8/Lu//Lx7P/u7OX/6unh - /+ro4P/q6OD/6ejf/+nn3//p597/6Ofd/+jm3f/o5t3/5+bc/+fl2//n5dz/0829/9TOvv+pnYL/mZB8 - nQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACPh4oEz8rBr7+2ov/Sy7///f37//r6+P/6+ff/+fn3 - //n49v/4+Pb/+Pf1//j39P/39/T/9/bz//b28v/29fL/9fXx//X08P/09PD/9PPv//Py7v/z8u3/8O/q - /+vq4v/p59//6efe/+jm3f/o5t3/5+bd/+fl3P/n5dv/5+Xb/+bk2//m5Nr/5ePZ/+Xj2f/l49n/0cu6 - /9POvf+nm3//mI97mwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACRiYwEz8vBr761ov/Ry77//Pz7 - //r59//5+ff/+fj2//n49v/49/X/+Pf0//f39P/39vP/9vXy//b18f/19fH/9fTw//Tz7//08+7/8/Lu - //Lx7P/u7eb/6eff/+fl3P/n5dz/5+Xb/+bk2//m5Nr/5uTa/+Xj2f/l49n/5eLY/+Ti2P/k4df/4+HW - /+Ph1v/j4Nb/zsm4/9PNvf+lmX3/mI56mQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACRi48Ez8vC - r761ov/Ry77//Pz7//n59//5+Pb/+fj2//j49f/49/T/9/fz//f28//29fL/9vXx//X08f/19PD/9PPv - //Tz7v/z8u7/8fDq/+vq4v/n5dv/5uTa/+bk2v/l49n/5ePZ/+Ti2P/k4tf/5OLX/+Th1//j4db/4+HV - /+Lg1f/i4NT/4t/U/+Hf0//h39P/zca1/9LMvP+kl3v/l4x6mQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAACTjZEE0MzCr761of/Ryr7//Pz6//n59v/5+Pb/+Pj1//j39P/39/T/9/bz//b28v/29fL/9fTx - //X08P/08+//9PPv//Py7f/u7Ob/5+Xc/+Xj2P/k4tj/5OLX/+Th1//j4db/4+HW/+Lg1f/i4NX/4uDU - /+Lf1P/h39P/4d7S/+He0v/h3tL/4d7S/+De0v/g3dH/ysSy/9HMu/+ilXn/lox4lwAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAACVj5ME0MzDr761of/Ryr3/+/z6//n49v/5+PX/+Pj1//j39P/39vP/9vby - //b18v/19fH/9fTw//T07//08+7/7+/p/+jn3v/k4tf/4+HW/+Pg1v/i4NX/4uDV/+Lf1P/h39T/4d/T - /+He0v/h3tL/4d7S/+He0v/g3tL/393Q/9zZzP/X08T/z8q6/8a/rf++tqH/tqyU/9HKuv+gk3f/lYt3 - lQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACXj5QE0czDr761of/Ryr3/+/v6//n49v/4+PX/+Pf1 - //f39P/39vP/9vXy//b18f/19PH/9fTw//Hw6//q6OD/5OHX/+Lg1P/i39T/4d/T/+Hf0//h3tP/4d7S - /+He0v/h3tP/4d7S/9/d0P/c2cz/1dHD/8zGtf/Buab/t66Y/7Cljf+qn4b/qZ2C/6qeg/+pm4D/qZp+ - /8/It/+fkXX/lIp3lQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACZkZYE0c3Dr761of/Qyr3/+/v6 - //n49v/4+PX/+Pf0//f38//39vP/9vXy//b18f/y8ez/6+nh/+Ph1//h3tP/4d7S/+De0v/h3tL/4d7S - /+He0v/g3dH/3NnM/9XRw//KxLP/vLSg/6+ljv+nm4L/opV7/6KVe/+mmoH/qp+E/7Gnjf+8qon/vbCT - /7+5of/BuqL/sKKH/8/It/+dj3P/lIl1kwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACbk5cE0c3E - r760of/Qyb3/+/v6//n49v/4+PX/9/f0//f29P/29vP/8/Lt/+vp4f/j4db/4N7S/+De0v/h3tL/4N3R - /93azf/W0sP/y8W0/720of+uo43/pJd+/52QdP+cjnL/oJN4/6qdgv+uooj/tKyT/8Guiv/FpXH/xbqf - /8u3jf/GkDT/yKFc/9fRuf/d2cL/vLCX/8/It/+bjXH/k4h1kQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAACdlZkE0s3Er760oP/Qybz/+/v6//n49v/4+PX/+Pf0//Ty7v/r6uL/5OLX/+Dd0f/d2s3/19PE - /8zGtf++taH/rqSN/6OXff+cj3P/m41w/5+Sdv+mmn//raSK/7WtlP+8tZ3/xLmb/8idVf/Fn17/y8Cl - /8qhWP/EjSv/zraI/9C3jv/In1r/wp5i/+njzf/x7dn/xbmh/8/It/+Wh2r/k4h1jwAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAACfl5sE087Fr720oP/Qybz//f38//r59//z8+7/5+Xc/9rWyf/Nx7b/v7ai - /7Cljf+jlnv/nI5y/5qMb/+dkXT/pZp+/62jif+1rZT/vLWd/8K8pP/Hwar/zcev/9HMtf/W0rz/0r2W - /8eYRP/ClUj/2Mqt/82xh//DoW7/08Gg/+HVv//LtJf/ybia/+Hbx//Vzrj/x72o/8W9qf+Kelv/lox8 - cgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAChmZ0E087Fr720oP/JwbL/4t7V/8fAr/+xp5D/opV7 - /5uNcP+Zi27/nZBz/6SZfv+tpIn/tq6V/722nv/DvaX/yMKr/83HsP/SzbX/19K7/9zXwf/h3Mb/5uLM - /+vm0f/v7Nf/4dW8/8uxj//EqoX/5+DM/9rPu//KuqH/1c24/9XNvP/Ivqv/wbej/7uxnf/Bt6T/0cu6 - /5uNcf+Jel/loJmRMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACjm58E087Fr8C3pP+YiWz/n5F2 - /6OXfP+toor/tayV/7uznP+/uKH/xL6m/8nDrP/NyLH/0s22/9jTvP/d2MH/4t3H/+fizf/r59L/7+vW - //Hu2f/z79v/8u/b//Ds2v/t6Nf/5eDR/9LHtf/Nw7D/zca0/8e+rf/BuKf/v7Wj/8C3pv/Gvq3/y8Oz - /83Gtv/Iwa//nZB0/4NzVfmWjHx2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACjm58E0czD - r9bRwv/Mx7X/0s69/9jUw//a1sX/29fF/9vXxP/d2MT/39rE/+LeyP/n483/6+fS/+/r1v/y7tr/9PDc - //Tw3v/z797/7+vb/+nk1f/h3M3/2dLD/9DIuP/Iv67/w7qp/8S7qv/Gvq3/ysOy/83Gtv/MxbT/xr6s - /7uxnf+toYr/n5J4/5SFav+Jel71h3he2ZaNfHCvra4KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAACjm58E0MzCr+Dc0P/r6N7/6ufb/+3q3v/v7N//8O3g//Lv4P/z8N//9PHf//Xx3//18uH/9PDi - //Ht4P/s59v/5ODT/9vVyP/Ryrv/ysKy/8a+rf/Gvq7/ysOy/83Gt//Nxrb/ycGx/7+2o/+wpY//oJN5 - /5GCZ/+IeFv7hXVa7YV1XNWIemOzjoFti5OId2KbkoZAqKOfHMvP2gIAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAACjm58E0MvCr+Xi1v/5+PH/+vjv//r48P/7+fD/+vjv//n37f/18+n/7+zh - /+bh1v/b1cj/0su8/8zEtf/KwrL/y8Oz/83Gtv/Ox7f/zMW1/8W8qv+4rpn/qJyE/5mKb/+NfWH9h3Za - 84RzWeGFdl3DiXtmn46Cb3SWi3xMopqRLrGurBbR1d4GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACkm6AEzce9r+Xi1v/5+PP//Pv4//r59f/18+//7uvl - /+Xg2P/c18v/1c/B/9HKu//PyLj/zsi3/8nCsP+/tqL/sKWP/6GTev+UhWn/jHxg+Yd3W+mHd17Ri3xl - r4+CboeWinleoJeKOq+poyDIx8sM+v3/AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwbmug9fSxf/q597/7uzl - /+rn3//j39X/29fK/9LMvP/Gvqz/uK6Z/6mchP+bjXL/koNn/Yx7X/GKel/bjX5lwZCCbJuXindwoJWG - SqykmyrAvLsU4ubuBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAurOr - Hrqxorm+taL9vbSg/7Cljv+hlHr/mIht/5CAZPeNfGHljn5lzZKEba2XinWFoJSEWquilja7tbAc19fb - CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAALSspBalmYhslohxq4+AZrWWiHKZn5OAbqmfkUa4sKgmz8vMEPDx+AQAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9Pb+BPL1/gYAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////8A - AP///////wAA//////APAAD/////AAcAAP////gAAwAA////gAABAAD///wAAAEAAP//wAAAAQAA//4A - AAABAAD/4AAAAAMAAP8AAAAABwAA+AAAAAAHAADwAAAAAAcAAPAAAAAABwAA8AAAAAAHAADwAAAAAAcA - APAAAAAABwAA4AAAAAAHAADgAAAAAAcAAOAAAAAABwAA4AAAAAAPAADgAAAAAA8AAOAAAAAADwAA4AAA - AAAPAADgAAAAAA8AAOAAAAAADwAA4AAAAAAPAADgAAAAAA8AAOAAAAAADwAA4AAAAAAPAADgAAAAAA8A - AOAAAAAADwAA4AAAAAAPAADgAAAAAA8AAOAAAAAADwAA4AAAAAAPAADgAAAAAB8AAOAAAAAAHwAA4AAA - AAA/AADgAAAAB/8AAOAAAAD//wAA8AAAP///AADwAA////8AAPgB/////wAA/n//////AAD///////8A - AP///////wAA////////AAAoAAAAIAAAAEAAAAABACAAAAAAAIAQAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAABAAAAAgAAAAGAAAA - BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAGAAAADgcHBxpDQj80bWtm - UlVTTkIHBwceAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAABAAAAAoAAAEULy4tKm1rZkyYlY18tbGn - r8nFuNvRzcDzxL+x54B8cYEAAAAmAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAGAAAADh4eHSBgX1tAkI2GbK+roZ/Dv7LP0c2/ - 793Yy/3m4tb/7+3k//Hv5//e2cn/uLGd4z48OE4AAAAWAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAACAAAABAAAAAoQEBAYVFJQNIeFf1yppZyRvrmuwcvGuOfV0cL739vO - /+nm3P/z8ev/+vr3//7+/f//////+vn3/97ay/++t6D1YV5WWAAAABAAAAACAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAIAAAAGBgYHEkNCQSh/fXhMo6CYfri0qLPFwLPdzsm699bRw//h3ND/7Ori - //b18f/9/Pv////////////////////////////6+ff/3tnK/722n/OFgHRAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAACAAAABAAAAAwxMTAednRwQJ2ak261sKajwLuu08fBsvHOyLj/19HE/+Tf1v/w7uj/+vn3 - //7+/v////////////////////////////////////////////r59//d2cr/u7Oc8ZyWiDQAAAAAAAAA - AAAAAAAAAAAAAAAAAgcHBxCAfnlIsKyjkby3qsXBu6vpxb2s/czFtf/Y08f/6OXd//X08f/9/fz///// - ///////////////////////////////////////+/v7//v7+//7+/f/9/f3/+Pf0/9zXyP+5sZnxm5WH - NAAAAAAAAAAAAAAAAAAAAAAAAAAAsK2lVMG7rOXAt6X/zMW2/93Yz//u7Of/+vr4//////////////// - ///////////////////////+/v7//v7+//7+/v/9/f3//f38//z8+//7+/r/+/v5//v6+f/19O//29bG - /7eulvGalIY0AAAAAAAAAAAAAAAAAAAAALu3sxLIwrTFwrqp//Lw7f/+/v7///////////////////// - /////////////v7+//7+/v/+/v3//f39//39/P/8/Pv//Pv6//v7+f/7+vn/+vn4//n49v/49/X/+Pf1 - //Lx7P/Z1MT/tKyU75qThTIAAAAAAAAAAAAAAAAAAAAAxcG7MMO7q+3e2dD//////////////////v7+ - //7+/v/+/v3//f39//39/P/8/Pz//Pz7//z8+//7+/r/+/r5//r6+P/6+ff/+fn2//j49f/39vT/9vXy - //X18f/19PH/7+3n/9jSwv+yqZHvmZKEMgAAAAAAAAAAAAAAAAAAAADGwrs2w7yr8eHd1f///////v7+ - //7+/f/9/f3//fz8//z8+//8/Pr/+/v6//v7+f/6+vj/+vn4//n59//5+Pb/+Pj1//f39P/39vP/9vXy - //Tz7//z8u7/8vHt//Lx7f/s6uP/1tDA/7Cmj++YkYMwAAAAAAAAAAAAAAAAAAAAAMbDvDbDvKvx4dzU - /////v/9/Pz//Pz7//z8+//7+/r/+/v5//v6+f/6+fj/+vn3//n49v/4+PX/+Pf0//f28//29vL/9vXx - //X08P/y8ez/8fDq//Dv6f/w7un/7+7o/+nn3//Uz77/rqSM7ZiRgi4AAAAAAAAAAAAAAAAAAAAAyMS9 - NsO8q/Hg29P//v79//v7+v/7+/n/+/r5//r6+P/6+ff/+fn2//n49v/4+PX/9/f0//f28//29fL/9fXx - //X08P/z8u7/8O/p/+7t5//u7Ob/7ezl/+3r5P/s6+T/5+Tb/9PNvP+soontl4+BLgAAAAAAAAAAAAAA - AAAAAADJxL42w7yr8eDb0v/9/fz/+/r5//r6+P/6+ff/+fn3//n49v/4+PX/9/f0//f28//29fL/9fTx - //T08P/08+//8vHs/+7t5v/s6uP/7Ori/+vp4f/q6eH/6ujg/+no4P/j4db/0cu6/6qfhuuWj4AsAAAA - AAAAAAAAAAAAAAAAAMrGvzbEvKvx39rR//z8+//6+vj/+fn3//n49v/4+PX/9/f0//f28//29fL/9fXx - //X08P/08+//8/Lu//Hv6v/s6uP/6ujg/+nn3//p597/6Obd/+jm3f/n5dz/5+Xc/+De0v/Pybj/qJ2E - 65aOfyoAAAAAAAAAAAAAAAAAAAAAy8fANsS8q/He2tD//Pv6//n59//5+Pb/+Pf1//j39P/39vP/9vXy - //X18f/09PD/9PPv//Py7f/u7eb/6eff/+fm3P/n5dz/5uXb/+bk2v/l49n/5ePY/+Ti2P/k4tf/3drO - /83Htf+lmoHrlY1+KgAAAAAAAAAAAAAAAAAAAADMyMA2xLyr8d7Z0P/7+/n/+fj2//j39f/39/T/9/bz - //b18v/19fH/9fTw//Tz7//x8Or/6+nh/+bk2v/l49n/5ePZ/+Ti2P/k4df/4+HW/+Lg1f/i4NX/4uDU - /+Lf1f/b2Mv/zMWz/6SYf+mVjX4qAAAAAAAAAAAAAAAAAAAAAMzIwTbEvKvx3tnP//v7+f/4+PX/+Pf0 - //f28//29fL/9fXx//X08P/z8u3/7evk/+bk2v/j4db/4+HW/+Lg1f/i4NX/4uDU/+Lg1P/h39P/393R - /9zZzP/W0sP/z8m4/8S8qP/Gvqv/opZ96ZSMfSgAAAAAAAAAAAAAAAAAAAAAzcnCNsS8q/Hd2c//+/r4 - //j39f/39/T/9/bz//b18v/08+//7u3n/+bk2//i4NX/4t/U/+Lg1P/i39P/4N3R/9vXyv/TzsD/ysSz - /7+4pf+3rpn/sqiQ/7Gmjf+xp43/raGG/8C2of+glHvnlIt8KAAAAAAAAAAAAAAAAAAAAADOysM2xLyr - 8d3Zz//7+vj/+Pf1//f39P/29fH/8O7p/+jm3f/i4NT/393R/9vYy//Uz8D/yMKx/7yzoP+xp5H/qp+G - /6qcgf+rn4P/tKOC/7ulff/BsY3/xJ1a/87Bof/Nxq7/w7mk/56ReOeUi3wmAAAAAAAAAAAAAAAAAAAA - AM/LxDbEvKvx3tnP//z8+//49/T/7+7o/+Lf1f/V0MH/ycKx/721oP+xp5D/qZ6E/6ebgf+pnoT/sKaN - /7mxmP/CuqH/xqJj/8eocP/MsH3/x59Z/9XAnP/Homn/3c+x/97Xwv/FvKf/l4pv45aNgCIAAAAAAAAA - AAAAAAAAAAAA0czFNsO7qvHRyr3/2tXK/8K7qf+yqJH/qZ2E/6abgP+pnoP/sKeM/7mxmP/DvKT/zMav - /9XQuf/c2MH/49/J/+bgyf/Ps4f/zraO/9rMtP/KuJv/1s25/8i7pv/Iv6v/y8Kv/7Gmjv+MfmS5paGe - DAAAAAAAAAAAAAAAAAAAAADQy8Q2yMGx8a6jjP+0q5P/urKb/8C5ov/Gv6j/zciw/9bRuv/d2cL/5ODK - /+rm0f/u6tb/7+vY/+3p1//o49L/4NvK/9HHtv/LwrD/zMSz/8e/rv/Du6n/wLel/7qwnf+rn4j/jX5j - 3ZOIdkIAAAAAAAAAAAAAAAAAAAAAAAAAAMvFvTbb18rx4+HU/+fk1//q59r/7OnZ/+7r2f/w7Nn/8e3b - /+/r2//r5tf/5eDR/9zWyP/Uzr//zse3/8nCsf/Du6n/vbSg/7Splf+pnYb9oJN78ZmMdN2Thm69j4Fq - mYx+aHCVi3ssAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMO7NuHd0vH5+PH/+vny//n38P/08un/7One - /+Ld0P/X0cP/0cq6/8rCsv/Cuqf/ua+b/7ClkP+mmoP5nI5255OFbMuOgGerinxlg4h6ZFqKfWk2koh6 - HKKdmgoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAua8m1tHE4+7r4//u7OX/49/V - /9TOwP/Gvav/t62Y/6ygiv2jl3/vm4112ZSGbbuPgGiVjn9oapCDbkaUiHgonpSKEMbGzAIAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALexswK8tKZoua+d - 3aygifOhk3rlmoxzyZaHbqWUhW5+k4VvVpeKdjSglogYubSyCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AKmgnQKfk4MgmIp1OJ+Tgiavp54O2trfAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAP////////8H///4A///gAH//AAA/8AAAP4AAAPgAAADwAAAA+AAAAPAAAADwAAA - A8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAfAAAAPwAAA - f8AAD//AA///4H//////////////KAAAABgAAAAwAAAAAQAgAAAAAABgCQAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAwrKikeLiwr - HgAAAAwAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAABh0dHBZhX1o0kI2FYLCsoZfEwbXHvLirx3FtY2AAAAAUAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEDg4ODlVUUSiIhX5QqKWahb+7r7nRzcDj4N3R - +ezp4f/08uz/4d3P/62nlMcXFhUuAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAgQIR0dF - HIF+eECinpRyuLOnq8jDttfX0sb15OHX//Du5//5+PT//v79///////+/v3/49/S/7ewm9E+PDgiAAAA - AgAAAAAAAAAAAAAAAAAAAAQ5OTkUe3l0Mp2ZkGKxrKCZv7qsy8zHue3a1cn95+Tc//Py7f/7+/n////+ - ///////////////////////+/v3/4t7R/7mynMuFgXcOAAAAAAAAAAAAAAAAWVhWFqail3S4saO9wrus - 5c7Iuvvc2M3/6+ji//f28//+/f3////////////////////////////+/v7//v79//39/P/7+/r/4NzP - /7evmcmMh30OAAAAAAAAAAAAAAAAwbuvcsW9rvvf29H/8O7q//v6+f///////////////////////v7+ - //7+/v/9/f3//f38//z8+//7+/r/+vr5//n59//49/T/3tnL/7SslcmLhnwOAAAAAAAAAADDwsEKxL2u - weHd1f////////////7+/v/+/v7//v79//39/f/9/fz//Pz7//v7+v/7+vn/+vr4//n59//4+PX/9/bz - //b18f/08+//29bI/7KpksmLhnwMAAAAAAAAAADFwb4OxL2uy+fk3v///////v39//39/P/8/Pv//Pz6 - //v7+v/6+vn/+vn3//n49v/49/X/9/f0//b28v/08+//8/Lt//Lx7P/w7+n/2dPE/7Cmj8eKhXsMAAAA - AAAAAADGxMAOxL6uy+fj3P/+/v3//Pz6//v7+v/7+vn/+vr4//n59//4+PX/9/f0//f28//29fL/9fTw - //Lx7P/v7uj/7+7n/+7t5v/s6uP/1tDB/62jjMWKhHoMAAAAAAAAAADIxcIOxb6uy+bi2//8/Pv/+/r4 - //r59//5+Pb/+Pj1//f39P/39vP/9vXx//X08P/08u7/8O7p/+zr5P/s6uP/6+ni/+rp4f/o5t7/0829 - /6qgicOJgnkKAAAAAAAAAADKyMQOxb6uy+Xh2f/7+/r/+fn3//j49v/49/T/9/bz//b18v/19PD/9PPv - //Lx7P/t7OX/6ujg/+nn3v/o5t3/5+Xc/+bk2//k4tj/0Mq5/6idhsOJgnkKAAAAAAAAAADMycYOxb6u - y+Tg2P/7+vn/+fj2//j39P/39vP/9vXx//X08P/08+7/8O/p/+no3//m5Nv/5ePa/+Xj2f/k4tj/5OHX - /+Ph1v/h39T/zce2/6abg8GJgnkKAAAAAAAAAADOysgOxb6uy+Tg2P/6+vj/+Pf1//f28//29fL/9fTw - //Lx7P/r6uL/5ePZ/+Ph1//j4db/4+HW/+Lg1P/g3dH/3NnM/9bSxP/Nx7b/xLyo/6SYgb+JgnoIAAAA - AAAAAADPzMkOxb6vy+Pg2P/6+vf/+Pf0//f28//08+//7ezl/+bk2v/i4NX/4N3R/9vXyv/Tzr//ycOy - /8C5pv+6sJr/tqyT/7eoif+2rJL/u7CZ/6KWfr+JgnoIAAAAAAAAAADRzswOxr6vy+Tg2P/7+/n/9vXy - /+zr5P/f3NH/08/A/8jCsP++tqL/tauV/7Cmjv+wp47/tqF5/7umfv/Bo2z/ybGF/8mma//c07r/xbym - /52Reb2MhX4IAAAAAAAAAADU0c8Oxb2ty9XPw//Y08f/w7up/7Wslf+vpY3/sKaN/7atk/+/t57/y8Ss - /9bQuf/f2sX/0rmO/9C5j//PuZb/0sSp/8q8ov/QyLT/uK6X/5GEa5kAAAAAAAAAAAAAAADPy8cOy8W2 - y761of/Cu6b/x8Cq/83HsP/X0rv/4dzG/+jkz//r59T/6uXT/+bhz//f2cj/0ci3/8nArv/Du6n/vLKf - /7Wrl/2soYvxlYhvv4+DcCwAAAAAAAAAAAAAAADAubMO3trPy/Du5P/08uj/9PHm//Dt3//q5db/4t3O - /9rUxP/PyLj/xbyq/7qwnf+wpZD3qJyG5Z+TfMuXinKnk4ZugY+CbFiMf2k0kIV2EgAAAAAAAAAAAAAA - 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 - - - \ No newline at end of file diff --git a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Common/AppContext.cs b/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Common/AppContext.cs deleted file mode 100644 index 89fbbc7d..00000000 --- a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Common/AppContext.cs +++ /dev/null @@ -1,57 +0,0 @@ -// Copyright (c) 2011, Outercurve Foundation. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// - Redistributions of source code must retain the above copyright notice, this -// list of conditions and the following disclaimer. -// -// - Redistributions in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// - Neither the name of the Outercurve Foundation nor the names of its -// contributors may be used to endorse or promote products derived from this -// software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -using System; -using System.Collections.Generic; -using System.Text; - -namespace WebsitePanel.Installer.Common -{ - internal class AppContext - { - private ApplicationForm appForm; - private ScopeNode scopeNode; - - public ApplicationForm AppForm - { - get { return appForm; } - set { appForm = value; } - } - - public ScopeNode ScopeNode - { - get { return scopeNode; } - set { scopeNode = value; } - } - - public string CurrentPath - { - get { return FileUtils.GetCurrentDirectory(); } - } - } -} diff --git a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Common/ProgressManager.cs b/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Common/ProgressManager.cs deleted file mode 100644 index c03f3e98..00000000 --- a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Common/ProgressManager.cs +++ /dev/null @@ -1,66 +0,0 @@ -// Copyright (c) 2011, Outercurve Foundation. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// - Redistributions of source code must retain the above copyright notice, this -// list of conditions and the following disclaimer. -// -// - Redistributions in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// - Neither the name of the Outercurve Foundation nor the names of its -// contributors may be used to endorse or promote products derived from this -// software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -using System; -using System.Windows.Forms; -using System.Collections.Generic; -using System.Text; - -namespace WebsitePanel.Installer.Common -{ - internal class ProgressManager - { - private Form form; - private ToolStripStatusLabel label; - private Cursor cursor; - - public ProgressManager(Form form, ToolStripStatusLabel label) - { - this.form = form; - this.label = label; - } - - public void StartProgress(string title) - { - cursor = form.Cursor; - form.Cursor = Cursors.WaitCursor; - label.Text = title; - if (label.Owner != null) - label.Owner.Refresh(); - } - - public void FinishProgress() - { - form.Cursor = cursor; - label.Text = "Ready"; - if ( label.Owner != null ) - label.Owner.Refresh(); - } - } - -} diff --git a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Common/ScopeNode.cs b/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Common/ScopeNode.cs deleted file mode 100644 index c0a1f98a..00000000 --- a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Common/ScopeNode.cs +++ /dev/null @@ -1,98 +0,0 @@ -// Copyright (c) 2011, Outercurve Foundation. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// - Redistributions of source code must retain the above copyright notice, this -// list of conditions and the following disclaimer. -// -// - Redistributions in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// - Neither the name of the Outercurve Foundation nor the names of its -// contributors may be used to endorse or promote products derived from this -// software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -using System; -using System.Drawing; -using System.Windows.Forms; -using System.Collections.Generic; -using System.Text; -using WebsitePanel.Installer.Controls; - -namespace WebsitePanel.Installer.Common -{ - internal enum NodeType - { - Servers, - Server, - Components, - Component, - Module, - Settings, - Service - }; - - internal class ScopeNode : TreeNode - { - private bool populated; - private Icon largeIcon; - private Icon smallIcon; - private ResultViewControl resultView; - private NodeType nodeType; - private object dataObject; - - public ScopeNode() - { - } - - public bool Populated - { - get { return populated; } - set { populated = value; } - } - - public Icon LargeIcon - { - get { return largeIcon; } - set { largeIcon = value; } - } - - public Icon SmallIcon - { - get { return smallIcon; } - set { smallIcon = value; } - } - - public ResultViewControl ResultView - { - get { return resultView; } - set { resultView = value; } - } - - public NodeType NodeType - { - get { return nodeType; } - set { nodeType = value; } - } - - public object DataObject - { - get { return dataObject; } - set { dataObject = value; } - } - } -} diff --git a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Common/User32.cs b/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Common/User32.cs deleted file mode 100644 index ffef6e32..00000000 --- a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Common/User32.cs +++ /dev/null @@ -1,54 +0,0 @@ -// Copyright (c) 2011, Outercurve Foundation. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// - Redistributions of source code must retain the above copyright notice, this -// list of conditions and the following disclaimer. -// -// - Redistributions in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// - Neither the name of the Outercurve Foundation nor the names of its -// contributors may be used to endorse or promote products derived from this -// software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -using System; -using System.Runtime.InteropServices; - -namespace WebsitePanel.Installer.Common -{ - internal sealed class User32 - { - /// - /// Win32 API Constants for ShowWindowAsync() - /// - internal const int SW_HIDE = 0; - internal const int SW_SHOWNORMAL = 1; - internal const int SW_SHOWMINIMIZED = 2; - internal const int SW_SHOWMAXIMIZED = 3; - internal const int SW_SHOWNOACTIVATE = 4; - internal const int SW_RESTORE = 9; - internal const int SW_SHOWDEFAULT = 10; - - [DllImport("user32.dll")] - internal static extern bool SetForegroundWindow(IntPtr hWnd); - [DllImport("user32.dll")] - internal static extern bool IsIconic(IntPtr hWnd); - [DllImport("user32.dll")] - internal static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow); - } -} diff --git a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Common/Utils.cs b/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Common/Utils.cs deleted file mode 100644 index d94f9863..00000000 --- a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Common/Utils.cs +++ /dev/null @@ -1,65 +0,0 @@ -// Copyright (c) 2011, Outercurve Foundation. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// - Redistributions of source code must retain the above copyright notice, this -// list of conditions and the following disclaimer. -// -// - Redistributions in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// - Neither the name of the Outercurve Foundation nor the names of its -// contributors may be used to endorse or promote products derived from this -// software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -using System; -using System.IO; -using System.Windows.Forms; -using System.Configuration; -using System.Collections; -using System.Collections.Generic; -using System.Text; -using System.Diagnostics; -using System.DirectoryServices; -using System.DirectoryServices.ActiveDirectory; - -using System.Security.Principal; -using System.Security; -using System.Security.Permissions; -using System.Runtime.InteropServices; -using System.Threading; -using WebsitePanel.Installer.Core; - -namespace WebsitePanel.Installer.Common -{ - public static class UiUtils - { - public static void ShowRunningInstance() - { - Process currentProcess = Process.GetCurrentProcess(); - foreach (Process process in Process.GetProcessesByName(currentProcess.ProcessName)) - { - if (process.Id != currentProcess.Id) - { - //set focus - User32.SetForegroundWindow(process.MainWindowHandle); - break; - } - } - } - } -} diff --git a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/ComponentControl.Designer.cs b/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/ComponentControl.Designer.cs deleted file mode 100644 index 323cce2f..00000000 --- a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/ComponentControl.Designer.cs +++ /dev/null @@ -1,213 +0,0 @@ -namespace WebsitePanel.Installer.Controls -{ - partial class ComponentControl - { - /// - /// 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 Component 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(ComponentControl)); - this.grpInfo = new System.Windows.Forms.GroupBox(); - this.txtVersion = new System.Windows.Forms.TextBox(); - this.lblVersion = new System.Windows.Forms.Label(); - this.txtComponent = new System.Windows.Forms.TextBox(); - this.lblComponent = new System.Windows.Forms.Label(); - this.txtApplication = new System.Windows.Forms.TextBox(); - this.lblApplication = new System.Windows.Forms.Label(); - this.grpDescription = new System.Windows.Forms.GroupBox(); - this.lblDescription = new System.Windows.Forms.Label(); - this.btnCheckUpdate = new System.Windows.Forms.Button(); - this.btnSettings = new System.Windows.Forms.Button(); - this.btnRemove = new System.Windows.Forms.Button(); - this.grpInfo.SuspendLayout(); - this.grpDescription.SuspendLayout(); - this.SuspendLayout(); - // - // grpInfo - // - this.grpInfo.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.grpInfo.Controls.Add(this.txtVersion); - this.grpInfo.Controls.Add(this.lblVersion); - this.grpInfo.Controls.Add(this.txtComponent); - this.grpInfo.Controls.Add(this.lblComponent); - this.grpInfo.Controls.Add(this.txtApplication); - this.grpInfo.Controls.Add(this.lblApplication); - this.grpInfo.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); - this.grpInfo.Location = new System.Drawing.Point(14, 43); - this.grpInfo.Name = "grpInfo"; - this.grpInfo.Size = new System.Drawing.Size(379, 122); - this.grpInfo.TabIndex = 3; - this.grpInfo.TabStop = false; - this.grpInfo.Text = "Summary"; - // - // txtVersion - // - this.txtVersion.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.txtVersion.Location = new System.Drawing.Point(122, 82); - this.txtVersion.Name = "txtVersion"; - this.txtVersion.ReadOnly = true; - this.txtVersion.Size = new System.Drawing.Size(234, 21); - this.txtVersion.TabIndex = 5; - // - // lblVersion - // - this.lblVersion.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); - this.lblVersion.Location = new System.Drawing.Point(16, 82); - this.lblVersion.Name = "lblVersion"; - this.lblVersion.Size = new System.Drawing.Size(100, 21); - this.lblVersion.TabIndex = 4; - this.lblVersion.Text = "Version"; - // - // txtComponent - // - this.txtComponent.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.txtComponent.Location = new System.Drawing.Point(122, 55); - this.txtComponent.Name = "txtComponent"; - this.txtComponent.ReadOnly = true; - this.txtComponent.Size = new System.Drawing.Size(234, 21); - this.txtComponent.TabIndex = 3; - // - // lblComponent - // - this.lblComponent.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); - this.lblComponent.Location = new System.Drawing.Point(16, 55); - this.lblComponent.Name = "lblComponent"; - this.lblComponent.Size = new System.Drawing.Size(100, 21); - this.lblComponent.TabIndex = 2; - this.lblComponent.Text = "Component"; - // - // txtApplication - // - this.txtApplication.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.txtApplication.Location = new System.Drawing.Point(122, 28); - this.txtApplication.Name = "txtApplication"; - this.txtApplication.ReadOnly = true; - this.txtApplication.Size = new System.Drawing.Size(234, 21); - this.txtApplication.TabIndex = 1; - // - // lblApplication - // - this.lblApplication.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); - this.lblApplication.Location = new System.Drawing.Point(16, 28); - this.lblApplication.Name = "lblApplication"; - this.lblApplication.Size = new System.Drawing.Size(100, 21); - this.lblApplication.TabIndex = 0; - this.lblApplication.Text = "Application"; - // - // grpDescription - // - this.grpDescription.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.grpDescription.Controls.Add(this.lblDescription); - this.grpDescription.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); - this.grpDescription.Location = new System.Drawing.Point(14, 171); - this.grpDescription.Name = "grpDescription"; - this.grpDescription.Size = new System.Drawing.Size(379, 117); - this.grpDescription.TabIndex = 4; - this.grpDescription.TabStop = false; - this.grpDescription.Text = "Description"; - // - // lblDescription - // - this.lblDescription.Dock = System.Windows.Forms.DockStyle.Fill; - this.lblDescription.Location = new System.Drawing.Point(3, 17); - this.lblDescription.Name = "lblDescription"; - this.lblDescription.Size = new System.Drawing.Size(373, 97); - this.lblDescription.TabIndex = 0; - // - // btnCheckUpdate - // - this.btnCheckUpdate.Image = ((System.Drawing.Image)(resources.GetObject("btnCheckUpdate.Image"))); - this.btnCheckUpdate.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.btnCheckUpdate.Location = new System.Drawing.Point(14, 9); - this.btnCheckUpdate.Name = "btnCheckUpdate"; - this.btnCheckUpdate.Size = new System.Drawing.Size(128, 28); - this.btnCheckUpdate.TabIndex = 0; - this.btnCheckUpdate.Text = " &Check For Updates"; - this.btnCheckUpdate.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; - this.btnCheckUpdate.UseVisualStyleBackColor = true; - this.btnCheckUpdate.Click += new System.EventHandler(this.OnCheckUpdateClick); - // - // btnSettings - // - this.btnSettings.Image = ((System.Drawing.Image)(resources.GetObject("btnSettings.Image"))); - this.btnSettings.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.btnSettings.Location = new System.Drawing.Point(262, 9); - this.btnSettings.Name = "btnSettings"; - this.btnSettings.Size = new System.Drawing.Size(108, 28); - this.btnSettings.TabIndex = 2; - this.btnSettings.Text = "&Settings"; - this.btnSettings.UseVisualStyleBackColor = true; - this.btnSettings.Click += new System.EventHandler(this.OnSettingsClick); - // - // btnRemove - // - this.btnRemove.Image = ((System.Drawing.Image)(resources.GetObject("btnRemove.Image"))); - this.btnRemove.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.btnRemove.Location = new System.Drawing.Point(148, 9); - this.btnRemove.Name = "btnRemove"; - this.btnRemove.Size = new System.Drawing.Size(108, 28); - this.btnRemove.TabIndex = 1; - this.btnRemove.Text = "&Uninstall"; - this.btnRemove.Click += new System.EventHandler(this.OnRemoveClick); - // - // ComponentControl - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.Controls.Add(this.grpDescription); - this.Controls.Add(this.grpInfo); - this.Controls.Add(this.btnCheckUpdate); - this.Controls.Add(this.btnSettings); - this.Controls.Add(this.btnRemove); - this.Name = "ComponentControl"; - this.Size = new System.Drawing.Size(406, 327); - this.grpInfo.ResumeLayout(false); - this.grpInfo.PerformLayout(); - this.grpDescription.ResumeLayout(false); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.Button btnRemove; - private System.Windows.Forms.Button btnSettings; - private System.Windows.Forms.Button btnCheckUpdate; - private System.Windows.Forms.GroupBox grpInfo; - private System.Windows.Forms.TextBox txtVersion; - private System.Windows.Forms.Label lblVersion; - private System.Windows.Forms.TextBox txtComponent; - private System.Windows.Forms.Label lblComponent; - private System.Windows.Forms.TextBox txtApplication; - private System.Windows.Forms.Label lblApplication; - private System.Windows.Forms.GroupBox grpDescription; - private System.Windows.Forms.Label lblDescription; - } -} diff --git a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/ComponentControl.cs b/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/ComponentControl.cs deleted file mode 100644 index 2420e91a..00000000 --- a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/ComponentControl.cs +++ /dev/null @@ -1,393 +0,0 @@ -// Copyright (c) 2011, Outercurve Foundation. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// - Redistributions of source code must retain the above copyright notice, this -// list of conditions and the following disclaimer. -// -// - Redistributions in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// - Neither the name of the Outercurve Foundation nor the names of its -// contributors may be used to endorse or promote products derived from this -// software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -using System; -using System.Threading; -using System.IO; -using System.Collections; -using System.Collections.Generic; -using System.ComponentModel; -using System.Drawing; -using System.Data; -using System.Text; -using System.Windows.Forms; - -using WebsitePanel.Installer.Common; -using WebsitePanel.Installer.Services; -using WebsitePanel.Installer.Core; -using WebsitePanel.Installer.Configuration; - -namespace WebsitePanel.Installer.Controls -{ - /// - /// Component control - /// - internal partial class ComponentControl : ResultViewControl - { - delegate void ReloadApplicationCallback(); - - /// - /// Initializes a new instance of the ComponentControl class. - /// - public ComponentControl() - { - InitializeComponent(); - } - - /// - /// Shows control - /// - /// - public override void ShowControl(AppContext context) - { - base.ShowControl(context); - if (!IsInitialized) - { - ComponentConfigElement element = context.ScopeNode.Tag as ComponentConfigElement; - if (element != null) - { - txtApplication.Text = element.GetStringSetting("ApplicationName"); - txtComponent.Text = element.GetStringSetting("ComponentName"); - txtVersion.Text = element.GetStringSetting("Release"); - lblDescription.Text = element.GetStringSetting("ComponentDescription"); - - string installer = element.GetStringSetting("Installer"); - string path = element.GetStringSetting("InstallerPath"); - string type = element.GetStringSetting("InstallerType"); - if ( string.IsNullOrEmpty(installer) || - string.IsNullOrEmpty(path) || - string.IsNullOrEmpty(type)) - { - btnRemove.Enabled = false; - btnSettings.Enabled = false; - } - } - IsInitialized = true; - } - } - - /// - /// Action on Remove button click - /// - /// - /// - private void OnRemoveClick(object sender, EventArgs e) - { - UninstallComponent(); - } - - /// - /// Action on Settings button click - /// - /// - /// - private void OnSettingsClick(object sender, EventArgs e) - { - SetupComponent(); - } - - /// - /// Action on Check For Update button click - /// - /// - /// - private void OnCheckUpdateClick(object sender, EventArgs e) - { - //start check in the separate thread - AppContext.AppForm.StartAsyncProgress("Connecting...", true); - ThreadStart threadDelegate = new ThreadStart(CheckForUpdate); - Thread newThread = new Thread(threadDelegate); - newThread.Start(); - } - - /// - /// Checks for component update - /// - private void CheckForUpdate() - { - Log.WriteStart("Checking for component update"); - ComponentConfigElement element = AppContext.ScopeNode.Tag as ComponentConfigElement; - - string componentName = element.GetStringSetting("ComponentName"); - string componentCode = element.GetStringSetting("ComponentCode"); - string release = element.GetStringSetting("Release"); - - // call web service - DataSet ds; - try - { - Log.WriteInfo(string.Format("Checking {0} {1}", componentName, release)); - // - var webService = ServiceProviderProxy.GetInstallerWebService(); - ds = webService.GetComponentUpdate(componentCode, release); - // - Log.WriteEnd("Component update checked"); - AppContext.AppForm.FinishProgress(); - } - catch (Exception ex) - { - Log.WriteError("Service error", ex); - AppContext.AppForm.FinishProgress(); - AppContext.AppForm.ShowServerError(); - return; - } - - string appName = AppContext.AppForm.Text; - if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) - { - DataRow row = ds.Tables[0].Rows[0]; - string newVersion = row["Version"].ToString(); - Log.WriteInfo(string.Format("Version {0} is available for download", newVersion)); - - string message = string.Format("{0} {1} is available now.\nWould you like to install new version?", componentName, newVersion); - if (MessageBox.Show(AppContext.AppForm, message, appName, MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes) - { - string fileToDownload = row["UpgradeFilePath"].ToString(); - string installerPath = row["InstallerPath"].ToString(); - string installerType = row["InstallerType"].ToString(); - UpdateComponent(fileToDownload, installerPath, installerType, newVersion); - } - } - else - { - string message = string.Format("Current version of {0} is up to date.", componentName); - Log.WriteInfo(message); - AppContext.AppForm.ShowInfo(message); - } - } - - delegate void UpdateComponentCallback(string fileName, string path, string type, string version); - - /// - /// Runs component update - /// - /// - /// - /// - private void UpdateComponent(string fileName, string path, string type, string version) - { - // InvokeRequired required compares the thread ID of the - // calling thread to the thread ID of the creating thread. - // If these threads are different, it returns true. - if (this.InvokeRequired) - { - UpdateComponentCallback callBack = new UpdateComponentCallback(UpdateComponent); - Invoke(callBack, new object[] { fileName, path, type, version }); - } - else - { - Log.WriteStart("Updating component"); - - ComponentConfigElement element = AppContext.ScopeNode.Tag as ComponentConfigElement; - string componentId = element.ID; - string componentName = element.GetStringSetting("ComponentName"); - - try - { - Log.WriteInfo(string.Format("Updating {0}", componentName)); - //download installer - Loader form = new Loader(this.AppContext, fileName); - DialogResult result = form.ShowDialog(this); - if (result == DialogResult.OK) - { - //run installer - string tmpFolder = FileUtils.GetTempDirectory(); - string installerPath = Path.Combine(tmpFolder, path); - Update(); - string method = "Update"; - Log.WriteStart(string.Format("Running installer {0}.{1} from {2}", type, method, path)); - Hashtable args = new Hashtable(); - args["ComponentId"] = componentId; - args["ShellVersion"] = AppContext.AppForm.Version; - args["BaseDirectory"] = FileUtils.GetCurrentDirectory(); - args["UpdateVersion"] = version; - args["Installer"] = Path.GetFileName(fileName); - args["InstallerType"] = type; - args["InstallerPath"] = path; - args["InstallerFolder"] = tmpFolder; - args["IISVersion"] = Global.IISVersion; - args["ParentForm"] = FindForm(); - - result = (DialogResult)AssemblyLoader.Execute(installerPath, type, method, new object[] { args }); - Log.WriteInfo(string.Format("Installer returned {0}", result)); - Log.WriteEnd("Installer finished"); - Update(); - if (result == DialogResult.OK) - { - ReloadApplication(); - } - FileUtils.DeleteTempDirectory(); - } - Log.WriteEnd("Update completed"); - } - catch (Exception ex) - { - Log.WriteError("Installer error", ex); - AppContext.AppForm.ShowError(ex); - } - } - } - - /// - /// Uninstalls component - /// - private void UninstallComponent() - { - Log.WriteStart("Uninstalling component"); - - ComponentConfigElement element = AppContext.ScopeNode.Tag as ComponentConfigElement; - string installer = element.GetStringSetting(Global.Parameters.Installer); - string path = element.GetStringSetting(Global.Parameters.InstallerPath); - string type = element.GetStringSetting(Global.Parameters.InstallerType); - string componentId = element.ID; - string componentCode = element.GetStringSetting(Global.Parameters.ComponentCode); - string componentName = element.GetStringSetting(Global.Parameters.ComponentName); - string release = element.GetStringSetting(Global.Parameters.Release); - - try - { - Log.WriteInfo(string.Format("Uninstalling {0}", componentName)); - //download installer - Loader form = new Loader(this.AppContext, installer, componentCode, release); - DialogResult result = form.ShowDialog(this); - if (result == DialogResult.OK) - { - //run installer - string tmpFolder = FileUtils.GetTempDirectory(); - path = Path.Combine(tmpFolder, path); - Update(); - string method = "Uninstall"; - // - Log.WriteStart(string.Format("Running installer {0}.{1} from {2}", type, method, path)); - // - var args = new Hashtable - { - { Global.Parameters.ComponentId, componentId }, - { Global.Parameters.ComponentCode, componentCode }, - { Global.Parameters.ShellVersion, AppContext.AppForm.Version }, - { Global.Parameters.BaseDirectory, FileUtils.GetCurrentDirectory() }, - { Global.Parameters.IISVersion, Global.IISVersion }, - { Global.Parameters.ParentForm, FindForm() }, - }; - // - result = (DialogResult)AssemblyLoader.Execute(path, type, method, new object[] { args }); - // - Log.WriteInfo(string.Format("Installer returned {0}", result)); - Log.WriteEnd("Installer finished"); - Update(); - ReloadApplication(); - FileUtils.DeleteTempDirectory(); - - } - Log.WriteEnd("Uninstall completed"); - } - catch (Exception ex) - { - Log.WriteError("Installer error", ex); - AppContext.AppForm.ShowError(ex); - } - } - - /// - /// Setup component - /// - private void SetupComponent() - { - Log.WriteStart("Starting component setup"); - - var element = AppContext.ScopeNode.Tag as ComponentConfigElement; - - string installer = element.GetStringSetting("Installer"); - string path = element.GetStringSetting("InstallerPath"); - string type = element.GetStringSetting("InstallerType"); - string componentId = element.ID; - string componentCode = element.GetStringSetting("ComponentCode"); - string componentName = element.GetStringSetting("ComponentName"); - string release = element.GetStringSetting("Release"); - - try - { - Log.WriteInfo(string.Format("Setup {0} {1}", componentName, release)); - //download installer - Loader form = new Loader(this.AppContext, installer, componentCode, release); - DialogResult result = form.ShowDialog(this); - if (result == DialogResult.OK) - { - string tmpFolder = Path.Combine(AppContext.CurrentPath, "Tmp"); - path = Path.Combine(tmpFolder, path); - Update(); - string method = "Setup"; - Log.WriteStart(string.Format("Running installer {0}.{1} from {2}", type, method, path)); - Hashtable args = new Hashtable(); - args["ComponentId"] = componentId; - args["ShellVersion"] = AppContext.AppForm.Version; - args["BaseDirectory"] = FileUtils.GetCurrentDirectory(); - args["IISVersion"] = Global.IISVersion; - args["ParentForm"] = FindForm(); - args[Global.Parameters.ShellMode] = Global.VisualInstallerShell; - // - result = (DialogResult)AssemblyLoader.Execute(path, type, method, new object[] { args }); - // - Log.WriteInfo(string.Format("Installer returned {0}", result)); - Log.WriteEnd("Installer finished"); - - if (result == DialogResult.OK) - { - ReloadApplication(); - } - FileUtils.DeleteTempDirectory(); - } - Log.WriteEnd("Component setup completed"); - } - catch (Exception ex) - { - Log.WriteError("Installer error", ex); - this.AppContext.AppForm.ShowError(ex); - } - } - - /// - /// Thread safe application reload - /// - private void ReloadApplication() - { - // InvokeRequired required compares the thread ID of the - // calling thread to the thread ID of the creating thread. - // If these threads are different, it returns true. - if (this.InvokeRequired) - { - ReloadApplicationCallback callback = new ReloadApplicationCallback(ReloadApplication); - Invoke(callback, null); - } - else - { - AppContext.AppForm.ReloadApplication(); - } - } - } -} diff --git a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/ComponentControl.resx b/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/ComponentControl.resx deleted file mode 100644 index 9e393425..00000000 --- a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/ComponentControl.resx +++ /dev/null @@ -1,172 +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 - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAA05JREFUOE+Vk2tI - k2EYhtMF/Qqi0haVaaP80jbnnIecNQ+bh5k5yxpump+Zh2EnSbODqalBcxrNkppJTd1Sl3kIKrTylMM0 - MyxL1LKWqQyMEjpQpnefKwLzVy88f16e++J+3vd+LBb8cxi8TP5KxhrhklXLfWm0hXafP34dGB963/zh - /Wjr9M+pJ1T754nBQsyRLd9wkFbbOW7pE6dRBCqKv0fps5H2IB/7dfUIPdsCmaoHwqR7RtczZDXV60jV - wjmAnZmdFgHJN25xSuNBNmQi7Xot8l5qIL7cjnDNE8SUvYD4VBsiztZN27kUKikAiyrLv5DNkmvniSsS - eL5g49FEIyan+nHXMIR9dc9AthgRWzWA3Wc6kFJ9HduOX5he5XT6KAVYZgasdk73ts9JmnHslCJ2WIY3 - 3wz4OmPEgNEE5esxRLWPgtQPQlrQDaUpGrkmARwj8set7JMFZoCdKEttqWZhbeU28Hvk0EwWYNQ0CaW2 - A2SPCTsajYjQ9iMs24CMES+kjPHgmnMEa7l5p8yADWT2CHtXOVhRWngm6BB0qBInLjZB2vcJIQYTAmuG - IS56hpDjBuRN+CF6iI1Nl/zgKChrMgNsYlN/uElugyVvAjv/OTzL+sG/MQx+zVvwda8gLOqD6HQ3BPKH - COhdB+dGa1ir3OHgUzViBtAlKWNMUgVuZD2YUj2YkTqwZKVwjqkAL6UJ/uldECS1w0PagPXFMrDO7QVn - jxoMbskfB2xVEeFWj00CPThherj37YR4MA7y1ydBVpfAV94Cr6g28KJbwU9sxtaEeniSNVjDVGT9duCQ - EUS43QaxpQLrykVY3CwGrzsBW3oTETJwAJE31fBNNkCY2ozwC72I1vfDJ6Htk5X9EZEZQP3nYlt28VXC - ow6EpBAWaiZod9zB6AiHy9N4cJ/GgPtyO/XA5Yi4RiXycCdsXQuyKR39b5AoGpPB0TUQHrWwleVihU4I - u8Yw2Dz0hU1HAFy6EsFPq4T3/nY4h1ZpKbHrnCTOZpuCODFcrhQ7eNVi6TERrDWBoN/ngaPNhb/yPoJy - W6ftvdUFf8SL/l3C2VFos/Gkb0wPXr31aCndP/4dsUfxhfAqfczgnFdYE6nBs7bnLdI80n9e/AKxCsOV - gSO8kwAAAABJRU5ErkJggg== - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAYZJREFUOE+lU8tK - AlEYdhf0FNUbtKo3aNcL1APUIwTtctHOCtQSallkG3cSBUUXEBkhKTWNbmIkrmbOnJkzOpev/wyOzGiQ - 5Bk+Bob5bv/PicUmPYm9NCZBTJIf6x9/Ym1j1/8n/JZcX6ColP6FgQBCxwM9ngfXdWE7DjbLTawX32BZ - FoQpYBgGOOfQdd2v7if4VYDIh402Fi4qSFRaEMKCaZokQGSug+lsVCDs/vClYvZUweplDZYQMIUkk7vO - wRgJaNqoQIdbYKILx3GxfFLCTOoOtY5K7jK6OYjOGIM2LOBRj5WjWyzuXGE7V8DUVh7Jmxdyp+gDdx26 - TyaoajSBHFwmX8AcEafj51hKXoNx0ydn9s+QSUtkcSCRykKNCJC9FHhuNKC8fmM+nsPxfdXvbtDgOJfd - qXc/uqZqUYFgbc16C5+NJp7KVSjv7X73/toCMnWX7pEEnkt7p8HZto1urwerSzuXkzcl2fB3HrgH5IjA - RHdBXkZawAiGv491acNCYxHopx/g8N5q3Wv/UAAAAABJRU5ErkJggg== - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAmpJREFUOE99kl1P - 01AYx4eJmhj9Bt557f0u/QTe7UN4ZbiRK++8MyaGEEwUEgnIS8db5F26dQy2udVuK7jRlm5gC6wr29qN - zZa15E9bZYEAO8k/5zwn5/97nnOe0wPAd3VkeClg2+c+y5Ft2z7TNHx22/L13OvxPXxw3/fo8RPZ//zZ - z47HBbgK04I/uJYgIukCqKwMipURSu9jKc5hlmIRJDOYDqUxF2akFSpOXPo8swdgCgE6VwBfaoE7bmFb - biJdrGFhM4eR7wl8mQ7j63wEVHIbCWbHsfzzdQCxvBIoljTwioHfR0YHQNJ7mKOyWI6mkWR5lCo6eEn9 - cBOQK/sPlIYk6zZ2yxbyyn+V28g7KlYtqKcWGoYN4bAauAFwN5zSiYOKiYTYwq5iQqxY4NS2p+O6jZPG - Gep/LQhy5XZA/k+NCO1o6P3MORJA7xteZrcqWbOgG+eo1I27AYygEExBxyqr4dUAB5KteVmVhoWTpmM+ - bUNrmtiT1Nsr+JWXiPmUCqnaxv6JgfezMpJiE9WGidrpGZqmjaNqq9PCa11wgyx/SCynVcQFp4qsjpdv - WbwbP/DuXXcer22dQy5rdwNciHjcAMUU8bqfxoteGiMLGeR4ESW1CsuyIUrl7oA8JyCyGUNoi8HaBgtq - I4rxySBi8QQ0XQe7K3YHjI59A0mSyGYzYBgGyRSNjWjUizmOw+JqqDtgYnLKA8RjW0ilUlhfX8fo2Bg+ - DQ5ieHgYM/OL3QGLPzb9ZDhCcPxenOd5DA0Noa/vDT72DxBTwZlr5htduPye7ryyRj5dWl4JEMR0YHxi - stP3q2fc9QWwyhndJ+hSfwAAAABJRU5ErkJggg== - - - \ No newline at end of file diff --git a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/ComponentsControl.Designer.cs b/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/ComponentsControl.Designer.cs deleted file mode 100644 index 407a0c63..00000000 --- a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/ComponentsControl.Designer.cs +++ /dev/null @@ -1,156 +0,0 @@ -namespace WebsitePanel.Installer.Controls -{ - partial class ComponentsControl - { - /// - /// 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 Component 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(ComponentsControl)); - this.grpDescription = new System.Windows.Forms.GroupBox(); - this.lblDescription = new System.Windows.Forms.Label(); - this.grdComponents = new System.Windows.Forms.DataGridView(); - this.colName = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colVersion = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.colLink = new System.Windows.Forms.DataGridViewLinkColumn(); - this.btnLoadComponents = new System.Windows.Forms.Button(); - this.grpDescription.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.grdComponents)).BeginInit(); - this.SuspendLayout(); - // - // grpDescription - // - this.grpDescription.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.grpDescription.Controls.Add(this.lblDescription); - this.grpDescription.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); - this.grpDescription.Location = new System.Drawing.Point(14, 198); - this.grpDescription.Name = "grpDescription"; - this.grpDescription.Size = new System.Drawing.Size(379, 117); - this.grpDescription.TabIndex = 2; - this.grpDescription.TabStop = false; - this.grpDescription.Text = "Description"; - // - // lblDescription - // - this.lblDescription.Dock = System.Windows.Forms.DockStyle.Fill; - this.lblDescription.Location = new System.Drawing.Point(3, 17); - this.lblDescription.Name = "lblDescription"; - this.lblDescription.Size = new System.Drawing.Size(373, 97); - this.lblDescription.TabIndex = 0; - // - // grdComponents - // - this.grdComponents.AllowUserToAddRows = false; - this.grdComponents.AllowUserToDeleteRows = false; - this.grdComponents.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.grdComponents.BackgroundColor = System.Drawing.SystemColors.Window; - this.grdComponents.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; - this.grdComponents.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { - this.colName, - this.colVersion, - this.colLink}); - this.grdComponents.Location = new System.Drawing.Point(14, 43); - this.grdComponents.MultiSelect = false; - this.grdComponents.Name = "grdComponents"; - this.grdComponents.ReadOnly = true; - this.grdComponents.RowHeadersWidth = 21; - this.grdComponents.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; - this.grdComponents.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; - this.grdComponents.Size = new System.Drawing.Size(379, 149); - this.grdComponents.TabIndex = 1; - this.grdComponents.RowEnter += new System.Windows.Forms.DataGridViewCellEventHandler(this.OnRowEnter); - this.grdComponents.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.OnInstallLinkClick); - // - // colName - // - this.colName.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill; - this.colName.DataPropertyName = "Component"; - this.colName.HeaderText = "Component Name"; - this.colName.Name = "colName"; - this.colName.ReadOnly = true; - // - // colVersion - // - this.colVersion.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCells; - this.colVersion.DataPropertyName = "Version"; - this.colVersion.HeaderText = "Version"; - this.colVersion.Name = "colVersion"; - this.colVersion.ReadOnly = true; - this.colVersion.Width = 67; - // - // colLink - // - this.colLink.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCellsExceptHeader; - this.colLink.DataPropertyName = "Id"; - this.colLink.HeaderText = ""; - this.colLink.Name = "colLink"; - this.colLink.ReadOnly = true; - this.colLink.Resizable = System.Windows.Forms.DataGridViewTriState.False; - this.colLink.Text = "Install"; - this.colLink.TrackVisitedState = false; - this.colLink.UseColumnTextForLinkValue = true; - this.colLink.Width = 5; - // - // btnLoadComponents - // - this.btnLoadComponents.Image = ((System.Drawing.Image)(resources.GetObject("btnLoadComponents.Image"))); - this.btnLoadComponents.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.btnLoadComponents.Location = new System.Drawing.Point(14, 9); - this.btnLoadComponents.Name = "btnLoadComponents"; - this.btnLoadComponents.Size = new System.Drawing.Size(170, 28); - this.btnLoadComponents.TabIndex = 0; - this.btnLoadComponents.Text = " &View Available Components"; - this.btnLoadComponents.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; - this.btnLoadComponents.Click += new System.EventHandler(this.OnLoadComponentsClick); - // - // ComponentsControl - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.Controls.Add(this.btnLoadComponents); - this.Controls.Add(this.grpDescription); - this.Controls.Add(this.grdComponents); - this.Name = "ComponentsControl"; - this.Size = new System.Drawing.Size(406, 327); - this.grpDescription.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.grdComponents)).EndInit(); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.GroupBox grpDescription; - private System.Windows.Forms.Label lblDescription; - private System.Windows.Forms.DataGridView grdComponents; - private System.Windows.Forms.Button btnLoadComponents; - private System.Windows.Forms.DataGridViewTextBoxColumn colName; - private System.Windows.Forms.DataGridViewTextBoxColumn colVersion; - private System.Windows.Forms.DataGridViewLinkColumn colLink; - } -} diff --git a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/ComponentsControl.cs b/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/ComponentsControl.cs deleted file mode 100644 index 2cfb8907..00000000 --- a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/ComponentsControl.cs +++ /dev/null @@ -1,317 +0,0 @@ -// Copyright (c) 2011, Outercurve Foundation. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// - Redistributions of source code must retain the above copyright notice, this -// list of conditions and the following disclaimer. -// -// - Redistributions in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// - Neither the name of the Outercurve Foundation nor the names of its -// contributors may be used to endorse or promote products derived from this -// software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -using System; -using System.IO; -using System.Threading; -using System.Reflection; -using System.Collections; -using System.Collections.Generic; -using System.ComponentModel; -using System.Drawing; -using System.Data; -using System.Text; -using System.Windows.Forms; - -using WebsitePanel.Installer.Common; -using WebsitePanel.Installer.Services; -using WebsitePanel.Installer.Core; -using WebsitePanel.Installer.Configuration; - -namespace WebsitePanel.Installer.Controls -{ - /// - /// Components control - /// - internal partial class ComponentsControl : ResultViewControl - { - delegate void SetGridDataSourceCallback(object dataSource, string dataMember); - - private string componentCode = null; - private string componentVersion = null; - private string componentSettingsXml = null; - - public ComponentsControl() - { - InitializeComponent(); - grdComponents.AutoGenerateColumns = false; - } - - /// - /// Action on click Install link - /// - /// - /// - private void OnInstallLinkClick(object sender, DataGridViewCellEventArgs e) - { - if (e.ColumnIndex == grdComponents.Columns.IndexOf(colLink)) - { - DataRowView row = grdComponents.Rows[e.RowIndex].DataBoundItem as DataRowView; - if (row != null) - { - StartInstaller(row); - StartLoadingComponents(); - } - } - } - - private void StartInstaller(DataRowView row) - { - string applicationName = Utils.GetDbString(row[Global.Parameters.ApplicationName]); - string componentName = Utils.GetDbString(row[Global.Parameters.ComponentName]); - string componentCode = Utils.GetDbString(row[Global.Parameters.ComponentCode]); - string componentDescription = Utils.GetDbString(row[Global.Parameters.ComponentDescription]); - string component = Utils.GetDbString(row[Global.Parameters.Component]); - string version = Utils.GetDbString(row[Global.Parameters.Version]); - string fileName = row[Global.Parameters.FullFilePath].ToString(); - string installerPath = Utils.GetDbString(row[Global.Parameters.InstallerPath]); - string installerType = Utils.GetDbString(row[Global.Parameters.InstallerType]); - - if (CheckForInstalledComponent(componentCode)) - { - AppContext.AppForm.ShowWarning(Global.Messages.ComponentIsAlreadyInstalled); - return; - } - try - { - // download installer - Loader form = new Loader(this.AppContext, fileName); - DialogResult result = form.ShowDialog(this); - - if (result == DialogResult.OK) - { - string tmpFolder = FileUtils.GetTempDirectory(); - string path = Path.Combine(tmpFolder, installerPath); - Update(); - string method = "Install"; - Log.WriteStart(string.Format("Running installer {0}.{1} from {2}", installerType, method, path)); - - //prepare installer args - Hashtable args = new Hashtable(); - - args[Global.Parameters.ComponentName] = componentName; - args[Global.Parameters.ApplicationName] = applicationName; - args[Global.Parameters.ComponentCode] = componentCode; - args[Global.Parameters.ComponentDescription] = componentDescription; - args[Global.Parameters.Version] = version; - args[Global.Parameters.InstallerFolder] = tmpFolder; - args[Global.Parameters.InstallerPath] = installerPath; - args[Global.Parameters.InstallerType] = installerType; - args[Global.Parameters.Installer] = Path.GetFileName(fileName); - args[Global.Parameters.ShellVersion] = AssemblyLoader.GetShellVersion(); - args[Global.Parameters.BaseDirectory] = FileUtils.GetCurrentDirectory(); - args[Global.Parameters.ShellMode] = Global.VisualInstallerShell; - args[Global.Parameters.IISVersion] = Global.IISVersion; - args[Global.Parameters.SetupXml] = this.componentSettingsXml; - args[Global.Parameters.ParentForm] = FindForm(); - - //run installer - DialogResult res = (DialogResult)AssemblyLoader.Execute(path, installerType, method, new object[] { args }); - Log.WriteInfo(string.Format("Installer returned {0}", res)); - Log.WriteEnd("Installer finished"); - Update(); - if (res == DialogResult.OK) - { - AppContext.AppForm.ReloadApplication(); - } - FileUtils.DeleteTempDirectory(); - } - } - catch (Exception ex) - { - Log.WriteError("Installer error", ex); - AppContext.AppForm.ShowError(ex); - } - finally - { - this.componentSettingsXml = null; - this.componentCode = null; - } - - } - - private bool CheckForInstalledComponent(string componentCode) - { - bool ret = false; - List installedComponents = new List(); - foreach (ComponentConfigElement componentConfig in AppConfigManager.AppConfiguration.Components) - { - string code = componentConfig.Settings["ComponentCode"].Value; - installedComponents.Add(code); - if (code == componentCode) - { - ret = true; - break; - } - } - if (componentCode == "standalone") - { - if (installedComponents.Contains("server") || - installedComponents.Contains("enterprise server") || - installedComponents.Contains("portal")) - ret = true; - } - return ret; - } - - /// - /// Displays component description when entering grid row - /// - /// - /// - private void OnRowEnter(object sender, DataGridViewCellEventArgs e) - { - DataRowView row = grdComponents.Rows[e.RowIndex].DataBoundItem as DataRowView; - if (row != null) - { - lblDescription.Text = Utils.GetDbString(row["ComponentDescription"]); - } - } - - /// - /// Start new thread to load components - /// - /// - /// - private void OnLoadComponentsClick(object sender, EventArgs e) - { - StartLoadingComponents(); - } - - private void StartLoadingComponents() - { - //load list of available components in the separate thread - AppContext.AppForm.StartAsyncProgress("Connecting...", true); - ThreadStart threadDelegate = new ThreadStart(LoadComponents); - Thread newThread = new Thread(threadDelegate); - newThread.Start(); - } - - /// - /// Loads list of available components via web service - /// - private void LoadComponents() - { - try - { - Log.WriteStart("Loading list of available components"); - lblDescription.Text = string.Empty; - //load components via web service - var webService = ServiceProviderProxy.GetInstallerWebService(); - DataSet dsComponents = webService.GetAvailableComponents(); - //remove already installed components - foreach (DataRow row in dsComponents.Tables[0].Rows) - { - string componentCode = Utils.GetDbString(row["ComponentCode"]); - if (CheckForInstalledComponent(componentCode)) - { - row.Delete(); - } - } - dsComponents.AcceptChanges(); - Log.WriteEnd("Available components loaded"); - SetGridDataSource(dsComponents, dsComponents.Tables[0].TableName); - AppContext.AppForm.FinishProgress(); - } - catch (Exception ex) - { - Log.WriteError("Web service error", ex); - AppContext.AppForm.FinishProgress(); - AppContext.AppForm.ShowServerError(); - } - } - - /// - /// Thread safe grid binding. - /// - /// Data source - /// Data member - private void SetGridDataSource(object dataSource, string dataMember) - { - // InvokeRequired required compares the thread ID of the - // calling thread to the thread ID of the creating thread. - // If these threads are different, it returns true. - if (this.grdComponents.InvokeRequired) - { - SetGridDataSourceCallback callBack = new SetGridDataSourceCallback(SetGridDataSource); - this.grdComponents.Invoke(callBack, new object[] { dataSource, dataMember }); - } - else - { - this.grdComponents.DataSource = dataSource; - this.grdComponents.DataMember = dataMember; - } - } - - /// - /// Installs component during unattended setup - /// - /// - internal void InstallComponent(string componentCode, string componentVersion, string settingsXml) - { - //load list of available components in the separate thread - this.componentCode = componentCode; - this.componentVersion = componentVersion; - this.componentSettingsXml = settingsXml; - AppContext.AppForm.StartAsyncProgress("Connecting...", true); - ThreadStart threadDelegate = new ThreadStart(Install); - Thread newThread = new Thread(threadDelegate); - newThread.Start(); - } - - /// - /// Loads list of available components via web service and install specified component - /// during unattended setup - /// - private void Install() - { - LoadComponents(); - foreach (DataGridViewRow gridRow in grdComponents.Rows) - { - DataRowView row = gridRow.DataBoundItem as DataRowView; - if (row != null) - { - string code = Utils.GetDbString(row["ComponentCode"]); - string version = Utils.GetDbString(row["Version"]); - if (code == componentCode) - { - //check component version if specified - if (!string.IsNullOrEmpty(componentVersion)) - { - if (version != componentVersion) - continue; - } - StartInstaller(row); - AppContext.AppForm.ProceedUnattendedSetup(); - break; - } - } - } - } - } -} diff --git a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/ComponentsControl.resx b/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/ComponentsControl.resx deleted file mode 100644 index 207ce9e2..00000000 --- a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/ComponentsControl.resx +++ /dev/null @@ -1,140 +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 - - - True - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAj9JREFUOE+lk11I - U2EYx9vCiBS6GKyP+UWY0yYlZkYRM0Oi3IUEUlAG3QRFN1ERFTnNhWs2q7WtqTQLwhhBSp8YRQxcEslg - 82KHzWidrbXNWTowc2du/953NFN4u4gOPJwPzu/3/s/7PEcEYNl/HVSQreTMaKHD9x5ddiOaHh1FXa8K - ylv7cHlQAzfPTQvxkSN6u4W8/odZgBORfsng2Es0Pm+G2q+FNmDEFU6PVq4TJz6cQ+2dBrj8HpTf3MYW - cKHxKQpf9d+AauAQpK0bsFazEcfspzKiNu56RlKsU7AFF560odlxEtsNe9A1ZMJYwAtfmEd+uzyTKlvr - NCVswQHrYSh79mPA+QLJ+bRCmE/nRmPf4Q56l0gkLUVsQU1PHc4/VlO4kpRISKZFNudTFGkrUKAtA12Z - wqsvytiCLaadGP3kRmTiWw7d5VA4lh/8Gs35Ep5YGYrEVpB7MR+MrPF+5NkCsiJ+115yXp4Q0ruCoajo - ZyIlnp1LiX6QmplN5aqHdWxBlbUWmy07UHa7eqq4syIu65Cje+QB5oSUhCYikvru4XsoN/2ljVutSugC - 5kzLSvSVcPIe+jkgCQpoChfvQ8PDJqxvKWUn2GSuWRBQidxQDednD5nAcfQ6+jNTSVt5/P5ptoDERum1 - qiU9p1AWpLBMLcfdtza2oLBDgWeu15CRwVkMZQeIwtpXRsSmk7uZ/4LlTR/IRuEd58QlWztU5oPIOytF - 3hkp6g2NMA31YTKeXBWaFMRMweKH/3L9C8malnY23w2wAAAAAElFTkSuQmCC - - - \ No newline at end of file diff --git a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/LineBox.Designer.cs b/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/LineBox.Designer.cs deleted file mode 100644 index db6fe2aa..00000000 --- a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/LineBox.Designer.cs +++ /dev/null @@ -1,36 +0,0 @@ -namespace WebsitePanel.Installer -{ - partial class LineBox - { - /// - /// 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 Component Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - components = new System.ComponentModel.Container(); - } - - #endregion - } -} diff --git a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/LineBox.cs b/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/LineBox.cs deleted file mode 100644 index d9b581b4..00000000 --- a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/LineBox.cs +++ /dev/null @@ -1,95 +0,0 @@ -// Copyright (c) 2011, Outercurve Foundation. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// - Redistributions of source code must retain the above copyright notice, this -// list of conditions and the following disclaimer. -// -// - Redistributions in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// - Neither the name of the Outercurve Foundation nor the names of its -// contributors may be used to endorse or promote products derived from this -// software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -using System.ComponentModel; -using System.Drawing; -using System.Windows.Forms; - -namespace WebsitePanel.Installer -{ - /// - /// 3D line box. - /// - internal partial class LineBox : Control - { - /// - /// Initializes a new instance of the LineBox class. - /// - public LineBox() : base() - { - SetStyle(ControlStyles.UserPaint, true); - SetStyle(ControlStyles.FixedHeight, true); - SetStyle(ControlStyles.DoubleBuffer, true); - SetStyle(ControlStyles.ResizeRedraw, true); - SetStyle(ControlStyles.StandardClick, false); - SetStyle(ControlStyles.Selectable, false); - this.TabStop = false; - } - - /// - /// Raises the Paint event. - /// - /// A PaintEventArgs that contains the event data. - protected override void OnPaint(PaintEventArgs e) - { - Graphics graphics = e.Graphics; - Rectangle rectangle = this.ClientRectangle; - Pen lightPen = new Pen(ControlPaint.Light(this.BackColor, 1)); - Pen darkPen = new Pen(ControlPaint.Dark(this.BackColor, 0)); - graphics.DrawLine(darkPen, rectangle.X, rectangle.Y, rectangle.X+rectangle.Width, rectangle.Y); - graphics.DrawLine(lightPen, rectangle.X, rectangle.Y+1, rectangle.X+rectangle.Width, rectangle.Y+1); - base.OnPaint(e); - } - - /// - /// Gets the default size of the control. - /// - protected override Size DefaultSize - { - get - { - return new Size(10, 2); - } - } - - - /// - /// Performs the work of setting the specified bounds of this control. - /// - /// The new Left property value of the control. - /// The new Right property value of the control. - /// The new Width property value of the control. - /// The new Height property value of the control. - /// A bitwise combination of the BoundsSpecified values. - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected override void SetBoundsCore(int x, int y, int width, int height, BoundsSpecified specified) - { - base.SetBoundsCore(x, y, width, 2, specified); - } - } -} diff --git a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/Loader.Designer.cs b/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/Loader.Designer.cs deleted file mode 100644 index a0f17fa9..00000000 --- a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/Loader.Designer.cs +++ /dev/null @@ -1,112 +0,0 @@ -namespace WebsitePanel.Installer.Controls -{ - partial class Loader - { - /// - /// 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() - { - this.grpFiles = new System.Windows.Forms.GroupBox(); - this.lblValue = new System.Windows.Forms.Label(); - this.progressBar = new System.Windows.Forms.ProgressBar(); - this.lblProcess = new System.Windows.Forms.Label(); - this.btnCancel = new System.Windows.Forms.Button(); - this.grpFiles.SuspendLayout(); - this.SuspendLayout(); - // - // grpFiles - // - this.grpFiles.Controls.Add(this.lblValue); - this.grpFiles.Controls.Add(this.progressBar); - this.grpFiles.Controls.Add(this.lblProcess); - this.grpFiles.Location = new System.Drawing.Point(12, 9); - this.grpFiles.Name = "grpFiles"; - this.grpFiles.Size = new System.Drawing.Size(448, 88); - this.grpFiles.TabIndex = 4; - this.grpFiles.TabStop = false; - // - // lblValue - // - this.lblValue.Location = new System.Drawing.Point(294, 24); - this.lblValue.Name = "lblValue"; - this.lblValue.Size = new System.Drawing.Size(138, 16); - this.lblValue.TabIndex = 2; - this.lblValue.TextAlign = System.Drawing.ContentAlignment.TopRight; - // - // progressBar - // - this.progressBar.Location = new System.Drawing.Point(16, 40); - this.progressBar.Name = "progressBar"; - this.progressBar.Size = new System.Drawing.Size(416, 23); - this.progressBar.Step = 1; - this.progressBar.Style = System.Windows.Forms.ProgressBarStyle.Continuous; - this.progressBar.TabIndex = 1; - // - // lblProcess - // - this.lblProcess.Location = new System.Drawing.Point(16, 24); - this.lblProcess.Name = "lblProcess"; - this.lblProcess.Size = new System.Drawing.Size(272, 16); - this.lblProcess.TabIndex = 0; - // - // btnCancel - // - this.btnCancel.Location = new System.Drawing.Point(385, 112); - this.btnCancel.Name = "btnCancel"; - this.btnCancel.Size = new System.Drawing.Size(75, 23); - this.btnCancel.TabIndex = 5; - this.btnCancel.Text = "&Cancel"; - this.btnCancel.UseVisualStyleBackColor = true; - this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click); - // - // Loader - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(473, 148); - this.Controls.Add(this.btnCancel); - this.Controls.Add(this.grpFiles); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "Loader"; - this.ShowInTaskbar = false; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "WebsitePanel Installer"; - this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.OnLoaderFormClosing); - this.grpFiles.ResumeLayout(false); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.GroupBox grpFiles; - private System.Windows.Forms.ProgressBar progressBar; - private System.Windows.Forms.Label lblProcess; - private System.Windows.Forms.Button btnCancel; - private System.Windows.Forms.Label lblValue; - } -} \ No newline at end of file diff --git a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/Loader.cs b/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/Loader.cs deleted file mode 100644 index 81eeab02..00000000 --- a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/Loader.cs +++ /dev/null @@ -1,156 +0,0 @@ -// Copyright (c) 2011, Outercurve Foundation. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// - Redistributions of source code must retain the above copyright notice, this -// list of conditions and the following disclaimer. -// -// - Redistributions in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// - Neither the name of the Outercurve Foundation nor the names of its -// contributors may be used to endorse or promote products derived from this -// software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -using System; -using System.IO; -using System.Threading; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; -using Ionic.Zip; - -using WebsitePanel.Installer.Services; -using WebsitePanel.Installer.Common; - -namespace WebsitePanel.Installer.Controls -{ - public delegate void OperationProgressDelegate(int percentage); - - /// - /// Loader form. - /// - internal partial class Loader : Form - { - private AppContext appContext; - private Core.Loader appLoader; - - public Loader() - { - InitializeComponent(); - DialogResult = DialogResult.Cancel; - } - - public Loader(AppContext context, string remoteFile) - : this() - { - this.appContext = context; - // - appLoader = new Core.Loader(remoteFile); - // - Start(); - } - - public Loader(AppContext context, string localFile, string componentCode, string version) - : this() - { - this.appContext = context; - // - appLoader = new Core.Loader(localFile, componentCode, version); - // - Start(); - } - - private void Start() - { - // - appLoader.OperationFailed += new EventHandler>(appLoader_OperationFailed); - appLoader.ProgressChanged += new EventHandler>(appLoader_ProgressChanged); - appLoader.StatusChanged += new EventHandler>(appLoader_StatusChanged); - appLoader.OperationCompleted += new EventHandler(appLoader_OperationCompleted); - // - appLoader.LoadAppDistributive(); - } - - void appLoader_OperationCompleted(object sender, EventArgs e) - { - DialogResult = DialogResult.OK; - Close(); - } - - void appLoader_StatusChanged(object sender, Core.LoaderEventArgs e) - { - lblProcess.Text = e.StatusMessage; - lblValue.Text = e.EventData; - // Adjust Cancel button availability for an operation being performed - if (btnCancel.Enabled != e.Cancellable) - { - btnCancel.Enabled = e.Cancellable; - } - // This check allows to avoid extra form redrawing operations - if (ControlBox != e.Cancellable) - { - ControlBox = e.Cancellable; - } - } - - void appLoader_ProgressChanged(object sender, Core.LoaderEventArgs e) - { - progressBar.Value = e.EventData; - // Adjust Cancel button availability for an operation being performed - if (btnCancel.Enabled != e.Cancellable) - { - btnCancel.Enabled = e.Cancellable; - } - // This check allows to avoid extra form redrawing operations - if (ControlBox != e.Cancellable) - { - ControlBox = e.Cancellable; - } - } - - void appLoader_OperationFailed(object sender, Core.LoaderEventArgs e) - { - appContext.AppForm.ShowError(e.EventData); - // - DialogResult = DialogResult.Abort; - Close(); - } - - private void btnCancel_Click(object sender, EventArgs e) - { - Log.WriteInfo("Execution was canceled by user"); - Close(); - } - - private void OnLoaderFormClosing(object sender, FormClosingEventArgs e) - { - if (this.DialogResult == DialogResult.Cancel) - { - appLoader.AbortOperation(); - } - // Remove event handlers - appLoader.OperationFailed -= new EventHandler>(appLoader_OperationFailed); - appLoader.ProgressChanged -= new EventHandler>(appLoader_ProgressChanged); - appLoader.StatusChanged -= new EventHandler>(appLoader_StatusChanged); - appLoader.OperationCompleted -= new EventHandler(appLoader_OperationCompleted); - } - } -} \ No newline at end of file diff --git a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/Loader.resx b/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/Loader.resx deleted file mode 100644 index ff31a6db..00000000 --- a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/Loader.resx +++ /dev/null @@ -1,120 +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 - - \ No newline at end of file diff --git a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/ProgressIcon.cs b/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/ProgressIcon.cs deleted file mode 100644 index 99bd9de9..00000000 --- a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/ProgressIcon.cs +++ /dev/null @@ -1,248 +0,0 @@ -// Copyright (c) 2011, Outercurve Foundation. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// - Redistributions of source code must retain the above copyright notice, this -// list of conditions and the following disclaimer. -// -// - Redistributions in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// - Neither the name of the Outercurve Foundation nor the names of its -// contributors may be used to endorse or promote products derived from this -// software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -using System; -using System.Collections; -using System.Collections.Generic; -using System.ComponentModel; -using System.Drawing; -using System.Data; -using System.Windows.Forms; -using System.Threading; - -namespace WebsitePanel.Installer.Controls -{ - /// - /// Animated Icon. - /// - [ToolboxItem(true)] - public class ProgressIcon : System.Windows.Forms.UserControl - { - private Thread thread = null; - private int currentFrame = 0; - private int delayInterval = 50; - private int pause = 0; - private int loopCount = 0; - private int currentLoop = 0; - private int firstFrame = 0; - private int lastFrame = 13; - private ImageList images; - private IContainer components; - - /// Initializes a new instance of the AnimatedIcon class. - /// - public ProgressIcon() - { - CheckForIllegalCrossThreadCalls = false; - InitializeComponent(); - - this.SetStyle(ControlStyles.UserPaint, true); - this.SetStyle(ControlStyles.AllPaintingInWmPaint, true); - this.SetStyle(ControlStyles.DoubleBuffer, true); - this.SetStyle(ControlStyles.ResizeRedraw, true); - } - - #region Dispose - /// Clean up any resources being used. - /// to release both managed - /// and unmanaged resources; to release - /// only unmanaged resources. - protected override void Dispose( bool disposing ) - { - if( disposing ) - { - if( components != null ) - components.Dispose(); - - if( thread != null ) - thread.Abort(); - } - base.Dispose( disposing ); - } - #endregion - - #region Component Designer generated code - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ProgressIcon)); - this.images = new System.Windows.Forms.ImageList(this.components); - this.SuspendLayout(); - // - // images - // - this.images.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("images.ImageStream"))); - this.images.TransparentColor = System.Drawing.Color.Transparent; - this.images.Images.SetKeyName(0, "ProgressImage00.bmp"); - this.images.Images.SetKeyName(1, "ProgressImage01.bmp"); - this.images.Images.SetKeyName(2, "ProgressImage02.bmp"); - this.images.Images.SetKeyName(3, "ProgressImage03.bmp"); - this.images.Images.SetKeyName(4, "ProgressImage04.bmp"); - this.images.Images.SetKeyName(5, "ProgressImage05.bmp"); - this.images.Images.SetKeyName(6, "ProgressImage06.bmp"); - this.images.Images.SetKeyName(7, "ProgressImage07.bmp"); - this.images.Images.SetKeyName(8, "ProgressImage08.bmp"); - this.images.Images.SetKeyName(9, "ProgressImage09.bmp"); - this.images.Images.SetKeyName(10, "ProgressImage10.bmp"); - this.images.Images.SetKeyName(11, "ProgressImage11.bmp"); - this.images.Images.SetKeyName(12, "ProgressImage12.bmp"); - // - // ProgressIcon - // - this.Name = "ProgressIcon"; - this.Size = new System.Drawing.Size(30, 30); - this.ResumeLayout(false); - - } - #endregion - - /// Starts animation from the beginning. - /// - public void StartAnimation() - { - StopAnimation(); - CheckRange(); // Check the first and the last frames - - thread = new Thread( new ThreadStart( threadFunc ) ); - thread.IsBackground = true; - thread.Start(); - } - - /// Stops animation not changing current frame number. - /// - public void StopAnimation() - { - if( thread != null ) - { - thread.Abort(); - thread = null; - } - currentLoop = 0; - } - - /// Displays the specified frame. - /// An index of the image stored in the . - public void ShowFrame2(int frame) - { - StopAnimation(); - - if( frame >= 0 && frame < images.Images.Count ) - currentFrame = frame; - else - currentFrame = 0; - - Refresh(); - } - - /// Occurs when the control is redrawn. - /// A that contains - /// the event data. - /// The OnPaint method draws current image from - /// the if exists. - protected override void OnPaint(PaintEventArgs e) - { - // Draw a crossed rectangle if there is no frame to display - - if( images == null || - currentFrame < 0 || - currentFrame >= images.Images.Count ) - { - if( this.Size.Width == 0 || this.Size.Height == 0 ) - return; - - Pen pen = new Pen( SystemColors.ControlText ); - e.Graphics.DrawRectangle( pen, 0, 0, this.Size.Width-1, this.Size.Height-1 ); - e.Graphics.DrawLine( pen, 0, 0, this.Size.Width, this.Size.Height ); - e.Graphics.DrawLine( pen, 0, this.Size.Height-1, this.Size.Width-1, 0 ); - pen.Dispose(); - } - else - { - // Draw the current frame - - e.Graphics.DrawImage( images.Images[currentFrame], 0, 0, this.Size.Width, this.Size.Height ); - } - } - - /// The method to be invoked when the thread begins executing. - /// - private void threadFunc() - { - bool wasPause = false; - currentFrame = firstFrame; - - while( thread != null && thread.IsAlive ) - { - Refresh(); // Redraw the current frame - wasPause = false; - - if( images != null ) - { - currentFrame++; - if( currentFrame > lastFrame || - currentFrame >= images.Images.Count ) - { - if( pause > 0 ) // Sleep after every loop - { - Thread.Sleep( pause ); - wasPause = true; - } - - currentFrame = firstFrame; - if( loopCount != 0 ) // 0 is infinitive loop - { - currentLoop++; - } - } - - if( loopCount != 0 && currentLoop >= loopCount ) - { - StopAnimation(); // The loop is completed - } - } - if( !wasPause ) // That prevents summation (pause + delayInterval) - Thread.Sleep( delayInterval ); - } - } - - /// Check if the last frame is no less than the first one. - /// Otherwise, swap them. - private void CheckRange() - { - if( lastFrame < firstFrame ) - { - int tmp = firstFrame; - firstFrame = lastFrame; - lastFrame = tmp; - } - } - } -} diff --git a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/ProgressIcon.resx b/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/ProgressIcon.resx deleted file mode 100644 index bd3b1f7d..00000000 --- a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/ProgressIcon.resx +++ /dev/null @@ -1,855 +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 - - - 17, 17 - - - - AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w - LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 - ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADc - qQAAAk1TRnQBSQFMAgEBDQEAAQ4BAAEEAQABHgEAAR4BAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAF4 - AwABeAMAAQEBAAEgBgAB4RIAIP8D/gH/A/4B/wP5Af8D8QH/A+kB/wPiAf8D7AH/A/EB/wPiAf8D4gH/ - A+wB/wP5Af8D/gH/A/4h//8AaQAY/wP+Af8D/gH/AfUB9AH1Af8D4gH/A9kB/wPZAf8D2QH/A9YB/wPp - Af8D7AH/A9YB/wPZAf8D2QH/A9kB/wPiAf8D8QH/A/4B/wP+Gf//AGkAFP8D/gH/AfUB9AH1Af8B9QH0 - AfUB/wPsAf8D1gH/A9kB/wPZAf8D2QH/A9kB/wPpAf8D7AH/A9kB/wPZAf8D2QH/A9kB/wPWAf8D4gH/ - AfUB9AH1Af8B9QH0AfUB/wP+Ff//AGkAEP8D/gH/A/EB/wPZAf8D3AH/A/kB/wPiAf8D2QH/A9kB/wPZ - Af8D2QH/A+kB/wPsAf8D2QH/A9kB/wPZAf8D2QH/A9wB/wH1AfQB9QH/A+IB/wPZAf8D7AH/A/4R//8A - aQAM/wP+Af8D7AH/A9kB/wPZAf8D2QH/A+wB/wPxAf8D2QH/A9kB/wPZAf8D1gH/A+kB/wPsAf8D1gH/ - A9kB/wPZAf8D2QH/A+wB/wPxAf8D2QH/A9kB/wPZAf8D6QH/A/4N//8AaQAI/wP+Af8D8QH/A9kB/wPZ - Af8D2QH/A9kB/wPZAf8B9QH0AfUB/wPiAf8D1gH/A9wB/wPiAf8D8QH/AfUB9AH1Af8D4gH/A9wB/wPZ - Af8D3AH/A/kB/wPcAf8D2QH/A9kB/wPZAf8D2QH/A+wB/wP+Cf//AGkABP8D/gH/A/kB/wPZAf8D2QH/ - A9kB/wPZAf8D2QH/A9kB/wPiAf8D+QH/A/EB/wP+Af8D/gH/A/4B/wP+Af8D/gH/A/4B/wPxAf8B9QH0 - AfUB/wPpAf8D1gH/A9kB/wPZAf8D2QH/A9kB/wPZAf8B9QH0AfUB/wP+Bf//AGkABP8D/gH/A/kB/wPp - Af8D2QH/A9kB/wPZAf8D2QH/A9kB/wPsAf8D/gH/A/4Z/wP+Af8D/gH/A+wB/wPZAf8D2QH/A9kB/wPZ - Af8D2QH/A+IB/wP5Af8D/gX//wBpAAP+Af8D8QH/A+IB/wH1AfQB9QH/AfUB9AH1Af8D4gH/A9kB/wPZ - Af8D8QH/A/4p/wP+Af8D8QH/A9kB/wPZAf8D4gH/AfUB9AH1Af8B9QH0AfUB/wPiAf8D8QH/A/4B//8A - aQAD/gH/A+IB/wPWAf8D2QH/A+IB/wH1AfQB9QH/A/EB/wPsAf8D/jH/A/4B/wPsAf8D8QH/A/kB/wPp - Af8D2QH/A9YB/wPiAf8D/gH//wBpAAP5Af8D3AH/A9kB/wPZAf8D2QH/A9kB/wPsAf8D/jn/A/4B/wPx - Af8D3AH/A9kB/wPZAf8D2QH/A9kB/wP5Af//AGkAA/EB/wPZAf8D2QH/A9kB/wPZAf8D2QH/A+wB/wP+ - Of8D/gH/A+wB/wPZAf8D2QH/A9kB/wPZAf8D2QH/A+wB//8AaQAD6QH/A9kB/wPZAf8D2QH/A9kB/wPZ - Af8D+UH/A/kB/wPcAf8D2QH/A9kB/wPZAf8D2QH/A+IB//8AaQAD4gH/A9kB/wPZAf8D2QH/A9kB/wPi - Af8D/kH/A/4B/wPiAf8D2QH/A9kB/wPZAf8D2QH/A+IB//8AaQAB9QH0AfUB/wPxAf8D8QH/A/EB/wPx - Af8B9QH0AfUB/wP+Qf8D/gH/AfUB9AH1Af8D8QH/A/EB/wPxAf8D8QH/AfUB9AH1Af//AGkAA+kB/wPi - Af8D4gH/A+IB/wPiAf8D7AH/A/5B/wP+Af8D7AH/A+IB/wPiAf8D4gH/A+IB/wPpAf//AGkAA+IB/wPW - Af8D2QH/A9kB/wPWAf8D3AH/A/5B/wP+Af8D4gH/A9YB/wPZAf8D2QH/A9YB/wPiAf//AGkAA+kB/wPZ - Af8D2QH/A9kB/wPZAf8D2QH/A/lB/wP5Af8D3AH/A9kB/wPZAf8D2QH/A9kB/wPiAf//AGkAA/EB/wPZ - Af8D2QH/A9kB/wPZAf8D1gH/A+wB/wP+Of8D/gH/A+wB/wPWAf8D2QH/A9kB/wPZAf8D2QH/A+wB//8A - aQAD+QH/A9wB/wPZAf8D2QH/A9kB/wHoAeQB6AH/AfUB9AH1Af8B+QH8Afk5/wP+Af8D+QH/A+kB/wPZ - Af8D2QH/A9kB/wPZAf8D+QH//wBpAAP+Af8D4gH/A9YB/wHhAd4B4QH/AfgB8gH3Af8B6gH4AesB/wF8 - Ad4BgQH/AYUB2gGKAf8D/jH/A/4B/wPpAf8D4gH/AfUB9AH1Af8B9QH0AfUB/wPiAf8D1gH/A+IB/wP+ - Af//AGkAA/4B/wH1AfQB9QH/AfAB6wHvAf8B8AH5AfEB/wG8AfsBwQH/AYkB+gGRAf8BagHoAXQB/wE1 - AcUBPgH/AZsB4gGgAf8D/in/A/4B/wPxAf8D2QH/A9kB/wPZAf8D6QH/A/kB/wPxAf8B9QH0AfUB/wP+ - Af//AGkABP8D/gH/AeAB+AHiAf8BkgH7AZkB/wGDAfkBjAH/AYMB+QGMAf8BiQH6AZEB/wFqAegBdAH/ - ATUBxQE+Af8BjwHdAZQB/wP+Af8D/hn/A/4B/wP+Af8D7AH/A9kB/wPZAf8D2QH/A9kB/wPZAf8D2QH/ - A/EB/wP+Bf//AGkABP8D/gH/AeoB+AHrAf8BkgH7AZkB/wGDAfkBjAH/AYkB+gGRAf8BiQH6AZEB/wGJ - AfoBkQH/AWoB6AF0Af8BoQHqAaYB/wGqAdIBqwH/AYIBvQGDAf8B2wHsAdsB/wH5AfwB+QH/A/4B/wP+ - Af8D/gH/A/kB/wPsAf8D7AH/A/EB/wPZAf8D2QH/A9kB/wPZAf8D2QH/A9kB/wP5Af8D/gX//wBpAAj/ - A/4B/wHYAfoB2wH/AYkB+gGRAf8BiQH6AZEB/wGJAfoBkQH/AYMB+QGMAf8BmgH5AaEB/wHmAfsB6AH/ - AUIBogFEAf8BDwGGAREB/wEhAYwBIwH/ATQBlQE2Af8BkgHJAZMB/wH4AfIB+AH/A9wB/wPZAf8D2QH/ - A9kB/wP5Af8D4gH/A9kB/wPZAf8D2QH/A9kB/wPxAf8D/gn//wBpAAz/A/4B/wHRAfoB1AH/AYkB+gGR - Af8BgwH5AYwB/wGDAfkBjAH/AdgB+gHbAf8BmQHLAZkB/wEyAaMBNAH/ATsBqQE9Af8BMgGjATQB/wEc - AZABHgH/AXwBwgF9Af8B9AHwAfQB/wPWAf8D2QH/A9kB/wPZAf8D4gH/AfUB9AH1Af8D2QH/A9kB/wPZ - Af8D7AH/A/4N//8AaQAQ/wP+Af8B2AH6AdsB/wGSAfsBmQH/AaoB/AGxAf8B0gHqAdIB/wFDAasBRQH/ - ATsBqQE9Af8BOwGpAT0B/wE7AakBPQH/ATIBowE0Af8BiQHIAYoB/wH0AfAB9AH/A9kB/wPZAf8D2QH/ - A9kB/wPZAf8D8QH/A+kB/wPZAf8D8QH/A/4R//8AaQAU/wP+Af8B6gH4AesB/wHqAfgB6wH/AXwBwgF9 - Af8BKQGgASwB/wE7AakBPQH/ATsBqQE9Af8BOwGpAT0B/wEuAaIBMgH/AYkByAGKAf8B9AHwAfQB/wPZ - Af8D2QH/A9kB/wPZAf8D1gH/A+IB/wP5Af8D+QH/A/4V//8AaQAY/wP+Af8D/gH/Ac4B6wHQAf8BhAHI - AYYB/wFLAbABTQH/ATgBqAE6Af8BLgGiATIB/wEnAaABKQH/AYQByAGGAf8B8QHsAfEB/wPWAf8D1gH/ - A9kB/wPcAf8D4gH/AfUB9AH1Af8D/gH/A/4Z//8AaQAg/wP+Af8D/gH/AeoB+AHrAf8BuQHgAboB/wGS - AdABkwH/AW0BwAFvAf8BpAHYAaUB/wH0AfAB9AH/A+IB/wPpAf8D8QH/A/kB/wP+Af8D/iH//wBpACD/ - A/4B/wP+Af8B2wHsAdsB/wGgAdEBoQH/AXIBvAF0Af8BSQGlAUwB/wGZAcsBmQH/AaoB0gGrAf8BQgGi - AUQB/wFqAbQBawH/AZkBywGZAf8B2wHsAdsB/wP+Af8D/kH/A/4B/wP+Af8B3AHwAd0B/wGgAdEBoQH/ - AXIBvAF0Af8BSQGlAUwB/wGZAcsBmQH/AaoB0gGrAf8BQgGiAUQB/wFqAbQBawH/AZkBywGZAf8B2wHs - AdsB/wP+Af8D/kH/A/4B/wP+Af8B4AH4AeIB/wG0AewBuAH/AZAB5gGWAf8BbAHbAXQB/wGkAesBqQH/ - AfQB8AH0Af8D4gH/A+IB/wPsAf8D+QH/A/4B/wP+Qf8D/gH/A/4B/wP5Af8D8QH/A+kB/wPiAf8D7AH/ - A/EB/wPiAf8D4gH/A+wB/wP5Af8D/gH/A/45/wP+Af8D/gH/Ab8B4AHAAf8BYQGxAWIB/wEqAZoBLQH/ - ARwBkAEeAf8BFwGMARkB/wEQAYgBEQH/AYUBwgGGAf8BkgHJAZMB/wEKAYMBDAH/ARMBiAEVAf8BEwGI - ARUB/wEiAZIBJAH/AVkBrAFbAf8BswHbAbQB/wP+Af8D/jH/A/4B/wP+Af8BvwHgAcAB/wFhAbEBYgH/ - ASoBmgEtAf8BHAGQAR4B/wEXAYwBGQH/ARABiAERAf8BhQHCAYYB/wGSAckBkwH/AQoBgwEMAf8BEwGI - ARUB/wETAYgBFQH/ASIBkgEkAf8BWQGsAVsB/wGzAdsBtAH/A/4B/wP+Mf8D/gH/A/4B/wHNAfMB0AH/ - AYMB4QGJAf8BWgHdAWMB/wFLAdkBVAH/AUkB0gFSAf8BQgHQAUsB/wGVAeoBmwH/AfEB7AHxAf8D1gH/ - A9kB/wPZAf8D2QH/A+IB/wPxAf8D/gH/A/4x/wP+Af8D/gH/AfUB9AH1Af8D4gH/A9kB/wPZAf8D2QH/ - A9YB/wPpAf8D7AH/A9YB/wPZAf8D2QH/A9kB/wPiAf8D8QH/A/4B/wP+Lf8D/gH/AckB4gHJAf8BuQHg - AboB/wGSAckBkwH/ARMBiAEVAf8BIgGSASQB/wEiAZIBJAH/ASIBkgEkAf8BFwGMARkB/wGJAcIBigH/ - AZkBywGZAf8BEwGIARUB/wEiAZIBJAH/ASIBkgEkAf8BGgGMARwB/wEKAYMBDAH/AWoBtAFrAf8ByQHi - AckB/wHBAeIBwgH/A/4p/wP+Af8ByQHiAckB/wG/AeABwAH/AZIByQGTAf8BEwGIARUB/wEiAZIBJAH/ - ASIBkgEkAf8BIgGSASQB/wEXAYwBGQH/AYkBwgGKAf8BmQHLAZkB/wETAYgBFQH/ASIBkgEkAf8BIgGS - ASQB/wEaAYwBHAH/AQoBgwEMAf8BagG0AWsB/wHWAfQB2AH/AdAB8wHTAf8D/in/A/4B/wHJAeIByQH/ - AbgB3QG5Af8BrQHyAbIB/wFLAdkBVAH/AVUB2wFeAf8BVQHbAV4B/wFVAdsBXgH/AUkB0gFSAf8BmAHq - AZ0B/wHxAewB8QH/A9kB/wPZAf8D2QH/A9kB/wPWAf8D4gH/AfUB9AH1Af8B9QH0AfUB/wP+Kf8D/gH/ - AfUB9AH1Af8B9QH0AfUB/wPsAf8D1gH/A9kB/wPZAf8D2QH/A9kB/wPpAf8D7AH/A9kB/wPZAf8D2QH/ - A9kB/wPWAf8D4gH/AfUB9AH1Af8B9QH0AfUB/wP+Jf8D/gH/AasB2AGsAf8BLgGcATEB/wE5AaEBOwH/ - AdcB6gHYAf8BTwGqAVEB/wEiAZIBJAH/AScBlgEpAf8BIgGSASQB/wEXAYwBGQH/AYkBwgGKAf8BmQHL - AZkB/wETAYgBFQH/ASIBkgEkAf8BIgGSASQB/wEaAYwBHAH/ASwBlQEuAf8B0AHnAdAB/wFJAaUBTAH/ - ARoBjAEcAf8BmQHLAZkB/wP+If8D/gH/AasB2AGsAf8BLgGcATEB/wE5AaEBOwH/AdcB6gHYAf8BTwGq - AVEB/wEiAZIBJAH/AScBlgEpAf8BIgGSASQB/wEXAYwBGQH/AYkBwgGKAf8BmQHLAZkB/wETAYgBFQH/ - ASIBkgEkAf8BIgGSASQB/wEaAYwBHAH/ASwBlQEuAf8B0gHqAdIB/wFsAdsBdAH/AUIBywFKAf8BrAHq - AbAB/wP+If8D/gH/AasB2AGsAf8BLgGcATEB/wE5AaEBOwH/AdwB8AHdAf8BfAHnAYMB/wFVAdsBXgH/ - AVoB3QFjAf8BVQHbAV4B/wFJAdIBUgH/AZUB6gGbAf8B8QHsAfEB/wPZAf8D2QH/A9kB/wPZAf8D3AH/ - AfUB9AH1Af8D4gH/A9kB/wPsAf8D/iH/A/4B/wPxAf8D2QH/A9wB/wP5Af8D4gH/A9kB/wPZAf8D2QH/ - A9kB/wPpAf8D7AH/A9kB/wPZAf8D2QH/A9kB/wPcAf8B9QH0AfUB/wPiAf8D2QH/A+wB/wP+Hf8D/gH/ - AZoB0gGbAf8BIwGZASYB/wEmAZgBKQH/AR8BkgEhAf8BkgHJAZMB/wG5AeABugH/ASIBkgEkAf8BJgGY - ASkB/wEmAZgBKQH/ARwBkAEeAf8BiQHIAYoB/wGaAdIBmwH/ARwBkAEeAf8BJgGYASkB/wEiAZIBJAH/ - ARMBiAEVAf8BlgHJAZgB/wGqAdIBqwH/ARMBiAEVAf8BGgGMARwB/wETAYgBFQH/AYcBwgGIAf8D/hn/ - A/4B/wGaAdIBmwH/ASMBmQEmAf8BJgGYASkB/wEfAZIBIQH/AZIByQGTAf8BuAHdAbkB/wEiAZIBJAH/ - ASIBkgEkAf8BJgGYASkB/wEcAZABHgH/AYkByAGKAf8BmgHSAZsB/wEcAZABHgH/ASYBmAEpAf8BIgGS - ASQB/wETAYgBFQH/AZABxQGRAf8BvAHxAcAB/wFCAdABSwH/AUIBywFKAf8BPAHLAUUB/wGbAeIBoAH/ - A/4Z/wP+Af8BmgHSAZsB/wEjAZkBJgH/ASYBmAEpAf8BHwGSASEB/wGJAcIBigH/Ac4B+gHRAf8BVQHb - AV4B/wFaAd0BYwH/AVoB4AFjAf8BWgHgAWMB/wGlAfIBqgH/AfEB7AHxAf8D1gH/A9kB/wPZAf8D2QH/ - A+wB/wPxAf8D2QH/A9kB/wPZAf8D6QH/A/4Z/wP+Af8D7AH/A9kB/wPZAf8D2QH/A+wB/wPxAf8D2QH/ - A9kB/wPZAf8D1gH/A+kB/wPsAf8D1gH/A9kB/wPZAf8D2QH/A+wB/wPxAf8D2QH/A9kB/wPZAf8D6QH/ - A/4V/wP+Af8BqwHYAawB/wEmAZgBKQH/ASoBmgEtAf8BKgGaAS0B/wEqAZoBLQH/ATEBnQEzAf8B0gHq - AdIB/wFpAbsBawH/ASMBmQEmAf8BSAGtAUsB/wFiAboBYwH/AbkB4AG6Af8BwQHiAcIB/wFtAcABbwH/ - AVIBsgFUAf8BMgGjATQB/wFTAakBVQH/AdsB7AHbAf8BPwGdAUEB/wEaAYwBHAH/ASIBkgEkAf8BGgGM - ARwB/wESAYQBFAH/AZIByQGTAf8D/hH/A/4B/wGrAdgBrAH/ASYBmAEpAf8BKgGaAS0B/wEuAZwBMQH/ - ASoBmgEtAf8BMQGdATMB/wHSAeoB0gH/AWkBuwFrAf8BIwGZASYB/wFIAa0BSwH/AWIBugFjAf8BuQHg - AboB/wHBAeIBwgH/AW0BwAFvAf8BUgGyAVQB/wEyAaMBNAH/AU8BqgFRAf8B3AHwAd0B/wFlAdoBbQH/ - AUIB0AFLAf8BSQHSAVIB/wFCAdABSwH/ATwBywFFAf8BqQHpAa0B/wP+Ef8D/gH/AasB2AGsAf8BJgGY - ASkB/wEqAZoBLQH/ASoBmgEtAf8BKgGaAS0B/wExAZ0BMwH/AdIB6gHSAf8BlAHwAZoB/wFnAewBcQH/ - AYIB8QGKAf8BmgH5AaEB/wHRAfoB1AH/AfQB8AH0Af8D4gH/A9wB/wPZAf8D3AH/A/kB/wPcAf8D2QH/ - A9kB/wPZAf8D2QH/A+wB/wP+Ef8D/gH/A/EB/wPZAf8D2QH/A9kB/wPZAf8D2QH/AfUB9AH1Af8D4gH/ - A9YB/wPcAf8D4gH/A/EB/wH1AfQB9QH/A+IB/wPcAf8D2QH/A9wB/wP5Af8D3AH/A9kB/wPZAf8D2QH/ - A9kB/wPsAf8D/g3/A/4B/wHcAfAB3QH/ATIBowE0Af8BJgGYASkB/wEuAZwBMQH/AS4BnAExAf8BLgGc - ATEB/wEfAZIBIQH/AWEBsQFiAf8B0gHqAdIB/wGrAdgBrAH/AegB9QHoAf8D/gH/A/4B/wP+Af8D/gH/ - AfAB+QHxAf8BswHbAbQB/wHLAegBywH/AZIB0AGTAf8BHwGSASEB/wEfAZIBIQH/ASIBkgEkAf8BIQGM - ASMB/wEaAYwBHAH/ARoBjAEcAf8ByQHiAckB/wP+Cf8D/gH/AdwB8AHdAf8BMgGjATQB/wEmAZgBKQH/ - AS4BnAExAf8BLgGcATEB/wEuAZwBMQH/AR8BkgEhAf8BYQGxAWIB/wHSAeoB0gH/AasB2AGsAf8B6gH4 - AesB/wP+Af8D/gH/A/4B/wP+Af8B8AH5AfEB/wGzAdsBtAH/AcsB6AHLAf8BxQH6AckB/wFaAeABYwH/ - AUkB0gFSAf8BSQHSAVIB/wFJAdIBUgH/AUIBywFKAf8BQgHLAUoB/wHWAfQB2AH/A/4J/wP+Af8B3AHw - Ad0B/wEyAaMBNAH/ASYBmAEpAf8BLgGcATEB/wEuAZwBMQH/AS4BnAExAf8BHwGSASEB/wFhAbEBYgH/ - AeAB+AHiAf8BxQH6AckB/wHwAfkB8QH/A/4B/wP+Af8D/gH/A/4B/wP+Af8D8QH/AfUB9AH1Af8D6QH/ - A9YB/wPZAf8D2QH/A9kB/wPZAf8D2QH/AfUB9AH1Af8D/gn/A/4B/wP5Af8D2QH/A9kB/wPZAf8D2QH/ - A9kB/wPZAf8D4gH/A/kB/wPxAf8D/gH/A/4B/wP+Af8D/gH/A/4B/wP+Af8D8QH/AfUB9AH1Af8D6QH/ - A9YB/wPZAf8D2QH/A9kB/wPZAf8D2QH/AfUB9AH1Af8D/gn/A/4B/wHgAfEB4QH/AZIByQGTAf8BMgGj - ATQB/wEjAZkBJgH/AS4BnAExAf8BJgGYASkB/wEmAZgBKQH/AZIByQGTAf8D/gH/A/4Z/wP+Af8D/gH/ - AasB2AGsAf8BRQGwAUcB/wEqAZoBLQH/AR8BigEhAf8BFwGMARkB/wEaAYwBHAH/AWoBtAFrAf8B3AHw - Ad0B/wP+Cf8D/gH/AeAB8QHhAf8BkgHJAZMB/wEyAaMBNAH/ASMBmQEmAf8BKgGaAS0B/wEmAZgBKQH/ - ASYBmAEpAf8BkgHJAZMB/wP+Af8D/hn/A/4B/wP+Af8B0QH6AdQB/wGaAfkBoQH/AWsB5QF0Af8BSAHS - AVEB/wFCAdABSwH/AUIBywFKAf8BgQHgAYYB/wHgAfgB4gH/A/4J/wP+Af8B4AHxAeEB/wGSAckBkwH/ - ATIBowE0Af8BIwGZASYB/wEuAZwBMQH/ASoBmgEtAf8BJgGYASkB/wGSAckBkwH/A/4B/wP+Gf8D/gH/ - A/4B/wPsAf8D2QH/A9kB/wPZAf8D2QH/A9kB/wPiAf8D+QH/A/4J/wP+Af8B8AH5AfEB/wHxAewB8QH/ - AdwB2gHcAf8D2QH/A9kB/wPZAf8D2QH/A+wB/wP+Af8D/hn/A/4B/wP+Af8D7AH/A9kB/wPZAf8D2QH/ - A9kB/wPZAf8D4gH/A/kB/wP+Bf8D/gH/AbkB4AG6Af8BUgGyAVQB/wHBAeIBwgH/AdIB6gHSAf8BcgG8 - AXQB/wEjAZkBJgH/ARwBkAEeAf8BqgHSAasB/wP+Kf8D/gH/AcEB4gHCAf8BRQGwAUcB/wEiAZIBJAH/ - AVMBqQFVAf8BwQHiAcIB/wHJAeIByQH/AVMBqQFVAf8BqgHSAasB/wP+Af8D/gH/AbkB4AG6Af8BUgGy - AVQB/wHBAeIBwgH/AdIB6gHSAf8BcgG8AXQB/wEjAZkBJgH/ARwBkAEeAf8BqgHSAasB/wP+Kf8D/gH/ - Ad0B+wHgAf8BmgH5AaEB/wFaAeABYwH/AWwB2wF0Af8BxQH6AckB/wH4AfIB+AH/A+IB/wPxAf8D/gH/ - A/4B/wG5AeABugH/AVIBsgFUAf8BwQHiAcIB/wHSAeoB0gH/AXIBvAF0Af8BIwGZASYB/wEcAZABHgH/ - AaoB0gGrAf8D/in/A/4B/wPxAf8D2QH/A9kB/wPiAf8B9QH0AfUB/wH1AfQB9QH/A+IB/wPxAf8D/gH/ - A/4B/wHRAfoB1AH/AYIB8QGKAf8BzgH6AdEB/wH4AfIB+AH/AegB5AHoAf8D2QH/A9kB/wPxAf8D/in/ - A/4B/wPxAf8D2QH/A9kB/wPiAf8B9QH0AfUB/wH1AfQB9QH/A+IB/wPxAf8D/gH/A/4B/wFyAbwBdAH/ - ASMBmQEmAf8BKgGaAS0B/wFwAbkBcgH/AdIB6gHSAf8BswHbAbQB/wGZAcsBmQH/A/4x/wP+Af8BswHb - AbQB/wGzAdsBtAH/AdsB7AHbAf8BeQG8AXsB/wEiAZIBJAH/AQoBgwEMAf8BUwGpAVUB/wP+Af8D/gH/ - AXIBvAF0Af8BIwGZASYB/wEqAZoBLQH/AXABuQFyAf8B0gHqAdIB/wGzAdsBtAH/AZkBywGZAf8D/jH/ - A/4B/wHRAfoB1AH/Ac4B+gHRAf8B8AH5AfEB/wHxAewB8QH/A9kB/wPWAf8D4gH/A/4B/wP+Af8BcgG8 - AXQB/wEjAZkBJgH/ASoBmgEtAf8BcAG5AXIB/wHSAeoB0gH/AbMB2wG0Af8BmQHLAZkB/wP+Mf8D/gH/ - A+wB/wPxAf8D+QH/A+kB/wPZAf8D1gH/A+IB/wP+Af8D/gH/AZ4B8wGkAf8BagHoAXQB/wFqAegBdAH/ - AZQB8AGaAf8B4AH4AeIB/wH0AfAB9AH/A+wB/wP+Mf8D/gH/A+wB/wPxAf8D+QH/A+kB/wPZAf8D1gH/ - A+IB/wP+Af8B4AHxAeEB/wE/AakBQQH/ATIBowE0Af8BMgGjATQB/wEqAZoBLQH/ASYBmAEpAf8BmQHL - AZkB/wP+Of8D/gH/AcEB4gHCAf8BPwGpAUEB/wETAYgBFQH/AR8BigEhAf8BGgGMARwB/wEiAZIBJAH/ - AdIB6gHSAf8B4AHxAeEB/wE/AakBQQH/ATIBowE0Af8BMgGjATQB/wEqAZoBLQH/ASYBmAEpAf8BmQHL - AZkB/wP+Of8D/gH/AfQB8AH0Af8D3AH/A9kB/wPZAf8D2QH/A9kB/wP5Af8B4AHxAeEB/wE/AakBQQH/ - ATIBowE0Af8BMgGjATQB/wEqAZoBLQH/ASYBmAEpAf8BmQHLAZkB/wP+Of8D/gH/A/EB/wPcAf8D2QH/ - A9kB/wPZAf8D2QH/A/kB/wHqAfgB6wH/AXoB8gGBAf8BdQHxAX4B/wFxAesBegH/AWoB6AF0Af8BWgHd - AWMB/wGkAesBqQH/A/45/wP+Af8D8QH/A9wB/wPZAf8D2QH/A9kB/wPZAf8D+QH/AasB2AGsAf8BLgGi - ATIB/wE2AaQBOQH/ATYBpAE5Af8BMgGjATQB/wETAYgBFQH/AZIByQGTAf8D/jn/A/4B/wGzAdsBtAH/ - ATIBowE0Af8BIgGSASQB/wEiAZIBJAH/ASIBkgEkAf8BEwGIARUB/wGSAckBkwH/AasB2AGsAf8BLgGi - ATIB/wE2AaQBOQH/ATYBpAE5Af8BMgGjATQB/wETAYgBFQH/AZIByQGTAf8D/jn/A/4B/wPsAf8D2QH/ - A9kB/wPZAf8D2QH/A9kB/wPsAf8BqwHYAawB/wEuAaIBMgH/ATYBpAE5Af8BNgGkATkB/wEyAaMBNAH/ - ARMBiAEVAf8BkgHJAZMB/wP+Of8D/gH/A+wB/wPZAf8D2QH/A9kB/wPZAf8D2QH/A+wB/wHKAfkBzQH/ - AXUB8QF+Af8BegHyAYEB/wF6AfIBgQH/AXEB6wF6Af8BQAHPAUoB/wGkAeYBqAH/A/45/wP+Af8D7AH/ - A9kB/wPZAf8D2QH/A9kB/wPZAf8D7AH/AYQByAGGAf8BKQGgASwB/wE2AaQBOQH/ATYBpAE5Af8BKgGa - AS0B/wEhAYwBIwH/AdsB7AHbQf8B6AH1AegB/wFLAbABTQH/ASYBmAEpAf8BIgGSASQB/wEiAZIBJAH/ - ARMBiAEVAf8BagG0AWsB/wGEAcgBhgH/ASkBoAEsAf8BNgGkATkB/wE2AaQBOQH/ASoBmgEtAf8BIQGM - ASMB/wHbAewB20H/A/kB/wPcAf8D2QH/A9kB/wPZAf8D2QH/A+IB/wGEAcgBhgH/ASkBoAEsAf8BNgGk - ATkB/wE2AaQBOQH/ASoBmgEtAf8BIQGMASMB/wHbAewB20H/A/kB/wPcAf8D2QH/A9kB/wPZAf8D2QH/ - A+IB/wGqAfwBsQH/AXUB8QF+Af8BegHyAYEB/wF6AfIBgQH/AWgB5QFxAf8BQgHLAUoB/wHgAfEB4UH/ - A/kB/wPcAf8D2QH/A9kB/wPZAf8D2QH/A+IB/wFpAbsBawH/AS4BogEyAf8BNgGkATkB/wE2AaQBOQH/ - ASIBkgEkAf8BPgGbAUAB/wH5AfwB+UH/A/4B/wFtAcABbwH/ASMBmQEmAf8BHwGKASEB/wEfAZIBIQH/ - ARcBjAEZAf8BSQGlAUwB/wFpAbsBawH/AS4BogEyAf8BNgGkATkB/wE2AaQBOQH/ASIBkgEkAf8BPgGb - AUAB/wH5AfwB+UH/A/4B/wPiAf8D2QH/A9kB/wPZAf8D2QH/A+IB/wFpAbsBawH/AS4BogEyAf8BNgGk - ATkB/wE2AaQBOQH/ASIBkgEkAf8BPgGbAUAB/wH5AfwB+UH/A/4B/wPiAf8D2QH/A9kB/wPZAf8D2QH/ - A+IB/wGaAfkBoQH/AXoB8gGBAf8BegHyAYEB/wF6AfIBgQH/AVoB4AFjAf8BWwHQAWIB/wH5AfwB+UH/ - A/4B/wPiAf8D2QH/A9kB/wPZAf8D2QH/A+IB/wHLAegBywH/AbkB4AG6Af8BuQHgAboB/wG5AeABugH/ - AbMB2wG0Af8BwQHiAcIB/wP+Qf8D/gH/AdIB6gHSAf8BuAHdAbkB/wGzAdsBtAH/AbMB2wG0Af8BswHb - AbQB/wG/AeABwAH/AcsB6AHLAf8BuQHgAboB/wG5AeABugH/AbkB4AG6Af8BswHbAbQB/wHBAeIBwgH/ - A/5B/wP+Af8B9QH0AfUB/wPxAf8D8QH/A/EB/wPxAf8B9QH0AfUB/wHLAegBywH/AbkB4AG6Af8BuQHg - AboB/wG5AeABugH/AbMB2wG0Af8BwQHiAcIB/wP+Qf8D/gH/AfUB9AH1Af8D8QH/A/EB/wPxAf8D8QH/ - AfUB9AH1Af8B3QH7AeAB/wHRAfoB1AH/AdQB/AHYAf8B1AH8AdgB/wHFAfIByAH/Ac0B8wHQAf8D/kH/ - A/4B/wH1AfQB9QH/A/EB/wPxAf8D8QH/A/EB/wH1AfQB9QH/AZIB0AGTAf8BfAHCAX0B/wF8AcIBfQH/ - AXwBwgF9Af8BaQG7AWsB/wGJAcIBigH/A/5B/wP+Af8BzgH6AdEB/wGeAfMBpAH/AYwB5gGSAf8BjAHm - AZIB/wGMAeYBkgH/AZwB7AGhAf8BkgHQAZMB/wF8AcIBfQH/AXwBwgF9Af8BfAHCAX0B/wFpAbsBawH/ - AYkBwgGKAf8D/kH/A/4B/wPsAf8D4gH/A+IB/wPiAf8D4gH/A+kB/wGSAdABkwH/AXwBwgF9Af8BfAHC - AX0B/wF8AcIBfQH/AWkBuwFrAf8BiQHCAYoB/wP+Qf8D/gH/A+wB/wPiAf8D4gH/A+IB/wPiAf8D6QH/ - AZIByQGTAf8BdQHAAXYB/wF4AcABeQH/AXwBwgF9Af8BagG0AWsB/wGIAb8BiQH/A/5B/wP+Af8D7AH/ - A+IB/wPiAf8D4gH/A+IB/wPpAf8BaQG7AWsB/wEpAaABLAH/ATIBowE0Af8BMgGjATQB/wEcAZABHgH/ - ATQBlQE2Af8B+QH8AflB/wP+Af8BngHzAaQB/wFfAeIBaQH/AUkB0gFSAf8BSwHZAVQB/wFCAdABSwH/ - AWwB2wF0Af8BaQG7AWsB/wEpAaABLAH/ATIBowE0Af8BMgGjATQB/wEcAZABHgH/ATQBlQE2Af8B8AH5 - AfFB/wP+Af8D4gH/A9YB/wPZAf8D2QH/A9YB/wPiAf8BaQG7AWsB/wEpAaABLAH/ATIBowE0Af8BMgGj - ATQB/wEcAZABHgH/ATQBlQE2Af8B8AH5AfFB/wP+Af8D4gH/A9YB/wPZAf8D2QH/A9YB/wPiAf8BaQG7 - AWsB/wEpAaABLAH/ATIBowE0Af8BMgGjATQB/wEcAZABHgH/ATQBlQE2Af8B8AH5AfFB/wP+Af8D4gH/ - A9YB/wPZAf8D2QH/A9YB/wPiAf8BiQHIAYoB/wEyAaMBNAH/ATsBqQE9Af8BOwGpAT0B/wEyAaMBNAH/ - AR8BigEhAf8B1wHqAdhB/wHvAfwB8AH/AYIB8QGKAf8BXwHiAWkB/wFVAdsBXgH/AVUB2wFeAf8BSQHS - AVIB/wGMAeYBkgH/AYkByAGKAf8BMgGjATQB/wE7AakBPQH/ATsBqQE9Af8BMgGjATQB/wEfAYoBIQH/ - AdcB6gHYQf8D+QH/A9wB/wPZAf8D2QH/A9kB/wPZAf8D4gH/AYkByAGKAf8BMgGjATQB/wE7AakBPQH/ - ATsBqQE9Af8BMgGjATQB/wEfAYoBIQH/AdcB6gHYQf8D+QH/A9wB/wPZAf8D2QH/A9kB/wPZAf8D4gH/ - AYkByAGKAf8BMgGjATQB/wE7AakBPQH/ATsBqQE9Af8BMgGjATQB/wEfAYoBIQH/AdcB6gHYQf8D+QH/ - A9wB/wPZAf8D2QH/A9kB/wPZAf8D4gH/AbMB2wG0Af8BMgGjATQB/wE7AakBPQH/ATsBqQE9Af8BOwGp - AT0B/wEKAYMBDAH/AYkBwgGKAf8D/jn/A/4B/wHFAfoByQH/AWcB7AFxAf8BWgHdAWMB/wFaAd0BYwH/ - AVUB2wFeAf8BSwHZAVQB/wGwAewBtAH/AbMB2wG0Af8BMgGjATQB/wE7AakBPQH/ATsBqQE9Af8BOQGh - ATsB/wEKAYMBDAH/AYkBwgGKAf8D/jn/A/4B/wPsAf8D1gH/A9kB/wPZAf8D2QH/A9kB/wPsAf8BswHb - AbQB/wEyAaMBNAH/ATsBqQE9Af8BOwGpAT0B/wE5AaEBOwH/AQoBgwEMAf8BiQHCAYoB/wP+Of8D/gH/ - A+wB/wPWAf8D2QH/A9kB/wPZAf8D2QH/A+wB/wGzAdsBtAH/ATIBowE0Af8BOwGpAT0B/wE7AakBPQH/ - ATkBoQE7Af8BCgGDAQwB/wGJAcIBigH/A/45/wP+Af8D7AH/A9YB/wPZAf8D2QH/A9kB/wPZAf8D7AH/ - AegB9QHoAf8BSwGwAU0B/wE7AakBPQH/ATIBowE0Af8BMgGjATQB/wFnAbYBaQH/AckB4gHJAf8B+QH8 - Afk5/wP+Af8B6gH4AesB/wGeAfMBpAH/AVoB3QFjAf8BVQHbAV4B/wFVAdsBXgH/AVoB3QFjAf8B4AH4 - AeIB/wHoAfUB6AH/AUsBsAFNAf8BOwGpAT0B/wEyAaMBNAH/ATIBowE0Af8BZwG2AWkB/wHJAeIByQH/ - AfkB/AH5Of8D/gH/A/kB/wPpAf8D2QH/A9kB/wPZAf8D2QH/A/kB/wHoAfUB6AH/AUsBsAFNAf8BOwGp - AT0B/wEyAaMBNAH/ATIBowE0Af8BZwG2AWkB/wHJAeIByQH/AfkB/AH5Of8D/gH/A/kB/wPpAf8D2QH/ - A9kB/wPZAf8D2QH/A/kB/wHoAfUB6AH/AUsBsAFNAf8BOwGpAT0B/wEyAaMBNAH/ATIBowE0Af8BZwG2 - AWkB/wHJAeIByQH/AfkB/AH5Of8D/gH/A/kB/wPpAf8D2QH/A9kB/wPZAf8D2QH/A/kB/wP+Af8BfAHC - AX0B/wEpAaABLAH/AVsBsQFdAf8BuQHgAboB/wHgAfEB4QH/AWEBsQFiAf8BdAG1AXUB/wP+Mf8D/gH/ - A+kB/wPiAf8B+AHyAfgB/wHRAfoB1AH/AXwB5wGDAf8BSwHZAVQB/wGDAeEBiQH/A/4B/wP+Af8BfAHC - AX0B/wEpAaABLAH/AVsBsQFdAf8BuQHgAboB/wHgAfEB4QH/AWEBsQFiAf8BdAG1AXUB/wP+Mf8D/gH/ - A+kB/wPiAf8B9QH0AfUB/wH1AfQB9QH/A+IB/wPWAf8D4gH/A/4B/wP+Af8BfAHCAX0B/wEpAaABLAH/ - AVsBsQFdAf8BuQHgAboB/wHgAfEB4QH/AWEBsQFiAf8BdAG1AXUB/wP+Mf8D/gH/A+kB/wPiAf8B9QH0 - AfUB/wH1AfQB9QH/A+IB/wPWAf8D4gH/A/4B/wP+Af8BfAHCAX0B/wEpAaABLAH/AVsBsQFdAf8BuQHg - AboB/wHgAfEB4QH/AWEBsQFiAf8BdAG1AXUB/wP+Mf8D/gH/A+kB/wPiAf8B9QH0AfUB/wH1AfQB9QH/ - A+IB/wPWAf8D4gH/A/4B/wP+Af8BzgHrAdAB/wGfAdUBoQH/AdwB8AHdAf8BmgHSAZsB/wFDAasBRQH/ - ASYBmAEpAf8BEgGEARQB/wGQAcUBkQH/A/4p/wP+Af8D8QH/A9kB/wPZAf8D2QH/Ae0B6AHtAf8B9QH0 - AfUB/wG0AfMBuAH/AdAB8wHTAf8D/gH/A/4B/wHLAegBywH/AZ8B1QGhAf8B3AHwAd0B/wGaAdIBmwH/ - AUMBqwFFAf8BJgGYASkB/wESAYQBFAH/AZABxQGRAf8D/in/A/4B/wPxAf8D2QH/A9kB/wPZAf8D6QH/ - A/kB/wPxAf8B9QH0AfUB/wP+Af8D/gH/AcsB6AHLAf8BnwHVAaEB/wHcAfAB3QH/AZoB0gGbAf8BQwGr - AUUB/wEmAZgBKQH/ARIBhAEUAf8BkAHFAZEB/wP+Kf8D/gH/A/EB/wPZAf8D2QH/A9kB/wPpAf8D+QH/ - A/EB/wH1AfQB9QH/A/4B/wP+Af8BywHoAcsB/wGfAdUBoQH/AdwB8AHdAf8BmgHSAZsB/wFDAasBRQH/ - ASYBmAEpAf8BEgGEARQB/wGQAcUBkQH/A/4p/wP+Af8D8QH/A9kB/wPZAf8D2QH/A+kB/wP5Af8D8QH/ - AfUB9AH1Af8D/gX/A/4B/wHSAeoB0gH/AVIBsgFUAf8BMgGjATQB/wE7AakBPQH/AT8BqQFBAf8BLgGc - ATEB/wESAYQBFAH/AYIBvQGDAf8D/gH/A/4Z/wP+Af8D/gH/A+wB/wPZAf8D2QH/A9kB/wPZAf8D2QH/ - A9wB/wH0AfAB9AH/A/4J/wP+Af8B0gHqAdIB/wFSAbIBVAH/ATIBowE0Af8BOwGpAT0B/wE/AakBQQH/ - AS4BnAExAf8BEgGEARQB/wF/AbwBgQH/A/4B/wP+Gf8D/gH/A/4B/wPsAf8D2QH/A9kB/wPZAf8D2QH/ - A9kB/wPZAf8D8QH/A/4J/wP+Af8B0gHqAdIB/wFSAbIBVAH/ATIBowE0Af8BOwGpAT0B/wE/AakBQQH/ - AS4BnAExAf8BEgGEARQB/wF/AbwBgQH/A/4B/wP+Gf8D/gH/A/4B/wPsAf8D2QH/A9kB/wPZAf8D2QH/ - A9kB/wPZAf8D8QH/A/4J/wP+Af8B0gHqAdIB/wFSAbIBVAH/ATIBowE0Af8BOwGpAT0B/wE/AakBQQH/ - AS4BnAExAf8BEgGEARQB/wF/AbwBgQH/A/4B/wP+Gf8D/gH/A/4B/wPsAf8D2QH/A9kB/wPZAf8D2QH/ - A9kB/wPZAf8D8QH/A/4J/wP+Af8B4AHxAeEB/wFLAbABTQH/ATgBqAE6Af8BPwGpAUEB/wE7AakBPQH/ - AT8BqQFBAf8BIwGZASYB/wGJAcIBigH/AaoB0gGrAf8BggG9AYMB/wHbAewB2wH/AfkB/AH5Af8D/gH/ - A/4B/wP+Af8D+QH/A+wB/wPsAf8D8QH/A9kB/wPZAf8D2QH/A9kB/wPZAf8D2QH/A/kB/wP+Cf8D/gH/ - AeAB8QHhAf8BSwGwAU0B/wE4AagBOgH/AT8BqQFBAf8BOwGpAT0B/wE/AakBQQH/ASMBmQEmAf8BiQHC - AYoB/wGqAdIBqwH/AYIBvQGDAf8B2wHsAdsB/wH5AfwB+QH/A/4B/wP+Af8D/gH/A/kB/wPsAf8D7AH/ - A/EB/wPZAf8D2QH/A9kB/wPZAf8D2QH/A9kB/wP5Af8D/gn/A/4B/wHgAfEB4QH/AUsBsAFNAf8BOAGo - AToB/wE/AakBQQH/ATsBqQE9Af8BPwGpAUEB/wEjAZkBJgH/AYkBwgGKAf8BqgHSAasB/wGCAb0BgwH/ - AdsB7AHbAf8B+QH8AfkB/wP+Af8D/gH/A/4B/wP5Af8D7AH/A+wB/wPxAf8D2QH/A9kB/wPZAf8D2QH/ - A9kB/wPZAf8D+QH/A/4J/wP+Af8B4AHxAeEB/wFLAbABTQH/ATsBqQE9Af8BPwGpAUEB/wE7AakBPQH/ - AT8BqQFBAf8BIwGZASYB/wGJAcIBigH/AaoB0gGrAf8BggG9AYMB/wHbAewB2wH/AfkB/AH5Af8D/gH/ - A/4B/wP+Af8D+QH/A+wB/wPsAf8D8QH/A9kB/wPZAf8D2QH/A9kB/wPZAf8D2QH/A/kB/wP+Df8D/gH/ - AbkB4AG6Af8BOwGpAT0B/wE7AakBPQH/AT8BqQFBAf8BNgGkATkB/wFfAboBYQH/AeAB8QHhAf8BQgGi - AUQB/wEQAYgBEQH/ASEBjAEjAf8BNAGVATYB/wGSAckBkwH/AfgB8gH4Af8D3AH/A9kB/wPZAf8D2QH/ - A/kB/wPiAf8D2QH/A9kB/wPZAf8D2QH/A/EB/wP+Ef8D/gH/AbkB4AG6Af8BOwGpAT0B/wE7AakBPQH/ - AT8BqQFBAf8BNgGkATkB/wFfAboBYQH/AeAB8QHhAf8BQgGiAUQB/wEPAYYBEQH/ASEBjAEjAf8BNAGV - ATYB/wGSAckBkwH/AfgB8gH4Af8D3AH/A9kB/wPZAf8D2QH/A/kB/wPiAf8D2QH/A9kB/wPZAf8D2QH/ - A/EB/wP+Ef8D/gH/AbkB4AG6Af8BOwGpAT0B/wE7AakBPQH/AT8BqQFBAf8BNgGkATkB/wFfAboBYQH/ - AeAB8QHhAf8BQgGiAUQB/wEPAYYBEQH/ASEBjAEjAf8BNAGVATYB/wGSAckBkwH/AfgB8gH4Af8D3AH/ - A9kB/wPZAf8D2QH/A/kB/wPiAf8D2QH/A9kB/wPZAf8D2QH/A/EB/wP+Ef8D/gH/AbkB4AG6Af8BOwGp - AT0B/wE7AakBPQH/AT8BqQFBAf8BNgGkATkB/wFfAboBYQH/AeAB8QHhAf8BQgGiAUQB/wEPAYYBEQH/ - ASEBjAEjAf8BNAGVATYB/wGSAckBkwH/AfgB8gH4Af8D3AH/A9kB/wPZAf8D2QH/A/kB/wPiAf8D2QH/ - A9kB/wPZAf8D2QH/A/EB/wP+Ff8D/gH/AbMB2wG0Af8BOwGpAT0B/wE4AagBOgH/ATYBpAE5Af8BuQHg - AboB/wGaAdIBmwH/ATIBowE0Af8BOwGpAT0B/wEyAaMBNAH/ARwBkAEeAf8BfAHCAX0B/wH0AfAB9AH/ - A9YB/wPZAf8D2QH/A9kB/wPiAf8B9QH0AfUB/wPZAf8D2QH/A9kB/wPsAf8D/hn/A/4B/wGzAdsBtAH/ - ATsBqQE9Af8BOAGoAToB/wE2AaQBOQH/AbkB4AG6Af8BmgHSAZsB/wEyAaMBNAH/ATsBqQE9Af8BMgGj - ATQB/wEcAZABHgH/AXwBwgF9Af8B9AHwAfQB/wPWAf8D2QH/A9kB/wPZAf8D4gH/AfUB9AH1Af8D2QH/ - A9kB/wPZAf8D7AH/A/4Z/wP+Af8BswHbAbQB/wE7AakBPQH/ATgBqAE6Af8BNgGkATkB/wG5AeABugH/ - AZoB0gGbAf8BMgGjATQB/wE7AakBPQH/ATIBowE0Af8BHAGQAR4B/wF8AcIBfQH/AfQB8AH0Af8D1gH/ - A9kB/wPZAf8D2QH/A+IB/wH1AfQB9QH/A9kB/wPZAf8D2QH/A+wB/wP+Gf8D/gH/AbMB2wG0Af8BOwGp - AT0B/wE4AagBOgH/ATYBpAE5Af8BuQHgAboB/wGaAdIBmwH/ATIBowE0Af8BOwGpAT0B/wEyAaMBNAH/ - ARwBkAEeAf8BfAHCAX0B/wH0AfAB9AH/A9YB/wPZAf8D2QH/A9kB/wPiAf8B9QH0AfUB/wPZAf8D2QH/ - A9kB/wPsAf8D/h3/A/4B/wHBAeIBwgH/AUsBsAFNAf8BbQHAAW8B/wHSAeoB0gH/AUMBqwFFAf8BOwGp - AT0B/wE7AakBPQH/ATsBqQE9Af8BLgGiATIB/wGJAcgBigH/AfQB8AH0Af8D2QH/A9kB/wPZAf8D2QH/ - A9kB/wPxAf8D6QH/A9kB/wPxAf8D/iH/A/4B/wHBAeIBwgH/AUsBsAFNAf8BbQHAAW8B/wHSAeoB0gH/ - AUMBqwFFAf8BOwGpAT0B/wE7AakBPQH/ATsBqQE9Af8BLgGiATIB/wGJAcgBigH/AfQB8AH0Af8D2QH/ - A9kB/wPZAf8D2QH/A9kB/wPxAf8D6QH/A9kB/wPxAf8D/iH/A/4B/wHBAeIBwgH/AUsBsAFNAf8BbQHA - AW8B/wHSAeoB0gH/AUMBqwFFAf8BOwGpAT0B/wE7AakBPQH/ATsBqQE9Af8BLgGiATIB/wGJAcgBigH/ - AfQB8AH0Af8D2QH/A9kB/wPZAf8D2QH/A9kB/wPxAf8D6QH/A9kB/wPxAf8D/iH/A/4B/wHBAeIBwgH/ - AUsBsAFNAf8BbQHAAW8B/wHSAeoB0gH/AUMBqwFFAf8BOwGpAT0B/wE7AakBPQH/ATsBqQE9Af8BMgGj - ATQB/wGJAcgBigH/AfQB8AH0Af8D2QH/A9kB/wPZAf8D2QH/A9kB/wPxAf8D6QH/A9kB/wPxAf8D/iX/ - A/4B/wHgAfEB4QH/AdwB8AHdAf8BfAHCAX0B/wEpAaABLAH/ATsBqQE9Af8BOwGpAT0B/wE7AakBPQH/ - AS4BogEyAf8BiQHIAYoB/wH0AfAB9AH/A9kB/wPZAf8D2QH/A9kB/wPWAf8D4gH/A/kB/wP5Af8D/in/ - A/4B/wHgAfEB4QH/AdwB8AHdAf8BfAHCAX0B/wEpAaABLAH/ATsBqQE9Af8BOwGpAT0B/wE7AakBPQH/ - AS4BogEyAf8BiQHIAYoB/wH0AfAB9AH/A9kB/wPZAf8D2QH/A9kB/wPWAf8D4gH/A/kB/wP5Af8D/in/ - A/4B/wHgAfEB4QH/AdwB8AHdAf8BfAHCAX0B/wEpAaABLAH/ATsBqQE9Af8BOwGpAT0B/wE7AakBPQH/ - AS4BogEyAf8BiQHIAYoB/wH0AfAB9AH/A9kB/wPZAf8D2QH/A9kB/wPWAf8D4gH/A/kB/wP5Af8D/in/ - A/4B/wHgAfEB4QH/AdwB8AHdAf8BfAHCAX0B/wEpAaABLAH/ATsBqQE9Af8BOwGpAT0B/wE7AakBPQH/ - AS4BogEyAf8BiQHIAYoB/wH0AfAB9AH/A9kB/wPZAf8D2QH/A9kB/wPWAf8D4gH/A/kB/wP5Af8D/i3/ - A/4B/wP+Af8BzgHrAdAB/wGEAcgBhgH/AUsBsAFNAf8BOAGoAToB/wEuAaIBMgH/AScBoAEpAf8BhAHI - AYYB/wHxAewB8QH/A9YB/wPWAf8D2QH/A9wB/wPiAf8B9AHwAfQB/wP+Af8D/jH/A/4B/wP+Af8BzgHr - AdAB/wGEAcgBhgH/AUsBsAFNAf8BOAGoAToB/wEuAaIBMgH/AScBoAEpAf8BhAHIAYYB/wH0AfAB9AH/ - A9YB/wPWAf8D2QH/A9wB/wPiAf8B9QH0AfUB/wP+Af8D/jH/A/4B/wP+Af8BzgHrAdAB/wGEAcgBhgH/ - AUsBsAFNAf8BOAGoAToB/wEuAaIBMgH/AScBoAEpAf8BhAHIAYYB/wHxAewB8QH/A9YB/wPWAf8D2QH/ - A9wB/wPiAf8B9QH0AfUB/wP+Af8D/jH/A/4B/wP+Af8BzgHrAdAB/wGEAcgBhgH/AUsBsAFNAf8BOAGo - AToB/wEuAaIBMgH/AScBoAEpAf8BhAHIAYYB/wHxAewB8QH/A9YB/wPWAf8D2QH/A9wB/wPiAf8B9QH0 - AfUB/wP+Af8D/jn/A/4B/wP+Af8B8AH5AfEB/wG5AeABugH/AZIB0AGTAf8BbQHAAW8B/wGkAdgBpQH/ - AfQB8AH0Af8D4gH/A+kB/wPxAf8D+QH/A/4B/wP+Qf8D/gH/A/4B/wHqAfgB6wH/AbkB4AG6Af8BkgHQ - AZMB/wFtAcABbwH/AaQB2AGlAf8B9AHwAfQB/wPiAf8D6QH/A/EB/wP5Af8D/gH/A/5B/wP+Af8D/gH/ - AeoB+AHrAf8BuQHgAboB/wGSAdABkwH/AW0BwAFvAf8BpAHYAaUB/wH0AfAB9AH/A+IB/wPpAf8D8QH/ - A/kB/wP+Af8D/kH/A/4B/wP+Af8B6gH4AesB/wG5AeABugH/AZIB0AGTAf8BbQHAAW8B/wGkAdgBpQH/ - AfQB8AH0Af8D4gH/A+kB/wPxAf8D+QH/A/4B/wP+Qf8D/gH/A/4B/wHgAfgB4gH/AbQB7AG4Af8BkAHm - AZYB/wFsAdsBdAH/AbEB8QG1Af8BoAHRAaEB/wFCAaIBRAH/AWoBtAFrAf8BmQHLAZkB/wHbAewB2wH/ - A/4B/wP+Qf8D/gH/A/4B/wHbAewB2wH/AaAB0QGhAf8BcgG8AXQB/wFJAaUBTAH/AZkBywGZAf8BqgHS - AasB/wFCAaIBRAH/AWoBtAFrAf8BmQHLAZkB/wHbAewB2wH/A/4B/wP+Qf8D/gH/A/4B/wHcAfAB3QH/ - AaAB0QGhAf8BcgG8AXQB/wFJAaUBTAH/AZkBywGZAf8BqgHSAasB/wFCAaIBRAH/AWoBtAFrAf8BmQHL - AZkB/wHbAewB2wH/A/4B/wP+Qf8D/gH/A/4B/wHcAfAB3QH/AaAB0QGhAf8BcgG8AXQB/wFJAaUBTAH/ - AZkBywGZAf8BqgHSAasB/wFCAaIBRAH/AWoBtAFrAf8BmQHLAZkB/wHbAewB2wH/A/4B/wP+Of8D/gH/ - A/4B/wHNAfMB0AH/AYMB4QGJAf8BWgHdAWMB/wFLAdkBVAH/AUkB0gFSAf8BQgHQAUsB/wGhAeoBpgH/ - AZIByQGTAf8BCgGDAQwB/wETAYgBFQH/ARMBiAEVAf8BIgGSASQB/wFZAawBWwH/AbMB2wG0Af8D/gH/ - A/4x/wP+Af8D/gH/Ab8B4AHAAf8BYQGxAWIB/wEqAZoBLQH/ARoBjAEcAf8BFwGMARkB/wEQAYgBEQH/ - AYUBwgGGAf8BkgHJAZMB/wEKAYMBDAH/ARMBiAEVAf8BEwGIARUB/wEiAZIBJAH/AVkBrAFbAf8BswHb - AbQB/wP+Af8D/jH/A/4B/wP+Af8BvwHgAcAB/wFhAbEBYgH/ASoBmgEtAf8BGgGMARwB/wEXAYwBGQH/ - ARABiAERAf8BhQHCAYYB/wGSAckBkwH/AQoBgwEMAf8BEwGIARUB/wETAYgBFQH/ASIBkgEkAf8BWQGs - AVsB/wGzAdsBtAH/A/4B/wP+Mf8D/gH/A/4B/wHBAeIBwgH/AWEBsQFiAf8BKgGaAS0B/wEcAZABHgH/ - ARcBjAEZAf8BEAGIAREB/wGFAcIBhgH/AZYByQGYAf8BCgGDAQwB/wETAYgBFQH/ARMBiAEVAf8BIgGS - ASQB/wFZAawBWwH/AbMB2wG0Af8D/gH/A/4t/wP+Af8B9QH0AfUB/wH4AfIB+AH/AakB6QGtAf8BSwHZ - AVQB/wFVAdsBXgH/AVUB2wFeAf8BVQHbAV4B/wFJAdIBUgH/AaQB6wGpAf8BlgHJAZgB/wETAYgBFQH/ - ASIBkgEkAf8BHwGSASEB/wEaAYwBHAH/AQoBgwEMAf8BagG0AWsB/wHJAeIByQH/AcEB4gHCAf8D/in/ - A/4B/wHJAeIByQH/AbkB4AG6Af8BkgHJAZMB/wETAYgBFQH/ASIBkgEkAf8BIgGSASQB/wEiAZIBJAH/ - ARcBjAEZAf8BiQHCAYoB/wGZAcsBmQH/ARMBiAEVAf8BIgGSASQB/wEfAZIBIQH/ARoBjAEcAf8BCgGD - AQwB/wFqAbQBawH/AckB4gHJAf8BwQHiAcIB/wP+Kf8D/gH/AckB4gHJAf8BvwHgAcAB/wGSAckBkwH/ - ARMBiAEVAf8BIgGSASQB/wEiAZIBJAH/ASIBkgEkAf8BFwGMARkB/wGJAcIBigH/AZkBywGZAf8BEwGI - ARUB/wEiAZIBJAH/ASIBkgEkAf8BGgGMARwB/wEKAYMBDAH/AWoBtAFrAf8ByQHiAckB/wHBAeIBwgH/ - A/4p/wP+Af8ByQHiAckB/wG5AeABugH/AZIByQGTAf8BEwGIARUB/wEiAZIBJAH/ASIBkgEkAf8BIgGS - ASQB/wEXAYwBGQH/AYkBwgGKAf8BmQHLAZkB/wETAYgBFQH/ASIBkgEkAf8BHwGSASEB/wEaAYwBHAH/ - AQoBgwEMAf8BagG0AWsB/wHJAeIByQH/AcEB4gHCAf8D/iX/A/4B/wPxAf8D2QH/A9wB/wHvAfwB8AH/ - AXUB5QF9Af8BVQHbAV4B/wFaAd0BYwH/AVUB2wFeAf8BSQHSAVIB/wGkAesBqQH/AZIByQGTAf8BEwGI - ARUB/wEiAZIBJAH/ASIBkgEkAf8BGgGMARwB/wEsAZUBLgH/AdAB5wHQAf8BSQGlAUwB/wEaAYwBHAH/ - AZkBywGZAf8D/iH/A/4B/wGrAdgBrAH/AS4BnAExAf8BOQGhATsB/wHXAeoB2AH/AU8BqgFRAf8BIgGS - ASQB/wEnAZYBKQH/AScBlgEpAf8BFwGMARkB/wGJAcIBigH/AZkBywGZAf8BEwGIARUB/wEiAZIBJAH/ - ASIBkgEkAf8BGgGMARwB/wEsAZUBLgH/AdAB5wHQAf8BSQGlAUwB/wEaAYwBHAH/AZkBywGZAf8D/iH/ - A/4B/wGrAdgBrAH/AS4BnAExAf8BOQGhATsB/wHXAeoB2AH/AU8BqgFRAf8BIgGSASQB/wEnAZYBKQH/ - ASIBkgEkAf8BFwGMARkB/wGJAcIBigH/AZkBywGZAf8BEwGIARUB/wEiAZIBJAH/ASIBkgEkAf8BGgGM - ARwB/wEsAZUBLgH/AdAB5wHQAf8BSQGlAUwB/wEaAYwBHAH/AZkBywGZAf8D/iH/A/4B/wGrAdgBrAH/ - AS4BnAExAf8BOQGhATsB/wHXAeoB2AH/AU8BqgFRAf8BIgGSASQB/wEnAZYBKQH/AScBlgEpAf8BFwGM - ARkB/wGJAcIBigH/AZkBywGZAf8BEwGIARUB/wEiAZIBJAH/ASIBkgEkAf8BGgGMARwB/wEsAZUBLgH/ - AdAB5wHQAf8BSQGlAUwB/wEaAYwBHAH/AZkBywGZAf8D/h3/A/4B/wPsAf8D2QH/A9kB/wPZAf8B8QHs - AfEB/wHFAfIByAH/AVUB2wFeAf8BWgHdAWMB/wFaAeABYwH/AVoB4AFjAf8BsQH7AbYB/wGZAcsBmQH/ - ARwBkAEeAf8BJwGWASkB/wEiAZIBJAH/ARMBiAEVAf8BlgHJAZgB/wGqAdIBqwH/ARMBiAEVAf8BGgGM - ARwB/wETAYgBFQH/AYcBwgGIAf8D/hn/A/4B/wGaAdIBmwH/ASMBmQEmAf8BJgGYASkB/wEfAZIBIQH/ - AZIByQGTAf8BuAHdAbkB/wEiAZIBJAH/AScBlgEpAf8BJgGYASkB/wEcAZABHgH/AYkByAGKAf8BmgHS - AZsB/wEcAZABHgH/AScBlgEpAf8BIgGSASQB/wETAYgBFQH/AZYByQGYAf8BqgHSAasB/wETAYgBFQH/ - ARoBjAEcAf8BEgGEARQB/wGHAcIBiAH/A/4Z/wP+Af8BmgHSAZsB/wEjAZkBJgH/ASYBmAEpAf8BHwGS - ASEB/wGSAckBkwH/AbgB3QG5Af8BIgGSASQB/wEnAZYBKQH/ASYBmAEpAf8BHAGQAR4B/wGJAcgBigH/ - AZoB0gGbAf8BHAGQAR4B/wEnAZYBKQH/ASIBkgEkAf8BEwGIARUB/wGWAckBmAH/AaoB0gGrAf8BEwGI - ARUB/wEaAYwBHAH/ARIBhAEUAf8BhwHCAYgB/wP+Gf8D/gH/AZoB0gGbAf8BIwGZASYB/wEmAZgBKQH/ - AR8BkgEhAf8BkgHJAZMB/wG4Ad0BuQH/ASIBkgEkAf8BJwGWASkB/wEmAZgBKQH/ARwBkAEeAf8BiQHI - AYoB/wGaAdIBmwH/ARwBkAEeAf8BJwGWASkB/wEiAZIBJAH/ARMBiAEVAf8BlgHJAZgB/wGqAdIBqwH/ - ARMBiAEVAf8BGgGMARwB/wETAYgBFQH/AYcBwgGIAf8D/hX/A/4B/wPxAf8D2QH/A9kB/wPZAf8D2QH/ - AdwB2gHcAf8B9QH0AfUB/wGKAewBkQH/AWcB7AFxAf8BggHxAYoB/wGaAfkBoQH/AdgB+gHbAf8BwQHi - AcIB/wFtAcABbwH/AVIBsgFUAf8BMgGjATQB/wFTAakBVQH/AdsB7AHbAf8BPwGdAUEB/wEaAYwBHAH/ - ASIBkgEkAf8BGgGMARwB/wESAYQBFAH/AZYByQGYAf8D/hH/A/4B/wGrAdgBrAH/ASYBmAEpAf8BKgGa - AS0B/wEqAZoBLQH/ASoBmgEtAf8BMQGdATMB/wHSAeoB0gH/AWkBuwFrAf8BIwGZASYB/wFIAa0BSwH/ - AWIBugFjAf8BuQHgAboB/wHBAeIBwgH/AW0BwAFvAf8BUgGyAVQB/wEyAaMBNAH/AVMBqQFVAf8B2wHs - AdsB/wE/AZ0BQQH/ARoBjAEcAf8BIgGSASQB/wEaAYwBHAH/ARIBhAEUAf8BlgHJAZgB/wP+Ef8D/gH/ - AasB2AGsAf8BJgGYASkB/wEqAZoBLQH/ASoBmgEtAf8BKgGaAS0B/wExAZ0BMwH/AdIB6gHSAf8BaQG7 - AWsB/wEjAZkBJgH/AUoBrAFNAf8BYgG6AWMB/wG5AeABugH/AcEB4gHCAf8BbQHAAW8B/wFSAbIBVAH/ - ATIBowE0Af8BUwGpAVUB/wHbAewB2wH/AT8BnQFBAf8BGgGMARwB/wEiAZIBJAH/ARoBjAEcAf8BEgGE - ARQB/wGWAckBmAH/A/4R/wP+Af8BqwHYAawB/wEmAZgBKQH/ASoBmgEtAf8BKgGaAS0B/wEqAZoBLQH/ - ATEBnQEzAf8B0gHqAdIB/wFpAbsBawH/ASMBmQEmAf8BSAGtAUsB/wFiAboBYwH/AbkB4AG6Af8BwQHi - AcIB/wFtAcABbwH/AVIBsgFUAf8BMgGjATQB/wFTAakBVQH/AdsB7AHbAf8BPwGdAUEB/wEaAYwBHAH/ - ASIBkgEkAf8BGgGMARwB/wETAYgBFQH/AZYByQGYAf8D/g3/A/4B/wP5Af8D2QH/A9kB/wPZAf8D2QH/ - A9kB/wPZAf8D4gH/AeAB+AHiAf8BxQH6AckB/wHwAfkB8QH/A/4B/wP+Af8D/gH/A/4B/wHwAfkB8QH/ - AbMB2wG0Af8BywHoAcsB/wGSAdABkwH/AR8BkgEhAf8BHwGSASEB/wEfAZIBIQH/ASEBjAEjAf8BGgGM - ARwB/wEaAYwBHAH/AckB4gHJAf8D/gn/A/4B/wHbAewB2wH/ATIBowE0Af8BJgGYASkB/wEuAZwBMQH/ - AS4BnAExAf8BLgGcATEB/wEfAZIBIQH/AWEBsQFiAf8B0gHqAdIB/wGrAdgBrAH/AegB9QHoAf8D/gH/ - A/4B/wP+Af8D/gH/AfAB+QHxAf8BswHbAbQB/wHLAegBywH/AZIB0AGTAf8BHwGSASEB/wEfAZIBIQH/ - AR8BkgEhAf8BHwGSASEB/wEaAYwBHAH/ARoBjAEcAf8ByQHiAckB/wP+Cf8D/gH/AdwB8AHdAf8BMgGj - ATQB/wEmAZgBKQH/AS4BnAExAf8BLgGcATEB/wEuAZwBMQH/AR8BkgEhAf8BYQGxAWIB/wHSAeoB0gH/ - AasB2AGsAf8B6AH1AegB/wP+Af8D/gH/A/4B/wP+Af8B8AH5AfEB/wGzAdsBtAH/AcsB6AHLAf8BkgHQ - AZMB/wEfAZIBIQH/AR8BkgEhAf8BIgGSASQB/wEiAZIBJAH/ARoBjAEcAf8BGgGMARwB/wHJAeIByQH/ - A/4J/wP+Af8B3AHwAd0B/wEyAaMBNAH/ASYBmAEpAf8BLgGcATEB/wEuAZwBMQH/AS4BnAExAf8BHwGS - ASEB/wFhAbEBYgH/AdIB6gHSAf8BqwHYAawB/wHqAfgB6wH/A/4B/wP+Af8D/gH/A/4B/wHqAfgB6wH/ - AbMB2wG0Af8BywHoAcsB/wGSAdABkwH/AR8BkgEhAf8BHwGSASEB/wEiAZIBJAH/ASEBjAEjAf8BGgGM - ARwB/wEaAYwBHAH/AckB4gHJAf8D/gn/A/4B/wP5Af8D6QH/A9kB/wPZAf8D2QH/A9kB/wPZAf8D7AH/ - A/4B/wP+Gf8D/gH/A/4B/wGrAdgBrAH/AUUBsAFHAf8BKgGaAS0B/wEfAZIBIQH/ARcBjAEZAf8BGgGM - ARwB/wFqAbQBawH/AdsB7AHbAf8D/gn/A/4B/wHgAfEB4QH/AYkByAGKAf8BMgGjATQB/wEjAZkBJgH/ - AS4BnAExAf8BKgGaAS0B/wEnAZYBKQH/AZIByQGTAf8D/gH/A/4Z/wP+Af8D/gH/AasB2AGsAf8BRQGw - AUcB/wEqAZoBLQH/AR8BkgEhAf8BFwGMARkB/wEaAYwBHAH/AWoBtAFrAf8B2wHsAdsB/wP+Cf8D/gH/ - AeAB8QHhAf8BkgHJAZMB/wEyAaMBNAH/ASMBmQEmAf8BLgGcATEB/wEqAZoBLQH/AScBlgEpAf8BkgHJ - AZMB/wP+Af8D/hn/A/4B/wP+Af8BqwHYAawB/wFFAbABRwH/ASoBmgEtAf8BHwGKASEB/wEXAYwBGQH/ - ARoBjAEcAf8BagG0AWsB/wHcAfAB3QH/A/4J/wP+Af8B4AHxAeEB/wGSAckBkwH/ATIBowE0Af8BIwGZ - ASYB/wEuAZwBMQH/ASoBmgEtAf8BJwGWASkB/wGSAckBkwH/A/4B/wP+Gf8D/gH/A/4B/wGrAdgBrAH/ - AUUBsAFHAf8BKgGaAS0B/wEfAYoBIQH/ARcBjAEZAf8BGgGMARwB/wFqAbQBawH/AdwB8AHdAf8D/gX/ - A/4B/wPxAf8D4gH/AfUB9AH1Af8B9QH0AfUB/wPiAf8D2QH/A9kB/wPxAf8D/in/A/4B/wHBAeIBwgH/ - AUUBsAFHAf8BIgGSASQB/wFTAakBVQH/AcEB4gHCAf8ByQHiAckB/wFTAakBVQH/AaoB0gGrAf8D/gH/ - A/4B/wHRAfoB1AH/AYkB8wGQAf8B1AH8AdgB/wHSAeoB0gH/AXIBvAF0Af8BIgGSASQB/wEcAZABHgH/ - AaoB0gGrAf8D/in/A/4B/wHBAeIBwgH/AUUBsAFHAf8BIgGSASQB/wFTAakBVQH/AcEB4gHCAf8ByQHi - AckB/wFTAakBVQH/AaoB0gGrAf8D/gH/A/4B/wG5AeABugH/AVYBsQFZAf8BwQHiAcIB/wHSAeoB0gH/ - AXIBvAF0Af8BIwGZASYB/wEcAZABHgH/AaoB0gGrAf8D/in/A/4B/wHBAeIBwgH/AUUBsAFHAf8BIgGS - ASQB/wFTAakBVQH/AcEB4gHCAf8ByQHiAckB/wFTAakBVQH/AaoB0gGrAf8D/gH/A/4B/wG5AeABugH/ - AVIBsgFUAf8BwQHiAcIB/wHSAeoB0gH/AXIBvAF0Af8BIwGZASYB/wEcAZABHgH/AaoB0gGrAf8D/in/ - A/4B/wHBAeIBwgH/AUUBsAFHAf8BIgGSASQB/wFTAakBVQH/AcEB4gHCAf8ByQHiAckB/wFTAakBVQH/ - AaoB0gGrAf8D/gH/A/4B/wPiAf8D1gH/A9kB/wPiAf8B9QH0AfUB/wPxAf8D7AH/A/4x/wP+Af8BswHb - AbQB/wGzAdsBtAH/AdsB7AHbAf8BeQG8AXsB/wEiAZIBJAH/AQoBgwEMAf8BUwGpAVUB/wP+Af8D/gH/ - AZ4B8wGkAf8BagHoAXQB/wFqAegBdAH/AZ4B8wGkAf8B4AH4AeIB/wGzAdsBtAH/AZkBywGZAf8D/jH/ - A/4B/wGzAdsBtAH/AbMB2wG0Af8B2wHsAdsB/wF5AbwBewH/ASIBkgEkAf8BCgGDAQwB/wFTAakBVQH/ - A/4B/wP+Af8BcgG8AXQB/wEjAZkBJgH/ASoBmgEtAf8BcAG5AXIB/wHSAeoB0gH/AbMB2wG0Af8BmQHL - AZkB/wP+Mf8D/gH/AbMB2wG0Af8BswHbAbQB/wHbAewB2wH/AXkBvAF7Af8BIgGSASQB/wEKAYMBDAH/ - AVMBqQFVAf8D/gH/A/4B/wFyAbwBdAH/ASMBmQEmAf8BKgGaAS0B/wFwAbkBcgH/AdIB6gHSAf8BswHb - AbQB/wGZAcsBmQH/A/4x/wP+Af8BswHbAbQB/wGzAdsBtAH/AdsB7AHbAf8BeQG8AXsB/wEiAZIBJAH/ - AQoBgwEMAf8BUwGpAVUB/wP+Af8D+QH/A9wB/wPZAf8D2QH/A9kB/wPZAf8D7AH/A/45/wP+Af8BwQHi - AcIB/wFCAaIBRAH/ARMBiAEVAf8BHwGKASEB/wEaAYwBHAH/ASIBkgEkAf8B0gHqAdIB/wHqAfgB6wH/ - AXoB8gGBAf8BdQHxAX4B/wFxAesBegH/AWoB6AF0Af8BWgHgAWMB/wGsAeoBsAH/A/45/wP+Af8BwQHi - AcIB/wFCAaIBRAH/ARMBiAEVAf8BHwGKASEB/wEaAYwBHAH/ASIBkgEkAf8B0gHqAdIB/wHgAfEB4QH/ - AT8BqQFBAf8BMgGjATQB/wEyAaMBNAH/ASoBmgEtAf8BJgGYASkB/wGZAcsBmQH/A/45/wP+Af8BwQHi - AcIB/wE/AakBQQH/ARMBiAEVAf8BHwGKASEB/wEaAYwBHAH/ASIBkgEkAf8B0gHqAdIB/wHgAfEB4QH/ - AT8BqQFBAf8BMgGjATQB/wEyAaMBNAH/ASoBmgEtAf8BJgGYASkB/wGZAcsBmQH/A/45/wP+Af8BwQHi - AcIB/wE/AakBQQH/ARMBiAEVAf8BHwGKASEB/wEaAYwBHAH/ASIBkgEkAf8B0gHqAdIB/wPxAf8D2QH/ - A9kB/wPZAf8D2QH/A9kB/wPsAf8D/jn/A/4B/wGzAdsBtAH/ATIBowE0Af8BIgGSASQB/wEiAZIBJAH/ - ASIBkgEkAf8BEwGIARUB/wGSAckBkwH/AcgB9AHMAf8BdQHxAX4B/wF6AfIBgQH/AXoB8gGBAf8BcQHr - AXoB/wFAAc8BSgH/AaQB5gGoAf8D/jn/A/4B/wGzAdsBtAH/ATIBowE0Af8BIgGSASQB/wEiAZIBJAH/ - ASIBkgEkAf8BEwGIARUB/wGSAckBkwH/AasB2AGsAf8BLgGiATIB/wE2AaQBOQH/ATYBpAE5Af8BMgGj - ATQB/wESAYQBFAH/AZIByQGTAf8D/jn/A/4B/wGzAdsBtAH/ATIBowE0Af8BIgGSASQB/wEiAZIBJAH/ - ASIBkgEkAf8BEwGIARUB/wGSAckBkwH/AasB2AGsAf8BLgGiATIB/wE2AaQBOQH/ATYBpAE5Af8BMgGj - ATQB/wETAYgBFQH/AZIByQGTAf8D/jn/A/4B/wGzAdsBtAH/ATIBowE0Af8BIgGSASQB/wEiAZIBJAH/ - ASIBkgEkAf8BEwGIARUB/wGSAckBkwH/A+kB/wPZAf8D2QH/A9kB/wPZAf8D2QH/A/lB/wHoAfUB6AH/ - AUsBsAFNAf8BJgGYASkB/wEfAZIBIQH/AR8BkgEhAf8BEwGIARUB/wFqAbQBawH/AaoB/AGxAf8BdQHx - AX4B/wF6AfIBgQH/AXoB8gGBAf8BaAHlAXEB/wFCAcsBSgH/AeAB8QHhQf8B6AH1AegB/wFLAbABTQH/ - ASYBmAEpAf8BHwGSASEB/wEfAZIBIQH/ARMBiAEVAf8BagG0AWsB/wGEAcgBhgH/ASkBoAEsAf8BNgGk - ATkB/wE2AaQBOQH/ASoBmgEtAf8BIgGSASQB/wHbAewB20H/AegB9QHoAf8BSwGwAU0B/wEmAZgBKQH/ - ASIBkgEkAf8BIgGSASQB/wETAYgBFQH/AWoBtAFrAf8BhAHIAYYB/wEpAaABLAH/ATYBpAE5Af8BNgGk - ATkB/wEqAZoBLQH/ASEBjAEjAf8B2wHsAdtB/wHoAfUB6AH/AUsBsAFNAf8BJgGYASkB/wEiAZIBJAH/ - ASIBkgEkAf8BEwGIARUB/wFqAbQBawH/A+IB/wPZAf8D2QH/A9kB/wPZAf8D4gH/A/5B/wP+Af8BbQHA - AW8B/wEmAZgBKQH/AR8BigEhAf8BHwGSASEB/wEXAYwBGQH/AUkBpQFMAf8BmgH5AaEB/wF4AfIBgQH/ - AXoB8gGBAf8BegHyAYEB/wFaAeABYwH/AVkBzwFhAf8B+QH8AflB/wP+Af8BbQHAAW8B/wEmAZgBKQH/ - AR8BigEhAf8BHwGSASEB/wEXAYwBGQH/AUkBpQFMAf8BaQG7AWsB/wEuAaIBMgH/ATYBpAE5Af8BNgGk - ATkB/wEiAZIBJAH/AT8BnQFBAf8B+QH8AflB/wP+Af8BbQHAAW8B/wEmAZgBKQH/AR8BigEhAf8BIgGS - ASQB/wEXAYwBGQH/AUkBpQFMAf8BaQG7AWsB/wEuAaIBMgH/ATYBpAE5Af8BNgGkATkB/wEiAZIBJAH/ - AT4BmwFAAf8B+QH8AflB/wP+Af8BbQHAAW8B/wEjAZkBJgH/AR8BigEhAf8BHwGSASEB/wEXAYwBGQH/ - AUkBpQFMAf8B9QH0AfUB/wPxAf8D8QH/A/EB/wPxAf8B9QH0AfUB/wP+Qf8D/gH/AdIB6gHSAf8BuAHd - AbkB/wGzAdsBtAH/AbMB2wG0Af8BswHbAbQB/wHBAeIBwgH/Ad0B+wHgAf8B0QH6AdQB/wHRAfoB1AH/ - AdQB/AHYAf8ByAH0AcwB/wHIAfQBzAH/A/5B/wP+Af8B0gHqAdIB/wG5AeABugH/AbMB2wG0Af8BswHb - AbQB/wGzAdsBtAH/AcEB4gHCAf8ByQHiAckB/wG5AeABugH/AbkB4AG6Af8BuQHgAboB/wGzAdsBtAH/ - AcEB4gHCAf8D/kH/A/4B/wHSAeoB0gH/AbkB4AG6Af8BswHbAbQB/wGzAdsBtAH/AbMB2wG0Af8BvwHg - AcAB/wHJAeIByQH/AbkB4AG6Af8BuQHgAboB/wG5AeABugH/AbMB2wG0Af8BwQHiAcIB/wP+Qf8D/gH/ - AdIB6gHSAf8BuAHdAbkB/wGzAdsBtAH/AbMB2wG0Af8BswHbAbQB/wHBAeIBwgH/A+kB/wPiAf8D4gH/ - A+IB/wPiAf8D7AH/A/5B/wP+Af8BpAHYAaUB/wFwAbkBcgH/AWoBtAFrAf8BagG0AWsB/wFqAbQBawH/ - AX8BvAGBAf8B7QHoAe0B/wHoAeQB6AH/AegB5AHoAf8B6AHkAegB/wHoAeQB6AH/AfEB7AHxAf8D/kH/ - A/4B/wGkAdgBpQH/AXABuQFyAf8BagG0AWsB/wFqAbQBawH/AWoBtAFrAf8BfwG8AYEB/wGSAdABkwH/ - AXwBwgF9Af8BfAHCAX0B/wF8AcIBfQH/AWkBuwFrAf8BiQHCAYoB/wP+Qf8D/gH/AaQB2AGlAf8BcAG5 - AXIB/wFqAbQBawH/AWoBtAFrAf8BagG0AWsB/wF/AcEBgQH/AZIB0AGTAf8BfAHCAX0B/wF8AcIBfQH/ - AXwBwgF9Af8BaQG7AWsB/wGJAcIBigH/A/5B/wP+Af8BpAHYAaUB/wFwAbkBcgH/AWoBtAFrAf8BagG0 - AWsB/wFqAbQBawH/AX8BvAGBAf8D4gH/A9YB/wPZAf8D2QH/A9YB/wPcAf8D/kH/A/4B/wFiAboBYwH/ - AR8BkgEhAf8BGgGMARwB/wEcAZABHgH/ARMBiAEVAf8BSQGlAUwB/wPiAf8D1gH/A9kB/wPZAf8D1gH/ - A9wB/wP+Qf8B+QH8AfkB/wFiAboBYwH/AR8BkgEhAf8BGgGMARwB/wEcAZABHgH/ARMBiAEVAf8BSQGl - AUwB/wFpAbsBawH/ASkBoAEsAf8BMgGjATQB/wEyAaMBNAH/ARwBkAEeAf8BNAGVATYB/wH5AfwB+UH/ - AfkB/AH5Af8BYgG6AWMB/wEfAZIBIQH/ARoBjAEcAf8BHAGQAR4B/wETAYgBFQH/AUkBpQFMAf8BaQG7 - AWsB/wEpAaABLAH/ATIBowE0Af8BMgGjATQB/wEcAZABHgH/ATQBlQE2Af8B+QH8AflB/wH7Af4B/AH/ - AWIBugFjAf8BHwGSASEB/wEaAYwBHAH/ARwBkAEeAf8BEwGIARUB/wFJAaUBTAH/A+kB/wPZAf8D2QH/ - A9kB/wPZAf8D2QH/A/lB/wHgAfEB4QH/AUMBqwFFAf8BKgGaAS0B/wEiAZIBJAH/ASIBkgEkAf8BGgGM - ARwB/wFwAbkBcgH/A+kB/wPZAf8D2QH/A9kB/wPZAf8D2QH/A/lB/wHgAfEB4QH/AUMBqwFFAf8BKgGa - AS0B/wEiAZIBJAH/ASIBkgEkAf8BFwGMARkB/wFwAbkBcgH/AYkByAGKAf8BMgGjATQB/wE7AakBPQH/ - ATsBqQE9Af8BMgGjATQB/wEfAYoBIQH/AdcB6gHYQf8B5wH1AegB/wFDAasBRQH/ASoBmgEtAf8BIgGS - ASQB/wEiAZIBJAH/ARcBjAEZAf8BcAG5AXIB/wGJAcgBigH/ATIBowE0Af8BOwGpAT0B/wE7AakBPQH/ - ATIBowE0Af8BHwGKASEB/wHXAeoB2EH/AeAB8QHhAf8BQwGrAUUB/wEqAZoBLQH/ASIBkgEkAf8BIgGS - ASQB/wEXAYwBGQH/AXABuQFyAf8D8QH/A9kB/wPZAf8D2QH/A9kB/wPWAf8D7AH/A/45/wP+Af8BqwHY - AawB/wEjAZkBJgH/AScBlgEpAf8BJwGWASkB/wEnAZYBKQH/ARoBjAEcAf8BmQHLAZkB/wPxAf8D2QH/ - A9kB/wPZAf8D2QH/A9YB/wPsAf8D/jn/A/4B/wGrAdgBrAH/ASMBmQEmAf8BJwGWASkB/wEnAZYBKQH/ - AScBlgEpAf8BGgGMARwB/wGZAcsBmQH/AbMB2wG0Af8BMgGjATQB/wE7AakBPQH/ATsBqQE9Af8BOwGp - AT0B/wEKAYMBDAH/AYkBwgGKAf8D/jn/A/4B/wGrAdgBrAH/ASMBmQEmAf8BJwGWASkB/wEnAZYBKQH/ - AScBlgEpAf8BGgGMARwB/wGZAcsBmQH/AbMB2wG0Af8BMgGjATQB/wE7AakBPQH/ATsBqQE9Af8BOwGp - AT0B/wEKAYMBDAH/AYkBwgGKAf8D/jn/A/4B/wGrAdgBrAH/ASMBmQEmAf8BJwGWASkB/wEnAZYBKQH/ - AScBlgEpAf8BGgGMARwB/wGZAcsBmQH/A/4B/wPcAf8D2QH/A9kB/wPZAf8D4gH/AfUB9AH1Af8D/jn/ - AfkB/AH5Af8B2wHsAdsB/wF/AcEBgQH/AScBlgEpAf8BHwGSASEB/wEiAZIBJAH/ASoBmgEtAf8B2wHs - AdsB/wP5Af8D3AH/A9kB/wPZAf8D2QH/A+IB/wH1AfQB9QH/A/45/wH5AfwB+QH/AdsB7AHbAf8BfwHB - AYEB/wEnAZYBKQH/AR8BkgEhAf8BIgGSASQB/wEqAZoBLQH/AdsB7AHbAf8B5wH1AegB/wFKAawBTQH/ - ATsBqQE9Af8BMgGjATQB/wEyAaMBNAH/AWEBsQFiAf8ByQHiAckB/wP+Of8B+QH8AfkB/wHbAewB2wH/ - AX8BwQGBAf8BJwGWASkB/wEfAZIBIQH/ASIBkgEkAf8BKgGaAS0B/wHbAewB2wH/AeAB8QHhAf8BSwGw - AU0B/wE7AakBPQH/ATIBowE0Af8BMgGjATQB/wFnAbYBaQH/AckB4gHJAf8B+QH8Afk5/wH5AfwB+QH/ - AdsB7AHbAf8BfwHBAYEB/wEnAZYBKQH/AR8BkgEhAf8BIgGSASQB/wEqAZoBLQH/AdsB7AHbAf8D/gH/ - A+IB/wPWAf8D4gH/A/EB/wP5Af8D4gH/A+kB/wP+Mf8D/gH/AYkByAGKAf8BWwGxAV0B/wHSAeoB0gH/ - AckB4gHJAf8BWwGxAV0B/wETAYgBFQH/AWEBsQFiAf8D/gH/A/4B/wPiAf8D1gH/A+IB/wPxAf8D+QH/ - A+IB/wPpAf8D/jH/A/4B/wGJAcgBigH/AVsBsQFdAf8B0gHqAdIB/wHJAeIByQH/AVsBsQFdAf8BEwGI - ARUB/wFhAbEBYgH/A/4B/wP+Af8BfAHCAX0B/wEpAaABLAH/AVsBsQFdAf8BuQHgAboB/wHqAfgB6wH/ - AYMB4QGJAf8BhQHaAYoB/wP+Mf8D/gH/AYkByAGKAf8BWwGxAV0B/wHSAeoB0gH/AckB4gHJAf8BWwGx - AV0B/wETAYgBFQH/AWEBsQFiAf8D/gH/A/4B/wF8AcIBfQH/ASkBoAEsAf8BWwGxAV0B/wG5AeABugH/ - AeAB8QHhAf8BYQGxAWIB/wF0AbUBdQH/A/4x/wP+Af8BiQHIAYoB/wFbAbEBXQH/AdIB6gHSAf8ByQHi - AckB/wFbAbEBXQH/ARMBiAEVAf8BYQGxAWIB/wP+Af8D/gH/AfUB9AH1Af8D7AH/A/kB/wPsAf8D3AH/ - A9kB/wPZAf8D7AH/A/4p/wP+Af8BoAHRAaEB/wEjAZkBJgH/ASIBkgEkAf8BKgGaAS0B/wF8AcIBfQH/ - AdIB6gHSAf8BoAHRAaEB/wHBAeIBwgH/A/4B/wP+Af8B9QH0AfUB/wPsAf8D+QH/A+wB/wPcAf8D2QH/ - A9kB/wPsAf8D/in/A/4B/wGgAdEBoQH/ASIBkgEkAf8BIgGSASQB/wEqAZoBLQH/AXwBwgF9Af8B0gHq - AdIB/wGgAdEBoQH/AcEB4gHCAf8D/gH/A/4B/wHLAegBywH/AZoB0gGbAf8B4AH4AeIB/wHFAfoByQH/ - AZIB+wGZAf8BagHoAXQB/wE1AcUBPgH/AZsB4gGgAf8D/in/A/4B/wGgAdEBoQH/ASMBmQEmAf8BIgGS - ASQB/wEqAZoBLQH/AXwBwgF9Af8B0gHqAdIB/wGgAdEBoQH/AcEB4gHCAf8D/gH/A/4B/wHOAesB0AH/ - AZoB0gGbAf8B3AHwAd0B/wGaAdIBmwH/AUUBsAFHAf8BJgGYASkB/wESAYQBFAH/AZABxQGRAf8D/in/ - A/4B/wGgAdEBoQH/ASMBmQEmAf8BIgGSASQB/wEqAZoBLQH/AXwBwgF9Af8B0gHqAdIB/wGgAdEBoQH/ - AcEB4gHCAf8D/gX/A/4B/wH1AfQB9QH/A9wB/wPZAf8D2QH/A9kB/wPZAf8D2QH/A+kB/wP+Af8D/hn/ - A/4B/wP+Af8BmQHLAZkB/wEcAZABHgH/ASoBmgEtAf8BLgGcATEB/wEqAZoBLQH/AR8BkgEhAf8BLgGc - ATEB/wG4Ad0BuQH/A/4J/wP+Af8B9QH0AfUB/wPcAf8D2QH/A9kB/wPZAf8D2QH/A9kB/wPpAf8D/gH/ - A/4Z/wP+Af8D/gH/AZkBywGZAf8BHAGQAR4B/wEqAZoBLQH/AS4BnAExAf8BKgGaAS0B/wEfAZIBIQH/ - AS4BnAExAf8BuAHdAbkB/wP+Cf8D/gH/AeoB+AHrAf8BkgH7AZkB/wGDAfkBjAH/AYMB+QGMAf8BiQH6 - AZEB/wFqAegBdAH/ATUBxQE+Af8BjwHdAZQB/wP+Af8D/hn/A/4B/wP+Af8BmQHLAZkB/wEcAZABHgH/ - ASoBmgEtAf8BLgGcATEB/wEqAZoBLQH/AR8BkgEhAf8BLgGcATEB/wG4Ad0BuQH/A/4J/wP+Af8B0gHq - AdIB/wFSAbIBVAH/ATIBowE0Af8BOwGpAT0B/wE/AakBQQH/AS4BnAExAf8BEgGEARQB/wF/AbwBgQH/ - A/4B/wP+Gf8D/gH/A/4B/wGZAcsBmQH/ARwBkAEeAf8BKgGaAS0B/wEuAZwBMQH/ASoBmgEtAf8BHwGS - ASEB/wEuAZwBMQH/AbgB3QG5Af8D/gn/A/4B/wP5Af8D3AH/A9kB/wPZAf8D2QH/A9kB/wPWAf8D6QH/ - A/EB/wPsAf8D+QH/A/4B/wP+Af8D/gH/AfkB/AH5Af8B4AHvAeAB/wGJAcIBigH/AZYByQGYAf8BqgHS - AasB/wEjAZkBJgH/AS4BnAExAf8BLgGcATEB/wEqAZoBLQH/ASYBmAEpAf8BMQGdATMB/wHSAeoB0gH/ - A/4J/wP+Af8D+QH/A9wB/wPZAf8D2QH/A9kB/wPZAf8D1gH/A+kB/wPxAf8D7AH/A/kB/wP+Af8D/gH/ - A/4B/wH5AfwB+QH/AeAB7wHgAf8BiQHCAYoB/wGWAckBmAH/AaoB0gGrAf8BIwGZASYB/wEuAZwBMQH/ - AS4BnAExAf8BKgGaAS0B/wEmAZgBKQH/AS4BnAExAf8B0gHqAdIB/wP+Cf8D/gH/AeoB+AHrAf8BkgH7 - AZkB/wGDAfkBjAH/AYkB+gGRAf8BiQH6AZEB/wGJAfoBkQH/AWoB6AF0Af8BmAHlAZwB/wH1AfQB9QH/ - A+wB/wP5Af8D/gH/A/4B/wP+Af8B+QH8AfkB/wHgAfEB4QH/AYkBwgGKAf8BlgHJAZgB/wGqAdIBqwH/ - ASMBmQEmAf8BLgGcATEB/wEuAZwBMQH/ASoBmgEtAf8BJgGYASkB/wEuAZwBMQH/AdIB6gHSAf8D/gn/ - A/4B/wHgAfEB4QH/AUsBsAFNAf8BOAGoAToB/wE/AakBQQH/ATsBqQE9Af8BPwGpAUEB/wEjAZkBJgH/ - AYkBwgGKAf8BqgHSAasB/wGCAb0BgwH/AdsB7AHbAf8B+QH8AfkB/wP+Af8D/gH/A/4B/wHgAfEB4QH/ - AZ4B8wGkAf8BqQHpAa0B/wGqAdIBqwH/ASIBkgEkAf8BLgGcATEB/wEuAZwBMQH/ASoBmgEtAf8BJgGY - ASkB/wEuAZwBMQH/AdIB6gHSAf8D/g3/A/4B/wPxAf8D2QH/A9kB/wPZAf8D2QH/A+IB/wP5Af8D3AH/ - A9YB/wPZAf8D3AH/AfgB8gH4Af8BqgHSAasB/wE0AZUBNgH/ASEBjAEjAf8BEwGIARUB/wEqAZoBLQH/ - AdIB6gHSAf8BcgG8AXQB/wEmAZgBKQH/AS4BnAExAf8BKgGaAS0B/wEmAZgBKQH/AasB2AGsAf8D/hH/ - A/4B/wPxAf8D2QH/A9kB/wPZAf8D2QH/A+IB/wP5Af8D3AH/A9YB/wPZAf8D3AH/AfgB8gH4Af8BqgHS - AasB/wE0AZUBNgH/ASEBjAEjAf8BEwGIARUB/wEqAZoBLQH/AdIB6gHSAf8BcgG8AXQB/wEmAZgBKQH/ - AS4BnAExAf8BKgGaAS0B/wEmAZgBKQH/AasB2AGsAf8D/hH/A/4B/wHYAfoB2wH/AYkB+gGRAf8BiQH6 - AZEB/wGJAfoBkQH/AYMB+QGMAf8BmgH5AaEB/wHwAfkB8QH/AeEB3gHhAf8D1gH/AdwB2gHcAf8D3AH/ - AfgB8gH4Af8BqgHSAasB/wE0AZUBNgH/ASEBjAEjAf8BEwGIARUB/wEqAZoBLQH/AdIB6gHSAf8BcgG8 - AXQB/wEmAZgBKQH/AS4BnAExAf8BKgGaAS0B/wEmAZgBKQH/AasB2AGsAf8D/hH/A/4B/wG5AeABugH/ - ATsBqQE9Af8BOwGpAT0B/wE/AakBQQH/ATYBpAE5Af8BXwG6AWEB/wHgAfEB4QH/AUIBogFEAf8BEAGI - AREB/wEfAYoBIQH/ATQBlQE2Af8BmQHLAZkB/wG5AewBvAH/AUwBzQFUAf8BTAHNAVQB/wFMAc0BVAH/ - AWIB4gFsAf8B4AH4AeIB/wFyAbwBdAH/ASYBmAEpAf8BLgGcATEB/wEqAZoBLQH/ASYBmAEpAf8BqwHY - AawB/wP+Ff8D/gH/A/EB/wPZAf8D2QH/A9kB/wPxAf8D7AH/A9kB/wPZAf8D2QH/A9YB/wHxAewB8QH/ - AZIByQGTAf8BFwGRARoB/wEuAZwBMQH/ATIBowE0Af8BKgGaAS0B/wFyAbwBdAH/AdIB6gHSAf8BMgGj - ATQB/wEmAZgBKQH/ASoBmgEtAf8BoAHRAaEB/wP+Gf8D/gH/A/EB/wPZAf8D2QH/A9kB/wPxAf8D7AH/ - A9kB/wPZAf8D2QH/A9YB/wHxAewB8QH/AZIByQGTAf8BFwGRARoB/wEuAZwBMQH/ATIBowE0Af8BKgGa - AS0B/wFyAbwBdAH/AdIB6gHSAf8BMgGjATQB/wEmAZgBKQH/ASoBmgEtAf8BoAHRAaEB/wP+Gf8D/gH/ - AdEB+gHUAf8BiQH6AZEB/wGDAfkBjAH/AYMB+QGMAf8B0QH6AdQB/wHxAewB8QH/A9kB/wPZAf8D2QH/ - A9YB/wHxAewB8QH/AZIByQGTAf8BFwGRARoB/wEuAZwBMQH/ATIBowE0Af8BKgGaAS0B/wFyAbwBdAH/ - AdIB6gHSAf8BMgGjATQB/wEmAZgBKQH/ASoBmgEtAf8BoAHRAaEB/wP+Gf8D/gH/AbMB2wG0Af8BOwGp - AT0B/wE4AagBOgH/ATYBpAE5Af8BuQHgAboB/wGaAdIBmwH/ATIBowE0Af8BOwGpAT0B/wEyAaMBNAH/ - ARwBkAEeAf8BhQHCAYYB/wG0AfMBuAH/AVQB4AFdAf8BagHoAXQB/wFxAesBegH/AWoB6AF0Af8BngHz - AaQB/wHSAeoB0gH/ATIBowE0Af8BJgGYASkB/wEqAZoBLQH/AaAB0QGhAf8D/h3/A/4B/wPxAf8D3AH/ - A+IB/wH1AfQB9QH/A9kB/wPZAf8D2QH/A9kB/wPZAf8B8QHsAfEB/wGaAdIBmwH/ASkBoAEsAf8BNgGk - ATkB/wE2AaQBOQH/ATIBowE0Af8BKgGaAS0B/wG5AeABugH/AYkByAGKAf8BNgGkATkB/wGzAdsBtAH/ - A/4h/wP+Af8D8QH/A9wB/wPiAf8B9QH0AfUB/wPZAf8D2QH/A9kB/wPZAf8D2QH/AfEB7AHxAf8BmgHS - AZsB/wEpAaABLAH/ATYBpAE5Af8BNgGkATkB/wEyAaMBNAH/ASoBmgEtAf8BuQHgAboB/wGJAcgBigH/ - ATYBpAE5Af8BswHbAbQB/wP+If8D/gH/AdgB+gHbAf8BkgH7AZkB/wGkAfoBqwH/AfUB9AH1Af8B3AHa - AdwB/wPZAf8D2QH/A9kB/wPZAf8B8QHsAfEB/wGaAdIBmwH/ASkBoAEsAf8BNgGkATkB/wE2AaQBOQH/ - ATIBowE0Af8BKgGaAS0B/wG5AeABugH/AYkByAGKAf8BNgGkATkB/wGzAdsBtAH/A/4h/wP+Af8BwQHi - AcIB/wFLAbABTQH/AW0BwAFvAf8B0gHqAdIB/wFDAasBRQH/ATsBqQE9Af8BOwGpAT0B/wE7AakBPQH/ - AS4BogEyAf8BkgHJAZMB/wHFAfoByQH/AXUB8QF+Af8BegHyAYEB/wF6AfIBgQH/AXEB6wF6Af8BagHo - AXQB/wHRAfoB1AH/AYUBwgGGAf8BNgGkATkB/wGzAdsBtAH/A/4l/wP+Af8D+QH/A/kB/wPiAf8D1gH/ - A9kB/wPZAf8D2QH/A9kB/wHxAewB8QH/AZoB0gGbAf8BKQGgASwB/wE2AaQBOQH/ATYBpAE5Af8BMgGj - ATQB/wEjAZkBJgH/AVYBsQFZAf8B4AHxAeEB/wHgAfEB4QH/A/4p/wP+Af8D+QH/A/kB/wPiAf8D1gH/ - A9kB/wPZAf8D2QH/A9kB/wHxAewB8QH/AZoB0gGbAf8BKQGgASwB/wE2AaQBOQH/ATYBpAE5Af8BMgGj - ATQB/wEjAZkBJgH/AVYBsQFZAf8B4AHxAeEB/wHgAfEB4QH/A/4p/wP+Af8B6gH4AesB/wHqAfgB6wH/ - AegB5AHoAf8D1gH/A9kB/wPZAf8D2QH/A9kB/wHxAewB8QH/AZoB0gGbAf8BKQGgASwB/wE2AaQBOQH/ - ATYBpAE5Af8BMgGjATQB/wEjAZkBJgH/AVYBsQFZAf8B4AHxAeEB/wHgAfEB4QH/A/4p/wP+Af8B4AHx - AeEB/wHcAfAB3QH/AXwBwgF9Af8BKQGgASwB/wE7AakBPQH/ATsBqQE9Af8BOwGpAT0B/wEuAaIBMgH/ - AZIByQGTAf8BxQH6AckB/wF1AfEBfgH/AXoB8gGBAf8BegHyAYEB/wFxAesBegH/AWoB6AF0Af8BggHx - AYoB/wHgAfEB4QH/AdwB8AHdAf8D/i3/A/4B/wP+Af8B9QH0AfUB/wPpAf8D3AH/A9kB/wPWAf8D1gH/ - AfEB7AHxAf8BmgHSAZsB/wEjAZkBJgH/ASkBoAEsAf8BMgGjATQB/wFDAasBRQH/AXwBwgF9Af8BxwHl - AcgB/wP+Af8D/jH/A/4B/wP+Af8B9QH0AfUB/wPpAf8D3AH/A9kB/wPWAf8D1gH/AfEB7AHxAf8BmgHS - AZsB/wEjAZkBJgH/ASkBoAEsAf8BMgGjATQB/wFDAasBRQH/AXwBwgF9Af8BxwHlAcgB/wP+Af8D/jH/ - A/4B/wP+Af8B9QH0AfUB/wHoAeQB6AH/A9wB/wPZAf8D1gH/A9YB/wHxAewB8QH/AZoB0gGbAf8BIwGZ - ASYB/wEpAaABLAH/ATIBowE0Af8BQwGrAUUB/wF8AcIBfQH/AccB5QHIAf8D/gH/A/4x/wP+Af8D/gH/ - Ac4B6wHQAf8BhAHIAYYB/wFLAbABTQH/ATgBqAE6Af8BLgGiATIB/wEnAaABKQH/AYkByAGKAf8BxQH6 - AckB/wF1AfEBfgH/AXUB8QF+Af8BdQHxAX4B/wGCAfEBigH/AaUB8gGqAf8B2AH6AdsB/wP+Af8D/jn/ - A/4B/wP+Af8D/gH/A/EB/wPpAf8D4gH/AfgB8gH4Af8BswHbAbQB/wFpAbsBawH/AY4BzQGQAf8BuQHg - AboB/wHoAfUB6AH/A/4B/wP+Qf8D/gH/A/4B/wP+Af8D8QH/A+kB/wPiAf8B+AHyAfgB/wGzAdsBtAH/ - AWkBuwFrAf8BjgHNAZAB/wG5AeABugH/AegB9QHoAf8D/gH/A/5B/wP+Af8D/gH/A/4B/wH1AfQB9QH/ - A+wB/wPiAf8B+AHyAfgB/wGzAdsBtAH/AWkBuwFrAf8BjgHNAZAB/wG5AeABugH/AegB9QHoAf8D/gH/ - A/5B/wP+Af8D/gH/AeoB+AHrAf8BuQHgAboB/wGSAdABkwH/AW0BwAFvAf8BqgHSAasB/wHRAfoB1AH/ - AZ4B8wGkAf8BtAHzAbgB/wHRAfoB1AH/AfAB+QHxAf8D/gH/A/5J/wP+Af8D9gH/A+wB/wPjAf8D9QH/ - A/cB/wPiAf8D6wH/A/YB/wP+Sf8D/gH/A/4B/wP5Af8D8QH/A+kB/wPiAf8D7AH/A/EB/wPiAf8D4gH/ - A+wB/wP5Af8D/gH/A/5B/wP+Af8D/gH/A/kB/wPxAf8D6QH/A+IB/wPsAf8D8QH/A+IB/wPiAf8D7AH/ - A/kB/wP+Af8D/kH/A/4B/wP+Af8D+QH/A/EB/wPpAf8D4gH/A+wB/wPxAf8D4gH/A+IB/wPsAf8D+QH/ - A/4B/wP+Qf8D+wH/A+cB/wPbAf8D2gH/A9oB/wPaAf8D8AH/A/QB/wPaAf8D2gH/A9oB/wPbAf8D5gH/ - A/k5/wP+Af8D/gH/AfUB9AH1Af8D4gH/A9kB/wPZAf8D2QH/A9YB/wPpAf8D7AH/A9YB/wPZAf8D2QH/ - A9kB/wPiAf8D8QH/A/4B/wP+Mf8D/gH/A/4B/wH1AfQB9QH/A+IB/wPZAf8D2QH/A9kB/wPWAf8D6QH/ - A+wB/wPWAf8D2QH/A9kB/wPZAf8D4gH/A/EB/wP+Af8D/jH/A/4B/wP+Af8B9QH0AfUB/wPiAf8D2QH/ - A9kB/wPZAf8D1gH/A+kB/wPsAf8D1gH/A9kB/wPZAf8D2QH/A+IB/wPxAf8D/gH/A/4x/wP9Af8D+wH/ - A/MB/wPaAf8D2gH/A9oB/wPaAf8D2gH/A/AB/wP0Af8D2gH/A9oB/wPaAf8D2gH/A9oB/wPsAf8D/QH/ - A/wt/wP+Af8B9QH0AfUB/wH1AfQB9QH/A+wB/wPWAf8D2QH/A9kB/wPZAf8D2QH/A+kB/wPsAf8D2QH/ - A9kB/wPZAf8D2QH/A9YB/wPiAf8B9QH0AfUB/wH1AfQB9QH/A/4p/wP+Af8B9QH0AfUB/wH1AfQB9QH/ - A+wB/wPWAf8D2QH/A9kB/wPZAf8D2QH/A+kB/wPsAf8D2QH/A9kB/wPZAf8D2QH/A9YB/wPiAf8B9QH0 - AfUB/wH1AfQB9QH/A/4p/wP+Af8B9QH0AfUB/wH1AfQB9QH/A+wB/wPWAf8D2QH/A9kB/wPZAf8D2QH/ - A+kB/wPsAf8D2QH/A9kB/wPZAf8D2QH/A9YB/wHoAeQB6AH/AdAB8wHTAf8BzQHzAdAB/wP+Kf8D9wH/ - A9sB/wPeAf8D/gH/A+IB/wPaAf8D2gH/A9oB/wPaAf8D8AH/A/QB/wPaAf8D2gH/A9oB/wPaAf8D3QH/ - A/0B/wPlAf8D2gH/A/Ul/wP+Af8D8QH/A9kB/wPcAf8D+QH/A+IB/wPZAf8D2QH/A9kB/wPZAf8D6QH/ - A+wB/wPZAf8D2QH/A9kB/wPZAf8D3AH/AfUB9AH1Af8D4gH/A9kB/wPsAf8D/iH/A/4B/wPxAf8D2QH/ - A9wB/wP5Af8D4gH/A9kB/wPZAf8D2QH/A9kB/wPpAf8D7AH/A9kB/wPZAf8D2QH/A9kB/wPcAf8B9QH0 - AfUB/wPiAf8D2QH/A+wB/wP+If8D/gH/A/EB/wPZAf8D3AH/A/kB/wPiAf8D2QH/A9kB/wPZAf8D2QH/ - A+kB/wPsAf8D2QH/A9kB/wPZAf8D2QH/A9wB/wHzAfcB8wH/AWwB2wF0Af8BQgHLAUoB/wGsAeoBsAH/ - A/4h/wPzAf8D2gH/A9oB/wPaAf8D8gH/A/sB/wPaAf8D2gH/A9oB/wPaAf8D8AH/A/QB/wPaAf8D2gH/ - A9oB/wPaAf8D9QH/A/kB/wPaAf8D2gH/A9oB/wPwHf8D/gH/A+wB/wPZAf8D2QH/A9kB/wPsAf8D8QH/ - A9kB/wPZAf8D2QH/A9YB/wPpAf8D7AH/A9YB/wPZAf8D2QH/A9kB/wPsAf8D8QH/A9kB/wPZAf8D2QH/ - A+kB/wP+Gf8D/gH/A+wB/wPZAf8D2QH/A9kB/wPsAf8D8QH/A9kB/wPZAf8D2QH/A9YB/wPpAf8D7AH/ - A9YB/wPZAf8D2QH/A9kB/wPsAf8D8QH/A9kB/wPZAf8D2QH/A+kB/wP+Gf8D/gH/A+wB/wPZAf8D2QH/ - A9kB/wPsAf8D8QH/A9kB/wPZAf8D2QH/A9YB/wPpAf8D7AH/A9YB/wPZAf8D2QH/A9kB/wHxAewB8QH/ - AbQB7AG4Af8BQgHLAUoB/wFCAcsBSgH/ATwBywFFAf8BmwHiAaAB/wP+Gf8D9wH/A9oB/wPaAf8D2gH/ - A9oB/wPcAf8D/QH/A+kB/wPaAf8D3QH/A+UB/wP6Af8D+wH/A+UB/wPeAf8D2gH/A+EB/wP+Af8D4AH/ - A9oB/wPaAf8D2gH/A9oB/wP0Ff8D/gH/A/EB/wPZAf8D2QH/A9kB/wPZAf8D2QH/AfUB9AH1Af8D4gH/ - A9YB/wPcAf8D4gH/A/EB/wH1AfQB9QH/A+IB/wPcAf8D2QH/A9wB/wP5Af8D3AH/A9kB/wPZAf8D2QH/ - A9kB/wPsAf8D/hH/A/4B/wPxAf8D2QH/A9kB/wPZAf8D2QH/A9kB/wH1AfQB9QH/A+IB/wPWAf8D3AH/ - A+IB/wPxAf8B9QH0AfUB/wPiAf8D3AH/A9kB/wPcAf8D+QH/A9wB/wPZAf8D2QH/A9kB/wPZAf8D7AH/ - A/4R/wP+Af8D8QH/A9kB/wPZAf8D2QH/A9kB/wPZAf8B9QH0AfUB/wPiAf8D1gH/A9wB/wPiAf8D8QH/ - AfUB9AH1Af8D4gH/A9wB/wPZAf8B4QHeAeEB/wHqAfgB6wH/AVoB3QFjAf8BQgHQAUsB/wFJAdIBUgH/ - AUIB0AFLAf8BPAHLAUUB/wGpAekBrQH/A/4R/wP+Af8D3AH/A9oB/wPaAf8D2gH/A9oB/wPaAf8D6AH/ - A/0B/wP5Gf8D+QH/A/wB/wPwAf8D2gH/A9oB/wPaAf8D2gH/A9oB/wPbAf8D/Q3/A/4B/wP5Af8D2QH/ - A9kB/wPZAf8D2QH/A9kB/wPZAf8D4gH/A/kB/wPxAf8D/gH/A/4B/wP+Af8D/gH/A/4B/wP+Af8D8QH/ - AfUB9AH1Af8D6QH/A9YB/wPZAf8D2QH/A9kB/wPZAf8D2QH/AfUB9AH1Af8D/gn/A/4B/wP5Af8D2QH/ - A9kB/wPZAf8D2QH/A9kB/wPZAf8D4gH/A/kB/wPxAf8D/gH/A/4B/wP+Af8D/gH/A/4B/wP+Af8D8QH/ - AfUB9AH1Af8D6QH/A9YB/wPZAf8D2QH/A9kB/wPZAf8D2QH/AfUB9AH1Af8D/gn/A/4B/wP5Af8D2QH/ - A9kB/wPZAf8D2QH/A9kB/wPZAf8D4gH/A/kB/wPxAf8D/gH/A/4B/wP+Af8D/gH/A/4B/wP+Af8D8QH/ - AfgB8gH4Af8BvAH7AcEB/wFaAeABYwH/AUkB0gFSAf8BSQHSAVIB/wFJAdIBUgH/AUIBywFKAf8BQgHL - AUoB/wHWAfQB2AH/A/4N/wP+Af8D8AH/A9sB/wPaAf8D2gH/A9oB/wPaAf8D9Cn/A/YB/wPbAf8D2gH/ - A9oB/wPaAf8D2gH/A+oB/wP+Df8D/gH/A/kB/wPpAf8D2QH/A9kB/wPZAf8D2QH/A9kB/wPsAf8D/gH/ - A/4Z/wP+Af8D/gH/A+wB/wPZAf8D2QH/A9kB/wPZAf8D2QH/A+IB/wP5Af8D/gn/A/4B/wP5Af8D6QH/ - A9kB/wPZAf8D2QH/A9kB/wPZAf8D7AH/A/4B/wP+Gf8D/gH/A/4B/wPsAf8D2QH/A9kB/wPZAf8D2QH/ - A9kB/wPiAf8D+QH/A/4J/wP+Af8D+QH/A+kB/wPZAf8D2QH/A9kB/wPZAf8D2QH/A+wB/wP+Af8D/hn/ - A/4B/wP+Af8B0QH6AdQB/wGaAfkBoQH/AWsB5QF0Af8BSAHSAVEB/wFCAdABSwH/AUIB0AFLAf8BiAHi - AY8B/wHgAfgB4gH/A/4J/wP6Af8D4QH/A/oB/wP9Af8D6QH/A9oB/wPaAf8D+TH/A/sB/wPbAf8D2gH/ - A+QB/wP8Af8D/AH/A+UB/wP5Bf8D/gH/A/EB/wPiAf8B9QH0AfUB/wH1AfQB9QH/A+IB/wPZAf8D2QH/ - A/EB/wP+Kf8D/gH/A/EB/wPZAf8D2QH/A+IB/wH1AfQB9QH/AfUB9AH1Af8D4gH/A/EB/wP+Af8D/gH/ - A/EB/wPiAf8B9QH0AfUB/wH1AfQB9QH/A+IB/wPZAf8D2QH/A/EB/wP+Kf8D/gH/A/EB/wPZAf8D2QH/ - A+IB/wH1AfQB9QH/AfUB9AH1Af8D4gH/A/EB/wP+Af8D/gH/A/EB/wPiAf8B9QH0AfUB/wH1AfQB9QH/ - A+IB/wPZAf8D2QH/A/EB/wP+Kf8D/gH/Ad0B+wHgAf8BmgH5AaEB/wFaAeABYwH/AXQB3AF7Af8BzQHz - AdAB/wHJAeIByQH/AVQBpwFVAf8BqgHSAasB/wP+Bf8D6AH/A9oB/wPaAf8D6AH/A/0B/wP5Af8D9zn/ - A/cB/wP2Af8D/gH/A+4B/wPbAf8D2gH/A+UF/wP+Af8D4gH/A9YB/wPZAf8D4gH/AfUB9AH1Af8D8QH/ - A+wB/wP+Mf8D/gH/A+wB/wPxAf8D+QH/A+kB/wPZAf8D1gH/A+IB/wP+Af8D/gH/A+IB/wPWAf8D2QH/ - A+IB/wH1AfQB9QH/A/EB/wPsAf8D/jH/A/4B/wPsAf8D8QH/A/kB/wPpAf8D2QH/A9YB/wPiAf8D/gH/ - A/4B/wPiAf8D1gH/A9kB/wPiAf8B9QH0AfUB/wPxAf8D7AH/A/4x/wP+Af8B0QH6AdQB/wHUAfwB2AH/ - AdsB7AHbAf8BcgG8AXQB/wEfAYoBIQH/AQoBgwEMAf8BUwGpAVUB/wP+Af8D/gH/A9wB/wPaAf8D2gH/ - A9oB/wPaAf8D9kH/A/oB/wPdAf8D2gH/A9oB/wPaAf8D2wH/A/0B/wP5Af8D3AH/A9kB/wPZAf8D2QH/ - A9kB/wPsAf8D/jn/A/4B/wPxAf8D3AH/A9kB/wPZAf8D2QH/A9kB/wP5Af8D+QH/A9wB/wPZAf8D2QH/ - A9kB/wPZAf8D7AH/A/45/wP+Af8D8QH/A9wB/wPZAf8D2QH/A9kB/wPZAf8D+QH/A/kB/wPcAf8D2QH/ - A9kB/wPZAf8D2QH/A+wB/wP+Of8D/gH/AbkB4AG6Af8BQAGnAUIB/wETAYgBFQH/AR8BigEhAf8BGgGM - ARwB/wEiAZIBJAH/AdIB6gHSAf8D+AH/A9oB/wPaAf8D2gH/A9oB/wPaAf8D9kH/A/kB/wPaAf8D2gH/ - A9oB/wPaAf8D2gH/A/UB/wPxAf8D2QH/A9kB/wPZAf8D2QH/A9kB/wPsAf8D/jn/A/4B/wPsAf8D2QH/ - A9kB/wPZAf8D2QH/A9kB/wPsAf8D8QH/A9kB/wPZAf8D2QH/A9kB/wPZAf8D7AH/A/45/wP+Af8D7AH/ - A9kB/wPZAf8D2QH/A9kB/wPZAf8D7AH/A/EB/wPZAf8D2QH/A9kB/wPZAf8D2QH/A+wB/wP+Of8D/gH/ - AbMB2wG0Af8BMgGjATQB/wEiAZIBJAH/ASIBkgEkAf8BIgGSASQB/wETAYgBFQH/AZIByQGTAf8D7QH/ - A9oB/wPaAf8D2gH/A9oB/wPcSf8D3QH/A9oB/wPaAf8D2gH/A9oB/wPrAf8D6QH/A9kB/wPZAf8D2QH/ - A9kB/wPZAf8D+UH/A/kB/wPcAf8D2QH/A9kB/wPZAf8D2QH/A+IB/wPpAf8D2QH/A9kB/wPZAf8D2QH/ - A9kB/wP5Qf8D+QH/A9wB/wPZAf8D2QH/A9kB/wPZAf8D4gH/A+kB/wPZAf8D2QH/A9kB/wPZAf8D2QH/ - A/lB/wHoAfUB6AH/AUsBsAFNAf8BJgGYASkB/wEiAZIBJAH/ASIBkgEkAf8BEwGIARUB/wFqAbQBawH/ - A+YB/wPaAf8D2gH/A9oB/wPaAf8D4kn/A+YB/wPaAf8D2gH/A9oB/wPaAf8D4wH/A+IB/wPZAf8D2QH/ - A9kB/wPZAf8D4gH/A/5B/wP+Af8D4gH/A9kB/wPZAf8D2QH/A9kB/wPiAf8D4gH/A9kB/wPZAf8D2QH/ - A9kB/wPiAf8D/kH/A/4B/wPiAf8D2QH/A9kB/wPZAf8D2QH/A+IB/wPiAf8D2QH/A9kB/wPZAf8D2QH/ - A+IB/wP+Qf8D/gH/AW0BwAFvAf8BJgGYASkB/wEfAYoBIQH/AR8BkgEhAf8BFwGMARkB/wFJAaUBTAH/ - A/sB/wP5Af8D+QH/A/kB/wP5Af8D/Un/A/0B/wP5Af8D+QH/A/kB/wP5Af8D+wH/AfUB9AH1Af8D8QH/ - A/EB/wPxAf8D8QH/AfUB9AH1Af8D/kH/A/4B/wH1AfQB9QH/A/EB/wPxAf8D8QH/A/EB/wH1AfQB9QH/ - AfUB9AH1Af8D8QH/A/EB/wPxAf8D8QH/AfUB9AH1Af8D/kH/A/4B/wH1AfQB9QH/A/EB/wPxAf8D8QH/ - AfQB8QHzAf8B9QH0AfUB/wH1AfQB9QH/A/EB/wPxAf8D8QH/A/EB/wH1AfQB9QH/A/5B/wP+Af8B0gHq - AdIB/wG4Ad0BuQH/AbMB2wG0Af8BswHbAbQB/wGzAdsBtAH/AcEB4gHCAf8D8AH/A+kB/wPqAf8D6gH/ - A+kB/wP0Sf8D9gH/A+kB/wPqAf8D6gH/A+kB/wPvAf8D6QH/A+IB/wPiAf8D4gH/A+IB/wPsAf8D/kH/ - A/4B/wPsAf8D4gH/A+IB/wPiAf8D4gH/A+kB/wPpAf8D4gH/A+IB/wPiAf8D4gH/A+wB/wP+Qf8D/gH/ - AcUB+gHJAf8BlAHwAZoB/wGDAeEBiQH/AYMB4QGJAf8BgQHgAYYB/wGSAeYBmAH/A+kB/wPiAf8D4gH/ - A+IB/wPiAf8D7AH/A/5B/wP+Af8BpAHYAaUB/wFwAbkBcgH/AWoBtAFrAf8BagG0AWsB/wFqAbQBawH/ - AX8BvAGBAf8D5gH/A9oB/wPaAf8D2gH/A9oB/wPhSf8D5QH/A9oB/wPaAf8D2gH/A9oB/wPjAf8D4gH/ - A9YB/wPZAf8D2QH/A9YB/wPcAf8D/kH/A/4B/wPiAf8D1gH/A9kB/wPZAf8D1gH/A+IB/wPiAf8D1gH/ - A9kB/wPZAf8D1gH/A9wB/wP+Qf8D/gH/AZoB+QGhAf8BXwHiAWkB/wFJAdIBUgH/AUsB2QFUAf8BQgHQ - AUsB/wFsAdsBdAH/A+IB/wPWAf8D2QH/A9kB/wPWAf8D3AH/A/5B/wP+Af8BYgG6AWMB/wEfAZIBIQH/ - ARoBjAEcAf8BHAGQAR4B/wETAYgBFQH/AUkBpQFMAf8D7gH/A9oB/wPaAf8D2gH/A9oB/wPbAf8D/kX/ - A90B/wPaAf8D2gH/A9oB/wPaAf8D6wH/A+kB/wPZAf8D2QH/A9kB/wPZAf8D2QH/A/lB/wP5Af8D3AH/ - A9kB/wPZAf8D2QH/A9kB/wPiAf8D6QH/A9kB/wPZAf8D2QH/A9kB/wPZAf8D+UH/Ae8B/AHwAf8BggHx - AYoB/wFiAeIBbAH/AVUB2wFeAf8BVQHbAV4B/wFJAdIBUgH/AYwB5gGSAf8D6QH/A9kB/wPZAf8D2QH/ - A9kB/wPZAf8D+UH/AeAB8QHhAf8BQwGrAUUB/wEqAZoBLQH/ASIBkgEkAf8BIgGSASQB/wEaAYwBHAH/ - AXABuQFyAf8D+AH/A9oB/wPaAf8D2gH/A9oB/wPaAf8D9kH/A/kB/wPaAf8D2gH/A9oB/wPaAf8D2gH/ - A/YB/wPxAf8D2QH/A9kB/wPZAf8D2QH/A9YB/wPsAf8D/jn/A/4B/wPsAf8D1gH/A9kB/wPZAf8D2QH/ - A9kB/wPsAf8D8QH/A9kB/wPZAf8D2QH/A9kB/wPWAf8D7AH/A/45/wP+Af8BxQH6AckB/wFnAewBcQH/ - AVoB3QFjAf8BWgHdAWMB/wFVAdsBXgH/AUsB2QFUAf8BsAHsAbQB/wPxAf8D2QH/A9kB/wPZAf8D2QH/ - A9YB/wPsAf8D/jn/A/4B/wGrAdgBrAH/ASMBmQEmAf8BJwGWASkB/wEnAZYBKQH/AScBlgEpAf8BGgGM - ARwB/wGZAcsBmQH/A/4B/wPdAf8D2gH/A9oB/wPaAf8D5gH/A/1B/wP+Af8D7AH/A9sB/wPaAf8D2gH/ - A9wB/wP+Af8D+QH/A9wB/wPZAf8D2QH/A9kB/wPiAf8B9QH0AfUB/wP+Of8D/gH/A/kB/wPpAf8D2QH/ - A9kB/wPZAf8D2QH/A/kB/wP5Af8D3AH/A9kB/wPZAf8D2QH/A+IB/wH1AfQB9QH/A/45/wH5AfwB+QH/ - AeAB+AHiAf8BpQHyAaoB/wFaAd0BYwH/AVUB2wFeAf8BVQHbAV4B/wFaAd0BYwH/AeAB+AHiAf8D+QH/ - A9wB/wPZAf8D2QH/A9kB/wPiAf8B9QH0AfUB/wP+Of8B+QH8AfkB/wHbAewB2wH/AX8BwQGBAf8BJwGW - ASkB/wEfAZIBIQH/ASIBkgEkAf8BKgGaAS0B/wHbAewB2wX/A+oB/wPaAf8D4AH/A/kB/wP+Af8D6gH/ - A/A5/wPzAf8D5AH/A/0B/wP8Af8D5QH/A9oB/wPnBf8D/gH/A+IB/wPWAf8D4gH/A/EB/wP5Af8D4gH/ - A+kB/wP+Mf8D/gH/A+kB/wPiAf8B9QH0AfUB/wH1AfQB9QH/A+IB/wPWAf8D4gH/A/4B/wP+Af8D4gH/ - A9YB/wPiAf8D8QH/A/kB/wPiAf8D6QH/A/4x/wP+Af8BiQHIAYoB/wFZAawBWwH/AckB4gHJAf8B2AH6 - AdsB/wGDAesBiwH/AUsB2QFUAf8BgwHhAYkB/wP+Af8D/gH/A+IB/wPWAf8D4gH/A/EB/wP5Af8D4gH/ - A+kB/wP+Mf8D/gH/AYkByAGKAf8BWwGxAV0B/wHSAeoB0gH/AckB4gHJAf8BWwGxAV0B/wETAYgBFQH/ - AWEBsQFiAf8D/gX/A/wB/wPyAf8D/gH/A/MB/wPcAf8D2gH/A9oB/wP3Mf8D+QH/A9oB/wPaAf8D2gH/ - A+4B/wP+Af8D9gH/A/sF/wP+Af8B9QH0AfUB/wPsAf8D+QH/A+wB/wPcAf8D2QH/A9kB/wPsAf8D/in/ - A/4B/wPxAf8D2QH/A9kB/wPZAf8D6QH/A/kB/wPxAf8B9QH0AfUB/wP+Af8D/gH/AfUB9AH1Af8D7AH/ - A/kB/wPsAf8D3AH/A9kB/wPZAf8D7AH/A/4p/wP+Af8BoAHRAaEB/wEjAZkBJgH/ASIBkgEkAf8BKgGa - AS0B/wF5AbwBewH/AdcB6gHYAf8BvAHxAcAB/wHQAfMB0wH/A/4B/wP+Af8B9QH0AfUB/wPsAf8D+QH/ - A+wB/wPcAf8D2QH/A9kB/wPsAf8D/in/A/4B/wGgAdEBoQH/ASMBmQEmAf8BIgGSASQB/wEqAZoBLQH/ - AXwBwgF9Af8B0gHqAdIB/wGgAdEBoQH/AcEB4gHCAf8D/gn/A/wB/wPeAf8D2gH/A9oB/wPaAf8D2gH/ - A9oB/wPyKf8D9gH/A9oB/wPaAf8D2gH/A9oB/wPaAf8D2wH/A/oN/wP+Af8B9QH0AfUB/wPcAf8D2QH/ - A9kB/wPZAf8D2QH/A9kB/wPpAf8D/gH/A/4Z/wP+Af8D/gH/A+wB/wPZAf8D2QH/A9kB/wPZAf8D2QH/ - A9kB/wPxAf8D/gn/A/4B/wH1AfQB9QH/A9wB/wPZAf8D2QH/A9kB/wPZAf8D2QH/A+kB/wP+Af8D/hn/ - A/4B/wP+Af8BmQHLAZkB/wEcAZABHgH/ASoBmgEtAf8BLgGcATEB/wEqAZoBLQH/AR8BkgEhAf8BLgGc - ATEB/wG4Ad0BuQH/A/4J/wP+Af8B9QH0AfUB/wPcAf8D2QH/A9kB/wPZAf8D2QH/A9kB/wPpAf8D/gH/ - A/4Z/wP+Af8D/gH/AZkBywGZAf8BHAGQAR4B/wEqAZoBLQH/AS4BnAExAf8BKgGaAS0B/wEfAZIBIQH/ - AS4BnAExAf8BuAHdAbkB/wP+Df8D/gH/A90B/wPaAf8D2gH/A9oB/wPaAf8D2gH/A/IB/wP6Af8D9Rn/ - A/YB/wP2Af8D+AH/A9oB/wPaAf8D2gH/A9oB/wPaAf8D3AH/A/0N/wP+Af8D+QH/A9wB/wPZAf8D2QH/ - A9kB/wPZAf8D1gH/A+kB/wPxAf8D7AH/A/kB/wP+Af8D/gH/A/4B/wH7Af4B/AH/AeAB8QHhAf8BmwHi - AaAB/wGhAeoBpgH/AfQB8AH0Af8D2QH/A9kB/wPZAf8D2QH/A9kB/wPZAf8D+QH/A/4J/wP+Af8D+QH/ - A9wB/wPZAf8D2QH/A9kB/wPZAf8D1gH/A+kB/wPxAf8D7AH/A/kB/wP+Af8D/gH/A/4B/wH5AfwB+QH/ - AeAB7wHgAf8BiQHCAYoB/wGWAckBmAH/AaoB0gGrAf8BIwGZASYB/wEuAZwBMQH/AS4BnAExAf8BKgGa - AS0B/wEmAZgBKQH/ATEBnQEzAf8B0gHqAdIB/wP+Cf8D/gH/A/kB/wPcAf8D2QH/A9kB/wPZAf8D2QH/ - A9YB/wPpAf8D8QH/A+wB/wP5Af8D/gH/A/4B/wP+Af8B+QH8AfkB/wHgAe8B4AH/AYkBwgGKAf8BlgHJ - AZgB/wGqAdIBqwH/ASMBmQEmAf8BLgGcATEB/wEuAZwBMQH/ASoBmgEtAf8BJgGYASkB/wExAZ0BMwH/ - AdIB6gHSAf8D/hH/A/kB/wPaAf8D2gH/A9oB/wPaAf8D4gH/A/4B/wPgAf8D2gH/A9sB/wPhAf8D+AH/ - A/oB/wPhAf8D3AH/A9oB/wPcAf8D/QH/A+kB/wPaAf8D2gH/A9oB/wPaAf8D9xX/A/4B/wPxAf8D2QH/ - A9kB/wPZAf8D2QH/A+IB/wP5Af8D3AH/A9YB/wPZAf8D3AH/AfgB8gH4Af8BtAHsAbgB/wFTAc0BWwH/ - AUgBzQFRAf8BQgHQAUsB/wFaAeABYwH/AeAB+AHiAf8B6AHkAegB/wPZAf8D2QH/A9kB/wPZAf8D8QH/ - A/4R/wP+Af8D8QH/A9kB/wPZAf8D2QH/A9kB/wPiAf8D+QH/A9wB/wPWAf8D2QH/A9wB/wH4AfIB+AH/ - AaoB0gGrAf8BNAGVATYB/wEhAYwBIwH/ARMBiAEVAf8BKgGaAS0B/wHSAeoB0gH/AXIBvAF0Af8BJgGY - ASkB/wEuAZwBMQH/ASoBmgEtAf8BJgGYASkB/wGrAdgBrAH/A/4R/wP+Af8D8QH/A9kB/wPZAf8D2QH/ - A9kB/wPiAf8D+QH/A9wB/wPWAf8D2QH/A9wB/wH4AfIB+AH/AaoB0gGrAf8BNAGVATYB/wEhAYwBIwH/ - ARMBiAEVAf8BKgGaAS0B/wHSAeoB0gH/AXIBvAF0Af8BJgGYASkB/wEuAZwBMQH/ASoBmgEtAf8BJgGY - ASkB/wGrAdgBrAH/A/4Z/wP3Af8D2gH/A9oB/wPaAf8D+gH/A/MB/wPaAf8D2gH/A9oB/wPaAf8D8AH/ - A/QB/wPaAf8D2gH/A9oB/wPaAf8D6gH/A/0B/wPbAf8D2gH/A9oB/wP0Hf8D/gH/A/EB/wPZAf8D2QH/ - A9kB/wPxAf8D7AH/A9kB/wPZAf8D2QH/A9YB/wHxAewB8QH/Aa0B8gGyAf8BVAHgAV0B/wFqAegBdAH/ - AXEB6wF6Af8BagHoAXQB/wGYAfMBnwH/AfUB9AH1Af8B3AHaAdwB/wPZAf8D2QH/A+wB/wP+Gf8D/gH/ - A/EB/wPZAf8D2QH/A9kB/wPxAf8D7AH/A9kB/wPZAf8D2QH/A9YB/wHxAewB8QH/AZIByQGTAf8BFwGR - ARoB/wEuAZwBMQH/ATIBowE0Af8BKgGaAS0B/wFyAbwBdAH/AdIB6gHSAf8BMgGjATQB/wEmAZgBKQH/ - ASoBmgEtAf8BoAHRAaEB/wP+Gf8D/gH/A/EB/wPZAf8D2QH/A9kB/wPxAf8D7AH/A9kB/wPZAf8D2QH/ - A9YB/wHxAewB8QH/AZIByQGTAf8BFwGRARoB/wEuAZwBMQH/ATIBowE0Af8BKgGaAS0B/wFyAbwBdAH/ - AdIB6gHSAf8BMgGjATQB/wEmAZgBKQH/ASoBmgEtAf8BoAHRAaEB/wP+If8D+gH/A9wB/wPmAf8D/QH/ - A9wB/wPaAf8D2gH/A9oB/wPaAf8D8AH/A/QB/wPaAf8D2gH/A9oB/wPaAf8D2gH/A/sB/wPvAf8D2wH/ - A/gl/wP+Af8D8QH/A9wB/wPiAf8B9QH0AfUB/wPZAf8D2QH/A9kB/wPZAf8D2QH/AfEB7AHxAf8BwQH9 - AcUB/wF1AfEBfgH/AXoB8gGBAf8BeAHyAYEB/wFxAesBegH/AWoB6AF0Af8BygH5Ac0B/wHtAegB7QH/ - A9kB/wPxAf8D/iH/A/4B/wPxAf8D3AH/A+IB/wH1AfQB9QH/A9kB/wPZAf8D2QH/A9kB/wPZAf8B8QHs - AfEB/wGaAdIBmwH/ASkBoAEsAf8BNgGkATkB/wE2AaQBOQH/ATIBowE0Af8BKgGaAS0B/wG5AeABugH/ - AYkByAGKAf8BNgGkATkB/wGzAdsBtAH/A/4h/wP+Af8D8QH/A9wB/wPiAf8B9QH0AfUB/wPZAf8D2QH/ - A9kB/wPZAf8D2QH/AfEB7AHxAf8BmgHSAZsB/wEpAaABLAH/ATYBpAE5Af8BNgGkATkB/wEyAaMBNAH/ - ASoBmgEtAf8BuQHgAboB/wGJAcgBigH/ATYBpAE5Af8BswHbAbQB/wP+Kf8D/gH/A/4B/wPrAf8D2gH/ - A9oB/wPaAf8D2gH/A9oB/wPwAf8D9AH/A9oB/wPaAf8D2gH/A9oB/wPaAf8D4wH/A/4B/wP+Lf8D/gH/ - A/kB/wP5Af8D4gH/A9YB/wPZAf8D2QH/A9kB/wPZAf8B8QHsAfEB/wHBAf0BxQH/AXUB8QF+Af8BegHy - AYEB/wF6AfIBgQH/AXEB6wF6Af8BagHoAXQB/wGJAfMBkAH/AfAB+QHxAf8D+QH/A/4p/wP+Af8D+QH/ - A/kB/wPiAf8D1gH/A9kB/wPZAf8D2QH/A9kB/wHxAewB8QH/AZoB0gGbAf8BKQGgASwB/wE2AaQBOQH/ - ATYBpAE5Af8BMgGjATQB/wEjAZkBJgH/AVYBsQFZAf8B4AHxAeEB/wHgAfEB4QH/A/4p/wP+Af8D+QH/ - A/kB/wPiAf8D1gH/A9kB/wPZAf8D2QH/A9kB/wHxAewB8QH/AZoB0gGbAf8BKQGgASwB/wE2AaQBOQH/ - ATYBpAE5Af8BMgGjATQB/wEjAZkBJgH/AVYBsQFZAf8B4AHxAeEB/wHgAfEB4QH/A/41/wP8Af8D6wH/ - A90B/wPaAf8D2gH/A9oB/wPwAf8D9AH/A9oB/wPaAf8D2gH/A90B/wPqAf8D+zn/A/4B/wP+Af8B9QH0 - AfUB/wPpAf8D3AH/A9kB/wPWAf8D1gH/AfEB7AHxAf8BvAH7AcEB/wF1AfEBfgH/AXUB8QF+Af8BdQHx - AX4B/wGCAfEBigH/AaUB8gGqAf8B2AH6AdsB/wP+Af8D/jH/A/4B/wP+Af8B9QH0AfUB/wPpAf8D3AH/ - A9kB/wPWAf8D1gH/AfEB7AHxAf8BmgHSAZsB/wEjAZkBJgH/ASkBoAEsAf8BMgGjATQB/wFDAasBRQH/ - AXwBwgF9Af8BxwHlAcgB/wP+Af8D/jH/A/4B/wP+Af8B9QH0AfUB/wPpAf8D3AH/A9kB/wPWAf8D1gH/ - AfEB7AHxAf8BmgHSAZsB/wEjAZkBJgH/ASkBoAEsAf8BMgGjATQB/wFDAasBRQH/AXwBwgF9Af8BxwHl - AcgB/wP+Af8D/kH/A/4B/wP5Af8D7wH/A+YB/wP1Af8D+AH/A+UB/wPvAf8D+QH/A/5J/wP+Af8D/gH/ - A/4B/wPxAf8D6QH/A+IB/wHxAewB8QH/Ac4B+gHRAf8BmgH5AaEB/wG0AfsBugH/AdEB+gHUAf8B8AH5 - AfEB/wP+Af8D/kH/A/4B/wP+Af8D/gH/A/EB/wPpAf8D4gH/AfgB8gH4Af8BswHbAbQB/wFpAbsBawH/ - AY4BzQGQAf8BuQHgAboB/wHoAfUB6AH/A/4B/wP+Qf8D/gH/A/4B/wP+Af8D8QH/A+kB/wPiAf8B+AHy - AfgB/wGzAdsBtAH/AWkBuwFrAf8BjgHNAZAB/wG5AeABugH/AegB9QHoAf8D/gH/A/4h/wFCAU0BPgcA - AT4DAAEoAwABeAMAAXgDAAEBAQABAQUAAYABBxYAA///AP8A/wD/AP8A/wD/AIgACw== - - - \ No newline at end of file diff --git a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/ResultViewControl.cs b/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/ResultViewControl.cs deleted file mode 100644 index 47bec400..00000000 --- a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/ResultViewControl.cs +++ /dev/null @@ -1,57 +0,0 @@ -// Copyright (c) 2011, Outercurve Foundation. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// - Redistributions of source code must retain the above copyright notice, this -// list of conditions and the following disclaimer. -// -// - Redistributions in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// - Neither the name of the Outercurve Foundation nor the names of its -// contributors may be used to endorse or promote products derived from this -// software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -using System; -using System.Windows.Forms; -using WebsitePanel.Installer.Common; - -namespace WebsitePanel.Installer.Controls -{ - internal class ResultViewControl : UserControl - { - private AppContext appContext; - private bool isInitialized; - - public AppContext AppContext - { - get { return appContext; } - set { appContext = value; } - } - - protected bool IsInitialized - { - get { return isInitialized; } - set { isInitialized = value; } - } - - public virtual void ShowControl(AppContext context) - { - this.AppContext = context; - } - } -} diff --git a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/ServerControl.Designer.cs b/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/ServerControl.Designer.cs deleted file mode 100644 index 6fdaf6a2..00000000 --- a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/ServerControl.Designer.cs +++ /dev/null @@ -1,180 +0,0 @@ -namespace WebsitePanel.Installer.Controls -{ - partial class ServerControl - { - /// - /// 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 Component 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(ServerControl)); - this.grpConnectionSettings = new System.Windows.Forms.GroupBox(); - this.txtPassword = new System.Windows.Forms.TextBox(); - this.lblPassword = new System.Windows.Forms.Label(); - this.txtPort = new System.Windows.Forms.TextBox(); - this.lblPort = new System.Windows.Forms.Label(); - this.txtServer = new System.Windows.Forms.TextBox(); - this.lblServer = new System.Windows.Forms.Label(); - this.btnUpdate = new System.Windows.Forms.Button(); - this.btnTest = new System.Windows.Forms.Button(); - this.btnRemove = new System.Windows.Forms.Button(); - this.grpConnectionSettings.SuspendLayout(); - this.SuspendLayout(); - // - // grpConnectionSettings - // - this.grpConnectionSettings.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.grpConnectionSettings.Controls.Add(this.txtPassword); - this.grpConnectionSettings.Controls.Add(this.lblPassword); - this.grpConnectionSettings.Controls.Add(this.txtPort); - this.grpConnectionSettings.Controls.Add(this.lblPort); - this.grpConnectionSettings.Controls.Add(this.txtServer); - this.grpConnectionSettings.Controls.Add(this.lblServer); - this.grpConnectionSettings.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); - this.grpConnectionSettings.Location = new System.Drawing.Point(14, 43); - this.grpConnectionSettings.Name = "grpConnectionSettings"; - this.grpConnectionSettings.Size = new System.Drawing.Size(379, 122); - this.grpConnectionSettings.TabIndex = 0; - this.grpConnectionSettings.TabStop = false; - this.grpConnectionSettings.Text = "Connection settings"; - // - // txtPassword - // - this.txtPassword.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.txtPassword.Location = new System.Drawing.Point(122, 82); - this.txtPassword.Name = "txtPassword"; - this.txtPassword.PasswordChar = '*'; - this.txtPassword.Size = new System.Drawing.Size(234, 21); - this.txtPassword.TabIndex = 5; - // - // lblPassword - // - this.lblPassword.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); - this.lblPassword.Location = new System.Drawing.Point(16, 82); - this.lblPassword.Name = "lblPassword"; - this.lblPassword.Size = new System.Drawing.Size(100, 21); - this.lblPassword.TabIndex = 4; - this.lblPassword.Text = "Password"; - // - // txtPort - // - this.txtPort.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.txtPort.Location = new System.Drawing.Point(122, 55); - this.txtPort.Name = "txtPort"; - this.txtPort.Size = new System.Drawing.Size(234, 21); - this.txtPort.TabIndex = 3; - // - // lblPort - // - this.lblPort.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); - this.lblPort.Location = new System.Drawing.Point(16, 55); - this.lblPort.Name = "lblPort"; - this.lblPort.Size = new System.Drawing.Size(100, 21); - this.lblPort.TabIndex = 2; - this.lblPort.Text = "Port"; - // - // txtServer - // - this.txtServer.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.txtServer.Location = new System.Drawing.Point(122, 28); - this.txtServer.Name = "txtServer"; - this.txtServer.Size = new System.Drawing.Size(234, 21); - this.txtServer.TabIndex = 1; - // - // lblServer - // - this.lblServer.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); - this.lblServer.Location = new System.Drawing.Point(16, 28); - this.lblServer.Name = "lblServer"; - this.lblServer.Size = new System.Drawing.Size(100, 21); - this.lblServer.TabIndex = 0; - this.lblServer.Text = "Server"; - // - // btnUpdate - // - this.btnUpdate.Image = ((System.Drawing.Image)(resources.GetObject("btnUpdate.Image"))); - this.btnUpdate.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.btnUpdate.Location = new System.Drawing.Point(148, 171); - this.btnUpdate.Name = "btnUpdate"; - this.btnUpdate.Size = new System.Drawing.Size(128, 28); - this.btnUpdate.TabIndex = 9; - this.btnUpdate.Text = "Update"; - this.btnUpdate.UseVisualStyleBackColor = true; - // - // btnTest - // - this.btnTest.Image = ((System.Drawing.Image)(resources.GetObject("btnTest.Image"))); - this.btnTest.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.btnTest.Location = new System.Drawing.Point(14, 171); - this.btnTest.Name = "btnTest"; - this.btnTest.Size = new System.Drawing.Size(128, 28); - this.btnTest.TabIndex = 8; - this.btnTest.Text = "Test connection"; - this.btnTest.UseVisualStyleBackColor = true; - // - // btnRemove - // - this.btnRemove.Image = ((System.Drawing.Image)(resources.GetObject("btnRemove.Image"))); - this.btnRemove.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.btnRemove.Location = new System.Drawing.Point(14, 9); - this.btnRemove.Name = "btnRemove"; - this.btnRemove.Size = new System.Drawing.Size(128, 28); - this.btnRemove.TabIndex = 10; - this.btnRemove.Text = "Remove server"; - this.btnRemove.UseVisualStyleBackColor = true; - // - // ServerControl - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.Controls.Add(this.btnRemove); - this.Controls.Add(this.btnUpdate); - this.Controls.Add(this.btnTest); - this.Controls.Add(this.grpConnectionSettings); - this.Name = "ServerControl"; - this.Size = new System.Drawing.Size(406, 327); - this.grpConnectionSettings.ResumeLayout(false); - this.grpConnectionSettings.PerformLayout(); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.GroupBox grpConnectionSettings; - private System.Windows.Forms.TextBox txtPassword; - private System.Windows.Forms.Label lblPassword; - private System.Windows.Forms.TextBox txtPort; - private System.Windows.Forms.Label lblPort; - private System.Windows.Forms.TextBox txtServer; - private System.Windows.Forms.Label lblServer; - private System.Windows.Forms.Button btnUpdate; - private System.Windows.Forms.Button btnTest; - private System.Windows.Forms.Button btnRemove; - } -} diff --git a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/ServerControl.cs b/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/ServerControl.cs deleted file mode 100644 index 242c4b72..00000000 --- a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/ServerControl.cs +++ /dev/null @@ -1,46 +0,0 @@ -// Copyright (c) 2011, Outercurve Foundation. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// - Redistributions of source code must retain the above copyright notice, this -// list of conditions and the following disclaimer. -// -// - Redistributions in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// - Neither the name of the Outercurve Foundation nor the names of its -// contributors may be used to endorse or promote products derived from this -// software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Drawing; -using System.Data; -using System.Text; -using System.Windows.Forms; - -namespace WebsitePanel.Installer.Controls -{ - internal partial class ServerControl : ResultViewControl - { - public ServerControl() - { - InitializeComponent(); - } - } -} diff --git a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/ServerControl.resx b/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/ServerControl.resx deleted file mode 100644 index 89b7bc69..00000000 --- a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/ServerControl.resx +++ /dev/null @@ -1,178 +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 - - - - - 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 - j6zEfgNB/y51tqL5CQAAAABJRU5ErkJggg== - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAA+NJREFUOE89jmlM - GwQYhj9iKbBgskgky7jdkjknCmwglMIqoDCQa61QObQMSLElhEMJ0LkSaDkHowdyDNlCgQETVgcydBgR - 4tzCOCz3gJbSFTXgohhRM/C1McYfz8/neV+rnA+Laf8AV13dXvA5+Ht/4+DpvonBsNpkMq1Nh2yZ5kN2 - tj8xbWx2rK2Zu4xnGGBYM+n+5CQZDBvEYDCI3st83yq3SDqzs7uP5c1f8fX0Jrq+0KG6YwwfKLQQV2r2 - RLKrW7kVTTMltc3D9a0dTQUS6bmkC0JKzRQRSeVVz6rbusw7vwFL5j9xffxn5HdvIbXtMc43bSJctQF2 - 3SpOV83j5YpZxBQ2IiUtvYebLCBechpR32dDx0cnHv71YG0Pma16CFrWUXLzMUr6zRB1m5DYbkToxwb4 - NBhwSr2FCFE5IqNjykKjYiksKo5oRjfH0Y6v4N0mA5QjP6Ltm23k9pgQ36xHqHIdgYp1nLFwqkEPz0Yj - zosl8AtgpZ/2Z9OZgCCi5eVFgVB5H+q72xBrjHjpo0U4F8/D+eIiXEqX4SJ/BLeaNThf1sOn2YCSahV4 - Cfw3uPxk4vFTiMYmvisv7ZxBtEIPxzwdXEsW4CFdgodsBe4Vq3C3yC51ejx3xYSgri10aoeeSstkx6Xl - FXSpTE50o3+w61yNDs/nL8Bd8p9cbpErH8G9dg1H6zfg3baJvN45aPrHcW9waE/Z2MjJys6mlBTLA+mV - T+YDyybhU7mKE5UGuFVuwLnKAKcaPY7UGxHUuow76jYsiTKhS03CLJeL2aysP2olksJYLpcoNiG5JSk9 - az69QPp7mrQJSTVaxCi/BadlBa+26HFNrsBaUQFWVSpMR0ZiSiDAVPoFzMbHQyQURlBAcCj5ss4y/FjB - HhFRb4Xw+fyiTKFwKiOnAPkXy3EvS4iFoiLsmM14qFDgtkaDu5bA2uHDqIuO1lLg629SQoqApLJK6rzR - 6zk4ONTTPzDwQ2lFNSR5+ZjMyMADX1+MRkejc2ICA3I55ohgsnDNz2+OSuVV1N7RRZ29N52Gvxzdnf5e - h7mFRfTd0kKlVGEsLAwjTk7oVqtxSyzGoiWyVViIHUtAHRb2OSUmJRP37USK5yU41jUoDYN3RvCp9jba - Nd1QXNegLy4OX1nuDoeH/7u86e+PJzwejI6OqJPJ4okVyCYWm02vBbAogBXoIRJnN1bVXF6yxH6R19bv - Fl8qNQ6EhGwv29nBZGWFJ5aI0dUVypwceUhUFFHQWc7/eHl704kXT5Kn5ytML2+fIw4ODm7WNjbOR48d - 836HzZZLOZyevODgFh8vLy7D3t6eiGz/AfbnLf28f482AAAAAElFTkSuQmCC - - - \ No newline at end of file diff --git a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/ServersControl.Designer.cs b/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/ServersControl.Designer.cs deleted file mode 100644 index e3b60262..00000000 --- a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/ServersControl.Designer.cs +++ /dev/null @@ -1,166 +0,0 @@ -namespace WebsitePanel.Installer.Controls -{ - partial class ServersControl - { - /// - /// 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 Component 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(ServersControl)); - this.grpConnectionSettings = new System.Windows.Forms.GroupBox(); - this.txtPassword = new System.Windows.Forms.TextBox(); - this.lblPassword = new System.Windows.Forms.Label(); - this.txtPort = new System.Windows.Forms.TextBox(); - this.lblPort = new System.Windows.Forms.Label(); - this.txtServer = new System.Windows.Forms.TextBox(); - this.lblServer = new System.Windows.Forms.Label(); - this.btnAdd = new System.Windows.Forms.Button(); - this.btnTest = new System.Windows.Forms.Button(); - this.grpConnectionSettings.SuspendLayout(); - this.SuspendLayout(); - // - // grpConnectionSettings - // - this.grpConnectionSettings.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.grpConnectionSettings.Controls.Add(this.txtPassword); - this.grpConnectionSettings.Controls.Add(this.lblPassword); - this.grpConnectionSettings.Controls.Add(this.txtPort); - this.grpConnectionSettings.Controls.Add(this.lblPort); - this.grpConnectionSettings.Controls.Add(this.txtServer); - this.grpConnectionSettings.Controls.Add(this.lblServer); - this.grpConnectionSettings.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); - this.grpConnectionSettings.Location = new System.Drawing.Point(14, 3); - this.grpConnectionSettings.Name = "grpConnectionSettings"; - this.grpConnectionSettings.Size = new System.Drawing.Size(379, 122); - this.grpConnectionSettings.TabIndex = 0; - this.grpConnectionSettings.TabStop = false; - this.grpConnectionSettings.Text = "Connection settings"; - // - // txtPassword - // - this.txtPassword.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.txtPassword.Location = new System.Drawing.Point(122, 82); - this.txtPassword.Name = "txtPassword"; - this.txtPassword.PasswordChar = '*'; - this.txtPassword.Size = new System.Drawing.Size(234, 21); - this.txtPassword.TabIndex = 5; - // - // lblPassword - // - this.lblPassword.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); - this.lblPassword.Location = new System.Drawing.Point(16, 82); - this.lblPassword.Name = "lblPassword"; - this.lblPassword.Size = new System.Drawing.Size(100, 21); - this.lblPassword.TabIndex = 4; - this.lblPassword.Text = "Password"; - // - // txtPort - // - this.txtPort.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.txtPort.Location = new System.Drawing.Point(122, 55); - this.txtPort.Name = "txtPort"; - this.txtPort.Size = new System.Drawing.Size(234, 21); - this.txtPort.TabIndex = 3; - // - // lblPort - // - this.lblPort.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); - this.lblPort.Location = new System.Drawing.Point(16, 55); - this.lblPort.Name = "lblPort"; - this.lblPort.Size = new System.Drawing.Size(100, 21); - this.lblPort.TabIndex = 2; - this.lblPort.Text = "Port"; - // - // txtServer - // - this.txtServer.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.txtServer.Location = new System.Drawing.Point(122, 28); - this.txtServer.Name = "txtServer"; - this.txtServer.Size = new System.Drawing.Size(234, 21); - this.txtServer.TabIndex = 1; - // - // lblServer - // - this.lblServer.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); - this.lblServer.Location = new System.Drawing.Point(16, 28); - this.lblServer.Name = "lblServer"; - this.lblServer.Size = new System.Drawing.Size(100, 21); - this.lblServer.TabIndex = 0; - this.lblServer.Text = "Server"; - // - // btnAdd - // - this.btnAdd.Image = ((System.Drawing.Image)(resources.GetObject("btnAdd.Image"))); - this.btnAdd.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.btnAdd.Location = new System.Drawing.Point(148, 131); - this.btnAdd.Name = "btnAdd"; - this.btnAdd.Size = new System.Drawing.Size(128, 28); - this.btnAdd.TabIndex = 9; - this.btnAdd.Text = "Add server"; - this.btnAdd.UseVisualStyleBackColor = true; - // - // btnTest - // - this.btnTest.Image = ((System.Drawing.Image)(resources.GetObject("btnTest.Image"))); - this.btnTest.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.btnTest.Location = new System.Drawing.Point(14, 131); - this.btnTest.Name = "btnTest"; - this.btnTest.Size = new System.Drawing.Size(128, 28); - this.btnTest.TabIndex = 8; - this.btnTest.Text = "Test connection"; - this.btnTest.UseVisualStyleBackColor = true; - // - // ServersControl - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.Controls.Add(this.btnAdd); - this.Controls.Add(this.btnTest); - this.Controls.Add(this.grpConnectionSettings); - this.Name = "ServersControl"; - this.Size = new System.Drawing.Size(406, 327); - this.grpConnectionSettings.ResumeLayout(false); - this.grpConnectionSettings.PerformLayout(); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.GroupBox grpConnectionSettings; - private System.Windows.Forms.TextBox txtPassword; - private System.Windows.Forms.Label lblPassword; - private System.Windows.Forms.TextBox txtPort; - private System.Windows.Forms.Label lblPort; - private System.Windows.Forms.TextBox txtServer; - private System.Windows.Forms.Label lblServer; - private System.Windows.Forms.Button btnAdd; - private System.Windows.Forms.Button btnTest; - } -} diff --git a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/ServersControl.cs b/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/ServersControl.cs deleted file mode 100644 index 6aa328ec..00000000 --- a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/ServersControl.cs +++ /dev/null @@ -1,46 +0,0 @@ -// Copyright (c) 2011, Outercurve Foundation. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// - Redistributions of source code must retain the above copyright notice, this -// list of conditions and the following disclaimer. -// -// - Redistributions in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// - Neither the name of the Outercurve Foundation nor the names of its -// contributors may be used to endorse or promote products derived from this -// software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Drawing; -using System.Data; -using System.Text; -using System.Windows.Forms; - -namespace WebsitePanel.Installer.Controls -{ - internal partial class ServersControl : ResultViewControl - { - public ServersControl() - { - InitializeComponent(); - } - } -} diff --git a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/ServersControl.resx b/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/ServersControl.resx deleted file mode 100644 index 4166a35a..00000000 --- a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/ServersControl.resx +++ /dev/null @@ -1,162 +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 - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAA+VJREFUOE811G0w - GwYcx/F/Jx7a3Ta71djQcqdDqxSreAyd624zpVSZeDYPKWsZpuqh0hJNPERYPIzSadHDViub26nWhqq6 - a0uELRFJNOFcrjN3bDe2229pd3vxefm9/93vxX9XRk4+ERn02h145+D2zs7qzs6OxuAl0hgbGjzdbWyk - 2bPbZM3ExFhnaGS0wWAYbhswjOj+gynSaLXEYDCI4lPPGBVc4is2/wRk2i2MS1bRfWcB/M4J5NZ/Bw7/ - 5t9pZe3rmWXN8jxB85ig6avOc/mFQezkdIpNzSDiVggsrnbd2ni2Bcyo/4B4WIczHRqwWzQIbXyK4/Vq - +AiX4CpYwCG+FCfzahGTkNQUzk6gUzGJRF8PDLmNPZT8c1e6hbgGBThtKnD7V1Csl3lTg6j2ZQQ2quAq - UsFJrEVQWiE++Cg4+70PT1BgUAjR7NxcaPdduT5WonVUB/GIDmnXlxEkXgJLpABTtAQ3PcdaFVzESkSk - 5+Gop3e4u5cvvevlRySZk+Z8UvcQzfeeIbZFBbtCKSwLpLAqXoD1pV9gzZNjf6UCljVKMFuUKOHXIjI6 - hhkZk0DP0fDohPhi1xwCKhdhniPB/qJ52HJ/hm2ZDDZXFmFTpcA+oRJmQg2CulbQ03t7k1vGM+eWX6HS - yzyijt7BIRZPCrPcedjor9r8H/P/i62FKrg3a5HcL4fwwRSGJgbXG+ob3DM5nxKbzSY6X3lVzSqbhodA - Bke+ErZ8NawEalhWqfCWcBk+TQpUjfeAt5CLbEkSUuficH4m+/eS6uLPI0IjiIJPRdVGJ6ZMJ2ddWE8q - qkMsvwdhdT8h8Mt5HG1UI//ba8iTJoD9KBxTuvvgyUrhI3FBnCQCnLOcEPJkBerXZBHTx98iOOSkRzQ7 - OjctPf1JamYWzl3gIn8yC5y5JCTOfgz1pgoVi1w4PTkAu0ULhImDh8n/eBDFp3CIXyOivm/6A4fvjAwP - DA6u8yqq8FlRLlKmYzG6OoLVjRVs/7WNtc01yH6VIVDhBedOezmVC6qpraOTrnf3OAwNj+DRzCwez0rQ - 03cLdV+IETkWgiNj9nAfd8H8b1LwlkrhLnXFm5o9ONbqPUnhpyMpJCz8ubdrRHXqge9/QF//bbTf6EJr - 0w3E9bFBEwSaJPy4dg/xi6dBWoKl+hVcFJWkk7ev3wtML29ienrtS01Lr75cXvGYX12zdqmcr8svKJIG - D7yvM194FfZyK1hpTeGgscHZaxltUSeiDMjPP+AFX5Y/uRxxJQfHg3TI6fCuw87Or5m+bvqGEcN4r4ON - g9uxJFatX6X3kH+pby8zwCNt78tmpvo/YPIv1ugy8/qHI6sAAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAqNJREFUOE+dk2tI - k2EUgN/SrOxqF7uYCZkVRRcryR9GEqGlRPdBBBoUlSQJkf0pIixKqX6ERUwyKJCViRAUWKbWWubu63NT - 29q0TSelZrMbmvX0bYb19dMDL+85h/d5zvnzCjHCAP6SA3L1+Vcf/oF2Wr46aAi85HHPI8rfl6H2F1Pk - LeBEay7ZThWZrlSOWPfLxD+C3h8faf3qxvLJyNOuKso7yrjx7ioX3Gc4/uYoex3bUElbqX1fzZ2OUtbV - LVcKvN/eYftkprbrCRX+u6i917joPstJZx7ZTSp2vE7H2mMKQjAIGVUblQJ74DV13dUyrKFEhos8BeQ7 - j5Elwxm2VOo/6IbgX1BoKyChOkYp0PbUUdGp4ab3BufenuaAYx/bpTSSTMu45y0bhi+ZLiKMgsW6eUpB - ZWc5xW1XONp0kL3SztDU2IZZ5DYeCk0Nxm2plLB6QaRLsEQXqxQ88Fcg9dq47CwkybCUyBfhxGhn4Ovz - huAWfzMzn01iQrNg4ltZUP/fBoauhqExPyFfykPUCCp95aHWwPcBUrXrCHcIprWEEdUWxgp9vHKDPHsO - 7o+uIYkcD9sf0D/YH8qvS1cRZkG0M4I4dxQJHdFssKxVCna3ZDK/dg46n3ZYEkwCfQESXs5liiuMeM9M - VvsWkvJhBbsbM5SCtKYURukEs7XTeNZeMyypdN0n3CaI80wl0RvPps5kdvWmc7g5SylY6VjAOIMgwiKY - bBjDLU8J5nYTKfo1TPAIFvlms75zFXu6t5DzJYtT7hNKQWL9IqKejyNaN57pryKYLG8zvW4sU02jiZOi - SGxayGZXCtmtKvL9uRRZzysFVru1xNBoUBv/HIPdoNY79GqjfAd7JrtRbbab1Ra7RR18K0nSdY1GkzzC - j6zEfgNB/y51tqL5CQAAAABJRU5ErkJggg== - - - \ No newline at end of file diff --git a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/ServiceControl.Designer.cs b/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/ServiceControl.Designer.cs deleted file mode 100644 index b98a918b..00000000 --- a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/ServiceControl.Designer.cs +++ /dev/null @@ -1,250 +0,0 @@ -namespace WebsitePanel.Installer.Controls -{ - partial class ServiceControl - { - /// - /// 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 Component 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(ServiceControl)); - this.grpConnectionSettings = new System.Windows.Forms.GroupBox(); - this.pictureBox1 = new System.Windows.Forms.PictureBox(); - this.btnAdd = new System.Windows.Forms.Button(); - this.btnTest = new System.Windows.Forms.Button(); - this.lblStatus = new System.Windows.Forms.Label(); - this.label1 = new System.Windows.Forms.Label(); - this.label2 = new System.Windows.Forms.Label(); - this.textBox1 = new System.Windows.Forms.TextBox(); - this.label3 = new System.Windows.Forms.Label(); - this.textBox2 = new System.Windows.Forms.TextBox(); - this.button2 = new System.Windows.Forms.Button(); - this.textBox3 = new System.Windows.Forms.TextBox(); - this.groupBox1 = new System.Windows.Forms.GroupBox(); - this.textBox4 = new System.Windows.Forms.TextBox(); - this.label4 = new System.Windows.Forms.Label(); - this.grpConnectionSettings.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); - this.groupBox1.SuspendLayout(); - this.SuspendLayout(); - // - // grpConnectionSettings - // - this.grpConnectionSettings.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.grpConnectionSettings.Controls.Add(this.pictureBox1); - this.grpConnectionSettings.Controls.Add(this.btnAdd); - this.grpConnectionSettings.Controls.Add(this.btnTest); - this.grpConnectionSettings.Controls.Add(this.lblStatus); - this.grpConnectionSettings.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); - this.grpConnectionSettings.Location = new System.Drawing.Point(14, 3); - this.grpConnectionSettings.Name = "grpConnectionSettings"; - this.grpConnectionSettings.Size = new System.Drawing.Size(379, 66); - this.grpConnectionSettings.TabIndex = 0; - this.grpConnectionSettings.TabStop = false; - this.grpConnectionSettings.Text = "Status"; - // - // pictureBox1 - // - this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image"))); - this.pictureBox1.Location = new System.Drawing.Point(13, 20); - this.pictureBox1.Name = "pictureBox1"; - this.pictureBox1.Size = new System.Drawing.Size(32, 32); - this.pictureBox1.TabIndex = 12; - this.pictureBox1.TabStop = false; - // - // btnAdd - // - this.btnAdd.Enabled = false; - this.btnAdd.Image = ((System.Drawing.Image)(resources.GetObject("btnAdd.Image"))); - this.btnAdd.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.btnAdd.Location = new System.Drawing.Point(258, 20); - this.btnAdd.Name = "btnAdd"; - this.btnAdd.Size = new System.Drawing.Size(83, 28); - this.btnAdd.TabIndex = 11; - this.btnAdd.Text = "Stop"; - this.btnAdd.UseVisualStyleBackColor = true; - // - // btnTest - // - this.btnTest.Enabled = false; - this.btnTest.Image = ((System.Drawing.Image)(resources.GetObject("btnTest.Image"))); - this.btnTest.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.btnTest.Location = new System.Drawing.Point(169, 20); - this.btnTest.Name = "btnTest"; - this.btnTest.Size = new System.Drawing.Size(83, 28); - this.btnTest.TabIndex = 10; - this.btnTest.Text = "Start"; - this.btnTest.UseVisualStyleBackColor = true; - // - // lblStatus - // - this.lblStatus.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(204))); - this.lblStatus.Location = new System.Drawing.Point(51, 26); - this.lblStatus.Name = "lblStatus"; - this.lblStatus.Size = new System.Drawing.Size(112, 21); - this.lblStatus.TabIndex = 0; - this.lblStatus.Text = "Not installed"; - // - // label1 - // - this.label1.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); - this.label1.Location = new System.Drawing.Point(16, 82); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(100, 21); - this.label1.TabIndex = 4; - this.label1.Text = "Password"; - // - // label2 - // - this.label2.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); - this.label2.Location = new System.Drawing.Point(16, 55); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(100, 21); - this.label2.TabIndex = 2; - this.label2.Text = "Port"; - // - // textBox1 - // - this.textBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.textBox1.Location = new System.Drawing.Point(122, 28); - this.textBox1.Name = "textBox1"; - this.textBox1.Size = new System.Drawing.Size(234, 21); - this.textBox1.TabIndex = 1; - // - // label3 - // - this.label3.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); - this.label3.Location = new System.Drawing.Point(16, 28); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(100, 21); - this.label3.TabIndex = 0; - this.label3.Text = "Server"; - // - // textBox2 - // - this.textBox2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.textBox2.Location = new System.Drawing.Point(122, 55); - this.textBox2.Name = "textBox2"; - this.textBox2.Size = new System.Drawing.Size(234, 21); - this.textBox2.TabIndex = 3; - // - // button2 - // - this.button2.Image = ((System.Drawing.Image)(resources.GetObject("button2.Image"))); - this.button2.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.button2.Location = new System.Drawing.Point(14, 240); - this.button2.Name = "button2"; - this.button2.Size = new System.Drawing.Size(128, 28); - this.button2.TabIndex = 11; - this.button2.Text = "Update settings"; - this.button2.UseVisualStyleBackColor = true; - // - // textBox3 - // - this.textBox3.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.textBox3.Location = new System.Drawing.Point(122, 82); - this.textBox3.Name = "textBox3"; - this.textBox3.PasswordChar = '*'; - this.textBox3.Size = new System.Drawing.Size(234, 21); - this.textBox3.TabIndex = 5; - // - // groupBox1 - // - this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.groupBox1.Controls.Add(this.textBox4); - this.groupBox1.Controls.Add(this.label4); - this.groupBox1.Controls.Add(this.textBox3); - this.groupBox1.Controls.Add(this.label1); - this.groupBox1.Controls.Add(this.textBox2); - this.groupBox1.Controls.Add(this.label2); - this.groupBox1.Controls.Add(this.textBox1); - this.groupBox1.Controls.Add(this.label3); - this.groupBox1.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); - this.groupBox1.Location = new System.Drawing.Point(14, 81); - this.groupBox1.Name = "groupBox1"; - this.groupBox1.Size = new System.Drawing.Size(379, 150); - this.groupBox1.TabIndex = 10; - this.groupBox1.TabStop = false; - this.groupBox1.Text = "Connection settings"; - // - // textBox4 - // - this.textBox4.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.textBox4.Location = new System.Drawing.Point(122, 109); - this.textBox4.Name = "textBox4"; - this.textBox4.PasswordChar = '*'; - this.textBox4.Size = new System.Drawing.Size(234, 21); - this.textBox4.TabIndex = 7; - // - // label4 - // - this.label4.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); - this.label4.Location = new System.Drawing.Point(16, 109); - this.label4.Name = "label4"; - this.label4.Size = new System.Drawing.Size(100, 21); - this.label4.TabIndex = 6; - this.label4.Text = "Confirm password"; - // - // ServiceControl - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.Controls.Add(this.button2); - this.Controls.Add(this.groupBox1); - this.Controls.Add(this.grpConnectionSettings); - this.Name = "ServiceControl"; - this.Size = new System.Drawing.Size(406, 327); - this.grpConnectionSettings.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); - this.groupBox1.ResumeLayout(false); - this.groupBox1.PerformLayout(); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.GroupBox grpConnectionSettings; - private System.Windows.Forms.Label lblStatus; - private System.Windows.Forms.Button btnAdd; - private System.Windows.Forms.Button btnTest; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.TextBox textBox1; - private System.Windows.Forms.Label label3; - private System.Windows.Forms.TextBox textBox2; - private System.Windows.Forms.Button button2; - private System.Windows.Forms.TextBox textBox3; - private System.Windows.Forms.GroupBox groupBox1; - private System.Windows.Forms.PictureBox pictureBox1; - private System.Windows.Forms.TextBox textBox4; - private System.Windows.Forms.Label label4; - } -} diff --git a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/ServiceControl.cs b/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/ServiceControl.cs deleted file mode 100644 index 7380d425..00000000 --- a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/ServiceControl.cs +++ /dev/null @@ -1,46 +0,0 @@ -// Copyright (c) 2011, Outercurve Foundation. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// - Redistributions of source code must retain the above copyright notice, this -// list of conditions and the following disclaimer. -// -// - Redistributions in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// - Neither the name of the Outercurve Foundation nor the names of its -// contributors may be used to endorse or promote products derived from this -// software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Drawing; -using System.Data; -using System.Text; -using System.Windows.Forms; - -namespace WebsitePanel.Installer.Controls -{ - internal partial class ServiceControl : ResultViewControl - { - public ServiceControl() - { - InitializeComponent(); - } - } -} diff --git a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/ServiceControl.resx b/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/ServiceControl.resx deleted file mode 100644 index 2c91c02e..00000000 --- a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/ServiceControl.resx +++ /dev/null @@ -1,223 +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 - - - - - 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 - AABJRU5ErkJggg== - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAA5FJREFUOE81U21M - m1UUvg3LmJMlilvUaJzsDzr/7AeJmdkWcW5LlwmYQCmLIZotISbEqSzMQaY4iGYxTaYuQmGwQUtbPtrS - 0Q9aoKUv/aKlLf2iLYVVsTgXOhyxMWQzeTx9wZs8uSf3nue555x7jqCqqorl1+7CQravqCiPXSWvHzz6 - 6msHy4v37z/89MnT3F+Psr4Ha2uW7MZG+u9cjm1ubrKtrS0mEAgYywvk8SHh6pUrpy0z9rAzmYY5nsZY - eAm6SAoWsmejiSeq4WHZZ42NL9XX1zOxWMzq6uq2Bc4Khaz5ctOl2XAc2sgyBubCGPCEeNx1h9DrCqKX - dl3sPgzTtvSFTz5+s6amhhdhQiJ/dP58pcntxVAwgcG5CGQ7AipfFIPeCPrprJ/ObjuD0C6mcWdQERWe - ObOvoqKCsXdPnHjmZmdXXBNO8c55sjGcxMqDh1hd+wORRBLT8wtQ5O9I8I4nDN1CApebmq6La2sZq/zg - XKXK6oDSv8iTDeEEcrkcqHBYTqXg83pht07DZLNvR+aNQhlKQdLVff/UyfeeYxcuXpSM+iIYJHU5Ofz6 - cJ3IjxCLxWCz2aBWq6FQKjGu1UA2xaHTFUK3N4Zbo/dwTig8zr5sbh4dptfllKfaH8Pq7xkE/H7o9Xoo - FArIZDJoNBo4OA4W1xx6yW8gkIDUMAVRdXUd+6q1VcUXi9Dn8MPudMJoMPBkuVzOk/ORpJJJuCMxyOix - EfoN6bgZoppqEWtpabmudPkhdQRxTc+hX2fACIX8P3lmZgbxeBwb2XVMBKPQxFagX87gR7nq37paURm7 - KZEcl2oNaDM50WacxQ2jHQOqIT5nB2dHaimJx1RQbzwJDTXWxNIqzCTw7fc3Ap82NOxmkxYzuyXt4drG - bWifcOIHqxc/T7mgtNhg83jhjS5iciHKd+XkSgb2zDpUVg5t33zd0NHRwRgViVlMpiN3NbrH35mdkNh8 - +IXS6ck3D9VFGYhDR82TJ3OZLPSBCHr7+u719HSz9vZ2xopogOgrmdloODZkmMh2cfPodEfQN7/I//cY - zYGJQrb+9icsFIlCqdK3tlzdW1paygoKCvhB3EXYS0tw7J2jb136/AuNdEj9j8LuwYhnAWO+ELScGz91 - 316rFYmuHTpU8mx+eAl7CDSO28YBwiuEFwnFB14oPvJ2WZn49Kn3G0+WlzccfqP07J7CwhK6e37H7+Ud - u+A/uGZ/VDhOBqoAAAAASUVORK5CYII= - - - - - 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 - - - \ No newline at end of file diff --git a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/SettingsControl.Designer.cs b/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/SettingsControl.Designer.cs deleted file mode 100644 index 63ce6b5e..00000000 --- a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/SettingsControl.Designer.cs +++ /dev/null @@ -1,229 +0,0 @@ -namespace WebsitePanel.Installer.Controls -{ - partial class SettingsControl - { - /// - /// 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 Component 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(SettingsControl)); - this.grpWebUpdate = new System.Windows.Forms.GroupBox(); - this.btnCheck = new System.Windows.Forms.Button(); - this.chkAutoUpdate = new System.Windows.Forms.CheckBox(); - this.btnUpdate = new System.Windows.Forms.Button(); - this.grpProxy = new System.Windows.Forms.GroupBox(); - 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.txtAddress = new System.Windows.Forms.TextBox(); - this.lblAddress = new System.Windows.Forms.Label(); - this.chkUseHTTPProxy = new System.Windows.Forms.CheckBox(); - this.btnViewLog = new System.Windows.Forms.Button(); - this.grpWebUpdate.SuspendLayout(); - this.grpProxy.SuspendLayout(); - this.SuspendLayout(); - // - // grpWebUpdate - // - this.grpWebUpdate.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.grpWebUpdate.Controls.Add(this.btnCheck); - this.grpWebUpdate.Controls.Add(this.chkAutoUpdate); - this.grpWebUpdate.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); - this.grpWebUpdate.Location = new System.Drawing.Point(14, 3); - this.grpWebUpdate.Name = "grpWebUpdate"; - this.grpWebUpdate.Size = new System.Drawing.Size(379, 83); - this.grpWebUpdate.TabIndex = 0; - this.grpWebUpdate.TabStop = false; - this.grpWebUpdate.Text = "Web update"; - // - // btnCheck - // - this.btnCheck.Image = ((System.Drawing.Image)(resources.GetObject("btnCheck.Image"))); - this.btnCheck.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.btnCheck.Location = new System.Drawing.Point(19, 44); - this.btnCheck.Name = "btnCheck"; - this.btnCheck.Size = new System.Drawing.Size(128, 28); - this.btnCheck.TabIndex = 1; - this.btnCheck.Text = "&Check For Updates"; - this.btnCheck.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageBeforeText; - this.btnCheck.UseVisualStyleBackColor = true; - this.btnCheck.Click += new System.EventHandler(this.OnCheckClick); - // - // chkAutoUpdate - // - this.chkAutoUpdate.Checked = true; - this.chkAutoUpdate.CheckState = System.Windows.Forms.CheckState.Checked; - this.chkAutoUpdate.Location = new System.Drawing.Point(19, 20); - this.chkAutoUpdate.Name = "chkAutoUpdate"; - this.chkAutoUpdate.Size = new System.Drawing.Size(184, 18); - this.chkAutoUpdate.TabIndex = 0; - this.chkAutoUpdate.Text = "Automatically check for updates"; - this.chkAutoUpdate.UseVisualStyleBackColor = true; - // - // btnUpdate - // - this.btnUpdate.Image = ((System.Drawing.Image)(resources.GetObject("btnUpdate.Image"))); - this.btnUpdate.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.btnUpdate.Location = new System.Drawing.Point(14, 236); - this.btnUpdate.Name = "btnUpdate"; - this.btnUpdate.Size = new System.Drawing.Size(128, 28); - this.btnUpdate.TabIndex = 2; - this.btnUpdate.Text = "&Save Settings"; - this.btnUpdate.Click += new System.EventHandler(this.OnUpdateClick); - // - // grpProxy - // - this.grpProxy.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.grpProxy.Controls.Add(this.txtPassword); - this.grpProxy.Controls.Add(this.lblPassword); - this.grpProxy.Controls.Add(this.txtUserName); - this.grpProxy.Controls.Add(this.lblUsername); - this.grpProxy.Controls.Add(this.txtAddress); - this.grpProxy.Controls.Add(this.lblAddress); - this.grpProxy.Controls.Add(this.chkUseHTTPProxy); - this.grpProxy.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); - this.grpProxy.Location = new System.Drawing.Point(14, 91); - this.grpProxy.Name = "grpProxy"; - this.grpProxy.Size = new System.Drawing.Size(379, 139); - this.grpProxy.TabIndex = 1; - this.grpProxy.TabStop = false; - this.grpProxy.Text = "Proxy"; - // - // txtPassword - // - this.txtPassword.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.txtPassword.Enabled = false; - this.txtPassword.Location = new System.Drawing.Point(125, 101); - this.txtPassword.Name = "txtPassword"; - this.txtPassword.PasswordChar = '*'; - this.txtPassword.Size = new System.Drawing.Size(234, 21); - this.txtPassword.TabIndex = 6; - // - // lblPassword - // - this.lblPassword.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); - this.lblPassword.Location = new System.Drawing.Point(19, 101); - this.lblPassword.Name = "lblPassword"; - this.lblPassword.Size = new System.Drawing.Size(100, 21); - this.lblPassword.TabIndex = 5; - this.lblPassword.Text = "Password"; - // - // txtUserName - // - this.txtUserName.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.txtUserName.Enabled = false; - this.txtUserName.Location = new System.Drawing.Point(125, 74); - this.txtUserName.Name = "txtUserName"; - this.txtUserName.Size = new System.Drawing.Size(234, 21); - this.txtUserName.TabIndex = 4; - // - // lblUsername - // - this.lblUsername.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); - this.lblUsername.Location = new System.Drawing.Point(19, 74); - this.lblUsername.Name = "lblUsername"; - this.lblUsername.Size = new System.Drawing.Size(100, 21); - this.lblUsername.TabIndex = 3; - this.lblUsername.Text = "User name"; - // - // txtAddress - // - this.txtAddress.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.txtAddress.Enabled = false; - this.txtAddress.Location = new System.Drawing.Point(125, 47); - this.txtAddress.Name = "txtAddress"; - this.txtAddress.Size = new System.Drawing.Size(234, 21); - this.txtAddress.TabIndex = 2; - // - // lblAddress - // - this.lblAddress.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); - this.lblAddress.Location = new System.Drawing.Point(19, 47); - this.lblAddress.Name = "lblAddress"; - this.lblAddress.Size = new System.Drawing.Size(100, 21); - this.lblAddress.TabIndex = 1; - this.lblAddress.Text = "Address"; - // - // chkUseHTTPProxy - // - this.chkUseHTTPProxy.Location = new System.Drawing.Point(19, 22); - this.chkUseHTTPProxy.Name = "chkUseHTTPProxy"; - this.chkUseHTTPProxy.Size = new System.Drawing.Size(184, 18); - this.chkUseHTTPProxy.TabIndex = 0; - this.chkUseHTTPProxy.Text = "Use HTTP Proxy"; - this.chkUseHTTPProxy.UseVisualStyleBackColor = true; - this.chkUseHTTPProxy.CheckedChanged += new System.EventHandler(this.OnUseHTTPProxyCheckedChanged); - // - // btnViewLog - // - this.btnViewLog.Image = ((System.Drawing.Image)(resources.GetObject("btnViewLog.Image"))); - this.btnViewLog.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.btnViewLog.Location = new System.Drawing.Point(148, 236); - this.btnViewLog.Name = "btnViewLog"; - this.btnViewLog.Size = new System.Drawing.Size(128, 28); - this.btnViewLog.TabIndex = 3; - this.btnViewLog.Text = "&View System Log"; - this.btnViewLog.Click += new System.EventHandler(this.OnViewLogClick); - // - // SettingsControl - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.Controls.Add(this.btnViewLog); - this.Controls.Add(this.grpProxy); - this.Controls.Add(this.btnUpdate); - this.Controls.Add(this.grpWebUpdate); - this.Name = "SettingsControl"; - this.Size = new System.Drawing.Size(406, 327); - this.grpWebUpdate.ResumeLayout(false); - this.grpProxy.ResumeLayout(false); - this.grpProxy.PerformLayout(); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.GroupBox grpWebUpdate; - private System.Windows.Forms.Button btnUpdate; - private System.Windows.Forms.CheckBox chkAutoUpdate; - private System.Windows.Forms.Button btnCheck; - private System.Windows.Forms.GroupBox grpProxy; - 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.TextBox txtAddress; - private System.Windows.Forms.Label lblAddress; - private System.Windows.Forms.CheckBox chkUseHTTPProxy; - private System.Windows.Forms.Button btnViewLog; - } -} diff --git a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/SettingsControl.cs b/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/SettingsControl.cs deleted file mode 100644 index 436b810f..00000000 --- a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/SettingsControl.cs +++ /dev/null @@ -1,182 +0,0 @@ -// Copyright (c) 2011, Outercurve Foundation. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// - Redistributions of source code must retain the above copyright notice, this -// list of conditions and the following disclaimer. -// -// - Redistributions in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// - Neither the name of the Outercurve Foundation nor the names of its -// contributors may be used to endorse or promote products derived from this -// software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -using System; -using System.Threading; -using System.Diagnostics; -using System.IO; -using System.Configuration; -using System.Collections.Generic; -using System.ComponentModel; -using System.Drawing; -using System.Data; -using System.Text; -using System.Windows.Forms; - -using WebsitePanel.Installer.Common; -using WebsitePanel.Installer.Core; -using WebsitePanel.Installer.Configuration; - -namespace WebsitePanel.Installer.Controls -{ - /// - /// Settings control - /// - internal partial class SettingsControl : ResultViewControl - { - /// - /// Initializes a new instance of the SettingsControl class. - /// - public SettingsControl() - { - InitializeComponent(); - } - - /// - /// Shows control - /// - /// - public override void ShowControl(AppContext context) - { - base.ShowControl(context); - if (!IsInitialized) - { - AppContext = context; - LoadSettings(); - IsInitialized = true; - } - } - - /// - /// Loads application settings - /// - private void LoadSettings() - { - InstallerSection appConfig = AppConfigManager.AppConfiguration; - chkAutoUpdate.Checked = appConfig.GetBooleanSetting(ConfigKeys.Web_AutoCheck); - chkUseHTTPProxy.Checked = appConfig.GetBooleanSetting(ConfigKeys.Web_Proxy_UseProxy); - txtAddress.Text = appConfig.GetStringSetting(ConfigKeys.Web_Proxy_Address); - txtUserName.Text = appConfig.GetStringSetting(ConfigKeys.Web_Proxy_UserName); - txtPassword.Text = appConfig.GetStringSetting(ConfigKeys.Web_Proxy_Password); - } - - private void OnUseHTTPProxyCheckedChanged(object sender, EventArgs e) - { - txtAddress.Enabled = chkUseHTTPProxy.Checked; - txtUserName.Enabled = chkUseHTTPProxy.Checked; - txtPassword.Enabled = chkUseHTTPProxy.Checked; - } - - /// - /// Save application configuration - /// - /// - /// - private void OnUpdateClick(object sender, EventArgs e) - { - KeyValueConfigurationCollection settings = AppConfigManager.AppConfiguration.Settings; - settings[ConfigKeys.Web_AutoCheck].Value = chkAutoUpdate.Checked.ToString(); - settings[ConfigKeys.Web_Proxy_UseProxy].Value = chkUseHTTPProxy.Checked.ToString(); - settings[ConfigKeys.Web_Proxy_Address].Value = txtAddress.Text; - settings[ConfigKeys.Web_Proxy_UserName].Value = txtUserName.Text; - settings[ConfigKeys.Web_Proxy_Password].Value = txtPassword.Text; - // - AppConfigManager.SaveConfiguration(true); - } - - /// - /// Checks for updates - /// - /// - /// - private void OnCheckClick(object sender, EventArgs e) - { - //start check in the separated thread - AppContext.AppForm.StartAsyncProgress("Connecting...", true); - ThreadStart threadDelegate = new ThreadStart(StartCheck); - Thread newThread = new Thread(threadDelegate); - newThread.Start(); - } - - /// - /// Starts check - /// - private void StartCheck() - { - bool startUpdate = CheckForUpdate(); - if (startUpdate) - { - AppContext.AppForm.Close(); - } - } - - /// - /// Checks for update - /// - /// - private bool CheckForUpdate() - { - string fileName; - bool updateAvailable = false; - try - { - updateAvailable = AppContext.AppForm.CheckForUpdate(out fileName); - AppContext.AppForm.FinishProgress(); - } - catch (Exception ex) - { - Log.WriteError("Service error", ex); - AppContext.AppForm.FinishProgress(); - AppContext.AppForm.ShowServerError(); - return false; - } - - string appName = AppContext.AppForm.Text; - if (updateAvailable) - { - string message = string.Format("This version of {0} is out of date.\nWould you like to download the latest version?", appName); - if (MessageBox.Show(AppContext.AppForm, message, appName, MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes) - { - return AppContext.AppForm.StartUpdateProcess(fileName); - } - } - else - { - string message = string.Format("This version of {0} is up to date.", appName); - Log.WriteInfo(message); - AppContext.AppForm.ShowInfo(message); - } - return false; - } - - private void OnViewLogClick(object sender, EventArgs e) - { - Log.ShowLogFile(); - } - } -} diff --git a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/SettingsControl.resx b/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/SettingsControl.resx deleted file mode 100644 index bca2e66c..00000000 --- a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/SettingsControl.resx +++ /dev/null @@ -1,173 +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 - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAA05JREFUOE+Vk2tI - k2EYhtMF/Qqi0haVaaP80jbnnIecNQ+bh5k5yxpump+Zh2EnSbODqalBcxrNkppJTd1Sl3kIKrTylMM0 - MyxL1LKWqQyMEjpQpnefKwLzVy88f16e++J+3vd+LBb8cxi8TP5KxhrhklXLfWm0hXafP34dGB963/zh - /Wjr9M+pJ1T754nBQsyRLd9wkFbbOW7pE6dRBCqKv0fps5H2IB/7dfUIPdsCmaoHwqR7RtczZDXV60jV - wjmAnZmdFgHJN25xSuNBNmQi7Xot8l5qIL7cjnDNE8SUvYD4VBsiztZN27kUKikAiyrLv5DNkmvniSsS - eL5g49FEIyan+nHXMIR9dc9AthgRWzWA3Wc6kFJ9HduOX5he5XT6KAVYZgasdk73ts9JmnHslCJ2WIY3 - 3wz4OmPEgNEE5esxRLWPgtQPQlrQDaUpGrkmARwj8set7JMFZoCdKEttqWZhbeU28Hvk0EwWYNQ0CaW2 - A2SPCTsajYjQ9iMs24CMES+kjPHgmnMEa7l5p8yADWT2CHtXOVhRWngm6BB0qBInLjZB2vcJIQYTAmuG - IS56hpDjBuRN+CF6iI1Nl/zgKChrMgNsYlN/uElugyVvAjv/OTzL+sG/MQx+zVvwda8gLOqD6HQ3BPKH - COhdB+dGa1ir3OHgUzViBtAlKWNMUgVuZD2YUj2YkTqwZKVwjqkAL6UJ/uldECS1w0PagPXFMrDO7QVn - jxoMbskfB2xVEeFWj00CPThherj37YR4MA7y1ydBVpfAV94Cr6g28KJbwU9sxtaEeniSNVjDVGT9duCQ - EUS43QaxpQLrykVY3CwGrzsBW3oTETJwAJE31fBNNkCY2ozwC72I1vfDJ6Htk5X9EZEZQP3nYlt28VXC - ow6EpBAWaiZod9zB6AiHy9N4cJ/GgPtyO/XA5Yi4RiXycCdsXQuyKR39b5AoGpPB0TUQHrWwleVihU4I - u8Yw2Dz0hU1HAFy6EsFPq4T3/nY4h1ZpKbHrnCTOZpuCODFcrhQ7eNVi6TERrDWBoN/ngaPNhb/yPoJy - W6ftvdUFf8SL/l3C2VFos/Gkb0wPXr31aCndP/4dsUfxhfAqfczgnFdYE6nBs7bnLdI80n9e/AKxCsOV - gSO8kwAAAABJRU5ErkJggg== - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAg1JREFUOE+tk+9L - U1EYx/fXFPQierHeDXphtZmFUBLcjNYLLcyiH26lkIbZFMfd1cwNXS0N07iL5na31tyVkshl5Cimc7AN - 8dZWLdLSpTbb+nbvCVYnrAg88Hlznuf5POccnqNSbcR64F+GV8hiaHAeNx0Z2KxpcBYJraYkGuqjBKNh - Goa6qSKHK+0o9vZ6sxgVAXPHPP62/I8i2FrmgplNYMv2kp+CYdfiPwWruTwE8QU273ZCV2qiBTy/gNHg - +idYWytA4dPnL7gXmMSmXTzU6hpa4LjxDvd9OTSZUsUbFArf8DVfwIePqwTp7SKGPE+J4NTZcVpgs6bg - dq/A0DSLaDyN8NQcxsMJPAzNYHgkTOB9EzByPwTHa8doQScnwelcgtkmgamdRNnRx9AcDGDbXjcp+BVN - pQB9lUgL2ttmcXtwAb32N+iySrBwSbS2x3CpJYJz5ycIJ888wbETY9BXi2D0flpwuTmOvv4MurolsB0J - qEur1kXpzBzx4wAj0ILGizH02NNgLUlS+CqVQV5+QIXsSo7A9gVJbD/jwb4KFy2ovxDF1WtzuNI2Q5KU - wopDAoKhGF6/XyIM+KZJTCnWlTtpgUEeU7Mljsbml38U9HsiJKYt51Gy585vAnnGjQ3PcbouRJLuep/B - 1D0CziHKBAns9QCJ7dAOQLPzFi2Qp0el07aQzf9hIz6y6juAficIctTi+AAAAABJRU5ErkJggg== - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAiFJREFUOE+lk/9P - EmEcx+tPdLVaqx9arbH1Rbf8ha10Za3N1dJNB6sEhkFcXid+IcRSQjlJhJqAfJETIowvhzlLZjV4znfP - c4xDg7a2bnvfPXf7vF/vz/N8dicBnPiviwGa4ld3urhApWr3lzHuK8CyuI1nbz5jjPPAxLkguBZgdQjf - l7zevqZHM7MPjhW5FP1SQ0pWkGQqK1gJxzAyFYaYKuInLVrLyrDwc4okpW+q3bPb35KNc1k8tTnBBQuQ - 9oC4DCR2AU+0BGFyWtIAnZITNH2jSGCxC/hIjemvQHkf2DkAkhRmsgl1DfB8qai2vVlpiK0ZIF5SYH0x - geX0HuQfwC8C7CuAN16CwWBMagAzPaxNmVAjwUaJIFYgiFJFtusQnK9hn/Ehla+ARYakAgwmGwmHw90a - 4Ml8jiY3TO+zNYhbNQQyNbyaFcHzAvS378I8zoHjXmLYYEFkff3GsSmMurYQo8mBTB1+qSHeHUQ+l4fu - ei9EiaBn1E+3UseVhwvU2xq9OoUhZwprOdIyT3qQ/5THJV033iUOaEcEV4d8EDOHuPhgvh0wOBGn6UQt - ZFpdXoR+4DHM0yH6rqhiyQxwfsDdDrhvj2iFTUPreaglO8QKzvbPVtq20G/9cATQMPwplnymb6Z66tZU - VxtAPxbcdYa+dTQyUKfkY1PoNQZO94z4q9eGfdA98uLy4Fv1sC7cc+PcHVfH5I4/09HW/nX9G9TaBKNr - RrciAAAAAElFTkSuQmCC - - - \ No newline at end of file diff --git a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/TopLogoControl.Designer.cs b/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/TopLogoControl.Designer.cs deleted file mode 100644 index e43adea9..00000000 --- a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/TopLogoControl.Designer.cs +++ /dev/null @@ -1,115 +0,0 @@ -namespace WebsitePanel.Installer -{ - partial class TopLogoControl - { - private System.Windows.Forms.Panel pnlLogo; - private System.Windows.Forms.PictureBox imgLogo; - private System.Windows.Forms.Label lblVersion; - private LineBox line; - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - protected override void Dispose( bool disposing ) - { - if( disposing ) - { - if (components != null) - { - components.Dispose(); - } - } - base.Dispose( disposing ); - } - - #region 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(TopLogoControl)); - this.pnlLogo = new System.Windows.Forms.Panel(); - this.progressIcon = new WebsitePanel.Installer.Controls.ProgressIcon(); - this.lblVersion = new System.Windows.Forms.Label(); - this.imgLogo = new System.Windows.Forms.PictureBox(); - this.line = new WebsitePanel.Installer.LineBox(); - this.pnlLogo.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.imgLogo)).BeginInit(); - this.SuspendLayout(); - // - // pnlLogo - // - this.pnlLogo.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.pnlLogo.BackColor = System.Drawing.Color.White; - this.pnlLogo.Controls.Add(this.progressIcon); - this.pnlLogo.Controls.Add(this.lblVersion); - this.pnlLogo.Controls.Add(this.imgLogo); - this.pnlLogo.Location = new System.Drawing.Point(0, 0); - this.pnlLogo.Name = "pnlLogo"; - this.pnlLogo.Size = new System.Drawing.Size(496, 63); - this.pnlLogo.TabIndex = 2; - // - // progressIcon - // - this.progressIcon.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.progressIcon.Location = new System.Drawing.Point(452, 15); - this.progressIcon.Name = "progressIcon"; - this.progressIcon.Size = new System.Drawing.Size(30, 30); - this.progressIcon.TabIndex = 4; - this.progressIcon.Visible = false; - // - // lblVersion - // - this.lblVersion.Font = new System.Drawing.Font("Verdana", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); - this.lblVersion.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.lblVersion.Location = new System.Drawing.Point(317, 31); - this.lblVersion.Name = "lblVersion"; - this.lblVersion.Size = new System.Drawing.Size(42, 13); - this.lblVersion.TabIndex = 2; - this.lblVersion.Text = "v1.0"; - // - // imgLogo - // - this.imgLogo.Image = ((System.Drawing.Image)(resources.GetObject("imgLogo.Image"))); - this.imgLogo.Location = new System.Drawing.Point(13, 7); - this.imgLogo.Name = "imgLogo"; - this.imgLogo.Size = new System.Drawing.Size(303, 48); - this.imgLogo.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize; - this.imgLogo.TabIndex = 0; - this.imgLogo.TabStop = false; - // - // line - // - this.line.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.line.Location = new System.Drawing.Point(0, 61); - this.line.Name = "line"; - this.line.Size = new System.Drawing.Size(496, 2); - this.line.TabIndex = 3; - this.line.TabStop = false; - // - // TopLogoControl - // - this.BackColor = System.Drawing.Color.White; - this.Controls.Add(this.line); - this.Controls.Add(this.pnlLogo); - this.Name = "TopLogoControl"; - this.Size = new System.Drawing.Size(496, 64); - this.pnlLogo.ResumeLayout(false); - this.pnlLogo.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.imgLogo)).EndInit(); - this.ResumeLayout(false); - - } - #endregion - - private WebsitePanel.Installer.Controls.ProgressIcon progressIcon; - - - } -} - diff --git a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/TopLogoControl.cs b/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/TopLogoControl.cs deleted file mode 100644 index d1f65db9..00000000 --- a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/TopLogoControl.cs +++ /dev/null @@ -1,62 +0,0 @@ -// Copyright (c) 2011, Outercurve Foundation. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// - Redistributions of source code must retain the above copyright notice, this -// list of conditions and the following disclaimer. -// -// - Redistributions in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// - Neither the name of the Outercurve Foundation nor the names of its -// contributors may be used to endorse or promote products derived from this -// software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -using System.Windows.Forms; -using System.Reflection; - -namespace WebsitePanel.Installer -{ - /// - /// Top logo - /// - internal partial class TopLogoControl : UserControl - { - /// - /// Initializes a new instance of the TopLogoControl class. - /// - public TopLogoControl() - { - // This call is required by the Windows Form Designer. - InitializeComponent(); - lblVersion.Text = "v" + this.GetType().Assembly.GetName().Version.ToString(3); - } - - internal void ShowProgress() - { - progressIcon.Visible = true; - progressIcon.StartAnimation(); - } - - internal void HideProgress() - { - progressIcon.Visible = false; - progressIcon.StopAnimation(); - } - } -} - diff --git a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/TopLogoControl.resx b/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/TopLogoControl.resx deleted file mode 100644 index d8f29bf1..00000000 --- a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Controls/TopLogoControl.resx +++ /dev/null @@ -1,202 +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 - - - - - R0lGODlhLwEwAIcAAAAAAAEBAQICAgMDAwQEBAUFBQYGBgcHBwgICAkJCQoKCgsLCwwMDA0NDQ4ODg8P - DxAQEBERERISEhMTExQUFBUVFRYWFhcXFxgYGBkZGRoaGhsbGxwcHB0dHR4eHh8fHyAgICEhISIiIiMj - IyQkJCUlJSYmJicnJygoKCkpKSoqKisrKywsLC0tLS4uLi8vLzAwMDExMTIyMjMzMzQ0NDU1NTY2Njc3 - Nzg4ODk5OTo6Ojs7Ozw8PD09PT4+Pj8/P0BAQEFBQUJCQkNDQ0REREVFRUZGRkdHR0hISElJSUpKSktL - S0xMTE1NTU5OTk9PT1BQUFFRUVJSUlNTU1RUVFVVVVZWVldXV1hYWFlZWVpaWltbW1xcXF1dXV5eXl9f - X2BgYGFhYWJiYmNjY2RkZGVlZWZmZmdnZ2hoaGlpaWpqamtra2xsbG1tbW5ubm9vb3BwcHFxcXJycnNz - c3R0dHV1dXZ2dnd3d3h4eHl5eXp6ent7e3x8fH19fX5+fn9/f4CAgIGBgYKCgoODg4SEhIWFhYaGhoeH - h4iIiImJiYuLi4yMjI2NjY6Ojo+Pj5CQkJGRkZKSkpOTk5SUlJWVlZaWlpeXl5iYmJmZmZqampubm5yc - nJ2dnZ6enp+fn6CgoKGhoaKioqOjo6SkpKWlpaampqenp6ioqKmpqaqqqqurq6ysrK2tra6urq+vr7Cw - sLGxsbKysrOzs7S0tLW1tba2tre3t7i4uLm5ubq6uru7u7y8vL29vb6+vr+/v8DAwMHBwcLCwsPDw8TE - xMXFxcbGxsfHx8jIyMnJycrKysvLy8zMzM3Nzc7Ozs/Pz9DQ0NHR0dLS0tPT09TU1NXV1dbW1tfX19jY - 2NnZ2dra2tvb29zc3N3d3d7e3t/f3+Dg4OHh4eLi4uPj4+Tk5OXl5ebm5ufn5+jo6Onp6erq6uvr6+zs - 7O3t7e7u7u/v7/Dw8PHx8fLy8vPz8/T09PX19fb29vf39/j4+Pn5+fr6+vv7+/z8/P39/f7+/v///wAA - ACH/C05FVFNDQVBFMi4wAwEBAAAh+QQJAAD/ACwAAAAALwEwAAAI/wD/CRxIsKDBgwgTKlzIsKHDhxAj - SpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJsqXLlzBjypxJs6bNmzhz6tzJs6fPn0BT+htKtKjR - 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 - - - \ No newline at end of file diff --git a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Program.cs b/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Program.cs deleted file mode 100644 index 4843375d..00000000 --- a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Program.cs +++ /dev/null @@ -1,255 +0,0 @@ -// Copyright (c) 2011, Outercurve Foundation. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// - Redistributions of source code must retain the above copyright notice, this -// list of conditions and the following disclaimer. -// -// - Redistributions in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// - Neither the name of the Outercurve Foundation nor the names of its -// contributors may be used to endorse or promote products derived from this -// software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -using System; -using System.IO; -using System.Text; -using System.Threading; -using System.Diagnostics; -using System.Collections.Generic; -using System.Windows.Forms; - -using System.Security; -using System.Security.Permissions; - -using WebsitePanel.Installer.Common; -using WebsitePanel.Installer.Services; -using System.Xml; -using System.Runtime.Remoting.Lifetime; -using System.Security.Principal; -using WebsitePanel.Installer.Core; -using WebsitePanel.Installer.Configuration; -using System.Reflection; - -namespace WebsitePanel.Installer -{ - /// - /// Entry point class - /// - static class Program - { - public const string SetupFromXmlFileParam = "setupxml"; - - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - // - Utils.FixConfigurationSectionDefinition(); - - //check security permissions - if (!Utils.CheckSecurity()) - { - ShowSecurityError(); - return; - } - - //check administrator permissions - if (!Utils.IsAdministrator()) - { - ShowSecurityError(); - return; - } - - //check for running instance - if ( !Utils.IsNewInstance()) - { - UiUtils.ShowRunningInstance(); - return; - } - - Log.WriteApplicationStart(); - //AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(OnUnhandledException); - Application.ApplicationExit += new EventHandler(OnApplicationExit); - Application.ThreadException += new ThreadExceptionEventHandler(OnThreadException); - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - - //check OS version - Log.WriteInfo("{0} detected", Global.OSVersion); - - //check IIS version - if (Global.IISVersion.Major == 0) - Log.WriteError("IIS not found."); - else - Log.WriteInfo("IIS {0} detected", Global.IISVersion); - - ApplicationForm mainForm = new ApplicationForm(); - - if (!CheckCommandLineArgument("/nocheck")) - { - //Check for new versions - if (CheckForUpdate(mainForm)) - { - return; - } - } - // Load setup parameters from an XML file - LoadSetupXmlFile(); - //start application - mainForm.InitializeApplication(); - Application.Run(mainForm); - // - Utils.SaveMutex(); - } - - private static void LoadSetupXmlFile() - { - string file = GetCommandLineArgumentValue(SetupFromXmlFileParam); - if (!string.IsNullOrEmpty(file)) - { - if (FileUtils.FileExists(file)) - { - try - { - XmlDocument doc = new XmlDocument(); - doc.Load(file); - Global.SetupXmlDocument = doc; - } - catch (Exception ex) - { - Log.WriteError("I/O error", ex); - } - } - } - } - - /// - /// Application thread exception handler - /// - static void OnThreadException(object sender, ThreadExceptionEventArgs e) - { - Log.WriteError("Fatal error occured.", e.Exception); - string message = "A fatal error has occurred. We apologize for this inconvenience.\n" + - "Please contact Technical Support at support@websitepanel.net.\n\n" + - "Make sure you include a copy of the Installer.log file from the\n" + - "WebsitePanel Installer home directory."; - MessageBox.Show(message, "WebsitePanel Installer", MessageBoxButtons.OK, MessageBoxIcon.Error); - Application.Exit(); - } - - /// - /// Application exception handler - /// - static void OnUnhandledException(object sender, UnhandledExceptionEventArgs e) - { - Log.WriteError("Fatal error occured.", (Exception)e.ExceptionObject); - string message = "A fatal error has occurred. We apologize for this inconvenience.\n" + - "Please contact Technical Support at support@websitepanel.net.\n\n" + - "Make sure you include a copy of the Installer.log file from the\n" + - "WebsitePanel Installer home directory."; - MessageBox.Show(message, "WebsitePanel Installer", MessageBoxButtons.OK, MessageBoxIcon.Error); - Process.GetCurrentProcess().Kill(); - } - - private static void ShowSecurityError() - { - string message = "You do not have the appropriate permissions to perform this operation. Make sure you are running the application from the local disk and you have local system administrator privileges."; - MessageBox.Show(message, "WebsitePanel Installer", MessageBoxButtons.OK, MessageBoxIcon.Error); - } - - /// - /// Writes to log on application exit - /// - private static void OnApplicationExit(object sender, EventArgs e) - { - Log.WriteApplicationEnd(); - } - - /// - /// Check whether application is up-to-date - /// - private static bool CheckForUpdate(ApplicationForm mainForm) - { - if (!AppConfigManager.AppConfiguration.GetBooleanSetting(ConfigKeys.Web_AutoCheck)) - return false; - - string appName = mainForm.Text; - string fileName; - bool updateAvailable; - try - { - updateAvailable = mainForm.CheckForUpdate(out fileName); - } - catch (Exception ex) - { - Log.WriteError("Update error", ex); - mainForm.ShowServerError(); - return false; - } - - if (updateAvailable) - { - string message = string.Format("An updated version of {0} is available now.\nWould you like to download and install the latest version?", appName); - if (MessageBox.Show(message, appName, MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes) - { - return mainForm.StartUpdateProcess(fileName); - } - } - return false; - } - - /// - /// Check for existing command line argument - /// - private static bool CheckCommandLineArgument(string argName) - { - string[] args = Environment.GetCommandLineArgs(); - for (int i = 1; i < args.Length; i++) - { - string arg = args[i]; - if (string.Equals(arg, argName, StringComparison.InvariantCultureIgnoreCase)) - { - return true; - } - } - return false; - } - - /// - /// Check for existing command line argument - /// - private static string GetCommandLineArgumentValue(string argName) - { - string key = "/"+argName.ToLower()+":"; - string[] args = Environment.GetCommandLineArgs(); - for (int i = 1; i < args.Length; i++) - { - string arg = args[i].ToLower(); - if (arg.StartsWith(key)) - { - return arg.Substring(key.Length); - } - } - return null; - } - - } -} \ No newline at end of file diff --git a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Properties/AssemblyInfo.cs b/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Properties/AssemblyInfo.cs deleted file mode 100644 index 30bd80b6..00000000 --- a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,49 +0,0 @@ -// Copyright (c) 2011, Outercurve Foundation. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// - Redistributions of source code must retain the above copyright notice, this -// list of conditions and the following disclaimer. -// -// - Redistributions in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// - Neither the name of the Outercurve Foundation nor the names of its -// contributors may be used to endorse or promote products derived from this -// software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("WebsitePanel Installer")] -[assembly: AssemblyDescription("WebsitePanel Installer")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyProduct("WebsitePanel Installer")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("45D4837C-45BA-426A-B41C-BCD17AD97FCD")] \ No newline at end of file diff --git a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Properties/Resources.Designer.cs b/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Properties/Resources.Designer.cs deleted file mode 100644 index d051c368..00000000 --- a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Properties/Resources.Designer.cs +++ /dev/null @@ -1,147 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.1 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace WebsitePanel.Installer.Properties { - using System; - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("WebsitePanel.Installer.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - - internal static System.Drawing.Icon Computer16 { - get { - object obj = ResourceManager.GetObject("Computer16", resourceCulture); - return ((System.Drawing.Icon)(obj)); - } - } - - internal static System.Drawing.Icon Computer32 { - get { - object obj = ResourceManager.GetObject("Computer32", resourceCulture); - return ((System.Drawing.Icon)(obj)); - } - } - - internal static System.Drawing.Icon Folder16 { - get { - object obj = ResourceManager.GetObject("Folder16", resourceCulture); - return ((System.Drawing.Icon)(obj)); - } - } - - internal static System.Drawing.Icon Folder32 { - get { - object obj = ResourceManager.GetObject("Folder32", resourceCulture); - return ((System.Drawing.Icon)(obj)); - } - } - - internal static System.Drawing.Icon Network16 { - get { - object obj = ResourceManager.GetObject("Network16", resourceCulture); - return ((System.Drawing.Icon)(obj)); - } - } - - internal static System.Drawing.Icon Network32 { - get { - object obj = ResourceManager.GetObject("Network32", resourceCulture); - return ((System.Drawing.Icon)(obj)); - } - } - - internal static System.Drawing.Icon Service16 { - get { - object obj = ResourceManager.GetObject("Service16", resourceCulture); - return ((System.Drawing.Icon)(obj)); - } - } - - internal static System.Drawing.Icon Service32 { - get { - object obj = ResourceManager.GetObject("Service32", resourceCulture); - return ((System.Drawing.Icon)(obj)); - } - } - - internal static System.Drawing.Icon Tool16 { - get { - object obj = ResourceManager.GetObject("Tool16", resourceCulture); - return ((System.Drawing.Icon)(obj)); - } - } - - internal static System.Drawing.Icon Tool32 { - get { - object obj = ResourceManager.GetObject("Tool32", resourceCulture); - return ((System.Drawing.Icon)(obj)); - } - } - - internal static System.Drawing.Icon World16 { - get { - object obj = ResourceManager.GetObject("World16", resourceCulture); - return ((System.Drawing.Icon)(obj)); - } - } - - internal static System.Drawing.Icon World32 { - get { - object obj = ResourceManager.GetObject("World32", resourceCulture); - return ((System.Drawing.Icon)(obj)); - } - } - } -} diff --git a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Properties/Resources.resx b/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Properties/Resources.resx deleted file mode 100644 index 1e11f25c..00000000 --- a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Properties/Resources.resx +++ /dev/null @@ -1,157 +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 - - - - ..\Resources\Computer16.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\Computer32.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\Folder16.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\Folder32.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\Network16.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\Network32.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\Service16.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\Service32.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\Tool16.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\Tool32.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\World16.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\World32.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - \ No newline at end of file diff --git a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Resources/Computer16.ico b/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Resources/Computer16.ico deleted file mode 100644 index c897d0b1..00000000 Binary files a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Resources/Computer16.ico and /dev/null differ diff --git a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Resources/Computer32.ico b/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Resources/Computer32.ico deleted file mode 100644 index 3a748010..00000000 Binary files a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Resources/Computer32.ico and /dev/null differ diff --git a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Resources/Folder16.ico b/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Resources/Folder16.ico deleted file mode 100644 index 9a3997fe..00000000 Binary files a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Resources/Folder16.ico and /dev/null differ diff --git a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Resources/Folder32.ico b/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Resources/Folder32.ico deleted file mode 100644 index 74b3cfed..00000000 Binary files a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Resources/Folder32.ico and /dev/null differ diff --git a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Resources/Network16.ico b/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Resources/Network16.ico deleted file mode 100644 index cc3e55e4..00000000 Binary files a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Resources/Network16.ico and /dev/null differ diff --git a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Resources/Network32.ico b/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Resources/Network32.ico deleted file mode 100644 index 079bf865..00000000 Binary files a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Resources/Network32.ico and /dev/null differ diff --git a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Resources/Service16.ico b/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Resources/Service16.ico deleted file mode 100644 index 24450b83..00000000 Binary files a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Resources/Service16.ico and /dev/null differ diff --git a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Resources/Service32.ico b/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Resources/Service32.ico deleted file mode 100644 index 93487a27..00000000 Binary files a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Resources/Service32.ico and /dev/null differ diff --git a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Resources/Tool16.ico b/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Resources/Tool16.ico deleted file mode 100644 index fabc1ac5..00000000 Binary files a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Resources/Tool16.ico and /dev/null differ diff --git a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Resources/Tool32.ico b/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Resources/Tool32.ico deleted file mode 100644 index b1b76737..00000000 Binary files a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Resources/Tool32.ico and /dev/null differ diff --git a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Resources/WebSitePanel.ico b/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Resources/WebSitePanel.ico deleted file mode 100644 index 10fcb36c..00000000 Binary files a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Resources/WebSitePanel.ico and /dev/null differ diff --git a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Resources/World16.ico b/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Resources/World16.ico deleted file mode 100644 index 3809be96..00000000 Binary files a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Resources/World16.ico and /dev/null differ diff --git a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Resources/World32.ico b/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Resources/World32.ico deleted file mode 100644 index 7e774ed4..00000000 Binary files a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Resources/World32.ico and /dev/null differ diff --git a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Updater.exe b/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Updater.exe deleted file mode 100644 index 7e9327c6..00000000 Binary files a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/Updater.exe and /dev/null differ diff --git a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/WebsitePanel.Installer.csproj b/WebsitePanel.Installer/Sources/WebsitePanel.Installer/WebsitePanel.Installer.csproj deleted file mode 100644 index 2e547b11..00000000 --- a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/WebsitePanel.Installer.csproj +++ /dev/null @@ -1,297 +0,0 @@ - - - - Debug - AnyCPU - 9.0.30729 - 2.0 - {A358C6E2-F57D-4AB9-B13D-FD3048134143} - WinExe - Properties - WebsitePanel.Installer - WebsitePanel.Installer - websitepanel.ico - - - 3.5 - - - v4.0 - false - publish\ - true - Disk - false - Foreground - 7 - Days - false - false - true - 0 - 1.0.0.%2a - false - true - - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - AllRules.ruleset - false - - - none - true - bin\Release\ - TRACE - prompt - 4 - AllRules.ruleset - - - Always - - - - False - ..\..\Lib\Ionic.Zip.Reduced.dll - - - - - - - - - - - - - - - - VersionInfo.cs - - - Form - - - ApplicationForm.cs - - - - - Code - - - UserControl - - - Form - - - Loader.cs - - - - - UserControl - - - ComponentsControl.cs - - - UserControl - - - ComponentControl.cs - - - UserControl - - - UserControl - - - SettingsControl.cs - - - UserControl - - - ServiceControl.cs - - - UserControl - - - ServerControl.cs - - - Component - - - LineBox.cs - - - UserControl - - - ServersControl.cs - - - UserControl - - - TopLogoControl.cs - - - - - Designer - ApplicationForm.cs - - - ComponentsControl.cs - Designer - - - ComponentControl.cs - Designer - - - Designer - Loader.cs - - - SettingsControl.cs - Designer - - - ServiceControl.cs - Designer - - - ServerControl.cs - Designer - - - Designer - ServersControl.cs - - - Designer - TopLogoControl.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - True - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Designer - ProgressIcon.cs - - - - - - - - - - - - - False - .NET Framework 3.5 SP1 Client Profile - false - - - False - .NET Framework 3.5 SP1 - true - - - False - Windows Installer 3.1 - true - - - - - {0E4A3F5B-0BB1-4F63-863D-7B0182B378CF} - WebsitePanel.Installer.Core - - - - - - - - - COPY "$(ProjectDir)App.$(ConfigurationName).config" "$(ProjectDir)App.config" /Y - - - \ No newline at end of file diff --git a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/application.ico b/WebsitePanel.Installer/Sources/WebsitePanel.Installer/application.ico deleted file mode 100644 index 09b98f81..00000000 Binary files a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/application.ico and /dev/null differ diff --git a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/websitepanel.ico b/WebsitePanel.Installer/Sources/WebsitePanel.Installer/websitepanel.ico deleted file mode 100644 index 10fcb36c..00000000 Binary files a/WebsitePanel.Installer/Sources/WebsitePanel.Installer/websitepanel.ico and /dev/null differ