Index: /trunk/sources/HeuristicLab.Algorithms.DataAnalysis.Views/3.4/HeuristicLab.Algorithms.DataAnalysis.Views-3.4.csproj
===================================================================
--- /trunk/sources/HeuristicLab.Algorithms.DataAnalysis.Views/3.4/HeuristicLab.Algorithms.DataAnalysis.Views-3.4.csproj	(revision 8608)
+++ /trunk/sources/HeuristicLab.Algorithms.DataAnalysis.Views/3.4/HeuristicLab.Algorithms.DataAnalysis.Views-3.4.csproj	(revision 8609)
@@ -104,6 +104,6 @@
   </PropertyGroup>
   <ItemGroup>
-    <Reference Include="LibSVM-1.6.3, Version=1.6.3.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
-      <HintPath>..\..\bin\LibSVM-1.6.3.dll</HintPath>
+    <Reference Include="LibSVM-3.12, Version=3.12.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
+      <HintPath>..\..\bin\LibSVM-3.12.dll</HintPath>
       <Private>False</Private>
     </Reference>
@@ -282,5 +282,5 @@
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
   <PropertyGroup>
-   <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">
+    <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">
       set Path=%25Path%25;$(ProjectDir);$(SolutionDir)
       set ProjectDir=$(ProjectDir)
@@ -290,5 +290,5 @@
       call PreBuildEvent.cmd
 </PreBuildEvent>
-<PreBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+    <PreBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
 export ProjectDir=$(ProjectDir)
 export SolutionDir=$(SolutionDir)
Index: /trunk/sources/HeuristicLab.Algorithms.DataAnalysis.Views/3.4/Plugin.cs.frame
===================================================================
--- /trunk/sources/HeuristicLab.Algorithms.DataAnalysis.Views/3.4/Plugin.cs.frame	(revision 8608)
+++ /trunk/sources/HeuristicLab.Algorithms.DataAnalysis.Views/3.4/Plugin.cs.frame	(revision 8609)
@@ -37,5 +37,5 @@
   [PluginDependency("HeuristicLab.Data", "3.3")]
   [PluginDependency("HeuristicLab.Data.Views", "3.3")]
-  [PluginDependency("HeuristicLab.LibSVM", "1.6.3")]
+  [PluginDependency("HeuristicLab.LibSVM", "3.12")]
   [PluginDependency("HeuristicLab.MainForm", "3.3")]
   [PluginDependency("HeuristicLab.MainForm.WindowsForms", "3.3")] 
Index: /trunk/sources/HeuristicLab.Algorithms.DataAnalysis.Views/3.4/SupportVectorMachineModelView.cs
===================================================================
--- /trunk/sources/HeuristicLab.Algorithms.DataAnalysis.Views/3.4/SupportVectorMachineModelView.cs	(revision 8608)
+++ /trunk/sources/HeuristicLab.Algorithms.DataAnalysis.Views/3.4/SupportVectorMachineModelView.cs	(revision 8609)
@@ -24,4 +24,5 @@
 using HeuristicLab.MainForm;
 using HeuristicLab.MainForm.WindowsForms;
+using LibSVM;
 
 namespace HeuristicLab.Algorithms.DataAnalysis.Views {
@@ -66,5 +67,5 @@
         writer.Flush();
         using (MemoryStream memStream = new MemoryStream()) {
-          SVM.RangeTransform.Write(memStream, Content.RangeTransform);
+          RangeTransform.Write(memStream, Content.RangeTransform);
           memStream.Seek(0, SeekOrigin.Begin);
           memStream.WriteTo(s);
@@ -73,5 +74,5 @@
         writer.Flush();
         using (MemoryStream memStream = new MemoryStream()) {
-          SVM.Model.Write(memStream, Content.Model);
+          svm.svm_save_model(new StreamWriter(memStream), Content.Model);
           memStream.Seek(0, SeekOrigin.Begin);
           memStream.WriteTo(s);
Index: /trunk/sources/HeuristicLab.Algorithms.DataAnalysis/3.4/HeuristicLab.Algorithms.DataAnalysis-3.4.csproj
===================================================================
--- /trunk/sources/HeuristicLab.Algorithms.DataAnalysis/3.4/HeuristicLab.Algorithms.DataAnalysis-3.4.csproj	(revision 8608)
+++ /trunk/sources/HeuristicLab.Algorithms.DataAnalysis/3.4/HeuristicLab.Algorithms.DataAnalysis-3.4.csproj	(revision 8609)
@@ -105,6 +105,6 @@
       <Private>False</Private>
     </Reference>
-    <Reference Include="LibSVM-1.6.3, Version=1.6.3.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
-      <HintPath>..\..\bin\LibSVM-1.6.3.dll</HintPath>
+    <Reference Include="LibSVM-3.12, Version=3.12.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL">
+      <HintPath>..\..\bin\LibSVM-3.12.dll</HintPath>
       <Private>False</Private>
     </Reference>
@@ -361,5 +361,5 @@
   -->
   <PropertyGroup>
-   <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">set Path=%25Path%25;$(ProjectDir);$(SolutionDir)
+    <PreBuildEvent Condition=" '$(OS)' == 'Windows_NT' ">set Path=%25Path%25;$(ProjectDir);$(SolutionDir)
 set ProjectDir=$(ProjectDir)
 set SolutionDir=$(SolutionDir)
@@ -368,5 +368,5 @@
 call PreBuildEvent.cmd
 </PreBuildEvent>
-<PreBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
+    <PreBuildEvent Condition=" '$(OS)' != 'Windows_NT' ">
 export ProjectDir=$(ProjectDir)
 export SolutionDir=$(SolutionDir)
Index: /trunk/sources/HeuristicLab.Algorithms.DataAnalysis/3.4/Interfaces/ISupportVectorMachineModel.cs
===================================================================
--- /trunk/sources/HeuristicLab.Algorithms.DataAnalysis/3.4/Interfaces/ISupportVectorMachineModel.cs	(revision 8608)
+++ /trunk/sources/HeuristicLab.Algorithms.DataAnalysis/3.4/Interfaces/ISupportVectorMachineModel.cs	(revision 8609)
@@ -20,8 +20,6 @@
 #endregion
 
-using HeuristicLab.Optimization;
 using HeuristicLab.Problems.DataAnalysis;
-using HeuristicLab.Core;
-using System.Collections.Generic;
+using LibSVM;
 
 namespace HeuristicLab.Algorithms.DataAnalysis {
@@ -30,6 +28,6 @@
   /// </summary>
   public interface ISupportVectorMachineModel : IDataAnalysisModel, IRegressionModel, IClassificationModel {
-    SVM.Model Model { get; }
-    SVM.RangeTransform RangeTransform { get; }
+    svm_model Model { get; }
+    RangeTransform RangeTransform { get; }
     Dataset SupportVectors { get; }
   }
Index: /trunk/sources/HeuristicLab.Algorithms.DataAnalysis/3.4/Plugin.cs.frame
===================================================================
--- /trunk/sources/HeuristicLab.Algorithms.DataAnalysis/3.4/Plugin.cs.frame	(revision 8608)
+++ /trunk/sources/HeuristicLab.Algorithms.DataAnalysis/3.4/Plugin.cs.frame	(revision 8609)
@@ -46,5 +46,5 @@
   [PluginDependency("HeuristicLab.Problems.DataAnalysis.Symbolic.Classification", "3.4")]
   [PluginDependency("HeuristicLab.Problems.DataAnalysis.Symbolic.Regression", "3.4")]
-  [PluginDependency("HeuristicLab.LibSVM", "1.6.3")]
+  [PluginDependency("HeuristicLab.LibSVM", "3.12")]
   [PluginDependency("HeuristicLab.Random", "3.3")]
   public class HeuristicLabAlgorithmsDataAnalysisPlugin : PluginBase {
Index: /trunk/sources/HeuristicLab.Algorithms.DataAnalysis/3.4/SupportVectorMachine/SupportVectorClassification.cs
===================================================================
--- /trunk/sources/HeuristicLab.Algorithms.DataAnalysis/3.4/SupportVectorMachine/SupportVectorClassification.cs	(revision 8608)
+++ /trunk/sources/HeuristicLab.Algorithms.DataAnalysis/3.4/SupportVectorMachine/SupportVectorClassification.cs	(revision 8609)
@@ -30,4 +30,5 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 using HeuristicLab.Problems.DataAnalysis;
+using LibSVM;
 
 namespace HeuristicLab.Algorithms.DataAnalysis {
@@ -123,5 +124,5 @@
       Results.Add(new Result("Support vector classification solution", "The support vector classification solution.", solution));
       Results.Add(new Result("Training accuracy", "The accuracy of the SVR solution on the training partition.", new DoubleValue(trainingAccuracy)));
-      Results.Add(new Result("Test R²", "The accuracy of the SVR solution on the test partition.", new DoubleValue(testAccuracy)));
+      Results.Add(new Result("Test accuracy", "The accuracy of the SVR solution on the test partition.", new DoubleValue(testAccuracy)));
       Results.Add(new Result("Number of support vectors", "The number of support vectors of the SVR solution.", new IntValue(nSv)));
     }
@@ -135,13 +136,20 @@
 
       //extract SVM parameters from scope and set them
-      SVM.Parameter parameter = new SVM.Parameter();
-      parameter.SvmType = (SVM.SvmType)Enum.Parse(typeof(SVM.SvmType), svmType, true);
-      parameter.KernelType = (SVM.KernelType)Enum.Parse(typeof(SVM.KernelType), kernelType, true);
+      svm_parameter parameter = new svm_parameter();
+      parameter.svm_type = GetSvmType(svmType);
+      parameter.kernel_type = GetKernelType(kernelType);
       parameter.C = cost;
-      parameter.Nu = nu;
-      parameter.Gamma = gamma;
-      parameter.CacheSize = 500;
-      parameter.Probability = false;
+      parameter.nu = nu;
+      parameter.gamma = gamma;
+      parameter.cache_size = 500;
+      parameter.probability = 0;
+      parameter.eps = 0.001;
+      parameter.degree = 3;
+      parameter.shrinking = 1;
+      parameter.coef0 = 0;
 
+
+      var weightLabels = new List<int>();
+      var weights = new List<double>();
       foreach (double c in problemData.ClassValues) {
         double wSum = 0.0;
@@ -151,16 +159,19 @@
           }
         }
-        parameter.Weights.Add((int)c, wSum);
+        weightLabels.Add((int)c);
+        weights.Add(wSum);
       }
+      parameter.weight_label = weightLabels.ToArray();
+      parameter.weight = weights.ToArray();
 
 
-      SVM.Problem problem = SupportVectorMachineUtil.CreateSvmProblem(dataset, targetVariable, allowedInputVariables, rows);
-      SVM.RangeTransform rangeTransform = SVM.RangeTransform.Compute(problem);
-      SVM.Problem scaledProblem = SVM.Scaling.Scale(rangeTransform, problem);
-      var svmModel = SVM.Training.Train(scaledProblem, parameter);
+      svm_problem problem = SupportVectorMachineUtil.CreateSvmProblem(dataset, targetVariable, allowedInputVariables, rows);
+      RangeTransform rangeTransform = RangeTransform.Compute(problem);
+      svm_problem scaledProblem = rangeTransform.Scale(problem);
+      var svmModel = svm.svm_train(scaledProblem, parameter);
       var model = new SupportVectorMachineModel(svmModel, rangeTransform, targetVariable, allowedInputVariables, problemData.ClassValues);
       var solution = new SupportVectorClassificationSolution(model, (IClassificationProblemData)problemData.Clone());
 
-      nSv = svmModel.SupportVectorCount;
+      nSv = svmModel.SV.Length;
       trainingAccuracy = solution.TrainingAccuracy;
       testAccuracy = solution.TestAccuracy;
@@ -168,4 +179,18 @@
       return solution;
     }
+
+    private static int GetSvmType(string svmType) {
+      if (svmType == "NU_SVC") return svm_parameter.NU_SVC;
+      if (svmType == "C_SVC") return svm_parameter.C_SVC;
+      throw new ArgumentException("Unknown SVM type");
+    }
+
+    private static int GetKernelType(string kernelType) {
+      if (kernelType == "LINEAR") return svm_parameter.LINEAR;
+      if (kernelType == "POLY") return svm_parameter.POLY;
+      if (kernelType == "SIGMOID") return svm_parameter.SIGMOID;
+      if (kernelType == "RBF") return svm_parameter.RBF;
+      throw new ArgumentException("Unknown kernel type");
+    }
     #endregion
   }
Index: /trunk/sources/HeuristicLab.Algorithms.DataAnalysis/3.4/SupportVectorMachine/SupportVectorMachineModel.cs
===================================================================
--- /trunk/sources/HeuristicLab.Algorithms.DataAnalysis/3.4/SupportVectorMachine/SupportVectorMachineModel.cs	(revision 8608)
+++ /trunk/sources/HeuristicLab.Algorithms.DataAnalysis/3.4/SupportVectorMachine/SupportVectorMachineModel.cs	(revision 8609)
@@ -29,5 +29,5 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 using HeuristicLab.Problems.DataAnalysis;
-using SVM;
+using LibSVM;
 
 namespace HeuristicLab.Algorithms.DataAnalysis {
@@ -39,9 +39,9 @@
   public sealed class SupportVectorMachineModel : NamedItem, ISupportVectorMachineModel {
 
-    private SVM.Model model;
+    private svm_model model;
     /// <summary>
     /// Gets or sets the SVM model.
     /// </summary>
-    public SVM.Model Model {
+    public svm_model Model {
       get { return model; }
       set {
@@ -57,6 +57,6 @@
     /// Gets or sets the range transformation for the model.
     /// </summary>
-    private SVM.RangeTransform rangeTransform;
-    public SVM.RangeTransform RangeTransform {
+    private RangeTransform rangeTransform;
+    public RangeTransform RangeTransform {
       get { return rangeTransform; }
       set {
@@ -71,9 +71,9 @@
     public Dataset SupportVectors {
       get {
-        var data = new double[Model.SupportVectorCount, allowedInputVariables.Count()];
-        for (int i = 0; i < Model.SupportVectorCount; i++) {
-          var sv = Model.SupportVectors[i];
+        var data = new double[Model.sv_coef.Length, allowedInputVariables.Count()];
+        for (int i = 0; i < Model.sv_coef.Length; i++) {
+          var sv = Model.SV[i];
           for (int j = 0; j < sv.Length; j++) {
-            data[i, j] = sv[j].Value;
+            data[i, j] = sv[j].value;
           }
         }
@@ -101,9 +101,9 @@
         this.classValues = (double[])original.classValues.Clone();
     }
-    public SupportVectorMachineModel(SVM.Model model, SVM.RangeTransform rangeTransform, string targetVariable, IEnumerable<string> allowedInputVariables, IEnumerable<double> classValues)
+    public SupportVectorMachineModel(svm_model model, RangeTransform rangeTransform, string targetVariable, IEnumerable<string> allowedInputVariables, IEnumerable<double> classValues)
       : this(model, rangeTransform, targetVariable, allowedInputVariables) {
       this.classValues = classValues.ToArray();
     }
-    public SupportVectorMachineModel(SVM.Model model, SVM.RangeTransform rangeTransform, string targetVariable, IEnumerable<string> allowedInputVariables)
+    public SupportVectorMachineModel(svm_model model, RangeTransform rangeTransform, string targetVariable, IEnumerable<string> allowedInputVariables)
       : base() {
       this.name = ItemName;
@@ -161,9 +161,9 @@
     private IEnumerable<double> GetEstimatedValuesHelper(Dataset dataset, IEnumerable<int> rows) {
       // calculate predictions for the currently requested rows
-      SVM.Problem problem = SupportVectorMachineUtil.CreateSvmProblem(dataset, targetVariable, allowedInputVariables, rows);
-      SVM.Problem scaledProblem = SVM.Scaling.Scale(RangeTransform, problem);
-
-      for (int i = 0; i < scaledProblem.Count; i++) {
-        yield return SVM.Prediction.Predict(Model, scaledProblem.X[i]);
+      svm_problem problem = SupportVectorMachineUtil.CreateSvmProblem(dataset, targetVariable, allowedInputVariables, rows);
+      svm_problem scaledProblem = rangeTransform.Scale(problem);
+
+      for (int i = 0; i < problem.l; i++) {
+        yield return svm.svm_predict(Model, scaledProblem.x[i]);
       }
     }
@@ -183,5 +183,5 @@
       get {
         using (MemoryStream stream = new MemoryStream()) {
-          SVM.Model.Write(stream, Model);
+          svm.svm_save_model(new StreamWriter(stream), Model);
           stream.Seek(0, System.IO.SeekOrigin.Begin);
           StreamReader reader = new StreamReader(stream);
@@ -191,5 +191,5 @@
       set {
         using (MemoryStream stream = new MemoryStream(Encoding.ASCII.GetBytes(value))) {
-          model = SVM.Model.Read(stream);
+          model = svm.svm_load_model(new StreamReader(stream));
         }
       }
@@ -199,5 +199,5 @@
       get {
         using (MemoryStream stream = new MemoryStream()) {
-          SVM.RangeTransform.Write(stream, RangeTransform);
+          RangeTransform.Write(stream, RangeTransform);
           stream.Seek(0, System.IO.SeekOrigin.Begin);
           StreamReader reader = new StreamReader(stream);
@@ -207,5 +207,5 @@
       set {
         using (MemoryStream stream = new MemoryStream(Encoding.ASCII.GetBytes(value))) {
-          RangeTransform = SVM.RangeTransform.Read(stream);
+          RangeTransform = RangeTransform.Read(stream);
         }
       }
Index: /trunk/sources/HeuristicLab.Algorithms.DataAnalysis/3.4/SupportVectorMachine/SupportVectorMachineUtil.cs
===================================================================
--- /trunk/sources/HeuristicLab.Algorithms.DataAnalysis/3.4/SupportVectorMachine/SupportVectorMachineUtil.cs	(revision 8608)
+++ /trunk/sources/HeuristicLab.Algorithms.DataAnalysis/3.4/SupportVectorMachine/SupportVectorMachineUtil.cs	(revision 8609)
@@ -23,4 +23,5 @@
 using System.Linq;
 using HeuristicLab.Problems.DataAnalysis;
+using LibSVM;
 
 namespace HeuristicLab.Algorithms.DataAnalysis {
@@ -32,15 +33,15 @@
     /// <param name="rowIndices">The rows of the dataset that should be contained in the resulting SVM-problem</param>
     /// <returns>A problem data type that can be used to train a support vector machine.</returns>
-    public static SVM.Problem CreateSvmProblem(Dataset dataset, string targetVariable, IEnumerable<string> inputVariables, IEnumerable<int> rowIndices) {
+    public static svm_problem CreateSvmProblem(Dataset dataset, string targetVariable, IEnumerable<string> inputVariables, IEnumerable<int> rowIndices) {
       double[] targetVector =
         dataset.GetDoubleValues(targetVariable, rowIndices).ToArray();
 
-      SVM.Node[][] nodes = new SVM.Node[targetVector.Length][];
-      List<SVM.Node> tempRow;
+      svm_node[][] nodes = new svm_node[targetVector.Length][];
+      List<svm_node> tempRow;
       int maxNodeIndex = 0;
       int svmProblemRowIndex = 0;
       List<string> inputVariablesList = inputVariables.ToList();
       foreach (int row in rowIndices) {
-        tempRow = new List<SVM.Node>();
+        tempRow = new List<svm_node>();
         int colIndex = 1; // make sure the smallest node index for SVM = 1
         foreach (var inputVariable in inputVariablesList) {
@@ -49,5 +50,5 @@
           // => don't add NaN values in the dataset to the sparse SVM matrix representation
           if (!double.IsNaN(value)) {
-            tempRow.Add(new SVM.Node(colIndex, value)); // nodes must be sorted in ascending ordered by column index
+            tempRow.Add(new svm_node() { index = colIndex, value = value }); // nodes must be sorted in ascending ordered by column index
             if (colIndex > maxNodeIndex) maxNodeIndex = colIndex;
           }
@@ -57,5 +58,5 @@
       }
 
-      return new SVM.Problem(targetVector.Length, targetVector, nodes, maxNodeIndex);
+      return new svm_problem() { l = targetVector.Length, y = targetVector, x = nodes };
     }
   }
Index: /trunk/sources/HeuristicLab.Algorithms.DataAnalysis/3.4/SupportVectorMachine/SupportVectorRegression.cs
===================================================================
--- /trunk/sources/HeuristicLab.Algorithms.DataAnalysis/3.4/SupportVectorMachine/SupportVectorRegression.cs	(revision 8608)
+++ /trunk/sources/HeuristicLab.Algorithms.DataAnalysis/3.4/SupportVectorMachine/SupportVectorRegression.cs	(revision 8609)
@@ -30,4 +30,5 @@
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
 using HeuristicLab.Problems.DataAnalysis;
+using LibSVM;
 
 namespace HeuristicLab.Algorithms.DataAnalysis {
@@ -143,20 +144,25 @@
 
       //extract SVM parameters from scope and set them
-      SVM.Parameter parameter = new SVM.Parameter();
-      parameter.SvmType = (SVM.SvmType)Enum.Parse(typeof(SVM.SvmType), svmType, true);
-      parameter.KernelType = (SVM.KernelType)Enum.Parse(typeof(SVM.KernelType), kernelType, true);
+      svm_parameter parameter = new svm_parameter();
+      parameter.svm_type = GetSvmType(svmType);
+      parameter.kernel_type = GetKernelType(kernelType);
       parameter.C = cost;
-      parameter.Nu = nu;
-      parameter.Gamma = gamma;
-      parameter.P = epsilon;
-      parameter.CacheSize = 500;
-      parameter.Probability = false;
+      parameter.nu = nu;
+      parameter.gamma = gamma;
+      parameter.p = epsilon;
+      parameter.cache_size = 500;
+      parameter.probability = 0;
+      parameter.eps = 0.001;
+      parameter.degree = 3;
+      parameter.shrinking = 1;
+      parameter.coef0 = 0;
 
 
-      SVM.Problem problem = SupportVectorMachineUtil.CreateSvmProblem(dataset, targetVariable, allowedInputVariables, rows);
-      SVM.RangeTransform rangeTransform = SVM.RangeTransform.Compute(problem);
-      SVM.Problem scaledProblem = SVM.Scaling.Scale(rangeTransform, problem);
-      var svmModel = SVM.Training.Train(scaledProblem, parameter);
-      nSv = svmModel.SupportVectorCount;
+
+      svm_problem problem = SupportVectorMachineUtil.CreateSvmProblem(dataset, targetVariable, allowedInputVariables, rows);
+      RangeTransform rangeTransform = RangeTransform.Compute(problem);
+      svm_problem scaledProblem = rangeTransform.Scale(problem);
+      var svmModel = svm.svm_train(scaledProblem, parameter);
+      nSv = svmModel.SV.Length;
       var model = new SupportVectorMachineModel(svmModel, rangeTransform, targetVariable, allowedInputVariables);
       var solution = new SupportVectorRegressionSolution(model, (IRegressionProblemData)problemData.Clone());
@@ -165,4 +171,18 @@
       return solution;
     }
+
+    private static int GetSvmType(string svmType) {
+      if (svmType == "NU_SVR") return svm_parameter.NU_SVR;
+      if (svmType == "EPSILON_SVR") return svm_parameter.EPSILON_SVR;
+      throw new ArgumentException("Unknown SVM type");
+    }
+
+    private static int GetKernelType(string kernelType) {
+      if (kernelType == "LINEAR") return svm_parameter.LINEAR;
+      if (kernelType == "POLY") return svm_parameter.POLY;
+      if (kernelType == "SIGMOID") return svm_parameter.SIGMOID;
+      if (kernelType == "RBF") return svm_parameter.RBF;
+      throw new ArgumentException("Unknown kernel type");
+    }
     #endregion
   }
