Index: /trunk/sources/HeuristicLab.DataAnalysis/Dataset.cs
===================================================================
--- /trunk/sources/HeuristicLab.DataAnalysis/Dataset.cs	(revision 311)
+++ /trunk/sources/HeuristicLab.DataAnalysis/Dataset.cs	(revision 312)
@@ -42,5 +42,13 @@
     private Dictionary<int, Dictionary<int, double>>[] cachedRanges;
     private double[] scalingFactor;
+
+    public double[] ScalingFactor {
+      get { return scalingFactor; }
+    }
     private double[] scalingOffset;
+
+    public double[] ScalingOffset {
+      get { return scalingOffset; }
+    }
 
     public int Rows {
@@ -296,14 +304,10 @@
 
     internal void ScaleVariable(int column) {
-      if(scalingFactor[column] == 1.0) {
+      if(scalingFactor[column] == 1.0 && scalingOffset[column] == 0.0) {
         double min = GetMinimum(column);
         double max = GetMaximum(column);
         double range = max - min;
-        scalingFactor[column] = range;
-        scalingOffset[column] = min;
-        for(int i = 0; i < Rows; i++) {
-          double origValue = samples[i * columns + column];
-          samples[i * columns + column] = (origValue - min) / range;
-        }
+        if(range == 0) ScaleVariable(column, 1.0, -min);
+        else ScaleVariable(column, 1.0 / range, -min);
       }
       CreateDictionaries();
@@ -311,9 +315,20 @@
     }
 
+    internal void ScaleVariable(int column, double factor, double offset) {
+      scalingFactor[column] = factor;
+      scalingOffset[column] = offset;
+      for(int i = 0; i < Rows; i++) {
+        double origValue = samples[i * columns + column];
+        samples[i * columns + column] = (origValue + offset) * factor;
+      }
+      CreateDictionaries();
+      FireChanged();
+    }
+
     internal void UnscaleVariable(int column) {
-      if(scalingFactor[column] != 1.0) {
+      if(scalingFactor[column] != 1.0 || scalingOffset[column]!=0.0) {
         for(int i = 0; i < rows; i++) {
           double scaledValue = samples[i * columns + column];
-          samples[i * columns + column] = scaledValue * scalingFactor[column] + scalingOffset[column];
+          samples[i * columns + column] = scaledValue / scalingFactor[column] - scalingOffset[column];
         }
         scalingFactor[column] = 1.0;
Index: /trunk/sources/HeuristicLab.DataAnalysis/DatasetView.cs
===================================================================
--- /trunk/sources/HeuristicLab.DataAnalysis/DatasetView.cs	(revision 311)
+++ /trunk/sources/HeuristicLab.DataAnalysis/DatasetView.cs	(revision 312)
@@ -131,4 +131,31 @@
       }
     }
+
+    private void showScalingToolStripMenuItem_Click(object sender, EventArgs e) {
+      ManualScalingControl scalingControl = new ManualScalingControl(false);
+      double[,] scalingParameters = new double[2, Dataset.Columns];
+      for(int i = 0; i < Dataset.Columns; i++) {
+        scalingParameters[0, i] = Dataset.ScalingFactor[i];
+        scalingParameters[1, i] = Dataset.ScalingOffset[i];
+      }
+      scalingControl.Data = scalingParameters;
+      scalingControl.ShowDialog();
+    }
+
+    private void scaleValuesmanuallyToolStripMenuItem_Click(object sender, EventArgs e) {
+      ManualScalingControl scalingControl = new ManualScalingControl(true);
+      double[,] scalingParameters = new double[2, Dataset.Columns];
+      for(int i = 0; i < Dataset.Columns; i++) {
+        scalingParameters[0, i] = Dataset.ScalingFactor[i];
+        scalingParameters[1, i] = Dataset.ScalingOffset[i];
+      }
+      scalingControl.Data = scalingParameters;
+      if(scalingControl.ShowDialog() == DialogResult.OK) {
+        for(int i = 0; i < Dataset.Columns; i++) {
+          Dataset.ScaleVariable(i, scalingControl.Data[0, i], scalingControl.Data[1, i]);
+        }
+      }
+      Refresh();
+    }
   }
 }
Index: /trunk/sources/HeuristicLab.DataAnalysis/DatasetView.designer.cs
===================================================================
--- /trunk/sources/HeuristicLab.DataAnalysis/DatasetView.designer.cs	(revision 311)
+++ /trunk/sources/HeuristicLab.DataAnalysis/DatasetView.designer.cs	(revision 312)
@@ -49,11 +49,13 @@
       this.columnsTextBox = new System.Windows.Forms.TextBox();
       this.dataGridView = new System.Windows.Forms.DataGridView();
+      this.contextMenuStrip = new System.Windows.Forms.ContextMenuStrip(this.components);
+      this.scaleValuesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+      this.originalValuesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
       this.rowsLabel = new System.Windows.Forms.Label();
       this.columnsLabel = new System.Windows.Forms.Label();
       this.nameLabel = new System.Windows.Forms.Label();
       this.nameTextBox = new System.Windows.Forms.TextBox();
-      this.contextMenuStrip = new System.Windows.Forms.ContextMenuStrip(this.components);
-      this.scaleValuesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
-      this.originalValuesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+      this.showScalingToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+      this.scaleValuesmanuallyToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
       ((System.ComponentModel.ISupportInitialize)(this.dataGridView)).BeginInit();
       this.contextMenuStrip.SuspendLayout();
@@ -91,4 +93,28 @@
       this.dataGridView.CellValidating += new System.Windows.Forms.DataGridViewCellValidatingEventHandler(this.dataGridView_CellValidating);
       // 
+      // contextMenuStrip
+      // 
+      this.contextMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+            this.scaleValuesToolStripMenuItem,
+            this.scaleValuesmanuallyToolStripMenuItem,
+            this.showScalingToolStripMenuItem,
+            this.originalValuesToolStripMenuItem});
+      this.contextMenuStrip.Name = "contextMenuStrip";
+      this.contextMenuStrip.Size = new System.Drawing.Size(198, 114);
+      // 
+      // scaleValuesToolStripMenuItem
+      // 
+      this.scaleValuesToolStripMenuItem.Name = "scaleValuesToolStripMenuItem";
+      this.scaleValuesToolStripMenuItem.Size = new System.Drawing.Size(197, 22);
+      this.scaleValuesToolStripMenuItem.Text = "Scale values [0..1]";
+      this.scaleValuesToolStripMenuItem.Click += new System.EventHandler(this.scaleValuesToolStripMenuItem_Click);
+      // 
+      // originalValuesToolStripMenuItem
+      // 
+      this.originalValuesToolStripMenuItem.Name = "originalValuesToolStripMenuItem";
+      this.originalValuesToolStripMenuItem.Size = new System.Drawing.Size(197, 22);
+      this.originalValuesToolStripMenuItem.Text = "Unscale values";
+      this.originalValuesToolStripMenuItem.Click += new System.EventHandler(this.originalValuesToolStripMenuItem_Click);
+      // 
       // rowsLabel
       // 
@@ -126,25 +152,17 @@
       this.nameTextBox.TabIndex = 7;
       // 
-      // contextMenuStrip
-      // 
-      this.contextMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
-            this.scaleValuesToolStripMenuItem,
-            this.originalValuesToolStripMenuItem});
-      this.contextMenuStrip.Name = "contextMenuStrip";
-      this.contextMenuStrip.Size = new System.Drawing.Size(146, 48);
-      // 
-      // scaleValuesToolStripMenuItem
-      // 
-      this.scaleValuesToolStripMenuItem.Name = "scaleValuesToolStripMenuItem";
-      this.scaleValuesToolStripMenuItem.Size = new System.Drawing.Size(145, 22);
-      this.scaleValuesToolStripMenuItem.Text = "Scale values";
-      this.scaleValuesToolStripMenuItem.Click += new System.EventHandler(this.scaleValuesToolStripMenuItem_Click);
-      // 
-      // originalValuesToolStripMenuItem
-      // 
-      this.originalValuesToolStripMenuItem.Name = "originalValuesToolStripMenuItem";
-      this.originalValuesToolStripMenuItem.Size = new System.Drawing.Size(145, 22);
-      this.originalValuesToolStripMenuItem.Text = "Unscale values";
-      this.originalValuesToolStripMenuItem.Click += new System.EventHandler(this.originalValuesToolStripMenuItem_Click);
+      // showScalingToolStripMenuItem
+      // 
+      this.showScalingToolStripMenuItem.Name = "showScalingToolStripMenuItem";
+      this.showScalingToolStripMenuItem.Size = new System.Drawing.Size(197, 22);
+      this.showScalingToolStripMenuItem.Text = "Show scaling...";
+      this.showScalingToolStripMenuItem.Click += new System.EventHandler(this.showScalingToolStripMenuItem_Click);
+      // 
+      // scaleValuesmanuallyToolStripMenuItem
+      // 
+      this.scaleValuesmanuallyToolStripMenuItem.Name = "scaleValuesmanuallyToolStripMenuItem";
+      this.scaleValuesmanuallyToolStripMenuItem.Size = new System.Drawing.Size(197, 22);
+      this.scaleValuesmanuallyToolStripMenuItem.Text = "Scale values (manually)";
+      this.scaleValuesmanuallyToolStripMenuItem.Click += new System.EventHandler(this.scaleValuesmanuallyToolStripMenuItem_Click);
       // 
       // DatasetView
@@ -180,4 +198,6 @@
     private System.Windows.Forms.ToolStripMenuItem scaleValuesToolStripMenuItem;
     private System.Windows.Forms.ToolStripMenuItem originalValuesToolStripMenuItem;
+    private System.Windows.Forms.ToolStripMenuItem scaleValuesmanuallyToolStripMenuItem;
+    private System.Windows.Forms.ToolStripMenuItem showScalingToolStripMenuItem;
   }
 }
Index: /trunk/sources/HeuristicLab.DataAnalysis/HeuristicLab.DataAnalysis.csproj
===================================================================
--- /trunk/sources/HeuristicLab.DataAnalysis/HeuristicLab.DataAnalysis.csproj	(revision 311)
+++ /trunk/sources/HeuristicLab.DataAnalysis/HeuristicLab.DataAnalysis.csproj	(revision 312)
@@ -62,4 +62,10 @@
     <Compile Include="HeuristicLabDataAnalysisPlugin.cs" />
     <Compile Include="IDatasetManipulator.cs" />
+    <Compile Include="ManualScalingControl.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="ManualScalingControl.Designer.cs">
+      <DependentUpon>ManualScalingControl.cs</DependentUpon>
+    </Compile>
     <Compile Include="Properties\AssemblyInfo.cs" />
     <Compile Include="Regression.cs" />
@@ -92,4 +98,7 @@
       <SubType>Designer</SubType>
     </EmbeddedResource>
+    <EmbeddedResource Include="ManualScalingControl.resx">
+      <DependentUpon>ManualScalingControl.cs</DependentUpon>
+    </EmbeddedResource>
     <EmbeddedResource Include="SvmExporter.resx">
       <DependentUpon>SvmExporter.cs</DependentUpon>
Index: /trunk/sources/HeuristicLab.DataAnalysis/ManualScalingControl.Designer.cs
===================================================================
--- /trunk/sources/HeuristicLab.DataAnalysis/ManualScalingControl.Designer.cs	(revision 312)
+++ /trunk/sources/HeuristicLab.DataAnalysis/ManualScalingControl.Designer.cs	(revision 312)
@@ -0,0 +1,88 @@
+﻿namespace HeuristicLab.DataAnalysis {
+  partial class ManualScalingControl {
+    /// <summary> 
+    /// Required designer variable.
+    /// </summary>
+    private System.ComponentModel.IContainer components = null;
+
+    /// <summary> 
+    /// Clean up any resources being used.
+    /// </summary>
+    /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+    protected override void Dispose(bool disposing) {
+      if(disposing && (components != null)) {
+        components.Dispose();
+      }
+      base.Dispose(disposing);
+    }
+
+    #region Component Designer generated code
+
+    /// <summary> 
+    /// Required method for Designer support - do not modify 
+    /// the contents of this method with the code editor.
+    /// </summary>
+    private void InitializeComponent() {
+      this.dataGridView = new System.Windows.Forms.DataGridView();
+      this.okButton = new System.Windows.Forms.Button();
+      this.cancelButton = new System.Windows.Forms.Button();
+      ((System.ComponentModel.ISupportInitialize)(this.dataGridView)).BeginInit();
+      this.SuspendLayout();
+      // 
+      // dataGridView
+      // 
+      this.dataGridView.AllowUserToAddRows = false;
+      this.dataGridView.AllowUserToDeleteRows = false;
+      this.dataGridView.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.dataGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
+      this.dataGridView.Location = new System.Drawing.Point(12, 12);
+      this.dataGridView.Name = "dataGridView";
+      this.dataGridView.ReadOnly = true;
+      this.dataGridView.Size = new System.Drawing.Size(268, 213);
+      this.dataGridView.TabIndex = 0;
+      this.dataGridView.CellValueChanged += new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGridView_CellValueChanged);
+      this.dataGridView.KeyDown += new System.Windows.Forms.KeyEventHandler(this.dataGridView_KeyDown);
+      // 
+      // okButton
+      // 
+      this.okButton.Location = new System.Drawing.Point(12, 231);
+      this.okButton.Name = "okButton";
+      this.okButton.Size = new System.Drawing.Size(75, 23);
+      this.okButton.TabIndex = 1;
+      this.okButton.Text = "okButton";
+      this.okButton.UseVisualStyleBackColor = true;
+      this.okButton.Click += new System.EventHandler(this.button_Click);
+      // 
+      // cancelButton
+      // 
+      this.cancelButton.Location = new System.Drawing.Point(93, 231);
+      this.cancelButton.Name = "cancelButton";
+      this.cancelButton.Size = new System.Drawing.Size(75, 23);
+      this.cancelButton.TabIndex = 2;
+      this.cancelButton.Text = "cancelButton";
+      this.cancelButton.UseVisualStyleBackColor = true;
+      this.cancelButton.Click += new System.EventHandler(this.cancelButton_Click);
+      // 
+      // ManualScalingControl
+      // 
+      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.ClientSize = new System.Drawing.Size(292, 266);
+      this.Controls.Add(this.cancelButton);
+      this.Controls.Add(this.okButton);
+      this.Controls.Add(this.dataGridView);
+      this.Name = "ManualScalingControl";
+      ((System.ComponentModel.ISupportInitialize)(this.dataGridView)).EndInit();
+      this.ResumeLayout(false);
+
+    }
+
+    #endregion
+
+    private System.Windows.Forms.DataGridView dataGridView;
+    private System.Windows.Forms.Button okButton;
+    private System.Windows.Forms.Button cancelButton;
+  }
+}
Index: /trunk/sources/HeuristicLab.DataAnalysis/ManualScalingControl.cs
===================================================================
--- /trunk/sources/HeuristicLab.DataAnalysis/ManualScalingControl.cs	(revision 312)
+++ /trunk/sources/HeuristicLab.DataAnalysis/ManualScalingControl.cs	(revision 312)
@@ -0,0 +1,90 @@
+﻿using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Drawing;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using HeuristicLab.PluginInfrastructure;
+using HeuristicLab.Core;
+
+namespace HeuristicLab.DataAnalysis {
+  public partial class ManualScalingControl : Form {
+    public ManualScalingControl(bool editingAllowed) {
+      InitializeComponent();
+      dataGridView.ReadOnly = !editingAllowed;
+      okButton.Text = editingAllowed ? "Scale" : "Close";
+      cancelButton.Visible = editingAllowed;
+      cancelButton.Text = "Cancel";
+    }
+
+    private double[,] data;
+    public double[,] Data {
+      get {
+        return data;
+      }
+      set {
+        data = value;
+        UpdateControls();
+      }
+    }
+
+    protected void UpdateControls() {
+      Refresh();
+      dataGridView.ColumnCount = data.GetLength(0);
+      dataGridView.RowCount = data.GetLength(1);
+      for(int i = 0; i < dataGridView.RowCount; i++) {
+        for(int j = 0; j < dataGridView.ColumnCount; j++) {
+          dataGridView[j,i].Value = data[j, i];
+        }
+      }
+      dataGridView.Columns[0].HeaderText = "Factor";
+      dataGridView.Columns[1].HeaderText = "Offset";
+    }
+
+    private void button_Click(object sender, EventArgs e) {
+      DialogResult = DialogResult.OK;
+    }
+
+    private void cancelButton_Click(object sender, EventArgs e) {
+      DialogResult = DialogResult.Cancel;
+    }
+
+    // stolen from the internets
+    private void dataGridView_KeyDown(object sender, KeyEventArgs e) {
+      if(e.Control && e.KeyCode == Keys.C) {
+        DataObject d = dataGridView.GetClipboardContent();
+        Clipboard.SetDataObject(d);
+        e.Handled = true;
+      } else if(e.Control && e.KeyCode == Keys.V) {
+        string s = Clipboard.GetText();
+        string[] lines = s.Split(new char[] {'\n', '\r'},StringSplitOptions.RemoveEmptyEntries);
+        int row = dataGridView.CurrentCell.RowIndex;
+        int col = dataGridView.CurrentCell.ColumnIndex;
+        foreach(string line in lines) {
+          if(row < dataGridView.RowCount && line.Length > 0) {
+            string[] cells = line.Split(new char[] {'\t',' ',';'},StringSplitOptions.RemoveEmptyEntries);
+            for(int i = 0; i < cells.Length; i++) {
+              if(col + i < this.dataGridView.ColumnCount) {
+                dataGridView[col + i, row].Value = double.Parse(cells[i]);
+              } else {
+                break;
+              }
+            }
+            row++;
+          } else {
+            break;
+          }
+        }
+        e.Handled = true;
+      }
+    }
+
+    private void dataGridView_CellValueChanged(object sender, DataGridViewCellEventArgs e) {
+      if(e.RowIndex >= 0 && e.ColumnIndex >= 0) {
+        data[e.ColumnIndex, e.RowIndex] = (double)dataGridView[e.ColumnIndex, e.RowIndex].Value;
+      }
+    }
+  }
+}
Index: /trunk/sources/HeuristicLab.DataAnalysis/ManualScalingControl.resx
===================================================================
--- /trunk/sources/HeuristicLab.DataAnalysis/ManualScalingControl.resx	(revision 312)
+++ /trunk/sources/HeuristicLab.DataAnalysis/ManualScalingControl.resx	(revision 312)
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+</root>
