Index: branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problems.ProgramSynthesis/Push/Views/ExpressionSelectionView.resx
===================================================================
--- branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problems.ProgramSynthesis/Push/Views/ExpressionSelectionView.resx	(revision 14875)
+++ branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problems.ProgramSynthesis/Push/Views/ExpressionSelectionView.resx	(revision 14897)
@@ -67,7 +67,7 @@
           <xsd:element name="metadata">
             <xsd:complexType>
-              <xsd:sequence>
+              <xsd:items>
                 <xsd:element name="value" types="xsd:string" minOccurs="0" />
-              </xsd:sequence>
+              </xsd:items>
               <xsd:attribute name="name" use="required" types="xsd:string" />
               <xsd:attribute name="types" types="xsd:string" />
@@ -84,8 +84,8 @@
           <xsd:element name="data">
             <xsd:complexType>
-              <xsd:sequence>
+              <xsd:items>
                 <xsd:element name="value" types="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                 <xsd:element name="comment" types="xsd:string" minOccurs="0" msdata:Ordinal="2" />
-              </xsd:sequence>
+              </xsd:items>
               <xsd:attribute name="name" types="xsd:string" use="required" msdata:Ordinal="1" />
               <xsd:attribute name="types" types="xsd:string" msdata:Ordinal="3" />
@@ -96,7 +96,7 @@
           <xsd:element name="resheader">
             <xsd:complexType>
-              <xsd:sequence>
+              <xsd:items>
                 <xsd:element name="value" types="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-              </xsd:sequence>
+              </xsd:items>
               <xsd:attribute name="name" types="xsd:string" use="required" />
             </xsd:complexType>
Index: branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problems.ProgramSynthesis/Push/Views/PushDebuggerView.Designer.cs
===================================================================
--- branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problems.ProgramSynthesis/Push/Views/PushDebuggerView.Designer.cs	(revision 14897)
+++ branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problems.ProgramSynthesis/Push/Views/PushDebuggerView.Designer.cs	(revision 14897)
@@ -0,0 +1,198 @@
+﻿namespace HeuristicLab.Problems.ProgramSynthesis.Push.Views {
+  using System.ComponentModel;
+  using System.Drawing;
+  using System.Windows.Forms;
+
+  partial class PushDebuggerView {
+    /// <summary>
+    /// Required designer variable.
+    /// </summary>
+    private 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 && (this.components != null)) {
+        this.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() {
+      System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(PushDebuggerView));
+      this.execGroupBox = new System.Windows.Forms.GroupBox();
+      this.execList = new System.Windows.Forms.ListBox();
+      this.debugTableLayout = new System.Windows.Forms.TableLayoutPanel();
+      this.stepButton = new System.Windows.Forms.Button();
+      this.resetButton = new System.Windows.Forms.Button();
+      this.stepWidthBox = new System.Windows.Forms.NumericUpDown();
+      this.runButton = new System.Windows.Forms.Button();
+      this.skipNoopsCheckBox = new System.Windows.Forms.CheckBox();
+      this.simplifyButton = new System.Windows.Forms.Button();
+      this.execGroupBox.SuspendLayout();
+      this.debugTableLayout.SuspendLayout();
+      ((System.ComponentModel.ISupportInitialize)(this.stepWidthBox)).BeginInit();
+      this.SuspendLayout();
+      //
+      // execGroupBox
+      //
+      this.execGroupBox.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.execGroupBox.AutoSize = true;
+      this.execGroupBox.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
+      this.execGroupBox.Controls.Add(this.execList);
+      this.execGroupBox.Location = new System.Drawing.Point(3, 3);
+      this.execGroupBox.Name = "execGroupBox";
+      this.execGroupBox.Size = new System.Drawing.Size(244, 460);
+      this.execGroupBox.TabIndex = 3;
+      this.execGroupBox.TabStop = false;
+      this.execGroupBox.Text = "Exec";
+      //
+      // execList
+      //
+      this.execList.Dock = System.Windows.Forms.DockStyle.Fill;
+      this.execList.FormattingEnabled = true;
+      this.execList.Location = new System.Drawing.Point(3, 16);
+      this.execList.Name = "execList";
+      this.execList.Size = new System.Drawing.Size(238, 441);
+      this.execList.TabIndex = 0;
+      //
+      // debugTableLayout
+      //
+      this.debugTableLayout.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.debugTableLayout.AutoScroll = true;
+      this.debugTableLayout.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
+      this.debugTableLayout.ColumnCount = 2;
+      this.debugTableLayout.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 250F));
+      this.debugTableLayout.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
+      this.debugTableLayout.Controls.Add(this.execGroupBox, 0, 0);
+      this.debugTableLayout.Location = new System.Drawing.Point(3, 3);
+      this.debugTableLayout.Name = "debugTableLayout";
+      this.debugTableLayout.RowCount = 1;
+      this.debugTableLayout.RowStyles.Add(new System.Windows.Forms.RowStyle());
+      this.debugTableLayout.Size = new System.Drawing.Size(872, 466);
+      this.debugTableLayout.TabIndex = 18;
+      //
+      // stepButton
+      //
+      this.stepButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+      this.stepButton.Image = ((System.Drawing.Image)(resources.GetObject("stepButton.Image")));
+      this.stepButton.Location = new System.Drawing.Point(109, 475);
+      this.stepButton.Name = "stepButton";
+      this.stepButton.Size = new System.Drawing.Size(28, 26);
+      this.stepButton.TabIndex = 22;
+      this.stepButton.UseVisualStyleBackColor = true;
+      //
+      // resetButton
+      //
+      this.resetButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+      this.resetButton.Image = ((System.Drawing.Image)(resources.GetObject("resetButton.Image")));
+      this.resetButton.Location = new System.Drawing.Point(3, 475);
+      this.resetButton.Name = "resetButton";
+      this.resetButton.Size = new System.Drawing.Size(28, 26);
+      this.resetButton.TabIndex = 23;
+      this.resetButton.UseVisualStyleBackColor = true;
+      //
+      // stepWidthBox
+      //
+      this.stepWidthBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+      this.stepWidthBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 11F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+      this.stepWidthBox.Location = new System.Drawing.Point(70, 476);
+      this.stepWidthBox.Maximum = new decimal(new int[] {
+            99999,
+            0,
+            0,
+            0});
+      this.stepWidthBox.Minimum = new decimal(new int[] {
+            1,
+            0,
+            0,
+            0});
+      this.stepWidthBox.Name = "stepWidthBox";
+      this.stepWidthBox.Size = new System.Drawing.Size(40, 24);
+      this.stepWidthBox.TabIndex = 21;
+      this.stepWidthBox.Value = new decimal(new int[] {
+            1,
+            0,
+            0,
+            0});
+      //
+      // runButton
+      //
+      this.runButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+      this.runButton.Image = ((System.Drawing.Image)(resources.GetObject("runButton.Image")));
+      this.runButton.Location = new System.Drawing.Point(37, 475);
+      this.runButton.Name = "runButton";
+      this.runButton.Size = new System.Drawing.Size(28, 26);
+      this.runButton.TabIndex = 24;
+      this.runButton.UseVisualStyleBackColor = true;
+      //
+      // skipNoopsCheckBox
+      //
+      this.skipNoopsCheckBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+      this.skipNoopsCheckBox.AutoSize = true;
+      this.skipNoopsCheckBox.Checked = true;
+      this.skipNoopsCheckBox.CheckState = System.Windows.Forms.CheckState.Checked;
+      this.skipNoopsCheckBox.Location = new System.Drawing.Point(147, 481);
+      this.skipNoopsCheckBox.Name = "skipNoopsCheckBox";
+      this.skipNoopsCheckBox.Size = new System.Drawing.Size(81, 17);
+      this.skipNoopsCheckBox.TabIndex = 25;
+      this.skipNoopsCheckBox.Text = "Skip NOOP";
+      this.skipNoopsCheckBox.UseVisualStyleBackColor = true;
+      //
+      // simplifyButton
+      //
+      this.simplifyButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+      this.simplifyButton.Location = new System.Drawing.Point(813, 475);
+      this.simplifyButton.Name = "simplifyButton";
+      this.simplifyButton.Size = new System.Drawing.Size(62, 26);
+      this.simplifyButton.TabIndex = 26;
+      this.simplifyButton.Text = "Simplify";
+      this.simplifyButton.UseVisualStyleBackColor = true;
+      //
+      // PushDebuggerView
+      //
+      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+      this.Controls.Add(this.simplifyButton);
+      this.Controls.Add(this.skipNoopsCheckBox);
+      this.Controls.Add(this.runButton);
+      this.Controls.Add(this.stepWidthBox);
+      this.Controls.Add(this.resetButton);
+      this.Controls.Add(this.stepButton);
+      this.Controls.Add(this.debugTableLayout);
+      this.Name = "PushDebuggerView";
+      this.Size = new System.Drawing.Size(878, 504);
+      this.execGroupBox.ResumeLayout(false);
+      this.debugTableLayout.ResumeLayout(false);
+      this.debugTableLayout.PerformLayout();
+      ((System.ComponentModel.ISupportInitialize)(this.stepWidthBox)).EndInit();
+      this.ResumeLayout(false);
+      this.PerformLayout();
+
+    }
+
+    #endregion
+
+    private GroupBox execGroupBox;
+    private ListBox execList;
+    private TableLayoutPanel debugTableLayout;
+    private Button stepButton;
+    private Button resetButton;
+    private NumericUpDown stepWidthBox;
+    private Button runButton;
+    private CheckBox skipNoopsCheckBox;
+    private Button simplifyButton;
+  }
+}
Index: branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problems.ProgramSynthesis/Push/Views/PushDebuggerView.cs
===================================================================
--- branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problems.ProgramSynthesis/Push/Views/PushDebuggerView.cs	(revision 14897)
+++ branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problems.ProgramSynthesis/Push/Views/PushDebuggerView.cs	(revision 14897)
@@ -0,0 +1,281 @@
+﻿using System;
+using System.Collections.Generic;
+using System.Drawing;
+using System.Linq;
+using System.Windows.Forms;
+
+namespace HeuristicLab.Problems.ProgramSynthesis.Push.Views {
+  using Configuration;
+  using Core.Views;
+  using Expressions;
+  using Interpreter;
+  using MainForm;
+  using Problem;
+  using Stack;
+
+  public partial class PushDebuggerView : ItemView {
+    private readonly IDictionary<StackTypes, ListBox> debugControlDict = new Dictionary<StackTypes, ListBox>();
+
+    private PooledPushInterpreter interpreter;
+    private PooledPushInterpreter interpreter2; // used to determine noops
+    private PushInterpreterPool pool;
+
+    private const string GroupBoxTextStringFormat = "{0}[{1}]";
+
+    public event EventHandler<IPushInterpreter> OnReset;
+
+    public PushDebuggerView() {
+      InitializeComponent();
+      InitEvents();
+    }
+
+    ~PushDebuggerView() {
+      interpreter.Dispose();
+      interpreter2.Dispose();
+    }
+
+    public new PushSolution Content
+    {
+      get { return (PushSolution)base.Content; }
+      set
+      {
+        base.Content = value;
+      }
+    }
+
+    protected override void OnContentChanged() {
+      if (Content == null) return;
+
+      Name = "Push Debugger";
+      pool = new PushInterpreterPool(Content.Config);
+
+      if (interpreter != null) {
+        interpreter.Dispose();
+        interpreter2.Dispose();
+      }
+
+      interpreter = pool.Create(Content.Random);
+      interpreter2 = pool.Create(Content.Random);
+
+
+      InitDebugLists(Content.Config);
+      ClearDebugLists();
+      UpdateExecList();
+      UpdateDebugLists();
+      ResetDebugging();
+    }
+
+    private void InitEvents() {
+      runButton.Click += RunButtonClick;
+      resetButton.Click += ResetButtonClick;
+      stepButton.Click += StepButtonClick;
+      simplifyButton.Click += SimplifyButtonClick;
+    }
+
+    private void RunButtonClick(object sender, EventArgs e) {
+      if (interpreter == null)
+        return;
+
+      interpreter.Resume();
+
+      ResetDebugging();
+      UpdateExecList();
+      UpdateDebugLists();
+      CheckIfButtonsCanBeEnabled();
+    }
+
+    private void StepButtonClick(object sender, EventArgs e) {
+      if (interpreter == null || stepWidthBox.Value <= 0)
+        return;
+
+      var count = Math.Min(stepWidthBox.Value, interpreter.ExecStack.Count);
+
+      if (!interpreter.CanStep)
+        return;
+
+      // skip leading noops
+      if (interpreter2.ExecCounter == (Content.Program.IsProgram ? 1 : 0) &&
+          skipNoopsCheckBox.Checked &&
+          SkipNoops()) {
+        count = 0; // no entries left, cause all were noops
+      }
+
+      for (var i = 0; i < count; i++) {
+        if (skipNoopsCheckBox.Checked) {
+          interpreter.Step();
+
+          if (SkipNoops())
+            break;
+        } else {
+          interpreter.Step();
+          interpreter2.Step();
+        }
+      }
+
+      stepWidthBox.Maximum = Math.Max(1, interpreter.ExecStack.Count);
+
+      UpdateExecList();
+      UpdateDebugLists();
+      CheckIfButtonsCanBeEnabled();
+    }
+
+    private bool SkipNoops() {
+      var skipCount = 0;
+      bool isNoop;
+
+      do {
+        skipCount++;
+        isNoop = !interpreter2.Step();
+      } while (interpreter2.CanStep && isNoop);
+
+      if (isNoop) {
+        interpreter.Step(skipCount);
+      } else if (skipCount > 1) {
+        interpreter.Step(skipCount - 1);
+      }
+
+      return isNoop;
+    }
+
+    private void CheckIfButtonsCanBeEnabled() {
+      runButton.Enabled = interpreter != null && interpreter.CanStep;
+      stepButton.Enabled = interpreter != null && interpreter.CanStep;
+      stepWidthBox.Enabled = interpreter != null && interpreter.CanStep;
+    }
+
+    private void ResetButtonClick(object sender, EventArgs e) {
+      ResetDebugging();
+    }
+
+    private void SimplifyButtonClick(object sender, EventArgs e) {
+      var newContent = Content.Simplify();
+
+      MainFormManager.MainForm.ShowContent(newContent, GetType());
+    }
+
+    public void ResetDebugging() {
+      if (Content == null ||
+          pool == null ||
+          Content.Program == null)
+        return;
+
+      if (interpreter != null) {
+        interpreter.Reset();
+        interpreter2.Reset();
+      }
+
+      if (OnReset != null) {
+        OnReset(this, interpreter);
+        OnReset(this, interpreter2);
+      }
+
+      interpreter.Run(Content.Program, true);
+      interpreter2.Run(Content.Program, true);
+
+      stepWidthBox.Maximum = interpreter.ExecStack.Count;
+
+      UpdateDebugLists();
+      UpdateExecList();
+      CheckIfButtonsCanBeEnabled();
+    }
+
+    private void ClearDebugLists() {
+      foreach (var list in debugControlDict.Values) {
+        list.Items.Clear();
+      }
+    }
+
+    private void UpdateExecList() {
+      execList.Items.Clear();
+      var expressions = interpreter.ExecStack.AsEnumerable()
+        .Reverse()
+        .Select(e => e.StringRepresentation)
+        .ToArray();
+
+      execList.Items.AddRange(expressions);
+      execGroupBox.Text = string.Format(GroupBoxTextStringFormat, Enum.GetName(typeof(StackTypes), StackTypes.Exec), interpreter.ExecStack.Count);
+    }
+
+    private void InitDebugLists(IReadOnlyPushConfiguration config) {
+      debugControlDict.Clear();
+
+      // 2 = ExecList + EmptyColumn which is required to fill empty space
+      while (debugTableLayout.ColumnCount > 2) {
+        debugTableLayout.Controls.RemoveAt(1);
+        debugTableLayout.ColumnCount--;
+      }
+
+      foreach (StackTypes stackType in Enum.GetValues(typeof(StackTypes))) {
+        if (stackType != StackTypes.Exec &&
+            ExpressionTable.GetExpressionsByStackTypes(stackType).Intersect(config.EnabledExpressions).Any()) {
+          var list = CreateDebugList(stackType);
+          debugControlDict.Add(stackType, list);
+        }
+      }
+    }
+
+    private ListBox CreateDebugList(StackTypes type) {
+      var groupBox = new GroupBox {
+        Anchor = AnchorStyles.Bottom | AnchorStyles.Right | AnchorStyles.Left | AnchorStyles.Top,
+        AutoSize = true,
+        AutoSizeMode = AutoSizeMode.GrowAndShrink,
+        Text = Enum.GetName(typeof(StackTypes), type)
+      };
+
+      var list = new ListBox {
+        Dock = DockStyle.Fill,
+        DrawMode = DrawMode.OwnerDrawFixed
+      };
+
+      var stackEntryType = type.GetStackEntryType();
+      if (stackEntryType == typeof(double) ||
+          stackEntryType == typeof(long)) {
+        list.DrawItem += (sender, e) => {
+          if (e.Index <= -1) return;
+          var item = list.Items[e.Index];
+
+          e.DrawBackground();
+          e.DrawFocusRectangle();
+
+          var brush = new SolidBrush(e.ForeColor);
+          var size = e.Graphics.MeasureString(item.ToString(), e.Font);
+
+          e.Graphics.DrawString(
+            item.ToString(),
+            e.Font,
+            brush,
+            e.Bounds.Right - size.Width,
+            e.Bounds.Top + (e.Bounds.Height / 2 - size.Height / 2));
+        };
+      }
+
+      groupBox.Controls.Add(list);
+
+      var columnWidth = stackEntryType == typeof(Expression) ? 250 : 150;
+
+      debugTableLayout.ColumnCount++;
+      debugTableLayout.ColumnStyles.Insert(1, new ColumnStyle(SizeType.Absolute, columnWidth));
+      debugTableLayout.Controls.Add(groupBox);
+      debugTableLayout.Controls.SetChildIndex(groupBox, 1);
+
+      return list;
+    }
+
+
+    private void UpdateDebugLists() {
+      ClearDebugLists();
+
+      if (Content == null || interpreter == null)
+        return;
+
+      foreach (var pair in debugControlDict) {
+        var stack = interpreter.GetStackEntriesByType<object>(pair.Key);
+        var name = Enum.GetName(typeof(StackTypes), pair.Key);
+
+        pair.Value.Items.AddRange(stack.Reverse().ToArray());
+        ((GroupBox)pair.Value.Parent).Text = string.Format(GroupBoxTextStringFormat, name, pair.Value.Items.Count);
+      }
+    }
+
+  }
+}
Index: branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problems.ProgramSynthesis/Push/Views/PushDebuggerView.resx
===================================================================
--- branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problems.ProgramSynthesis/Push/Views/PushDebuggerView.resx	(revision 14897)
+++ branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problems.ProgramSynthesis/Push/Views/PushDebuggerView.resx	(revision 14897)
@@ -0,0 +1,203 @@
+﻿<?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=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+  <data name="stepButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6
+        JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAACXBIWXMAAAsTAAALEwEAmpwYAAABFklE
+        QVQ4T2P4//8/Bk7oecKMTRwbxioINEAGiJmwyaFjrIKFs57/j5/8VokYQ7AK5s589j+h+97/uAmvNQh5
+        B6tgxpSn/+ft//0/qOHma6ABtvgMwSoI1PB/9r5f/zu3/v3vVnr5P5Bvj8sQDAEQjux69H/Ktl//S5b+
+        /Z8w/e9/m9yzOA1B4cBwYPPD/61r34M1G5d8+S8dfe2/ceSy/w5FZ+PRDUHRCMMeVff/l8x9B9es6NLz
+        X9pndSA2tRgCIGxfevd/YMszJM0rvbCpA2GsghZ5d/7bFFyBabbBpgaGsQoaZt0Ga5byWu6KTR4ZYxXU
+        SbsBtHmNLzY5dIxVUMp7rZ+09wqciQcZYxUkBWMVJB7/ZwAA4djU9I5dK1UAAAAASUVORK5CYII=
+</value>
+  </data>
+  <data name="resetButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        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
+</value>
+  </data>
+  <data name="runButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6
+        JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAsElE
+        QVQ4T2P4//8/RRirYNn+bDds4tgwVsGEGRH/iTUEqyDIAMsyfaIMwSoYNSXo/4Zbi4kyBKtg8ARvkEai
+        DMEq6NPlDDYAhKMWBeA1BEMAhB2bLf5nbIgFa7Zt1v+vU6zwXyKNG0SroatF4cCweY0eimb+BBasmkEY
+        QwCE9UqVidIMwlgFVfKliNIMwlgFpTMEidIMwlgFRZI5idIMwlgFidUMwlgFScFYBYnH/xkAJP3E6UxO
+        vJ8AAAAASUVORK5CYII=
+</value>
+  </data>
+</root>
Index: branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problems.ProgramSynthesis/Push/Views/PushProgramDebuggerView.Designer.cs
===================================================================
--- branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problems.ProgramSynthesis/Push/Views/PushProgramDebuggerView.Designer.cs	(revision 14875)
+++ 	(revision )
@@ -1,305 +1,0 @@
-﻿namespace HeuristicLab.Problems.ProgramSynthesis.Push.Views {
-  partial class PushProgramDebuggerView {
-    /// <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() {
-      System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(PushProgramDebuggerView));
-      this.tabControl = new System.Windows.Forms.TabControl();
-      this.tabPage1 = new System.Windows.Forms.TabPage();
-      this.simplifyButton = new System.Windows.Forms.Button();
-      this.skipNoopsCheckBox = new System.Windows.Forms.CheckBox();
-      this.runButton = new System.Windows.Forms.Button();
-      this.stepWidthBox = new System.Windows.Forms.NumericUpDown();
-      this.resetButton = new System.Windows.Forms.Button();
-      this.stepButton = new System.Windows.Forms.Button();
-      this.exampleComboBox = new System.Windows.Forms.ComboBox();
-      this.label1 = new System.Windows.Forms.Label();
-      this.debugTableLayout = new System.Windows.Forms.TableLayoutPanel();
-      this.execGroupBox = new System.Windows.Forms.GroupBox();
-      this.execList = new System.Windows.Forms.ListBox();
-      this.tabPage2 = new System.Windows.Forms.TabPage();
-      this.resultsDataGrid = new System.Windows.Forms.DataGridView();
-      ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit();
-      this.tabControl.SuspendLayout();
-      this.tabPage1.SuspendLayout();
-      ((System.ComponentModel.ISupportInitialize)(this.stepWidthBox)).BeginInit();
-      this.debugTableLayout.SuspendLayout();
-      this.execGroupBox.SuspendLayout();
-      this.tabPage2.SuspendLayout();
-      ((System.ComponentModel.ISupportInitialize)(this.resultsDataGrid)).BeginInit();
-      this.SuspendLayout();
-      //
-      // nameTextBox
-      //
-      this.errorProvider.SetIconAlignment(this.nameTextBox, System.Windows.Forms.ErrorIconAlignment.MiddleLeft);
-      this.errorProvider.SetIconPadding(this.nameTextBox, 2);
-      this.nameTextBox.Size = new System.Drawing.Size(889, 20);
-      //
-      // infoLabel
-      //
-      this.infoLabel.Location = new System.Drawing.Point(972, 3);
-      //
-      // tabControl
-      //
-      this.tabControl.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.tabControl.Controls.Add(this.tabPage1);
-      this.tabControl.Controls.Add(this.tabPage2);
-      this.tabControl.Location = new System.Drawing.Point(6, 26);
-      this.tabControl.Name = "tabControl";
-      this.tabControl.SelectedIndex = 0;
-      this.tabControl.Size = new System.Drawing.Size(982, 668);
-      this.tabControl.TabIndex = 12;
-      //
-      // tabPage1
-      //
-      this.tabPage1.AutoScroll = true;
-      this.tabPage1.Controls.Add(this.simplifyButton);
-      this.tabPage1.Controls.Add(this.skipNoopsCheckBox);
-      this.tabPage1.Controls.Add(this.runButton);
-      this.tabPage1.Controls.Add(this.stepWidthBox);
-      this.tabPage1.Controls.Add(this.resetButton);
-      this.tabPage1.Controls.Add(this.stepButton);
-      this.tabPage1.Controls.Add(this.exampleComboBox);
-      this.tabPage1.Controls.Add(this.label1);
-      this.tabPage1.Controls.Add(this.debugTableLayout);
-      this.tabPage1.Location = new System.Drawing.Point(4, 22);
-      this.tabPage1.Name = "tabPage1";
-      this.tabPage1.Padding = new System.Windows.Forms.Padding(3);
-      this.tabPage1.Size = new System.Drawing.Size(974, 642);
-      this.tabPage1.TabIndex = 0;
-      this.tabPage1.Text = "Debug";
-      this.tabPage1.UseVisualStyleBackColor = true;
-      //
-      // simplifyButton
-      //
-      this.simplifyButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
-      this.simplifyButton.Location = new System.Drawing.Point(909, 610);
-      this.simplifyButton.Name = "simplifyButton";
-      this.simplifyButton.Size = new System.Drawing.Size(62, 26);
-      this.simplifyButton.TabIndex = 17;
-      this.simplifyButton.Text = "Simplify";
-      this.toolTip.SetToolTip(this.simplifyButton, "Run all instructions");
-      this.simplifyButton.UseVisualStyleBackColor = true;
-      //
-      // skipNoopsCheckBox
-      //
-      this.skipNoopsCheckBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
-      this.skipNoopsCheckBox.AutoSize = true;
-      this.skipNoopsCheckBox.Checked = true;
-      this.skipNoopsCheckBox.CheckState = System.Windows.Forms.CheckState.Checked;
-      this.skipNoopsCheckBox.Location = new System.Drawing.Point(150, 616);
-      this.skipNoopsCheckBox.Name = "skipNoopsCheckBox";
-      this.skipNoopsCheckBox.Size = new System.Drawing.Size(81, 17);
-      this.skipNoopsCheckBox.TabIndex = 16;
-      this.skipNoopsCheckBox.Text = "Skip NOOP";
-      this.skipNoopsCheckBox.UseVisualStyleBackColor = true;
-      //
-      // runButton
-      //
-      this.runButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
-      this.runButton.Image = ((System.Drawing.Image)(resources.GetObject("runButton.Image")));
-      this.runButton.Location = new System.Drawing.Point(40, 610);
-      this.runButton.Name = "runButton";
-      this.runButton.Size = new System.Drawing.Size(28, 26);
-      this.runButton.TabIndex = 15;
-      this.toolTip.SetToolTip(this.runButton, "Run all instructions");
-      this.runButton.UseVisualStyleBackColor = true;
-      //
-      // stepWidthBox
-      //
-      this.stepWidthBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
-      this.stepWidthBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 11F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-      this.stepWidthBox.Location = new System.Drawing.Point(73, 611);
-      this.stepWidthBox.Maximum = new decimal(new int[] {
-            99999,
-            0,
-            0,
-            0});
-      this.stepWidthBox.Minimum = new decimal(new int[] {
-            1,
-            0,
-            0,
-            0});
-      this.stepWidthBox.Name = "stepWidthBox";
-      this.stepWidthBox.Size = new System.Drawing.Size(40, 24);
-      this.stepWidthBox.TabIndex = 12;
-      this.stepWidthBox.Value = new decimal(new int[] {
-            1,
-            0,
-            0,
-            0});
-      //
-      // resetButton
-      //
-      this.resetButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
-      this.resetButton.Image = ((System.Drawing.Image)(resources.GetObject("resetButton.Image")));
-      this.resetButton.Location = new System.Drawing.Point(6, 610);
-      this.resetButton.Name = "resetButton";
-      this.resetButton.Size = new System.Drawing.Size(28, 26);
-      this.resetButton.TabIndex = 14;
-      this.toolTip.SetToolTip(this.resetButton, "ResetDebugging to start");
-      this.resetButton.UseVisualStyleBackColor = true;
-      //
-      // stepButton
-      //
-      this.stepButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
-      this.stepButton.Image = ((System.Drawing.Image)(resources.GetObject("stepButton.Image")));
-      this.stepButton.Location = new System.Drawing.Point(112, 610);
-      this.stepButton.Name = "stepButton";
-      this.stepButton.Size = new System.Drawing.Size(28, 26);
-      this.stepButton.TabIndex = 13;
-      this.toolTip.SetToolTip(this.stepButton, "Step");
-      this.stepButton.UseVisualStyleBackColor = true;
-      //
-      // exampleComboBox
-      //
-      this.exampleComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
-            | System.Windows.Forms.AnchorStyles.Right)));
-      this.exampleComboBox.FormattingEnabled = true;
-      this.exampleComboBox.Location = new System.Drawing.Point(58, 6);
-      this.exampleComboBox.Name = "exampleComboBox";
-      this.exampleComboBox.Size = new System.Drawing.Size(910, 21);
-      this.exampleComboBox.TabIndex = 11;
-      //
-      // label1
-      //
-      this.label1.AutoSize = true;
-      this.label1.Location = new System.Drawing.Point(3, 9);
-      this.label1.Name = "label1";
-      this.label1.Size = new System.Drawing.Size(50, 13);
-      this.label1.TabIndex = 10;
-      this.label1.Text = "Example:";
-      //
-      // debugTableLayout
-      //
-      this.debugTableLayout.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.debugTableLayout.AutoScroll = true;
-      this.debugTableLayout.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
-      this.debugTableLayout.ColumnCount = 2;
-      this.debugTableLayout.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 250F));
-      this.debugTableLayout.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
-      this.debugTableLayout.Controls.Add(this.execGroupBox, 0, 0);
-      this.debugTableLayout.Location = new System.Drawing.Point(6, 33);
-      this.debugTableLayout.Name = "debugTableLayout";
-      this.debugTableLayout.RowCount = 1;
-      this.debugTableLayout.RowStyles.Add(new System.Windows.Forms.RowStyle());
-      this.debugTableLayout.Size = new System.Drawing.Size(962, 563);
-      this.debugTableLayout.TabIndex = 2;
-      //
-      // execGroupBox
-      //
-      this.execGroupBox.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.execGroupBox.AutoSize = true;
-      this.execGroupBox.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
-      this.execGroupBox.Controls.Add(this.execList);
-      this.execGroupBox.Location = new System.Drawing.Point(3, 3);
-      this.execGroupBox.Name = "execGroupBox";
-      this.execGroupBox.Size = new System.Drawing.Size(244, 557);
-      this.execGroupBox.TabIndex = 3;
-      this.execGroupBox.TabStop = false;
-      this.execGroupBox.Text = "Exec";
-      //
-      // execList
-      //
-      this.execList.Dock = System.Windows.Forms.DockStyle.Fill;
-      this.execList.FormattingEnabled = true;
-      this.execList.Location = new System.Drawing.Point(3, 16);
-      this.execList.Name = "execList";
-      this.execList.Size = new System.Drawing.Size(238, 538);
-      this.execList.TabIndex = 0;
-      //
-      // tabPage2
-      //
-      this.tabPage2.Controls.Add(this.resultsDataGrid);
-      this.tabPage2.Location = new System.Drawing.Point(4, 22);
-      this.tabPage2.Name = "tabPage2";
-      this.tabPage2.Padding = new System.Windows.Forms.Padding(3);
-      this.tabPage2.Size = new System.Drawing.Size(974, 608);
-      this.tabPage2.TabIndex = 1;
-      this.tabPage2.Text = "Results";
-      this.tabPage2.UseVisualStyleBackColor = true;
-      //
-      // resultsDataGrid
-      //
-      this.resultsDataGrid.AllowUserToAddRows = false;
-      this.resultsDataGrid.AllowUserToDeleteRows = false;
-      this.resultsDataGrid.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
-      this.resultsDataGrid.Dock = System.Windows.Forms.DockStyle.Fill;
-      this.resultsDataGrid.EditMode = System.Windows.Forms.DataGridViewEditMode.EditProgrammatically;
-      this.resultsDataGrid.Location = new System.Drawing.Point(3, 3);
-      this.resultsDataGrid.Name = "resultsDataGrid";
-      this.resultsDataGrid.ReadOnly = true;
-      this.resultsDataGrid.Size = new System.Drawing.Size(968, 602);
-      this.resultsDataGrid.TabIndex = 0;
-      //
-      // PushProgramDebuggerView
-      //
-      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
-      this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-      this.Controls.Add(this.tabControl);
-      this.Name = "PushProgramDebuggerView";
-      this.Size = new System.Drawing.Size(991, 697);
-      this.Controls.SetChildIndex(this.tabControl, 0);
-      this.Controls.SetChildIndex(this.nameLabel, 0);
-      this.Controls.SetChildIndex(this.nameTextBox, 0);
-      this.Controls.SetChildIndex(this.infoLabel, 0);
-      ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit();
-      this.tabControl.ResumeLayout(false);
-      this.tabPage1.ResumeLayout(false);
-      this.tabPage1.PerformLayout();
-      ((System.ComponentModel.ISupportInitialize)(this.stepWidthBox)).EndInit();
-      this.debugTableLayout.ResumeLayout(false);
-      this.debugTableLayout.PerformLayout();
-      this.execGroupBox.ResumeLayout(false);
-      this.tabPage2.ResumeLayout(false);
-      ((System.ComponentModel.ISupportInitialize)(this.resultsDataGrid)).EndInit();
-      this.ResumeLayout(false);
-      this.PerformLayout();
-
-    }
-
-    #endregion
-
-    private System.Windows.Forms.TabControl tabControl;
-    private System.Windows.Forms.TabPage tabPage1;
-    private System.Windows.Forms.CheckBox skipNoopsCheckBox;
-    private System.Windows.Forms.Button runButton;
-    private System.Windows.Forms.NumericUpDown stepWidthBox;
-    private System.Windows.Forms.Button resetButton;
-    private System.Windows.Forms.Button stepButton;
-    private System.Windows.Forms.ComboBox exampleComboBox;
-    private System.Windows.Forms.Label label1;
-    private System.Windows.Forms.TabPage tabPage2;
-    private System.Windows.Forms.DataGridView resultsDataGrid;
-    private System.Windows.Forms.Button simplifyButton;
-    private System.Windows.Forms.GroupBox execGroupBox;
-    private System.Windows.Forms.TableLayoutPanel debugTableLayout;
-    private System.Windows.Forms.ListBox execList;
-  }
-}
Index: branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problems.ProgramSynthesis/Push/Views/PushProgramDebuggerView.cs
===================================================================
--- branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problems.ProgramSynthesis/Push/Views/PushProgramDebuggerView.cs	(revision 14875)
+++ 	(revision )
@@ -1,452 +1,0 @@
-﻿using System.Windows.Forms;
-
-using HeuristicLab.Core.Views;
-using HeuristicLab.MainForm;
-
-namespace HeuristicLab.Problems.ProgramSynthesis.Push.Views {
-  using System;
-  using System.Collections.Generic;
-  using System.Drawing;
-  using System.Globalization;
-  using System.Linq;
-
-  using HeuristicLab.BenchmarkSuite;
-  using HeuristicLab.BenchmarkSuite.Problems;
-  using HeuristicLab.BenchmarkSuite.Views;
-  using HeuristicLab.Core;
-  using HeuristicLab.Encodings.IntegerVectorEncoding;
-  using HeuristicLab.Problems.ProgramSynthesis.Push.Configuration;
-  using HeuristicLab.Problems.ProgramSynthesis.Push.Expressions;
-  using HeuristicLab.Problems.ProgramSynthesis.Push.Interpreter;
-  using HeuristicLab.Problems.ProgramSynthesis.Push.Problem;
-  using HeuristicLab.Problems.ProgramSynthesis.Push.Stack;
-
-  [View("Push Program Debugger")]
-  [Content(typeof(PushSolution), true)]
-  public partial class PushProgramDebuggerView : NamedItemView {
-    private readonly IDictionary<StackTypes, ListBox> debugControlDict = new Dictionary<StackTypes, ListBox>();
-
-    private const string Separator = ", ";
-    private const string EmptySign = "-";
-
-    private const string exampleSplitter = " => ";
-    private const string AbsoluteDiffHeaderText = "Absolute Diff.";
-    private const string RelativeDiffHeaderText = "Relative Diff.";
-    private const string InputHeaderStringFormat = "Input {0} : {1}";
-    private const string EstimatedOuputHeaderStringFormat = "Estimated Output {0} : {1}";
-    private const string OutputHeaderStringFormat = "Output {0} : {1}";
-    private const string GroupBoxTextStringFormat = "{0}[{1}]";
-
-    private PushProgram program;
-    private PooledPushInterpreter interpreter;
-    private PooledPushInterpreter interpreter2; // used to determine noops
-    private PushInterpreterPool pool;
-
-    public PushProgramDebuggerView() {
-      InitializeComponent();
-
-      Name = "Push Program Debugger";
-
-      InitEvents();
-    }
-
-    ~PushProgramDebuggerView() {
-      interpreter.Dispose();
-      interpreter2.Dispose();
-    }
-
-    private void InitEvents() {
-      exampleComboBox.SelectedIndexChanged += SelectedExampleIndexChanged;
-      runButton.Click += RunButtonClick;
-      resetButton.Click += ResetButtonClick;
-      stepButton.Click += StepButtonClick;
-      simplifyButton.Click += SimplifyButtonClick;
-    }
-
-    private void SimplifyButtonClick(object sender, EventArgs e) {
-      var newContent = new PushSolution(
-                         (IntegerVector)Content.IntegerVector.Clone(),
-                         Content.Quality,
-                         (ProblemData)Content.Data.Clone(),
-                         (IRandom)Content.Random.Clone(),
-                         Content.Config,
-                         Content.DataStart,
-                         Content.DataEnd,
-                         true);
-
-      MainFormManager.MainForm.ShowContent(newContent, GetType());
-    }
-
-    private void RunButtonClick(object sender, EventArgs e) {
-      if (interpreter == null)
-        return;
-
-      interpreter.Resume();
-
-      UpdateExecList();
-      this.UpdateDebugLists();
-      CheckIfButtonsCanBeEnabled();
-    }
-
-    private void StepButtonClick(object sender, EventArgs e) {
-      if (interpreter == null || stepWidthBox.Value <= 0)
-        return;
-
-      var count = Math.Min(stepWidthBox.Value, interpreter.ExecStack.Count);
-
-      if (!interpreter.CanStep)
-        return;
-
-      // skip leading noops
-      if (interpreter2.ExecCounter == (program.IsProgram ? 1 : 0) &&
-          skipNoopsCheckBox.Checked &&
-          SkipNoops()) {
-        count = 0; // no entries left, cause all were noops
-      }
-
-      for (var i = 0; i < count; i++) {
-        if (skipNoopsCheckBox.Checked) {
-          interpreter.Step();
-
-          if (SkipNoops())
-            break;
-        } else {
-          interpreter.Step();
-          interpreter2.Step();
-        }
-      }
-
-      stepWidthBox.Maximum = Math.Max(1, interpreter.ExecStack.Count);
-
-      UpdateExecList();
-      this.UpdateDebugLists();
-      CheckIfButtonsCanBeEnabled();
-    }
-
-    private bool SkipNoops() {
-      var skipCount = 0;
-      bool isNoop;
-
-      do {
-        skipCount++;
-        isNoop = !interpreter2.Step();
-      } while (interpreter2.CanStep && isNoop);
-
-      if (isNoop) {
-        interpreter.Step(skipCount);
-      } else if (skipCount > 1) {
-        interpreter.Step(skipCount - 1);
-      }
-
-      return isNoop;
-    }
-
-    private void CheckIfButtonsCanBeEnabled() {
-      runButton.Enabled = interpreter != null && interpreter.CanStep;
-      stepButton.Enabled = interpreter != null && interpreter.CanStep;
-      stepWidthBox.Enabled = interpreter != null && interpreter.CanStep;
-    }
-
-    private void ResetButtonClick(object sender, EventArgs e) {
-      this.ResetDebugging();
-    }
-
-    private void SelectedExampleIndexChanged(object sender, EventArgs e) {
-      this.ResetDebugging();
-    }
-
-    public new PushSolution Content
-    {
-      get { return (PushSolution)base.Content; }
-      set
-      {
-        base.Content = value;
-      }
-    }
-
-    private void ResetDebugging() {
-      if (Content == null ||
-          pool == null ||
-          program == null ||
-          exampleComboBox.SelectedIndex < 0)
-        return;
-
-      var example = Content.Data.Examples[exampleComboBox.SelectedIndex];
-
-      if (interpreter != null) {
-        interpreter.Reset();
-        interpreter2.Reset();
-      }
-
-      interpreter.BooleanStack.Push(example.InputBoolean);
-      interpreter.IntegerStack.Push(example.InputInteger);
-      interpreter.FloatStack.Push(example.InputFloat);
-
-      interpreter2.BooleanStack.Push(example.InputBoolean);
-      interpreter2.IntegerStack.Push(example.InputInteger);
-      interpreter2.FloatStack.Push(example.InputFloat);
-
-      interpreter.Run(program, true);
-      interpreter2.Run(program, true);
-
-      stepWidthBox.Maximum = interpreter.ExecStack.Count;
-
-      this.UpdateDebugLists();
-      UpdateExecList();
-      CheckIfButtonsCanBeEnabled();
-    }
-
-    protected override void OnContentChanged() {
-      if (Content == null) return;
-
-      Name = "Push Solution";
-      nameTextBox.Text = Name;
-
-      pool = new PushInterpreterPool(Content.Config);
-      program = Content.IntegerVector.ToPushProgram(Content.Config);
-
-      if (interpreter != null) {
-        interpreter.Dispose();
-        interpreter2.Dispose();
-      }
-
-      interpreter = pool.Create(Content.Random);
-      interpreter2 = pool.Create(Content.Random);
-
-      if (Content.Simplify)
-        program = Simplifier.Simplifier.Simplify(program, p => PushEvaluator.Evaluate(p, pool, Content.Random, Content.Data, Content.DataStart, Content.DataEnd).TotalQuality);
-
-      UpdateExamples(Content.Data);
-
-      if (exampleComboBox.SelectedIndex < 0) {
-        exampleComboBox.SelectedIndex = 0; // Triggers ResetDebugging via event
-      } else {
-        ResetDebugging();
-      }
-
-      InitDebugLists(Content.Config);
-      InitResultGrid();
-      this.ClearDebugLists();
-      UpdateExecList();
-      this.UpdateDebugLists();
-    }
-
-    private void InitResultGrid() {
-      resultsDataGrid.Columns.Clear();
-      resultsDataGrid.Rows.Clear();
-
-      var cellTemplate = new DataGridViewTextBoxCell();
-
-      for (var i = 0; i < Content.Data.InputArgumentTypes.Length; i++) {
-        var headerTypeName = ViewHelper.GetHeaderTypeName(Content.Data.InputArgumentTypes[i]);
-        var column = new DataGridViewColumn {
-          HeaderText = string.Format(InputHeaderStringFormat, i + 1, headerTypeName),
-          AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill,
-          CellTemplate = cellTemplate
-        };
-
-        column.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
-        resultsDataGrid.Columns.Add(column);
-      }
-
-      for (var i = 0; i < Content.Data.OutputArgumentTypes.Length; i++) {
-        var headerTypeName = ViewHelper.GetHeaderTypeName(Content.Data.OutputArgumentTypes[i]);
-
-        var estimatedOutputColumn = new DataGridViewColumn {
-          HeaderText = string.Format(EstimatedOuputHeaderStringFormat, i + 1, headerTypeName),
-          AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill,
-          CellTemplate = cellTemplate,
-        };
-
-        var outputColumn = new DataGridViewColumn {
-          HeaderText = string.Format(OutputHeaderStringFormat, i + 1, headerTypeName),
-          AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill,
-          CellTemplate = cellTemplate
-        };
-
-        estimatedOutputColumn.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
-        outputColumn.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
-
-        resultsDataGrid.Columns.Add(estimatedOutputColumn);
-        resultsDataGrid.Columns.Add(outputColumn);
-      }
-
-      var absoluteDiffColumn = new DataGridViewColumn {
-        HeaderText = AbsoluteDiffHeaderText,
-        AutoSizeMode = DataGridViewAutoSizeColumnMode.ColumnHeader,
-        CellTemplate = cellTemplate
-      };
-
-      var relativeDiffColumn = new DataGridViewColumn {
-        HeaderText = RelativeDiffHeaderText,
-        AutoSizeMode = DataGridViewAutoSizeColumnMode.ColumnHeader,
-        CellTemplate = cellTemplate,
-      };
-
-      absoluteDiffColumn.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
-      relativeDiffColumn.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
-
-      resultsDataGrid.Columns.Add(absoluteDiffColumn);
-      resultsDataGrid.Columns.Add(relativeDiffColumn);
-
-      using (var pushInterpreter = pool.Create(Content.Random)) {
-        foreach (var example in Content.Data.Examples) {
-          var row = new DataGridViewRow();
-          var absoluteDiff = PushEvaluator.Evaluate(pushInterpreter, program, example, Content.Data.WorstResult);
-          var relativeDiff = absoluteDiff / Math.Abs(Content.Data.BestResult - Content.Data.WorstResult) * 100d;
-
-          row.HeaderCell.Value = row.Index + 1;
-          row.CreateCells(resultsDataGrid);
-
-          for (var i = 0; i < Content.Data.InputArgumentTypes.Length; i++) {
-            row.Cells[i].Value = ViewHelper.StringifyInput(Content.Data.InputArgumentTypes[i], example, Separator);
-          }
-
-          for (var i = 0; i < Content.Data.OutputArgumentTypes.Length; i++) {
-            row.Cells[Content.Data.InputArgumentTypes.Length + i * 2].Value = ViewHelper.StringifyOutput(Content.Data.OutputArgumentTypes[i], example, Separator);
-            row.Cells[Content.Data.InputArgumentTypes.Length + i * 2 + 1].Value = StringifyResult(Content.Data.OutputArgumentTypes[i], pushInterpreter, example, Separator);
-          }
-
-          row.Cells[Content.Data.TotalArgumentCount + 1].Value = absoluteDiff;
-          row.Cells[Content.Data.TotalArgumentCount + 2].Value = relativeDiff + "%";
-
-          this.resultsDataGrid.Rows.Add(row);
-          pushInterpreter.Reset();
-        }
-      }
-    }
-
-    private string StringifyResult(ExampleArgumentType type, IPushInterpreter interpreter, Example example, string valueSeparator) {
-      switch (type) {
-        case ExampleArgumentType.Integer:
-        case ExampleArgumentType.IntegerVector: return interpreter.IntegerStack.IsEmpty ? EmptySign : string.Join(valueSeparator, interpreter.IntegerStack.Peek(GetCount(interpreter.IntegerStack, example.OutputInteger)));
-
-        case ExampleArgumentType.Float:
-        case ExampleArgumentType.FloatVector: return interpreter.FloatStack.IsEmpty ? EmptySign : string.Join(valueSeparator, interpreter.FloatStack.Peek(GetCount(interpreter.FloatStack, example.OutputFloat)).Select(d => d.ToString(CultureInfo.CurrentUICulture)));
-
-        case ExampleArgumentType.Boolean: return interpreter.BooleanStack.IsEmpty ? EmptySign : interpreter.BooleanStack.Top.ToString();
-        case ExampleArgumentType.Char: return interpreter.CharStack.IsEmpty ? EmptySign : interpreter.CharStack.Top.ToString();
-
-        case ExampleArgumentType.String:
-        case ExampleArgumentType.StringVector: return interpreter.StringStack.IsEmpty ? EmptySign : string.Join(valueSeparator, interpreter.StringStack.Peek(GetCount(interpreter.StringStack, example.OutputString)));
-        default: return string.Empty;
-      }
-    }
-
-    private int GetCount<T>(IPushStack<T> stack, T[] data) {
-      return Math.Max(0, Math.Min(data.Length, stack.Count));
-    }
-
-    private void ClearDebugLists() {
-      foreach (var list in debugControlDict.Values) {
-        list.Items.Clear();
-      }
-    }
-
-    private void UpdateExecList() {
-      execList.Items.Clear();
-      var expressions = interpreter.ExecStack.AsEnumerable()
-        .Reverse()
-        .Select(e => e.StringRepresentation)
-        .ToArray();
-
-      execList.Items.AddRange(expressions);
-      execGroupBox.Text = string.Format(GroupBoxTextStringFormat, Enum.GetName(typeof(StackTypes), StackTypes.Exec), interpreter.ExecStack.Count);
-    }
-
-    private void InitDebugLists(IReadOnlyPushConfiguration config) {
-      debugControlDict.Clear();
-
-      // 2 = ExecList + EmptyColumn which is required to fill empty space
-      while (debugTableLayout.ColumnCount > 2) {
-        debugTableLayout.Controls.RemoveAt(1);
-        debugTableLayout.ColumnCount--;
-      }
-
-      foreach (StackTypes stackType in Enum.GetValues(typeof(StackTypes))) {
-        if (stackType != StackTypes.Exec &&
-            ExpressionTable.GetExpressionsByStackTypes(stackType).Intersect(config.EnabledExpressions).Any()) {
-          var list = this.CreateDebugList(stackType);
-          debugControlDict.Add(stackType, list);
-        }
-      }
-    }
-
-    private ListBox CreateDebugList(StackTypes type) {
-      var groupBox = new GroupBox {
-        Anchor = AnchorStyles.Bottom | AnchorStyles.Right | AnchorStyles.Left | AnchorStyles.Top,
-        AutoSize = true,
-        AutoSizeMode = AutoSizeMode.GrowAndShrink,
-        Text = Enum.GetName(typeof(StackTypes), type)
-      };
-
-      var list = new ListBox {
-        Dock = DockStyle.Fill,
-        DrawMode = DrawMode.OwnerDrawFixed
-      };
-
-      var stackEntryType = type.GetStackEntryType();
-      if (stackEntryType == typeof(double) ||
-          stackEntryType == typeof(long)) {
-        list.DrawItem += (sender, e) => {
-          if (e.Index <= -1) return;
-          var item = list.Items[e.Index];
-
-          e.DrawBackground();
-          e.DrawFocusRectangle();
-
-          var brush = new SolidBrush(e.ForeColor);
-          var size = e.Graphics.MeasureString(item.ToString(), e.Font);
-
-          e.Graphics.DrawString(
-            item.ToString(),
-            e.Font,
-            brush,
-            e.Bounds.Right - size.Width,
-            e.Bounds.Top + (e.Bounds.Height / 2 - size.Height / 2));
-        };
-      }
-
-      groupBox.Controls.Add(list);
-
-      var columnWidth = stackEntryType == typeof(Expression) ? 250 : 150;
-
-      debugTableLayout.ColumnCount++;
-      debugTableLayout.ColumnStyles.Insert(1, new ColumnStyle(SizeType.Absolute, columnWidth));
-      debugTableLayout.Controls.Add(groupBox);
-      debugTableLayout.Controls.SetChildIndex(groupBox, 1);
-
-      return list;
-    }
-
-
-    private void UpdateDebugLists() {
-      this.ClearDebugLists();
-
-      if (Content == null || interpreter == null)
-        return;
-
-      foreach (var pair in debugControlDict) {
-        var stack = interpreter.GetStackEntriesByType<object>(pair.Key);
-        var name = Enum.GetName(typeof(StackTypes), pair.Key);
-
-        pair.Value.Items.AddRange(stack.Reverse().ToArray());
-        ((GroupBox)pair.Value.Parent).Text = string.Format(GroupBoxTextStringFormat, name, pair.Value.Items.Count);
-      }
-    }
-
-    private void UpdateExamples(ProblemData data) {
-      exampleComboBox.Items.Clear();
-      if (data == null) return;
-
-      var stringRepresentations = data.Examples.Select(e =>
-        string.Join(Separator, e.InputArgs) +
-        exampleSplitter +
-        string.Join(Separator, e.OutputArgs));
-
-      foreach (var str in stringRepresentations) {
-        exampleComboBox.Items.Add(str);
-      }
-    }
-  }
-}
Index: branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problems.ProgramSynthesis/Push/Views/PushProgramDebuggerView.resx
===================================================================
--- branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problems.ProgramSynthesis/Push/Views/PushProgramDebuggerView.resx	(revision 14875)
+++ 	(revision )
@@ -1,209 +1,0 @@
-﻿<?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=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <metadata name="errorProvider.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
-    <value>17, 17</value>
-  </metadata>
-  <metadata name="toolTip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
-    <value>140, 17</value>
-  </metadata>
-  <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
-  <data name="runButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-    <value>
-        iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6
-        JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAsElE
-        QVQ4T2P4//8/RRirYNn+bDds4tgwVsGEGRH/iTUEqyDIAMsyfaIMwSoYNSXo/4Zbi4kyBKtg8ARvkEai
-        DMEq6NPlDDYAhKMWBeA1BEMAhB2bLf5nbIgFa7Zt1v+vU6zwXyKNG0SroatF4cCweY0eimb+BBasmkEY
-        QwCE9UqVidIMwlgFVfKliNIMwlgFpTMEidIMwlgFRZI5idIMwlgFidUMwlgFScFYBYnH/xkAJP3E6UxO
-        vJ8AAAAASUVORK5CYII=
-</value>
-  </data>
-  <data name="resetButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-    <value>
-        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
-</value>
-  </data>
-  <data name="stepButton.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-    <value>
-        iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6
-        JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAACXBIWXMAAAsTAAALEwEAmpwYAAABFklE
-        QVQ4T2P4//8/Bk7oecKMTRwbxioINEAGiJmwyaFjrIKFs57/j5/8VokYQ7AK5s589j+h+97/uAmvNQh5
-        B6tgxpSn/+ft//0/qOHma6ABtvgMwSoI1PB/9r5f/zu3/v3vVnr5P5Bvj8sQDAEQjux69H/Ktl//S5b+
-        /Z8w/e9/m9yzOA1B4cBwYPPD/61r34M1G5d8+S8dfe2/ceSy/w5FZ+PRDUHRCMMeVff/l8x9B9es6NLz
-        X9pndSA2tRgCIGxfevd/YMszJM0rvbCpA2GsghZ5d/7bFFyBabbBpgaGsQoaZt0Ga5byWu6KTR4ZYxXU
-        SbsBtHmNLzY5dIxVUMp7rZ+09wqciQcZYxUkBWMVJB7/ZwAA4djU9I5dK1UAAAAASUVORK5CYII=
-</value>
-  </data>
-</root>
