diff --git a/src/ProtocolBuffers.Serialization/Extensions.cs b/src/ProtocolBuffers.Serialization/Extensions.cs
index fc7a6dba56..8aef0a9e5b 100644
--- a/src/ProtocolBuffers.Serialization/Extensions.cs
+++ b/src/ProtocolBuffers.Serialization/Extensions.cs
@@ -18,7 +18,7 @@ namespace Google.ProtocolBuffers
/// around Serialization.JsonFormatWriter.WriteMessage.
///
public static string ToJson(
-#if !NET20
+#if !NOEXTENSIONS
this
#endif
IMessageLite message)
@@ -32,7 +32,7 @@ namespace Google.ProtocolBuffers
/// around Serialization.XmlFormatWriter.WriteMessage.
///
public static string ToXml(
-#if !NET20
+#if !NOEXTENSIONS
this
#endif
IMessageLite message)
@@ -46,7 +46,7 @@ namespace Google.ProtocolBuffers
/// This is a trivial wrapper around Serialization.XmlFormatWriter.WriteMessage.
///
public static string ToXml(
-#if !NET20
+#if !NOEXTENSIONS
this
#endif
IMessageLite message, string rootElementName)
@@ -64,7 +64,7 @@ namespace Google.ProtocolBuffers
/// The mime type of the content to be written
/// The stream to write the message to
public static void WriteTo(
-#if !NET20
+#if !NOEXTENSIONS
this
#endif
IMessageLite message, MessageFormatOptions options, string contentType, Stream output)
@@ -88,7 +88,7 @@ namespace Google.ProtocolBuffers
/// Merges a JSON object into this builder and returns
///
public static TBuilder MergeFromJson(
-#if !NET20
+#if !NOEXTENSIONS
this
#endif
TBuilder builder, string jsonText) where TBuilder : IBuilderLite
@@ -100,7 +100,7 @@ namespace Google.ProtocolBuffers
/// Merges a JSON object into this builder and returns
///
public static TBuilder MergeFromJson(
-#if !NET20
+#if !NOEXTENSIONS
this
#endif
TBuilder builder, TextReader reader) where TBuilder : IBuilderLite
@@ -111,7 +111,7 @@ namespace Google.ProtocolBuffers
/// Merges a JSON object into this builder using the extensions provided and returns
///
public static TBuilder MergeFromJson(
-#if !NET20
+#if !NOEXTENSIONS
this
#endif
TBuilder builder, TextReader reader, ExtensionRegistry extensionRegistry) where TBuilder : IBuilderLite
@@ -124,7 +124,7 @@ namespace Google.ProtocolBuffers
/// Merges an XML object into this builder and returns
///
public static TBuilder MergeFromXml(
-#if !NET20
+#if !NOEXTENSIONS
this
#endif
TBuilder builder, XmlReader reader) where TBuilder : IBuilderLite
@@ -136,7 +136,7 @@ namespace Google.ProtocolBuffers
/// Merges an XML object into this builder and returns
///
public static TBuilder MergeFromXml(
-#if !NET20
+#if !NOEXTENSIONS
this
#endif
TBuilder builder, string rootElementName, XmlReader reader) where TBuilder : IBuilderLite
@@ -148,7 +148,7 @@ namespace Google.ProtocolBuffers
/// Merges an XML object into this builder using the extensions provided and returns
///
public static TBuilder MergeFromXml(
-#if !NET20
+#if !NOEXTENSIONS
this
#endif
TBuilder builder, string rootElementName, XmlReader reader,
@@ -168,7 +168,7 @@ namespace Google.ProtocolBuffers
/// The stream to read the message from
/// The same builder instance that was supplied in the builder parameter
public static TBuilder MergeFrom(
-#if !NET20
+#if !NOEXTENSIONS
this
#endif
TBuilder builder, MessageFormatOptions options, string contentType, Stream input) where TBuilder : IBuilderLite
@@ -195,7 +195,7 @@ namespace Google.ProtocolBuffers
/// The mime type for the output stream
/// The output stream
public static void HttpCallMethod(
-#if !NET20
+#if !NOEXTENSIONS
this
#endif
IRpcServerStub stub, string methodName, MessageFormatOptions options,
diff --git a/src/ProtocolBuffers.Serialization/Properties/AssemblyInfo.cs b/src/ProtocolBuffers.Serialization/Properties/AssemblyInfo.cs
index 95bc4a615a..fec3b29ed4 100644
--- a/src/ProtocolBuffers.Serialization/Properties/AssemblyInfo.cs
+++ b/src/ProtocolBuffers.Serialization/Properties/AssemblyInfo.cs
@@ -68,8 +68,8 @@ using System.Runtime.CompilerServices;
// [assembly: AssemblyVersion("2.4.1.473")]
[assembly: AssemblyVersion("2.4.1.473")]
-#if !COMPACT_FRAMEWORK
+#if !NOFILEVERSION
[assembly: AssemblyFileVersion("2.4.1.473")]
#endif
diff --git a/src/ProtocolBuffers.Serialization/ProtocolBuffers.Serialization.csproj b/src/ProtocolBuffers.Serialization/ProtocolBuffers.Serialization.csproj
index 75132d5ea9..97ae99f1f4 100644
--- a/src/ProtocolBuffers.Serialization/ProtocolBuffers.Serialization.csproj
+++ b/src/ProtocolBuffers.Serialization/ProtocolBuffers.Serialization.csproj
@@ -25,10 +25,11 @@
bin\Debug\
$(OutputPath)\$(AssemblyName).xml
1591, 1570, 1571, 1572, 1573, 1574
- DEBUG;TRACE
+ DEBUG;TRACE;$(EnvironmentFlavor);$(EnvironmentTemplate)
prompt
4
true
+ Off
pdbonly
@@ -36,13 +37,11 @@
bin\Release\
$(OutputPath)\$(AssemblyName).xml
1591, 1570, 1571, 1572, 1573, 1574
- TRACE
+ TRACE;$(EnvironmentFlavor);$(EnvironmentTemplate)
prompt
4
true
-
-
- NET20;$(DefineConstants)
+ Off
diff --git a/src/ProtocolBuffers.Serialization/ProtocolBuffersLite.Serialization.csproj b/src/ProtocolBuffers.Serialization/ProtocolBuffersLite.Serialization.csproj
index 457a9cfa61..b0a805599c 100644
--- a/src/ProtocolBuffers.Serialization/ProtocolBuffersLite.Serialization.csproj
+++ b/src/ProtocolBuffers.Serialization/ProtocolBuffersLite.Serialization.csproj
@@ -25,10 +25,11 @@
bin\Debug\
$(OutputPath)\$(AssemblyName).xml
1591, 1570, 1571, 1572, 1573, 1574
- DEBUG;TRACE;LITE
+ DEBUG;TRACE;LITE;$(EnvironmentFlavor);$(EnvironmentTemplate)
prompt
4
true
+ Off
pdbonly
@@ -36,13 +37,11 @@
bin\Release\
$(OutputPath)\$(AssemblyName).xml
1591, 1570, 1571, 1572, 1573, 1574
- TRACE;LITE
+ TRACE;LITE;$(EnvironmentFlavor);$(EnvironmentTemplate)
prompt
4
true
-
-
- NET20;$(DefineConstants)
+ Off
diff --git a/src/ProtocolBuffers.Test/Properties/AssemblyInfo.cs b/src/ProtocolBuffers.Test/Properties/AssemblyInfo.cs
index 676b565ff7..f636f542e4 100644
--- a/src/ProtocolBuffers.Test/Properties/AssemblyInfo.cs
+++ b/src/ProtocolBuffers.Test/Properties/AssemblyInfo.cs
@@ -38,9 +38,9 @@ using System.Runtime.InteropServices;
// [assembly: AssemblyVersion("2.4.1.473")]
[assembly: AssemblyVersion("2.4.1.473")]
-#if !COMPACT_FRAMEWORK
-[assembly: AssemblyFileVersion("2.4.1.473")]
+#if !NOFILEVERSION
+[assembly: AssemblyFileVersion("2.4.1.473")]
#endif
// We don't really need CLSCompliance, but if the assembly builds with no warnings,
diff --git a/src/ProtocolBuffers.Test/ProtocolBuffers.Test.csproj b/src/ProtocolBuffers.Test/ProtocolBuffers.Test.csproj
index 69b42306de..ee22134fda 100644
--- a/src/ProtocolBuffers.Test/ProtocolBuffers.Test.csproj
+++ b/src/ProtocolBuffers.Test/ProtocolBuffers.Test.csproj
@@ -23,21 +23,23 @@
full
false
bin\Debug\
- DEBUG;TRACE
+ DEBUG;TRACE;$(EnvironmentFlavor);$(EnvironmentTemplate)
prompt
4
true
true
+ Off
pdbonly
true
bin\Release\
- TRACE
+ TRACE;$(EnvironmentFlavor);$(EnvironmentTemplate)
prompt
4
true
true
+ Off
@@ -78,11 +80,7 @@
-
- True
- True
- TestResources.resx
-
+
@@ -160,20 +158,6 @@
-
- ResXFileCodeGenerator
- TestResources.Designer.cs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- text/microsoft-resx
-
-
- 2.0
-
-
- System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
-
- Resources\golden_message;System.Byte[], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- Resources\golden_packed_fields_message;System.Byte[], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- Resources\text_format_unittest_data.txt;System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252
-
-
- Resources\text_format_unittest_extensions_data.txt;System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252
-
-
\ No newline at end of file
diff --git a/src/ProtocolBuffers.Test/TextFormatTest.cs b/src/ProtocolBuffers.Test/TextFormatTest.cs
index 3008c599ce..2cdd9ce288 100644
--- a/src/ProtocolBuffers.Test/TextFormatTest.cs
+++ b/src/ProtocolBuffers.Test/TextFormatTest.cs
@@ -94,8 +94,8 @@ namespace Google.ProtocolBuffers
TestUtil.TestInMultipleCultures(() =>
{
string text = TextFormat.PrintToString(TestUtil.GetAllSet());
- Assert.AreEqual(AllFieldsSetText.Replace("\r\n", "\n"),
- text.Replace("\r\n", "\n"));
+ Assert.AreEqual(AllFieldsSetText.Replace("\r\n", "\n").Trim(),
+ text.Replace("\r\n", "\n").Trim());
});
}
@@ -107,7 +107,7 @@ namespace Google.ProtocolBuffers
{
string text = TextFormat.PrintToString(TestUtil.GetAllExtensionsSet());
- Assert.AreEqual(AllExtensionsSetText.Replace("\r\n", "\n"), text.Replace("\r\n", "\n"));
+ Assert.AreEqual(AllExtensionsSetText.Replace("\r\n", "\n").Trim(), text.Replace("\r\n", "\n").Trim());
}
///
diff --git a/src/ProtocolBuffers/FieldAccess/ReflectionUtil.cs b/src/ProtocolBuffers/FieldAccess/ReflectionUtil.cs
index 24f7fba984..3c9504c43b 100644
--- a/src/ProtocolBuffers/FieldAccess/ReflectionUtil.cs
+++ b/src/ProtocolBuffers/FieldAccess/ReflectionUtil.cs
@@ -137,7 +137,7 @@ namespace Google.ProtocolBuffers.FieldAccess
internal static Func CreateDelegateFunc(MethodInfo method)
{
#if !NOCREATEDELEGATE
- object tdelegate = Delegate.CreateDelegate(typeof(Func), null, method, true);
+ object tdelegate = Delegate.CreateDelegate(typeof(Func), null, method);
return (Func)tdelegate;
#else
return delegate() { return (TResult)method.Invoke(null, null); };
@@ -147,7 +147,7 @@ namespace Google.ProtocolBuffers.FieldAccess
internal static Func CreateDelegateFunc(MethodInfo method)
{
#if !NOCREATEDELEGATE
- object tdelegate = Delegate.CreateDelegate(typeof(Func), null, method, true);
+ object tdelegate = Delegate.CreateDelegate(typeof(Func), null, method);
return (Func)tdelegate;
#else
if (method.IsStatic)
@@ -161,7 +161,7 @@ namespace Google.ProtocolBuffers.FieldAccess
internal static Func CreateDelegateFunc(MethodInfo method)
{
#if !NOCREATEDELEGATE
- object tdelegate = Delegate.CreateDelegate(typeof(Func), null, method, true);
+ object tdelegate = Delegate.CreateDelegate(typeof(Func), null, method);
return (Func)tdelegate;
#else
if (method.IsStatic)
@@ -175,7 +175,7 @@ namespace Google.ProtocolBuffers.FieldAccess
internal static Action CreateDelegateAction(MethodInfo method)
{
#if !NOCREATEDELEGATE
- object tdelegate = Delegate.CreateDelegate(typeof(Action), null, method, true);
+ object tdelegate = Delegate.CreateDelegate(typeof(Action), null, method);
return (Action)tdelegate;
#else
if (method.IsStatic)
diff --git a/src/ProtocolBuffers/Properties/AssemblyInfo.cs b/src/ProtocolBuffers/Properties/AssemblyInfo.cs
index 95bc4a615a..fec3b29ed4 100644
--- a/src/ProtocolBuffers/Properties/AssemblyInfo.cs
+++ b/src/ProtocolBuffers/Properties/AssemblyInfo.cs
@@ -68,8 +68,8 @@ using System.Runtime.CompilerServices;
// [assembly: AssemblyVersion("2.4.1.473")]
[assembly: AssemblyVersion("2.4.1.473")]
-#if !COMPACT_FRAMEWORK
+#if !NOFILEVERSION
[assembly: AssemblyFileVersion("2.4.1.473")]
#endif
diff --git a/src/ProtocolBuffers/ProtocolBuffers.csproj b/src/ProtocolBuffers/ProtocolBuffers.csproj
index a325992cd7..620fe4a5c9 100644
--- a/src/ProtocolBuffers/ProtocolBuffers.csproj
+++ b/src/ProtocolBuffers/ProtocolBuffers.csproj
@@ -25,11 +25,12 @@
bin\Debug\
$(OutputPath)\$(AssemblyName).xml
1591, 1570, 1571, 1572, 1573, 1574
- DEBUG;TRACE
+ DEBUG;TRACE;$(EnvironmentFlavor);$(EnvironmentTemplate)
prompt
4
true
true
+ Off
pdbonly
@@ -37,11 +38,12 @@
bin\Release\
$(OutputPath)\$(AssemblyName).xml
1591, 1570, 1571, 1572, 1573, 1574
- TRACE
+ TRACE;$(EnvironmentFlavor);$(EnvironmentTemplate)
prompt
4
true
true
+ Off
diff --git a/src/ProtocolBuffers/ProtocolBuffersLite.csproj b/src/ProtocolBuffers/ProtocolBuffersLite.csproj
index 51aad86450..a8a5e82963 100644
--- a/src/ProtocolBuffers/ProtocolBuffersLite.csproj
+++ b/src/ProtocolBuffers/ProtocolBuffersLite.csproj
@@ -25,10 +25,11 @@
bin\Debug\
$(OutputPath)\$(AssemblyName).xml
1591, 1570, 1571, 1572, 1573, 1574
- DEBUG;TRACE;LITE
+ DEBUG;TRACE;LITE;$(EnvironmentFlavor);$(EnvironmentTemplate)
prompt
4
true
+ Off
pdbonly
@@ -36,10 +37,11 @@
bin\Release\
$(OutputPath)\$(AssemblyName).xml
1591, 1570, 1571, 1572, 1573, 1574
- TRACE;LITE
+ TRACE;LITE;$(EnvironmentFlavor);$(EnvironmentTemplate)
prompt
4
true
+ Off
diff --git a/src/ProtocolBuffersLibrary.sln b/src/ProtocolBuffersLibrary.sln
new file mode 100644
index 0000000000..c91314a032
--- /dev/null
+++ b/src/ProtocolBuffersLibrary.sln
@@ -0,0 +1,55 @@
+Microsoft Visual Studio Solution File, Format Version 10.00
+# Visual Studio 2008
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtocolBuffers", "ProtocolBuffers\ProtocolBuffers.csproj", "{6908BDCE-D925-43F3-94AC-A531E6DF2591}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtocolBuffersLite", "ProtocolBuffers\ProtocolBuffersLite.csproj", "{6969BDCE-D925-43F3-94AC-A531E6DF2591}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtocolBuffers.Serialization", "ProtocolBuffers.Serialization\ProtocolBuffers.Serialization.csproj", "{231391AF-449C-4A39-986C-AD7F270F4750}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtocolBuffersLite.Serialization", "ProtocolBuffers.Serialization\ProtocolBuffersLite.Serialization.csproj", "{E067A59D-9D0A-4A1F-92B1-38E4457241D1}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtocolBuffers.Test", "ProtocolBuffers.Test\ProtocolBuffers.Test.csproj", "{DD01ED24-3750-4567-9A23-1DB676A15610}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtocolBuffersLite.Test", "ProtocolBuffersLite.Test\ProtocolBuffersLite.Test.csproj", "{EE01ED24-3750-4567-9A23-1DB676A15610}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtocolBuffersLiteMixed.Test", "ProtocolBuffersLite.Test\ProtocolBuffersLiteMixed.Test.csproj", "{EEFFED24-3750-4567-9A23-1DB676A15610}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {6908BDCE-D925-43F3-94AC-A531E6DF2591}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {6908BDCE-D925-43F3-94AC-A531E6DF2591}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {6908BDCE-D925-43F3-94AC-A531E6DF2591}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {6908BDCE-D925-43F3-94AC-A531E6DF2591}.Release|Any CPU.Build.0 = Release|Any CPU
+ {6969BDCE-D925-43F3-94AC-A531E6DF2591}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {6969BDCE-D925-43F3-94AC-A531E6DF2591}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {6969BDCE-D925-43F3-94AC-A531E6DF2591}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {6969BDCE-D925-43F3-94AC-A531E6DF2591}.Release|Any CPU.Build.0 = Release|Any CPU
+ {231391AF-449C-4A39-986C-AD7F270F4750}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {231391AF-449C-4A39-986C-AD7F270F4750}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {231391AF-449C-4A39-986C-AD7F270F4750}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {231391AF-449C-4A39-986C-AD7F270F4750}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E067A59D-9D0A-4A1F-92B1-38E4457241D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E067A59D-9D0A-4A1F-92B1-38E4457241D1}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E067A59D-9D0A-4A1F-92B1-38E4457241D1}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E067A59D-9D0A-4A1F-92B1-38E4457241D1}.Release|Any CPU.Build.0 = Release|Any CPU
+ {DD01ED24-3750-4567-9A23-1DB676A15610}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {DD01ED24-3750-4567-9A23-1DB676A15610}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {DD01ED24-3750-4567-9A23-1DB676A15610}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {DD01ED24-3750-4567-9A23-1DB676A15610}.Release|Any CPU.Build.0 = Release|Any CPU
+ {EE01ED24-3750-4567-9A23-1DB676A15610}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {EE01ED24-3750-4567-9A23-1DB676A15610}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {EE01ED24-3750-4567-9A23-1DB676A15610}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {EE01ED24-3750-4567-9A23-1DB676A15610}.Release|Any CPU.Build.0 = Release|Any CPU
+ {EEFFED24-3750-4567-9A23-1DB676A15610}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {EEFFED24-3750-4567-9A23-1DB676A15610}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {EEFFED24-3750-4567-9A23-1DB676A15610}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {EEFFED24-3750-4567-9A23-1DB676A15610}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/src/ProtocolBuffersLite.Test/ProtocolBuffersLite.Test.csproj b/src/ProtocolBuffersLite.Test/ProtocolBuffersLite.Test.csproj
index 2178d52212..acabfd1814 100644
--- a/src/ProtocolBuffersLite.Test/ProtocolBuffersLite.Test.csproj
+++ b/src/ProtocolBuffersLite.Test/ProtocolBuffersLite.Test.csproj
@@ -23,21 +23,23 @@
full
false
bin\Debug\
- DEBUG;TRACE
+ DEBUG;TRACE;$(EnvironmentFlavor);$(EnvironmentTemplate)
prompt
4
true
true
+ Off
pdbonly
true
bin\Release\
- TRACE
+ TRACE;$(EnvironmentFlavor);$(EnvironmentTemplate)
prompt
4
true
true
+ Off
diff --git a/src/ProtocolBuffersLite.Test/ProtocolBuffersLiteMixed.Test.csproj b/src/ProtocolBuffersLite.Test/ProtocolBuffersLiteMixed.Test.csproj
index 6bdb08187b..db2c8eb4bf 100644
--- a/src/ProtocolBuffersLite.Test/ProtocolBuffersLiteMixed.Test.csproj
+++ b/src/ProtocolBuffersLite.Test/ProtocolBuffersLiteMixed.Test.csproj
@@ -23,21 +23,23 @@
full
false
bin\Debug\
- DEBUG;TRACE
+ DEBUG;TRACE;$(EnvironmentFlavor);$(EnvironmentTemplate)
prompt
4
true
true
+ Off
pdbonly
true
bin\Release\
- TRACE
+ TRACE;$(EnvironmentFlavor);$(EnvironmentTemplate)
prompt
4
true
true
+ Off