#At file:///D:/Work/MySQL/installer/ based on revid:mike.lischke@stripped
397 Mike Lischke 2011-03-31
- Product: introduced mutual-exclusive relation, to specify which product cannot be installed if another is already installed.
- FeatureTree + FeatureBox: UI handling for disabled products (those that cannot be installed because of mutual exclusion).
- Added full 5.1 catalog to the manifest. Renamed existing one to use "essentials".
- Features: fixed bug where the feature box did not get updated when the feature tree collapsed a node and as a result selected another node.
modified:
ManifestUpdater/Product.cs
ManifestUpdater/Program.cs
Setup/manifest-base.xml
Setup/my-template.ini
WexInstaller.Core/Product.cs
WexInstaller.Core/ProductManager.cs
WexInstaller/Controls/FeatureTreeView.cs
WexInstaller/Controls/ListViewWex.cs
WexInstaller/InstallWizard/Features.Designer.cs
WexInstaller/InstallWizard/Features.cs
WexInstaller/InstallWizard/Features.resx
WexInstaller/InstallWizard/InstallProgressPanel.cs
=== modified file 'ManifestUpdater/Product.cs'
=== modified file 'ManifestUpdater/Product.cs'
--- a/ManifestUpdater/Product.cs 2011-02-11 00:26:57 +0000
+++ b/ManifestUpdater/Product.cs 2011-03-31 13:58:44 +0000
@@ -24,7 +24,10 @@
[XmlAttribute("urlBaseDir")]
public string UrlBase { get; set; }
- public override string ToString()
+ [XmlAttribute("mutual-exclusive")]
+ public string MutualExclusive;
+
+ public override string ToString()
{
return Name;
}
=== modified file 'ManifestUpdater/Program.cs'
--- a/ManifestUpdater/Program.cs 2011-03-30 15:08:55 +0000
+++ b/ManifestUpdater/Program.cs 2011-03-31 13:58:44 +0000
@@ -55,7 +55,11 @@
// first find the latest MSI in our cache
string msiFile = FindLatestVersion(package.FileName);
if (String.IsNullOrEmpty(msiFile))
+ {
+ Console.WriteLine(String.Format("Warning: No file found matching {0}",
+ package.FileName));
return;
+ }
UpdateProductInfo(product, msiFile);
UpdatePackageInfo(package, msiFile);
=== modified file 'Setup/manifest-base.xml'
--- a/Setup/manifest-base.xml 2011-03-30 15:08:55 +0000
+++ b/Setup/manifest-base.xml 2011-03-31 13:58:44 +0000
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
-<ProductManifest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" version="3" format="1">
+<ProductManifest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" version="4" format="1">
<UpdateURL></UpdateURL>
<UpdateVersion></UpdateVersion>
<UpdateHash></UpdateHash>
@@ -40,34 +40,70 @@
<CatalogProduct productId="mysql-installer-document-bundle-1.0.0.0" setupTypeFlags="5"/>
</CatalogProducts>
</ProductCatalog>
- <ProductCatalog id="mysql-5.1-win32-gpl" name="MySQL 5.1" description="MySQL 5.1 Community Edition" commercial="false">
- <SetupTypes>
- <SetupType flag="1" name="Developer Default" short-description="Installs all products needed for MySQL development purposes." long-description="Installs the MySQL Server and the tools required for MySQL application development. This is useful if you intend to develop applications for an existing server. This Setup Type includes: * MySQL Server * MySQL Workbench The GUI application to develop for and manage the server. * MySQL Visual Studio Plugin To work with the MySQL Server from VS. * MySQL Connectors Connector/Net, Java, C/C++, OBDC and others. * Examples and tutorials To help you get started with your development. * Documentation Allows you to read the documentation offline." />
- <SetupType flag="2" name="Server only" short-description="Installs only the MySQL Server product." long-description="Installs only the MySQL Server. This type should be used where you want to deploy a MySQL Server, but will not be developing MySQL applications."/>
- <SetupType flag="4" name="Client only" short-description="Installs only the MySQL Client products, without a server." long-description="Installs the tools required for MySQL application development, but does not include the MySQL Server itself. This is useful if you intend to develop applications for an existing server. This Setup Type includes: * MySQL Workbench The GUI application to develop for and manage the server. * MySQL Visual Studio Plugin To work with the MySQL Server from VS. * MySQL Connectors Connector/Net, Java, C/C++, OBDC and others. * Examples and tutorials To help you get started with your development. * Documentation Allows you to read the documentation offline." />
- <SetupType flag="64" name="Full" short-description="Installs all included MySQL products and features." long-description="Installs all of the products available in this catalog including MySQL Server, MySQL Workbench, MySQL Connectors, documentation, samples and examples and much more."/>
- <SetupType flag="128" name="Custom" short-description="Manually select the products that should be installed on the system." long-description="Allows you to select exactly which products you would like to install. This also allows to pick other server versions and architectures (depending on your OS)."/>
- </SetupTypes>
- <CatalogProducts>
- <CatalogProduct productId="mysql-server-5.1-win32-gpl" setupTypeFlags="3" />
- <CatalogProduct productId="workbench-win32" setupTypeFlags="5" />
- <CatalogProduct productId="connector-odbc-win32" setupTypeFlags="5" />
- <CatalogProduct productId="connector-c-win32" setupTypeFlags="5" />
- <CatalogProduct productId="connector-cpp-win32" setupTypeFlags="5" />
- <CatalogProduct productId="examples-5.1" setupTypeFlags="5"/>
- <CatalogProduct productId="mysql-installer-document-bundle-1.0.0.0" setupTypeFlags="5"/>
- </CatalogProducts>
- </ProductCatalog>
- <ProductCatalog id="mysql-5.1-winx64-gpl" name="MySQL 5.1" description="MySQL 5.1 Community Edition" commercial="false">
- <SetupTypes>
- <SetupType flag="1" name="Developer Default" short-description="Installs all products needed for MySQL development purposes." long-description="Installs the MySQL Server and the tools required for MySQL application development. This is useful if you intend to develop applications for an existing server. This Setup Type includes: * MySQL Server * MySQL Workbench The GUI application to develop for and manage the server. * MySQL Visual Studio Plugin To work with the MySQL Server from VS. * MySQL Connectors Connector/Net, Java, C/C++, OBDC and others. * Examples and tutorials To help you get started with your development. * Documentation Allows you to read the documentation offline." />
- <SetupType flag="2" name="Server only" short-description="Installs only the MySQL Server product." long-description="Installs only the MySQL Server. This type should be used where you want to deploy a MySQL Server, but will not be developing MySQL applications."/>
- <SetupType flag="4" name="Client only" short-description="Installs only the MySQL Client products, without a server." long-description="Installs the tools required for MySQL application development, but does not include the MySQL Server itself. This is useful if you intend to develop applications for an existing server. This Setup Type includes: * MySQL Workbench The GUI application to develop for and manage the server. * MySQL Visual Studio Plugin To work with the MySQL Server from VS. * MySQL Connectors Connector/Net, Java, C/C++, OBDC and others. * Examples and tutorials To help you get started with your development. * Documentation Allows you to read the documentation offline." />
- <SetupType flag="64" name="Full" short-description="Installs all included MySQL products and features." long-description="Installs all of the products available in this catalog including MySQL Server, MySQL Workbench, MySQL Connectors, documentation, samples and examples and much more."/>
- <SetupType flag="128" name="Custom" short-description="Manually select the products that should be installed on the system." long-description="Allows you to select exactly which products you would like to install. This also allows to pick other server versions and architectures (depending on your OS)."/>
- </SetupTypes>
- <CatalogProducts>
- <CatalogProduct productId="mysql-server-5.1-winx64-gpl" setupTypeFlags="3" />
+ <ProductCatalog id="mysql-5.1-win32-gpl-essentials" name="MySQL 5.1 essentials" description="MySQL 5.1 Community Edition (essentials)" commercial="false">
+ <SetupTypes>
+ <SetupType flag="1" name="Developer Default" short-description="Installs all products needed for MySQL development purposes." long-description="Installs the MySQL Server and the tools required for MySQL application development. This is useful if you intend to develop applications for an existing server. This Setup Type includes: * MySQL Server * MySQL Workbench The GUI application to develop for and manage the server. * MySQL Visual Studio Plugin To work with the MySQL Server from VS. * MySQL Connectors Connector/Net, Java, C/C++, OBDC and others. * Examples and tutorials To help you get started with your development. * Documentation Allows you to read the documentation offline." />
+ <SetupType flag="2" name="Server only" short-description="Installs only the MySQL Server product." long-description="Installs only the MySQL Server. This type should be used where you want to deploy a MySQL Server, but will not be developing MySQL applications."/>
+ <SetupType flag="4" name="Client only" short-description="Installs only the MySQL Client products, without a server." long-description="Installs the tools required for MySQL application development, but does not include the MySQL Server itself. This is useful if you intend to develop applications for an existing server. This Setup Type includes: * MySQL Workbench The GUI application to develop for and manage the server. * MySQL Visual Studio Plugin To work with the MySQL Server from VS. * MySQL Connectors Connector/Net, Java, C/C++, OBDC and others. * Examples and tutorials To help you get started with your development. * Documentation Allows you to read the documentation offline." />
+ <SetupType flag="64" name="Full" short-description="Installs all included MySQL products and features." long-description="Installs all of the products available in this catalog including MySQL Server, MySQL Workbench, MySQL Connectors, documentation, samples and examples and much more."/>
+ <SetupType flag="128" name="Custom" short-description="Manually select the products that should be installed on the system." long-description="Allows you to select exactly which products you would like to install. This also allows to pick other server versions and architectures (depending on your OS)."/>
+ </SetupTypes>
+ <CatalogProducts>
+ <CatalogProduct productId="mysql-server-5.1-win32-gpl-essentials" setupTypeFlags="3" />
+ <CatalogProduct productId="workbench-win32" setupTypeFlags="5" />
+ <CatalogProduct productId="connector-odbc-win32" setupTypeFlags="5" />
+ <CatalogProduct productId="connector-c-win32" setupTypeFlags="5" />
+ <CatalogProduct productId="connector-cpp-win32" setupTypeFlags="5" />
+ <CatalogProduct productId="examples-5.1" setupTypeFlags="5"/>
+ <CatalogProduct productId="mysql-installer-document-bundle-1.0.0.0" setupTypeFlags="5"/>
+ </CatalogProducts>
+ </ProductCatalog>
+ <ProductCatalog id="mysql-5.1-winx64-gpl-essentials" name="MySQL 5.1 essentials" description="MySQL 5.1 Community Edition (essentials)" commercial="false">
+ <SetupTypes>
+ <SetupType flag="1" name="Developer Default" short-description="Installs all products needed for MySQL development purposes." long-description="Installs the MySQL Server and the tools required for MySQL application development. This is useful if you intend to develop applications for an existing server. This Setup Type includes: * MySQL Server * MySQL Workbench The GUI application to develop for and manage the server. * MySQL Visual Studio Plugin To work with the MySQL Server from VS. * MySQL Connectors Connector/Net, Java, C/C++, OBDC and others. * Examples and tutorials To help you get started with your development. * Documentation Allows you to read the documentation offline." />
+ <SetupType flag="2" name="Server only" short-description="Installs only the MySQL Server product." long-description="Installs only the MySQL Server. This type should be used where you want to deploy a MySQL Server, but will not be developing MySQL applications."/>
+ <SetupType flag="4" name="Client only" short-description="Installs only the MySQL Client products, without a server." long-description="Installs the tools required for MySQL application development, but does not include the MySQL Server itself. This is useful if you intend to develop applications for an existing server. This Setup Type includes: * MySQL Workbench The GUI application to develop for and manage the server. * MySQL Visual Studio Plugin To work with the MySQL Server from VS. * MySQL Connectors Connector/Net, Java, C/C++, OBDC and others. * Examples and tutorials To help you get started with your development. * Documentation Allows you to read the documentation offline." />
+ <SetupType flag="64" name="Full" short-description="Installs all included MySQL products and features." long-description="Installs all of the products available in this catalog including MySQL Server, MySQL Workbench, MySQL Connectors, documentation, samples and examples and much more."/>
+ <SetupType flag="128" name="Custom" short-description="Manually select the products that should be installed on the system." long-description="Allows you to select exactly which products you would like to install. This also allows to pick other server versions and architectures (depending on your OS)."/>
+ </SetupTypes>
+ <CatalogProducts>
+ <CatalogProduct productId="mysql-server-5.1-winx64-gpl-essentials" setupTypeFlags="3" />
+ <CatalogProduct productId="workbench-win32" setupTypeFlags="5" />
+ <CatalogProduct productId="connector-odbc-winx64" setupTypeFlags="5" />
+ <CatalogProduct productId="connector-c-winx64" setupTypeFlags="5" />
+ <CatalogProduct productId="connector-cpp-winx64" setupTypeFlags="5" />
+ <CatalogProduct productId="examples-5.1" setupTypeFlags="5"/>
+ <CatalogProduct productId="mysql-installer-document-bundle-1.0.0.0" setupTypeFlags="5"/>
+ </CatalogProducts>
+ </ProductCatalog>
+ <ProductCatalog id="mysql-5.1-win32-gpl-full" name="MySQL 5.1 full" description="MySQL 5.1 Community Edition (full)" commercial="false">
+ <SetupTypes>
+ <SetupType flag="1" name="Developer Default" short-description="Installs all products needed for MySQL development purposes." long-description="Installs the MySQL Server and the tools required for MySQL application development. This is useful if you intend to develop applications for an existing server. This Setup Type includes: * MySQL Server * MySQL Workbench The GUI application to develop for and manage the server. * MySQL Visual Studio Plugin To work with the MySQL Server from VS. * MySQL Connectors Connector/Net, Java, C/C++, OBDC and others. * Examples and tutorials To help you get started with your development. * Documentation Allows you to read the documentation offline." />
+ <SetupType flag="2" name="Server only" short-description="Installs only the MySQL Server product." long-description="Installs only the MySQL Server. This type should be used where you want to deploy a MySQL Server, but will not be developing MySQL applications."/>
+ <SetupType flag="4" name="Client only" short-description="Installs only the MySQL Client products, without a server." long-description="Installs the tools required for MySQL application development, but does not include the MySQL Server itself. This is useful if you intend to develop applications for an existing server. This Setup Type includes: * MySQL Workbench The GUI application to develop for and manage the server. * MySQL Visual Studio Plugin To work with the MySQL Server from VS. * MySQL Connectors Connector/Net, Java, C/C++, OBDC and others. * Examples and tutorials To help you get started with your development. * Documentation Allows you to read the documentation offline." />
+ <SetupType flag="64" name="Full" short-description="Installs all included MySQL products and features." long-description="Installs all of the products available in this catalog including MySQL Server, MySQL Workbench, MySQL Connectors, documentation, samples and examples and much more."/>
+ <SetupType flag="128" name="Custom" short-description="Manually select the products that should be installed on the system." long-description="Allows you to select exactly which products you would like to install. This also allows to pick other server versions and architectures (depending on your OS)."/>
+ </SetupTypes>
+ <CatalogProducts>
+ <CatalogProduct productId="mysql-server-5.1-win32-gpl-full" setupTypeFlags="3" />
+ <CatalogProduct productId="workbench-win32" setupTypeFlags="5" />
+ <CatalogProduct productId="connector-odbc-win32" setupTypeFlags="5" />
+ <CatalogProduct productId="connector-c-win32" setupTypeFlags="5" />
+ <CatalogProduct productId="connector-cpp-win32" setupTypeFlags="5" />
+ <CatalogProduct productId="examples-5.1" setupTypeFlags="5"/>
+ <CatalogProduct productId="mysql-installer-document-bundle-1.0.0.0" setupTypeFlags="5"/>
+ </CatalogProducts>
+ </ProductCatalog>
+ <ProductCatalog id="mysql-5.1-winx64-gpl-full" name="MySQL 5.1 full" description="MySQL 5.1 Community Edition (full)" commercial="false">
+ <SetupTypes>
+ <SetupType flag="1" name="Developer Default" short-description="Installs all products needed for MySQL development purposes." long-description="Installs the MySQL Server and the tools required for MySQL application development. This is useful if you intend to develop applications for an existing server. This Setup Type includes: * MySQL Server * MySQL Workbench The GUI application to develop for and manage the server. * MySQL Visual Studio Plugin To work with the MySQL Server from VS. * MySQL Connectors Connector/Net, Java, C/C++, OBDC and others. * Examples and tutorials To help you get started with your development. * Documentation Allows you to read the documentation offline." />
+ <SetupType flag="2" name="Server only" short-description="Installs only the MySQL Server product." long-description="Installs only the MySQL Server. This type should be used where you want to deploy a MySQL Server, but will not be developing MySQL applications."/>
+ <SetupType flag="4" name="Client only" short-description="Installs only the MySQL Client products, without a server." long-description="Installs the tools required for MySQL application development, but does not include the MySQL Server itself. This is useful if you intend to develop applications for an existing server. This Setup Type includes: * MySQL Workbench The GUI application to develop for and manage the server. * MySQL Visual Studio Plugin To work with the MySQL Server from VS. * MySQL Connectors Connector/Net, Java, C/C++, OBDC and others. * Examples and tutorials To help you get started with your development. * Documentation Allows you to read the documentation offline." />
+ <SetupType flag="64" name="Full" short-description="Installs all included MySQL products and features." long-description="Installs all of the products available in this catalog including MySQL Server, MySQL Workbench, MySQL Connectors, documentation, samples and examples and much more."/>
+ <SetupType flag="128" name="Custom" short-description="Manually select the products that should be installed on the system." long-description="Allows you to select exactly which products you would like to install. This also allows to pick other server versions and architectures (depending on your OS)."/>
+ </SetupTypes>
+ <CatalogProducts>
+ <CatalogProduct productId="mysql-server-5.1-winx64-gpl-full" setupTypeFlags="3" />
<CatalogProduct productId="workbench-win32" setupTypeFlags="5" />
<CatalogProduct productId="connector-odbc-winx64" setupTypeFlags="5" />
<CatalogProduct productId="connector-c-winx64" setupTypeFlags="5" />
@@ -90,18 +126,30 @@
<Package type="MSI" arch="X64" filename="mysql-5.5.8-winx64.msi" id="" thisVersion="" />
</Packages>
</Product>
- <Product name="mysql-server-5.1-win32-gpl" title="MySQL Server" description="The core MySQL database server" upgradeId="" urlBaseDir="mysql-5.1">
+ <Product name="mysql-server-5.1-win32-gpl-full" title="MySQL Server (full)" description="The core MySQL database server" upgradeId="" urlBaseDir="mysql-5.1" mutual-exclusive="mysql-server-5.1-win32-gpl-essentials" >
<Packages>
<Package type="MSI" arch="X86" filename="mysql-5.1.54-win32.msi" id="" thisVersion="">
</Package>
</Packages>
</Product>
- <Product name="mysql-server-5.1-winx64-gpl" title="MySQL Server" description="The core MySQL database server" upgradeId="" urlBaseDir="mysql-5.1">
+ <Product name="mysql-server-5.1-winx64-gpl-full" title="MySQL Server (full)" description="The core MySQL database server" upgradeId="" urlBaseDir="mysql-5.1" mutual-exclusive="mysql-server-5.1-winx64-gpl-essentials" >
<Packages>
<Package type="MSI" arch="X64" filename="mysql-5.1.54-winx64.msi" id="" thisVersion="">
</Package>
</Packages>
</Product>
+ <Product name="mysql-server-5.1-win32-gpl-essentials" title="MySQL Server (essentials)" description="The core MySQL database server" upgradeId="" urlBaseDir="mysql-5.1" mutual-exclusive="mysql-server-5.1-win32-gpl-full" >
+ <Packages>
+ <Package type="MSI" arch="X86" filename="mysql-essential-5.1.54-win32.msi" id="" thisVersion="">
+ </Package>
+ </Packages>
+ </Product>
+ <Product name="mysql-server-5.1-winx64-gpl-essentials" title="MySQL Server (essentials)" description="The core MySQL database server" upgradeId="" urlBaseDir="mysql-5.1" mutual-exclusive="mysql-server-5.1-winx64-gpl-full" >
+ <Packages>
+ <Package type="MSI" arch="X64" filename="mysql-essential-5.1.54-winx64.msi" id="" thisVersion="">
+ </Package>
+ </Packages>
+ </Product>
</ProductCategory>
<ProductCategory name="Application" title="Applications" description="Applications that work with MySQL">
<Product name="workbench-win32" title="MySQL Workbench" description="The MySQL GUI Developer tool" upgradeId="" urlBaseDir="MySQLGUITools">
=== modified file 'Setup/my-template.ini'
--- a/Setup/my-template.ini 2010-11-17 17:18:03 +0000
+++ b/Setup/my-template.ini 2011-03-31 13:58:44 +0000
@@ -6,7 +6,7 @@
##
## Replaceable things must be like:
##
-## # [VARIABLE_NAME]="Forumla"
+## # [VARIABLE_NAME]="Formula"
## parameter=default value
##
## For example:
@@ -29,7 +29,7 @@
## # [MAX_CONNECTIONS]="max_connections:rnd(max(100,max_connections),1000)"
## max_connections=
##
-## ( Note - Unitalized variables have a value of 0. )
+## ( Note - Uninitialized variables have a value of 0. )
##
## Finally, there is a special directive named [STATE_CHANGE] that allows for a function to be exectuted at that
## point during template processing.
@@ -139,7 +139,7 @@
# socket=mysql
# The TCP/IP Port the MySQL Server will listen on
-# [SERVER_PORT]=""
+# [SERVER_PORT]="port"
port=3306
# Path to installation directory. All paths are usually resolved relative to this.
=== modified file 'WexInstaller.Core/Product.cs'
--- a/WexInstaller.Core/Product.cs 2011-03-28 11:56:39 +0000
+++ b/WexInstaller.Core/Product.cs 2011-03-31 13:58:44 +0000
@@ -125,6 +125,21 @@
ProductSubPath = ProductSubPath.Remove(ProductSubPath.LastIndexOf('.')) + " CE";
ProductSubPath += "\\";
}
+
+ // Dereference mutual exclusions.
+ // Note: currently only 1:1 exclusions are supported, however the implementation can easily
+ // be extended to support 1:n exclusions if needed (e.g. comma separated product ids in xml
+ // and a list of products in MutualExcludedProduct(s) here).
+ MutualExcludedProduct = null;
+ foreach (Product product in ProductManager.Products)
+ if (!string.IsNullOrEmpty(MutualExclusive) && (MutualExclusive == product.Name))
+ {
+ MutualExcludedProduct = product;
+ if (Installed && product.Installed)
+ Logger.LogWarning(string.Format("Found products installed which should never be installed " +
+ "together:\n\t{0}\n\t{1}", TitleWithVersionAndArchitecture, product.TitleWithVersionAndArchitecture));
+ break;
+ }
}
}
@@ -204,6 +219,12 @@
[XmlAttribute("urlBaseDir")]
public string UrlBase { get; set; }
+ [XmlAttribute("mutual-exclusive")]
+ public string MutualExclusive { get; set; }
+
+ [XmlIgnore]
+ public Product MutualExcludedProduct { get; set; }
+
[XmlIgnore]
public bool ProposedInstalled
{
=== modified file 'WexInstaller.Core/ProductManager.cs'
--- a/WexInstaller.Core/ProductManager.cs 2011-03-29 16:10:30 +0000
+++ b/WexInstaller.Core/ProductManager.cs 2011-03-31 13:58:44 +0000
@@ -237,6 +237,8 @@
return null;
}
+ #region Product and manifest download handling
+
public static void CancelDownload()
{
Logger.LogTrace("ProductManager.CancelDownload().");
@@ -359,5 +361,7 @@
return wc.IsBusy;
}
+ #endregion
+
}
}
=== modified file 'WexInstaller/Controls/FeatureTreeView.cs'
--- a/WexInstaller/Controls/FeatureTreeView.cs 2011-03-21 16:38:32 +0000
+++ b/WexInstaller/Controls/FeatureTreeView.cs 2011-03-31 13:58:44 +0000
@@ -3,6 +3,7 @@
using System.Drawing;
using System.Windows.Forms;
using System.Windows.Forms.VisualStyles;
+using System.Drawing.Imaging;
using WexInstaller.Core;
using WexInstaller.Properties;
@@ -13,8 +14,10 @@
{
#region Members and constants
- private SolidBrush grayBrush { get; set; }
- private Size CBGlyphSize { get; set; }
+ private SolidBrush grayBrush;
+ private Size CBGlyphSize;
+ private ColorMatrix grayScaleMatrix;
+
private Size PlusMinusSize { get; set; }
private int CurrentWidth { get; set; }
@@ -38,6 +41,15 @@
: base()
{
grayBrush = new SolidBrush(Color.WhiteSmoke);
+ grayScaleMatrix = new ColorMatrix(
+ new float[][]
+ {
+ new float[] {.3f, .3f, .3f, 0, 0},
+ new float[] {.59f, .59f, .59f, 0, 0},
+ new float[] {.11f, .11f, .11f, 0, 0},
+ new float[] {0, 0, 0, 1, 0},
+ new float[] {0, 0, 0, 0, 1}
+ });
DrawMode = TreeViewDrawMode.OwnerDrawAll;
SetStyle(ControlStyles.DoubleBuffer, true);
@@ -97,12 +109,16 @@
{
SwitchStateForProduct(child.Tag as Product, forceInstallation);
if (node.IsExpanded)
+ {
InvalidateCheckbox(child);
+ InvalidateExclusions(child);
+ }
}
}
else
{
SwitchStateForProduct(node.Tag as Product, false);
+ InvalidateExclusions(node);
// If the node has a parent then update its check state too.
if (node.Parent != null)
@@ -118,6 +134,11 @@
/// </summary>
private void SwitchStateForProduct(Product p, bool forceInstall)
{
+ // No change if another product is already installed or proposed to be installed
+ // with which this product cannot be installed at the same time.
+ if (p.MutualExcludedProduct != null && (p.MutualExcludedProduct.Installed || p.MutualExcludedProduct.ProposedInstalled))
+ return;
+
List<ProductFeature> productFeatures = p.GetAllProductFeatures();
bool doInstall;
@@ -219,6 +240,15 @@
else
state = CheckBoxState.UncheckedNormal;
+ // Return a disabled unchecked box if the other product in a mutual exclusion is already installed
+ // or going to be installed indicating that this product cannot be installed anymore.
+ if (state == CheckBoxState.UncheckedNormal)
+ {
+ Product exclusion = p.MutualExcludedProduct;
+ if (exclusion != null && (exclusion.Installed || exclusion.ProposedInstalled))
+ state = CheckBoxState.UncheckedDisabled;
+ }
+
return state;
}
@@ -266,15 +296,41 @@
return null;
}
- private void InvalidateCheckbox(TreeNode child)
+ private void InvalidateCheckbox(TreeNode node)
{
- int offset = GetOffset(child);
+ int offset = GetOffset(node);
Rectangle checkBoxRectangle = new Rectangle();
- checkBoxRectangle.Location = new Point(offset + 10, child.Bounds.Top + ((ItemHeight - CBGlyphSize.Height) / 2));
+ checkBoxRectangle.Location = new Point(offset + 10, node.Bounds.Top + ((ItemHeight - CBGlyphSize.Height) / 2));
checkBoxRectangle.Size = CBGlyphSize;
Invalidate(checkBoxRectangle);
}
+ /// <summary>
+ /// Causes nodes to redraw if the represent a product which cannot be installed with the given node.
+ /// Usually called when the check state of the given node changes.
+ /// </summary>
+ private void InvalidateExclusions(TreeNode node)
+ {
+ Product product = node.Tag as Product;
+ if (product.MutualExcludedProduct != null)
+ {
+ TreeNode current = Nodes[0];
+ while (current != null)
+ {
+ if (current.Tag == product.MutualExcludedProduct)
+ {
+ // Including everything left to the node text too.
+ Rectangle bounds = current.Bounds;
+ bounds.Width += bounds.Left;
+ bounds.X = 0;
+ Invalidate(bounds);
+ break;
+ }
+ current = current.NextVisibleNode;
+ }
+ }
+ }
+
#endregion
#region Drawing
@@ -291,23 +347,25 @@
Rectangle r = e.Bounds;
r.Offset(GetOffset(e.Node), 0);
- DrawCheckbox(e, r);
+ CheckBoxState state = DrawCheckbox(e, r);
if ((e.Node.Tag as ProductCategory) != null && ((e.Node.Tag as ProductCategory).Products.Count > 0))
DrawPlusMinus(e, r);
- DrawState(e, r);
- DrawText(e, r);
+ DrawState(e, r, state == CheckBoxState.UncheckedDisabled);
+ DrawText(e, r, state == CheckBoxState.UncheckedDisabled);
}
- private void DrawCheckbox(DrawTreeNodeEventArgs e, Rectangle r)
+ private CheckBoxState DrawCheckbox(DrawTreeNodeEventArgs e, Rectangle r)
{
CheckBoxState state = GetNodeCheckboxState(e.Node);
if (CBGlyphSize.IsEmpty)
CBGlyphSize = CheckBoxRenderer.GetGlyphSize(e.Graphics, state);
- int offset = (ItemHeight - CBGlyphSize.Height) / 2;
- Point location = new Point(r.Left+10, r.Top + offset);
+ int top = r.Top + (int)Math.Ceiling((ItemHeight - CBGlyphSize.Height) / 2f);
+ Point location = new Point(r.Left+10, top);
CheckBoxRenderer.DrawCheckBox(e.Graphics, location, state);
+
+ return state;
}
private void DrawPlusMinus(DrawTreeNodeEventArgs e, Rectangle r)
@@ -315,46 +373,46 @@
Image displayImage = (e.Node.IsExpanded) ? Resources.minus_sign : Resources.plus_sign;
if (PlusMinusSize.IsEmpty)
PlusMinusSize = displayImage.Size;
- int top = r.Top + ((ItemHeight - displayImage.Height) / 2);
+ int top = r.Top + (int) Math.Ceiling((ItemHeight - displayImage.Height) / 2f);
int left = r.Left + r.Width - 25;
e.Graphics.DrawImageUnscaled(displayImage, left, top);
}
- private void DrawText(DrawTreeNodeEventArgs e, Rectangle r)
+ private void DrawText(DrawTreeNodeEventArgs e, Rectangle r, bool disabled)
{
bool drawActive = ((e.State & TreeNodeStates.Selected) != 0) && Focused;
- Brush brush = drawActive ? Brushes.White : Brushes.Black;
+ Brush brush = disabled ? Brushes.Gray : (drawActive ? Brushes.White : Brushes.Black);
Rectangle textBounds = new Rectangle(r.Left + 62, r.Top, r.Width, r.Height);
StringFormat format = new StringFormat(StringFormatFlags.NoWrap);
format.LineAlignment = StringAlignment.Center;
format.Trimming = StringTrimming.EllipsisCharacter;
- e.Graphics.DrawString(e.Node.Text, Font, brush, textBounds, format);
+ if (disabled)
+ using (Font font = new Font(this.Font, FontStyle.Strikeout))
+ e.Graphics.DrawString(e.Node.Text, font, brush, textBounds, format);
+ else
+ e.Graphics.DrawString(e.Node.Text, Font, brush, textBounds, format);
}
- private void DrawState(DrawTreeNodeEventArgs e, Rectangle r)
+ private void DrawState(DrawTreeNodeEventArgs e, Rectangle r, bool disabled)
{
- int top = r.Top;
int left = r.Left;
Image icon = GetNodeIcon(e.Node);
if (icon != null)
- e.Graphics.DrawImage(icon, left + 32, top + 6);
-
- //ProductCategory pc = e.Node.Tag as ProductCategory;
- //int index = -1;
- // if (pc == null)
- //{
- // ProductFeature f = e.Node.Tag as ProductFeature;
-// if ((!f.Installed && !f.ProposedInstalled))
-// DisableImage(b);
-// if (f.Installed != f.ProposedInstalled)
-// index = f.Installed ? 1 : 0;
- //}
-
- // if (index >= 0)
- // StateImageList.Draw(e.Graphics, left+44, top+20, index);
+ {
+ int top = r.Top + (r.Height - icon.Height) / 2;
+ if (!disabled)
+ e.Graphics.DrawImage(icon, left + 32, top);
+ else
+ {
+ ImageAttributes attributes = new ImageAttributes();
+ attributes.SetColorMatrix(grayScaleMatrix);
+ e.Graphics.DrawImage(icon, new Rectangle(left + 32, top, icon.Width, icon.Height),
+ 0, 0, icon.Width, icon.Height, GraphicsUnit.Pixel, attributes);
+ }
+ }
}
/// <summary>
@@ -377,34 +435,6 @@
brush.Dispose();
}
- private void PartiallyDisableImage(Bitmap b)
- {
- // TODO: use a color matrix operation for that type of manipulation instead.
- int width = b.Width;
- for (int y = 0; y < b.Height; y++)
- {
- for (int x = 0; x < width; x++)
- {
- Color c = b.GetPixel(x, y);
- int lum = (int)(0.299 * c.R + 0.587 * c.G + 0.114 * c.B);
- b.SetPixel(x, y, Color.FromArgb(lum, lum, lum));
- }
- width--;
- }
- }
-
- private void DisableImage(Bitmap b)
- {
- // TODO: use a color matrix operation for that type of manipulation instead.
- for (int y = 0; y < b.Height; y++)
- for (int x = 0; x < b.Width; x++)
- {
- Color c = b.GetPixel(x, y);
- int lum = (int)(0.299 * c.R + 0.587 * c.G + 0.114 * c.B);
- b.SetPixel(x, y, Color.FromArgb(lum, lum, lum));
- }
- }
-
#endregion
#region Event handling
=== modified file 'WexInstaller/Controls/ListViewWex.cs'
--- a/WexInstaller/Controls/ListViewWex.cs 2011-03-07 16:27:05 +0000
+++ b/WexInstaller/Controls/ListViewWex.cs 2011-03-31 13:58:44 +0000
@@ -47,6 +47,7 @@
dummyList.ImageSize = new Size(24, 24);
SmallImageList = dummyList;
GhostProductImages = true;
+ ShowItemToolTips = true;
}
public bool GhostProductImages { get; set; }
=== modified file 'WexInstaller/InstallWizard/Features.Designer.cs'
--- a/WexInstaller/InstallWizard/Features.Designer.cs 2011-03-28 11:56:39 +0000
+++ b/WexInstaller/InstallWizard/Features.Designer.cs 2011-03-31 13:58:44 +0000
@@ -76,7 +76,7 @@
this.catalogList.ItemHeight = 18;
this.catalogList.Location = new System.Drawing.Point(64, 125);
this.catalogList.Name = "catalogList";
- this.catalogList.Size = new System.Drawing.Size(386, 24);
+ this.catalogList.Size = new System.Drawing.Size(400, 24);
this.catalogList.TabIndex = 13;
this.catalogList.DrawItem += new System.Windows.Forms.DrawItemEventHandler(this.catalogList_DrawItem);
this.catalogList.SelectedIndexChanged += new System.EventHandler(this.catalogList_SelectedIndexChanged);
@@ -121,9 +121,9 @@
"32-Bit",
"64-Bit",
"Any"});
- this.architectureCombobox.Location = new System.Drawing.Point(456, 125);
+ this.architectureCombobox.Location = new System.Drawing.Point(470, 125);
this.architectureCombobox.Name = "architectureCombobox";
- this.architectureCombobox.Size = new System.Drawing.Size(90, 24);
+ this.architectureCombobox.Size = new System.Drawing.Size(76, 24);
this.architectureCombobox.TabIndex = 16;
this.featureToolTip.SetToolTip(this.architectureCombobox, "Only products of the selected architecture type will be shown in the list below.");
this.architectureCombobox.SelectedIndexChanged += new System.EventHandler(this.architectureCombobox_SelectedIndexChanged);
@@ -133,7 +133,7 @@
this.architectureLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.architectureLabel.AutoSize = true;
this.architectureLabel.Font = new System.Drawing.Font("Tahoma", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.architectureLabel.Location = new System.Drawing.Point(453, 108);
+ this.architectureLabel.Location = new System.Drawing.Point(467, 108);
this.architectureLabel.Name = "architectureLabel";
this.architectureLabel.Size = new System.Drawing.Size(79, 14);
this.architectureLabel.TabIndex = 17;
@@ -163,6 +163,7 @@
this.featureTree.Size = new System.Drawing.Size(268, 256);
this.featureTree.TabIndex = 12;
this.featureTree.BeforeCheck += new System.Windows.Forms.TreeViewCancelEventHandler(this.featureTree_BeforeCheck);
+ this.featureTree.AfterCollapse += new System.Windows.Forms.TreeViewEventHandler(this.featureTree_AfterCollapse);
this.featureTree.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.featureTree_AfterSelect);
//
// featureBox
=== modified file 'WexInstaller/InstallWizard/Features.cs'
--- a/WexInstaller/InstallWizard/Features.cs 2011-03-28 11:56:39 +0000
+++ b/WexInstaller/InstallWizard/Features.cs 2011-03-31 13:58:44 +0000
@@ -330,6 +330,13 @@
ftv.SelectedNode = e.Node;
}
+ private void featureTree_AfterCollapse(object sender, TreeViewEventArgs e)
+ {
+ // When a node is selected and its parent gets collapsed then the selection will
+ // go to the now collapsed parent *without* notifying us in AfterSelect.
+ featureBox.SelectedObject = e.Node.Tag as ProductElement;
+ }
+
private void catalogList_DrawItem(object sender, DrawItemEventArgs e)
{
e.DrawBackground();
@@ -360,8 +367,6 @@
private void catalogList_SelectedIndexChanged(object sender, EventArgs e)
{
// Keep track of the active catalog and refill the feature tree.
- // Architecture selection is not possible with the two "virtual" categories,
- // namely "All products" and "All installed products".
CatalogState state = catalogList.Items[catalogList.SelectedIndex] as CatalogState;
if (state.catalog == null)
=== modified file 'WexInstaller/InstallWizard/Features.resx'
--- a/WexInstaller/InstallWizard/Features.resx 2011-03-28 11:56:39 +0000
+++ b/WexInstaller/InstallWizard/Features.resx 2011-03-31 13:58:44 +0000
@@ -125,7 +125,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAA4
- KAAAAk1TRnQBSQFMAgEBBAEAAYABAAGAAQABGAEAARgBAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFg
+ KAAAAk1TRnQBSQFMAgEBBAEAAZABAAGQAQABGAEAARgBAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFg
AwABMAMAAQEBAAEgBgABSP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/ADYAA+oB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLM
AZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLM
@@ -137,165 +137,165 @@
Af8BzAKZAf8BzAKZAf8BzAKZAf8BzAKZAf8DzAH/A+oB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLM
AZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLM
AZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wPMAf8BzAKZAf8BzAGZ
- ASMB/wLMAVYB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLM
- AZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLM
- AZkB/wLMAVYB/wHMAZkBIwH/AcwCmQH/AcwBmQEjAf8CzAFWAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZ
- Af8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZ
- Af8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAFWAf8BzAGZASMB/wGkAqAB/wHMAZkBIwH/
- AswBVgH/AswBmQH/AswBmQH/AswBmQH/AswBmQH/AswBmQH/AswBVgH/AcwBmQEjAf8CzAFWAf8CzAGZ
- Af8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZ
- Af8CzAFWAf8CmQEjAf8CzAGZAf8BzAGZASMB/wLMAVYB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLM
- AZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLM
- AZkB/wLMAZkB/wLMAZkB/wLMAVYB/wLMAVYB/wLMAVYB/wHMAZkBIwH/ApkBVgH/AswBVgL/AewBzAH/
+ ASEB/wLMAVQB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLM
+ AZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLM
+ AZkB/wLMAVQB/wHMAZkBIQH/AcwCmQH/AcwBmQEhAf8CzAFUAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZ
+ Af8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZ
+ Af8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAFUAf8BzAGZASEB/wGkAqAB/wHMAZkBIQH/
+ AswBVAH/AswBmQH/AswBmQH/AswBmQH/AswBmQH/AswBmQH/AswBVAH/AcwBmQEhAf8CzAFUAf8CzAGZ
+ Af8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZ
+ Af8CzAFUAf8CmQEhAf8CzAGZAf8BzAGZASEB/wLMAVQB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLM
+ AZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLM
+ AZkB/wLMAZkB/wLMAZkB/wLMAVQB/wLMAVQB/wLMAVQB/wHMAZkBIQH/ApkBVAH/AswBVAL/AewBzAH/
AfABygGmAf8D6gH/AfABygGmAv8B7AHMAf8D6gX/AfABygGmBf8B8AHKAaYB/wPqAf8D6iL/AewBzAH/
- AcwBmQEjAf8CmQFWAf8CzAFWBf8B8AHKAaYC/wHsAcwB/wHwAcoBpgL/AewBzAH/A/EC/wHsAcwB/wPq
+ AcwBmQEhAf8CmQFUAf8CzAFUBf8B8AHKAaYC/wHsAcwB/wHwAcoBpgL/AewBzAH/A/EC/wHsAcwB/wPq
Av8B7AHMAf8D8QL/AewBzAL/AewBzAH/A+oB/wHwAcoBpgH/A/EC/wHsAcwC/wHsAcwB/wHwAcoBpgL/
- AewBzAb/AewBzAH/AcwBmQEjAf8CmQFWAf8CzAFWAf8D6gn/A/EC/wHsAcwB/wHwAcoBpgL/AewBzAH/
- AcwBmQFWAf8B8AHKAaYB/wPqAv8B7AHMAf8D6iL/AewBzAH/AcwBmQEjAf8CmQFWAf8CzAFWAf8D6gH/
+ AewBzAb/AewBzAH/AcwBmQEhAf8CmQFUAf8CzAFUAf8D6gn/A/EC/wHsAcwB/wHwAcoBpgL/AewBzAH/
+ AcwBmQFUAf8B8AHKAaYB/wPqAv8B7AHMAf8D6iL/AewBzAH/AcwBmQEhAf8CmQFUAf8CzAFUAf8D6gH/
AfABygGmAf8D6gL/AewBzAH/AfABygGmAf8D8QH/AfABygGmAv8B7AHMAf8B8AHKAaYC/wHsAcwB/wPq
- Af8B8AHKAaYC/wHsAcwB/wPqAf8D6gH/AfABygGmAv8B7AHMAf8D8QH/AfABygGmAf8CzAFWAv8B7AHM
- Af8BzAGZASMB/wKZAVYB/wLMAVYC/wHsAcwB/wLMAVYB/wLMAVYB/wLMAVYB/wLMAVYB/wLMAVYC/wHs
- AcwB/wHMAZkBIwH/AswBVgH/AswBVgH/AswBmQH/AswBVgH/A/Ee/wHsAcwB/wHMAZkBIwH/ApkBVgH/
- AswBVgH/AswBmQH/AfABygGmAf8B8AHKAaYB/wLMAVYB/wLMAVYB/wLMAVYB/wLMAVYB/wLMAZkB/wLM
- AVYB/wLMAZkB/wHMAZkBIwH/AswBVgH/AswBVgH/AfABygGmAf8B8AHKAaYB/wHwAcoBpgH/AswBVgH/
- AswBVgH/AswBVgH/AfABygGmAv8B7AHMAf8BzAGZASMB/wKZAVYB/wLMAVYB/wLMAZkB/wLMAVYB/wHw
- AcoBpgH/AswBmQH/AswBVgH/AswBVgH/AswBVgH/AswBmQH/AswBVgH/AswBmQH/AswBVgH/AswBmQL/
- AewBzB7/AewBzAH/AcwBmQEjAf8CmQFWAf8CzAFWAf8CzAGZAf8B8AHKAaYB/wLMAVYB/wLMAVYB/wLM
- AVYB/wLMAVYB/wHwAcoBpgH/AswBVgH/AfABygGmAf8CzAGZAf8CzAFWAf8CzAFWAf8CzAFWAf8CzAFW
- Af8B8AHKAaYB/wHMAZkBIwH/AswBVgH/AswBmQH/AfABygGmAf8CzAFWAv8B7AHMAf8BzAGZAVYB/wKZ
- AVYB/wLMAVYB/wHwAcoBpgH/AswBVgL/AewBzAH/AfABygGmAv8B7AHMAv8B7AHMAv8B7AHMAf8D8QL/
- AewBzAH/AfABygGmAv8B7AHMAv8B7AHMAf8D8R7/AewBzAH/AcwBmQEjAf8CmQFWAf8CzAFWAf8B8AHK
+ Af8B8AHKAaYC/wHsAcwB/wPqAf8D6gH/AfABygGmAv8B7AHMAf8D8QH/AfABygGmAf8CzAFUAv8B7AHM
+ Af8BzAGZASEB/wKZAVQB/wLMAVQC/wHsAcwB/wLMAVQB/wLMAVQB/wLMAVQB/wLMAVQB/wLMAVQC/wHs
+ AcwB/wHMAZkBIQH/AswBVAH/AswBVAH/AswBmQH/AswBVAH/A/Ee/wHsAcwB/wHMAZkBIQH/ApkBVAH/
+ AswBVAH/AswBmQH/AfABygGmAf8B8AHKAaYB/wLMAVQB/wLMAVQB/wLMAVQB/wLMAVQB/wLMAZkB/wLM
+ AVQB/wLMAZkB/wHMAZkBIQH/AswBVAH/AswBVAH/AfABygGmAf8B8AHKAaYB/wHwAcoBpgH/AswBVAH/
+ AswBVAH/AswBVAH/AfABygGmAv8B7AHMAf8BzAGZASEB/wKZAVQB/wLMAVQB/wLMAZkB/wLMAVQB/wHw
+ AcoBpgH/AswBmQH/AswBVAH/AswBVAH/AswBVAH/AswBmQH/AswBVAH/AswBmQH/AswBVAH/AswBmQL/
+ AewBzB7/AewBzAH/AcwBmQEhAf8CmQFUAf8CzAFUAf8CzAGZAf8B8AHKAaYB/wLMAVQB/wLMAVQB/wLM
+ AVQB/wLMAVQB/wHwAcoBpgH/AswBVAH/AfABygGmAf8CzAGZAf8CzAFUAf8CzAFUAf8CzAFUAf8CzAFU
+ Af8B8AHKAaYB/wHMAZkBIQH/AswBVAH/AswBmQH/AfABygGmAf8CzAFUAv8B7AHMAf8BzAGZAVQB/wKZ
+ AVQB/wLMAVQB/wHwAcoBpgH/AswBVAL/AewBzAH/AfABygGmAv8B7AHMAv8B7AHMAv8B7AHMAf8D8QL/
+ AewBzAH/AfABygGmAv8B7AHMAv8B7AHMAf8D8R7/AewBzAH/AcwBmQEhAf8CmQFUAf8CzAFUAf8B8AHK
AaYB/wLMAZkC/wHsAcwC/wHsAcwC/wHsAcwC/wHsAcwC/wHsAcwB/wPxAf8B8AHKAaYC/wHsAcwC/wHs
AcwC/wHsAcwC/wHsAcwC/wHsAcwB/wHwAcoBpgH/AfABygGmAv8B7AHMAv8B7AHMAv8B7AHMAf8B8AHK
- AaYC/wHsAcwB/wHMAZkBIwH/ApkBVgH/AswBVgH/AfABygGmAf8CzAFWAf8CzAFWAf8B8AHKAaYC/wHs
+ AaYC/wHsAcwB/wHMAZkBIQH/ApkBVAH/AswBVAH/AfABygGmAf8CzAFUAf8CzAFUAf8B8AHKAaYC/wHs
AcwB/wPqAv8B7AHMAv8B7AHMAf8B8AHKAaYB/wHwAcoBpgH/AfABygGmAv8B7AHMIv8B7AHMAf8BzAGZ
- ASMB/wKZAVYB/wLMAVYB/wHwAcoBpgH/AswBVgH/AswBmQL/AewBzAL/AewBzAL/AewBzAL/AewBzAH/
- AswBVgL/AewBzAH/AfABygGmAf8CzAGZAf8CzAGZAv8B7AHMAf8B8AHKAaYC/wHsAcwB/wHwAcoBpgH/
- A+oB/wHwAcoBpgL/AewBzAL/AewBzAL/AewBzAH/AcwBmQEjAf8CmQFWAf8CzAFWAf8D8QL/AewBzAL/
- AewBzAH/AfABygGmAf8BzAP/AcwD/wHGAdYB7wH/AcwD/wHWAucu/wHsAcwB/wHMAZkBIwH/ApkBVgH/
- AswBVgX/A+MC/wHsAcwB/wHwAcoBpgH/AcwD/wHMA/8BxgHWAe8B/wHMA/8BzDD/AewBzAH/AcwBmQEj
- Af8CmQFWAf8CzAFWAf8D8QH/A+MB/wPjAf8B8AHKAaYB/wHMA/8BzAP/AcYB1gHvAf8BzAP/AdYC5wH/
- A/Eq/wHsAcwB/wHMAZkBIwH/ApkBVgH/AswBVgH/A/EB/wPjAv8B7AHMAf8B8AHKAaYB/wHMA/8BzAP/
- AcYB1gHvAf8B1gLnAf8BzAP/A/Eq/wHsAcwB/wHMAZkBIwH/ApkBVgH/AswBVgH/AfABygGmAf8CzAGZ
+ ASEB/wKZAVQB/wLMAVQB/wHwAcoBpgH/AswBVAH/AswBmQL/AewBzAL/AewBzAL/AewBzAL/AewBzAH/
+ AswBVAL/AewBzAH/AfABygGmAf8CzAGZAf8CzAGZAv8B7AHMAf8B8AHKAaYC/wHsAcwB/wHwAcoBpgH/
+ A+oB/wHwAcoBpgL/AewBzAL/AewBzAL/AewBzAH/AcwBmQEhAf8CmQFUAf8CzAFUAf8D8QL/AewBzAL/
+ AewBzAH/AfABygGmAf8BzAP/AcwD/wHGAdYB7wH/AcwD/wHWAucu/wHsAcwB/wHMAZkBIQH/ApkBVAH/
+ AswBVAX/A+MC/wHsAcwB/wHwAcoBpgH/AcwD/wHMA/8BxgHWAe8B/wHMA/8BzDD/AewBzAH/AcwBmQEh
+ Af8CmQFUAf8CzAFUAf8D8QH/A+MB/wPjAf8B8AHKAaYB/wHMA/8BzAP/AcYB1gHvAf8BzAP/AdYC5wH/
+ A/Eq/wHsAcwB/wHMAZkBIQH/ApkBVAH/AswBVAH/A/EB/wPjAv8B7AHMAf8B8AHKAaYB/wHMA/8BzAP/
+ AcYB1gHvAf8B1gLnAf8BzAP/A/Eq/wHsAcwB/wHMAZkBIQH/ApkBVAH/AswBVAH/AfABygGmAf8CzAGZ
Af8CzAGZAf8D1wH/AZkBzAL/AZkBzAL/AZkBzAL/AcYB1gHvAf8B8AH7Hv8D8QL/AewBzAr/AewBzAH/
- AcwBmQEjAf8CmQFWAf8CzAFWAf8B8AHKAaYB/wLMAZkB/wLMAZkB/wPXAf8BmQHMAv8BmQHMAv8BmQHM
- Av8BxgHWAe8B/wHwAfsv/wHsAcwB/wHMAZkBIwH/ApkBVgH/AswBVgH/AfABygGmAf8CzAGZAf8CzAGZ
- Af8D1wH/AZkBzAL/AZkBzAL/AZkBzAL/AcYB1gHvAf8B8AH7L/8B7AHMAf8BzAGZASMB/wHMAZkBVgH/
- AswBVgH/AfABygGmAf8CzAGZAf8CzAGZAf8D1wH/AZkBzAL/AZkBzAL/AZkBzAL/AcYB1gHvAf8B8AH7
- L/8B7AHMAf8BzAGZASMB/wKZAVYB/wLMAVYR/wHwAfsC/wHwAfsC/wHwAfsC/wHwAfse/wHwAcoBpgH/
- AfABygGmAf8D8Qr/AewBzAH/AcwBmQEjAf8CmQFWAf8CzAFWEf8B8AH7Av8B8AH7Av8B8AH7Av8B8AH7
- M/8B7AHMAf8BzAGZASMB/wKZAVYB/wLMAVYR/wHwAfsC/wHwAfsC/wHwAfsC/wHwAfsz/wHsAcwB/wHM
- AZkBIwH/AcwBmQFWAf8CzAFWEf8B8AH7Av8B8AH7Av8B8AH7Av8B8AH7M/8B7AHMAf8BzAGZASMB/wKZ
- AVYC/wHMAVY5/wHwAcoBpgH/AfABygGmEv8B7AHMAf8BzAGZASMB/wKZAVYC/wHMAVZS/wHsAcwB/wHM
- AZkBIwH/ApkBVgL/AcwBVhn/A90B/wHwAcoBpgH/AfABygGmAf8D6gX/A9cB/wPdAf8D6hr/AewBzAH/
- AcwBmQEjAf8BzAGZAVYC/wHMAVYJ/wPxAv8B7AHMAf8D6hH/A/EC/wHsAcwB/wPxEf8D6gL/AewBzAH/
- A/EG/wHsAcwB/wHMAZkBIwH/AcwBmQFWAv8BzAFWIv8B7AHMAf8D8RL/AewBzAH/AfABygGmAf8CzAGZ
- Af8D6gr/AewBzAH/AcwBmQEjAf8BzAGZAVYC/wHMAVYB/wPxAf8D8Sn/A/EC/wHsAcwC/wHsAcwC/wHs
- AcwC/wHsAcwB/wPxCv8B7AHMAf8BzAGZASMB/wKZAVYC/wHMAVYV/wLMAZkB/wLMAZkB/wLMAZkB/wLM
- AVYC/wHsAcwB/wPqAf8CzAFWAf8CzAGZAf8CzAGZAf8CzAGZAf8D6hL/AewBzAH/AcwBmQEjAf8BzAGZ
- AVYC/wHMAVYK/wHsAcwB/wHMAZkBVgH/AcwBmQFWAf8BzAGZAVYB/wLMAZkB/wPjAf8D4wH/AswBmQH/
- AcwBmQEjAf8CzAFWAf8D4wH/A+MB/wLMAZkB/wHMAZkBVgH/AcwBmQFWAf8BzAGZAVYC/wHsAcwG/wHs
- AcwB/wHMAZkBIwH/ApkBVgL/AcwBVhX/AfABygGmAf8B8AHKAaYB/wHwAcoBpgL/AewBzBX/A+MB/wHw
- AcoBpgL/AewBzA7/AewBzAH/AcwBmQEjAf8CmQFWAv8BzAFWAf8B8AHKAaYB/wLMAZkB/wHwAcoBpiL/
- AewBzAH/AswBmQH/AswBmQH/AswBmQH/AswBmQH/AswBVgH/AfABygGmAv8B7AHMAf8D6gL/AewBzAH/
- AcwBmQEjAf8CmQFWAv8BzAFWFf8CzAGZAf8CzAFWAf8CzAFWAf8CzAFWAf8D4wX/AswBVgH/AswBVgH/
- AswBVgH/AswBVgH/A+MS/wHsAcwB/wHMAZkBIwH/AcwBmQFWAv8BzAFWDv8B7AHMAf8B8AHKAaYB/wHM
- AZkBVgH/AZkBVgEjAf8BmQFWASMB/wKZASMB/wGZAVYBIwH/AcwBmQFWAf8BmQFWASMB/wGZAVYBIwH/
- AZkBVgEjAf8BmQFWASMB/wHMAZkBVgH/AfABygGmAv8B7AHMCv8B7AHMAf8BzAGZASMB/wKZAVYC/wHM
- AVYR/wPqAf8CzAGZAf8BzAGZAVYB/wLMAZkR/wPxAf8BzAGZAVYB/wLMAZkB/wPxEv8B7AHMAf8BzAGZ
- ASMB/wKZAVYC/wHMAVYB/wPqAf8B8AHKAaYB/wHMAZkBVgH/A90Z/wPxAf8CzAFWAf8BzAGZAVYB/wHM
- AZkBVgH/AcwBmQFWAf8BzAGZAVYB/wHMAZkBVgH/AcwBmQFWAf8BzAGZAVYB/wHMAZkBVgL/AewBzAH/
- AcwBmQEjAf8CmQFWAv8BzAFWFf8B8AHKAaYB/wHMAZkBVgH/AcwBmQFWAf8BzAGZAVYB/wHMAZkBVgH/
- AswBmQH/AcwBmQFWAf8BzAGZAVYB/wLMAVYB/wLMAVYB/wPxEv8B7AHMAf8BzAGZASMB/wHMAZkBVgL/
- AcwBVhn/A+MB/wHMAZkBVgH/AcwBmQFWAf8B8AHKAaYF/wHwAcoBpgH/AcwBmQFWAf8BzAGZAVYB/wPj
- Bf8D6gH/A/EK/wHsAcwB/wHMAZkBIwH/ApkBVgH/AswBVhH/AswBmQH/AfABygGmAf8CzAGZAf8D8RH/
- AswBmQH/AfABygGmGv8B7AHMAf8BzAGZASMB/wKZAVYB/wLMAVYJ/wLMAZkB/wHMAZkBVgH/A/EN/wHw
- AcoBpgH/AcwBmQFWAf8BzAGZAVYB/wHMAZkBIwH/AcwBmQEjAf8BzAGZASMB/wHMAZkBIwH/AcwBmQEj
- Af8BzAGZASMB/wLMAZkB/wHwAcoBpgL/AewBzAL/AewBzAH/AcwBmQEjAf8CmQFWAf8CzAFWDf8D6gH/
- A+oB/wHwAcoBpgH/AcwBmQEjAf8BzAGZASMB/wHMAZkBIwH/AcwBmQEjAf8BzAGZASMB/wHMAZkBIwH/
- AcwBmQEjAf8BzAGZASMB/wHMAZkBVgH/A+MB/wPjAf8D8Qr/AewBzAH/AcwBmQEjAf8BzAGZAVYB/wLM
- AVY5/wPxAf8B8AHKAaYC/wHsAcwO/wHsAcwB/wHMAZkBIwH/ApkBVgH/AswBVhH/AswBmQH/A9cB/wPx
- Ef8D6gH/AswBVh7/AewBzAH/AcwBmQEjAf8CmQFWAf8CzAFWCf8D6gH/AcwBmQEjAf8BzAGZAVYJ/wHw
- AcoBpgH/AcwBmQEjAf8CzAGZAv8B7AHMAf8BzAGZAVYB/wHMAZkBIwH/AcwBmQEjAf8BzAGZASMB/wHM
- AZkBIwH/AcwBmQEjAf8BzAGZAVYB/wHMAZkBVgH/AswBmQL/AewBzAH/AcwBmQEjAf8CmQFWAf8CzAFW
- Cf8D4wH/AcwBmQFWAf8BzAGZAVYB/wHMAZkBVgH/AcwBmQEjAf8BzAGZASMB/wHMAZkBIwH/AcwBmQEj
- Af8BzAGZASMB/wHMAZkBIwH/AcwBmQEjAf8BzAGZASMB/wHMAZkBIwH/AcwBmQFWAf8BzAGZASMB/wLM
- AZkK/wHsAcwB/wHMAZkBIwH/AcwBmQFWAf8CzAFWKf8D8QH/A+oJ/wPxAf8B8AHKAaYB/wHwAcoBpg7/
- AewBzAH/AcwBmQEjAf8CmQFWAf8CzAFWEv8B7AHMAf8CzAGZFf8CzAGZAf8B8AHKAaYe/wHsAcwB/wHM
- AZkBIwH/ApkBVgH/AswBVg3/AfABygGmAf8BmQFWAQAB/wHMAZkBVgH/AcwBmQFWAf8BmQFWASMB/wHM
- AZkBVgr/AewBzAH/AcwBmQFWAf8CmQEjAf8CmQEjAf8CmQEjAf8CmQEjAf8CzAGZAv8B7AHMAf8D8QL/
- AewBzAH/AcwBmQEjAf8CmQFWAf8CzAFWCv8B7AHMAf8BzAGZAVYB/wHMAZkBVgH/AcwBmQFWAf8BzAGZ
- AVYB/wHMAZkBIwH/AcwBmQEjAf8BzAGZASMB/wHMAZkBIwH/ApkBIwH/ApkBIwH/ApkBIwH/ApkBIwH/
- ApkBIwH/ApkBAAH/AcwBmQFWCv8B7AHMAf8BzAGZASMB/wKZAVYB/wLMAVYi/wHsAcwB/wLMAZkB/wLM
- AZkB/wPxCv8B7AHMAf8B8AHKAaYB/wPxDv8B7AHMAf8BzAGZASMB/wKZAVYB/wLMAVYR/wHwAcoBpgH/
- AswBmRH/A/EB/wHMAZkBVgL/AewBzB7/AewBzAH/AcwBmQEjAf8CmQFWAf8CzAFWEf8B8AHKAaYB/wHM
- AZkBVgH/AcwBmQFWAf8CzAGZAf8D8Q3/A/EC/wHsAcwC/wHsAcwC/wHsAcwC/wHsAcwB/wPxCv8B7AHM
- Af8BzAGZASMB/wKZAVYB/wLMAVYJ/wPqAf8CzAGZAf8CzAFWAf8BzAGZAVYB/wHMAZkBVgH/AcwBmQFW
- Af8BzAGZAVYB/wHMAZkBVgH/AcwBmQFWAf8BzAGZAVYB/wHMAZkBVgH/AcwBmQFWAf8BzAGZAVYB/wHM
- AZkBVgH/AcwBmQFWAf8B8AHKAaYK/wHsAcwB/wHMAZkBIwH/ApkBVgH/AswBViH/AfABygGmAf8CzAGZ
- Av8B7AHMCf8B8AHKAaYB/wHwAcoBpgH/A/ES/wHsAcwB/wHMAZkBIwH/ApkBVgH/AswBVgH/A/EJ/wPx
- Af8BzAGZAVYB/wPqEf8CzAGZAf8CzAGZIv8B7AHMAf8BzAGZASMB/wKZAVYB/wLMAVYB/wPxEf8D8QH/
- A/E2/wHsAcwB/wHMAZkBIwH/ApkBVgH/AswBVgH/A/EJ/wPqAf8D6gH/AfABygGmAf8BzAGZAVYB/wHM
- AZkBIwH/AcwBmQEjAf8BzAGZASMB/wHMAZkBIwH/AcwBmQEjAf8BzAGZASMB/wHMAZkBIwH/AcwBmQFW
- Av8B7AHMAv8B7AHMAf8D8Qr/AewBzAH/AcwBmQEjAf8CmQFWAf8CzAFWAf8D8R3/AfABygGmAv8B7AHM
- Cf8D6gH/AcwBmQFWAf8D8Rb/AewBzAH/AcwBmQEjAf8CmQFWAf8CzAFWAf8D8QH/A/EF/wHwAcoBpgH/
- AswBVgH/A/EC/wHsAcwJ/wLMAZkB/wLMAZkF/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QL/
- AewBzAH/AcwBmQEjAf8CmQFWAf8CzAFWAf8D8QH/A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EB/wPx
- Af8D8QH/A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EC/wHsAcwB/wHMAZkBIwH/
- ApkBVgH/AswBVgH/A/EB/wPxAf8D8QH/A/EF/wLMAZkB/wKZASMB/wKZASMB/wKZASMB/wHMAZkBVgH/
- AcwBmQFWAf8BzAGZASMB/wKZASMB/wKZASMB/wHMAZkBVgH/A+oF/wPxAf8D8QH/A/EC/wHsAcwB/wHM
- AZkBIwH/ApkBVgH/AswBVgH/A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EF/wHwAcoBpgL/AewBzAn/
- AswBmQH/AfABygGmBf8D8QH/A/EB/wPxAf8D8QH/A/EC/wHsAcwB/wHMAZkBIwH/ApkBVgH/AswBVgH/
+ AcwBmQEhAf8CmQFUAf8CzAFUAf8B8AHKAaYB/wLMAZkB/wLMAZkB/wPXAf8BmQHMAv8BmQHMAv8BmQHM
+ Av8BxgHWAe8B/wHwAfsv/wHsAcwB/wHMAZkBIQH/ApkBVAH/AswBVAH/AfABygGmAf8CzAGZAf8CzAGZ
+ Af8D1wH/AZkBzAL/AZkBzAL/AZkBzAL/AcYB1gHvAf8B8AH7L/8B7AHMAf8BzAGZASEB/wHMAZkBVAH/
+ AswBVAH/AfABygGmAf8CzAGZAf8CzAGZAf8D1wH/AZkBzAL/AZkBzAL/AZkBzAL/AcYB1gHvAf8B8AH7
+ L/8B7AHMAf8BzAGZASEB/wKZAVQB/wLMAVQR/wHwAfsC/wHwAfsC/wHwAfsC/wHwAfse/wHwAcoBpgH/
+ AfABygGmAf8D8Qr/AewBzAH/AcwBmQEhAf8CmQFUAf8CzAFUEf8B8AH7Av8B8AH7Av8B8AH7Av8B8AH7
+ M/8B7AHMAf8BzAGZASEB/wKZAVQB/wLMAVQR/wHwAfsC/wHwAfsC/wHwAfsC/wHwAfsz/wHsAcwB/wHM
+ AZkBIQH/AcwBmQFUAf8CzAFUEf8B8AH7Av8B8AH7Av8B8AH7Av8B8AH7M/8B7AHMAf8BzAGZASEB/wKZ
+ AVQC/wHMAVQ5/wHwAcoBpgH/AfABygGmEv8B7AHMAf8BzAGZASEB/wKZAVQC/wHMAVRS/wHsAcwB/wHM
+ AZkBIQH/ApkBVAL/AcwBVBn/A90B/wHwAcoBpgH/AfABygGmAf8D6gX/A9cB/wPdAf8D6hr/AewBzAH/
+ AcwBmQEhAf8BzAGZAVQC/wHMAVQJ/wPxAv8B7AHMAf8D6hH/A/EC/wHsAcwB/wPxEf8D6gL/AewBzAH/
+ A/EG/wHsAcwB/wHMAZkBIQH/AcwBmQFUAv8BzAFUIv8B7AHMAf8D8RL/AewBzAH/AfABygGmAf8CzAGZ
+ Af8D6gr/AewBzAH/AcwBmQEhAf8BzAGZAVQC/wHMAVQB/wPxAf8D8Sn/A/EC/wHsAcwC/wHsAcwC/wHs
+ AcwC/wHsAcwB/wPxCv8B7AHMAf8BzAGZASEB/wKZAVQC/wHMAVQV/wLMAZkB/wLMAZkB/wLMAZkB/wLM
+ AVQC/wHsAcwB/wPqAf8CzAFUAf8CzAGZAf8CzAGZAf8CzAGZAf8D6hL/AewBzAH/AcwBmQEhAf8BzAGZ
+ AVQC/wHMAVQK/wHsAcwB/wHMAZkBVAH/AcwBmQFUAf8BzAGZAVQB/wLMAZkB/wPjAf8D4wH/AswBmQH/
+ AcwBmQEhAf8CzAFUAf8D4wH/A+MB/wLMAZkB/wHMAZkBVAH/AcwBmQFUAf8BzAGZAVQC/wHsAcwG/wHs
+ AcwB/wHMAZkBIQH/ApkBVAL/AcwBVBX/AfABygGmAf8B8AHKAaYB/wHwAcoBpgL/AewBzBX/A+MB/wHw
+ AcoBpgL/AewBzA7/AewBzAH/AcwBmQEhAf8CmQFUAv8BzAFUAf8B8AHKAaYB/wLMAZkB/wHwAcoBpiL/
+ AewBzAH/AswBmQH/AswBmQH/AswBmQH/AswBmQH/AswBVAH/AfABygGmAv8B7AHMAf8D6gL/AewBzAH/
+ AcwBmQEhAf8CmQFUAv8BzAFUFf8CzAGZAf8CzAFUAf8CzAFUAf8CzAFUAf8D4wX/AswBVAH/AswBVAH/
+ AswBVAH/AswBVAH/A+MS/wHsAcwB/wHMAZkBIQH/AcwBmQFUAv8BzAFUDv8B7AHMAf8B8AHKAaYB/wHM
+ AZkBVAH/AZkBVAEhAf8BmQFUASEB/wKZASEB/wGZAVQBIQH/AcwBmQFUAf8BmQFUASEB/wGZAVQBIQH/
+ AZkBVAEhAf8BmQFUASEB/wHMAZkBVAH/AfABygGmAv8B7AHMCv8B7AHMAf8BzAGZASEB/wKZAVQC/wHM
+ AVQR/wPqAf8CzAGZAf8BzAGZAVQB/wLMAZkR/wPxAf8BzAGZAVQB/wLMAZkB/wPxEv8B7AHMAf8BzAGZ
+ ASEB/wKZAVQC/wHMAVQB/wPqAf8B8AHKAaYB/wHMAZkBVAH/A90Z/wPxAf8CzAFUAf8BzAGZAVQB/wHM
+ AZkBVAH/AcwBmQFUAf8BzAGZAVQB/wHMAZkBVAH/AcwBmQFUAf8BzAGZAVQB/wHMAZkBVAL/AewBzAH/
+ AcwBmQEhAf8CmQFUAv8BzAFUFf8B8AHKAaYB/wHMAZkBVAH/AcwBmQFUAf8BzAGZAVQB/wHMAZkBVAH/
+ AswBmQH/AcwBmQFUAf8BzAGZAVQB/wLMAVQB/wLMAVQB/wPxEv8B7AHMAf8BzAGZASEB/wHMAZkBVAL/
+ AcwBVBn/A+MB/wHMAZkBVAH/AcwBmQFUAf8B8AHKAaYF/wHwAcoBpgH/AcwBmQFUAf8BzAGZAVQB/wPj
+ Bf8D6gH/A/EK/wHsAcwB/wHMAZkBIQH/ApkBVAH/AswBVBH/AswBmQH/AfABygGmAf8CzAGZAf8D8RH/
+ AswBmQH/AfABygGmGv8B7AHMAf8BzAGZASEB/wKZAVQB/wLMAVQJ/wLMAZkB/wHMAZkBVAH/A/EN/wHw
+ AcoBpgH/AcwBmQFUAf8BzAGZAVQB/wHMAZkBIQH/AcwBmQEhAf8BzAGZASEB/wHMAZkBIQH/AcwBmQEh
+ Af8BzAGZASEB/wLMAZkB/wHwAcoBpgL/AewBzAL/AewBzAH/AcwBmQEhAf8CmQFUAf8CzAFUDf8D6gH/
+ A+oB/wHwAcoBpgH/AcwBmQEhAf8BzAGZASEB/wHMAZkBIQH/AcwBmQEhAf8BzAGZASEB/wHMAZkBIQH/
+ AcwBmQEhAf8BzAGZASEB/wHMAZkBVAH/A+MB/wPjAf8D8Qr/AewBzAH/AcwBmQEhAf8BzAGZAVQB/wLM
+ AVQ5/wPxAf8B8AHKAaYC/wHsAcwO/wHsAcwB/wHMAZkBIQH/ApkBVAH/AswBVBH/AswBmQH/A9cB/wPx
+ Ef8D6gH/AswBVB7/AewBzAH/AcwBmQEhAf8CmQFUAf8CzAFUCf8D6gH/AcwBmQEhAf8BzAGZAVQJ/wHw
+ AcoBpgH/AcwBmQEhAf8CzAGZAv8B7AHMAf8BzAGZAVQB/wHMAZkBIQH/AcwBmQEhAf8BzAGZASEB/wHM
+ AZkBIQH/AcwBmQEhAf8BzAGZAVQB/wHMAZkBVAH/AswBmQL/AewBzAH/AcwBmQEhAf8CmQFUAf8CzAFU
+ Cf8D4wH/AcwBmQFUAf8BzAGZAVQB/wHMAZkBVAH/AcwBmQEhAf8BzAGZASEB/wHMAZkBIQH/AcwBmQEh
+ Af8BzAGZASEB/wHMAZkBIQH/AcwBmQEhAf8BzAGZASEB/wHMAZkBIQH/AcwBmQFUAf8BzAGZASEB/wLM
+ AZkK/wHsAcwB/wHMAZkBIQH/AcwBmQFUAf8CzAFUKf8D8QH/A+oJ/wPxAf8B8AHKAaYB/wHwAcoBpg7/
+ AewBzAH/AcwBmQEhAf8CmQFUAf8CzAFUEv8B7AHMAf8CzAGZFf8CzAGZAf8B8AHKAaYe/wHsAcwB/wHM
+ AZkBIQH/ApkBVAH/AswBVA3/AfABygGmAf8BmQFUAQAB/wHMAZkBVAH/AcwBmQFUAf8BmQFUASEB/wHM
+ AZkBVAr/AewBzAH/AcwBmQFUAf8CmQEhAf8CmQEhAf8CmQEhAf8CmQEhAf8CzAGZAv8B7AHMAf8D8QL/
+ AewBzAH/AcwBmQEhAf8CmQFUAf8CzAFUCv8B7AHMAf8BzAGZAVQB/wHMAZkBVAH/AcwBmQFUAf8BzAGZ
+ AVQB/wHMAZkBIQH/AcwBmQEhAf8BzAGZASEB/wHMAZkBIQH/ApkBIQH/ApkBIQH/ApkBIQH/ApkBIQH/
+ ApkBIQH/ApkBAAH/AcwBmQFUCv8B7AHMAf8BzAGZASEB/wKZAVQB/wLMAVQi/wHsAcwB/wLMAZkB/wLM
+ AZkB/wPxCv8B7AHMAf8B8AHKAaYB/wPxDv8B7AHMAf8BzAGZASEB/wKZAVQB/wLMAVQR/wHwAcoBpgH/
+ AswBmRH/A/EB/wHMAZkBVAL/AewBzB7/AewBzAH/AcwBmQEhAf8CmQFUAf8CzAFUEf8B8AHKAaYB/wHM
+ AZkBVAH/AcwBmQFUAf8CzAGZAf8D8Q3/A/EC/wHsAcwC/wHsAcwC/wHsAcwC/wHsAcwB/wPxCv8B7AHM
+ Af8BzAGZASEB/wKZAVQB/wLMAVQJ/wPqAf8CzAGZAf8CzAFUAf8BzAGZAVQB/wHMAZkBVAH/AcwBmQFU
+ Af8BzAGZAVQB/wHMAZkBVAH/AcwBmQFUAf8BzAGZAVQB/wHMAZkBVAH/AcwBmQFUAf8BzAGZAVQB/wHM
+ AZkBVAH/AcwBmQFUAf8B8AHKAaYK/wHsAcwB/wHMAZkBIQH/ApkBVAH/AswBVCH/AfABygGmAf8CzAGZ
+ Av8B7AHMCf8B8AHKAaYB/wHwAcoBpgH/A/ES/wHsAcwB/wHMAZkBIQH/ApkBVAH/AswBVAH/A/EJ/wPx
+ Af8BzAGZAVQB/wPqEf8CzAGZAf8CzAGZIv8B7AHMAf8BzAGZASEB/wKZAVQB/wLMAVQB/wPxEf8D8QH/
+ A/E2/wHsAcwB/wHMAZkBIQH/ApkBVAH/AswBVAH/A/EJ/wPqAf8D6gH/AfABygGmAf8BzAGZAVQB/wHM
+ AZkBIQH/AcwBmQEhAf8BzAGZASEB/wHMAZkBIQH/AcwBmQEhAf8BzAGZASEB/wHMAZkBIQH/AcwBmQFU
+ Av8B7AHMAv8B7AHMAf8D8Qr/AewBzAH/AcwBmQEhAf8CmQFUAf8CzAFUAf8D8R3/AfABygGmAv8B7AHM
+ Cf8D6gH/AcwBmQFUAf8D8Rb/AewBzAH/AcwBmQEhAf8CmQFUAf8CzAFUAf8D8QH/A/EF/wHwAcoBpgH/
+ AswBVAH/A/EC/wHsAcwJ/wLMAZkB/wLMAZkF/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QL/
+ AewBzAH/AcwBmQEhAf8CmQFUAf8CzAFUAf8D8QH/A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EB/wPx
+ Af8D8QH/A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EC/wHsAcwB/wHMAZkBIQH/
+ ApkBVAH/AswBVAH/A/EB/wPxAf8D8QH/A/EF/wLMAZkB/wKZASEB/wKZASEB/wKZASEB/wHMAZkBVAH/
+ AcwBmQFUAf8BzAGZASEB/wKZASEB/wKZASEB/wHMAZkBVAH/A+oF/wPxAf8D8QH/A/EC/wHsAcwB/wHM
+ AZkBIQH/ApkBVAH/AswBVAH/A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EF/wHwAcoBpgL/AewBzAn/
+ AswBmQH/AfABygGmBf8D8QH/A/EB/wPxAf8D8QH/A/EC/wHsAcwB/wHMAZkBIQH/ApkBVAH/AswBVAH/
A/EB/wPxAv8B7AHMAf8CzAGZAv8B7AHMAf8B8AHKAaYB/wHwAcoBpgH/A+oB/wHwAcoBpgH/AswBmQH/
- A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EC/wHsAcwB/wHMAZkBIwH/ApkBVgH/
- AswBVgH/A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EB/wPx
- Af8D8QH/A/EB/wPxAf8D8QH/A/EB/wPxAv8B7AHMAf8BzAGZASMB/wKZAVYB/wLMAVYB/wPxAf8D8QH/
- A/EB/wPxAf8D8QH/AcwBmQFWAf8CmQEjAf8CmQEjAf8CmQEjAf8B8AHKAaYB/wPxAf8BzAGZAVYB/wKZ
- ASMB/wKZASMB/wKZASMC/wHsAcwB/wPxAf8D8QH/A/EB/wPxAv8B7AHMAf8BzAGZASMB/wKZAVYB/wLM
- AVYB/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QH/AswBmQL/AewBzAb/AewBzAH/AswBmQH/
- A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EC/wHsAcwB/wHMAZkBIwH/ApkBVgH/AswBVgH/A/EB/wPx
+ A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EC/wHsAcwB/wHMAZkBIQH/ApkBVAH/
+ AswBVAH/A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EB/wPx
+ Af8D8QH/A/EB/wPxAf8D8QH/A/EB/wPxAv8B7AHMAf8BzAGZASEB/wKZAVQB/wLMAVQB/wPxAf8D8QH/
+ A/EB/wPxAf8D8QH/AcwBmQFUAf8CmQEhAf8CmQEhAf8CmQEhAf8B8AHKAaYB/wPxAf8BzAGZAVQB/wKZ
+ ASEB/wKZASEB/wKZASEC/wHsAcwB/wPxAf8D8QH/A/EB/wPxAv8B7AHMAf8BzAGZASEB/wKZAVQB/wLM
+ AVQB/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QH/AswBmQL/AewBzAb/AewBzAH/AswBmQH/
+ A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EC/wHsAcwB/wHMAZkBIQH/ApkBVAH/AswBVAH/A/EB/wPx
Af8B8AHKAaYB/wPXAv8B7AHMAf8B8AHKAaYB/wHwAcoBpgH/AswBmQH/AfABygGmAv8B7AHMAf8D8QH/
- A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QL/AewBzAH/ApkBIwH/ApkBVgH/AswBVgH/
+ A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QL/AewBzAH/ApkBIQH/ApkBVAH/AswBVAH/
A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QH/
- A/EB/wPxAf8D8QH/A/EB/wPxAv8B7AHMAf8BzAGZASMB/wKZAVYB/wLMAVYB/wPxAf8D8QH/A/EB/wPx
- Av8B7AHMAf8BzAGZAVYB/wKZASMB/wGZAVYBIwH/AZkBVgEjAf8CzAGZAv8B7AHMAf8BmQFWASMB/wGZ
- AVYBIwH/ApkBIwH/ApkBIwH/AfABygGmAf8D8QH/A/EB/wPxAf8D8QL/AewBzAH/ApkBIwH/ApkBVgH/
- AswBVgH/A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EB/wHwAcoBpgH/AfABygGmAf8B8AHKAaYB/wHw
- AcoBpgH/AfABygGmAv8B7AHMAf8D8QH/A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QL/AewBzAH/ApkBIwH/
- ApkBVgH/AswBVgL/AewBzAH/A/EB/wHwAcoBpgH/AswBmQH/AswBmQH/AfABygGmAv8B7AHMAf8D8QH/
+ A/EB/wPxAf8D8QH/A/EB/wPxAv8B7AHMAf8BzAGZASEB/wKZAVQB/wLMAVQB/wPxAf8D8QH/A/EB/wPx
+ Av8B7AHMAf8BzAGZAVQB/wKZASEB/wGZAVQBIQH/AZkBVAEhAf8CzAGZAv8B7AHMAf8BmQFUASEB/wGZ
+ AVQBIQH/ApkBIQH/ApkBIQH/AfABygGmAf8D8QH/A/EB/wPxAf8D8QL/AewBzAH/ApkBIQH/ApkBVAH/
+ AswBVAH/A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QH/A/EB/wHwAcoBpgH/AfABygGmAf8B8AHKAaYB/wHw
+ AcoBpgH/AfABygGmAv8B7AHMAf8D8QH/A/EB/wPxAf8D8QH/A/EB/wPxAf8D8QL/AewBzAH/ApkBIQH/
+ ApkBVAH/AswBVAL/AewBzAH/A/EB/wHwAcoBpgH/AswBmQH/AswBmQH/AfABygGmAv8B7AHMAf8D8QH/
A/EC/wHsAcwC/wHsAcwC/wHsAcwC/wHsAcwC/wHsAcwC/wHsAcwC/wHsAcwC/wHsAcwC/wHsAcwC/wHs
- AcwC/wHsAcwC/wHsAcwB/wKZASMB/wKZAVYB/wLMAVYC/wHsAcwC/wHsAcwC/wHsAcwC/wHsAcwC/wHs
+ AcwC/wHsAcwC/wHsAcwB/wKZASEB/wKZAVQB/wLMAVQC/wHsAcwC/wHsAcwC/wHsAcwC/wHsAcwC/wHs
AcwC/wHsAcwC/wHsAcwC/wHsAcwC/wHsAcwC/wHsAcwC/wHsAcwC/wHsAcwC/wHsAcwC/wHsAcwC/wHs
- AcwC/wHsAcwC/wHsAcwC/wHsAcwC/wHsAcwC/wHsAcwC/wHsAcwB/wKZASMB/wKZAVYB/wLMAVYC/wHs
+ AcwC/wHsAcwC/wHsAcwC/wHsAcwC/wHsAcwC/wHsAcwC/wHsAcwB/wKZASEB/wKZAVQB/wLMAVQC/wHs
AcwC/wHsAcwC/wHsAcwC/wHsAcwB/wPxAf8D8QL/AewBzAH/AfABygGmAf8CzAGZAv8B7AHMAv8B7AHM
Af8CzAGZAf8CzAGZAf8B8AHKAaYC/wHsAcwB/wPxAv8B7AHMAv8B7AHMAv8B7AHMAv8B7AHMAv8B7AHM
- Af8CmQEjAf8CmQFWAf8CzAFWAv8B7AHMAv8B7AHMAv8B7AHMAv8B7AHMAv8B7AHMAf8D8QL/AewBzAH/
+ Af8CmQEhAf8CmQFUAf8CzAFUAv8B7AHMAv8B7AHMAv8B7AHMAv8B7AHMAv8B7AHMAf8D8QL/AewBzAH/
AswBmQH/AfABygGmAf8CzAGZAf8B8AHKAaYB/wPxAf8D8QL/AewBzAL/AewBzAL/AewBzAL/AewBzAL/
- AewBzAL/AewBzAL/AewBzAL/AewBzAH/ApkBIwH/ApkBVgH/AcwBmQFWAf8D8Qb/AewBzAL/AewBzAL/
- AewBzD7/AewBzAH/ApkBIwH/ApkBVgH/AcwBmQFWAf8D8U7/AewBzAH/ApkBIwH/ApkBVgH/AcwBmQFW
- Af8D8U7/AewBzAH/ApkBIwH/ApkBVgH/AcwBmQFWAf8D8RX/A/EB/wPjAv8B7AHMLv8B7AHMAf8CmQEj
- Af8BpAKgAf8CmQEjAf8BzAGZAVYB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLM
+ AewBzAL/AewBzAL/AewBzAL/AewBzAH/ApkBIQH/ApkBVAH/AcwBmQFUAf8D8Qb/AewBzAL/AewBzAL/
+ AewBzD7/AewBzAH/ApkBIQH/ApkBVAH/AcwBmQFUAf8D8U7/AewBzAH/ApkBIQH/ApkBVAH/AcwBmQFU
+ Af8D8U7/AewBzAH/ApkBIQH/ApkBVAH/AcwBmQFUAf8D8RX/A/EB/wPjAv8B7AHMLv8B7AHMAf8CmQEh
+ Af8BpAKgAf8CmQEhAf8BzAGZAVQB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLM
AZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLM
- AZkB/wLMAZkB/wLMAZkB/wHMAZkBVgH/ApkBIwH/AaQCoAH/ApkBIwH/AcwBmQFWAf8CzAGZAf8CzAGZ
+ AZkB/wLMAZkB/wLMAZkB/wHMAZkBVAH/ApkBIQH/AaQCoAH/ApkBIQH/AcwBmQFUAf8CzAGZAf8CzAGZ
Af8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZ
- Af8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8BzAGZAVYB/wKZASMB/wGk
- AqAB/wKZASMB/wHMAZkBVgH/AswBmQH/AswBmQH/AswBmQH/AswBmQH/AswBmQH/AswBmQH/AswBmQH/
+ Af8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8CzAGZAf8BzAGZAVQB/wKZASEB/wGk
+ AqAB/wKZASEB/wHMAZkBVAH/AswBmQH/AswBmQH/AswBmQH/AswBmQH/AswBmQH/AswBmQH/AswBmQH/
AswBmQH/AswBmQH/AswBmQH/AswBmQH/AswBmQH/AswBmQH/AswBmQH/AswBmQH/AswBmQH/AswBmQH/
- AswBmQH/AswBmQH/AcwBmQFWAf8CmQEjAf8BpAKgAf8CmQEjAf8BzAGZAVYB/wLMAZkB/wLMAZkB/wLM
+ AswBmQH/AswBmQH/AcwBmQFUAf8CmQEhAf8BpAKgAf8CmQEhAf8BzAGZAVQB/wLMAZkB/wLMAZkB/wLM
AZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLM
- AZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wHMAZkBVgH/ApkBIwX/AswBVgH/
- AcwBmQFWAf8BzAGZAVYB/wHMAZkBVgH/AcwBmQFWAf8BzAGZAVYB/wHMAZkBVgH/AcwBmQFWAf8BzAGZ
- AVYB/wHMAZkBVgH/AcwBmQFWAf8BzAGZAVYB/wHMAZkBVgH/AcwBmQFWAf8BzAGZAVYB/wHMAZkBVgH/
- AcwBmQFWAf8BzAGZAVYB/wHMAZkBVgH/AcwBmQFWAf8BzAGZAVYB/wHMAZkBVgH/A8wF/wLMAVYB/wHM
- AZkBVgH/AcwBmQFWAf8BzAGZAVYB/wHMAZkBVgH/AcwBmQFWAf8BzAGZAVYB/wHMAZkBVgH/AcwBmQFW
- Af8BzAGZAVYB/wHMAZkBVgH/AcwBmQFWAf8BzAGZAVYB/wHMAZkBVgH/AcwBmQFWAf8BzAGZAVYB/wHM
- AZkBVgH/AcwBmQFWAf8BzAGZAVYB/wHMAZkBVgH/AcwBmQFWAf8BzAGZAVYB/wHwAcoBpgH/A/EB/wLM
- AVYB/wHMAZkBIwH/AcwBmQEjAf8BzAGZASMB/wHMAZkBIwH/AcwBmQEjAf8BzAGZASMB/wHMAZkBIwH/
- AcwBmQEjAf8BzAGZASMB/wHMAZkBIwH/AcwBmQEjAf8BzAGZASMB/wHMAZkBIwH/AcwBmQEjAf8BzAGZ
- ASMB/wHMAZkBIwH/AcwBmQEjAf8BzAGZASMB/wHMAZkBIwH/AcwBmQEjAf8BzAGZAVYB/wPMBf8CzAFW
- Af8BzAGZAVYB/wHMAZkBVgH/AcwBmQFWAf8BzAGZAVYB/wHMAZkBVgH/AcwBmQFWAf8BzAGZAVYB/wHM
- AZkBVgH/AcwBmQFWAf8BzAGZAVYB/wHMAZkBVgH/AcwBmQFWAf8BzAGZAVYB/wHMAZkBVgH/AcwBmQFW
- Af8BzAGZAVYB/wHMAZkBVgH/AcwBmQFWAf8BzAGZAVYB/wHMAZkBVgH/AcwBmQFWAf8DzAH/AUIBTQE+
+ AZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wLMAZkB/wHMAZkBVAH/ApkBIQX/AswBVAH/
+ AcwBmQFUAf8BzAGZAVQB/wHMAZkBVAH/AcwBmQFUAf8BzAGZAVQB/wHMAZkBVAH/AcwBmQFUAf8BzAGZ
+ AVQB/wHMAZkBVAH/AcwBmQFUAf8BzAGZAVQB/wHMAZkBVAH/AcwBmQFUAf8BzAGZAVQB/wHMAZkBVAH/
+ AcwBmQFUAf8BzAGZAVQB/wHMAZkBVAH/AcwBmQFUAf8BzAGZAVQB/wHMAZkBVAH/A8wF/wLMAVQB/wHM
+ AZkBVAH/AcwBmQFUAf8BzAGZAVQB/wHMAZkBVAH/AcwBmQFUAf8BzAGZAVQB/wHMAZkBVAH/AcwBmQFU
+ Af8BzAGZAVQB/wHMAZkBVAH/AcwBmQFUAf8BzAGZAVQB/wHMAZkBVAH/AcwBmQFUAf8BzAGZAVQB/wHM
+ AZkBVAH/AcwBmQFUAf8BzAGZAVQB/wHMAZkBVAH/AcwBmQFUAf8BzAGZAVQB/wHwAcoBpgH/A/EB/wLM
+ AVQB/wHMAZkBIQH/AcwBmQEhAf8BzAGZASEB/wHMAZkBIQH/AcwBmQEhAf8BzAGZASEB/wHMAZkBIQH/
+ AcwBmQEhAf8BzAGZASEB/wHMAZkBIQH/AcwBmQEhAf8BzAGZASEB/wHMAZkBIQH/AcwBmQEhAf8BzAGZ
+ ASEB/wHMAZkBIQH/AcwBmQEhAf8BzAGZASEB/wHMAZkBIQH/AcwBmQEhAf8BzAGZAVQB/wPMBf8CzAFU
+ Af8BzAGZAVQB/wHMAZkBVAH/AcwBmQFUAf8BzAGZAVQB/wHMAZkBVAH/AcwBmQFUAf8BzAGZAVQB/wHM
+ AZkBVAH/AcwBmQFUAf8BzAGZAVQB/wHMAZkBVAH/AcwBmQFUAf8BzAGZAVQB/wHMAZkBVAH/AcwBmQFU
+ Af8BzAGZAVQB/wHMAZkBVAH/AcwBmQFUAf8BzAGZAVQB/wHMAZkBVAH/AcwBmQFUAf8DzAH/AUIBTQE+
BwABPgMAASgDAAFgAwABMAMAAQEBAAEBBQABQAECFgAD//8A/wBDAAs=
</value>
</data>
@@ -306,103 +306,102 @@
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
- ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABC
- FgAAAk1TRnQBSQFMAgEBBAEAAXABAAFwAQABFQEAARQBAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFU
+ ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAq
+ FgAAAk1TRnQBSQFMAgEBBAEAAYABAAGAAQABFQEAARQBAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFU
AwABKAMAAQEBAAEgBQABgAE0/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A
- /wD/AP8A/wD/AP8A/wD/ADcAAwQBBVAAAwQBBUQAAzcBWgFYAlwB0QFTAV0BZgHtAVYBXQFmAe0DWwHI
- A0cBgAMfASyUAANAAXABSwFMAUsBkAMFAQdIAANAAXABSwFMAUsBkAMFAQc8AAM2AVkBFwFGAYUB/wEA
- AToBhwH/ARQBTAGVAf8BFgFOAZkB/wENAUcBlAH/AQ4BQwGMAf8BSAFiAWgB9gNOAZUDIwEziAABPwFA
- AT8BbwFeAV8BXgHdAWABYwFhAeABSwFMAUsBkAMFAQdAAAE/AUABPwFvAV4BXwFeAd0BYAFjAWEB4AFL
- AUwBSwGQAwUBBzAAAwgBCwNHAYIBGgFIAYYB/wEBAT0BiAH/AQkBQgGKAf8BEwFLAZQB/wEYAU4BmAH/
- ARcBTQGWAf8BFgFMAZYB/wEOAUgBlQH/AQwBQgGMAf8BMgFfAX8B+wNTAaUDNAFUAwcBCSsABAEBAgMD
- AQQDHQEqAwABATwAAT8BQAE/AW4DYQHcAa8B0wG3Af0BvwH+AdQB/wFfAWMBYAHgAUsBTAFLAZADBQEH
- OAABPwFAAT8BbgNhAdwBrwHTAbcB/QG/Af4B1AH/AV8BYwFgAeABSwFMAUsBkAMFAQcoAAMHAQkDVAGm
- AQABNQFwAf8BAwE+AYgB/wEKAUIBiQH/AQkBQQGKAf8BEwFKAZQB/wEZAU8BmQH/ARQBRwGNAf8BCwE4
- AWkB/wEQAUEBhQH/ARMBSgGUAf8BDwFHAZUB/wEHAUABjQH/AQ0BQAGGAf8DOwFlIAADCwEPAzIBUQNJ
- AYgDWgHAA2UB9AOWAf8DYQHiA0QBeTQAAz4BawNhAdoBpQHNAa8B/QGVAfgBtAH/AZcB+gG3Af8BqwH9
- AcYB/wFfAWMBYAHgAUsBTAFLAY8DBQEHMAADPgFrA2EB2gGlAc0BrwH9AZUB+AG0Af8BlwH6AbcB/wGr
- Af0BxgH/AV8BYwFgAeABUQFSAVEBoQNHAYIBTQJOAZYDQwF4AxYBHxgAAzoBYQEAATgBcQH/AQMBOwGC
- Af8BCAE+AYUB/wEJAUIBigH/AQgBQQGJAf8BEwFKAZQB/wEWAUsBkwH/ARsBTQGSAf8BLgFeAaQB/wEc
- AUoBiwH/AQ8BPAFtAf8BDAE8AXEB/wESAUcBkAH/AQwBRQGRAf8DQAFwFAADFAEbAz8BbANXAbcClwGW
- Af8DvQH/AdEC0AH/AdUB1AHVAf8BrQHKAasB/wHHAdcBxQH/Ab0BrwGtAf8BpAGbAZgB/wNWAbEDLgFI
- KAADPQFpA10B1wGgAccBqAH9AYEB7wGgAf8BZgHxAZgB/wFrAfMBnQH/AYsB9gGsAf8BqgH6AcMB/wFc
- AV8BXAHfA0oBjQMFAQcoAAM9AWkDXQHXAaABxwGoAf0BgQHvAaAB/wFmAfEBmAH/AWsB8wGdAf8BiwH2
- AawB/wFwAcEBmwH/AUABuQG7Af0BMAHvAv8BJAHhAv8BHQHiAv8BXQFlAWcB5QMmATgUAANAAXABAQE5
- AYAB/wEEATEBYQH/AQABKQFXAf8BAwE7AYEB/wEHAUEBiQH/ARMBSQGTAf8BEwFDAYgB/wE6AW4BuQH/
- AUoBkAHSAf8BRgGNAc4B/wE6AW4BuQH/ASIBUAGSAf8BDAE4AWgB/wEAATEBagH/Az8BbRAAA0wBkAKn
- AaYB/wHNAssB/wHcAtkB/wHdAtoB/wHVAdABzwH/AdMBzQHMAf8B1wHVAdYB/wGGAcQBcQH/AbIB1wGr
- Af8BvQGtAakB/wGlAYoBgwH/Aa4BmwGXAf8BlwGUAZIB/wNJAYcgAAM9AWkDYAHWAW8BgAF1AfIBgAHn
- AZoB/wFXAeUBhgH/AU4B5gGBAf8BUwHoAYcB/wFkAe4BlQH/AZEB9AGtAf8BdwGKAX4B9QFeAV8BXgHd
- A0oBiwMFAQcgAAM9AWkDYAHWAW8BgAF1AfIBgAHnAZoB/wFXAeUBhgH/AU4B5gGBAf8BUwHoAYcB/wFE
- AbQBbAH/AUUB3AHmAf8BPgHyAv8BMAHlAf0B/wEmAd8B/QH/AR8B2wL/ARsB4wL/AVkBYQFiAeQDFAEb
- EAADPwFsARIBQwGIAf8BUQGNAckB/wFEAW4BswH/ARcBQwGDAf8BCAE9AYQB/wEQAUEBiQH/ATUBZQGu
- Af8BTgGSAdMB/wFIAYwBzAH/AUcBiwHLAf8BRwGNAc4B/wFHAY4B0AH/ATwBcQG9Af8BGAFJAY0B/wNJ
- AYgMAAMLAQ8CpgGnAf8B0gHMAcsB/wHBAbkBtwH/AcwBxgHFAf8BzwLKAf8BzgHIAcYB/wHNAccBxQH/
- Ac4CyQH/AdICzwH/Ad4C3AH/AdoB1AHVAf8BsQGdAZgB/wGlAYoBgwH/AagBjgGIAf8BqgGgAZ4B/wNX
- AbcDMQFOFAADDwEUAy8BSgMvAUoBUwFVAVMBrQFeAaIBcwH6AUUB2QFjAf8BOwHaAV4B/wFAAd4BZAH/
- AVQB5AGDAf8BggHsAZ8B/wNfAdsDNAFUATABMQEwAU0DGAEiHAADKwFCA1EBoAMvAUoBWAFcAVgB0QE2
- AXwBYgH8ATsBwAFXAf8BMwHEAVQB/wEgAZ8BWAH/AREBwAHlAf8BSQHuAv8BOQHlAfwB/wE1AegB/QH/
- ASoB5AH+Af8BTgFyAXYB8ANeAdUBQgHkAv8BRAJFAXwQAANOAZUBVAGUAdUB/wFlAaUB4wH/AWkBqAHk
- Af8BbQGmAeEB/wFbAY8ByAH/ATABgAGyAf8BUAGVAdIB/wFVAZAB0QH/AVABjwHQAf8BTAGOAc4B/wFK
- AY4BzQH/AUcBjAHMAf8BRwGNAc0B/wFGAY4BzwH/AU0BdQGcAfoDWgHFAyMBNAQAAxgBIQO4Af8BzQHG
- AcUB/wG3Aa4BrAH/AbsBtAGxAf8BxgHBAb8B/wHMAcgBxgH/AdcB0wHUAf8B4gHgAd8B/wHmAuIB/wHp
- AeMB4gH/AeIB2wHaAf8B5gLhAf8ByQG+Ab0B/wGnAY4BhwH/AaUBigGDAf8BrwGbAZcB/wGiAp4B/wM3
- AVocAAFQAVIBUAGkAW0BkgFtAfcBQQHTAVsB/wEtAdEBTQH/AS8B0gFPAf8BRgHaAWUB/wFuAeUBlQH/
- AVYBWAFWAcEDCAELIAABIQIiATEBVQFmAWkB6gE9AfMC/wFVAlcBtwEkAeAB+gH/AR0B2AH2Af8BGAHI
- AeQB/wESAcEB3QH/AQsB1wL/ARUB0AL/AUwB6AH8Af8BPQHnAfwB/wE5AeoB/QH/ATAB7wL/AT0CPgFq
- BAABVAG5Ab8B/QNRAaIMAANGAX4BXQGeAd8B/wFgAaAB4AH/AWMBoQHeAf8BawGjAd8B/wFrAaUB3QH/
- ATABrQHXAf8BAQG+AeEB/wEAAa8B1wH/ASUBoAHPAf8BRwGVAc8B/wFQAZEBzwH/AVMBjwHPAf8BTwGP
- Ac8B/wFKAY4BzQH/AUgBjQHMAf8BQQGJAcsB/wFbAWgBgQH2AxkBIwQAAwIBAwOyAf8B6ALnAf8B5wHj
- AeQB/wHqAecB6AH/AekB5QHmAf8B6wHlAeYB/wHuAucB/wHzAe4B7QH/Ae0C5gH/AdcBzAHLAf8B0QHF
- AcQB/wHUAcsBygH/Ad0C1gH/AeAC2wH/AbUBoQGeAf8BpQGKAYMB/wGuAZoBlAH/A1sBwxwAAVABUgFQ
- AaQBbQGPAW0B9wE+Ac0BVgH/ASYByQFDAf8BJgHLAUQB/wE+AdIBWQH/AWsB3wGOAf8BVwFZAVcBvwMI
- AQsgAANKAYsBZQP/AU8B/AL/AUED/wEzAfUC/wEpAfAC/wEhAewC/wEaAeYC/wERAdwC/wEaAdwC/wFS
- AeoB/gH/AUEB5wH8Af8BPgHsAf0B/wEvAegB/gH/AVkCXQHXA1MBqgE3AeYC/wNIAYYEAAMXASADVgGx
- AVUBlwHaAf8BXQGdAd4B/wFiAaAB3gH/AW4BowHgAf8BWAGjAdcB/wEHAbAB2AH/AQABuwHiAf8BAAHB
- AecB/wEAAb0B5QH/AQABvQHkAf8BAAG4AeAB/wEGAa4B2QH/ASYBngHNAf8BRAGUAcwB/wFTAY8BzwH/
- AVABjwHQAf8BRAGLAcwB/wM6AWAMAAMwAUsDVgG0AccBxgHFAf8B4wHgAeEB/wHzAe0B7gH/Ae4B5wHo
- Af8B8gLuAf8B+AL1Af8B9ALxAf8B8QLsAf8B7AHoAecB/wHpAeMB4gH/AeMB3QHcAf8B2ALUAf8B8QHr
- AewB/wHSAckByAH/AbEBngGZAf8DWwHDHAABTwFTAU8BpQFtAY4BbQH3ATsByAFQAf8BIAHCAToB/wEf
- AcMBOgH/AToBywFRAf8BbAHcAYwB/wFWAVkBVgG+AwgBCyQAAT0CPgFqAUgCSQGHAUgCSQGHAVoBXgFa
- AdUBQwGJAV8B+wEfAZUBXQH/AREBkQFSAf8BDwGQAVIB/wEeAZMBYQH/AV4B5wHzAf8BUgHzAv8BQQHs
- Af0B/wE0AecB/QH/ASoB5gL/ASYB7gL/AVMBdwGAAfEDHAEoBAADRwGBAVMBlwHbAf8BWQGcAd4B/wFh
- AZ8B3gH/AWsBoQHeAf8BRwGjAdQB/wEAAbEB2AH/AQABvQHlAf8BAAG7AeQB/wEAAb8B5QH/AQABugHj
- Af8BAAG8AeUB/wEAAb0B5gH/AQABvQHlAf8BAAG8AeMB/wEAAbQB2wH/ARQBpAHRAf8BMwGSAcoB/wNd
- AcoYAAMcAScDTAGQAb4CvQH/AdoB1wHZAf8B8gHtAe4B/wH4AvUB/wHzAu4B/wHrAuQB/wHmAeAB3wH/
- AeIC2gH/AeQC3QH/AfQB7QHuAf8B+AHyAfQB/wHsAecB6QH/AcEBvwHAAf8DNwFaHAABTwFTAU8BpQFt
- AY4BbQH3ATUBwgFIAf8BGQG7ATEB/wEYAbwBMQH/ATQBxgFKAf8BaQHXAYcB/wFWAVkBVgG+AwgBCzAA
- AU8BUwFPAaUBbQGOAW0B9wE1AcIBSAH/ARkBuwExAf8BGAG8ATEB/wE0AcYBSgH/AUoBogFlAf8BWgHx
- AfcB/wFLAfsC/wE5Ae4C/wExAfIC/wFCAZIBngH3AzEBTwgAAwEBAgMeASsDUwGlAVwBfAGiAfoBJgGl
- AdMB/wEAAbcB3gH/AQABvAHkAf8BAAG6AeMB/wEJAcEB5gH/ASwBxwHoAf8BFwHEAecB/wEAAcAB5gH/
- AQABvAHlAf8BAAG6AeMB/wEAAbsB5AH/AQABvAHlAf8BAAG8AeUB/wEBAb4B6AH/AV4BXwFhAd0DFAEb
- HAADBwEJAzoBYANbAcYBzQHMAc0B/wHqAeYB6AH/AesB5QHnAf8B6gHmAegB/wHgAd4B3wH/AdoB1wHZ
- Af8ByQLIAf8DYQHhA1EBnAMoATwgAAFPAVMBTwGlAW0BjgF6AfcBSgHGAVoB/wEvAb4BQAH/AS4BvgFA
- Af8BRwHHAVkB/wGIAdkBlQH/AVYBWQFWAb4DCAELMAABTwFTAU8BpQFtAY4BegH3AUoBxgFaAf8BLwG+
- AUAB/wEuAb4BQAH/AUcBxwFZAf8BiAHZAZUB/wFaAV0BWgHKAU4CTwGXAVUCVgGxAUkCSgGJAxoBJRQA
- AwIBAwJeAWEB3QEAAb8B6QH/AQABuwHlAf8BAAG6AeIB/wEbAcMB5QH/ATcBxQHlAf8BLQHAAeMB/wEx
- AcIB5AH/ATQBxgHnAf8BJwHHAekB/wEOAcIB5gH/AQABuwHjAf8BAAG8AeYB/wEHAcsB9QH/AR8B1gL/
- AYgBygL/A1gBwQMHAQokAAMhATADTgGWA1oBvQNOAZkDPQFpAzABSwMWAR4sAAFPAVMBTwGlAYUBlgGH
- AfcBiAHTAZIB/wFiAcwBbQH/AWABzQFtAf8BhgHVAZEB/wGzAeQBugH/AVcBWQFXAb8DCAELMAABTwFT
- AU8BpQGFAZYBhwH3AYgB0wGSAf8BYgHMAW0B/wFgAc0BbQH/AYYB1QGRAf8BswHkAboB/wFXAVkBVwG/
- AwgBCyAAAzoBYAFSAbIB8wH/AQsB0QH+Af8BHAHQAfkB/wE3AdEB9QH/AT8BzQHwAf8BLgHEAegB/wEp
- AcAB4wH/AScBvgHhAf8BKgHAAeQB/wEvAcEB5AH/ATQBxAHmAf8BOgHRAfMB/wE6AdgB+wH/ATQB2wL/
- ASQB1wH+Af8BhwHHAfsB/wGTAccC/wNQAZ5sAAFPAVMBTwGlAVYBWAFWAbsBVgFYAVYBuwFWAVgBVgG7
- AVYBWAFWAbsBVgFYAVYBuwFWAVgBVgG7AVYBWAFWAbsDCAELMAABTwFTAU8BpQFWAVgBVgG7AVYBWAFW
- AbsBVgFYAVYBuwFWAVgBVgG7AVYBWAFWAbsBVgFYAVYBuwFWAVgBVgG7AwgBCyAAA1UBsgFNAbIB9QH/
- ASUB1gH+Af8BSgHaAf4B/wFFAdYB/QH/AUIB1QH8Af8BQwHVAfwB/wE9AdEB9wH/ATUBygHvAf8BMAHF
- AegB/wE0AckB7AH/AUAB0wH4Af8BSAHZAf4B/wFIAdoB/QH/AUsB3AH+Af8BWgHVAf4B/wGPAcUB+wH/
- A1QBrwMmATj/AAUAAxYBHwMxAU4DSAGDA1wBzQE9AbEBvwH8AT0B1QH9Af8BPQHVAf0B/wFBAdUB/AH/
- AUQB1gH9Af8BRAHWAfsB/wFGAdgB/AH/AUUB2AH9Af8BQAHZAf0B/wFMAdMB/AH/AWgBxwH4Af8DVgG2
- AzABS/8AHQADIAEvA0cBggNbAcsBRAHUAfoB/wFAAdYB/AH/AUEB2AH9Af8BQAHYAf0B/wFIAbkB0QH9
- AWUBfQGLAfQBXwFlAWoB6gM4AV3/ADEAAykBPgNHAYEDVAGuA1QBrwMuAUcDIAEuAxoBJWgAAUIBTQE+
- BwABPgMAASgDAAFUAwABKAMAAQEBAAEBBQAB4AEBFgAD//EACv8B8AEACv8B8AEAAf8B3wH/Af4C/wGA
- A/8B8AEAAf8BjwH/AfwBfwH/AQABPwL/AfABAAH/AQcB/wH4AT8B/AEAAQcB/gEPAfABAAH+AQMB/wHw
- AR8B+AEAAQcB+AEHAfABAAH8AQEB/wHgAQEB+AEAAQcBwAEBAfABAAH4AQAB/wHAAQAB+AEAAQcBgAEA
- AfABAAHwAQABfwGAAQABeAEAAQcCAAEwAQAB4AEAAX8CAAF4AQABAQIAARABAAH8AQEB/gEAAQIBcAEA
- AQECAAEQAQAB/AEBAf4CAAFAAQABAwGAAQABEAEAAfwBAQH/AgABQAEAAQcB4AEAARABAAH8AQEB/wHg
- AQABwAEAAQMB+AEAATABAAH8AQEB/wHgAQEB8AEAAQEB/wEBAfABAAH8AQEB/wHgAQ8B8AEAAQEC/wHw
- AQAB/AEBAf8B4AEPAfABAAEBAv8B8AEABf8B8AEAAQcC/wHwAQAG/wEAAR8C/wHwAQAG/wHgAT8C/wHw
- AQAL
+ /wD/AP8A/wD/AP8A/wD/ADcAAwQBBVAAAwQBBUQAAzcBWgFYAlwB0QFVAV0BZAHtAVgBXQFkAe0DWwHI
+ A0cBgAMfASyUAANAAXABSwFMAUsBkAMFAQdIAANAAXABSwFMAUsBkAMFAQc8AAM2AVkBFQFEAYUB/wEA
+ ATgBhwH/ARIBSgGVAf8BFAFMAZkB/wELAUUBlAH/AQwBQQGMAf8BSAJiAfYDTgGVAyMBM4gAAT8BQAE/
+ AW8DXgHdAV8BYQFfAeABSwFMAUsBkAMFAQdAAAE/AUABPwFvA14B3QFfAWEBXwHgAUsBTAFLAZADBQEH
+ MAADCAELA0cBggEYAUYBhgH/AQABOwGIAf8BBwFAAYoB/wERAUkBlAH/ARYBTAGYAf8BFQFLAZYB/wEU
+ AUoBlgH/AQwBRgGVAf8BCgFAAYwB/wEyAV8BeQH7A1MBpQM0AVQDBwEJKwAEAQECAwMBBAMdASoDAAEB
+ PAABPwFAAT8BbgNhAdwBrQHNAbUB/QG/Af4B1AH/AV8BYQFfAeABSwFMAUsBkAMFAQc4AAE/AUABPwFu
+ A2EB3AGtAc0BtQH9Ab8B/gHUAf8BXwFhAV8B4AFLAUwBSwGQAwUBBygAAwcBCQNUAaYBAAEzAW4B/wEB
+ ATwBiAH/AQgBQAGJAf8BBwE/AYoB/wERAUgBlAH/ARcBTQGZAf8BEgFFAY0B/wEJATYBZwH/AQ4BPwGF
+ Af8BEQFIAZQB/wENAUUBlQH/AQUBPgGNAf8BCwE+AYYB/wM7AWUgAAMLAQ8DMgFRA0kBiANaAcADZQH0
+ A5YB/wNhAeIDRAF5NAADPgFrA2EB2gGlAccBrQH9AZUB+AG0Af8BlwH6AbcB/wGrAf0BxgH/AV8BYQFf
+ AeABSwFMAUsBjwMFAQcwAAM+AWsDYQHaAaUBxwGtAf0BlQH4AbQB/wGXAfoBtwH/AasB/QHGAf8BXwFh
+ AV8B4AFRAVIBUQGhA0cBggFNAk4BlgNDAXgDFgEfGAADOgFhAQABNgFvAf8BAQE5AYIB/wEGATwBhQH/
+ AQcBQAGKAf8BBgE/AYkB/wERAUgBlAH/ARQBSQGTAf8BGQFLAZIB/wEsAVwBpAH/ARoBSAGLAf8BDQE6
+ AWsB/wEKAToBbwH/ARABRQGQAf8BCgFDAZEB/wNAAXAUAAMUARsDPwFsA1cBtwKXAZYB/wO9Af8B0QLQ
+ Af8B1QHUAdUB/wGtAcoBqwH/AccB1wHFAf8BvQGvAa0B/wGkAZsBmAH/A1YBsQMuAUgoAAM9AWkDXQHX
+ AaABwQGoAf0BgQHvAaAB/wFkAfEBmAH/AWkB8wGdAf8BiwH2AawB/wGqAfoBwwH/AVwBXQFcAd8DSgGN
+ AwUBBygAAz0BaQNdAdcBoAHBAagB/QGBAe8BoAH/AWQB8QGYAf8BaQHzAZ0B/wGLAfYBrAH/AW4BwQGb
+ Af8BQAG3AbkB/QEuAe8C/wEiAeEC/wEbAeIC/wFeAmUB5QMmATgUAANAAXABAAE3AYAB/wECAS8BXwH/
+ AQABJwFVAf8BAQE5AYEB/wEFAT8BiQH/AREBRwGTAf8BEQFBAYgB/wE4AWwBuQH/AUgBkAHSAf8BRAGN
+ Ac4B/wE4AWwBuQH/ASABTgGSAf8BCgE2AWYB/wEAAS8BaAH/Az8BbRAAA0wBkAKnAaYB/wHNAssB/wHc
+ AtkB/wHdAtoB/wHVAdABzwH/AdMBzQHMAf8B1wHVAdYB/wGGAcQBbwH/AbIB1wGrAf8BvQGtAakB/wGl
+ AYoBgwH/Aa4BmwGXAf8BlwGUAZIB/wNJAYcgAAM9AWkDYAHWAWoBewFvAfIBgAHnAZoB/wFVAeUBhgH/
+ AUwB5gGBAf8BUQHoAYcB/wFiAe4BlQH/AZEB9AGtAf8BcAGFAXcB9QNeAd0DSgGLAwUBByAAAz0BaQNg
+ AdYBagF7AW8B8gGAAecBmgH/AVUB5QGGAf8BTAHmAYEB/wFRAegBhwH/AUIBtAFqAf8BQwHcAeYB/wE8
+ AfIC/wEuAeUB/QH/ASQB3wH9Af8BHQHbAv8BGQHjAv8BWgJhAeQDFAEbEAADPwFsARABQQGIAf8BTwGN
+ AckB/wFCAWwBswH/ARUBQQGDAf8BBgE7AYQB/wEOAT8BiQH/ATMBYwGuAf8BTAGSAdMB/wFGAYwBzAH/
+ AUUBiwHLAf8BRQGNAc4B/wFFAY4B0AH/AToBbwG9Af8BFgFHAY0B/wNJAYgMAAMLAQ8CpgGnAf8B0gHM
+ AcsB/wHBAbkBtwH/AcwBxgHFAf8BzwLKAf8BzgHIAcYB/wHNAccBxQH/Ac4CyQH/AdICzwH/Ad4C3AH/
+ AdoB1AHVAf8BsQGdAZgB/wGlAYoBgwH/AagBjgGIAf8BqgGgAZ4B/wNXAbcDMQFOFAADDwEUAy8BSgMv
+ AUoBUwFVAVMBrQFaAZ4BcQH6AUMB2QFhAf8BOQHaAVwB/wE+Ad4BYgH/AVIB5AGDAf8BggHsAZ8B/wNf
+ AdsDNAFUATABMQEwAU0DGAEiHAADKwFCA1EBoAMvAUoBWAFcAVgB0QE0AXoBYAH8ATkBwAFVAf8BMQHE
+ AVIB/wEeAZ8BVgH/AQ8BwAHlAf8BRwHuAv8BNwHlAfwB/wEzAegB/QH/ASgB5AH+Af8BTgFsAW4B8ANe
+ AdUBQAHkAv8BRAJFAXwQAANOAZUBUgGUAdUB/wFjAaUB4wH/AWcBqAHkAf8BawGmAeEB/wFZAY8ByAH/
+ AS4BgAGyAf8BTgGVAdIB/wFTAZAB0QH/AU4BjwHQAf8BSgGOAc4B/wFIAY4BzQH/AUUBjAHMAf8BRQGN
+ Ac0B/wFEAY4BzwH/AU0BcwGYAfoDWgHFAyMBNAQAAxgBIQO4Af8BzQHGAcUB/wG3Aa4BrAH/AbsBtAGx
+ Af8BxgHBAb8B/wHMAcgBxgH/AdcB0wHUAf8B4gHgAd8B/wHmAuIB/wHpAeMB4gH/AeIB2wHaAf8B5gLh
+ Af8ByQG+Ab0B/wGnAY4BhwH/AaUBigGDAf8BrwGbAZcB/wGiAp4B/wM3AVocAAFQAVIBUAGkAW0BjAFt
+ AfcBPwHTAVkB/wErAdEBSwH/AS0B0gFNAf8BRAHaAWMB/wFsAeUBlQH/AVYBWAFWAcEDCAELIAABIQIi
+ ATEBVQFkAWUB6gE7AfMC/wFVAlcBtwEiAeAB+gH/ARsB2AH2Af8BFgHIAeQB/wEQAcEB3QH/AQkB1wL/
+ ARMB0AL/AUoB6AH8Af8BOwHnAfwB/wE3AeoB/QH/AS4B7wL/AT0CPgFqBAABUgG3Ab0B/QNRAaIMAANG
+ AX4BWwGeAd8B/wFeAaAB4AH/AWEBoQHeAf8BaQGjAd8B/wFpAaUB3QH/AS4BrQHXAf8BAAG+AeEB/wEA
+ Aa8B1wH/ASMBoAHPAf8BRQGVAc8B/wFOAZEBzwH/AVEBjwHPAf8BTQGPAc8B/wFIAY4BzQH/AUYBjQHM
+ Af8BPwGJAcsB/wFbAWIBewH2AxkBIwQAAwIBAwOyAf8B6ALnAf8B5wHjAeQB/wHqAecB6AH/AekB5QHm
+ Af8B6wHlAeYB/wHuAucB/wHzAe4B7QH/Ae0C5gH/AdcBzAHLAf8B0QHFAcQB/wHUAcsBygH/Ad0C1gH/
+ AeAC2wH/AbUBoQGeAf8BpQGKAYMB/wGuAZoBlAH/A1sBwxwAAVABUgFQAaQBbQGLAW0B9wE8Ac0BVAH/
+ ASQByQFBAf8BJAHLAUIB/wE8AdIBVwH/AWkB3wGOAf8BVwFZAVcBvwMIAQsgAANKAYsBYwP/AU0B/AL/
+ AT8D/wExAfUC/wEnAfAC/wEfAewC/wEYAeYC/wEPAdwC/wEYAdwC/wFQAeoB/gH/AT8B5wH8Af8BPAHs
+ Af0B/wEtAegB/gH/AVkCXQHXA1MBqgE1AeYC/wNIAYYEAAMXASADVgGxAVMBlwHaAf8BWwGdAd4B/wFg
+ AaAB3gH/AWwBowHgAf8BVgGjAdcB/wEFAbAB2AH/AQABuwHiAf8BAAHBAecB/wEAAb0B5QH/AQABvQHk
+ Af8BAAG4AeAB/wEEAa4B2QH/ASQBngHNAf8BQgGUAcwB/wFRAY8BzwH/AU4BjwHQAf8BQgGLAcwB/wM6
+ AWAMAAMwAUsDVgG0AccBxgHFAf8B4wHgAeEB/wHzAe0B7gH/Ae4B5wHoAf8B8gLuAf8B+AL1Af8B9ALx
+ Af8B8QLsAf8B7AHoAecB/wHpAeMB4gH/AeMB3QHcAf8B2ALUAf8B8QHrAewB/wHSAckByAH/AbEBngGZ
+ Af8DWwHDHAABTwFTAU8BpQFtAYoBbQH3ATkByAFOAf8BHgHCATgB/wEdAcMBOAH/ATgBywFPAf8BagHc
+ AYwB/wFWAVkBVgG+AwgBCyQAAT0CPgFqAUgCSQGHAUgCSQGHAVoBXgFaAdUBQwGHAV8B+wEdAZUBWwH/
+ AQ8BkQFQAf8BDQGQAVAB/wEcAZMBXwH/AVwB5wHzAf8BUAHzAv8BPwHsAf0B/wEyAecB/QH/ASgB5gL/
+ ASQB7gL/AVMBcgF7AfEDHAEoBAADRwGBAVEBlwHbAf8BVwGcAd4B/wFfAZ8B3gH/AWkBoQHeAf8BRQGj
+ AdQB/wEAAbEB2AH/AQABvQHlAf8BAAG7AeQB/wEAAb8B5QH/AQABugHjAf8BAAG8AeUB/wEAAb0B5gH/
+ AQABvQHlAf8BAAG8AeMB/wEAAbQB2wH/ARIBpAHRAf8BMQGSAcoB/wNdAcoYAAMcAScDTAGQAb4CvQH/
+ AdoB1wHZAf8B8gHtAe4B/wH4AvUB/wHzAu4B/wHrAuQB/wHmAeAB3wH/AeIC2gH/AeQC3QH/AfQB7QHu
+ Af8B+AHyAfQB/wHsAecB6QH/AcEBvwHAAf8DNwFaHAABTwFTAU8BpQFtAYoBbQH3ATMBwgFGAf8BFwG7
+ AS8B/wEWAbwBLwH/ATIBxgFIAf8BZwHXAYcB/wFWAVkBVgG+AwgBCzAAAU8BUwFPAaUBbQGKAW0B9wEz
+ AcIBRgH/ARcBuwEvAf8BFgG8AS8B/wEyAcYBSAH/AUgBogFjAf8BWAHxAfcB/wFJAfsC/wE3Ae4C/wEv
+ AfIC/wFGAYwBlgH3AzEBTwgAAwEBAgMeASsDUwGlAVgBegGeAfoBJAGlAdMB/wEAAbcB3gH/AQABvAHk
+ Af8BAAG6AeMB/wEHAcEB5gH/ASoBxwHoAf8BFQHEAecB/wEAAcAB5gH/AQABvAHlAf8BAAG6AeMB/wEA
+ AbsB5AH/AQABvAHlAf8BAAG8AeUB/wEAAb4B6AH/A14B3QMUARscAAMHAQkDOgFgA1sBxgHNAcwBzQH/
+ AeoB5gHoAf8B6wHlAecB/wHqAeYB6AH/AeAB3gHfAf8B2gHXAdkB/wHJAsgB/wNhAeEDUQGcAygBPCAA
+ AU8BUwFPAaUBbQGKAXQB9wFIAcYBWAH/AS0BvgE+Af8BLAG+AT4B/wFFAccBVwH/AYgB2QGVAf8BVgFZ
+ AVYBvgMIAQswAAFPAVMBTwGlAW0BigF0AfcBSAHGAVgB/wEtAb4BPgH/ASwBvgE+Af8BRQHHAVcB/wGI
+ AdkBlQH/AVoBXQFaAcoBTgJPAZcBVQJWAbEBSQJKAYkDGgElFAADAgEDA14B3QEAAb8B6QH/AQABuwHl
+ Af8BAAG6AeIB/wEZAcMB5QH/ATUBxQHlAf8BKwHAAeMB/wEvAcIB5AH/ATIBxgHnAf8BJQHHAekB/wEM
+ AcIB5gH/AQABuwHjAf8BAAG8AeYB/wEFAcsB9QH/AR0B1gL/AYgBygL/A1gBwQMHAQokAAMhATADTgGW
+ A1oBvQNOAZkDPQFpAzABSwMWAR4sAAFPAVMBTwGlAYMBjgGFAfcBiAHTAZIB/wFgAcwBawH/AV4BzQFr
+ Af8BhgHVAZEB/wGzAeQBugH/AVcBWQFXAb8DCAELMAABTwFTAU8BpQGDAY4BhQH3AYgB0wGSAf8BYAHM
+ AWsB/wFeAc0BawH/AYYB1QGRAf8BswHkAboB/wFXAVkBVwG/AwgBCyAAAzoBYAFQAbIB8wH/AQkB0QH+
+ Af8BGgHQAfkB/wE1AdEB9QH/AT0BzQHwAf8BLAHEAegB/wEnAcAB4wH/ASUBvgHhAf8BKAHAAeQB/wEt
+ AcEB5AH/ATIBxAHmAf8BOAHRAfMB/wE4AdgB+wH/ATIB2wL/ASIB1wH+Af8BhwHHAfsB/wGTAccC/wNQ
+ AZ5sAAFPAVMBTwGlAVYBWAFWAbsBVgFYAVYBuwFWAVgBVgG7AVYBWAFWAbsBVgFYAVYBuwFWAVgBVgG7
+ AVYBWAFWAbsDCAELMAABTwFTAU8BpQFWAVgBVgG7AVYBWAFWAbsBVgFYAVYBuwFWAVgBVgG7AVYBWAFW
+ AbsBVgFYAVYBuwFWAVgBVgG7AwgBCyAAA1UBsgFLAbIB9QH/ASMB1gH+Af8BSAHaAf4B/wFDAdYB/QH/
+ AUAB1QH8Af8BQQHVAfwB/wE7AdEB9wH/ATMBygHvAf8BLgHFAegB/wEyAckB7AH/AT4B0wH4Af8BRgHZ
+ Af4B/wFGAdoB/QH/AUkB3AH+Af8BWAHVAf4B/wGPAcUB+wH/A1QBrwMmATj/AAUAAxYBHwMxAU4DSAGD
+ A1wBzQE7Aa0BuwH8ATsB1QH9Af8BOwHVAf0B/wE/AdUB/AH/AUIB1gH9Af8BQgHWAfsB/wFEAdgB/AH/
+ AUMB2AH9Af8BPgHZAf0B/wFKAdMB/AH/AWYBxwH4Af8DVgG2AzABS/8AHQADIAEvA0cBggNbAcsBQgHU
+ AfoB/wE+AdYB/AH/AT8B2AH9Af8BPgHYAf0B/wFGAbcBywH9AWUBeQGDAfQBXQFjAWYB6gM4AV3/ADEA
+ AykBPgNHAYEDVAGuA1QBrwMuAUcDIAEuAxoBJWgAAUIBTQE+BwABPgMAASgDAAFUAwABKAMAAQEBAAEB
+ BQAB4AEBFgAD//EACv8B8AEACv8B8AEAAf8B3wH/Af4C/wGAA/8B8AEAAf8BjwH/AfwBfwH/AQABPwL/
+ AfABAAH/AQcB/wH4AT8B/AEAAQcB/gEPAfABAAH+AQMB/wHwAR8B+AEAAQcB+AEHAfABAAH8AQEB/wHg
+ AQEB+AEAAQcBwAEBAfABAAH4AQAB/wHAAQAB+AEAAQcBgAEAAfABAAHwAQABfwGAAQABeAEAAQcCAAEw
+ AQAB4AEAAX8CAAF4AQABAQIAARABAAH8AQEB/gEAAQIBcAEAAQECAAEQAQAB/AEBAf4CAAFAAQABAwGA
+ AQABEAEAAfwBAQH/AgABQAEAAQcB4AEAARABAAH8AQEB/wHgAQABwAEAAQMB+AEAATABAAH8AQEB/wHg
+ AQEB8AEAAQEB/wEBAfABAAH8AQEB/wHgAQ8B8AEAAQEC/wHwAQAB/AEBAf8B4AEPAfABAAEBAv8B8AEA
+ Bf8B8AEAAQcC/wHwAQAG/wEAAR8C/wHwAQAG/wHgAT8C/wHwAQAL
</value>
</data>
<metadata name="featureToolTip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
=== modified file 'WexInstaller/InstallWizard/InstallProgressPanel.cs'
--- a/WexInstaller/InstallWizard/InstallProgressPanel.cs 2011-03-28 11:56:39 +0000
+++ b/WexInstaller/InstallWizard/InstallProgressPanel.cs 2011-03-31 13:58:44 +0000
@@ -1,14 +1,13 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
-using System.Drawing;
-using System.Text;
+using System.Diagnostics;
+using System.Net;
using System.Windows.Forms;
+
+using WexInstaller.Controls;
using WexInstaller.Core;
-using System.Net;
-using System.Diagnostics;
using WexInstaller.Properties;
-using WexInstaller.Controls;
namespace WexInstaller
{
@@ -29,12 +28,12 @@
enum InstallProgressState : int
{
- None = -1,
- Ok = 0,
- Download = 1,
- Installing = 2,
- Problem = 3,
- Warning = 4
+ None = -1,
+ Ok = 0,
+ Download = 1,
+ Installing = 2,
+ Problem = 3,
+ Warning = 4
}
#endregion
@@ -73,7 +72,6 @@
{
foreach (Product p in pc.Products)
{
- //if (p.IsUpgrade || (p.ProposedInstalled && p.HasChanges()))
if (p.IsUpgrade || p.HasChanges())
{
if (!p.FoundLocal)
Attachment: [text/bzr-bundle] bzr/mike.lischke@oracle.com-20110331135844-0zy8o1vzim3zbc5a.bundle
| Thread |
|---|
| • bzr commit into wex-installer-1.0 branch (mike.lischke:397) | Mike Lischke | 31 Mar |